zenlayercloud-sdk-python 2.0.68__py3-none-any.whl → 2.0.69__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.068"
4
+ __version__ = "2.0.069"
5
5
 
@@ -10,16 +10,34 @@ class IptClient(AbstractClient):
10
10
 
11
11
  def DescribeIPTransitDatacenters(self, request):
12
12
  """
13
- 本接口用于连接IP Transit 服务支持的数据中心。
13
+ 查询IP Transit可连接数据中心
14
14
  """
15
15
  response = self._api_call("DescribeIPTransitDatacenters", request)
16
16
  model = models.DescribeIPTransitDatacentersResponse()
17
17
  model._deserialize(response)
18
18
  return model
19
19
 
20
+ def DescribeIPTransitAvailableAsns(self, request):
21
+ """
22
+ 查询IP Transit可用 ASN
23
+ """
24
+ response = self._api_call("DescribeIPTransitAvailableAsns", request)
25
+ model = models.DescribeIPTransitAvailableAsnsResponse()
26
+ model._deserialize(response)
27
+ return model
28
+
29
+ def DescribeIPTransitAvailableCidrBlocks(self, request):
30
+ """
31
+ 查询IP Transit可用公网地址段
32
+ """
33
+ response = self._api_call("DescribeIPTransitAvailableCidrBlocks", request)
34
+ model = models.DescribeIPTransitAvailableCidrBlocksResponse()
35
+ model._deserialize(response)
36
+ return model
37
+
20
38
  def InquiryCreateIPTransitPrice(self, request):
21
39
  """
22
- 创建一条IP Transit 的询价。
40
+ iP Transit创建询价
23
41
  """
24
42
  response = self._api_call("InquiryCreateIPTransitPrice", request)
25
43
  model = models.InquiryCreateIPTransitPriceResponse()
@@ -28,7 +46,7 @@ class IptClient(AbstractClient):
28
46
 
29
47
  def CreateIPTransit(self, request):
30
48
  """
31
- 创建一条IP Transit
49
+ 创建IP Transit
32
50
  """
33
51
  response = self._api_call("CreateIPTransit", request)
34
52
  model = models.CreateIPTransitResponse()
@@ -37,7 +55,7 @@ class IptClient(AbstractClient):
37
55
 
38
56
  def DescribeIPTransits(self, request):
39
57
  """
40
- 本接口用于查询IP Transit资源列表。
58
+ 查询IP Transit列表
41
59
  """
42
60
  response = self._api_call("DescribeIPTransits", request)
43
61
  model = models.DescribeIPTransitsResponse()
@@ -46,7 +64,7 @@ class IptClient(AbstractClient):
46
64
 
47
65
  def ModifyIPTransitBandwidth(self, request):
48
66
  """
49
- 修改一条IP Transit的带宽限速。
67
+ 修改IP Transit带宽
50
68
  """
51
69
  response = self._api_call("ModifyIPTransitBandwidth", request)
52
70
  model = models.ModifyIPTransitBandwidthResponse()
@@ -55,7 +73,7 @@ class IptClient(AbstractClient):
55
73
 
56
74
  def ModifyIPTransitsAttribute(self, request):
57
75
  """
58
- 修改IP Transit的基本信息,包括名称和备注。
76
+ 修改IP Transit属性
59
77
  """
60
78
  response = self._api_call("ModifyIPTransitsAttribute", request)
61
79
  model = models.ModifyIPTransitsAttributeResponse()
@@ -64,7 +82,7 @@ class IptClient(AbstractClient):
64
82
 
65
83
  def DeleteIPTransit(self, request):
66
84
  """
67
- 删除一条IP Transit
85
+ 删除IP Transit
68
86
  """
69
87
  response = self._api_call("DeleteIPTransit", request)
70
88
  model = models.DeleteIPTransitResponse()
@@ -73,10 +91,28 @@ class IptClient(AbstractClient):
73
91
 
74
92
  def DescribeIPTransitTraffic(self, request):
75
93
  """
76
- 查询IP Transit在指定时间段内的带宽数据。
94
+ 查询IP Transit流量
77
95
  """
78
96
  response = self._api_call("DescribeIPTransitTraffic", request)
79
97
  model = models.DescribeIPTransitTrafficResponse()
80
98
  model._deserialize(response)
81
99
  return model
82
100
 
101
+ def InquiryModifyIPTransitPrice(self, request):
102
+ """
103
+ IP Transit变配询价
104
+ """
105
+ response = self._api_call("InquiryModifyIPTransitPrice", request)
106
+ model = models.InquiryModifyIPTransitPriceResponse()
107
+ model._deserialize(response)
108
+ return model
109
+
110
+ def ModifyIPTransitConfig(self, request):
111
+ """
112
+ 修改IP Transit配置
113
+ """
114
+ response = self._api_call("ModifyIPTransitConfig", request)
115
+ model = models.ModifyIPTransitConfigResponse()
116
+ model._deserialize(response)
117
+ return model
118
+
@@ -7,10 +7,12 @@ class DescribeIPTransitDatacentersRequest(AbstractModel):
7
7
  def __init__(self):
8
8
  self.peerPortId = None
9
9
  self.peerDcId = None
10
+ self.zbgRegionId = None
10
11
 
11
12
  def _deserialize(self, params):
12
13
  self.peerPortId = params.get("peerPortId")
13
14
  self.peerDcId = params.get("peerDcId")
15
+ self.zbgRegionId = params.get("zbgRegionId")
14
16
 
15
17
 
16
18
  class DescribeIPTransitDatacentersResponse(AbstractModel):
@@ -82,11 +84,101 @@ class RemoteIptAvailableRoutingType(AbstractModel):
82
84
  self._deserialize(params)
83
85
  return
84
86
  self.routingType = None
87
+ self.availableBgpRouteTypes = None
85
88
  self.deliveryType = None
89
+ self.publicInterconnectNetmasks = None
86
90
 
87
91
  def _deserialize(self, params):
88
92
  self.routingType = params.get("routingType")
93
+ self.availableBgpRouteTypes = params.get("availableBgpRouteTypes")
89
94
  self.deliveryType = params.get("deliveryType")
95
+ self.publicInterconnectNetmasks = params.get("publicInterconnectNetmasks")
96
+
97
+
98
+ class DescribeIPTransitAvailableAsnsRequest(AbstractModel):
99
+ def __init__(self):
100
+ pass
101
+
102
+ def _deserialize(self, params):
103
+ pass
104
+
105
+
106
+ class DescribeIPTransitAvailableAsnsResponse(AbstractModel):
107
+ def __init__(self):
108
+ self.requestId = None
109
+ self.dataSet = None
110
+
111
+ def _deserialize(self, params):
112
+ self.requestId = params.get("requestId")
113
+ if params.get("dataSet") is not None:
114
+ self.dataSet = []
115
+ for item in params.get("dataSet"):
116
+ obj = AsnInfo(item)
117
+ self.dataSet.append(obj)
118
+
119
+
120
+ class AsnInfo(AbstractModel):
121
+ def __init__(self, params=None):
122
+ if params is None:
123
+ params = {}
124
+ if len(params) > 0:
125
+ self._deserialize(params)
126
+ return
127
+ self.asn = None
128
+ self.asnType = None
129
+
130
+ def _deserialize(self, params):
131
+ self.asn = params.get("asn")
132
+ self.asnType = params.get("asnType")
133
+
134
+
135
+ class DescribeIPTransitAvailableCidrBlocksRequest(AbstractModel):
136
+ def __init__(self):
137
+ self.iptDcId = None
138
+ self.routingType = None
139
+ self.zbgRegionId = None
140
+ self.ipUuid = None
141
+
142
+ def _deserialize(self, params):
143
+ self.iptDcId = params.get("iptDcId")
144
+ self.routingType = params.get("routingType")
145
+ self.zbgRegionId = params.get("zbgRegionId")
146
+ self.ipUuid = params.get("ipUuid")
147
+
148
+
149
+ class DescribeIPTransitAvailableCidrBlocksResponse(AbstractModel):
150
+ def __init__(self):
151
+ self.requestId = None
152
+ self.ipv4CidrBlocks = None
153
+ self.ipv6CidrBlocks = None
154
+
155
+ def _deserialize(self, params):
156
+ self.requestId = params.get("requestId")
157
+ if params.get("ipv4CidrBlocks") is not None:
158
+ self.ipv4CidrBlocks = []
159
+ for item in params.get("ipv4CidrBlocks"):
160
+ obj = CidrBlock(item)
161
+ self.ipv4CidrBlocks.append(obj)
162
+ if params.get("ipv6CidrBlocks") is not None:
163
+ self.ipv6CidrBlocks = []
164
+ for item in params.get("ipv6CidrBlocks"):
165
+ obj = CidrBlock(item)
166
+ self.ipv6CidrBlocks.append(obj)
167
+
168
+
169
+ class CidrBlock(AbstractModel):
170
+ def __init__(self, params=None):
171
+ if params is None:
172
+ params = {}
173
+ if len(params) > 0:
174
+ self._deserialize(params)
175
+ return
176
+ self.netmask = None
177
+ self.ipNetworkType = None
178
+
179
+ def _deserialize(self, params):
180
+ self.netmask = params.get("netmask")
181
+ self.ipNetworkType = params.get("ipNetworkType")
90
182
 
91
183
 
92
184
  class InquiryCreateIPTransitPriceRequest(AbstractModel):
@@ -99,6 +191,11 @@ class InquiryCreateIPTransitPriceRequest(AbstractModel):
99
191
  self.routingType = None
100
192
  self.publicIPv4BlockSize = None
101
193
  self.bgpRouteType = None
194
+ self.ipType = None
195
+ self.publicIpList = None
196
+ self.zbgRegionId = None
197
+ self.haConfig = None
198
+ self.publicInterconnectNetmask = None
102
199
 
103
200
  def _deserialize(self, params):
104
201
  self.peerPortId = params.get("peerPortId")
@@ -109,6 +206,52 @@ class InquiryCreateIPTransitPriceRequest(AbstractModel):
109
206
  self.routingType = params.get("routingType")
110
207
  self.publicIPv4BlockSize = params.get("publicIPv4BlockSize")
111
208
  self.bgpRouteType = params.get("bgpRouteType")
209
+ self.ipType = params.get("ipType")
210
+ if params.get("publicIpList") is not None:
211
+ self.publicIpList = []
212
+ for item in params.get("publicIpList"):
213
+ obj = IPTransitIpRequest(item)
214
+ self.publicIpList.append(obj)
215
+ self.zbgRegionId = params.get("zbgRegionId")
216
+ if params.get("haConfig") is not None:
217
+ self.haConfig = IPTransitHaConfig(params.get("haConfig"))
218
+ self.publicInterconnectNetmask = params.get("publicInterconnectNetmask")
219
+
220
+
221
+ class IPTransitIpRequest(AbstractModel):
222
+ def __init__(self, params=None):
223
+ if params is None:
224
+ params = {}
225
+ if len(params) > 0:
226
+ self._deserialize(params)
227
+ return
228
+ self.netmask = None
229
+ self.ipType = None
230
+ self.ipNetworkType = None
231
+ self.amount = None
232
+
233
+ def _deserialize(self, params):
234
+ self.netmask = params.get("netmask")
235
+ self.ipType = params.get("ipType")
236
+ self.ipNetworkType = params.get("ipNetworkType")
237
+ self.amount = params.get("amount")
238
+
239
+
240
+ class IPTransitHaConfig(AbstractModel):
241
+ def __init__(self, params=None):
242
+ if params is None:
243
+ params = {}
244
+ if len(params) > 0:
245
+ self._deserialize(params)
246
+ return
247
+ self.haMode = None
248
+ self.secondaryPortId = None
249
+ self.secondaryPortVlanId = None
250
+
251
+ def _deserialize(self, params):
252
+ self.haMode = params.get("haMode")
253
+ self.secondaryPortId = params.get("secondaryPortId")
254
+ self.secondaryPortVlanId = params.get("secondaryPortVlanId")
112
255
 
113
256
 
114
257
  class InquiryCreateIPTransitPriceResponse(AbstractModel):
@@ -117,6 +260,7 @@ class InquiryCreateIPTransitPriceResponse(AbstractModel):
117
260
  self.privateConnectPrice = None
118
261
  self.iptBandwidthPrice = None
119
262
  self.publicIpPrices = None
263
+ self.publicInterconnectIpPrice = None
120
264
 
121
265
  def _deserialize(self, params):
122
266
  self.requestId = params.get("requestId")
@@ -129,6 +273,8 @@ class InquiryCreateIPTransitPriceResponse(AbstractModel):
129
273
  for item in params.get("publicIpPrices"):
130
274
  obj = IPPrice(item)
131
275
  self.publicIpPrices.append(obj)
276
+ if params.get("publicInterconnectIpPrice") is not None:
277
+ self.publicInterconnectIpPrice = IPPrice(params.get("publicInterconnectIpPrice"))
132
278
 
133
279
 
134
280
  class PriceItem(AbstractModel):
@@ -199,12 +345,14 @@ class IPPrice(AbstractModel):
199
345
  self.price = None
200
346
  self.netmask = None
201
347
  self.qty = None
348
+ self.ipNetworkType = None
202
349
 
203
350
  def _deserialize(self, params):
204
351
  if params.get("price") is not None:
205
352
  self.price = PriceItem(params.get("price"))
206
353
  self.netmask = params.get("netmask")
207
354
  self.qty = params.get("qty")
355
+ self.ipNetworkType = params.get("ipNetworkType")
208
356
 
209
357
 
210
358
  class CreateIPTransitRequest(AbstractModel):
@@ -223,6 +371,10 @@ class CreateIPTransitRequest(AbstractModel):
223
371
  self.resourceGroupId = None
224
372
  self.bgp = None
225
373
  self.tags = None
374
+ self.publicIpList = None
375
+ self.zbgRegionId = None
376
+ self.haConfig = None
377
+ self.publicInterconnectNetmask = None
226
378
 
227
379
  def _deserialize(self, params):
228
380
  self.iptName = params.get("iptName")
@@ -242,6 +394,15 @@ class CreateIPTransitRequest(AbstractModel):
242
394
  self.bgp = RiptBgpConfig(params.get("bgp"))
243
395
  if params.get("tags") is not None:
244
396
  self.tags = TagAssociation(params.get("tags"))
397
+ if params.get("publicIpList") is not None:
398
+ self.publicIpList = []
399
+ for item in params.get("publicIpList"):
400
+ obj = IPTransitIpRequest(item)
401
+ self.publicIpList.append(obj)
402
+ self.zbgRegionId = params.get("zbgRegionId")
403
+ if params.get("haConfig") is not None:
404
+ self.haConfig = IPTransitHaConfig(params.get("haConfig"))
405
+ self.publicInterconnectNetmask = params.get("publicInterconnectNetmask")
245
406
 
246
407
 
247
408
  class BFDConfig(AbstractModel):
@@ -399,7 +560,13 @@ class IPTransit(AbstractModel):
399
560
  self.privateConnectName = None
400
561
  self.publicIpv4Addresses = None
401
562
  self.iptStatus = None
563
+ self.connectivityStatus = None
402
564
  self.tags = None
565
+ self.publicIpAddresses = None
566
+ self.haMode = None
567
+ self.zbgRegionId = None
568
+ self.peerPortType = None
569
+ self.haLinks = None
403
570
 
404
571
  def _deserialize(self, params):
405
572
  self.iptId = params.get("iptId")
@@ -433,8 +600,22 @@ class IPTransit(AbstractModel):
433
600
  obj = IPAddress(item)
434
601
  self.publicIpv4Addresses.append(obj)
435
602
  self.iptStatus = params.get("iptStatus")
603
+ self.connectivityStatus = params.get("connectivityStatus")
436
604
  if params.get("tags") is not None:
437
605
  self.tags = Tags(params.get("tags"))
606
+ if params.get("publicIpAddresses") is not None:
607
+ self.publicIpAddresses = []
608
+ for item in params.get("publicIpAddresses"):
609
+ obj = IPTransitIpAddress(item)
610
+ self.publicIpAddresses.append(obj)
611
+ self.haMode = params.get("haMode")
612
+ self.zbgRegionId = params.get("zbgRegionId")
613
+ self.peerPortType = params.get("peerPortType")
614
+ if params.get("haLinks") is not None:
615
+ self.haLinks = []
616
+ for item in params.get("haLinks"):
617
+ obj = HaLink(item)
618
+ self.haLinks.append(obj)
438
619
 
439
620
 
440
621
  class Interconnect(AbstractModel):
@@ -446,10 +627,14 @@ class Interconnect(AbstractModel):
446
627
  return
447
628
  self.vendorIpv4Address = None
448
629
  self.customerIpv4Address = None
630
+ self.vendorIpv6Address = None
631
+ self.customerIpv6Address = None
449
632
 
450
633
  def _deserialize(self, params):
451
634
  self.vendorIpv4Address = params.get("vendorIpv4Address")
452
635
  self.customerIpv4Address = params.get("customerIpv4Address")
636
+ self.vendorIpv6Address = params.get("vendorIpv6Address")
637
+ self.customerIpv6Address = params.get("customerIpv6Address")
453
638
 
454
639
 
455
640
  class IPAddress(AbstractModel):
@@ -486,6 +671,62 @@ class Tags(AbstractModel):
486
671
  self.tags.append(obj)
487
672
 
488
673
 
674
+ class IPTransitIpAddress(AbstractModel):
675
+ def __init__(self, params=None):
676
+ if params is None:
677
+ params = {}
678
+ if len(params) > 0:
679
+ self._deserialize(params)
680
+ return
681
+ self.ipUuid = None
682
+ self.ipAddress = None
683
+ self.netmask = None
684
+ self.gatewayIpAddress = None
685
+ self.ipType = None
686
+ self.ipNetworkType = None
687
+
688
+ def _deserialize(self, params):
689
+ self.ipUuid = params.get("ipUuid")
690
+ self.ipAddress = params.get("ipAddress")
691
+ self.netmask = params.get("netmask")
692
+ self.gatewayIpAddress = params.get("gatewayIpAddress")
693
+ self.ipType = params.get("ipType")
694
+ self.ipNetworkType = params.get("ipNetworkType")
695
+
696
+
697
+ class HaLink(AbstractModel):
698
+ def __init__(self, params=None):
699
+ if params is None:
700
+ params = {}
701
+ if len(params) > 0:
702
+ self._deserialize(params)
703
+ return
704
+ self.isPrimary = None
705
+ self.iptStatus = None
706
+ self.connectivityStatus = None
707
+ self.privateConnectId = None
708
+ self.privateConnectName = None
709
+ self.peerPortId = None
710
+ self.peerPortName = None
711
+ self.peerDataCenter = None
712
+ self.peerPortVlan = None
713
+ self.interconnect = None
714
+
715
+ def _deserialize(self, params):
716
+ self.isPrimary = params.get("isPrimary")
717
+ self.iptStatus = params.get("iptStatus")
718
+ self.connectivityStatus = params.get("connectivityStatus")
719
+ self.privateConnectId = params.get("privateConnectId")
720
+ self.privateConnectName = params.get("privateConnectName")
721
+ self.peerPortId = params.get("peerPortId")
722
+ self.peerPortName = params.get("peerPortName")
723
+ if params.get("peerDataCenter") is not None:
724
+ self.peerDataCenter = DatacenterInfo(params.get("peerDataCenter"))
725
+ self.peerPortVlan = params.get("peerPortVlan")
726
+ if params.get("interconnect") is not None:
727
+ self.interconnect = Interconnect(params.get("interconnect"))
728
+
729
+
489
730
  class ModifyIPTransitBandwidthRequest(AbstractModel):
490
731
  def __init__(self):
491
732
  self.iptId = None
@@ -603,3 +844,121 @@ class TrafficData(AbstractModel):
603
844
  self.time = params.get("time")
604
845
 
605
846
 
847
+ class InquiryModifyIPTransitPriceRequest(AbstractModel):
848
+ def __init__(self):
849
+ self.iptId = None
850
+ self.type = None
851
+ self.bandwidth = None
852
+ self.commitBandwidth = None
853
+ self.publicIPv4BlockSize = None
854
+ self.ipUuid = None
855
+ self.ipNetworkType = None
856
+
857
+ def _deserialize(self, params):
858
+ self.iptId = params.get("iptId")
859
+ self.type = params.get("type")
860
+ self.bandwidth = params.get("bandwidth")
861
+ self.commitBandwidth = params.get("commitBandwidth")
862
+ self.publicIPv4BlockSize = params.get("publicIPv4BlockSize")
863
+ self.ipUuid = params.get("ipUuid")
864
+ self.ipNetworkType = params.get("ipNetworkType")
865
+
866
+
867
+ class InquiryModifyIPTransitPriceResponse(AbstractModel):
868
+ def __init__(self):
869
+ self.requestId = None
870
+ self.privateConnectPrice = None
871
+ self.privateConnectBandwidth = None
872
+ self.iptPrice = None
873
+ self.iptIpPrices = None
874
+ self.publicInterconnectIpPrice = None
875
+
876
+ def _deserialize(self, params):
877
+ self.requestId = params.get("requestId")
878
+ if params.get("privateConnectPrice") is not None:
879
+ self.privateConnectPrice = PriceItem(params.get("privateConnectPrice"))
880
+ self.privateConnectBandwidth = params.get("privateConnectBandwidth")
881
+ if params.get("iptPrice") is not None:
882
+ self.iptPrice = PriceItem(params.get("iptPrice"))
883
+ if params.get("iptIpPrices") is not None:
884
+ self.iptIpPrices = []
885
+ for item in params.get("iptIpPrices"):
886
+ obj = IPTransitIpPriceItem(item)
887
+ self.iptIpPrices.append(obj)
888
+ if params.get("publicInterconnectIpPrice") is not None:
889
+ self.publicInterconnectIpPrice = IPTransitIpPriceItem(params.get("publicInterconnectIpPrice"))
890
+
891
+
892
+ class IPTransitIpPriceItem(AbstractModel):
893
+ def __init__(self, params=None):
894
+ if params is None:
895
+ params = {}
896
+ if len(params) > 0:
897
+ self._deserialize(params)
898
+ return
899
+ self.price = None
900
+ self.netmask = None
901
+ self.amount = None
902
+ self.ipNetworkType = None
903
+
904
+ def _deserialize(self, params):
905
+ if params.get("price") is not None:
906
+ self.price = PriceItem(params.get("price"))
907
+ self.netmask = params.get("netmask")
908
+ self.amount = params.get("amount")
909
+ self.ipNetworkType = params.get("ipNetworkType")
910
+
911
+
912
+ class ModifyIPTransitConfigRequest(AbstractModel):
913
+ def __init__(self):
914
+ self.iptId = None
915
+ self.type = None
916
+ self.bandwidth = None
917
+ self.commitBandwidth = None
918
+ self.bfd = None
919
+ self.bgp = None
920
+ self.publicIPv4BlockSize = None
921
+ self.ipUuid = None
922
+ self.ipNetworkType = None
923
+
924
+ def _deserialize(self, params):
925
+ self.iptId = params.get("iptId")
926
+ self.type = params.get("type")
927
+ self.bandwidth = params.get("bandwidth")
928
+ self.commitBandwidth = params.get("commitBandwidth")
929
+ if params.get("bfd") is not None:
930
+ self.bfd = BFDConfig(params.get("bfd"))
931
+ if params.get("bgp") is not None:
932
+ self.bgp = BgpConfigParam(params.get("bgp"))
933
+ self.publicIPv4BlockSize = params.get("publicIPv4BlockSize")
934
+ self.ipUuid = params.get("ipUuid")
935
+ self.ipNetworkType = params.get("ipNetworkType")
936
+
937
+
938
+ class BgpConfigParam(AbstractModel):
939
+ def __init__(self, params=None):
940
+ if params is None:
941
+ params = {}
942
+ if len(params) > 0:
943
+ self._deserialize(params)
944
+ return
945
+ self.routeType = None
946
+ self.asnList = None
947
+ self.asSetList = None
948
+ self.password = None
949
+
950
+ def _deserialize(self, params):
951
+ self.routeType = params.get("routeType")
952
+ self.asnList = params.get("asnList")
953
+ self.asSetList = params.get("asSetList")
954
+ self.password = params.get("password")
955
+
956
+
957
+ class ModifyIPTransitConfigResponse(AbstractModel):
958
+ def __init__(self):
959
+ self.requestId = None
960
+
961
+ def _deserialize(self, params):
962
+ self.requestId = params.get("requestId")
963
+
964
+
@@ -3121,6 +3121,8 @@ class CidrInfo(AbstractModel):
3121
3121
  self.asn = None
3122
3122
  self.tags = None
3123
3123
  self.asnObservation = None
3124
+ self.availableCidr = None
3125
+ self.availableCount = None
3124
3126
 
3125
3127
  def _deserialize(self, params):
3126
3128
  self.cidrId = params.get("cidrId")
@@ -3128,6 +3130,12 @@ class CidrInfo(AbstractModel):
3128
3130
  self.name = params.get("name")
3129
3131
  self.cidrBlock = params.get("cidrBlock")
3130
3132
  self.totalCount = params.get("totalCount")
3133
+ if params.get("usedCount") is not None:
3134
+ warnings.warn(
3135
+ "usedCount 已废弃,请勿使用",
3136
+ DeprecationWarning,
3137
+ stacklevel=2
3138
+ )
3131
3139
  self.usedCount = params.get("usedCount")
3132
3140
  self.source = params.get("source")
3133
3141
  if params.get("eipV4Type") is not None:
@@ -3150,6 +3158,12 @@ class CidrInfo(AbstractModel):
3150
3158
  self.tags = Tags(params.get("tags"))
3151
3159
  if params.get("asnObservation") is not None:
3152
3160
  self.asnObservation = AsnObservationDetail(params.get("asnObservation"))
3161
+ if params.get("availableCidr") is not None:
3162
+ self.availableCidr = []
3163
+ for item in params.get("availableCidr"):
3164
+ obj = AvailableCidrInfo(item)
3165
+ self.availableCidr.append(obj)
3166
+ self.availableCount = params.get("availableCount")
3153
3167
 
3154
3168
 
3155
3169
  class AsnObservationDetail(AbstractModel):
@@ -3179,6 +3193,21 @@ class AsnObservationDetail(AbstractModel):
3179
3193
  self.secondaryAsns = params.get("secondaryAsns")
3180
3194
 
3181
3195
 
3196
+ class AvailableCidrInfo(AbstractModel):
3197
+ def __init__(self, params=None):
3198
+ if params is None:
3199
+ params = {}
3200
+ if len(params) > 0:
3201
+ self._deserialize(params)
3202
+ return
3203
+ self.prefixLength = None
3204
+ self.count = None
3205
+
3206
+ def _deserialize(self, params):
3207
+ self.prefixLength = params.get("prefixLength")
3208
+ self.count = params.get("count")
3209
+
3210
+
3182
3211
  class CreateCidrRequest(AbstractModel):
3183
3212
  def __init__(self):
3184
3213
  self.regionId = None
@@ -3738,6 +3767,7 @@ class DescribeEipsRequest(AbstractModel):
3738
3767
  self.tagKeys = None
3739
3768
  self.tags = None
3740
3769
  self.internetChargeType = None
3770
+ self.prefixLength = None
3741
3771
 
3742
3772
  def _deserialize(self, params):
3743
3773
  self.eipIds = params.get("eipIds")
@@ -3761,6 +3791,7 @@ class DescribeEipsRequest(AbstractModel):
3761
3791
  obj = Tag(item)
3762
3792
  self.tags.append(obj)
3763
3793
  self.internetChargeType = params.get("internetChargeType")
3794
+ self.prefixLength = params.get("prefixLength")
3764
3795
 
3765
3796
 
3766
3797
  class DescribeEipsResponse(AbstractModel):
@@ -3816,6 +3847,7 @@ class EipInfo(AbstractModel):
3816
3847
  self.bandwidthCluster = None
3817
3848
  self.tags = None
3818
3849
  self.operationInfo = None
3850
+ self.prefixLength = None
3819
3851
 
3820
3852
  def _deserialize(self, params):
3821
3853
  self.eipId = params.get("eipId")
@@ -3875,6 +3907,7 @@ class EipInfo(AbstractModel):
3875
3907
  self.tags = Tags(params.get("tags"))
3876
3908
  if params.get("operationInfo") is not None:
3877
3909
  self.operationInfo = OperationInfo(params.get("operationInfo"))
3910
+ self.prefixLength = params.get("prefixLength")
3878
3911
 
3879
3912
 
3880
3913
  class FlowPackageResponseItem(AbstractModel):
@@ -3946,6 +3979,7 @@ class CreateEipsRequest(AbstractModel):
3946
3979
  self.name = None
3947
3980
  self.internetChargeType = None
3948
3981
  self.amount = None
3982
+ self.prefixLength = None
3949
3983
  self.eipV4Type = None
3950
3984
  self.networkLineType = None
3951
3985
  self.primaryIsp = None
@@ -3967,6 +4001,7 @@ class CreateEipsRequest(AbstractModel):
3967
4001
  self.name = params.get("name")
3968
4002
  self.internetChargeType = params.get("internetChargeType")
3969
4003
  self.amount = params.get("amount")
4004
+ self.prefixLength = params.get("prefixLength")
3970
4005
  if params.get("eipV4Type") is not None:
3971
4006
  warnings.warn(
3972
4007
  "eipV4Type 已废弃,请勿使用",
@@ -5488,6 +5523,71 @@ class DeleteBorderGatewayResponse(AbstractModel):
5488
5523
  self.requestId = params.get("requestId")
5489
5524
 
5490
5525
 
5526
+ class DescribeInterconnectBorderGatewayRegionsRequest(AbstractModel):
5527
+ def __init__(self):
5528
+ self.regionId = None
5529
+ self.dcId = None
5530
+ self.dcCode = None
5531
+
5532
+ def _deserialize(self, params):
5533
+ self.regionId = params.get("regionId")
5534
+ self.dcId = params.get("dcId")
5535
+ self.dcCode = params.get("dcCode")
5536
+
5537
+
5538
+ class DescribeInterconnectBorderGatewayRegionsResponse(AbstractModel):
5539
+ def __init__(self):
5540
+ self.requestId = None
5541
+ self.regionSet = None
5542
+
5543
+ def _deserialize(self, params):
5544
+ self.requestId = params.get("requestId")
5545
+ if params.get("regionSet") is not None:
5546
+ self.regionSet = []
5547
+ for item in params.get("regionSet"):
5548
+ obj = InterconnectRegion(item)
5549
+ self.regionSet.append(obj)
5550
+
5551
+
5552
+ class InterconnectRegion(AbstractModel):
5553
+ def __init__(self, params=None):
5554
+ if params is None:
5555
+ params = {}
5556
+ if len(params) > 0:
5557
+ self._deserialize(params)
5558
+ return
5559
+ self.regionId = None
5560
+ self.name = None
5561
+ self.dataCenter = None
5562
+
5563
+ def _deserialize(self, params):
5564
+ self.regionId = params.get("regionId")
5565
+ self.name = params.get("name")
5566
+ if params.get("dataCenter") is not None:
5567
+ self.dataCenter = InterconnectDataCenter(params.get("dataCenter"))
5568
+
5569
+
5570
+ class InterconnectDataCenter(AbstractModel):
5571
+ def __init__(self, params=None):
5572
+ if params is None:
5573
+ params = {}
5574
+ if len(params) > 0:
5575
+ self._deserialize(params)
5576
+ return
5577
+ self.dcId = None
5578
+ self.dcCode = None
5579
+ self.name = None
5580
+ self.cityName = None
5581
+ self.countryName = None
5582
+
5583
+ def _deserialize(self, params):
5584
+ self.dcId = params.get("dcId")
5585
+ self.dcCode = params.get("dcCode")
5586
+ self.name = params.get("name")
5587
+ self.cityName = params.get("cityName")
5588
+ self.countryName = params.get("countryName")
5589
+
5590
+
5491
5591
  class DescribeUnmanagedEgressIpsRequest(AbstractModel):
5492
5592
  def __init__(self):
5493
5593
  self.unmanagedEgressIpIds = None
@@ -19,7 +19,7 @@ class ZecClient(AbstractClient):
19
19
 
20
20
  def DescribeZoneInstanceConfigInfos(self, request):
21
21
  """
22
- 查询可用区售卖的机型信息。
22
+ 查询可用区售卖的机型信息
23
23
  """
24
24
  response = self._api_call("DescribeZoneInstanceConfigInfos", request)
25
25
  model = models.DescribeZoneInstanceConfigInfosResponse()
@@ -37,7 +37,7 @@ class ZecClient(AbstractClient):
37
37
 
38
38
  def DescribeTimeZones(self, request):
39
39
  """
40
- 查询时区信息。
40
+ 查询时区信息
41
41
  """
42
42
  response = self._api_call("DescribeTimeZones", request)
43
43
  model = models.DescribeTimeZonesResponse()
@@ -73,7 +73,7 @@ class ZecClient(AbstractClient):
73
73
 
74
74
  def DescribeInstancesStatus(self, request):
75
75
  """
76
- 批量查询一个或多个弹性计算实例的当前运行状态,支持按实例 ID 列表和资源组筛选,支持分页查询。
76
+ 查询实例的状态。
77
77
  """
78
78
  response = self._api_call("DescribeInstancesStatus", request)
79
79
  model = models.DescribeInstancesStatusResponse()
@@ -136,7 +136,7 @@ class ZecClient(AbstractClient):
136
136
 
137
137
  def ResetInstances(self, request):
138
138
  """
139
- 对一批弹性计算实例执行操作系统重装,可重新指定镜像、登录方式(密码或密钥对)、时区及实例名称。
139
+ 重装多台虚拟机实例操作系统。
140
140
  """
141
141
  response = self._api_call("ResetInstances", request)
142
142
  model = models.ResetInstancesResponse()
@@ -145,7 +145,7 @@ class ZecClient(AbstractClient):
145
145
 
146
146
  def StartIpForward(self, request):
147
147
  """
148
- 为指定弹性计算实例开启 IP 转发,开启后该实例可作为路由器或网关转发来自其他资源的网络流量。
148
+ 开启IP转发
149
149
  """
150
150
  response = self._api_call("StartIpForward", request)
151
151
  model = models.StartIpForwardResponse()
@@ -154,7 +154,7 @@ class ZecClient(AbstractClient):
154
154
 
155
155
  def StopIpForward(self, request):
156
156
  """
157
- 为指定弹性计算实例关闭 IP 转发功能,关闭后该实例将不再转发非本机目的地的网络流量。
157
+ 关闭IP转发
158
158
  """
159
159
  response = self._api_call("StopIpForward", request)
160
160
  model = models.StopIpForwardResponse()
@@ -163,7 +163,7 @@ class ZecClient(AbstractClient):
163
163
 
164
164
  def StartAgentMonitor(self, request):
165
165
  """
166
- 为指定弹性计算实例开启 QEMU Guest Agent(QGA)监控数据采集,开启后可通过监控接口获取实例内部性能指标数据。
166
+ 开启Agent监控采集。
167
167
  """
168
168
  response = self._api_call("StartAgentMonitor", request)
169
169
  model = models.StartAgentMonitorResponse()
@@ -172,7 +172,7 @@ class ZecClient(AbstractClient):
172
172
 
173
173
  def StopAgentMonitor(self, request):
174
174
  """
175
- 为指定弹性计算实例关闭 QEMU Guest Agent(QGA)监控数据采集功能,关闭后将无法通过监控接口获取实例内部性能数据。
175
+ 关闭Agent监控采集。
176
176
  """
177
177
  response = self._api_call("StopAgentMonitor", request)
178
178
  model = models.StopAgentMonitorResponse()
@@ -181,7 +181,7 @@ class ZecClient(AbstractClient):
181
181
 
182
182
  def ModifyInstanceType(self, request):
183
183
  """
184
- 将指定弹性计算实例的规格变更为目标规格。
184
+ 变更实例的规格
185
185
  """
186
186
  response = self._api_call("ModifyInstanceType", request)
187
187
  model = models.ModifyInstanceTypeResponse()
@@ -316,7 +316,7 @@ class ZecClient(AbstractClient):
316
316
 
317
317
  def DescribeDiskRegions(self, request):
318
318
  """
319
- 查询当前账户下支持创建和售卖云硬盘的所有节点(地域/可用区)信息。
319
+ 支持售卖云硬盘的节点。
320
320
  """
321
321
  response = self._api_call("DescribeDiskRegions", request)
322
322
  model = models.DescribeDiskRegionsResponse()
@@ -325,7 +325,7 @@ class ZecClient(AbstractClient):
325
325
 
326
326
  def DescribeDiskCategory(self, request):
327
327
  """
328
- 查询指定可用区支持的云硬盘类型列表,可按云盘类别进行过滤,用于创建云盘前的参数确认。
328
+ 获取某个区域支持的云盘类型。
329
329
  """
330
330
  response = self._api_call("DescribeDiskCategory", request)
331
331
  model = models.DescribeDiskCategoryResponse()
@@ -406,7 +406,7 @@ class ZecClient(AbstractClient):
406
406
 
407
407
  def RenewDisk(self, request):
408
408
  """
409
- 恢复处于回收状态的云硬盘,使其重新可用。仅可恢复保留期内的已删除云硬盘,超出保留期后资源将被彻底销毁。
409
+ 恢复云硬盘
410
410
  """
411
411
  response = self._api_call("RenewDisk", request)
412
412
  model = models.RenewDiskResponse()
@@ -541,7 +541,7 @@ class ZecClient(AbstractClient):
541
541
 
542
542
  def DescribeNetworkInterfaceRegions(self, request):
543
543
  """
544
- 支持售卖网卡的区域信息。
544
+ 支持售卖网卡的区域信息
545
545
  """
546
546
  response = self._api_call("DescribeNetworkInterfaceRegions", request)
547
547
  model = models.DescribeNetworkInterfaceRegionsResponse()
@@ -613,7 +613,7 @@ class ZecClient(AbstractClient):
613
613
 
614
614
  def AssignNetworkInterfaceIpv4(self, request):
615
615
  """
616
- 网卡绑定内网IPv4
616
+ 网卡绑定内网IPv4
617
617
  """
618
618
  response = self._api_call("AssignNetworkInterfaceIpv4", request)
619
619
  model = models.AssignNetworkInterfaceIpv4Response()
@@ -640,7 +640,7 @@ class ZecClient(AbstractClient):
640
640
 
641
641
  def DescribeNetworkInterfacePublicIPv6(self, request):
642
642
  """
643
- 查询指定弹性网卡(vNIC)上已分配的公网 IPv6 地址及其计费、带宽配置信息。
643
+ 网卡的公网IPv6信息。
644
644
  """
645
645
  response = self._api_call("DescribeNetworkInterfacePublicIPv6", request)
646
646
  model = models.DescribeNetworkInterfacePublicIPv6Response()
@@ -730,7 +730,7 @@ class ZecClient(AbstractClient):
730
730
 
731
731
  def DescribePools(self, request):
732
732
  """
733
- 查询账户下的公网 IP 池信息,支持按 IP 池 ID、地域或名称进行筛选,支持分页查询。
733
+ 查询公网IP池列表。
734
734
  """
735
735
  response = self._api_call("DescribePools", request)
736
736
  model = models.DescribePoolsResponse()
@@ -757,7 +757,7 @@ class ZecClient(AbstractClient):
757
757
 
758
758
  def DescribeCidrs(self, request):
759
759
  """
760
- 查询IPv4 CIDR地址块列表。
760
+ 查询IPv4 CIDR地址块列表
761
761
  """
762
762
  response = self._api_call("DescribeCidrs", request)
763
763
  model = models.DescribeCidrsResponse()
@@ -766,7 +766,7 @@ class ZecClient(AbstractClient):
766
766
 
767
767
  def CreateCidr(self, request):
768
768
  """
769
- 创建IPv4 CIDR地址段。
769
+ 创建IPv6/IPv4 CIDR地址段。
770
770
  """
771
771
  response = self._api_call("CreateCidr", request)
772
772
  model = models.CreateCidrResponse()
@@ -811,7 +811,7 @@ class ZecClient(AbstractClient):
811
811
 
812
812
  def DescribeIpv6Cidrs(self, request):
813
813
  """
814
- 查询账户下的 IPv6 CIDR 地址块信息,支持按 CIDR ID、地域、名称、地址段筛选,支持标签过滤和分页查询。
814
+ 查询IPV6 CIDR地址块列表。
815
815
  """
816
816
  response = self._api_call("DescribeIpv6Cidrs", request)
817
817
  model = models.DescribeIpv6CidrsResponse()
@@ -883,7 +883,7 @@ class ZecClient(AbstractClient):
883
883
 
884
884
  def DescribeEipInternetChargeTypes(self, request):
885
885
  """
886
- 查询指定地域下按指定线路类型可选的弹性公网 IP 网络计费模式列表,用于创建 EIP 前的参数确认。
886
+ 查询EIP支持的网络计费模式。
887
887
  """
888
888
  response = self._api_call("DescribeEipInternetChargeTypes", request)
889
889
  model = models.DescribeEipInternetChargeTypesResponse()
@@ -928,7 +928,7 @@ class ZecClient(AbstractClient):
928
928
 
929
929
  def ModifyEipAttribute(self, request):
930
930
  """
931
- 修改指定弹性公网 IP 的名称。如需修改计费方式或带宽,请使用 ChangeEipInternetChargeType 或 ModifyEipBandwidth 接口。
931
+ 修改弹性公网IP属性。
932
932
  """
933
933
  response = self._api_call("ModifyEipAttribute", request)
934
934
  model = models.ModifyEipAttributeResponse()
@@ -937,7 +937,7 @@ class ZecClient(AbstractClient):
937
937
 
938
938
  def AvailableLanIp(self, request):
939
939
  """
940
- 查询可与指定弹性公网 IP(EIP)进行绑定的弹性网卡(vNIC)及其内网 IPv4 地址列表。
940
+ 查询可供弹性公网IP绑定的网卡及内网IP信息。
941
941
  """
942
942
  response = self._api_call("AvailableLanIp", request)
943
943
  model = models.AvailableLanIpResponse()
@@ -1027,7 +1027,7 @@ class ZecClient(AbstractClient):
1027
1027
 
1028
1028
  def RenewEip(self, request):
1029
1029
  """
1030
- 恢复弹性公网IP
1030
+ 恢复弹性公网IP
1031
1031
  """
1032
1032
  response = self._api_call("RenewEip", request)
1033
1033
  model = models.RenewEipResponse()
@@ -1036,7 +1036,7 @@ class ZecClient(AbstractClient):
1036
1036
 
1037
1037
  def DescribeEipTraffic(self, request):
1038
1038
  """
1039
- 查询指定弹性公网 IP 在指定时间段内的流量监控数据,支持按统计粒度(step)聚合,可按出口公网 IP 过滤。
1039
+ 查询弹性公网IP指定时间段内的流量信息。
1040
1040
  """
1041
1041
  response = self._api_call("DescribeEipTraffic", request)
1042
1042
  model = models.DescribeEipTrafficResponse()
@@ -1333,7 +1333,7 @@ class ZecClient(AbstractClient):
1333
1333
 
1334
1334
  def UnassignBorderGateway(self, request):
1335
1335
  """
1336
- 解除指定边界网关(ZBG)与 NAT 网关的绑定关系,解绑后边界网关将不再为该 NAT 网关广播路由。
1336
+ 解绑边界网关
1337
1337
  """
1338
1338
  response = self._api_call("UnassignBorderGateway", request)
1339
1339
  model = models.UnassignBorderGatewayResponse()
@@ -1367,6 +1367,15 @@ class ZecClient(AbstractClient):
1367
1367
  model._deserialize(response)
1368
1368
  return model
1369
1369
 
1370
+ def DescribeInterconnectBorderGatewayRegions(self, request):
1371
+ """
1372
+ 查询当前账号下边界网关可支持互联的节点与数据中心信息。边界网关可绑定 CloudRouter 以实现 VPC 的 L3 互联,本接口返回支持此功能的节点列表,可按节点ID或数据中心进行过滤。
1373
+ """
1374
+ response = self._api_call("DescribeInterconnectBorderGatewayRegions", request)
1375
+ model = models.DescribeInterconnectBorderGatewayRegionsResponse()
1376
+ model._deserialize(response)
1377
+ return model
1378
+
1370
1379
  def DescribeUnmanagedEgressIps(self, request):
1371
1380
  """
1372
1381
  查询满足条件的非托管出口IP列表,返回IP基础信息及带宽限速模式。
@@ -1504,7 +1513,7 @@ class ZecClient(AbstractClient):
1504
1513
 
1505
1514
  def DeleteVpc(self, request):
1506
1515
  """
1507
- 删除VPC
1516
+ 删除VPC
1508
1517
  """
1509
1518
  response = self._api_call("DeleteVpc", request)
1510
1519
  model = models.DeleteVpcResponse()
@@ -1558,7 +1567,7 @@ class ZecClient(AbstractClient):
1558
1567
 
1559
1568
  def ModifySubnetStackType(self, request):
1560
1569
  """
1561
- 修改指定子网的 IP 地址堆栈类型(IPv4 / IPv4_IPv6 / IPv6)。变更为双栈或纯 IPv6 时须配置 IPv6 类型及对应的 CIDR 地址块。
1570
+ 修改子网的IP堆栈类型,用于分配或移除子网上的IPv6
1562
1571
  """
1563
1572
  response = self._api_call("ModifySubnetStackType", request)
1564
1573
  model = models.ModifySubnetStackTypeResponse()
@@ -1630,7 +1639,7 @@ class ZecClient(AbstractClient):
1630
1639
 
1631
1640
  def ModifyNatGatewayAttribute(self, request):
1632
1641
  """
1633
- 修改指定 NAT 网关的名称、关联子网、ICMP 回应及安全组配置。
1642
+ 修改NAT网关的属性。
1634
1643
  """
1635
1644
  response = self._api_call("ModifyNatGatewayAttribute", request)
1636
1645
  model = models.ModifyNatGatewayAttributeResponse()
@@ -1711,7 +1720,7 @@ class ZecClient(AbstractClient):
1711
1720
 
1712
1721
  def CreatePolicy(self, request):
1713
1722
  """
1714
- 创建防护策略。
1723
+ 创建防护策略
1715
1724
  """
1716
1725
  response = self._api_call("CreatePolicy", request)
1717
1726
  model = models.CreatePolicyResponse()
@@ -1720,7 +1729,7 @@ class ZecClient(AbstractClient):
1720
1729
 
1721
1730
  def DescribePolicys(self, request):
1722
1731
  """
1723
- 查询账户下的 DDoS 防护策略信息,支持按策略 ID、策略名称筛选,支持标签过滤和分页查询。
1732
+ 获取防护策略列表
1724
1733
  """
1725
1734
  response = self._api_call("DescribePolicys", request)
1726
1735
  model = models.DescribePolicysResponse()
@@ -1729,7 +1738,7 @@ class ZecClient(AbstractClient):
1729
1738
 
1730
1739
  def DescribePolicyDetail(self, request):
1731
1740
  """
1732
- 查询指定 DDoS 防护策略的详细配置,包括黑白名单、封禁协议、区域封禁、特征过滤及流量控制规则等。
1741
+ 获取防护策略详情
1733
1742
  """
1734
1743
  response = self._api_call("DescribePolicyDetail", request)
1735
1744
  model = models.DescribePolicyDetailResponse()
@@ -1738,7 +1747,7 @@ class ZecClient(AbstractClient):
1738
1747
 
1739
1748
  def ModifyPolicy(self, request):
1740
1749
  """
1741
- 修改指定 DDoS 防护策略的配置,包括策略名称、IP 黑白名单、封禁协议、区域封禁、特征过滤及流量控制规则。
1750
+ 修改防护策略
1742
1751
  """
1743
1752
  response = self._api_call("ModifyPolicy", request)
1744
1753
  model = models.ModifyPolicyResponse()
@@ -1747,7 +1756,7 @@ class ZecClient(AbstractClient):
1747
1756
 
1748
1757
  def AttachToPolicy(self, request):
1749
1758
  """
1750
- 防护对象关联防护策略。
1759
+ 防护对象关联防护策略
1751
1760
  """
1752
1761
  response = self._api_call("AttachToPolicy", request)
1753
1762
  model = models.AttachToPolicyResponse()
@@ -1756,7 +1765,7 @@ class ZecClient(AbstractClient):
1756
1765
 
1757
1766
  def DetachFromPolicy(self, request):
1758
1767
  """
1759
- 防护对象取消关联防护策略。
1768
+ 防护对象取消关联防护策略
1760
1769
  """
1761
1770
  response = self._api_call("DetachFromPolicy", request)
1762
1771
  model = models.DetachFromPolicyResponse()
@@ -1765,7 +1774,7 @@ class ZecClient(AbstractClient):
1765
1774
 
1766
1775
  def DescribePolicyRegions(self, request):
1767
1776
  """
1768
- 查询 DDoS 防护策略中区域封禁功能支持的可选地区列表,用于配置防护策略 `blockRegions` 参数前的参考。
1777
+ 获取区域封禁可选区域列表
1769
1778
  """
1770
1779
  response = self._api_call("DescribePolicyRegions", request)
1771
1780
  model = models.DescribePolicyRegionsResponse()
@@ -1774,7 +1783,7 @@ class ZecClient(AbstractClient):
1774
1783
 
1775
1784
  def DescribeReflectUdpPortOptions(self, request):
1776
1785
  """
1777
- 查询 DDoS 防护策略中 UDP 反射攻击防护功能的默认封禁源端口列表,用于配置防护策略 `reflectUdpPort` 参数前的参考。
1786
+ 获取默认UDP反射源端口列表
1778
1787
  """
1779
1788
  response = self._api_call("DescribeReflectUdpPortOptions", request)
1780
1789
  model = models.DescribeReflectUdpPortOptionsResponse()
@@ -1783,7 +1792,7 @@ class ZecClient(AbstractClient):
1783
1792
 
1784
1793
  def DeletePolicy(self, request):
1785
1794
  """
1786
- 删除防护策略。
1795
+ 删除防护策略
1787
1796
  """
1788
1797
  response = self._api_call("DeletePolicy", request)
1789
1798
  model = models.DeletePolicyResponse()
@@ -1792,7 +1801,7 @@ class ZecClient(AbstractClient):
1792
1801
 
1793
1802
  def DescribeDDosEventDetail(self, request):
1794
1803
  """
1795
- 获取攻击事件详情。
1804
+ 获取攻击事件详情
1796
1805
  """
1797
1806
  response = self._api_call("DescribeDDosEventDetail", request)
1798
1807
  model = models.DescribeDDosEventDetailResponse()
@@ -1801,7 +1810,7 @@ class ZecClient(AbstractClient):
1801
1810
 
1802
1811
  def DescribeDDosAllEventList(self, request):
1803
1812
  """
1804
- 获取攻击事件列表。
1813
+ 获取攻击事件列表
1805
1814
  """
1806
1815
  response = self._api_call("DescribeDDosAllEventList", request)
1807
1816
  model = models.DescribeDDosAllEventListResponse()
@@ -1882,7 +1891,7 @@ class ZecClient(AbstractClient):
1882
1891
 
1883
1892
  def CreatePlacementGroup(self, request):
1884
1893
  """
1885
- 创建一个置放组。
1894
+ 创建一个置放组。置放组的管理范围为zone维度,创建时必须选择所属可用区。
1886
1895
  """
1887
1896
  response = self._api_call("CreatePlacementGroup", request)
1888
1897
  model = models.CreatePlacementGroupResponse()
@@ -1891,7 +1900,7 @@ class ZecClient(AbstractClient):
1891
1900
 
1892
1901
  def ModifyPlacementGroupAttributes(self, request):
1893
1902
  """
1894
- 修改置放组的名称、分区数、亲和度等属性。
1903
+ 修改置放组的名称、分区数、亲和度等属性。所属可用区不可修改。分区数只能调大,不能调小。
1895
1904
  """
1896
1905
  response = self._api_call("ModifyPlacementGroupAttributes", request)
1897
1906
  model = models.ModifyPlacementGroupAttributesResponse()
@@ -1918,7 +1927,7 @@ class ZecClient(AbstractClient):
1918
1927
 
1919
1928
  def ModifyInstancePlacement(self, request):
1920
1929
  """
1921
- 将实例加入置放组、从一个置放组迁移到另一个、或从置放组移除。
1930
+ 将实例加入置放组、从一个置放组迁移到另一个、或从置放组移除(placementGroupId 为空表示移除)。
1922
1931
  """
1923
1932
  response = self._api_call("ModifyInstancePlacement", request)
1924
1933
  model = models.ModifyInstancePlacementResponse()
@@ -1945,7 +1954,7 @@ class ZecClient(AbstractClient):
1945
1954
 
1946
1955
  def ModifyHaVipAttribute(self, request):
1947
1956
  """
1948
- 修改高可用虚拟IP的名称或绑定的安全组。
1957
+ 修改高可用虚拟IP的名称或绑定的安全组。name 与 securityGroupId 至少提供一个。
1949
1958
  """
1950
1959
  response = self._api_call("ModifyHaVipAttribute", request)
1951
1960
  model = models.ModifyHaVipAttributeResponse()
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: zenlayercloud-sdk-python
3
- Version: 2.0.68
3
+ Version: 2.0.69
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=889V6AOA3WIuU1_e4tPgUtdIQt2vTzi5NYKooQZbYX0,95
1
+ zenlayercloud/__init__.py,sha256=rqHWv8xlgNhz6hbFKbz1KIb6ef4TCzX5jAyBhJ-10_o,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
@@ -31,8 +31,8 @@ zenlayercloud/common/excpetion/error_code.py,sha256=9UJf3KTYRjUKElRvsm_1JKk1Itnj
31
31
  zenlayercloud/common/excpetion/zenlayer_cloud_sdk_exception.py,sha256=IVKBhJKEKwbCgVk2K7bAZk8-rA4bBgbAaD2yciqaOBg,866
32
32
  zenlayercloud/ipt/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
33
33
  zenlayercloud/ipt/v20240901/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
34
- zenlayercloud/ipt/v20240901/ipt_client.py,sha256=Cf2gIpcbxTTnE_UdD6Et5MbnCPxO0WvwphQZhJq6nrM,2727
35
- zenlayercloud/ipt/v20240901/models.py,sha256=F6OXbGpVir7iVKKtf36pLbLNA7lwHYZQa9YbRrFwf-0,19783
34
+ zenlayercloud/ipt/v20240901/ipt_client.py,sha256=WFVZ8JqSjGFm7rEbCjkbqcy-95Wb33cPhKiZyVcY0N4,3801
35
+ zenlayercloud/ipt/v20240901/models.py,sha256=o4cJ6vBYlEGnLywUlAIvFL8lylWZJHartvCmdWDGTm4,32574
36
36
  zenlayercloud/maintenance/__init__.py,sha256=A82oWiV038jIXEbygeOeO1DzWKOqGkdQI2X9BX0HkvM,69
37
37
  zenlayercloud/maintenance/v20250310/__init__.py,sha256=A82oWiV038jIXEbygeOeO1DzWKOqGkdQI2X9BX0HkvM,69
38
38
  zenlayercloud/maintenance/v20250310/maintenance_client.py,sha256=AYlOFPJt_tqDvn83btr0IWni_XOGs-_NL3wsKLICyyw,528
@@ -80,8 +80,8 @@ 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=GlzM5OrQjxu08pN8XlyF8BHABG9b_Vb88vRuhTMq6KM,251202
84
- zenlayercloud/zec/v20250901/zec_client.py,sha256=nYSpkeRIEhHFhqQcEwn29BrVvxPh0cZNO3N5fSNGHSo,69047
83
+ zenlayercloud/zec/v20250901/models.py,sha256=kftqX8Jfd_c7s2wqR1ukINlNtuChSTGhgNV3R4w1Amg,254416
84
+ zenlayercloud/zec/v20250901/zec_client.py,sha256=ibmgqmaeKjh33R6o3ObMCrCxg1-bB-OKdFoGEsOuWuc,67366
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
@@ -102,8 +102,8 @@ zenlayercloud/zrm/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU
102
102
  zenlayercloud/zrm/v20251014/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
103
103
  zenlayercloud/zrm/v20251014/models.py,sha256=3As3PAdEKe_Cpb1QpGI2_mrMlM2uZ6QOa4isOi09q3I,7491
104
104
  zenlayercloud/zrm/v20251014/zrm_client.py,sha256=p3fKeOdhGdjx_MhFcMuu9wv4bkSiwn_GNrj_570fkMg,2504
105
- zenlayercloud_sdk_python-2.0.68.dist-info/licenses/LICENSE,sha256=QwcOLU5TJoTeUhuIXzhdCEEDDvorGiC6-3YTOl4TecE,11356
106
- zenlayercloud_sdk_python-2.0.68.dist-info/METADATA,sha256=1uaM-REMf-pX-6h2uZjg12LkxU_ymObO0KUPVPDup0I,1653
107
- zenlayercloud_sdk_python-2.0.68.dist-info/WHEEL,sha256=K260EYznzXsJYBQGqmI8VTxEdiZYNvDZwW9cBh9-_MA,91
108
- zenlayercloud_sdk_python-2.0.68.dist-info/top_level.txt,sha256=ZU6L6c0yQDkyO8nG0oGpC6ptc0TNucEncz3xbFsoHmE,14
109
- zenlayercloud_sdk_python-2.0.68.dist-info/RECORD,,
105
+ zenlayercloud_sdk_python-2.0.69.dist-info/licenses/LICENSE,sha256=QwcOLU5TJoTeUhuIXzhdCEEDDvorGiC6-3YTOl4TecE,11356
106
+ zenlayercloud_sdk_python-2.0.69.dist-info/METADATA,sha256=Z5XOkFGyyqQruLMQ7RDLvYLbPK6k-C-xNGWrnIfXvrw,1653
107
+ zenlayercloud_sdk_python-2.0.69.dist-info/WHEEL,sha256=K260EYznzXsJYBQGqmI8VTxEdiZYNvDZwW9cBh9-_MA,91
108
+ zenlayercloud_sdk_python-2.0.69.dist-info/top_level.txt,sha256=ZU6L6c0yQDkyO8nG0oGpC6ptc0TNucEncz3xbFsoHmE,14
109
+ zenlayercloud_sdk_python-2.0.69.dist-info/RECORD,,