alibabacloud-vpc20160428 6.12.0__py3-none-any.whl → 6.13.0__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.
@@ -13986,12 +13986,52 @@ class CreateNatIpRequest(TeaModel):
13986
13986
  return self
13987
13987
 
13988
13988
 
13989
+ class CreateNatIpResponseBodyNatIps(TeaModel):
13990
+ def __init__(
13991
+ self,
13992
+ ipv_4prefix: str = None,
13993
+ nat_ip: str = None,
13994
+ nat_ip_id: str = None,
13995
+ ):
13996
+ self.ipv_4prefix = ipv_4prefix
13997
+ self.nat_ip = nat_ip
13998
+ self.nat_ip_id = nat_ip_id
13999
+
14000
+ def validate(self):
14001
+ pass
14002
+
14003
+ def to_map(self):
14004
+ _map = super().to_map()
14005
+ if _map is not None:
14006
+ return _map
14007
+
14008
+ result = dict()
14009
+ if self.ipv_4prefix is not None:
14010
+ result['Ipv4Prefix'] = self.ipv_4prefix
14011
+ if self.nat_ip is not None:
14012
+ result['NatIp'] = self.nat_ip
14013
+ if self.nat_ip_id is not None:
14014
+ result['NatIpId'] = self.nat_ip_id
14015
+ return result
14016
+
14017
+ def from_map(self, m: dict = None):
14018
+ m = m or dict()
14019
+ if m.get('Ipv4Prefix') is not None:
14020
+ self.ipv_4prefix = m.get('Ipv4Prefix')
14021
+ if m.get('NatIp') is not None:
14022
+ self.nat_ip = m.get('NatIp')
14023
+ if m.get('NatIpId') is not None:
14024
+ self.nat_ip_id = m.get('NatIpId')
14025
+ return self
14026
+
14027
+
13989
14028
  class CreateNatIpResponseBody(TeaModel):
13990
14029
  def __init__(
13991
14030
  self,
13992
14031
  ipv_4prefix: str = None,
13993
14032
  nat_ip: str = None,
13994
14033
  nat_ip_id: str = None,
14034
+ nat_ips: List[CreateNatIpResponseBodyNatIps] = None,
13995
14035
  request_id: str = None,
13996
14036
  ):
13997
14037
  self.ipv_4prefix = ipv_4prefix
@@ -13999,11 +14039,15 @@ class CreateNatIpResponseBody(TeaModel):
13999
14039
  self.nat_ip = nat_ip
14000
14040
  # The ID of the NAT IP address.
14001
14041
  self.nat_ip_id = nat_ip_id
14042
+ self.nat_ips = nat_ips
14002
14043
  # The request ID.
14003
14044
  self.request_id = request_id
14004
14045
 
14005
14046
  def validate(self):
14006
- pass
14047
+ if self.nat_ips:
14048
+ for k in self.nat_ips:
14049
+ if k:
14050
+ k.validate()
14007
14051
 
14008
14052
  def to_map(self):
14009
14053
  _map = super().to_map()
@@ -14017,6 +14061,10 @@ class CreateNatIpResponseBody(TeaModel):
14017
14061
  result['NatIp'] = self.nat_ip
14018
14062
  if self.nat_ip_id is not None:
14019
14063
  result['NatIpId'] = self.nat_ip_id
14064
+ result['NatIps'] = []
14065
+ if self.nat_ips is not None:
14066
+ for k in self.nat_ips:
14067
+ result['NatIps'].append(k.to_map() if k else None)
14020
14068
  if self.request_id is not None:
14021
14069
  result['RequestId'] = self.request_id
14022
14070
  return result
@@ -14029,6 +14077,11 @@ class CreateNatIpResponseBody(TeaModel):
14029
14077
  self.nat_ip = m.get('NatIp')
14030
14078
  if m.get('NatIpId') is not None:
14031
14079
  self.nat_ip_id = m.get('NatIpId')
14080
+ self.nat_ips = []
14081
+ if m.get('NatIps') is not None:
14082
+ for k in m.get('NatIps'):
14083
+ temp_model = CreateNatIpResponseBodyNatIps()
14084
+ self.nat_ips.append(temp_model.from_map(k))
14032
14085
  if m.get('RequestId') is not None:
14033
14086
  self.request_id = m.get('RequestId')
14034
14087
  return self
@@ -15252,6 +15305,8 @@ class CreatePhysicalConnectionOccupancyOrderRequest(TeaModel):
15252
15305
  def __init__(
15253
15306
  self,
15254
15307
  auto_pay: bool = None,
15308
+ auto_renew: bool = None,
15309
+ auto_renew_duration: int = None,
15255
15310
  client_token: str = None,
15256
15311
  instance_charge_type: str = None,
15257
15312
  owner_account: str = None,
@@ -15268,6 +15323,8 @@ class CreatePhysicalConnectionOccupancyOrderRequest(TeaModel):
15268
15323
  # * **true**: yes Make sure that you have a sufficient balance in your account. Otherwise, your order becomes invalid and is automatically canceled.
15269
15324
  # * **false**: disables automatic payment. This is the default value.
15270
15325
  self.auto_pay = auto_pay
15326
+ self.auto_renew = auto_renew
15327
+ self.auto_renew_duration = auto_renew_duration
15271
15328
  # The client token that is used to ensure the idempotence of the request.
15272
15329
  #
15273
15330
  # You can use the client to generate the token, but you must make sure that the token is unique among different requests.
@@ -15312,6 +15369,10 @@ class CreatePhysicalConnectionOccupancyOrderRequest(TeaModel):
15312
15369
  result = dict()
15313
15370
  if self.auto_pay is not None:
15314
15371
  result['AutoPay'] = self.auto_pay
15372
+ if self.auto_renew is not None:
15373
+ result['AutoRenew'] = self.auto_renew
15374
+ if self.auto_renew_duration is not None:
15375
+ result['AutoRenewDuration'] = self.auto_renew_duration
15315
15376
  if self.client_token is not None:
15316
15377
  result['ClientToken'] = self.client_token
15317
15378
  if self.instance_charge_type is not None:
@@ -15338,6 +15399,10 @@ class CreatePhysicalConnectionOccupancyOrderRequest(TeaModel):
15338
15399
  m = m or dict()
15339
15400
  if m.get('AutoPay') is not None:
15340
15401
  self.auto_pay = m.get('AutoPay')
15402
+ if m.get('AutoRenew') is not None:
15403
+ self.auto_renew = m.get('AutoRenew')
15404
+ if m.get('AutoRenewDuration') is not None:
15405
+ self.auto_renew_duration = m.get('AutoRenewDuration')
15341
15406
  if m.get('ClientToken') is not None:
15342
15407
  self.client_token = m.get('ClientToken')
15343
15408
  if m.get('InstanceChargeType') is not None:
@@ -17712,24 +17777,19 @@ class CreateSslVpnServerRequest(TeaModel):
17712
17777
  #
17713
17778
  # Make sure that the number of IP addresses in the client CIDR block is at least four times the maximum number of SSL-VPN connections supported by the VPN gateway.
17714
17779
  #
17715
- # <details>
17716
- # <summary>Click to view the reason.</summary>
17780
+ # **Click to view the reason.**\
17717
17781
  #
17718
17782
  # For example, if you specify 192.168.0.0/24 as the client CIDR block, the system first divides a subnet CIDR block with a subnet mask of 30 from 192.168.0.0/24, such as 192.168.0.4/30. This subnet provides up to four IP addresses. Then, the system allocates an IP address from 192.168.0.4/30 to the client and uses the other three IP addresses to ensure network communication. In this case, one client consumes four IP addresses. Therefore, to ensure that an IP address is assigned to your client, the number of IP addresses in the client CIDR block must be at least four times the maximum number of SSL-VPN connections supported by the VPN gateway with which the SSL server is associated.
17719
- # </details>
17720
17783
  #
17721
- # <details>
17722
- # <summary>Click to view the CIDR blocks that are not supported.</summary>
17784
+ # **Click to view the CIDR blocks that are not supported.**\
17723
17785
  #
17724
17786
  # * 100.64.0.0~100.127.255.255
17725
17787
  # * 127.0.0.0~127.255.255.255
17726
17788
  # * 169.254.0.0~169.254.255.255
17727
17789
  # * 224.0.0.0~239.255.255.255
17728
17790
  # * 255.0.0.0~255.255.255.255
17729
- # </details>
17730
- # <details>
17731
- # <summary>Click to view the recommended client CIDR blocks for different numbers of SSL-VPN connections.</summary>
17732
17791
  #
17792
+ # **Click to view the recommended client CIDR blocks for different numbers of SSL-VPN connections.**\
17733
17793
  #
17734
17794
  # * If the number of SSL-VPN connections is 5, we recommend that you specify a client CIDR block with a subnet mask that is less than or equal to 27 bits in length. Examples: 10.0.0.0/27 and 10.0.0.0/26.
17735
17795
  # * If the number of SSL-VPN connections is 10, we recommend that you specify a client CIDR block with a subnet mask that is less than or equal to 26 bits in length. Examples: 10.0.0.0/26 and 10.0.0.0/25.
@@ -17739,12 +17799,16 @@ class CreateSslVpnServerRequest(TeaModel):
17739
17799
  # * If the number of SSL-VPN connections is 200, we recommend that you specify a client CIDR block with a subnet mask that is less than or equal to 22 bits in length. Examples: 10.0.0.0/22 and 10.0.0.0/21.
17740
17800
  # * If the number of SSL-VPN connections is 500, we recommend that you specify a client CIDR block with a subnet mask that is less than or equal to 21 bits in length. Examples: 10.0.0.0/21 and 10.0.0.0/20.
17741
17801
  # * If the number of SSL-VPN connections is 1,000, we recommend that you specify a client CIDR block with a subnet mask that is less than or equal to 20 bits in length. Examples: 10.0.0.0/20 and 10.0.0.0/19.
17742
- # </details>
17743
17802
  #
17744
- # > - The subnet mask of the client CIDR block must be 16 to 29 bits in length.
17745
- # > - Make sure that the client CIDR block does not overlap with the local CIDR block, the VPC CIDR block, or route CIDR blocks associated with the client.
17746
- # > - We recommend that you use 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16, or one of their subnets as the client CIDR block. If you want to specify a public CIDR block as the client CIDR block, you must specify the public CIDR block as the user CIDR block of the virtual private cloud (VPC). This way, the VPC can access the public CIDR block. For more information, see [VPC FAQs](https://help.aliyun.com/document_detail/185311.html).
17747
- # > - After you create an SSL server, the system automatically adds routes that point to the client CIDR block to the VPC route table. Do not manually add routes that point to the client CIDR block. Otherwise, SSL-VPN connections cannot work as expected.
17803
+ # >
17804
+ #
17805
+ # * The subnet mask of the client CIDR block must be 16 to 29 bits in length.
17806
+ #
17807
+ # * Make sure that the client CIDR block does not overlap with the local CIDR block, the VPC CIDR block, or route CIDR blocks associated with the client.
17808
+ #
17809
+ # * We recommend that you use 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16, or one of their subnets as the client CIDR block. If you want to specify a public CIDR block as the client CIDR block, you must specify the public CIDR block as the user CIDR block of the virtual private cloud (VPC). This way, the VPC can access the public CIDR block. For more information, see [VPC FAQs](https://help.aliyun.com/document_detail/185311.html).
17810
+ #
17811
+ # * After you create an SSL server, the system automatically adds routes that point to the client CIDR block to the VPC route table. Do not manually add routes that point to the client CIDR block. Otherwise, SSL-VPN connections cannot work as expected.
17748
17812
  #
17749
17813
  # This parameter is required.
17750
17814
  self.client_ip_pool = client_ip_pool
@@ -17752,7 +17816,7 @@ class CreateSslVpnServerRequest(TeaModel):
17752
17816
  #
17753
17817
  # You can use the client to generate the token, but you must make sure that the token is unique among different requests. The token can contain only ASCII characters.
17754
17818
  #
17755
- # > If you do not specify this parameter, the system automatically uses the **request ID** as the **client token**. The **request ID** may be different for each request.
17819
+ # > If you do not specify this parameter, the system automatically uses the **request ID** as the **client token**. The **request ID** may be different for each request.
17756
17820
  self.client_token = client_token
17757
17821
  # Specifies whether to enable data compression. Valid values:
17758
17822
  #
@@ -17765,9 +17829,13 @@ class CreateSslVpnServerRequest(TeaModel):
17765
17829
  # * **true**: enables this feature.
17766
17830
  # * **false** (default): disables this feature.
17767
17831
  #
17768
- # > - If you use two-factor authentication for the first time, you must first complete [authorization](https://ram.console.aliyun.com/role/authorization?request=%7B%22Services%22%3A%5B%7B%22Service%22%3A%22VPN%22%2C%22Roles%22%3A%5B%7B%22RoleName%22%3A%22AliyunVpnAccessingIdaasRole%22%2C%22TemplateId%22%3A%22IdaasRole%22%7D%5D%7D%5D%2C%22ReturnUrl%22%3A%22https%3A%2F%2Fvpc.console.aliyun.com%2Fsslvpn%2Fcn-shanghai%2Fvpn-servers%22%7D).
17769
- # > - When you create an SSL server in the UAE (Dubai) region, we recommend that you associate the SSL server with an IDaaS EIAM 2.0 instance in Singapore to reduce latency.
17770
- # > - IDaaS EIAM 1.0 instances are no longer for purchase. If your Alibaba Cloud account has IDaaS EIAM 1.0 instances, the IDaaS EIAM 1.0 instances can be associated after two-factor authentication is enabled. If your Alibaba Cloud account does not have IDaaS EIAM 1.0 instances, only IDaaS EIAM 2.0 instances can be associated after two-factor authentication is enabled.
17832
+ # >
17833
+ #
17834
+ # * If you use two-factor authentication for the first time, you must first complete [authorization](https://ram.console.aliyun.com/role/authorization?request=%7B%22Services%22%3A%5B%7B%22Service%22%3A%22VPN%22%2C%22Roles%22%3A%5B%7B%22RoleName%22%3A%22AliyunVpnAccessingIdaasRole%22%2C%22TemplateId%22%3A%22IdaasRole%22%7D%5D%7D%5D%2C%22ReturnUrl%22%3A%22https%3A%2F%2Fvpc.console.aliyun.com%2Fsslvpn%2Fcn-shanghai%2Fvpn-servers%22%7D) .
17835
+ #
17836
+ # * When you create an SSL server in the UAE (Dubai) region, we recommend that you associate the SSL server with an IDaaS EIAM 2.0 instance in Singapore to reduce latency.
17837
+ #
17838
+ # * IDaaS EIAM 1.0 instances are no longer for purchase. If your Alibaba Cloud account has IDaaS EIAM 1.0 instances, the IDaaS EIAM 1.0 instances can be associated after two-factor authentication is enabled. If your Alibaba Cloud account does not have IDaaS EIAM 1.0 instances, only IDaaS EIAM 2.0 instances can be associated after two-factor authentication is enabled.
17771
17839
  self.enable_multi_factor_auth = enable_multi_factor_auth
17772
17840
  # The ID of the IDaaS application.
17773
17841
  #
@@ -25493,179 +25561,39 @@ class DeleteDhcpOptionsSetResponse(TeaModel):
25493
25561
  return self
25494
25562
 
25495
25563
 
25496
- class DeleteExpressConnectTrafficQosRequest(TeaModel):
25564
+ class DeleteExpressConnectRequest(TeaModel):
25497
25565
  def __init__(
25498
25566
  self,
25499
25567
  client_token: str = None,
25568
+ force: bool = None,
25500
25569
  owner_account: str = None,
25501
25570
  owner_id: int = None,
25502
- qos_id: str = None,
25503
25571
  region_id: str = None,
25504
25572
  resource_owner_account: str = None,
25573
+ resource_owner_id: int = None,
25574
+ router_interface_id: str = None,
25505
25575
  ):
25506
25576
  # The client token that is used to ensure the idempotence of the request.
25507
25577
  #
25508
- # You can use the client to generate the token, but you must make sure that the token is unique among different requests. The client token can contain only ASCII characters.
25509
- #
25510
- # > If you do not specify this parameter, the system automatically uses the **request ID** as the **client token**. The **request ID** may be different for each request.
25578
+ # Use the client to generate the value, but you must ensure that it is unique among different requests. The token can contain only ASCII characters and cannot exceed 64 characters in length.
25511
25579
  self.client_token = client_token
25580
+ # Specifies whether to delete the route entries associated with the Express Connect instance.
25581
+ #
25582
+ # * **true**: forcefully deletes the snapshot
25583
+ # * **false**\
25584
+ self.force = force
25512
25585
  self.owner_account = owner_account
25513
25586
  self.owner_id = owner_id
25514
- # The instance ID of the QoS policy.
25515
- #
25516
- # This parameter is required.
25517
- self.qos_id = qos_id
25518
- # The region ID of the QoS policy.
25519
- #
25520
- # You can call the [DescribeRegions](https://help.aliyun.com/document_detail/36063.html) operation to query the most recent region list.
25587
+ # The ID of the region where the Express Connect instance is deployed. Call the [DescribeRegions](36063) operation to query the region list.
25521
25588
  #
25522
25589
  # This parameter is required.
25523
25590
  self.region_id = region_id
25524
25591
  self.resource_owner_account = resource_owner_account
25525
-
25526
- def validate(self):
25527
- pass
25528
-
25529
- def to_map(self):
25530
- _map = super().to_map()
25531
- if _map is not None:
25532
- return _map
25533
-
25534
- result = dict()
25535
- if self.client_token is not None:
25536
- result['ClientToken'] = self.client_token
25537
- if self.owner_account is not None:
25538
- result['OwnerAccount'] = self.owner_account
25539
- if self.owner_id is not None:
25540
- result['OwnerId'] = self.owner_id
25541
- if self.qos_id is not None:
25542
- result['QosId'] = self.qos_id
25543
- if self.region_id is not None:
25544
- result['RegionId'] = self.region_id
25545
- if self.resource_owner_account is not None:
25546
- result['ResourceOwnerAccount'] = self.resource_owner_account
25547
- return result
25548
-
25549
- def from_map(self, m: dict = None):
25550
- m = m or dict()
25551
- if m.get('ClientToken') is not None:
25552
- self.client_token = m.get('ClientToken')
25553
- if m.get('OwnerAccount') is not None:
25554
- self.owner_account = m.get('OwnerAccount')
25555
- if m.get('OwnerId') is not None:
25556
- self.owner_id = m.get('OwnerId')
25557
- if m.get('QosId') is not None:
25558
- self.qos_id = m.get('QosId')
25559
- if m.get('RegionId') is not None:
25560
- self.region_id = m.get('RegionId')
25561
- if m.get('ResourceOwnerAccount') is not None:
25562
- self.resource_owner_account = m.get('ResourceOwnerAccount')
25563
- return self
25564
-
25565
-
25566
- class DeleteExpressConnectTrafficQosResponseBody(TeaModel):
25567
- def __init__(
25568
- self,
25569
- request_id: str = None,
25570
- ):
25571
- # The request ID.
25572
- self.request_id = request_id
25573
-
25574
- def validate(self):
25575
- pass
25576
-
25577
- def to_map(self):
25578
- _map = super().to_map()
25579
- if _map is not None:
25580
- return _map
25581
-
25582
- result = dict()
25583
- if self.request_id is not None:
25584
- result['RequestId'] = self.request_id
25585
- return result
25586
-
25587
- def from_map(self, m: dict = None):
25588
- m = m or dict()
25589
- if m.get('RequestId') is not None:
25590
- self.request_id = m.get('RequestId')
25591
- return self
25592
-
25593
-
25594
- class DeleteExpressConnectTrafficQosResponse(TeaModel):
25595
- def __init__(
25596
- self,
25597
- headers: Dict[str, str] = None,
25598
- status_code: int = None,
25599
- body: DeleteExpressConnectTrafficQosResponseBody = None,
25600
- ):
25601
- self.headers = headers
25602
- self.status_code = status_code
25603
- self.body = body
25604
-
25605
- def validate(self):
25606
- if self.body:
25607
- self.body.validate()
25608
-
25609
- def to_map(self):
25610
- _map = super().to_map()
25611
- if _map is not None:
25612
- return _map
25613
-
25614
- result = dict()
25615
- if self.headers is not None:
25616
- result['headers'] = self.headers
25617
- if self.status_code is not None:
25618
- result['statusCode'] = self.status_code
25619
- if self.body is not None:
25620
- result['body'] = self.body.to_map()
25621
- return result
25622
-
25623
- def from_map(self, m: dict = None):
25624
- m = m or dict()
25625
- if m.get('headers') is not None:
25626
- self.headers = m.get('headers')
25627
- if m.get('statusCode') is not None:
25628
- self.status_code = m.get('statusCode')
25629
- if m.get('body') is not None:
25630
- temp_model = DeleteExpressConnectTrafficQosResponseBody()
25631
- self.body = temp_model.from_map(m['body'])
25632
- return self
25633
-
25634
-
25635
- class DeleteExpressConnectTrafficQosQueueRequest(TeaModel):
25636
- def __init__(
25637
- self,
25638
- client_token: str = None,
25639
- owner_account: str = None,
25640
- owner_id: int = None,
25641
- qos_id: str = None,
25642
- queue_id: str = None,
25643
- region_id: str = None,
25644
- resource_owner_account: str = None,
25645
- ):
25646
- # The client token that is used to ensure the idempotence of the request.
25647
- #
25648
- # You can use the client to generate the token, but you must make sure that the token is unique among different requests. The client token can contain only ASCII characters.
25649
- #
25650
- # > If you do not specify this parameter, the system automatically uses the **request ID** as the **client token**. The **request ID** may be different for each request.
25651
- self.client_token = client_token
25652
- self.owner_account = owner_account
25653
- self.owner_id = owner_id
25654
- # The ID of the QoS policy.
25655
- #
25656
- # This parameter is required.
25657
- self.qos_id = qos_id
25658
- # The ID of the QoS queue.
25659
- #
25660
- # This parameter is required.
25661
- self.queue_id = queue_id
25662
- # The region ID of the QoS policy.
25663
- #
25664
- # You can call the [DescribeRegions](https://help.aliyun.com/document_detail/36063.html) operation to query the most recent region list.
25592
+ self.resource_owner_id = resource_owner_id
25593
+ # The ID of the Express Connect instance.
25665
25594
  #
25666
25595
  # This parameter is required.
25667
- self.region_id = region_id
25668
- self.resource_owner_account = resource_owner_account
25596
+ self.router_interface_id = router_interface_id
25669
25597
 
25670
25598
  def validate(self):
25671
25599
  pass
@@ -25678,45 +25606,49 @@ class DeleteExpressConnectTrafficQosQueueRequest(TeaModel):
25678
25606
  result = dict()
25679
25607
  if self.client_token is not None:
25680
25608
  result['ClientToken'] = self.client_token
25609
+ if self.force is not None:
25610
+ result['Force'] = self.force
25681
25611
  if self.owner_account is not None:
25682
25612
  result['OwnerAccount'] = self.owner_account
25683
25613
  if self.owner_id is not None:
25684
25614
  result['OwnerId'] = self.owner_id
25685
- if self.qos_id is not None:
25686
- result['QosId'] = self.qos_id
25687
- if self.queue_id is not None:
25688
- result['QueueId'] = self.queue_id
25689
25615
  if self.region_id is not None:
25690
25616
  result['RegionId'] = self.region_id
25691
25617
  if self.resource_owner_account is not None:
25692
25618
  result['ResourceOwnerAccount'] = self.resource_owner_account
25619
+ if self.resource_owner_id is not None:
25620
+ result['ResourceOwnerId'] = self.resource_owner_id
25621
+ if self.router_interface_id is not None:
25622
+ result['RouterInterfaceId'] = self.router_interface_id
25693
25623
  return result
25694
25624
 
25695
25625
  def from_map(self, m: dict = None):
25696
25626
  m = m or dict()
25697
25627
  if m.get('ClientToken') is not None:
25698
25628
  self.client_token = m.get('ClientToken')
25629
+ if m.get('Force') is not None:
25630
+ self.force = m.get('Force')
25699
25631
  if m.get('OwnerAccount') is not None:
25700
25632
  self.owner_account = m.get('OwnerAccount')
25701
25633
  if m.get('OwnerId') is not None:
25702
25634
  self.owner_id = m.get('OwnerId')
25703
- if m.get('QosId') is not None:
25704
- self.qos_id = m.get('QosId')
25705
- if m.get('QueueId') is not None:
25706
- self.queue_id = m.get('QueueId')
25707
25635
  if m.get('RegionId') is not None:
25708
25636
  self.region_id = m.get('RegionId')
25709
25637
  if m.get('ResourceOwnerAccount') is not None:
25710
25638
  self.resource_owner_account = m.get('ResourceOwnerAccount')
25639
+ if m.get('ResourceOwnerId') is not None:
25640
+ self.resource_owner_id = m.get('ResourceOwnerId')
25641
+ if m.get('RouterInterfaceId') is not None:
25642
+ self.router_interface_id = m.get('RouterInterfaceId')
25711
25643
  return self
25712
25644
 
25713
25645
 
25714
- class DeleteExpressConnectTrafficQosQueueResponseBody(TeaModel):
25646
+ class DeleteExpressConnectResponseBody(TeaModel):
25715
25647
  def __init__(
25716
25648
  self,
25717
25649
  request_id: str = None,
25718
25650
  ):
25719
- # The ID of the request.
25651
+ # The request ID.
25720
25652
  self.request_id = request_id
25721
25653
 
25722
25654
  def validate(self):
@@ -25739,12 +25671,12 @@ class DeleteExpressConnectTrafficQosQueueResponseBody(TeaModel):
25739
25671
  return self
25740
25672
 
25741
25673
 
25742
- class DeleteExpressConnectTrafficQosQueueResponse(TeaModel):
25674
+ class DeleteExpressConnectResponse(TeaModel):
25743
25675
  def __init__(
25744
25676
  self,
25745
25677
  headers: Dict[str, str] = None,
25746
25678
  status_code: int = None,
25747
- body: DeleteExpressConnectTrafficQosQueueResponseBody = None,
25679
+ body: DeleteExpressConnectResponseBody = None,
25748
25680
  ):
25749
25681
  self.headers = headers
25750
25682
  self.status_code = status_code
@@ -25775,37 +25707,33 @@ class DeleteExpressConnectTrafficQosQueueResponse(TeaModel):
25775
25707
  if m.get('statusCode') is not None:
25776
25708
  self.status_code = m.get('statusCode')
25777
25709
  if m.get('body') is not None:
25778
- temp_model = DeleteExpressConnectTrafficQosQueueResponseBody()
25710
+ temp_model = DeleteExpressConnectResponseBody()
25779
25711
  self.body = temp_model.from_map(m['body'])
25780
25712
  return self
25781
25713
 
25782
25714
 
25783
- class DeleteExpressConnectTrafficQosRuleRequest(TeaModel):
25715
+ class DeleteExpressConnectTrafficQosRequest(TeaModel):
25784
25716
  def __init__(
25785
25717
  self,
25786
25718
  client_token: str = None,
25787
25719
  owner_account: str = None,
25788
25720
  owner_id: int = None,
25789
25721
  qos_id: str = None,
25790
- queue_id: str = None,
25791
25722
  region_id: str = None,
25792
25723
  resource_owner_account: str = None,
25793
- rule_id: str = None,
25794
25724
  ):
25795
25725
  # The client token that is used to ensure the idempotence of the request.
25796
25726
  #
25797
- # You can use the client to generate the token, but you must make sure that the token is unique among different requests. The token can contain only ASCII characters and cannot exceed 64 characters in length.
25727
+ # You can use the client to generate the token, but you must make sure that the token is unique among different requests. The client token can contain only ASCII characters.
25728
+ #
25729
+ # > If you do not specify this parameter, the system automatically uses the **request ID** as the **client token**. The **request ID** may be different for each request.
25798
25730
  self.client_token = client_token
25799
25731
  self.owner_account = owner_account
25800
25732
  self.owner_id = owner_id
25801
- # The ID of the QoS policy.
25733
+ # The instance ID of the QoS policy.
25802
25734
  #
25803
25735
  # This parameter is required.
25804
25736
  self.qos_id = qos_id
25805
- # The ID of the QoS queue.
25806
- #
25807
- # This parameter is required.
25808
- self.queue_id = queue_id
25809
25737
  # The region ID of the QoS policy.
25810
25738
  #
25811
25739
  # You can call the [DescribeRegions](https://help.aliyun.com/document_detail/36063.html) operation to query the most recent region list.
@@ -25813,10 +25741,6 @@ class DeleteExpressConnectTrafficQosRuleRequest(TeaModel):
25813
25741
  # This parameter is required.
25814
25742
  self.region_id = region_id
25815
25743
  self.resource_owner_account = resource_owner_account
25816
- # The ID of the QoS rule.
25817
- #
25818
- # This parameter is required.
25819
- self.rule_id = rule_id
25820
25744
 
25821
25745
  def validate(self):
25822
25746
  pass
@@ -25835,14 +25759,10 @@ class DeleteExpressConnectTrafficQosRuleRequest(TeaModel):
25835
25759
  result['OwnerId'] = self.owner_id
25836
25760
  if self.qos_id is not None:
25837
25761
  result['QosId'] = self.qos_id
25838
- if self.queue_id is not None:
25839
- result['QueueId'] = self.queue_id
25840
25762
  if self.region_id is not None:
25841
25763
  result['RegionId'] = self.region_id
25842
25764
  if self.resource_owner_account is not None:
25843
25765
  result['ResourceOwnerAccount'] = self.resource_owner_account
25844
- if self.rule_id is not None:
25845
- result['RuleId'] = self.rule_id
25846
25766
  return result
25847
25767
 
25848
25768
  def from_map(self, m: dict = None):
@@ -25855,18 +25775,14 @@ class DeleteExpressConnectTrafficQosRuleRequest(TeaModel):
25855
25775
  self.owner_id = m.get('OwnerId')
25856
25776
  if m.get('QosId') is not None:
25857
25777
  self.qos_id = m.get('QosId')
25858
- if m.get('QueueId') is not None:
25859
- self.queue_id = m.get('QueueId')
25860
25778
  if m.get('RegionId') is not None:
25861
25779
  self.region_id = m.get('RegionId')
25862
25780
  if m.get('ResourceOwnerAccount') is not None:
25863
25781
  self.resource_owner_account = m.get('ResourceOwnerAccount')
25864
- if m.get('RuleId') is not None:
25865
- self.rule_id = m.get('RuleId')
25866
25782
  return self
25867
25783
 
25868
25784
 
25869
- class DeleteExpressConnectTrafficQosRuleResponseBody(TeaModel):
25785
+ class DeleteExpressConnectTrafficQosResponseBody(TeaModel):
25870
25786
  def __init__(
25871
25787
  self,
25872
25788
  request_id: str = None,
@@ -25894,12 +25810,12 @@ class DeleteExpressConnectTrafficQosRuleResponseBody(TeaModel):
25894
25810
  return self
25895
25811
 
25896
25812
 
25897
- class DeleteExpressConnectTrafficQosRuleResponse(TeaModel):
25813
+ class DeleteExpressConnectTrafficQosResponse(TeaModel):
25898
25814
  def __init__(
25899
25815
  self,
25900
25816
  headers: Dict[str, str] = None,
25901
25817
  status_code: int = None,
25902
- body: DeleteExpressConnectTrafficQosRuleResponseBody = None,
25818
+ body: DeleteExpressConnectTrafficQosResponseBody = None,
25903
25819
  ):
25904
25820
  self.headers = headers
25905
25821
  self.status_code = status_code
@@ -25930,18 +25846,19 @@ class DeleteExpressConnectTrafficQosRuleResponse(TeaModel):
25930
25846
  if m.get('statusCode') is not None:
25931
25847
  self.status_code = m.get('statusCode')
25932
25848
  if m.get('body') is not None:
25933
- temp_model = DeleteExpressConnectTrafficQosRuleResponseBody()
25849
+ temp_model = DeleteExpressConnectTrafficQosResponseBody()
25934
25850
  self.body = temp_model.from_map(m['body'])
25935
25851
  return self
25936
25852
 
25937
25853
 
25938
- class DeleteFailoverTestJobRequest(TeaModel):
25854
+ class DeleteExpressConnectTrafficQosQueueRequest(TeaModel):
25939
25855
  def __init__(
25940
25856
  self,
25941
25857
  client_token: str = None,
25942
- job_id: str = None,
25943
25858
  owner_account: str = None,
25944
25859
  owner_id: int = None,
25860
+ qos_id: str = None,
25861
+ queue_id: str = None,
25945
25862
  region_id: str = None,
25946
25863
  resource_owner_account: str = None,
25947
25864
  ):
@@ -25949,17 +25866,23 @@ class DeleteFailoverTestJobRequest(TeaModel):
25949
25866
  #
25950
25867
  # You can use the client to generate the token, but you must make sure that the token is unique among different requests. The client token can contain only ASCII characters.
25951
25868
  #
25952
- # > If you do not specify this parameter, the system automatically uses the **request ID** as the **client token**. The **request ID** may be different for each request.
25869
+ # > If you do not specify this parameter, the system automatically uses the **request ID** as the **client token**. The **request ID** may be different for each request.
25953
25870
  self.client_token = client_token
25954
- # The ID of the failover test.
25955
- #
25956
- # This parameter is required.
25957
- self.job_id = job_id
25958
25871
  self.owner_account = owner_account
25959
25872
  self.owner_id = owner_id
25960
- # The region ID of the failover test.
25873
+ # The ID of the QoS policy.
25874
+ #
25875
+ # This parameter is required.
25876
+ self.qos_id = qos_id
25877
+ # The ID of the QoS queue.
25878
+ #
25879
+ # This parameter is required.
25880
+ self.queue_id = queue_id
25881
+ # The region ID of the QoS policy.
25961
25882
  #
25962
25883
  # You can call the [DescribeRegions](https://help.aliyun.com/document_detail/36063.html) operation to query the most recent region list.
25884
+ #
25885
+ # This parameter is required.
25963
25886
  self.region_id = region_id
25964
25887
  self.resource_owner_account = resource_owner_account
25965
25888
 
@@ -25974,12 +25897,14 @@ class DeleteFailoverTestJobRequest(TeaModel):
25974
25897
  result = dict()
25975
25898
  if self.client_token is not None:
25976
25899
  result['ClientToken'] = self.client_token
25977
- if self.job_id is not None:
25978
- result['JobId'] = self.job_id
25979
25900
  if self.owner_account is not None:
25980
25901
  result['OwnerAccount'] = self.owner_account
25981
25902
  if self.owner_id is not None:
25982
25903
  result['OwnerId'] = self.owner_id
25904
+ if self.qos_id is not None:
25905
+ result['QosId'] = self.qos_id
25906
+ if self.queue_id is not None:
25907
+ result['QueueId'] = self.queue_id
25983
25908
  if self.region_id is not None:
25984
25909
  result['RegionId'] = self.region_id
25985
25910
  if self.resource_owner_account is not None:
@@ -25990,12 +25915,14 @@ class DeleteFailoverTestJobRequest(TeaModel):
25990
25915
  m = m or dict()
25991
25916
  if m.get('ClientToken') is not None:
25992
25917
  self.client_token = m.get('ClientToken')
25993
- if m.get('JobId') is not None:
25994
- self.job_id = m.get('JobId')
25995
25918
  if m.get('OwnerAccount') is not None:
25996
25919
  self.owner_account = m.get('OwnerAccount')
25997
25920
  if m.get('OwnerId') is not None:
25998
25921
  self.owner_id = m.get('OwnerId')
25922
+ if m.get('QosId') is not None:
25923
+ self.qos_id = m.get('QosId')
25924
+ if m.get('QueueId') is not None:
25925
+ self.queue_id = m.get('QueueId')
25999
25926
  if m.get('RegionId') is not None:
26000
25927
  self.region_id = m.get('RegionId')
26001
25928
  if m.get('ResourceOwnerAccount') is not None:
@@ -26003,12 +25930,12 @@ class DeleteFailoverTestJobRequest(TeaModel):
26003
25930
  return self
26004
25931
 
26005
25932
 
26006
- class DeleteFailoverTestJobResponseBody(TeaModel):
25933
+ class DeleteExpressConnectTrafficQosQueueResponseBody(TeaModel):
26007
25934
  def __init__(
26008
25935
  self,
26009
25936
  request_id: str = None,
26010
25937
  ):
26011
- # The request ID.
25938
+ # The ID of the request.
26012
25939
  self.request_id = request_id
26013
25940
 
26014
25941
  def validate(self):
@@ -26031,12 +25958,12 @@ class DeleteFailoverTestJobResponseBody(TeaModel):
26031
25958
  return self
26032
25959
 
26033
25960
 
26034
- class DeleteFailoverTestJobResponse(TeaModel):
25961
+ class DeleteExpressConnectTrafficQosQueueResponse(TeaModel):
26035
25962
  def __init__(
26036
25963
  self,
26037
25964
  headers: Dict[str, str] = None,
26038
25965
  status_code: int = None,
26039
- body: DeleteFailoverTestJobResponseBody = None,
25966
+ body: DeleteExpressConnectTrafficQosQueueResponseBody = None,
26040
25967
  ):
26041
25968
  self.headers = headers
26042
25969
  self.status_code = status_code
@@ -26067,33 +25994,48 @@ class DeleteFailoverTestJobResponse(TeaModel):
26067
25994
  if m.get('statusCode') is not None:
26068
25995
  self.status_code = m.get('statusCode')
26069
25996
  if m.get('body') is not None:
26070
- temp_model = DeleteFailoverTestJobResponseBody()
25997
+ temp_model = DeleteExpressConnectTrafficQosQueueResponseBody()
26071
25998
  self.body = temp_model.from_map(m['body'])
26072
25999
  return self
26073
26000
 
26074
26001
 
26075
- class DeleteFlowLogRequest(TeaModel):
26002
+ class DeleteExpressConnectTrafficQosRuleRequest(TeaModel):
26076
26003
  def __init__(
26077
26004
  self,
26078
- flow_log_id: str = None,
26005
+ client_token: str = None,
26079
26006
  owner_account: str = None,
26080
26007
  owner_id: int = None,
26008
+ qos_id: str = None,
26009
+ queue_id: str = None,
26081
26010
  region_id: str = None,
26082
26011
  resource_owner_account: str = None,
26083
- resource_owner_id: int = None,
26012
+ rule_id: str = None,
26084
26013
  ):
26085
- # The ID of the flow log.
26014
+ # The client token that is used to ensure the idempotence of the request.
26086
26015
  #
26087
- # This parameter is required.
26088
- self.flow_log_id = flow_log_id
26016
+ # You can use the client to generate the token, but you must make sure that the token is unique among different requests. The token can contain only ASCII characters and cannot exceed 64 characters in length.
26017
+ self.client_token = client_token
26089
26018
  self.owner_account = owner_account
26090
26019
  self.owner_id = owner_id
26091
- # The region ID of the flow log. You can call the [DescribeRegions](https://help.aliyun.com/document_detail/36063.html) operation to query the most recent region list.
26020
+ # The ID of the QoS policy.
26021
+ #
26022
+ # This parameter is required.
26023
+ self.qos_id = qos_id
26024
+ # The ID of the QoS queue.
26025
+ #
26026
+ # This parameter is required.
26027
+ self.queue_id = queue_id
26028
+ # The region ID of the QoS policy.
26029
+ #
26030
+ # You can call the [DescribeRegions](https://help.aliyun.com/document_detail/36063.html) operation to query the most recent region list.
26092
26031
  #
26093
26032
  # This parameter is required.
26094
26033
  self.region_id = region_id
26095
26034
  self.resource_owner_account = resource_owner_account
26096
- self.resource_owner_id = resource_owner_id
26035
+ # The ID of the QoS rule.
26036
+ #
26037
+ # This parameter is required.
26038
+ self.rule_id = rule_id
26097
26039
 
26098
26040
  def validate(self):
26099
26041
  pass
@@ -26104,50 +26046,52 @@ class DeleteFlowLogRequest(TeaModel):
26104
26046
  return _map
26105
26047
 
26106
26048
  result = dict()
26107
- if self.flow_log_id is not None:
26108
- result['FlowLogId'] = self.flow_log_id
26049
+ if self.client_token is not None:
26050
+ result['ClientToken'] = self.client_token
26109
26051
  if self.owner_account is not None:
26110
26052
  result['OwnerAccount'] = self.owner_account
26111
26053
  if self.owner_id is not None:
26112
26054
  result['OwnerId'] = self.owner_id
26055
+ if self.qos_id is not None:
26056
+ result['QosId'] = self.qos_id
26057
+ if self.queue_id is not None:
26058
+ result['QueueId'] = self.queue_id
26113
26059
  if self.region_id is not None:
26114
26060
  result['RegionId'] = self.region_id
26115
26061
  if self.resource_owner_account is not None:
26116
26062
  result['ResourceOwnerAccount'] = self.resource_owner_account
26117
- if self.resource_owner_id is not None:
26118
- result['ResourceOwnerId'] = self.resource_owner_id
26063
+ if self.rule_id is not None:
26064
+ result['RuleId'] = self.rule_id
26119
26065
  return result
26120
26066
 
26121
26067
  def from_map(self, m: dict = None):
26122
26068
  m = m or dict()
26123
- if m.get('FlowLogId') is not None:
26124
- self.flow_log_id = m.get('FlowLogId')
26069
+ if m.get('ClientToken') is not None:
26070
+ self.client_token = m.get('ClientToken')
26125
26071
  if m.get('OwnerAccount') is not None:
26126
26072
  self.owner_account = m.get('OwnerAccount')
26127
26073
  if m.get('OwnerId') is not None:
26128
26074
  self.owner_id = m.get('OwnerId')
26075
+ if m.get('QosId') is not None:
26076
+ self.qos_id = m.get('QosId')
26077
+ if m.get('QueueId') is not None:
26078
+ self.queue_id = m.get('QueueId')
26129
26079
  if m.get('RegionId') is not None:
26130
26080
  self.region_id = m.get('RegionId')
26131
26081
  if m.get('ResourceOwnerAccount') is not None:
26132
26082
  self.resource_owner_account = m.get('ResourceOwnerAccount')
26133
- if m.get('ResourceOwnerId') is not None:
26134
- self.resource_owner_id = m.get('ResourceOwnerId')
26083
+ if m.get('RuleId') is not None:
26084
+ self.rule_id = m.get('RuleId')
26135
26085
  return self
26136
26086
 
26137
26087
 
26138
- class DeleteFlowLogResponseBody(TeaModel):
26088
+ class DeleteExpressConnectTrafficQosRuleResponseBody(TeaModel):
26139
26089
  def __init__(
26140
26090
  self,
26141
26091
  request_id: str = None,
26142
- success: str = None,
26143
26092
  ):
26144
- # The ID of the request.
26093
+ # The request ID.
26145
26094
  self.request_id = request_id
26146
- # Indicates whether the operation is successful. Valid values:
26147
- #
26148
- # * **true**: yes
26149
- # * **false**: no
26150
- self.success = success
26151
26095
 
26152
26096
  def validate(self):
26153
26097
  pass
@@ -26160,25 +26104,21 @@ class DeleteFlowLogResponseBody(TeaModel):
26160
26104
  result = dict()
26161
26105
  if self.request_id is not None:
26162
26106
  result['RequestId'] = self.request_id
26163
- if self.success is not None:
26164
- result['Success'] = self.success
26165
26107
  return result
26166
26108
 
26167
26109
  def from_map(self, m: dict = None):
26168
26110
  m = m or dict()
26169
26111
  if m.get('RequestId') is not None:
26170
26112
  self.request_id = m.get('RequestId')
26171
- if m.get('Success') is not None:
26172
- self.success = m.get('Success')
26173
26113
  return self
26174
26114
 
26175
26115
 
26176
- class DeleteFlowLogResponse(TeaModel):
26116
+ class DeleteExpressConnectTrafficQosRuleResponse(TeaModel):
26177
26117
  def __init__(
26178
26118
  self,
26179
26119
  headers: Dict[str, str] = None,
26180
26120
  status_code: int = None,
26181
- body: DeleteFlowLogResponseBody = None,
26121
+ body: DeleteExpressConnectTrafficQosRuleResponseBody = None,
26182
26122
  ):
26183
26123
  self.headers = headers
26184
26124
  self.status_code = status_code
@@ -26209,47 +26149,38 @@ class DeleteFlowLogResponse(TeaModel):
26209
26149
  if m.get('statusCode') is not None:
26210
26150
  self.status_code = m.get('statusCode')
26211
26151
  if m.get('body') is not None:
26212
- temp_model = DeleteFlowLogResponseBody()
26152
+ temp_model = DeleteExpressConnectTrafficQosRuleResponseBody()
26213
26153
  self.body = temp_model.from_map(m['body'])
26214
26154
  return self
26215
26155
 
26216
26156
 
26217
- class DeleteForwardEntryRequest(TeaModel):
26157
+ class DeleteFailoverTestJobRequest(TeaModel):
26218
26158
  def __init__(
26219
26159
  self,
26220
26160
  client_token: str = None,
26221
- forward_entry_id: str = None,
26222
- forward_table_id: str = None,
26161
+ job_id: str = None,
26223
26162
  owner_account: str = None,
26224
26163
  owner_id: int = None,
26225
26164
  region_id: str = None,
26226
26165
  resource_owner_account: str = None,
26227
- resource_owner_id: int = None,
26228
26166
  ):
26229
26167
  # The client token that is used to ensure the idempotence of the request.
26230
26168
  #
26231
26169
  # You can use the client to generate the token, but you must make sure that the token is unique among different requests. The client token can contain only ASCII characters.
26232
26170
  #
26233
- # > If you do not specify this parameter, the system automatically uses the **request ID** as the **client token**. The **request ID** may be different for each request.
26171
+ # > If you do not specify this parameter, the system automatically uses the **request ID** as the **client token**. The **request ID** may be different for each request.
26234
26172
  self.client_token = client_token
26235
- # The ID of the DNAT entry to be deleted.
26236
- #
26237
- # This parameter is required.
26238
- self.forward_entry_id = forward_entry_id
26239
- # The ID of the DNAT table to which the DNAT entry belongs.
26173
+ # The ID of the failover test.
26240
26174
  #
26241
26175
  # This parameter is required.
26242
- self.forward_table_id = forward_table_id
26176
+ self.job_id = job_id
26243
26177
  self.owner_account = owner_account
26244
26178
  self.owner_id = owner_id
26245
- # The region ID of the NAT gateway.
26179
+ # The region ID of the failover test.
26246
26180
  #
26247
26181
  # You can call the [DescribeRegions](https://help.aliyun.com/document_detail/36063.html) operation to query the most recent region list.
26248
- #
26249
- # This parameter is required.
26250
26182
  self.region_id = region_id
26251
26183
  self.resource_owner_account = resource_owner_account
26252
- self.resource_owner_id = resource_owner_id
26253
26184
 
26254
26185
  def validate(self):
26255
26186
  pass
@@ -26262,10 +26193,8 @@ class DeleteForwardEntryRequest(TeaModel):
26262
26193
  result = dict()
26263
26194
  if self.client_token is not None:
26264
26195
  result['ClientToken'] = self.client_token
26265
- if self.forward_entry_id is not None:
26266
- result['ForwardEntryId'] = self.forward_entry_id
26267
- if self.forward_table_id is not None:
26268
- result['ForwardTableId'] = self.forward_table_id
26196
+ if self.job_id is not None:
26197
+ result['JobId'] = self.job_id
26269
26198
  if self.owner_account is not None:
26270
26199
  result['OwnerAccount'] = self.owner_account
26271
26200
  if self.owner_id is not None:
@@ -26274,18 +26203,14 @@ class DeleteForwardEntryRequest(TeaModel):
26274
26203
  result['RegionId'] = self.region_id
26275
26204
  if self.resource_owner_account is not None:
26276
26205
  result['ResourceOwnerAccount'] = self.resource_owner_account
26277
- if self.resource_owner_id is not None:
26278
- result['ResourceOwnerId'] = self.resource_owner_id
26279
26206
  return result
26280
26207
 
26281
26208
  def from_map(self, m: dict = None):
26282
26209
  m = m or dict()
26283
26210
  if m.get('ClientToken') is not None:
26284
26211
  self.client_token = m.get('ClientToken')
26285
- if m.get('ForwardEntryId') is not None:
26286
- self.forward_entry_id = m.get('ForwardEntryId')
26287
- if m.get('ForwardTableId') is not None:
26288
- self.forward_table_id = m.get('ForwardTableId')
26212
+ if m.get('JobId') is not None:
26213
+ self.job_id = m.get('JobId')
26289
26214
  if m.get('OwnerAccount') is not None:
26290
26215
  self.owner_account = m.get('OwnerAccount')
26291
26216
  if m.get('OwnerId') is not None:
@@ -26294,12 +26219,10 @@ class DeleteForwardEntryRequest(TeaModel):
26294
26219
  self.region_id = m.get('RegionId')
26295
26220
  if m.get('ResourceOwnerAccount') is not None:
26296
26221
  self.resource_owner_account = m.get('ResourceOwnerAccount')
26297
- if m.get('ResourceOwnerId') is not None:
26298
- self.resource_owner_id = m.get('ResourceOwnerId')
26299
26222
  return self
26300
26223
 
26301
26224
 
26302
- class DeleteForwardEntryResponseBody(TeaModel):
26225
+ class DeleteFailoverTestJobResponseBody(TeaModel):
26303
26226
  def __init__(
26304
26227
  self,
26305
26228
  request_id: str = None,
@@ -26327,12 +26250,12 @@ class DeleteForwardEntryResponseBody(TeaModel):
26327
26250
  return self
26328
26251
 
26329
26252
 
26330
- class DeleteForwardEntryResponse(TeaModel):
26253
+ class DeleteFailoverTestJobResponse(TeaModel):
26331
26254
  def __init__(
26332
26255
  self,
26333
26256
  headers: Dict[str, str] = None,
26334
26257
  status_code: int = None,
26335
- body: DeleteForwardEntryResponseBody = None,
26258
+ body: DeleteFailoverTestJobResponseBody = None,
26336
26259
  ):
26337
26260
  self.headers = headers
26338
26261
  self.status_code = status_code
@@ -26363,48 +26286,28 @@ class DeleteForwardEntryResponse(TeaModel):
26363
26286
  if m.get('statusCode') is not None:
26364
26287
  self.status_code = m.get('statusCode')
26365
26288
  if m.get('body') is not None:
26366
- temp_model = DeleteForwardEntryResponseBody()
26289
+ temp_model = DeleteFailoverTestJobResponseBody()
26367
26290
  self.body = temp_model.from_map(m['body'])
26368
26291
  return self
26369
26292
 
26370
26293
 
26371
- class DeleteFullNatEntryRequest(TeaModel):
26294
+ class DeleteFlowLogRequest(TeaModel):
26372
26295
  def __init__(
26373
26296
  self,
26374
- client_token: str = None,
26375
- dry_run: bool = None,
26376
- full_nat_entry_id: str = None,
26377
- full_nat_table_id: str = None,
26297
+ flow_log_id: str = None,
26378
26298
  owner_account: str = None,
26379
26299
  owner_id: int = None,
26380
26300
  region_id: str = None,
26381
26301
  resource_owner_account: str = None,
26382
26302
  resource_owner_id: int = None,
26383
26303
  ):
26384
- # The client token that is used to ensure the idempotence of the request.
26385
- #
26386
- # You can use the client to generate the token, but you must make sure that the token is unique among different requests. The client token can contain only ASCII characters.
26387
- #
26388
- # > If you do not specify this parameter, the system automatically uses the **request ID** as the **client token**. The **request ID** may be different for each request.
26389
- self.client_token = client_token
26390
- # Specifies whether to perform only a dry run, without performing the actual request. Valid values:
26391
- #
26392
- # * **true**: performs a dry run. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request fails the dry run, the related error message is returned. If the request passes the dry run, the DryRunOperation error code is returned.
26393
- # * **false**: performs a dry run and performs the actual request. If the request passes the dry run, a 2xx HTTP status code is returned and the operation is performed.
26394
- self.dry_run = dry_run
26395
- # The ID of the FULLNAT entry that you want to delete.
26396
- #
26397
- # This parameter is required.
26398
- self.full_nat_entry_id = full_nat_entry_id
26399
- # The ID of the FULLNAT table to which the FULLNAT entry to be deleted belongs.
26304
+ # The ID of the flow log.
26400
26305
  #
26401
26306
  # This parameter is required.
26402
- self.full_nat_table_id = full_nat_table_id
26307
+ self.flow_log_id = flow_log_id
26403
26308
  self.owner_account = owner_account
26404
26309
  self.owner_id = owner_id
26405
- # The region ID of the VPC NAT gateway to which the FULLNAT entry to be deleted belongs.
26406
- #
26407
- # You can call the [DescribeRegions](https://help.aliyun.com/document_detail/36063.html) operation to query the most recent list of regions.
26310
+ # The region ID of the flow log. You can call the [DescribeRegions](https://help.aliyun.com/document_detail/36063.html) operation to query the most recent region list.
26408
26311
  #
26409
26312
  # This parameter is required.
26410
26313
  self.region_id = region_id
@@ -26420,14 +26323,8 @@ class DeleteFullNatEntryRequest(TeaModel):
26420
26323
  return _map
26421
26324
 
26422
26325
  result = dict()
26423
- if self.client_token is not None:
26424
- result['ClientToken'] = self.client_token
26425
- if self.dry_run is not None:
26426
- result['DryRun'] = self.dry_run
26427
- if self.full_nat_entry_id is not None:
26428
- result['FullNatEntryId'] = self.full_nat_entry_id
26429
- if self.full_nat_table_id is not None:
26430
- result['FullNatTableId'] = self.full_nat_table_id
26326
+ if self.flow_log_id is not None:
26327
+ result['FlowLogId'] = self.flow_log_id
26431
26328
  if self.owner_account is not None:
26432
26329
  result['OwnerAccount'] = self.owner_account
26433
26330
  if self.owner_id is not None:
@@ -26442,14 +26339,8 @@ class DeleteFullNatEntryRequest(TeaModel):
26442
26339
 
26443
26340
  def from_map(self, m: dict = None):
26444
26341
  m = m or dict()
26445
- if m.get('ClientToken') is not None:
26446
- self.client_token = m.get('ClientToken')
26447
- if m.get('DryRun') is not None:
26448
- self.dry_run = m.get('DryRun')
26449
- if m.get('FullNatEntryId') is not None:
26450
- self.full_nat_entry_id = m.get('FullNatEntryId')
26451
- if m.get('FullNatTableId') is not None:
26452
- self.full_nat_table_id = m.get('FullNatTableId')
26342
+ if m.get('FlowLogId') is not None:
26343
+ self.flow_log_id = m.get('FlowLogId')
26453
26344
  if m.get('OwnerAccount') is not None:
26454
26345
  self.owner_account = m.get('OwnerAccount')
26455
26346
  if m.get('OwnerId') is not None:
@@ -26463,13 +26354,19 @@ class DeleteFullNatEntryRequest(TeaModel):
26463
26354
  return self
26464
26355
 
26465
26356
 
26466
- class DeleteFullNatEntryResponseBody(TeaModel):
26357
+ class DeleteFlowLogResponseBody(TeaModel):
26467
26358
  def __init__(
26468
26359
  self,
26469
26360
  request_id: str = None,
26361
+ success: str = None,
26470
26362
  ):
26471
- # The request ID.
26363
+ # The ID of the request.
26472
26364
  self.request_id = request_id
26365
+ # Indicates whether the operation is successful. Valid values:
26366
+ #
26367
+ # * **true**: yes
26368
+ # * **false**: no
26369
+ self.success = success
26473
26370
 
26474
26371
  def validate(self):
26475
26372
  pass
@@ -26482,21 +26379,25 @@ class DeleteFullNatEntryResponseBody(TeaModel):
26482
26379
  result = dict()
26483
26380
  if self.request_id is not None:
26484
26381
  result['RequestId'] = self.request_id
26382
+ if self.success is not None:
26383
+ result['Success'] = self.success
26485
26384
  return result
26486
26385
 
26487
26386
  def from_map(self, m: dict = None):
26488
26387
  m = m or dict()
26489
26388
  if m.get('RequestId') is not None:
26490
26389
  self.request_id = m.get('RequestId')
26390
+ if m.get('Success') is not None:
26391
+ self.success = m.get('Success')
26491
26392
  return self
26492
26393
 
26493
26394
 
26494
- class DeleteFullNatEntryResponse(TeaModel):
26395
+ class DeleteFlowLogResponse(TeaModel):
26495
26396
  def __init__(
26496
26397
  self,
26497
26398
  headers: Dict[str, str] = None,
26498
26399
  status_code: int = None,
26499
- body: DeleteFullNatEntryResponseBody = None,
26400
+ body: DeleteFlowLogResponseBody = None,
26500
26401
  ):
26501
26402
  self.headers = headers
26502
26403
  self.status_code = status_code
@@ -26527,28 +26428,40 @@ class DeleteFullNatEntryResponse(TeaModel):
26527
26428
  if m.get('statusCode') is not None:
26528
26429
  self.status_code = m.get('statusCode')
26529
26430
  if m.get('body') is not None:
26530
- temp_model = DeleteFullNatEntryResponseBody()
26431
+ temp_model = DeleteFlowLogResponseBody()
26531
26432
  self.body = temp_model.from_map(m['body'])
26532
26433
  return self
26533
26434
 
26534
26435
 
26535
- class DeleteGlobalAccelerationInstanceRequest(TeaModel):
26436
+ class DeleteForwardEntryRequest(TeaModel):
26536
26437
  def __init__(
26537
26438
  self,
26538
- global_acceleration_instance_id: str = None,
26439
+ client_token: str = None,
26440
+ forward_entry_id: str = None,
26441
+ forward_table_id: str = None,
26539
26442
  owner_account: str = None,
26540
26443
  owner_id: int = None,
26541
26444
  region_id: str = None,
26542
26445
  resource_owner_account: str = None,
26543
26446
  resource_owner_id: int = None,
26544
26447
  ):
26545
- # The ID of the GA instance.
26448
+ # The client token that is used to ensure the idempotence of the request.
26449
+ #
26450
+ # You can use the client to generate the token, but you must make sure that the token is unique among different requests. The client token can contain only ASCII characters.
26451
+ #
26452
+ # > If you do not specify this parameter, the system automatically uses the **request ID** as the **client token**. The **request ID** may be different for each request.
26453
+ self.client_token = client_token
26454
+ # The ID of the DNAT entry to be deleted.
26546
26455
  #
26547
26456
  # This parameter is required.
26548
- self.global_acceleration_instance_id = global_acceleration_instance_id
26457
+ self.forward_entry_id = forward_entry_id
26458
+ # The ID of the DNAT table to which the DNAT entry belongs.
26459
+ #
26460
+ # This parameter is required.
26461
+ self.forward_table_id = forward_table_id
26549
26462
  self.owner_account = owner_account
26550
26463
  self.owner_id = owner_id
26551
- # The region ID of the GA instance.
26464
+ # The region ID of the NAT gateway.
26552
26465
  #
26553
26466
  # You can call the [DescribeRegions](https://help.aliyun.com/document_detail/36063.html) operation to query the most recent region list.
26554
26467
  #
@@ -26566,8 +26479,12 @@ class DeleteGlobalAccelerationInstanceRequest(TeaModel):
26566
26479
  return _map
26567
26480
 
26568
26481
  result = dict()
26569
- if self.global_acceleration_instance_id is not None:
26570
- result['GlobalAccelerationInstanceId'] = self.global_acceleration_instance_id
26482
+ if self.client_token is not None:
26483
+ result['ClientToken'] = self.client_token
26484
+ if self.forward_entry_id is not None:
26485
+ result['ForwardEntryId'] = self.forward_entry_id
26486
+ if self.forward_table_id is not None:
26487
+ result['ForwardTableId'] = self.forward_table_id
26571
26488
  if self.owner_account is not None:
26572
26489
  result['OwnerAccount'] = self.owner_account
26573
26490
  if self.owner_id is not None:
@@ -26582,8 +26499,12 @@ class DeleteGlobalAccelerationInstanceRequest(TeaModel):
26582
26499
 
26583
26500
  def from_map(self, m: dict = None):
26584
26501
  m = m or dict()
26585
- if m.get('GlobalAccelerationInstanceId') is not None:
26586
- self.global_acceleration_instance_id = m.get('GlobalAccelerationInstanceId')
26502
+ if m.get('ClientToken') is not None:
26503
+ self.client_token = m.get('ClientToken')
26504
+ if m.get('ForwardEntryId') is not None:
26505
+ self.forward_entry_id = m.get('ForwardEntryId')
26506
+ if m.get('ForwardTableId') is not None:
26507
+ self.forward_table_id = m.get('ForwardTableId')
26587
26508
  if m.get('OwnerAccount') is not None:
26588
26509
  self.owner_account = m.get('OwnerAccount')
26589
26510
  if m.get('OwnerId') is not None:
@@ -26597,7 +26518,7 @@ class DeleteGlobalAccelerationInstanceRequest(TeaModel):
26597
26518
  return self
26598
26519
 
26599
26520
 
26600
- class DeleteGlobalAccelerationInstanceResponseBody(TeaModel):
26521
+ class DeleteForwardEntryResponseBody(TeaModel):
26601
26522
  def __init__(
26602
26523
  self,
26603
26524
  request_id: str = None,
@@ -26625,12 +26546,12 @@ class DeleteGlobalAccelerationInstanceResponseBody(TeaModel):
26625
26546
  return self
26626
26547
 
26627
26548
 
26628
- class DeleteGlobalAccelerationInstanceResponse(TeaModel):
26549
+ class DeleteForwardEntryResponse(TeaModel):
26629
26550
  def __init__(
26630
26551
  self,
26631
26552
  headers: Dict[str, str] = None,
26632
26553
  status_code: int = None,
26633
- body: DeleteGlobalAccelerationInstanceResponseBody = None,
26554
+ body: DeleteForwardEntryResponseBody = None,
26634
26555
  ):
26635
26556
  self.headers = headers
26636
26557
  self.status_code = status_code
@@ -26661,16 +26582,18 @@ class DeleteGlobalAccelerationInstanceResponse(TeaModel):
26661
26582
  if m.get('statusCode') is not None:
26662
26583
  self.status_code = m.get('statusCode')
26663
26584
  if m.get('body') is not None:
26664
- temp_model = DeleteGlobalAccelerationInstanceResponseBody()
26585
+ temp_model = DeleteForwardEntryResponseBody()
26665
26586
  self.body = temp_model.from_map(m['body'])
26666
26587
  return self
26667
26588
 
26668
26589
 
26669
- class DeleteHaVipRequest(TeaModel):
26590
+ class DeleteFullNatEntryRequest(TeaModel):
26670
26591
  def __init__(
26671
26592
  self,
26672
26593
  client_token: str = None,
26673
- ha_vip_id: str = None,
26594
+ dry_run: bool = None,
26595
+ full_nat_entry_id: str = None,
26596
+ full_nat_table_id: str = None,
26674
26597
  owner_account: str = None,
26675
26598
  owner_id: int = None,
26676
26599
  region_id: str = None,
@@ -26679,17 +26602,28 @@ class DeleteHaVipRequest(TeaModel):
26679
26602
  ):
26680
26603
  # The client token that is used to ensure the idempotence of the request.
26681
26604
  #
26682
- # You can use the client to generate the value, but you must make sure that it is unique among different requests. The client token can contain only ASCII characters.
26605
+ # You can use the client to generate the token, but you must make sure that the token is unique among different requests. The client token can contain only ASCII characters.
26683
26606
  #
26684
- # > If you do not set this parameter, the system uses **RequestId** as **ClientToken**. The value of **RequestId** in each API request may be different.
26607
+ # > If you do not specify this parameter, the system automatically uses the **request ID** as the **client token**. The **request ID** may be different for each request.
26685
26608
  self.client_token = client_token
26686
- # The ID of the HaVip that you want to delete.
26609
+ # Specifies whether to perform only a dry run, without performing the actual request. Valid values:
26610
+ #
26611
+ # * **true**: performs a dry run. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request fails the dry run, the related error message is returned. If the request passes the dry run, the DryRunOperation error code is returned.
26612
+ # * **false**: performs a dry run and performs the actual request. If the request passes the dry run, a 2xx HTTP status code is returned and the operation is performed.
26613
+ self.dry_run = dry_run
26614
+ # The ID of the FULLNAT entry that you want to delete.
26687
26615
  #
26688
26616
  # This parameter is required.
26689
- self.ha_vip_id = ha_vip_id
26617
+ self.full_nat_entry_id = full_nat_entry_id
26618
+ # The ID of the FULLNAT table to which the FULLNAT entry to be deleted belongs.
26619
+ #
26620
+ # This parameter is required.
26621
+ self.full_nat_table_id = full_nat_table_id
26690
26622
  self.owner_account = owner_account
26691
26623
  self.owner_id = owner_id
26692
- # The region where the HaVip resides. Call the [DescribeRegions](https://help.aliyun.com/document_detail/36063.html) operation to query the region list.
26624
+ # The region ID of the VPC NAT gateway to which the FULLNAT entry to be deleted belongs.
26625
+ #
26626
+ # You can call the [DescribeRegions](https://help.aliyun.com/document_detail/36063.html) operation to query the most recent list of regions.
26693
26627
  #
26694
26628
  # This parameter is required.
26695
26629
  self.region_id = region_id
@@ -26707,8 +26641,12 @@ class DeleteHaVipRequest(TeaModel):
26707
26641
  result = dict()
26708
26642
  if self.client_token is not None:
26709
26643
  result['ClientToken'] = self.client_token
26710
- if self.ha_vip_id is not None:
26711
- result['HaVipId'] = self.ha_vip_id
26644
+ if self.dry_run is not None:
26645
+ result['DryRun'] = self.dry_run
26646
+ if self.full_nat_entry_id is not None:
26647
+ result['FullNatEntryId'] = self.full_nat_entry_id
26648
+ if self.full_nat_table_id is not None:
26649
+ result['FullNatTableId'] = self.full_nat_table_id
26712
26650
  if self.owner_account is not None:
26713
26651
  result['OwnerAccount'] = self.owner_account
26714
26652
  if self.owner_id is not None:
@@ -26725,8 +26663,12 @@ class DeleteHaVipRequest(TeaModel):
26725
26663
  m = m or dict()
26726
26664
  if m.get('ClientToken') is not None:
26727
26665
  self.client_token = m.get('ClientToken')
26728
- if m.get('HaVipId') is not None:
26729
- self.ha_vip_id = m.get('HaVipId')
26666
+ if m.get('DryRun') is not None:
26667
+ self.dry_run = m.get('DryRun')
26668
+ if m.get('FullNatEntryId') is not None:
26669
+ self.full_nat_entry_id = m.get('FullNatEntryId')
26670
+ if m.get('FullNatTableId') is not None:
26671
+ self.full_nat_table_id = m.get('FullNatTableId')
26730
26672
  if m.get('OwnerAccount') is not None:
26731
26673
  self.owner_account = m.get('OwnerAccount')
26732
26674
  if m.get('OwnerId') is not None:
@@ -26740,12 +26682,12 @@ class DeleteHaVipRequest(TeaModel):
26740
26682
  return self
26741
26683
 
26742
26684
 
26743
- class DeleteHaVipResponseBody(TeaModel):
26685
+ class DeleteFullNatEntryResponseBody(TeaModel):
26744
26686
  def __init__(
26745
26687
  self,
26746
26688
  request_id: str = None,
26747
26689
  ):
26748
- # The ID of the request.
26690
+ # The request ID.
26749
26691
  self.request_id = request_id
26750
26692
 
26751
26693
  def validate(self):
@@ -26768,12 +26710,12 @@ class DeleteHaVipResponseBody(TeaModel):
26768
26710
  return self
26769
26711
 
26770
26712
 
26771
- class DeleteHaVipResponse(TeaModel):
26713
+ class DeleteFullNatEntryResponse(TeaModel):
26772
26714
  def __init__(
26773
26715
  self,
26774
26716
  headers: Dict[str, str] = None,
26775
26717
  status_code: int = None,
26776
- body: DeleteHaVipResponseBody = None,
26718
+ body: DeleteFullNatEntryResponseBody = None,
26777
26719
  ):
26778
26720
  self.headers = headers
26779
26721
  self.status_code = status_code
@@ -26804,33 +26746,30 @@ class DeleteHaVipResponse(TeaModel):
26804
26746
  if m.get('statusCode') is not None:
26805
26747
  self.status_code = m.get('statusCode')
26806
26748
  if m.get('body') is not None:
26807
- temp_model = DeleteHaVipResponseBody()
26749
+ temp_model = DeleteFullNatEntryResponseBody()
26808
26750
  self.body = temp_model.from_map(m['body'])
26809
26751
  return self
26810
26752
 
26811
26753
 
26812
- class DeleteIPv6TranslatorRequest(TeaModel):
26754
+ class DeleteGlobalAccelerationInstanceRequest(TeaModel):
26813
26755
  def __init__(
26814
26756
  self,
26815
- client_token: str = None,
26816
- ipv_6translator_id: str = None,
26757
+ global_acceleration_instance_id: str = None,
26817
26758
  owner_account: str = None,
26818
26759
  owner_id: int = None,
26819
26760
  region_id: str = None,
26820
26761
  resource_owner_account: str = None,
26821
26762
  resource_owner_id: int = None,
26822
26763
  ):
26823
- # The client token that is used to ensure the idempotence of the request.
26824
- #
26825
- # You can use the client to generate the token, but you must make sure that the token is unique among different requests. The token can contain only ASCII characters.
26826
- self.client_token = client_token
26827
- # The ID of the IPv6 Translation Service instance.
26764
+ # The ID of the GA instance.
26828
26765
  #
26829
26766
  # This parameter is required.
26830
- self.ipv_6translator_id = ipv_6translator_id
26767
+ self.global_acceleration_instance_id = global_acceleration_instance_id
26831
26768
  self.owner_account = owner_account
26832
26769
  self.owner_id = owner_id
26833
- # The region ID of the IPv6 Translation Service instance.
26770
+ # The region ID of the GA instance.
26771
+ #
26772
+ # You can call the [DescribeRegions](https://help.aliyun.com/document_detail/36063.html) operation to query the most recent region list.
26834
26773
  #
26835
26774
  # This parameter is required.
26836
26775
  self.region_id = region_id
@@ -26846,10 +26785,8 @@ class DeleteIPv6TranslatorRequest(TeaModel):
26846
26785
  return _map
26847
26786
 
26848
26787
  result = dict()
26849
- if self.client_token is not None:
26850
- result['ClientToken'] = self.client_token
26851
- if self.ipv_6translator_id is not None:
26852
- result['Ipv6TranslatorId'] = self.ipv_6translator_id
26788
+ if self.global_acceleration_instance_id is not None:
26789
+ result['GlobalAccelerationInstanceId'] = self.global_acceleration_instance_id
26853
26790
  if self.owner_account is not None:
26854
26791
  result['OwnerAccount'] = self.owner_account
26855
26792
  if self.owner_id is not None:
@@ -26864,10 +26801,8 @@ class DeleteIPv6TranslatorRequest(TeaModel):
26864
26801
 
26865
26802
  def from_map(self, m: dict = None):
26866
26803
  m = m or dict()
26867
- if m.get('ClientToken') is not None:
26868
- self.client_token = m.get('ClientToken')
26869
- if m.get('Ipv6TranslatorId') is not None:
26870
- self.ipv_6translator_id = m.get('Ipv6TranslatorId')
26804
+ if m.get('GlobalAccelerationInstanceId') is not None:
26805
+ self.global_acceleration_instance_id = m.get('GlobalAccelerationInstanceId')
26871
26806
  if m.get('OwnerAccount') is not None:
26872
26807
  self.owner_account = m.get('OwnerAccount')
26873
26808
  if m.get('OwnerId') is not None:
@@ -26881,7 +26816,7 @@ class DeleteIPv6TranslatorRequest(TeaModel):
26881
26816
  return self
26882
26817
 
26883
26818
 
26884
- class DeleteIPv6TranslatorResponseBody(TeaModel):
26819
+ class DeleteGlobalAccelerationInstanceResponseBody(TeaModel):
26885
26820
  def __init__(
26886
26821
  self,
26887
26822
  request_id: str = None,
@@ -26909,12 +26844,12 @@ class DeleteIPv6TranslatorResponseBody(TeaModel):
26909
26844
  return self
26910
26845
 
26911
26846
 
26912
- class DeleteIPv6TranslatorResponse(TeaModel):
26847
+ class DeleteGlobalAccelerationInstanceResponse(TeaModel):
26913
26848
  def __init__(
26914
26849
  self,
26915
26850
  headers: Dict[str, str] = None,
26916
26851
  status_code: int = None,
26917
- body: DeleteIPv6TranslatorResponseBody = None,
26852
+ body: DeleteGlobalAccelerationInstanceResponseBody = None,
26918
26853
  ):
26919
26854
  self.headers = headers
26920
26855
  self.status_code = status_code
@@ -26945,33 +26880,35 @@ class DeleteIPv6TranslatorResponse(TeaModel):
26945
26880
  if m.get('statusCode') is not None:
26946
26881
  self.status_code = m.get('statusCode')
26947
26882
  if m.get('body') is not None:
26948
- temp_model = DeleteIPv6TranslatorResponseBody()
26883
+ temp_model = DeleteGlobalAccelerationInstanceResponseBody()
26949
26884
  self.body = temp_model.from_map(m['body'])
26950
26885
  return self
26951
26886
 
26952
26887
 
26953
- class DeleteIPv6TranslatorAclListRequest(TeaModel):
26888
+ class DeleteHaVipRequest(TeaModel):
26954
26889
  def __init__(
26955
26890
  self,
26956
- acl_id: str = None,
26957
26891
  client_token: str = None,
26892
+ ha_vip_id: str = None,
26958
26893
  owner_account: str = None,
26959
26894
  owner_id: int = None,
26960
26895
  region_id: str = None,
26961
26896
  resource_owner_account: str = None,
26962
26897
  resource_owner_id: int = None,
26963
26898
  ):
26964
- # The ID of the ACL that you want to delete.
26965
- #
26966
- # This parameter is required.
26967
- self.acl_id = acl_id
26968
26899
  # The client token that is used to ensure the idempotence of the request.
26969
26900
  #
26970
- # You can use the client to generate the token, but you must make sure that the token is unique among all requests. The token can contain only ASCII characters.
26901
+ # You can use the client to generate the value, but you must make sure that it is unique among different requests. The client token can contain only ASCII characters.
26902
+ #
26903
+ # > If you do not set this parameter, the system uses **RequestId** as **ClientToken**. The value of **RequestId** in each API request may be different.
26971
26904
  self.client_token = client_token
26905
+ # The ID of the HaVip that you want to delete.
26906
+ #
26907
+ # This parameter is required.
26908
+ self.ha_vip_id = ha_vip_id
26972
26909
  self.owner_account = owner_account
26973
26910
  self.owner_id = owner_id
26974
- # The region of the IPv6 translation service instance.
26911
+ # The region where the HaVip resides. Call the [DescribeRegions](https://help.aliyun.com/document_detail/36063.html) operation to query the region list.
26975
26912
  #
26976
26913
  # This parameter is required.
26977
26914
  self.region_id = region_id
@@ -26987,10 +26924,10 @@ class DeleteIPv6TranslatorAclListRequest(TeaModel):
26987
26924
  return _map
26988
26925
 
26989
26926
  result = dict()
26990
- if self.acl_id is not None:
26991
- result['AclId'] = self.acl_id
26992
26927
  if self.client_token is not None:
26993
26928
  result['ClientToken'] = self.client_token
26929
+ if self.ha_vip_id is not None:
26930
+ result['HaVipId'] = self.ha_vip_id
26994
26931
  if self.owner_account is not None:
26995
26932
  result['OwnerAccount'] = self.owner_account
26996
26933
  if self.owner_id is not None:
@@ -27005,10 +26942,10 @@ class DeleteIPv6TranslatorAclListRequest(TeaModel):
27005
26942
 
27006
26943
  def from_map(self, m: dict = None):
27007
26944
  m = m or dict()
27008
- if m.get('AclId') is not None:
27009
- self.acl_id = m.get('AclId')
27010
26945
  if m.get('ClientToken') is not None:
27011
26946
  self.client_token = m.get('ClientToken')
26947
+ if m.get('HaVipId') is not None:
26948
+ self.ha_vip_id = m.get('HaVipId')
27012
26949
  if m.get('OwnerAccount') is not None:
27013
26950
  self.owner_account = m.get('OwnerAccount')
27014
26951
  if m.get('OwnerId') is not None:
@@ -27022,12 +26959,12 @@ class DeleteIPv6TranslatorAclListRequest(TeaModel):
27022
26959
  return self
27023
26960
 
27024
26961
 
27025
- class DeleteIPv6TranslatorAclListResponseBody(TeaModel):
26962
+ class DeleteHaVipResponseBody(TeaModel):
27026
26963
  def __init__(
27027
26964
  self,
27028
26965
  request_id: str = None,
27029
26966
  ):
27030
- # The request ID.
26967
+ # The ID of the request.
27031
26968
  self.request_id = request_id
27032
26969
 
27033
26970
  def validate(self):
@@ -27050,12 +26987,12 @@ class DeleteIPv6TranslatorAclListResponseBody(TeaModel):
27050
26987
  return self
27051
26988
 
27052
26989
 
27053
- class DeleteIPv6TranslatorAclListResponse(TeaModel):
26990
+ class DeleteHaVipResponse(TeaModel):
27054
26991
  def __init__(
27055
26992
  self,
27056
26993
  headers: Dict[str, str] = None,
27057
26994
  status_code: int = None,
27058
- body: DeleteIPv6TranslatorAclListResponseBody = None,
26995
+ body: DeleteHaVipResponseBody = None,
27059
26996
  ):
27060
26997
  self.headers = headers
27061
26998
  self.status_code = status_code
@@ -27086,16 +27023,15 @@ class DeleteIPv6TranslatorAclListResponse(TeaModel):
27086
27023
  if m.get('statusCode') is not None:
27087
27024
  self.status_code = m.get('statusCode')
27088
27025
  if m.get('body') is not None:
27089
- temp_model = DeleteIPv6TranslatorAclListResponseBody()
27026
+ temp_model = DeleteHaVipResponseBody()
27090
27027
  self.body = temp_model.from_map(m['body'])
27091
27028
  return self
27092
27029
 
27093
27030
 
27094
- class DeleteIPv6TranslatorEntryRequest(TeaModel):
27031
+ class DeleteIPv6TranslatorRequest(TeaModel):
27095
27032
  def __init__(
27096
27033
  self,
27097
27034
  client_token: str = None,
27098
- ipv_6translator_entry_id: str = None,
27099
27035
  ipv_6translator_id: str = None,
27100
27036
  owner_account: str = None,
27101
27037
  owner_id: int = None,
@@ -27107,15 +27043,13 @@ class DeleteIPv6TranslatorEntryRequest(TeaModel):
27107
27043
  #
27108
27044
  # You can use the client to generate the token, but you must make sure that the token is unique among different requests. The token can contain only ASCII characters.
27109
27045
  self.client_token = client_token
27110
- # The ID of the IPv6 mapping entry to be deleted.
27111
- self.ipv_6translator_entry_id = ipv_6translator_entry_id
27112
27046
  # The ID of the IPv6 Translation Service instance.
27113
27047
  #
27114
- # > If you do not specify **Ipv6TranslatorEntryId**, all mapping entries in the specified instance are deleted.
27048
+ # This parameter is required.
27115
27049
  self.ipv_6translator_id = ipv_6translator_id
27116
27050
  self.owner_account = owner_account
27117
27051
  self.owner_id = owner_id
27118
- # The region of the IPv6 Translation Service instance. You can call the **DescribeRegions** operation to query the most recent region list.
27052
+ # The region ID of the IPv6 Translation Service instance.
27119
27053
  #
27120
27054
  # This parameter is required.
27121
27055
  self.region_id = region_id
@@ -27133,8 +27067,6 @@ class DeleteIPv6TranslatorEntryRequest(TeaModel):
27133
27067
  result = dict()
27134
27068
  if self.client_token is not None:
27135
27069
  result['ClientToken'] = self.client_token
27136
- if self.ipv_6translator_entry_id is not None:
27137
- result['Ipv6TranslatorEntryId'] = self.ipv_6translator_entry_id
27138
27070
  if self.ipv_6translator_id is not None:
27139
27071
  result['Ipv6TranslatorId'] = self.ipv_6translator_id
27140
27072
  if self.owner_account is not None:
@@ -27153,8 +27085,6 @@ class DeleteIPv6TranslatorEntryRequest(TeaModel):
27153
27085
  m = m or dict()
27154
27086
  if m.get('ClientToken') is not None:
27155
27087
  self.client_token = m.get('ClientToken')
27156
- if m.get('Ipv6TranslatorEntryId') is not None:
27157
- self.ipv_6translator_entry_id = m.get('Ipv6TranslatorEntryId')
27158
27088
  if m.get('Ipv6TranslatorId') is not None:
27159
27089
  self.ipv_6translator_id = m.get('Ipv6TranslatorId')
27160
27090
  if m.get('OwnerAccount') is not None:
@@ -27170,7 +27100,7 @@ class DeleteIPv6TranslatorEntryRequest(TeaModel):
27170
27100
  return self
27171
27101
 
27172
27102
 
27173
- class DeleteIPv6TranslatorEntryResponseBody(TeaModel):
27103
+ class DeleteIPv6TranslatorResponseBody(TeaModel):
27174
27104
  def __init__(
27175
27105
  self,
27176
27106
  request_id: str = None,
@@ -27198,12 +27128,12 @@ class DeleteIPv6TranslatorEntryResponseBody(TeaModel):
27198
27128
  return self
27199
27129
 
27200
27130
 
27201
- class DeleteIPv6TranslatorEntryResponse(TeaModel):
27131
+ class DeleteIPv6TranslatorResponse(TeaModel):
27202
27132
  def __init__(
27203
27133
  self,
27204
27134
  headers: Dict[str, str] = None,
27205
27135
  status_code: int = None,
27206
- body: DeleteIPv6TranslatorEntryResponseBody = None,
27136
+ body: DeleteIPv6TranslatorResponseBody = None,
27207
27137
  ):
27208
27138
  self.headers = headers
27209
27139
  self.status_code = status_code
@@ -27234,38 +27164,38 @@ class DeleteIPv6TranslatorEntryResponse(TeaModel):
27234
27164
  if m.get('statusCode') is not None:
27235
27165
  self.status_code = m.get('statusCode')
27236
27166
  if m.get('body') is not None:
27237
- temp_model = DeleteIPv6TranslatorEntryResponseBody()
27167
+ temp_model = DeleteIPv6TranslatorResponseBody()
27238
27168
  self.body = temp_model.from_map(m['body'])
27239
27169
  return self
27240
27170
 
27241
27171
 
27242
- class DeleteIpsecServerRequest(TeaModel):
27172
+ class DeleteIPv6TranslatorAclListRequest(TeaModel):
27243
27173
  def __init__(
27244
27174
  self,
27175
+ acl_id: str = None,
27245
27176
  client_token: str = None,
27246
- dry_run: str = None,
27247
- ipsec_server_id: str = None,
27177
+ owner_account: str = None,
27178
+ owner_id: int = None,
27248
27179
  region_id: str = None,
27180
+ resource_owner_account: str = None,
27181
+ resource_owner_id: int = None,
27249
27182
  ):
27250
- # The client token that is used to ensure the idempotence of the request.
27183
+ # The ID of the ACL that you want to delete.
27251
27184
  #
27252
- # You can use the client to generate the token, but you must make sure that the token is unique among different requests. The client token can contain only ASCII characters.
27185
+ # This parameter is required.
27186
+ self.acl_id = acl_id
27187
+ # The client token that is used to ensure the idempotence of the request.
27253
27188
  #
27254
- # > If you do not specify this parameter, the system automatically uses the **request ID** as the **client token**. The **request ID** may be different for each request.
27189
+ # You can use the client to generate the token, but you must make sure that the token is unique among all requests. The token can contain only ASCII characters.
27255
27190
  self.client_token = client_token
27256
- # Specifies whether to perform only a dry run, without performing the actual request. Valid values:
27257
- #
27258
- # * **true**: performs only a dry run. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request fails the dry run, an error message is returned. If the request passes the dry run, the `DryRunOperation` error code is returned.
27259
- # * **false** (default): performs a dry run and performs the actual request. If the request passes the dry run, a 2xx HTTP status code is returned and the operation is performed.
27260
- self.dry_run = dry_run
27261
- # The ID of the IPsec server.
27262
- #
27263
- # This parameter is required.
27264
- self.ipsec_server_id = ipsec_server_id
27265
- # The ID of the region where the IPsec server is created.
27191
+ self.owner_account = owner_account
27192
+ self.owner_id = owner_id
27193
+ # The region of the IPv6 translation service instance.
27266
27194
  #
27267
27195
  # This parameter is required.
27268
27196
  self.region_id = region_id
27197
+ self.resource_owner_account = resource_owner_account
27198
+ self.resource_owner_id = resource_owner_id
27269
27199
 
27270
27200
  def validate(self):
27271
27201
  pass
@@ -27276,30 +27206,319 @@ class DeleteIpsecServerRequest(TeaModel):
27276
27206
  return _map
27277
27207
 
27278
27208
  result = dict()
27209
+ if self.acl_id is not None:
27210
+ result['AclId'] = self.acl_id
27279
27211
  if self.client_token is not None:
27280
27212
  result['ClientToken'] = self.client_token
27281
- if self.dry_run is not None:
27282
- result['DryRun'] = self.dry_run
27283
- if self.ipsec_server_id is not None:
27284
- result['IpsecServerId'] = self.ipsec_server_id
27213
+ if self.owner_account is not None:
27214
+ result['OwnerAccount'] = self.owner_account
27215
+ if self.owner_id is not None:
27216
+ result['OwnerId'] = self.owner_id
27285
27217
  if self.region_id is not None:
27286
27218
  result['RegionId'] = self.region_id
27219
+ if self.resource_owner_account is not None:
27220
+ result['ResourceOwnerAccount'] = self.resource_owner_account
27221
+ if self.resource_owner_id is not None:
27222
+ result['ResourceOwnerId'] = self.resource_owner_id
27287
27223
  return result
27288
27224
 
27289
27225
  def from_map(self, m: dict = None):
27290
27226
  m = m or dict()
27227
+ if m.get('AclId') is not None:
27228
+ self.acl_id = m.get('AclId')
27291
27229
  if m.get('ClientToken') is not None:
27292
27230
  self.client_token = m.get('ClientToken')
27293
- if m.get('DryRun') is not None:
27294
- self.dry_run = m.get('DryRun')
27295
- if m.get('IpsecServerId') is not None:
27296
- self.ipsec_server_id = m.get('IpsecServerId')
27231
+ if m.get('OwnerAccount') is not None:
27232
+ self.owner_account = m.get('OwnerAccount')
27233
+ if m.get('OwnerId') is not None:
27234
+ self.owner_id = m.get('OwnerId')
27297
27235
  if m.get('RegionId') is not None:
27298
27236
  self.region_id = m.get('RegionId')
27237
+ if m.get('ResourceOwnerAccount') is not None:
27238
+ self.resource_owner_account = m.get('ResourceOwnerAccount')
27239
+ if m.get('ResourceOwnerId') is not None:
27240
+ self.resource_owner_id = m.get('ResourceOwnerId')
27299
27241
  return self
27300
27242
 
27301
27243
 
27302
- class DeleteIpsecServerResponseBody(TeaModel):
27244
+ class DeleteIPv6TranslatorAclListResponseBody(TeaModel):
27245
+ def __init__(
27246
+ self,
27247
+ request_id: str = None,
27248
+ ):
27249
+ # The request ID.
27250
+ self.request_id = request_id
27251
+
27252
+ def validate(self):
27253
+ pass
27254
+
27255
+ def to_map(self):
27256
+ _map = super().to_map()
27257
+ if _map is not None:
27258
+ return _map
27259
+
27260
+ result = dict()
27261
+ if self.request_id is not None:
27262
+ result['RequestId'] = self.request_id
27263
+ return result
27264
+
27265
+ def from_map(self, m: dict = None):
27266
+ m = m or dict()
27267
+ if m.get('RequestId') is not None:
27268
+ self.request_id = m.get('RequestId')
27269
+ return self
27270
+
27271
+
27272
+ class DeleteIPv6TranslatorAclListResponse(TeaModel):
27273
+ def __init__(
27274
+ self,
27275
+ headers: Dict[str, str] = None,
27276
+ status_code: int = None,
27277
+ body: DeleteIPv6TranslatorAclListResponseBody = None,
27278
+ ):
27279
+ self.headers = headers
27280
+ self.status_code = status_code
27281
+ self.body = body
27282
+
27283
+ def validate(self):
27284
+ if self.body:
27285
+ self.body.validate()
27286
+
27287
+ def to_map(self):
27288
+ _map = super().to_map()
27289
+ if _map is not None:
27290
+ return _map
27291
+
27292
+ result = dict()
27293
+ if self.headers is not None:
27294
+ result['headers'] = self.headers
27295
+ if self.status_code is not None:
27296
+ result['statusCode'] = self.status_code
27297
+ if self.body is not None:
27298
+ result['body'] = self.body.to_map()
27299
+ return result
27300
+
27301
+ def from_map(self, m: dict = None):
27302
+ m = m or dict()
27303
+ if m.get('headers') is not None:
27304
+ self.headers = m.get('headers')
27305
+ if m.get('statusCode') is not None:
27306
+ self.status_code = m.get('statusCode')
27307
+ if m.get('body') is not None:
27308
+ temp_model = DeleteIPv6TranslatorAclListResponseBody()
27309
+ self.body = temp_model.from_map(m['body'])
27310
+ return self
27311
+
27312
+
27313
+ class DeleteIPv6TranslatorEntryRequest(TeaModel):
27314
+ def __init__(
27315
+ self,
27316
+ client_token: str = None,
27317
+ ipv_6translator_entry_id: str = None,
27318
+ ipv_6translator_id: str = None,
27319
+ owner_account: str = None,
27320
+ owner_id: int = None,
27321
+ region_id: str = None,
27322
+ resource_owner_account: str = None,
27323
+ resource_owner_id: int = None,
27324
+ ):
27325
+ # The client token that is used to ensure the idempotence of the request.
27326
+ #
27327
+ # You can use the client to generate the token, but you must make sure that the token is unique among different requests. The token can contain only ASCII characters.
27328
+ self.client_token = client_token
27329
+ # The ID of the IPv6 mapping entry to be deleted.
27330
+ self.ipv_6translator_entry_id = ipv_6translator_entry_id
27331
+ # The ID of the IPv6 Translation Service instance.
27332
+ #
27333
+ # > If you do not specify **Ipv6TranslatorEntryId**, all mapping entries in the specified instance are deleted.
27334
+ self.ipv_6translator_id = ipv_6translator_id
27335
+ self.owner_account = owner_account
27336
+ self.owner_id = owner_id
27337
+ # The region of the IPv6 Translation Service instance. You can call the **DescribeRegions** operation to query the most recent region list.
27338
+ #
27339
+ # This parameter is required.
27340
+ self.region_id = region_id
27341
+ self.resource_owner_account = resource_owner_account
27342
+ self.resource_owner_id = resource_owner_id
27343
+
27344
+ def validate(self):
27345
+ pass
27346
+
27347
+ def to_map(self):
27348
+ _map = super().to_map()
27349
+ if _map is not None:
27350
+ return _map
27351
+
27352
+ result = dict()
27353
+ if self.client_token is not None:
27354
+ result['ClientToken'] = self.client_token
27355
+ if self.ipv_6translator_entry_id is not None:
27356
+ result['Ipv6TranslatorEntryId'] = self.ipv_6translator_entry_id
27357
+ if self.ipv_6translator_id is not None:
27358
+ result['Ipv6TranslatorId'] = self.ipv_6translator_id
27359
+ if self.owner_account is not None:
27360
+ result['OwnerAccount'] = self.owner_account
27361
+ if self.owner_id is not None:
27362
+ result['OwnerId'] = self.owner_id
27363
+ if self.region_id is not None:
27364
+ result['RegionId'] = self.region_id
27365
+ if self.resource_owner_account is not None:
27366
+ result['ResourceOwnerAccount'] = self.resource_owner_account
27367
+ if self.resource_owner_id is not None:
27368
+ result['ResourceOwnerId'] = self.resource_owner_id
27369
+ return result
27370
+
27371
+ def from_map(self, m: dict = None):
27372
+ m = m or dict()
27373
+ if m.get('ClientToken') is not None:
27374
+ self.client_token = m.get('ClientToken')
27375
+ if m.get('Ipv6TranslatorEntryId') is not None:
27376
+ self.ipv_6translator_entry_id = m.get('Ipv6TranslatorEntryId')
27377
+ if m.get('Ipv6TranslatorId') is not None:
27378
+ self.ipv_6translator_id = m.get('Ipv6TranslatorId')
27379
+ if m.get('OwnerAccount') is not None:
27380
+ self.owner_account = m.get('OwnerAccount')
27381
+ if m.get('OwnerId') is not None:
27382
+ self.owner_id = m.get('OwnerId')
27383
+ if m.get('RegionId') is not None:
27384
+ self.region_id = m.get('RegionId')
27385
+ if m.get('ResourceOwnerAccount') is not None:
27386
+ self.resource_owner_account = m.get('ResourceOwnerAccount')
27387
+ if m.get('ResourceOwnerId') is not None:
27388
+ self.resource_owner_id = m.get('ResourceOwnerId')
27389
+ return self
27390
+
27391
+
27392
+ class DeleteIPv6TranslatorEntryResponseBody(TeaModel):
27393
+ def __init__(
27394
+ self,
27395
+ request_id: str = None,
27396
+ ):
27397
+ # The request ID.
27398
+ self.request_id = request_id
27399
+
27400
+ def validate(self):
27401
+ pass
27402
+
27403
+ def to_map(self):
27404
+ _map = super().to_map()
27405
+ if _map is not None:
27406
+ return _map
27407
+
27408
+ result = dict()
27409
+ if self.request_id is not None:
27410
+ result['RequestId'] = self.request_id
27411
+ return result
27412
+
27413
+ def from_map(self, m: dict = None):
27414
+ m = m or dict()
27415
+ if m.get('RequestId') is not None:
27416
+ self.request_id = m.get('RequestId')
27417
+ return self
27418
+
27419
+
27420
+ class DeleteIPv6TranslatorEntryResponse(TeaModel):
27421
+ def __init__(
27422
+ self,
27423
+ headers: Dict[str, str] = None,
27424
+ status_code: int = None,
27425
+ body: DeleteIPv6TranslatorEntryResponseBody = None,
27426
+ ):
27427
+ self.headers = headers
27428
+ self.status_code = status_code
27429
+ self.body = body
27430
+
27431
+ def validate(self):
27432
+ if self.body:
27433
+ self.body.validate()
27434
+
27435
+ def to_map(self):
27436
+ _map = super().to_map()
27437
+ if _map is not None:
27438
+ return _map
27439
+
27440
+ result = dict()
27441
+ if self.headers is not None:
27442
+ result['headers'] = self.headers
27443
+ if self.status_code is not None:
27444
+ result['statusCode'] = self.status_code
27445
+ if self.body is not None:
27446
+ result['body'] = self.body.to_map()
27447
+ return result
27448
+
27449
+ def from_map(self, m: dict = None):
27450
+ m = m or dict()
27451
+ if m.get('headers') is not None:
27452
+ self.headers = m.get('headers')
27453
+ if m.get('statusCode') is not None:
27454
+ self.status_code = m.get('statusCode')
27455
+ if m.get('body') is not None:
27456
+ temp_model = DeleteIPv6TranslatorEntryResponseBody()
27457
+ self.body = temp_model.from_map(m['body'])
27458
+ return self
27459
+
27460
+
27461
+ class DeleteIpsecServerRequest(TeaModel):
27462
+ def __init__(
27463
+ self,
27464
+ client_token: str = None,
27465
+ dry_run: str = None,
27466
+ ipsec_server_id: str = None,
27467
+ region_id: str = None,
27468
+ ):
27469
+ # The client token that is used to ensure the idempotence of the request.
27470
+ #
27471
+ # You can use the client to generate the token, but you must make sure that the token is unique among different requests. The client token can contain only ASCII characters.
27472
+ #
27473
+ # > If you do not specify this parameter, the system automatically uses the **request ID** as the **client token**. The **request ID** may be different for each request.
27474
+ self.client_token = client_token
27475
+ # Specifies whether to perform only a dry run, without performing the actual request. Valid values:
27476
+ #
27477
+ # * **true**: performs only a dry run. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request fails the dry run, an error message is returned. If the request passes the dry run, the `DryRunOperation` error code is returned.
27478
+ # * **false** (default): performs a dry run and performs the actual request. If the request passes the dry run, a 2xx HTTP status code is returned and the operation is performed.
27479
+ self.dry_run = dry_run
27480
+ # The ID of the IPsec server.
27481
+ #
27482
+ # This parameter is required.
27483
+ self.ipsec_server_id = ipsec_server_id
27484
+ # The ID of the region where the IPsec server is created.
27485
+ #
27486
+ # This parameter is required.
27487
+ self.region_id = region_id
27488
+
27489
+ def validate(self):
27490
+ pass
27491
+
27492
+ def to_map(self):
27493
+ _map = super().to_map()
27494
+ if _map is not None:
27495
+ return _map
27496
+
27497
+ result = dict()
27498
+ if self.client_token is not None:
27499
+ result['ClientToken'] = self.client_token
27500
+ if self.dry_run is not None:
27501
+ result['DryRun'] = self.dry_run
27502
+ if self.ipsec_server_id is not None:
27503
+ result['IpsecServerId'] = self.ipsec_server_id
27504
+ if self.region_id is not None:
27505
+ result['RegionId'] = self.region_id
27506
+ return result
27507
+
27508
+ def from_map(self, m: dict = None):
27509
+ m = m or dict()
27510
+ if m.get('ClientToken') is not None:
27511
+ self.client_token = m.get('ClientToken')
27512
+ if m.get('DryRun') is not None:
27513
+ self.dry_run = m.get('DryRun')
27514
+ if m.get('IpsecServerId') is not None:
27515
+ self.ipsec_server_id = m.get('IpsecServerId')
27516
+ if m.get('RegionId') is not None:
27517
+ self.region_id = m.get('RegionId')
27518
+ return self
27519
+
27520
+
27521
+ class DeleteIpsecServerResponseBody(TeaModel):
27303
27522
  def __init__(
27304
27523
  self,
27305
27524
  request_id: str = None,
@@ -30792,6 +31011,10 @@ class DeleteVSwitchRequest(TeaModel):
30792
31011
  resource_owner_id: int = None,
30793
31012
  v_switch_id: str = None,
30794
31013
  ):
31014
+ # Specifies whether to perform a dry run. Valid values:
31015
+ #
31016
+ # - **true**: performs a dry run. The system checks the required parameters, request syntax, and limits. If the request fails the dry run, an error message is returned. If the request passes the dry run, the `DryRunOperation` error code is returned.
31017
+ # - **false** (default): performs a dry run and sends the request. If the request passes the dry run, a 2xx HTTP status code is returned and the operation is performed.
30795
31018
  self.dry_run = dry_run
30796
31019
  self.owner_account = owner_account
30797
31020
  self.owner_id = owner_id
@@ -42225,6 +42448,274 @@ class DescribeGrantRulesToCenResponse(TeaModel):
42225
42448
  return self
42226
42449
 
42227
42450
 
42451
+ class DescribeGrantRulesToEcrRequestTags(TeaModel):
42452
+ def __init__(
42453
+ self,
42454
+ key: str = None,
42455
+ value: str = None,
42456
+ ):
42457
+ # The tag keys. You must specify at least one tag key and at most 20 tag keys. The tag key cannot be an empty string.
42458
+ #
42459
+ # The tag key can be up to 128 characters in length. The tag key cannot start with `aliyun` or `acs:`, and cannot contain `http://` or `https://`.
42460
+ self.key = key
42461
+ # The value of the tag.
42462
+ self.value = value
42463
+
42464
+ def validate(self):
42465
+ pass
42466
+
42467
+ def to_map(self):
42468
+ _map = super().to_map()
42469
+ if _map is not None:
42470
+ return _map
42471
+
42472
+ result = dict()
42473
+ if self.key is not None:
42474
+ result['Key'] = self.key
42475
+ if self.value is not None:
42476
+ result['Value'] = self.value
42477
+ return result
42478
+
42479
+ def from_map(self, m: dict = None):
42480
+ m = m or dict()
42481
+ if m.get('Key') is not None:
42482
+ self.key = m.get('Key')
42483
+ if m.get('Value') is not None:
42484
+ self.value = m.get('Value')
42485
+ return self
42486
+
42487
+
42488
+ class DescribeGrantRulesToEcrRequest(TeaModel):
42489
+ def __init__(
42490
+ self,
42491
+ instance_id: str = None,
42492
+ page_number: int = None,
42493
+ page_size: int = None,
42494
+ region_id: str = None,
42495
+ resource_group_id: str = None,
42496
+ tags: List[DescribeGrantRulesToEcrRequestTags] = None,
42497
+ ):
42498
+ # The ID of the VBR.
42499
+ #
42500
+ # This parameter is required.
42501
+ self.instance_id = instance_id
42502
+ # The number of the page to return. Default value: 1.
42503
+ self.page_number = page_number
42504
+ # The number of entries per page. Maximum value: **50**. Default value: **10**.
42505
+ self.page_size = page_size
42506
+ # The region ID
42507
+ #
42508
+ # You can call the [DescribeRegions](https://help.aliyun.com/document_detail/36063.html) operation to query the region list.
42509
+ #
42510
+ # This parameter is required.
42511
+ self.region_id = region_id
42512
+ # The ID of the resource group.
42513
+ self.resource_group_id = resource_group_id
42514
+ # The tag list.
42515
+ self.tags = tags
42516
+
42517
+ def validate(self):
42518
+ if self.tags:
42519
+ for k in self.tags:
42520
+ if k:
42521
+ k.validate()
42522
+
42523
+ def to_map(self):
42524
+ _map = super().to_map()
42525
+ if _map is not None:
42526
+ return _map
42527
+
42528
+ result = dict()
42529
+ if self.instance_id is not None:
42530
+ result['InstanceId'] = self.instance_id
42531
+ if self.page_number is not None:
42532
+ result['PageNumber'] = self.page_number
42533
+ if self.page_size is not None:
42534
+ result['PageSize'] = self.page_size
42535
+ if self.region_id is not None:
42536
+ result['RegionId'] = self.region_id
42537
+ if self.resource_group_id is not None:
42538
+ result['ResourceGroupId'] = self.resource_group_id
42539
+ result['Tags'] = []
42540
+ if self.tags is not None:
42541
+ for k in self.tags:
42542
+ result['Tags'].append(k.to_map() if k else None)
42543
+ return result
42544
+
42545
+ def from_map(self, m: dict = None):
42546
+ m = m or dict()
42547
+ if m.get('InstanceId') is not None:
42548
+ self.instance_id = m.get('InstanceId')
42549
+ if m.get('PageNumber') is not None:
42550
+ self.page_number = m.get('PageNumber')
42551
+ if m.get('PageSize') is not None:
42552
+ self.page_size = m.get('PageSize')
42553
+ if m.get('RegionId') is not None:
42554
+ self.region_id = m.get('RegionId')
42555
+ if m.get('ResourceGroupId') is not None:
42556
+ self.resource_group_id = m.get('ResourceGroupId')
42557
+ self.tags = []
42558
+ if m.get('Tags') is not None:
42559
+ for k in m.get('Tags'):
42560
+ temp_model = DescribeGrantRulesToEcrRequestTags()
42561
+ self.tags.append(temp_model.from_map(k))
42562
+ return self
42563
+
42564
+
42565
+ class DescribeGrantRulesToEcrResponseBodyEcrGrantRules(TeaModel):
42566
+ def __init__(
42567
+ self,
42568
+ create_time: str = None,
42569
+ ecr_instance_id: str = None,
42570
+ ecr_uid: int = None,
42571
+ ):
42572
+ # The authorization time. The time follows the ISO8601 standard and uses UTC time. The format is YYYY-MM-DDThh:mm:ssZ.
42573
+ self.create_time = create_time
42574
+ # The ECR account ID.
42575
+ self.ecr_instance_id = ecr_instance_id
42576
+ # The ECR account ID.
42577
+ self.ecr_uid = ecr_uid
42578
+
42579
+ def validate(self):
42580
+ pass
42581
+
42582
+ def to_map(self):
42583
+ _map = super().to_map()
42584
+ if _map is not None:
42585
+ return _map
42586
+
42587
+ result = dict()
42588
+ if self.create_time is not None:
42589
+ result['CreateTime'] = self.create_time
42590
+ if self.ecr_instance_id is not None:
42591
+ result['EcrInstanceId'] = self.ecr_instance_id
42592
+ if self.ecr_uid is not None:
42593
+ result['EcrUid'] = self.ecr_uid
42594
+ return result
42595
+
42596
+ def from_map(self, m: dict = None):
42597
+ m = m or dict()
42598
+ if m.get('CreateTime') is not None:
42599
+ self.create_time = m.get('CreateTime')
42600
+ if m.get('EcrInstanceId') is not None:
42601
+ self.ecr_instance_id = m.get('EcrInstanceId')
42602
+ if m.get('EcrUid') is not None:
42603
+ self.ecr_uid = m.get('EcrUid')
42604
+ return self
42605
+
42606
+
42607
+ class DescribeGrantRulesToEcrResponseBody(TeaModel):
42608
+ def __init__(
42609
+ self,
42610
+ count: int = None,
42611
+ ecr_grant_rules: List[DescribeGrantRulesToEcrResponseBodyEcrGrantRules] = None,
42612
+ page_number: int = None,
42613
+ page_size: int = None,
42614
+ request_id: str = None,
42615
+ total_count: int = None,
42616
+ ):
42617
+ # The total number of entries returned.
42618
+ self.count = count
42619
+ # The cross-account authorization list of the ECR
42620
+ self.ecr_grant_rules = ecr_grant_rules
42621
+ # The page number. Default value: **1**.
42622
+ self.page_number = page_number
42623
+ # The number of entries on each page. Maximum value: 50. Default value: 10.
42624
+ self.page_size = page_size
42625
+ # The ID of the request.
42626
+ self.request_id = request_id
42627
+ # The total number of entries returned.
42628
+ self.total_count = total_count
42629
+
42630
+ def validate(self):
42631
+ if self.ecr_grant_rules:
42632
+ for k in self.ecr_grant_rules:
42633
+ if k:
42634
+ k.validate()
42635
+
42636
+ def to_map(self):
42637
+ _map = super().to_map()
42638
+ if _map is not None:
42639
+ return _map
42640
+
42641
+ result = dict()
42642
+ if self.count is not None:
42643
+ result['Count'] = self.count
42644
+ result['EcrGrantRules'] = []
42645
+ if self.ecr_grant_rules is not None:
42646
+ for k in self.ecr_grant_rules:
42647
+ result['EcrGrantRules'].append(k.to_map() if k else None)
42648
+ if self.page_number is not None:
42649
+ result['PageNumber'] = self.page_number
42650
+ if self.page_size is not None:
42651
+ result['PageSize'] = self.page_size
42652
+ if self.request_id is not None:
42653
+ result['RequestId'] = self.request_id
42654
+ if self.total_count is not None:
42655
+ result['TotalCount'] = self.total_count
42656
+ return result
42657
+
42658
+ def from_map(self, m: dict = None):
42659
+ m = m or dict()
42660
+ if m.get('Count') is not None:
42661
+ self.count = m.get('Count')
42662
+ self.ecr_grant_rules = []
42663
+ if m.get('EcrGrantRules') is not None:
42664
+ for k in m.get('EcrGrantRules'):
42665
+ temp_model = DescribeGrantRulesToEcrResponseBodyEcrGrantRules()
42666
+ self.ecr_grant_rules.append(temp_model.from_map(k))
42667
+ if m.get('PageNumber') is not None:
42668
+ self.page_number = m.get('PageNumber')
42669
+ if m.get('PageSize') is not None:
42670
+ self.page_size = m.get('PageSize')
42671
+ if m.get('RequestId') is not None:
42672
+ self.request_id = m.get('RequestId')
42673
+ if m.get('TotalCount') is not None:
42674
+ self.total_count = m.get('TotalCount')
42675
+ return self
42676
+
42677
+
42678
+ class DescribeGrantRulesToEcrResponse(TeaModel):
42679
+ def __init__(
42680
+ self,
42681
+ headers: Dict[str, str] = None,
42682
+ status_code: int = None,
42683
+ body: DescribeGrantRulesToEcrResponseBody = None,
42684
+ ):
42685
+ self.headers = headers
42686
+ self.status_code = status_code
42687
+ self.body = body
42688
+
42689
+ def validate(self):
42690
+ if self.body:
42691
+ self.body.validate()
42692
+
42693
+ def to_map(self):
42694
+ _map = super().to_map()
42695
+ if _map is not None:
42696
+ return _map
42697
+
42698
+ result = dict()
42699
+ if self.headers is not None:
42700
+ result['headers'] = self.headers
42701
+ if self.status_code is not None:
42702
+ result['statusCode'] = self.status_code
42703
+ if self.body is not None:
42704
+ result['body'] = self.body.to_map()
42705
+ return result
42706
+
42707
+ def from_map(self, m: dict = None):
42708
+ m = m or dict()
42709
+ if m.get('headers') is not None:
42710
+ self.headers = m.get('headers')
42711
+ if m.get('statusCode') is not None:
42712
+ self.status_code = m.get('statusCode')
42713
+ if m.get('body') is not None:
42714
+ temp_model = DescribeGrantRulesToEcrResponseBody()
42715
+ self.body = temp_model.from_map(m['body'])
42716
+ return self
42717
+
42718
+
42228
42719
  class DescribeHaVipsRequestFilter(TeaModel):
42229
42720
  def __init__(
42230
42721
  self,
@@ -46211,7 +46702,21 @@ class DescribeNatGatewayAssociateNetworkInterfacesRequestFilter(TeaModel):
46211
46702
  key: str = None,
46212
46703
  value: str = None,
46213
46704
  ):
46705
+ # The filter key.
46706
+ #
46707
+ # * ResourceId
46708
+ #
46709
+ # > Specify the service resource ID in the Value field.
46710
+ #
46711
+ # * NetworkInterfaceId
46712
+ #
46713
+ # > Specify the ENI ID in the Value field.
46714
+ #
46715
+ # * ResourceOwnerId
46716
+ #
46717
+ # > Specify the UID of the account to which the service resource belongs.
46214
46718
  self.key = key
46719
+ # Separate multiple values with commas (,).
46215
46720
  self.value = value
46216
46721
 
46217
46722
  def validate(self):
@@ -46244,7 +46749,13 @@ class DescribeNatGatewayAssociateNetworkInterfacesRequestTag(TeaModel):
46244
46749
  key: str = None,
46245
46750
  value: str = None,
46246
46751
  ):
46752
+ # The tag key You can specify at most 20 tag keys. It cannot be an empty string,
46753
+ #
46754
+ # The tag key can be up to 64 characters in length and cannot contain `http://` or `https://`. The tag key cannot start with `aliyun` or `acs:`.
46247
46755
  self.key = key
46756
+ # The tag key. You can specify at most 20 tag keys. It cannot be an empty string.
46757
+ #
46758
+ # The tag key can be up to 64 characters in length and cannot contain `http://` or `https://`. The tag key cannot start with `aliyun` or `acs:`.
46248
46759
  self.value = value
46249
46760
 
46250
46761
  def validate(self):
@@ -46287,19 +46798,38 @@ class DescribeNatGatewayAssociateNetworkInterfacesRequest(TeaModel):
46287
46798
  resource_owner_id: int = None,
46288
46799
  tag: List[DescribeNatGatewayAssociateNetworkInterfacesRequestTag] = None,
46289
46800
  ):
46801
+ # The client token that is used to ensure the idempotence of the request.
46802
+ #
46803
+ # You can use the client to generate the token, but you must make sure that the token is unique among different requests. The client token can contain only ASCII characters.
46804
+ #
46805
+ # > If you do not set this parameter, the value of **RequestId** is used.**** The **RequestId** may be different for each request.
46290
46806
  self.client_token = client_token
46807
+ # The filter information. You can specify a filter key and a filter value.
46291
46808
  self.filter = filter
46809
+ # The number of entries to return per page. Valid values: **1 to 100**. Default value: **20**.
46292
46810
  self.max_results = max_results
46811
+ # The ID of the NAT gateway.
46812
+ #
46293
46813
  # This parameter is required.
46294
46814
  self.nat_gateway_id = nat_gateway_id
46815
+ # The pagination token that is used in the next request to retrieve a new page of results. Valid value:
46816
+ #
46817
+ # * If no value is returned for NetToken, you do not need to specify this parameter.
46818
+ # * If a value is returned for NextToken, you must specify the token that is obtained from the previous query as the value of **NextToken**.
46295
46819
  self.next_token = next_token
46296
46820
  self.owner_account = owner_account
46297
46821
  self.owner_id = owner_id
46822
+ # The region ID of the Internet NAT gateway.
46823
+ #
46824
+ # Call the [DescribeRegions](https://help.aliyun.com/document_detail/36063.html) operation to query the region list.
46825
+ #
46298
46826
  # This parameter is required.
46299
46827
  self.region_id = region_id
46828
+ # The resource group ID.
46300
46829
  self.resource_group_id = resource_group_id
46301
46830
  self.resource_owner_account = resource_owner_account
46302
46831
  self.resource_owner_id = resource_owner_id
46832
+ # The information about resource tags.
46303
46833
  self.tag = tag
46304
46834
 
46305
46835
  def validate(self):
@@ -46389,7 +46919,12 @@ class DescribeNatGatewayAssociateNetworkInterfacesResponseBodyAssociateNetworkIn
46389
46919
  ipv_4address: str = None,
46390
46920
  primary: bool = None,
46391
46921
  ):
46922
+ # The primary private IP address of the ENI.
46392
46923
  self.ipv_4address = ipv_4address
46924
+ # Indicates whether the IP address is the primary private IP address. Valid values:
46925
+ #
46926
+ # * true: Primary private IP address
46927
+ # * false: Secondary private IP addresses
46393
46928
  self.primary = primary
46394
46929
 
46395
46930
  def validate(self):
@@ -46462,12 +46997,18 @@ class DescribeNatGatewayAssociateNetworkInterfacesResponseBodyAssociateNetworkIn
46462
46997
  resource_vpc_id: str = None,
46463
46998
  tunnel_index: str = None,
46464
46999
  ):
47000
+ # The IPv4 addresses of the ENIs.
46465
47001
  self.ipv_4sets = ipv_4sets
47002
+ # The ID of the ENI.
46466
47003
  self.network_interface_id = network_interface_id
47004
+ # The ID of the service resource.
46467
47005
  self.resource_id = resource_id
47006
+ # The UID of the account to which the service resource belongs.
46468
47007
  self.resource_owner_id = resource_owner_id
47008
+ # The type of the service resource.
46469
47009
  self.resource_type = resource_type
46470
47010
  self.resource_vpc_id = resource_vpc_id
47011
+ # The ID of the tunnel index.
46471
47012
  self.tunnel_index = tunnel_index
46472
47013
 
46473
47014
  def validate(self):
@@ -46562,12 +47103,22 @@ class DescribeNatGatewayAssociateNetworkInterfacesResponseBody(TeaModel):
46562
47103
  request_id: str = None,
46563
47104
  total_count: int = None,
46564
47105
  ):
47106
+ # The ENIs associated with the VPC NAT gateway.
46565
47107
  self.associate_network_interfaces = associate_network_interfaces
47108
+ # Number of associated ENIs.
46566
47109
  self.count = count
47110
+ # The number of entries to return per page. Valid values: **1 to 100**. Default value: **20**.
46567
47111
  self.max_results = max_results
47112
+ # The ID of the VPC NAT gateway.
46568
47113
  self.nat_gateway_id = nat_gateway_id
47114
+ # Indicates whether the token for the next query exists. Valid value:
47115
+ #
47116
+ # * If **NextToken** is empty, there is no next page.
47117
+ # * If the value returned of **NextToken** is not empty, the value indicates the token that is used for the next query.
46569
47118
  self.next_token = next_token
47119
+ # Request ID.
46570
47120
  self.request_id = request_id
47121
+ # The total number of entries.
46571
47122
  self.total_count = total_count
46572
47123
 
46573
47124
  def validate(self):
@@ -59214,6 +59765,7 @@ class DescribeVirtualBorderRoutersResponseBodyVirtualBorderRouterSetVirtualBorde
59214
59765
  local_ipv_6gateway_ip: str = None,
59215
59766
  min_rx_interval: int = None,
59216
59767
  min_tx_interval: int = None,
59768
+ mtu: int = None,
59217
59769
  name: str = None,
59218
59770
  pconn_vbr_charge_type: str = None,
59219
59771
  pconn_vbr_expire_time: str = None,
@@ -59288,6 +59840,7 @@ class DescribeVirtualBorderRoutersResponseBodyVirtualBorderRouterSetVirtualBorde
59288
59840
  self.min_rx_interval = min_rx_interval
59289
59841
  # The time interval to send Bidirectional Forwarding Detection (BFD) packets. Valid values: **200 to 1000**. Unit: milliseconds.
59290
59842
  self.min_tx_interval = min_tx_interval
59843
+ self.mtu = mtu
59291
59844
  # The VBR name.
59292
59845
  self.name = name
59293
59846
  # The billing method of the VBR. Valid values:
@@ -59416,6 +59969,8 @@ class DescribeVirtualBorderRoutersResponseBodyVirtualBorderRouterSetVirtualBorde
59416
59969
  result['MinRxInterval'] = self.min_rx_interval
59417
59970
  if self.min_tx_interval is not None:
59418
59971
  result['MinTxInterval'] = self.min_tx_interval
59972
+ if self.mtu is not None:
59973
+ result['Mtu'] = self.mtu
59419
59974
  if self.name is not None:
59420
59975
  result['Name'] = self.name
59421
59976
  if self.pconn_vbr_charge_type is not None:
@@ -59504,6 +60059,8 @@ class DescribeVirtualBorderRoutersResponseBodyVirtualBorderRouterSetVirtualBorde
59504
60059
  self.min_rx_interval = m.get('MinRxInterval')
59505
60060
  if m.get('MinTxInterval') is not None:
59506
60061
  self.min_tx_interval = m.get('MinTxInterval')
60062
+ if m.get('Mtu') is not None:
60063
+ self.mtu = m.get('Mtu')
59507
60064
  if m.get('Name') is not None:
59508
60065
  self.name = m.get('Name')
59509
60066
  if m.get('PConnVbrChargeType') is not None:
@@ -60784,6 +61341,7 @@ class DescribeVpcAttributeResponseBody(TeaModel):
60784
61341
  # * **Deleted**\
60785
61342
  # * **Pending**\
60786
61343
  self.dhcp_options_set_status = dhcp_options_set_status
61344
+ # Indicates whether DNS hostname is enabled.
60787
61345
  self.dns_hostname_status = dns_hostname_status
60788
61346
  # Indicates whether the VPC enables IPv6 .
60789
61347
  # - true
@@ -61031,7 +61589,13 @@ class DescribeVpcGrantRulesToEcrRequestTags(TeaModel):
61031
61589
  key: str = None,
61032
61590
  value: str = None,
61033
61591
  ):
61592
+ # The key of the tag. You must specify at least one tag key and at most 20 tag keys. The tag key cannot be an empty string.
61593
+ #
61594
+ # A tag key can be up to 128 characters in length. It cannot start with `acs:` or `aliyun`, and cannot contain `http://` or `https://`.
61034
61595
  self.key = key
61596
+ # The value of the tag. You can enter a maximum of 20 tag values. The tag value can be an empty string.
61597
+ #
61598
+ # The tag key can be up to 128 characters in length, and cannot start with `aliyun` or `acs:`. The tag key cannot contain `http://` or `https://`.
61035
61599
  self.value = value
61036
61600
 
61037
61601
  def validate(self):
@@ -61075,19 +61639,37 @@ class DescribeVpcGrantRulesToEcrRequest(TeaModel):
61075
61639
  resource_owner_id: int = None,
61076
61640
  tags: List[DescribeVpcGrantRulesToEcrRequestTags] = None,
61077
61641
  ):
61642
+ # The ID of the ECR that you want to query.
61078
61643
  self.ecr_instance_id = ecr_instance_id
61644
+ # The ID of the Alibaba Cloud account to which the ECR belongs.
61645
+ #
61646
+ # > If you want to connect to a network instance that belongs to a different account, this parameter is required.
61079
61647
  self.ecr_owner_id = ecr_owner_id
61648
+ # The ID of the network instance.
61080
61649
  self.instance_id = instance_id
61650
+ # The type of instance. Valid values:
61651
+ #
61652
+ # * **VBR**: queries the permissions that are granted to a VBR.
61653
+ # * **VPC**: queries the permissions that are granted from a VPC.
61081
61654
  self.instance_type = instance_type
61655
+ # The number of entries to return per page. Valid values: **1** to **100**. Default value: **10**.
61082
61656
  self.max_results = max_results
61657
+ # A pagination token. It can be used in the next request to retrieve a new page of results. Valid values:
61658
+ #
61659
+ # * You do not need to specify this parameter for the first request.
61660
+ # * If a value is returned for NextToken, you must specify the token that is obtained from the previous query as the value of **NextToken**.
61083
61661
  self.next_token = next_token
61084
61662
  self.owner_account = owner_account
61085
61663
  self.owner_id = owner_id
61664
+ # The region ID of the network instance that you want to query.
61665
+ #
61086
61666
  # This parameter is required.
61087
61667
  self.region_id = region_id
61668
+ # The ID of the resource group to which the network instance belongs.
61088
61669
  self.resource_group_id = resource_group_id
61089
61670
  self.resource_owner_account = resource_owner_account
61090
61671
  self.resource_owner_id = resource_owner_id
61672
+ # The tag.
61091
61673
  self.tags = tags
61092
61674
 
61093
61675
  def validate(self):
@@ -61177,12 +61759,22 @@ class DescribeVpcGrantRulesToEcrResponseBodyGrantRuleModels(TeaModel):
61177
61759
  region_no: str = None,
61178
61760
  type: str = None,
61179
61761
  ):
61762
+ # The creation time in milliseconds.
61180
61763
  self.creation_time = creation_time
61764
+ # The ECR ID.
61181
61765
  self.ecr_id = ecr_id
61766
+ # The ID of the Alibaba Cloud account to which the ECR belongs.
61182
61767
  self.ecr_owner_id = ecr_owner_id
61768
+ # The ID of the network instance.
61183
61769
  self.instance_id = instance_id
61770
+ # The ID of the Alibaba Cloud account to which the instance belongs.
61184
61771
  self.instance_uid = instance_uid
61772
+ # The ID of the region where the instance is deployed.
61185
61773
  self.region_no = region_no
61774
+ # The type of instance. Valid values:
61775
+ #
61776
+ # * **VBR**: queries the permissions that are granted to a VBR.
61777
+ # * **VPC**: queries the permissions that are granted from a VPC.
61186
61778
  self.type = type
61187
61779
 
61188
61780
  def validate(self):
@@ -61237,9 +61829,16 @@ class DescribeVpcGrantRulesToEcrResponseBody(TeaModel):
61237
61829
  request_id: str = None,
61238
61830
  total_count: str = None,
61239
61831
  ):
61832
+ # The authorization information.
61240
61833
  self.grant_rule_models = grant_rule_models
61834
+ # A pagination token. It can be used in the next request to retrieve a new page of results. Valid values:
61835
+ #
61836
+ # * If **NextToken** is empty, there is no next page.
61837
+ # * ****\
61241
61838
  self.next_token = next_token
61839
+ # The unique ID that Alibaba Cloud generates for the request.
61242
61840
  self.request_id = request_id
61841
+ # The total number of instances queried. If you specify the MaxResults and NextToken request parameters to perform a paged query, the value of the TotalCount response parameter is invalid.
61243
61842
  self.total_count = total_count
61244
61843
 
61245
61844
  def validate(self):
@@ -71023,7 +71622,7 @@ class GetDhcpOptionsSetResponseBodyAssociateVpcs(TeaModel):
71023
71622
  vpc_id: str = None,
71024
71623
  ):
71025
71624
  # The status of the VPC that is associated with the DHCP options set. Valid values:
71026
- #
71625
+ #
71027
71626
  # * **InUse**: in use
71028
71627
  # * **Pending**: being configured
71029
71628
  self.associate_status = associate_status
@@ -71067,13 +71666,14 @@ class GetDhcpOptionsSetResponseBodyDhcpOptions(TeaModel):
71067
71666
  # The IP address of the DNS server.
71068
71667
  self.domain_name_servers = domain_name_servers
71069
71668
  # The lease time of the IPv6 addresses for the DHCP options set.
71070
- #
71669
+ #
71071
71670
  # * If you use hours as the unit, Valid values are **24h to 1176h** and **87600h to 175200h**. Default value: **87600h**.
71072
71671
  # * If you use days as the unit, Valid values are **1d to 49d** and **3650d to 7300d**. Default value: **3650d**.
71073
71672
  self.ipv_6lease_time = ipv_6lease_time
71074
71673
  # The lease time of the IPv4 addresses for the DHCP options set.
71075
71674
  #
71076
71675
  # * If you use hours as the unit, valid values are **24h to 1176h** and **87600h to 175200h**. Default value: **87600h**.
71676
+ #
71077
71677
  # * If you use days as the unit, valid values are **1d to 49d** and **3650d to 7300d**. Default value: **3650d**.
71078
71678
  self.lease_time = lease_time
71079
71679
 
@@ -71161,6 +71761,7 @@ class GetDhcpOptionsSetResponseBody(TeaModel):
71161
71761
  ):
71162
71762
  # The information about the virtual private cloud (VPC) that is associated with the DHCP options set.
71163
71763
  self.associate_vpcs = associate_vpcs
71764
+ # create time
71164
71765
  self.creation_time = creation_time
71165
71766
  # The configuration information about the DHCP options set.
71166
71767
  self.dhcp_options = dhcp_options
@@ -75077,6 +75678,163 @@ class ListBusinessAccessPointsResponse(TeaModel):
75077
75678
  return self
75078
75679
 
75079
75680
 
75681
+ class ListBusinessRegionsRequest(TeaModel):
75682
+ def __init__(
75683
+ self,
75684
+ accept_language: str = None,
75685
+ ):
75686
+ # The language of the response. Valid values:
75687
+ #
75688
+ # * **zh-CN** (default): Chinese
75689
+ # * **en-US**: English.
75690
+ self.accept_language = accept_language
75691
+
75692
+ def validate(self):
75693
+ pass
75694
+
75695
+ def to_map(self):
75696
+ _map = super().to_map()
75697
+ if _map is not None:
75698
+ return _map
75699
+
75700
+ result = dict()
75701
+ if self.accept_language is not None:
75702
+ result['AcceptLanguage'] = self.accept_language
75703
+ return result
75704
+
75705
+ def from_map(self, m: dict = None):
75706
+ m = m or dict()
75707
+ if m.get('AcceptLanguage') is not None:
75708
+ self.accept_language = m.get('AcceptLanguage')
75709
+ return self
75710
+
75711
+
75712
+ class ListBusinessRegionsResponseBodyGeographicSubRegions(TeaModel):
75713
+ def __init__(
75714
+ self,
75715
+ name: str = None,
75716
+ region_id: str = None,
75717
+ ):
75718
+ # The name of the region where circuits are available.
75719
+ self.name = name
75720
+ # The ID of the region where circuits are available.
75721
+ self.region_id = region_id
75722
+
75723
+ def validate(self):
75724
+ pass
75725
+
75726
+ def to_map(self):
75727
+ _map = super().to_map()
75728
+ if _map is not None:
75729
+ return _map
75730
+
75731
+ result = dict()
75732
+ if self.name is not None:
75733
+ result['Name'] = self.name
75734
+ if self.region_id is not None:
75735
+ result['RegionId'] = self.region_id
75736
+ return result
75737
+
75738
+ def from_map(self, m: dict = None):
75739
+ m = m or dict()
75740
+ if m.get('Name') is not None:
75741
+ self.name = m.get('Name')
75742
+ if m.get('RegionId') is not None:
75743
+ self.region_id = m.get('RegionId')
75744
+ return self
75745
+
75746
+
75747
+ class ListBusinessRegionsResponseBody(TeaModel):
75748
+ def __init__(
75749
+ self,
75750
+ count: int = None,
75751
+ geographic_sub_regions: List[ListBusinessRegionsResponseBodyGeographicSubRegions] = None,
75752
+ request_id: str = None,
75753
+ ):
75754
+ # The total number of entries returned.
75755
+ self.count = count
75756
+ # The list of regions available for Express Connect circuits.
75757
+ self.geographic_sub_regions = geographic_sub_regions
75758
+ # The ID of the request.
75759
+ self.request_id = request_id
75760
+
75761
+ def validate(self):
75762
+ if self.geographic_sub_regions:
75763
+ for k in self.geographic_sub_regions:
75764
+ if k:
75765
+ k.validate()
75766
+
75767
+ def to_map(self):
75768
+ _map = super().to_map()
75769
+ if _map is not None:
75770
+ return _map
75771
+
75772
+ result = dict()
75773
+ if self.count is not None:
75774
+ result['Count'] = self.count
75775
+ result['GeographicSubRegions'] = []
75776
+ if self.geographic_sub_regions is not None:
75777
+ for k in self.geographic_sub_regions:
75778
+ result['GeographicSubRegions'].append(k.to_map() if k else None)
75779
+ if self.request_id is not None:
75780
+ result['RequestId'] = self.request_id
75781
+ return result
75782
+
75783
+ def from_map(self, m: dict = None):
75784
+ m = m or dict()
75785
+ if m.get('Count') is not None:
75786
+ self.count = m.get('Count')
75787
+ self.geographic_sub_regions = []
75788
+ if m.get('GeographicSubRegions') is not None:
75789
+ for k in m.get('GeographicSubRegions'):
75790
+ temp_model = ListBusinessRegionsResponseBodyGeographicSubRegions()
75791
+ self.geographic_sub_regions.append(temp_model.from_map(k))
75792
+ if m.get('RequestId') is not None:
75793
+ self.request_id = m.get('RequestId')
75794
+ return self
75795
+
75796
+
75797
+ class ListBusinessRegionsResponse(TeaModel):
75798
+ def __init__(
75799
+ self,
75800
+ headers: Dict[str, str] = None,
75801
+ status_code: int = None,
75802
+ body: ListBusinessRegionsResponseBody = None,
75803
+ ):
75804
+ self.headers = headers
75805
+ self.status_code = status_code
75806
+ self.body = body
75807
+
75808
+ def validate(self):
75809
+ if self.body:
75810
+ self.body.validate()
75811
+
75812
+ def to_map(self):
75813
+ _map = super().to_map()
75814
+ if _map is not None:
75815
+ return _map
75816
+
75817
+ result = dict()
75818
+ if self.headers is not None:
75819
+ result['headers'] = self.headers
75820
+ if self.status_code is not None:
75821
+ result['statusCode'] = self.status_code
75822
+ if self.body is not None:
75823
+ result['body'] = self.body.to_map()
75824
+ return result
75825
+
75826
+ def from_map(self, m: dict = None):
75827
+ m = m or dict()
75828
+ if m.get('headers') is not None:
75829
+ self.headers = m.get('headers')
75830
+ if m.get('statusCode') is not None:
75831
+ self.status_code = m.get('statusCode')
75832
+ if m.get('body') is not None:
75833
+ temp_model = ListBusinessRegionsResponseBody()
75834
+ self.body = temp_model.from_map(m['body'])
75835
+ return self
75836
+
75837
+
75080
75838
  class ListDhcpOptionsSetsRequestTags(TeaModel):
75081
75839
  def __init__(
75082
75840
  self,
@@ -75140,18 +75898,19 @@ class ListDhcpOptionsSetsRequest(TeaModel):
75140
75898
  #
75141
75899
  # Valid values:
75142
75900
  #
75901
+ #
75143
75902
  # * tf-testAccVpcDhcpOptionsSets-1585169790614573448
75144
- #
75903
+ #
75145
75904
  # <!-- -->
75146
- #
75905
+ #
75147
75906
  # :
75148
- #
75907
+ #
75149
75908
  # <!-- -->
75150
- #
75909
+ #
75151
75910
  # tf-testAccVpcDhcpOptionsSets-1585169790614573448
75152
- #
75911
+ #
75153
75912
  # <!-- -->
75154
- #
75913
+ #
75155
75914
  # .
75156
75915
  self.dhcp_options_set_name = dhcp_options_set_name
75157
75916
  # The root domain. For example, you can set the value to example.com.
@@ -75163,6 +75922,7 @@ class ListDhcpOptionsSetsRequest(TeaModel):
75163
75922
  # The pagination token that is used in the next request to retrieve a new page of results. Valid values:
75164
75923
  #
75165
75924
  # * You do not need to specify this parameter for the first request.
75925
+ #
75166
75926
  # * You must specify the token that is obtained from the previous query as the value of the **NextToken** parameter.
75167
75927
  self.next_token = next_token
75168
75928
  self.owner_account = owner_account
@@ -75264,10 +76024,11 @@ class ListDhcpOptionsSetsResponseBodyDhcpOptionsSetsDhcpOptions(TeaModel):
75264
76024
  self.domain_name = domain_name
75265
76025
  # The IP address of the DNS server.
75266
76026
  self.domain_name_servers = domain_name_servers
75267
- # The lease time of the IPv6 addresses for the DHCP options set.
76027
+ # The lease time of the IPv6 DHCP options set.
75268
76028
  #
75269
- # * If you use hours as the unit, valid values are **24h to 1176h** and **87600h to 175200h**. Default value: **87600h**.
75270
- # * If you use days as the unit, valid values are **1d to 49d** and **3650d to 7300d**. Default value: **3650d**.
76029
+ # * If you use hours as the unit, Unit: h. Valid values are **24h to 1176h** and **87600h to 175200h**. Default value: **24h**.
76030
+ #
76031
+ # * If you use days as the unit, Unit: d. Valid values are **1d to 49d** and **3650d to 7300d**. Default value: **1d**.
75271
76032
  self.ipv_6lease_time = ipv_6lease_time
75272
76033
  # The lease time of the IPv4 addresses for the DHCP options set.
75273
76034
  #
@@ -75358,8 +76119,9 @@ class ListDhcpOptionsSetsResponseBodyDhcpOptionsSets(TeaModel):
75358
76119
  ):
75359
76120
  # The number of VPCs with which the DHCP options set is associated.
75360
76121
  self.associate_vpc_count = associate_vpc_count
76122
+ # The creation time of the DHCP options sets.
75361
76123
  self.creation_time = creation_time
75362
- # The configuration information about the DHCP options set.
76124
+ # The details of DHCP options.
75363
76125
  self.dhcp_options = dhcp_options
75364
76126
  # The description of the DHCP options set.
75365
76127
  self.dhcp_options_set_description = dhcp_options_set_description
@@ -77993,6 +78755,7 @@ class ListNatIpsRequest(TeaModel):
77993
78755
  self,
77994
78756
  client_token: str = None,
77995
78757
  dry_run: bool = None,
78758
+ ip_origin: str = None,
77996
78759
  max_results: str = None,
77997
78760
  nat_gateway_id: str = None,
77998
78761
  nat_ip_cidr: str = None,
@@ -78017,6 +78780,7 @@ class ListNatIpsRequest(TeaModel):
78017
78780
  # * **true**: checks the API request. IP addresses are not queried. The system checks the required parameters, request syntax, and limits. If the request fails to pass the precheck, the corresponding error message is returned. If the request passes the precheck, the `DryRunOperation` error code is returned.
78018
78781
  # * **false** (default): sends the request. If the request passes the precheck, a 2xx HTTP status code is returned and the operation is performed.
78019
78782
  self.dry_run = dry_run
78783
+ self.ip_origin = ip_origin
78020
78784
  # The number of entries to return on each page. Valid values: **1** to **100**. Default value: **20**.
78021
78785
  self.max_results = max_results
78022
78786
  # The ID of the NAT gateway.
@@ -78064,6 +78828,8 @@ class ListNatIpsRequest(TeaModel):
78064
78828
  result['ClientToken'] = self.client_token
78065
78829
  if self.dry_run is not None:
78066
78830
  result['DryRun'] = self.dry_run
78831
+ if self.ip_origin is not None:
78832
+ result['IpOrigin'] = self.ip_origin
78067
78833
  if self.max_results is not None:
78068
78834
  result['MaxResults'] = self.max_results
78069
78835
  if self.nat_gateway_id is not None:
@@ -78096,6 +78862,8 @@ class ListNatIpsRequest(TeaModel):
78096
78862
  self.client_token = m.get('ClientToken')
78097
78863
  if m.get('DryRun') is not None:
78098
78864
  self.dry_run = m.get('DryRun')
78865
+ if m.get('IpOrigin') is not None:
78866
+ self.ip_origin = m.get('IpOrigin')
78099
78867
  if m.get('MaxResults') is not None:
78100
78868
  self.max_results = m.get('MaxResults')
78101
78869
  if m.get('NatGatewayId') is not None:
@@ -78317,6 +79085,213 @@ class ListNatIpsResponse(TeaModel):
78317
79085
  return self
78318
79086
 
78319
79087
 
79088
+ class ListPhysicalConnectionFeaturesRequest(TeaModel):
79089
+ def __init__(
79090
+ self,
79091
+ client_token: str = None,
79092
+ owner_account: str = None,
79093
+ owner_id: int = None,
79094
+ physical_connection_id: str = None,
79095
+ region_id: str = None,
79096
+ resource_owner_account: str = None,
79097
+ resource_owner_id: int = None,
79098
+ ):
79099
+ # The client token that is used to ensure the idempotence of the request.
79100
+ #
79101
+ # You can use the client to generate the token, but you must make sure that the token is unique among different requests. The token can contain only ASCII characters.
79102
+ #
79103
+ # > If you do not specify this parameter, the system automatically uses the **RequestId** as the **ClientToken**. The **RequestId** may be different.
79104
+ self.client_token = client_token
79105
+ self.owner_account = owner_account
79106
+ self.owner_id = owner_id
79107
+ # The ID of the Express Connect circuit.
79108
+ #
79109
+ # This parameter is required.
79110
+ self.physical_connection_id = physical_connection_id
79111
+ # The region ID of the Express Connect circuit.
79112
+ #
79113
+ # You can call the [DescribeRegions](https://help.aliyun.com/document_detail/36063.html) operation to query the region list.
79114
+ #
79115
+ # This parameter is required.
79116
+ self.region_id = region_id
79117
+ self.resource_owner_account = resource_owner_account
79118
+ self.resource_owner_id = resource_owner_id
79119
+
79120
+ def validate(self):
79121
+ pass
79122
+
79123
+ def to_map(self):
79124
+ _map = super().to_map()
79125
+ if _map is not None:
79126
+ return _map
79127
+
79128
+ result = dict()
79129
+ if self.client_token is not None:
79130
+ result['ClientToken'] = self.client_token
79131
+ if self.owner_account is not None:
79132
+ result['OwnerAccount'] = self.owner_account
79133
+ if self.owner_id is not None:
79134
+ result['OwnerId'] = self.owner_id
79135
+ if self.physical_connection_id is not None:
79136
+ result['PhysicalConnectionId'] = self.physical_connection_id
79137
+ if self.region_id is not None:
79138
+ result['RegionId'] = self.region_id
79139
+ if self.resource_owner_account is not None:
79140
+ result['ResourceOwnerAccount'] = self.resource_owner_account
79141
+ if self.resource_owner_id is not None:
79142
+ result['ResourceOwnerId'] = self.resource_owner_id
79143
+ return result
79144
+
79145
+ def from_map(self, m: dict = None):
79146
+ m = m or dict()
79147
+ if m.get('ClientToken') is not None:
79148
+ self.client_token = m.get('ClientToken')
79149
+ if m.get('OwnerAccount') is not None:
79150
+ self.owner_account = m.get('OwnerAccount')
79151
+ if m.get('OwnerId') is not None:
79152
+ self.owner_id = m.get('OwnerId')
79153
+ if m.get('PhysicalConnectionId') is not None:
79154
+ self.physical_connection_id = m.get('PhysicalConnectionId')
79155
+ if m.get('RegionId') is not None:
79156
+ self.region_id = m.get('RegionId')
79157
+ if m.get('ResourceOwnerAccount') is not None:
79158
+ self.resource_owner_account = m.get('ResourceOwnerAccount')
79159
+ if m.get('ResourceOwnerId') is not None:
79160
+ self.resource_owner_id = m.get('ResourceOwnerId')
79161
+ return self
79162
+
79163
+
79164
+ class ListPhysicalConnectionFeaturesResponseBodyPhysicalConnectionFeatures(TeaModel):
79165
+ def __init__(
79166
+ self,
79167
+ feature_key: str = None,
79168
+ feature_value: str = None,
79169
+ ):
79170
+ # The feature key of the Express Connect circuit. Valid values:
79171
+ #
79172
+ # * **SubifRateLimit**: subinterface throttling
79173
+ # * **BFD Capability**: Bidirectional Forwarding Detection (BFD)
79174
+ # * **DualStack**: Dual stack
79175
+ # * **CEN**: When a virtual border router (VBR) is attached to a Cloud Enterprise Network (CEN) instance and BGP routes are advertised on the user side, attributes such as **as-path** and **community** are carried.
79176
+ # * **CENv6**: When a VBR is attached to an IPv6 CEN instance and BGP routes are advertised on the user side, attributes such as **as-path** and **community** are carried.
79177
+ # * **QOS**: The device supports configuring QOS policies on physical ports.
79178
+ # * **MSHA**: The device supports fast switching groups between two VBRs.
79179
+ # * **MULTI_MS_HA**: The device supports a maximum of eight VBRs that can be added to the same ECR.
79180
+ self.feature_key = feature_key
79181
+ # The feature value of the Express Connect circuit. Valid values:
79182
+ #
79183
+ # * **OK**: Supported
79184
+ # * **NOK**: Not supported
79185
+ self.feature_value = feature_value
79186
+
79187
+ def validate(self):
79188
+ pass
79189
+
79190
+ def to_map(self):
79191
+ _map = super().to_map()
79192
+ if _map is not None:
79193
+ return _map
79194
+
79195
+ result = dict()
79196
+ if self.feature_key is not None:
79197
+ result['FeatureKey'] = self.feature_key
79198
+ if self.feature_value is not None:
79199
+ result['FeatureValue'] = self.feature_value
79200
+ return result
79201
+
79202
+ def from_map(self, m: dict = None):
79203
+ m = m or dict()
79204
+ if m.get('FeatureKey') is not None:
79205
+ self.feature_key = m.get('FeatureKey')
79206
+ if m.get('FeatureValue') is not None:
79207
+ self.feature_value = m.get('FeatureValue')
79208
+ return self
79209
+
79210
+
79211
+ class ListPhysicalConnectionFeaturesResponseBody(TeaModel):
79212
+ def __init__(
79213
+ self,
79214
+ physical_connection_features: List[ListPhysicalConnectionFeaturesResponseBodyPhysicalConnectionFeatures] = None,
79215
+ request_id: str = None,
79216
+ ):
79217
+ # The list of Express Connect circuit features.
79218
+ self.physical_connection_features = physical_connection_features
79219
+ # The request ID.
79220
+ self.request_id = request_id
79221
+
79222
+ def validate(self):
79223
+ if self.physical_connection_features:
79224
+ for k in self.physical_connection_features:
79225
+ if k:
79226
+ k.validate()
79227
+
79228
+ def to_map(self):
79229
+ _map = super().to_map()
79230
+ if _map is not None:
79231
+ return _map
79232
+
79233
+ result = dict()
79234
+ result['PhysicalConnectionFeatures'] = []
79235
+ if self.physical_connection_features is not None:
79236
+ for k in self.physical_connection_features:
79237
+ result['PhysicalConnectionFeatures'].append(k.to_map() if k else None)
79238
+ if self.request_id is not None:
79239
+ result['RequestId'] = self.request_id
79240
+ return result
79241
+
79242
+ def from_map(self, m: dict = None):
79243
+ m = m or dict()
79244
+ self.physical_connection_features = []
79245
+ if m.get('PhysicalConnectionFeatures') is not None:
79246
+ for k in m.get('PhysicalConnectionFeatures'):
79247
+ temp_model = ListPhysicalConnectionFeaturesResponseBodyPhysicalConnectionFeatures()
79248
+ self.physical_connection_features.append(temp_model.from_map(k))
79249
+ if m.get('RequestId') is not None:
79250
+ self.request_id = m.get('RequestId')
79251
+ return self
79252
+
79253
+
79254
+ class ListPhysicalConnectionFeaturesResponse(TeaModel):
79255
+ def __init__(
79256
+ self,
79257
+ headers: Dict[str, str] = None,
79258
+ status_code: int = None,
79259
+ body: ListPhysicalConnectionFeaturesResponseBody = None,
79260
+ ):
79261
+ self.headers = headers
79262
+ self.status_code = status_code
79263
+ self.body = body
79264
+
79265
+ def validate(self):
79266
+ if self.body:
79267
+ self.body.validate()
79268
+
79269
+ def to_map(self):
79270
+ _map = super().to_map()
79271
+ if _map is not None:
79272
+ return _map
79273
+
79274
+ result = dict()
79275
+ if self.headers is not None:
79276
+ result['headers'] = self.headers
79277
+ if self.status_code is not None:
79278
+ result['statusCode'] = self.status_code
79279
+ if self.body is not None:
79280
+ result['body'] = self.body.to_map()
79281
+ return result
79282
+
79283
+ def from_map(self, m: dict = None):
79284
+ m = m or dict()
79285
+ if m.get('headers') is not None:
79286
+ self.headers = m.get('headers')
79287
+ if m.get('statusCode') is not None:
79288
+ self.status_code = m.get('statusCode')
79289
+ if m.get('body') is not None:
79290
+ temp_model = ListPhysicalConnectionFeaturesResponseBody()
79291
+ self.body = temp_model.from_map(m['body'])
79292
+ return self
79293
+
79294
+
78320
79295
  class ListPrefixListsRequestTags(TeaModel):
78321
79296
  def __init__(
78322
79297
  self,
@@ -80404,6 +81379,7 @@ class ListTrafficMirrorFiltersResponseBodyTrafficMirrorFiltersEgressRules(TeaMod
80404
81379
  self.destination_cidr_block = destination_cidr_block
80405
81380
  # The destination port range of the outbound traffic.
80406
81381
  self.destination_port_range = destination_port_range
81382
+ # The version of IP protocol.
80407
81383
  self.ip_version = ip_version
80408
81384
  # The priority of the outbound rule. A smaller value indicates a higher priority.
80409
81385
  self.priority = priority
@@ -80524,6 +81500,7 @@ class ListTrafficMirrorFiltersResponseBodyTrafficMirrorFiltersIngressRules(TeaMo
80524
81500
  self.destination_cidr_block = destination_cidr_block
80525
81501
  # The destination port range of the inbound traffic.
80526
81502
  self.destination_port_range = destination_port_range
81503
+ # The version of IP protocol.
80527
81504
  self.ip_version = ip_version
80528
81505
  # The priority of the inbound rule. A smaller value indicates a higher priority.
80529
81506
  self.priority = priority
@@ -82729,7 +83706,7 @@ class ListVpcGatewayEndpointsRequest(TeaModel):
82729
83706
  #
82730
83707
  # The name must be 1 to 128 characters in length.
82731
83708
  self.endpoint_name = endpoint_name
82732
- # The number of entries per page. Valid values: **1** to **100**. Default value: **20**.
83709
+ # The number of entries to return per page. Valid values: **1** to **100**. Default value: **20**.
82733
83710
  self.max_results = max_results
82734
83711
  # The pagination token that is used in the next request to retrieve a new page of results. Valid values:
82735
83712
  #
@@ -82752,6 +83729,7 @@ class ListVpcGatewayEndpointsRequest(TeaModel):
82752
83729
  self.service_name = service_name
82753
83730
  # The tag list.
82754
83731
  self.tags = tags
83732
+ # The ID of the virtual private cloud (VPC) to which the gateway endpoint belongs.
82755
83733
  self.vpc_id = vpc_id
82756
83734
 
82757
83735
  def validate(self):
@@ -86044,6 +87022,10 @@ class ModifyFlowLogAttributeRequest(TeaModel):
86044
87022
  #
86045
87023
  # The name must be 1 to 128 characters in length and cannot start with `http://` or `https://`.
86046
87024
  self.flow_log_name = flow_log_name
87025
+ # The version of the IP address. Valid values:
87026
+ #
87027
+ # * **IPV4**: the IPv4 address.
87028
+ # * **DualStack**: includes IPv4 and IPv6 address
86047
87029
  self.ip_version = ip_version
86048
87030
  self.owner_account = owner_account
86049
87031
  self.owner_id = owner_id
@@ -92764,6 +93746,7 @@ class ModifyVirtualBorderRouterAttributeRequest(TeaModel):
92764
93746
  local_ipv_6gateway_ip: str = None,
92765
93747
  min_rx_interval: int = None,
92766
93748
  min_tx_interval: int = None,
93749
+ mtu: int = None,
92767
93750
  name: str = None,
92768
93751
  owner_account: str = None,
92769
93752
  owner_id: int = None,
@@ -92821,6 +93804,7 @@ class ModifyVirtualBorderRouterAttributeRequest(TeaModel):
92821
93804
  self.min_rx_interval = min_rx_interval
92822
93805
  # The time interval to send BFD packets. Valid values: **200 to 1000**. Unit: milliseconds.
92823
93806
  self.min_tx_interval = min_tx_interval
93807
+ self.mtu = mtu
92824
93808
  # The name of the VBR.
92825
93809
  #
92826
93810
  # The name must be 2 to 128 characters in length, and can contain letters, digits, underscores (_), and hyphens (-). The name must start with a letter. It cannot start with `http://` or `https://`.
@@ -92897,6 +93881,8 @@ class ModifyVirtualBorderRouterAttributeRequest(TeaModel):
92897
93881
  result['MinRxInterval'] = self.min_rx_interval
92898
93882
  if self.min_tx_interval is not None:
92899
93883
  result['MinTxInterval'] = self.min_tx_interval
93884
+ if self.mtu is not None:
93885
+ result['Mtu'] = self.mtu
92900
93886
  if self.name is not None:
92901
93887
  result['Name'] = self.name
92902
93888
  if self.owner_account is not None:
@@ -92949,6 +93935,8 @@ class ModifyVirtualBorderRouterAttributeRequest(TeaModel):
92949
93935
  self.min_rx_interval = m.get('MinRxInterval')
92950
93936
  if m.get('MinTxInterval') is not None:
92951
93937
  self.min_tx_interval = m.get('MinTxInterval')
93938
+ if m.get('Mtu') is not None:
93939
+ self.mtu = m.get('Mtu')
92952
93940
  if m.get('Name') is not None:
92953
93941
  self.name = m.get('Name')
92954
93942
  if m.get('OwnerAccount') is not None:
@@ -93261,7 +94249,7 @@ class ModifyVpcPrefixListRequestAddPrefixListEntry(TeaModel):
93261
94249
  self.cidr = cidr
93262
94250
  # The description of the CIDR block to be added to the prefix list.
93263
94251
  #
93264
- # The description must be 1 to 256 characters in length, and cannot start with `http://` or `https://`.
94252
+ # The description must be 1 to 128 characters in length, and cannot start with `http://` or `https://`.
93265
94253
  self.description = description
93266
94254
 
93267
94255
  def validate(self):
@@ -98303,9 +99291,17 @@ class OpenPublicIpAddressPoolServiceRequest(TeaModel):
98303
99291
  resource_owner_account: str = None,
98304
99292
  resource_owner_id: int = None,
98305
99293
  ):
99294
+ # The client token that is used to ensure the idempotence of the request.
99295
+ #
99296
+ # You can use the client to generate the token, but you must make sure that the token is unique among different requests. The client token can contain only ASCII characters.
99297
+ #
99298
+ # > If you do not specify this parameter, the system automatically uses the **request ID** as the **client token**. The **request ID** may be different for each request.
98306
99299
  self.client_token = client_token
98307
99300
  self.owner_account = owner_account
98308
99301
  self.owner_id = owner_id
99302
+ # The ID of the region.
99303
+ # Call [DescribeRegion](https://www.alibabacloud.com/help/en/vpc/developer-reference/api-vpc-2016-04-28-describeregions?spm=a2c63.p38356.0.i2) to get the region ID.
99304
+ #
98309
99305
  # This parameter is required.
98310
99306
  self.region_id = region_id
98311
99307
  self.resource_owner_account = resource_owner_account
@@ -98358,8 +99354,11 @@ class OpenPublicIpAddressPoolServiceResponseBody(TeaModel):
98358
99354
  message: str = None,
98359
99355
  request_id: str = None,
98360
99356
  ):
99357
+ # The error code.
98361
99358
  self.code = code
99359
+ # The response messages.
98362
99360
  self.message = message
99361
+ # The request ID.
98363
99362
  self.request_id = request_id
98364
99363
 
98365
99364
  def validate(self):