alibabacloud-vpc20160428 6.11.8__py3-none-any.whl → 6.12.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.
@@ -4808,6 +4808,7 @@ class AssociateVpcCidrBlockRequest(TeaModel):
4808
4808
  ipv_6cidr_block: str = None,
4809
4809
  ip_version: str = None,
4810
4810
  ipam_pool_id: str = None,
4811
+ ipv_6cidr_mask: int = None,
4811
4812
  ipv_6isp: str = None,
4812
4813
  owner_account: str = None,
4813
4814
  owner_id: int = None,
@@ -4818,17 +4819,21 @@ class AssociateVpcCidrBlockRequest(TeaModel):
4818
4819
  secondary_cidr_mask: int = None,
4819
4820
  vpc_id: str = None,
4820
4821
  ):
4821
- # The IPv6 CIDR block to be added.
4822
+ # The IPv6 CIDR block that you want to add to the VPC.
4822
4823
  #
4823
- # > You must and can specify only one of **SecondaryCidrBlock** and **Ipv6CidrBlock**.
4824
+ # > You can specify only one of **SecondaryCidrBlock** and **Ipv6CidrBlock**.
4824
4825
  self.ipv_6cidr_block = ipv_6cidr_block
4825
4826
  # The version of the IP address. Valid values:
4826
4827
  #
4827
4828
  # * **IPV4**: the IPv4 address.
4828
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.
4829
4830
  self.ip_version = ip_version
4830
- # The ID of the IP Address Manager (IPAM) pool that contains IPv4 addresses.
4831
+ # The ID of the IPAM pool.
4831
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.
4836
+ self.ipv_6cidr_mask = ipv_6cidr_mask
4832
4837
  # The type of the IPv6 CIDR block. Valid values:
4833
4838
  #
4834
4839
  # * **BGP** (default)
@@ -4843,8 +4848,6 @@ class AssociateVpcCidrBlockRequest(TeaModel):
4843
4848
  # The region ID of the VPC to which you want to add a secondary CIDR block.
4844
4849
  #
4845
4850
  # You can call the [DescribeRegions](https://help.aliyun.com/document_detail/36063.html) operation to query the region ID.
4846
- #
4847
- # This parameter is required.
4848
4851
  self.region_id = region_id
4849
4852
  self.resource_owner_account = resource_owner_account
4850
4853
  self.resource_owner_id = resource_owner_id
@@ -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
  #
@@ -4885,6 +4887,8 @@ class AssociateVpcCidrBlockRequest(TeaModel):
4885
4887
  result['IpVersion'] = self.ip_version
4886
4888
  if self.ipam_pool_id is not None:
4887
4889
  result['IpamPoolId'] = self.ipam_pool_id
4890
+ if self.ipv_6cidr_mask is not None:
4891
+ result['Ipv6CidrMask'] = self.ipv_6cidr_mask
4888
4892
  if self.ipv_6isp is not None:
4889
4893
  result['Ipv6Isp'] = self.ipv_6isp
4890
4894
  if self.owner_account is not None:
@@ -4913,6 +4917,8 @@ class AssociateVpcCidrBlockRequest(TeaModel):
4913
4917
  self.ip_version = m.get('IpVersion')
4914
4918
  if m.get('IpamPoolId') is not None:
4915
4919
  self.ipam_pool_id = m.get('IpamPoolId')
4920
+ if m.get('Ipv6CidrMask') is not None:
4921
+ self.ipv_6cidr_mask = m.get('Ipv6CidrMask')
4916
4922
  if m.get('Ipv6Isp') is not None:
4917
4923
  self.ipv_6isp = m.get('Ipv6Isp')
4918
4924
  if m.get('OwnerAccount') is not None:
@@ -13142,7 +13148,9 @@ class CreateNatGatewayRequest(TeaModel):
13142
13148
  icmp_reply_enabled: bool = None,
13143
13149
  instance_charge_type: str = None,
13144
13150
  internet_charge_type: str = None,
13151
+ ipv_4prefix: str = None,
13145
13152
  name: str = None,
13153
+ nat_ip: str = None,
13146
13154
  nat_type: str = None,
13147
13155
  network_type: str = None,
13148
13156
  owner_account: str = None,
@@ -13195,12 +13203,14 @@ class CreateNatGatewayRequest(TeaModel):
13195
13203
  self.instance_charge_type = instance_charge_type
13196
13204
  # The metering method of the NAT gateway. Set the value to **PayByLcu**, which specifies the pay-by-CU metering method.
13197
13205
  self.internet_charge_type = internet_charge_type
13206
+ self.ipv_4prefix = ipv_4prefix
13198
13207
  # The name of the NAT gateway.
13199
13208
  #
13200
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.
13201
13210
  #
13202
13211
  # If this parameter is not set, the system assigns a default name to the NAT gateway.
13203
13212
  self.name = name
13213
+ self.nat_ip = nat_ip
13204
13214
  # The type of NAT gateway. Set the value to **Enhanced**, which specifies enhanced NAT gateway.
13205
13215
  self.nat_type = nat_type
13206
13216
  # The network type of the NAT gateway. Valid values:
@@ -13276,8 +13286,12 @@ class CreateNatGatewayRequest(TeaModel):
13276
13286
  result['InstanceChargeType'] = self.instance_charge_type
13277
13287
  if self.internet_charge_type is not None:
13278
13288
  result['InternetChargeType'] = self.internet_charge_type
13289
+ if self.ipv_4prefix is not None:
13290
+ result['Ipv4Prefix'] = self.ipv_4prefix
13279
13291
  if self.name is not None:
13280
13292
  result['Name'] = self.name
13293
+ if self.nat_ip is not None:
13294
+ result['NatIp'] = self.nat_ip
13281
13295
  if self.nat_type is not None:
13282
13296
  result['NatType'] = self.nat_type
13283
13297
  if self.network_type is not None:
@@ -13331,8 +13345,12 @@ class CreateNatGatewayRequest(TeaModel):
13331
13345
  self.instance_charge_type = m.get('InstanceChargeType')
13332
13346
  if m.get('InternetChargeType') is not None:
13333
13347
  self.internet_charge_type = m.get('InternetChargeType')
13348
+ if m.get('Ipv4Prefix') is not None:
13349
+ self.ipv_4prefix = m.get('Ipv4Prefix')
13334
13350
  if m.get('Name') is not None:
13335
13351
  self.name = m.get('Name')
13352
+ if m.get('NatIp') is not None:
13353
+ self.nat_ip = m.get('NatIp')
13336
13354
  if m.get('NatType') is not None:
13337
13355
  self.nat_type = m.get('NatType')
13338
13356
  if m.get('NetworkType') is not None:
@@ -13414,7 +13432,9 @@ class CreateNatGatewayShrinkRequest(TeaModel):
13414
13432
  icmp_reply_enabled: bool = None,
13415
13433
  instance_charge_type: str = None,
13416
13434
  internet_charge_type: str = None,
13435
+ ipv_4prefix: str = None,
13417
13436
  name: str = None,
13437
+ nat_ip: str = None,
13418
13438
  nat_type: str = None,
13419
13439
  network_type: str = None,
13420
13440
  owner_account: str = None,
@@ -13467,12 +13487,14 @@ class CreateNatGatewayShrinkRequest(TeaModel):
13467
13487
  self.instance_charge_type = instance_charge_type
13468
13488
  # The metering method of the NAT gateway. Set the value to **PayByLcu**, which specifies the pay-by-CU metering method.
13469
13489
  self.internet_charge_type = internet_charge_type
13490
+ self.ipv_4prefix = ipv_4prefix
13470
13491
  # The name of the NAT gateway.
13471
13492
  #
13472
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.
13473
13494
  #
13474
13495
  # If this parameter is not set, the system assigns a default name to the NAT gateway.
13475
13496
  self.name = name
13497
+ self.nat_ip = nat_ip
13476
13498
  # The type of NAT gateway. Set the value to **Enhanced**, which specifies enhanced NAT gateway.
13477
13499
  self.nat_type = nat_type
13478
13500
  # The network type of the NAT gateway. Valid values:
@@ -13546,8 +13568,12 @@ class CreateNatGatewayShrinkRequest(TeaModel):
13546
13568
  result['InstanceChargeType'] = self.instance_charge_type
13547
13569
  if self.internet_charge_type is not None:
13548
13570
  result['InternetChargeType'] = self.internet_charge_type
13571
+ if self.ipv_4prefix is not None:
13572
+ result['Ipv4Prefix'] = self.ipv_4prefix
13549
13573
  if self.name is not None:
13550
13574
  result['Name'] = self.name
13575
+ if self.nat_ip is not None:
13576
+ result['NatIp'] = self.nat_ip
13551
13577
  if self.nat_type is not None:
13552
13578
  result['NatType'] = self.nat_type
13553
13579
  if self.network_type is not None:
@@ -13600,8 +13626,12 @@ class CreateNatGatewayShrinkRequest(TeaModel):
13600
13626
  self.instance_charge_type = m.get('InstanceChargeType')
13601
13627
  if m.get('InternetChargeType') is not None:
13602
13628
  self.internet_charge_type = m.get('InternetChargeType')
13629
+ if m.get('Ipv4Prefix') is not None:
13630
+ self.ipv_4prefix = m.get('Ipv4Prefix')
13603
13631
  if m.get('Name') is not None:
13604
13632
  self.name = m.get('Name')
13633
+ if m.get('NatIp') is not None:
13634
+ self.nat_ip = m.get('NatIp')
13605
13635
  if m.get('NatType') is not None:
13606
13636
  self.nat_type = m.get('NatType')
13607
13637
  if m.get('NetworkType') is not None:
@@ -13827,6 +13857,8 @@ class CreateNatIpRequest(TeaModel):
13827
13857
  self,
13828
13858
  client_token: str = None,
13829
13859
  dry_run: bool = None,
13860
+ ipv_4prefix: str = None,
13861
+ ipv_4prefix_count: int = None,
13830
13862
  nat_gateway_id: str = None,
13831
13863
  nat_ip: str = None,
13832
13864
  nat_ip_cidr: str = None,
@@ -13849,6 +13881,8 @@ class CreateNatIpRequest(TeaModel):
13849
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.
13850
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.
13851
13883
  self.dry_run = dry_run
13884
+ self.ipv_4prefix = ipv_4prefix
13885
+ self.ipv_4prefix_count = ipv_4prefix_count
13852
13886
  # The ID of the Virtual Private Cloud (VPC) NAT gateway for which you want to create the NAT IP address.
13853
13887
  #
13854
13888
  # This parameter is required.
@@ -13893,6 +13927,10 @@ class CreateNatIpRequest(TeaModel):
13893
13927
  result['ClientToken'] = self.client_token
13894
13928
  if self.dry_run is not None:
13895
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
13896
13934
  if self.nat_gateway_id is not None:
13897
13935
  result['NatGatewayId'] = self.nat_gateway_id
13898
13936
  if self.nat_ip is not None:
@@ -13921,6 +13959,10 @@ class CreateNatIpRequest(TeaModel):
13921
13959
  self.client_token = m.get('ClientToken')
13922
13960
  if m.get('DryRun') is not None:
13923
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')
13924
13966
  if m.get('NatGatewayId') is not None:
13925
13967
  self.nat_gateway_id = m.get('NatGatewayId')
13926
13968
  if m.get('NatIp') is not None:
@@ -13947,10 +13989,12 @@ class CreateNatIpRequest(TeaModel):
13947
13989
  class CreateNatIpResponseBody(TeaModel):
13948
13990
  def __init__(
13949
13991
  self,
13992
+ ipv_4prefix: str = None,
13950
13993
  nat_ip: str = None,
13951
13994
  nat_ip_id: str = None,
13952
13995
  request_id: str = None,
13953
13996
  ):
13997
+ self.ipv_4prefix = ipv_4prefix
13954
13998
  # The NAT IP address.
13955
13999
  self.nat_ip = nat_ip
13956
14000
  # The ID of the NAT IP address.
@@ -13967,6 +14011,8 @@ class CreateNatIpResponseBody(TeaModel):
13967
14011
  return _map
13968
14012
 
13969
14013
  result = dict()
14014
+ if self.ipv_4prefix is not None:
14015
+ result['Ipv4Prefix'] = self.ipv_4prefix
13970
14016
  if self.nat_ip is not None:
13971
14017
  result['NatIp'] = self.nat_ip
13972
14018
  if self.nat_ip_id is not None:
@@ -13977,6 +14023,8 @@ class CreateNatIpResponseBody(TeaModel):
13977
14023
 
13978
14024
  def from_map(self, m: dict = None):
13979
14025
  m = m or dict()
14026
+ if m.get('Ipv4Prefix') is not None:
14027
+ self.ipv_4prefix = m.get('Ipv4Prefix')
13980
14028
  if m.get('NatIp') is not None:
13981
14029
  self.nat_ip = m.get('NatIp')
13982
14030
  if m.get('NatIpId') is not None:
@@ -20805,6 +20853,8 @@ class CreateVpcRequest(TeaModel):
20805
20853
  ipv_4cidr_mask: int = None,
20806
20854
  ipv_4ipam_pool_id: str = None,
20807
20855
  ipv_6cidr_block: str = None,
20856
+ ipv_6cidr_mask: int = None,
20857
+ ipv_6ipam_pool_id: str = None,
20808
20858
  ipv_6isp: str = None,
20809
20859
  owner_account: str = None,
20810
20860
  owner_id: int = None,
@@ -20852,6 +20902,10 @@ class CreateVpcRequest(TeaModel):
20852
20902
  self.ipv_4ipam_pool_id = ipv_4ipam_pool_id
20853
20903
  # 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.
20854
20904
  self.ipv_6cidr_block = ipv_6cidr_block
20905
+ # Add an IPv6 CIDR block from the IPAM pool to the VPC by entering a mask.
20906
+ self.ipv_6cidr_mask = ipv_6cidr_mask
20907
+ # The ID of the IP Address Manager (IPAM) pool of the IPv6 type.
20908
+ self.ipv_6ipam_pool_id = ipv_6ipam_pool_id
20855
20909
  # The type of the IPv6 CIDR block of the VPC. Valid values:
20856
20910
  #
20857
20911
  # * **BGP** (default)
@@ -20916,6 +20970,10 @@ class CreateVpcRequest(TeaModel):
20916
20970
  result['Ipv4IpamPoolId'] = self.ipv_4ipam_pool_id
20917
20971
  if self.ipv_6cidr_block is not None:
20918
20972
  result['Ipv6CidrBlock'] = self.ipv_6cidr_block
20973
+ if self.ipv_6cidr_mask is not None:
20974
+ result['Ipv6CidrMask'] = self.ipv_6cidr_mask
20975
+ if self.ipv_6ipam_pool_id is not None:
20976
+ result['Ipv6IpamPoolId'] = self.ipv_6ipam_pool_id
20919
20977
  if self.ipv_6isp is not None:
20920
20978
  result['Ipv6Isp'] = self.ipv_6isp
20921
20979
  if self.owner_account is not None:
@@ -20960,6 +21018,10 @@ class CreateVpcRequest(TeaModel):
20960
21018
  self.ipv_4ipam_pool_id = m.get('Ipv4IpamPoolId')
20961
21019
  if m.get('Ipv6CidrBlock') is not None:
20962
21020
  self.ipv_6cidr_block = m.get('Ipv6CidrBlock')
21021
+ if m.get('Ipv6CidrMask') is not None:
21022
+ self.ipv_6cidr_mask = m.get('Ipv6CidrMask')
21023
+ if m.get('Ipv6IpamPoolId') is not None:
21024
+ self.ipv_6ipam_pool_id = m.get('Ipv6IpamPoolId')
20963
21025
  if m.get('Ipv6Isp') is not None:
20964
21026
  self.ipv_6isp = m.get('Ipv6Isp')
20965
21027
  if m.get('OwnerAccount') is not None:
@@ -27330,6 +27392,9 @@ class DeleteIpv4GatewayRequest(TeaModel):
27330
27392
  # * **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.
27331
27393
  # * **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.
27332
27394
  self.dry_run = dry_run
27395
+ # Select the public network mode of the VPC after deleting the IPv4 gateway. The values are:
27396
+ # - **private**: Default value, after deleting the IPv4 gateway, the VPC will become a pure private VPC without public network access capability.
27397
+ # - **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.
27333
27398
  self.internet_mode = internet_mode
27334
27399
  # The ID of the IPv4 gateway that you want to delete.
27335
27400
  #
@@ -28081,6 +28146,8 @@ class DeleteNatIpRequest(TeaModel):
28081
28146
  self,
28082
28147
  client_token: str = None,
28083
28148
  dry_run: bool = None,
28149
+ ipv_4prefix: str = None,
28150
+ nat_gateway_id: str = None,
28084
28151
  nat_ip_id: str = None,
28085
28152
  owner_account: str = None,
28086
28153
  owner_id: int = None,
@@ -28099,9 +28166,9 @@ class DeleteNatIpRequest(TeaModel):
28099
28166
  # * **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.
28100
28167
  # * **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.
28101
28168
  self.dry_run = dry_run
28169
+ self.ipv_4prefix = ipv_4prefix
28170
+ self.nat_gateway_id = nat_gateway_id
28102
28171
  # The ID of the NAT IP address that you want to delete.
28103
- #
28104
- # This parameter is required.
28105
28172
  self.nat_ip_id = nat_ip_id
28106
28173
  self.owner_account = owner_account
28107
28174
  self.owner_id = owner_id
@@ -28127,6 +28194,10 @@ class DeleteNatIpRequest(TeaModel):
28127
28194
  result['ClientToken'] = self.client_token
28128
28195
  if self.dry_run is not None:
28129
28196
  result['DryRun'] = self.dry_run
28197
+ if self.ipv_4prefix is not None:
28198
+ result['Ipv4Prefix'] = self.ipv_4prefix
28199
+ if self.nat_gateway_id is not None:
28200
+ result['NatGatewayId'] = self.nat_gateway_id
28130
28201
  if self.nat_ip_id is not None:
28131
28202
  result['NatIpId'] = self.nat_ip_id
28132
28203
  if self.owner_account is not None:
@@ -28147,6 +28218,10 @@ class DeleteNatIpRequest(TeaModel):
28147
28218
  self.client_token = m.get('ClientToken')
28148
28219
  if m.get('DryRun') is not None:
28149
28220
  self.dry_run = m.get('DryRun')
28221
+ if m.get('Ipv4Prefix') is not None:
28222
+ self.ipv_4prefix = m.get('Ipv4Prefix')
28223
+ if m.get('NatGatewayId') is not None:
28224
+ self.nat_gateway_id = m.get('NatGatewayId')
28150
28225
  if m.get('NatIpId') is not None:
28151
28226
  self.nat_ip_id = m.get('NatIpId')
28152
28227
  if m.get('OwnerAccount') is not None:
@@ -29076,6 +29151,10 @@ class DeleteRouteEntriesRequest(TeaModel):
29076
29151
  resource_owner_id: int = None,
29077
29152
  route_entries: List[DeleteRouteEntriesRequestRouteEntries] = None,
29078
29153
  ):
29154
+ # Specifies whether to perform a dry run, without performing the actual request. Valid values:
29155
+ #
29156
+ # * **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.
29157
+ # * **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.
29079
29158
  self.dry_run = dry_run
29080
29159
  self.owner_account = owner_account
29081
29160
  self.owner_id = owner_id
@@ -29348,6 +29427,11 @@ class DeleteRouteEntryRequest(TeaModel):
29348
29427
  ):
29349
29428
  # The destination CIDR block of the route. Only IPv4 CIDR blocks, IPv6 CIDR blocks, and prefix lists are supported.
29350
29429
  self.destination_cidr_block = destination_cidr_block
29430
+ # Specifies whether to perform only a dry run, without performing the actual request. Valid values:
29431
+ #
29432
+ # **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.
29433
+ #
29434
+ # **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.
29351
29435
  self.dry_run = dry_run
29352
29436
  # The ID of the next hop.
29353
29437
  #
@@ -36750,7 +36834,8 @@ class DescribeEipAddressesResponseBodyEipAddressesEipAddressOperationLocksLockRe
36750
36834
  # The reason why the EIP is locked. Valid values:
36751
36835
  #
36752
36836
  # * **financial**: The EIP is locked due to overdue payments.
36753
- # * **security**: The EIP is locked for security reasons.
36837
+ # * **security**: The instance is locked for security purposes.
36838
+ # * **sharedPool**: The shared IP address pool is locked due to overdue payments.
36754
36839
  self.lock_reason = lock_reason
36755
36840
 
36756
36841
  def validate(self):
@@ -36968,10 +37053,11 @@ class DescribeEipAddressesResponseBodyEipAddressesEipAddress(TeaModel):
36968
37053
  # * **CloudBox** Only cloud box users can select this type.
36969
37054
  # * **Default** (default)
36970
37055
  self.biz_type = biz_type
36971
- # The service state of the EIP. Valid values:
37056
+ # The service status of the EIP. Valid values:
36972
37057
  #
36973
37058
  # * **Normal**\
36974
- # * **FinancialLocked**\
37059
+ # * **OperationLock**\
37060
+ # * **Unactivated**\
36975
37061
  self.business_status = business_status
36976
37062
  # The billing method of the EIP. Valid values:
36977
37063
  #
@@ -40240,13 +40326,13 @@ class DescribeFlowLogsRequestTags(TeaModel):
40240
40326
  key: str = None,
40241
40327
  value: str = None,
40242
40328
  ):
40243
- # 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.
40329
+ # 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.
40244
40330
  #
40245
- # The tag key can be at most 128 characters in length. It cannot start with `aliyun` or `acs:`, and cannot contain `http://` or `https://`.
40331
+ # A tag key can have up to 128 characters and cannot start with `aliyun` or `acs:`. It also cannot contain `http://` or `https://`.
40246
40332
  self.key = key
40247
- # 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.
40333
+ # 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.
40248
40334
  #
40249
- # 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://`.
40335
+ # A tag value can have up to 128 characters and cannot start with `aliyun` or `acs:`. It also cannot contain `http://` or `https://`.
40250
40336
  self.value = value
40251
40337
 
40252
40338
  def validate(self):
@@ -40298,57 +40384,54 @@ class DescribeFlowLogsRequest(TeaModel):
40298
40384
  ):
40299
40385
  # The description of the flow log.
40300
40386
  #
40301
- # The description must be 1 to 256 characters in length, and cannot start with `http://` or `https://`.
40387
+ # The description must be 1 to 256 characters long and cannot start with `http://` or `https://`.
40302
40388
  self.description = description
40303
40389
  # The ID of the flow log.
40304
40390
  self.flow_log_id = flow_log_id
40305
40391
  # The name of the flow log.
40306
40392
  #
40307
- # The name must be 1 to 128 characters in length, and cannot start with `http://` or `https://`.
40393
+ # The name must be 1 to 128 characters long and cannot start with `http://` or `https://`.
40308
40394
  self.flow_log_name = flow_log_name
40309
- # The Logstore that stores the captured traffic data.
40395
+ # The Logstore that stores the captured traffic.
40310
40396
  self.log_store_name = log_store_name
40311
40397
  self.owner_account = owner_account
40312
40398
  self.owner_id = owner_id
40313
- # The number of the page to return. Default value: **1**.
40399
+ # The page number, with a default value of **1**.
40314
40400
  self.page_number = page_number
40315
- # The number of entries to return on each page. Maximum value: **50**. Default value: **20**.
40401
+ # The number of items per page in a paginated query, with a maximum value of **50** and a default value of **20**.
40316
40402
  self.page_size = page_size
40317
- # The project that manages the captured traffic data.
40403
+ # The Project that manages the captured traffic.
40318
40404
  self.project_name = project_name
40319
40405
  # The region ID of the flow log.
40320
40406
  #
40321
- # You can call the [DescribeRegions](https://help.aliyun.com/document_detail/36063.html) operation to query the most recent region list.
40407
+ # You can obtain the region ID by calling the [DescribeRegions](https://help.aliyun.com/document_detail/36063.html) interface.
40322
40408
  #
40323
40409
  # This parameter is required.
40324
40410
  self.region_id = region_id
40325
- # The ID of the resource group to which the flow log belongs.
40411
+ # The resource group ID of the flow log.
40326
40412
  self.resource_group_id = resource_group_id
40327
- # The ID of the resource from which traffic is captured.
40413
+ # The resource ID of the traffic to capture.
40328
40414
  self.resource_id = resource_id
40329
40415
  self.resource_owner_account = resource_owner_account
40330
40416
  self.resource_owner_id = resource_owner_id
40331
- # The type of resource from which traffic is captured. Valid values:
40332
- #
40333
- # * **NetworkInterface**: elastic network interface (ENI)
40334
- # * **VSwitch**: all ENIs in a vSwitch
40335
- # * **VPC**: all ENIs in a virtual private cloud (VPC)
40417
+ # The resource type of the traffic to capture. Values:
40418
+ # - **NetworkInterface**: Elastic Network Interface (ENI).
40419
+ # - **VSwitch**: All ENIs within a VSwitch.
40420
+ # - **VPC**: All ENIs within a VPC.
40336
40421
  self.resource_type = resource_type
40337
- # The status of the flow log. Valid values:
40338
- #
40339
- # * **Active**\
40340
- # * **Activating**\
40341
- # * **Inactive**\
40422
+ # The status of the flow log. Values:
40423
+ # - **Active**: The flow log is in an active state.
40424
+ # - **Activating**: The flow log is being created.
40425
+ # - **Inactive**: The flow log is in an inactive state.
40342
40426
  self.status = status
40343
40427
  # The list of tags.
40344
40428
  self.tags = tags
40345
- # The type of traffic that is captured. Valid values:
40346
- #
40347
- # * **All**: all traffic
40348
- # * **Allow**: traffic that is allowed by access control
40349
- # * **Drop**: traffic that is denied by access control
40429
+ # The type of traffic to collect. Values:
40430
+ # - **All**: All traffic.
40431
+ # - **Allow**: Traffic allowed by access control.
40432
+ # - **Drop**: Traffic denied by access control.
40350
40433
  self.traffic_type = traffic_type
40351
- # The ID of the VPC to which the flow log belongs.
40434
+ # The ID of the VPC for which you want to view the flow log.
40352
40435
  self.vpc_id = vpc_id
40353
40436
 
40354
40437
  def validate(self):
@@ -40457,9 +40540,9 @@ class DescribeFlowLogsResponseBodyFlowLogsFlowLogTagsTag(TeaModel):
40457
40540
  key: str = None,
40458
40541
  value: str = None,
40459
40542
  ):
40460
- # The key of tag N.
40543
+ # Tag key.
40461
40544
  self.key = key
40462
- # The value of tag N.
40545
+ # Tag value.
40463
40546
  self.value = value
40464
40547
 
40465
40548
  def validate(self):
@@ -40574,73 +40657,70 @@ class DescribeFlowLogsResponseBodyFlowLogsFlowLog(TeaModel):
40574
40657
  ):
40575
40658
  # The sampling interval of the flow log. Unit: minutes.
40576
40659
  self.aggregation_interval = aggregation_interval
40577
- # The business status of the flow log. Valid values:
40660
+ # The business status. Values:
40578
40661
  #
40579
- # * **Normal**\
40580
- # * **FinancialLocked**\
40662
+ # - **Normal**: Normal status.
40663
+ # - **FinancialLocked**: Locked due to unpaid bills.
40581
40664
  self.business_status = business_status
40582
- # The time when the flow log was created.
40665
+ # The creation time of the flow log.
40583
40666
  self.creation_time = creation_time
40584
40667
  # The description of the flow log.
40585
40668
  self.description = description
40586
- # If the flow log failed to be delivered, you can troubleshoot based on the following error messages that may be returned:
40587
- #
40588
- # * **UnavaliableTarget**: The Logstore of SLS is unavailable and cannot receive logs. Check whether the Logstore is available.
40589
- # * **ProjectNotExist**: The project of SLS does not exist. We recommend that you delete the project and create a new one.
40590
- # * **UnknownError**: An internal error occurred. Try again later.
40669
+ # When log delivery fails, you can troubleshoot based on the error messages. Possible error messages include:
40670
+ # - **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.
40671
+ # - **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.
40672
+ # - **UnknownError**: An internal error has occurred. Please try again later.
40591
40673
  self.flow_log_deliver_error_message = flow_log_deliver_error_message
40592
- # Indicates whether the flow log is delivered. Valid values:
40593
- # - **SUCCESS**\
40594
- # - **FAILED**\
40674
+ # The delivery status of the flow log, with values:
40675
+ # - **SUCCESS**: Delivery succeeded.
40676
+ # - **FAILED**: Delivery failed.
40595
40677
  self.flow_log_deliver_status = flow_log_deliver_status
40596
40678
  # The ID of the flow log.
40597
40679
  self.flow_log_id = flow_log_id
40598
40680
  # The name of the flow log.
40599
40681
  self.flow_log_name = flow_log_name
40682
+ # The type of IP address for collecting flow log traffic.
40600
40683
  self.ip_version = ip_version
40601
- # The Logstore that stores the captured traffic data.
40684
+ # The Logstore where the captured traffic is stored.
40602
40685
  self.log_store_name = log_store_name
40603
- # The project that manages the captured traffic data.
40686
+ # The Project that manages the captured traffic.
40604
40687
  self.project_name = project_name
40605
- # The region ID of the flow log.
40688
+ # The region ID to which the flow log belongs.
40606
40689
  self.region_id = region_id
40607
40690
  # The ID of the resource group to which the flow log belongs.
40608
40691
  self.resource_group_id = resource_group_id
40609
- # The ID of the resource from which traffic is captured.
40692
+ # The resource ID of the traffic captured by the flow log.
40610
40693
  self.resource_id = resource_id
40611
- # The type of the resource from which traffic is captured. Valid values:
40694
+ # The resource type of the traffic captured by the flow log:
40612
40695
  #
40613
- # * **NetworkInterface**: ENI
40614
- # * **VSwitch**: all ENIs in a vSwitch
40615
- # * **VPC**: all ENIs in a VPC
40696
+ # - **NetworkInterface**: Elastic network interface.
40697
+ # - **VSwitch**: All elastic network interfaces within a VSwitch.
40698
+ # - **VPC**: All elastic network interfaces within a VPC.
40616
40699
  self.resource_type = resource_type
40617
40700
  # The hosting type of the cloud service.
40618
- #
40619
- # * This parameter can be empty, which indicates that the flow log is created by the user.
40620
- # * 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.
40621
- #
40622
- # > 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.
40701
+ # - It can be empty, indicating that the flow log was created by the user.
40702
+ # - When not empty, the only supported value is: **sls**, indicating that the flow log was created through the Log Service console.
40703
+ # > 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.
40623
40704
  self.service_type = service_type
40624
- # The status of the flow log. Valid values:
40705
+ # The status of the flow log. Values:
40706
+ # - **Active**: The flow log is in an active state.
40625
40707
  #
40626
- # * **Active**\
40627
- # * **Activating**\
40628
- # * **Inactive**\
40708
+ # - **Activating**: The flow log is being created.
40709
+ #
40710
+ # - **Inactive**: The flow log is in an inactive state.
40629
40711
  self.status = status
40630
- # The list of tags.
40712
+ # List of tags
40631
40713
  self.tags = tags
40632
- # The sampling scope of the traffic that is collected. Valid values:
40714
+ # The path of the captured traffic. Values:
40633
40715
  #
40634
- # * **all** (default value): all traffic
40635
- # * **internetGateway**: Internet traffic
40636
- #
40637
- # > 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).
40716
+ # - **all**: Indicates full collection.
40717
+ # - **internetGateway**: Indicates public network traffic collection.
40638
40718
  self.traffic_path = traffic_path
40639
- # The type of traffic that is captured by the flow log. Valid values:
40719
+ # The type of traffic captured by the flow log. Values:
40640
40720
  #
40641
- # * **All**: all traffic
40642
- # * **Allow**: traffic that is allowed by access control
40643
- # * **Drop**: traffic that is denied by access control
40721
+ # - **All**: All traffic.
40722
+ # - **Allow**: Traffic allowed by access control.
40723
+ # - **Drop**: Traffic denied by access control.
40644
40724
  self.traffic_type = traffic_type
40645
40725
 
40646
40726
  def validate(self):
@@ -40789,20 +40869,19 @@ class DescribeFlowLogsResponseBody(TeaModel):
40789
40869
  success: str = None,
40790
40870
  total_count: str = None,
40791
40871
  ):
40792
- # The information about the flow logs.
40872
+ # List of flow logs.
40793
40873
  self.flow_logs = flow_logs
40794
- # The number of the returned page.
40874
+ # The page number.
40795
40875
  self.page_number = page_number
40796
- # The number of entries per page.
40876
+ # The number of items per page in a paginated query.
40797
40877
  self.page_size = page_size
40798
40878
  # The request ID.
40799
40879
  self.request_id = request_id
40800
- # Indicates whether the operation is successful. Valid values:
40801
- #
40802
- # * **true**\
40803
- # * **false**\
40880
+ # Indicates whether the call was successful. Values:
40881
+ # - **true**: The call was successful.
40882
+ # - **false**: The call failed.
40804
40883
  self.success = success
40805
- # The number of flow logs that are queried.
40884
+ # The number of entries in the queried flow log list.
40806
40885
  self.total_count = total_count
40807
40886
 
40808
40887
  def validate(self):
@@ -46981,6 +47060,68 @@ class DescribeNatGatewaysResponseBodyNatGatewaysNatGatewayIpLists(TeaModel):
46981
47060
  return self
46982
47061
 
46983
47062
 
47063
+ class DescribeNatGatewaysResponseBodyNatGatewaysNatGatewayIpPrefixListIpPrefixList(TeaModel):
47064
+ def __init__(
47065
+ self,
47066
+ ip_prefix: str = None,
47067
+ ):
47068
+ self.ip_prefix = ip_prefix
47069
+
47070
+ def validate(self):
47071
+ pass
47072
+
47073
+ def to_map(self):
47074
+ _map = super().to_map()
47075
+ if _map is not None:
47076
+ return _map
47077
+
47078
+ result = dict()
47079
+ if self.ip_prefix is not None:
47080
+ result['IpPrefix'] = self.ip_prefix
47081
+ return result
47082
+
47083
+ def from_map(self, m: dict = None):
47084
+ m = m or dict()
47085
+ if m.get('IpPrefix') is not None:
47086
+ self.ip_prefix = m.get('IpPrefix')
47087
+ return self
47088
+
47089
+
47090
+ class DescribeNatGatewaysResponseBodyNatGatewaysNatGatewayIpPrefixList(TeaModel):
47091
+ def __init__(
47092
+ self,
47093
+ ip_prefix_list: List[DescribeNatGatewaysResponseBodyNatGatewaysNatGatewayIpPrefixListIpPrefixList] = None,
47094
+ ):
47095
+ self.ip_prefix_list = ip_prefix_list
47096
+
47097
+ def validate(self):
47098
+ if self.ip_prefix_list:
47099
+ for k in self.ip_prefix_list:
47100
+ if k:
47101
+ k.validate()
47102
+
47103
+ def to_map(self):
47104
+ _map = super().to_map()
47105
+ if _map is not None:
47106
+ return _map
47107
+
47108
+ result = dict()
47109
+ result['IpPrefixList'] = []
47110
+ if self.ip_prefix_list is not None:
47111
+ for k in self.ip_prefix_list:
47112
+ result['IpPrefixList'].append(k.to_map() if k else None)
47113
+ return result
47114
+
47115
+ def from_map(self, m: dict = None):
47116
+ m = m or dict()
47117
+ self.ip_prefix_list = []
47118
+ if m.get('IpPrefixList') is not None:
47119
+ for k in m.get('IpPrefixList'):
47120
+ temp_model = DescribeNatGatewaysResponseBodyNatGatewaysNatGatewayIpPrefixListIpPrefixList()
47121
+ self.ip_prefix_list.append(temp_model.from_map(k))
47122
+ return self
47123
+
47124
+
46984
47125
  class DescribeNatGatewaysResponseBodyNatGatewaysNatGatewayNatGatewayPrivateInfo(TeaModel):
46985
47126
  def __init__(
46986
47127
  self,
@@ -47177,6 +47318,7 @@ class DescribeNatGatewaysResponseBodyNatGatewaysNatGateway(TeaModel):
47177
47318
  instance_charge_type: str = None,
47178
47319
  internet_charge_type: str = None,
47179
47320
  ip_lists: DescribeNatGatewaysResponseBodyNatGatewaysNatGatewayIpLists = None,
47321
+ ip_prefix_list: DescribeNatGatewaysResponseBodyNatGatewaysNatGatewayIpPrefixList = None,
47180
47322
  name: str = None,
47181
47323
  nat_gateway_id: str = None,
47182
47324
  nat_gateway_private_info: DescribeNatGatewaysResponseBodyNatGatewaysNatGatewayNatGatewayPrivateInfo = None,
@@ -47246,6 +47388,7 @@ class DescribeNatGatewaysResponseBodyNatGatewaysNatGateway(TeaModel):
47246
47388
  self.internet_charge_type = internet_charge_type
47247
47389
  # The list of elastic IP addresses (EIPs) that are associated with the Internet NAT gateway.
47248
47390
  self.ip_lists = ip_lists
47391
+ self.ip_prefix_list = ip_prefix_list
47249
47392
  # The name of the NAT gateway.
47250
47393
  self.name = name
47251
47394
  # The ID of the NAT gateway.
@@ -47308,6 +47451,8 @@ class DescribeNatGatewaysResponseBodyNatGatewaysNatGateway(TeaModel):
47308
47451
  self.full_nat_table_ids.validate()
47309
47452
  if self.ip_lists:
47310
47453
  self.ip_lists.validate()
47454
+ if self.ip_prefix_list:
47455
+ self.ip_prefix_list.validate()
47311
47456
  if self.nat_gateway_private_info:
47312
47457
  self.nat_gateway_private_info.validate()
47313
47458
  if self.snat_table_ids:
@@ -47353,6 +47498,8 @@ class DescribeNatGatewaysResponseBodyNatGatewaysNatGateway(TeaModel):
47353
47498
  result['InternetChargeType'] = self.internet_charge_type
47354
47499
  if self.ip_lists is not None:
47355
47500
  result['IpLists'] = self.ip_lists.to_map()
47501
+ if self.ip_prefix_list is not None:
47502
+ result['IpPrefixList'] = self.ip_prefix_list.to_map()
47356
47503
  if self.name is not None:
47357
47504
  result['Name'] = self.name
47358
47505
  if self.nat_gateway_id is not None:
@@ -47423,6 +47570,9 @@ class DescribeNatGatewaysResponseBodyNatGatewaysNatGateway(TeaModel):
47423
47570
  if m.get('IpLists') is not None:
47424
47571
  temp_model = DescribeNatGatewaysResponseBodyNatGatewaysNatGatewayIpLists()
47425
47572
  self.ip_lists = temp_model.from_map(m['IpLists'])
47573
+ if m.get('IpPrefixList') is not None:
47574
+ temp_model = DescribeNatGatewaysResponseBodyNatGatewaysNatGatewayIpPrefixList()
47575
+ self.ip_prefix_list = temp_model.from_map(m['IpPrefixList'])
47426
47576
  if m.get('Name') is not None:
47427
47577
  self.name = m.get('Name')
47428
47578
  if m.get('NatGatewayId') is not None:
@@ -56349,6 +56499,7 @@ class DescribeTagsRequest(TeaModel):
56349
56499
  #
56350
56500
  # This parameter is required.
56351
56501
  self.region_id = region_id
56502
+ # The resource IDs.
56352
56503
  self.resource_id = resource_id
56353
56504
  self.resource_owner_account = resource_owner_account
56354
56505
  self.resource_owner_id = resource_owner_id
@@ -56362,6 +56513,7 @@ class DescribeTagsRequest(TeaModel):
56362
56513
  # * **NATGATEWAY**: NAT gateway
56363
56514
  # * **COMMONBANDWIDTHPACKAGE**: EIP bandwidth plan
56364
56515
  self.resource_type = resource_type
56516
+ # The tags.
56365
56517
  self.tag = tag
56366
56518
 
56367
56519
  def validate(self):
@@ -56707,7 +56859,7 @@ class DescribeVRoutersResponseBodyVRoutersVRouter(TeaModel):
56707
56859
  self.description = description
56708
56860
  # The region to which the vRouter belongs.
56709
56861
  self.region_id = region_id
56710
- # The ID of the route table in the vRouter.
56862
+ # The IDs of the route tables.
56711
56863
  self.route_table_ids = route_table_ids
56712
56864
  # The ID of the vRouter.
56713
56865
  self.vrouter_id = vrouter_id
@@ -60873,6 +61025,304 @@ class DescribeVpcAttributeResponse(TeaModel):
60873
61025
  return self
60874
61026
 
60875
61027
 
61028
+ class DescribeVpcGrantRulesToEcrRequestTags(TeaModel):
61029
+ def __init__(
61030
+ self,
61031
+ key: str = None,
61032
+ value: str = None,
61033
+ ):
61034
+ self.key = key
61035
+ self.value = value
61036
+
61037
+ def validate(self):
61038
+ pass
61039
+
61040
+ def to_map(self):
61041
+ _map = super().to_map()
61042
+ if _map is not None:
61043
+ return _map
61044
+
61045
+ result = dict()
61046
+ if self.key is not None:
61047
+ result['Key'] = self.key
61048
+ if self.value is not None:
61049
+ result['Value'] = self.value
61050
+ return result
61051
+
61052
+ def from_map(self, m: dict = None):
61053
+ m = m or dict()
61054
+ if m.get('Key') is not None:
61055
+ self.key = m.get('Key')
61056
+ if m.get('Value') is not None:
61057
+ self.value = m.get('Value')
61058
+ return self
61059
+
61060
+
61061
+ class DescribeVpcGrantRulesToEcrRequest(TeaModel):
61062
+ def __init__(
61063
+ self,
61064
+ ecr_instance_id: str = None,
61065
+ ecr_owner_id: int = None,
61066
+ instance_id: str = None,
61067
+ instance_type: str = None,
61068
+ max_results: int = None,
61069
+ next_token: str = None,
61070
+ owner_account: str = None,
61071
+ owner_id: int = None,
61072
+ region_id: str = None,
61073
+ resource_group_id: str = None,
61074
+ resource_owner_account: str = None,
61075
+ resource_owner_id: int = None,
61076
+ tags: List[DescribeVpcGrantRulesToEcrRequestTags] = None,
61077
+ ):
61078
+ self.ecr_instance_id = ecr_instance_id
61079
+ self.ecr_owner_id = ecr_owner_id
61080
+ self.instance_id = instance_id
61081
+ self.instance_type = instance_type
61082
+ self.max_results = max_results
61083
+ self.next_token = next_token
61084
+ self.owner_account = owner_account
61085
+ self.owner_id = owner_id
61086
+ # This parameter is required.
61087
+ self.region_id = region_id
61088
+ self.resource_group_id = resource_group_id
61089
+ self.resource_owner_account = resource_owner_account
61090
+ self.resource_owner_id = resource_owner_id
61091
+ self.tags = tags
61092
+
61093
+ def validate(self):
61094
+ if self.tags:
61095
+ for k in self.tags:
61096
+ if k:
61097
+ k.validate()
61098
+
61099
+ def to_map(self):
61100
+ _map = super().to_map()
61101
+ if _map is not None:
61102
+ return _map
61103
+
61104
+ result = dict()
61105
+ if self.ecr_instance_id is not None:
61106
+ result['EcrInstanceId'] = self.ecr_instance_id
61107
+ if self.ecr_owner_id is not None:
61108
+ result['EcrOwnerId'] = self.ecr_owner_id
61109
+ if self.instance_id is not None:
61110
+ result['InstanceId'] = self.instance_id
61111
+ if self.instance_type is not None:
61112
+ result['InstanceType'] = self.instance_type
61113
+ if self.max_results is not None:
61114
+ result['MaxResults'] = self.max_results
61115
+ if self.next_token is not None:
61116
+ result['NextToken'] = self.next_token
61117
+ if self.owner_account is not None:
61118
+ result['OwnerAccount'] = self.owner_account
61119
+ if self.owner_id is not None:
61120
+ result['OwnerId'] = self.owner_id
61121
+ if self.region_id is not None:
61122
+ result['RegionId'] = self.region_id
61123
+ if self.resource_group_id is not None:
61124
+ result['ResourceGroupId'] = self.resource_group_id
61125
+ if self.resource_owner_account is not None:
61126
+ result['ResourceOwnerAccount'] = self.resource_owner_account
61127
+ if self.resource_owner_id is not None:
61128
+ result['ResourceOwnerId'] = self.resource_owner_id
61129
+ result['Tags'] = []
61130
+ if self.tags is not None:
61131
+ for k in self.tags:
61132
+ result['Tags'].append(k.to_map() if k else None)
61133
+ return result
61134
+
61135
+ def from_map(self, m: dict = None):
61136
+ m = m or dict()
61137
+ if m.get('EcrInstanceId') is not None:
61138
+ self.ecr_instance_id = m.get('EcrInstanceId')
61139
+ if m.get('EcrOwnerId') is not None:
61140
+ self.ecr_owner_id = m.get('EcrOwnerId')
61141
+ if m.get('InstanceId') is not None:
61142
+ self.instance_id = m.get('InstanceId')
61143
+ if m.get('InstanceType') is not None:
61144
+ self.instance_type = m.get('InstanceType')
61145
+ if m.get('MaxResults') is not None:
61146
+ self.max_results = m.get('MaxResults')
61147
+ if m.get('NextToken') is not None:
61148
+ self.next_token = m.get('NextToken')
61149
+ if m.get('OwnerAccount') is not None:
61150
+ self.owner_account = m.get('OwnerAccount')
61151
+ if m.get('OwnerId') is not None:
61152
+ self.owner_id = m.get('OwnerId')
61153
+ if m.get('RegionId') is not None:
61154
+ self.region_id = m.get('RegionId')
61155
+ if m.get('ResourceGroupId') is not None:
61156
+ self.resource_group_id = m.get('ResourceGroupId')
61157
+ if m.get('ResourceOwnerAccount') is not None:
61158
+ self.resource_owner_account = m.get('ResourceOwnerAccount')
61159
+ if m.get('ResourceOwnerId') is not None:
61160
+ self.resource_owner_id = m.get('ResourceOwnerId')
61161
+ self.tags = []
61162
+ if m.get('Tags') is not None:
61163
+ for k in m.get('Tags'):
61164
+ temp_model = DescribeVpcGrantRulesToEcrRequestTags()
61165
+ self.tags.append(temp_model.from_map(k))
61166
+ return self
61167
+
61168
+
61169
+ class DescribeVpcGrantRulesToEcrResponseBodyGrantRuleModels(TeaModel):
61170
+ def __init__(
61171
+ self,
61172
+ creation_time: str = None,
61173
+ ecr_id: str = None,
61174
+ ecr_owner_id: int = None,
61175
+ instance_id: str = None,
61176
+ instance_uid: int = None,
61177
+ region_no: str = None,
61178
+ type: str = None,
61179
+ ):
61180
+ self.creation_time = creation_time
61181
+ self.ecr_id = ecr_id
61182
+ self.ecr_owner_id = ecr_owner_id
61183
+ self.instance_id = instance_id
61184
+ self.instance_uid = instance_uid
61185
+ self.region_no = region_no
61186
+ self.type = type
61187
+
61188
+ def validate(self):
61189
+ pass
61190
+
61191
+ def to_map(self):
61192
+ _map = super().to_map()
61193
+ if _map is not None:
61194
+ return _map
61195
+
61196
+ result = dict()
61197
+ if self.creation_time is not None:
61198
+ result['CreationTime'] = self.creation_time
61199
+ if self.ecr_id is not None:
61200
+ result['EcrId'] = self.ecr_id
61201
+ if self.ecr_owner_id is not None:
61202
+ result['EcrOwnerId'] = self.ecr_owner_id
61203
+ if self.instance_id is not None:
61204
+ result['InstanceId'] = self.instance_id
61205
+ if self.instance_uid is not None:
61206
+ result['InstanceUid'] = self.instance_uid
61207
+ if self.region_no is not None:
61208
+ result['RegionNo'] = self.region_no
61209
+ if self.type is not None:
61210
+ result['Type'] = self.type
61211
+ return result
61212
+
61213
+ def from_map(self, m: dict = None):
61214
+ m = m or dict()
61215
+ if m.get('CreationTime') is not None:
61216
+ self.creation_time = m.get('CreationTime')
61217
+ if m.get('EcrId') is not None:
61218
+ self.ecr_id = m.get('EcrId')
61219
+ if m.get('EcrOwnerId') is not None:
61220
+ self.ecr_owner_id = m.get('EcrOwnerId')
61221
+ if m.get('InstanceId') is not None:
61222
+ self.instance_id = m.get('InstanceId')
61223
+ if m.get('InstanceUid') is not None:
61224
+ self.instance_uid = m.get('InstanceUid')
61225
+ if m.get('RegionNo') is not None:
61226
+ self.region_no = m.get('RegionNo')
61227
+ if m.get('Type') is not None:
61228
+ self.type = m.get('Type')
61229
+ return self
61230
+
61231
+
61232
+ class DescribeVpcGrantRulesToEcrResponseBody(TeaModel):
61233
+ def __init__(
61234
+ self,
61235
+ grant_rule_models: List[DescribeVpcGrantRulesToEcrResponseBodyGrantRuleModels] = None,
61236
+ next_token: str = None,
61237
+ request_id: str = None,
61238
+ total_count: str = None,
61239
+ ):
61240
+ self.grant_rule_models = grant_rule_models
61241
+ self.next_token = next_token
61242
+ self.request_id = request_id
61243
+ self.total_count = total_count
61244
+
61245
+ def validate(self):
61246
+ if self.grant_rule_models:
61247
+ for k in self.grant_rule_models:
61248
+ if k:
61249
+ k.validate()
61250
+
61251
+ def to_map(self):
61252
+ _map = super().to_map()
61253
+ if _map is not None:
61254
+ return _map
61255
+
61256
+ result = dict()
61257
+ result['GrantRuleModels'] = []
61258
+ if self.grant_rule_models is not None:
61259
+ for k in self.grant_rule_models:
61260
+ result['GrantRuleModels'].append(k.to_map() if k else None)
61261
+ if self.next_token is not None:
61262
+ result['NextToken'] = self.next_token
61263
+ if self.request_id is not None:
61264
+ result['RequestId'] = self.request_id
61265
+ if self.total_count is not None:
61266
+ result['TotalCount'] = self.total_count
61267
+ return result
61268
+
61269
+ def from_map(self, m: dict = None):
61270
+ m = m or dict()
61271
+ self.grant_rule_models = []
61272
+ if m.get('GrantRuleModels') is not None:
61273
+ for k in m.get('GrantRuleModels'):
61274
+ temp_model = DescribeVpcGrantRulesToEcrResponseBodyGrantRuleModels()
61275
+ self.grant_rule_models.append(temp_model.from_map(k))
61276
+ if m.get('NextToken') is not None:
61277
+ self.next_token = m.get('NextToken')
61278
+ if m.get('RequestId') is not None:
61279
+ self.request_id = m.get('RequestId')
61280
+ if m.get('TotalCount') is not None:
61281
+ self.total_count = m.get('TotalCount')
61282
+ return self
61283
+
61284
+
61285
+ class DescribeVpcGrantRulesToEcrResponse(TeaModel):
61286
+ def __init__(
61287
+ self,
61288
+ headers: Dict[str, str] = None,
61289
+ status_code: int = None,
61290
+ body: DescribeVpcGrantRulesToEcrResponseBody = None,
61291
+ ):
61292
+ self.headers = headers
61293
+ self.status_code = status_code
61294
+ self.body = body
61295
+
61296
+ def validate(self):
61297
+ if self.body:
61298
+ self.body.validate()
61299
+
61300
+ def to_map(self):
61301
+ _map = super().to_map()
61302
+ if _map is not None:
61303
+ return _map
61304
+
61305
+ result = dict()
61306
+ if self.headers is not None:
61307
+ result['headers'] = self.headers
61308
+ if self.status_code is not None:
61309
+ result['statusCode'] = self.status_code
61310
+ if self.body is not None:
61311
+ result['body'] = self.body.to_map()
61312
+ return result
61313
+
61314
+ def from_map(self, m: dict = None):
61315
+ m = m or dict()
61316
+ if m.get('headers') is not None:
61317
+ self.headers = m.get('headers')
61318
+ if m.get('statusCode') is not None:
61319
+ self.status_code = m.get('statusCode')
61320
+ if m.get('body') is not None:
61321
+ temp_model = DescribeVpcGrantRulesToEcrResponseBody()
61322
+ self.body = temp_model.from_map(m['body'])
61323
+ return self
61324
+
61325
+
60876
61326
  class DescribeVpcsRequestTag(TeaModel):
60877
61327
  def __init__(
60878
61328
  self,
@@ -72951,7 +73401,7 @@ class GetVpcPrefixListAssociationsRequest(TeaModel):
72951
73401
  resource_owner_account: str = None,
72952
73402
  resource_owner_id: int = None,
72953
73403
  ):
72954
- # The number of entries per page. Valid values: **1** to **100**. Default value: **20**.
73404
+ # The number of entries to return in each call. Valid values: **1** to **100**. Default value: **20**.
72955
73405
  self.max_results = max_results
72956
73406
  # The pagination token that is used in the next request to retrieve a new page of results. Valid values:
72957
73407
  #
@@ -73034,6 +73484,7 @@ class GetVpcPrefixListAssociationsResponseBodyPrefixListAssociation(TeaModel):
73034
73484
  resource_uid: str = None,
73035
73485
  status: str = None,
73036
73486
  ):
73487
+ # List of CIDR addresses where the prefix list is effective in the currently associated resources.
73037
73488
  self.cidr_list = cidr_list
73038
73489
  # The ID of the Alibaba Cloud account to which the prefix list belongs.
73039
73490
  self.owner_id = owner_id
@@ -77675,6 +78126,7 @@ class ListNatIpsRequest(TeaModel):
77675
78126
  class ListNatIpsResponseBodyNatIps(TeaModel):
77676
78127
  def __init__(
77677
78128
  self,
78129
+ ipv_4prefix: str = None,
77678
78130
  is_default: bool = None,
77679
78131
  nat_gateway_id: str = None,
77680
78132
  nat_ip: str = None,
@@ -77684,6 +78136,7 @@ class ListNatIpsResponseBodyNatIps(TeaModel):
77684
78136
  nat_ip_name: str = None,
77685
78137
  nat_ip_status: str = None,
77686
78138
  ):
78139
+ self.ipv_4prefix = ipv_4prefix
77687
78140
  # Indicates whether the IP address is the default IP address of the NAT gateway. Valid values:
77688
78141
  #
77689
78142
  # * **true**: yes
@@ -77720,6 +78173,8 @@ class ListNatIpsResponseBodyNatIps(TeaModel):
77720
78173
  return _map
77721
78174
 
77722
78175
  result = dict()
78176
+ if self.ipv_4prefix is not None:
78177
+ result['Ipv4Prefix'] = self.ipv_4prefix
77723
78178
  if self.is_default is not None:
77724
78179
  result['IsDefault'] = self.is_default
77725
78180
  if self.nat_gateway_id is not None:
@@ -77740,6 +78195,8 @@ class ListNatIpsResponseBodyNatIps(TeaModel):
77740
78195
 
77741
78196
  def from_map(self, m: dict = None):
77742
78197
  m = m or dict()
78198
+ if m.get('Ipv4Prefix') is not None:
78199
+ self.ipv_4prefix = m.get('Ipv4Prefix')
77743
78200
  if m.get('IsDefault') is not None:
77744
78201
  self.is_default = m.get('IsDefault')
77745
78202
  if m.get('NatGatewayId') is not None: