alibabacloud-vpc20160428 6.8.0__py3-none-any.whl → 6.9.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.
@@ -2133,7 +2133,7 @@ class AllocateEipSegmentAddressRequest(TeaModel):
2133
2133
  #
2134
2134
  # This parameter is required.
2135
2135
  self.eip_mask = eip_mask
2136
- # The metering method of the contiguous EIP group. Valid values:
2136
+ # The metering method of contiguous EIPs. Valid values:
2137
2137
  #
2138
2138
  # * **PayByBandwidth** (default)
2139
2139
  # * **PayByTraffic**\
@@ -9316,20 +9316,46 @@ class CreateFailoverTestJobRequest(TeaModel):
9316
9316
  resource_owner_account: str = None,
9317
9317
  resource_type: str = None,
9318
9318
  ):
9319
+ # The client token that is used to ensure the idempotence of the request.
9320
+ #
9321
+ # You can use the client to generate the token, but you must make sure that the token is unique among different requests. The client token can contain only ASCII characters.
9322
+ #
9323
+ # > If you do not specify this parameter, the system automatically uses the **request ID** as the **client token**. The **request ID** may be different for each request.
9319
9324
  self.client_token = client_token
9325
+ # The description of the failover test.
9326
+ #
9327
+ # The description must be 0 to 256 characters in length and cannot start with `http://` or `https://`.
9320
9328
  self.description = description
9329
+ # If you set the value to true, the system performs only a dry run without actually performing the actual request. If you set the value to false, the system 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.
9321
9330
  self.dry_run = dry_run
9331
+ # The duration of the failover test. Unit: minutes. Valid values: **1 to 4320**.
9332
+ #
9322
9333
  # This parameter is required.
9323
9334
  self.job_duration = job_duration
9335
+ # The type of the failover test. Valid values:
9336
+ #
9337
+ # * **StartNow**\
9338
+ # * **StartLater**\
9339
+ #
9324
9340
  # This parameter is required.
9325
9341
  self.job_type = job_type
9342
+ # The name of the failover test.
9343
+ #
9344
+ # The name must be 0 to 128 characters in length and cannot start with `http://` or `https://`.
9326
9345
  self.name = name
9327
9346
  self.owner_account = owner_account
9328
9347
  self.owner_id = owner_id
9348
+ # The region ID of the failover test.
9349
+ #
9350
+ # You can call the [DescribeRegions](https://help.aliyun.com/document_detail/36063.html) operation to query the most recent region list.
9329
9351
  self.region_id = region_id
9352
+ # The IDs of failover test resources. You can add at most 16 resources.
9353
+ #
9330
9354
  # This parameter is required.
9331
9355
  self.resource_id = resource_id
9332
9356
  self.resource_owner_account = resource_owner_account
9357
+ # The resource type of the failover test. Set the value to **PHYSICALCONNECTION**.
9358
+ #
9333
9359
  # This parameter is required.
9334
9360
  self.resource_type = resource_type
9335
9361
 
@@ -9403,7 +9429,9 @@ class CreateFailoverTestJobResponseBody(TeaModel):
9403
9429
  job_id: str = None,
9404
9430
  request_id: str = None,
9405
9431
  ):
9432
+ # The ID of the failover test.
9406
9433
  self.job_id = job_id
9434
+ # The request ID.
9407
9435
  self.request_id = request_id
9408
9436
 
9409
9437
  def validate(self):
@@ -20032,6 +20060,7 @@ class CreateVpcRequest(TeaModel):
20032
20060
  client_token: str = None,
20033
20061
  description: str = None,
20034
20062
  dry_run: bool = None,
20063
+ enable_dns_hostname: bool = None,
20035
20064
  enable_ipv_6: bool = None,
20036
20065
  ipv_4cidr_mask: int = None,
20037
20066
  ipv_4ipam_pool_id: str = None,
@@ -20067,6 +20096,7 @@ class CreateVpcRequest(TeaModel):
20067
20096
  # * **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 code is returned. If the request passes the dry run, the `DryRunOperation` error code is returned.
20068
20097
  # * **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.
20069
20098
  self.dry_run = dry_run
20099
+ self.enable_dns_hostname = enable_dns_hostname
20070
20100
  # Specifies whether to enable IPv6. Valid values:
20071
20101
  #
20072
20102
  # * **false** (default)
@@ -20131,6 +20161,8 @@ class CreateVpcRequest(TeaModel):
20131
20161
  result['Description'] = self.description
20132
20162
  if self.dry_run is not None:
20133
20163
  result['DryRun'] = self.dry_run
20164
+ if self.enable_dns_hostname is not None:
20165
+ result['EnableDnsHostname'] = self.enable_dns_hostname
20134
20166
  if self.enable_ipv_6 is not None:
20135
20167
  result['EnableIpv6'] = self.enable_ipv_6
20136
20168
  if self.ipv_4cidr_mask is not None:
@@ -20173,6 +20205,8 @@ class CreateVpcRequest(TeaModel):
20173
20205
  self.description = m.get('Description')
20174
20206
  if m.get('DryRun') is not None:
20175
20207
  self.dry_run = m.get('DryRun')
20208
+ if m.get('EnableDnsHostname') is not None:
20209
+ self.enable_dns_hostname = m.get('EnableDnsHostname')
20176
20210
  if m.get('EnableIpv6') is not None:
20177
20211
  self.enable_ipv_6 = m.get('EnableIpv6')
20178
20212
  if m.get('Ipv4CidrMask') is not None:
@@ -58864,6 +58898,7 @@ class DescribeVpcAttributeResponseBody(TeaModel):
58864
58898
  description: str = None,
58865
58899
  dhcp_options_set_id: str = None,
58866
58900
  dhcp_options_set_status: str = None,
58901
+ dns_hostname_status: str = None,
58867
58902
  enabled_ipv_6: bool = None,
58868
58903
  ipv_4gateway_id: str = None,
58869
58904
  ipv_6cidr_block: str = None,
@@ -58911,6 +58946,7 @@ class DescribeVpcAttributeResponseBody(TeaModel):
58911
58946
  # * **Deleted**\
58912
58947
  # * **Pending**\
58913
58948
  self.dhcp_options_set_status = dhcp_options_set_status
58949
+ self.dns_hostname_status = dns_hostname_status
58914
58950
  # Indicates whether the VPC enables IPv6 .
58915
58951
  # - true
58916
58952
  # - false
@@ -59001,6 +59037,8 @@ class DescribeVpcAttributeResponseBody(TeaModel):
59001
59037
  result['DhcpOptionsSetId'] = self.dhcp_options_set_id
59002
59038
  if self.dhcp_options_set_status is not None:
59003
59039
  result['DhcpOptionsSetStatus'] = self.dhcp_options_set_status
59040
+ if self.dns_hostname_status is not None:
59041
+ result['DnsHostnameStatus'] = self.dns_hostname_status
59004
59042
  if self.enabled_ipv_6 is not None:
59005
59043
  result['EnabledIpv6'] = self.enabled_ipv_6
59006
59044
  if self.ipv_4gateway_id is not None:
@@ -59062,6 +59100,8 @@ class DescribeVpcAttributeResponseBody(TeaModel):
59062
59100
  self.dhcp_options_set_id = m.get('DhcpOptionsSetId')
59063
59101
  if m.get('DhcpOptionsSetStatus') is not None:
59064
59102
  self.dhcp_options_set_status = m.get('DhcpOptionsSetStatus')
59103
+ if m.get('DnsHostnameStatus') is not None:
59104
+ self.dns_hostname_status = m.get('DnsHostnameStatus')
59065
59105
  if m.get('EnabledIpv6') is not None:
59066
59106
  self.enabled_ipv_6 = m.get('EnabledIpv6')
59067
59107
  if m.get('Ipv4GatewayId') is not None:
@@ -59625,6 +59665,7 @@ class DescribeVpcsResponseBodyVpcsVpc(TeaModel):
59625
59665
  description: str = None,
59626
59666
  dhcp_options_set_id: str = None,
59627
59667
  dhcp_options_set_status: str = None,
59668
+ dns_hostname_status: str = None,
59628
59669
  enabled_ipv_6: bool = None,
59629
59670
  ipv_6cidr_block: str = None,
59630
59671
  ipv_6cidr_blocks: DescribeVpcsResponseBodyVpcsVpcIpv6CidrBlocks = None,
@@ -59660,6 +59701,7 @@ class DescribeVpcsResponseBodyVpcsVpc(TeaModel):
59660
59701
  # * **Deleted**\
59661
59702
  # * **Pending**\
59662
59703
  self.dhcp_options_set_status = dhcp_options_set_status
59704
+ self.dns_hostname_status = dns_hostname_status
59663
59705
  self.enabled_ipv_6 = enabled_ipv_6
59664
59706
  # The IPv6 CIDR block of the VPC.
59665
59707
  self.ipv_6cidr_block = ipv_6cidr_block
@@ -59736,6 +59778,8 @@ class DescribeVpcsResponseBodyVpcsVpc(TeaModel):
59736
59778
  result['DhcpOptionsSetId'] = self.dhcp_options_set_id
59737
59779
  if self.dhcp_options_set_status is not None:
59738
59780
  result['DhcpOptionsSetStatus'] = self.dhcp_options_set_status
59781
+ if self.dns_hostname_status is not None:
59782
+ result['DnsHostnameStatus'] = self.dns_hostname_status
59739
59783
  if self.enabled_ipv_6 is not None:
59740
59784
  result['EnabledIpv6'] = self.enabled_ipv_6
59741
59785
  if self.ipv_6cidr_block is not None:
@@ -59786,6 +59830,8 @@ class DescribeVpcsResponseBodyVpcsVpc(TeaModel):
59786
59830
  self.dhcp_options_set_id = m.get('DhcpOptionsSetId')
59787
59831
  if m.get('DhcpOptionsSetStatus') is not None:
59788
59832
  self.dhcp_options_set_status = m.get('DhcpOptionsSetStatus')
59833
+ if m.get('DnsHostnameStatus') is not None:
59834
+ self.dns_hostname_status = m.get('DnsHostnameStatus')
59789
59835
  if m.get('EnabledIpv6') is not None:
59790
59836
  self.enabled_ipv_6 = m.get('EnabledIpv6')
59791
59837
  if m.get('Ipv6CidrBlock') is not None:
@@ -80498,6 +80544,269 @@ class ListVpcGatewayEndpointsResponse(TeaModel):
80498
80544
  return self
80499
80545
 
80500
80546
 
80547
+ class ListVpcPublishedRouteEntriesRequest(TeaModel):
80548
+ def __init__(
80549
+ self,
80550
+ destination_cidr_block: str = None,
80551
+ max_results: int = None,
80552
+ next_token: str = None,
80553
+ owner_account: str = None,
80554
+ owner_id: int = None,
80555
+ region_id: str = None,
80556
+ resource_owner_account: str = None,
80557
+ resource_owner_id: int = None,
80558
+ route_table_id: str = None,
80559
+ target_instance_id: str = None,
80560
+ target_type: str = None,
80561
+ ):
80562
+ self.destination_cidr_block = destination_cidr_block
80563
+ self.max_results = max_results
80564
+ self.next_token = next_token
80565
+ self.owner_account = owner_account
80566
+ self.owner_id = owner_id
80567
+ self.region_id = region_id
80568
+ self.resource_owner_account = resource_owner_account
80569
+ self.resource_owner_id = resource_owner_id
80570
+ # This parameter is required.
80571
+ self.route_table_id = route_table_id
80572
+ self.target_instance_id = target_instance_id
80573
+ # This parameter is required.
80574
+ self.target_type = target_type
80575
+
80576
+ def validate(self):
80577
+ pass
80578
+
80579
+ def to_map(self):
80580
+ _map = super().to_map()
80581
+ if _map is not None:
80582
+ return _map
80583
+
80584
+ result = dict()
80585
+ if self.destination_cidr_block is not None:
80586
+ result['DestinationCidrBlock'] = self.destination_cidr_block
80587
+ if self.max_results is not None:
80588
+ result['MaxResults'] = self.max_results
80589
+ if self.next_token is not None:
80590
+ result['NextToken'] = self.next_token
80591
+ if self.owner_account is not None:
80592
+ result['OwnerAccount'] = self.owner_account
80593
+ if self.owner_id is not None:
80594
+ result['OwnerId'] = self.owner_id
80595
+ if self.region_id is not None:
80596
+ result['RegionId'] = self.region_id
80597
+ if self.resource_owner_account is not None:
80598
+ result['ResourceOwnerAccount'] = self.resource_owner_account
80599
+ if self.resource_owner_id is not None:
80600
+ result['ResourceOwnerId'] = self.resource_owner_id
80601
+ if self.route_table_id is not None:
80602
+ result['RouteTableId'] = self.route_table_id
80603
+ if self.target_instance_id is not None:
80604
+ result['TargetInstanceId'] = self.target_instance_id
80605
+ if self.target_type is not None:
80606
+ result['TargetType'] = self.target_type
80607
+ return result
80608
+
80609
+ def from_map(self, m: dict = None):
80610
+ m = m or dict()
80611
+ if m.get('DestinationCidrBlock') is not None:
80612
+ self.destination_cidr_block = m.get('DestinationCidrBlock')
80613
+ if m.get('MaxResults') is not None:
80614
+ self.max_results = m.get('MaxResults')
80615
+ if m.get('NextToken') is not None:
80616
+ self.next_token = m.get('NextToken')
80617
+ if m.get('OwnerAccount') is not None:
80618
+ self.owner_account = m.get('OwnerAccount')
80619
+ if m.get('OwnerId') is not None:
80620
+ self.owner_id = m.get('OwnerId')
80621
+ if m.get('RegionId') is not None:
80622
+ self.region_id = m.get('RegionId')
80623
+ if m.get('ResourceOwnerAccount') is not None:
80624
+ self.resource_owner_account = m.get('ResourceOwnerAccount')
80625
+ if m.get('ResourceOwnerId') is not None:
80626
+ self.resource_owner_id = m.get('ResourceOwnerId')
80627
+ if m.get('RouteTableId') is not None:
80628
+ self.route_table_id = m.get('RouteTableId')
80629
+ if m.get('TargetInstanceId') is not None:
80630
+ self.target_instance_id = m.get('TargetInstanceId')
80631
+ if m.get('TargetType') is not None:
80632
+ self.target_type = m.get('TargetType')
80633
+ return self
80634
+
80635
+
80636
+ class ListVpcPublishedRouteEntriesResponseBodyRouteEntriesRoutePublishTargets(TeaModel):
80637
+ def __init__(
80638
+ self,
80639
+ publish_status: str = None,
80640
+ publish_target_type: str = None,
80641
+ ):
80642
+ self.publish_status = publish_status
80643
+ self.publish_target_type = publish_target_type
80644
+
80645
+ def validate(self):
80646
+ pass
80647
+
80648
+ def to_map(self):
80649
+ _map = super().to_map()
80650
+ if _map is not None:
80651
+ return _map
80652
+
80653
+ result = dict()
80654
+ if self.publish_status is not None:
80655
+ result['PublishStatus'] = self.publish_status
80656
+ if self.publish_target_type is not None:
80657
+ result['PublishTargetType'] = self.publish_target_type
80658
+ return result
80659
+
80660
+ def from_map(self, m: dict = None):
80661
+ m = m or dict()
80662
+ if m.get('PublishStatus') is not None:
80663
+ self.publish_status = m.get('PublishStatus')
80664
+ if m.get('PublishTargetType') is not None:
80665
+ self.publish_target_type = m.get('PublishTargetType')
80666
+ return self
80667
+
80668
+
80669
+ class ListVpcPublishedRouteEntriesResponseBodyRouteEntries(TeaModel):
80670
+ def __init__(
80671
+ self,
80672
+ destination_cidr_block: str = None,
80673
+ route_entry_id: str = None,
80674
+ route_publish_targets: List[ListVpcPublishedRouteEntriesResponseBodyRouteEntriesRoutePublishTargets] = None,
80675
+ route_table_id: str = None,
80676
+ ):
80677
+ self.destination_cidr_block = destination_cidr_block
80678
+ self.route_entry_id = route_entry_id
80679
+ self.route_publish_targets = route_publish_targets
80680
+ self.route_table_id = route_table_id
80681
+
80682
+ def validate(self):
80683
+ if self.route_publish_targets:
80684
+ for k in self.route_publish_targets:
80685
+ if k:
80686
+ k.validate()
80687
+
80688
+ def to_map(self):
80689
+ _map = super().to_map()
80690
+ if _map is not None:
80691
+ return _map
80692
+
80693
+ result = dict()
80694
+ if self.destination_cidr_block is not None:
80695
+ result['DestinationCidrBlock'] = self.destination_cidr_block
80696
+ if self.route_entry_id is not None:
80697
+ result['RouteEntryId'] = self.route_entry_id
80698
+ result['RoutePublishTargets'] = []
80699
+ if self.route_publish_targets is not None:
80700
+ for k in self.route_publish_targets:
80701
+ result['RoutePublishTargets'].append(k.to_map() if k else None)
80702
+ if self.route_table_id is not None:
80703
+ result['RouteTableId'] = self.route_table_id
80704
+ return result
80705
+
80706
+ def from_map(self, m: dict = None):
80707
+ m = m or dict()
80708
+ if m.get('DestinationCidrBlock') is not None:
80709
+ self.destination_cidr_block = m.get('DestinationCidrBlock')
80710
+ if m.get('RouteEntryId') is not None:
80711
+ self.route_entry_id = m.get('RouteEntryId')
80712
+ self.route_publish_targets = []
80713
+ if m.get('RoutePublishTargets') is not None:
80714
+ for k in m.get('RoutePublishTargets'):
80715
+ temp_model = ListVpcPublishedRouteEntriesResponseBodyRouteEntriesRoutePublishTargets()
80716
+ self.route_publish_targets.append(temp_model.from_map(k))
80717
+ if m.get('RouteTableId') is not None:
80718
+ self.route_table_id = m.get('RouteTableId')
80719
+ return self
80720
+
80721
+
80722
+ class ListVpcPublishedRouteEntriesResponseBody(TeaModel):
80723
+ def __init__(
80724
+ self,
80725
+ next_token: str = None,
80726
+ request_id: str = None,
80727
+ route_entries: List[ListVpcPublishedRouteEntriesResponseBodyRouteEntries] = None,
80728
+ ):
80729
+ self.next_token = next_token
80730
+ self.request_id = request_id
80731
+ self.route_entries = route_entries
80732
+
80733
+ def validate(self):
80734
+ if self.route_entries:
80735
+ for k in self.route_entries:
80736
+ if k:
80737
+ k.validate()
80738
+
80739
+ def to_map(self):
80740
+ _map = super().to_map()
80741
+ if _map is not None:
80742
+ return _map
80743
+
80744
+ result = dict()
80745
+ if self.next_token is not None:
80746
+ result['NextToken'] = self.next_token
80747
+ if self.request_id is not None:
80748
+ result['RequestId'] = self.request_id
80749
+ result['RouteEntries'] = []
80750
+ if self.route_entries is not None:
80751
+ for k in self.route_entries:
80752
+ result['RouteEntries'].append(k.to_map() if k else None)
80753
+ return result
80754
+
80755
+ def from_map(self, m: dict = None):
80756
+ m = m or dict()
80757
+ if m.get('NextToken') is not None:
80758
+ self.next_token = m.get('NextToken')
80759
+ if m.get('RequestId') is not None:
80760
+ self.request_id = m.get('RequestId')
80761
+ self.route_entries = []
80762
+ if m.get('RouteEntries') is not None:
80763
+ for k in m.get('RouteEntries'):
80764
+ temp_model = ListVpcPublishedRouteEntriesResponseBodyRouteEntries()
80765
+ self.route_entries.append(temp_model.from_map(k))
80766
+ return self
80767
+
80768
+
80769
+ class ListVpcPublishedRouteEntriesResponse(TeaModel):
80770
+ def __init__(
80771
+ self,
80772
+ headers: Dict[str, str] = None,
80773
+ status_code: int = None,
80774
+ body: ListVpcPublishedRouteEntriesResponseBody = None,
80775
+ ):
80776
+ self.headers = headers
80777
+ self.status_code = status_code
80778
+ self.body = body
80779
+
80780
+ def validate(self):
80781
+ if self.body:
80782
+ self.body.validate()
80783
+
80784
+ def to_map(self):
80785
+ _map = super().to_map()
80786
+ if _map is not None:
80787
+ return _map
80788
+
80789
+ result = dict()
80790
+ if self.headers is not None:
80791
+ result['headers'] = self.headers
80792
+ if self.status_code is not None:
80793
+ result['statusCode'] = self.status_code
80794
+ if self.body is not None:
80795
+ result['body'] = self.body.to_map()
80796
+ return result
80797
+
80798
+ def from_map(self, m: dict = None):
80799
+ m = m or dict()
80800
+ if m.get('headers') is not None:
80801
+ self.headers = m.get('headers')
80802
+ if m.get('statusCode') is not None:
80803
+ self.status_code = m.get('statusCode')
80804
+ if m.get('body') is not None:
80805
+ temp_model = ListVpcPublishedRouteEntriesResponseBody()
80806
+ self.body = temp_model.from_map(m['body'])
80807
+ return self
80808
+
80809
+
80501
80810
  class ListVpnCertificateAssociationsRequest(TeaModel):
80502
80811
  def __init__(
80503
80812
  self,
@@ -89839,6 +90148,7 @@ class ModifyVpcAttributeRequest(TeaModel):
89839
90148
  self,
89840
90149
  cidr_block: str = None,
89841
90150
  description: str = None,
90151
+ enable_dns_hostname: bool = None,
89842
90152
  enable_ipv_6: bool = None,
89843
90153
  ipv_6cidr_block: str = None,
89844
90154
  ipv_6isp: str = None,
@@ -89860,6 +90170,7 @@ class ModifyVpcAttributeRequest(TeaModel):
89860
90170
  #
89861
90171
  # The description must be 1 to 256 characters in length, and cannot start with `http://` or `https://`.
89862
90172
  self.description = description
90173
+ self.enable_dns_hostname = enable_dns_hostname
89863
90174
  # Specifies whether to enable IPv6 CIDR blocks. Valid values:
89864
90175
  #
89865
90176
  # * **true**\
@@ -89906,6 +90217,8 @@ class ModifyVpcAttributeRequest(TeaModel):
89906
90217
  result['CidrBlock'] = self.cidr_block
89907
90218
  if self.description is not None:
89908
90219
  result['Description'] = self.description
90220
+ if self.enable_dns_hostname is not None:
90221
+ result['EnableDnsHostname'] = self.enable_dns_hostname
89909
90222
  if self.enable_ipv_6 is not None:
89910
90223
  result['EnableIPv6'] = self.enable_ipv_6
89911
90224
  if self.ipv_6cidr_block is not None:
@@ -89934,6 +90247,8 @@ class ModifyVpcAttributeRequest(TeaModel):
89934
90247
  self.cidr_block = m.get('CidrBlock')
89935
90248
  if m.get('Description') is not None:
89936
90249
  self.description = m.get('Description')
90250
+ if m.get('EnableDnsHostname') is not None:
90251
+ self.enable_dns_hostname = m.get('EnableDnsHostname')
89937
90252
  if m.get('EnableIPv6') is not None:
89938
90253
  self.enable_ipv_6 = m.get('EnableIPv6')
89939
90254
  if m.get('Ipv6CidrBlock') is not None:
@@ -94485,38 +94800,224 @@ class OpenPublicIpAddressPoolServiceResponse(TeaModel):
94485
94800
  if m.get('statusCode') is not None:
94486
94801
  self.status_code = m.get('statusCode')
94487
94802
  if m.get('body') is not None:
94488
- temp_model = OpenPublicIpAddressPoolServiceResponseBody()
94803
+ temp_model = OpenPublicIpAddressPoolServiceResponseBody()
94804
+ self.body = temp_model.from_map(m['body'])
94805
+ return self
94806
+
94807
+
94808
+ class OpenTrafficMirrorServiceRequest(TeaModel):
94809
+ def __init__(
94810
+ self,
94811
+ client_token: str = None,
94812
+ owner_account: str = None,
94813
+ owner_id: int = None,
94814
+ region_id: str = None,
94815
+ resource_owner_account: str = None,
94816
+ resource_owner_id: int = None,
94817
+ ):
94818
+ # The client token that is used to ensure the idempotence of the request.
94819
+ #
94820
+ # You can use the client to generate the token, but you must make sure that the token is unique among different requests. The token can contain only ASCII characters.
94821
+ #
94822
+ # > If you do not specify this parameter, the system automatically uses the **request ID** as the **client token**. The **request ID** may be different for each request.
94823
+ self.client_token = client_token
94824
+ self.owner_account = owner_account
94825
+ self.owner_id = owner_id
94826
+ # The ID of the region to which the mirrored traffic belongs.
94827
+ #
94828
+ # You can call the [DescribeRegions](https://help.aliyun.com/document_detail/36063.html) operation to query the most recent region list.
94829
+ self.region_id = region_id
94830
+ self.resource_owner_account = resource_owner_account
94831
+ self.resource_owner_id = resource_owner_id
94832
+
94833
+ def validate(self):
94834
+ pass
94835
+
94836
+ def to_map(self):
94837
+ _map = super().to_map()
94838
+ if _map is not None:
94839
+ return _map
94840
+
94841
+ result = dict()
94842
+ if self.client_token is not None:
94843
+ result['ClientToken'] = self.client_token
94844
+ if self.owner_account is not None:
94845
+ result['OwnerAccount'] = self.owner_account
94846
+ if self.owner_id is not None:
94847
+ result['OwnerId'] = self.owner_id
94848
+ if self.region_id is not None:
94849
+ result['RegionId'] = self.region_id
94850
+ if self.resource_owner_account is not None:
94851
+ result['ResourceOwnerAccount'] = self.resource_owner_account
94852
+ if self.resource_owner_id is not None:
94853
+ result['ResourceOwnerId'] = self.resource_owner_id
94854
+ return result
94855
+
94856
+ def from_map(self, m: dict = None):
94857
+ m = m or dict()
94858
+ if m.get('ClientToken') is not None:
94859
+ self.client_token = m.get('ClientToken')
94860
+ if m.get('OwnerAccount') is not None:
94861
+ self.owner_account = m.get('OwnerAccount')
94862
+ if m.get('OwnerId') is not None:
94863
+ self.owner_id = m.get('OwnerId')
94864
+ if m.get('RegionId') is not None:
94865
+ self.region_id = m.get('RegionId')
94866
+ if m.get('ResourceOwnerAccount') is not None:
94867
+ self.resource_owner_account = m.get('ResourceOwnerAccount')
94868
+ if m.get('ResourceOwnerId') is not None:
94869
+ self.resource_owner_id = m.get('ResourceOwnerId')
94870
+ return self
94871
+
94872
+
94873
+ class OpenTrafficMirrorServiceResponseBody(TeaModel):
94874
+ def __init__(
94875
+ self,
94876
+ code: str = None,
94877
+ message: str = None,
94878
+ request_id: str = None,
94879
+ ):
94880
+ # The error code.
94881
+ self.code = code
94882
+ # The information returned after traffic mirroring is enabled.
94883
+ self.message = message
94884
+ # The request ID.
94885
+ self.request_id = request_id
94886
+
94887
+ def validate(self):
94888
+ pass
94889
+
94890
+ def to_map(self):
94891
+ _map = super().to_map()
94892
+ if _map is not None:
94893
+ return _map
94894
+
94895
+ result = dict()
94896
+ if self.code is not None:
94897
+ result['Code'] = self.code
94898
+ if self.message is not None:
94899
+ result['Message'] = self.message
94900
+ if self.request_id is not None:
94901
+ result['RequestId'] = self.request_id
94902
+ return result
94903
+
94904
+ def from_map(self, m: dict = None):
94905
+ m = m or dict()
94906
+ if m.get('Code') is not None:
94907
+ self.code = m.get('Code')
94908
+ if m.get('Message') is not None:
94909
+ self.message = m.get('Message')
94910
+ if m.get('RequestId') is not None:
94911
+ self.request_id = m.get('RequestId')
94912
+ return self
94913
+
94914
+
94915
+ class OpenTrafficMirrorServiceResponse(TeaModel):
94916
+ def __init__(
94917
+ self,
94918
+ headers: Dict[str, str] = None,
94919
+ status_code: int = None,
94920
+ body: OpenTrafficMirrorServiceResponseBody = None,
94921
+ ):
94922
+ self.headers = headers
94923
+ self.status_code = status_code
94924
+ self.body = body
94925
+
94926
+ def validate(self):
94927
+ if self.body:
94928
+ self.body.validate()
94929
+
94930
+ def to_map(self):
94931
+ _map = super().to_map()
94932
+ if _map is not None:
94933
+ return _map
94934
+
94935
+ result = dict()
94936
+ if self.headers is not None:
94937
+ result['headers'] = self.headers
94938
+ if self.status_code is not None:
94939
+ result['statusCode'] = self.status_code
94940
+ if self.body is not None:
94941
+ result['body'] = self.body.to_map()
94942
+ return result
94943
+
94944
+ def from_map(self, m: dict = None):
94945
+ m = m or dict()
94946
+ if m.get('headers') is not None:
94947
+ self.headers = m.get('headers')
94948
+ if m.get('statusCode') is not None:
94949
+ self.status_code = m.get('statusCode')
94950
+ if m.get('body') is not None:
94951
+ temp_model = OpenTrafficMirrorServiceResponseBody()
94489
94952
  self.body = temp_model.from_map(m['body'])
94490
94953
  return self
94491
94954
 
94492
94955
 
94493
- class OpenTrafficMirrorServiceRequest(TeaModel):
94956
+ class PublishVpcRouteEntriesRequestRouteEntries(TeaModel):
94494
94957
  def __init__(
94495
94958
  self,
94496
- client_token: str = None,
94959
+ destination_cidr_block: str = None,
94960
+ route_table_id: str = None,
94961
+ ):
94962
+ # This parameter is required.
94963
+ self.destination_cidr_block = destination_cidr_block
94964
+ # This parameter is required.
94965
+ self.route_table_id = route_table_id
94966
+
94967
+ def validate(self):
94968
+ pass
94969
+
94970
+ def to_map(self):
94971
+ _map = super().to_map()
94972
+ if _map is not None:
94973
+ return _map
94974
+
94975
+ result = dict()
94976
+ if self.destination_cidr_block is not None:
94977
+ result['DestinationCidrBlock'] = self.destination_cidr_block
94978
+ if self.route_table_id is not None:
94979
+ result['RouteTableId'] = self.route_table_id
94980
+ return result
94981
+
94982
+ def from_map(self, m: dict = None):
94983
+ m = m or dict()
94984
+ if m.get('DestinationCidrBlock') is not None:
94985
+ self.destination_cidr_block = m.get('DestinationCidrBlock')
94986
+ if m.get('RouteTableId') is not None:
94987
+ self.route_table_id = m.get('RouteTableId')
94988
+ return self
94989
+
94990
+
94991
+ class PublishVpcRouteEntriesRequest(TeaModel):
94992
+ def __init__(
94993
+ self,
94994
+ dry_run: bool = None,
94497
94995
  owner_account: str = None,
94498
94996
  owner_id: int = None,
94499
94997
  region_id: str = None,
94500
94998
  resource_owner_account: str = None,
94501
94999
  resource_owner_id: int = None,
95000
+ route_entries: List[PublishVpcRouteEntriesRequestRouteEntries] = None,
95001
+ target_instance_id: str = None,
95002
+ target_type: str = None,
94502
95003
  ):
94503
- # The client token that is used to ensure the idempotence of the request.
94504
- #
94505
- # You can use the client to generate the token, but you must make sure that the token is unique among different requests. The token can contain only ASCII characters.
94506
- #
94507
- # > If you do not specify this parameter, the system automatically uses the **request ID** as the **client token**. The **request ID** may be different for each request.
94508
- self.client_token = client_token
95004
+ self.dry_run = dry_run
94509
95005
  self.owner_account = owner_account
94510
95006
  self.owner_id = owner_id
94511
- # The ID of the region to which the mirrored traffic belongs.
94512
- #
94513
- # You can call the [DescribeRegions](https://help.aliyun.com/document_detail/36063.html) operation to query the most recent region list.
94514
95007
  self.region_id = region_id
94515
95008
  self.resource_owner_account = resource_owner_account
94516
95009
  self.resource_owner_id = resource_owner_id
95010
+ self.route_entries = route_entries
95011
+ # This parameter is required.
95012
+ self.target_instance_id = target_instance_id
95013
+ # This parameter is required.
95014
+ self.target_type = target_type
94517
95015
 
94518
95016
  def validate(self):
94519
- pass
95017
+ if self.route_entries:
95018
+ for k in self.route_entries:
95019
+ if k:
95020
+ k.validate()
94520
95021
 
94521
95022
  def to_map(self):
94522
95023
  _map = super().to_map()
@@ -94524,8 +95025,8 @@ class OpenTrafficMirrorServiceRequest(TeaModel):
94524
95025
  return _map
94525
95026
 
94526
95027
  result = dict()
94527
- if self.client_token is not None:
94528
- result['ClientToken'] = self.client_token
95028
+ if self.dry_run is not None:
95029
+ result['DryRun'] = self.dry_run
94529
95030
  if self.owner_account is not None:
94530
95031
  result['OwnerAccount'] = self.owner_account
94531
95032
  if self.owner_id is not None:
@@ -94536,12 +95037,20 @@ class OpenTrafficMirrorServiceRequest(TeaModel):
94536
95037
  result['ResourceOwnerAccount'] = self.resource_owner_account
94537
95038
  if self.resource_owner_id is not None:
94538
95039
  result['ResourceOwnerId'] = self.resource_owner_id
95040
+ result['RouteEntries'] = []
95041
+ if self.route_entries is not None:
95042
+ for k in self.route_entries:
95043
+ result['RouteEntries'].append(k.to_map() if k else None)
95044
+ if self.target_instance_id is not None:
95045
+ result['TargetInstanceId'] = self.target_instance_id
95046
+ if self.target_type is not None:
95047
+ result['TargetType'] = self.target_type
94539
95048
  return result
94540
95049
 
94541
95050
  def from_map(self, m: dict = None):
94542
95051
  m = m or dict()
94543
- if m.get('ClientToken') is not None:
94544
- self.client_token = m.get('ClientToken')
95052
+ if m.get('DryRun') is not None:
95053
+ self.dry_run = m.get('DryRun')
94545
95054
  if m.get('OwnerAccount') is not None:
94546
95055
  self.owner_account = m.get('OwnerAccount')
94547
95056
  if m.get('OwnerId') is not None:
@@ -94552,21 +95061,23 @@ class OpenTrafficMirrorServiceRequest(TeaModel):
94552
95061
  self.resource_owner_account = m.get('ResourceOwnerAccount')
94553
95062
  if m.get('ResourceOwnerId') is not None:
94554
95063
  self.resource_owner_id = m.get('ResourceOwnerId')
95064
+ self.route_entries = []
95065
+ if m.get('RouteEntries') is not None:
95066
+ for k in m.get('RouteEntries'):
95067
+ temp_model = PublishVpcRouteEntriesRequestRouteEntries()
95068
+ self.route_entries.append(temp_model.from_map(k))
95069
+ if m.get('TargetInstanceId') is not None:
95070
+ self.target_instance_id = m.get('TargetInstanceId')
95071
+ if m.get('TargetType') is not None:
95072
+ self.target_type = m.get('TargetType')
94555
95073
  return self
94556
95074
 
94557
95075
 
94558
- class OpenTrafficMirrorServiceResponseBody(TeaModel):
95076
+ class PublishVpcRouteEntriesResponseBody(TeaModel):
94559
95077
  def __init__(
94560
95078
  self,
94561
- code: str = None,
94562
- message: str = None,
94563
95079
  request_id: str = None,
94564
95080
  ):
94565
- # The error code.
94566
- self.code = code
94567
- # The information returned after traffic mirroring is enabled.
94568
- self.message = message
94569
- # The request ID.
94570
95081
  self.request_id = request_id
94571
95082
 
94572
95083
  def validate(self):
@@ -94578,31 +95089,23 @@ class OpenTrafficMirrorServiceResponseBody(TeaModel):
94578
95089
  return _map
94579
95090
 
94580
95091
  result = dict()
94581
- if self.code is not None:
94582
- result['Code'] = self.code
94583
- if self.message is not None:
94584
- result['Message'] = self.message
94585
95092
  if self.request_id is not None:
94586
95093
  result['RequestId'] = self.request_id
94587
95094
  return result
94588
95095
 
94589
95096
  def from_map(self, m: dict = None):
94590
95097
  m = m or dict()
94591
- if m.get('Code') is not None:
94592
- self.code = m.get('Code')
94593
- if m.get('Message') is not None:
94594
- self.message = m.get('Message')
94595
95098
  if m.get('RequestId') is not None:
94596
95099
  self.request_id = m.get('RequestId')
94597
95100
  return self
94598
95101
 
94599
95102
 
94600
- class OpenTrafficMirrorServiceResponse(TeaModel):
95103
+ class PublishVpcRouteEntriesResponse(TeaModel):
94601
95104
  def __init__(
94602
95105
  self,
94603
95106
  headers: Dict[str, str] = None,
94604
95107
  status_code: int = None,
94605
- body: OpenTrafficMirrorServiceResponseBody = None,
95108
+ body: PublishVpcRouteEntriesResponseBody = None,
94606
95109
  ):
94607
95110
  self.headers = headers
94608
95111
  self.status_code = status_code
@@ -94633,7 +95136,7 @@ class OpenTrafficMirrorServiceResponse(TeaModel):
94633
95136
  if m.get('statusCode') is not None:
94634
95137
  self.status_code = m.get('statusCode')
94635
95138
  if m.get('body') is not None:
94636
- temp_model = OpenTrafficMirrorServiceResponseBody()
95139
+ temp_model = PublishVpcRouteEntriesResponseBody()
94637
95140
  self.body = temp_model.from_map(m['body'])
94638
95141
  return self
94639
95142
 
@@ -102846,3 +103349,191 @@ class VpcDescribeVpcNatGatewayNetworkInterfaceQuotaResponse(TeaModel):
102846
103349
  return self
102847
103350
 
102848
103351
 
103352
+ class WithdrawVpcPublishedRouteEntriesRequestRouteEntries(TeaModel):
103353
+ def __init__(
103354
+ self,
103355
+ destination_cidr_block: str = None,
103356
+ route_table_id: str = None,
103357
+ ):
103358
+ # This parameter is required.
103359
+ self.destination_cidr_block = destination_cidr_block
103360
+ # This parameter is required.
103361
+ self.route_table_id = route_table_id
103362
+
103363
+ def validate(self):
103364
+ pass
103365
+
103366
+ def to_map(self):
103367
+ _map = super().to_map()
103368
+ if _map is not None:
103369
+ return _map
103370
+
103371
+ result = dict()
103372
+ if self.destination_cidr_block is not None:
103373
+ result['DestinationCidrBlock'] = self.destination_cidr_block
103374
+ if self.route_table_id is not None:
103375
+ result['RouteTableId'] = self.route_table_id
103376
+ return result
103377
+
103378
+ def from_map(self, m: dict = None):
103379
+ m = m or dict()
103380
+ if m.get('DestinationCidrBlock') is not None:
103381
+ self.destination_cidr_block = m.get('DestinationCidrBlock')
103382
+ if m.get('RouteTableId') is not None:
103383
+ self.route_table_id = m.get('RouteTableId')
103384
+ return self
103385
+
103386
+
103387
+ class WithdrawVpcPublishedRouteEntriesRequest(TeaModel):
103388
+ def __init__(
103389
+ self,
103390
+ dry_run: bool = None,
103391
+ owner_account: str = None,
103392
+ owner_id: int = None,
103393
+ region_id: str = None,
103394
+ resource_owner_account: str = None,
103395
+ resource_owner_id: int = None,
103396
+ route_entries: List[WithdrawVpcPublishedRouteEntriesRequestRouteEntries] = None,
103397
+ target_instance_id: str = None,
103398
+ target_type: str = None,
103399
+ ):
103400
+ self.dry_run = dry_run
103401
+ self.owner_account = owner_account
103402
+ self.owner_id = owner_id
103403
+ self.region_id = region_id
103404
+ self.resource_owner_account = resource_owner_account
103405
+ self.resource_owner_id = resource_owner_id
103406
+ self.route_entries = route_entries
103407
+ # This parameter is required.
103408
+ self.target_instance_id = target_instance_id
103409
+ # This parameter is required.
103410
+ self.target_type = target_type
103411
+
103412
+ def validate(self):
103413
+ if self.route_entries:
103414
+ for k in self.route_entries:
103415
+ if k:
103416
+ k.validate()
103417
+
103418
+ def to_map(self):
103419
+ _map = super().to_map()
103420
+ if _map is not None:
103421
+ return _map
103422
+
103423
+ result = dict()
103424
+ if self.dry_run is not None:
103425
+ result['DryRun'] = self.dry_run
103426
+ if self.owner_account is not None:
103427
+ result['OwnerAccount'] = self.owner_account
103428
+ if self.owner_id is not None:
103429
+ result['OwnerId'] = self.owner_id
103430
+ if self.region_id is not None:
103431
+ result['RegionId'] = self.region_id
103432
+ if self.resource_owner_account is not None:
103433
+ result['ResourceOwnerAccount'] = self.resource_owner_account
103434
+ if self.resource_owner_id is not None:
103435
+ result['ResourceOwnerId'] = self.resource_owner_id
103436
+ result['RouteEntries'] = []
103437
+ if self.route_entries is not None:
103438
+ for k in self.route_entries:
103439
+ result['RouteEntries'].append(k.to_map() if k else None)
103440
+ if self.target_instance_id is not None:
103441
+ result['TargetInstanceId'] = self.target_instance_id
103442
+ if self.target_type is not None:
103443
+ result['TargetType'] = self.target_type
103444
+ return result
103445
+
103446
+ def from_map(self, m: dict = None):
103447
+ m = m or dict()
103448
+ if m.get('DryRun') is not None:
103449
+ self.dry_run = m.get('DryRun')
103450
+ if m.get('OwnerAccount') is not None:
103451
+ self.owner_account = m.get('OwnerAccount')
103452
+ if m.get('OwnerId') is not None:
103453
+ self.owner_id = m.get('OwnerId')
103454
+ if m.get('RegionId') is not None:
103455
+ self.region_id = m.get('RegionId')
103456
+ if m.get('ResourceOwnerAccount') is not None:
103457
+ self.resource_owner_account = m.get('ResourceOwnerAccount')
103458
+ if m.get('ResourceOwnerId') is not None:
103459
+ self.resource_owner_id = m.get('ResourceOwnerId')
103460
+ self.route_entries = []
103461
+ if m.get('RouteEntries') is not None:
103462
+ for k in m.get('RouteEntries'):
103463
+ temp_model = WithdrawVpcPublishedRouteEntriesRequestRouteEntries()
103464
+ self.route_entries.append(temp_model.from_map(k))
103465
+ if m.get('TargetInstanceId') is not None:
103466
+ self.target_instance_id = m.get('TargetInstanceId')
103467
+ if m.get('TargetType') is not None:
103468
+ self.target_type = m.get('TargetType')
103469
+ return self
103470
+
103471
+
103472
+ class WithdrawVpcPublishedRouteEntriesResponseBody(TeaModel):
103473
+ def __init__(
103474
+ self,
103475
+ request_id: str = None,
103476
+ ):
103477
+ self.request_id = request_id
103478
+
103479
+ def validate(self):
103480
+ pass
103481
+
103482
+ def to_map(self):
103483
+ _map = super().to_map()
103484
+ if _map is not None:
103485
+ return _map
103486
+
103487
+ result = dict()
103488
+ if self.request_id is not None:
103489
+ result['RequestId'] = self.request_id
103490
+ return result
103491
+
103492
+ def from_map(self, m: dict = None):
103493
+ m = m or dict()
103494
+ if m.get('RequestId') is not None:
103495
+ self.request_id = m.get('RequestId')
103496
+ return self
103497
+
103498
+
103499
+ class WithdrawVpcPublishedRouteEntriesResponse(TeaModel):
103500
+ def __init__(
103501
+ self,
103502
+ headers: Dict[str, str] = None,
103503
+ status_code: int = None,
103504
+ body: WithdrawVpcPublishedRouteEntriesResponseBody = None,
103505
+ ):
103506
+ self.headers = headers
103507
+ self.status_code = status_code
103508
+ self.body = body
103509
+
103510
+ def validate(self):
103511
+ if self.body:
103512
+ self.body.validate()
103513
+
103514
+ def to_map(self):
103515
+ _map = super().to_map()
103516
+ if _map is not None:
103517
+ return _map
103518
+
103519
+ result = dict()
103520
+ if self.headers is not None:
103521
+ result['headers'] = self.headers
103522
+ if self.status_code is not None:
103523
+ result['statusCode'] = self.status_code
103524
+ if self.body is not None:
103525
+ result['body'] = self.body.to_map()
103526
+ return result
103527
+
103528
+ def from_map(self, m: dict = None):
103529
+ m = m or dict()
103530
+ if m.get('headers') is not None:
103531
+ self.headers = m.get('headers')
103532
+ if m.get('statusCode') is not None:
103533
+ self.status_code = m.get('statusCode')
103534
+ if m.get('body') is not None:
103535
+ temp_model = WithdrawVpcPublishedRouteEntriesResponseBody()
103536
+ self.body = temp_model.from_map(m['body'])
103537
+ return self
103538
+
103539
+