alibabacloud-vpc20160428 6.2.2__py3-none-any.whl → 6.3.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.
@@ -2288,6 +2288,235 @@ class AllocateEipSegmentAddressResponse(TeaModel):
2288
2288
  return self
2289
2289
 
2290
2290
 
2291
+ class AllocateIpv6AddressRequestTag(TeaModel):
2292
+ def __init__(
2293
+ self,
2294
+ key: str = None,
2295
+ value: str = None,
2296
+ ):
2297
+ self.key = key
2298
+ self.value = value
2299
+
2300
+ def validate(self):
2301
+ pass
2302
+
2303
+ def to_map(self):
2304
+ _map = super().to_map()
2305
+ if _map is not None:
2306
+ return _map
2307
+
2308
+ result = dict()
2309
+ if self.key is not None:
2310
+ result['Key'] = self.key
2311
+ if self.value is not None:
2312
+ result['Value'] = self.value
2313
+ return result
2314
+
2315
+ def from_map(self, m: dict = None):
2316
+ m = m or dict()
2317
+ if m.get('Key') is not None:
2318
+ self.key = m.get('Key')
2319
+ if m.get('Value') is not None:
2320
+ self.value = m.get('Value')
2321
+ return self
2322
+
2323
+
2324
+ class AllocateIpv6AddressRequest(TeaModel):
2325
+ def __init__(
2326
+ self,
2327
+ client_token: str = None,
2328
+ dry_run: bool = None,
2329
+ ipv_6address: str = None,
2330
+ ipv_6address_description: str = None,
2331
+ ipv_6address_name: str = None,
2332
+ owner_account: str = None,
2333
+ owner_id: int = None,
2334
+ region_id: str = None,
2335
+ resource_group_id: str = None,
2336
+ resource_owner_account: str = None,
2337
+ resource_owner_id: int = None,
2338
+ tag: List[AllocateIpv6AddressRequestTag] = None,
2339
+ v_switch_id: str = None,
2340
+ ):
2341
+ self.client_token = client_token
2342
+ self.dry_run = dry_run
2343
+ self.ipv_6address = ipv_6address
2344
+ self.ipv_6address_description = ipv_6address_description
2345
+ self.ipv_6address_name = ipv_6address_name
2346
+ self.owner_account = owner_account
2347
+ self.owner_id = owner_id
2348
+ self.region_id = region_id
2349
+ self.resource_group_id = resource_group_id
2350
+ self.resource_owner_account = resource_owner_account
2351
+ self.resource_owner_id = resource_owner_id
2352
+ self.tag = tag
2353
+ self.v_switch_id = v_switch_id
2354
+
2355
+ def validate(self):
2356
+ if self.tag:
2357
+ for k in self.tag:
2358
+ if k:
2359
+ k.validate()
2360
+
2361
+ def to_map(self):
2362
+ _map = super().to_map()
2363
+ if _map is not None:
2364
+ return _map
2365
+
2366
+ result = dict()
2367
+ if self.client_token is not None:
2368
+ result['ClientToken'] = self.client_token
2369
+ if self.dry_run is not None:
2370
+ result['DryRun'] = self.dry_run
2371
+ if self.ipv_6address is not None:
2372
+ result['Ipv6Address'] = self.ipv_6address
2373
+ if self.ipv_6address_description is not None:
2374
+ result['Ipv6AddressDescription'] = self.ipv_6address_description
2375
+ if self.ipv_6address_name is not None:
2376
+ result['Ipv6AddressName'] = self.ipv_6address_name
2377
+ if self.owner_account is not None:
2378
+ result['OwnerAccount'] = self.owner_account
2379
+ if self.owner_id is not None:
2380
+ result['OwnerId'] = self.owner_id
2381
+ if self.region_id is not None:
2382
+ result['RegionId'] = self.region_id
2383
+ if self.resource_group_id is not None:
2384
+ result['ResourceGroupId'] = self.resource_group_id
2385
+ if self.resource_owner_account is not None:
2386
+ result['ResourceOwnerAccount'] = self.resource_owner_account
2387
+ if self.resource_owner_id is not None:
2388
+ result['ResourceOwnerId'] = self.resource_owner_id
2389
+ result['Tag'] = []
2390
+ if self.tag is not None:
2391
+ for k in self.tag:
2392
+ result['Tag'].append(k.to_map() if k else None)
2393
+ if self.v_switch_id is not None:
2394
+ result['VSwitchId'] = self.v_switch_id
2395
+ return result
2396
+
2397
+ def from_map(self, m: dict = None):
2398
+ m = m or dict()
2399
+ if m.get('ClientToken') is not None:
2400
+ self.client_token = m.get('ClientToken')
2401
+ if m.get('DryRun') is not None:
2402
+ self.dry_run = m.get('DryRun')
2403
+ if m.get('Ipv6Address') is not None:
2404
+ self.ipv_6address = m.get('Ipv6Address')
2405
+ if m.get('Ipv6AddressDescription') is not None:
2406
+ self.ipv_6address_description = m.get('Ipv6AddressDescription')
2407
+ if m.get('Ipv6AddressName') is not None:
2408
+ self.ipv_6address_name = m.get('Ipv6AddressName')
2409
+ if m.get('OwnerAccount') is not None:
2410
+ self.owner_account = m.get('OwnerAccount')
2411
+ if m.get('OwnerId') is not None:
2412
+ self.owner_id = m.get('OwnerId')
2413
+ if m.get('RegionId') is not None:
2414
+ self.region_id = m.get('RegionId')
2415
+ if m.get('ResourceGroupId') is not None:
2416
+ self.resource_group_id = m.get('ResourceGroupId')
2417
+ if m.get('ResourceOwnerAccount') is not None:
2418
+ self.resource_owner_account = m.get('ResourceOwnerAccount')
2419
+ if m.get('ResourceOwnerId') is not None:
2420
+ self.resource_owner_id = m.get('ResourceOwnerId')
2421
+ self.tag = []
2422
+ if m.get('Tag') is not None:
2423
+ for k in m.get('Tag'):
2424
+ temp_model = AllocateIpv6AddressRequestTag()
2425
+ self.tag.append(temp_model.from_map(k))
2426
+ if m.get('VSwitchId') is not None:
2427
+ self.v_switch_id = m.get('VSwitchId')
2428
+ return self
2429
+
2430
+
2431
+ class AllocateIpv6AddressResponseBody(TeaModel):
2432
+ def __init__(
2433
+ self,
2434
+ ipv_6address: str = None,
2435
+ ipv_6address_id: str = None,
2436
+ request_id: str = None,
2437
+ resource_group_id: str = None,
2438
+ ):
2439
+ self.ipv_6address = ipv_6address
2440
+ self.ipv_6address_id = ipv_6address_id
2441
+ self.request_id = request_id
2442
+ self.resource_group_id = resource_group_id
2443
+
2444
+ def validate(self):
2445
+ pass
2446
+
2447
+ def to_map(self):
2448
+ _map = super().to_map()
2449
+ if _map is not None:
2450
+ return _map
2451
+
2452
+ result = dict()
2453
+ if self.ipv_6address is not None:
2454
+ result['Ipv6Address'] = self.ipv_6address
2455
+ if self.ipv_6address_id is not None:
2456
+ result['Ipv6AddressId'] = self.ipv_6address_id
2457
+ if self.request_id is not None:
2458
+ result['RequestId'] = self.request_id
2459
+ if self.resource_group_id is not None:
2460
+ result['ResourceGroupId'] = self.resource_group_id
2461
+ return result
2462
+
2463
+ def from_map(self, m: dict = None):
2464
+ m = m or dict()
2465
+ if m.get('Ipv6Address') is not None:
2466
+ self.ipv_6address = m.get('Ipv6Address')
2467
+ if m.get('Ipv6AddressId') is not None:
2468
+ self.ipv_6address_id = m.get('Ipv6AddressId')
2469
+ if m.get('RequestId') is not None:
2470
+ self.request_id = m.get('RequestId')
2471
+ if m.get('ResourceGroupId') is not None:
2472
+ self.resource_group_id = m.get('ResourceGroupId')
2473
+ return self
2474
+
2475
+
2476
+ class AllocateIpv6AddressResponse(TeaModel):
2477
+ def __init__(
2478
+ self,
2479
+ headers: Dict[str, str] = None,
2480
+ status_code: int = None,
2481
+ body: AllocateIpv6AddressResponseBody = None,
2482
+ ):
2483
+ self.headers = headers
2484
+ self.status_code = status_code
2485
+ self.body = body
2486
+
2487
+ def validate(self):
2488
+ self.validate_required(self.headers, 'headers')
2489
+ self.validate_required(self.status_code, 'status_code')
2490
+ self.validate_required(self.body, 'body')
2491
+ if self.body:
2492
+ self.body.validate()
2493
+
2494
+ def to_map(self):
2495
+ _map = super().to_map()
2496
+ if _map is not None:
2497
+ return _map
2498
+
2499
+ result = dict()
2500
+ if self.headers is not None:
2501
+ result['headers'] = self.headers
2502
+ if self.status_code is not None:
2503
+ result['statusCode'] = self.status_code
2504
+ if self.body is not None:
2505
+ result['body'] = self.body.to_map()
2506
+ return result
2507
+
2508
+ def from_map(self, m: dict = None):
2509
+ m = m or dict()
2510
+ if m.get('headers') is not None:
2511
+ self.headers = m.get('headers')
2512
+ if m.get('statusCode') is not None:
2513
+ self.status_code = m.get('statusCode')
2514
+ if m.get('body') is not None:
2515
+ temp_model = AllocateIpv6AddressResponseBody()
2516
+ self.body = temp_model.from_map(m['body'])
2517
+ return self
2518
+
2519
+
2291
2520
  class AllocateIpv6InternetBandwidthRequest(TeaModel):
2292
2521
  def __init__(
2293
2522
  self,
@@ -13841,6 +14070,7 @@ class CreatePublicIpAddressPoolRequest(TeaModel):
13841
14070
  resource_group_id: str = None,
13842
14071
  resource_owner_account: str = None,
13843
14072
  resource_owner_id: int = None,
14073
+ security_protection_types: List[str] = None,
13844
14074
  tag: List[CreatePublicIpAddressPoolRequestTag] = None,
13845
14075
  zones: List[str] = None,
13846
14076
  ):
@@ -13894,6 +14124,7 @@ class CreatePublicIpAddressPoolRequest(TeaModel):
13894
14124
  self.resource_group_id = resource_group_id
13895
14125
  self.resource_owner_account = resource_owner_account
13896
14126
  self.resource_owner_id = resource_owner_id
14127
+ self.security_protection_types = security_protection_types
13897
14128
  # The tag of the resource.
13898
14129
  self.tag = tag
13899
14130
  # The zone of the IP address pool. If you set **BizType** to **CloudBox**, this parameter is required.
@@ -13935,6 +14166,8 @@ class CreatePublicIpAddressPoolRequest(TeaModel):
13935
14166
  result['ResourceOwnerAccount'] = self.resource_owner_account
13936
14167
  if self.resource_owner_id is not None:
13937
14168
  result['ResourceOwnerId'] = self.resource_owner_id
14169
+ if self.security_protection_types is not None:
14170
+ result['SecurityProtectionTypes'] = self.security_protection_types
13938
14171
  result['Tag'] = []
13939
14172
  if self.tag is not None:
13940
14173
  for k in self.tag:
@@ -13969,6 +14202,8 @@ class CreatePublicIpAddressPoolRequest(TeaModel):
13969
14202
  self.resource_owner_account = m.get('ResourceOwnerAccount')
13970
14203
  if m.get('ResourceOwnerId') is not None:
13971
14204
  self.resource_owner_id = m.get('ResourceOwnerId')
14205
+ if m.get('SecurityProtectionTypes') is not None:
14206
+ self.security_protection_types = m.get('SecurityProtectionTypes')
13972
14207
  self.tag = []
13973
14208
  if m.get('Tag') is not None:
13974
14209
  for k in m.get('Tag'):
@@ -19810,14 +20045,22 @@ class CreateVpnAttachmentRequest(TeaModel):
19810
20045
  # * **true** (default)
19811
20046
  # * **false**\
19812
20047
  self.auto_config_route = auto_config_route
19813
- # The Border Gateway Protocol (BGP) configuration:
20048
+ # The Border Gateway Protocol (BGP) configurations:
19814
20049
  #
19815
20050
  # * **BgpConfig.EnableBgp**: specifies whether to enable BGP. Valid values: **true** and **false**. Default value: false.
20051
+ #
19816
20052
  # * **BgpConfig.LocalAsn**: the ASN on the Alibaba Cloud side. Valid values: **1** to **4294967295**. Default value: **45104**.
19817
- # * **BgpConfig.TunnelCidr**: the CIDR block of the IPsec tunnel. The CIDR block must belong to 169.254.0.0/16. The subnet mask of the CIDR block must be 30 bits in length.
19818
- # * **LocalBgpIp:** the BGP IP address on the Alibaba Cloud side. This IP address must fall within the CIDR block of the IPsec tunnel.
19819
- # >- Before you configure BGP, we recommend that you learn about how BGP works and the limits. For more information, see [BGP dynamic routing ](~~170235~~).
19820
- # >- We recommend that you use a private ASN to establish a connection with Alibaba Cloud over BGP. Refer to the relevant documentation for the private ASN range.
20053
+ #
20054
+ # You can enter the ASN in two segments. Separate the first 16 bits of the ASN from the remaining 16 bits with a period (.). Enter the number in each segment in decimal format.
20055
+ #
20056
+ # For example, if you enter 123.456, the ASN is: 123 × 65536 + 456 = 8061384.
20057
+ #
20058
+ # * **BgpConfig.TunnelCidr**: the CIDR block of the IPsec tunnel. The CIDR block falls within 169.254.0.0/16. The subnet mask of the CIDR block must be 30 bits in length.
20059
+ #
20060
+ # * **LocalBgpIp:** the BGP IP address on the Alibaba Cloud side. This IP address must fall within the CIDR block range of the IPsec tunnel.
20061
+ #
20062
+ # > * Before you configure BGP, we recommend that you learn about how BGP works and the limits. For more information, see [BGP dynamic routing ](~~170235~~).
20063
+ # > * We recommend that you use a private ASN to establish a connection with Alibaba Cloud over BGP. Refer to the relevant documentation for the private ASN range.
19821
20064
  self.bgp_config = bgp_config
19822
20065
  # The client token that is used to ensure the idempotence of the request.
19823
20066
  #
@@ -19866,9 +20109,7 @@ class CreateVpnAttachmentRequest(TeaModel):
19866
20109
  # * It must be 1 to 100 characters in length, and can contain letters, digits, and the following characters: ``~!`@#$%^&*()_-+={}[]|;:\",.<>/?``
19867
20110
  # * If you do not specify a pre-shared key, the system generates a random 16-character string as the pre-shared key. You can call the [DescribeVpnConnection](~~448847~~) operation to query the pre-shared key that is generated by the system.
19868
20111
  #
19869
- # **\
19870
- #
19871
- # **Note** The pre-shared key of the IPsec-VPN connection must be the same as the authentication key of the data center. Otherwise, a connection cannot be established between the data center and the VPN gateway.
20112
+ # > The pre-shared key of the IPsec-VPN connection must be the same as the authentication key of the data center. Otherwise, a connection cannot be established between the data center and the VPN gateway.
19872
20113
  #
19873
20114
  # * **IkeConfig.IkeVersion**: the IKE version. Valid values: **ikev1** and **ikev2**. Default value: **ikev1**.
19874
20115
  #
@@ -19929,9 +20170,8 @@ class CreateVpnAttachmentRequest(TeaModel):
19929
20170
  self.remote_subnet = remote_subnet
19930
20171
  # The ID of the resource group to which the IPsec-VPN connection belongs.
19931
20172
  #
19932
- # - You can call the [ListResourceGroups](~~158855~~) operation to query the resource group list.
19933
- #
19934
- # - If you do not specify a resource group, the IPsec-VPN connection will belong to the default resource group after being created.
20173
+ # * You can call the [ListResourceGroups](~~158855~~) operation to query resource group IDs.
20174
+ # * If you do not specify a resource group ID, the IPsec-VPN connection belongs to the default resource group.
19935
20175
  self.resource_group_id = resource_group_id
19936
20176
  self.resource_owner_account = resource_owner_account
19937
20177
  self.resource_owner_id = resource_owner_id
@@ -20965,6 +21205,8 @@ class CreateVpnGatewayRequest(TeaModel):
20965
21205
  #
20966
21206
  # * **true**\
20967
21207
  # * **false** (default)
21208
+ #
21209
+ # > We recommend that you enable automatic payment. If you disable automatic payment, you must manually pay the bill for creating the VPN gateway.
20968
21210
  self.auto_pay = auto_pay
20969
21211
  # The maximum bandwidth of the VPN gateway. Unit: Mbit/s.
20970
21212
  #
@@ -21016,11 +21258,13 @@ class CreateVpnGatewayRequest(TeaModel):
21016
21258
  self.region_id = region_id
21017
21259
  # The ID of the resource group to which the VPN gateway belongs.
21018
21260
  #
21019
- # - You can call the [ListResourceGroups](~~158855~~) operation to query the resource group list.
21020
- # - If you do not specify a resource group, the VPN gateway will belong to the default resource group after being created.
21021
- # - After the VPN gateway is created, if you create an SSL server, SSL client certificate, IPsec server, or IPsec-VPN connection under the VPN gateway (when the IPsec-VPN connection is bound to the VPN gateway), these resources directly belong to the resource group to which the VPN gateway belongs and cannot be modified.
21261
+ # * You can call the [ListResourceGroups](~~158855~~) operation to query resource group IDs.
21262
+ #
21263
+ # * If you do not specify a resource group ID, the VPN gateway belongs to the default resource group.
21022
21264
  #
21023
- # If you change the resource group to which the VPN gateway belongs, the resource group to which the resource belongs will also be changed.
21265
+ # * After the VPN gateway is created, the following resources also belong to the resource group and you cannot change the resource group: SSL servers, SSL client certificates, IPsec servers, and IPsec-VPN connections.
21266
+ #
21267
+ # If you move the VPN gateway to a new resource group, the preceding resources are also moved to the new resource group.
21024
21268
  self.resource_group_id = resource_group_id
21025
21269
  self.resource_owner_account = resource_owner_account
21026
21270
  self.resource_owner_id = resource_owner_id
@@ -32028,9 +32272,9 @@ class DescribeCustomerGatewayResponseBodyTagsTag(TeaModel):
32028
32272
  key: str = None,
32029
32273
  value: str = None,
32030
32274
  ):
32031
- # The tag key.
32275
+ # The key of tag N.
32032
32276
  self.key = key
32033
- # The tag value.
32277
+ # The value of tag N.
32034
32278
  self.value = value
32035
32279
 
32036
32280
  def validate(self):
@@ -32126,7 +32370,7 @@ class DescribeCustomerGatewayResponseBody(TeaModel):
32126
32370
  self.request_id = request_id
32127
32371
  # The ID of the resource group to which the customer gateway belongs.
32128
32372
  #
32129
- # You can call the [ListResourceGroups](~~158855~~) operation to query the resource group information.
32373
+ # You can call the [ListResourceGroups](~~158855~~) operation to query resource groups.
32130
32374
  self.resource_group_id = resource_group_id
32131
32375
  # The list of tags added to the customer gateway.
32132
32376
  self.tags = tags
@@ -33073,16 +33317,16 @@ class DescribeEipAddressesRequest(TeaModel):
33073
33317
  self.allocation_id = allocation_id
33074
33318
  # The ID of the instance associated with the EIP.
33075
33319
  self.associated_instance_id = associated_instance_id
33076
- # The type of the cloud resource with which you want to associate the elastic IP address (EIP). Valid values:
33320
+ # The type of the cloud resource with which you want to associate the EIP. Valid values:
33077
33321
  #
33078
33322
  # * **EcsInstance** (default): an Elastic Compute Service (ECS) instance in a virtual private cloud (VPC).
33079
- # * **SlbInstance**: a Server Load Balancer (SLB) instance in a VPC.
33323
+ # * **SlbInstance**: a CLB instance in a VPC.
33080
33324
  # * **Nat**: a NAT gateway.
33081
- # * **HaVip**: a high-availability virtual IP address (HAVIP).
33082
- # * **NetworkInterface**: a secondary elastic network interface (ENI).
33325
+ # * **HaVip**: an HAVIP.
33326
+ # * **NetworkInterface**: a secondary ENI.
33083
33327
  # * **IpAddress**: an IP address.
33084
33328
  #
33085
- # > Each ECS instance, CLB instance, HAVIP, and IP address can be associated with only one EIP. A NAT gateway can be associated with multiple EIPs. The number of EIPs that you can associate with a secondary ENI depends on the association mode. For more information, see [EIP overview](~~72125~~).
33329
+ # > Each ECS instance, CLB instance, HAVIP, and IP address can be associated with only one EIP. A NAT gateway can be associated with multiple EIPs. The number of EIPs that you can associate with a secondary ENI depends on the association mode. For more information, see [Associate EIPs with and disassociate EIPs from cloud resources](~~72125~~).
33086
33330
  self.associated_instance_type = associated_instance_type
33087
33331
  # The billing method of the EIP. Valid values:
33088
33332
  #
@@ -33148,7 +33392,7 @@ class DescribeEipAddressesRequest(TeaModel):
33148
33392
  self.resource_group_id = resource_group_id
33149
33393
  self.resource_owner_account = resource_owner_account
33150
33394
  self.resource_owner_id = resource_owner_id
33151
- # Specifies whether Anti-DDoS Pro/Premium is activated. Valid value:
33395
+ # Specifies whether to activate Anti-DDoS Pro/Premium. Valid values:
33152
33396
  #
33153
33397
  # * **false**\
33154
33398
  # * **true**\
@@ -33513,14 +33757,14 @@ class DescribeEipAddressesResponseBodyEipAddressesEipAddress(TeaModel):
33513
33757
  self.bandwidth_package_bandwidth = bandwidth_package_bandwidth
33514
33758
  # The ID of the Internet Shared Bandwidth instance.
33515
33759
  self.bandwidth_package_id = bandwidth_package_id
33516
- # The bandwidth type. Only **CommonBandwidthPackage** may be returned, which indicates Internet Shared Bandwidth.
33760
+ # The type of the bandwidth. Only **CommonBandwidthPackage** may be returned, which indicates Internet Shared Bandwidth.
33517
33761
  self.bandwidth_package_type = bandwidth_package_type
33518
33762
  # The service type. Valid values:
33519
33763
  #
33520
33764
  # * **CloudBox** Only cloud box users can select this type.
33521
33765
  # * **Default** (default)
33522
33766
  self.biz_type = biz_type
33523
- # The service status of the EIP. Valid values:
33767
+ # The service state of the EIP. Valid values:
33524
33768
  #
33525
33769
  # * **Normal**\
33526
33770
  # * **FinancialLocked**\
@@ -33553,8 +33797,8 @@ class DescribeEipAddressesResponseBodyEipAddressesEipAddress(TeaModel):
33553
33797
  self.has_reservation_data = has_reservation_data
33554
33798
  # The line type. Valid values:
33555
33799
  #
33556
- # * **BGP**: BGP (Multi-ISP). All regions support BGP (Multi-ISP) EIPs.
33557
- # * **BGP_PRO**: BGP (Multi-ISP) Pro. BGP (Multi-ISP) Pro is supported only in the China (Hong Kong), Singapore, Japan (Tokyo), Malaysia (Kuala Lumpur), Philippines (Manila), Indonesia (Jakarta), and Thailand (Bangkok) regions.
33800
+ # * **BGP**: BGP (Multi-ISP). The BGP (Multi-ISP) line is supported in all regions.
33801
+ # * **BGP_PRO**: BGP (Multi-ISP) Pro lines. BGP (Multi-ISP) Pro line is supported only in the China (Hong Kong), Singapore, Japan (Tokyo), Malaysia (Kuala Lumpur), Philippines (Manila), Indonesia (Jakarta), and Thailand (Bangkok) regions.
33558
33802
  #
33559
33803
  # For more information about BGP (Multi-ISP) and BGP (Multi-ISP) Pro, see the [Line types](~~32321~~) section of the "What is EIP?" topic.
33560
33804
  #
@@ -33587,13 +33831,12 @@ class DescribeEipAddressesResponseBodyEipAddressesEipAddress(TeaModel):
33587
33831
  # * **PayByBandwidth**\
33588
33832
  # * **PayByTraffic**\
33589
33833
  self.internet_charge_type = internet_charge_type
33590
- # The IP address of the EIP.
33834
+ # The EIP.
33591
33835
  self.ip_address = ip_address
33592
33836
  # The association mode. Valid values:
33593
- #
33594
- # * **NAT**: NAT mode
33595
- # * **MULTI_BINDED**: multi-EIP-to-ENI mode
33596
- # * **BINDED**: cut-through mode
33837
+ # - **NAT**: NAT mode
33838
+ # - **MULTI_BINDED**: multi-EIP-to-ENI mode
33839
+ # - **BINDED**: cut-through mode
33597
33840
  self.mode = mode
33598
33841
  # The name of the EIP.
33599
33842
  self.name = name
@@ -33634,14 +33877,14 @@ class DescribeEipAddressesResponseBodyEipAddressesEipAddress(TeaModel):
33634
33877
  # * If an empty value is returned, it indicates that Anti-DDoS Origin Basic is used.
33635
33878
  # * If **AntiDDoS_Enhanced** is returned, it indicates that Anti-DDoS Pro/Premium is used.
33636
33879
  self.security_protection_types = security_protection_types
33637
- # The IDs of contiguous EIPs.
33880
+ # The ID of the contiguous EIP group.
33638
33881
  #
33639
33882
  # This value is returned only when you query contiguous EIPs.
33640
33883
  self.segment_instance_id = segment_instance_id
33641
33884
  # Indicates whether the resource is created by the service account. Valid values:
33642
33885
  #
33643
- # * **0**: no
33644
- # * **1**: yes
33886
+ # * **0**\
33887
+ # * **1**\
33645
33888
  self.service_managed = service_managed
33646
33889
  # The status of the EIP. Valid values:
33647
33890
  #
@@ -40699,7 +40942,7 @@ class DescribeIpv6GatewaysRequest(TeaModel):
40699
40942
  self.ipv_6gateway_id = ipv_6gateway_id
40700
40943
  # The name of the IPv6 gateway.
40701
40944
  #
40702
- # The name must be 2 to 256 characters in length, and can contain letters, digits, periods (.), underscores (\_), and hyphens (-). The name must start with a letter and cannot start with `http://` or `https://`.
40945
+ # The name must be 2 to 128 characters in length, and can contain letters, digits, periods (.), underscores (\_), and hyphens (-). It must start with a letter. The name must start with a letter and cannot start with `http://` or `https://`.
40703
40946
  self.name = name
40704
40947
  self.owner_account = owner_account
40705
40948
  self.owner_id = owner_id
@@ -40709,7 +40952,7 @@ class DescribeIpv6GatewaysRequest(TeaModel):
40709
40952
  self.page_size = page_size
40710
40953
  # The ID of the region in which the IPv6 gateway is deployed. You can call the [DescribeRegions](~~36063~~) operation to query the region ID.
40711
40954
  self.region_id = region_id
40712
- # The ID of the resource group.
40955
+ # The ID of the resource group to which the IPv6 gateway belongs.
40713
40956
  self.resource_group_id = resource_group_id
40714
40957
  self.resource_owner_account = resource_owner_account
40715
40958
  self.resource_owner_id = resource_owner_id
@@ -40876,10 +41119,11 @@ class DescribeIpv6GatewaysResponseBodyIpv6GatewaysIpv6Gateway(TeaModel):
40876
41119
  tags: DescribeIpv6GatewaysResponseBodyIpv6GatewaysIpv6GatewayTags = None,
40877
41120
  vpc_id: str = None,
40878
41121
  ):
40879
- # The state of the IPv6 gateway. Valid values:
41122
+ # The status of the IPv6 gateway. Valid values:
40880
41123
  #
40881
- # * **Normal**: The IPv6 gateway runs as expected.
40882
- # * **FinancialLocked:** The IPv6 gateway is locked due to overdue payments.
41124
+ # * **Normal**\
41125
+ # * **FinancialLocked**\
41126
+ # * **SecurityLocked**\
40883
41127
  self.business_status = business_status
40884
41128
  # The time when the IPv6 gateway was created.
40885
41129
  self.creation_time = creation_time
@@ -40897,12 +41141,12 @@ class DescribeIpv6GatewaysResponseBodyIpv6GatewaysIpv6Gateway(TeaModel):
40897
41141
  self.name = name
40898
41142
  # The ID of the region in which the IPv6 gateway is deployed.
40899
41143
  self.region_id = region_id
40900
- # The ID of the resource group.
41144
+ # The resource group ID.
40901
41145
  self.resource_group_id = resource_group_id
40902
41146
  # The status of the IPv6 gateway. Valid values:
40903
41147
  #
40904
- # * **Pending**: The IPv6 gateway is being configured.
40905
- # * **Available**: The IPv6 gateway is available.
41148
+ # * **Pending**\
41149
+ # * **Available**\
40906
41150
  self.status = status
40907
41151
  # The information about the tags.
40908
41152
  self.tags = tags
@@ -45538,6 +45782,7 @@ class DescribeRouteEntryListResponseBodyRouteEntrysRouteEntry(TeaModel):
45538
45782
  gmt_modified: str = None,
45539
45783
  ip_version: str = None,
45540
45784
  next_hops: DescribeRouteEntryListResponseBodyRouteEntrysRouteEntryNextHops = None,
45785
+ origin: str = None,
45541
45786
  route_entry_id: str = None,
45542
45787
  route_entry_name: str = None,
45543
45788
  route_table_id: str = None,
@@ -45558,6 +45803,7 @@ class DescribeRouteEntryListResponseBodyRouteEntrysRouteEntry(TeaModel):
45558
45803
  self.ip_version = ip_version
45559
45804
  # The information about the next hop.
45560
45805
  self.next_hops = next_hops
45806
+ self.origin = origin
45561
45807
  # The ID of the route.
45562
45808
  self.route_entry_id = route_entry_id
45563
45809
  # The route name.
@@ -45602,6 +45848,8 @@ class DescribeRouteEntryListResponseBodyRouteEntrysRouteEntry(TeaModel):
45602
45848
  result['IpVersion'] = self.ip_version
45603
45849
  if self.next_hops is not None:
45604
45850
  result['NextHops'] = self.next_hops.to_map()
45851
+ if self.origin is not None:
45852
+ result['Origin'] = self.origin
45605
45853
  if self.route_entry_id is not None:
45606
45854
  result['RouteEntryId'] = self.route_entry_id
45607
45855
  if self.route_entry_name is not None:
@@ -45629,6 +45877,8 @@ class DescribeRouteEntryListResponseBodyRouteEntrysRouteEntry(TeaModel):
45629
45877
  if m.get('NextHops') is not None:
45630
45878
  temp_model = DescribeRouteEntryListResponseBodyRouteEntrysRouteEntryNextHops()
45631
45879
  self.next_hops = temp_model.from_map(m['NextHops'])
45880
+ if m.get('Origin') is not None:
45881
+ self.origin = m.get('Origin')
45632
45882
  if m.get('RouteEntryId') is not None:
45633
45883
  self.route_entry_id = m.get('RouteEntryId')
45634
45884
  if m.get('RouteEntryName') is not None:
@@ -46081,6 +46331,7 @@ class DescribeRouteTableListResponseBodyRouterTableListRouterTableListType(TeaMo
46081
46331
  gateway_ids: DescribeRouteTableListResponseBodyRouterTableListRouterTableListTypeGatewayIds = None,
46082
46332
  owner_id: int = None,
46083
46333
  resource_group_id: str = None,
46334
+ route_propagation_enable: bool = None,
46084
46335
  route_table_id: str = None,
46085
46336
  route_table_name: str = None,
46086
46337
  route_table_type: str = None,
@@ -46106,6 +46357,7 @@ class DescribeRouteTableListResponseBodyRouterTableListRouterTableListType(TeaMo
46106
46357
  self.owner_id = owner_id
46107
46358
  # The ID of the resource group to which the route table belongs.
46108
46359
  self.resource_group_id = resource_group_id
46360
+ self.route_propagation_enable = route_propagation_enable
46109
46361
  # The ID of the route table.
46110
46362
  self.route_table_id = route_table_id
46111
46363
  # The name of the route table.
@@ -46161,6 +46413,8 @@ class DescribeRouteTableListResponseBodyRouterTableListRouterTableListType(TeaMo
46161
46413
  result['OwnerId'] = self.owner_id
46162
46414
  if self.resource_group_id is not None:
46163
46415
  result['ResourceGroupId'] = self.resource_group_id
46416
+ if self.route_propagation_enable is not None:
46417
+ result['RoutePropagationEnable'] = self.route_propagation_enable
46164
46418
  if self.route_table_id is not None:
46165
46419
  result['RouteTableId'] = self.route_table_id
46166
46420
  if self.route_table_name is not None:
@@ -46196,6 +46450,8 @@ class DescribeRouteTableListResponseBodyRouterTableListRouterTableListType(TeaMo
46196
46450
  self.owner_id = m.get('OwnerId')
46197
46451
  if m.get('ResourceGroupId') is not None:
46198
46452
  self.resource_group_id = m.get('ResourceGroupId')
46453
+ if m.get('RoutePropagationEnable') is not None:
46454
+ self.route_propagation_enable = m.get('RoutePropagationEnable')
46199
46455
  if m.get('RouteTableId') is not None:
46200
46456
  self.route_table_id = m.get('RouteTableId')
46201
46457
  if m.get('RouteTableName') is not None:
@@ -54435,6 +54691,92 @@ class DescribeVpcAttributeResponseBodyAssociatedCens(TeaModel):
54435
54691
  return self
54436
54692
 
54437
54693
 
54694
+ class DescribeVpcAttributeResponseBodyAssociatedPropagationSourcesAssociatedPropagationSources(TeaModel):
54695
+ def __init__(
54696
+ self,
54697
+ route_propagated: bool = None,
54698
+ source_instance_id: str = None,
54699
+ source_owner_id: int = None,
54700
+ source_type: str = None,
54701
+ status: str = None,
54702
+ ):
54703
+ self.route_propagated = route_propagated
54704
+ self.source_instance_id = source_instance_id
54705
+ self.source_owner_id = source_owner_id
54706
+ self.source_type = source_type
54707
+ self.status = status
54708
+
54709
+ def validate(self):
54710
+ pass
54711
+
54712
+ def to_map(self):
54713
+ _map = super().to_map()
54714
+ if _map is not None:
54715
+ return _map
54716
+
54717
+ result = dict()
54718
+ if self.route_propagated is not None:
54719
+ result['RoutePropagated'] = self.route_propagated
54720
+ if self.source_instance_id is not None:
54721
+ result['SourceInstanceId'] = self.source_instance_id
54722
+ if self.source_owner_id is not None:
54723
+ result['SourceOwnerId'] = self.source_owner_id
54724
+ if self.source_type is not None:
54725
+ result['SourceType'] = self.source_type
54726
+ if self.status is not None:
54727
+ result['Status'] = self.status
54728
+ return result
54729
+
54730
+ def from_map(self, m: dict = None):
54731
+ m = m or dict()
54732
+ if m.get('RoutePropagated') is not None:
54733
+ self.route_propagated = m.get('RoutePropagated')
54734
+ if m.get('SourceInstanceId') is not None:
54735
+ self.source_instance_id = m.get('SourceInstanceId')
54736
+ if m.get('SourceOwnerId') is not None:
54737
+ self.source_owner_id = m.get('SourceOwnerId')
54738
+ if m.get('SourceType') is not None:
54739
+ self.source_type = m.get('SourceType')
54740
+ if m.get('Status') is not None:
54741
+ self.status = m.get('Status')
54742
+ return self
54743
+
54744
+
54745
+ class DescribeVpcAttributeResponseBodyAssociatedPropagationSources(TeaModel):
54746
+ def __init__(
54747
+ self,
54748
+ associated_propagation_sources: List[DescribeVpcAttributeResponseBodyAssociatedPropagationSourcesAssociatedPropagationSources] = None,
54749
+ ):
54750
+ self.associated_propagation_sources = associated_propagation_sources
54751
+
54752
+ def validate(self):
54753
+ if self.associated_propagation_sources:
54754
+ for k in self.associated_propagation_sources:
54755
+ if k:
54756
+ k.validate()
54757
+
54758
+ def to_map(self):
54759
+ _map = super().to_map()
54760
+ if _map is not None:
54761
+ return _map
54762
+
54763
+ result = dict()
54764
+ result['AssociatedPropagationSources'] = []
54765
+ if self.associated_propagation_sources is not None:
54766
+ for k in self.associated_propagation_sources:
54767
+ result['AssociatedPropagationSources'].append(k.to_map() if k else None)
54768
+ return result
54769
+
54770
+ def from_map(self, m: dict = None):
54771
+ m = m or dict()
54772
+ self.associated_propagation_sources = []
54773
+ if m.get('AssociatedPropagationSources') is not None:
54774
+ for k in m.get('AssociatedPropagationSources'):
54775
+ temp_model = DescribeVpcAttributeResponseBodyAssociatedPropagationSourcesAssociatedPropagationSources()
54776
+ self.associated_propagation_sources.append(temp_model.from_map(k))
54777
+ return self
54778
+
54779
+
54438
54780
  class DescribeVpcAttributeResponseBodyCloudResourcesCloudResourceSetType(TeaModel):
54439
54781
  def __init__(
54440
54782
  self,
@@ -54741,6 +55083,7 @@ class DescribeVpcAttributeResponseBody(TeaModel):
54741
55083
  def __init__(
54742
55084
  self,
54743
55085
  associated_cens: DescribeVpcAttributeResponseBodyAssociatedCens = None,
55086
+ associated_propagation_sources: DescribeVpcAttributeResponseBodyAssociatedPropagationSources = None,
54744
55087
  cidr_block: str = None,
54745
55088
  classic_link_enabled: bool = None,
54746
55089
  cloud_resources: DescribeVpcAttributeResponseBodyCloudResources = None,
@@ -54770,6 +55113,7 @@ class DescribeVpcAttributeResponseBody(TeaModel):
54770
55113
  #
54771
55114
  # If the VPC is not attached to a CEN instance, the parameter is not returned.
54772
55115
  self.associated_cens = associated_cens
55116
+ self.associated_propagation_sources = associated_propagation_sources
54773
55117
  # The IPv4 CIDR block of the VPC.
54774
55118
  self.cidr_block = cidr_block
54775
55119
  # Indicates whether the ClassicLink feature is enabled. Valid values:
@@ -54839,6 +55183,8 @@ class DescribeVpcAttributeResponseBody(TeaModel):
54839
55183
  def validate(self):
54840
55184
  if self.associated_cens:
54841
55185
  self.associated_cens.validate()
55186
+ if self.associated_propagation_sources:
55187
+ self.associated_propagation_sources.validate()
54842
55188
  if self.cloud_resources:
54843
55189
  self.cloud_resources.validate()
54844
55190
  if self.ipv_6cidr_blocks:
@@ -54860,6 +55206,8 @@ class DescribeVpcAttributeResponseBody(TeaModel):
54860
55206
  result = dict()
54861
55207
  if self.associated_cens is not None:
54862
55208
  result['AssociatedCens'] = self.associated_cens.to_map()
55209
+ if self.associated_propagation_sources is not None:
55210
+ result['AssociatedPropagationSources'] = self.associated_propagation_sources.to_map()
54863
55211
  if self.cidr_block is not None:
54864
55212
  result['CidrBlock'] = self.cidr_block
54865
55213
  if self.classic_link_enabled is not None:
@@ -54915,6 +55263,9 @@ class DescribeVpcAttributeResponseBody(TeaModel):
54915
55263
  if m.get('AssociatedCens') is not None:
54916
55264
  temp_model = DescribeVpcAttributeResponseBodyAssociatedCens()
54917
55265
  self.associated_cens = temp_model.from_map(m['AssociatedCens'])
55266
+ if m.get('AssociatedPropagationSources') is not None:
55267
+ temp_model = DescribeVpcAttributeResponseBodyAssociatedPropagationSources()
55268
+ self.associated_propagation_sources = temp_model.from_map(m['AssociatedPropagationSources'])
54918
55269
  if m.get('CidrBlock') is not None:
54919
55270
  self.cidr_block = m.get('CidrBlock')
54920
55271
  if m.get('ClassicLinkEnabled') is not None:
@@ -57571,9 +57922,9 @@ class DescribeVpnConnectionsRequest(TeaModel):
57571
57922
  #
57572
57923
  # You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.
57573
57924
  self.region_id = region_id
57574
- # IPsec连接所属的资源组ID。
57925
+ # The ID of the resource group to which the IPsec-VPN connection belongs.
57575
57926
  #
57576
- # 您可以调用[ListResourceGroups](~~158855~~)接口查询资源组ID
57927
+ # You can call the [ListResourceGroups](~~158855~~) operation to query the resource group ID.
57577
57928
  self.resource_group_id = resource_group_id
57578
57929
  self.resource_owner_account = resource_owner_account
57579
57930
  self.resource_owner_id = resource_owner_id
@@ -59251,9 +59602,9 @@ class DescribeVpnGatewayResponseBodyTagsTag(TeaModel):
59251
59602
  key: str = None,
59252
59603
  value: str = None,
59253
59604
  ):
59254
- # The tag key.
59605
+ # The key of tag N.
59255
59606
  self.key = key
59256
- # The tag value.
59607
+ # The value of tag N.
59257
59608
  self.value = value
59258
59609
 
59259
59610
  def validate(self):
@@ -59409,7 +59760,7 @@ class DescribeVpnGatewayResponseBody(TeaModel):
59409
59760
  self.reservation_data = reservation_data
59410
59761
  # The ID of the resource group to which the VPN gateway belongs.
59411
59762
  #
59412
- # You can call the [ListResourceGroups](~~158855~~) operation to query the resource group information.
59763
+ # You can call the [ListResourceGroups](~~158855~~) operation to query resource groups.
59413
59764
  self.resource_group_id = resource_group_id
59414
59765
  # The maximum bandwidth of the VPN gateway. Unit: Mbit/s.
59415
59766
  self.spec = spec
@@ -59468,7 +59819,7 @@ class DescribeVpnGatewayResponseBody(TeaModel):
59468
59819
  self.vpn_gateway_id = vpn_gateway_id
59469
59820
  # The type of the VPN gateway.
59470
59821
  #
59471
- # Only **Normal** may be returned, which indicates a standard NAT gateway.
59822
+ # Only **Normal** may be returned, which indicates a standard VPN gateway.
59472
59823
  self.vpn_type = vpn_type
59473
59824
 
59474
59825
  def validate(self):
@@ -71963,6 +72314,7 @@ class ListPublicIpAddressPoolsRequest(TeaModel):
71963
72314
  resource_group_id: str = None,
71964
72315
  resource_owner_account: str = None,
71965
72316
  resource_owner_id: int = None,
72317
+ security_protection_enabled: bool = None,
71966
72318
  status: str = None,
71967
72319
  tags: List[ListPublicIpAddressPoolsRequestTags] = None,
71968
72320
  ):
@@ -72014,6 +72366,7 @@ class ListPublicIpAddressPoolsRequest(TeaModel):
72014
72366
  self.resource_group_id = resource_group_id
72015
72367
  self.resource_owner_account = resource_owner_account
72016
72368
  self.resource_owner_id = resource_owner_id
72369
+ self.security_protection_enabled = security_protection_enabled
72017
72370
  # The status of the IP address pool. Valid values:
72018
72371
  #
72019
72372
  # * **Created**\
@@ -72059,6 +72412,8 @@ class ListPublicIpAddressPoolsRequest(TeaModel):
72059
72412
  result['ResourceOwnerAccount'] = self.resource_owner_account
72060
72413
  if self.resource_owner_id is not None:
72061
72414
  result['ResourceOwnerId'] = self.resource_owner_id
72415
+ if self.security_protection_enabled is not None:
72416
+ result['SecurityProtectionEnabled'] = self.security_protection_enabled
72062
72417
  if self.status is not None:
72063
72418
  result['Status'] = self.status
72064
72419
  result['Tags'] = []
@@ -72093,6 +72448,8 @@ class ListPublicIpAddressPoolsRequest(TeaModel):
72093
72448
  self.resource_owner_account = m.get('ResourceOwnerAccount')
72094
72449
  if m.get('ResourceOwnerId') is not None:
72095
72450
  self.resource_owner_id = m.get('ResourceOwnerId')
72451
+ if m.get('SecurityProtectionEnabled') is not None:
72452
+ self.security_protection_enabled = m.get('SecurityProtectionEnabled')
72096
72453
  if m.get('Status') is not None:
72097
72454
  self.status = m.get('Status')
72098
72455
  self.tags = []
@@ -72151,6 +72508,7 @@ class ListPublicIpAddressPoolsResponseBodyPublicIpAddressPoolList(TeaModel):
72151
72508
  public_ip_address_pool_id: str = None,
72152
72509
  region_id: str = None,
72153
72510
  resource_group_id: str = None,
72511
+ security_protection_types: List[str] = None,
72154
72512
  share_type: str = None,
72155
72513
  status: str = None,
72156
72514
  tags: List[ListPublicIpAddressPoolsResponseBodyPublicIpAddressPoolListTags] = None,
@@ -72201,6 +72559,7 @@ class ListPublicIpAddressPoolsResponseBodyPublicIpAddressPoolList(TeaModel):
72201
72559
  self.region_id = region_id
72202
72560
  # The ID of the resource group to which the IP address pool belongs.
72203
72561
  self.resource_group_id = resource_group_id
72562
+ self.security_protection_types = security_protection_types
72204
72563
  # Indicates whether the IP address pool is shared.
72205
72564
  #
72206
72565
  # * Only **Shared** may be returned.
@@ -72258,6 +72617,8 @@ class ListPublicIpAddressPoolsResponseBodyPublicIpAddressPoolList(TeaModel):
72258
72617
  result['RegionId'] = self.region_id
72259
72618
  if self.resource_group_id is not None:
72260
72619
  result['ResourceGroupId'] = self.resource_group_id
72620
+ if self.security_protection_types is not None:
72621
+ result['SecurityProtectionTypes'] = self.security_protection_types
72261
72622
  if self.share_type is not None:
72262
72623
  result['ShareType'] = self.share_type
72263
72624
  if self.status is not None:
@@ -72298,6 +72659,8 @@ class ListPublicIpAddressPoolsResponseBodyPublicIpAddressPoolList(TeaModel):
72298
72659
  self.region_id = m.get('RegionId')
72299
72660
  if m.get('ResourceGroupId') is not None:
72300
72661
  self.resource_group_id = m.get('ResourceGroupId')
72662
+ if m.get('SecurityProtectionTypes') is not None:
72663
+ self.security_protection_types = m.get('SecurityProtectionTypes')
72301
72664
  if m.get('ShareType') is not None:
72302
72665
  self.share_type = m.get('ShareType')
72303
72666
  if m.get('Status') is not None:
@@ -77125,7 +77488,7 @@ class ModifyCustomerGatewayAttributeResponseBody(TeaModel):
77125
77488
  self.request_id = request_id
77126
77489
  # The ID of the resource group to which the customer gateway belongs.
77127
77490
  #
77128
- # You can call the [ListResourceGroups](~~158855~~) operation to query the resource group information.
77491
+ # You can call the [ListResourceGroups](~~158855~~) operation to query resource groups.
77129
77492
  self.resource_group_id = resource_group_id
77130
77493
 
77131
77494
  def validate(self):
@@ -82387,9 +82750,7 @@ class ModifySslVpnServerResponseBody(TeaModel):
82387
82750
  self.request_id = request_id
82388
82751
  # The ID of the resource group to which the SSL server belongs.
82389
82752
  #
82390
- # The SSL server has the same resource group as its associated VPN gateway instance.
82391
- #
82392
- # You can call the [ListResourceGroups](~~158855~~) operation to query the resource group information.
82753
+ # The SSL server and the VPN gateway associated with the SSL server belong to the same resource group. You can call the [ListResourceGroups](~~158855~~) operation to query resource groups.
82393
82754
  self.resource_group_id = resource_group_id
82394
82755
  # The ID of the SSL server.
82395
82756
  self.ssl_vpn_server_id = ssl_vpn_server_id
@@ -84744,12 +85105,16 @@ class ModifyVpnAttachmentAttributeRequest(TeaModel):
84744
85105
  #
84745
85106
  # * **BgpConfig.LocalAsn**: the autonomous system number (ASN) on the Alibaba Cloud side. Valid values: **1** to **4294967295**.
84746
85107
  #
85108
+ # You can enter the ASN in two segments. Separate the first 16 bits of the ASN from the remaining 16 bits with a period (.). Enter the number in each segment in decimal format.
85109
+ #
85110
+ # For example, if you enter 123.456, the ASN is: 123 × 65536 + 456 = 8061384.
85111
+ #
84747
85112
  # * **BgpConfig.TunnelCidr:** the CIDR block of the IPsec tunnel. The CIDR block falls within 169.254.0.0/16. The subnet mask of the CIDR block must be 30 bits in length.
84748
85113
  #
84749
85114
  # * **LocalBgpIp:** the BGP IP address on the Alibaba Cloud side. This IP address must fall within the CIDR block of the IPsec tunnel.
84750
85115
  #
84751
- # >* Before you configure BGP, we recommend that you learn how BGP dynamic routing works and the limits of using BGP dynamic routing. For more information, see [VPN Gateway supports BGP dynamic routing](~~170235~~).
84752
- # >* We recommend that you use a private ASN to establish a connection with Alibaba Cloud over BGP. Refer to the relevant documentation for the private ASN range.
85116
+ # > - Before you configure BGP, we recommend that you learn how BGP dynamic routing works and the limits of using BGP dynamic routing. For more information, see [BGP dynamic routing ](~~170235~~).
85117
+ # > - We recommend that you use a private ASN to establish a connection with Alibaba Cloud over BGP. Refer to the relevant documentation for the private ASN range.
84753
85118
  self.bgp_config = bgp_config
84754
85119
  # The client token that is used to ensure the idempotence of the request.
84755
85120
  #
@@ -84774,25 +85139,25 @@ class ModifyVpnAttachmentAttributeRequest(TeaModel):
84774
85139
  # * **true** After NAT traversal is enabled, the initiator does not check the UDP ports during IKE negotiations and can automatically discover NAT gateway devices along the IPsec tunnel.
84775
85140
  # * **false**\
84776
85141
  self.enable_nat_traversal = enable_nat_traversal
84777
- # The health check configuration:
85142
+ # The health check configurations:
84778
85143
  #
84779
85144
  # * **HealthCheckConfig.enable**: specifies whether to enable the health check feature. Valid values:
84780
85145
  #
84781
85146
  # * **true**\
84782
85147
  # * **false**\
84783
85148
  #
84784
- # * **HealthCheckConfig.dip**: the destination IP address that is used for health checks. Enter the IP address of the data center with which the VPC can communicate based on the IPsec-VPN connection.
85149
+ # * **HealthCheckConfig.dip**: the destination IP address that is used for health checks. Enter the IP address on the data center side that the VPC can communicate with through the IPsec-VPN connection.
84785
85150
  #
84786
- # * **HealthCheckConfig.sip**: the source IP address that is used for health checks. Enter the IP address of the VPC with which the data center can communicate based on the IPsec-VPN connection.
85151
+ # * **HealthCheckConfig.sip**: the source IP address that is used for health checks. Enter the IP address on the VPC side that the data center can communicate with through the IPsec-VPN connection.
84787
85152
  #
84788
85153
  # * **HealthCheckConfig.interval**: the interval between two consecutive health checks. Unit: seconds.
84789
85154
  #
84790
- # * **HealthCheckConfig.retry**: the maximum number of health check retries.
85155
+ # * **HealthCheckConfig.retry:** the maximum number of health check retries.
84791
85156
  #
84792
85157
  # * **HealthCheckConfig.Policy**: specifies whether to withdraw advertised routes when health checks fail. Valid values:
84793
85158
  #
84794
- # - **revoke_route**: withdraws advertised routes.
84795
- # - **reserve_route**: does not withdraw advertised routes.
85159
+ # * **revoke_route**\
85160
+ # * **reserve_route**\
84796
85161
  self.health_check_config = health_check_config
84797
85162
  # The configuration of Phase 1 negotiations:
84798
85163
  #
@@ -85317,7 +85682,7 @@ class ModifyVpnAttachmentAttributeResponseBody(TeaModel):
85317
85682
  self.request_id = request_id
85318
85683
  # The ID of the resource group to which the IPsec-VPN connection belongs.
85319
85684
  #
85320
- # You can call the [ListResourceGroups](~~158855~~) operation to query the resource group information.
85685
+ # You can call the [ListResourceGroups](~~158855~~) operation to query resource groups.
85321
85686
  self.resource_group_id = resource_group_id
85322
85687
  # The bandwidth specification of the IPsec-VPN connection.
85323
85688
  #
@@ -85505,13 +85870,13 @@ class ModifyVpnConnectionAttributeRequestTunnelOptionsSpecificationTunnelBgpConf
85505
85870
  local_bgp_ip: str = None,
85506
85871
  tunnel_cidr: str = None,
85507
85872
  ):
85508
- # The ASN on the Alibaba Cloud side. Valid values: **1** to **4294967295**. Default value: **45104**.
85873
+ # The ASN of the tunnel on the Alibaba Cloud side. Valid values: **1** to **4294967295**. Default value: **45104**.
85509
85874
  #
85510
- # > * You can specify or modify this parameter if BGP is enabled for the IPsec-VPN connection (**EnableTunnelsBgp** is set to **true**).
85511
- # > * Before you configure BGP, we recommend that you learn about how BGP works and its limits. For more information, see [VPN Gateway supports BGP dynamic routing](~~170235~~).
85512
- # > * We recommend that you use a private ASN to establish a connection with Alibaba Cloud over BGP. For information about the range of private ASNs, see the relevant documentation.
85875
+ # > - You can specify or modify this parameter if BGP is enabled for the IPsec-VPN connection (**EnableTunnelsBgp** is set to **true**).
85876
+ # > - Before you configure BGP, we recommend that you learn about how BGP works and its limits. For more information, see [VPN Gateway supports BGP dynamic routing](~~170235~~).
85877
+ # > - We recommend that you use a private ASN to establish a connection with Alibaba Cloud over BGP. For information about the range of private ASNs, see the relevant documentation.
85513
85878
  self.local_asn = local_asn
85514
- # The BGP address on the Alibaba Cloud side. The address is an IP address that falls within the BGP CIDR block range.
85879
+ # The BGP IP address of the tunnel on the Alibaba Cloud side. The address is an IP address that falls within the BGP CIDR block range.
85515
85880
  self.local_bgp_ip = local_bgp_ip
85516
85881
  # The BGP CIDR block of the tunnel. The CIDR block must belong to 169.254.0.0/16. The subnet mask of the CIDR block must be 30 bits in length.
85517
85882
  #
@@ -85569,7 +85934,7 @@ class ModifyVpnConnectionAttributeRequestTunnelOptionsSpecificationTunnelIkeConf
85569
85934
  self.ike_enc_alg = ike_enc_alg
85570
85935
  # The SA lifetime that is determined by Phase 1 negotiations. Unit: seconds. Valid values: **0** to **86400**.
85571
85936
  self.ike_lifetime = ike_lifetime
85572
- # The negotiation mode of IKE. Valid values:
85937
+ # The IKE negotiation mode. Valid values:
85573
85938
  #
85574
85939
  # * **main**: This mode offers higher security during negotiations.
85575
85940
  # * **aggressive**: This mode is faster and has a higher success rate.
@@ -85578,7 +85943,7 @@ class ModifyVpnConnectionAttributeRequestTunnelOptionsSpecificationTunnelIkeConf
85578
85943
  self.ike_pfs = ike_pfs
85579
85944
  # The version of the IKE protocol. Valid values: **ikev1** and **ikev2**.
85580
85945
  #
85581
- # Compared with IKEv1, IKEv2 simplifies the SA negotiation process and is more suitable for scenarios in which multiple CIDR blocks are used.
85946
+ # Compared with IKEv1, IKEv2 simplifies the security association (SA) negotiation process and is more suitable for scenarios in which multiple CIDR blocks are used.
85582
85947
  self.ike_version = ike_version
85583
85948
  # The identifier on the Alibaba Cloud side, which is used in Phase 1 negotiations. The identifier cannot exceed 100 characters in length. The default identifier is the IP address of the tunnel.
85584
85949
  #
@@ -85586,7 +85951,7 @@ class ModifyVpnConnectionAttributeRequestTunnelOptionsSpecificationTunnelIkeConf
85586
85951
  self.local_id = local_id
85587
85952
  # The pre-shared key, which is used for identity authentication between the tunnel and the tunnel peer.
85588
85953
  #
85589
- # * It must be 1 to 100 characters in length, and can contain letters, digits, and the following characters: ``~!\`@#$%^&*()_-+={}[]|;:\",.<>/?``
85954
+ # * The key must be 1 to 100 characters in length and can contain digits, letters, and the following characters: ``~!\`@#$%^&*()_-+={}[]|;:\",.<>/?``
85590
85955
  # * If you do not specify a pre-shared key, the system generates a random 16-character string as the pre-shared key. You can call the [DescribeVpnConnection](~~448847~~) operation to query the pre-shared key that is generated by the system.
85591
85956
  #
85592
85957
  # > The tunnel and the tunnel peer must use the same pre-shared key. Otherwise, the tunnel cannot be established.
@@ -85731,8 +86096,8 @@ class ModifyVpnConnectionAttributeRequestTunnelOptionsSpecification(TeaModel):
85731
86096
  self.remote_ca_certificate = remote_ca_certificate
85732
86097
  # The tunnel role. Valid values:
85733
86098
  #
85734
- # - **master**: The tunnel is an active tunnel.
85735
- # - **slave**: The tunnel is a standby tunnel.
86099
+ # * **master**: The tunnel is an active tunnel.
86100
+ # * **slave**: The tunnel is a standby tunnel.
85736
86101
  self.role = role
85737
86102
  # The Border Gateway Protocol (BGP) configurations of the tunnel.
85738
86103
  self.tunnel_bgp_config = tunnel_bgp_config
@@ -85831,23 +86196,27 @@ class ModifyVpnConnectionAttributeRequest(TeaModel):
85831
86196
  # * **true**\
85832
86197
  # * **false**\
85833
86198
  self.auto_config_route = auto_config_route
85834
- # You can specify this parameter if you modify the configuration of a single-tunnel IPsec-VPN connection.
86199
+ # This parameter is supported by single-tunnel IPsec-VPN connections.
85835
86200
  #
85836
- # The Border Gateway Protocol (BGP) configuration:
86201
+ # The Border Gateway Protocol (BGP) configurations:
85837
86202
  #
85838
86203
  # * **BgpConfig.EnableBgp:** specifies whether to enable BGP. Valid values: **true** and **false**.
85839
86204
  #
85840
- # * **BgpConfig.LocalAsn**: the autonomous system number (ASN) on the Alibaba Cloud side. Valid values: **1** to **4294967295**.
86205
+ # * **BgpConfig.LocalAsn:** the autonomous system number (ASN) on the Alibaba Cloud side. Valid values: **1** to **4294967295**.
85841
86206
  #
85842
- # * **BgpConfig.TunnelCidr:** the CIDR block of the IPsec tunnel. The CIDR block falls within 169.254.0.0/16. The subnet mask of the CIDR block must be 30 bits in length.
86207
+ # You can enter the ASN in two segments. Separate the first 16 bits of the ASN from the remaining 16 bits with a period (.). Enter the number in each segment in decimal format.
85843
86208
  #
85844
- # >The CIDR block of the IPsec tunnel of each IPsec-VPN connection must be unique on a VPN gateway.
86209
+ # For example, if you enter 123.456, the ASN is: 123 × 65536 + 456 = 8061384.
86210
+ #
86211
+ # * **BgpConfig.TunnelCidr**: the CIDR block of the IPsec tunnel. The CIDR block must belong to 169.254.0.0/16. The subnet mask of the CIDR block must be 30 bits in length.
85845
86212
  #
85846
- # * **LocalBgpIp**: the BGP IP address on the Alibaba Cloud side. This IP address must fall within the CIDR block of the IPsec tunnel.
86213
+ # > The CIDR block of the IPsec tunnel of each IPsec-VPN connection must be unique on a VPN gateway.
85847
86214
  #
85848
- # > * This parameter is required when the VPN gateway has dynamic BGP enabled.
85849
- # >* Before you configure BGP, we recommend that you learn how BGP dynamic routing works and the limits of using BGP dynamic routing. For more information, see [VPN Gateway supports BGP dynamic routing](~~170235~~).
85850
- # >* We recommend that you use a private ASN to establish a connection with Alibaba Cloud over BGP. Refer to the relevant documentation for the private ASN range.
86215
+ # * **LocalBgpIp**: the BGP IP address on the Alibaba Cloud side. This IP address must fall within the CIDR block range of the IPsec tunnel.
86216
+ #
86217
+ # > - This parameter is required when the VPN gateway has dynamic BGP enabled.
86218
+ # > - Before you configure BGP, we recommend that you learn about how BGP works and its limits. For more information, see [BGP dynamic routing ](~~170235~~).
86219
+ # > - We recommend that you use a private ASN to establish a connection with Alibaba Cloud over BGP. For information about the range of private ASNs, see the relevant documentation.
85851
86220
  self.bgp_config = bgp_config
85852
86221
  # The client token that is used to ensure the idempotence of the request.
85853
86222
  #
@@ -86309,7 +86678,7 @@ class ModifyVpnConnectionAttributeResponseBodyTunnelOptionsSpecificationTunnelOp
86309
86678
  self.ike_lifetime = ike_lifetime
86310
86679
  # The IKE negotiation mode.
86311
86680
  #
86312
- # * **main**: This mode offers higher security during negotiations.
86681
+ # * **main:** This mode offers higher security during negotiations.
86313
86682
  # * **aggressive**: This mode is faster and has a higher success rate.
86314
86683
  self.ike_mode = ike_mode
86315
86684
  # The DH group in the IKE phase.
@@ -86799,9 +87168,7 @@ class ModifyVpnConnectionAttributeResponseBody(TeaModel):
86799
87168
  self.request_id = request_id
86800
87169
  # The ID of the resource group to which the IPsec-VPN connection belongs.
86801
87170
  #
86802
- # The IPsec-VPN connection has the same resource group as its associated VPN gateway instance.
86803
- #
86804
- # You can call the [ListResourceGroups](~~158855~~) operation to query the resource group information.
87171
+ # The IPsec-VPN connection and the VPN gateway associated with the IPsec-VPN connection belong to the same resource group. You can call the [ListResourceGroups](~~158855~~) operation to query resource groups.
86805
87172
  self.resource_group_id = resource_group_id
86806
87173
  # The tunnel configuration of the IPsec-VPN connection.
86807
87174
  #
@@ -89555,6 +89922,146 @@ class ReleaseEipSegmentAddressResponse(TeaModel):
89555
89922
  return self
89556
89923
 
89557
89924
 
89925
+ class ReleaseIpv6AddressRequest(TeaModel):
89926
+ def __init__(
89927
+ self,
89928
+ client_token: str = None,
89929
+ dry_run: bool = None,
89930
+ ipv_6address_id: str = None,
89931
+ owner_account: str = None,
89932
+ owner_id: int = None,
89933
+ region_id: str = None,
89934
+ resource_owner_account: str = None,
89935
+ resource_owner_id: int = None,
89936
+ ):
89937
+ self.client_token = client_token
89938
+ self.dry_run = dry_run
89939
+ self.ipv_6address_id = ipv_6address_id
89940
+ self.owner_account = owner_account
89941
+ self.owner_id = owner_id
89942
+ self.region_id = region_id
89943
+ self.resource_owner_account = resource_owner_account
89944
+ self.resource_owner_id = resource_owner_id
89945
+
89946
+ def validate(self):
89947
+ pass
89948
+
89949
+ def to_map(self):
89950
+ _map = super().to_map()
89951
+ if _map is not None:
89952
+ return _map
89953
+
89954
+ result = dict()
89955
+ if self.client_token is not None:
89956
+ result['ClientToken'] = self.client_token
89957
+ if self.dry_run is not None:
89958
+ result['DryRun'] = self.dry_run
89959
+ if self.ipv_6address_id is not None:
89960
+ result['Ipv6AddressId'] = self.ipv_6address_id
89961
+ if self.owner_account is not None:
89962
+ result['OwnerAccount'] = self.owner_account
89963
+ if self.owner_id is not None:
89964
+ result['OwnerId'] = self.owner_id
89965
+ if self.region_id is not None:
89966
+ result['RegionId'] = self.region_id
89967
+ if self.resource_owner_account is not None:
89968
+ result['ResourceOwnerAccount'] = self.resource_owner_account
89969
+ if self.resource_owner_id is not None:
89970
+ result['ResourceOwnerId'] = self.resource_owner_id
89971
+ return result
89972
+
89973
+ def from_map(self, m: dict = None):
89974
+ m = m or dict()
89975
+ if m.get('ClientToken') is not None:
89976
+ self.client_token = m.get('ClientToken')
89977
+ if m.get('DryRun') is not None:
89978
+ self.dry_run = m.get('DryRun')
89979
+ if m.get('Ipv6AddressId') is not None:
89980
+ self.ipv_6address_id = m.get('Ipv6AddressId')
89981
+ if m.get('OwnerAccount') is not None:
89982
+ self.owner_account = m.get('OwnerAccount')
89983
+ if m.get('OwnerId') is not None:
89984
+ self.owner_id = m.get('OwnerId')
89985
+ if m.get('RegionId') is not None:
89986
+ self.region_id = m.get('RegionId')
89987
+ if m.get('ResourceOwnerAccount') is not None:
89988
+ self.resource_owner_account = m.get('ResourceOwnerAccount')
89989
+ if m.get('ResourceOwnerId') is not None:
89990
+ self.resource_owner_id = m.get('ResourceOwnerId')
89991
+ return self
89992
+
89993
+
89994
+ class ReleaseIpv6AddressResponseBody(TeaModel):
89995
+ def __init__(
89996
+ self,
89997
+ request_id: str = None,
89998
+ ):
89999
+ self.request_id = request_id
90000
+
90001
+ def validate(self):
90002
+ pass
90003
+
90004
+ def to_map(self):
90005
+ _map = super().to_map()
90006
+ if _map is not None:
90007
+ return _map
90008
+
90009
+ result = dict()
90010
+ if self.request_id is not None:
90011
+ result['RequestId'] = self.request_id
90012
+ return result
90013
+
90014
+ def from_map(self, m: dict = None):
90015
+ m = m or dict()
90016
+ if m.get('RequestId') is not None:
90017
+ self.request_id = m.get('RequestId')
90018
+ return self
90019
+
90020
+
90021
+ class ReleaseIpv6AddressResponse(TeaModel):
90022
+ def __init__(
90023
+ self,
90024
+ headers: Dict[str, str] = None,
90025
+ status_code: int = None,
90026
+ body: ReleaseIpv6AddressResponseBody = None,
90027
+ ):
90028
+ self.headers = headers
90029
+ self.status_code = status_code
90030
+ self.body = body
90031
+
90032
+ def validate(self):
90033
+ self.validate_required(self.headers, 'headers')
90034
+ self.validate_required(self.status_code, 'status_code')
90035
+ self.validate_required(self.body, 'body')
90036
+ if self.body:
90037
+ self.body.validate()
90038
+
90039
+ def to_map(self):
90040
+ _map = super().to_map()
90041
+ if _map is not None:
90042
+ return _map
90043
+
90044
+ result = dict()
90045
+ if self.headers is not None:
90046
+ result['headers'] = self.headers
90047
+ if self.status_code is not None:
90048
+ result['statusCode'] = self.status_code
90049
+ if self.body is not None:
90050
+ result['body'] = self.body.to_map()
90051
+ return result
90052
+
90053
+ def from_map(self, m: dict = None):
90054
+ m = m or dict()
90055
+ if m.get('headers') is not None:
90056
+ self.headers = m.get('headers')
90057
+ if m.get('statusCode') is not None:
90058
+ self.status_code = m.get('statusCode')
90059
+ if m.get('body') is not None:
90060
+ temp_model = ReleaseIpv6AddressResponseBody()
90061
+ self.body = temp_model.from_map(m['body'])
90062
+ return self
90063
+
90064
+
89558
90065
  class RemoveCommonBandwidthPackageIpRequest(TeaModel):
89559
90066
  def __init__(
89560
90067
  self,