alibabacloud-vpc20160428 6.11.9__py3-none-any.whl → 6.12.1__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.
@@ -4819,17 +4819,20 @@ class AssociateVpcCidrBlockRequest(TeaModel):
4819
4819
  secondary_cidr_mask: int = None,
4820
4820
  vpc_id: str = None,
4821
4821
  ):
4822
- # The IPv6 CIDR block to be added.
4822
+ # The IPv6 CIDR block that you want to add to the VPC.
4823
4823
  #
4824
- # > You must and can specify only one of **SecondaryCidrBlock** and **Ipv6CidrBlock**.
4824
+ # > You can specify only one of **SecondaryCidrBlock** and **Ipv6CidrBlock**.
4825
4825
  self.ipv_6cidr_block = ipv_6cidr_block
4826
4826
  # The version of the IP address. Valid values:
4827
4827
  #
4828
4828
  # * **IPV4**: the IPv4 address.
4829
4829
  # * **IPV6**: the IPv6 address. If you set **IpVersion** to **IPV6** and do not specify **SecondaryCidrBlock**, you can add a secondary IPv6 CIDR block to the VPC.
4830
4830
  self.ip_version = ip_version
4831
- # The ID of the IP Address Manager (IPAM) pool that contains IPv4 addresses.
4831
+ # The ID of the IPAM pool.
4832
4832
  self.ipam_pool_id = ipam_pool_id
4833
+ # Add an IPv6 CIDR block from the IPAM pool to the VPC by entering a mask.
4834
+ #
4835
+ # > To add an IPv6 CIDR block to a VPC, specify at least one of the IPv6CidrBlock and Ipv6CidrMask parameters.
4833
4836
  self.ipv_6cidr_mask = ipv_6cidr_mask
4834
4837
  # The type of the IPv6 CIDR block. Valid values:
4835
4838
  #
@@ -4860,10 +4863,9 @@ class AssociateVpcCidrBlockRequest(TeaModel):
4860
4863
  #
4861
4864
  # > You must and can specify only one of **SecondaryCidrBlock** and **Ipv6CidrBlock**.
4862
4865
  self.secondary_cidr_block = secondary_cidr_block
4863
- # Add secondary CIDR blocks to the VPC from the IPAM pool by entering a mask.
4866
+ # Add an IPv4 CIDR block from the IPAM pool to the VPC by specifying a mask.
4864
4867
  #
4865
- # >
4866
- # > To add a secondary CIDR block to the VPC using the specified IPAM pool, you must specify at least one of the parameters, SecondaryCidrBlock or SecondaryCidrMask.
4868
+ # > If you use an IPAM pool, you must specify at least one of SecondaryCidrBlock and SecondaryCidrMask.
4867
4869
  self.secondary_cidr_mask = secondary_cidr_mask
4868
4870
  # The ID of the VPC to which you want to add a secondary CIDR block.
4869
4871
  #
@@ -13146,7 +13148,9 @@ class CreateNatGatewayRequest(TeaModel):
13146
13148
  icmp_reply_enabled: bool = None,
13147
13149
  instance_charge_type: str = None,
13148
13150
  internet_charge_type: str = None,
13151
+ ipv_4prefix: str = None,
13149
13152
  name: str = None,
13153
+ nat_ip: str = None,
13150
13154
  nat_type: str = None,
13151
13155
  network_type: str = None,
13152
13156
  owner_account: str = None,
@@ -13199,12 +13203,14 @@ class CreateNatGatewayRequest(TeaModel):
13199
13203
  self.instance_charge_type = instance_charge_type
13200
13204
  # The metering method of the NAT gateway. Set the value to **PayByLcu**, which specifies the pay-by-CU metering method.
13201
13205
  self.internet_charge_type = internet_charge_type
13206
+ self.ipv_4prefix = ipv_4prefix
13202
13207
  # The name of the NAT gateway.
13203
13208
  #
13204
13209
  # The name must be 2 to 128 characters in length and can contain letters, digits, underscores (_), and hyphens (-). The name must start with a letter.
13205
13210
  #
13206
13211
  # If this parameter is not set, the system assigns a default name to the NAT gateway.
13207
13212
  self.name = name
13213
+ self.nat_ip = nat_ip
13208
13214
  # The type of NAT gateway. Set the value to **Enhanced**, which specifies enhanced NAT gateway.
13209
13215
  self.nat_type = nat_type
13210
13216
  # The network type of the NAT gateway. Valid values:
@@ -13280,8 +13286,12 @@ class CreateNatGatewayRequest(TeaModel):
13280
13286
  result['InstanceChargeType'] = self.instance_charge_type
13281
13287
  if self.internet_charge_type is not None:
13282
13288
  result['InternetChargeType'] = self.internet_charge_type
13289
+ if self.ipv_4prefix is not None:
13290
+ result['Ipv4Prefix'] = self.ipv_4prefix
13283
13291
  if self.name is not None:
13284
13292
  result['Name'] = self.name
13293
+ if self.nat_ip is not None:
13294
+ result['NatIp'] = self.nat_ip
13285
13295
  if self.nat_type is not None:
13286
13296
  result['NatType'] = self.nat_type
13287
13297
  if self.network_type is not None:
@@ -13335,8 +13345,12 @@ class CreateNatGatewayRequest(TeaModel):
13335
13345
  self.instance_charge_type = m.get('InstanceChargeType')
13336
13346
  if m.get('InternetChargeType') is not None:
13337
13347
  self.internet_charge_type = m.get('InternetChargeType')
13348
+ if m.get('Ipv4Prefix') is not None:
13349
+ self.ipv_4prefix = m.get('Ipv4Prefix')
13338
13350
  if m.get('Name') is not None:
13339
13351
  self.name = m.get('Name')
13352
+ if m.get('NatIp') is not None:
13353
+ self.nat_ip = m.get('NatIp')
13340
13354
  if m.get('NatType') is not None:
13341
13355
  self.nat_type = m.get('NatType')
13342
13356
  if m.get('NetworkType') is not None:
@@ -13418,7 +13432,9 @@ class CreateNatGatewayShrinkRequest(TeaModel):
13418
13432
  icmp_reply_enabled: bool = None,
13419
13433
  instance_charge_type: str = None,
13420
13434
  internet_charge_type: str = None,
13435
+ ipv_4prefix: str = None,
13421
13436
  name: str = None,
13437
+ nat_ip: str = None,
13422
13438
  nat_type: str = None,
13423
13439
  network_type: str = None,
13424
13440
  owner_account: str = None,
@@ -13471,12 +13487,14 @@ class CreateNatGatewayShrinkRequest(TeaModel):
13471
13487
  self.instance_charge_type = instance_charge_type
13472
13488
  # The metering method of the NAT gateway. Set the value to **PayByLcu**, which specifies the pay-by-CU metering method.
13473
13489
  self.internet_charge_type = internet_charge_type
13490
+ self.ipv_4prefix = ipv_4prefix
13474
13491
  # The name of the NAT gateway.
13475
13492
  #
13476
13493
  # The name must be 2 to 128 characters in length and can contain letters, digits, underscores (_), and hyphens (-). The name must start with a letter.
13477
13494
  #
13478
13495
  # If this parameter is not set, the system assigns a default name to the NAT gateway.
13479
13496
  self.name = name
13497
+ self.nat_ip = nat_ip
13480
13498
  # The type of NAT gateway. Set the value to **Enhanced**, which specifies enhanced NAT gateway.
13481
13499
  self.nat_type = nat_type
13482
13500
  # The network type of the NAT gateway. Valid values:
@@ -13550,8 +13568,12 @@ class CreateNatGatewayShrinkRequest(TeaModel):
13550
13568
  result['InstanceChargeType'] = self.instance_charge_type
13551
13569
  if self.internet_charge_type is not None:
13552
13570
  result['InternetChargeType'] = self.internet_charge_type
13571
+ if self.ipv_4prefix is not None:
13572
+ result['Ipv4Prefix'] = self.ipv_4prefix
13553
13573
  if self.name is not None:
13554
13574
  result['Name'] = self.name
13575
+ if self.nat_ip is not None:
13576
+ result['NatIp'] = self.nat_ip
13555
13577
  if self.nat_type is not None:
13556
13578
  result['NatType'] = self.nat_type
13557
13579
  if self.network_type is not None:
@@ -13604,8 +13626,12 @@ class CreateNatGatewayShrinkRequest(TeaModel):
13604
13626
  self.instance_charge_type = m.get('InstanceChargeType')
13605
13627
  if m.get('InternetChargeType') is not None:
13606
13628
  self.internet_charge_type = m.get('InternetChargeType')
13629
+ if m.get('Ipv4Prefix') is not None:
13630
+ self.ipv_4prefix = m.get('Ipv4Prefix')
13607
13631
  if m.get('Name') is not None:
13608
13632
  self.name = m.get('Name')
13633
+ if m.get('NatIp') is not None:
13634
+ self.nat_ip = m.get('NatIp')
13609
13635
  if m.get('NatType') is not None:
13610
13636
  self.nat_type = m.get('NatType')
13611
13637
  if m.get('NetworkType') is not None:
@@ -13831,6 +13857,8 @@ class CreateNatIpRequest(TeaModel):
13831
13857
  self,
13832
13858
  client_token: str = None,
13833
13859
  dry_run: bool = None,
13860
+ ipv_4prefix: str = None,
13861
+ ipv_4prefix_count: int = None,
13834
13862
  nat_gateway_id: str = None,
13835
13863
  nat_ip: str = None,
13836
13864
  nat_ip_cidr: str = None,
@@ -13853,6 +13881,8 @@ class CreateNatIpRequest(TeaModel):
13853
13881
  # * **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.
13854
13882
  # * **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.
13855
13883
  self.dry_run = dry_run
13884
+ self.ipv_4prefix = ipv_4prefix
13885
+ self.ipv_4prefix_count = ipv_4prefix_count
13856
13886
  # The ID of the Virtual Private Cloud (VPC) NAT gateway for which you want to create the NAT IP address.
13857
13887
  #
13858
13888
  # This parameter is required.
@@ -13897,6 +13927,10 @@ class CreateNatIpRequest(TeaModel):
13897
13927
  result['ClientToken'] = self.client_token
13898
13928
  if self.dry_run is not None:
13899
13929
  result['DryRun'] = self.dry_run
13930
+ if self.ipv_4prefix is not None:
13931
+ result['Ipv4Prefix'] = self.ipv_4prefix
13932
+ if self.ipv_4prefix_count is not None:
13933
+ result['Ipv4PrefixCount'] = self.ipv_4prefix_count
13900
13934
  if self.nat_gateway_id is not None:
13901
13935
  result['NatGatewayId'] = self.nat_gateway_id
13902
13936
  if self.nat_ip is not None:
@@ -13925,6 +13959,10 @@ class CreateNatIpRequest(TeaModel):
13925
13959
  self.client_token = m.get('ClientToken')
13926
13960
  if m.get('DryRun') is not None:
13927
13961
  self.dry_run = m.get('DryRun')
13962
+ if m.get('Ipv4Prefix') is not None:
13963
+ self.ipv_4prefix = m.get('Ipv4Prefix')
13964
+ if m.get('Ipv4PrefixCount') is not None:
13965
+ self.ipv_4prefix_count = m.get('Ipv4PrefixCount')
13928
13966
  if m.get('NatGatewayId') is not None:
13929
13967
  self.nat_gateway_id = m.get('NatGatewayId')
13930
13968
  if m.get('NatIp') is not None:
@@ -13951,10 +13989,12 @@ class CreateNatIpRequest(TeaModel):
13951
13989
  class CreateNatIpResponseBody(TeaModel):
13952
13990
  def __init__(
13953
13991
  self,
13992
+ ipv_4prefix: str = None,
13954
13993
  nat_ip: str = None,
13955
13994
  nat_ip_id: str = None,
13956
13995
  request_id: str = None,
13957
13996
  ):
13997
+ self.ipv_4prefix = ipv_4prefix
13958
13998
  # The NAT IP address.
13959
13999
  self.nat_ip = nat_ip
13960
14000
  # The ID of the NAT IP address.
@@ -13971,6 +14011,8 @@ class CreateNatIpResponseBody(TeaModel):
13971
14011
  return _map
13972
14012
 
13973
14013
  result = dict()
14014
+ if self.ipv_4prefix is not None:
14015
+ result['Ipv4Prefix'] = self.ipv_4prefix
13974
14016
  if self.nat_ip is not None:
13975
14017
  result['NatIp'] = self.nat_ip
13976
14018
  if self.nat_ip_id is not None:
@@ -13981,6 +14023,8 @@ class CreateNatIpResponseBody(TeaModel):
13981
14023
 
13982
14024
  def from_map(self, m: dict = None):
13983
14025
  m = m or dict()
14026
+ if m.get('Ipv4Prefix') is not None:
14027
+ self.ipv_4prefix = m.get('Ipv4Prefix')
13984
14028
  if m.get('NatIp') is not None:
13985
14029
  self.nat_ip = m.get('NatIp')
13986
14030
  if m.get('NatIpId') is not None:
@@ -15208,6 +15252,8 @@ class CreatePhysicalConnectionOccupancyOrderRequest(TeaModel):
15208
15252
  def __init__(
15209
15253
  self,
15210
15254
  auto_pay: bool = None,
15255
+ auto_renew: bool = None,
15256
+ auto_renew_duration: int = None,
15211
15257
  client_token: str = None,
15212
15258
  instance_charge_type: str = None,
15213
15259
  owner_account: str = None,
@@ -15224,6 +15270,8 @@ class CreatePhysicalConnectionOccupancyOrderRequest(TeaModel):
15224
15270
  # * **true**: yes Make sure that you have a sufficient balance in your account. Otherwise, your order becomes invalid and is automatically canceled.
15225
15271
  # * **false**: disables automatic payment. This is the default value.
15226
15272
  self.auto_pay = auto_pay
15273
+ self.auto_renew = auto_renew
15274
+ self.auto_renew_duration = auto_renew_duration
15227
15275
  # The client token that is used to ensure the idempotence of the request.
15228
15276
  #
15229
15277
  # You can use the client to generate the token, but you must make sure that the token is unique among different requests.
@@ -15268,6 +15316,10 @@ class CreatePhysicalConnectionOccupancyOrderRequest(TeaModel):
15268
15316
  result = dict()
15269
15317
  if self.auto_pay is not None:
15270
15318
  result['AutoPay'] = self.auto_pay
15319
+ if self.auto_renew is not None:
15320
+ result['AutoRenew'] = self.auto_renew
15321
+ if self.auto_renew_duration is not None:
15322
+ result['AutoRenewDuration'] = self.auto_renew_duration
15271
15323
  if self.client_token is not None:
15272
15324
  result['ClientToken'] = self.client_token
15273
15325
  if self.instance_charge_type is not None:
@@ -15294,6 +15346,10 @@ class CreatePhysicalConnectionOccupancyOrderRequest(TeaModel):
15294
15346
  m = m or dict()
15295
15347
  if m.get('AutoPay') is not None:
15296
15348
  self.auto_pay = m.get('AutoPay')
15349
+ if m.get('AutoRenew') is not None:
15350
+ self.auto_renew = m.get('AutoRenew')
15351
+ if m.get('AutoRenewDuration') is not None:
15352
+ self.auto_renew_duration = m.get('AutoRenewDuration')
15297
15353
  if m.get('ClientToken') is not None:
15298
15354
  self.client_token = m.get('ClientToken')
15299
15355
  if m.get('InstanceChargeType') is not None:
@@ -20858,7 +20914,9 @@ class CreateVpcRequest(TeaModel):
20858
20914
  self.ipv_4ipam_pool_id = ipv_4ipam_pool_id
20859
20915
  # The IPv6 CIDR block of the VPC. If you enable IPv6 for a VPC, the system allocates an IPv6 CIDR block. To specify an IPv6 CIDR block, you must call the [AllocateVpcIpv6Cidr](https://help.aliyun.com/document_detail/448916.html) operation to reserve the specified IPv6 CIDR block.
20860
20916
  self.ipv_6cidr_block = ipv_6cidr_block
20917
+ # Add an IPv6 CIDR block from the IPAM pool to the VPC by entering a mask.
20861
20918
  self.ipv_6cidr_mask = ipv_6cidr_mask
20919
+ # The ID of the IP Address Manager (IPAM) pool of the IPv6 type.
20862
20920
  self.ipv_6ipam_pool_id = ipv_6ipam_pool_id
20863
20921
  # The type of the IPv6 CIDR block of the VPC. Valid values:
20864
20922
  #
@@ -27346,6 +27404,9 @@ class DeleteIpv4GatewayRequest(TeaModel):
27346
27404
  # * **true**: performs only a dry run, without performing the actual request. 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.
27347
27405
  # * **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.
27348
27406
  self.dry_run = dry_run
27407
+ # Select the public network mode of the VPC after deleting the IPv4 gateway. The values are:
27408
+ # - **private**: Default value, after deleting the IPv4 gateway, the VPC will become a pure private VPC without public network access capability.
27409
+ # - **public**: After deleting the IPv4 gateway, the VPC\\"s public network access is no longer centrally controlled by the IPv4 gateway, and instances with public IPs bound can access the public network by default.
27349
27410
  self.internet_mode = internet_mode
27350
27411
  # The ID of the IPv4 gateway that you want to delete.
27351
27412
  #
@@ -28097,6 +28158,8 @@ class DeleteNatIpRequest(TeaModel):
28097
28158
  self,
28098
28159
  client_token: str = None,
28099
28160
  dry_run: bool = None,
28161
+ ipv_4prefix: str = None,
28162
+ nat_gateway_id: str = None,
28100
28163
  nat_ip_id: str = None,
28101
28164
  owner_account: str = None,
28102
28165
  owner_id: int = None,
@@ -28115,9 +28178,9 @@ class DeleteNatIpRequest(TeaModel):
28115
28178
  # * **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.
28116
28179
  # * **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.
28117
28180
  self.dry_run = dry_run
28181
+ self.ipv_4prefix = ipv_4prefix
28182
+ self.nat_gateway_id = nat_gateway_id
28118
28183
  # The ID of the NAT IP address that you want to delete.
28119
- #
28120
- # This parameter is required.
28121
28184
  self.nat_ip_id = nat_ip_id
28122
28185
  self.owner_account = owner_account
28123
28186
  self.owner_id = owner_id
@@ -28143,6 +28206,10 @@ class DeleteNatIpRequest(TeaModel):
28143
28206
  result['ClientToken'] = self.client_token
28144
28207
  if self.dry_run is not None:
28145
28208
  result['DryRun'] = self.dry_run
28209
+ if self.ipv_4prefix is not None:
28210
+ result['Ipv4Prefix'] = self.ipv_4prefix
28211
+ if self.nat_gateway_id is not None:
28212
+ result['NatGatewayId'] = self.nat_gateway_id
28146
28213
  if self.nat_ip_id is not None:
28147
28214
  result['NatIpId'] = self.nat_ip_id
28148
28215
  if self.owner_account is not None:
@@ -28163,6 +28230,10 @@ class DeleteNatIpRequest(TeaModel):
28163
28230
  self.client_token = m.get('ClientToken')
28164
28231
  if m.get('DryRun') is not None:
28165
28232
  self.dry_run = m.get('DryRun')
28233
+ if m.get('Ipv4Prefix') is not None:
28234
+ self.ipv_4prefix = m.get('Ipv4Prefix')
28235
+ if m.get('NatGatewayId') is not None:
28236
+ self.nat_gateway_id = m.get('NatGatewayId')
28166
28237
  if m.get('NatIpId') is not None:
28167
28238
  self.nat_ip_id = m.get('NatIpId')
28168
28239
  if m.get('OwnerAccount') is not None:
@@ -29092,6 +29163,10 @@ class DeleteRouteEntriesRequest(TeaModel):
29092
29163
  resource_owner_id: int = None,
29093
29164
  route_entries: List[DeleteRouteEntriesRequestRouteEntries] = None,
29094
29165
  ):
29166
+ # Specifies whether to perform a dry run, without performing the actual request. Valid values:
29167
+ #
29168
+ # * **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.
29169
+ # * **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.
29095
29170
  self.dry_run = dry_run
29096
29171
  self.owner_account = owner_account
29097
29172
  self.owner_id = owner_id
@@ -29364,6 +29439,11 @@ class DeleteRouteEntryRequest(TeaModel):
29364
29439
  ):
29365
29440
  # The destination CIDR block of the route. Only IPv4 CIDR blocks, IPv6 CIDR blocks, and prefix lists are supported.
29366
29441
  self.destination_cidr_block = destination_cidr_block
29442
+ # Specifies whether to perform only a dry run, without performing the actual request. Valid values:
29443
+ #
29444
+ # **true**: sends a request without deleting the route entry. The system checks the request for potential issues, including invalid AccessKey pairs, unauthorized RAM users, and missing parameter values. 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.
29445
+ #
29446
+ # **false** (default): performs a dry run and the actual request. If the request passes the check, a 2xx HTTP status code is returned and the route entry is deleted.
29367
29447
  self.dry_run = dry_run
29368
29448
  # The ID of the next hop.
29369
29449
  #
@@ -36766,7 +36846,8 @@ class DescribeEipAddressesResponseBodyEipAddressesEipAddressOperationLocksLockRe
36766
36846
  # The reason why the EIP is locked. Valid values:
36767
36847
  #
36768
36848
  # * **financial**: The EIP is locked due to overdue payments.
36769
- # * **security**: The EIP is locked for security reasons.
36849
+ # * **security**: The instance is locked for security purposes.
36850
+ # * **sharedPool**: The shared IP address pool is locked due to overdue payments.
36770
36851
  self.lock_reason = lock_reason
36771
36852
 
36772
36853
  def validate(self):
@@ -36984,10 +37065,11 @@ class DescribeEipAddressesResponseBodyEipAddressesEipAddress(TeaModel):
36984
37065
  # * **CloudBox** Only cloud box users can select this type.
36985
37066
  # * **Default** (default)
36986
37067
  self.biz_type = biz_type
36987
- # The service state of the EIP. Valid values:
37068
+ # The service status of the EIP. Valid values:
36988
37069
  #
36989
37070
  # * **Normal**\
36990
- # * **FinancialLocked**\
37071
+ # * **OperationLock**\
37072
+ # * **Unactivated**\
36991
37073
  self.business_status = business_status
36992
37074
  # The billing method of the EIP. Valid values:
36993
37075
  #
@@ -40256,13 +40338,13 @@ class DescribeFlowLogsRequestTags(TeaModel):
40256
40338
  key: str = None,
40257
40339
  value: str = None,
40258
40340
  ):
40259
- # The key of tag N to add to the resource. You can specify at most 20 tag keys. The tag key cannot be an empty string.
40341
+ # The key of the tag. Up to 20 tag keys are supported. If you need to pass this value, it cannot be an empty string.
40260
40342
  #
40261
- # The tag key can be at most 128 characters in length. It cannot start with `aliyun` or `acs:`, and cannot contain `http://` or `https://`.
40343
+ # A tag key can have up to 128 characters and cannot start with `aliyun` or `acs:`. It also cannot contain `http://` or `https://`.
40262
40344
  self.key = key
40263
- # The value of tag N to add to the resource. You can specify at most 20 tag values. The tag value can be an empty string.
40345
+ # The value of the tag. Up to 20 tag values are supported. If you need to pass this value, it can be an empty string.
40264
40346
  #
40265
- # The tag value can be up to 128 characters in length and cannot start with `acs:` or `aliyun`. The tag value cannot contain `http://` or `https://`.
40347
+ # A tag value can have up to 128 characters and cannot start with `aliyun` or `acs:`. It also cannot contain `http://` or `https://`.
40266
40348
  self.value = value
40267
40349
 
40268
40350
  def validate(self):
@@ -40314,57 +40396,54 @@ class DescribeFlowLogsRequest(TeaModel):
40314
40396
  ):
40315
40397
  # The description of the flow log.
40316
40398
  #
40317
- # The description must be 1 to 256 characters in length, and cannot start with `http://` or `https://`.
40399
+ # The description must be 1 to 256 characters long and cannot start with `http://` or `https://`.
40318
40400
  self.description = description
40319
40401
  # The ID of the flow log.
40320
40402
  self.flow_log_id = flow_log_id
40321
40403
  # The name of the flow log.
40322
40404
  #
40323
- # The name must be 1 to 128 characters in length, and cannot start with `http://` or `https://`.
40405
+ # The name must be 1 to 128 characters long and cannot start with `http://` or `https://`.
40324
40406
  self.flow_log_name = flow_log_name
40325
- # The Logstore that stores the captured traffic data.
40407
+ # The Logstore that stores the captured traffic.
40326
40408
  self.log_store_name = log_store_name
40327
40409
  self.owner_account = owner_account
40328
40410
  self.owner_id = owner_id
40329
- # The number of the page to return. Default value: **1**.
40411
+ # The page number, with a default value of **1**.
40330
40412
  self.page_number = page_number
40331
- # The number of entries to return on each page. Maximum value: **50**. Default value: **20**.
40413
+ # The number of items per page in a paginated query, with a maximum value of **50** and a default value of **20**.
40332
40414
  self.page_size = page_size
40333
- # The project that manages the captured traffic data.
40415
+ # The Project that manages the captured traffic.
40334
40416
  self.project_name = project_name
40335
40417
  # The region ID of the flow log.
40336
40418
  #
40337
- # You can call the [DescribeRegions](https://help.aliyun.com/document_detail/36063.html) operation to query the most recent region list.
40419
+ # You can obtain the region ID by calling the [DescribeRegions](https://help.aliyun.com/document_detail/36063.html) interface.
40338
40420
  #
40339
40421
  # This parameter is required.
40340
40422
  self.region_id = region_id
40341
- # The ID of the resource group to which the flow log belongs.
40423
+ # The resource group ID of the flow log.
40342
40424
  self.resource_group_id = resource_group_id
40343
- # The ID of the resource from which traffic is captured.
40425
+ # The resource ID of the traffic to capture.
40344
40426
  self.resource_id = resource_id
40345
40427
  self.resource_owner_account = resource_owner_account
40346
40428
  self.resource_owner_id = resource_owner_id
40347
- # The type of resource from which traffic is captured. Valid values:
40348
- #
40349
- # * **NetworkInterface**: elastic network interface (ENI)
40350
- # * **VSwitch**: all ENIs in a vSwitch
40351
- # * **VPC**: all ENIs in a virtual private cloud (VPC)
40429
+ # The resource type of the traffic to capture. Values:
40430
+ # - **NetworkInterface**: Elastic Network Interface (ENI).
40431
+ # - **VSwitch**: All ENIs within a VSwitch.
40432
+ # - **VPC**: All ENIs within a VPC.
40352
40433
  self.resource_type = resource_type
40353
- # The status of the flow log. Valid values:
40354
- #
40355
- # * **Active**\
40356
- # * **Activating**\
40357
- # * **Inactive**\
40434
+ # The status of the flow log. Values:
40435
+ # - **Active**: The flow log is in an active state.
40436
+ # - **Activating**: The flow log is being created.
40437
+ # - **Inactive**: The flow log is in an inactive state.
40358
40438
  self.status = status
40359
40439
  # The list of tags.
40360
40440
  self.tags = tags
40361
- # The type of traffic that is captured. Valid values:
40362
- #
40363
- # * **All**: all traffic
40364
- # * **Allow**: traffic that is allowed by access control
40365
- # * **Drop**: traffic that is denied by access control
40441
+ # The type of traffic to collect. Values:
40442
+ # - **All**: All traffic.
40443
+ # - **Allow**: Traffic allowed by access control.
40444
+ # - **Drop**: Traffic denied by access control.
40366
40445
  self.traffic_type = traffic_type
40367
- # The ID of the VPC to which the flow log belongs.
40446
+ # The ID of the VPC for which you want to view the flow log.
40368
40447
  self.vpc_id = vpc_id
40369
40448
 
40370
40449
  def validate(self):
@@ -40473,9 +40552,9 @@ class DescribeFlowLogsResponseBodyFlowLogsFlowLogTagsTag(TeaModel):
40473
40552
  key: str = None,
40474
40553
  value: str = None,
40475
40554
  ):
40476
- # The key of tag N.
40555
+ # Tag key.
40477
40556
  self.key = key
40478
- # The value of tag N.
40557
+ # Tag value.
40479
40558
  self.value = value
40480
40559
 
40481
40560
  def validate(self):
@@ -40590,73 +40669,70 @@ class DescribeFlowLogsResponseBodyFlowLogsFlowLog(TeaModel):
40590
40669
  ):
40591
40670
  # The sampling interval of the flow log. Unit: minutes.
40592
40671
  self.aggregation_interval = aggregation_interval
40593
- # The business status of the flow log. Valid values:
40672
+ # The business status. Values:
40594
40673
  #
40595
- # * **Normal**\
40596
- # * **FinancialLocked**\
40674
+ # - **Normal**: Normal status.
40675
+ # - **FinancialLocked**: Locked due to unpaid bills.
40597
40676
  self.business_status = business_status
40598
- # The time when the flow log was created.
40677
+ # The creation time of the flow log.
40599
40678
  self.creation_time = creation_time
40600
40679
  # The description of the flow log.
40601
40680
  self.description = description
40602
- # If the flow log failed to be delivered, you can troubleshoot based on the following error messages that may be returned:
40603
- #
40604
- # * **UnavaliableTarget**: The Logstore of SLS is unavailable and cannot receive logs. Check whether the Logstore is available.
40605
- # * **ProjectNotExist**: The project of SLS does not exist. We recommend that you delete the project and create a new one.
40606
- # * **UnknownError**: An internal error occurred. Try again later.
40681
+ # When log delivery fails, you can troubleshoot based on the error messages. Possible error messages include:
40682
+ # - **UnavaliableTarget**: The Logstore of the Log Service SLS is unavailable and cannot receive logs. It is recommended to check if the corresponding Logstore actually exists and is accessible.
40683
+ # - **ProjectNotExist**: The Project of the Log Service SLS does not exist. It is suggested to delete the original flow log and create a new one pointing to an existing Project.
40684
+ # - **UnknownError**: An internal error has occurred. Please try again later.
40607
40685
  self.flow_log_deliver_error_message = flow_log_deliver_error_message
40608
- # Indicates whether the flow log is delivered. Valid values:
40609
- # - **SUCCESS**\
40610
- # - **FAILED**\
40686
+ # The delivery status of the flow log, with values:
40687
+ # - **SUCCESS**: Delivery succeeded.
40688
+ # - **FAILED**: Delivery failed.
40611
40689
  self.flow_log_deliver_status = flow_log_deliver_status
40612
40690
  # The ID of the flow log.
40613
40691
  self.flow_log_id = flow_log_id
40614
40692
  # The name of the flow log.
40615
40693
  self.flow_log_name = flow_log_name
40694
+ # The type of IP address for collecting flow log traffic.
40616
40695
  self.ip_version = ip_version
40617
- # The Logstore that stores the captured traffic data.
40696
+ # The Logstore where the captured traffic is stored.
40618
40697
  self.log_store_name = log_store_name
40619
- # The project that manages the captured traffic data.
40698
+ # The Project that manages the captured traffic.
40620
40699
  self.project_name = project_name
40621
- # The region ID of the flow log.
40700
+ # The region ID to which the flow log belongs.
40622
40701
  self.region_id = region_id
40623
40702
  # The ID of the resource group to which the flow log belongs.
40624
40703
  self.resource_group_id = resource_group_id
40625
- # The ID of the resource from which traffic is captured.
40704
+ # The resource ID of the traffic captured by the flow log.
40626
40705
  self.resource_id = resource_id
40627
- # The type of the resource from which traffic is captured. Valid values:
40706
+ # The resource type of the traffic captured by the flow log:
40628
40707
  #
40629
- # * **NetworkInterface**: ENI
40630
- # * **VSwitch**: all ENIs in a vSwitch
40631
- # * **VPC**: all ENIs in a VPC
40708
+ # - **NetworkInterface**: Elastic network interface.
40709
+ # - **VSwitch**: All elastic network interfaces within a VSwitch.
40710
+ # - **VPC**: All elastic network interfaces within a VPC.
40632
40711
  self.resource_type = resource_type
40633
40712
  # The hosting type of the cloud service.
40634
- #
40635
- # * This parameter can be empty, which indicates that the flow log is created by the user.
40636
- # * If this parameter is not empty, the value is set to **sls**. The value sls indicates that the flow log is created in the Simple Log Service (SLS) console.
40637
- #
40638
- # > A flow log that is created in the SLS console can be displayed in the VPC list. However, you cannot modify, start, stop, or delete the flow log in the VPC console. If you want to manage the flow log, you can log on to the [SLS console](https://sls.console.aliyun.com) and perform required operations.
40713
+ # - It can be empty, indicating that the flow log was created by the user.
40714
+ # - When not empty, the only supported value is: **sls**, indicating that the flow log was created through the Log Service console.
40715
+ # > Flow log instances created through the Log Service console can be displayed in the VPC list, but they cannot be modified, started, stopped, or deleted within the VPC. If you need to perform these operations on the flow log, you can log in to the [Log Service console](https://sls.console.aliyun.com) to modify, start, stop, or delete it.
40639
40716
  self.service_type = service_type
40640
- # The status of the flow log. Valid values:
40717
+ # The status of the flow log. Values:
40718
+ # - **Active**: The flow log is in an active state.
40641
40719
  #
40642
- # * **Active**\
40643
- # * **Activating**\
40644
- # * **Inactive**\
40720
+ # - **Activating**: The flow log is being created.
40721
+ #
40722
+ # - **Inactive**: The flow log is in an inactive state.
40645
40723
  self.status = status
40646
- # The list of tags.
40724
+ # List of tags
40647
40725
  self.tags = tags
40648
- # The sampling scope of the traffic that is collected. Valid values:
40726
+ # The path of the captured traffic. Values:
40649
40727
  #
40650
- # * **all** (default value): all traffic
40651
- # * **internetGateway**: Internet traffic
40652
- #
40653
- # > By default, the traffic path feature is unavailable. To use this feature, [submit a ticket](https://workorder-intl.console.aliyun.com/?spm=5176.11182188.console-base-top.dworkorder.18ae4882n3v6ZW#/ticket/createIndex).
40728
+ # - **all**: Indicates full collection.
40729
+ # - **internetGateway**: Indicates public network traffic collection.
40654
40730
  self.traffic_path = traffic_path
40655
- # The type of traffic that is captured by the flow log. Valid values:
40731
+ # The type of traffic captured by the flow log. Values:
40656
40732
  #
40657
- # * **All**: all traffic
40658
- # * **Allow**: traffic that is allowed by access control
40659
- # * **Drop**: traffic that is denied by access control
40733
+ # - **All**: All traffic.
40734
+ # - **Allow**: Traffic allowed by access control.
40735
+ # - **Drop**: Traffic denied by access control.
40660
40736
  self.traffic_type = traffic_type
40661
40737
 
40662
40738
  def validate(self):
@@ -40805,20 +40881,19 @@ class DescribeFlowLogsResponseBody(TeaModel):
40805
40881
  success: str = None,
40806
40882
  total_count: str = None,
40807
40883
  ):
40808
- # The information about the flow logs.
40884
+ # List of flow logs.
40809
40885
  self.flow_logs = flow_logs
40810
- # The number of the returned page.
40886
+ # The page number.
40811
40887
  self.page_number = page_number
40812
- # The number of entries per page.
40888
+ # The number of items per page in a paginated query.
40813
40889
  self.page_size = page_size
40814
40890
  # The request ID.
40815
40891
  self.request_id = request_id
40816
- # Indicates whether the operation is successful. Valid values:
40817
- #
40818
- # * **true**\
40819
- # * **false**\
40892
+ # Indicates whether the call was successful. Values:
40893
+ # - **true**: The call was successful.
40894
+ # - **false**: The call failed.
40820
40895
  self.success = success
40821
- # The number of flow logs that are queried.
40896
+ # The number of entries in the queried flow log list.
40822
40897
  self.total_count = total_count
40823
40898
 
40824
40899
  def validate(self):
@@ -46997,6 +47072,68 @@ class DescribeNatGatewaysResponseBodyNatGatewaysNatGatewayIpLists(TeaModel):
46997
47072
  return self
46998
47073
 
46999
47074
 
47075
+ class DescribeNatGatewaysResponseBodyNatGatewaysNatGatewayIpPrefixListIpPrefixList(TeaModel):
47076
+ def __init__(
47077
+ self,
47078
+ ip_prefix: str = None,
47079
+ ):
47080
+ self.ip_prefix = ip_prefix
47081
+
47082
+ def validate(self):
47083
+ pass
47084
+
47085
+ def to_map(self):
47086
+ _map = super().to_map()
47087
+ if _map is not None:
47088
+ return _map
47089
+
47090
+ result = dict()
47091
+ if self.ip_prefix is not None:
47092
+ result['IpPrefix'] = self.ip_prefix
47093
+ return result
47094
+
47095
+ def from_map(self, m: dict = None):
47096
+ m = m or dict()
47097
+ if m.get('IpPrefix') is not None:
47098
+ self.ip_prefix = m.get('IpPrefix')
47099
+ return self
47100
+
47101
+
47102
+ class DescribeNatGatewaysResponseBodyNatGatewaysNatGatewayIpPrefixList(TeaModel):
47103
+ def __init__(
47104
+ self,
47105
+ ip_prefix_list: List[DescribeNatGatewaysResponseBodyNatGatewaysNatGatewayIpPrefixListIpPrefixList] = None,
47106
+ ):
47107
+ self.ip_prefix_list = ip_prefix_list
47108
+
47109
+ def validate(self):
47110
+ if self.ip_prefix_list:
47111
+ for k in self.ip_prefix_list:
47112
+ if k:
47113
+ k.validate()
47114
+
47115
+ def to_map(self):
47116
+ _map = super().to_map()
47117
+ if _map is not None:
47118
+ return _map
47119
+
47120
+ result = dict()
47121
+ result['IpPrefixList'] = []
47122
+ if self.ip_prefix_list is not None:
47123
+ for k in self.ip_prefix_list:
47124
+ result['IpPrefixList'].append(k.to_map() if k else None)
47125
+ return result
47126
+
47127
+ def from_map(self, m: dict = None):
47128
+ m = m or dict()
47129
+ self.ip_prefix_list = []
47130
+ if m.get('IpPrefixList') is not None:
47131
+ for k in m.get('IpPrefixList'):
47132
+ temp_model = DescribeNatGatewaysResponseBodyNatGatewaysNatGatewayIpPrefixListIpPrefixList()
47133
+ self.ip_prefix_list.append(temp_model.from_map(k))
47134
+ return self
47135
+
47136
+
47000
47137
  class DescribeNatGatewaysResponseBodyNatGatewaysNatGatewayNatGatewayPrivateInfo(TeaModel):
47001
47138
  def __init__(
47002
47139
  self,
@@ -47193,6 +47330,7 @@ class DescribeNatGatewaysResponseBodyNatGatewaysNatGateway(TeaModel):
47193
47330
  instance_charge_type: str = None,
47194
47331
  internet_charge_type: str = None,
47195
47332
  ip_lists: DescribeNatGatewaysResponseBodyNatGatewaysNatGatewayIpLists = None,
47333
+ ip_prefix_list: DescribeNatGatewaysResponseBodyNatGatewaysNatGatewayIpPrefixList = None,
47196
47334
  name: str = None,
47197
47335
  nat_gateway_id: str = None,
47198
47336
  nat_gateway_private_info: DescribeNatGatewaysResponseBodyNatGatewaysNatGatewayNatGatewayPrivateInfo = None,
@@ -47262,6 +47400,7 @@ class DescribeNatGatewaysResponseBodyNatGatewaysNatGateway(TeaModel):
47262
47400
  self.internet_charge_type = internet_charge_type
47263
47401
  # The list of elastic IP addresses (EIPs) that are associated with the Internet NAT gateway.
47264
47402
  self.ip_lists = ip_lists
47403
+ self.ip_prefix_list = ip_prefix_list
47265
47404
  # The name of the NAT gateway.
47266
47405
  self.name = name
47267
47406
  # The ID of the NAT gateway.
@@ -47324,6 +47463,8 @@ class DescribeNatGatewaysResponseBodyNatGatewaysNatGateway(TeaModel):
47324
47463
  self.full_nat_table_ids.validate()
47325
47464
  if self.ip_lists:
47326
47465
  self.ip_lists.validate()
47466
+ if self.ip_prefix_list:
47467
+ self.ip_prefix_list.validate()
47327
47468
  if self.nat_gateway_private_info:
47328
47469
  self.nat_gateway_private_info.validate()
47329
47470
  if self.snat_table_ids:
@@ -47369,6 +47510,8 @@ class DescribeNatGatewaysResponseBodyNatGatewaysNatGateway(TeaModel):
47369
47510
  result['InternetChargeType'] = self.internet_charge_type
47370
47511
  if self.ip_lists is not None:
47371
47512
  result['IpLists'] = self.ip_lists.to_map()
47513
+ if self.ip_prefix_list is not None:
47514
+ result['IpPrefixList'] = self.ip_prefix_list.to_map()
47372
47515
  if self.name is not None:
47373
47516
  result['Name'] = self.name
47374
47517
  if self.nat_gateway_id is not None:
@@ -47439,6 +47582,9 @@ class DescribeNatGatewaysResponseBodyNatGatewaysNatGateway(TeaModel):
47439
47582
  if m.get('IpLists') is not None:
47440
47583
  temp_model = DescribeNatGatewaysResponseBodyNatGatewaysNatGatewayIpLists()
47441
47584
  self.ip_lists = temp_model.from_map(m['IpLists'])
47585
+ if m.get('IpPrefixList') is not None:
47586
+ temp_model = DescribeNatGatewaysResponseBodyNatGatewaysNatGatewayIpPrefixList()
47587
+ self.ip_prefix_list = temp_model.from_map(m['IpPrefixList'])
47442
47588
  if m.get('Name') is not None:
47443
47589
  self.name = m.get('Name')
47444
47590
  if m.get('NatGatewayId') is not None:
@@ -56365,6 +56511,7 @@ class DescribeTagsRequest(TeaModel):
56365
56511
  #
56366
56512
  # This parameter is required.
56367
56513
  self.region_id = region_id
56514
+ # The resource IDs.
56368
56515
  self.resource_id = resource_id
56369
56516
  self.resource_owner_account = resource_owner_account
56370
56517
  self.resource_owner_id = resource_owner_id
@@ -56378,6 +56525,7 @@ class DescribeTagsRequest(TeaModel):
56378
56525
  # * **NATGATEWAY**: NAT gateway
56379
56526
  # * **COMMONBANDWIDTHPACKAGE**: EIP bandwidth plan
56380
56527
  self.resource_type = resource_type
56528
+ # The tags.
56381
56529
  self.tag = tag
56382
56530
 
56383
56531
  def validate(self):
@@ -56723,7 +56871,7 @@ class DescribeVRoutersResponseBodyVRoutersVRouter(TeaModel):
56723
56871
  self.description = description
56724
56872
  # The region to which the vRouter belongs.
56725
56873
  self.region_id = region_id
56726
- # The ID of the route table in the vRouter.
56874
+ # The IDs of the route tables.
56727
56875
  self.route_table_ids = route_table_ids
56728
56876
  # The ID of the vRouter.
56729
56877
  self.vrouter_id = vrouter_id
@@ -59078,6 +59226,7 @@ class DescribeVirtualBorderRoutersResponseBodyVirtualBorderRouterSetVirtualBorde
59078
59226
  local_ipv_6gateway_ip: str = None,
59079
59227
  min_rx_interval: int = None,
59080
59228
  min_tx_interval: int = None,
59229
+ mtu: int = None,
59081
59230
  name: str = None,
59082
59231
  pconn_vbr_charge_type: str = None,
59083
59232
  pconn_vbr_expire_time: str = None,
@@ -59152,6 +59301,7 @@ class DescribeVirtualBorderRoutersResponseBodyVirtualBorderRouterSetVirtualBorde
59152
59301
  self.min_rx_interval = min_rx_interval
59153
59302
  # The time interval to send Bidirectional Forwarding Detection (BFD) packets. Valid values: **200 to 1000**. Unit: milliseconds.
59154
59303
  self.min_tx_interval = min_tx_interval
59304
+ self.mtu = mtu
59155
59305
  # The VBR name.
59156
59306
  self.name = name
59157
59307
  # The billing method of the VBR. Valid values:
@@ -59280,6 +59430,8 @@ class DescribeVirtualBorderRoutersResponseBodyVirtualBorderRouterSetVirtualBorde
59280
59430
  result['MinRxInterval'] = self.min_rx_interval
59281
59431
  if self.min_tx_interval is not None:
59282
59432
  result['MinTxInterval'] = self.min_tx_interval
59433
+ if self.mtu is not None:
59434
+ result['Mtu'] = self.mtu
59283
59435
  if self.name is not None:
59284
59436
  result['Name'] = self.name
59285
59437
  if self.pconn_vbr_charge_type is not None:
@@ -59368,6 +59520,8 @@ class DescribeVirtualBorderRoutersResponseBodyVirtualBorderRouterSetVirtualBorde
59368
59520
  self.min_rx_interval = m.get('MinRxInterval')
59369
59521
  if m.get('MinTxInterval') is not None:
59370
59522
  self.min_tx_interval = m.get('MinTxInterval')
59523
+ if m.get('Mtu') is not None:
59524
+ self.mtu = m.get('Mtu')
59371
59525
  if m.get('Name') is not None:
59372
59526
  self.name = m.get('Name')
59373
59527
  if m.get('PConnVbrChargeType') is not None:
@@ -60889,6 +61043,304 @@ class DescribeVpcAttributeResponse(TeaModel):
60889
61043
  return self
60890
61044
 
60891
61045
 
61046
+ class DescribeVpcGrantRulesToEcrRequestTags(TeaModel):
61047
+ def __init__(
61048
+ self,
61049
+ key: str = None,
61050
+ value: str = None,
61051
+ ):
61052
+ self.key = key
61053
+ self.value = value
61054
+
61055
+ def validate(self):
61056
+ pass
61057
+
61058
+ def to_map(self):
61059
+ _map = super().to_map()
61060
+ if _map is not None:
61061
+ return _map
61062
+
61063
+ result = dict()
61064
+ if self.key is not None:
61065
+ result['Key'] = self.key
61066
+ if self.value is not None:
61067
+ result['Value'] = self.value
61068
+ return result
61069
+
61070
+ def from_map(self, m: dict = None):
61071
+ m = m or dict()
61072
+ if m.get('Key') is not None:
61073
+ self.key = m.get('Key')
61074
+ if m.get('Value') is not None:
61075
+ self.value = m.get('Value')
61076
+ return self
61077
+
61078
+
61079
+ class DescribeVpcGrantRulesToEcrRequest(TeaModel):
61080
+ def __init__(
61081
+ self,
61082
+ ecr_instance_id: str = None,
61083
+ ecr_owner_id: int = None,
61084
+ instance_id: str = None,
61085
+ instance_type: str = None,
61086
+ max_results: int = None,
61087
+ next_token: str = None,
61088
+ owner_account: str = None,
61089
+ owner_id: int = None,
61090
+ region_id: str = None,
61091
+ resource_group_id: str = None,
61092
+ resource_owner_account: str = None,
61093
+ resource_owner_id: int = None,
61094
+ tags: List[DescribeVpcGrantRulesToEcrRequestTags] = None,
61095
+ ):
61096
+ self.ecr_instance_id = ecr_instance_id
61097
+ self.ecr_owner_id = ecr_owner_id
61098
+ self.instance_id = instance_id
61099
+ self.instance_type = instance_type
61100
+ self.max_results = max_results
61101
+ self.next_token = next_token
61102
+ self.owner_account = owner_account
61103
+ self.owner_id = owner_id
61104
+ # This parameter is required.
61105
+ self.region_id = region_id
61106
+ self.resource_group_id = resource_group_id
61107
+ self.resource_owner_account = resource_owner_account
61108
+ self.resource_owner_id = resource_owner_id
61109
+ self.tags = tags
61110
+
61111
+ def validate(self):
61112
+ if self.tags:
61113
+ for k in self.tags:
61114
+ if k:
61115
+ k.validate()
61116
+
61117
+ def to_map(self):
61118
+ _map = super().to_map()
61119
+ if _map is not None:
61120
+ return _map
61121
+
61122
+ result = dict()
61123
+ if self.ecr_instance_id is not None:
61124
+ result['EcrInstanceId'] = self.ecr_instance_id
61125
+ if self.ecr_owner_id is not None:
61126
+ result['EcrOwnerId'] = self.ecr_owner_id
61127
+ if self.instance_id is not None:
61128
+ result['InstanceId'] = self.instance_id
61129
+ if self.instance_type is not None:
61130
+ result['InstanceType'] = self.instance_type
61131
+ if self.max_results is not None:
61132
+ result['MaxResults'] = self.max_results
61133
+ if self.next_token is not None:
61134
+ result['NextToken'] = self.next_token
61135
+ if self.owner_account is not None:
61136
+ result['OwnerAccount'] = self.owner_account
61137
+ if self.owner_id is not None:
61138
+ result['OwnerId'] = self.owner_id
61139
+ if self.region_id is not None:
61140
+ result['RegionId'] = self.region_id
61141
+ if self.resource_group_id is not None:
61142
+ result['ResourceGroupId'] = self.resource_group_id
61143
+ if self.resource_owner_account is not None:
61144
+ result['ResourceOwnerAccount'] = self.resource_owner_account
61145
+ if self.resource_owner_id is not None:
61146
+ result['ResourceOwnerId'] = self.resource_owner_id
61147
+ result['Tags'] = []
61148
+ if self.tags is not None:
61149
+ for k in self.tags:
61150
+ result['Tags'].append(k.to_map() if k else None)
61151
+ return result
61152
+
61153
+ def from_map(self, m: dict = None):
61154
+ m = m or dict()
61155
+ if m.get('EcrInstanceId') is not None:
61156
+ self.ecr_instance_id = m.get('EcrInstanceId')
61157
+ if m.get('EcrOwnerId') is not None:
61158
+ self.ecr_owner_id = m.get('EcrOwnerId')
61159
+ if m.get('InstanceId') is not None:
61160
+ self.instance_id = m.get('InstanceId')
61161
+ if m.get('InstanceType') is not None:
61162
+ self.instance_type = m.get('InstanceType')
61163
+ if m.get('MaxResults') is not None:
61164
+ self.max_results = m.get('MaxResults')
61165
+ if m.get('NextToken') is not None:
61166
+ self.next_token = m.get('NextToken')
61167
+ if m.get('OwnerAccount') is not None:
61168
+ self.owner_account = m.get('OwnerAccount')
61169
+ if m.get('OwnerId') is not None:
61170
+ self.owner_id = m.get('OwnerId')
61171
+ if m.get('RegionId') is not None:
61172
+ self.region_id = m.get('RegionId')
61173
+ if m.get('ResourceGroupId') is not None:
61174
+ self.resource_group_id = m.get('ResourceGroupId')
61175
+ if m.get('ResourceOwnerAccount') is not None:
61176
+ self.resource_owner_account = m.get('ResourceOwnerAccount')
61177
+ if m.get('ResourceOwnerId') is not None:
61178
+ self.resource_owner_id = m.get('ResourceOwnerId')
61179
+ self.tags = []
61180
+ if m.get('Tags') is not None:
61181
+ for k in m.get('Tags'):
61182
+ temp_model = DescribeVpcGrantRulesToEcrRequestTags()
61183
+ self.tags.append(temp_model.from_map(k))
61184
+ return self
61185
+
61186
+
61187
+ class DescribeVpcGrantRulesToEcrResponseBodyGrantRuleModels(TeaModel):
61188
+ def __init__(
61189
+ self,
61190
+ creation_time: str = None,
61191
+ ecr_id: str = None,
61192
+ ecr_owner_id: int = None,
61193
+ instance_id: str = None,
61194
+ instance_uid: int = None,
61195
+ region_no: str = None,
61196
+ type: str = None,
61197
+ ):
61198
+ self.creation_time = creation_time
61199
+ self.ecr_id = ecr_id
61200
+ self.ecr_owner_id = ecr_owner_id
61201
+ self.instance_id = instance_id
61202
+ self.instance_uid = instance_uid
61203
+ self.region_no = region_no
61204
+ self.type = type
61205
+
61206
+ def validate(self):
61207
+ pass
61208
+
61209
+ def to_map(self):
61210
+ _map = super().to_map()
61211
+ if _map is not None:
61212
+ return _map
61213
+
61214
+ result = dict()
61215
+ if self.creation_time is not None:
61216
+ result['CreationTime'] = self.creation_time
61217
+ if self.ecr_id is not None:
61218
+ result['EcrId'] = self.ecr_id
61219
+ if self.ecr_owner_id is not None:
61220
+ result['EcrOwnerId'] = self.ecr_owner_id
61221
+ if self.instance_id is not None:
61222
+ result['InstanceId'] = self.instance_id
61223
+ if self.instance_uid is not None:
61224
+ result['InstanceUid'] = self.instance_uid
61225
+ if self.region_no is not None:
61226
+ result['RegionNo'] = self.region_no
61227
+ if self.type is not None:
61228
+ result['Type'] = self.type
61229
+ return result
61230
+
61231
+ def from_map(self, m: dict = None):
61232
+ m = m or dict()
61233
+ if m.get('CreationTime') is not None:
61234
+ self.creation_time = m.get('CreationTime')
61235
+ if m.get('EcrId') is not None:
61236
+ self.ecr_id = m.get('EcrId')
61237
+ if m.get('EcrOwnerId') is not None:
61238
+ self.ecr_owner_id = m.get('EcrOwnerId')
61239
+ if m.get('InstanceId') is not None:
61240
+ self.instance_id = m.get('InstanceId')
61241
+ if m.get('InstanceUid') is not None:
61242
+ self.instance_uid = m.get('InstanceUid')
61243
+ if m.get('RegionNo') is not None:
61244
+ self.region_no = m.get('RegionNo')
61245
+ if m.get('Type') is not None:
61246
+ self.type = m.get('Type')
61247
+ return self
61248
+
61249
+
61250
+ class DescribeVpcGrantRulesToEcrResponseBody(TeaModel):
61251
+ def __init__(
61252
+ self,
61253
+ grant_rule_models: List[DescribeVpcGrantRulesToEcrResponseBodyGrantRuleModels] = None,
61254
+ next_token: str = None,
61255
+ request_id: str = None,
61256
+ total_count: str = None,
61257
+ ):
61258
+ self.grant_rule_models = grant_rule_models
61259
+ self.next_token = next_token
61260
+ self.request_id = request_id
61261
+ self.total_count = total_count
61262
+
61263
+ def validate(self):
61264
+ if self.grant_rule_models:
61265
+ for k in self.grant_rule_models:
61266
+ if k:
61267
+ k.validate()
61268
+
61269
+ def to_map(self):
61270
+ _map = super().to_map()
61271
+ if _map is not None:
61272
+ return _map
61273
+
61274
+ result = dict()
61275
+ result['GrantRuleModels'] = []
61276
+ if self.grant_rule_models is not None:
61277
+ for k in self.grant_rule_models:
61278
+ result['GrantRuleModels'].append(k.to_map() if k else None)
61279
+ if self.next_token is not None:
61280
+ result['NextToken'] = self.next_token
61281
+ if self.request_id is not None:
61282
+ result['RequestId'] = self.request_id
61283
+ if self.total_count is not None:
61284
+ result['TotalCount'] = self.total_count
61285
+ return result
61286
+
61287
+ def from_map(self, m: dict = None):
61288
+ m = m or dict()
61289
+ self.grant_rule_models = []
61290
+ if m.get('GrantRuleModels') is not None:
61291
+ for k in m.get('GrantRuleModels'):
61292
+ temp_model = DescribeVpcGrantRulesToEcrResponseBodyGrantRuleModels()
61293
+ self.grant_rule_models.append(temp_model.from_map(k))
61294
+ if m.get('NextToken') is not None:
61295
+ self.next_token = m.get('NextToken')
61296
+ if m.get('RequestId') is not None:
61297
+ self.request_id = m.get('RequestId')
61298
+ if m.get('TotalCount') is not None:
61299
+ self.total_count = m.get('TotalCount')
61300
+ return self
61301
+
61302
+
61303
+ class DescribeVpcGrantRulesToEcrResponse(TeaModel):
61304
+ def __init__(
61305
+ self,
61306
+ headers: Dict[str, str] = None,
61307
+ status_code: int = None,
61308
+ body: DescribeVpcGrantRulesToEcrResponseBody = None,
61309
+ ):
61310
+ self.headers = headers
61311
+ self.status_code = status_code
61312
+ self.body = body
61313
+
61314
+ def validate(self):
61315
+ if self.body:
61316
+ self.body.validate()
61317
+
61318
+ def to_map(self):
61319
+ _map = super().to_map()
61320
+ if _map is not None:
61321
+ return _map
61322
+
61323
+ result = dict()
61324
+ if self.headers is not None:
61325
+ result['headers'] = self.headers
61326
+ if self.status_code is not None:
61327
+ result['statusCode'] = self.status_code
61328
+ if self.body is not None:
61329
+ result['body'] = self.body.to_map()
61330
+ return result
61331
+
61332
+ def from_map(self, m: dict = None):
61333
+ m = m or dict()
61334
+ if m.get('headers') is not None:
61335
+ self.headers = m.get('headers')
61336
+ if m.get('statusCode') is not None:
61337
+ self.status_code = m.get('statusCode')
61338
+ if m.get('body') is not None:
61339
+ temp_model = DescribeVpcGrantRulesToEcrResponseBody()
61340
+ self.body = temp_model.from_map(m['body'])
61341
+ return self
61342
+
61343
+
60892
61344
  class DescribeVpcsRequestTag(TeaModel):
60893
61345
  def __init__(
60894
61346
  self,
@@ -77692,6 +78144,7 @@ class ListNatIpsRequest(TeaModel):
77692
78144
  class ListNatIpsResponseBodyNatIps(TeaModel):
77693
78145
  def __init__(
77694
78146
  self,
78147
+ ipv_4prefix: str = None,
77695
78148
  is_default: bool = None,
77696
78149
  nat_gateway_id: str = None,
77697
78150
  nat_ip: str = None,
@@ -77701,6 +78154,7 @@ class ListNatIpsResponseBodyNatIps(TeaModel):
77701
78154
  nat_ip_name: str = None,
77702
78155
  nat_ip_status: str = None,
77703
78156
  ):
78157
+ self.ipv_4prefix = ipv_4prefix
77704
78158
  # Indicates whether the IP address is the default IP address of the NAT gateway. Valid values:
77705
78159
  #
77706
78160
  # * **true**: yes
@@ -77737,6 +78191,8 @@ class ListNatIpsResponseBodyNatIps(TeaModel):
77737
78191
  return _map
77738
78192
 
77739
78193
  result = dict()
78194
+ if self.ipv_4prefix is not None:
78195
+ result['Ipv4Prefix'] = self.ipv_4prefix
77740
78196
  if self.is_default is not None:
77741
78197
  result['IsDefault'] = self.is_default
77742
78198
  if self.nat_gateway_id is not None:
@@ -77757,6 +78213,8 @@ class ListNatIpsResponseBodyNatIps(TeaModel):
77757
78213
 
77758
78214
  def from_map(self, m: dict = None):
77759
78215
  m = m or dict()
78216
+ if m.get('Ipv4Prefix') is not None:
78217
+ self.ipv_4prefix = m.get('Ipv4Prefix')
77760
78218
  if m.get('IsDefault') is not None:
77761
78219
  self.is_default = m.get('IsDefault')
77762
78220
  if m.get('NatGatewayId') is not None:
@@ -92324,6 +92782,7 @@ class ModifyVirtualBorderRouterAttributeRequest(TeaModel):
92324
92782
  local_ipv_6gateway_ip: str = None,
92325
92783
  min_rx_interval: int = None,
92326
92784
  min_tx_interval: int = None,
92785
+ mtu: int = None,
92327
92786
  name: str = None,
92328
92787
  owner_account: str = None,
92329
92788
  owner_id: int = None,
@@ -92381,6 +92840,7 @@ class ModifyVirtualBorderRouterAttributeRequest(TeaModel):
92381
92840
  self.min_rx_interval = min_rx_interval
92382
92841
  # The time interval to send BFD packets. Valid values: **200 to 1000**. Unit: milliseconds.
92383
92842
  self.min_tx_interval = min_tx_interval
92843
+ self.mtu = mtu
92384
92844
  # The name of the VBR.
92385
92845
  #
92386
92846
  # The name must be 2 to 128 characters in length, and can contain letters, digits, underscores (_), and hyphens (-). The name must start with a letter. It cannot start with `http://` or `https://`.
@@ -92457,6 +92917,8 @@ class ModifyVirtualBorderRouterAttributeRequest(TeaModel):
92457
92917
  result['MinRxInterval'] = self.min_rx_interval
92458
92918
  if self.min_tx_interval is not None:
92459
92919
  result['MinTxInterval'] = self.min_tx_interval
92920
+ if self.mtu is not None:
92921
+ result['Mtu'] = self.mtu
92460
92922
  if self.name is not None:
92461
92923
  result['Name'] = self.name
92462
92924
  if self.owner_account is not None:
@@ -92509,6 +92971,8 @@ class ModifyVirtualBorderRouterAttributeRequest(TeaModel):
92509
92971
  self.min_rx_interval = m.get('MinRxInterval')
92510
92972
  if m.get('MinTxInterval') is not None:
92511
92973
  self.min_tx_interval = m.get('MinTxInterval')
92974
+ if m.get('Mtu') is not None:
92975
+ self.mtu = m.get('Mtu')
92512
92976
  if m.get('Name') is not None:
92513
92977
  self.name = m.get('Name')
92514
92978
  if m.get('OwnerAccount') is not None: