alibabacloud-vpc20160428 6.2.1__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,
@@ -6325,16 +6554,20 @@ class CopyNetworkAclEntriesRequest(TeaModel):
6325
6554
  ):
6326
6555
  # The client token that is used to ensure the idempotence of the request.
6327
6556
  #
6328
- # 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.
6557
+ # 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.
6329
6558
  #
6330
- # > If you do not set this parameter, the system uses **RequestId** as **ClientToken**. **RequestId** may be different for each API request.
6559
+ # > 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.
6331
6560
  self.client_token = client_token
6561
+ # Specifies whether to perform only a dry run, without performing the actual request. Valid values:
6562
+ #
6563
+ # * **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.
6564
+ # * **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.
6332
6565
  self.dry_run = dry_run
6333
6566
  # The ID of the network ACL.
6334
6567
  self.network_acl_id = network_acl_id
6335
6568
  self.owner_account = owner_account
6336
6569
  self.owner_id = owner_id
6337
- # The region where the network ACL is deployed. You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.
6570
+ # The region ID of the network ACL. You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.
6338
6571
  self.region_id = region_id
6339
6572
  self.resource_owner_account = resource_owner_account
6340
6573
  self.resource_owner_id = resource_owner_id
@@ -6398,7 +6631,7 @@ class CopyNetworkAclEntriesResponseBody(TeaModel):
6398
6631
  self,
6399
6632
  request_id: str = None,
6400
6633
  ):
6401
- # The ID of the request.
6634
+ # The request ID.
6402
6635
  self.request_id = request_id
6403
6636
 
6404
6637
  def validate(self):
@@ -13837,6 +14070,7 @@ class CreatePublicIpAddressPoolRequest(TeaModel):
13837
14070
  resource_group_id: str = None,
13838
14071
  resource_owner_account: str = None,
13839
14072
  resource_owner_id: int = None,
14073
+ security_protection_types: List[str] = None,
13840
14074
  tag: List[CreatePublicIpAddressPoolRequestTag] = None,
13841
14075
  zones: List[str] = None,
13842
14076
  ):
@@ -13890,6 +14124,7 @@ class CreatePublicIpAddressPoolRequest(TeaModel):
13890
14124
  self.resource_group_id = resource_group_id
13891
14125
  self.resource_owner_account = resource_owner_account
13892
14126
  self.resource_owner_id = resource_owner_id
14127
+ self.security_protection_types = security_protection_types
13893
14128
  # The tag of the resource.
13894
14129
  self.tag = tag
13895
14130
  # The zone of the IP address pool. If you set **BizType** to **CloudBox**, this parameter is required.
@@ -13931,6 +14166,8 @@ class CreatePublicIpAddressPoolRequest(TeaModel):
13931
14166
  result['ResourceOwnerAccount'] = self.resource_owner_account
13932
14167
  if self.resource_owner_id is not None:
13933
14168
  result['ResourceOwnerId'] = self.resource_owner_id
14169
+ if self.security_protection_types is not None:
14170
+ result['SecurityProtectionTypes'] = self.security_protection_types
13934
14171
  result['Tag'] = []
13935
14172
  if self.tag is not None:
13936
14173
  for k in self.tag:
@@ -13965,6 +14202,8 @@ class CreatePublicIpAddressPoolRequest(TeaModel):
13965
14202
  self.resource_owner_account = m.get('ResourceOwnerAccount')
13966
14203
  if m.get('ResourceOwnerId') is not None:
13967
14204
  self.resource_owner_id = m.get('ResourceOwnerId')
14205
+ if m.get('SecurityProtectionTypes') is not None:
14206
+ self.security_protection_types = m.get('SecurityProtectionTypes')
13968
14207
  self.tag = []
13969
14208
  if m.get('Tag') is not None:
13970
14209
  for k in m.get('Tag'):
@@ -17147,7 +17386,13 @@ class CreateVSwitchRequestTag(TeaModel):
17147
17386
  key: str = None,
17148
17387
  value: str = None,
17149
17388
  ):
17389
+ # The tag key. You can specify at most 20 tag keys. The tag key cannot be an empty string.
17390
+ #
17391
+ # The tag key can be at most 128 characters in length. It cannot start with `aliyun` or `acs:`, and cannot contain `http://` or `https://`.
17150
17392
  self.key = key
17393
+ # The tag value. You can specify at most 20 tag values. The tag value can be an empty string.
17394
+ #
17395
+ # The tag value can be up to 128 characters in length, but cannot contain `http://` or `https://`. The tag value cannot start with `aliyun` or `acs:`.
17151
17396
  self.value = value
17152
17397
 
17153
17398
  def validate(self):
@@ -17218,6 +17463,7 @@ class CreateVSwitchRequest(TeaModel):
17218
17463
  self.region_id = region_id
17219
17464
  self.resource_owner_account = resource_owner_account
17220
17465
  self.resource_owner_id = resource_owner_id
17466
+ # The tag of the resource.
17221
17467
  self.tag = tag
17222
17468
  # The name of the vSwitch.
17223
17469
  #
@@ -19799,14 +20045,22 @@ class CreateVpnAttachmentRequest(TeaModel):
19799
20045
  # * **true** (default)
19800
20046
  # * **false**\
19801
20047
  self.auto_config_route = auto_config_route
19802
- # The Border Gateway Protocol (BGP) configuration:
20048
+ # The Border Gateway Protocol (BGP) configurations:
19803
20049
  #
19804
20050
  # * **BgpConfig.EnableBgp**: specifies whether to enable BGP. Valid values: **true** and **false**. Default value: false.
20051
+ #
19805
20052
  # * **BgpConfig.LocalAsn**: the ASN on the Alibaba Cloud side. Valid values: **1** to **4294967295**. Default value: **45104**.
19806
- # * **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.
19807
- # * **LocalBgpIp:** the BGP IP address on the Alibaba Cloud side. This IP address must fall within the CIDR block of the IPsec tunnel.
19808
- # >- Before you configure BGP, we recommend that you learn about how BGP works and the limits. For more information, see [BGP dynamic routing ](~~170235~~).
19809
- # >- 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.
19810
20064
  self.bgp_config = bgp_config
19811
20065
  # The client token that is used to ensure the idempotence of the request.
19812
20066
  #
@@ -19855,9 +20109,7 @@ class CreateVpnAttachmentRequest(TeaModel):
19855
20109
  # * It must be 1 to 100 characters in length, and can contain letters, digits, and the following characters: ``~!`@#$%^&*()_-+={}[]|;:\",.<>/?``
19856
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.
19857
20111
  #
19858
- # **\
19859
- #
19860
- # **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.
19861
20113
  #
19862
20114
  # * **IkeConfig.IkeVersion**: the IKE version. Valid values: **ikev1** and **ikev2**. Default value: **ikev1**.
19863
20115
  #
@@ -19918,9 +20170,8 @@ class CreateVpnAttachmentRequest(TeaModel):
19918
20170
  self.remote_subnet = remote_subnet
19919
20171
  # The ID of the resource group to which the IPsec-VPN connection belongs.
19920
20172
  #
19921
- # - You can call the [ListResourceGroups](~~158855~~) operation to query the resource group list.
19922
- #
19923
- # - 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.
19924
20175
  self.resource_group_id = resource_group_id
19925
20176
  self.resource_owner_account = resource_owner_account
19926
20177
  self.resource_owner_id = resource_owner_id
@@ -20954,6 +21205,8 @@ class CreateVpnGatewayRequest(TeaModel):
20954
21205
  #
20955
21206
  # * **true**\
20956
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.
20957
21210
  self.auto_pay = auto_pay
20958
21211
  # The maximum bandwidth of the VPN gateway. Unit: Mbit/s.
20959
21212
  #
@@ -21005,11 +21258,13 @@ class CreateVpnGatewayRequest(TeaModel):
21005
21258
  self.region_id = region_id
21006
21259
  # The ID of the resource group to which the VPN gateway belongs.
21007
21260
  #
21008
- # - You can call the [ListResourceGroups](~~158855~~) operation to query the resource group list.
21009
- # - If you do not specify a resource group, the VPN gateway will belong to the default resource group after being created.
21010
- # - 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.
21264
+ #
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.
21011
21266
  #
21012
- # If you change the resource group to which the VPN gateway belongs, the resource group to which the resource belongs will also be changed.
21267
+ # If you move the VPN gateway to a new resource group, the preceding resources are also moved to the new resource group.
21013
21268
  self.resource_group_id = resource_group_id
21014
21269
  self.resource_owner_account = resource_owner_account
21015
21270
  self.resource_owner_id = resource_owner_id
@@ -25383,10 +25638,15 @@ class DeleteNetworkAclRequest(TeaModel):
25383
25638
  ):
25384
25639
  # The client token that is used to ensure the idempotence of the request.
25385
25640
  #
25386
- # 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.
25641
+ # 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.
25387
25642
  #
25388
- # > If you do not set this parameter, the system uses **RequestId** as **ClientToken**. **RequestId** may be different for each API request.
25643
+ # > 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.
25389
25644
  self.client_token = client_token
25645
+ # Specifies whether to perform only a dry run, without performing the actual request. Valid values:
25646
+ #
25647
+ # **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.
25648
+ #
25649
+ # **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.
25390
25650
  self.dry_run = dry_run
25391
25651
  # The ID of the network ACL.
25392
25652
  self.network_acl_id = network_acl_id
@@ -25452,7 +25712,7 @@ class DeleteNetworkAclResponseBody(TeaModel):
25452
25712
  self,
25453
25713
  request_id: str = None,
25454
25714
  ):
25455
- # The ID of the request.
25715
+ # The request ID.
25456
25716
  self.request_id = request_id
25457
25717
 
25458
25718
  def validate(self):
@@ -32012,9 +32272,9 @@ class DescribeCustomerGatewayResponseBodyTagsTag(TeaModel):
32012
32272
  key: str = None,
32013
32273
  value: str = None,
32014
32274
  ):
32015
- # The tag key.
32275
+ # The key of tag N.
32016
32276
  self.key = key
32017
- # The tag value.
32277
+ # The value of tag N.
32018
32278
  self.value = value
32019
32279
 
32020
32280
  def validate(self):
@@ -32110,7 +32370,7 @@ class DescribeCustomerGatewayResponseBody(TeaModel):
32110
32370
  self.request_id = request_id
32111
32371
  # The ID of the resource group to which the customer gateway belongs.
32112
32372
  #
32113
- # 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.
32114
32374
  self.resource_group_id = resource_group_id
32115
32375
  # The list of tags added to the customer gateway.
32116
32376
  self.tags = tags
@@ -33060,13 +33320,13 @@ class DescribeEipAddressesRequest(TeaModel):
33060
33320
  # The type of the cloud resource with which you want to associate the EIP. Valid values:
33061
33321
  #
33062
33322
  # * **EcsInstance** (default): an Elastic Compute Service (ECS) instance in a virtual private cloud (VPC).
33063
- # * **SlbInstance**: a Server Load Balancer (SLB) instance in a VPC.
33323
+ # * **SlbInstance**: a CLB instance in a VPC.
33064
33324
  # * **Nat**: a NAT gateway.
33065
- # * **HaVip**: a high-availability virtual IP address (HAVIP).
33066
- # * **NetworkInterface**: a secondary elastic network interface (ENI).
33325
+ # * **HaVip**: an HAVIP.
33326
+ # * **NetworkInterface**: a secondary ENI.
33067
33327
  # * **IpAddress**: an IP address.
33068
33328
  #
33069
- # > You can associate only one EIP with each ECS instance, SLB instance, HAVIP, or IP address. You can associate multiple EIPs with each NAT gateway. 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~~).
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~~).
33070
33330
  self.associated_instance_type = associated_instance_type
33071
33331
  # The billing method of the EIP. Valid values:
33072
33332
  #
@@ -33132,9 +33392,9 @@ class DescribeEipAddressesRequest(TeaModel):
33132
33392
  self.resource_group_id = resource_group_id
33133
33393
  self.resource_owner_account = resource_owner_account
33134
33394
  self.resource_owner_id = resource_owner_id
33135
- # Specifies whether to enable Anti-DDoS Pro/Premium. Valid values:
33395
+ # Specifies whether to activate Anti-DDoS Pro/Premium. Valid values:
33136
33396
  #
33137
- # * **false** (default)
33397
+ # * **false**\
33138
33398
  # * **true**\
33139
33399
  self.security_protection_enabled = security_protection_enabled
33140
33400
  # The ID of the contiguous EIP group.
@@ -33537,8 +33797,8 @@ class DescribeEipAddressesResponseBodyEipAddressesEipAddress(TeaModel):
33537
33797
  self.has_reservation_data = has_reservation_data
33538
33798
  # The line type. Valid values:
33539
33799
  #
33540
- # * **BGP**: BGP (Multi-ISP) lines. All regions support BGP (Multi-ISP) EIPs.
33541
- # * **BGP_PRO**: BGP (Multi-ISP) Pro lines. Only the following regions support BGP (Multi-ISP) Pro lines: China (Hong Kong), Singapore, Japan (Tokyo), Malaysia (Kuala Lumpur), Philippines (Manila), Indonesia (Jakarta), and Thailand (Bangkok).
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.
33542
33802
  #
33543
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.
33544
33804
  #
@@ -33560,7 +33820,7 @@ class DescribeEipAddressesResponseBodyEipAddressesEipAddress(TeaModel):
33560
33820
  # The type of the associated instance. Valid values:
33561
33821
  #
33562
33822
  # * **EcsInstance**: an ECS instance in a VPC.
33563
- # * **SlbInstance**: an SLB instance in a VPC.
33823
+ # * **SlbInstance**: a CLB instance in a VPC.
33564
33824
  # * **Nat**: a NAT gateway.
33565
33825
  # * **HaVip**: an HAVIP.
33566
33826
  # * **NetworkInterface**: a secondary ENI.
@@ -33568,11 +33828,15 @@ class DescribeEipAddressesResponseBodyEipAddressesEipAddress(TeaModel):
33568
33828
  self.instance_type = instance_type
33569
33829
  # The metering method of the EIP. Valid values:
33570
33830
  #
33571
- # * **PayByBandwidth**: pay-by-bandwidth.
33572
- # * **PayByTraffic**: pay-by-traffic.
33831
+ # * **PayByBandwidth**\
33832
+ # * **PayByTraffic**\
33573
33833
  self.internet_charge_type = internet_charge_type
33574
33834
  # The EIP.
33575
33835
  self.ip_address = ip_address
33836
+ # The association mode. Valid values:
33837
+ # - **NAT**: NAT mode
33838
+ # - **MULTI_BINDED**: multi-EIP-to-ENI mode
33839
+ # - **BINDED**: cut-through mode
33576
33840
  self.mode = mode
33577
33841
  # The name of the EIP.
33578
33842
  self.name = name
@@ -33580,6 +33844,7 @@ class DescribeEipAddressesResponseBodyEipAddressesEipAddress(TeaModel):
33580
33844
  self.netmode = netmode
33581
33845
  # The details about the locked EIP.
33582
33846
  self.operation_locks = operation_locks
33847
+ # The private IP address of the secondary ENI with which the EIP is associated.
33583
33848
  self.private_ip_address = private_ip_address
33584
33849
  # The ID of the IP address pool to which the EIP belongs.
33585
33850
  self.public_ip_address_pool_id = public_ip_address_pool_id
@@ -33591,8 +33856,8 @@ class DescribeEipAddressesResponseBodyEipAddressesEipAddress(TeaModel):
33591
33856
  self.reservation_bandwidth = reservation_bandwidth
33592
33857
  # The metering method that is used after the renewal takes effect. Valid values:
33593
33858
  #
33594
- # * **PayByBandwidth**: pay-by-bandwidth.
33595
- # * **PayByTraffic**: pay-by-traffic.
33859
+ # * **PayByBandwidth**\
33860
+ # * **PayByTraffic**\
33596
33861
  self.reservation_internet_charge_type = reservation_internet_charge_type
33597
33862
  # The type of the renewal order. Valid values:
33598
33863
  #
@@ -33600,7 +33865,7 @@ class DescribeEipAddressesResponseBodyEipAddressesEipAddress(TeaModel):
33600
33865
  # * **TEMP_UPGRADE**: temporary upgrade.
33601
33866
  # * **UPGRADE**: upgrade.
33602
33867
  self.reservation_order_type = reservation_order_type
33603
- # The ID of the resource group.
33868
+ # The resource group ID.
33604
33869
  self.resource_group_id = resource_group_id
33605
33870
  # Indicates whether level-2 throttling is configured. Valid values:
33606
33871
  #
@@ -33618,10 +33883,10 @@ class DescribeEipAddressesResponseBodyEipAddressesEipAddress(TeaModel):
33618
33883
  self.segment_instance_id = segment_instance_id
33619
33884
  # Indicates whether the resource is created by the service account. Valid values:
33620
33885
  #
33621
- # * **0**: The resource is not created by the service account.
33622
- # * **1**: The resource is created by the service account.
33886
+ # * **0**\
33887
+ # * **1**\
33623
33888
  self.service_managed = service_managed
33624
- # The state of the EIP. Valid values:
33889
+ # The status of the EIP. Valid values:
33625
33890
  #
33626
33891
  # * **Associating**\
33627
33892
  # * **Unassociating**\
@@ -40677,7 +40942,7 @@ class DescribeIpv6GatewaysRequest(TeaModel):
40677
40942
  self.ipv_6gateway_id = ipv_6gateway_id
40678
40943
  # The name of the IPv6 gateway.
40679
40944
  #
40680
- # 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://`.
40681
40946
  self.name = name
40682
40947
  self.owner_account = owner_account
40683
40948
  self.owner_id = owner_id
@@ -40687,7 +40952,7 @@ class DescribeIpv6GatewaysRequest(TeaModel):
40687
40952
  self.page_size = page_size
40688
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.
40689
40954
  self.region_id = region_id
40690
- # The ID of the resource group.
40955
+ # The ID of the resource group to which the IPv6 gateway belongs.
40691
40956
  self.resource_group_id = resource_group_id
40692
40957
  self.resource_owner_account = resource_owner_account
40693
40958
  self.resource_owner_id = resource_owner_id
@@ -40854,10 +41119,11 @@ class DescribeIpv6GatewaysResponseBodyIpv6GatewaysIpv6Gateway(TeaModel):
40854
41119
  tags: DescribeIpv6GatewaysResponseBodyIpv6GatewaysIpv6GatewayTags = None,
40855
41120
  vpc_id: str = None,
40856
41121
  ):
40857
- # The state of the IPv6 gateway. Valid values:
41122
+ # The status of the IPv6 gateway. Valid values:
40858
41123
  #
40859
- # * **Normal**: The IPv6 gateway runs as expected.
40860
- # * **FinancialLocked:** The IPv6 gateway is locked due to overdue payments.
41124
+ # * **Normal**\
41125
+ # * **FinancialLocked**\
41126
+ # * **SecurityLocked**\
40861
41127
  self.business_status = business_status
40862
41128
  # The time when the IPv6 gateway was created.
40863
41129
  self.creation_time = creation_time
@@ -40875,12 +41141,12 @@ class DescribeIpv6GatewaysResponseBodyIpv6GatewaysIpv6Gateway(TeaModel):
40875
41141
  self.name = name
40876
41142
  # The ID of the region in which the IPv6 gateway is deployed.
40877
41143
  self.region_id = region_id
40878
- # The ID of the resource group.
41144
+ # The resource group ID.
40879
41145
  self.resource_group_id = resource_group_id
40880
41146
  # The status of the IPv6 gateway. Valid values:
40881
41147
  #
40882
- # * **Pending**: The IPv6 gateway is being configured.
40883
- # * **Available**: The IPv6 gateway is available.
41148
+ # * **Pending**\
41149
+ # * **Available**\
40884
41150
  self.status = status
40885
41151
  # The information about the tags.
40886
41152
  self.tags = tags
@@ -45516,6 +45782,7 @@ class DescribeRouteEntryListResponseBodyRouteEntrysRouteEntry(TeaModel):
45516
45782
  gmt_modified: str = None,
45517
45783
  ip_version: str = None,
45518
45784
  next_hops: DescribeRouteEntryListResponseBodyRouteEntrysRouteEntryNextHops = None,
45785
+ origin: str = None,
45519
45786
  route_entry_id: str = None,
45520
45787
  route_entry_name: str = None,
45521
45788
  route_table_id: str = None,
@@ -45536,6 +45803,7 @@ class DescribeRouteEntryListResponseBodyRouteEntrysRouteEntry(TeaModel):
45536
45803
  self.ip_version = ip_version
45537
45804
  # The information about the next hop.
45538
45805
  self.next_hops = next_hops
45806
+ self.origin = origin
45539
45807
  # The ID of the route.
45540
45808
  self.route_entry_id = route_entry_id
45541
45809
  # The route name.
@@ -45580,6 +45848,8 @@ class DescribeRouteEntryListResponseBodyRouteEntrysRouteEntry(TeaModel):
45580
45848
  result['IpVersion'] = self.ip_version
45581
45849
  if self.next_hops is not None:
45582
45850
  result['NextHops'] = self.next_hops.to_map()
45851
+ if self.origin is not None:
45852
+ result['Origin'] = self.origin
45583
45853
  if self.route_entry_id is not None:
45584
45854
  result['RouteEntryId'] = self.route_entry_id
45585
45855
  if self.route_entry_name is not None:
@@ -45607,6 +45877,8 @@ class DescribeRouteEntryListResponseBodyRouteEntrysRouteEntry(TeaModel):
45607
45877
  if m.get('NextHops') is not None:
45608
45878
  temp_model = DescribeRouteEntryListResponseBodyRouteEntrysRouteEntryNextHops()
45609
45879
  self.next_hops = temp_model.from_map(m['NextHops'])
45880
+ if m.get('Origin') is not None:
45881
+ self.origin = m.get('Origin')
45610
45882
  if m.get('RouteEntryId') is not None:
45611
45883
  self.route_entry_id = m.get('RouteEntryId')
45612
45884
  if m.get('RouteEntryName') is not None:
@@ -46059,6 +46331,7 @@ class DescribeRouteTableListResponseBodyRouterTableListRouterTableListType(TeaMo
46059
46331
  gateway_ids: DescribeRouteTableListResponseBodyRouterTableListRouterTableListTypeGatewayIds = None,
46060
46332
  owner_id: int = None,
46061
46333
  resource_group_id: str = None,
46334
+ route_propagation_enable: bool = None,
46062
46335
  route_table_id: str = None,
46063
46336
  route_table_name: str = None,
46064
46337
  route_table_type: str = None,
@@ -46084,6 +46357,7 @@ class DescribeRouteTableListResponseBodyRouterTableListRouterTableListType(TeaMo
46084
46357
  self.owner_id = owner_id
46085
46358
  # The ID of the resource group to which the route table belongs.
46086
46359
  self.resource_group_id = resource_group_id
46360
+ self.route_propagation_enable = route_propagation_enable
46087
46361
  # The ID of the route table.
46088
46362
  self.route_table_id = route_table_id
46089
46363
  # The name of the route table.
@@ -46139,6 +46413,8 @@ class DescribeRouteTableListResponseBodyRouterTableListRouterTableListType(TeaMo
46139
46413
  result['OwnerId'] = self.owner_id
46140
46414
  if self.resource_group_id is not None:
46141
46415
  result['ResourceGroupId'] = self.resource_group_id
46416
+ if self.route_propagation_enable is not None:
46417
+ result['RoutePropagationEnable'] = self.route_propagation_enable
46142
46418
  if self.route_table_id is not None:
46143
46419
  result['RouteTableId'] = self.route_table_id
46144
46420
  if self.route_table_name is not None:
@@ -46174,6 +46450,8 @@ class DescribeRouteTableListResponseBodyRouterTableListRouterTableListType(TeaMo
46174
46450
  self.owner_id = m.get('OwnerId')
46175
46451
  if m.get('ResourceGroupId') is not None:
46176
46452
  self.resource_group_id = m.get('ResourceGroupId')
46453
+ if m.get('RoutePropagationEnable') is not None:
46454
+ self.route_propagation_enable = m.get('RoutePropagationEnable')
46177
46455
  if m.get('RouteTableId') is not None:
46178
46456
  self.route_table_id = m.get('RouteTableId')
46179
46457
  if m.get('RouteTableName') is not None:
@@ -53322,6 +53600,8 @@ class DescribeVirtualBorderRoutersResponseBodyVirtualBorderRouterSetVirtualBorde
53322
53600
  description: str = None,
53323
53601
  detect_multiplier: int = None,
53324
53602
  ecc_id: str = None,
53603
+ ecr_attatch_status: str = None,
53604
+ ecr_id: str = None,
53325
53605
  enable_ipv_6: bool = None,
53326
53606
  local_gateway_ip: str = None,
53327
53607
  local_ipv_6gateway_ip: str = None,
@@ -53341,6 +53621,7 @@ class DescribeVirtualBorderRoutersResponseBodyVirtualBorderRouterSetVirtualBorde
53341
53621
  recovery_time: str = None,
53342
53622
  resource_group_id: str = None,
53343
53623
  route_table_id: str = None,
53624
+ sitelink_enable: bool = None,
53344
53625
  status: str = None,
53345
53626
  tags: DescribeVirtualBorderRoutersResponseBodyVirtualBorderRouterSetVirtualBorderRouterTypeTags = None,
53346
53627
  termination_time: str = None,
@@ -53375,6 +53656,8 @@ class DescribeVirtualBorderRoutersResponseBodyVirtualBorderRouterSetVirtualBorde
53375
53656
  self.detect_multiplier = detect_multiplier
53376
53657
  # The ID of the ECC instance.
53377
53658
  self.ecc_id = ecc_id
53659
+ self.ecr_attatch_status = ecr_attatch_status
53660
+ self.ecr_id = ecr_id
53378
53661
  # Indicates whether IPv6 is enabled. Valid values:
53379
53662
  #
53380
53663
  # * **true**\
@@ -53433,6 +53716,7 @@ class DescribeVirtualBorderRoutersResponseBodyVirtualBorderRouterSetVirtualBorde
53433
53716
  self.resource_group_id = resource_group_id
53434
53717
  # The ID of the VBR route table.
53435
53718
  self.route_table_id = route_table_id
53719
+ self.sitelink_enable = sitelink_enable
53436
53720
  # The status of the VBR. Valid values:
53437
53721
  #
53438
53722
  # * **unconfirmed**\
@@ -53491,6 +53775,10 @@ class DescribeVirtualBorderRoutersResponseBodyVirtualBorderRouterSetVirtualBorde
53491
53775
  result['DetectMultiplier'] = self.detect_multiplier
53492
53776
  if self.ecc_id is not None:
53493
53777
  result['EccId'] = self.ecc_id
53778
+ if self.ecr_attatch_status is not None:
53779
+ result['EcrAttatchStatus'] = self.ecr_attatch_status
53780
+ if self.ecr_id is not None:
53781
+ result['EcrId'] = self.ecr_id
53494
53782
  if self.enable_ipv_6 is not None:
53495
53783
  result['EnableIpv6'] = self.enable_ipv_6
53496
53784
  if self.local_gateway_ip is not None:
@@ -53529,6 +53817,8 @@ class DescribeVirtualBorderRoutersResponseBodyVirtualBorderRouterSetVirtualBorde
53529
53817
  result['ResourceGroupId'] = self.resource_group_id
53530
53818
  if self.route_table_id is not None:
53531
53819
  result['RouteTableId'] = self.route_table_id
53820
+ if self.sitelink_enable is not None:
53821
+ result['SitelinkEnable'] = self.sitelink_enable
53532
53822
  if self.status is not None:
53533
53823
  result['Status'] = self.status
53534
53824
  if self.tags is not None:
@@ -53571,6 +53861,10 @@ class DescribeVirtualBorderRoutersResponseBodyVirtualBorderRouterSetVirtualBorde
53571
53861
  self.detect_multiplier = m.get('DetectMultiplier')
53572
53862
  if m.get('EccId') is not None:
53573
53863
  self.ecc_id = m.get('EccId')
53864
+ if m.get('EcrAttatchStatus') is not None:
53865
+ self.ecr_attatch_status = m.get('EcrAttatchStatus')
53866
+ if m.get('EcrId') is not None:
53867
+ self.ecr_id = m.get('EcrId')
53574
53868
  if m.get('EnableIpv6') is not None:
53575
53869
  self.enable_ipv_6 = m.get('EnableIpv6')
53576
53870
  if m.get('LocalGatewayIp') is not None:
@@ -53609,6 +53903,8 @@ class DescribeVirtualBorderRoutersResponseBodyVirtualBorderRouterSetVirtualBorde
53609
53903
  self.resource_group_id = m.get('ResourceGroupId')
53610
53904
  if m.get('RouteTableId') is not None:
53611
53905
  self.route_table_id = m.get('RouteTableId')
53906
+ if m.get('SitelinkEnable') is not None:
53907
+ self.sitelink_enable = m.get('SitelinkEnable')
53612
53908
  if m.get('Status') is not None:
53613
53909
  self.status = m.get('Status')
53614
53910
  if m.get('Tags') is not None:
@@ -54395,6 +54691,92 @@ class DescribeVpcAttributeResponseBodyAssociatedCens(TeaModel):
54395
54691
  return self
54396
54692
 
54397
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
+
54398
54780
  class DescribeVpcAttributeResponseBodyCloudResourcesCloudResourceSetType(TeaModel):
54399
54781
  def __init__(
54400
54782
  self,
@@ -54701,6 +55083,7 @@ class DescribeVpcAttributeResponseBody(TeaModel):
54701
55083
  def __init__(
54702
55084
  self,
54703
55085
  associated_cens: DescribeVpcAttributeResponseBodyAssociatedCens = None,
55086
+ associated_propagation_sources: DescribeVpcAttributeResponseBodyAssociatedPropagationSources = None,
54704
55087
  cidr_block: str = None,
54705
55088
  classic_link_enabled: bool = None,
54706
55089
  cloud_resources: DescribeVpcAttributeResponseBodyCloudResources = None,
@@ -54730,6 +55113,7 @@ class DescribeVpcAttributeResponseBody(TeaModel):
54730
55113
  #
54731
55114
  # If the VPC is not attached to a CEN instance, the parameter is not returned.
54732
55115
  self.associated_cens = associated_cens
55116
+ self.associated_propagation_sources = associated_propagation_sources
54733
55117
  # The IPv4 CIDR block of the VPC.
54734
55118
  self.cidr_block = cidr_block
54735
55119
  # Indicates whether the ClassicLink feature is enabled. Valid values:
@@ -54799,6 +55183,8 @@ class DescribeVpcAttributeResponseBody(TeaModel):
54799
55183
  def validate(self):
54800
55184
  if self.associated_cens:
54801
55185
  self.associated_cens.validate()
55186
+ if self.associated_propagation_sources:
55187
+ self.associated_propagation_sources.validate()
54802
55188
  if self.cloud_resources:
54803
55189
  self.cloud_resources.validate()
54804
55190
  if self.ipv_6cidr_blocks:
@@ -54820,6 +55206,8 @@ class DescribeVpcAttributeResponseBody(TeaModel):
54820
55206
  result = dict()
54821
55207
  if self.associated_cens is not None:
54822
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()
54823
55211
  if self.cidr_block is not None:
54824
55212
  result['CidrBlock'] = self.cidr_block
54825
55213
  if self.classic_link_enabled is not None:
@@ -54875,6 +55263,9 @@ class DescribeVpcAttributeResponseBody(TeaModel):
54875
55263
  if m.get('AssociatedCens') is not None:
54876
55264
  temp_model = DescribeVpcAttributeResponseBodyAssociatedCens()
54877
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'])
54878
55269
  if m.get('CidrBlock') is not None:
54879
55270
  self.cidr_block = m.get('CidrBlock')
54880
55271
  if m.get('ClassicLinkEnabled') is not None:
@@ -57531,9 +57922,9 @@ class DescribeVpnConnectionsRequest(TeaModel):
57531
57922
  #
57532
57923
  # You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.
57533
57924
  self.region_id = region_id
57534
- # IPsec连接所属的资源组ID。
57925
+ # The ID of the resource group to which the IPsec-VPN connection belongs.
57535
57926
  #
57536
- # 您可以调用[ListResourceGroups](~~158855~~)接口查询资源组ID
57927
+ # You can call the [ListResourceGroups](~~158855~~) operation to query the resource group ID.
57537
57928
  self.resource_group_id = resource_group_id
57538
57929
  self.resource_owner_account = resource_owner_account
57539
57930
  self.resource_owner_id = resource_owner_id
@@ -59211,9 +59602,9 @@ class DescribeVpnGatewayResponseBodyTagsTag(TeaModel):
59211
59602
  key: str = None,
59212
59603
  value: str = None,
59213
59604
  ):
59214
- # The tag key.
59605
+ # The key of tag N.
59215
59606
  self.key = key
59216
- # The tag value.
59607
+ # The value of tag N.
59217
59608
  self.value = value
59218
59609
 
59219
59610
  def validate(self):
@@ -59369,7 +59760,7 @@ class DescribeVpnGatewayResponseBody(TeaModel):
59369
59760
  self.reservation_data = reservation_data
59370
59761
  # The ID of the resource group to which the VPN gateway belongs.
59371
59762
  #
59372
- # 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.
59373
59764
  self.resource_group_id = resource_group_id
59374
59765
  # The maximum bandwidth of the VPN gateway. Unit: Mbit/s.
59375
59766
  self.spec = spec
@@ -59428,7 +59819,7 @@ class DescribeVpnGatewayResponseBody(TeaModel):
59428
59819
  self.vpn_gateway_id = vpn_gateway_id
59429
59820
  # The type of the VPN gateway.
59430
59821
  #
59431
- # Only **Normal** may be returned, which indicates a standard NAT gateway.
59822
+ # Only **Normal** may be returned, which indicates a standard VPN gateway.
59432
59823
  self.vpn_type = vpn_type
59433
59824
 
59434
59825
  def validate(self):
@@ -68399,10 +68790,44 @@ class ListDhcpOptionsSetsResponse(TeaModel):
68399
68790
  return self
68400
68791
 
68401
68792
 
68793
+ class ListEnhanhcedNatGatewayAvailableZonesRequestFilter(TeaModel):
68794
+ def __init__(
68795
+ self,
68796
+ key: str = None,
68797
+ value: str = None,
68798
+ ):
68799
+ self.key = key
68800
+ self.value = value
68801
+
68802
+ def validate(self):
68803
+ pass
68804
+
68805
+ def to_map(self):
68806
+ _map = super().to_map()
68807
+ if _map is not None:
68808
+ return _map
68809
+
68810
+ result = dict()
68811
+ if self.key is not None:
68812
+ result['Key'] = self.key
68813
+ if self.value is not None:
68814
+ result['Value'] = self.value
68815
+ return result
68816
+
68817
+ def from_map(self, m: dict = None):
68818
+ m = m or dict()
68819
+ if m.get('Key') is not None:
68820
+ self.key = m.get('Key')
68821
+ if m.get('Value') is not None:
68822
+ self.value = m.get('Value')
68823
+ return self
68824
+
68825
+
68402
68826
  class ListEnhanhcedNatGatewayAvailableZonesRequest(TeaModel):
68403
68827
  def __init__(
68404
68828
  self,
68405
68829
  accept_language: str = None,
68830
+ filter: List[ListEnhanhcedNatGatewayAvailableZonesRequestFilter] = None,
68406
68831
  owner_account: str = None,
68407
68832
  owner_id: int = None,
68408
68833
  region_id: str = None,
@@ -68414,6 +68839,7 @@ class ListEnhanhcedNatGatewayAvailableZonesRequest(TeaModel):
68414
68839
  # * **zh-CN** (default): Chinese
68415
68840
  # * **en-US**: English
68416
68841
  self.accept_language = accept_language
68842
+ self.filter = filter
68417
68843
  self.owner_account = owner_account
68418
68844
  self.owner_id = owner_id
68419
68845
  # The ID of the region that you want to query.
@@ -68426,7 +68852,10 @@ class ListEnhanhcedNatGatewayAvailableZonesRequest(TeaModel):
68426
68852
  self.resource_owner_id = resource_owner_id
68427
68853
 
68428
68854
  def validate(self):
68429
- pass
68855
+ if self.filter:
68856
+ for k in self.filter:
68857
+ if k:
68858
+ k.validate()
68430
68859
 
68431
68860
  def to_map(self):
68432
68861
  _map = super().to_map()
@@ -68436,6 +68865,10 @@ class ListEnhanhcedNatGatewayAvailableZonesRequest(TeaModel):
68436
68865
  result = dict()
68437
68866
  if self.accept_language is not None:
68438
68867
  result['AcceptLanguage'] = self.accept_language
68868
+ result['Filter'] = []
68869
+ if self.filter is not None:
68870
+ for k in self.filter:
68871
+ result['Filter'].append(k.to_map() if k else None)
68439
68872
  if self.owner_account is not None:
68440
68873
  result['OwnerAccount'] = self.owner_account
68441
68874
  if self.owner_id is not None:
@@ -68452,6 +68885,11 @@ class ListEnhanhcedNatGatewayAvailableZonesRequest(TeaModel):
68452
68885
  m = m or dict()
68453
68886
  if m.get('AcceptLanguage') is not None:
68454
68887
  self.accept_language = m.get('AcceptLanguage')
68888
+ self.filter = []
68889
+ if m.get('Filter') is not None:
68890
+ for k in m.get('Filter'):
68891
+ temp_model = ListEnhanhcedNatGatewayAvailableZonesRequestFilter()
68892
+ self.filter.append(temp_model.from_map(k))
68455
68893
  if m.get('OwnerAccount') is not None:
68456
68894
  self.owner_account = m.get('OwnerAccount')
68457
68895
  if m.get('OwnerId') is not None:
@@ -68634,7 +69072,9 @@ class ListFullNatEntriesRequest(TeaModel):
68634
69072
  #
68635
69073
  # > You must specify at least one of **FullNatTableId** and **NatGatewayId**.
68636
69074
  self.nat_gateway_id = nat_gateway_id
69075
+ # The NAT IP address that provides address translation in FULLNAT entries.
68637
69076
  self.nat_ip = nat_ip
69077
+ # The frontend port to be modified in the mapping of FULLNAT port. Valid values: **1** to **65535**.
68638
69078
  self.nat_ip_port = nat_ip_port
68639
69079
  # The ID of the elastic network interface (ENI) that you want to query.
68640
69080
  self.network_interface_ids = network_interface_ids
@@ -71874,6 +72314,7 @@ class ListPublicIpAddressPoolsRequest(TeaModel):
71874
72314
  resource_group_id: str = None,
71875
72315
  resource_owner_account: str = None,
71876
72316
  resource_owner_id: int = None,
72317
+ security_protection_enabled: bool = None,
71877
72318
  status: str = None,
71878
72319
  tags: List[ListPublicIpAddressPoolsRequestTags] = None,
71879
72320
  ):
@@ -71925,6 +72366,7 @@ class ListPublicIpAddressPoolsRequest(TeaModel):
71925
72366
  self.resource_group_id = resource_group_id
71926
72367
  self.resource_owner_account = resource_owner_account
71927
72368
  self.resource_owner_id = resource_owner_id
72369
+ self.security_protection_enabled = security_protection_enabled
71928
72370
  # The status of the IP address pool. Valid values:
71929
72371
  #
71930
72372
  # * **Created**\
@@ -71970,6 +72412,8 @@ class ListPublicIpAddressPoolsRequest(TeaModel):
71970
72412
  result['ResourceOwnerAccount'] = self.resource_owner_account
71971
72413
  if self.resource_owner_id is not None:
71972
72414
  result['ResourceOwnerId'] = self.resource_owner_id
72415
+ if self.security_protection_enabled is not None:
72416
+ result['SecurityProtectionEnabled'] = self.security_protection_enabled
71973
72417
  if self.status is not None:
71974
72418
  result['Status'] = self.status
71975
72419
  result['Tags'] = []
@@ -72004,6 +72448,8 @@ class ListPublicIpAddressPoolsRequest(TeaModel):
72004
72448
  self.resource_owner_account = m.get('ResourceOwnerAccount')
72005
72449
  if m.get('ResourceOwnerId') is not None:
72006
72450
  self.resource_owner_id = m.get('ResourceOwnerId')
72451
+ if m.get('SecurityProtectionEnabled') is not None:
72452
+ self.security_protection_enabled = m.get('SecurityProtectionEnabled')
72007
72453
  if m.get('Status') is not None:
72008
72454
  self.status = m.get('Status')
72009
72455
  self.tags = []
@@ -72062,6 +72508,7 @@ class ListPublicIpAddressPoolsResponseBodyPublicIpAddressPoolList(TeaModel):
72062
72508
  public_ip_address_pool_id: str = None,
72063
72509
  region_id: str = None,
72064
72510
  resource_group_id: str = None,
72511
+ security_protection_types: List[str] = None,
72065
72512
  share_type: str = None,
72066
72513
  status: str = None,
72067
72514
  tags: List[ListPublicIpAddressPoolsResponseBodyPublicIpAddressPoolListTags] = None,
@@ -72112,6 +72559,7 @@ class ListPublicIpAddressPoolsResponseBodyPublicIpAddressPoolList(TeaModel):
72112
72559
  self.region_id = region_id
72113
72560
  # The ID of the resource group to which the IP address pool belongs.
72114
72561
  self.resource_group_id = resource_group_id
72562
+ self.security_protection_types = security_protection_types
72115
72563
  # Indicates whether the IP address pool is shared.
72116
72564
  #
72117
72565
  # * Only **Shared** may be returned.
@@ -72169,6 +72617,8 @@ class ListPublicIpAddressPoolsResponseBodyPublicIpAddressPoolList(TeaModel):
72169
72617
  result['RegionId'] = self.region_id
72170
72618
  if self.resource_group_id is not None:
72171
72619
  result['ResourceGroupId'] = self.resource_group_id
72620
+ if self.security_protection_types is not None:
72621
+ result['SecurityProtectionTypes'] = self.security_protection_types
72172
72622
  if self.share_type is not None:
72173
72623
  result['ShareType'] = self.share_type
72174
72624
  if self.status is not None:
@@ -72209,6 +72659,8 @@ class ListPublicIpAddressPoolsResponseBodyPublicIpAddressPoolList(TeaModel):
72209
72659
  self.region_id = m.get('RegionId')
72210
72660
  if m.get('ResourceGroupId') is not None:
72211
72661
  self.resource_group_id = m.get('ResourceGroupId')
72662
+ if m.get('SecurityProtectionTypes') is not None:
72663
+ self.security_protection_types = m.get('SecurityProtectionTypes')
72212
72664
  if m.get('ShareType') is not None:
72213
72665
  self.share_type = m.get('ShareType')
72214
72666
  if m.get('Status') is not None:
@@ -77036,7 +77488,7 @@ class ModifyCustomerGatewayAttributeResponseBody(TeaModel):
77036
77488
  self.request_id = request_id
77037
77489
  # The ID of the resource group to which the customer gateway belongs.
77038
77490
  #
77039
- # 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.
77040
77492
  self.resource_group_id = resource_group_id
77041
77493
 
77042
77494
  def validate(self):
@@ -82298,9 +82750,7 @@ class ModifySslVpnServerResponseBody(TeaModel):
82298
82750
  self.request_id = request_id
82299
82751
  # The ID of the resource group to which the SSL server belongs.
82300
82752
  #
82301
- # The SSL server has the same resource group as its associated VPN gateway instance.
82302
- #
82303
- # 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.
82304
82754
  self.resource_group_id = resource_group_id
82305
82755
  # The ID of the SSL server.
82306
82756
  self.ssl_vpn_server_id = ssl_vpn_server_id
@@ -83869,6 +84319,7 @@ class ModifyVirtualBorderRouterAttributeRequest(TeaModel):
83869
84319
  region_id: str = None,
83870
84320
  resource_owner_account: str = None,
83871
84321
  resource_owner_id: int = None,
84322
+ sitelink_enable: bool = None,
83872
84323
  vbr_id: str = None,
83873
84324
  vlan_id: int = None,
83874
84325
  ):
@@ -83944,6 +84395,7 @@ class ModifyVirtualBorderRouterAttributeRequest(TeaModel):
83944
84395
  self.region_id = region_id
83945
84396
  self.resource_owner_account = resource_owner_account
83946
84397
  self.resource_owner_id = resource_owner_id
84398
+ self.sitelink_enable = sitelink_enable
83947
84399
  # The VBR ID.
83948
84400
  self.vbr_id = vbr_id
83949
84401
  # The VLAN ID of the VBR. Valid values: **0 to 2999**.
@@ -84002,6 +84454,8 @@ class ModifyVirtualBorderRouterAttributeRequest(TeaModel):
84002
84454
  result['ResourceOwnerAccount'] = self.resource_owner_account
84003
84455
  if self.resource_owner_id is not None:
84004
84456
  result['ResourceOwnerId'] = self.resource_owner_id
84457
+ if self.sitelink_enable is not None:
84458
+ result['SitelinkEnable'] = self.sitelink_enable
84005
84459
  if self.vbr_id is not None:
84006
84460
  result['VbrId'] = self.vbr_id
84007
84461
  if self.vlan_id is not None:
@@ -84052,6 +84506,8 @@ class ModifyVirtualBorderRouterAttributeRequest(TeaModel):
84052
84506
  self.resource_owner_account = m.get('ResourceOwnerAccount')
84053
84507
  if m.get('ResourceOwnerId') is not None:
84054
84508
  self.resource_owner_id = m.get('ResourceOwnerId')
84509
+ if m.get('SitelinkEnable') is not None:
84510
+ self.sitelink_enable = m.get('SitelinkEnable')
84055
84511
  if m.get('VbrId') is not None:
84056
84512
  self.vbr_id = m.get('VbrId')
84057
84513
  if m.get('VlanId') is not None:
@@ -84649,12 +85105,16 @@ class ModifyVpnAttachmentAttributeRequest(TeaModel):
84649
85105
  #
84650
85106
  # * **BgpConfig.LocalAsn**: the autonomous system number (ASN) on the Alibaba Cloud side. Valid values: **1** to **4294967295**.
84651
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
+ #
84652
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.
84653
85113
  #
84654
85114
  # * **LocalBgpIp:** the BGP IP address on the Alibaba Cloud side. This IP address must fall within the CIDR block of the IPsec tunnel.
84655
85115
  #
84656
- # >* 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~~).
84657
- # >* 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.
84658
85118
  self.bgp_config = bgp_config
84659
85119
  # The client token that is used to ensure the idempotence of the request.
84660
85120
  #
@@ -84679,25 +85139,25 @@ class ModifyVpnAttachmentAttributeRequest(TeaModel):
84679
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.
84680
85140
  # * **false**\
84681
85141
  self.enable_nat_traversal = enable_nat_traversal
84682
- # The health check configuration:
85142
+ # The health check configurations:
84683
85143
  #
84684
85144
  # * **HealthCheckConfig.enable**: specifies whether to enable the health check feature. Valid values:
84685
85145
  #
84686
85146
  # * **true**\
84687
85147
  # * **false**\
84688
85148
  #
84689
- # * **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.
84690
85150
  #
84691
- # * **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.
84692
85152
  #
84693
85153
  # * **HealthCheckConfig.interval**: the interval between two consecutive health checks. Unit: seconds.
84694
85154
  #
84695
- # * **HealthCheckConfig.retry**: the maximum number of health check retries.
85155
+ # * **HealthCheckConfig.retry:** the maximum number of health check retries.
84696
85156
  #
84697
85157
  # * **HealthCheckConfig.Policy**: specifies whether to withdraw advertised routes when health checks fail. Valid values:
84698
85158
  #
84699
- # - **revoke_route**: withdraws advertised routes.
84700
- # - **reserve_route**: does not withdraw advertised routes.
85159
+ # * **revoke_route**\
85160
+ # * **reserve_route**\
84701
85161
  self.health_check_config = health_check_config
84702
85162
  # The configuration of Phase 1 negotiations:
84703
85163
  #
@@ -85222,7 +85682,7 @@ class ModifyVpnAttachmentAttributeResponseBody(TeaModel):
85222
85682
  self.request_id = request_id
85223
85683
  # The ID of the resource group to which the IPsec-VPN connection belongs.
85224
85684
  #
85225
- # 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.
85226
85686
  self.resource_group_id = resource_group_id
85227
85687
  # The bandwidth specification of the IPsec-VPN connection.
85228
85688
  #
@@ -85410,13 +85870,13 @@ class ModifyVpnConnectionAttributeRequestTunnelOptionsSpecificationTunnelBgpConf
85410
85870
  local_bgp_ip: str = None,
85411
85871
  tunnel_cidr: str = None,
85412
85872
  ):
85413
- # 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**.
85414
85874
  #
85415
- # > * You can specify or modify this parameter if BGP is enabled for the IPsec-VPN connection (**EnableTunnelsBgp** is set to **true**).
85416
- # > * 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~~).
85417
- # > * 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.
85418
85878
  self.local_asn = local_asn
85419
- # 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.
85420
85880
  self.local_bgp_ip = local_bgp_ip
85421
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.
85422
85882
  #
@@ -85474,7 +85934,7 @@ class ModifyVpnConnectionAttributeRequestTunnelOptionsSpecificationTunnelIkeConf
85474
85934
  self.ike_enc_alg = ike_enc_alg
85475
85935
  # The SA lifetime that is determined by Phase 1 negotiations. Unit: seconds. Valid values: **0** to **86400**.
85476
85936
  self.ike_lifetime = ike_lifetime
85477
- # The negotiation mode of IKE. Valid values:
85937
+ # The IKE negotiation mode. Valid values:
85478
85938
  #
85479
85939
  # * **main**: This mode offers higher security during negotiations.
85480
85940
  # * **aggressive**: This mode is faster and has a higher success rate.
@@ -85483,7 +85943,7 @@ class ModifyVpnConnectionAttributeRequestTunnelOptionsSpecificationTunnelIkeConf
85483
85943
  self.ike_pfs = ike_pfs
85484
85944
  # The version of the IKE protocol. Valid values: **ikev1** and **ikev2**.
85485
85945
  #
85486
- # 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.
85487
85947
  self.ike_version = ike_version
85488
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.
85489
85949
  #
@@ -85491,7 +85951,7 @@ class ModifyVpnConnectionAttributeRequestTunnelOptionsSpecificationTunnelIkeConf
85491
85951
  self.local_id = local_id
85492
85952
  # The pre-shared key, which is used for identity authentication between the tunnel and the tunnel peer.
85493
85953
  #
85494
- # * 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: ``~!\`@#$%^&*()_-+={}[]|;:\",.<>/?``
85495
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.
85496
85956
  #
85497
85957
  # > The tunnel and the tunnel peer must use the same pre-shared key. Otherwise, the tunnel cannot be established.
@@ -85636,8 +86096,8 @@ class ModifyVpnConnectionAttributeRequestTunnelOptionsSpecification(TeaModel):
85636
86096
  self.remote_ca_certificate = remote_ca_certificate
85637
86097
  # The tunnel role. Valid values:
85638
86098
  #
85639
- # - **master**: The tunnel is an active tunnel.
85640
- # - **slave**: The tunnel is a standby tunnel.
86099
+ # * **master**: The tunnel is an active tunnel.
86100
+ # * **slave**: The tunnel is a standby tunnel.
85641
86101
  self.role = role
85642
86102
  # The Border Gateway Protocol (BGP) configurations of the tunnel.
85643
86103
  self.tunnel_bgp_config = tunnel_bgp_config
@@ -85736,23 +86196,27 @@ class ModifyVpnConnectionAttributeRequest(TeaModel):
85736
86196
  # * **true**\
85737
86197
  # * **false**\
85738
86198
  self.auto_config_route = auto_config_route
85739
- # 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.
85740
86200
  #
85741
- # The Border Gateway Protocol (BGP) configuration:
86201
+ # The Border Gateway Protocol (BGP) configurations:
85742
86202
  #
85743
86203
  # * **BgpConfig.EnableBgp:** specifies whether to enable BGP. Valid values: **true** and **false**.
85744
86204
  #
85745
- # * **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**.
85746
86206
  #
85747
- # * **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.
85748
86208
  #
85749
- # >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.
85750
86210
  #
85751
- # * **LocalBgpIp**: the BGP IP address on the Alibaba Cloud side. This IP address must fall within the CIDR block of the IPsec tunnel.
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.
86212
+ #
86213
+ # > The CIDR block of the IPsec tunnel of each IPsec-VPN connection must be unique on a VPN gateway.
86214
+ #
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.
85752
86216
  #
85753
- # > * This parameter is required when the VPN gateway has dynamic BGP enabled.
85754
- # >* 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~~).
85755
- # >* 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.
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.
85756
86220
  self.bgp_config = bgp_config
85757
86221
  # The client token that is used to ensure the idempotence of the request.
85758
86222
  #
@@ -86214,7 +86678,7 @@ class ModifyVpnConnectionAttributeResponseBodyTunnelOptionsSpecificationTunnelOp
86214
86678
  self.ike_lifetime = ike_lifetime
86215
86679
  # The IKE negotiation mode.
86216
86680
  #
86217
- # * **main**: This mode offers higher security during negotiations.
86681
+ # * **main:** This mode offers higher security during negotiations.
86218
86682
  # * **aggressive**: This mode is faster and has a higher success rate.
86219
86683
  self.ike_mode = ike_mode
86220
86684
  # The DH group in the IKE phase.
@@ -86704,9 +87168,7 @@ class ModifyVpnConnectionAttributeResponseBody(TeaModel):
86704
87168
  self.request_id = request_id
86705
87169
  # The ID of the resource group to which the IPsec-VPN connection belongs.
86706
87170
  #
86707
- # The IPsec-VPN connection has the same resource group as its associated VPN gateway instance.
86708
- #
86709
- # 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.
86710
87172
  self.resource_group_id = resource_group_id
86711
87173
  # The tunnel configuration of the IPsec-VPN connection.
86712
87174
  #
@@ -89460,6 +89922,146 @@ class ReleaseEipSegmentAddressResponse(TeaModel):
89460
89922
  return self
89461
89923
 
89462
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
+
89463
90065
  class RemoveCommonBandwidthPackageIpRequest(TeaModel):
89464
90066
  def __init__(
89465
90067
  self,