zenlayercloud-sdk-python 2.0.73__py3-none-any.whl → 2.0.74__py3-none-any.whl

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/__init__.py CHANGED
@@ -1,5 +1,5 @@
1
1
  # Zenlayer.com Inc.
2
2
  # Copyright (c) 2014-2023 All Rights Reserved.
3
3
 
4
- __version__ = "2.0.073"
4
+ __version__ = "2.0.074"
5
5
 
@@ -62,6 +62,45 @@ class ZoneInfo(AbstractModel):
62
62
  self.supportHaVip = params.get("supportHaVip")
63
63
 
64
64
 
65
+ class DescribeRegionsRequest(AbstractModel):
66
+ def __init__(self):
67
+ self.regionIds = None
68
+
69
+ def _deserialize(self, params):
70
+ self.regionIds = params.get("regionIds")
71
+
72
+
73
+ class DescribeRegionsResponse(AbstractModel):
74
+ def __init__(self):
75
+ self.requestId = None
76
+ self.regionSet = None
77
+
78
+ def _deserialize(self, params):
79
+ self.requestId = params.get("requestId")
80
+ if params.get("regionSet") is not None:
81
+ self.regionSet = []
82
+ for item in params.get("regionSet"):
83
+ obj = RegionItem(item)
84
+ self.regionSet.append(obj)
85
+
86
+
87
+ class RegionItem(AbstractModel):
88
+ def __init__(self, params=None):
89
+ if params is None:
90
+ params = {}
91
+ if len(params) > 0:
92
+ self._deserialize(params)
93
+ return
94
+ self.regionId = None
95
+ self.regionName = None
96
+ self.administrativeRegion = None
97
+
98
+ def _deserialize(self, params):
99
+ self.regionId = params.get("regionId")
100
+ self.regionName = params.get("regionName")
101
+ self.administrativeRegion = params.get("administrativeRegion")
102
+
103
+
65
104
  class DescribeZoneInstanceConfigInfosRequest(AbstractModel):
66
105
  def __init__(self):
67
106
  self.zoneId = None
@@ -1203,6 +1242,7 @@ class InquiryPriceModifyInstanceTypeResponse(AbstractModel):
1203
1242
  self.gpuPrice = None
1204
1243
  self.acceleratorPrice = None
1205
1244
  self.systemDiskPrice = None
1245
+ self.previousPrices = None
1206
1246
 
1207
1247
  def _deserialize(self, params):
1208
1248
  self.requestId = params.get("requestId")
@@ -1214,6 +1254,31 @@ class InquiryPriceModifyInstanceTypeResponse(AbstractModel):
1214
1254
  self.acceleratorPrice = PriceItem(params.get("acceleratorPrice"))
1215
1255
  if params.get("systemDiskPrice") is not None:
1216
1256
  self.systemDiskPrice = PriceItem(params.get("systemDiskPrice"))
1257
+ if params.get("previousPrices") is not None:
1258
+ self.previousPrices = InstanceTypePreviousPrices(params.get("previousPrices"))
1259
+
1260
+
1261
+ class InstanceTypePreviousPrices(AbstractModel):
1262
+ def __init__(self, params=None):
1263
+ if params is None:
1264
+ params = {}
1265
+ if len(params) > 0:
1266
+ self._deserialize(params)
1267
+ return
1268
+ self.specPrice = None
1269
+ self.gpuPrice = None
1270
+ self.acceleratorPrice = None
1271
+ self.systemDiskPrice = None
1272
+
1273
+ def _deserialize(self, params):
1274
+ if params.get("specPrice") is not None:
1275
+ self.specPrice = PriceItem(params.get("specPrice"))
1276
+ if params.get("gpuPrice") is not None:
1277
+ self.gpuPrice = PriceItem(params.get("gpuPrice"))
1278
+ if params.get("acceleratorPrice") is not None:
1279
+ self.acceleratorPrice = PriceItem(params.get("acceleratorPrice"))
1280
+ if params.get("systemDiskPrice") is not None:
1281
+ self.systemDiskPrice = PriceItem(params.get("systemDiskPrice"))
1217
1282
 
1218
1283
 
1219
1284
  class DescribeZoneGpuInstanceConfigInfosRequest(AbstractModel):
@@ -2081,7 +2146,9 @@ class InquiryPriceResizeDiskResponse(AbstractModel):
2081
2146
  self.diskPrice = None
2082
2147
  self.specPrice = None
2083
2148
  self.gpuPrice = None
2149
+ self.acceleratorPrice = None
2084
2150
  self.diskPerf = None
2151
+ self.previousPrices = None
2085
2152
 
2086
2153
  def _deserialize(self, params):
2087
2154
  self.requestId = params.get("requestId")
@@ -2091,8 +2158,12 @@ class InquiryPriceResizeDiskResponse(AbstractModel):
2091
2158
  self.specPrice = PriceItem(params.get("specPrice"))
2092
2159
  if params.get("gpuPrice") is not None:
2093
2160
  self.gpuPrice = PriceItem(params.get("gpuPrice"))
2161
+ if params.get("acceleratorPrice") is not None:
2162
+ self.acceleratorPrice = PriceItem(params.get("acceleratorPrice"))
2094
2163
  if params.get("diskPerf") is not None:
2095
2164
  self.diskPerf = DiskPerfItem(params.get("diskPerf"))
2165
+ if params.get("previousPrices") is not None:
2166
+ self.previousPrices = ResizeDiskPreviousPrices(params.get("previousPrices"))
2096
2167
 
2097
2168
 
2098
2169
  class DiskPerfItem(AbstractModel):
@@ -2114,6 +2185,29 @@ class DiskPerfItem(AbstractModel):
2114
2185
  self.bandwidthBurst = params.get("bandwidthBurst")
2115
2186
 
2116
2187
 
2188
+ class ResizeDiskPreviousPrices(AbstractModel):
2189
+ def __init__(self, params=None):
2190
+ if params is None:
2191
+ params = {}
2192
+ if len(params) > 0:
2193
+ self._deserialize(params)
2194
+ return
2195
+ self.diskPrice = None
2196
+ self.specPrice = None
2197
+ self.gpuPrice = None
2198
+ self.acceleratorPrice = None
2199
+
2200
+ def _deserialize(self, params):
2201
+ if params.get("diskPrice") is not None:
2202
+ self.diskPrice = PriceItem(params.get("diskPrice"))
2203
+ if params.get("specPrice") is not None:
2204
+ self.specPrice = PriceItem(params.get("specPrice"))
2205
+ if params.get("gpuPrice") is not None:
2206
+ self.gpuPrice = PriceItem(params.get("gpuPrice"))
2207
+ if params.get("acceleratorPrice") is not None:
2208
+ self.acceleratorPrice = PriceItem(params.get("acceleratorPrice"))
2209
+
2210
+
2117
2211
  class DescribeSnapshotsRequest(AbstractModel):
2118
2212
  def __init__(self):
2119
2213
  self.snapshotIds = None
@@ -2846,6 +2940,7 @@ class InquiryPriceChangeIpv6InternetChargeTypeResponse(AbstractModel):
2846
2940
  self.requestId = None
2847
2941
  self.ipv6Price = None
2848
2942
  self.bandwidthPrice = None
2943
+ self.previousPrices = None
2849
2944
 
2850
2945
  def _deserialize(self, params):
2851
2946
  self.requestId = params.get("requestId")
@@ -2853,6 +2948,25 @@ class InquiryPriceChangeIpv6InternetChargeTypeResponse(AbstractModel):
2853
2948
  self.ipv6Price = PriceItem(params.get("ipv6Price"))
2854
2949
  if params.get("bandwidthPrice") is not None:
2855
2950
  self.bandwidthPrice = PriceItem(params.get("bandwidthPrice"))
2951
+ if params.get("previousPrices") is not None:
2952
+ self.previousPrices = Ipv6PreviousPrices(params.get("previousPrices"))
2953
+
2954
+
2955
+ class Ipv6PreviousPrices(AbstractModel):
2956
+ def __init__(self, params=None):
2957
+ if params is None:
2958
+ params = {}
2959
+ if len(params) > 0:
2960
+ self._deserialize(params)
2961
+ return
2962
+ self.ipv6Price = None
2963
+ self.bandwidthPrice = None
2964
+
2965
+ def _deserialize(self, params):
2966
+ if params.get("ipv6Price") is not None:
2967
+ self.ipv6Price = PriceItem(params.get("ipv6Price"))
2968
+ if params.get("bandwidthPrice") is not None:
2969
+ self.bandwidthPrice = PriceItem(params.get("bandwidthPrice"))
2856
2970
 
2857
2971
 
2858
2972
  class AssignNetworkInterfaceIpv6Request(AbstractModel):
@@ -2966,6 +3080,7 @@ class InquiryPriceModifyIpv6BandwidthResponse(AbstractModel):
2966
3080
  self.requestId = None
2967
3081
  self.ipv6Price = None
2968
3082
  self.bandwidthPrice = None
3083
+ self.previousPrices = None
2969
3084
 
2970
3085
  def _deserialize(self, params):
2971
3086
  self.requestId = params.get("requestId")
@@ -2973,6 +3088,8 @@ class InquiryPriceModifyIpv6BandwidthResponse(AbstractModel):
2973
3088
  self.ipv6Price = PriceItem(params.get("ipv6Price"))
2974
3089
  if params.get("bandwidthPrice") is not None:
2975
3090
  self.bandwidthPrice = PriceItem(params.get("bandwidthPrice"))
3091
+ if params.get("previousPrices") is not None:
3092
+ self.previousPrices = Ipv6PreviousPrices(params.get("previousPrices"))
2976
3093
 
2977
3094
 
2978
3095
  class ModifyIpv6BandwidthRequest(AbstractModel):
@@ -4100,6 +4217,7 @@ class CreateEipsRequest(AbstractModel):
4100
4217
  self.peerRegionId = None
4101
4218
  self.marketingOptions = None
4102
4219
  self.tags = None
4220
+ self.instanceId = None
4103
4221
  self.instanceIds = None
4104
4222
  self.bindType = None
4105
4223
  self.rateLimitMode = None
@@ -4136,6 +4254,7 @@ class CreateEipsRequest(AbstractModel):
4136
4254
  self.marketingOptions = MarketingInfo(params.get("marketingOptions"))
4137
4255
  if params.get("tags") is not None:
4138
4256
  self.tags = TagAssociation(params.get("tags"))
4257
+ self.instanceId = params.get("instanceId")
4139
4258
  self.instanceIds = params.get("instanceIds")
4140
4259
  self.bindType = params.get("bindType")
4141
4260
  self.rateLimitMode = params.get("rateLimitMode")
@@ -4638,6 +4757,7 @@ class InquiryPriceModifyEipBandwidthResponse(AbstractModel):
4638
4757
  self.bandwidthPrice = None
4639
4758
  self.bandwidthPrices = None
4640
4759
  self.remoteBandwidthPrice = None
4760
+ self.previousPrices = None
4641
4761
 
4642
4762
  def _deserialize(self, params):
4643
4763
  self.requestId = params.get("requestId")
@@ -4652,6 +4772,34 @@ class InquiryPriceModifyEipBandwidthResponse(AbstractModel):
4652
4772
  self.bandwidthPrices.append(obj)
4653
4773
  if params.get("remoteBandwidthPrice") is not None:
4654
4774
  self.remoteBandwidthPrice = PriceItem(params.get("remoteBandwidthPrice"))
4775
+ if params.get("previousPrices") is not None:
4776
+ self.previousPrices = EipPreviousPrices(params.get("previousPrices"))
4777
+
4778
+
4779
+ class EipPreviousPrices(AbstractModel):
4780
+ def __init__(self, params=None):
4781
+ if params is None:
4782
+ params = {}
4783
+ if len(params) > 0:
4784
+ self._deserialize(params)
4785
+ return
4786
+ self.eipPrice = None
4787
+ self.bandwidthPrice = None
4788
+ self.bandwidthPrices = None
4789
+ self.remoteBandwidthPrice = None
4790
+
4791
+ def _deserialize(self, params):
4792
+ if params.get("eipPrice") is not None:
4793
+ self.eipPrice = PriceItem(params.get("eipPrice"))
4794
+ if params.get("bandwidthPrice") is not None:
4795
+ self.bandwidthPrice = PriceItem(params.get("bandwidthPrice"))
4796
+ if params.get("bandwidthPrices") is not None:
4797
+ self.bandwidthPrices = []
4798
+ for item in params.get("bandwidthPrices"):
4799
+ obj = BandwidthPriceResponseItem(item)
4800
+ self.bandwidthPrices.append(obj)
4801
+ if params.get("remoteBandwidthPrice") is not None:
4802
+ self.remoteBandwidthPrice = PriceItem(params.get("remoteBandwidthPrice"))
4655
4803
 
4656
4804
 
4657
4805
  class InquiryPriceModifyEipFlowPackageRequest(AbstractModel):
@@ -4671,6 +4819,7 @@ class InquiryPriceModifyEipFlowPackageResponse(AbstractModel):
4671
4819
  self.bandwidthPrice = None
4672
4820
  self.bandwidthPrices = None
4673
4821
  self.remoteBandwidthPrice = None
4822
+ self.previousPrices = None
4674
4823
 
4675
4824
  def _deserialize(self, params):
4676
4825
  self.requestId = params.get("requestId")
@@ -4685,6 +4834,8 @@ class InquiryPriceModifyEipFlowPackageResponse(AbstractModel):
4685
4834
  self.bandwidthPrices.append(obj)
4686
4835
  if params.get("remoteBandwidthPrice") is not None:
4687
4836
  self.remoteBandwidthPrice = PriceItem(params.get("remoteBandwidthPrice"))
4837
+ if params.get("previousPrices") is not None:
4838
+ self.previousPrices = EipPreviousPrices(params.get("previousPrices"))
4688
4839
 
4689
4840
 
4690
4841
  class InquiryPriceChangeEipInternetChargeTypeRequest(AbstractModel):
@@ -4710,6 +4861,7 @@ class InquiryPriceChangeEipInternetChargeTypeResponse(AbstractModel):
4710
4861
  self.bandwidthPrice = None
4711
4862
  self.bandwidthPrices = None
4712
4863
  self.remoteBandwidthPrice = None
4864
+ self.previousPrices = None
4713
4865
 
4714
4866
  def _deserialize(self, params):
4715
4867
  self.requestId = params.get("requestId")
@@ -4724,6 +4876,8 @@ class InquiryPriceChangeEipInternetChargeTypeResponse(AbstractModel):
4724
4876
  self.bandwidthPrices.append(obj)
4725
4877
  if params.get("remoteBandwidthPrice") is not None:
4726
4878
  self.remoteBandwidthPrice = PriceItem(params.get("remoteBandwidthPrice"))
4879
+ if params.get("previousPrices") is not None:
4880
+ self.previousPrices = EipPreviousPrices(params.get("previousPrices"))
4727
4881
 
4728
4882
 
4729
4883
  class ModifyEipTrafficPackageRequest(AbstractModel):
@@ -5089,11 +5243,28 @@ class InquiryPriceModifyCrossRegionBandwidthResponse(AbstractModel):
5089
5243
  def __init__(self):
5090
5244
  self.requestId = None
5091
5245
  self.crossRegionBandwidthPrice = None
5246
+ self.previousPrices = None
5092
5247
 
5093
5248
  def _deserialize(self, params):
5094
5249
  self.requestId = params.get("requestId")
5095
5250
  if params.get("crossRegionBandwidthPrice") is not None:
5096
5251
  self.crossRegionBandwidthPrice = PriceItem(params.get("crossRegionBandwidthPrice"))
5252
+ if params.get("previousPrices") is not None:
5253
+ self.previousPrices = CrossRegionBandwidthPreviousPrices(params.get("previousPrices"))
5254
+
5255
+
5256
+ class CrossRegionBandwidthPreviousPrices(AbstractModel):
5257
+ def __init__(self, params=None):
5258
+ if params is None:
5259
+ params = {}
5260
+ if len(params) > 0:
5261
+ self._deserialize(params)
5262
+ return
5263
+ self.crossRegionBandwidthPrice = None
5264
+
5265
+ def _deserialize(self, params):
5266
+ if params.get("crossRegionBandwidthPrice") is not None:
5267
+ self.crossRegionBandwidthPrice = PriceItem(params.get("crossRegionBandwidthPrice"))
5097
5268
 
5098
5269
 
5099
5270
  class ModifyCrossRegionBandwidthAttributeRequest(AbstractModel):
@@ -5191,6 +5362,12 @@ class DescribeCrossRegionBandwidthMonitorDataResponse(AbstractModel):
5191
5362
  self.outAvgValue = None
5192
5363
  self.outMinValue = None
5193
5364
  self.outTotalValue = None
5365
+ self.loseInMaxValue = None
5366
+ self.loseInMinValue = None
5367
+ self.loseInTotalValue = None
5368
+ self.loseOutMaxValue = None
5369
+ self.loseOutMinValue = None
5370
+ self.loseOutTotalValue = None
5194
5371
  self.dataList = None
5195
5372
 
5196
5373
  def _deserialize(self, params):
@@ -5203,6 +5380,12 @@ class DescribeCrossRegionBandwidthMonitorDataResponse(AbstractModel):
5203
5380
  self.outAvgValue = params.get("outAvgValue")
5204
5381
  self.outMinValue = params.get("outMinValue")
5205
5382
  self.outTotalValue = params.get("outTotalValue")
5383
+ self.loseInMaxValue = params.get("loseInMaxValue")
5384
+ self.loseInMinValue = params.get("loseInMinValue")
5385
+ self.loseInTotalValue = params.get("loseInTotalValue")
5386
+ self.loseOutMaxValue = params.get("loseOutMaxValue")
5387
+ self.loseOutMinValue = params.get("loseOutMinValue")
5388
+ self.loseOutTotalValue = params.get("loseOutTotalValue")
5206
5389
  if params.get("dataList") is not None:
5207
5390
  self.dataList = []
5208
5391
  for item in params.get("dataList"):
@@ -5219,12 +5402,16 @@ class CrossRegionBandwidthMetricValue(AbstractModel):
5219
5402
  return
5220
5403
  self.time = None
5221
5404
  self.inValue = None
5405
+ self.loseInValue = None
5222
5406
  self.outValue = None
5407
+ self.loseOutValue = None
5223
5408
 
5224
5409
  def _deserialize(self, params):
5225
5410
  self.time = params.get("time")
5226
5411
  self.inValue = params.get("inValue")
5412
+ self.loseInValue = params.get("loseInValue")
5227
5413
  self.outValue = params.get("outValue")
5414
+ self.loseOutValue = params.get("loseOutValue")
5228
5415
 
5229
5416
 
5230
5417
  class DescribeDhcpOptionsSetsRequest(AbstractModel):
@@ -5835,11 +6022,28 @@ class InquiryPriceModifyUnmanagedEgressIpBandwidthResponse(AbstractModel):
5835
6022
  def __init__(self):
5836
6023
  self.requestId = None
5837
6024
  self.bandwidthPrice = None
6025
+ self.previousPrices = None
5838
6026
 
5839
6027
  def _deserialize(self, params):
5840
6028
  self.requestId = params.get("requestId")
5841
6029
  if params.get("bandwidthPrice") is not None:
5842
6030
  self.bandwidthPrice = PriceItem(params.get("bandwidthPrice"))
6031
+ if params.get("previousPrices") is not None:
6032
+ self.previousPrices = UnmanagedEgressIpPreviousPrices(params.get("previousPrices"))
6033
+
6034
+
6035
+ class UnmanagedEgressIpPreviousPrices(AbstractModel):
6036
+ def __init__(self, params=None):
6037
+ if params is None:
6038
+ params = {}
6039
+ if len(params) > 0:
6040
+ self._deserialize(params)
6041
+ return
6042
+ self.bandwidthPrice = None
6043
+
6044
+ def _deserialize(self, params):
6045
+ if params.get("bandwidthPrice") is not None:
6046
+ self.bandwidthPrice = PriceItem(params.get("bandwidthPrice"))
5843
6047
 
5844
6048
 
5845
6049
  class InquiryPriceChangeUnmanagedEgressIpInternetChargeTypeRequest(AbstractModel):
@@ -5860,11 +6064,14 @@ class InquiryPriceChangeUnmanagedEgressIpInternetChargeTypeResponse(AbstractMode
5860
6064
  def __init__(self):
5861
6065
  self.requestId = None
5862
6066
  self.bandwidthPrice = None
6067
+ self.previousPrices = None
5863
6068
 
5864
6069
  def _deserialize(self, params):
5865
6070
  self.requestId = params.get("requestId")
5866
6071
  if params.get("bandwidthPrice") is not None:
5867
6072
  self.bandwidthPrice = PriceItem(params.get("bandwidthPrice"))
6073
+ if params.get("previousPrices") is not None:
6074
+ self.previousPrices = UnmanagedEgressIpPreviousPrices(params.get("previousPrices"))
5868
6075
 
5869
6076
 
5870
6077
  class DescribeQosPolicyGroupsRequest(AbstractModel):
@@ -17,6 +17,15 @@ class ZecClient(AbstractClient):
17
17
  model._deserialize(response)
18
18
  return model
19
19
 
20
+ def DescribeRegions(self, request):
21
+ """
22
+ 查询节点信息。包括名称、所属的行政区划等。
23
+ """
24
+ response = self._api_call("DescribeRegions", request)
25
+ model = models.DescribeRegionsResponse()
26
+ model._deserialize(response)
27
+ return model
28
+
20
29
  def DescribeZoneInstanceConfigInfos(self, request):
21
30
  """
22
31
  查询可用区售卖的机型信息。
@@ -226,7 +235,7 @@ class ZecClient(AbstractClient):
226
235
 
227
236
  def InquiryPriceModifyInstanceType(self, request):
228
237
  """
229
- 查询变更实例规格后的价格。
238
+ 查询变更实例规格后的价格,同时通过 previousPrices 返回变更前各计费项当前生效的价格,用于对比出哪些计费项发生了调价。
230
239
  """
231
240
  response = self._api_call("InquiryPriceModifyInstanceType", request)
232
241
  model = models.InquiryPriceModifyInstanceTypeResponse()
@@ -442,7 +451,7 @@ class ZecClient(AbstractClient):
442
451
 
443
452
  def InquiryPriceResizeDisk(self, request):
444
453
  """
445
- 查询云硬盘扩容后的新价格。
454
+ 查询云硬盘扩容后的新价格。同时通过 previousPrices 返回扩容前各计费项当前生效的价格,用于对比出哪些计费项发生了调价。
446
455
  """
447
456
  response = self._api_call("InquiryPriceResizeDisk", request)
448
457
  model = models.InquiryPriceResizeDiskResponse()
@@ -667,7 +676,7 @@ class ZecClient(AbstractClient):
667
676
 
668
677
  def InquiryPriceChangeIpv6InternetChargeType(self, request):
669
678
  """
670
- 查询变更IPv6网络计费模式后的价格。
679
+ 查询变更IPv6网络计费模式后的价格。同时通过 previousPrices 返回变更前各计费项当前生效的价格,用于对比出哪些计费项发生了调价。
671
680
  """
672
681
  response = self._api_call("InquiryPriceChangeIpv6InternetChargeType", request)
673
682
  model = models.InquiryPriceChangeIpv6InternetChargeTypeResponse()
@@ -712,7 +721,7 @@ class ZecClient(AbstractClient):
712
721
 
713
722
  def InquiryPriceModifyIpv6Bandwidth(self, request):
714
723
  """
715
- 查询调整IPv6带宽后的价格。
724
+ 查询调整IPv6带宽后的价格。同时通过 previousPrices 返回变更前各计费项当前生效的价格,用于对比出哪些计费项发生了调价。
716
725
  """
717
726
  response = self._api_call("InquiryPriceModifyIpv6Bandwidth", request)
718
727
  model = models.InquiryPriceModifyIpv6BandwidthResponse()
@@ -1081,7 +1090,7 @@ class ZecClient(AbstractClient):
1081
1090
 
1082
1091
  def InquiryPriceModifyEipBandwidth(self, request):
1083
1092
  """
1084
- 查询调整EIP带宽后的价格。
1093
+ 查询调整EIP带宽后的价格。同时通过 previousPrices 返回变更前各计费项当前生效的价格,用于对比出哪些计费项发生了调价。
1085
1094
  """
1086
1095
  response = self._api_call("InquiryPriceModifyEipBandwidth", request)
1087
1096
  model = models.InquiryPriceModifyEipBandwidthResponse()
@@ -1090,7 +1099,7 @@ class ZecClient(AbstractClient):
1090
1099
 
1091
1100
  def InquiryPriceModifyEipFlowPackage(self, request):
1092
1101
  """
1093
- 查询调整EIP流量包后的价格。
1102
+ 查询调整EIP流量包后的价格。同时通过 previousPrices 返回变更前各计费项当前生效的价格,用于对比出哪些计费项发生了调价。
1094
1103
  """
1095
1104
  response = self._api_call("InquiryPriceModifyEipFlowPackage", request)
1096
1105
  model = models.InquiryPriceModifyEipFlowPackageResponse()
@@ -1099,7 +1108,7 @@ class ZecClient(AbstractClient):
1099
1108
 
1100
1109
  def InquiryPriceChangeEipInternetChargeType(self, request):
1101
1110
  """
1102
- 查询变更EIP网络计费模式后的价格。
1111
+ 查询变更EIP网络计费模式后的价格。同时通过 previousPrices 返回变更前各计费项当前生效的价格,用于对比出哪些计费项发生了调价。
1103
1112
  """
1104
1113
  response = self._api_call("InquiryPriceChangeEipInternetChargeType", request)
1105
1114
  model = models.InquiryPriceChangeEipInternetChargeTypeResponse()
@@ -1198,7 +1207,7 @@ class ZecClient(AbstractClient):
1198
1207
 
1199
1208
  def InquiryPriceModifyCrossRegionBandwidth(self, request):
1200
1209
  """
1201
- 调整内网跨区域带宽询价。
1210
+ 调整内网跨区域带宽询价。同时通过 previousPrices 返回变更前各计费项当前生效的价格,用于对比出哪些计费项发生了调价。
1202
1211
  """
1203
1212
  response = self._api_call("InquiryPriceModifyCrossRegionBandwidth", request)
1204
1213
  model = models.InquiryPriceModifyCrossRegionBandwidthResponse()
@@ -1423,7 +1432,7 @@ class ZecClient(AbstractClient):
1423
1432
 
1424
1433
  def InquiryPriceModifyUnmanagedEgressIpBandwidth(self, request):
1425
1434
  """
1426
- 查询调整非托管出口IP带宽后的价格。
1435
+ 查询调整非托管出口IP带宽后的价格。同时通过 previousPrices 返回变更前各计费项当前生效的价格,用于对比出哪些计费项发生了调价。
1427
1436
  """
1428
1437
  response = self._api_call("InquiryPriceModifyUnmanagedEgressIpBandwidth", request)
1429
1438
  model = models.InquiryPriceModifyUnmanagedEgressIpBandwidthResponse()
@@ -1432,7 +1441,7 @@ class ZecClient(AbstractClient):
1432
1441
 
1433
1442
  def InquiryPriceChangeUnmanagedEgressIpInternetChargeType(self, request):
1434
1443
  """
1435
- 查询变更非托管出口IP网络计费模式后的价格。
1444
+ 查询变更非托管出口IP网络计费模式后的价格。同时通过 previousPrices 返回变更前各计费项当前生效的价格,用于对比出哪些计费项发生了调价。
1436
1445
  """
1437
1446
  response = self._api_call("InquiryPriceChangeUnmanagedEgressIpInternetChargeType", request)
1438
1447
  model = models.InquiryPriceChangeUnmanagedEgressIpInternetChargeTypeResponse()
@@ -119,6 +119,7 @@ class LoadBalancer(AbstractModel):
119
119
  self.privateIpAddress = None
120
120
  self.healthCheckPrivateIps = None
121
121
  self.listenerCount = None
122
+ self.backendServerCount = None
122
123
  self.createTime = None
123
124
  self.resourceGroup = None
124
125
  self.tags = None
@@ -134,6 +135,7 @@ class LoadBalancer(AbstractModel):
134
135
  self.privateIpAddress = params.get("privateIpAddress")
135
136
  self.healthCheckPrivateIps = params.get("healthCheckPrivateIps")
136
137
  self.listenerCount = params.get("listenerCount")
138
+ self.backendServerCount = params.get("backendServerCount")
137
139
  self.createTime = params.get("createTime")
138
140
  if params.get("resourceGroup") is not None:
139
141
  self.resourceGroup = ResourceGroupInfo(params.get("resourceGroup"))
@@ -307,6 +309,7 @@ class CreateLoadBalancerRequest(AbstractModel):
307
309
  self.subnetId = None
308
310
  self.healthCheckPrivateIps = None
309
311
  self.loadBalancerName = None
312
+ self.eipIds = None
310
313
  self.internetChargeType = None
311
314
  self.ipNetworkType = None
312
315
  self.networkLineType = None
@@ -325,6 +328,7 @@ class CreateLoadBalancerRequest(AbstractModel):
325
328
  self.subnetId = params.get("subnetId")
326
329
  self.healthCheckPrivateIps = params.get("healthCheckPrivateIps")
327
330
  self.loadBalancerName = params.get("loadBalancerName")
331
+ self.eipIds = params.get("eipIds")
328
332
  self.internetChargeType = params.get("internetChargeType")
329
333
  if params.get("ipNetworkType") is not None:
330
334
  warnings.warn(
@@ -1,37 +1,25 @@
1
1
  # Zenlayer.com Inc.
2
2
  # Copyright (c) 2014-2024 All Rights Reserved.
3
3
  from zenlayercloud.common.abstract_model import AbstractModel
4
+ import warnings
4
5
 
5
-
6
- class CreateCommandRequest(AbstractModel):
6
+ class DescribeCommandsRequest(AbstractModel):
7
7
  def __init__(self):
8
+ self.commandIds = None
8
9
  self.name = None
9
- self.content = None
10
- self.type = None
11
- self.description = None
12
- self.resourceGroupId = None
10
+ self.types = None
11
+ self.pageSize = None
12
+ self.pageNum = None
13
+ self.tagKeys = None
13
14
  self.tags = None
14
15
 
15
16
  def _deserialize(self, params):
17
+ self.commandIds = params.get("commandIds")
16
18
  self.name = params.get("name")
17
- self.content = params.get("content")
18
- self.type = params.get("type")
19
- self.description = params.get("description")
20
- self.resourceGroupId = params.get("resourceGroupId")
21
- if params.get("tags") is not None:
22
- self.tags = TagAssociation(params.get("tags"))
23
-
24
-
25
- class TagAssociation(AbstractModel):
26
- def __init__(self, params=None):
27
- if params is None:
28
- params = {}
29
- if len(params) > 0:
30
- self._deserialize(params)
31
- return
32
- self.tags = None
33
-
34
- def _deserialize(self, params):
19
+ self.types = params.get("types")
20
+ self.pageSize = params.get("pageSize")
21
+ self.pageNum = params.get("pageNum")
22
+ self.tagKeys = params.get("tagKeys")
35
23
  if params.get("tags") is not None:
36
24
  self.tags = []
37
25
  for item in params.get("tags"):
@@ -54,40 +42,6 @@ class Tag(AbstractModel):
54
42
  self.value = params.get("value")
55
43
 
56
44
 
57
- class CreateCommandResponse(AbstractModel):
58
- def __init__(self):
59
- self.requestId = None
60
- self.commandId = None
61
-
62
- def _deserialize(self, params):
63
- self.requestId = params.get("requestId")
64
- self.commandId = params.get("commandId")
65
-
66
-
67
- class DescribeCommandsRequest(AbstractModel):
68
- def __init__(self):
69
- self.commandIds = None
70
- self.name = None
71
- self.types = None
72
- self.pageSize = None
73
- self.pageNum = None
74
- self.tagKeys = None
75
- self.tags = None
76
-
77
- def _deserialize(self, params):
78
- self.commandIds = params.get("commandIds")
79
- self.name = params.get("name")
80
- self.types = params.get("types")
81
- self.pageSize = params.get("pageSize")
82
- self.pageNum = params.get("pageNum")
83
- self.tagKeys = params.get("tagKeys")
84
- if params.get("tags") is not None:
85
- self.tags = []
86
- for item in params.get("tags"):
87
- obj = Tag(item)
88
- self.tags.append(obj)
89
-
90
-
91
45
  class DescribeCommandsResponse(AbstractModel):
92
46
  def __init__(self):
93
47
  self.requestId = None
@@ -167,64 +121,110 @@ class ResourceGroupInfo(AbstractModel):
167
121
  self.resourceGroupName = params.get("resourceGroupName")
168
122
 
169
123
 
170
- class ModifyCommandRequest(AbstractModel):
124
+ class CreateCommandRequest(AbstractModel):
171
125
  def __init__(self):
172
- self.commandId = None
173
126
  self.name = None
174
127
  self.content = None
128
+ self.type = None
175
129
  self.description = None
130
+ self.resourceGroupId = None
131
+ self.tags = None
176
132
 
177
133
  def _deserialize(self, params):
178
- self.commandId = params.get("commandId")
179
134
  self.name = params.get("name")
180
135
  self.content = params.get("content")
136
+ self.type = params.get("type")
181
137
  self.description = params.get("description")
138
+ self.resourceGroupId = params.get("resourceGroupId")
139
+ if params.get("tags") is not None:
140
+ self.tags = TagAssociation(params.get("tags"))
182
141
 
183
142
 
184
- class ModifyCommandResponse(AbstractModel):
143
+ class TagAssociation(AbstractModel):
144
+ def __init__(self, params=None):
145
+ if params is None:
146
+ params = {}
147
+ if len(params) > 0:
148
+ self._deserialize(params)
149
+ return
150
+ self.tags = None
151
+
152
+ def _deserialize(self, params):
153
+ if params.get("tags") is not None:
154
+ self.tags = []
155
+ for item in params.get("tags"):
156
+ obj = Tag(item)
157
+ self.tags.append(obj)
158
+
159
+
160
+ class CreateCommandResponse(AbstractModel):
185
161
  def __init__(self):
186
162
  self.requestId = None
163
+ self.commandId = None
187
164
 
188
165
  def _deserialize(self, params):
189
166
  self.requestId = params.get("requestId")
167
+ self.commandId = params.get("commandId")
190
168
 
191
169
 
192
- class DeleteCommandRequest(AbstractModel):
170
+ class InvokeCommandRequest(AbstractModel):
193
171
  def __init__(self):
194
172
  self.commandId = None
173
+ self.instanceIds = None
174
+ self.timeout = None
195
175
 
196
176
  def _deserialize(self, params):
197
177
  self.commandId = params.get("commandId")
178
+ self.instanceIds = params.get("instanceIds")
179
+ self.timeout = params.get("timeout")
198
180
 
199
181
 
200
- class DeleteCommandResponse(AbstractModel):
182
+ class InvokeCommandResponse(AbstractModel):
201
183
  def __init__(self):
202
184
  self.requestId = None
185
+ self.invocationId = None
203
186
 
204
187
  def _deserialize(self, params):
205
188
  self.requestId = params.get("requestId")
189
+ self.invocationId = params.get("invocationId")
206
190
 
207
191
 
208
- class InvokeCommandRequest(AbstractModel):
192
+ class ModifyCommandRequest(AbstractModel):
209
193
  def __init__(self):
210
194
  self.commandId = None
211
- self.instanceIds = None
212
- self.timeout = None
195
+ self.name = None
196
+ self.content = None
197
+ self.description = None
213
198
 
214
199
  def _deserialize(self, params):
215
200
  self.commandId = params.get("commandId")
216
- self.instanceIds = params.get("instanceIds")
217
- self.timeout = params.get("timeout")
201
+ self.name = params.get("name")
202
+ self.content = params.get("content")
203
+ self.description = params.get("description")
218
204
 
219
205
 
220
- class InvokeCommandResponse(AbstractModel):
206
+ class ModifyCommandResponse(AbstractModel):
207
+ def __init__(self):
208
+ self.requestId = None
209
+
210
+ def _deserialize(self, params):
211
+ self.requestId = params.get("requestId")
212
+
213
+
214
+ class DeleteCommandRequest(AbstractModel):
215
+ def __init__(self):
216
+ self.commandId = None
217
+
218
+ def _deserialize(self, params):
219
+ self.commandId = params.get("commandId")
220
+
221
+
222
+ class DeleteCommandResponse(AbstractModel):
221
223
  def __init__(self):
222
224
  self.requestId = None
223
- self.invocationId = None
224
225
 
225
226
  def _deserialize(self, params):
226
227
  self.requestId = params.get("requestId")
227
- self.invocationId = params.get("invocationId")
228
228
 
229
229
 
230
230
  class DescribeCommandInvocationsRequest(AbstractModel):
@@ -4,41 +4,59 @@ from zenlayercloud.zos.v20251010 import models
4
4
  from zenlayercloud.common.abstract_client import AbstractClient
5
5
 
6
6
 
7
- class ZOSClient(AbstractClient):
7
+ class ZosClient(AbstractClient):
8
8
  _api_version = "2025-10-10"
9
9
  _service = "zos"
10
10
 
11
+ def DescribeCommands(self, request):
12
+ """
13
+ 查询命令列表。
14
+ """
15
+ response = self._api_call("DescribeCommands", request)
16
+ model = models.DescribeCommandsResponse()
17
+ model._deserialize(response)
18
+ return model
19
+
11
20
  def CreateCommand(self, request):
21
+ """
22
+ 创建命令。
23
+ """
12
24
  response = self._api_call("CreateCommand", request)
13
25
  model = models.CreateCommandResponse()
14
26
  model._deserialize(response)
15
27
  return model
16
28
 
17
- def DescribeCommands(self, request):
18
- response = self._api_call("DescribeCommands", request)
19
- model = models.DescribeCommandsResponse()
29
+ def InvokeCommand(self, request):
30
+ """
31
+ 执行一个已经创建并保存的命令。
32
+ """
33
+ response = self._api_call("InvokeCommand", request)
34
+ model = models.InvokeCommandResponse()
20
35
  model._deserialize(response)
21
36
  return model
22
37
 
23
38
  def ModifyCommand(self, request):
39
+ """
40
+ 修改命令。
41
+ """
24
42
  response = self._api_call("ModifyCommand", request)
25
43
  model = models.ModifyCommandResponse()
26
44
  model._deserialize(response)
27
45
  return model
28
46
 
29
47
  def DeleteCommand(self, request):
48
+ """
49
+ 删除命令。
50
+ """
30
51
  response = self._api_call("DeleteCommand", request)
31
52
  model = models.DeleteCommandResponse()
32
53
  model._deserialize(response)
33
54
  return model
34
55
 
35
- def InvokeCommand(self, request):
36
- response = self._api_call("InvokeCommand", request)
37
- model = models.InvokeCommandResponse()
38
- model._deserialize(response)
39
- return model
40
-
41
56
  def DescribeCommandInvocations(self, request):
57
+ """
58
+ 查询执行记录列表。
59
+ """
42
60
  response = self._api_call("DescribeCommandInvocations", request)
43
61
  model = models.DescribeCommandInvocationsResponse()
44
62
  model._deserialize(response)
@@ -263,3 +263,113 @@ class ResourceInfo(AbstractModel):
263
263
  self.resourceUuid = params.get("resourceUuid")
264
264
 
265
265
 
266
+ class DescribeResourceTypesRequest(AbstractModel):
267
+ def __init__(self):
268
+ self.services = None
269
+ self.resourceTypes = None
270
+
271
+ def _deserialize(self, params):
272
+ self.services = params.get("services")
273
+ self.resourceTypes = params.get("resourceTypes")
274
+
275
+
276
+ class DescribeResourceTypesResponse(AbstractModel):
277
+ def __init__(self):
278
+ self.requestId = None
279
+ self.totalCount = None
280
+ self.dataSet = None
281
+
282
+ def _deserialize(self, params):
283
+ self.requestId = params.get("requestId")
284
+ self.totalCount = params.get("totalCount")
285
+ if params.get("dataSet") is not None:
286
+ self.dataSet = []
287
+ for item in params.get("dataSet"):
288
+ obj = ResourceTypeInfo(item)
289
+ self.dataSet.append(obj)
290
+
291
+
292
+ class ResourceTypeInfo(AbstractModel):
293
+ def __init__(self, params=None):
294
+ if params is None:
295
+ params = {}
296
+ if len(params) > 0:
297
+ self._deserialize(params)
298
+ return
299
+ self.resourceType = None
300
+ self.name = None
301
+ self.service = None
302
+
303
+ def _deserialize(self, params):
304
+ self.resourceType = params.get("resourceType")
305
+ self.name = params.get("name")
306
+ self.service = params.get("service")
307
+
308
+
309
+ class DescribeResourcesRequest(AbstractModel):
310
+ def __init__(self):
311
+ self.pageNum = None
312
+ self.pageSize = None
313
+ self.resourceIds = None
314
+ self.resourceName = None
315
+ self.resourceGroupId = None
316
+ self.tags = None
317
+ self.tagKeys = None
318
+
319
+ def _deserialize(self, params):
320
+ self.pageNum = params.get("pageNum")
321
+ self.pageSize = params.get("pageSize")
322
+ self.resourceIds = params.get("resourceIds")
323
+ self.resourceName = params.get("resourceName")
324
+ self.resourceGroupId = params.get("resourceGroupId")
325
+ if params.get("tags") is not None:
326
+ self.tags = []
327
+ for item in params.get("tags"):
328
+ obj = Tag(item)
329
+ self.tags.append(obj)
330
+ self.tagKeys = params.get("tagKeys")
331
+
332
+
333
+ class DescribeResourcesResponse(AbstractModel):
334
+ def __init__(self):
335
+ self.requestId = None
336
+ self.totalCount = None
337
+ self.dataSet = None
338
+
339
+ def _deserialize(self, params):
340
+ self.requestId = params.get("requestId")
341
+ self.totalCount = params.get("totalCount")
342
+ if params.get("dataSet") is not None:
343
+ self.dataSet = []
344
+ for item in params.get("dataSet"):
345
+ obj = ResourceSearchInfo(item)
346
+ self.dataSet.append(obj)
347
+
348
+
349
+ class ResourceSearchInfo(AbstractModel):
350
+ def __init__(self, params=None):
351
+ if params is None:
352
+ params = {}
353
+ if len(params) > 0:
354
+ self._deserialize(params)
355
+ return
356
+ self.resourceId = None
357
+ self.name = None
358
+ self.resourceType = None
359
+ self.createTime = None
360
+ self.resourceGroupId = None
361
+ self.resourceGroupName = None
362
+ self.location = None
363
+ self.service = None
364
+
365
+ def _deserialize(self, params):
366
+ self.resourceId = params.get("resourceId")
367
+ self.name = params.get("name")
368
+ self.resourceType = params.get("resourceType")
369
+ self.createTime = params.get("createTime")
370
+ self.resourceGroupId = params.get("resourceGroupId")
371
+ self.resourceGroupName = params.get("resourceGroupName")
372
+ self.location = params.get("location")
373
+ self.service = params.get("service")
374
+
375
+
@@ -10,7 +10,7 @@ class ZrmClient(AbstractClient):
10
10
 
11
11
  def DescribeTags(self, request):
12
12
  """
13
- 获取某个资源下绑定的所有标签列表。
13
+ 标签分页列表。
14
14
  """
15
15
  response = self._api_call("DescribeTags", request)
16
16
  model = models.DescribeTagsResponse()
@@ -80,3 +80,21 @@ class ZrmClient(AbstractClient):
80
80
  model._deserialize(response)
81
81
  return model
82
82
 
83
+ def DescribeResourceTypes(self, request):
84
+ """
85
+ 查询当前支持的资源类型,支持按所属服务与资源类型筛选。
86
+ """
87
+ response = self._api_call("DescribeResourceTypes", request)
88
+ model = models.DescribeResourceTypesResponse()
89
+ model._deserialize(response)
90
+ return model
91
+
92
+ def DescribeResources(self, request):
93
+ """
94
+ 按资源唯一标识或资源名称搜索当前Team下的所有资源。
95
+ """
96
+ response = self._api_call("DescribeResources", request)
97
+ model = models.DescribeResourcesResponse()
98
+ model._deserialize(response)
99
+ return model
100
+
File without changes
File without changes
@@ -0,0 +1,181 @@
1
+ # Zenlayer.com Inc.
2
+ # Copyright (c) 2014-2024 All Rights Reserved.
3
+ from zenlayercloud.common.abstract_model import AbstractModel
4
+ import warnings
5
+
6
+ class DescribeTicketsRequest(AbstractModel):
7
+ def __init__(self):
8
+ self.ticketNumber = None
9
+ self.type = None
10
+ self.description = None
11
+ self.statuses = None
12
+ self.startTime = None
13
+ self.endTime = None
14
+ self.createTimeDesc = None
15
+ self.pageSize = None
16
+ self.pageNum = None
17
+
18
+ def _deserialize(self, params):
19
+ self.ticketNumber = params.get("ticketNumber")
20
+ self.type = params.get("type")
21
+ self.description = params.get("description")
22
+ self.statuses = params.get("statuses")
23
+ self.startTime = params.get("startTime")
24
+ self.endTime = params.get("endTime")
25
+ self.createTimeDesc = params.get("createTimeDesc")
26
+ self.pageSize = params.get("pageSize")
27
+ self.pageNum = params.get("pageNum")
28
+
29
+
30
+ class DescribeTicketsResponse(AbstractModel):
31
+ def __init__(self):
32
+ self.requestId = None
33
+ self.totalCount = None
34
+ self.dataSet = None
35
+
36
+ def _deserialize(self, params):
37
+ self.requestId = params.get("requestId")
38
+ self.totalCount = params.get("totalCount")
39
+ if params.get("dataSet") is not None:
40
+ self.dataSet = []
41
+ for item in params.get("dataSet"):
42
+ obj = TicketItem(item)
43
+ self.dataSet.append(obj)
44
+
45
+
46
+ class TicketItem(AbstractModel):
47
+ def __init__(self, params=None):
48
+ if params is None:
49
+ params = {}
50
+ if len(params) > 0:
51
+ self._deserialize(params)
52
+ return
53
+ self.ticketId = None
54
+ self.ticketNumber = None
55
+ self.type = None
56
+ self.status = None
57
+ self.description = None
58
+ self.createTime = None
59
+
60
+ def _deserialize(self, params):
61
+ self.ticketId = params.get("ticketId")
62
+ self.ticketNumber = params.get("ticketNumber")
63
+ self.type = params.get("type")
64
+ self.status = params.get("status")
65
+ self.description = params.get("description")
66
+ self.createTime = params.get("createTime")
67
+
68
+
69
+ class CreateTicketRequest(AbstractModel):
70
+ def __init__(self):
71
+ self.type = None
72
+ self.description = None
73
+ self.contactName = None
74
+ self.contactEmail = None
75
+ self.contactPhone = None
76
+
77
+ def _deserialize(self, params):
78
+ self.type = params.get("type")
79
+ self.description = params.get("description")
80
+ self.contactName = params.get("contactName")
81
+ self.contactEmail = params.get("contactEmail")
82
+ self.contactPhone = params.get("contactPhone")
83
+
84
+
85
+ class CreateTicketResponse(AbstractModel):
86
+ def __init__(self):
87
+ self.requestId = None
88
+ self.ticketId = None
89
+
90
+ def _deserialize(self, params):
91
+ self.requestId = params.get("requestId")
92
+ self.ticketId = params.get("ticketId")
93
+
94
+
95
+ class DescribeTicketDetailRequest(AbstractModel):
96
+ def __init__(self):
97
+ self.ticketId = None
98
+
99
+ def _deserialize(self, params):
100
+ self.ticketId = params.get("ticketId")
101
+
102
+
103
+ class DescribeTicketDetailResponse(AbstractModel):
104
+ def __init__(self):
105
+ self.requestId = None
106
+ self.ticketId = None
107
+ self.ticketNumber = None
108
+ self.type = None
109
+ self.status = None
110
+ self.description = None
111
+ self.contactName = None
112
+ self.contactEmail = None
113
+ self.contactPhone = None
114
+ self.createTime = None
115
+ self.messages = None
116
+
117
+ def _deserialize(self, params):
118
+ self.requestId = params.get("requestId")
119
+ self.ticketId = params.get("ticketId")
120
+ self.ticketNumber = params.get("ticketNumber")
121
+ self.type = params.get("type")
122
+ self.status = params.get("status")
123
+ self.description = params.get("description")
124
+ self.contactName = params.get("contactName")
125
+ self.contactEmail = params.get("contactEmail")
126
+ self.contactPhone = params.get("contactPhone")
127
+ self.createTime = params.get("createTime")
128
+ if params.get("messages") is not None:
129
+ self.messages = []
130
+ for item in params.get("messages"):
131
+ obj = TicketMessage(item)
132
+ self.messages.append(obj)
133
+
134
+
135
+ class TicketMessage(AbstractModel):
136
+ def __init__(self, params=None):
137
+ if params is None:
138
+ params = {}
139
+ if len(params) > 0:
140
+ self._deserialize(params)
141
+ return
142
+ self.subject = None
143
+ self.content = None
144
+ self.fromName = None
145
+ self.fromAddress = None
146
+ self.toAddress = None
147
+ self.ccAddress = None
148
+ self.messageDate = None
149
+
150
+ def _deserialize(self, params):
151
+ self.subject = params.get("subject")
152
+ self.content = params.get("content")
153
+ self.fromName = params.get("fromName")
154
+ self.fromAddress = params.get("fromAddress")
155
+ self.toAddress = params.get("toAddress")
156
+ self.ccAddress = params.get("ccAddress")
157
+ self.messageDate = params.get("messageDate")
158
+
159
+
160
+ class DescribeTicketCreationQuotaRequest(AbstractModel):
161
+ def __init__(self):
162
+ pass
163
+
164
+ def _deserialize(self, params):
165
+ pass
166
+
167
+
168
+ class DescribeTicketCreationQuotaResponse(AbstractModel):
169
+ def __init__(self):
170
+ self.requestId = None
171
+ self.canCreate = None
172
+ self.createdCountLastHour = None
173
+ self.limitPerHour = None
174
+
175
+ def _deserialize(self, params):
176
+ self.requestId = params.get("requestId")
177
+ self.canCreate = params.get("canCreate")
178
+ self.createdCountLastHour = params.get("createdCountLastHour")
179
+ self.limitPerHour = params.get("limitPerHour")
180
+
181
+
@@ -0,0 +1,46 @@
1
+ # Zenlayer.com Inc.
2
+ # Copyright (c) 2014-2024 All Rights Reserved.
3
+ from zenlayercloud.zsp.v20260801 import models
4
+ from zenlayercloud.common.abstract_client import AbstractClient
5
+
6
+
7
+ class ZspClient(AbstractClient):
8
+ _api_version = "2026-08-01"
9
+ _service = "zsp"
10
+
11
+ def DescribeTickets(self, request):
12
+ """
13
+ 查询当前团队提交的工单列表。
14
+ """
15
+ response = self._api_call("DescribeTickets", request)
16
+ model = models.DescribeTicketsResponse()
17
+ model._deserialize(response)
18
+ return model
19
+
20
+ def CreateTicket(self, request):
21
+ """
22
+ 创建一个工单。
23
+ """
24
+ response = self._api_call("CreateTicket", request)
25
+ model = models.CreateTicketResponse()
26
+ model._deserialize(response)
27
+ return model
28
+
29
+ def DescribeTicketDetail(self, request):
30
+ """
31
+ 查询指定工单的详细信息与沟通记录。
32
+ """
33
+ response = self._api_call("DescribeTicketDetail", request)
34
+ model = models.DescribeTicketDetailResponse()
35
+ model._deserialize(response)
36
+ return model
37
+
38
+ def DescribeTicketCreationQuota(self, request):
39
+ """
40
+ 查询当前团队一小时内是否还可以创建工单。
41
+ """
42
+ response = self._api_call("DescribeTicketCreationQuota", request)
43
+ model = models.DescribeTicketCreationQuotaResponse()
44
+ model._deserialize(response)
45
+ return model
46
+
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: zenlayercloud-sdk-python
3
- Version: 2.0.73
3
+ Version: 2.0.74
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,4 +1,4 @@
1
- zenlayercloud/__init__.py,sha256=IDpxTu22aJ5Bo_bUcZr74okofa7BYl4mv8EXUOCFq1I,95
1
+ zenlayercloud/__init__.py,sha256=nPXlZ1YBLYUASm-8yEZOl3rJY4WnPLt5zz8ldHTDPiQ,95
2
2
  zenlayercloud/aigw/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
3
3
  zenlayercloud/aigw/v20260414/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
4
4
  zenlayercloud/aigw/v20260414/aigw_client.py,sha256=M2bWvGxbuk8WRvXwJha5847fe78_-PIgnXPRhgKWXEA,6292
@@ -80,15 +80,15 @@ zenlayercloud/zec/v20240401/__init__.py,sha256=A82oWiV038jIXEbygeOeO1DzWKOqGkdQI
80
80
  zenlayercloud/zec/v20240401/models.py,sha256=2y8NHcednqU-_TdxG6WMfdA1ySvDaTeS7SnnxPfOBNE,131319
81
81
  zenlayercloud/zec/v20240401/zec_client.py,sha256=KoDlhy0ufpQB8eHCr4WP1AY5TNvtWK_0XnyoUGA0TeA,29784
82
82
  zenlayercloud/zec/v20250901/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
83
- zenlayercloud/zec/v20250901/models.py,sha256=EeVTn11Tej4Fbn2dvvbF1uWmQs48K5dFDdW-064CN_Q,262289
84
- zenlayercloud/zec/v20250901/zec_client.py,sha256=b3m_gtXSsBqwoTydHeoiLA7dZ25-SlQg2mtgPzFF_0A,70853
83
+ zenlayercloud/zec/v20250901/models.py,sha256=BoalzBpDqvi6mXnl6DGNV8FV-P77e1vVmfRkdLVxu5E,270406
84
+ zenlayercloud/zec/v20250901/zec_client.py,sha256=BF0yMehC_fY_rkfmDzX4dQz710lMrApMwB1ony0fbpk,72429
85
85
  zenlayercloud/zga/__init__.py,sha256=A82oWiV038jIXEbygeOeO1DzWKOqGkdQI2X9BX0HkvM,69
86
86
  zenlayercloud/zga/v20241104/__init__.py,sha256=A82oWiV038jIXEbygeOeO1DzWKOqGkdQI2X9BX0HkvM,69
87
87
  zenlayercloud/zga/v20241104/models.py,sha256=92gBJss6q0Z5FGk2DfHBTvCdif6OY5cVU32gXOY3E2M,40155
88
88
  zenlayercloud/zga/v20241104/zga_client.py,sha256=C3q04lQsdT8XAOzQsbuOYVLa2tQKfZE1utCtDn256E8,7590
89
89
  zenlayercloud/zlb/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
90
90
  zenlayercloud/zlb/v20250401/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
91
- zenlayercloud/zlb/v20250401/models.py,sha256=1t_3lLKQ19EZegLoMNnOJaeDC0ovg51iF24NtNySHxo,31494
91
+ zenlayercloud/zlb/v20250401/models.py,sha256=5kNMnovWqov8YYi-jIBvoVz1pVt0GZ8AY2lBc3FzkCw,31670
92
92
  zenlayercloud/zlb/v20250401/zlb_client.py,sha256=vf6noJvxlc2IuZHORdCKHNFmwQf_LKPTD3qrrx8zsiU,7217
93
93
  zenlayercloud/zls/__init__.py,sha256=A82oWiV038jIXEbygeOeO1DzWKOqGkdQI2X9BX0HkvM,69
94
94
  zenlayercloud/zls/v20230804/__init__.py,sha256=A82oWiV038jIXEbygeOeO1DzWKOqGkdQI2X9BX0HkvM,69
@@ -96,14 +96,18 @@ zenlayercloud/zls/v20230804/models.py,sha256=FvJXziIxwRzyLiKIyNb7tV36_WOtk7LoVxO
96
96
  zenlayercloud/zls/v20230804/zls_client.py,sha256=SHMccO_lO5YrcLZC25V11n7-BHkmGdCoVfW8qqDwO0E,471
97
97
  zenlayercloud/zos/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
98
98
  zenlayercloud/zos/v20251010/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
99
- zenlayercloud/zos/v20251010/models.py,sha256=EqC37SxJtx4DXpM31_NEVO-0TiXjhKqgm0DB39jmVjs,10104
100
- zenlayercloud/zos/v20251010/zos_client.py,sha256=zAm0ddgETenHPstcIExIWDMYmiWB4EpiTsDuedwkGeY,1541
99
+ zenlayercloud/zos/v20251010/models.py,sha256=e7lK3NBkJvQrbvk1caIxLIjfs6kbY-MmSxNfBPeYhPs,10119
100
+ zenlayercloud/zos/v20251010/zos_client.py,sha256=pzdYoF2DOBHKiA7tS0qRA342R0wOsCDFKHfaZsBVhps,1877
101
101
  zenlayercloud/zrm/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
102
102
  zenlayercloud/zrm/v20251014/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
103
- zenlayercloud/zrm/v20251014/models.py,sha256=3As3PAdEKe_Cpb1QpGI2_mrMlM2uZ6QOa4isOi09q3I,7491
104
- zenlayercloud/zrm/v20251014/zrm_client.py,sha256=p3fKeOdhGdjx_MhFcMuu9wv4bkSiwn_GNrj_570fkMg,2504
105
- zenlayercloud_sdk_python-2.0.73.dist-info/licenses/LICENSE,sha256=QwcOLU5TJoTeUhuIXzhdCEEDDvorGiC6-3YTOl4TecE,11356
106
- zenlayercloud_sdk_python-2.0.73.dist-info/METADATA,sha256=3_jDAbZ_VLRG-hF34-TsgB0IXpyThtBpyviDG56rx9M,1653
107
- zenlayercloud_sdk_python-2.0.73.dist-info/WHEEL,sha256=YVMoNqKzERt-wjUZwJ33xBGAwnFl-4cqbYkTtWa4itE,91
108
- zenlayercloud_sdk_python-2.0.73.dist-info/top_level.txt,sha256=ZU6L6c0yQDkyO8nG0oGpC6ptc0TNucEncz3xbFsoHmE,14
109
- zenlayercloud_sdk_python-2.0.73.dist-info/RECORD,,
103
+ zenlayercloud/zrm/v20251014/models.py,sha256=8W0zpy1s9Om6uahkhUaWLOfqeA5uIGt5eRTcAYSRYys,11001
104
+ zenlayercloud/zrm/v20251014/zrm_client.py,sha256=0W60TWNIwxJLFsOyM7-Ka3Pz2QmcsgN6_mAvVVEXVwI,3138
105
+ zenlayercloud/zsp/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
106
+ zenlayercloud/zsp/v20260801/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
107
+ zenlayercloud/zsp/v20260801/models.py,sha256=juOsPP5fIBPH5gCD4yzhZG4L10izidGR6NOcgik8ZgE,5721
108
+ zenlayercloud/zsp/v20260801/zsp_client.py,sha256=6JjGIxj0OzxfX7Lcdh9Xes6ezme3OSYQK0rBdwlXazw,1457
109
+ zenlayercloud_sdk_python-2.0.74.dist-info/licenses/LICENSE,sha256=QwcOLU5TJoTeUhuIXzhdCEEDDvorGiC6-3YTOl4TecE,11356
110
+ zenlayercloud_sdk_python-2.0.74.dist-info/METADATA,sha256=8wDNDe3KfOIfvOemQQyWhiwhStKnqcJimwQuV0yT_J4,1653
111
+ zenlayercloud_sdk_python-2.0.74.dist-info/WHEEL,sha256=YVMoNqKzERt-wjUZwJ33xBGAwnFl-4cqbYkTtWa4itE,91
112
+ zenlayercloud_sdk_python-2.0.74.dist-info/top_level.txt,sha256=ZU6L6c0yQDkyO8nG0oGpC6ptc0TNucEncz3xbFsoHmE,14
113
+ zenlayercloud_sdk_python-2.0.74.dist-info/RECORD,,