zenlayercloud-sdk-python 2.0.68__py3-none-any.whl → 2.0.70__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.070"
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 已废弃,请勿使用",
@@ -4144,6 +4179,12 @@ class ReplaceIp(AbstractModel):
4144
4179
 
4145
4180
  def _deserialize(self, params):
4146
4181
  self.eipId = params.get("eipId")
4182
+ if params.get("ownIp") is not None:
4183
+ warnings.warn(
4184
+ "ownIp 已废弃,请勿使用",
4185
+ DeprecationWarning,
4186
+ stacklevel=2
4187
+ )
4147
4188
  self.ownIp = params.get("ownIp")
4148
4189
  self.targetIp = params.get("targetIp")
4149
4190
 
@@ -4172,6 +4213,12 @@ class ChangeEipInternetChargeTypeRequest(AbstractModel):
4172
4213
  self.internetChargeType = params.get("internetChargeType")
4173
4214
  self.flowPackage = params.get("flowPackage")
4174
4215
  self.bandwidth = params.get("bandwidth")
4216
+ if params.get("bandwidthCap") is not None:
4217
+ warnings.warn(
4218
+ "bandwidthCap 已废弃,请勿使用",
4219
+ DeprecationWarning,
4220
+ stacklevel=2
4221
+ )
4175
4222
  self.bandwidthCap = params.get("bandwidthCap")
4176
4223
  self.clusterId = params.get("clusterId")
4177
4224
 
@@ -4195,6 +4242,12 @@ class ModifyEipBandwidthRequest(AbstractModel):
4195
4242
  def _deserialize(self, params):
4196
4243
  self.eipId = params.get("eipId")
4197
4244
  self.bandwidth = params.get("bandwidth")
4245
+ if params.get("commitBandwidth") is not None:
4246
+ warnings.warn(
4247
+ "commitBandwidth 已废弃,请勿使用",
4248
+ DeprecationWarning,
4249
+ stacklevel=2
4250
+ )
4198
4251
  self.commitBandwidth = params.get("commitBandwidth")
4199
4252
 
4200
4253
 
@@ -5488,6 +5541,71 @@ class DeleteBorderGatewayResponse(AbstractModel):
5488
5541
  self.requestId = params.get("requestId")
5489
5542
 
5490
5543
 
5544
+ class DescribeInterconnectBorderGatewayRegionsRequest(AbstractModel):
5545
+ def __init__(self):
5546
+ self.regionId = None
5547
+ self.dcId = None
5548
+ self.dcCode = None
5549
+
5550
+ def _deserialize(self, params):
5551
+ self.regionId = params.get("regionId")
5552
+ self.dcId = params.get("dcId")
5553
+ self.dcCode = params.get("dcCode")
5554
+
5555
+
5556
+ class DescribeInterconnectBorderGatewayRegionsResponse(AbstractModel):
5557
+ def __init__(self):
5558
+ self.requestId = None
5559
+ self.regionSet = None
5560
+
5561
+ def _deserialize(self, params):
5562
+ self.requestId = params.get("requestId")
5563
+ if params.get("regionSet") is not None:
5564
+ self.regionSet = []
5565
+ for item in params.get("regionSet"):
5566
+ obj = InterconnectRegion(item)
5567
+ self.regionSet.append(obj)
5568
+
5569
+
5570
+ class InterconnectRegion(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.regionId = None
5578
+ self.name = None
5579
+ self.dataCenter = None
5580
+
5581
+ def _deserialize(self, params):
5582
+ self.regionId = params.get("regionId")
5583
+ self.name = params.get("name")
5584
+ if params.get("dataCenter") is not None:
5585
+ self.dataCenter = InterconnectDataCenter(params.get("dataCenter"))
5586
+
5587
+
5588
+ class InterconnectDataCenter(AbstractModel):
5589
+ def __init__(self, params=None):
5590
+ if params is None:
5591
+ params = {}
5592
+ if len(params) > 0:
5593
+ self._deserialize(params)
5594
+ return
5595
+ self.dcId = None
5596
+ self.dcCode = None
5597
+ self.name = None
5598
+ self.cityName = None
5599
+ self.countryName = None
5600
+
5601
+ def _deserialize(self, params):
5602
+ self.dcId = params.get("dcId")
5603
+ self.dcCode = params.get("dcCode")
5604
+ self.name = params.get("name")
5605
+ self.cityName = params.get("cityName")
5606
+ self.countryName = params.get("countryName")
5607
+
5608
+
5491
5609
  class DescribeUnmanagedEgressIpsRequest(AbstractModel):
5492
5610
  def __init__(self):
5493
5611
  self.unmanagedEgressIpIds = None
@@ -235,7 +235,7 @@ class ZecClient(AbstractClient):
235
235
 
236
236
  def DescribeZoneGpuInstanceConfigInfos(self, request):
237
237
  """
238
- 查询可用区售卖的 GPU 规格信息
238
+ 查询可用区售卖的 GPU 规格信息。
239
239
  """
240
240
  response = self._api_call("DescribeZoneGpuInstanceConfigInfos", request)
241
241
  model = models.DescribeZoneGpuInstanceConfigInfosResponse()
@@ -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()
@@ -748,7 +748,7 @@ class ZecClient(AbstractClient):
748
748
 
749
749
  def DescribeCidrPrice(self, request):
750
750
  """
751
- 查询IPv4 CIDR地址块售卖价格。
751
+ 查询 IPv4 CIDR 地址块售卖价格。
752
752
  """
753
753
  response = self._api_call("DescribeCidrPrice", request)
754
754
  model = models.DescribeCidrPriceResponse()
@@ -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()
@@ -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基础信息及带宽限速模式。
@@ -1882,7 +1891,7 @@ class ZecClient(AbstractClient):
1882
1891
 
1883
1892
  def CreatePlacementGroup(self, request):
1884
1893
  """
1885
- 创建一个置放组。
1894
+ 创建置放组。
1886
1895
  """
1887
1896
  response = self._api_call("CreatePlacementGroup", request)
1888
1897
  model = models.CreatePlacementGroupResponse()
@@ -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.70
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=oACyaGTdMQwp6owEbU3iQnyr2mKGvD0W2bGafQMblpY,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=L9oenBn4EoJXb_fnbajrEPoFltffKO8Fb3Khmhtw7Z4,255050
84
+ zenlayercloud/zec/v20250901/zec_client.py,sha256=McldGN1I6GlPSuUApsmb4vWSsjSFyMbeF5TgHHjmHY4,69290
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.70.dist-info/licenses/LICENSE,sha256=QwcOLU5TJoTeUhuIXzhdCEEDDvorGiC6-3YTOl4TecE,11356
106
+ zenlayercloud_sdk_python-2.0.70.dist-info/METADATA,sha256=esibzjSHE-o05dFshlRH5cYw1UCM7K3sPBdrgLcLGL8,1653
107
+ zenlayercloud_sdk_python-2.0.70.dist-info/WHEEL,sha256=K260EYznzXsJYBQGqmI8VTxEdiZYNvDZwW9cBh9-_MA,91
108
+ zenlayercloud_sdk_python-2.0.70.dist-info/top_level.txt,sha256=ZU6L6c0yQDkyO8nG0oGpC6ptc0TNucEncz3xbFsoHmE,14
109
+ zenlayercloud_sdk_python-2.0.70.dist-info/RECORD,,