From 1c7f908ce09f98fdcbf79ed2a8ae21be60eaa634 Mon Sep 17 00:00:00 2001 From: Zhineng Li Date: Sun, 12 Jul 2026 17:11:17 +0800 Subject: update APIs 20260712 --- data/en_us/vpc/2016-04-28/api-docs.php | 141561 ++++++++++++------------------ 1 file changed, 57631 insertions(+), 83930 deletions(-) (limited to 'data/en_us/vpc/2016-04-28') diff --git a/data/en_us/vpc/2016-04-28/api-docs.php b/data/en_us/vpc/2016-04-28/api-docs.php index 57101cd..6768f2c 100644 --- a/data/en_us/vpc/2016-04-28/api-docs.php +++ b/data/en_us/vpc/2016-04-28/api-docs.php @@ -1,1311 +1,666 @@ '1.0', - 'info' => [ - 'style' => 'RPC', - 'product' => 'Vpc', - 'version' => '2016-04-28', - ], + 'info' => ['style' => 'RPC', 'product' => 'Vpc', 'version' => '2016-04-28'], 'directories' => [ [ - 'id' => 78567, - 'title' => 'VPC', - 'type' => 'directory', - 'children' => [ - 'CreateVpc', - 'CreateDefaultVpc', - 'GrantInstanceToCen', - 'AssociateVpcCidrBlock', - 'AllocateVpcIpv6Cidr', - 'DeleteVpc', - 'RevokeInstanceFromCen', - 'UnassociateVpcCidrBlock', - 'ModifyVpcAttribute', - 'EnableVpcClassicLink', - 'DisableVpcClassicLink', - 'DeletionProtection', - 'DescribeVpcs', - 'DescribeVpcAttribute', - 'DescribeGrantRulesToCen', - ], - ], - [ - 'id' => 78582, - 'title' => 'Router', + 'children' => ['CreateVpc', 'DeleteVpc', 'ModifyVpcAttribute', 'DescribeVpcs', 'DescribeVpcAttribute', 'GrantInstanceToCen', 'RevokeInstanceFromCen', 'DescribeGrantRulesToCen', 'AssociateVpcCidrBlock', 'UnassociateVpcCidrBlock', 'AllocateVpcIpv6Cidr'], 'type' => 'directory', - 'children' => [ - 'ModifyVRouterAttribute', - 'DescribeVRouters', - ], + 'title' => 'Virtual private cloud (VPC)', ], [ - 'id' => 78605, + 'children' => ['CreateDefaultVSwitch', 'DeleteVSwitch', 'ModifyVSwitchAttribute', 'DescribeVSwitchAttributes', 'DescribeVSwitches', 'DeleteVSwitchCidrReservation', 'ModifyVSwitchCidrReservationAttribute'], + 'type' => 'directory', 'title' => 'VSwitch', + ], + [ + 'children' => ['CreateRouteTable', 'ModifyRouteTableAttributes', 'DescribeRouteTables', 'CreateRouteEntry', 'CreateRouteEntries', 'DeleteRouteEntry', 'DeleteRouteEntries', 'ModifyRouteEntry', 'DescribeRouteEntryList', 'PublishVpcRouteEntries', 'ListVpcPublishedRouteEntries', 'ListGatewayRouteTableEntries'], 'type' => 'directory', - 'children' => [ - 'ListVSwitchCidrReservations', - 'CreateVSwitchCidrReservation', - 'GetVSwitchCidrReservationUsage', - 'ModifyVSwitchCidrReservationAttribute', - 'CreateVSwitch', - 'CreateDefaultVSwitch', - 'CheckCanAllocateVpcPrivateIpAddress', - 'DeleteVSwitch', - 'ModifyVSwitchAttribute', - 'DescribeVSwitches', - 'DescribeVSwitchAttributes', - 'DeleteVSwitchCidrReservation', - ], - ], - [ - 'id' => 78549, 'title' => 'Route table', - 'type' => 'directory', - 'children' => [ - 'CreateRouteEntry', - 'CreateRouteEntries', - 'CreateRouteTable', - 'AssociateRouteTable', - 'DeleteRouteEntry', - 'DeleteRouteEntries', - 'DeleteRouteTable', - 'UnassociateRouteTable', - 'ModifyRouteTableAttributes', - 'ModifyRouteEntry', - 'GetVpcRouteEntrySummary', - 'DescribeRouteTables', - 'DescribeRouteEntryList', - 'DescribeRouteTableList', - 'ListVpcPublishedRouteEntries', - 'PublishVpcRouteEntries', - 'WithdrawVpcPublishedRouteEntries', - 'ListGatewayRouteTableEntries', - 'AssociateRouteTableWithGateway', - 'DissociateRouteTableFromGateway', - 'UpdateGatewayRouteTableEntryAttribute', - ], - ], - [ - 'id' => 185113, - 'title' => 'Prefix list', - 'type' => 'directory', - 'children' => [ - 'CreateVpcPrefixList', - 'RetryVpcPrefixListAssociation', - 'DeleteVpcPrefixList', - 'ModifyVpcPrefixList', - 'ListPrefixLists', - 'GetVpcPrefixListAssociations', - 'GetVpcPrefixListEntries', - ], ], [ - 'id' => 78655, - 'title' => 'DHCP', + 'children' => ['ModifyVpcPrefixList', 'GetVpcPrefixListAssociations'], 'type' => 'directory', - 'children' => [ - 'CreateDhcpOptionsSet', - 'DeleteDhcpOptionsSet', - 'AttachDhcpOptionsSetToVpc', - 'DetachDhcpOptionsSetFromVpc', - 'ReplaceVpcDhcpOptionsSet', - 'UpdateDhcpOptionsSetAttribute', - 'GetDhcpOptionsSet', - 'ListDhcpOptionsSets', - ], + 'title' => 'Prefix list', ], [ - 'id' => 78492, - 'title' => 'Flow log', + 'children' => ['DetachDhcpOptionsSetFromVpc', 'GetDhcpOptionsSet', 'ListDhcpOptionsSets'], 'type' => 'directory', - 'children' => [ - 'OpenFlowLogService', - 'CreateFlowLog', - 'DeleteFlowLog', - 'ModifyFlowLogAttribute', - 'ActiveFlowLog', - 'DeactiveFlowLog', - 'GetFlowLogServiceStatus', - 'DescribeFlowLogs', - ], + 'title' => 'DHCP options set', ], [ - 'id' => 78422, - 'title' => 'ACL', + 'children' => ['CreateFlowLog', 'ModifyFlowLogAttribute', 'DescribeFlowLogs'], 'type' => 'directory', - 'children' => [ - 'AssociateNetworkAcl', - 'CreateNetworkAcl', - 'CopyNetworkAclEntries', - 'DeleteNetworkAcl', - 'UnassociateNetworkAcl', - 'ModifyNetworkAclAttributes', - 'UpdateNetworkAclEntries', - 'DescribeNetworkAclAttributes', - 'DescribeNetworkAcls', - ], + 'title' => 'Flow log', ], [ - 'id' => 78415, - 'title' => 'HAVIP', + 'children' => ['UpdateNetworkAclEntries'], 'type' => 'directory', - 'children' => [ - 'CreateHaVip', - 'AssociateHaVip', - 'DeleteHaVip', - 'UnassociateHaVip', - 'ModifyHaVipAttribute', - 'DescribeHaVips', - ], + 'title' => 'Network ACL', ], [ - 'id' => 78730, - 'title' => 'Traffic mirror', - 'type' => 'directory', 'children' => [ [ - 'id' => 78731, - 'title' => 'Filter rule', + 'children' => ['CreateTrafficMirrorFilterRules', 'DeleteTrafficMirrorFilterRules', 'UpdateTrafficMirrorFilterRuleAttribute'], 'type' => 'directory', - 'children' => [ - 'CreateTrafficMirrorFilterRules', - 'DeleteTrafficMirrorFilterRules', - 'UpdateTrafficMirrorFilterRuleAttribute', - ], + 'title' => 'Traffic mirroring filter rule', ], [ - 'id' => 78735, - 'title' => 'Filter', + 'children' => ['CreateTrafficMirrorFilter', 'DeleteTrafficMirrorFilter', 'UpdateTrafficMirrorFilterAttribute', 'ListTrafficMirrorFilters'], 'type' => 'directory', - 'children' => [ - 'CreateTrafficMirrorFilter', - 'DeleteTrafficMirrorFilter', - 'UpdateTrafficMirrorFilterAttribute', - 'ListTrafficMirrorFilters', - ], + 'title' => 'Traffic mirroring filter', ], [ - 'id' => 78740, - 'title' => 'Session', + 'children' => ['AddSourcesToTrafficMirrorSession', 'CreateTrafficMirrorSession', 'DeleteTrafficMirrorSession', 'UpdateTrafficMirrorSessionAttribute', 'ListTrafficMirrorSessions', 'RemoveSourcesFromTrafficMirrorSession'], 'type' => 'directory', - 'children' => [ - 'AddSourcesToTrafficMirrorSession', - 'CreateTrafficMirrorSession', - 'DeleteTrafficMirrorSession', - 'UpdateTrafficMirrorSessionAttribute', - 'ListTrafficMirrorSessions', - 'RemoveSourcesFromTrafficMirrorSession', - ], + 'title' => 'Traffic mirror session', ], 'OpenTrafficMirrorService', 'GetTrafficMirrorServiceStatus', ], + 'type' => 'directory', + 'title' => 'Traffic mirroring', ], [ - 'id' => 362347, - 'title' => 'RouteTargetGroup', + 'children' => ['CreateRouteTargetGroup', 'DeleteRouteTargetGroup', 'SwitchActiveRouteTarget', 'UpdateRouteTargetGroup', 'ListRouteTargetGroups', 'GetRouteTargetGroup'], 'type' => 'directory', - 'children' => [ - 'SwitchActiveRouteTarget', - 'UpdateRouteTargetGroup', - 'ListRouteTargetGroups', - 'GetRouteTargetGroup', - 'DeleteRouteTargetGroup', - 'CreateRouteTargetGroup', - ], + 'title' => 'Routing target group', ], [ - 'id' => 78505, - 'title' => 'EIP', - 'type' => 'directory', 'children' => [ [ - 'id' => 201216, - 'title' => 'EIPs', - 'type' => 'directory', - 'children' => [ - 'AllocateEipAddress', - 'AllocateEipAddressPro', - 'ReleaseEipAddress', - 'ModifyEipAddressAttribute', - 'DescribeEipAddresses', - 'DescribeEipGatewayInfo', - 'AllocateEipSegmentAddress', - 'DescribeEipSegment', - 'ReleaseEipSegmentAddress', - 'ModifyEipForwardMode', - ], - ], - [ - 'id' => 201217, - 'title' => 'Associate EIPs with and disassociate EIPs from cloud resources', - 'type' => 'directory', - 'children' => [ - 'AssociateEipAddress', - 'AssociateEipAddressBatch', - 'UnassociateEipAddress', - ], - ], - [ - 'id' => 201218, - 'title' => 'IP address pools', - 'type' => 'directory', - 'children' => [ - 'CreatePublicIpAddressPool', - 'OpenPublicIpAddressPoolService', - 'AddPublicIpAddressPoolCidrBlock', - 'TransformEipSegmentToPublicIpAddressPool', - 'DeletePublicIpAddressPool', - 'DeletePublicIpAddressPoolCidrBlock', - 'UpdatePublicIpAddressPoolAttribute', - 'ListPublicIpAddressPools', - 'ListPublicIpAddressPoolCidrBlocks', - 'GetPublicIpAddressPoolServiceStatus', - ], - ], - [ - 'id' => 201219, - 'title' => 'Monitoring', + 'children' => ['AllocateEipAddress', 'AllocateEipAddressPro', 'ModifyEipAddressAttribute', 'DescribeEipAddresses'], 'type' => 'directory', - 'children' => [ - 'DescribeEipMonitorData', - 'SetHighDefinitionMonitorLogStatus', - 'DescribeHighDefinitionMonitorLogAttribute', - ], + 'title' => 'Elastic IP Address instance', ], [ - 'id' => 201220, - 'title' => 'Others', + 'children' => ['OpenPublicIpAddressPoolService', 'TransformEipSegmentToPublicIpAddressPool'], 'type' => 'directory', - 'children' => [ - 'DescribePublicIpAddress', - ], + 'title' => 'IP address pool', ], ], + 'type' => 'directory', + 'title' => 'Elastic IP Address', ], [ - 'id' => 78525, - 'title' => 'Bandwidth', - 'type' => 'directory', - 'children' => [ - 'CreateCommonBandwidthPackage', - 'AddCommonBandwidthPackageIp', - 'AddCommonBandwidthPackageIps', - 'RemoveCommonBandwidthPackageIp', - 'DeleteCommonBandwidthPackage', - 'ModifyCommonBandwidthPackageAttribute', - 'ModifyCommonBandwidthPackageSpec', - 'DescribeCommonBandwidthPackages', - 'ModifyCommonBandwidthPackageIpBandwidth', - 'CancelCommonBandwidthPackageIpBandwidth', - 'Describe95Traffic', - ], - ], - [ - 'id' => 78472, - 'title' => 'Physical connection', + 'children' => ['CreateCommonBandwidthPackage', 'AddCommonBandwidthPackageIp', 'AddCommonBandwidthPackageIps', 'RemoveCommonBandwidthPackageIp', 'Describe95Traffic'], 'type' => 'directory', + 'title' => 'Internet Shared Bandwidth', + ], + [ 'children' => [ [ - 'id' => 78563, - 'title' => 'Virtual physical connection', + 'children' => ['UpdateVirtualPhysicalConnection', 'ListVirtualPhysicalConnections'], 'type' => 'directory', - 'children' => [ - 'CreateVirtualPhysicalConnection', - 'UpdateVirtualPhysicalConnection', - 'ListVirtualPhysicalConnections', - ], + 'title' => 'Hosted Express Connect circuits', ], - 'OpenPhysicalConnectionService', - 'CreatePhysicalConnection', - 'ApplyPhysicalConnectionLOA', - 'SecondApplyPhysicalConnectionLOA', - 'CreatePhysicalConnectionSetupOrder', - 'CreatePhysicalConnectionOccupancyOrder', 'CreateHighReliablePhysicalConnection', - 'CreateVpconnFromVbr', - 'DeletePhysicalConnection', - 'CancelPhysicalConnection', - 'ModifyPhysicalConnectionAttribute', - 'EnablePhysicalConnection', - 'TerminatePhysicalConnection', - 'RecoverPhysicalConnection', - 'AttachVbrToVpconn', - 'GetPhysicalConnectionServiceStatus', - 'DescribeAccessPoints', - 'ConfirmPhysicalConnection', - 'DescribePhysicalConnections', - 'ListPhysicalConnectionFeatures', - 'CompletePhysicalConnectionLOA', 'DescribePhysicalConnectionLOA', - 'ListGeographicSubRegions', + 'CreatePhysicalConnectionOccupancyOrder', + 'ListPhysicalConnectionFeatures', + 'AssociateMacSecKey', + 'DisassociateMacSecKey', 'ListBusinessRegions', 'ListBusinessAccessPoints', ], - ], - [ - 'id' => 186880, - 'title' => 'Failover Test', - 'type' => 'directory', - 'children' => [ - 'CreateFailoverTestJob', - 'StartFailoverTestJob', - 'StopFailoverTestJob', - 'UpdateFailoverTestJob', - 'DeleteFailoverTestJob', - 'DescribeFailoverTestJob', - 'DescribeFailoverTestJobs', - ], - ], - [ - 'id' => 189661, - 'title' => 'QoS', - 'type' => 'directory', - 'children' => [ - 'DescribeExpressConnectTrafficQosRule', - 'DescribeExpressConnectTrafficQosQueue', - 'DescribeExpressConnectTrafficQos', - 'DeleteExpressConnectTrafficQosQueue', - 'DeleteExpressConnectTrafficQos', - 'DeleteExpressConnectTrafficQosRule', - 'ModifyExpressConnectTrafficQos', - 'ModifyExpressConnectTrafficQosQueue', - 'ModifyExpressConnectTrafficQosRule', - 'CreateExpressConnectTrafficQos', - 'CreateExpressConnectTrafficQosQueue', - 'CreateExpressConnectTrafficQosRule', - ], - ], - [ - 'id' => 78592, - 'title' => 'VBR', 'type' => 'directory', - 'children' => [ - [ - 'id' => 78726, - 'title' => 'VBR failover group', - 'type' => 'directory', - 'children' => [ - 'CreateVbrHa', - 'DeleteVbrHa', - 'DescribeVbrHa', - ], - ], - 'AssociatePhysicalConnectionToVirtualBorderRouter', - 'CreateVirtualBorderRouter', - 'DeleteVirtualBorderRouter', - 'UnassociatePhysicalConnectionFromVirtualBorderRouter', - 'UpdateVirtualBorderBandwidth', - 'ModifyVirtualBorderRouterAttribute', - 'TerminateVirtualBorderRouter', - 'RecoverVirtualBorderRouter', - 'DescribeVirtualBorderRouters', - 'DescribeGrantRulesToEcr', - 'DescribeVirtualBorderRoutersForPhysicalConnection', - ], + 'title' => 'Express Connect circuit', ], [ - 'id' => 78669, - 'title' => 'BGP', + 'children' => ['DescribeGrantRulesToEcr', 'ModifyVirtualBorderRouterAttribute', 'DescribeVirtualBorderRoutersForPhysicalConnection'], 'type' => 'directory', - 'children' => [ - 'AddBgpNetwork', - 'CreateBgpGroup', - 'CreateBgpPeer', - 'DeleteBgpGroup', - 'DeleteBgpNetwork', - 'DeleteBgpPeer', - 'ModifyBgpGroupAttribute', - 'ModifyBgpPeerAttribute', - 'DescribeBgpGroups', - 'DescribeBgpNetworks', - 'DescribeBgpPeers', - ], + 'title' => 'Virtual border router', ], [ - 'id' => 78447, - 'title' => 'NAT', - 'type' => 'directory', 'children' => [ [ - 'id' => 187842, - 'title' => 'Nat Gateways', - 'type' => 'directory', - 'children' => [ - 'CreateNatGateway', - 'DeleteNatGateway', - 'ModifyNatGatewayAttribute', - 'ModifyNatGatewaySpec', - 'DescribeNatGateways', - 'GetNatGatewayAttribute', - 'ListEnhanhcedNatGatewayAvailableZones', - 'UpdateNatGatewayNatType', - 'DescribeNatGatewayAssociateNetworkInterfaces', - 'VpcDescribeVpcNatGatewayNetworkInterfaceQuota', - ], - ], - [ - 'id' => 78625, - 'title' => 'SNAT Rule', + 'children' => ['CreateNatGateway', 'ModifyNatGatewayAttribute', 'DescribeNatGateways', 'GetNatGatewayAttribute', 'DescribeNatGatewayAssociateNetworkInterfaces'], 'type' => 'directory', - 'children' => [ - 'CreateSnatEntry', - 'DeleteSnatEntry', - 'ModifySnatEntry', - 'DescribeSnatTableEntries', - ], + 'title' => 'NAT gateway', ], [ - 'id' => 78620, - 'title' => 'DNAT Rule', + 'children' => ['CreateSnatEntry', 'ModifySnatEntry', 'DescribeSnatTableEntries'], 'type' => 'directory', - 'children' => [ - 'CreateForwardEntry', - 'DeleteForwardEntry', - 'ModifyForwardEntry', - 'DescribeForwardTableEntries', - ], + 'title' => 'SNAT rule', ], [ - 'id' => 78664, - 'title' => 'FullNat Rule', + 'children' => ['CreateFullNatEntry', 'ModifyFullNatEntryAttribute', 'ListFullNatEntries'], 'type' => 'directory', - 'children' => [ - 'CreateFullNatEntry', - 'DeleteFullNatEntry', - 'ModifyFullNatEntryAttribute', - 'ListFullNatEntries', - ], + 'title' => 'FullNAT rule', ], [ - 'id' => 187843, - 'title' => 'NatIp Management', - 'type' => 'directory', 'children' => [ [ - 'id' => 78716, - 'title' => 'NatIp', + 'children' => ['CreateNatIp', 'DeleteNatIp', 'ListNatIps'], 'type' => 'directory', - 'children' => [ - 'CreateNatIp', - 'DeleteNatIp', - 'ModifyNatIpAttribute', - 'ListNatIps', - ], + 'title' => 'NatIp', ], [ - 'id' => 78717, - 'title' => 'NatIpCidr', + 'children' => ['ModifyNatIpCidrAttribute', 'ListNatIpCidrs'], 'type' => 'directory', - 'children' => [ - 'CreateNatIpCidr', - 'DeleteNatIpCidr', - 'ModifyNatIpCidrAttribute', - 'ListNatIpCidrs', - ], + 'title' => 'NatIpCidr', ], ], + 'type' => 'directory', + 'title' => 'NatIp management', ], ], + 'type' => 'directory', + 'title' => 'NAT', ], [ - 'id' => 185179, - 'title' => 'IPv4 gateway', + 'children' => ['DeleteIpv4Gateway'], 'type' => 'directory', - 'children' => [ - 'CreateIpv4Gateway', - 'DeleteIpv4Gateway', - 'EnableVpcIpv4Gateway', - 'UpdateIpv4GatewayAttribute', - 'ListIpv4Gateways', - 'GetIpv4GatewayAttribute', - ], + 'title' => 'IPv4 gateway', ], [ - 'id' => 78439, - 'title' => 'VPN gateway', + 'children' => ['DescribeVpnGateway', 'DescribeVpnGateways', 'DescribeVpnGatewayAvailableZones'], 'type' => 'directory', - 'children' => [ - 'CreateVpnGateway', - 'AssociateVpnGatewayWithCertificate', - 'DeleteVpnGateway', - 'DissociateVpnGatewayWithCertificate', - 'ModifyVpnGatewayAttribute', - 'MoveVpnResourceGroup', - 'DescribeVpnGateway', - 'DescribeVpnGateways', - 'ListVpnCertificateAssociations', - 'DiagnoseVpnGateway', - 'GetVpnGatewayDiagnoseResult', - 'DescribeVpnGatewayAvailableZones', - ], - ], - [ - 'id' => 78460, - 'title' => 'Customer gateway', - 'type' => 'directory', - 'children' => [ - 'CreateCustomerGateway', - 'DeleteCustomerGateway', - 'ModifyCustomerGatewayAttribute', - 'DescribeCustomerGateway', - 'DescribeCustomerGateways', - ], + 'title' => 'VPN Gateway', ], [ - 'id' => 78681, - 'title' => 'Associate a VPN gateway', - 'type' => 'directory', 'children' => [ 'CreateVpnConnection', - 'DeleteVpnConnection', - 'ModifyVpnConnectionAttribute', - 'ModifyTunnelAttribute', 'DescribeVpnConnection', 'DescribeVpnConnections', 'DownloadVpnConnectionConfig', - 'DescribeVpnConnectionLogs', - 'DiagnoseVpnConnections', [ - 'id' => 78648, - 'title' => 'VPN gateway destination-based route', + 'children' => ['CreateVpnRouteEntry'], 'type' => 'directory', - 'children' => [ - 'CreateVpnRouteEntry', - 'PublishVpnRouteEntry', - 'DeleteVpnRouteEntry', - 'ModifyVpnRouteEntryWeight', - 'DescribeVpnRouteEntries', - ], + 'title' => 'Destination-based route', ], [ - 'id' => 78643, - 'title' => 'VPN gateway policy-based route', + 'children' => ['CreateVpnPbrRouteEntry'], 'type' => 'directory', - 'children' => [ - 'CreateVpnPbrRouteEntry', - 'DeleteVpnPbrRouteEntry', - 'ModifyVpnPbrRouteEntryWeight', - 'ModifyVpnPbrRouteEntryPriority', - 'ModifyVpnPbrRouteEntryAttribute', - 'DescribeVpnPbrRouteEntries', - ], + 'title' => 'Policy-based routing', ], ], - ], - [ - 'id' => 184668, - 'title' => 'Associate transit routers', 'type' => 'directory', - 'children' => [ - 'CreateVpnAttachment', - 'CreateVcoRouteEntry', - 'DeleteVpnAttachment', - 'DeleteVcoRouteEntry', - 'ModifyVpnAttachmentAttribute', - 'ModifyVcoRouteEntryWeight', - 'DescribeVpnAttachments', - 'DescribeVcoRouteEntries', - 'CheckVpnBgpEnabled', - 'DescribeVpnCrossAccountAuthorizations', - ], + 'title' => 'Attach VPN Gateway instance', ], [ - 'id' => 78637, - 'title' => 'SSL-VPN client certificate', + 'children' => ['CreateVpnAttachment', 'CreateVcoRouteEntry', 'DescribeVpnAttachments'], 'type' => 'directory', - 'children' => [ - 'CreateSslVpnClientCert', - 'DeleteSslVpnClientCert', - 'ModifySslVpnClientCert', - 'DescribeSslVpnClientCerts', - 'DescribeSslVpnClientCert', - 'DescribeSslVpnClients', - ], + 'title' => 'Attach transit router instance', ], [ - 'id' => 78631, - 'title' => 'SSL-VPN server', + 'children' => ['CreateSslVpnServer', 'ModifySslVpnServer'], 'type' => 'directory', - 'children' => [ - 'CreateSslVpnServer', - 'DeleteSslVpnServer', - 'ModifySslVpnServer', - 'DescribeSslVpnServers', - 'DescribeVpnSslServerLogs', - ], + 'title' => 'SSL server', ], [ - 'id' => 184659, - 'title' => 'IPsec servers', + 'children' => ['DeleteIpv6Gateway', 'DescribeIpv6Gateways', 'CreateIpv6EgressOnlyRule'], 'type' => 'directory', - 'children' => [ - 'CreateIpsecServer', - 'DeleteIpsecServer', - 'UpdateIpsecServer', - 'ListIpsecServers', - 'ListIpsecServerLogs', - ], - ], - [ - 'id' => 78692, 'title' => 'IPv6 gateway', - 'type' => 'directory', - 'children' => [ - 'AllocateIpv6Address', - 'ReleaseIpv6Address', - 'CreateIpv6Gateway', - 'CreateIpv6EgressOnlyRule', - 'DeleteIpv6Gateway', - 'DeleteIpv6EgressOnlyRule', - 'DeleteIpv6InternetBandwidth', - 'ModifyIpv6InternetBandwidth', - 'ModifyIpv6GatewayAttribute', - 'ModifyIpv6AddressAttribute', - 'DescribeIpv6Gateways', - 'DescribeIpv6EgressOnlyRules', - 'DescribeIpv6Addresses', - 'DescribeIpv6GatewayAttribute', - 'AllocateIpv6InternetBandwidth', - ], - ], - [ - 'id' => 185180, - 'title' => 'IPv6 Translator', - 'type' => 'directory', - 'children' => [ - 'CreateIPv6TranslatorAclList', - 'CreateIPv6TranslatorEntry', - 'AddIPv6TranslatorAclListEntry', - 'CreateIPv6Translator', - 'DeleteIPv6TranslatorAclList', - 'DeleteIPv6TranslatorEntry', - 'DeleteIPv6Translator', - 'ModifyIPv6TranslatorAclListEntry', - 'ModifyIPv6TranslatorAclAttribute', - 'ModifyIPv6TranslatorBandwidth', - 'ModifyIPv6TranslatorAttribute', - 'ModifyIPv6TranslatorEntry', - 'DescribeIPv6TranslatorAclLists', - 'DescribeIPv6TranslatorAclListAttributes', - 'DescribeIPv6Translators', - 'DescribeIPv6TranslatorEntries', - 'RemoveIPv6TranslatorAclListEntry', - ], - ], - [ - 'id' => 78391, - 'title' => 'Regions and zones', - 'type' => 'directory', - 'children' => [ - 'DescribeRegions', - 'DescribeZones', - ], ], [ - 'id' => 78385, - 'title' => 'Tag', + 'children' => ['DescribeTagKeys'], 'type' => 'directory', - 'children' => [ - 'TagResources', - 'TagResourcesForExpressConnect', - 'UnTagResources', - 'UntagResourcesForExpressConnect', - 'ListTagResources', - 'DescribeTags', - 'DescribeTagKeys', - 'ListTagResourcesForExpressConnect', - 'DescribeTagKeysForExpressConnect', - ], + 'title' => 'Label', ], [ - 'id' => 78583, - 'title' => 'Router interface', - 'type' => 'directory', - 'children' => [ - 'CreateRouterInterface', - 'DeleteRouterInterface', - 'DeleteExpressConnect', - 'ModifyRouterInterfaceAttribute', - 'ModifyRouterInterfaceSpec', - 'DescribeRouterInterfaces', - 'DescribeEcGrantRelation', - 'DescribeRouterInterfaceAttribute', - 'DeactivateRouterInterface', - 'GrantInstanceToVbr', - 'ActivateRouterInterface', - 'RevokeInstanceFromVbr', - 'ConnectRouterInterface', - ], - ], - [ - 'id' => 78466, - 'title' => 'Express cloud connection', + 'children' => ['DeleteExpressConnect'], 'type' => 'directory', - 'children' => [ - 'CreateExpressCloudConnection', - 'ModifyExpressCloudConnectionAttribute', - 'ModifyExpressCloudConnectionBandwidth', - ], + 'title' => 'Router interface', ], [ - 'id' => 78394, - 'title' => 'Instance', + 'children' => ['RemoveGlobalAccelerationInstanceIp'], 'type' => 'directory', - 'children' => [ - 'CreateGlobalAccelerationInstance', - 'AddGlobalAccelerationInstanceIp', - 'DeleteGlobalAccelerationInstance', - 'UnassociateGlobalAccelerationInstance', - 'ModifyGlobalAccelerationInstanceAttributes', - 'ModifyGlobalAccelerationInstanceSpec', - 'DescribeGlobalAccelerationInstances', - 'DescribeServerRelatedGlobalAccelerationInstances', - 'RemoveGlobalAccelerationInstanceIp', - ], + 'title' => 'Alibaba Cloud Global Accelerator (GA)', ], [ - 'id' => 78499, - 'title' => 'VPC gateway endpoint', + 'children' => ['ListVpcGatewayEndpoints'], 'type' => 'directory', - 'children' => [ - 'CreateVpcGatewayEndpoint', - 'DeleteVpcGatewayEndpoint', - 'UpdateVpcGatewayEndpointAttribute', - 'ListVpcEndpointServicesByEndUser', - 'GetVpcGatewayEndpointAttribute', - 'ListVpcGatewayEndpoints', - 'AssociateRouteTablesWithVpcGatewayEndpoint', - 'DissociateRouteTablesFromVpcGatewayEndpoint', - ], + 'title' => 'Gateway endpoint', ], [ - 'id' => 185233, - 'title' => 'Resource group', + 'children' => ['DescribeVpcGrantRulesToEcr', 'DeleteEnhancedVpnGateway', 'UpdateEnhancedVpnGateway', 'CreateEnhancedVpnGateway', 'GetNatIpAttribute', 'GetNatIpCidrAttribute', 'CreatePhysicalConnection', 'DescribeAccessPoints', 'DescribePhysicalConnections', 'DescribeTags', 'DescribeVirtualBorderRouters', 'EnablePhysicalConnection'], 'type' => 'directory', - 'children' => [ - 'MoveResourceGroup', - 'ChangeResourceGroup', - ], + 'title' => 'Other', ], [ - 'id' => 275485, - 'title' => 'Other', - 'type' => 'directory', 'children' => [ - 'DescribeVpcGrantRulesToEcr', - ], + 'ActivateRouterInterface', 'ActiveFlowLog', 'AddBgpNetwork', 'AddGlobalAccelerationInstanceIp', 'AddIPv6TranslatorAclListEntry', 'AddPublicIpAddressPoolCidrBlock', 'AllocateEipSegmentAddress', 'AllocateIpv6Address', 'AllocateIpv6InternetBandwidth', 'ApplyPhysicalConnectionLOA', 'AssociateEipAddress', 'AssociateEipAddressBatch', 'AssociateHaVip', 'AssociateNetworkAcl', 'AssociatePhysicalConnectionToVirtualBorderRouter', 'AssociateRouteTable', 'AssociateRouteTableWithGateway', 'AssociateRouteTablesWithVpcGatewayEndpoint', 'AssociateVpnGatewayWithCertificate', 'AttachDhcpOptionsSetToVpc', + 'AttachVbrToVpconn', 'CancelCommonBandwidthPackageIpBandwidth', 'CancelPhysicalConnection', 'ChangeResourceGroup', 'CheckCanAllocateVpcPrivateIpAddress', 'CheckVpnBgpEnabled', 'CompletePhysicalConnectionLOA', 'ConfirmPhysicalConnection', 'ConnectRouterInterface', 'ConvertBandwidthPackage', 'CopyNetworkAclEntries', 'CreateBgpGroup', 'CreateBgpPeer', 'CreateCustomerGateway', 'CreateDefaultVpc', 'CreateDhcpOptionsSet', 'CreateExpressCloudConnection', 'CreateExpressConnectTrafficQos', 'CreateExpressConnectTrafficQosQueue', 'CreateExpressConnectTrafficQosRule', + 'CreateFailoverTestJob', 'CreateForwardEntry', 'CreateGlobalAccelerationInstance', 'CreateHaVip', 'CreateIPv6Translator', 'CreateIPv6TranslatorAclList', 'CreateIPv6TranslatorEntry', 'CreateIpsecServer', 'CreateIpv4Gateway', 'CreateIpv6Gateway', 'CreateNatIpCidr', 'CreateNetworkAcl', 'CreatePhysicalConnectionSetupOrder', 'CreatePublicIpAddressPool', 'CreateRouterInterface', 'CreateSslVpnClientCert', 'CreateVSwitch', 'CreateVSwitchCidrReservation', 'CreateVbrHa', 'CreateVirtualBorderRouter', + 'CreateVirtualPhysicalConnection', 'CreateVpcGatewayEndpoint', 'CreateVpcPrefixList', 'CreateVpconnFromVbr', 'CreateVpnGateway', 'DeactivateRouterInterface', 'DeactiveFlowLog', 'DeleteBgpGroup', 'DeleteBgpNetwork', 'DeleteBgpPeer', 'DeleteCommonBandwidthPackage', 'DeleteCustomerGateway', 'DeleteDhcpOptionsSet', 'DeleteExpressConnectTrafficQos', 'DeleteExpressConnectTrafficQosQueue', 'DeleteExpressConnectTrafficQosRule', 'DeleteFailoverTestJob', 'DeleteFlowLog', 'DeleteForwardEntry', 'DeleteFullNatEntry', + 'DeleteGlobalAccelerationInstance', 'DeleteHaVip', 'DeleteIPv6Translator', 'DeleteIPv6TranslatorAclList', 'DeleteIPv6TranslatorEntry', 'DeleteIpsecServer', 'DeleteIpv6EgressOnlyRule', 'DeleteIpv6InternetBandwidth', 'DeleteNatGateway', 'DeleteNatIpCidr', 'DeleteNetworkAcl', 'DeletePhysicalConnection', 'DeletePublicIpAddressPool', 'DeletePublicIpAddressPoolCidrBlock', 'DeleteRouteTable', 'DeleteRouterInterface', 'DeleteSnatEntry', 'DeleteSslVpnClientCert', 'DeleteSslVpnServer', 'DeleteVbrHa', + 'DeleteVcoRouteEntry', 'DeleteVirtualBorderRouter', 'DeleteVpcGatewayEndpoint', 'DeleteVpcPrefixList', 'DeleteVpnAttachment', 'DeleteVpnConnection', 'DeleteVpnGateway', 'DeleteVpnPbrRouteEntry', 'DeleteVpnRouteEntry', 'DeletionProtection', 'DescribeBgpGroups', 'DescribeBgpNetworks', 'DescribeBgpPeers', 'DescribeCommonBandwidthPackages', 'DescribeCustomerGateway', 'DescribeCustomerGateways', 'DescribeEcGrantRelation', 'DescribeEipGatewayInfo', 'DescribeEipMonitorData', 'DescribeEipSegment', + 'DescribeExpressConnectTrafficQos', 'DescribeExpressConnectTrafficQosQueue', 'DescribeExpressConnectTrafficQosRule', 'DescribeFailoverTestJob', 'DescribeFailoverTestJobs', 'DescribeForwardTableEntries', 'DescribeGlobalAccelerationInstances', 'DescribeHaVips', 'DescribeHighDefinitionMonitorLogAttribute', 'DescribeIPv6TranslatorAclListAttributes', 'DescribeIPv6TranslatorAclLists', 'DescribeIPv6TranslatorEntries', 'DescribeIPv6Translators', 'DescribeIpv6Addresses', 'DescribeIpv6EgressOnlyRules', 'DescribeIpv6GatewayAttribute', 'DescribeNetworkAclAttributes', 'DescribeNetworkAcls', 'DescribePublicIpAddress', 'DescribeRegions', + 'DescribeRouteTableList', 'DescribeRouterInterfaceAttribute', 'DescribeRouterInterfaces', 'DescribeServerRelatedGlobalAccelerationInstances', 'DescribeSslVpnClientCert', 'DescribeSslVpnClientCerts', 'DescribeSslVpnClients', 'DescribeSslVpnServers', 'DescribeTagKeysForExpressConnect', 'DescribeVRouters', 'DescribeVbrHa', 'DescribeVcoRouteEntries', 'DescribeVpnConnectionLogs', 'DescribeVpnCrossAccountAuthorizations', 'DescribeVpnPbrRouteEntries', 'DescribeVpnRouteEntries', 'DescribeVpnSslServerLogs', 'DescribeZones', 'DiagnoseVpnConnections', 'DiagnoseVpnGateway', + 'DisableVpcClassicLink', 'DissociateRouteTableFromGateway', 'DissociateRouteTablesFromVpcGatewayEndpoint', 'DissociateVpnGatewayWithCertificate', 'EnableVpcClassicLink', 'EnableVpcIpv4Gateway', 'GetFlowLogServiceStatus', 'GetIpv4GatewayAttribute', 'GetPhysicalConnectionServiceStatus', 'GetPublicIpAddressPoolServiceStatus', 'GetVSwitchCidrReservationUsage', 'GetVpcGatewayEndpointAttribute', 'GetVpcPrefixListEntries', 'GetVpcRouteEntrySummary', 'GetVpnGatewayDiagnoseResult', 'GrantInstanceToVbr', 'ListEnhanhcedNatGatewayAvailableZones', 'ListGeographicSubRegions', 'ListIpsecServerLogs', 'ListIpsecServers', + 'ListIpv4Gateways', 'ListPrefixLists', 'ListPublicIpAddressPoolCidrBlocks', 'ListPublicIpAddressPools', 'ListTagResources', 'ListTagResourcesForExpressConnect', 'ListVSwitchCidrReservations', 'ListVpcEndpointServicesByEndUser', 'ListVpnCertificateAssociations', 'ModifyBgpGroupAttribute', 'ModifyBgpPeerAttribute', 'ModifyCommonBandwidthPackageAttribute', 'ModifyCommonBandwidthPackageIpBandwidth', 'ModifyCommonBandwidthPackageSpec', 'ModifyCustomerGatewayAttribute', 'ModifyEipForwardMode', 'ModifyExpressCloudConnectionAttribute', 'ModifyExpressCloudConnectionBandwidth', 'ModifyExpressConnectTrafficQos', 'ModifyExpressConnectTrafficQosQueue', + 'ModifyExpressConnectTrafficQosRule', 'ModifyForwardEntry', 'ModifyGlobalAccelerationInstanceAttributes', 'ModifyGlobalAccelerationInstanceSpec', 'ModifyHaVipAttribute', 'ModifyIPv6TranslatorAclAttribute', 'ModifyIPv6TranslatorAclListEntry', 'ModifyIPv6TranslatorAttribute', 'ModifyIPv6TranslatorBandwidth', 'ModifyIPv6TranslatorEntry', 'ModifyIpv6AddressAttribute', 'ModifyIpv6GatewayAttribute', 'ModifyIpv6InternetBandwidth', 'ModifyNatGatewaySpec', 'ModifyNatIpAttribute', 'ModifyNetworkAclAttributes', 'ModifyPhysicalConnectionAttribute', 'ModifyRouterInterfaceAttribute', 'ModifyRouterInterfaceSpec', 'ModifySslVpnClientCert', + 'ModifyTunnelAttribute', 'ModifyVRouterAttribute', 'ModifyVcoRouteEntryWeight', 'ModifyVpnAttachmentAttribute', 'ModifyVpnConnectionAttribute', 'ModifyVpnGatewayAttribute', 'ModifyVpnPbrRouteEntryAttribute', 'ModifyVpnPbrRouteEntryPriority', 'ModifyVpnPbrRouteEntryWeight', 'ModifyVpnRouteEntryWeight', 'MoveResourceGroup', 'MoveVpnResourceGroup', 'OpenFlowLogService', 'OpenPhysicalConnectionService', 'PublishVpnRouteEntry', 'RecoverPhysicalConnection', 'RecoverVirtualBorderRouter', 'ReleaseEipAddress', 'ReleaseEipSegmentAddress', 'ReleaseIpv6Address', + 'RemoveIPv6TranslatorAclListEntry', 'ReplaceVpcDhcpOptionsSet', 'RetryVpcPrefixListAssociation', 'RevokeInstanceFromVbr', 'SecondApplyPhysicalConnectionLOA', 'SetHighDefinitionMonitorLogStatus', 'StartFailoverTestJob', 'StopFailoverTestJob', 'TagResources', 'TagResourcesForExpressConnect', 'TerminatePhysicalConnection', 'TerminateVirtualBorderRouter', 'UnTagResources', 'UnassociateEipAddress', 'UnassociateGlobalAccelerationInstance', 'UnassociateHaVip', 'UnassociateNetworkAcl', 'UnassociatePhysicalConnectionFromVirtualBorderRouter', 'UnassociateRouteTable', 'UntagResourcesForExpressConnect', + 'UpdateDhcpOptionsSetAttribute', 'UpdateFailoverTestJob', 'UpdateGatewayRouteTableEntryAttribute', 'UpdateIpsecServer', 'UpdateIpv4GatewayAttribute', 'UpdateNatGatewayNatType', 'UpdatePublicIpAddressPoolAttribute', 'UpdateVirtualBorderBandwidth', 'UpdateVpcGatewayEndpointAttribute', 'VpcDescribeVpcNatGatewayNetworkInterfaceQuota', 'WithdrawVpcPublishedRouteEntries', + ], + 'title' => 'Others', + 'type' => 'directory', ], ], 'components' => [ 'schemas' => [], ], 'apis' => [ - 'CreateVpc' => [ - 'summary' => 'Creates a virtual private cloud (VPC).', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'ActivateRouterInterface' => [ + 'summary' => 'Activates a router interface that is in the Inactive state.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'write', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'create', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeCode' => '37646', - 'abilityTreeNodes' => [ - 'FEATUREvpcK3NXU2', - ], - ], + 'systemTags' => ['operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region to which the VPC belongs.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The region ID of the router interface.'."\n" + ."\n" + .'You can call [DescribeRegions](~~36063~~) to query region IDs.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'CidrBlock', + 'name' => 'RouterInterfaceId', 'in' => 'query', + 'schema' => ['description' => 'The ID of the router interface.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'ri-2zeo3xzyf38r4urz****', 'title' => ''], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => 'The CIDR block of the VPC.'."\n" - ."\n" - .'* We recommend using the private IPv4 address specified in RFC 1918 as the primary IPv4 CIDR block of the VPC with a recommended mask length of 16 to 28 bits. For example, 10.0.0.0/16, 172.16.0.0/16, and 192.168.0.0/16.'."\n" - .'* You can also use a custom CIDR block other than 100.64.0.0/10, 224.0.0.0/4, 127.0.0.0/8, 169.254.0.0/16, or their subnets as the primary IPv4 CIDR block.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '172.16.0.0/12', - 'default' => '172.16.0.0/12', + 'description' => 'The response parameters.', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '079874CD-AEC1-43E6-AC03-ADD96B6E4907', 'title' => ''], + ], + 'title' => '', + 'example' => '', ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'IncorrectRIStatus', 'errorMessage' => 'RouterInterface can be operated by this action only when it\'s status is Inactive.', 'description' => 'You can perform the operation only when the router interface is in the Inactive state.'], + ['errorCode' => 'Forbidden.FinancialLocked', 'errorMessage' => 'This RouterInterface is financiel locked because of bills outstanding.', 'description' => ''], + ['errorCode' => 'OperationFailed.PconnTrafficNotEnable', 'errorMessage' => 'The operation is failed because of PconnTrafficNotEnable.', 'description' => 'Billing for outbound data transfer is disabled.'], + ['errorCode' => 'Forbbiden', 'errorMessage' => 'The router does not belong to your account.', 'description' => 'The router does not belong to your account.'], + ['errorCode' => 'NotSupportLinkrole', 'errorMessage' => 'This RouterInterface is not a vlan interface for connection.', 'description' => 'The router interface is not a virtual interface for connection.'], + ['errorCode' => 'OppositeRouterInterfaceIsDeleted', 'errorMessage' => 'The opposite router interface is already deleted.', 'description' => 'The opposite router interface has been deleted'], + ], + 404 => [ + ['errorCode' => 'InvalidRegionId.NotFound', 'errorMessage' => 'The specified RegionId does not exist in our records.', 'description' => ''], + ['errorCode' => 'InvalidRouterInterfaceId.NotFound', 'errorMessage' => 'The specified RouterInterfaceId does not exist in our records.', 'description' => ''], + ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'Activate a router interface', + 'description' => 'After you call the ActivateRouterInterface operation, the router interface enters the **Activating** state. After the router interface is activated, it enters the **Active** state. '."\n" + ."\n" + .'> You cannot activate a router interface that has an overdue payment.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2024-04-19T07:23:36.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-07-21T03:54:45.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-04-10T03:22:23.000Z', 'description' => 'Error codes changed'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ActivateRouterInterface'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], + ], + 'ramActions' => [ [ - 'name' => 'Ipv6CidrBlock', - 'in' => 'query', - 'schema' => [ - 'description' => '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](~~448916~~) operation to reserve the specified IPv6 CIDR block.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '2408:XXXX:0:6a::/56', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:ActivateRouterInterface', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'RouterInterface', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:routerinterface/{#RouterInterfaceId}'], + ], ], ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"079874CD-AEC1-43E6-AC03-ADD96B6E4907\\"\\n}","type":"json"}]', + ], + 'ActiveFlowLog' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'VpcName', + 'AK' => [], + ], + ], + 'operationType' => 'readAndWrite', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'paid'], + 'parameters' => [ + [ + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The name of the VPC.'."\n" - ."\n" - .'The name must be 1 to 128 characters in length and cannot start with `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'abc', - ], + 'schema' => ['description' => 'The region ID of the flow log. You can call [DescribeRegions](~~36063~~) to query the region ID.', 'type' => 'string', 'required' => true, 'example' => 'cn-qingdao', 'title' => ''], ], [ - 'name' => 'EnableIpv6', + 'name' => 'FlowLogId', 'in' => 'query', + 'schema' => ['description' => 'The flow log ID.', 'type' => 'string', 'required' => true, 'example' => 'fl-m5e8vhz2t21sel1nq****', 'title' => ''], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => 'Indicates whether IPv6 is enabled. Valid values:'."\n" - ."\n" - .'* **false** (default): disabled.'."\n" - .'* **true**: enabled.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', + 'type' => 'object', + 'properties' => [ + 'Success' => ['description' => 'Indicates whether the call is successful.'."\n" + ."\n" + .'- **true**: The call is successful.'."\n" + .'- **false**: The call failed.', 'type' => 'string', 'example' => 'true', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'F7DDDC17-FA06-4AC2-8F35-59D2470FCFC1', 'title' => ''], + ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'IncorrectBusinessStatus.FlowLog', 'errorMessage' => 'The business status of flowLog is incorrect.', 'description' => ''], + ['errorCode' => 'InvalidInstanceId', 'errorMessage' => 'Instance does not exist.', 'description' => 'The error message returned because the specified instance does not exist.'], + ['errorCode' => 'InvalidStatus', 'errorMessage' => 'Current instance status is not valid for this action.', 'description' => ''], + ['errorCode' => 'InvalidRegionId.NotFound', 'errorMessage' => 'The RegionId provided does not exist in our records.', 'description' => ''], + ['errorCode' => 'InvalidInstanceId.NotFound', 'errorMessage' => 'The specfied instance is not existed.', 'description' => ''], + ['errorCode' => 'IncorrectStatus.flowlog', 'errorMessage' => 'Invalid flowlog status.', 'description' => 'The flow log cannot be disabled because it is in an invalid state.'], + ['errorCode' => 'Forbidden.OperateManagedFlowLog', 'errorMessage' => 'Authentication is failed for operate managed flowlog.', 'description' => 'Authentication failed when operating the managed flow log.'], + ['errorCode' => 'OperationDenied.FlowLogDeliverFailed', 'errorMessage' => 'The operation is not allowed due to an invalid delivery address.', 'description' => 'The flow log cannot be started because the delivery address is invalid.'], + ['errorCode' => 'OperationDenied.NisTrafficAnalyzerAggregationIntervalMismatch', 'errorMessage' => 'The sampling interval of the FlowLog is greater than the sampling interval of the NIS Traffic Analyzer.', 'description' => 'The sampling interval of the FlowLog is greater than the sampling interval of the NIS Traffic Analyzer.'], + ['errorCode' => 'OperationDenied.NisTrafficAnalyzerNotActive', 'errorMessage' => 'The specified NIS Traffic Analyzer is not enabled.', 'description' => 'The specified NIS Traffic Analyzer is not enabled.'], + ['errorCode' => 'OperationDenied.NisTrafficAnalyzerNotFound', 'errorMessage' => 'The specified NIS Traffic Analyzer does not exist.', 'description' => 'The specified NIS Traffic Analyzer does not exist.'], + ['errorCode' => 'OperationFailed.InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error.', 'description' => 'Unknown error. Please retry the operation. The error still exists. Please submit the work order for processing.'], + ], + ], + 'staticInfo' => ['returnType' => 'asynchronous', 'callback' => 'Vpc::2016-04-28::DescribeFlowLogs', 'callbackInterval' => 3000, 'maxCallbackTimes' => 10], + 'title' => 'Activate a flow log', + 'summary' => 'Calls the ActiveFlowLog operation to activate a flow log and start capturing traffic of the specified resource.', + 'description' => '* The **ActiveFlowLog** operation is asynchronous. After you call this operation, the system returns a request ID, but the flow log has not been activated yet because the activation task is still running in the background. You can call [DescribeFlowLogs](~~87923~~) to query the activation status of the flow log:'."\n" + .' - If the flow log is in the **Activating** state, the flow log is being activated.'."\n" + .' - If the flow log is in the **Active** state, the flow log has been activated.'."\n" + .'* The **ActiveFlowLog** operation does not support concurrent activation of the same flow log.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2025-02-21T05:35:49.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-07-06T01:32:52.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2022-12-16T05:09:24.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2021-11-17T10:03:13.000Z', 'description' => 'Error codes changed'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '600', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ActiveFlowLog'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], + ], + 'ramActions' => [ [ - 'name' => 'Description', - 'in' => 'query', - 'schema' => [ - 'description' => 'The description of the VPC.'."\n" - ."\n" - .'The description must be 1 to 256 characters in length and cannot start with `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'This is my first Vpc', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:ActiveFlowLog', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'FlowLog', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:flowlog/{#FlowLogId}'], + ], ], ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Success\\": \\"true\\",\\n \\"RequestId\\": \\"F7DDDC17-FA06-4AC2-8F35-59D2470FCFC1\\"\\n}","type":"json"}]', + ], + 'AddBgpNetwork' => [ + 'summary' => 'Invokes AddBgpNetwork to advertise a Border Gateway Protocol (BGP) network.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'ResourceGroupId', + 'AK' => [], + ], + ], + 'operationType' => 'readAndWrite', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free'], + 'parameters' => [ + [ + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the resource group.'."\n" - ."\n" - .'For more information about resource groups, see [What is a resource group?](~~94475~~)'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'rg-acfmxazb4ph6aiy****', - ], + 'schema' => ['description' => 'The region where the VBR group resides.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the region ID.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-shanghai', 'title' => ''], ], [ - 'name' => 'Tag', + 'name' => 'DstCidrBlock', 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => 'The tag of the resource.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => '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.'."\n" - ."\n" - .'The tag key can be at most 128 characters in length. It cannot start with `aliyun` or `acs:`, and cannot contain `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'FinanceDept', - ], - 'Value' => [ - 'description' => '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.'."\n" - ."\n" - .'The tag value can be up to 128 characters in length, but cannot contain `http://` or `https://`. The tag value cannot start with `aliyun` or `acs:`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'FinanceJoshua', - ], - ], - 'required' => false, - ], - 'required' => false, - 'maxItems' => 21, - ], + 'schema' => ['description' => 'The CIDR block of the VPC or vSwitch that needs to be interconnected with the on-premises data center.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '10.10.XX.XX/32', 'title' => ''], ], [ - 'name' => 'DryRun', + 'name' => 'VpcId', 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to perform a dry run, without performing the actual request. Valid values:'."\n" - ."\n" - .'* **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.'."\n" - .'* **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.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['description' => 'The ID of the VPC.', 'type' => 'string', 'required' => false, 'example' => 'vpc-bp1qpo0kug3a2*****', 'title' => ''], ], [ - 'name' => 'UserCidr', + 'name' => 'RouterId', 'in' => 'query', - 'schema' => [ - 'description' => 'The user CIDR block. Separate user CIDR blocks with commas (,). You can specify up to three user CIDR blocks.'."\n" - ."\n" - .'For more information about user CIDR blocks, see the `What is a user CIDR block?` section in [VPC FAQ](~~185311~~).'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '192.168.0.0/12', - ], + 'schema' => ['description' => 'The ID of the vRouter associated with the router interface.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'vrt-2zeo3xzyf38r4u******', 'title' => ''], ], [ 'name' => 'ClientToken', 'in' => 'query', + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'Generate a parameter value from your client to ensure uniqueness across different requests. ClientToken supports only ASCII characters.'."\n" + ."\n" + .'> If you do not specify this parameter, the system uses the **RequestId** of the API request as the **ClientToken**. The **RequestId** of each API request may be different.', 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-426655440000', 'title' => ''], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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.'."\n" - ."\n" - .'> 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.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-426655440000', + 'description' => 'The request ID.', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '9C7FA9D6-72E0-48A9-A9C3-2DA8569CD5EB', 'title' => ''], + ], + 'title' => '', + 'example' => '', ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'QuotaExceeded.Bgp', 'errorMessage' => 'bgp peer count per vbr quota exceed.', 'description' => 'The number of BGP peers in the VBR has reached the upper limit.'], + ['errorCode' => 'QuotaExceeded.Nqa', 'errorMessage' => 'nqa count per vbr quota exceed.', 'description' => ''], + ['errorCode' => 'QuotaExceeded.BgpNetwork', 'errorMessage' => 'bgp network count per vbr quota exceed.', 'description' => ''], + ['errorCode' => 'InvalidPeerIpAddress', 'errorMessage' => 'multi pconn peer ip can not be null.', 'description' => ''], + ['errorCode' => 'InvalidVbrNetwork', 'errorMessage' => 'vbr netowrk not exists', 'description' => ''], + ['errorCode' => 'InvalidBgpGroup', 'errorMessage' => 'bgp group not exists', 'description' => ''], + ['errorCode' => 'InvalidBgpName.Malformed', 'errorMessage' => 'Specified Bgp Group name is not valid.', 'description' => ''], + ['errorCode' => 'InvalidBgpDiscription.Malformed', 'errorMessage' => 'Specified Bgp Group description is not valid.', 'description' => ''], + ['errorCode' => 'InvalidBgpAuthkey.Malformed', 'errorMessage' => 'Specified Bgp Group authkey is not valid.', 'description' => ''], + ['errorCode' => 'InvalidIP.Malformed', 'errorMessage' => 'Ip malformed.', 'description' => ''], + ['errorCode' => 'InvalidPeerAsn.Malformed', 'errorMessage' => 'invalid peer asn cannot equals aliyun asn:45104', 'description' => ''], + ['errorCode' => 'InvalidParams.NotNull', 'errorMessage' => 'parameter must not null.', 'description' => ''], + ['errorCode' => 'InvalidParams.NotFound', 'errorMessage' => 'instance not found', 'description' => ''], + ['errorCode' => 'InvalidParams.AlreadyExists', 'errorMessage' => 'bgp network already exists', 'description' => 'The BGP network already exists.'], + ['errorCode' => 'InvalidStatus.CannotOperate', 'errorMessage' => 'invalid status cannot operate', 'description' => ''], + ['errorCode' => 'InvalidParams.PeerIpAddressMustPointOut', 'errorMessage' => 'vbr has 0 or more than 1 subif ,point out peerIpAddress.', 'description' => 'You must set the PeerIpAddress parameter.'], + ['errorCode' => 'InvalidParams.PeerIpAddressInUse', 'errorMessage' => 'peer ip address in use ,cannot create bgp peer.', 'description' => 'The peer IP address is being used. Therefore, you cannot use it to create a BGP peer.'], + ['errorCode' => 'Duplicated.CidrBlock', 'errorMessage' => 'bgp network cidr already exists.', 'description' => ''], + ['errorCode' => 'InvalidIP.IpInSnatPool', 'errorMessage' => 'Multi ip in snat pool cannot remove ip from bandwidth package.', 'description' => ''], + ['errorCode' => 'InvalidDestCidrBlock.Malformed', 'errorMessage' => 'Specified dstCidrBlock is not valid.', 'description' => ''], + ['errorCode' => 'IllegalParam.ConflictWithDClass', 'errorMessage' => 'DClass IP can not support.', 'description' => ''], + ['errorCode' => 'OperationFailed.PconnTrafficNotEnable', 'errorMessage' => 'The operation is failed because of PconnTrafficNotEnable.', 'description' => 'Billing for outbound data transfer is disabled.'], + ['errorCode' => 'OperationFailed.NoActiveRouterInterface', 'errorMessage' => 'there\'s not active routerInterface,cannot add bgp network.', 'description' => ''], + ['errorCode' => 'IllegalParamFormat.DstCidrBlock', 'errorMessage' => 'The format of the specified destination CIDR block is invalid.', 'description' => 'The error message returned because the format of the destination CIDR block is invalid.'], + ['errorCode' => 'IllegalParam.IpVersion', 'errorMessage' => 'The parameter of IpVersion is illegal.', 'description' => ''], + ['errorCode' => 'IllegalParam.ipVersion', 'errorMessage' => 'The IP version does not match.', 'description' => 'The operation failed because the IP version does not match.'], + ], + 404 => [ + ['errorCode' => 'InvalidRegionId.NotFound', 'errorMessage' => 'The specified RegionId does not exist in our records.', 'description' => ''], + ], + ], + 'title' => 'Advertise a BGP network', + 'changeSet' => [ + ['createdAt' => '2025-03-19T10:32:30.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-07-29T02:44:51.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2021-11-17T10:03:13.000Z', 'description' => 'Error codes changed'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'AddBgpNetwork'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], + ], + 'ramActions' => [ [ - 'name' => 'Ipv6Isp', - 'in' => 'query', - 'schema' => [ - 'description' => 'The type of the IPv6 CIDR block of the VPC. Valid values:'."\n" - ."\n" - .'* **BGP** (default)'."\n" - .'* **ChinaMobile**'."\n" - .'* **ChinaUnicom**'."\n" - .'* **ChinaTelecom**'."\n" - ."\n" - .'> If you are allowed to use single-ISP bandwidth, you can set the value to **ChinaTelecom**, **ChinaUnicom**, or **ChinaMobile**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'BGP', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'vpc:AddBgpNetwork', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VirtualBorderRouter', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:virtualborderrouter/{#VirtualBorderRouterId}'], + ], ], ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"9C7FA9D6-72E0-48A9-A9C3-2DA8569CD5EB\\"\\n}","type":"json"}]', + ], + 'AddCommonBandwidthPackageIp' => [ + 'summary' => 'Associates an elastic IP address (EIP) with an Internet Shared Bandwidth instance.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'readAndWrite', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'create', 'riskType' => 'none', 'chargeType' => 'free'], + 'parameters' => [ [ - 'name' => 'Ipv4IpamPoolId', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the IP Address Manager (IPAM) pool of the IPv4 type.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'ipam-pool-sycmt3p2a9v63i****', - ], + 'schema' => ['type' => 'string', 'description' => 'The region ID of the Internet Shared Bandwidth instance.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) API to obtain the region ID.', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'Ipv4CidrMask', + 'name' => 'BandwidthPackageId', 'in' => 'query', - 'schema' => [ - 'description' => 'Allocate VPC from the IPAM address pool by inputting a mask.'."\n" - .'> When creating a VPC with a specified IPAM address pool, at least one of the parameters CidrBlock or Ipv4CidrMask must be provided.', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '12', - ], + 'schema' => ['type' => 'string', 'description' => 'The ID of the Internet Shared Bandwidth instance.', 'required' => true, 'docRequired' => true, 'example' => 'cbwp-2ze2ic1xd2qeqasdf****', 'title' => ''], ], [ - 'name' => 'EnableDnsHostname', + 'name' => 'IpInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => 'Whether to enable the DNS hostname feature. Values:'."\n" - .'- **false** (default): Not enabled. '."\n" - .'- **true**: Enabled.', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['type' => 'string', 'description' => 'The ID of the EIP instance.'."\n" + ."\n" + .'You can call the [DescribeEipAddresses](~~36018~~) API to query the ID of the EIP instance.', 'required' => true, 'docRequired' => true, 'example' => 'eip-2zeerraiwb7uqwed****', 'title' => ''], ], [ - 'name' => 'Ipv6IpamPoolId', + 'name' => 'IpType', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the IP Address Manager (IPAM) pool of the IPv6 type.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'ipam-pool-bp1aq51kkfh477z03****', - ], + 'schema' => ['type' => 'string', 'description' => 'The IP type. Valid value: **EIP**, which indicates that an EIP is added to the Internet Shared Bandwidth instance.', 'required' => false, 'default' => 'EIP', 'example' => 'EIP', 'title' => ''], ], [ - 'name' => 'Ipv6CidrMask', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'Add an IPv6 CIDR block from the IPAM pool to the VPC by entering a mask.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '56', - ], + 'schema' => ['type' => 'string', 'description' => 'The client token used to ensure the idempotence of the request.'."\n" + ."\n" + .'Generate a unique value for this parameter from your client to ensure uniqueness across different requests. ClientToken supports only ASCII characters.'."\n" + ."\n" + .'> If you do not specify this parameter, the system automatically uses the **RequestId** of the API request as the **ClientToken**. The **RequestId** is different for each API request.', 'required' => false, 'example' => '0c593ea1-3bea-11e9-b96b-88e9fe637760', 'title' => ''], + ], + [ + 'name' => 'DryRun', + 'in' => 'query', + 'schema' => ['description' => 'Performs a dry run without actually executing the operation. ', 'title' => 'Performs a dry run without actually executing the operation. ', 'type' => 'boolean', 'required' => false, 'example' => 'false'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => 'The ID of the created VPC.'."\n", + 'description' => 'Returns a list of requests.', 'type' => 'object', 'properties' => [ - 'VpcId' => [ - 'description' => 'The ID of the created VPC.'."\n", - 'type' => 'string', - 'example' => 'vpc-bp15zckdt37pq72zv****', - ], - 'VRouterId' => [ - 'description' => 'The ID of the vRouter that is automatically created by the system after the VPC is created.'."\n", - 'type' => 'string', - 'example' => 'vrt-bp1lhl0taikrteen8****', - ], - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '0ED8D006-F706-4D23-88ED-E11ED28DCAC0', - ], - 'RouteTableId' => [ - 'description' => 'The ID of the route table that is automatically created by the system after the VPC is created.'."\n", - 'type' => 'string', - 'example' => 'vtb-bp145q7glnuzdv****', - ], - 'ResourceGroupId' => [ - 'description' => 'The resource group ID.'."\n", - 'type' => 'string', - 'example' => 'rg-acfmxazb4ph6aiy****', - ], + 'RequestId' => ['type' => 'string', 'description' => 'The request ID.', 'example' => '01FDDD49-C4B7-4D2A-A8E5-A93915C450A6', 'title' => ''], ], + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'TOKEN_PROCESSING', - 'errorMessage' => 'Action is processing.', - ], - [ - 'errorCode' => 'InvokeError', - 'errorMessage' => 'instance quota rule invoke error.', - ], - [ - 'errorCode' => 'InvalidParameter', - 'errorMessage' => 'Specified CIDR block is not valid', - ], - [ - 'errorCode' => 'ResourceNotAvailable', - 'errorMessage' => 'Resource you requested is not available in this region or zone.', - ], - [ - 'errorCode' => 'InvalidVpcName.Malformed', - 'errorMessage' => 'Specified VPC name is not valid.', - ], - [ - 'errorCode' => 'InvalidVpcDiscription.Malformed', - 'errorMessage' => 'Specified VPC description is not valid.', - ], - [ - 'errorCode' => 'QuotaExceeded.Vpc', - 'errorMessage' => 'VPC quota exceeded.', - ], - [ - 'errorCode' => 'ResourceNotAvailable.Vpc', - 'errorMessage' => 'Resource you requested is not available in this region or zone.', - ], - [ - 'errorCode' => 'InvalidUserCidr.Quota', - 'errorMessage' => 'Specified UserCidr number is greater than 3.', - ], - [ - 'errorCode' => 'InvalidUserCidr.Malformed', - 'errorMessage' => 'Specified UserCidr overlapping in of 100.64.0.0/10.', - ], - [ - 'errorCode' => 'InvalidResourceGroupId', - 'errorMessage' => 'The specified ResourceGroupId does not exist.', - ], - [ - 'errorCode' => 'IllegalParam.Ipv6CidrBlock', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'OperationFailed.IPv6CidrNotReserved', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'MissingParam.EnableIpv6', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'OperationUnsupported.Ipv6Feature', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'System.ServiceBusy', - 'errorMessage' => 'System is busy, please try later.', - ], - [ - 'errorCode' => 'IllegalParam.UserCidr', - 'errorMessage' => 'UserCidr is not a valid or strict address.', - ], - [ - 'errorCode' => 'OperationUnsupported.ResourceGroupId', - 'errorMessage' => 'ResourceGroup is not supported in this region.', - ], - [ - 'errorCode' => 'IllegalParam.EnableIpv6', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'InvalidIpv6CidrBlock.Malformed', - 'errorMessage' => 'Specified Ipv6CidrBlock is not valid.', - ], - [ - 'errorCode' => 'UnsupportedFeature.Ipv6Isp', - 'errorMessage' => 'The Ipv6Isp feature is not supported.', - ], - [ - 'errorCode' => 'ResourceNotEnough.Ipv6Cidr', - 'errorMessage' => 'The specified resource of Ipv6Cidr is not enough.', - ], - [ - 'errorCode' => 'UnsupportedFeature.IPAM', - 'errorMessage' => 'VPCs cannot be created by using IPAM.', - ], - [ - 'errorCode' => 'IllegalParam.Ipv4CidrMask', - 'errorMessage' => 'The specified Ipv4CidrMask is illegal.', - ], - [ - 'errorCode' => 'IllegalParam.IpamPool', - 'errorMessage' => 'The specified IPAM pool cannot be empty.', - ], - [ - 'errorCode' => 'OperationDenied.RequestRegionInvalid', - 'errorMessage' => 'The operation is not allowed because the request is not invoked in the region of the IPAM pool.', - ], - [ - 'errorCode' => 'OperationDenied.IpamPoolNotInRegion', - 'errorMessage' => 'The operation is not allowed because the IPAM pool not in specific region does not support creating VPC or associating CIDR for VPC.', - ], - [ - 'errorCode' => 'MissingParam.CidrOrCidrMask', - 'errorMessage' => 'The CIDR or CIDR Mask must be input.', - ], - [ - 'errorCode' => 'OperationDenied.CidrInExcludeCidrs', - 'errorMessage' => 'The operation is not allowed because the input CIDR is within the illegal CIDRs.', - ], - [ - 'errorCode' => 'OperationDenied.AvailableCidrInsufficient', - 'errorMessage' => 'The operation is not allowed because available CIDR is insufficient.', - ], - [ - 'errorCode' => 'UnsupportedFeature.Ipam', - 'errorMessage' => 'IPAM is not supported in this region.', - ], - [ - 'errorCode' => 'OperationDenied.CidrUnavailableInPool', - 'errorMessage' => 'The operation is not allowed because the CIDR is unavailable in the IPAM pool.', - ], - [ - 'errorCode' => 'IllegalParam.CidrBlockMask', - 'errorMessage' => 'The param of CidrBlock Mask [%s] is illegal.', - ], - [ - 'errorCode' => 'UnsupportedFeature.VpcDnsHostname', - 'errorMessage' => 'The feature of vpc dns hostname is unsupported.', - ], - [ - 'errorCode' => 'OperationDenied.MaskOfCidrIsNotAllowed', - 'errorMessage' => 'The input mask or mask of the input CIDR is not allowed.', - ], - [ - 'errorCode' => 'IllegalParam.Ipv6Isp', - 'errorMessage' => 'The specified Ipv6Isp is illegal.', - ], - [ - 'errorCode' => 'IllegalParam.CidrMask', - 'errorMessage' => 'The input CIDR mask is illegal.', - ], - [ - 'errorCode' => 'InvalidRegionId.NotFound', - 'errorMessage' => 'Specified value of "regionId" is not supported.', - ], - [ - 'errorCode' => 'UnsupportedFeature.DhcpOptionsSet', - 'errorMessage' => 'The feature of dhcp options set is unsupported.', - ], - ], - 403 => [ - [ - 'errorCode' => 'Forbidden', - 'errorMessage' => 'User not authorized to operate on the specified resource.', - ], + ['errorCode' => 'OperationDenied.SecurityProtectionTypesInconsistent', 'errorMessage' => 'The operation is not allowed because of SecurityProtectionTypesInconsistent.', 'description' => ''], + ['errorCode' => 'IpInstanceId.AlreadyInBandwidthPackage', 'errorMessage' => 'The specified Eip InstanceId already in bandwidthPackage.', 'description' => 'The specified Eip InstanceId already in bandwidthPackage.'], + ['errorCode' => 'IpInstanceId.BizStatusInvalid', 'errorMessage' => 'The specified Eip BizStatus is Disable, Cannot add to bandwidthPackage.', 'description' => ''], + ['errorCode' => 'IpInstanceId.ChargeType.NotSupport', 'errorMessage' => 'The specified Eip instance is PrePaid type, Cannot add to BandwidthPackage.', 'description' => ''], + ['errorCode' => 'BandwidthPackageId.InvalidBizStatus', 'errorMessage' => 'The specified BandwidthPackageId has been FinancialLocked, Cannot add Ip.', 'description' => ''], + ['errorCode' => 'IpInstanceId.QuotaExceeded', 'errorMessage' => 'The specified BandwidthPackageId has too many ip in it. exceed the quota , Cannot add more.', 'description' => ''], + ['errorCode' => 'EipOperation.TooFrequently', 'errorMessage' => 'The specified Eip add into bandwidthPackage too frequently. please add later.', 'description' => ''], + ['errorCode' => 'TaskConflict', 'errorMessage' => 'The operation is too frequent, TaskConflict.', 'description' => 'The system is unavailable. Try again later.'], + ['errorCode' => 'IncorrectStatus.Eip', 'errorMessage' => 'Eip status error.', 'description' => ''], + ['errorCode' => 'OperationUnsupported.IpType', 'errorMessage' => 'Ip type does not support the operation.', 'description' => ''], + ['errorCode' => 'ParamExclusive.IpInstanceIdAndBandwidthPackageId', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'InvalidBandwidthPackage.NotExist', 'errorMessage' => 'Eip bandwidth package not exist.', 'description' => ''], + ['errorCode' => 'OperationFailed.DistibuteLock', 'errorMessage' => 'Distibute lock fail.', 'description' => 'The operation is locked by another request;'], + ['errorCode' => 'OperationFailed.ZoneIdInconsistent', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'AttrMismatching.BandwidthPackageIpVersion', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'InvalidBandwidthPackageId.NotFound', 'errorMessage' => 'The specified BandwidthPackageId not exist.', 'description' => ''], + ['errorCode' => 'InvalidInstanceId.NotFound', 'errorMessage' => 'The InstanceId is not found.', 'description' => 'The InstanceId is not found.'], + ['errorCode' => 'InvalidEIPStatus.BizDisabled', 'errorMessage' => 'The EIP has been locked.', 'description' => 'The error message returned because the EIP is locked.'], + ['errorCode' => 'Forbidden.FinancialLocked', 'errorMessage' => 'The ip business status is invalid.', 'description' => 'The error message returned because the instance has overdue payments.'], + ['errorCode' => 'Mismatch.CloudBoxCbwpZoneAndEipZone', 'errorMessage' => 'The CbwpZone and EipZone are mismatched.', 'description' => 'The EIP bandwidth plan of the cloud box does not match the zone of the EIP.'], + ['errorCode' => 'MissingParam.BandwidthPackageId', 'errorMessage' => 'The parameter bandwidthPackageId is mandatory.', 'description' => ''], ], - [ - [ - 'errorCode' => 'ResourceNotFound.IpamPool', - 'errorMessage' => 'The dependent IPAM pool is not found.', - ], - ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'The request processing has failed due to some unknown error.', - ], + 404 => [ + ['errorCode' => 'InvalidRegionId.NotFound', 'errorMessage' => 'The specified RegionId does not exist in our records.', 'description' => ''], + ['errorCode' => 'InvalidBandwidthPackageId.NotFound', 'errorMessage' => 'The specified bandwidthPackageId does not exist in our records.', 'description' => ''], + ['errorCode' => 'InvalidIpInstanceId.NotFound', 'errorMessage' => 'The specified Eip InstanceId does not exist in our records.', 'description' => ''], + ['errorCode' => 'IpInstanceId.InvalidIpInternetChargeType', 'errorMessage' => 'The hybrid type eip not support add into bandwidthPackage of PayBytraffic type.', 'description' => ''], + ['errorCode' => 'BandwidthPackageId.InvalidBandwidth', 'errorMessage' => 'The hybrid type eip can not add into low bandwidth bandwidthPackage.', 'description' => ''], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"VpcId\\": \\"vpc-bp15zckdt37pq72zv****\\",\\n \\"VRouterId\\": \\"vrt-bp1lhl0taikrteen8****\\",\\n \\"RequestId\\": \\"0ED8D006-F706-4D23-88ED-E11ED28DCAC0\\",\\n \\"RouteTableId\\": \\"vtb-bp145q7glnuzdv****\\",\\n \\"ResourceGroupId\\": \\"rg-acfmxazb4ph6aiy****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n vpc-bp15zckdt37pq72zv****\\n vrt-bp1lhl0taikrteen8****\\n 0ED8D006-F706-4D23-88ED-E11ED28DCAC0\\n vtb-bp145q7glnuzdv****\\n rg-acfmxazb4ph6aiy****\\n","errorExample":""}]', - 'title' => 'CreateVpc', - 'description' => 'When you call this operation, take note of the following items:'."\n" - ."\n" - .'* You can specify only one CIDR block for each VPC.'."\n" - ."\n" - .'* After you create a VPC, you cannot change its CIDR block. However, you can add secondary IPv4 CIDR blocks to the VPC.'."\n" - ."\n" - .'* In each VPC, cloud services can use a maximum of 60,000 private IP addresses. You cannot increase the quota.'."\n" - ."\n" - .'* After you create a VPC, a vRouter and a route table are automatically created.'."\n" - ."\n" - .'* At most three user CIDR blocks can be added to a VPC. If a user CIDR block includes another user CIDR block, the one with the shorter subnet mask takes effect. For example, if both 10.0.0.0/8 and 10.1.0.0/16 are specified, only 10.0.0.0/8 takes effect.'."\n" - ."\n" - .'* **CreateVpc** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call the [DescribeVpcAttribute](~~94565~~) operation to query the status of the task:'."\n" - ."\n" - .' * If the VPC is in the **Creating** state, the VPC is being created.'."\n" - .' * If the VPC is in the **Created** state, the VPC is created.'."\n" + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"01FDDD49-C4B7-4D2A-A8E5-A93915C450A6\\"\\n}","type":"json"}]', + 'title' => 'AddCommonBandwidthPackageIp', + 'description' => 'Before invoking this API, note the following:'."\n" + .'- The EIP must meet the following conditions when you add it to an Internet Shared Bandwidth instance by using this API:'."\n" + .' - The metering method of the EIP is pay-as-you-go.'."\n" + .' - The Region of the EIP is the same as that of the Internet Shared Bandwidth instance to which you want to add the EIP.'."\n" + .' - The line type of the EIP matches the line type of the Internet Shared Bandwidth instance.'."\n" + .'- The **AddCommonBandwidthPackageIp** API is asynchronous. After you invoke this API, the system immediately returns a RequestId, but the EIP is not yet successfully added to the Internet Shared Bandwidth instance. The system continues to process the addition task in the background. You can call the [DescribeCommonBandwidthPackages](~~120309~~) API to query the association status between the Internet Shared Bandwidth instance and the EIP.'."\n" + .' - If the association status is **BINDING**, the Internet Shared Bandwidth instance and the EIP are being associated. In this state, you can only perform query operations and cannot perform other operations.'."\n" ."\n" - .'* You cannot repeatedly call the **DeleteRouteEntry** operation to create default VPCs within a specific time period. However, you can repeatedly call this operation to create custom VPCs within a specific time period.'."\n", + .' - If the association status is **BINDED**, the association between the Internet Shared Bandwidth instance and the EIP is complete.', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'CreateDefaultVpc' => [ - 'summary' => 'Creates a default virtual private cloud (VPC).', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [ + ['createdAt' => '2023-08-08T02:41:57.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2022-11-29T10:25:34.000Z', 'description' => 'Error codes changed'], ], + 'ramActions' => [], + 'translator' => 'machine', + ], + 'AddCommonBandwidthPackageIps' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -1313,538 +668,348 @@ ], 'operationType' => 'readAndWrite', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'create', - 'riskType' => 'none', - 'chargeType' => 'free', - ], + 'systemTags' => ['operationType' => 'create', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region to which the default VPC belongs.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The region ID of the Internet Shared Bandwidth instance.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~448570~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-shanghai', 'title' => ''], ], [ - 'name' => 'Ipv6CidrBlock', + 'name' => 'BandwidthPackageId', 'in' => 'query', - 'schema' => [ - 'description' => 'The IPv6 CIDR block of the default VPC.'."\n" - ."\n" - .'> When **EnableIpv6** is set to **true**, this parameter is required.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '2408:XXXX:346:b600::/56', - ], + 'schema' => ['description' => 'The ID of the Internet Shared Bandwidth instance.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cbwp-2ze2ic1xd2qeqasdf****', 'title' => ''], ], [ - 'name' => 'EnableIpv6', + 'name' => 'IpType', 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to enable IPv6. Valid values:'."\n" - ."\n" - .'* **false** (default)'."\n" - .'* **true**'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['description' => 'The IP type. Set the value to **EIP**, which indicates that an EIP is added to the Shared Bandwidth.'."\n", 'type' => 'string', 'required' => false, 'default' => 'EIP', 'example' => 'EIP', 'title' => ''], ], [ - 'name' => 'ResourceGroupId', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the resource group.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'rg-acfmystnjq4****', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'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.'."\n" + ."\n" + .'> 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.'."\n", 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-426655440000', 'title' => ''], ], [ - 'name' => 'ClientToken', + 'name' => 'IpInstanceIds', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + 'description' => 'The list of EIPs that you want to associate with the Internet Shared Bandwidth instance.'."\n" ."\n" - .'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.'."\n" + .'You can specify at most 10 EIP IDs at a time.'."\n", + 'type' => 'array', + 'items' => ['description' => 'The list of EIPs that you want to associate with the Internet Shared Bandwidth instance.'."\n" ."\n" - .'> 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.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-426655440000', + .'You can specify at most 10 EIP IDs at a time.'."\n", 'type' => 'string', 'required' => false, 'example' => 'eip-2zeerraiwb7uqwed****', 'title' => ''], + 'required' => true, + 'maxItems' => 10, + 'title' => '', + 'example' => '', ], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => 'The ID of the default VPC.'."\n", + 'description' => 'The response parameters.'."\n", 'type' => 'object', 'properties' => [ - 'VpcId' => [ - 'description' => 'The ID of the default VPC.'."\n", - 'type' => 'string', - 'example' => 'vpc-bp15zckdt37pq72zv****', - ], - 'VRouterId' => [ - 'description' => 'The vRouter ID that is automatically created by the system after you create a default VPC.'."\n", - 'type' => 'string', - 'example' => 'vrt-bp1lhl0taikrteen8****', - ], - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '0ED8D006-F706-4D23-88ED-E11ED28DCAC0', - ], - 'RouteTableId' => [ - 'description' => 'The route table ID that is automatically created by the system after you create a default VPC.'."\n", - 'type' => 'string', - 'example' => 'vtb-bp1q1uirugzb1x32m****', - ], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '01FDDD49-C4B7-4D2A-A8E5-A93915C450A6', 'title' => ''], ], + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'TOKEN_PROCESSING', - 'errorMessage' => 'Action is processing.', - ], - [ - 'errorCode' => 'InvokeError', - 'errorMessage' => 'instance quota rule invoke error.', - ], - [ - 'errorCode' => 'InvalidParameter', - 'errorMessage' => 'Specified CIDR block is not valid', - ], - [ - 'errorCode' => 'ResourceNotAvailable', - 'errorMessage' => 'Resource you requested is not available in this region or zone.', - ], - [ - 'errorCode' => 'InvalidVpcName.Malformed', - 'errorMessage' => 'Specified VPC name is not valid.', - ], - [ - 'errorCode' => 'InvalidVpcDiscription.Malformed', - 'errorMessage' => 'Specified VPC description is not valid.', - ], - [ - 'errorCode' => 'QuotaExceeded.Vpc', - 'errorMessage' => 'VPC quota exceeded.', - ], - [ - 'errorCode' => 'ResourceNotAvailable.Vpc', - 'errorMessage' => 'Resource you requested is not available in this region or zone.', - ], - [ - 'errorCode' => 'InvalidUserCidr.Quota', - 'errorMessage' => 'Specified UserCidr number is greater than 3.', - ], - [ - 'errorCode' => 'InvalidUserCidr.Malformed', - 'errorMessage' => 'Specified UserCidr overlapping in of 100.64.0.0/10.', - ], - [ - 'errorCode' => 'InvalidResourceGroupId', - 'errorMessage' => 'The specified ResourceGroupId does not exist.', - ], - [ - 'errorCode' => 'IllegalParam.Ipv6CidrBlock', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'OperationFailed.IPv6CidrNotReserved', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'MissingParam.EnableIpv6', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'OperationUnsupported.Ipv6Feature', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'IllegalParam.ZoneId', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'OperationFailed.DefaultVpcExist', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'InvalidRegionId.NotFound', - 'errorMessage' => 'Specified value of "regionId" is not supported.', - ], - ], - 403 => [ - [ - 'errorCode' => 'Forbbiden', - 'errorMessage' => 'User not authorized to operate on the specified resource.', - ], - ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'The request processing has failed due to some unknown error.', - ], + ['errorCode' => 'OperationDenied.SecurityProtectionTypesInconsistent', 'errorMessage' => 'The operation is not allowed because of SecurityProtectionTypesInconsistent.', 'description' => ''], + ['errorCode' => 'InvalidIpInstanceId.NotFound', 'errorMessage' => 'The specified Eip InstanceId does not exist in our records.', 'description' => 'The specified EIP does not exist.'], + ['errorCode' => 'EIP_ALREADY_IN_BANDWIDTHPACKAGE', 'errorMessage' => 'The Eip already in bandwidthPackage.', 'description' => ''], + ['errorCode' => 'InvalidRegionId.NotFound', 'errorMessage' => 'The specified RegionId does not exist in our records.', 'description' => 'The specified region ID does not exist.'], + ['errorCode' => 'InvalidBandwidthPackageId.NotFound', 'errorMessage' => 'The specified bandwidthPackageId does not exist in our records.', 'description' => 'The ID of the specified EIP bandwidth plan does not exist.'], + ['errorCode' => 'IpInstanceId.AlreadyInBandwidthPackage', 'errorMessage' => 'The specified Eip InstanceId already in bandwidthPackage.', 'description' => 'The specified Eip InstanceId already in bandwidthPackage.'], + ['errorCode' => 'IpInstanceId.BizStatusInvalid', 'errorMessage' => 'The specified Eip BizStatus is Disable, Cannot add to bandwidthPackage.', 'description' => ''], + ['errorCode' => 'IpInstanceId.ChargeType.NotSupport', 'errorMessage' => 'The specified Eip instance is PrePaid type, Cannot add to BandwidthPackage.', 'description' => ''], + ['errorCode' => 'BandwidthPackageId.InvalidBizStatus', 'errorMessage' => 'The specified BandwidthPackageId has been FinancialLocked, Cannot add Ip.', 'description' => ''], + ['errorCode' => 'IpInstanceId.QuotaExceeded', 'errorMessage' => 'The specified BandwidthPackageId has too many ip in it. exceed the quota , Cannot add more.', 'description' => ''], + ['errorCode' => 'EipOperation.TooFrequently', 'errorMessage' => 'The specified Eip add into bandwidthPackage too frequently. please add later.', 'description' => ''], + ['errorCode' => 'IpInstanceId.InvalidIpInternetChargeType', 'errorMessage' => 'The hybrid type eip not support add into bandwidthPackage of PayBytraffic type.', 'description' => ''], + ['errorCode' => 'TaskConflict', 'errorMessage' => 'The operation is too frequent, TaskConflict.', 'description' => 'The system is unavailable. Try again later.'], + ['errorCode' => 'IncorrectStatus.Eip', 'errorMessage' => 'Eip status error.', 'description' => ''], + ['errorCode' => 'OperationUnsupported.IpType', 'errorMessage' => 'Ip type does not support the operation.', 'description' => ''], + ['errorCode' => 'ParamExclusive.IpInstanceIdAndBandwidthPackageId', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'InvalidBandwidthPackage.NotExist', 'errorMessage' => 'Eip bandwidth package not exist.', 'description' => ''], + ['errorCode' => 'OperationFailed.DistibuteLock', 'errorMessage' => 'Distibute lock fail.', 'description' => 'The operation is locked by another request;'], + ['errorCode' => 'BandwidthPackageId.InvalidBandwidth', 'errorMessage' => 'The hybrid type eip can not add into low bandwidth bandwidthPackage.', 'description' => ''], + ['errorCode' => 'OperationFailed.ZoneIdInconsistent', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'AttrMismatching.BandwidthPackageIpVersion', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'InvalidEIPStatus.BizDisabled', 'errorMessage' => 'The EIP has been locked.', 'description' => 'The error message returned because the EIP is locked.'], + ['errorCode' => 'Forbidden.FinancialLocked', 'errorMessage' => 'The ip business status is invalid.', 'description' => 'The error message returned because the instance has overdue payments.'], + ['errorCode' => 'Mismatch.CloudBoxCbwpZoneAndEipZone', 'errorMessage' => 'The CbwpZone and EipZone are mismatched.', 'description' => 'The EIP bandwidth plan of the cloud box does not match the zone of the EIP.'], + ['errorCode' => 'InvalidInstanceId.NotFound', 'errorMessage' => 'The InstanceId is not found.', 'description' => 'The InstanceId is not found.'], + ['errorCode' => 'MissingParam.BandwidthPackageId', 'errorMessage' => 'The parameter bandwidthPackageId is mandatory.', 'description' => ''], ], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"VpcId\\": \\"vpc-bp15zckdt37pq72zv****\\",\\n \\"VRouterId\\": \\"vrt-bp1lhl0taikrteen8****\\",\\n \\"RequestId\\": \\"0ED8D006-F706-4D23-88ED-E11ED28DCAC0\\",\\n \\"RouteTableId\\": \\"vtb-bp1q1uirugzb1x32m****\\"\\n}","type":"json"}]', - 'title' => 'CreateDefaultVpc', - 'description' => '## Usage notes'."\n" - ."\n" - .'When you call this operation, take note of the following items:'."\n" - ."\n" - .'* After you create a default VPC, you cannot change its CIDR block. However, you can add secondary IPv4 CIDR blocks to it.'."\n" - ."\n" - .'* In each default VPC, cloud services can use a maximum of 60,000 private IP addresses. You cannot increase the quota.'."\n" - ."\n" - .'* After you create a default VPC, a vRouter and a route table are automatically created for the VPC.'."\n" - ."\n" - .'* At most three user CIDR blocks can be added to a VPC. If a user CIDR block includes another user CIDR block, the one with the shorter subnet mask takes effect. For example, if 10.0.0.0/8 and 10.1.0.0/16 are specified, only 10.0.0.0/8 takes effect.'."\n" - ."\n" - .'* **CreateDefaultVpc** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call the [DescribeVpcAttribute](~~94565~~) operation to query the status of the task:'."\n" - ."\n" - .' * If the default VPC is in the **Pending** state, the VPC is being configured.'."\n" - .' * If the default VPC is in the **Available** state, the VPC is available.'."\n" - ."\n" - .'* You cannot repeatedly call the **CreateDefaultVpc** operation within a specific time period.'."\n" - ."\n" - .'* You can create only one default VPC in each region.'."\n", + 'title' => 'AddCommonBandwidthPackageIps', + 'summary' => 'Associates multiple elastic IP addresses (EIPs) with an Internet Shared Bandwidth instance.', + 'description' => '- 调用本接口批量添加EIP到共享带宽中时,EIP需满足以下条件:'."\n" + .' - EIP的计费方式为按量付费。'."\n" + .' - EIP的地域与要加入的共享带宽的地域相同。'."\n" + .' - EIP的线路类型与要加入的共享带宽的线路类型一致。'."\n" + .'- **AddCommonBandwidthPackageIps**接口属于异步接口,即系统会先返回一个请求ID,但EIP并未成功添加到共享带宽,系统后台的添加任务仍在进行。您可以调用[DescribeCommonBandwidthPackages](~~DescribeCommonBandwidthPackages~~)查询共享带宽和EIP的关联状态。 '."\n" + .' - 当共享带宽和EIP的关联状态处于**BINDING**时,表示共享带宽与EIP关联中,在该状态下,您只能执行查询操作,不能执行其他操作。'."\n" + .' - 当共享带宽和EIP的关联状态处于**BINDED**时,表示共享带宽与EIP关联完成。', + 'changeSet' => [ + ['createdAt' => '2024-01-17T06:52:59.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-08-08T02:41:57.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-06-26T06:23:11.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2022-11-29T10:25:34.000Z', 'description' => 'Error codes changed'], + ], + 'ramActions' => [], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"01FDDD49-C4B7-4D2A-A8E5-A93915C450A6\\"\\n}","type":"json"}]', + 'translator' => 'manual', ], - 'GrantInstanceToCen' => [ - 'summary' => 'Grants permissions to a CEN instance.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'AddGlobalAccelerationInstanceIp' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'update', - 'riskType' => 'none', - 'chargeType' => 'free', - ], + 'systemTags' => ['operationType' => 'create'], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region where the network instance is deployed.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cn-hangzhou', - ], - ], - [ - 'name' => 'InstanceId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the network instance.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'vpc-uf6o8d1dj8sjwxi6o****', - ], - ], - [ - 'name' => 'InstanceType', - 'in' => 'query', - 'schema' => [ - 'description' => 'The type of the network instance. Valid values:'."\n" - ."\n" - .'* **VPC**'."\n" - .'* **VBR**'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'VPC', - ], - ], - [ - 'name' => 'CenId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the CEN instance to which you want to grant permissions.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cen-7qthudw0ll6jmc****', - ], + 'schema' => ['description' => 'The region of the shared-bandwidth GA instance.'."\n" + ."\n" + .'You can call the **DescribeRegions** operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'CenOwnerId', + 'name' => 'GlobalAccelerationInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => 'The user ID (UID) of the Apsara Stack tenant account to which the CEN instance belongs.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'example' => '123456789', - ], + 'schema' => ['description' => 'The ID of the shared-bandwidth GA instance.'."\n", 'type' => 'string', 'required' => true, 'example' => 'ga-Ldefrgbttnyyf****', 'title' => ''], ], [ - 'name' => 'ClientToken', + 'name' => 'IpInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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.'."\n" - ."\n" - .'> 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.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '0c593ea1-3bea-11e9-b96b-88e9fe637760', - ], + 'schema' => ['description' => 'The EIP ID. You can call the [DescribeEipAddresses](~~36018~~) operation to query EIP IDs.'."\n" + ."\n" + .'> Make sure that the billing method of the EIP is pay-as-you-go, and the EIP and the shared-bandwidth GA instance belong to the same region.'."\n", 'type' => 'string', 'required' => true, 'example' => 'eip-rw434rwfdeaf****', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => 'The request ID.'."\n", 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E', - ], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '01FDDD49-C4B7-4D2A-A8E5-A93915C450A6', 'title' => ''], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'IncorrectStatus', - 'errorMessage' => 'Current Instance status does not support this operation.', - ], - [ - 'errorCode' => 'TaskConflict', - 'errorMessage' => 'The operation is too frequent, TaskConflict.', - ], - [ - 'errorCode' => 'MissingParam.CenInstanceId', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'IllegalParam.CenInstanceId', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'Invalid.Grant', - 'errorMessage' => 'Can not grant to other owner cen.', - ], + ['errorCode' => 'IpInstanceId.AlreadyInBandwidthPackage', 'errorMessage' => 'The specified Eip InstanceId already in bandwidthPackage.', 'description' => 'The specified Eip InstanceId already in bandwidthPackage.'], + ['errorCode' => 'IpInstanceId.BizStatusInvalid', 'errorMessage' => 'The specified Eip BizStatus is Disable, Cannot add to bandwidthPackage.', 'description' => ''], + ['errorCode' => 'IpInstanceId.ChargeType.NotSupport', 'errorMessage' => 'The specified Eip instance is PrePaid type, Cannot add to BandwidthPackage.', 'description' => ''], + ['errorCode' => 'BandwidthPackageId.InvalidBizStatus', 'errorMessage' => 'The specified BandwidthPackageId has been FinancialLocked, Cannot add Ip.', 'description' => ''], + ['errorCode' => 'IpInstanceId.QuotaExceeded', 'errorMessage' => 'The specified BandwidthPackageId has too many ip in it. exceed the quota , Cannot add more.', 'description' => ''], + ['errorCode' => 'EipOperation.TooFrequently', 'errorMessage' => 'The specified Eip add into bandwidthPackage too frequently. please add later.', 'description' => ''], ], 404 => [ - [ - 'errorCode' => 'InvalidInstanceId.NotFound', - 'errorMessage' => 'Specified Instance does not exist.', - ], - [ - 'errorCode' => 'InstanceType.Invalid', - 'errorMessage' => 'Specified type is not valid.', - ], - [ - 'errorCode' => 'QuotaExceeded.CbnGrantRules', - 'errorMessage' => 'cbn grantRules per instance quota exceed', - ], - [ - 'errorCode' => 'InvalidRegionId.NotFound', - 'errorMessage' => 'The RegionId provided does not exist in our records.', - ], - [ - 'errorCode' => 'InvalidVbr.NotFound', - 'errorMessage' => 'Specified vbr does not exist.', + ['errorCode' => 'InvalidRegionId.NotFound', 'errorMessage' => 'The specified RegionId does not exist in our records.', 'description' => ''], + ['errorCode' => 'InvalidBandwidthPackageId.NotFound', 'errorMessage' => 'The specified bandwidthPackageId does not exist in our records.', 'description' => ''], + ['errorCode' => 'InvalidIpInstanceId.NotFound', 'errorMessage' => 'The specified Eip InstanceId does not exist in our records.', 'description' => ''], + ['errorCode' => 'IpInstanceId.InvalidIpInternetChargeType', 'errorMessage' => 'The hybrid type eip not support add into bandwidthPackage of PayBytraffic type.', 'description' => ''], + ['errorCode' => 'IpInstanceId.StatusNotAvailable', 'errorMessage' => 'The specified Eip Status is not Available, Cannot add to GlobalAcceleration.', 'description' => ''], + ], + ], + 'title' => 'AddGlobalAccelerationInstanceIp', + 'summary' => 'Associates an elastic IP address (EIP) with a shared-bandwidth Global Accelerator (GA) instance.', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'AddGlobalAccelerationInstanceIp'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], + ], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'vpc:AddGlobalAccelerationInstanceIp', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'All Resource', 'arn' => '*'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E\\n","errorExample":""}]', - 'title' => 'GrantInstanceToCen', - 'description' => '* Before you can attach a network instance that belongs to another Alibaba Cloud account to your CEN instance, you must grant permissions to your CEN instance.'."\n" - ."\n" - .'> **GrantInstanceToCen** is a Virtual Private Cloud (VPC) operation. Therefore, you must use the `vpc.aliyuncs.com` domain name to call this operation. The API version is `2016-04-28`.'."\n" - ."\n" - .'* You cannot repeatedly call the **GrantInstanceToCen** operation to grant the permissions on a network instance to a CEN instance. The network instance can be a VPC, a virtual border router (VBR), or a Cloud Connect Network (CCN) instance.'."\n", + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"01FDDD49-C4B7-4D2A-A8E5-A93915C450A6\\"\\n}","errorExample":"\\n\\n 01FDDD49-C4B7-4D2A-A8E5-A93915C450A6\\n"},{"type":"xml","example":"\\n 01FDDD49-C4B7-4D2A-A8E5-A93915C450A6\\n","errorExample":"{\\n \\"RequestId\\": \\"01FDDD49-C4B7-4D2A-A8E5-A93915C450A6\\"\\n}"}]', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', ], - 'AssociateVpcCidrBlock' => [ - 'summary' => 'Adds a secondary CIDR block to a virtual private cloud (VPC).', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'AddIPv6TranslatorAclListEntry' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'readAndWrite', - 'systemTags' => [ - 'operationType' => 'create', - 'riskType' => 'none', - 'chargeType' => 'free', - ], + 'deprecated' => true, + 'systemTags' => ['operationType' => 'create'], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the VPC to which you want to add a secondary CIDR block.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the region ID.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'ch-hangzhou', - ], + 'schema' => ['description' => 'The region ID of the ACL.'."\n", 'type' => 'string', 'required' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'VpcId', + 'name' => 'AclId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the VPC to which you want to add a secondary CIDR block.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'vpc-o6wrloqsdqc9io3mg****', - ], + 'schema' => ['description' => 'The ID of the ACL to which you want to add the IP entry.'."\n", 'type' => 'string', 'required' => true, 'example' => 'ipv6transacl-bp1dcdvfe2****', 'title' => ''], ], [ - 'name' => 'SecondaryCidrBlock', + 'name' => 'AclEntryIp', 'in' => 'query', - 'schema' => [ - 'description' => 'The IPv4 CIDR block to be added. Take note of the following requirements:'."\n" - ."\n" - .'* You can specify one of the following standard IPv4 CIDR blocks or their subnets as the secondary IPv4 CIDR block of the VPC: 192.168.0.0/16, 172.16.0.0/12, and 10.0.0.0/8.'."\n" - .'* You can also use a custom CIDR block other than 100.64.0.0/10, 224.0.0.0/4, 127.0.0.0/8, 169.254.0.0/16, or their subnets as the secondary IPv4 CIDR block of the VPC.'."\n" - ."\n" - .'The CIDR block must meet the following requirements:'."\n" - ."\n" - .'* The CIDR block cannot start with 0. The subnet mask must be 8 to 28 bits in length.'."\n" - .'* The CIDR block cannot overlap with the primary CIDR block or an existing secondary CIDR block of the VPC.'."\n" - ."\n" - .'> You must and can specify only one of **SecondaryCidrBlock** and **Ipv6CidrBlock**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '192.168.0.0/16', - ], + 'schema' => ['description' => 'The IPv6 address or IPv6 CIDR block that you want to add to the ACL entry, for example, 12XX:0:0:XXXX::0102 or 12XX:0:0:XXXX::/60.'."\n", 'type' => 'string', 'required' => true, 'example' => '12XX:0:0:XXXX::0102', 'title' => ''], ], [ - 'name' => 'SecondaryCidrMask', + 'name' => 'AclEntryComment', 'in' => 'query', + 'schema' => ['description' => 'The remarks of the ACL entry.'."\n" + ."\n" + .'It must be 2 to 100 characters in length, and can contain letters, digits, underscores (\\_), and hyphens (-). It must start with a letter.'."\n", 'type' => 'string', 'required' => false, 'example' => 'clientIP1', 'title' => ''], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => 'Add an IPv4 CIDR block from the IPAM pool to the VPC by specifying a mask.'."\n" - ."\n" - .'> If you use an IPAM pool, you must specify at least one of SecondaryCidrBlock and SecondaryCidrMask.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '16', + 'description' => 'The returned data.'."\n", + 'type' => 'object', + 'properties' => [ + 'AclEntryId' => ['description' => 'The ID of the ACL entry.'."\n", 'type' => 'string', 'example' => 'ipv6transaclentry-bp105jrs****', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '8B2F5262-6B57-43F2-defr345', 'title' => ''], + ], + 'title' => '', + 'example' => '', ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InvalidIpAddress.WrongFormat', 'errorMessage' => 'The specified entry ip address is invalid.', 'description' => ''], + ['errorCode' => 'InvalidIPv6TranslatorAclId.NotFound', 'errorMessage' => 'The specified ipv6 translator acl instance id does not exist.', 'description' => ''], + ['errorCode' => 'InvalidEntryComment', 'errorMessage' => 'The specified value of comment not supported.', 'description' => ''], + ['errorCode' => 'Resource.QuotaFull', 'errorMessage' => 'The quota of resource is full', 'description' => ''], + ], + 403 => [ + ['errorCode' => 'Forbbiden.SubUser', 'errorMessage' => 'User not authorized to operate on the specified resource as your account is created by another user.', 'description' => ''], + ['errorCode' => 'Forbidden', 'errorMessage' => 'User not authorized to operate on the specified resource.', 'description' => 'You do not have the permissions to manage the specified resource. Apply for the permissions and try again.'], + ], + ], + 'staticInfo' => ['noSubstitutionReason' => '无替代API,历史原因导致该API被标记为弃用。'], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"AclEntryId\\": \\"ipv6transaclentry-bp105jrs****\\",\\n \\"RequestId\\": \\"8B2F5262-6B57-43F2-defr345\\"\\n}","errorExample":""},{"type":"xml","example":"\\n ipv6transaclentry-bp105jrs****\\n 8B2F5262-6B57-43F2-defr345\\n","errorExample":""}]', + 'title' => 'AddIPv6TranslatorAclListEntry', + 'summary' => 'Adds an IP entry to an access control list (ACL).', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [ [ - 'name' => 'IPv6CidrBlock', - 'in' => 'query', - 'schema' => [ - 'description' => 'The IPv6 CIDR block that you want to add to the VPC.'."\n" - ."\n" - .'> You can specify only one of **SecondaryCidrBlock** and **Ipv6CidrBlock**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '2408:XXXX:0:6a::/56', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'vpc:AddIPv6TranslatorAclListEntry', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'Ipv6Translator', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:ipv6trans/{#Ipv6TranslatorId}'], + ], ], ], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'AddIPv6TranslatorAclListEntry'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], + ], + ], + 'AddPublicIpAddressPoolCidrBlock' => [ + 'summary' => 'Adds a CIDR block to an IP address pool.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'readAndWrite', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'create', 'riskType' => 'none', 'chargeType' => 'free', 'autoTest' => true, 'tenantRelevance' => 'tenant'], + 'parameters' => [ [ - 'name' => 'Ipv6Isp', + 'name' => 'PublicIpAddressPoolId', 'in' => 'query', - 'schema' => [ - 'description' => 'The type of the IPv6 CIDR block. Valid values:'."\n" - ."\n" - .'* **BGP** (default)'."\n" - .'* **ChinaMobile**'."\n" - .'* **ChinaUnicom**'."\n" - .'* **ChinaTelecom**'."\n" - ."\n" - .'> If your Alibaba Cloud account is allowed to activate single-ISP bandwidth, you can set this parameter to **ChinaTelecom**, **ChinaUnicom**, or **ChinaMobile**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'BGP', - ], + 'schema' => ['description' => 'The ID of the IP address pool.'."\n", 'type' => 'string', 'required' => true, 'example' => 'pippool-6wetvn6fumkgycssx****', 'title' => ''], ], [ - 'name' => 'IpVersion', + 'name' => 'CidrBlock', 'in' => 'query', - 'schema' => [ - 'description' => 'The version of the IP address. Valid values:'."\n" - ."\n" - .'* **IPV4**: the IPv4 address.'."\n" - .'* **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.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'IPV4', - ], + 'allowEmptyValue' => false, + 'schema' => ['description' => 'The CIDR block.'."\n" + ."\n" + .'> You can specify only one of **CidrBlock** and **CidrMask**.'."\n", 'type' => 'string', 'required' => false, 'example' => '47.0.XX.XX/24', 'title' => ''], ], [ - 'name' => 'IpamPoolId', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the IPAM pool.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'ipam-pool-sycmt3p2a9v63i****', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'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.'."\n" + ."\n" + .'> 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.'."\n", 'type' => 'string', 'required' => false, 'example' => '02fb3da4-130e-11****', 'title' => ''], ], [ - 'name' => 'Ipv6CidrMask', + 'name' => 'DryRun', 'in' => 'query', - 'schema' => [ - 'description' => 'Add an IPv6 CIDR block from the IPAM pool to the VPC by entering a mask.'."\n" - ."\n" - .'> To add an IPv6 CIDR block to a VPC, specify at least one of the IPv6CidrBlock and Ipv6CidrMask parameters.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '56', - ], + 'schema' => ['description' => 'Specifies whether to perform a dry run, without performing the actual request. Valid values:'."\n" + ."\n" + .'* **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.'."\n" + .'* **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.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], ], [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the VPC to which you want to add a secondary CIDR block.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the region ID.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'ch-hangzhou', - ], + 'schema' => ['description' => 'The region ID of the IP address pool to which you want to add the CIDR block.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-chengdu', 'title' => ''], + ], + [ + 'name' => 'CidrMask', + 'in' => 'query', + 'allowEmptyValue' => false, + 'schema' => ['description' => 'The subnet mask of the CIDR block. After you enter the subnet mask, the system automatically allocates IP addresses.'."\n" + ."\n" + .'Valid values: **24** to **28**.'."\n" + ."\n" + .'> You can specify only one of **CidrBlock** and **CidrMask**.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '24', 'title' => ''], ], ], 'responses' => [ @@ -1853,991 +1018,1025 @@ 'description' => 'The response parameters.'."\n", 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => 'C1221A1F-2ACD-4592-8F27-474E02883159', - ], - 'CidrBlock' => [ - 'description' => 'The IPv4 CIDR block to be added.', - 'type' => 'string', - 'example' => '192.168.0.0/16', - ], - 'IpVersion' => [ - 'description' => 'The version of the IP address. Valid values:'."\n" - ."\n" - .'* **IPV4**: the IPv4 address.'."\n" - .'* **IPV6**: the IPv6 address.', - 'type' => 'string', - 'example' => 'IPV4', - ], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '4EC47282-1B74-4534-BD0E-403F3EE64CAF', 'title' => ''], + 'CidrBlock' => ['description' => 'The CIDR block.'."\n", 'type' => 'string', 'example' => '47.0.XX.XX/28', 'title' => ''], ], + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidVpc.NotFound', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'IncorrectStatus.Vpc', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'ParamExclusive.SecondaryCidrAndIpv6Cidr', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'OperationUnsupported.VpcMultiCidr', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'MissingParam.SecondaryCidrOrIpv6Cidr', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'OperationUnsupported.IPv6ULA', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'OperationFailed.Ipv6CidrBlockExisted', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'InvalidIpv6ULACidrBlock.Malformed', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'QuotaExceeded.GUAIpv6CidrBlock', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'IllegalParam.Ipv6CidrType', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'OperationUnsupported.OnlyULA', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'InvalidCidrBlock.Malformed', - 'errorMessage' => 'Specified CIDR block is not valid.', - ], - [ - 'errorCode' => 'IllegalParam.SecondaryCidrBlock', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'Duplicated.SecondaryCidrBlock', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'OperationFailed.ConflictWithEntry', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'QuotaExceeded.VpcMultiCidr', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'MissingParam.SecondaryCidrBlockOrIpv6CidrBlock', - 'errorMessage' => 'Either SecondaryCidrBlock or Ipv6CidrBlock must be specified.', - ], - [ - 'errorCode' => 'MissingParam.VpcId', - 'errorMessage' => 'You must specify VpcId.', - ], - [ - 'errorCode' => 'UnsupportedFeature.Ipv6Isp', - 'errorMessage' => 'The Ipv6Isp feature is not supported.', - ], - [ - 'errorCode' => 'IllegalParam.IpVersion', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'OperationDenied.GUAIpv6CidrBlock', - 'errorMessage' => 'The operation is not allowed because this ipv6 CIDR is not reserved.', - ], - [ - 'errorCode' => 'OperationFailed.IPv6CidrNotReserved', - 'errorMessage' => 'Operation failed because this ipv6 cidr is not reserved.', - ], - [ - 'errorCode' => 'InvalidCidrBlock', - 'errorMessage' => 'Specified CIDR block is already exists.', - ], - [ - 'errorCode' => 'IllegalParam.IpamPool', - 'errorMessage' => 'The specified IPAM pool cannot be empty.', - ], - [ - 'errorCode' => 'MissingParam.SecondaryCidrMask', - 'errorMessage' => 'The parameter SecondaryCidrMask must be input.', - ], - [ - 'errorCode' => 'IllegalParam.SecondaryCidrMask', - 'errorMessage' => 'The specified Secondary CIDR Mask is illegal.', - ], - [ - 'errorCode' => 'OperationDenied.RequestRegionInvalid', - 'errorMessage' => 'The operation is not allowed because the request is not invoked in the region of the IPAM pool.', - ], - [ - 'errorCode' => 'OperationDenied.IpamPoolNotInRegion', - 'errorMessage' => 'The operation is not allowed because the IPAM pool not in specific region does not support creating VPC or associating CIDR for VPC.', - ], - [ - 'errorCode' => 'MissingParam.CidrOrCidrMask', - 'errorMessage' => 'The CIDR or CIDR Mask must be input.', - ], - [ - 'errorCode' => 'OperationDenied.CidrInExcludeCidrs', - 'errorMessage' => 'The operation is not allowed because the input CIDR is within the illegal CIDRs.', - ], - [ - 'errorCode' => 'OperationDenied.AvailableCidrInsufficient', - 'errorMessage' => 'The operation is not allowed because available CIDR is insufficient.', - ], - [ - 'errorCode' => 'UnsupportedFeature.Ipam', - 'errorMessage' => 'IPAM is not supported in this region.', - ], - [ - 'errorCode' => 'UnsupportedFeature.VpcIpamIpv6', - 'errorMessage' => 'The specified IPAM pool does not support the IPv6 feature.', - ], - [ - 'errorCode' => 'OperationDenied.CidrUnavailableInPool', - 'errorMessage' => 'The operation is not allowed because the CIDR is unavailable in the IPAM pool.', - ], - [ - 'errorCode' => 'InvalidIpv6CidrBlock.Malformed', - 'errorMessage' => 'Param Ipv6CidrBlock is malformed.', - ], - [ - 'errorCode' => 'MissingParam.IpVersion', - 'errorMessage' => 'The parameter IpVersion is missing.', - ], - [ - 'errorCode' => 'Mismatch.IpVersionAndIpamPoolIpVersion', - 'errorMessage' => 'The input IpVersion is inconsistent with the IpVersion of the input IPAM pool.', - ], - [ - 'errorCode' => 'IllegalParam.Ipv6CidrBlock', - 'errorMessage' => 'The parameter of Ipv6CidrBlock is illegal.', - ], - [ - 'errorCode' => 'OperationFailed.Ipv6CidrBlockOverLapped', - 'errorMessage' => 'The input IPv6 CIDR block overlaps with the existing ones.', - ], - [ - 'errorCode' => 'QuotaExceeded.IPv6CidrBlock', - 'errorMessage' => 'The number of IPv6 CIDR blocks in the VPC exceeds the limit.', - ], - [ - 'errorCode' => 'OperationDenied.MaskOfCidrIsNotAllowed', - 'errorMessage' => 'The input mask or mask of the input CIDR is not allowed.', - ], - [ - 'errorCode' => 'IllegalParam.Ipv6Isp', - 'errorMessage' => 'The specified Ipv6Isp is illegal.', - ], - [ - 'errorCode' => 'IllegalParam.CidrMask', - 'errorMessage' => 'The input CIDR mask is illegal.', - ], - ], - 403 => [ - [ - 'errorCode' => 'Forbbiden', - 'errorMessage' => 'User not authorized to operate on the specified resource.', - ], - ], - [ - [ - 'errorCode' => 'ResourceNotFound.IpamPool', - 'errorMessage' => 'The dependent IPAM pool is not found.', - ], - ], - 500 => [ - [ - 'errorCode' => 'OperationFailed.ResourceNotEnough', - 'errorMessage' => 'Insufficient resources.', - ], - ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"C1221A1F-2ACD-4592-8F27-474E02883159\\",\\n \\"CidrBlock\\": \\"192.168.0.0/16\\",\\n \\"IpVersion\\": \\"IPV4\\"\\n}","errorExample":""},{"type":"xml","example":"\\n C1221A1F-2ACD-4592-8F27-474E02883159\\n","errorExample":""}]', - 'title' => 'AssociateVpcCidrBlock', - 'description' => '## [](#)'."\n" + ['errorCode' => 'IllegalParam.CidrBlock', 'errorMessage' => 'The param of CidrBlock [%s] is illegal.', 'description' => 'The CidrBlock parameter is set to an invalid value.'], + ['errorCode' => 'IllegalParam.CidrBlockMask', 'errorMessage' => 'The param of CidrBlock Mask [%s] is illegal.', 'description' => 'The subnet mask of the CIDR block is invalid.'], + ['errorCode' => 'IncorrectStatus.PublicIpAddressPool', 'errorMessage' => 'The status of PublicIpAddressPool [%s] is incorrect.', 'description' => ''], + ['errorCode' => 'OperationDenied.CidrBlockBelongToOtherUser', 'errorMessage' => 'The operation is not allowed because of CidrBlock belong to other user.', 'description' => ''], + ['errorCode' => 'ResourceNotFound.PublicIpAddressPool', 'errorMessage' => 'The specified resource ofPublicIpAddressPool [%s] is not found.', 'description' => ''], + ['errorCode' => 'QuotaExceeded.PoolIpQuantity', 'errorMessage' => 'The quota of PoolIpQuantity is exceeded.', 'description' => 'The number of IP addresses in the pool has reached the upper limit.'], + ['errorCode' => 'OperationDenied.OperateSharedResource', 'errorMessage' => 'The operation is not allowed because of the PublicIpAddressPool is a shared resource.', 'description' => 'The public IP address pool is a shared resource and cannot be modified.'], + ['errorCode' => 'MissingParam.CidrBlockOrCidrMask', 'errorMessage' => 'CidrBlock or CidrMask is not specified.', 'description' => 'The system failed to add the CIDR block to the address pool because the CIDR block or the subnet mask is not specified.'], + ['errorCode' => 'DuplicatedParam.CidrBlockAndCidrMask', 'errorMessage' => 'CidrBlock and CidrMask cannot be specified at the same time.', 'description' => 'The system failed to add the CIDR block to the address pool because you cannot specify the CIDR block and the subnet mask at the same time.'], + ['errorCode' => 'Forbidden.FinancialLocked', 'errorMessage' => 'The instance is locked due to outstanding payments.', 'description' => 'The instance has overdue payments.'], + ['errorCode' => 'ResourceNotEnough.CidrBlock', 'errorMessage' => 'The specified resource is not enough.', 'description' => 'The specified resource is not enough.'], + ['errorCode' => 'MissingParam.PublicIpAddressPoolId', 'errorMessage' => 'The parameter PublicIpAddressPoolId is missing.', 'description' => 'The parameter PublicIpAddressPoolId is missing.'], + ['errorCode' => 'OperationFailed.ResourceNotEnough', 'errorMessage' => 'Insufficient resources.', 'description' => 'The resources that you request are insufficient. If you still want to request the resources, submit a ticket.'], + ], + ], + 'staticInfo' => ['returnType' => 'asynchronous', 'callback' => 'Vpc::2016-04-28::ListPublicIpAddressPoolCidrBlocks', 'callbackInterval' => 3000, 'maxCallbackTimes' => 3], + 'title' => 'AddPublicIpAddressPoolCidrBlock', + 'description' => 'Before you call this operation, take note of the following limits:'."\n" ."\n" - .'* Take note of the following limits:'."\n" + .'* The CIDR block and the IP address pool must belong to the same region.'."\n" ."\n" - .' * Each VPC can contain up to five secondary IPv4 CIDR blocks.'."\n" - .' * Each VPC can contain up to five secondary IPv6 CIDR blocks.'."\n" + .'* The CIDR block and the IP address pool must use the same line type.'."\n" ."\n" - .'* You cannot repeatedly call the **AssociateVpcCidrBlock** operation to add secondary CIDR blocks to a VPC within the specified period of time.', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', + .'* **AddPublicIpAddressPoolCidrBlock** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call the [ListPublicIpAddressPoolCidrBlocks](~~429436~~) operation to query the status of the task.'."\n" + ."\n" + .' * If the CIDR block is in the **Modifying** state, the CIDR block is being added. In this state, you can only query the CIDR block and cannot perform other operations.'."\n" + .' * If the CIDR block is in the **Created** state, the CIDR block is added.'."\n" + ."\n" + .'* You cannot repeatedly call the **AddPublicIpAddressPoolCidrBlock** operation to add a CIDR block to an IP address pool within the specified period of time.'."\n", + 'changeSet' => [ + ['createdAt' => '2025-05-26T11:37:09.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-07-29T03:10:07.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-05-27T11:37:27.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-03-14T07:09:57.000Z', 'description' => 'Response parameters changed, Response parameters changed'], + ['createdAt' => '2022-11-24T13:02:53.000Z', 'description' => 'Error codes changed'], + ], + 'ramActions' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"4EC47282-1B74-4534-BD0E-403F3EE64CAF\\",\\n \\"CidrBlock\\": \\"47.0.XX.XX/28\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 4EC47282-1B74-4534-BD0E-403F3EE64CAF\\n","errorExample":""}]', ], - 'AllocateVpcIpv6Cidr' => [ - 'summary' => 'Reserves an IPv6 CIDR block.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'AddSourcesToTrafficMirrorSession' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'readAndWrite', - 'systemTags' => [ - 'operationType' => 'none', - 'riskType' => 'none', - 'chargeType' => 'free', - 'autoTest' => true, - 'tenantRelevance' => 'publicInformation', - ], + 'systemTags' => ['operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ - 'name' => 'RegionId', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the VPC.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'You can use the client to generate the token, but you must make sure that the token is unique among different requests. The ClientToken value can contain only ASCII characters.'."\n" + ."\n" + .'> If you do not specify this parameter, the system automatically uses the **RequestId** value as the **ClientToken** value. The **RequestId** value may be different for each API request.', 'type' => 'string', 'required' => false, 'example' => '0c593ea1-3bea-11e9-b96b-88e9fe63****', 'title' => ''], ], [ - 'name' => 'ClientToken', + 'name' => 'DryRun', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request. 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.'."\n" - ."\n" - .'> 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.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-426655440000', - ], + 'schema' => ['description' => 'Specifies whether to perform a dry run. Valid values:'."\n" + ."\n" + .'- **true**: performs a dry run. The system checks the required parameters, request syntax, and 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.'."\n" + ."\n" + .'- **false** (default): performs a dry run and sends the request. If the request passes the dry run, the traffic mirror source is added.', 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], ], [ - 'name' => 'Ipv6Isp', + 'name' => 'TrafficMirrorSessionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The type of IPv6 CIDR block. Valid values:'."\n" - ."\n" - .'* **BGP** (default): BGP (Multi-ISP)'."\n" - .'* **BGP_International**: BGP (Multi-ISP) International'."\n" - .'* **ChinaMobile**: China Mobile (Single-ISP)'."\n" - .'* **ChinaUnicom**: China Unicom (Single-ISP)'."\n" - .'* **ChinaTelecom**: China Telecom (Single-ISP)'."\n" - .'* **ChinaMobile_L2**: China Mobile (Single-ISP)_L2'."\n" - .'* **ChinaUnicom_L2**: China Unicom (Single-ISP)_L2'."\n" - .'* **ChinaTelecom_L2**: China Telecom (Single-ISP)_L2'."\n" - .'> * If your account is included in the whitelist, you can set this parameter to one of the following values: **ChinaTelecom**, **ChinaUnicom**, **ChinaMobile**, **ChinaTelecom_L2**, **ChinaUnicom_L2**, **ChinaMobile_L2**, and **BGP_International**.'."\n" - .'> * You can reserve only one IPv6 CIDR block of each type. You can reserve another IPv6 CIDR block only after the existing one is allocated to a VPC.', - 'type' => 'string', - 'required' => false, - 'example' => 'BGP', - ], + 'schema' => ['description' => 'The instance ID of the traffic mirror session to which you want to increase traffic mirror sources.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'tms-j6cla50buc44ap8tu****', 'title' => ''], ], [ - 'name' => 'RegionId', + 'name' => 'TrafficMirrorSourceIds', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => 'The region ID of the VPC.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', + 'description' => 'The instance ID of the traffic mirror source to increase. Currently, only elastic network interfaces (ENIs) are supported as traffic mirror sources. The default value of **N** is **1**, which indicates that you can add only one traffic mirror source to a traffic mirror session.', + 'type' => 'array', + 'items' => ['description' => 'The instance ID of the traffic mirror source to increase. Currently, only elastic network interfaces (ENIs) are supported as traffic mirror sources. The default value of **N** is **1**, which indicates that you can add only one traffic mirror source to a traffic mirror session.', 'type' => 'string', 'required' => false, 'example' => 'eni-j6c8znm5l1yt4sox****', 'title' => ''], 'required' => true, 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], - ], - [ - 'name' => 'AddressPoolType', - 'in' => 'query', - 'schema' => [ - 'description' => 'The type of the IPv6 address pool. Valid values:'."\n" - ."\n" - .'- **aliyun** (default): IPv6 CIDR block is allocated by the system.'."\n" - ."\n" - .'- **custom**: custom IPv6 CIDR block.', - 'type' => 'string', - 'required' => false, - 'example' => 'custom', + 'example' => 'eni-j6ccmrl8z3xkvxgw****', + 'maxLength' => 128, + 'maxItems' => 30, + 'title' => '', ], ], [ - 'name' => 'Ipv6CidrBlock', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The IPv6 CIDR block that you want to reserve.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '2408:XXXX:0:a600::/56', - ], + 'schema' => ['description' => 'The region ID of the traffic mirror session.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n" + ."\n" + .'For more information about the regions that support traffic mirroring, see [Traffic mirroring overview](~~207513~~).', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hongkong', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => '', 'type' => 'object', 'properties' => [ - 'Ipv6CidrBlock' => [ - 'description' => 'The IPv6 CIDR block that is reserved.'."\n", - 'type' => 'string', - 'example' => '2408:XXXX:0:a600::/56', - ], - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => 'D20C13EA-2584-53BC-8393-69DE6D98EFF1', - ], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '87F70089-5B38-41A8-BAD8-0B55E2F8DC57', 'title' => ''], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'OperationUnsupported.Ipv6Feature', - 'errorMessage' => 'The IPv6 feature is not supported in the region.', - ], - [ - 'errorCode' => 'UnsupportedFeature.Ipv6Isp', - 'errorMessage' => 'The Ipv6Isp feature is not supported.', - ], - [ - 'errorCode' => 'IllegalParam.AddressPoolType', - 'errorMessage' => 'The specified addressPoolType is invalid.', - ], - [ - 'errorCode' => 'ResourceNotEnough.Ipv6Cidr', - 'errorMessage' => 'The specified resource ipv6 cidr is not enough.', - ], - [ - 'errorCode' => 'IllegalParam.Ipv6Cidr', - 'errorMessage' => 'The specified Ipv6CidrBlock is invalid.', - ], - [ - 'errorCode' => 'Unavailable.Ipv6Cidr', - 'errorMessage' => 'The specified resource ipv6 cidr is not available.', - ], - [ - 'errorCode' => 'IllegalParam.CidrBlock', - 'errorMessage' => 'The param of cidrBlock is illegal.', - ], + ['errorCode' => 'IncorrectBusinessStatus.TrafficMirror', 'errorMessage' => 'The business status of traffic mirror is incorrect.', 'description' => 'Traffic mirroring is in an invalid state.'], + ['errorCode' => 'OptInRequired.TrafficMirror', 'errorMessage' => 'You need to subscribe to the traffic mirror service first.', 'description' => 'Traffic mirroring is disabled.'], + ['errorCode' => 'DuplicatedParam.SourceInstanceIds', 'errorMessage' => 'The parameter of source instance IDs contains duplicate values.', 'description' => 'Duplicate values are set for TrafficMirrorSourceIds.N.'], + ['errorCode' => 'ResourceNotFound.TrafficMirrorSession', 'errorMessage' => 'The specified resource of traffic mirror session is not found.', 'description' => ''], + ['errorCode' => 'IncorrectStatus.TrafficMirrorSession', 'errorMessage' => 'The status of traffic mirror session is incorrect.', 'description' => ''], + ['errorCode' => 'ResourceAlreadyAssociated.TrafficMirrorSource', 'errorMessage' => 'The specified traffic mirror source and session are already associated.', 'description' => ''], + ['errorCode' => 'ResourceNotFound.NetworkInterface', 'errorMessage' => 'The specified resource of %s is not found.', 'description' => 'The error message returned because NetworkInterface is set to an invalid value.'], + ['errorCode' => 'ResourceNotFound.EcsInstance', 'errorMessage' => 'The specified resource of ECS instance is not found.', 'description' => ''], + ['errorCode' => 'OperationDenied.EcsNotSupportTrafficMirror', 'errorMessage' => 'The ECS instance does not support traffic mirroring.', 'description' => ''], + ['errorCode' => 'OperationDenied.DuplicateRole', 'errorMessage' => 'The network interface must not be the source and the target of traffic mirror sessions at the same time.', 'description' => ''], + ['errorCode' => 'QuotaExceeded.NetworkInterfaceRelatedSession', 'errorMessage' => 'The quota of the number of traffic mirror sessions related to one network interface is exceeded.', 'description' => 'The number of traffic mirror sessions associated with an ENI has reached the upper limit.'], + ['errorCode' => 'OperationDenied.FreeNetworkInterface', 'errorMessage' => 'The network interface is not attached to any ECS instance.', 'description' => 'The ENI is not associated with an ECS instance.'], + ['errorCode' => 'QuotaExceeded.SourceNumPerSession', 'errorMessage' => 'The quota of the number of traffic mirror sources per session is exceeded.', 'description' => 'The number of traffic mirror sources associated with a traffic mirror session has reached the upper limit.'], + ['errorCode' => 'QuotaExceeded.SourceNumPerTarget', 'errorMessage' => 'The maximum number of traffic mirror sources for a target is exceeded.', 'description' => 'The number of traffic mirror sources associated with the image exceeds the upper limit.'], + ['errorCode' => 'OperationUnsupported.BondingNetworkInterface', 'errorMessage' => 'The specified traffic mirror source is bonding eni without slave.', 'description' => 'The operation does not support a bond ENI without a slave ENI.'], + ['errorCode' => 'OperationDenied.UnsupportedTargetType', 'errorMessage' => 'Traffic mirror target must be SLB if traffic mirror sources contain nat gateway network interface.', 'description' => 'When a NAT gateway NIC exists in the traffic mirroring source, the traffic mirroring purpose must be SLB type.'], + ['errorCode' => 'OperationDenied.InvalidSourceBondEniType', 'errorMessage' => 'The traffic mirroring source does not support the entered bond ENI type.', 'description' => 'The traffic mirroring source does not support the entered bond ENI type.'], + ], + ], + 'title' => 'Add traffic mirror sources to a traffic mirror session', + 'summary' => 'Adds traffic mirror sources to a traffic mirror session by calling the AddSourcesToTrafficMirrorSession operation.', + 'description' => '- **AddSourcesToTrafficMirrorSession** is an asynchronous operation. After a request is sent, the system returns a request ID. However, the traffic mirror source is not yet added, and the addition task is still running in the background. You can call [ListTrafficMirrorSessions](~~261367~~) to query the status of the traffic mirror source addition:'."\n" + .' - If the traffic mirror session is in the **Modifying** state, the traffic mirror source is being added.'."\n" + .' - If the traffic mirror session is in the **Created** state, the traffic mirror source is added.'."\n" + .'- **AddSourcesToTrafficMirrorSession** does not support concurrent requests to add traffic mirror sources to the same traffic mirror session.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2025-02-08T09:45:32.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-01-15T05:37:07.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-08-03T05:30:57.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-07-18T07:25:12.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-07-05T07:33:20.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2023-06-25T06:28:07.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-03-16T08:04:23.000Z', 'description' => 'Request parameters changed'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '600', 'countWindow' => 60, 'regionId' => '*', 'api' => 'AddSourcesToTrafficMirrorSession'], ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:AddSourcesToTrafficMirrorSession', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'TrafficMirrorSession', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:trafficmirrorsession/{#TrafficMirrorSessionId}'], + ], + ], + ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Ipv6CidrBlock\\": \\"2408:XXXX:0:a600::/56\\",\\n \\"RequestId\\": \\"D20C13EA-2584-53BC-8393-69DE6D98EFF1\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 2408:XXXX:0:a600::/56\\n D20C13EA-2584-53BC-8393-69DE6D98EFF1\\n","errorExample":""}]', - 'title' => 'AllocateVpcIpv6Cidr', - 'description' => '# [](#)'."\n" - ."\n" - .'The following section describes how to allocate an IPv6 CIDR block to a virtual private cloud (VPC):'."\n" - ."\n" - .'1. Call the AllocateVpcIpv6Cidr operation to reserve the IPv6 CIDR block.'."\n" - .'2. To allocate an IPv6 CIDR block to an existing VPC, call the [AssociateVpcCidrBlock](~~146745~~) operation. Set **RegionId**, **VpcId**, and **IPv6CidrBlock** to the IPv6 CIDR bock, and set **IpVersion** to **ipv6**. To allocate an IPv6 CIDR block when you create a VPC, call the [CreateVpc](~~35737~~) operation. Set **RegionId** and **Ipv6CidrBlock** to the IPv6 CIDR block, and set **EnableIpv6** to **true**.'."\n", + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"87F70089-5B38-41A8-BAD8-0B55E2F8DC57\\"\\n}","type":"json"}]', ], - 'DeleteVpc' => [ - 'summary' => 'Deletes a virtual private cloud (VPC).', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'AllocateEipAddress' => [ + 'summary' => 'Applies for an elastic IP address (EIP).', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'readAndWrite', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'delete', - 'tenantRelevance' => 'publicInformation', - ], + 'systemTags' => ['operationType' => 'create', 'riskType' => 'none', 'chargeType' => 'paid', 'autoTest' => true, 'tenantRelevance' => 'tenant'], 'parameters' => [ [ - 'name' => 'VpcId', + 'name' => 'RegionId', 'in' => 'query', 'schema' => [ - 'description' => 'The ID of the VPC that you want to delete.'."\n", + 'description' => 'The region ID of the EIP.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the region ID.', + 'enumValueTitles' => ['cn-beijing' => 'cn-beijing'], 'type' => 'string', 'required' => true, 'docRequired' => true, - 'example' => 'vpc-bp1m7v25emi1h5mtc****', + 'example' => 'cn-hangzhou', + 'title' => '', ], ], [ - 'name' => 'RegionId', + 'name' => 'Bandwidth', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region where the VPC is deployed.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The maximum bandwidth of the EIP. Unit: Mbit/s.'."\n" + ."\n" + .'- When **InstanceChargeType** is set to **PostPaid** and **InternetChargeType** is set to **PayByBandwidth**, valid values of **Bandwidth** are **1** to **500**.'."\n" + ."\n" + .'- When **InstanceChargeType** is set to **PostPaid** and **InternetChargeType** is set to **PayByTraffic**, valid values of **Bandwidth** are **1** to **200**.'."\n" + ."\n" + .'- When **InstanceChargeType** is set to **PrePaid**, valid values of **Bandwidth** are **1** to **1000**.'."\n" + ."\n" + .'Default value: **5** Mbit/s.', 'type' => 'string', 'required' => false, 'example' => '5', 'title' => ''], ], [ - 'name' => 'ForceDelete', + 'name' => 'Period', 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to forcefully delete the VPC. Valid values:'."\n" - ."\n" - .'- **true**: yes'."\n" - .'- **false** (default): no'."\n" - ."\n" - .'You can forcefully delete a VPC in the following scenarios:'."\n" - ."\n" - .'- Only an IPv4 gateway and routes that point to the IPv4 gateway exist in the VPC.'."\n" - .'- Only an IPv6 gateway and routes that point to the IPv6 gateway exist in the VPC.', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['description' => 'The subscription duration.'."\n" + ."\n" + .'When **PricingCycle** is set to **Month**, valid values of **Period** are **1** to **9**.'."\n" + ."\n" + .'When **PricingCycle** is set to **Year**, valid values of **Period** are **1** to **5**.'."\n" + ."\n" + .'This parameter is required when **InstanceChargeType** is set to **PrePaid**. This parameter is not required when **InstanceChargeType** is set to **PostPaid**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1', 'title' => ''], ], [ - 'name' => 'DryRun', + 'name' => 'ISP', 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to perform a dry run. Valid values:'."\n" - ."\n" - .'- **true**: performs a dry run. The system checks the required parameters, request syntax, and 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.'."\n" - .'- **false** (default): performs a dry run and sends the request. If the request passes the dry run, a 2xx HTTP status code is returned and the operation is performed.', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['description' => 'The line type. Valid values:'."\n" + .'- **BGP** (default): BGP (multi-ISP) line. All regions support BGP (multi-ISP) EIPs.'."\n" + .'- **BGP_PRO**: BGP (multi-ISP) Pro line. Only Hong Kong (China), Singapore, Tokyo (Japan), Kuala Lumpur (Malaysia), Manila (Philippines), Jakarta (Indonesia), and Bangkok (Thailand) regions support BGP (multi-ISP) Pro EIPs.'."\n" + ."\n" + .'For more information about BGP (multi-ISP) and BGP (multi-ISP) Pro lines, see [EIP line types](~~32321~~).'."\n" + ."\n" + .'- If you are a whitelist user of single-ISP bandwidth, you can also select the following types:'."\n" + .' - **ChinaTelecom**: China Telecom'."\n" + .' - **ChinaUnicom**: China Unicom'."\n" + .' - **ChinaMobile**: China Mobile'."\n" + .' - **ChinaTelecom_L2**: China Telecom L2'."\n" + .' - **ChinaUnicom_L2**: China Unicom L2'."\n" + .' - **ChinaMobile_L2**: China Mobile L2'."\n" + .'- If you are a China (Hangzhou) Finance Cloud user, this parameter is required and must be set to **BGP_FinanceCloud**.', 'type' => 'string', 'required' => false, 'example' => 'BGP', 'title' => ''], + ], + [ + 'name' => 'ActivityId', + 'in' => 'query', + 'schema' => ['description' => 'The special activity ID. You do not need to configure this parameter.', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '123456', 'title' => ''], + ], + [ + 'name' => 'Netmode', + 'in' => 'query', + 'schema' => ['description' => 'The network type. The value is **public** (default), which specifies the public network.', 'type' => 'string', 'required' => false, 'example' => 'public', 'title' => ''], + ], + [ + 'name' => 'AutoPay', + 'in' => 'query', + 'schema' => ['description' => 'Specifies whether to enable automatic payment. Valid values:'."\n" + ."\n" + .'- **false** (default): Automatic payment is disabled. After an order is generated, go to the Order Center to complete the payment.'."\n" + ."\n" + .'- **true**: Automatic payment is enabled. The order is automatically paid.'."\n" + ."\n" + .'This parameter is required when **InstanceChargeType** is set to **PrePaid**. This parameter is optional when **InstanceChargeType** is set to **PostPaid**.', 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], + ], + [ + 'name' => 'PricingCycle', + 'in' => 'query', + 'schema' => ['description' => 'The billing cycle of the subscription. Valid values:'."\n" + .'- **Month** (default): billed on a monthly basis.'."\n" + .'- **Year**: billed on a yearly basis.'."\n" + ."\n" + .'This parameter is required when **InstanceChargeType** is set to **PrePaid**. This parameter is optional when **InstanceChargeType** is set to **PostPaid**.', 'type' => 'string', 'required' => false, 'example' => 'Month', 'title' => ''], + ], + [ + 'name' => 'InstanceChargeType', + 'in' => 'query', + 'schema' => ['description' => 'The billing method of the EIP. Valid values:'."\n" + .' '."\n" + .'- **PrePaid**: subscription.'."\n" + ."\n" + .'- **PostPaid** (default): pay-as-you-go.'."\n" + ."\n" + .'When **InstanceChargeType** is set to **PrePaid**, **InternetChargeType** must be set to **PayByBandwidth**. When **InstanceChargeType** is set to **PostPaid**, **InternetChargeType** can be set to **PayByBandwidth** or **PayByTraffic**.', 'type' => 'string', 'required' => false, 'example' => 'PostPaid', 'title' => ''], + ], + [ + 'name' => 'InternetChargeType', + 'in' => 'query', + 'schema' => ['description' => 'The metering method of the EIP. Valid values:'."\n" + ."\n" + .'- **PayByBandwidth** (default): pay-by-bandwidth.'."\n" + ."\n" + .'- **PayByTraffic**: pay-by-data-transfer.'."\n" + ."\n" + .'When **InstanceChargeType** is set to **PrePaid**, **InternetChargeType** must be set to **PayByBandwidth**.'."\n" + ."\n" + .'When **InstanceChargeType** is set to **PostPaid**, **InternetChargeType** can be set to **PayByBandwidth** or **PayByTraffic**.', 'type' => 'string', 'required' => false, 'default' => 'PayByBandwidth', 'example' => 'PayByTraffic', 'title' => ''], + ], + [ + 'name' => 'ResourceGroupId', + 'in' => 'query', + 'schema' => ['description' => 'The resource group ID.', 'type' => 'string', 'required' => false, 'example' => 'rg-acfmxazffggds****', 'title' => ''], ], [ 'name' => 'ClientToken', 'in' => 'query', + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'Generate a parameter value from your client to ensure uniqueness across different requests. **ClientToken** supports only ASCII characters.'."\n" + ."\n" + .'> If you do not specify this parameter, the system uses the **RequestId** of the API request as the **ClientToken**. The **RequestId** may differ for each API request.', 'type' => 'string', 'required' => false, 'example' => '0c593ea1-3bea-11e9-b96b-88e9fe637760', 'title' => ''], + ], + [ + 'name' => 'Name', + 'in' => 'query', + 'schema' => ['description' => 'The name of the EIP instance.'."\n" + ."\n" + .'The name must be 0 to 128 characters in length and cannot start with `http://` or `https://`.'."\n" + ."\n" + .'> This parameter is not supported when you create a subscription EIP instance.', 'type' => 'string', 'required' => false, 'example' => 'EIP1', 'title' => ''], + ], + [ + 'name' => 'Description', + 'in' => 'query', + 'schema' => ['description' => 'The description of the EIP instance.'."\n" + ."\n" + .'The description must be 0 to 256 characters in length and cannot start with `http://` or `https://`.'."\n" + .'> This parameter is not supported when you create a subscription EIP instance.', 'type' => 'string', 'required' => false, 'example' => 'test', 'title' => ''], + ], + [ + 'name' => 'SecurityProtectionTypes', + 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + 'description' => 'The security protection level.'."\n" ."\n" - .'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.'."\n" + .'- If this parameter is left empty, the default value is Anti-DDoS Origin Basic.'."\n" ."\n" - .'> If you do not specify this parameter, the system automatically uses the **RequestId** as the **ClientToken**. The **RequestId** may be different for each request.', - 'type' => 'string', - 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-426655440000', + .'- If this parameter is set to **AntiDDoS_Enhanced**, Anti-DDoS Origin Enterprise is used.'."\n" + ."\n" + .'You can specify at most one security protection level.', + 'type' => 'array', + 'items' => ['description' => 'The security protection level.'."\n" + ."\n" + .'- If this parameter is left empty, the default value is Anti-DDoS Origin Basic.'."\n" + ."\n" + .'- If this parameter is set to **AntiDDoS_Enhanced**, Anti-DDoS Origin Enterprise is used.', 'type' => 'string', 'required' => false, 'example' => 'AntiDDoS_Enhanced', 'title' => ''], + 'required' => false, + 'example' => 'AntiDDoS_Enhanced', + 'maxItems' => 10, + 'title' => '', + ], + ], + [ + 'name' => 'PublicIpAddressPoolId', + 'in' => 'query', + 'schema' => ['description' => 'The ID of the IP address pool.'."\n" + ."\n" + .'The EIP is allocated from the specified IP address pool.'."\n" + ."\n" + .'The IP address pool feature is not available by default. To use this feature, apply for the IP address pool privilege quota in Quota Center. For more information, see [Increase a quota in Quota Center](~~108213~~).', 'type' => 'string', 'required' => false, 'example' => 'pippool-2vc0kxcedhquybdsz****', 'title' => ''], + ], + [ + 'name' => 'Zone', + 'in' => 'query', + 'schema' => ['description' => 'The zone of the EIP.'."\n" + ."\n" + .'When the IP address pool specified by **PublicIpAddressPoolId** is of the CloudBox type, this parameter defaults to the zone of the IP address pool.'."\n" + ."\n" + .'For information about how to view the business type of an IP address pool, see [ListPublicIpAddressPools](~~429098~~).', 'type' => 'string', 'required' => false, 'example' => 'ap-southeast-1-lzdvn-cb', 'title' => ''], + ], + [ + 'name' => 'IpAddress', + 'in' => 'query', + 'schema' => ['description' => 'The IP address of the EIP that you want to apply for.'."\n" + ."\n" + .'You need to specify only one of **IpAddress** and **InstanceId**. If neither is specified, the system randomly allocates an EIP.', 'type' => 'string', 'required' => false, 'example' => '192.0.XX.XX', 'title' => ''], + ], + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => ['description' => 'The instance ID of the EIP that you want to apply for.'."\n" + ."\n" + .'You need to specify only one of **IpAddress** and **InstanceId**. If neither is specified, the system randomly allocates an EIP.', 'type' => 'string', 'required' => false, 'example' => 'eip-25877c70gddh****', 'title' => ''], + ], + [ + 'name' => 'Tag', + 'in' => 'query', + 'style' => 'repeatList', + 'schema' => [ + 'description' => 'The tags of the resource.', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => 'The tag key of the resource. You can specify up to 20 tag keys. The tag key cannot be an empty string.'."\n" + ."\n" + .'A tag key can be up to 128 characters in length. It cannot start with `aliyun` or `acs:` and cannot contain `http://` or `https://`.', 'type' => 'string', 'required' => false, 'example' => 'TestKey', 'title' => ''], + 'Value' => ['description' => 'The tag value. Specify the value in the Tag.N.Value format. Valid values of N: 1 to 20. The tag value cannot be an empty string. The tag value can be up to 128 characters in length. It cannot start with aliyun or acs: and cannot contain http:// or https://.', 'type' => 'string', 'required' => false, 'example' => 'FinanceJoshua', 'title' => ''], + ], + 'required' => false, + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'required' => false, + 'maxItems' => 21, + 'title' => '', + 'example' => '', ], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => '', + 'description' => 'The response parameters.', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => '0ED8D006-F706-4D23-88ED-E11ED28DCAC0', - ], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '4EC47282-1B74-4534-BD0E-403F3EE64CAF', 'title' => ''], + 'OrderId' => ['description' => 'The order ID. This parameter is returned when InstanceChargeType (the billing method of the EIP) is set to PrePaid (subscription). If AutoPay (automatic payment) is not enabled, go to the [Order Center](https://usercenter2.aliyun.com/order/list) to complete the payment.'."\n" + .'This parameter is returned when InstanceChargeType (the billing method of the EIP) is set to PrePaid (subscription). If AutoPay (automatic payment) is not enabled, go to the [Order Center](https://usercenter2-intl.aliyun.com/order/list) to complete the payment.', 'type' => 'integer', 'format' => 'int64', 'example' => '10', 'title' => ''], + 'ResourceGroupId' => ['description' => 'The resource group ID. This parameter is returned only when **InstanceChargeType** is set to **PostPaid**.', 'type' => 'string', 'example' => 'rg-acfmxazfdgdg****', 'title' => ''], + 'EipAddress' => ['description' => 'The allocated EIP. This parameter is returned only when **InstanceChargeType** is set to **PostPaid**.', 'type' => 'string', 'example' => '192.0.XX.XX', 'title' => ''], + 'AllocationId' => ['description' => 'The ID of the EIP instance.', 'type' => 'string', 'example' => 'eip-25877c70gddh****', 'title' => ''], ], + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'IncorrectStatus.VpcDhcpStatus', - 'errorMessage' => 'The DhcpOptionsSet status of vpc does not support this operation.', - ], - [ - 'errorCode' => 'DependencyViolation.GatewayEndpoint', - 'errorMessage' => 'The VPC contains endpoints and cannot be deleted.', - ], - [ - 'errorCode' => 'IncorrectVpcStatus', - 'errorMessage' => 'Current VPC status does not support this operation.', - ], - [ - 'errorCode' => 'DependencyViolation.RouteEntry', - 'errorMessage' => 'Specified object has dependent resources', - ], - [ - 'errorCode' => 'DependencyViolation.Instance', - 'errorMessage' => 'Specified object has dependent resources', - ], - [ - 'errorCode' => 'DependencyViolation.VSwitch', - 'errorMessage' => 'Specified object has dependent resources', - ], - [ - 'errorCode' => 'DependencyViolation.RouteInterface', - 'errorMessage' => 'Specified object has dependent route interface .', - ], - [ - 'errorCode' => 'DependencyViolation.Tunnel', - 'errorMessage' => 'Specified object has dependent tunnel.', - ], - [ - 'errorCode' => 'DependencyViolation.NatGateway', - 'errorMessage' => 'Specified object has dependent resources NatGateway.', - ], - [ - 'errorCode' => 'DependencyViolation.RouterInterface', - 'errorMessage' => 'Specified object has dependent resources RouterInterface.', - ], - [ - 'errorCode' => 'DependencyViolation.SecurityGroup', - 'errorMessage' => 'Specified object has dependent resources SecurityGroup.', - ], - [ - 'errorCode' => 'Forbidden.VpcNotFound', - 'errorMessage' => 'Specified VPC can not found.', - ], - [ - 'errorCode' => 'Forbbiden', - 'errorMessage' => 'Active custom route in vpc.', - ], - [ - 'errorCode' => 'TaskConflict', - 'errorMessage' => 'The eip operate too frequent, TaskConflict.', - ], - [ - 'errorCode' => 'InvalidAction', - 'errorMessage' => 'The VPC has been connected to the classic network ECS. Please cancel the connection before proceeding.', - ], - [ - 'errorCode' => 'IncorrectStatus.cbnStatus', - 'errorMessage' => 'Current CBN status does not support this operation.', - ], - [ - 'errorCode' => 'DependencyViolation.RouteTable', - 'errorMessage' => 'Specified object has dependent custom routeTable.', - ], - [ - 'errorCode' => 'DependencyViolation.NetworkAcl', - 'errorMessage' => 'Specified object has dependent resources network acl.', - ], - [ - 'errorCode' => 'DependencyViolation.ClassicLinkInstance', - 'errorMessage' => 'Specified object has active classicLink instance.', - ], - [ - 'errorCode' => 'System.ServiceBusy', - 'errorMessage' => 'System is busy, please try later.', - ], - [ - 'errorCode' => 'DependencyViolation.DhcpOptionsSet', - 'errorMessage' => 'The VPC cannot be deleted when it is associated with dhcpOptionsSet.', - ], - [ - 'errorCode' => 'InvalidRegionId.NotFound', - 'errorMessage' => 'The specified region is not found.', - ], - [ - 'errorCode' => 'DependencyViolation.CustomRouteTable', - 'errorMessage' => 'CustomRouteTable already exists.', - ], - [ - 'errorCode' => 'DependencyViolation.Ipv4Gateway', - 'errorMessage' => 'The VPC cannot be deleted when it has ipv4Gateway.', - ], - [ - 'errorCode' => 'DependencyViolation.GatewayRouteTable', - 'errorMessage' => 'Specified object has dependent resources gatewayRouteTable.', - ], - [ - 'errorCode' => 'OperationDenied.VpcPeerExists', - 'errorMessage' => 'The operation is not allowed because the VpcPeer exists.', - ], - [ - 'errorCode' => 'DependencyViolation.AppAccess', - 'errorMessage' => 'Specified object has dependent resources app access.', - ], - [ - 'errorCode' => 'DependencyViolation.OppositeRouterInterface', - 'errorMessage' => 'Failed to delete the VPC because it has peer router interfaces.', - ], - [ - 'errorCode' => 'DependencyViolation.TransitRouter', - 'errorMessage' => 'Specified object has attached to Transit Router.', - ], - [ - 'errorCode' => 'DependencyViolation.Ipv6Gateway', - 'errorMessage' => 'The VPC contains IPv6Gateway and cannot be deleted.', - ], - [ - 'errorCode' => 'DependencyViolation.CloudServiceResource', - 'errorMessage' => 'The VPC contains CloudServiceResource and cannot be deleted.', - ], - [ - 'errorCode' => 'IncorrectStatus.VpcDnsHostnameStatus', - 'errorMessage' => 'The DnsHostname status of vpc does not support this operation.', - ], + ['errorCode' => 'QuotaExceeded.Eip', 'errorMessage' => 'Elastic IP address quota exceeded', 'description' => ''], + ['errorCode' => 'InsufficientBalance', 'errorMessage' => 'Your account does not have enough balance.', 'description' => ''], + ['errorCode' => 'InvalidParameter', 'errorMessage' => 'Specified value of "InternetChargeType" is not valid', 'description' => ''], + ['errorCode' => 'ReserveIpFail', 'errorMessage' => 'Reserve eip failed.', 'description' => ''], + ['errorCode' => 'InvalidRegion.NotSupport', 'errorMessage' => 'The specified region does not support.', 'description' => ''], + ['errorCode' => 'InvalidBandwidth.Malformed', 'errorMessage' => 'The specified Bandwidth is invalid.', 'description' => ''], + ['errorCode' => 'INSTANCE_TYPE_NOT_SUPPORT', 'errorMessage' => 'The instance type is invalid.', 'description' => ''], + ['errorCode' => 'QueryParameter.Illegal', 'errorMessage' => 'query parameter illegal', 'description' => ''], + ['errorCode' => 'QuotaExceeded.LargeSpecEip', 'errorMessage' => 'Elastic IP address with large spec quota exceeded.', 'description' => ''], + ['errorCode' => 'InvalidResourceGroupId', 'errorMessage' => 'The specified ResourceGroupId does not exist.', 'description' => 'The specified resource group ID does not exist.'], + ['errorCode' => 'OperationFailed.InsufficientEIP', 'errorMessage' => 'Eip resource is not enough.', 'description' => ''], + ['errorCode' => 'FrequentPurchase.EIP', 'errorMessage' => 'eip frequent purchase', 'description' => ''], + ['errorCode' => 'IellgalParameter.OwnerAccount', 'errorMessage' => 'The specified parameter OwnerAccount is not valid.', 'description' => 'The specified parameter OwnerAccount is illegal.'], + ['errorCode' => 'ResourceNotFound.PublicIpAddressPool', 'errorMessage' => 'The specified resource of PublicIpAddressPool is not found.', 'description' => ''], + ['errorCode' => 'ResourceNotEnough.PublicIpAddressPool', 'errorMessage' => 'The specified resource of PublicIpAddressPool is not enough.', 'description' => ''], + ['errorCode' => 'Mismatch.IpAndPublicIpAddressPool', 'errorMessage' => 'The Ip and PublicIpAddressPool are mismatched.', 'description' => ''], + ['errorCode' => 'OperationDenied.NotOpenDdosOriginProtectService', 'errorMessage' => 'The operation is not allowed because of you do not open Ddos Origin Protection Service', 'description' => 'You can not create an anti-DDoS Enhanced EIP because you do not open Ddos Origin Protection Service.'], + ['errorCode' => 'IncorrectStatus.PublicIpAddressPool', 'errorMessage' => 'The status of PublicIpAddressPool is incorrect.', 'description' => 'EIPs are not allowed to be allocated because the address pool is in an unstable state.'], + ['errorCode' => 'IllegalParam.Isp', 'errorMessage' => 'The param of %s is illegal.', 'description' => 'The EIP cannot be allocated because the ISP is invalid.'], + ['errorCode' => 'ExclusiveParam.ZoneAndPublicIpAddressPoolId', 'errorMessage' => 'The Zone and PublicIpAddressPoolId parameters are mutually exclusive.', 'description' => 'You cannot specify Zone and PublicIpAddressPoolId at the same time.'], + ['errorCode' => 'IllegalParam.Zone', 'errorMessage' => 'The specified zone is invalid.', 'description' => 'Zone is set to an invalid value.'], + ['errorCode' => 'OperationFailed.AllocateUnfamiliarIp', 'errorMessage' => 'The operation failed because only IP addresses used within the last seven days can be allocated.', 'description' => 'Only IP addresses used within the last seven days can be used to apply for EIP.'], + ['errorCode' => 'Ip.Allocated', 'errorMessage' => 'The reserve ip has been allocated.', 'description' => 'Reserved IP addresses are already specified.'], + ['errorCode' => 'IncorrectStatus.Ip', 'errorMessage' => 'The status of ip is incorrect.', 'description' => 'The status of the IP is incorrect.'], + ['errorCode' => 'UnsupportedFeature.AllocateEipAddressWithZone', 'errorMessage' => 'The feature of AllocateEipAddressWithZone is not supported.', 'description' => 'You are not allowed to create an instance in a specified zone in the region.'], + ['errorCode' => 'ResourceNotFound.Ip', 'errorMessage' => 'The specified ip is not found.', 'description' => 'The specified IP could not be found.'], + ['errorCode' => 'OperationFailed.ResourceNotEnough', 'errorMessage' => 'The resources you have applied for are insufficient.', 'description' => 'The resources you have applied for are insufficient. If you still need to apply, please submit a work order for processing.'], + ['errorCode' => 'IllegalParam.Bandwidth', 'errorMessage' => 'The param of bandwidth is illegal.', 'description' => 'The Bandwidth parameter is set to an invalid value.'], + ['errorCode' => 'OperationFailed.IpIsLocked', 'errorMessage' => 'The operation is failed because of ip is locked.', 'description' => 'Your application failed because the IP address is locked.'], + ['errorCode' => 'Mismatch.EipSecurityProtectionTypeAndPoolSecurityProtectionType', 'errorMessage' => 'The EipSecurityProtectionType and PoolSecurityProtectionType are mismatched.', 'description' => 'The EIP protection type does not match the address pool protection type.'], + ['errorCode' => 'IllegalParam.SecurityProtectionTypes', 'errorMessage' => 'The param of securityProtectionTypes is illegal.', 'description' => 'The passed-in SecurityProtectionTypes parameter is invalid.'], + ['errorCode' => 'IllegalParam.ServiceLocation', 'errorMessage' => 'The param of serviceLocation is illegal.', 'description' => 'The param of serviceLocation is illegal.'], + ['errorCode' => 'UnsupportedFeature.Isp', 'errorMessage' => 'The feature of Isp is not supported.', 'description' => 'The ISP you specified is not currently supported.'], + ['errorCode' => 'ExclusiveParam.ZoneAndIpAddress', 'errorMessage' => 'The specified param Zone and IpAddress or InstanceId are mutually exclusive.', 'description' => 'The specified input zone conflicts with the IpAddress or InstanceId'], + ['errorCode' => 'InvalidDescription.Malformed', 'errorMessage' => 'The Description is illeagl.', 'description' => 'The specified resource description is invalid. The description must be 2 to 256 characters in length and cannot start with http:// or https://.'], + ['errorCode' => 'InvalidName.Malformed', 'errorMessage' => 'The attribute name is illegal.', 'description' => 'The value of the Name parameter is invalid.'], + ['errorCode' => 'OperationFailed.UpgradeCdtServiceFirst', 'errorMessage' => 'The operation is failed because of cdt is not upgraded.', 'description' => 'The instance type you specified to purchase needs to be upgraded to CDT billing. Upgrade CDT and try again'], + ['errorCode' => 'OperationFailed.TokenExpired', 'errorMessage' => 'The operation is failed because of TokenExpired.', 'description' => 'the specified eip allocation token has expired'], ], 403 => [ - [ - 'errorCode' => 'OperationDenied', - 'errorMessage' => 'The operation is not supported in this status.', - ], - ], - [ - [ - 'errorCode' => 'InvalidVpcId.NotFound', - 'errorMessage' => 'Specified VPC does not exist.', - ], - ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'The request processing has failed due to some unknown error.', - ], + ['errorCode' => 'Forbidden', 'errorMessage' => 'User not authorized to operate on the specified resource.', 'description' => 'You do not have the permissions to manage the specified resource. Apply for the permissions and try again.'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"0ED8D006-F706-4D23-88ED-E11ED28DCAC0\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 0ED8D006-F706-4D23-88ED-E11ED28DCAC0\\n","errorExample":""}]', - 'title' => 'DeleteVpc', - 'description' => 'When you call this operation, take note of the following limits:'."\n" - ."\n" - .'* Before you delete a VPC, make sure that all resources deployed in the VPC are released or removed, such as vSwitches, instances, and high-availability virtual IP addresses (HaVips).'."\n" - ."\n" - .'* You can delete only a VPC that is in the **Available** state.'."\n" - ."\n" - .'* The **DeleteVpc** operation is asynchronous. After you send the request, the system returns a request ID. However, the operation is still being performed in the system background. You can call the [DescribeVpcAttribute](~~94565~~) operation to query the status of a VPC:'."\n" + 'staticInfo' => ['returnType' => 'asynchronous', 'callback' => 'Vpc::2016-04-28::DescribeEipAddresses', 'callbackInterval' => 3000, 'maxCallbackTimes' => 10], + 'title' => 'Apply for an EIP', + 'description' => 'Make sure that you are familiar with the billing methods and pricing of EIPs before you call this operation. For more information, see [Billing overview](~~122035~~).'."\n" ."\n" - .' * If the VPC is in the **Deleting** state, the VPC is being deleted.'."\n" - .' * If you cannot query the VPC, the VPC is deleted.'."\n" - ."\n" - .'* You cannot repeatedly call the **DeleteVpc** operation to delete a VPC within the specified period of time.', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', + .'After you call this operation, an EIP in the **Available** state is randomly allocated in the specified region. EIPs support only ICMP, TCP, and UDP at the transport layer. IGMP and SCTP are not supported.', + 'changeSet' => [ + ['createdAt' => '2025-04-29T08:20:51.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2025-03-26T08:11:23.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2024-07-16T05:50:41.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-05-17T02:05:17.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-03-14T10:12:43.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-03-14T07:21:15.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-02-02T02:13:07.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-01-22T09:35:53.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-12-13T12:53:05.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-10-19T11:50:15.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-08-29T10:13:17.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-07-26T07:13:14.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-07-24T02:52:26.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-07-08T09:47:40.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-07-06T01:55:04.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-06-26T06:23:14.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-06-19T02:01:35.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2023-04-20T09:11:11.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2023-03-09T07:48:17.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2022-12-05T07:00:17.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2022-12-02T08:24:33.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2022-11-25T03:42:37.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2022-11-17T10:07:06.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2022-10-14T07:51:53.000Z', 'description' => 'Error codes changed'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'AllocateEipAddress'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], + ], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'vpc:AllocateEipAddress', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'Address', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:eip/*'], + ], + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"4EC47282-1B74-4534-BD0E-403F3EE64CAF\\",\\n \\"OrderId\\": 10,\\n \\"ResourceGroupId\\": \\"rg-acfmxazfdgdg****\\",\\n \\"EipAddress\\": \\"192.0.XX.XX\\",\\n \\"AllocationId\\": \\"eip-25877c70gddh****\\"\\n}","type":"json"}]', ], - 'RevokeInstanceFromCen' => [ - 'summary' => 'Revokes the permissions granted to a Cloud Enterprise Network (CEN) instance on a network instance.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'AllocateEipAddressPro' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'readAndWrite', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'update', - 'riskType' => 'none', - 'chargeType' => 'free', - ], + 'systemTags' => ['operationType' => 'create', 'riskType' => 'none', 'chargeType' => 'paid'], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region where the network instance is deployed.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The region ID of the EIP to allocate.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query region IDs.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], + ], + [ + 'name' => 'IpAddress', + 'in' => 'query', + 'schema' => ['description' => 'The IP address of the EIP to allocate.'."\n" + ."\n" + .'You need to specify only one of the **IpAddress** and **InstanceId** parameters. If neither is specified, the system randomly allocates an EIP.', 'type' => 'string', 'required' => false, 'example' => '192.0.XX.XX', 'title' => ''], ], [ 'name' => 'InstanceId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the network instance.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'vpc-uf6o8d1dj8sjwxi6o****', - ], + 'schema' => ['description' => 'The instance ID of the EIP to allocate.'."\n" + ."\n" + .'You need to specify only one of the **IpAddress** and **InstanceId** parameters. If neither is specified, the system randomly allocates an EIP.', 'type' => 'string', 'required' => false, 'example' => 'eip-25877c70gddh****', 'title' => ''], ], [ - 'name' => 'InstanceType', + 'name' => 'Bandwidth', 'in' => 'query', - 'schema' => [ - 'description' => 'The type of the network instance. Valid values:'."\n" - ."\n" - .'* **VPC**'."\n" - .'* **VBR**'."\n" - .'* **CCN**'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'VPC', - ], + 'schema' => ['description' => 'The maximum bandwidth of the EIP to allocate. Unit: Mbit/s.'."\n" + ."\n" + .'- If **InstanceChargeType** is set to **PostPaid** and **InternetChargeType** is set to **PayByBandwidth**, valid values of **Bandwidth** are **1** to **500**.'."\n" + ."\n" + .'- If **InstanceChargeType** is set to **PostPaid** and **InternetChargeType** is set to **PayByTraffic**, valid values of **Bandwidth** are **1** to **200**.'."\n" + ."\n" + .'- If **InstanceChargeType** is set to **PrePaid**, valid values of **Bandwidth** are **1** to **1000**.'."\n" + ."\n" + .'Default value: **5** Mbit/s.', 'type' => 'string', 'required' => false, 'example' => '5', 'title' => ''], ], [ - 'name' => 'CenId', + 'name' => 'Period', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the CEN instance to which the network instance is attached.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cen-7qthudw0ll6jmc****', - ], + 'schema' => ['description' => 'The subscription duration.'."\n" + ."\n" + .'- If **PricingCycle** is set to **Month**, valid values of **Period** are **1** to **9**.'."\n" + ."\n" + .'- If **PricingCycle** is set to **Year**, valid values of **Period** are **1** to **3**.'."\n" + ."\n" + .'This parameter is required if **InstanceChargeType** is set to **PrePaid**.'."\n" + ."\n" + .'Do not set this parameter if **InstanceChargeType** is set to **PostPaid**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1', 'title' => ''], ], [ - 'name' => 'CenOwnerId', + 'name' => 'ISP', + 'in' => 'query', + 'schema' => ['description' => 'The line type. Valid values:'."\n" + ."\n" + .'- **BGP** (default): BGP (multi-ISP) line. All regions support BGP (multi-ISP) EIPs.'."\n" + .'- **BGP_PRO**: BGP (multi-ISP) Pro line. Only Hong Kong (China), Singapore, Malaysia (Kuala Lumpur), Philippines (Manila), Indonesia (Jakarta), and Thailand (Bangkok) regions support BGP (multi-ISP) Pro EIPs.'."\n" + ."\n\n" + .'For more information about BGP (multi-ISP) and BGP (multi-ISP) Pro lines, see [EIP line types](~~32321~~).'."\n" + ."\n" + .'- If you are a whitelist user of single-ISP bandwidth, you can also select the following types:'."\n" + .' - **ChinaTelecom**: China Telecom'."\n" + .' - **ChinaUnicom**: China Unicom'."\n" + .' - **ChinaMobile**: China Mobile'."\n" + .' - **ChinaTelecom_L2**: China Telecom L2'."\n" + .' - **ChinaUnicom_L2**: China Unicom L2'."\n" + .' - **ChinaMobile_L2**: China Mobile L2'."\n" + .'- If you are a China (Hangzhou) Finance Cloud user, this parameter is required. Set the value to **BGP_FinanceCloud**.', 'type' => 'string', 'required' => false, 'example' => 'BGP', 'title' => ''], + ], + [ + 'name' => 'Netmode', + 'in' => 'query', + 'schema' => ['description' => 'The network type. The value can only be **public** (default), which indicates the public network.', 'type' => 'string', 'required' => false, 'example' => 'public', 'title' => ''], + ], + [ + 'name' => 'AutoPay', + 'in' => 'query', + 'schema' => ['description' => 'Specifies whether to enable automatic payment. Valid values:'."\n" + ."\n" + .'- **false**: disables automatic payment. After an order is generated, go to the Order Center to complete the payment.'."\n" + ."\n" + .'- **true**: enables automatic payment. The order is automatically paid.'."\n" + ."\n" + .'This parameter is required if **InstanceChargeType** is set to **PrePaid**. This parameter is optional if **InstanceChargeType** is set to **PostPaid**.', 'type' => 'boolean', 'required' => false, 'example' => 'true', 'title' => ''], + ], + [ + 'name' => 'PricingCycle', + 'in' => 'query', + 'schema' => ['description' => 'The billing cycle of the subscription. Valid values:'."\n" + ."\n" + .'- **Month** (default): billed on a monthly basis.'."\n" + ."\n" + .'- **Year**: billed on a yearly basis.'."\n" + ."\n" + .'This parameter is required if **InstanceChargeType** is set to **PrePaid**. This parameter is optional if **InstanceChargeType** is set to **PostPaid**.', 'type' => 'string', 'required' => false, 'example' => 'Month', 'title' => ''], + ], + [ + 'name' => 'InstanceChargeType', + 'in' => 'query', + 'schema' => ['description' => 'The billing method of the EIP to allocate. Valid values:'."\n" + .' '."\n" + .'- **PrePaid**: subscription.'."\n" + ."\n" + .'- **PostPaid** (default): pay-as-you-go.'."\n" + ."\n" + .'If **InstanceChargeType** is set to **PrePaid**, **InternetChargeType** must be set to **PayByBandwidth**.'."\n" + ."\n" + .'If **InstanceChargeType** is set to **PostPaid**, **InternetChargeType** can be set to **PayByBandwidth** or **PayByTraffic**.', 'type' => 'string', 'required' => false, 'example' => 'PostPaid', 'title' => ''], + ], + [ + 'name' => 'InternetChargeType', 'in' => 'query', + 'schema' => ['description' => 'The metering method of the EIP to allocate. Valid values:'."\n" + ."\n" + .'- **PayByBandwidth** (default): pay-by-bandwidth.'."\n" + ."\n" + .'- **PayByTraffic**: pay-by-data-transfer.'."\n" + ."\n" + .'If **InstanceChargeType** is set to **PrePaid**, **InternetChargeType** must be set to **PayByBandwidth**.'."\n" + ."\n" + .'If **InstanceChargeType** is set to **PostPaid**, **InternetChargeType** can be set to **PayByBandwidth** or **PayByTraffic**.', 'type' => 'string', 'required' => false, 'default' => 'PayByBandwidth', 'example' => 'PayByBandwidth', 'title' => ''], + ], + [ + 'name' => 'ResourceGroupId', + 'in' => 'query', + 'schema' => ['description' => 'The ID of the resource group to which the EIP belongs.', 'type' => 'string', 'required' => false, 'example' => 'rg-resourcegroup****', 'title' => ''], + ], + [ + 'name' => 'Tag', + 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => 'The user ID (UID) of the Apsara Stack tenant account to which the CEN instance belongs.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'example' => '123456789', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Key' => ['type' => 'string', 'description' => '', 'required' => false, 'title' => '', 'example' => ''], + 'Value' => ['type' => 'string', 'description' => '', 'required' => false, 'title' => '', 'example' => ''], + ], + 'required' => false, + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'required' => false, + 'maxItems' => 21, + 'description' => '', + 'title' => '', + 'example' => '', ], ], [ 'name' => 'ClientToken', 'in' => 'query', + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'Generate a parameter value from your client to ensure uniqueness across different requests. ClientToken supports only ASCII characters.'."\n" + ."\n" + .'> If you do not specify this parameter, the system uses the **RequestId** of the API request as the **ClientToken**. The **RequestId** may be different for each API request.', 'type' => 'string', 'required' => false, 'example' => '0c593ea1-3bea-11e9-b96b-88e9fe6****', 'title' => ''], + ], + [ + 'name' => 'SecurityProtectionTypes', + 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + 'description' => 'The security protection level.'."\n" ."\n" - .'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.'."\n" + .'- If this parameter is left empty, DDoS Protection (Basic) is used by default.'."\n" ."\n" - .'> 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.'."\n", - 'type' => 'string', + .'- If this parameter is set to **AntiDDoS_Enhanced**, DDoS Protection (Enhanced) is used.', + 'type' => 'array', + 'items' => ['description' => 'The security protection level.'."\n" + ."\n" + .'- If this parameter is left empty, DDoS Protection (Basic) is used by default.'."\n" + ."\n" + .'- If this parameter is set to **AntiDDoS_Enhanced**, DDoS Protection (Enhanced) is used.', 'type' => 'string', 'required' => false, 'title' => '', 'example' => ''], 'required' => false, - 'example' => '0c593ea1-3bea-11e9-b96b-88e9fe637760', + 'maxItems' => 10, + 'title' => '', + 'example' => '', ], ], + [ + 'name' => 'PublicIpAddressPoolId', + 'in' => 'query', + 'schema' => ['description' => 'The ID of the IP address pool.'."\n" + ."\n" + .'The EIP is allocated from the specified IP address pool.'."\n" + ."\n" + .'The IP address pool feature is not available by default. To use this feature, apply for the IP address pool privilege quota in Quota Center. For more information, see [Increase a quota in Quota Center](~~108213~~).', 'type' => 'string', 'required' => false, 'example' => 'pippool-2vc0kxcedhquybdsz****', 'title' => ''], + ], ], 'responses' => [ 200 => [ 'schema' => [ + 'description' => 'The response parameters.', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E', - ], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '4EC47282-1B74-4534-BD0E-403F3EE64CAF', 'title' => ''], + 'OrderId' => ['description' => 'The order ID.'."\n" + .'This parameter is returned when InstanceChargeType (the billing method of the EIP) is set to PrePaid (subscription). If AutoPay is set to false, which means automatic payment is not enabled, go to the [Order Center](https://usercenter2.aliyun.com/order/list) to complete the payment.'."\n" + .'This parameter is returned when InstanceChargeType (the billing method of the EIP) is set to PrePaid (subscription). If AutoPay is set to false, which means automatic payment is not enabled, go to the [Order Center](https://usercenter2-intl.aliyun.com/order/list) to complete the payment.', 'type' => 'integer', 'format' => 'int64', 'example' => '20190000', 'title' => ''], + 'ResourceGroupId' => ['description' => 'The resource group ID. This parameter is returned only when **InstanceChargeType** is set to **PostPaid**.', 'type' => 'string', 'example' => 'rg-resourcegroup****', 'title' => ''], + 'EipAddress' => ['description' => 'The IP address assigned to the specified EIP. This parameter is returned only when **InstanceChargeType** is set to **PostPaid**.', 'type' => 'string', 'example' => '192.0.XX.XX', 'title' => ''], + 'AllocationId' => ['description' => 'The ID of the EIP.', 'type' => 'string', 'example' => 'eip-25877c70gddh****', 'title' => ''], ], - 'description' => '', + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'IncorrectStatus', - 'errorMessage' => 'Current Instance status does not support this operation.', - ], - [ - 'errorCode' => 'TaskConflict', - 'errorMessage' => 'The operation is too frequent, TaskConflict.', - ], - [ - 'errorCode' => 'IncorrectStatus.cbnStatus', - 'errorMessage' => 'Current CBN status does not support this operation.', - ], - [ - 'errorCode' => 'OperationDenied.InstanceAttachCen', - 'errorMessage' => 'Operation denied because instance association CEN.', - ], + ['errorCode' => 'FrequentPurchase.EIP', 'errorMessage' => 'eip frequent purchase', 'description' => ''], + ['errorCode' => 'QuotaExceeded.Eip', 'errorMessage' => 'Elastic IP address quota exceeded', 'description' => ''], + ['errorCode' => 'InvalidParameter', 'errorMessage' => 'Specified value of "InternetChargeType" is not valid', 'description' => ''], + ['errorCode' => 'ReserveIpFail', 'errorMessage' => 'Reserve eip failed.', 'description' => ''], + ['errorCode' => 'InvalidBandwidth.Malformed', 'errorMessage' => 'The specified Bandwidth is invalid.', 'description' => ''], + ['errorCode' => 'INSTANCE_TYPE_NOT_SUPPORT', 'errorMessage' => 'The instance type is invalid.', 'description' => ''], + ['errorCode' => 'QueryParameter.Illegal', 'errorMessage' => 'query parameter illegal', 'description' => ''], + ['errorCode' => 'QuotaExceeded.LargeSpecEip', 'errorMessage' => 'Elastic IP address with large spec quota exceeded.', 'description' => ''], + ['errorCode' => 'InvalidResourceGroupId', 'errorMessage' => 'The specified ResourceGroupId does not exist.', 'description' => 'The specified resource group ID does not exist.'], + ['errorCode' => 'Invalid.Reserve.Ip', 'errorMessage' => 'The reserve ip is invalid.', 'description' => ''], + ['errorCode' => 'Ip.Allocated', 'errorMessage' => 'The reserve ip has been allocated.', 'description' => 'Reserved IP addresses are already specified.'], + ['errorCode' => 'Ip.Keeped', 'errorMessage' => 'The reserve ip been keeped in an hour.', 'description' => ''], + ['errorCode' => 'OperationFailed.AllocateUnfamiliarIp', 'errorMessage' => 'The operation failed because only IP addresses used within the last seven days can be allocated.', 'description' => 'Only IP addresses used within the last seven days can be used to apply for EIP.'], + ['errorCode' => 'INVALID_INSTANCE_STATUS', 'errorMessage' => 'The instance status is invalid.', 'description' => ''], + ['errorCode' => 'OperationFailed.InstanceNotExist', 'errorMessage' => 'Eip instanceId does not exist.', 'description' => ''], + ['errorCode' => 'InvalidStatus.ValueNotSupported', 'errorMessage' => 'The specified status is not supported.', 'description' => ''], + ['errorCode' => 'OperationFailed.RiskControl', 'errorMessage' => 'Risk control check failed.', 'description' => 'The error message returned because your payment method has security risks. Click the link for verification in your email or console message and submit your order after verification.'], + ['errorCode' => 'ResourceNotEnough.PublicIpAddressPool', 'errorMessage' => 'The specified resource of PublicIpAddressPool is not enough.', 'description' => ''], + ['errorCode' => 'Mismatch.IpAndPublicIpAddressPool', 'errorMessage' => 'The Ip and PublicIpAddressPool are mismatched.', 'description' => ''], + ['errorCode' => 'ResourceNotFound.PublicIpAddressPool', 'errorMessage' => 'The specified resource of PublicIpAddressPool is not found.', 'description' => ''], + ['errorCode' => 'ResourceNotFound.Ip', 'errorMessage' => 'The specified ip is not found.', 'description' => 'The specified IP could not be found.'], + ['errorCode' => 'OperationDenied.IpBelongToOtherUser', 'errorMessage' => 'The operation is not allowed because of ip belong to other user.', 'description' => 'Your application failed because the IP address belongs to another user.'], + ['errorCode' => 'IncorrectStatus.Ip', 'errorMessage' => 'The status of ip is incorrect.', 'description' => 'The status of the IP is incorrect.'], + ['errorCode' => 'OperationFailed.IpIsLocked', 'errorMessage' => 'The operation is failed because of ip is locked.', 'description' => 'Your application failed because the IP address is locked.'], + ['errorCode' => 'Mismatch.IpAndIsp', 'errorMessage' => 'The specified IP address does not match the ISP.', 'description' => 'The system failed to allocate the specified EIP because the ISP and IP address do not match.'], + ['errorCode' => 'IncorrectStatus.PublicIpAddressPool', 'errorMessage' => 'The status of PublicIpAddressPool is incorrect.', 'description' => 'EIPs are not allowed to be allocated because the address pool is in an unstable state.'], + ['errorCode' => 'IllegalParam.IpAddress', 'errorMessage' => 'The specified IpAddress (%s) is illegal.', 'description' => 'The IpAddress parameter is set to an invalid value.'], + ['errorCode' => 'OperationFailed.ResourceNotEnough', 'errorMessage' => 'The resources you have applied for are insufficient.', 'description' => 'The resources you have applied for are insufficient. If you still need to apply, please submit a work order for processing.'], + ['errorCode' => 'Mismatch.EipSecurityProtectionTypeAndPoolSecurityProtectionType', 'errorMessage' => 'The EipSecurityProtectionType and PoolSecurityProtectionType are mismatched.', 'description' => 'The EIP protection type does not match the address pool protection type.'], + ['errorCode' => 'IllegalParam.Isp', 'errorMessage' => 'The param of Isp [%s] is illegal.', 'description' => 'The error message returned because the Isp parameter is set to an invalid value. Specify a valid value and try again.'], ], - 404 => [ - [ - 'errorCode' => 'InvalidInstanceId.NotFound', - 'errorMessage' => 'Specified Instance does not exist.', - ], - [ - 'errorCode' => 'InstanceType.Invalid', - 'errorMessage' => 'Specified type is not valid.', - ], - [ - 'errorCode' => 'InvalidRegionId.NotFound', - 'errorMessage' => 'The RegionId provided does not exist in our records.', - ], + 403 => [ + ['errorCode' => 'Forbidden', 'errorMessage' => 'User not authorized to operate on the specified resource.', 'description' => 'You do not have the permissions to manage the specified resource. Apply for the permissions and try again.'], + ], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', 'description' => 'An internal error occurred.'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E\\n","errorExample":""}]', - 'title' => 'RevokeInstanceFromCen', - 'description' => '## [](#)Usage notes'."\n" - ."\n" - .'* **RevokeInstanceFromCen** is a Virtual Private Cloud (VPC) operation. Therefore, you must use `vpc.aliyuncs.com` as the domain name when you call this operation. The API version is `2016-04-28`.'."\n" - .'* You cannot repeatedly call the **RevokeInstanceFromCen** operation to revoke the permissions on a network instance that is attached to a CEN instance within the specified period of time. The network instance can be a VPC, virtual border router (VBR), or a Cloud Connect Network (CCN) instance.'."\n", + 'title' => 'Allocate a specified EIP', + 'summary' => 'Allocates a specified elastic IP address (EIP) for specific network configuration requirements.', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'UnassociateVpcCidrBlock' => [ - 'summary' => 'Removes a secondary CIDR block from a virtual private cloud (VPC).', - 'methods' => [ - 'post', - 'get', + 'changeSet' => [ + ['createdAt' => '2025-03-26T08:11:23.000Z', 'description' => 'Request parameters changed, Response parameters changed'], + ['createdAt' => '2024-07-16T03:57:35.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-01-22T09:35:53.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-10-19T11:50:15.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-07-06T01:55:04.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-05-15T06:29:29.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2022-12-02T08:24:33.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2021-11-29T09:41:26.000Z', 'description' => 'Request parameters changed'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '60', 'countWindow' => 60, 'regionId' => '*', 'api' => 'AllocateEipAddressPro'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'vpc:AllocateEipAddressPro', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'Address', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:eip/*'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"4EC47282-1B74-4534-BD0E-403F3EE64CAF\\",\\n \\"OrderId\\": 20190000,\\n \\"ResourceGroupId\\": \\"rg-resourcegroup****\\",\\n \\"EipAddress\\": \\"192.0.XX.XX\\",\\n \\"AllocationId\\": \\"eip-25877c70gddh****\\"\\n}","type":"json"}]', + ], + 'AllocateEipSegmentAddress' => [ + 'summary' => 'Contiguous Elastic IP addresses (EIPs) are a group of sequentially ordered EIPs. You can apply for and use these IP addresses in bulk for cloud resources that require contiguous public IP addresses during network design. You can call the AllocateEipSegmentAddress operation to apply for contiguous EIPs.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'delete', - ], + 'operationType' => 'readAndWrite', + 'deprecated' => true, + 'systemTags' => ['operationType' => 'create', 'riskType' => 'none', 'chargeType' => 'paid'], 'parameters' => [ + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'You can use the client to generate the token, but you must make sure that the token is unique among different requests. The **ClientToken** value can contain only ASCII characters.'."\n" + ."\n" + .'> If you do not specify this parameter, the system uses the **RequestId** of the API request as the **ClientToken**. The **RequestId** may be different for each API request.', 'type' => 'string', 'required' => false, 'example' => '02fb3da4-130e-11e9-8e44-001****', 'title' => ''], + ], + [ + 'name' => 'Bandwidth', + 'in' => 'query', + 'schema' => ['description' => 'The maximum bandwidth of the EIP. Unit: Mbit/s.'."\n" + ."\n" + .'- If **InternetChargeType** is set to **PayByBandwidth**, valid values of **Bandwidth** are **1** to **500**.'."\n" + ."\n" + .'- If **InternetChargeType** is set to **PayByTraffic**, valid values of **Bandwidth** are **1** to **200**.'."\n" + ."\n" + .'Default value: **5** Mbit/s.', 'type' => 'string', 'required' => false, 'example' => '5', 'title' => ''], + ], [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the VPC to which the secondary CIDR block to be deleted belongs.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'ch-hangzhou', - ], + 'schema' => ['description' => 'The region ID of the contiguous EIPs.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the region ID.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'VpcId', + 'name' => 'EipMask', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the VPC from which you want to delete a secondary CIDR block.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'vpc-o6wrloqsdqc9io3mg****', - ], + 'schema' => ['description' => 'The subnet mask of the contiguous EIPs. Valid values:'."\n" + ."\n" + .'- **28**: The system allocates 16 contiguous EIPs for each call.'."\n" + ."\n" + .'- **27**: The system allocates 32 contiguous EIPs for each call.'."\n" + ."\n" + .'- **26**: The system allocates 64 contiguous EIPs for each call.'."\n" + ."\n" + .'- **25**: The system allocates 128 contiguous EIPs for each call.'."\n" + ."\n" + .'- **24**: The system allocates 256 contiguous EIPs for each call.'."\n" + ."\n" + .'> Due to IP address reservation, the actual number of contiguous EIPs may be 1, 3, or 4 fewer than expected.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '28', 'title' => ''], ], [ - 'name' => 'SecondaryCidrBlock', + 'name' => 'Netmode', 'in' => 'query', - 'schema' => [ - 'description' => 'The secondary IPv4 CIDR block to be deleted.'."\n" - ."\n" - .'> You must set one of the **SecondaryCidrBlock** and **Ipv6CidrBlock** parameters.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '192.168.0.0/16', - ], + 'schema' => ['description' => 'The network type. Set the value to **public**, which specifies the public network.', 'type' => 'string', 'required' => false, 'example' => 'public', 'title' => ''], ], [ - 'name' => 'IPv6CidrBlock', + 'name' => 'InternetChargeType', 'in' => 'query', - 'schema' => [ - 'description' => 'The secondary IPv6 CIDR block to be deleted.'."\n" - ."\n" - .'> You must set one of the **Ipv6CidrBlock** and **SecondaryCidrBlock** parameters.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '2408:XXXX:0:6a::/56', - ], + 'schema' => ['description' => 'The billable methods of the contiguous EIPs. Valid values:'."\n" + ."\n" + .'- **PayByBandwidth** (default): pay-by-fixed-bandwidth.'."\n" + ."\n" + .'- **PayByTraffic**: pay-by-data-transfer.', 'type' => 'string', 'required' => false, 'default' => 'PayByBandwidth', 'example' => 'PayByBandwidth', 'title' => ''], ], [ - 'name' => 'RegionId', + 'name' => 'ResourceGroupId', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the VPC to which the secondary CIDR block to be deleted belongs.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'ch-hangzhou', - ], + 'schema' => ['description' => 'The resource group ID.', 'type' => 'string', 'required' => false, 'example' => 'rg-bp67acfmxazb4ph****', 'title' => ''], + ], + [ + 'name' => 'Isp', + 'in' => 'query', + 'schema' => ['description' => 'The line type. Valid values:'."\n" + ."\n" + .'- **BGP** (default): BGP (multi-ISP) line. All regions support BGP (multi-ISP) EIPs.'."\n" + .'- **BGP_PRO**: BGP (multi-ISP) premium line. Only Hong Kong (China), Singapore, Tokyo (Japan), Kuala Lumpur (Malaysia), Manila (Philippines), Jakarta (Indonesia), and Bangkok (Thailand) regions support BGP (multi-ISP) premium EIPs.'."\n" + ."\n" + .'For more information about BGP (multi-ISP) lines and BGP (multi-ISP) premium lines, see [EIP line types](~~32321~~).'."\n" + ."\n" + .'If you are a whitelist user of single-ISP bandwidth, you can also select the following types:'."\n" + .'- **ChinaTelecom**: China Telecom'."\n" + .'- **ChinaUnicom**: China Unicom'."\n" + .'- **ChinaMobile**: China Mobile'."\n" + .'- **ChinaTelecom_L2**: China Telecom L2'."\n" + .'- **ChinaUnicom_L2**: China Unicom L2'."\n" + .'- **ChinaMobile_L2**: China Mobile L2'."\n" + ."\n" + .'If you are a China (Hangzhou) Finance Cloud user, this parameter is required. Set the value to **BGP_FinanceCloud**.', 'type' => 'string', 'required' => false, 'example' => 'BGP', 'title' => ''], + ], + [ + 'name' => 'Zone', + 'in' => 'query', + 'schema' => ['description' => 'The zone of the contiguous EIP group.', 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou-a', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => '', + 'description' => 'The response parameters.', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => 'C1221A1F-2ACD-4592-8F27-474E02883159', - ], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'F7A6301A-64BA-41EC-8284-8F4838C15D1F', 'title' => ''], + 'EipSegmentInstanceId' => ['description' => 'The instance ID of the contiguous EIP group.', 'type' => 'string', 'example' => 'eipsg-2zett8ba055tbsxme****', 'title' => ''], ], + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'OperationFailed.Ipv6Gateway', - 'errorMessage' => 'The operation is failed because of ipv6Gateway is in use.', - ], - [ - 'errorCode' => 'InvalidVpc.NotFound', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'IncorrectStatus.Vpc', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'ParamExclusive.SecondaryCidrAndIpv6Cidr', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'MissingParam.SecondaryCidrOrIpv6Cidr', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'InvalidSecondaryCidrBlock.NotFound', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'OperationFailed.CidrInUse', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'InvalidIpv6CidrBlock.NotFound', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'OperationFailed.IpV6VSwitchInuse', - 'errorMessage' => 'Operation failed because some vswitch ipv6 is in use.', - ], - [ - 'errorCode' => 'MissingParam.SecondaryCidrBlockOrIpv6CidrBlock', - 'errorMessage' => 'Either SecondaryCidrBlock or Ipv6CidrBlock must be specified.', - ], - ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"C1221A1F-2ACD-4592-8F27-474E02883159\\"\\n}","errorExample":""},{"type":"xml","example":"\\n C1221A1F-2ACD-4592-8F27-474E02883159\\n","errorExample":""}]', - 'title' => 'UnassociateVpcCidrBlock', - 'description' => '* Before you delete a secondary CIDR block from a VPC, delete the vSwitch which is created with the CIDR block. For more information, see [DeleteVSwitch](~~35746~~).'."\n" - .'* You cannot repeatedly call the **UnassociateVpcCidrBlock** operation to delete a secondary CIDR block from a VPC within the specified period of time.'."\n", + ['errorCode' => 'QuotaExceeded.Eip', 'errorMessage' => 'Elastic IP address quota exceeded', 'description' => ''], + ['errorCode' => 'InsufficientBalance', 'errorMessage' => 'Your account does not have enough balance.', 'description' => ''], + ['errorCode' => 'InvalidParameter', 'errorMessage' => 'Specified value of "InternetChargeType" is not valid', 'description' => ''], + ['errorCode' => 'ReserveIpFail', 'errorMessage' => 'Reserve eip failed.', 'description' => ''], + ['errorCode' => 'InvalidBandwidth.Malformed', 'errorMessage' => 'The specified Bandwidth is invalid.', 'description' => ''], + ['errorCode' => 'INSTANCE_TYPE_NOT_SUPPORT', 'errorMessage' => 'The instance type is invalid.', 'description' => ''], + ['errorCode' => 'QueryParameter.Illegal', 'errorMessage' => 'query parameter illegal', 'description' => ''], + ['errorCode' => 'TokenVerfiy.Failed', 'errorMessage' => 'token verify failed.', 'description' => ''], + ['errorCode' => 'QuotaExceeded.LargeSpecEip', 'errorMessage' => 'Elastic IP address with large spec quota exceeded.', 'description' => ''], + ['errorCode' => 'InvalidResourceGroupId', 'errorMessage' => 'The specified ResourceGroupId does not exist.', 'description' => 'The specified resource group ID does not exist.'], + ['errorCode' => 'OperationFailed.InsufficientEIP', 'errorMessage' => 'Eip resource is not enough.', 'description' => ''], + ['errorCode' => 'FrequentPurchase.EIP', 'errorMessage' => 'eip frequent purchase', 'description' => ''], + ['errorCode' => 'OperationFailed.ChargeTypeInvalid', 'errorMessage' => 'Operation failed because hybrid netmode do not support PayByTraffic.', 'description' => ''], + ['errorCode' => 'IllegalParam.EipMask', 'errorMessage' => 'EipMask is illegal.', 'description' => ''], + ['errorCode' => 'IllegalParam.Name', 'errorMessage' => 'Name is illegal.', 'description' => ''], + ['errorCode' => 'IllegalParam.Description', 'errorMessage' => 'Description is illegal.', 'description' => ''], + ['errorCode' => 'InstanceExist.EipSegment', 'errorMessage' => 'The eipSegment instance already exists.', 'description' => ''], + ['errorCode' => 'OperationFailed.QuotaExceed', 'errorMessage' => 'Operation failed because over threshold bandwidth quota exceed.', 'description' => ''], + ['errorCode' => 'OperationFailed.FrequentPurchase', 'errorMessage' => 'Operation failed because eip frequent purchase.', 'description' => ''], + ['errorCode' => 'OperationFailed.AllocateEipSegment', 'errorMessage' => 'Operation failed because eip segment is out of stock.', 'description' => 'Insufficient inventory of continuous EIP.'], + ['errorCode' => 'OperationFailed.CreateOrderFailed', 'errorMessage' => 'Operation failed because create order failed.', 'description' => ''], + ['errorCode' => 'MissingParam.Bandwidth', 'errorMessage' => 'The parameter Bandwidth is mandatory when allocate hybrid EipSegment.', 'description' => ''], + ['errorCode' => 'OperationFailed.EipQuotaExceed', 'errorMessage' => 'Operation failed because eip quota exceed.', 'description' => ''], + ['errorCode' => 'Forbidden', 'errorMessage' => 'User not authorized to operate on the specified resource.', 'description' => ''], + ['errorCode' => 'UnsupportedFeature.AllocateEipAddressWithZone', 'errorMessage' => 'The feature of AllocateEipAddressWithZone is not supported.', 'description' => 'You are not allowed to create an instance in a specified zone in the region.'], + ['errorCode' => 'IllegalParam.Zone', 'errorMessage' => 'The specified zone is invalid.', 'description' => 'Zone is set to an invalid value.'], + ['errorCode' => 'Forbidden.AllocateEipSegmentAddress', 'errorMessage' => 'Authentication is failed for allocating eip segment address.', 'description' => 'Failed to apply for continuous EIP. The service has been offline. Please use the IP address pool service.'], + ], + ], + 'staticInfo' => ['noSubstitutionReason' => '无替代API,历史原因导致该API被标记为弃用。'], + 'title' => 'Apply for contiguous eIPs', + 'description' => 'The **AllocateEipSegmentAddress** operation is asynchronous. After you call this operation, the system returns the instance ID of a contiguous EIP group, but the contiguous EIP group is not yet created. The creation task is still running in the background. You can call [DescribeEipSegment](~~156063~~) to query the status of the contiguous EIP group.'."\n" + ."\n" + .'- If the contiguous EIP group is in the **Allocating** state, the contiguous EIP group is being allocated. In this state, you can only perform query operations.'."\n" + ."\n" + .'- If the contiguous EIP group is in the **Allocated** state, the contiguous EIP group is allocated.', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'ModifyVpcAttribute' => [ - 'summary' => 'Modifies the configurations of a specified VPC.', - 'methods' => [ - 'post', - 'get', + 'changeSet' => [ + ['createdAt' => '2024-07-16T03:57:35.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-08-29T08:56:02.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-07-26T07:13:13.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-05-22T06:15:09.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2023-03-17T03:07:31.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2022-11-17T11:38:45.000Z', 'description' => 'Error codes changed'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '6', 'countWindow' => 60, 'regionId' => '*', 'api' => 'AllocateEipSegmentAddress'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'vpc:AllocateEipSegmentAddress', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'SegmentAddress', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:eip/*'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"F7A6301A-64BA-41EC-8284-8F4838C15D1F\\",\\n \\"EipSegmentInstanceId\\": \\"eipsg-2zett8ba055tbsxme****\\"\\n}","type":"json"}]', + ], + 'AllocateIpv6Address' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -2846,1879 +2045,1676 @@ 'operationType' => 'readAndWrite', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'update', - 'riskType' => 'high', + 'operationType' => 'create', + 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '37912', - 'abilityTreeNodes' => [ - 'FEATUREvpcK3NXU2', - ], + 'abilityTreeCode' => '192335', + 'abilityTreeNodes' => ['FEATUREvpc3GHR3P'], ], 'parameters' => [ [ - 'name' => 'VpcId', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the VPC that you want to modify.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'vpc-bp1qtbach57ywecf****', - ], + 'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'Description', + 'name' => 'VSwitchId', 'in' => 'query', - 'schema' => [ - 'description' => 'The new description of the VPC.'."\n" - ."\n" - .'The description must be 1 to 256 characters in length, and cannot start with `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'This is my VPC.', - ], + 'schema' => ['description' => 'The ID of the vSwitch to which the IPv6 address belongs.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'vsw-asdfjlnaue4g****', 'title' => ''], ], [ - 'name' => 'VpcName', + 'name' => 'Ipv6Address', 'in' => 'query', - 'schema' => [ - 'description' => 'The new name of the VPC.'."\n" - ."\n" - .'The name must be 1 to 128 characters in length and cannot start with `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'Vpc-1', - ], + 'schema' => ['description' => 'The IPv6 address to allocate. The specified IPv6 address must be an idle address within the CIDR block of the vSwitch.', 'type' => 'string', 'required' => false, 'docRequired' => false, 'example' => '2408:XXXX:153:3921:851c:c435:7b12:1c5f', 'title' => ''], ], [ - 'name' => 'CidrBlock', + 'name' => 'Ipv6AddressName', 'in' => 'query', - 'schema' => [ - 'description' => 'The new IPv4 CIDR block of the VPC.'."\n" - ."\n" - .'You can specify a larger or smaller IPv4 CIDR block than the IPv4 CIDR block of the VPC. The subnet mask must be 8 to 28 bits in length. If you specify a smaller IPv4 CIDR block and existing IP addresses do not fall within the CIDR block, the modification fails.'."\n" - ."\n" - .'> If you modify the CIDR block of a VPC, your existing services are not affected.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '192.168.0.0/24', - ], + 'schema' => ['description' => 'The name of the IPv6 address instance.'."\n" + ."\n" + .'The name must be 0 to 128 characters in length and cannot start with `http://` or `https://`.', 'type' => 'string', 'required' => false, 'example' => 'ipv6-name', 'title' => ''], ], [ - 'name' => 'RegionId', + 'name' => 'Ipv6AddressDescription', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the VPC.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The description of the IPv6 address instance.'."\n" + ."\n" + .'The description must be 0 to 256 characters in length and cannot start with `http://` or `https://`.', 'type' => 'string', 'required' => false, 'example' => 'ipv6-description', 'title' => ''], ], [ - 'name' => 'EnableIPv6', + 'name' => 'AddressType', 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to enable IPv6 CIDR blocks. Valid values:'."\n" - ."\n" - .'* **true**'."\n" - .'* **false** (default)'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['description' => 'The type of the IPv6 address. Valid values:'."\n" + ."\n" + .'* IPv6Address (default): The instance is a single IPv6 address.'."\n" + .'* IPv6Prefix: The instance is an IPv6 CIDR block.', 'type' => 'string', 'required' => false, 'example' => 'IPv6Address', 'title' => ''], ], [ - 'name' => 'Ipv6CidrBlock', + 'name' => 'ResourceGroupId', 'in' => 'query', - 'schema' => [ - 'description' => 'The IPv6 CIDR block of the VPC.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '2408:XXXX:0:6a::/56', - ], + 'schema' => ['description' => 'The resource group ID. For more information about resource groups, see [What is a resource group?](~~2381067~~).', 'type' => 'string', 'required' => false, 'example' => 'rg-bp67acfmxazb4ph****', 'title' => ''], ], [ - 'name' => 'Ipv6Isp', + 'name' => 'Tag', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => 'The type of IPv6 CIDR block. Valid values:'."\n" - ."\n" - .'* **BGP** (default)'."\n" - .'* **ChinaMobile**'."\n" - .'* **ChinaUnicom**'."\n" - .'* **ChinaTelecom**'."\n" - ."\n" - .'> If your Alibaba Cloud account is allowed to activate single-ISP bandwidth, you can set this parameter to **ChinaTelecom**, **ChinaUnicom**, or **ChinaMobile**.'."\n", - 'type' => 'string', + 'description' => 'The list of tags for the resource.', + 'type' => 'array', + 'items' => [ + 'description' => 'The tag of the resource.', + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => 'The tag key of the resource. You can specify up to 20 tag keys. Do not set this parameter to an empty string.'."\n" + ."\n" + .'A tag key can be up to 128 characters in length and cannot start with `aliyun` or `acs:`, or contain `http://` or `https://`.', 'type' => 'string', 'required' => false, 'example' => 'FinanceDept', 'title' => ''], + 'Value' => ['description' => 'The tag value of the resource. You can specify up to 20 tag values. The value can be an empty string.'."\n" + ."\n" + .'The tag value can be up to 128 characters in length and cannot start with aliyun or acs:, or contain http:// or https://.', 'type' => 'string', 'required' => false, 'example' => 'FinanceJoshua', 'title' => ''], + ], + 'required' => false, + 'title' => '', + 'example' => '', + ], 'required' => false, - 'example' => 'BGP', + 'maxItems' => 21, + 'title' => '', + 'example' => '', ], ], [ - 'name' => 'EnableDnsHostname', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'Indicates whether the DNS hostname feature is enabled. Valid values:'."\n" - ."\n" - .'* **false** (default): disabled.'."\n" - .'* **true**: enabled.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request. You can use the client to generate the token, but you must make sure that the token is unique among different requests. The ClientToken value can contain only ASCII characters.'."\n" + ."\n" + .'> If you do not specify this parameter, the system uses the **RequestId** of the API request as the **ClientToken**. The **RequestId** may be different for each API request.', 'type' => 'string', 'required' => false, 'example' => '02fb3da4-130e-11e9-8e44-0016e04****', 'title' => ''], + ], + [ + 'name' => 'DryRun', + 'in' => 'query', + 'schema' => ['description' => 'Specifies whether to perform a dry run. Valid values:'."\n" + ."\n" + .'- true: performs a dry run. The system checks the required parameters, request syntax, and business restrictions. If the check fails, the corresponding error is returned. If the check succeeds, the DryRunOperation error code is returned.'."\n" + ."\n" + .'- false (default): performs a dry run and sends the request. If the check succeeds, an HTTP 2xx status code is returned and the operation is performed.', 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => 'The request ID.'."\n", 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '43B72D30-25E1-4FA3-96A8-89374A521D1A', - ], + 'Ipv6AddressId' => ['description' => 'The instance ID of the IPv6 address.', 'type' => 'string', 'example' => 'ipv6-2zen5j4axcp5l5qyy****', 'title' => ''], + 'Ipv6Address' => ['description' => 'The IPv6 address.', 'type' => 'string', 'example' => '2408:XXXX:153:3921:851c:c435:7b12:1c5f', 'title' => ''], + 'ResourceGroupId' => ['description' => 'The resource group ID.', 'type' => 'string', 'example' => 'rg-acfmxazdjdhd****', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B45', 'title' => ''], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'Forbidden.VpcNotFound', - 'errorMessage' => 'Specified VPC does not exist.', - ], - [ - 'errorCode' => 'InvalidDescription.Malformed', - 'errorMessage' => 'description not valid..', - ], - [ - 'errorCode' => 'InvalidVpcName.Malformed', - 'errorMessage' => 'Specified VPC name is not valid.', - ], - [ - 'errorCode' => 'InvalidVpcDiscription.Malformed', - 'errorMessage' => 'Specified VPC description is not valid.', - ], - [ - 'errorCode' => 'InvalidParameter', - 'errorMessage' => 'Specified UserCidr invalid format.', - ], - [ - 'errorCode' => 'InvalidUserCidr.Quota', - 'errorMessage' => 'Specified UserCidr number is greater than 3.', - ], - [ - 'errorCode' => 'InvalidUserCidr.Malformed', - 'errorMessage' => 'Specified UserCidr overlapping in of 100.64.0.0/10.', - ], - [ - 'errorCode' => 'InvalidVpcId.NotFound', - 'errorMessage' => 'Specified VPC name is not valid.', - ], - [ - 'errorCode' => 'IncorrectVpcStatus', - 'errorMessage' => 'Current VPC status does not support this operation.', - ], - [ - 'errorCode' => 'IllegalCidrBlock', - 'errorMessage' => 'Some subnet cidrBlock is not in the cidrBlock.', - ], - [ - 'errorCode' => 'InvalidRegion.Malformed', - 'errorMessage' => 'Specified RegionId is not vaild.', - ], - [ - 'errorCode' => 'InvalidCidrBlock.Malformed', - 'errorMessage' => 'Specified CIDR block is not valid.', - ], - [ - 'errorCode' => 'OperationUnsupported.DisableIpv6', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'OperationUnsupported.Ipv6Feature', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'ParamExclusive.EnableIpv6AndCidrBlock', - 'errorMessage' => 'EnableIpv6 and CidrBlock is mutually exclusive.', - ], - [ - 'errorCode' => 'OperationFailed.ClassicLinkEnabled', - 'errorMessage' => 'Operation failed because classicLink is enabled.', - ], - [ - 'errorCode' => 'OperationFailed.IpV6VSwitchInuse', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'OperationFailed.Ipv6GatewayInUse', - 'errorMessage' => 'The IPv6 gateway is in use.', - ], - [ - 'errorCode' => 'OperationFailed.QueryCenIpv6Status', - 'errorMessage' => 'Failed to query the IPv6 status of the specified VPC in CEN.', - ], - [ - 'errorCode' => 'OperationUnsupported.CenIpv6Enabled', - 'errorMessage' => 'The IPv6 feature is enabled in CEN.', - ], - [ - 'errorCode' => 'UnsupportedFeature.Ipv6Isp', - 'errorMessage' => 'The Ipv6Isp feature is not supported.', - ], - [ - 'errorCode' => 'ResourceNotEnough.Ipv6Cidr', - 'errorMessage' => 'The specified resource ipv6 cidr is not enough.', - ], - [ - 'errorCode' => 'OperationFailed.IPv6CidrNotReserved', - 'errorMessage' => 'The IPv6 CIDR block is not reserved.', - ], - [ - 'errorCode' => 'IllegalParam.Ipv6Cidr', - 'errorMessage' => 'The specified Ipv6CidrBlock is invalid.', - ], - [ - 'errorCode' => 'InvalidIpv6Instance.NotFound', - 'errorMessage' => 'The specified resource of InvalidIpv6Instance is not found.', - ], - [ - 'errorCode' => 'ExclusiveParam.EnableIpv6AndCidrBlock', - 'errorMessage' => 'The param of EnableIpv6 and CidrBlock are mutually exclusive.', - ], - [ - 'errorCode' => 'UnsupportedFeature.VpcDnsHostname', - 'errorMessage' => 'The feature of vpc dns hostname is unsupported.', - ], - [ - 'errorCode' => 'OperationFailed.Ipv6RouteEntryUsing', - 'errorMessage' => 'VPC exist IPv6 Route Entry, cannot disable IPv6.', - ], - [ - 'errorCode' => 'OperationFailed.ModifyVpcDnsHostname', - 'errorMessage' => 'Operation failed because DnsHostName resource is in transient state, please try again later.', - ], - [ - 'errorCode' => 'IncorrectStatus.VpcDnsHostnameStatus', - 'errorMessage' => 'The DnsHostname status of vpc does not support this operation.', - ], - [ - 'errorCode' => 'OperationFailed.ConflictWithSecondaryCidr', - 'errorMessage' => 'The modified cidr is conflict with the secondary cidr.', - ], + ['errorCode' => 'OperationFailed.IPv6AddressAlreadyAllocated', 'errorMessage' => 'The operation is failed because of the ipv6 address specified was allocated.', 'description' => 'The specified IPv6 address is already allocated'], + ['errorCode' => 'OperationFailed.AddressNotInVSwitchCidr', 'errorMessage' => 'The operation is failed because of %s.', 'description' => 'The specified IP address is not in the vSwitch CIDR block. Please modify it as described in the API document and try again.'], + ['errorCode' => 'IllegalParam.IpAddress', 'errorMessage' => 'The param of %s is illegal.', 'description' => 'The IP address format is invalid. See the API reference and specify a valid IP address.'], + ['errorCode' => 'OperationFailed.IPv6Disabled', 'errorMessage' => 'Operation failed because IPv6 is not enabled for the vSwitch.', 'description' => 'The IPv6 feature is disabled.'], + ['errorCode' => 'OperationFailed.IpPrefixMustInVSwitchCidrReservation', 'errorMessage' => 'The specified ip prefix must in reserved segment the VSwitch.', 'description' => 'The specified prefix network segment must be within the reserved network segment of the switch'], + ['errorCode' => 'Forbidden.OperateShareResource', 'errorMessage' => 'You cannot operate shared resources.', 'description' => 'Shared resources do not support this operation.'], + ['errorCode' => 'QuotaExceeded.IPv6PrefixMask', 'errorMessage' => 'The quota of specifed ipv6 prefix mask is exceeded.', 'description' => 'The specified IPv6 prefix mask exceeds the quota.'], + ['errorCode' => 'OperationUnsupported.Ipv6Feature', 'errorMessage' => 'The IPv6 feature is not supported in the region.', 'description' => 'This region does not support IPv6.'], + ['errorCode' => 'IllegalParam.Ipv6Prefix', 'errorMessage' => 'The param of Ipv6Prefix is illegal.', 'description' => 'The specified input Ipv6Prefix is illegal.'], + ['errorCode' => 'OperationFailed.ExistIPv6Used', 'errorMessage' => 'The operation is failed because of some ipv6 in the ipv6 prefix is already in use.', 'description' => 'The operation failed because IPv6 is already in use in the IPv6 prefix'], + ['errorCode' => 'OperationUnsupported.UnboundIpv6PrefixFeature', 'errorMessage' => 'The region does not support creating IPv6 prefix that are not bound to any resources.', 'description' => 'This region does not support creating IPv6 prefix CIDR blocks that are not bound to resources.'], + ['errorCode' => 'OperationUnsupported.UnboundIpv6Feature', 'errorMessage' => 'The region does not support creating IPv6 addresses that are not bound to any resources.', 'description' => 'The region does not support creating IPv6 address instances that are not bound to resources.'], + ['errorCode' => 'OperationUnsupported.FreePrivateIpv6', 'errorMessage' => 'This operation does not support free private IPv6 addresses.', 'description' => 'This operation does not support free private IPv6 addresses.'], ], 404 => [ - [ - 'errorCode' => 'InvalidVpcId.NotFound', - 'errorMessage' => 'Specified VPC does not exist.', - ], + ['errorCode' => 'ResourceNotFound.VSwitch', 'errorMessage' => 'The specified resource of %s is not found.', 'description' => 'The specified vSwitch does not exist, please check your input is correct'], + ['errorCode' => 'ResourceNotFound.VSwitchCidrReservation', 'errorMessage' => 'The dependent vswitch cidr reservation is not found.', 'description' => 'Dependent resource vSwitchCidrReservation does not exist'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"43B72D30-25E1-4FA3-96A8-89374A521D1A\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 43B72D30-25E1-4FA3-96A8-89374A521D1A\\n","errorExample":""}]', - 'title' => 'ModifyVpcAttribute', - 'description' => '## [](#)Description'."\n" + 'staticInfo' => ['returnType' => 'asynchronous', 'callback' => 'Vpc::2016-04-28::DescribeIpv6Addresses', 'callbackInterval' => 3000, 'maxCallbackTimes' => 10], + 'title' => 'Create an iPv6 address', + 'summary' => 'Invokes the AllocateIpv6Address operation to allocate a free IPv6 address or IPv6 prefix CIDR block. The address is not associated with any resource instance (such as an elastic network interface (ENI) or Network Load Balancer (NLB) instance) and exists as an independent IPv6 address in a virtual private cloud (VPC).', + 'description' => 'Scenarios: After you enable Internet bandwidth for a free IPv6 address, configure an inbound routing rule in the IPv6 gateway route table to direct public IPv6 traffic to an Internet Data Center (IDC) through an Express Connect circuit. This way, IDC resources can provide services over the Internet by using an Alibaba Cloud IPv6 address.'."\n" ."\n" - .'You cannot repeatedly call the **ModifyVpcAttribute** operation to modify the name and description of a VPC within the specified period of time.'."\n", - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'EnableVpcClassicLink' => [ - 'summary' => 'Enables ClassicLink for a VPC.', - 'methods' => [ - 'post', - 'get', + .'> To allocate an IPv6 address to an elastic network interface (ENI) of an ECS instance, invoke the [AssignIpv6Addresses](https://www.alibabacloud.com/help/en/ecs/developer-reference/api-ecs-2014-05-26-assignipv6addresses) operation of ECS.', + 'changeSet' => [ + ['createdAt' => '2024-08-08T09:26:08.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-06-28T01:52:08.000Z', 'description' => 'Error codes changed, Request parameters changed'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '60', 'countWindow' => 60, 'regionId' => '*', 'api' => 'AllocateIpv6Address'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'vpc:AllocateIpv6Address', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'Ipv6Address', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:ipv6address/*'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Ipv6AddressId\\": \\"ipv6-2zen5j4axcp5l5qyy****\\",\\n \\"Ipv6Address\\": \\"2408:XXXX:153:3921:851c:c435:7b12:1c5f\\",\\n \\"ResourceGroupId\\": \\"rg-acfmxazdjdhd****\\",\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B45\\"\\n}","type":"json"}]', + ], + 'AllocateIpv6InternetBandwidth' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'readAndWrite', - 'deprecated' => true, + 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'update', + 'operationType' => 'create', 'riskType' => 'none', - 'chargeType' => 'free', + 'chargeType' => 'paid', + 'abilityTreeCode' => '37971', + 'abilityTreeNodes' => ['FEATUREvpc3GHR3P'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the VPC for which you want to enable ClassicLink.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The region ID of the IPv6 gateway. You can call the [DescribeRegions](~~36063~~) operation to query the region ID.', 'type' => 'string', 'required' => true, 'example' => 'cn-huhehaote', 'title' => ''], ], [ - 'name' => 'VpcId', + 'name' => 'Ipv6GatewayId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the VPC.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'vpc-bp1m7v25emi1h5mtc****', - ], + 'schema' => ['description' => 'The ID of the IPv6 gateway.', 'type' => 'string', 'required' => false, 'example' => 'ipv6gw-uf6hcyzu65v98v3du****', 'title' => ''], + ], + [ + 'name' => 'Ipv6AddressId', + 'in' => 'query', + 'schema' => ['description' => 'The ID of the IPv6 address.', 'type' => 'string', 'required' => true, 'example' => 'ipv6-2zen5j4axcp5l5qyy****', 'title' => ''], + ], + [ + 'name' => 'InternetChargeType', + 'in' => 'query', + 'schema' => ['description' => 'The billable methods for IPv6 Internet bandwidth. Valid values:'."\n" + ."\n" + .''."\n" + ."\n" + .'- **PayByTraffic**: pay-by-data-transfer.'."\n" + .'- **PayByBandwidth** (default): pay-by-bandwidth.'."\n" + .'- **PayByOld95**: traditional 95th percentile billing. IPv6 Internet bandwidth does not support traditional 95th percentile billing by default. To use this billing method, contact your account manager.'."\n" + ."\n" + .''."\n" + .''."\n" + ."\n" + .'- **PayByTraffic**: pay-by-data-transfer.'."\n" + .'- **PayByBandwidth** (default): pay-by-bandwidth.'."\n" + ."\n" + .'', 'type' => 'string', 'required' => false, 'example' => 'PayByBandwidth', 'title' => ''], + ], + [ + 'name' => 'Bandwidth', + 'in' => 'query', + 'schema' => ['description' => 'The Internet bandwidth of the IPv6 address. Unit: Mbit/s.'."\n" + ."\n" + .''."\n" + ."\n" + .'- If **InternetChargeType** is set to **PayByTraffic**, the valid values are **1** to **1000**.'."\n" + .'- If **InternetChargeType** is set to **PayByBandwidth**, the valid values are **1** to **2000**.'."\n" + .'- If **InternetChargeType** is set to **PayByOld95**, the valid values are **1** to **2000**.'."\n" + ."\n" + .''."\n" + .''."\n" + .' '."\n" + .'- If **InternetChargeType** is set to **PayByTraffic**, the valid values are **1** to **1000**.'."\n" + .'- If **InternetChargeType** is set to **PayByBandwidth**, the valid values are **1** to **2000**.'."\n" + ."\n" + .'', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '200', 'title' => ''], ], [ 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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.'."\n" - ."\n" - .'> 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.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-426655440000', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'You can use the client to generate the token, but you must make sure that the token is unique among different requests. The ClientToken value can contain only ASCII characters.'."\n" + ."\n" + .'> If you do not specify this parameter, the system uses the **RequestId** of the API request as the **ClientToken**. The **RequestId** may be different for each API request.', 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-426655440000', 'title' => ''], + ], + [ + 'name' => 'DryRun', + 'in' => 'query', + 'schema' => ['description' => 'Specifies whether to perform a dry run. Valid values:'."\n" + ."\n" + .'- **true**: performs a dry run without associating the route table. The system checks the AccessKey pair, the authorization of the Resource Access Management (RAM) user, and the required parameters. If the check fails, the corresponding error is returned. If the check succeeds, the error code `DryRunOperation` is returned.'."\n" + ."\n" + .'- **false** (default): sends a Normal request, and after the check succeeds, a 2xx HTTP status code is returned and the routing associate a prefix list with a route table is performed.', 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => 'The request ID.'."\n", 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B45', - ], + 'Ipv6AddressId' => ['description' => 'The ID of the IPv6 address.', 'type' => 'string', 'example' => 'ipv6-2zen5j4axcp5l5qyy****', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '6972A26E-99B1-4367-9890-FBDEBB0F5E7D', 'title' => ''], + 'InternetBandwidthId' => ['description' => 'The instance ID of the Internet bandwidth associated with the IPv6 gateway after Internet bandwidth is allocated.', 'type' => 'string', 'example' => 'ipv6bw-uf6hcyzu65v98v3du****', 'title' => ''], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'IncorrectVpcStatus', - 'errorMessage' => 'Current VPC status does not support this operation.', - ], - [ - 'errorCode' => 'Forbidden.EnableClassicLink', - 'errorMessage' => 'the specified resource does not support this operation.', - ], - [ - 'errorCode' => 'RouteConflict.AlreadyExist', - 'errorMessage' => 'Route conflict exists in routing table.', - ], - [ - 'errorCode' => 'InvalidRegionId.NotFound', - 'errorMessage' => 'Specified value of "regionId" is not supported.', - ], - [ - 'errorCode' => 'OperationFailed.RouteConflict', - 'errorMessage' => 'Operation failed because a specified route entry is already exist.', - ], + ['errorCode' => 'IllegalParam.Bandwidth', 'errorMessage' => 'The param of %s is illegal.', 'description' => 'Invalid Bandwidth value. See the API reference and specify a valid value.'], + ['errorCode' => 'MissingParam.Ipv6InstanceId', 'errorMessage' => 'The param of Ipv6InstanceId is missing.', 'description' => 'The error message returned because Ipv6InstanceId is not set.'], + ['errorCode' => 'InvalidIpv6Instance.NotFound', 'errorMessage' => 'The specified Ipv6AddressId or Ipv6InternetBandwidthId is not found.', 'description' => ''], + ['errorCode' => 'IllegalParam.ChargeType', 'errorMessage' => 'The param of %s is illegal.', 'description' => 'Invalid ChargeType value. See the API reference and specify a valid value.'], + ['errorCode' => 'IllegalParam.InternetChargeType', 'errorMessage' => 'The param of %s is illegal.', 'description' => 'Invalid InternetChargeType value. See the API reference and specify a valid value.'], + ['errorCode' => 'OperationUnsupported.PrePaid', 'errorMessage' => '%s is unsupported.', 'description' => 'IPv6 Internet bandwidth does not support the subscription billing method. Change the billing method.'], + ['errorCode' => 'OperationFailed.Ipv6GatewayDisMatchIpv6Address', 'errorMessage' => 'The operation is failed because of %s.', 'description' => 'The IPv6 address and IPv6 gateway do not belong to the same VPC.'], + ['errorCode' => 'OperationFailed.InternetBandwidthAlreadyExisted', 'errorMessage' => 'The operation is failed because of %s.', 'description' => 'Internet bandwidth is already enabled for the IPv6 address.'], + ['errorCode' => 'OperationFailed.Ipv6GatewayNotExist', 'errorMessage' => 'The operation is failed because of %s.', 'description' => 'No IPv6 gateway exists in the VPC to which the IPv6 address belongs. Create an IPv6 gateway and try again.'], + ['errorCode' => 'IncorrectStatus.Ipv6Instance', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => 'The IPv6 address is in an unstable state. Try again later.'], + ['errorCode' => 'IllegalParam.Ipv6Address', 'errorMessage' => 'The param of %s is illegal.', 'description' => 'The IPv6 address is invalid.'], + ['errorCode' => 'UnsupportedFeature.InternetChargeTypeOnFreeIpv6Address', 'errorMessage' => 'The feature of %s is not supported.', 'description' => 'The status of the IPv6 address does not support the billing method. For more information, see the API reference.'], + ['errorCode' => 'UnsupportedFeature.InternetChargeTypeOnStaticIsp', 'errorMessage' => 'The feature of %s is not supported.', 'description' => 'The IPv6 address is of the single ISP type and does not support the billing method.'], + ['errorCode' => 'OperationUnsupported.ULA', 'errorMessage' => '%s is unsupported.', 'description' => 'This operation does not support ULA addresses.'], + ['errorCode' => 'OperationFailed.OpenCdtServiceFirst', 'errorMessage' => 'The operation is failed because of %s.', 'description' => 'The billing method requires CDT billing enabled. Enable CDT billing and try again.'], + ['errorCode' => 'OperationFailed.UpgradeCdtServiceFirst', 'errorMessage' => 'The operation is failed because of cdt is not upgraded.', 'description' => 'The instance type you specified to purchase needs to be upgraded to CDT billing. Upgrade CDT and try again'], + ['errorCode' => 'OperationUnsupported.PrivateGUA', 'errorMessage' => 'This operation does not support private GUA addresses.', 'description' => 'This operation does not support private GUA addresses.'], + ['errorCode' => 'OperationDenied.UnSupportedBindTypeCloudInstance', 'errorMessage' => 'Internet bandwidth cannot be allocated to the IPv6 address bound to the cloud service instance.', 'description' => 'the ipv6 ip address associated with the cloud service instance cannot be used for internet bandwidth.'], ], 404 => [ - [ - 'errorCode' => 'InvalidVpcId.NotFound', - 'errorMessage' => 'Specified VPC does not exist.', - ], + ['errorCode' => 'ResourceNotFound.Ipv6Address', 'errorMessage' => 'The specified resource of %s is not found.', 'description' => 'The IPv6 address is not found.'], + ], + ], + 'staticInfo' => ['returnType' => 'asynchronous', 'callback' => 'Vpc::2016-04-28::DescribeIpv6Addresses', 'callbackInterval' => 3, 'maxCallbackTimes' => 10], + 'title' => 'Allocate internet bandwidth for an iPv6 address', + 'summary' => 'Allocates Internet bandwidth to an IPv6 address in a VPC to enable Internet communication. After the bandwidth is allocated, the IPv6 address can both initiate outbound connections to the Internet and receive inbound connections from the Internet.', + 'description' => '- You can allocate Internet bandwidth for the following types of IPv6 addresses:'."\n" + .' - IPv6 addresses assigned to elastic network interfaces (ENIs) of ECS instances.'."\n" + .' - Unassociated IPv6 addresses that are not attached to any resource instance.'."\n" + .'- Before you call this operation, make sure that the target IPv6 address already exists. This means that an ECS instance in the VPC has been assigned an IPv6 address, or an unassociated IPv6 address has been created by calling [AllocateIpv6Address](https://www.alibabacloud.com/help/en/vpc/developer-reference/api-vpc-2016-04-28-allocateipv6address).'."\n" + .'- After the bandwidth is allocated, the IPv6 address can both initiate outbound connections to the Internet and receive inbound connections from the Internet. To allow only outbound Internet access, call [CreateIpv6EgressOnlyRule](https://www.alibabacloud.com/help/en/ipv6-gateway/developer-reference/api-vpc-2016-04-28-createipv6egressonlyrule-ipv6s)'."\n" + .' to configure an IPv6 egress-only rule.'."\n" + .'- The **AllocateIpv6InternetBandwidth** operation does not support concurrent purchases of Internet bandwidth for the same IPv6 address.'."\n" + .'- Scenarios:'."\n" + .' - Public network access for ECS instances: Enables ECS instances to access the Internet or provide services over IPv6.'."\n" + .' - Unassociated Public network access: Works with IPv6 gateway route tables to route Internet traffic to on-premises IDCs.'."\n" + .' - Outbound-only communication: Works with CreateIpv6EgressOnlyRule to allow only outbound access and reject inbound connections from the Internet.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2025-04-29T08:20:51.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-07-24T09:40:23.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2023-12-08T08:53:53.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-08-30T03:22:02.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-08-03T05:30:57.000Z', 'description' => 'Error codes changed'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'AllocateIpv6InternetBandwidth'], ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], ], - 'staticInfo' => [ - 'noSubstitutionReason' => '无替代API,历史原因导致该API被标记为弃用。', + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'vpc:AllocateIpv6InternetBandwidth', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'Ipv6InternetBandwidth', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:ipv6bandwidth/*'], + ], + ], + ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B45\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 54B48E3D-DF70-471B-AA93-08E683A1B45\\n","errorExample":""}]', - 'title' => 'EnableVpcClassicLink', + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Ipv6AddressId\\": \\"ipv6-2zen5j4axcp5l5qyy****\\",\\n \\"RequestId\\": \\"6972A26E-99B1-4367-9890-FBDEBB0F5E7D\\",\\n \\"InternetBandwidthId\\": \\"ipv6bw-uf6hcyzu65v98v3du****\\"\\n}","type":"json"}]', ], - 'DisableVpcClassicLink' => [ - 'summary' => 'Disables ClassicLink for a VPC.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'AllocateVpcIpv6Cidr' => [ + 'summary' => 'Reserves an IPv6 CIDR block.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'readAndWrite', - 'deprecated' => true, - 'systemTags' => [ - 'operationType' => 'update', - 'riskType' => 'none', - 'chargeType' => 'free', - ], + 'systemTags' => ['operationType' => 'none', 'riskType' => 'none', 'chargeType' => 'free', 'autoTest' => true, 'tenantRelevance' => 'publicInformation'], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the VPC for which you want to disable ClassicLink.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The region ID of the VPC.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'VpcId', + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request. 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.'."\n" + ."\n" + .'> 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.'."\n", 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-426655440000', 'title' => ''], + ], + [ + 'name' => 'Ipv6Isp', + 'in' => 'query', + 'schema' => ['description' => 'The type of IPv6 CIDR block. Valid values:'."\n" + ."\n" + .'* **BGP** (default)'."\n" + .'* **ChinaMobile**'."\n" + .'* **ChinaUnicom**'."\n" + .'* **ChinaTelecom**'."\n" + ."\n" + .'> '."\n" + ."\n" + .'* If your Alibaba Cloud account is allowed to use single-ISP bandwidth, valid values are: **ChinaTelecom**, **ChinaUnicom**, and **ChinaMobile**.'."\n" + ."\n" + .'* You can reserve only one IPv6 CIDR block of each type. After a reserved IPv6 CIDR block of a type is allocated to a VPC, you can reserve another IPv6 CIDR of the type.'."\n", 'type' => 'string', 'required' => false, 'example' => 'BGP', 'title' => ''], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => ['description' => 'The region ID of the VPC.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], + ], + [ + 'name' => 'AddressPoolType', + 'in' => 'query', + 'schema' => ['description' => 'The type of the IPv6 address pool. Set the value to **custom**.'."\n" + ."\n" + .'> This parameter is required.'."\n", 'type' => 'string', 'required' => false, 'example' => 'custom', 'title' => ''], + ], + [ + 'name' => 'Ipv6CidrBlock', 'in' => 'query', + 'schema' => ['description' => 'The IPv6 CIDR block that you want to reserve.'."\n", 'type' => 'string', 'required' => false, 'example' => '2408:XXXX:0:a600::/56', 'title' => ''], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => 'The ID of the VPC for which you want to disable ClassicLink.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'vpc-bp1m7v25emi1h5mtc****', + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'Ipv6CidrBlock' => ['description' => 'The IPv6 CIDR block that is reserved.'."\n", 'type' => 'string', 'example' => '2408:XXXX:0:a600::/56', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => 'D20C13EA-2584-53BC-8393-69DE6D98EFF1', 'title' => ''], + ], + 'title' => '', + 'example' => '', ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'OperationUnsupported.Ipv6Feature', 'errorMessage' => 'The IPv6 feature is not supported in the region.', 'description' => 'This region does not support IPv6.'], + ['errorCode' => 'UnsupportedFeature.Ipv6Isp', 'errorMessage' => 'The Ipv6Isp feature is not supported.', 'description' => 'The specified IPv6 ISP is not supported.'], + ['errorCode' => 'IllegalParam.AddressPoolType', 'errorMessage' => 'The specified addressPoolType is invalid.', 'description' => 'The specified address pool type is invalid.'], + ['errorCode' => 'ResourceNotEnough.Ipv6Cidr', 'errorMessage' => 'The specified resource ipv6 cidr is not enough.', 'description' => 'Insufficient IPv6 CIDR block resources.'], + ['errorCode' => 'IllegalParam.Ipv6Cidr', 'errorMessage' => 'The specified Ipv6CidrBlock is invalid.', 'description' => 'Ipv6CidrBlock is set to an invalid value.'], + ['errorCode' => 'Unavailable.Ipv6Cidr', 'errorMessage' => 'The specified resource ipv6 cidr is not available.', 'description' => 'The specified IPv6 CIDR block is unavailable.'], + ['errorCode' => 'IllegalParam.CidrBlock', 'errorMessage' => 'The param of cidrBlock is illegal.', 'description' => 'The error message returned because the value of the cidrBlock parameter is invalid.'], + ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'AllocateVpcIpv6Cidr', + 'description' => '# [](#)'."\n" + ."\n" + .'The following section describes how to allocate an IPv6 CIDR block to a virtual private cloud (VPC):'."\n" + ."\n" + .'1. Call the AllocateVpcIpv6Cidr operation to reserve the IPv6 CIDR block.'."\n" + .'2. To allocate an IPv6 CIDR block to an existing VPC, call the [AssociateVpcCidrBlock](~~146745~~) operation. Set **RegionId**, **VpcId**, and **IPv6CidrBlock** to the IPv6 CIDR bock, and set **IpVersion** to **ipv6**. To allocate an IPv6 CIDR block when you create a VPC, call the [CreateVpc](~~35737~~) operation. Set **RegionId** and **Ipv6CidrBlock** to the IPv6 CIDR block, and set **EnableIpv6** to **true**.'."\n", + 'changeSet' => [ + ['createdAt' => '2023-07-20T03:51:36.000Z', 'description' => 'Error codes changed'], + ], + 'ramActions' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Ipv6CidrBlock\\": \\"2408:XXXX:0:a600::/56\\",\\n \\"RequestId\\": \\"D20C13EA-2584-53BC-8393-69DE6D98EFF1\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 2408:XXXX:0:a600::/56\\n D20C13EA-2584-53BC-8393-69DE6D98EFF1\\n","errorExample":""}]', + ], + 'ApplyPhysicalConnectionLOA' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'deprecated' => false, + 'systemTags' => ['operationType' => 'update'], + 'parameters' => [ + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'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.'."\n" + ."\n" + .'> 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.'."\n", 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-426655440000', 'title' => ''], + ], [ 'name' => 'ClientToken', 'in' => 'query', + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'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.'."\n" + ."\n" + .'> 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.'."\n", 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-426655440000', 'title' => ''], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => ['description' => 'The region ID of the Express Connect circuit.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], + ], + [ + 'name' => 'Bandwidth', + 'in' => 'query', + 'schema' => ['description' => 'The bandwidth of the Express Connect circuit. Unit: Mbit/s.'."\n" + ."\n" + .'Valid values: **2** to **10240**.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '3', 'default' => '100', 'title' => ''], + ], + [ + 'name' => 'PeerLocation', + 'in' => 'query', + 'schema' => ['description' => 'The geographic location where the Express Connect circuit is deployed.'."\n", 'type' => 'string', 'required' => false, 'example' => '杭州', 'title' => ''], + ], + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => ['description' => 'The ID of the Express Connect circuit.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'pc-bp1qrb3044eqi****', 'title' => ''], + ], + [ + 'name' => 'CompanyName', + 'in' => 'query', + 'schema' => ['description' => 'The name of the customer company that requires the Express Connect circuit.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'company', 'title' => ''], + ], + [ + 'name' => 'LineType', + 'in' => 'query', + 'schema' => ['description' => 'The type of the Express Connect circuit. Valid values:'."\n" + ."\n" + .'* **MSTP**: MSTP line'."\n" + .'* **MPLSVPN**: MPLSVPN line'."\n" + .'* **FIBRE**: fiber line'."\n" + .'* **Other**: other types'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'FIBRE', 'title' => ''], + ], + [ + 'name' => 'Si', + 'in' => 'query', + 'schema' => ['description' => 'The construction company.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '阿里', 'title' => ''], + ], + [ + 'name' => 'ConstructionTime', + 'in' => 'query', + 'schema' => ['description' => 'The time when construction started. Specify the time in the ISO 8601 standard in the YYYY-MM-DDThh:mm:ssZ format. The time is displayed in UTC.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '2022-02-28T16:00:00Z', 'title' => ''], + ], + [ + 'name' => 'PMInfo', + 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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.'."\n" - ."\n" - .'> 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.'."\n", - 'type' => 'string', + 'description' => 'The information about the construction engineer.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'PMCertificateNo' => ['description' => 'The ID number of the construction engineer. You can specify the ID number of an ID card or an international passport.'."\n" + ."\n" + .'You can configure information for up to 16 construction engineers.'."\n", 'type' => 'string', 'required' => false, 'docRequired' => true, 'example' => '5****************9', 'title' => ''], + 'PMName' => ['description' => 'The name of the construction engineer.'."\n", 'type' => 'string', 'required' => false, 'docRequired' => true, 'example' => '张三', 'title' => ''], + 'PMCertificateType' => ['description' => 'The type of the identity document of the construction engineer. Valid values:'."\n" + ."\n" + .'* **IDCard**'."\n" + .'* **Passport**'."\n", 'type' => 'string', 'required' => false, 'docRequired' => true, 'example' => 'IDCard', 'title' => ''], + 'PMGender' => ['description' => 'The gender of the construction engineer.'."\n", 'type' => 'string', 'required' => false, 'docRequired' => true, 'example' => 'Male', 'title' => ''], + 'PMContactInfo' => ['description' => 'The contact information about the construction engineer.'."\n", 'type' => 'string', 'required' => false, 'docRequired' => true, 'example' => '1390000****', 'title' => ''], + ], + 'required' => false, + 'docRequired' => true, + 'title' => '', + 'example' => '', + ], 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-426655440000', + 'maxItems' => 16, + 'title' => '', + 'example' => '', ], ], ], 'responses' => [ 200 => [ + 'headers' => [], 'schema' => [ - 'description' => 'The request ID.'."\n", 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B45', - ], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => 'A47BD386-7FDE-42C4-8D22-C6223D18AA1C', 'title' => ''], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidAction', - 'errorMessage' => 'The VPC has been connected to the classic network ECS. Please cancel the connection before proceeding.', - ], - [ - 'errorCode' => 'IncorrectVpcStatus', - 'errorMessage' => 'Current VPC status does not support this operation.', - ], - [ - 'errorCode' => 'Forbbiden', - 'errorMessage' => 'the specified resource does not support this operation.', - ], - [ - 'errorCode' => 'InvalidRegionId.NotFound', - 'errorMessage' => 'Specified value of "regionId" is not supported.', - ], - [ - 'errorCode' => 'DependencyViolation.Instance', - 'errorMessage' => 'ClassicLink Instances exist in VPC.', - ], + ['errorCode' => 'MissingParam.AliUid', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'MissingParam.InstanceId', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'MissingParam.RegionNo', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'MissingParam.PMInfo', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'IllegalParam.LineOperator', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'IllegalParam.LineType', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'IllegalParam.PeerLocation', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'IllegalParam.PmCertificateType', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'IllegalParam.PmCertificateNo', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'IllegalParam.PmContactInfo', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'IllegalParam.PmGender', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'IllegalParam.PmName', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'IllegalParam.Si', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'InvalidConstructionTime.Malformed', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'InvalidInstanceId.NotFound', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'IncorrectStatus.PhysicalConnectionLOA', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'IncorrectStatus.PhysicalConnection', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'IllegalParam.CompanyName', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'OperationFailed.PconnTrafficNotEnable', 'errorMessage' => 'The operation is failed because of PconnTrafficNotEnable.', 'description' => 'Billing for outbound data transfer is disabled.'], + ['errorCode' => 'IllegalParam.Bandwidth', 'errorMessage' => 'The param of bandwidth is illegal.', 'description' => 'The Bandwidth parameter is set to an invalid value.'], ], - 403 => [ - [ - 'errorCode' => 'Forbbiden', - 'errorMessage' => 'User not authorized to operate on the specified resource.', - ], + ], + 'title' => 'ApplyPhysicalConnectionLOA', + 'summary' => 'Applies for a Letter of Authorization (LOA) for an Express Connect circuit.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2021-11-17T10:03:13.000Z', 'description' => 'Request parameters changed'], + ], + 'ramActions' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"A47BD386-7FDE-42C4-8D22-C6223D18AA1C\\"\\n}","errorExample":""},{"type":"xml","example":"\\n A47BD386-7FDE-42C4-8D22-C6223D18AA1C\\n","errorExample":""}]', + ], + 'AssociateEipAddress' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], ], + ], + 'operationType' => 'readAndWrite', + 'systemTags' => ['operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'paid'], + 'parameters' => [ [ - [ - 'errorCode' => 'InvalidVpcId.NotFound', - 'errorMessage' => 'Specified VPC does not exist.', - ], + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => ['description' => 'The region ID of the EIP to be associated with a cloud resource instance.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the region ID.', 'type' => 'string', 'required' => false, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'The request processing has failed due to some unknown error.', - ], + [ + 'name' => 'AllocationId', + 'in' => 'query', + 'schema' => ['description' => 'The ID of the EIP to be associated with a cloud resource instance.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'eip-2zeerraiwb7ujsxdc****', 'title' => ''], + ], + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => ['description' => 'The instance ID of the instance to be associated with the EIP.'."\n" + ."\n" + .'You can enter the instance ID of an Internet NAT gateway, a Classic Load Balancer (CLB) instance, an ECS instance, a secondary elastic network interface (ENI), a high-availability virtual IP address (HAVIP), or an IP address.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'i-2zebb08phyczzawe****', 'title' => ''], + ], + [ + 'name' => 'InstanceType', + 'in' => 'query', + 'schema' => ['description' => 'The type of the instance to be associated with the EIP. Valid values:'."\n" + ."\n" + .'- **Nat**: Internet NAT gateway.'."\n" + ."\n" + .'- **SlbInstance**: Classic Load Balancer (CLB).'."\n" + ."\n" + .'- **EcsInstance** (default): Elastic Compute Service (ECS).'."\n" + ."\n" + .'- **NetworkInterface**: secondary elastic network interface (ENI).'."\n" + ."\n" + .'- **HaVip**: high-availability virtual IP address.'."\n" + ."\n" + .'- **IpAddress**: IP address.'."\n" + ."\n" + .'> The default instance type is **EcsInstance**. If the instance type is not **EcsInstance**, this parameter is required.', 'type' => 'string', 'required' => false, 'example' => 'EcsInstance', 'title' => ''], + ], + [ + 'name' => 'InstanceRegionId', + 'in' => 'query', + 'schema' => ['description' => 'The region ID of the instance to be associated with the EIP.'."\n" + ."\n" + .'> This parameter is required only after the EIP is added to a shared-bandwidth Alibaba Cloud Global Accelerator (GA) instance.', 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou', 'title' => ''], + ], + [ + 'name' => 'PrivateIpAddress', + 'in' => 'query', + 'schema' => ['description' => 'An IP address in the vSwitch CIDR block.'."\n" + ."\n" + .'If you do not specify this parameter, the system automatically assigns a private IP address based on the VPC ID and vSwitch ID.'."\n" + .'> If **InstanceType** is set to **NetworkInterface**, this parameter is required. Enter the private IP address to be associated.', 'type' => 'string', 'required' => false, 'example' => '192.168.XX.XX', 'title' => ''], + ], + [ + 'name' => 'Mode', + 'in' => 'query', + 'schema' => ['description' => 'The association mode. Valid values:'."\n" + ."\n" + .'- **NAT** (default): NAT mode (standard mode).'."\n" + ."\n" + .'- **MULTI_BINDED**: multi-EIP-to-ENI mode.'."\n" + ."\n" + .'- **BINDED**: EIP-to-ENI mode.'."\n" + ."\n\n" + .'> This parameter is required only when **InstanceType** is set to **NetworkInterface**.', 'type' => 'string', 'required' => false, 'example' => 'NAT', 'title' => ''], + ], + [ + 'name' => 'VpcId', + 'in' => 'query', + 'schema' => ['description' => 'The ID of the VPC that has the IPv4 gateway feature enabled and is in the same region as the EIP.'."\n" + ."\n" + .'When the EIP is associated with an IP address, the system uses the routing configuration of this VPC to enable public network access for the associated IP address.'."\n" + ."\n" + .'> This parameter is required when **InstanceType** is set to **IpAddress**.', 'type' => 'string', 'required' => false, 'example' => 'vpc-257gqcdfvx6n****', 'title' => ''], + ], + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'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.'."\n" + ."\n" + .'> If you do not specify this parameter, the system automatically uses the **RequestId** of the API request as the **ClientToken**. The **RequestId** may be different for each API request.', 'type' => 'string', 'required' => false, 'example' => '0c593ea1-3bea-11e9-b96b-88e9fe63****', 'title' => ''], ], ], - 'staticInfo' => [ - 'noSubstitutionReason' => '无替代API,历史原因导致该API被标记为弃用。', + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => 'The response parameters.', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '0ED8D006-F706-4D23-88ED-E11ED28DCAC0', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B45\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 54B48E3D-DF70-471B-AA93-08E683A1B45\\n","errorExample":""}]', - 'title' => 'DisableVpcClassicLink', - ], - 'DeletionProtection' => [ - 'summary' => 'Set the deletion protection feature for an instance.', - 'methods' => [ - 'post', - 'get', + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InvalidAssociation.Duplicated', 'errorMessage' => 'Specified instance already is associated.', 'description' => ''], + ['errorCode' => 'OperationDenied', 'errorMessage' => 'Specified instance is not in VPC.', 'description' => ''], + ['errorCode' => 'InvalidParameter.Mismatch', 'errorMessage' => 'Specified elastic IP address and ECS instance are not in the same region.', 'description' => ''], + ['errorCode' => 'IncorrectEipStatus', 'errorMessage' => 'Current elastic IP status does not support this operation', 'description' => ''], + ['errorCode' => 'IncorrectInstanceStatus', 'errorMessage' => 'Current instance status does not support this operation.', 'description' => ''], + ['errorCode' => 'InvalidInstanceType.ValueNotSupported', 'errorMessage' => 'The specified value of InstanceType is not supported.', 'description' => ''], + ['errorCode' => 'IncorrectHaVipStatus', 'errorMessage' => 'HaVip can be operated by this action only when it\'s status is Available or InUse.', 'description' => 'The operation supports only HAVIPs in the Available or InUse state.'], + ['errorCode' => 'InvalidParameter', 'errorMessage' => 'The specified parameter is not valid.', 'description' => ''], + ['errorCode' => 'InvalidBindingStatus', 'errorMessage' => 'The eip binding status invalid.', 'description' => ''], + ['errorCode' => 'BIND_INSTANCE_HAVE_PORTMAP_OR_BIND_EIP', 'errorMessage' => 'The instance may have portMap or already bind eip.', 'description' => 'The ECS instance already has a port forwarding rule (DNAT). Delete the corresponding port forwarding rule before performing the operation.'], + ['errorCode' => 'EIP_CAN_NOT_ASSOCIATE_WITH_PUBLIC_IP', 'errorMessage' => 'instance already bind natpublicip,cannot bind eip.', 'description' => ''], + ['errorCode' => 'BIND_INSTANCE_OWENER_ERROR', 'errorMessage' => 'Cannot operate the eip.', 'description' => ''], + ['errorCode' => 'NATGATEWAY_FINANCIALLOCKED', 'errorMessage' => 'The NatGateway has expire, cannot do bind operation.', 'description' => ''], + ['errorCode' => 'InvalidParameter.InstanceTypeNotSupport', 'errorMessage' => 'The specified instance type is not support.', 'description' => ''], + ['errorCode' => 'QuotaExceeded.NumberOfTrafficEip', 'errorMessage' => 'The number of traffic eip on natgw exceed limitation.', 'description' => ''], + ['errorCode' => 'QuotaExceeded.NumberOfEip', 'errorMessage' => 'Binded eip Quota exceed on this NatGw.', 'description' => 'The number of EIPs associated with the NAT gateway exceeds the upper limit.'], + ['errorCode' => 'Forbidden.EipCanNotBindGatgw', 'errorMessage' => 'Eip can not bind on natgw.', 'description' => ''], + ['errorCode' => 'InvalidAction.Denied', 'errorMessage' => 'Action is denied due to unfinished Eip configuration modification.', 'description' => 'The EIP configurations are not complete and the operation is denied.'], + ['errorCode' => 'InstanceType.NotSupport', 'errorMessage' => 'The instance type is invalid.', 'description' => ''], + ['errorCode' => 'InvalidParams.NotFound', 'errorMessage' => 'instance not found', 'description' => ''], + ['errorCode' => 'BindInstance.NotSupported', 'errorMessage' => 'bind instance type %s is not supported.', 'description' => ''], + ['errorCode' => 'Forbidden.InstanceBandwidthNotZero', 'errorMessage' => 'Eip can not bind with instance when it\'s bandwidth is not zero.', 'description' => ''], + ['errorCode' => 'INSTANCE_TYPE_NOT_SUPPORT', 'errorMessage' => 'The instance type is invalid.', 'description' => ''], + ['errorCode' => 'ServerRegion.Invalid', 'errorMessage' => 'Eip bind remote server region invalid.', 'description' => ''], + ['errorCode' => 'Eni.Attached', 'errorMessage' => 'The eni should be detached from ecs when associating with direct eip.', 'description' => 'If the ENI is associated with an EIP in cut-through mode, you must disassociate the ENI from the ECS instance.'], + ['errorCode' => 'Eni.HasSubIp', 'errorMessage' => 'Eni has sub ip can not bind direct eip.', 'description' => ''], + ['errorCode' => 'Invalid.DirectEip.BindType', 'errorMessage' => 'The direct eip can be only associated with eni.', 'description' => ''], + ['errorCode' => 'InvalidStatus.EcsStatusNotSupport', 'errorMessage' => 'The special instance status is not support operate', 'description' => ''], + ['errorCode' => 'Invalid.Function.NotSupported', 'errorMessage' => 'Multi-IP function is under test, the region or uid is not supported.', 'description' => ''], + ['errorCode' => 'InvalidStatus.EniStatusNotSupport', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'InvalidParameter.EniInstanceId', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'InvalidNexthop.DirectEni', 'errorMessage' => 'The direct Eni cannot be nexthop.', 'description' => 'An ENI in cut-through mode cannot be specified as a next hop.'], + ['errorCode' => 'Mode.Conflict', 'errorMessage' => 'The eni can bind only one mode of eip.', 'description' => ''], + ['errorCode' => 'Mode.NotSupport', 'errorMessage' => 'The user cannot use multi direct eip.', 'description' => ''], + ['errorCode' => 'QuotaExceed.MultiBindedEip', 'errorMessage' => 'The number of multi binded eip is over limit.', 'description' => 'the number of multi-passthrough mode eips that can be bound exceeds the limit.'], + ['errorCode' => 'InvalidEIPStatus.BizDisabled', 'errorMessage' => 'The EIP has been locked.', 'description' => 'The error message returned because the EIP is locked.'], + ['errorCode' => 'OperationFailed.EniSubIp', 'errorMessage' => 'Eni has sub ip can not bind direct eip.', 'description' => ''], + ['errorCode' => 'InvalidEip.EipQuotaExceeded', 'errorMessage' => 'The specified eni assigned eip is more than privateIp.', 'description' => ''], + ['errorCode' => 'OperationUnsupported.MultiIp', 'errorMessage' => 'Multi ip function is not support.', 'description' => ''], + ['errorCode' => 'InvalidNicOrVm.NotFound', 'errorMessage' => 'Bind nic or vm not exist.', 'description' => 'The bound NIC or VM does not exist.'], + ['errorCode' => 'OperationUnsupported.EipBindModel', 'errorMessage' => 'The instance type of ecs does not support MULTI_BINDED model Eip.', 'description' => ''], + ['errorCode' => 'IncorrectStatus.NatGateway', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'EipBindRemote.BackendRegionMustBeSingle', 'errorMessage' => 'eip bind remote instance, backend region must be single', 'description' => ''], + ['errorCode' => 'InvalidParameter.BindingInstanceRegion', 'errorMessage' => 'The specified BindingInstanceRegion is not supported.', 'description' => ''], + ['errorCode' => 'OperationFailed.HavipBoundPortmap', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'IllegalParam.Mode', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'InvalidStatus.NotAllow', 'errorMessage' => 'Bind instance status invalid', 'description' => 'The status of the associated instance is invalid.'], + ['errorCode' => 'InvalidInstance.NotExist', 'errorMessage' => 'Bind instance data not exist', 'description' => ''], + ['errorCode' => 'InvalidBandwidthPackageId.NotFound', 'errorMessage' => 'The specified BandwidthPackageId not exist.', 'description' => ''], + ['errorCode' => 'InvalidStatus.InstanceHasBandWidth', 'errorMessage' => 'The specified instance bandwidth invalid.', 'description' => ''], + ['errorCode' => 'OperationDenied.CloudBoxResourceExist', 'errorMessage' => 'The operation is not allowed because there are resources related to the cloud box in VPC.', 'description' => 'The operation is not allowed because CloudBox-related resources exist in the VPC.'], + ['errorCode' => 'OperationDenied.CloudBoxVSwitchExist', 'errorMessage' => 'The operation is not allowed because a cloud box type vSwitch exists in VPC.', 'description' => 'The operation is not allowed because vSwitches of the CloudBox type exist in the VPC.'], + ['errorCode' => 'OperationDenied.NoAvailablePrivateIp', 'errorMessage' => 'The operation is failed because of vSwitch has not availalbe private ip', 'description' => 'The vSwitch does not have sufficient private IP addresses.'], + ['errorCode' => 'ResourceAlreadyAssociated.IpAddress', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'OperationFailed.Ipv4GatewayNotOpenedInVpc', 'errorMessage' => 'The operation is failed because Ipv4Gateway is not opened in Vpc.', 'description' => 'The error message returned because the VPC does not have IPv4 gateways enabled and the IP address failed to be associated with the EIP.'], + ['errorCode' => 'OperationFailed.Ipv4GatewayNotActivatedInVpc', 'errorMessage' => 'The operation is failed because Ipv4Gateway is not activated in Vpc.', 'description' => ''], + ['errorCode' => 'OperationDenied.L2EipBindIpAddress', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'Forbidden', 'errorMessage' => 'The eip instance owner error', 'description' => 'The EIP does not belong to your account. Check whether you are authorized to perform the operation on the EIP.'], + ['errorCode' => 'Forbidden.FinancialLocked', 'errorMessage' => 'The ip business status is invalid.', 'description' => 'The error message returned because the instance has overdue payments.'], + ['errorCode' => 'UnsupportedFeature.EipBindIpAddress', 'errorMessage' => 'The feature of EipBindIpAddress is not supported.', 'description' => 'The error message returned because the EIP does not support the IpAddress parameter.'], + ['errorCode' => 'OperationFailed.InstanceNotExist', 'errorMessage' => 'The ECS instance does not exist, or is not a VPC VM.', 'description' => 'The EIP failed to be associated with the ECS instance because the ECS instance does not exist or is not a VPC virtual machine.'], + ['errorCode' => 'OperationDenied.Ipv4GatewayExist', 'errorMessage' => 'The operation is not allowed because of Ipv4GatewayExist.', 'description' => ''], + ['errorCode' => 'OperationFailed.EipBindModeConflict', 'errorMessage' => 'Eips can not bind Eni with NAT mode and MULTI_BINDED mode at the same time.', 'description' => ''], + ['errorCode' => 'OperationFailed.EcsMigrating', 'errorMessage' => 'The operation is failed because of ECS is migrating.', 'description' => ''], + ['errorCode' => 'OperationFailed.IpPrefixConflict', 'errorMessage' => 'The operation failed due to the IP prefix of the ENI.', 'description' => 'The operation conflicts with the IP address prefix of the ENI.'], + ['errorCode' => 'UnsupportedFeature.EipBindPrefixIp', 'errorMessage' => 'The feature of EipBindPrefixIp is not supported.', 'description' => 'You cannot associate an EIP with a prefix list in the current region.'], + ['errorCode' => 'OperationDenied.UnsupportedEipBindMode', 'errorMessage' => 'The operation is not supported for the NAT gateway due to its EIP binding mode.', 'description' => 'The operation is not supported by the EIP binding mode of the NAT gateway.'], + ['errorCode' => 'OperationDenied.Unauthorized', 'errorMessage' => 'The operation is not allowed because the user is not in the whitelist.', 'description' => 'The operation is not allowed because you are not in the whitelist.'], + ['errorCode' => 'OperationFailed.SystemBusy', 'errorMessage' => 'Operation failed because system is busy.', 'description' => 'The error message returned because the system is busy. Try again later.'], + ['errorCode' => 'OperationFailed.PrivateIpAddressNotExist', 'errorMessage' => 'The operation failed because the PrivateIpAddress is not found.', 'description' => 'The specified private IP address is invalid.'], + ['errorCode' => 'IllegalParamFormat.%s', 'errorMessage' => 'The param format of %s is illegal.', 'description' => 'The parameter mode is invalid.'], + ['errorCode' => 'MissingParam.InstanceId', 'errorMessage' => 'The param of InstanceId can\'t be null or empty.', 'description' => 'InstanceId cannot be empty'], + ['errorCode' => 'InvalidEniType.SlaveEni', 'errorMessage' => 'The eni type cannot be slave eni.', 'description' => 'The ENI type cannot be a secondary ENI.'], + ['errorCode' => 'IllegalParam.PrivateIpAddress', 'errorMessage' => 'The specified PrivateIpAddress is illegal.', 'description' => 'The specified PrivateIpAddress is invalid. Check the parameter constraints and try again after modification.'], + ['errorCode' => 'OperationFailed.Ipv4GatewayNotAssociatedWithGatewayRouteTable', 'errorMessage' => 'The operation failed because the specified IPv4 gateway of the VPC is not associated with any gateway route table.', 'description' => 'The operation failed because the specified IPv4 gateway of the VPC is not associated with any gateway route table.'], + ], + 404 => [ + ['errorCode' => 'InvalidAllocationId.NotFound', 'errorMessage' => 'Specified allocation ID is not found.', 'description' => ''], + ['errorCode' => 'InvalidInstanId.NotFound', 'errorMessage' => 'Specified instance does not exist.', 'description' => ''], + ['errorCode' => 'Forbidden.RegionNotFound', 'errorMessage' => 'Specified instance is not found during access authentication.', 'description' => 'The error message returned because the region is not supported.'], + ['errorCode' => 'OperationDenied.VpcIpv4GatewayEnabled', 'errorMessage' => 'The operation is not allowed because of the VPC of the NAT gateway has opened IPv4 Gateway.', 'description' => 'IPv4 gateways are enabled for the VPC where the NAT gateway resides and the operation is denied.'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'title' => 'Associate an EIP with a cloud resource instance', + 'summary' => 'Associates an elastic IP address (EIP) with a cloud resource instance in the same region.', + 'description' => '- An EIP can be associated with a virtual private cloud (VPC)-type ECS instance, a VPC-type CLB instance, a secondary elastic network interface (ENI), an Internet NAT gateway, or a high-availability virtual IP address (HAVIP) in the same region.'."\n" + ."\n" + .'- The **AssociateEipAddress** operation is asynchronous. After you send a request, the system returns a request ID, but the association between the EIP and the cloud resource instance is not yet complete. The association task continues to run in the background. You can invoke [DescribeEipAddresses](~~120193~~) to query the status of the EIP:'."\n" + .' - If the EIP is in the **Associating** state, the EIP is being associated. In this state, you can only execute query operations.'."\n" + .' - If the EIP is in the **InUse** state, the EIP is associated.'."\n" + .'- The **AssociateEipAddress** operation does not support concurrent requests to associate the same EIP with cloud resource instances.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2024-11-18T12:37:19.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-09-25T09:29:56.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-12-13T12:53:05.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-08-24T02:14:03.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-06-26T06:23:13.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-03-23T06:18:19.000Z', 'description' => 'Error codes changed, Response parameters changed'], + ['createdAt' => '2022-12-05T09:33:00.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2022-12-05T06:59:06.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2022-11-29T10:25:33.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2022-11-17T11:38:45.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2022-11-14T06:28:04.000Z', 'description' => 'Error codes changed, Request parameters changed'], + ['createdAt' => '2022-08-29T01:43:30.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2022-01-12T03:51:55.000Z', 'description' => 'Error codes changed, Request parameters changed'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'AssociateEipAddress'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], + ], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:AssociateEipAddress', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'Address', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:eip/{#AllocationId}'], + ['validationType' => 'conditional', 'product' => 'VPC', 'resourceType' => 'NatGateway', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:natgateway/{#NatGatewayId}'], + ['validationType' => 'conditional', 'product' => 'VPC', 'resourceType' => 'Instance', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:instance/{#InstanceId}'], + ['validationType' => 'conditional', 'product' => 'VPC', 'resourceType' => 'Association', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:havip/{#HaVipId}'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"0ED8D006-F706-4D23-88ED-E11ED28DCAC0\\"\\n}","type":"json"}]', + ], + 'AssociateEipAddressBatch' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'readAndWrite', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'delete', - ], + 'systemTags' => ['operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region where the instance for which you want to enable deletion protection is deployed. You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The region ID of the EIPs to associate with the cloud service instance.'."\n" + ."\n" + .'You can call [DescribeRegions](~~36063~~) to query the region ID.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'ProtectionEnable', + 'name' => 'BindedInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to enable deletion protection. Valid values:'."\n" - ."\n" - .'* **true**: yes'."\n" - .'* **false**: no'."\n", - 'type' => 'boolean', - 'required' => true, - 'example' => 'true', - ], + 'schema' => ['description' => 'The ID of the cloud service instance to attach the EIPs to.'."\n" + ."\n" + .'You can specify the instance ID of an Internet NAT gateway instance or a secondary network interface controller (NIC) instance.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'ngw-hp3akk9irtd69jad****', 'title' => ''], ], [ - 'name' => 'Type', + 'name' => 'BindedInstanceType', 'in' => 'query', - 'schema' => [ - 'description' => 'The type of instance. Valid values:'."\n" - ."\n" - .'* **EIP**: Elastic IP Address (EIP)'."\n" - .'* **CBWP**: EIP bandwidth plan'."\n" - .'* **NATGW**: NAT gateway'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'EIP', - ], + 'schema' => ['description' => 'The type of the instance to attach the EIPs to. Valid values:'."\n" + .'- **Nat**: Internet NAT gateway.'."\n" + .'- **NetworkInterface**: secondary network interface controller (NIC).', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'Nat', 'title' => ''], ], [ - 'name' => 'InstanceId', + 'name' => 'Mode', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the instance for which you want to enable deletion protection.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'eip-uf6id7gvguruxe41v****', - ], + 'schema' => ['description' => 'The association mode. Set the value to **MULTI_BINDED**, which specifies the multi-EIP-to-ENI mode.'."\n" + ."\n" + .'This parameter is required only when **InstanceType** is set to **NetworkInterface**.', 'type' => 'string', 'required' => false, 'example' => 'MULTI_BINDED', 'title' => ''], ], [ - 'name' => 'ClientToken', + 'name' => 'InstanceIds', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + 'description' => 'The list of EIPs to associate with the cloud service instance.'."\n" ."\n" - .'You can use the client to generate the value, but you must make sure that it is unique among all requests. ClientToken can contain only ASCII characters.'."\n" + .'You must specify at least 1 EIP and can specify up to 50 EIPs.', + 'type' => 'array', + 'items' => ['description' => 'The ID of the EIP instance to associate with the cloud service instance.'."\n" ."\n" - .'> If you do not set this parameter, **ClientToken** is set to the value of **RequestId**. The value of **RequestId** may be different for each API request.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-426655440000 ', + .'You must specify at least 1 EIP instance ID and can specify up to 50 EIP instance IDs.', 'type' => 'string', 'required' => false, 'example' => 'eip-2zeerraiwb7ujsxdc**** ', 'title' => ''], + 'required' => true, + 'maxItems' => 50, + 'title' => '', + 'example' => '', ], ], [ - 'name' => 'RegionId', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region where the instance for which you want to enable deletion protection is deployed. You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'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.'."\n" + ."\n" + .'> If you do not specify this parameter, the system automatically uses the **RequestId** of the API request as the **ClientToken**. The **RequestId** may be different for each API request.', 'type' => 'string', 'required' => false, 'example' => '02fb3da4-130e-11e9-8e44-0016e04115b', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'description' => 'The response parameters.', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => 'BAAEF103-96C4-4454-9210-066F2405F511', - ], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B45', 'title' => ''], ], + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'DeletionProtection.ResourceNotExist', - 'errorMessage' => 'The resource is not exist.', - ], - [ - 'errorCode' => 'DeletionProtection.PrePaidNotSupport', - 'errorMessage' => 'The prepaid resource is not support.', - ], - [ - 'errorCode' => 'DeletionProtection.TypeNotSupport', - 'errorMessage' => 'The resource is not support.', - ], - [ - 'errorCode' => 'DeletionProtection.AlreadyEnabled', - 'errorMessage' => 'The resource deletion protection is already enabled.', - ], - [ - 'errorCode' => 'DeletionProtection.OwnerError', - 'errorMessage' => 'The resource owner error.', - ], + ['errorCode' => 'InvalidAssociation.Duplicated', 'errorMessage' => 'Specified instance already is associated.', 'description' => ''], + ['errorCode' => 'OperationDenied', 'errorMessage' => 'Specified instance is not in VPC.', 'description' => ''], + ['errorCode' => 'InvalidParameter.Mismatch', 'errorMessage' => 'Specified elastic IP address and ECS instance are not in the same region.', 'description' => ''], + ['errorCode' => 'IncorrectEipStatus', 'errorMessage' => 'Current elastic IP status does not support this operation', 'description' => ''], + ['errorCode' => 'IncorrectInstanceStatus', 'errorMessage' => 'Current instance status does not support this operation.', 'description' => ''], + ['errorCode' => 'InvalidInstanceType.ValueNotSupported', 'errorMessage' => 'The specified value of InstanceType is not supported.', 'description' => ''], + ['errorCode' => 'IncorrectHaVipStatus', 'errorMessage' => 'HaVip can be operated by this action only when it\'s status is Available or InUse.', 'description' => 'The operation supports only HAVIPs in the Available or InUse state.'], + ['errorCode' => 'InvalidParameter', 'errorMessage' => 'The specified parameter is not valid.', 'description' => ''], + ['errorCode' => 'Forbidden', 'errorMessage' => 'The eip instance owener error', 'description' => 'The EIP does not belong to your account. Check whether you have the permissions to perform the operation on the EIP.'], + ['errorCode' => 'TaskConflict', 'errorMessage' => 'The eip operate too frequent, TaskConflict.', 'description' => 'Operations are too frequent and tasks conflict with each other.'], + ['errorCode' => 'InvalidBindingStatus', 'errorMessage' => 'The eip binding status invalid.', 'description' => ''], + ['errorCode' => 'BIND_INSTANCE_HAVE_PORTMAP_OR_BIND_EIP', 'errorMessage' => 'The instance may have portMap or already bind eip.', 'description' => 'The ECS instance already has a port forwarding rule (DNAT). Delete the corresponding port forwarding rule before performing the operation.'], + ['errorCode' => 'EIP_CAN_NOT_ASSOCIATE_WITH_PUBLIC_IP', 'errorMessage' => 'instance already bind natpublicip,cannot bind eip.', 'description' => ''], + ['errorCode' => 'BIND_INSTANCE_OWENER_ERROR', 'errorMessage' => 'Cannot operate the eip.', 'description' => ''], + ['errorCode' => 'NATGATEWAY_FINANCIALLOCKED', 'errorMessage' => 'The NatGateway has expire, cannot do bind operation.', 'description' => ''], + ['errorCode' => 'InvalidParameter.InstanceTypeNotSupport', 'errorMessage' => 'The specified instance type is not support.', 'description' => ''], + ['errorCode' => 'QuotaExceeded.NumberOfTrafficEip', 'errorMessage' => 'The number of traffic eip on natgw exceed limitation.', 'description' => ''], + ['errorCode' => 'QuotaExceeded.NumberOfEip', 'errorMessage' => 'Binded eip Quota exceed on this NatGw.', 'description' => 'The number of EIPs associated with the NAT gateway exceeds the upper limit.'], + ['errorCode' => 'InvalidEipBandwidth.OutOfMaxValue', 'errorMessage' => 'The Eip Bandwidth is invalid.', 'description' => ''], + ['errorCode' => 'Forbidden.EipCanNotBindGatgw', 'errorMessage' => 'Eip can not bind on natgw.', 'description' => ''], + ['errorCode' => 'InvalidAction.Denied', 'errorMessage' => 'Action is denied due to unfinished Eip configuration modification.', 'description' => 'The EIP configurations are not complete and the operation is denied.'], + ['errorCode' => 'InstanceType.NotSupport', 'errorMessage' => 'The instance type is invalid.', 'description' => ''], + ['errorCode' => 'InvalidParams.NotFound', 'errorMessage' => 'instance not found', 'description' => ''], + ['errorCode' => 'BindInstance.NotSupported', 'errorMessage' => 'bind instance type %s is not supported.', 'description' => ''], + ['errorCode' => 'Forbidden.InstanceBandwidthNotZero', 'errorMessage' => 'Eip can not bind with instance when it\'s bandwidth is not zero.', 'description' => ''], + ['errorCode' => 'INSTANCE_TYPE_NOT_SUPPORT', 'errorMessage' => 'The instance type is invalid.', 'description' => ''], + ['errorCode' => 'ServerRegion.Invalid', 'errorMessage' => 'Eip bind remote server region invalid.', 'description' => ''], + ['errorCode' => 'Eni.Attached', 'errorMessage' => 'The eni should be detached from ecs when associating with direct eip.', 'description' => 'If the ENI is associated with an EIP in cut-through mode, you must disassociate the ENI from the ECS instance.'], + ['errorCode' => 'Invalid.DirectEip.BindType', 'errorMessage' => 'The direct eip can be only associated with eni.', 'description' => ''], + ['errorCode' => 'Invalid.Function.NotSupported', 'errorMessage' => 'Multi-IP function is under test, the region or uid is not supported.', 'description' => ''], + ['errorCode' => 'InvalidStatus.EniStatusNotSupport', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'InvalidParameter.EniInstanceId', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => '%s', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'EipBatchBind.TypeNotSupport', 'errorMessage' => 'eip batch bind type not support', 'description' => ''], + ['errorCode' => 'OperationFailed.RegionNotMatch', 'errorMessage' => 'The specified eip is not in this region', 'description' => ''], + ['errorCode' => 'InvalidEIPStatus.BizDisabled', 'errorMessage' => 'The EIP has been locked.', 'description' => 'The error message returned because the EIP is locked.'], + ['errorCode' => 'Forbidden.FinancialLocked', 'errorMessage' => 'The ip business status is invalid.', 'description' => 'The error message returned because the instance has overdue payments.'], + ['errorCode' => 'OperationDenied.Unauthorized', 'errorMessage' => 'The operation is not allowed because the user is not in the whitelist.', 'description' => 'The operation is not allowed because you are not in the whitelist.'], + ['errorCode' => 'OperationDenied.UnsupportedEipBindMode', 'errorMessage' => 'The operation is not supported for the NAT gateway due to its EIP binding mode.', 'description' => 'The operation is not supported by the EIP binding mode of the NAT gateway.'], + ['errorCode' => 'OperationDenied.Ipv4GatewayExist', 'errorMessage' => 'The operation is not allowed because of Ipv4GatewayExist.', 'description' => ''], ], 404 => [ - [ - 'errorCode' => 'InvalidAllocationId.NotFound', - 'errorMessage' => 'Specified allocation ID is not found', - ], - [ - 'errorCode' => 'DeletionProtection.NotExist', - 'errorMessage' => 'The resource deletion protection is not found', - ], + ['errorCode' => 'InvalidAllocationId.NotFound', 'errorMessage' => 'Specified allocation ID is not found.', 'description' => ''], + ['errorCode' => 'InvalidInstanId.NotFound', 'errorMessage' => 'Specified instance does not exist.', 'description' => ''], + ['errorCode' => 'Forbidden.RegionNotFound', 'errorMessage' => 'Specified instance is not found during access authentication.', 'description' => 'The error message returned because the region is not supported.'], + ['errorCode' => 'OperationDenied.VpcIpv4GatewayEnabled', 'errorMessage' => 'The operation is not allowed because of the VPC of the NAT gateway has opened IPv4 Gateway.', 'description' => 'IPv4 gateways are enabled for the VPC where the NAT gateway resides and the operation is denied.'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"BAAEF103-96C4-4454-9210-066F2405F511\\"\\n}","errorExample":""},{"type":"xml","example":"\\n BAAEF103-96C4-4454-9210-066F2405F511\\n","errorExample":""}]', - 'title' => 'DeletionProtection', - 'description' => 'After you enable deletion protection for an instance, you cannot delete the instance. You must disable deletion protection before you can delete the instance.', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'DescribeVpcs' => [ - 'summary' => 'Queries virtual private clouds (VPCs).', - 'methods' => [ - 'post', - 'get', + 'staticInfo' => ['returnType' => 'asynchronous', 'callback' => 'Vpc::2016-04-28::DescribeEipAddresses', 'callbackInterval' => 3000, 'maxCallbackTimes' => 10], + 'title' => 'Associate multiple eIPs with a cloud service instance in a batch', + 'summary' => 'Associates multiple elastic IP addresses (EIPs) with a cloud service instance in the same region in a batch.', + 'description' => '- **AssociateEipAddressBatch** associates multiple EIPs with a cloud service instance in a batch. This operation supports only batch attachment of EIPs to an Internet NAT gateway instance or a secondary network interface controller (NIC) instance in the same region. To associate an EIP with other cloud service instances, call [AssociateEipAddress](~~120195~~).'."\n" + .'- **AssociateEipAddressBatch** is an asynchronous operation. After you invoke this operation, the system returns a request ID, but the EIP instances are not yet attached to the cloud service instance. The attachment task continues to run in the background. You can invoke [DescribeEipAddresses](~~120193~~) to query the status of an EIP instance:'."\n" + .' - If the EIP instance is in the **Associating** state, the EIP instance is being attached. In this state, you can only execute query operations.'."\n" + .' - If the EIP instance is in the **InUse** state, the EIP instance is attached.'."\n" + .'- **AssociateEipAddressBatch** does not support concurrent attachment of the same EIP instance with cloud service instances.', + 'changeSet' => [ + ['createdAt' => '2023-06-26T06:23:09.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-05-15T06:29:29.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-03-23T06:18:19.000Z', 'description' => 'Error codes changed'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '30', 'countWindow' => 60, 'regionId' => '*', 'api' => 'AssociateEipAddressBatch'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:AssociateEipAddressBatch', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'Address', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:eip/{#AllocationId}'], + ['validationType' => 'conditional', 'product' => 'VPC', 'resourceType' => 'Instance', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:instance/{#InstanceId}'], + ['validationType' => 'conditional', 'product' => 'VPC', 'resourceType' => 'NatGateway', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:natgateway/{#NatGatewayId}'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B45\\"\\n}","type":"json"}]', + ], + 'AssociateHaVip' => [ + 'summary' => 'Invokes the AssociateHaVip operation to attach an HaVip to an ECS instance or a network interface controller (NIC) in a virtual private cloud (VPC).', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'list', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeCode' => '37764', - 'abilityTreeNodes' => [ - 'FEATUREvpcK3NXU2', - ], - ], + 'operationType' => 'readAndWrite', + 'systemTags' => ['operationType' => 'create'], 'parameters' => [ [ - 'name' => 'VpcId', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The VPC ID.'."\n" - ."\n" - .'You can specify up to 20 VPC IDs. Separate multiple IDs with commas (,).'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'vpc-bp1b1xjllp3ve5yze****', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'You can use the client to generate the token, but you must make sure that the token is unique among different requests. The ClientToken value can contain only ASCII characters.'."\n" + ."\n" + .'> If you do not specify this parameter, the system automatically uses the **RequestId** of the API request as the **ClientToken**. The **RequestId** of each API request may be different.', 'type' => 'string', 'required' => false, 'example' => '0c593ea1-3bea-11e9-b96b-88e9fe63****', 'title' => ''], ], [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the VPC.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The region ID of the HaVip.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-shanghai', 'title' => ''], ], [ - 'name' => 'VpcName', + 'name' => 'HaVipId', 'in' => 'query', - 'schema' => [ - 'description' => 'The name of the VPC.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'Vpc-1', - ], + 'schema' => ['description' => 'The ID of the HaVip to be associated.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'havip-2zeo05qre24nhrqpy****', 'title' => ''], ], [ - 'name' => 'IsDefault', + 'name' => 'InstanceId', 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to query the default VPC in the specified region. Valid values:'."\n" - ."\n" - .'* **true** (default)'."\n" - .'* **false**'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['description' => 'The instance ID of the ECS instance to attach to the HaVip.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'i-faf344422ffsfad****', 'title' => ''], ], [ - 'name' => 'DryRun', + 'name' => 'InstanceType', 'in' => 'query', + 'schema' => ['description' => 'The type of the instance to attach to the HaVip. Valid values:'."\n" + ."\n" + .'- **EcsInstance**: ECS instance.'."\n" + ."\n" + .'- **NetworkInterface**: network interface controller (NIC) instance. If the instance to attach to the HaVip is a network interface controller (NIC), this parameter is required.', 'type' => 'string', 'required' => false, 'example' => 'EcsInstance', 'title' => ''], + ], + ], + 'responses' => [ + 200 => [ + 'headers' => [], 'schema' => [ - 'description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values:'."\n" - ."\n" - .'* **true**: performs only a dry run. The system prechecks whether your AccessKey pair is valid, whether the RAM user is authorized, and whether the required parameters are specified. 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.'."\n" - .'* **false** (default): sends the request. If the request passes the check, a 2xx HTTP status code is returned and VPCs are queried.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'C44F62BE-9CE7-4277-B117-69243F3988BF', 'title' => ''], + ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'OperationUnsupported.BindOnFreeNetworkInterface', 'errorMessage' => 'The network interface must be attached to an ECS instance.', 'description' => 'The ENI must be associated with an ECS instance.'], + ['errorCode' => 'OperationUnsupported.BindMultipleType', 'errorMessage' => 'You cannot bind HaVip to multiple instance types.', 'description' => 'You cannot associate the ECS instance and the ENI at the same time.'], + ['errorCode' => 'OperationUnsupported.BindOnMultipleVswitch', 'errorMessage' => 'The bound instance and HaVip must be on the same vSwitch.', 'description' => 'The instance to be associated and the HAVIP must belong to the same vSwitch.'], + ['errorCode' => 'InvalidVip.Status', 'errorMessage' => 'vip invalid status', 'description' => ''], + ['errorCode' => 'IncorrectHaVipStatus', 'errorMessage' => 'HaVip can be operated by this action only when it\'s status is Available or InUse.', 'description' => 'The operation supports only HAVIPs in the Available or InUse state.'], + ['errorCode' => 'IncorrectInstanceStatus', 'errorMessage' => 'ECS instance can be operated by this action only when it?s status is Running or Stopped.', 'description' => ''], + ['errorCode' => 'CountLimitExceed.HaVipOnInstance', 'errorMessage' => 'The amount of HaVip associated with the specified Instance reach its limits.', 'description' => 'The number of HAVIPs has reached the upper limit.'], + ['errorCode' => 'CountLimitExceeded.HaVipOnECSInstance', 'errorMessage' => 'The amount of Instance associated with the specified HaVip reach its limits.', 'description' => 'The number of HAVIPs has reached the upper limit.'], + ['errorCode' => 'OperationFailed.DistibuteLock', 'errorMessage' => 'Distibute lock fail.', 'description' => 'The operation is locked by another request;'], + ['errorCode' => 'InvalidNetworkInterfaceId.NotFound', 'errorMessage' => 'The network interface is not found.', 'description' => 'The ENI does not exist.'], + ['errorCode' => 'OperationFailed.QueryNetworkInterfaceInfo', 'errorMessage' => 'Failed to query network interface information.', 'description' => 'The system failed to query ENI information.'], + ['errorCode' => 'IllegalParam.InstanceType', 'errorMessage' => 'The specified instance type is invalid. Only ECS instances and network interface are allowed.', 'description' => 'The type of the associated instance does not support this operation.'], + ['errorCode' => 'OperationUnsupported.BindOnSameEcs', 'errorMessage' => 'You cannot bind two network interfaces on the same ECS instance.', 'description' => 'You are not allowed to associate two ENIs of the same ECS instance.'], + ['errorCode' => 'OperationUnsupported.HavipBindType', 'errorMessage' => 'You cannot bind HAVIP to network interface in the specified region.', 'description' => 'You are not allowed to associate ENIs in the specified region.'], + ['errorCode' => 'InvalidInstance.NotExist', 'errorMessage' => 'InvalidInstance.NotExist : The specified Instance does not exist in the specified region. i-bp136w25mhx503ptilrh\\r\\nRequestId : A961CC27-D797-4E16-B1B3-19B9ECBA1495', 'description' => ''], + ['errorCode' => 'OperationDenied.BindOnSameEcs', 'errorMessage' => 'The operation is not allowed because networkinterface bind on same instance.', 'description' => ''], + ['errorCode' => 'Forbidden.HaVip', 'errorMessage' => 'No permissions to perform operations on HAVIPs. Please apply for privilege--vpc_privilege_allow_buy_havip_instance.', 'description' => 'The error message returned because you do not have the permissions to manage the HAVIP. Go to the Quota Center page to acquire the permissions.'], + ['errorCode' => 'InvalidInstanceId.NotFound', 'errorMessage' => 'The specified Instance does not exist in the specified region.', 'description' => ''], + ['errorCode' => 'ResourceNotFound.EcsInstance', 'errorMessage' => 'The specified resource of ECS instance is not found.', 'description' => ''], + ['errorCode' => 'InvalidStatus.NotAllow', 'errorMessage' => 'Bind instance status invalid', 'description' => 'The status of the associated instance is invalid.'], + ['errorCode' => 'InvalidHaVip.Exist', 'errorMessage' => 'haVip already bind exist.', 'description' => ''], + ['errorCode' => 'InvalidRegionId.NotFound', 'errorMessage' => 'The RegionId provided does not exist in our records.', 'description' => ''], + ['errorCode' => 'QuotaExceeded.HaVipBindInstance', 'errorMessage' => 'The amount of instance associated with the specified haVip reach its limits.', 'description' => ''], + ], + 404 => [ + ['errorCode' => 'InvalidHaVipId.NotFound', 'errorMessage' => 'The specified HaVip does not exist in the specified region.', 'description' => 'The specified HAVIP does not exist in the specified region. Check whether the specified region is correct.'], + ['errorCode' => 'InvalidInstanceId.NotFound', 'errorMessage' => 'The specified Instance does not exist in the specified region.', 'description' => ''], + ], + ], + 'title' => 'Attach an HaVip to a VPC-connected ECS instance', + 'description' => 'When you call this operation to associate an HaVip, take note of the following items:'."\n" + ."\n" + .'- The HaVip takes effect immediately after it is attached without the need to restart the ECS instance. However, you must configure the HaVip on the elastic network interfaces (ENIs) of the ECS instance.'."\n" + ."\n" + .'- The HaVip and the ECS instance to be associated must belong to the same vSwitch.'."\n" + ."\n" + .'- An HaVip can be attached to up to 10 ECS instances or up to 10 network interface controllers (NICs) at the same time. However, an HaVip cannot be associated with ECS instances and network interface controllers (NICs) simultaneously.'."\n" + ."\n" + .'- The ECS instance to be associated must be in the **Running** or **Stopped** state.'."\n" + ."\n" + .'- The HaVip instance must be in the **Available** or **InUse** state.'."\n" + ."\n" + .'- The **AssociateHaVip** operation is asynchronous. After you send a request, the system returns a request ID, but the HaVip association has not been completed. The association task is still running in the background. You can call [DescribeHaVips](~~114611~~) to query the association status of the HaVip:'."\n" + .' - If the HaVip is in the **Associating** state, the HaVip is being associated.'."\n" + .' - If the HaVip is in the **InUse** state, the HaVip is associated.'."\n" + .'- The **AssociateHaVip** operation does not support concurrent association of the same HaVip.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2023-11-20T01:46:34.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-09-25T07:38:52.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-07-10T01:47:38.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-01-11T06:07:05.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-01-10T15:26:10.000Z', 'description' => 'Error codes changed, Response parameters changed'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'AssociateHaVip'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], + ], + 'ramActions' => [ [ - 'name' => 'ResourceGroupId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the resource group to which the VPC to be queried belongs.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'rg-acfmxvfvazb4p****', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'vpc:AssociateHaVip', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'Instance', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:instance/{#InstanceId}'], + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'HaVip', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:havip/{#HaVipId}'], + ], ], ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"C44F62BE-9CE7-4277-B117-69243F3988BF\\"\\n}","type":"json"}]', + ], + 'AssociateMacSecKey' => [ + 'summary' => 'This operation associates a MacSec key with a port on a dedicated physical connection. It uses dedicated encryption hardware, such as a NIC or switch, to perform low-latency encryption and decryption. It directly encrypts the physical link, such as a fiber optic or Ethernet cable, to protect all traffic from the sender to the receiver.', + 'methods' => ['post', 'get'], + 'schemes' => ['https'], + 'security' => [ [ - 'name' => 'PageNumber', + 'AK' => [], + ], + ], + 'operationType' => 'readAndWrite', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', 'autoTest' => true, 'tenantRelevance' => 'tenant'], + 'parameters' => [ + [ + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The page number. Default value: **1**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'minimum' => '1', - 'example' => '1', - 'default' => '1', - ], + 'schema' => ['description' => 'The region ID of the Express Connect physical connection.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~448570~~) operation to obtain the region ID.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'PageSize', + 'name' => 'PhysicalConnectionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The number of entries per page. Maximum value: **50**. Default value: **10**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '50', - 'minimum' => '1', - 'example' => '10', - 'default' => '10', - ], + 'schema' => ['title' => 'Express Connect circuit ID.', 'description' => 'The ID of the Express Connect physical connection.', 'type' => 'string', 'required' => true, 'example' => 'pc-bp1hp0wr072f6****'], ], [ - 'name' => 'VpcOwnerId', + 'name' => 'CipherSuite', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the Alibaba Cloud account to which the VPC belongs.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '253460731706911258', - ], + 'schema' => ['title' => 'Encryption algorithm type. Valid values:'."\n" + .'● GCM-AES-128'."\n" + .'● GCM-AES-XPN-128'."\n" + .'● GCM-AES-256'."\n" + .'● GCM-AES-XPN-256', 'description' => 'The cipher suite. Valid values:'."\n" + ."\n" + .'- GCM-AES-128'."\n" + ."\n" + .'- GCM-AES-XPN-128'."\n" + ."\n" + .'- GCM-AES-256'."\n" + ."\n" + .'- GCM-AES-XPN-256', 'type' => 'string', 'required' => true, 'example' => 'GCM-AES-128'], ], [ - 'name' => 'DhcpOptionsSetId', + 'name' => 'Ckn', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the DHCP options set.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'dopt-o6w0df4epg9zo8isy****', - ], + 'schema' => ['title' => 'Key name. Only hexadecimal characters are supported. Lowercase characters are automatically converted to uppercase. When the encryption algorithm type is GCM-AES-128 or GCM-AES-XPN-128, the length must be 32 characters. When the encryption algorithm type is GCM-AES-256 or GCM-AES-XPN-256, the length must be 64 characters.', 'description' => 'The key name. This parameter accepts only hexadecimal characters. Lowercase letters are automatically converted to uppercase. The cipher suite determines the required length of the key name: 32 hexadecimal characters for GCM-AES-128 or GCM-AES-XPN-128, and 64 hexadecimal characters for GCM-AES-256 or GCM-AES-XPN-256.', 'type' => 'string', 'required' => true, 'example' => '0123456789ABCDEF0123456789ABCDEF'], ], [ - 'name' => 'EnableIpv6', + 'name' => 'Cak', 'in' => 'query', + 'schema' => ['title' => 'Passphrase. Only hexadecimal characters are supported. Lowercase characters are automatically converted to uppercase. When the encryption algorithm type is GCM-AES-128 or GCM-AES-XPN-128, the length must be 32 characters. When the encryption algorithm type is GCM-AES-256 or GCM-AES-XPN-256, the length must be 64 characters.', 'description' => 'The key secret. This parameter accepts only hexadecimal characters. Lowercase letters are automatically converted to uppercase. The cipher suite determines the required length of the key secret: 32 hexadecimal characters for GCM-AES-128 or GCM-AES-XPN-128, and 64 hexadecimal characters for GCM-AES-256 or GCM-AES-XPN-256.', 'type' => 'string', 'required' => true, 'example' => '0123456789ABCDEF0123456789ABCDEF'], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => 'Query for VPCs in the specified region that have enabled IPv6 CIDR blocks. The value is empty by default, which means no filtering based on IPv6 availability is conducted. Valid values:'."\n" - ."\n" - .'- false: disabled'."\n" - ."\n" - .'- true: enabled', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'D32B3C26-6C6C-4988-93E9-D2A6444CE6AE', 'title' => ''], + ], + 'title' => '', + 'example' => '', ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'IllegalParam.%s', 'errorMessage' => 'The param of %s is illegal.', 'description' => 'The parameter is invalid.'], + ['errorCode' => 'ResourceNotFound.PhysicalConnectionId', 'errorMessage' => 'The specified resource of [%s] is not found.', 'description' => 'The Express Connect circuit does not exist.'], + ['errorCode' => 'IncorrectStatus.PhysicalConnection', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => 'The status of the physical connection does not support this operation.'], + ['errorCode' => 'UnsupportedFeature.Macsec', 'errorMessage' => 'The feature of Macsec is not supported.', 'description' => 'The current physical connection does not support the MACSec feature.'], + ['errorCode' => 'IncorrectStatus.PconnMacsec', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => 'The operation is not allowed because the MACSec key is in an unstable state.'], + ['errorCode' => 'QuotaExceeded.PconnMacsec', 'errorMessage' => 'The quota of PconnMacsec is exceeded, usage 3/3.', 'description' => 'A physical connection supports binding up to three sets of MACSec keys.'], + ['errorCode' => 'UnsupportedFeature.Macsec.CipherSuite', 'errorMessage' => 'The feature of Macsec.CipherSuite is not supported.', 'description' => 'The current physical connection supports MACSec, but does not support the selected encryption algorithm.'], + ], + ], + 'staticInfo' => ['returnType' => 'asynchronous', 'callback' => 'Vpc::2016-04-28::DescribePhysicalConnections', 'callbackInterval' => 5, 'maxCallbackTimes' => 50], + 'title' => 'Associate MacSec Key', + 'description' => 'This operation has the following prerequisites:'."\n" + ."\n" + .'- The device that hosts the Express Connect physical connection supports the MacSec feature.'."\n" + ."\n" + .'- The Express Connect physical connection must be fully paid.'."\n" + ."\n" + .'- MacSec can be configured only on a dedicated physical connection.'."\n" + ."\n" + .'Note the following:'."\n" + ."\n" + .'- You can configure a maximum of three sets of Ckn and Cak.'."\n" + ."\n" + .'- If you associate a key that is in the Disassociated state, the system disassociates the previously active key.'."\n" + ."\n" + .'- If you associate a key that is in the AssociatedFailed state, the device renegotiates the session.', + 'changeSet' => [], + 'ramActions' => [], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"D32B3C26-6C6C-4988-93E9-D2A6444CE6AE\\"\\n}","type":"json"}]', + ], + 'AssociateNetworkAcl' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'Tag', + 'AK' => [], + ], + ], + 'operationType' => 'readAndWrite', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free'], + 'parameters' => [ + [ + 'name' => 'Resource', 'in' => 'query', 'style' => 'repeatList', 'schema' => [ - 'description' => 'The tags of the resource.'."\n", + 'description' => 'The information about the associated resources.'."\n", 'type' => 'array', 'items' => [ 'description' => '', 'type' => 'object', 'properties' => [ - 'Key' => [ - 'description' => '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.'."\n" - ."\n" - .'The tag key can be up to 128 characters in length. It cannot start with `aliyun` or `acs:`, and cannot contain `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'FinanceDept', - ], - 'Value' => [ - 'description' => '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.'."\n" - ."\n" - .'The tag value can be up to 128 characters in length, and cannot contain `http://` or `https://`. The tag value cannot start with `aliyun` or `acs:`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'FinanceJoshua', - ], + 'ResourceType' => ['description' => 'The type of resource with which you want to associate the network ACL. Set the value to **VSwitch**.'."\n" + ."\n" + .'Valid values of **N**: **0** to **29**. You can associate a network ACL with up to 30 vSwitches.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'VSwitch', 'title' => ''], + 'ResourceId' => ['description' => 'The ID of the associated resource.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'vsw-bp1de348lntdw****', 'title' => ''], ], 'required' => false, + 'title' => '', + 'example' => '', ], 'required' => false, - 'maxItems' => 20, + 'maxItems' => 100, + 'title' => '', + 'example' => '', ], ], + [ + 'name' => 'NetworkAclId', + 'in' => 'query', + 'schema' => ['description' => 'The ID of the network ACL.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'nacl-a2do9e413e0sp****', 'title' => ''], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => ['description' => 'The region ID of the network ACL. You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], + ], + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'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.'."\n" + ."\n" + .'> 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.'."\n", 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-426655440000', 'title' => ''], + ], + [ + 'name' => 'DryRun', + 'in' => 'query', + 'schema' => ['description' => 'Specifies whether to perform only a dry run, without performing the actual request.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => ['description' => 'The region ID of the network ACL. You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], + ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => 'The response parameters.'."\n", 'type' => 'object', 'properties' => [ - 'PageSize' => [ - 'description' => 'The number of entries per page.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => 'C6532AA8-D0F7-497F-A8EE-094126D441F5', - ], - 'PageNumber' => [ - 'description' => 'The page number.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'TotalCount' => [ - 'description' => 'The number of entries returned.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '2', - ], - 'Vpcs' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'Vpc' => [ - 'description' => 'The details of the VPC.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The details of the VPC.'."\n", - 'type' => 'object', - 'properties' => [ - 'CreationTime' => [ - 'description' => 'The time when the VPC was created.'."\n", - 'type' => 'string', - 'example' => '2021-04-18T15:02:37Z', - ], - 'Status' => [ - 'description' => 'The status of the VPC. Valid values:'."\n" - ."\n" - .'* **Pending**'."\n" - .'* **Available**'."\n", - 'type' => 'string', - 'example' => 'Available', - ], - 'VpcId' => [ - 'description' => 'The VPC ID.'."\n", - 'type' => 'string', - 'example' => 'vpc-bp1qpo0kug3a20qqe****', - ], - 'IsDefault' => [ - 'description' => 'Indicates whether the VPC is the default VPC in the region. Valid values:'."\n" - ."\n" - .'* **true**'."\n" - .'* **false**'."\n", - 'type' => 'boolean', - 'example' => 'false', - ], - 'OwnerId' => [ - 'description' => 'The ID of the Alibaba Cloud account to which the VPC belongs.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '253460731706911258', - ], - 'RegionId' => [ - 'description' => 'The ID of the region to which the VPC belongs.'."\n", - 'type' => 'string', - 'example' => 'cn-hangzhou', - ], - 'VpcName' => [ - 'description' => 'The name of the VPC.'."\n", - 'type' => 'string', - 'example' => 'vpc1', - ], - 'VRouterId' => [ - 'description' => 'The ID of the vRouter.'."\n", - 'type' => 'string', - 'example' => 'vrt-bp1jcg5cmxjbl9xgc****', - ], - 'DhcpOptionsSetStatus' => [ - 'description' => 'The status of the DHCP options set. Valid values:'."\n" - ."\n" - .'* **Available**'."\n" - .'* **InUse**'."\n" - .'* **Deleted**'."\n" - .'* **Pending**'."\n", - 'type' => 'string', - 'example' => 'Available', - ], - 'CidrBlock' => [ - 'description' => 'The IPv4 CIDR block of the VPC.'."\n", - 'type' => 'string', - 'example' => '192.168.0.0/16', - ], - 'Description' => [ - 'description' => 'The description of the VPC.'."\n", - 'type' => 'string', - 'example' => 'This is my VPC.', - ], - 'ResourceGroupId' => [ - 'description' => 'The ID of the resource group to which the VPC belongs.'."\n", - 'type' => 'string', - 'example' => 'rg-acfmxazb4ph****', - ], - 'DhcpOptionsSetId' => [ - 'description' => 'The ID of the DHCP options set.'."\n", - 'type' => 'string', - 'example' => 'dopt-o6w0df4epg9zo8isy****', - ], - 'Ipv6CidrBlock' => [ - 'description' => 'The IPv6 CIDR block of the VPC.'."\n", - 'type' => 'string', - 'example' => '2408:XXXX:0:a600::/56', - ], - 'CenStatus' => [ - 'description' => 'The status of the Cloud Enterprise Network (CEN) instance to which the VPC is attached. **Attached** is returned only if the VPC is attached to a CEN instance.'."\n", - 'type' => 'string', - 'example' => 'Attached', - ], - 'Tags' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'Tag' => [ - 'description' => 'The tag information about the VPC.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => 'The key of tag N.'."\n", - 'type' => 'string', - 'example' => 'env', - ], - 'Value' => [ - 'description' => 'The value of tag N.'."\n", - 'type' => 'string', - 'example' => 'internal', - ], - ], - ], - ], - ], - ], - 'Ipv6CidrBlocks' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'Ipv6CidrBlock' => [ - 'description' => 'The IPv6 CIDR block of the VPC.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'Ipv6Isp' => [ - 'description' => 'The type of IPv6 CIDR block. Valid values:'."\n" - ."\n" - .'* **BGP**'."\n" - .'* **ChinaMobile**'."\n" - .'* **ChinaUnicom**'."\n" - .'* **ChinaTelecom**'."\n" - ."\n" - .'> If your Alibaba Cloud account is allowed to activate single-ISP bandwidth, you can set this parameter to **ChinaTelecom**, **ChinaUnicom**, or **ChinaMobile**.'."\n", - 'type' => 'string', - 'example' => 'BGP', - ], - 'Ipv6CidrBlock' => [ - 'description' => 'The IPv6 CIDR block of the VPC.'."\n", - 'type' => 'string', - 'example' => '2408:XXXX:0:a600::/56', - ], - ], - ], - ], - ], - ], - 'VSwitchIds' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'VSwitchId' => [ - 'description' => 'The vSwitches in the VPC.'."\n" - ."\n" - .'You can query up to 300 vSwitches in the VPC. The information about the latest vSwitches is returned. If you want to query the information about all vSwitches in a VPC, call the [DescribeVSwitches](~~35748~~) operation.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The vSwitches in the VPC.'."\n" - ."\n" - .'You can query up to 300 vSwitches in the VPC. The information about the latest vSwitches is returned. If you want to query the information about all vSwitches in a VPC, call the [DescribeVSwitches](~~35748~~) operation.'."\n", - 'type' => 'string', - 'example' => 'vsw-bp1nhbnpv2blyz8dl****', - ], - ], - ], - ], - 'SecondaryCidrBlocks' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'SecondaryCidrBlock' => [ - 'description' => 'The information about the secondary CIDR block.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The secondary CIDR block of the VPC.'."\n", - 'type' => 'string', - 'example' => '192.168.20.0/24', - ], - ], - ], - ], - 'UserCidrs' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'UserCidr' => [ - 'description' => 'The list of user CIDR blocks.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The list of user CIDR blocks.'."\n", - 'type' => 'string', - 'example' => '10.0.0.0/8', - ], - ], - ], - ], - 'NatGatewayIds' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'NatGatewayIds' => [ - 'description' => 'The ID of the Internet NAT gateway.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The ID of the Internet NAT gateway.'."\n", - 'type' => 'string', - 'example' => 'nat-245xxxftwt45bg****', - ], - ], - ], - ], - 'RouterTableIds' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'RouterTableIds' => [ - 'description' => 'The information about the route table.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The ID of the route table.'."\n", - 'type' => 'string', - 'example' => 'vtb-bp1krxxzp0c29fmon****', - ], - ], - ], - ], - 'EnabledIpv6' => [ - 'description' => 'Indicates whether the IPv6 is enabled.'."\n" - ."\n" - .'Valid values:'."\n" - ."\n" - .'- false: false'."\n" - ."\n" - .'- true: true', - 'type' => 'boolean', - 'enumValueTitles' => [ - 'false' => 'false', - 'true' => 'true', - ], - 'example' => 'false', - ], - 'DnsHostnameStatus' => [ - 'description' => 'Indicates whether the Domain Name System (DNS) feature is enabled.', - 'type' => 'string', - 'example' => 'DISABLED', - ], - ], - ], - ], - ], - ], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '4CF20CC7-D1FC-425B-A15B-DF7C8E2131A7', 'title' => ''], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidVpcIdNumber.NotSupported', - 'errorMessage' => 'The number of vpcIds exceeds the limit.', - ], - [ - 'errorCode' => 'InvalidAliuid', - 'errorMessage' => 'User Id is not valid.', - ], - [ - 'errorCode' => 'InvalidResourceGroupId', - 'errorMessage' => 'The specified ResourceGroupId does not exist.', - ], - [ - 'errorCode' => 'InvalidTagKey', - 'errorMessage' => 'The tag keys are not valid.', - ], - [ - 'errorCode' => 'InvalidTagValue', - 'errorMessage' => 'The tag values are not valid.', - ], - [ - 'errorCode' => 'InvalidResourceGroupId.NotFound', - 'errorMessage' => 'The Specified ResourceGroupId not exists.', - ], - [ - 'errorCode' => 'OperationUnsupported.ResourceGroupId', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'IellgalParameter.OwnerAccount', - 'errorMessage' => 'The specified parameter OwnerAccount is not valid.', - ], - [ - 'errorCode' => 'IllegalParam.OwnerId', - 'errorMessage' => 'The specified parameter VpcOwnerId is not valid.', - ], - [ - 'errorCode' => 'InvalidAccount.NotFound', - 'errorMessage' => 'The account is invalid.', - ], + ['errorCode' => 'ParameterMissing.AliUid', 'errorMessage' => 'ParameterMissing.AliUid', 'description' => ''], + ['errorCode' => 'ParameterMissing.Bid', 'errorMessage' => 'ParameterMissing.Bid', 'description' => ''], + ['errorCode' => 'ParameterMissing.RegionId', 'errorMessage' => 'ParameterMissing.RegionId', 'description' => ''], + ['errorCode' => 'ParameterEmpty.RegionId', 'errorMessage' => 'ParameterEmpty.RegionId', 'description' => ''], + ['errorCode' => 'ParameterMissing.NetworkAclId', 'errorMessage' => 'ParameterMissing.NetworkAclId', 'description' => ''], + ['errorCode' => 'ParameterEmpty.NetworkAclId', 'errorMessage' => 'ParameterEmpty.NetworkAclId', 'description' => ''], + ['errorCode' => 'ParameterMissing.Resources', 'errorMessage' => 'ParameterMissing.Resources', 'description' => ''], + ['errorCode' => 'ParameterEmpty.Resources', 'errorMessage' => 'ParameterEmpty.Resources', 'description' => ''], + ['errorCode' => 'InvalidNetworkAcl.NotFound', 'errorMessage' => 'The special Network Acl is not found.', 'description' => 'The network ACL is not found.'], + ['errorCode' => 'NetworkStatus.Modifying', 'errorMessage' => 'The special Network Acl is in modifying.', 'description' => 'The network ACL is being modified.'], + ['errorCode' => 'ResourceStatus.Error', 'errorMessage' => 'The binding instance is in middle status.', 'description' => 'The status of the instance is invalid.'], + ['errorCode' => 'InvalidResource.NotFound', 'errorMessage' => 'The binding instance is not found.', 'description' => ''], + ['errorCode' => 'InvalidResource.VpcError', 'errorMessage' => 'The network acl and resource not in same vpc.', 'description' => ''], + ['errorCode' => 'InvalidResource.BindingExist', 'errorMessage' => 'The binding instance has been binded.', 'description' => 'The instance is already in the Associated state.'], + ['errorCode' => 'NotSupport.NetworkAcl', 'errorMessage' => 'Network acl is not support now.', 'description' => ''], + ['errorCode' => 'ParameterIllegal.ResourceType', 'errorMessage' => 'The specified resource type is illegal.', 'description' => ''], + ['errorCode' => 'MissingParam.Resource', 'errorMessage' => 'Missing parameter Resource.', 'description' => 'Missing parameter Resource'], + ['errorCode' => 'OperationDenied.NetworkAclAttachmentInMiddleStatus', 'errorMessage' => 'The network ACL is being bound to or unbound from the switch.', 'description' => 'The network ACL is being bound to or unbound from the switch.'], ], 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'The request processing has failed due to some unknown error.', - ], + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error.', 'description' => ''], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"PageSize\\": 10,\\n \\"RequestId\\": \\"C6532AA8-D0F7-497F-A8EE-094126D441F5\\",\\n \\"PageNumber\\": 1,\\n \\"TotalCount\\": 2,\\n \\"Vpcs\\": {\\n \\"Vpc\\": [\\n {\\n \\"CreationTime\\": \\"2021-04-18T15:02:37Z\\",\\n \\"Status\\": \\"Available\\",\\n \\"VpcId\\": \\"vpc-bp1qpo0kug3a20qqe****\\",\\n \\"IsDefault\\": false,\\n \\"OwnerId\\": 253460731706911260,\\n \\"RegionId\\": \\"cn-hangzhou\\",\\n \\"VpcName\\": \\"vpc1\\",\\n \\"VRouterId\\": \\"vrt-bp1jcg5cmxjbl9xgc****\\",\\n \\"DhcpOptionsSetStatus\\": \\"Available\\",\\n \\"CidrBlock\\": \\"192.168.0.0/16\\",\\n \\"Description\\": \\"This is my VPC.\\",\\n \\"ResourceGroupId\\": \\"rg-acfmxazb4ph****\\",\\n \\"DhcpOptionsSetId\\": \\"dopt-o6w0df4epg9zo8isy****\\",\\n \\"Ipv6CidrBlock\\": \\"2408:XXXX:0:a600::/56\\",\\n \\"CenStatus\\": \\"Attached\\",\\n \\"Tags\\": {\\n \\"Tag\\": [\\n {\\n \\"Key\\": \\"FinanceDept\\",\\n \\"Value\\": \\"FinanceJoshua\\"\\n }\\n ]\\n },\\n \\"Ipv6CidrBlocks\\": {\\n \\"Ipv6CidrBlock\\": [\\n {\\n \\"Ipv6Isp\\": \\"BGP\\",\\n \\"Ipv6CidrBlock\\": \\"2408:XXXX:0:a600::/56\\"\\n }\\n ]\\n },\\n \\"VSwitchIds\\": {\\n \\"VSwitchId\\": [\\n \\"vsw-bp1nhbnpv2blyz8dl****\\"\\n ]\\n },\\n \\"SecondaryCidrBlocks\\": {\\n \\"SecondaryCidrBlock\\": [\\n \\"192.168.20.0/24\\"\\n ]\\n },\\n \\"UserCidrs\\": {\\n \\"UserCidr\\": [\\n \\"10.0.0.0/8\\"\\n ]\\n },\\n \\"NatGatewayIds\\": {\\n \\"NatGatewayIds\\": [\\n \\"nat-245xxxftwt45bg****\\"\\n ]\\n },\\n \\"RouterTableIds\\": {\\n \\"RouterTableIds\\": [\\n \\"vtb-bp1krxxzp0c29fmon****\\"\\n ]\\n },\\n \\"EnabledIpv6\\": false,\\n \\"DnsHostnameStatus\\": \\"DISABLED\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 10\\n C6532AA8-D0F7-497F-A8EE-094126D441F5\\n 1\\n 2\\n \\n 2021-04-18T15:02:37Z\\n Available\\n vpc-bp1qpo0kug3a20qqe****\\n false\\n 253460731706911260\\n cn-hangzhou\\n vpc1\\n vrt-bp1jcg5cmxjbl9xgc****\\n Available\\n 192.168.0.0/16\\n This is my VPC.\\n rg-acfmxazb4ph****\\n dopt-o6w0df4epg9zo8isy****\\n 2408:XXXX:0:a600::/56\\n Attached\\n \\n env\\n internal\\n \\n \\n BGP\\n 2408:XXXX:0:a600::/56\\n \\n vsw-bp1nhbnpv2blyz8dl****\\n 192.168.20.0/24\\n 10.0.0.0/8\\n nat-245xxxftwt45bg****\\n vtb-bp1krxxzp0c29fmon****\\n \\n","errorExample":""}]', - 'title' => 'DescribeVpcs', + 'staticInfo' => ['returnType' => 'asynchronous', 'callback' => 'Vpc::2016-04-28::DescribeNetworkAcls', 'callbackInterval' => 3000, 'maxCallbackTimes' => 10], + 'title' => 'AssociateNetworkAcl', + 'summary' => 'Associates a network access control list (ACL) with a vSwitch.', + 'description' => '## [](#)Description'."\n" + ."\n" + .'* **AssociateNetworkAcl** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call the [DescribeNetworkAclAttributes](~~116542~~) operation to query the status of the task.'."\n" + ."\n" + .' * If the network ACL is in the **BINDING** state, the network ACL is being associated.'."\n" + .' * If the network ACL is in the **BINDED** state, the network ACL is associated.'."\n" + ."\n" + .'* You cannot repeatedly call the **AssociateNetworkAcl** operation to associate a network ACL within the specified period of time.'."\n", 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeVpcAttribute' => [ - 'summary' => 'Queries the configuration of a virtual private cloud (VPC).', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [ + ['createdAt' => '2024-11-14T07:59:30.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-11-24T05:37:30.000Z', 'description' => 'Request parameters changed, Response parameters changed'], + ['createdAt' => '2022-07-12T08:35:37.000Z', 'description' => 'Error codes changed'], ], + 'ramActions' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"4CF20CC7-D1FC-425B-A15B-DF7C8E2131A7\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 4CF20CC7-D1FC-425B-A15B-DF7C8E2131A7\\n","errorExample":""}]', + ], + 'AssociatePhysicalConnectionToVirtualBorderRouter' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'readAndWrite', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'get', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREvpcK3NXU2', - ], - ], + 'systemTags' => ['operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ - 'name' => 'VpcId', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the VPC that you want to query.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'vpc-bp18sth14qii3pnv****', - ], + 'schema' => ['description' => 'The region ID of the Express Connect circuit.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'RegionId', + 'name' => 'VbrId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region where the VPC is deployed.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The ID of the VBR.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'vbr-bp186tnz6rijyhj******', 'title' => ''], ], [ - 'name' => 'DryRun', + 'name' => 'PhysicalConnectionId', 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values:'."\n" - ."\n" - .'* **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 dry run, the `DryRunOperation` error code is returned.'."\n" - .'* **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.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['description' => 'The ID of the Express Connect circuit.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'pc-bp1qrb3044eqixog****', 'title' => ''], ], [ - 'name' => 'IsDefault', + 'name' => 'VlanId', 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether the VPC is the default VPC. Valid values:'."\n" - ."\n" - .'* **false** (default)'."\n" - .'* **true**'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['description' => 'The VLAN ID of the VBR. Valid values: **0 to 2999**.'."\n" + ."\n" + .'> Only the Express Connect circuit owner can specify this parameter. Two VBRs associated with the same Express Connect circuit cannot use the same VLAN ID.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '123', 'title' => ''], + ], + [ + 'name' => 'CircuitCode', + 'in' => 'query', + 'schema' => ['description' => 'The circuit code of the Express Connect circuit. The circuit code is provided by the connectivity provider.'."\n" + ."\n" + .'> Only the Express Connect circuit owner can specify this parameter.'."\n", 'type' => 'string', 'required' => false, 'example' => 'longtel001', 'title' => ''], + ], + [ + 'name' => 'LocalGatewayIp', + 'in' => 'query', + 'schema' => ['description' => 'The IP address of the gateway device on the Alibaba Cloud side.'."\n", 'type' => 'string', 'required' => false, 'example' => '192.168.XX.XX', 'title' => ''], + ], + [ + 'name' => 'PeerGatewayIp', + 'in' => 'query', + 'schema' => ['description' => 'The IP address of the gateway device on the user side.'."\n" + ."\n" + .'* Only the owner of the VBR can set or modify this parameter.'."\n" + .'* When you create a VBR for the owner of the Express Connect circuit, this parameter is required.'."\n", 'type' => 'string', 'required' => false, 'example' => '192.168.XX.XX', 'title' => ''], + ], + [ + 'name' => 'PeeringSubnetMask', + 'in' => 'query', + 'schema' => ['description' => 'The subnet mask of the IP addresses of the VBR and the gateway device in the data center.'."\n" + ."\n" + .'The two IP addresses must fall within the same subnet.'."\n", 'type' => 'string', 'required' => false, 'example' => '255.255.255.0', 'title' => ''], + ], + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'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 and cannot exceed 64 characters in length.'."\n" + ."\n" + .'> 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.'."\n", 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-426655440000', 'title' => ''], + ], + [ + 'name' => 'LocalIpv6GatewayIp', + 'in' => 'query', + 'schema' => ['description' => 'The IPv6 address of the gateway device on the Alibaba Cloud side.'."\n", 'type' => 'string', 'required' => false, 'example' => '2001:XXXX:3c4d:0015:0000:0000:0000:1a2b', 'title' => ''], + ], + [ + 'name' => 'PeerIpv6GatewayIp', + 'in' => 'query', + 'schema' => ['description' => 'The IPv6 address of the gateway device in the data center.'."\n" + ."\n" + .'* Only the owner of the VBR can specify or modify this parameter.'."\n" + .'* When you create a VBR for the owner of the Express Connect circuit, this parameter is required.'."\n", 'type' => 'string', 'required' => false, 'example' => '2001:XXXX:4:4:4:4:4:4', 'title' => ''], + ], + [ + 'name' => 'PeeringIpv6SubnetMask', + 'in' => 'query', + 'schema' => ['description' => 'The subnet mask of the IPv6 addresses of the gateway devices on the user side and Alibaba Cloud side.'."\n" + ."\n" + .'The two IPv6 addresses must fall within the same subnet.'."\n", 'type' => 'string', 'required' => false, 'example' => '2408:4004:cc:400::/56', 'title' => ''], + ], + [ + 'name' => 'EnableIpv6', + 'in' => 'query', + 'schema' => ['description' => 'Specifies whether to enable IPv6. Valid values:'."\n" + ."\n" + .'* **true**'."\n" + .'* **false** (default)'."\n", 'type' => 'string', 'required' => false, 'example' => 'false', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => 'The time when the VPC was created.'."\n", 'type' => 'object', 'properties' => [ - 'CreationTime' => [ - 'description' => 'The time when the VPC was created.'."\n", - 'type' => 'string', - 'example' => '2021-10-16T07:31:09Z', - ], - 'Status' => [ - 'description' => 'The status of the VPC. Valid values:'."\n" - ."\n" - .'* **Available**'."\n" - .'* **Pending**'."\n", - 'type' => 'string', - 'example' => 'Available', - ], - 'VpcId' => [ - 'description' => 'The ID of the VPC.'."\n", - 'type' => 'string', - 'example' => 'vpc-bp18sth14qii3pnvo****', - ], - 'IsDefault' => [ - 'description' => 'Indicates whether the VPC is the default VPC. Valid values:'."\n" - ."\n" - .'* **true**'."\n" - .'* **false** (default)'."\n", - 'type' => 'boolean', - 'example' => 'false', - ], - 'ClassicLinkEnabled' => [ - 'description' => 'Indicates whether the ClassicLink feature is enabled. Valid values:'."\n" - ."\n" - .'* **true**'."\n" - .'* **false** (default)'."\n", - 'type' => 'boolean', - 'example' => 'false', - 'deprecated' => true, - ], - 'OwnerId' => [ - 'description' => 'The ID of the Alibaba Cloud account to which the VPC belongs.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '28311773240248****', - ], - 'RegionId' => [ - 'description' => 'The ID of the region to which the VPC belongs.'."\n", - 'type' => 'string', - 'example' => 'cn-hangzhou', - ], - 'VpcName' => [ - 'description' => 'The name of the VPC.'."\n", - 'type' => 'string', - 'example' => 'doctest2', - ], - 'VRouterId' => [ - 'description' => 'The ID of the vRouter that belongs to the VPC.'."\n", - 'type' => 'string', - 'example' => 'vrt-bp1jso6ng1at0ajsc****', - ], - 'DhcpOptionsSetStatus' => [ - 'description' => 'The status of the DHCP options set. Valid values:'."\n" - ."\n" - .'* **Available**'."\n" - .'* **InUse**'."\n" - .'* **Deleted**'."\n" - .'* **Pending**'."\n", - 'type' => 'string', - 'example' => 'Available', - ], - 'CidrBlock' => [ - 'description' => 'The IPv4 CIDR block of the VPC.'."\n", - 'type' => 'string', - 'example' => '192.168.0.0/16', - ], - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '7486AE4A-129D-43DB-A714-2432C074BA04', - ], - 'Description' => [ - 'description' => 'The description of the VPC.'."\n", - 'type' => 'string', - 'example' => 'VPC', - ], - 'ResourceGroupId' => [ - 'description' => 'The ID of the resource group.'."\n", - 'type' => 'string', - 'example' => 'rg-acfmxazbvgb4ph****', - ], - 'DhcpOptionsSetId' => [ - 'description' => 'The ID of the DHCP options set.'."\n", - 'type' => 'string', - 'example' => 'dopt-o6w0df4epg9zo8isy****', - ], - 'Ipv6CidrBlock' => [ - 'description' => 'The IPv6 CIDR block of the VPC.'."\n", - 'type' => 'string', - 'example' => '2408:XXXX:0:a600::/56', - ], - 'VSwitchIds' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'VSwitchId' => [ - 'description' => 'The list of vSwitches deployed in the VPC.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The list of vSwitches deployed in the VPC.'."\n", - 'type' => 'string', - 'example' => '{"VSwitchId": [ "vsw-bp14cagpfysr29feg****" ]}', - ], - ], - ], - ], - 'UserCidrs' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'UserCidr' => [ - 'description' => 'The user CIDR block. Multiple CIDR blocks are separated by commas (,). At most three CIDR blocks are returned.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The user CIDR block. Multiple CIDR blocks are separated by commas (,). At most three CIDR blocks are returned.'."\n", - 'type' => 'string', - 'example' => '172.16.0.1/24', - ], - ], - ], - ], - 'SecondaryCidrBlocks' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'SecondaryCidrBlock' => [ - 'description' => 'The secondary IPv4 CIDR block of the VPC.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The secondary IPv4 CIDR block of the VPC.'."\n", - 'type' => 'string', - 'example' => '192.168.0.0/16', - ], - ], - ], - ], - 'AssociatedCens' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'AssociatedCen' => [ - 'description' => 'The list of Cloud Enterprise Network (CEN) instances to which the VPC is attached.'."\n" - ."\n" - .'If the VPC is not attached to a CEN instance, the parameter is not returned.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'CenOwnerId' => [ - 'description' => 'The ID of the account to which the CEN instance belongs.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '28311773240248****', - ], - 'CenId' => [ - 'description' => 'The ID of the CEN instance to which the VPC is attached.'."\n", - 'type' => 'string', - 'example' => 'cen-7qthudw0ll6jmc****', - ], - 'CenStatus' => [ - 'description' => 'The status of the CEN instance.'."\n" - ."\n" - .'**Attached** is returned only when the VPC is attached to a CEN instance.'."\n", - 'type' => 'string', - 'example' => 'Attached', - ], - ], - ], - ], - ], - ], - 'CloudResources' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'CloudResourceSetType' => [ - 'description' => 'The list of resources deployed in the VPC.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'ResourceCount' => [ - 'description' => 'The number of resources in the VPC.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'ResourceType' => [ - 'description' => 'The type of resource deployed in the VPC. Valid values: Valid values:'."\n" - ."\n" - .'* **VSwitch**'."\n" - .'* **VRouter**'."\n" - .'* **RouteTable**'."\n", - 'type' => 'string', - 'example' => 'VSwitch', - ], - ], - ], - ], - ], - ], - 'Ipv6CidrBlocks' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'Ipv6CidrBlock' => [ - 'description' => 'The IPv6 CIDR block of the VPC.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'Ipv6Isp' => [ - 'description' => 'The IPv6 CIDR block type of the VPC. Valid values:'."\n" - ."\n" - .'* **BGP** (default)'."\n" - .'* **ChinaMobile**'."\n" - .'* **ChinaUnicom**'."\n" - .'* **ChinaTelecom**'."\n" - ."\n" - .'> If you are allowed to use single-ISP bandwidth, valid values are **ChinaTelecom**, **ChinaUnicom**, and **ChinaMobile**'."\n", - 'type' => 'string', - 'example' => 'BGP', - ], - 'Ipv6CidrBlock' => [ - 'description' => 'The IPv6 CIDR block of the VPC.'."\n", - 'type' => 'string', - 'example' => '2408:XXXX:0:6a::/56', - ], - ], - ], - ], - ], - ], - 'SupportIpv4Gateway' => [ - 'description' => 'Indicates whether the VPC supports IPv4 gateways.'."\n" - ."\n" - .'* **true**'."\n" - .'* **false**'."\n", - 'type' => 'boolean', - 'example' => 'true', - ], - 'Ipv4GatewayId' => [ - 'description' => 'The ID of the IPv4 gateway.'."\n", - 'type' => 'string', - 'example' => 'ipv4gw-5tsnc6s4ogsedtp3k****', - ], - 'Tags' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'Tag' => [ - 'description' => 'The information about the tags.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The tags.', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => 'The key of tag N.'."\n", - 'type' => 'string', - 'example' => 'FinanceDept', - ], - 'Value' => [ - 'description' => 'The value of tag N.'."\n", - 'type' => 'string', - 'example' => 'FinanceJoshua', - ], - ], - ], - ], - ], - ], - 'AssociatedPropagationSources' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'AssociatedPropagationSources' => [ - 'description' => 'The route source associated with the VPC.'."\n", - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'SourceType' => [ - 'description' => 'The source type.'."\n" - ."\n" - .'* **CEN**'."\n" - .'* **VPN**'."\n" - .'* **TR**'."\n" - .'* **ECR**'."\n", - 'type' => 'string', - 'example' => 'CEN', - ], - 'SourceOwnerId' => [ - 'description' => 'The account ID of the source.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '153980532164****', - ], - 'SourceInstanceId' => [ - 'description' => 'The instance ID of the source.'."\n", - 'type' => 'string', - 'example' => 'cen-dc4vwznpwbobrl****', - ], - 'Status' => [ - 'description' => 'The binding status.'."\n" - ."\n" - .'* **Attaching**'."\n" - .'* **Attached**'."\n" - .'* **Detaching**'."\n", - 'type' => 'string', - 'example' => 'Attaching', - ], - 'RoutePropagated' => [ - 'description' => 'Indicates whether routes are advertised to the VPC.'."\n", - 'type' => 'boolean', - 'example' => 'true', - ], - ], - ], - ], - ], - ], - 'EnabledIpv6' => [ - 'description' => 'Indicates whether the VPC enables IPv6 .'."\n" - .'- true'."\n" - .'- false', - 'type' => 'boolean', - 'enumValueTitles' => [ - 'false' => 'false', - 'true' => 'true', - ], - 'example' => 'false', - ], - 'DnsHostnameStatus' => [ - 'description' => 'Indicates whether DNS hostname is enabled.', - 'type' => 'string', - 'example' => 'DISABLED', - ], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '980960B0-2969-40BF-8542-EBB34FD358AB', 'title' => ''], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'IncorrectVpcStatus', - 'errorMessage' => 'Current VPC status does not support this operation.', - ], - [ - 'errorCode' => 'Forbidden.VpcNotFound', - 'errorMessage' => 'Specified VPC does not exist.', - ], + ['errorCode' => 'InvalidOperation.RouterInterfaceNotDeleted', 'errorMessage' => 'The specified VirutalBorderRouter still has routerInterface.', 'description' => ''], + ['errorCode' => 'InvalidOperation.OperationNotAllowedInState', 'errorMessage' => 'The specified VirutalBorderRouter is in invalid state.', 'description' => ''], + ['errorCode' => 'InvalidStatus.NotAllowed', 'errorMessage' => 'Invalid virtual border router status.', 'description' => ''], + ['errorCode' => 'InvalidPhysicalConnectionId.NotFound', 'errorMessage' => 'The specified PhysicalConnectionId is not found.', 'description' => 'The specified Express Connect circuit ID does not exist.'], + ['errorCode' => 'InvalidVlanId.Used', 'errorMessage' => 'The specified VlanId has been used.', 'description' => ''], + ['errorCode' => 'MissingParameter', 'errorMessage' => 'The input parameter \'PhysicalConnectionId\' that is mandatory for processing this request is not supplied.', 'description' => ''], + ['errorCode' => 'InvalidPhysicalConnectionId.NotEnabled', 'errorMessage' => 'The specified PhysicalConnectionId is not in Enabled state.', 'description' => ''], + ['errorCode' => 'InvalidVlanId.Malformed', 'errorMessage' => 'The specified VlanId is not valid.', 'description' => ''], + ['errorCode' => 'InvalidCircuitCode.Malformed', 'errorMessage' => 'The specified CircuitCode is not valid.', 'description' => ''], + ['errorCode' => 'InvalidLocalGatewayIp.Malformed', 'errorMessage' => 'The specified LocalGatewayIp is not valid.', 'description' => ''], + ['errorCode' => 'InvalidPeerGatewayIp.Malformed', 'errorMessage' => 'The specified PeerGatewayIp is not valid.', 'description' => ''], + ['errorCode' => 'InvalidPeeringSubnetMask.Malformed', 'errorMessage' => 'The specified PeeringSubnetMask is not valid.', 'description' => 'PeeringSubnetMask is set to an invalid value.'], + ['errorCode' => 'InvalidName.Malformed', 'errorMessage' => 'The specified ?Name? is not valid.', 'description' => ''], + ['errorCode' => 'InvalidDescription.Malformed', 'errorMessage' => 'The specifid ?Description? is not valid.', 'description' => 'The error message returned because the specified resource description is invalid. The description must be 2 to 256 characters in length and cannot start with http:// or https://.'], + ['errorCode' => 'QuotaExceeded.vbrPerpConn', 'errorMessage' => 'Virtual boarder router per PhysicalConnection quota exceed.', 'description' => ''], + ['errorCode' => 'EXCEED_ASSOCIATE_MAX_NUM', 'errorMessage' => 'assocaite virtual boarder num too many.', 'description' => ''], + ['errorCode' => 'InvalidIP.Malformed', 'errorMessage' => 'Ip malformed.', 'description' => ''], + ['errorCode' => 'InvalidIp.NotSameSubnet', 'errorMessage' => 'Local gateway ip and peer gateway ip are not in the same subnet.', 'description' => 'The IP addresses of the local gateway and the peer gateway do not fall within the same subnet.'], + ['errorCode' => 'InvalidStatus.StatusNotEnabled', 'errorMessage' => 'The physical connection status is invalid.', 'description' => ''], + ['errorCode' => 'InvalidParams.AlreadyExists', 'errorMessage' => 'physical connection has already associated with vbr.', 'description' => ''], + ['errorCode' => 'PHYSICAL_NOT_ALLOW_ASSOCIATE_VBR', 'errorMessage' => 'The specified operation not allow.', 'description' => ''], + ['errorCode' => 'Forbidden.OperationNotAllowed', 'errorMessage' => 'The caller must be PhysicalConnection or VirtualBorderRouter\'s owner.', 'description' => ''], + ['errorCode' => 'Forbidden.NotSameAccessDevice', 'errorMessage' => 'Vbr and physicalConnection are not on the same accessDevice.', 'description' => 'The VBR and Express Connect circuit do not belong to the same device.'], + ['errorCode' => 'Duplicated.LocalGatewayIp', 'errorMessage' => 'Vbr has conflict local gateway ip.', 'description' => ''], + ['errorCode' => 'OperationFailed.VlanIdInUse', 'errorMessage' => 'Operation failed because vlanId is in use.', 'description' => 'The VLAN ID is already used.'], + ['errorCode' => 'OperationFailed.PconnTrafficNotEnable', 'errorMessage' => 'The operation is failed because of PconnTrafficNotEnable.', 'description' => 'Billing for outbound data transfer is disabled.'], + ['errorCode' => 'DuplicatedParam.LocalGatewayIp', 'errorMessage' => 'Duplicated LocalGatewayIp values.', 'description' => 'The local IP address already exists.'], + ['errorCode' => 'DuplicatedParam.PeerGatewayIp', 'errorMessage' => 'Duplicated PeerGatewayIp values.', 'description' => 'The peer IP address already exists.'], + ['errorCode' => 'DuplicatedParam.LocalIpv6GatewayIp', 'errorMessage' => 'Duplicated LocalIpv6GatewayIp values.', 'description' => 'The local IP address already exists.'], + ['errorCode' => 'DuplicatedParam.PeerIpv6GatewayIp', 'errorMessage' => 'Duplicated PeerIpv6GatewayIp values.', 'description' => 'The peer IP address already exists.'], + ['errorCode' => 'EcPconnVbrMustContainsAll', 'errorMessage' => 'In the single VBR with multiple Pconn scene, all Pconn must be associated with the same Qos.', 'description' => 'In a single VBR and multiple Pconn scenarios, all Pconn must be bound to a QoS policy.'], + ['errorCode' => 'IllegalParam.LocalGatewayIpAndMask', 'errorMessage' => 'The LocalGatewayIpAndMask value is invalid.', 'description' => 'The error message returned because the IP address of the local gateway and the subnet mask are invalid. Specify a valid IP address and subnet mask and try again.'], + ['errorCode' => 'IllegalParam.PeeringIpv6SubnetMask', 'errorMessage' => 'The PeeringIpv6SubnetMask value is invalid.', 'description' => 'The error message returned because the subnet mask is invalid. Specify a valid subnet mask and try again.'], ], - 404 => [ - [ - 'errorCode' => 'InvalidVpcId.NotFound', - 'errorMessage' => 'Specified VPC does not exist.', - ], + 403 => [ + ['errorCode' => 'Forbidden.OperationNotAllowedByUser', 'errorMessage' => 'The caller is not allowed to delete the specified VirtualBorderRouter.', 'description' => ''], + ['errorCode' => 'Forbidden.MultiVlanRi', 'errorMessage' => 'Multiple vlan router interfaces are found.', 'description' => ''], + ['errorCode' => 'Forbidden.NoRiFound', 'errorMessage' => 'No vlan router interfaces are found.', 'description' => ''], + ['errorCode' => 'Forbidden.LocalGatewayIpNotAllowedByCaller', 'errorMessage' => 'The caller is not allowed to specify the LocalGatewayIp parameter.', 'description' => ''], + ['errorCode' => 'Forbidden.PeerGatewayIpNotAllowedByCaller', 'errorMessage' => 'The caller is not allowed to specify the PeerGatewayIp parameter.', 'description' => ''], + ['errorCode' => 'Forbidden.PeeringSubnetMaskNotAllowedByCaller', 'errorMessage' => 'The caller is not allowed to specify the PeeringSubnetMask parameter.', 'description' => ''], + ['errorCode' => 'Forbidden.NameNotAllowedByCaller', 'errorMessage' => 'The caller is not allowed to specify the Name parameter.', 'description' => ''], + ['errorCode' => 'Forbidden.DescriptionNotAllowedByCaller', 'errorMessage' => 'The caller is not allowed to specify the Description parameter.', 'description' => ''], ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'The request processing has failed due to some unknown error.', - ], + [ + ['errorCode' => 'InvalidInstanceId.NotFound', 'errorMessage' => 'The specified Instance does not exist in the specified region.', 'description' => ''], + ['errorCode' => 'InvalidRegionId.NotFound', 'errorMessage' => 'The RegionId provided does not exist in our records.', 'description' => ''], + ['errorCode' => 'InvalidVbrId.NotFound', 'errorMessage' => 'The specified VirutalBorderRouter does not exist in our records.', 'description' => ''], + ['errorCode' => 'InvalidVbrOwnerId.NotFound', 'errorMessage' => 'The specified VbrOwnerId is not valid.', 'description' => ''], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"CreationTime\\": \\"2021-10-16T07:31:09Z\\",\\n \\"Status\\": \\"Available\\",\\n \\"VpcId\\": \\"vpc-bp18sth14qii3pnvo****\\",\\n \\"IsDefault\\": false,\\n \\"ClassicLinkEnabled\\": false,\\n \\"OwnerId\\": 0,\\n \\"RegionId\\": \\"cn-hangzhou\\",\\n \\"VpcName\\": \\"doctest2\\",\\n \\"VRouterId\\": \\"vrt-bp1jso6ng1at0ajsc****\\",\\n \\"DhcpOptionsSetStatus\\": \\"Available\\",\\n \\"CidrBlock\\": \\"192.168.0.0/16\\",\\n \\"RequestId\\": \\"7486AE4A-129D-43DB-A714-2432C074BA04\\",\\n \\"Description\\": \\"VPC\\",\\n \\"ResourceGroupId\\": \\"rg-acfmxazbvgb4ph****\\",\\n \\"DhcpOptionsSetId\\": \\"dopt-o6w0df4epg9zo8isy****\\",\\n \\"Ipv6CidrBlock\\": \\"2408:XXXX:0:a600::/56\\",\\n \\"VSwitchIds\\": {\\n \\"VSwitchId\\": [\\n \\"{\\\\\\"VSwitchId\\\\\\": [ \\\\\\"vsw-bp14cagpfysr29feg****\\\\\\" ]}\\"\\n ]\\n },\\n \\"UserCidrs\\": {\\n \\"UserCidr\\": [\\n \\"172.16.0.1/24\\"\\n ]\\n },\\n \\"SecondaryCidrBlocks\\": {\\n \\"SecondaryCidrBlock\\": [\\n \\"192.168.0.0/16\\"\\n ]\\n },\\n \\"AssociatedCens\\": {\\n \\"AssociatedCen\\": [\\n {\\n \\"CenOwnerId\\": 0,\\n \\"CenId\\": \\"cen-7qthudw0ll6jmc****\\",\\n \\"CenStatus\\": \\"Attached\\"\\n }\\n ]\\n },\\n \\"CloudResources\\": {\\n \\"CloudResourceSetType\\": [\\n {\\n \\"ResourceCount\\": 1,\\n \\"ResourceType\\": \\"VSwitch\\"\\n }\\n ]\\n },\\n \\"Ipv6CidrBlocks\\": {\\n \\"Ipv6CidrBlock\\": [\\n {\\n \\"Ipv6Isp\\": \\"BGP\\",\\n \\"Ipv6CidrBlock\\": \\"2408:XXXX:0:6a::/56\\"\\n }\\n ]\\n },\\n \\"SupportIpv4Gateway\\": true,\\n \\"Ipv4GatewayId\\": \\"ipv4gw-5tsnc6s4ogsedtp3k****\\",\\n \\"Tags\\": {\\n \\"Tag\\": [\\n {\\n \\"Key\\": \\"FinanceDept\\",\\n \\"Value\\": \\"FinanceJoshua\\"\\n }\\n ]\\n },\\n \\"AssociatedPropagationSources\\": {\\n \\"AssociatedPropagationSources\\": [\\n {\\n \\"SourceType\\": \\"CEN\\",\\n \\"SourceOwnerId\\": 0,\\n \\"SourceInstanceId\\": \\"cen-dc4vwznpwbobrl****\\",\\n \\"Status\\": \\"Attaching\\",\\n \\"RoutePropagated\\": true\\n }\\n ]\\n },\\n \\"EnabledIpv6\\": false,\\n \\"DnsHostnameStatus\\": \\"DISABLED\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 2021-10-16T07:31:09Z\\n Available\\n vpc-bp18sth14qii3pnvo****\\n false\\n false\\n 283117732402484000\\n cn-hangzhou\\n doctest2\\n vrt-bp1jso6ng1at0ajsc****\\n Available\\n 192.168.0.0/16\\n 7486AE4A-129D-43DB-A714-2432C074BA04\\n VPC\\n rg-acfmxazbvgb4ph****\\n dopt-o6w0df4epg9zo8isy****\\n 2408:XXXX:0:a600::/56\\n {\\"VSwitchId\\": [ \\"vsw-bp14cagpfysr29feg****\\" ]}\\n 172.16.0.1/24\\n 192.168.0.0/16\\n \\n 283117732402484000\\n cen-7qthudw0ll6jmc****\\n Attached\\n \\n \\n 1\\n VSwitch\\n \\n \\n BGP\\n 2408:XXXX:0:6a::/56\\n \\n true\\n ipv4gw-5tsnc6s4ogsedtp3k****\\n \\n FinanceDept\\n FinanceJoshua\\n \\n","errorExample":""}]', - 'title' => 'DescribeVpcAttribute', + 'title' => 'AssociatePhysicalConnectionToVirtualBorderRouter', + 'summary' => 'Associates a virtual border router (VBR) with a specified Express Connect circuit.', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeGrantRulesToCen' => [ - 'summary' => 'Queries cross-account authorization on virtual private clouds (VPCs), virtual border routers (VBRs), and Cloud Connect Network (CCN) instances.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [ + ['createdAt' => '2025-03-19T10:32:29.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-06-28T02:56:12.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-02-01T03:33:17.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-04-10T03:22:23.000Z', 'description' => 'Error codes changed'], ], + 'ramActions' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"980960B0-2969-40BF-8542-EBB34FD358AB\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 980960B0-2969-40BF-8542-EBB34FD358AB\\n","errorExample":""}]', + ], + 'AssociateRouteTable' => [ + 'summary' => 'Associates a custom route table with a vSwitch in the same VPC.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'readAndWrite', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'get', - 'riskType' => 'none', - 'chargeType' => 'free', - ], + 'systemTags' => ['operationType' => 'update'], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the network instance that you want to query.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cn-hangzhou', - ], - ], - [ - 'name' => 'InstanceId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the network instance that you want to query.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'vpc-bp18sth14qii3pnvc****', - ], + 'schema' => ['description' => 'The region ID of the VPC to which the route table belongs.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'InstanceType', + 'name' => 'RouteTableId', 'in' => 'query', - 'schema' => [ - 'description' => 'The type of the network instance. Valid values:'."\n" - ."\n" - .'* **VPC**'."\n" - .'* **VBR**'."\n" - .'* **CCN**'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'VPC', - ], + 'schema' => ['description' => 'The ID of the route table.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'vtb-bp145q7glnuzdvzu2****', 'title' => ''], ], [ - 'name' => 'ResourceGroupId', + 'name' => 'VSwitchId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the resource group to which the network instance belongs.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'rg-acfmxazb4p**** ', - ], + 'schema' => ['description' => 'The ID of the vSwitch.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'vsw-25ncdvfaue4****', 'title' => ''], ], [ 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'You can use the client to generate the value, but you must make sure that it is unique among all requests. ClientToken can contain only ASCII characters.'."\n" - ."\n" - .'> If you do not specify this parameter, **ClientToken** is set to the value of **RequestId**. The value of **RequestId** for each API request may be different.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-426655440000 ', - ], - ], - [ - 'name' => 'PageNumber', - 'in' => 'query', - 'schema' => [ - 'description' => 'The number of the page to return. Default value: **1**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'minimum' => '1', - 'example' => '1', - 'default' => '1', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'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.'."\n" + ."\n" + .'> 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.'."\n", 'type' => 'string', 'required' => false, 'example' => '02fb3da4-130e-11e9-8e44-0016e04115b', 'title' => ''], ], [ - 'name' => 'PageSize', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The number of entries to return on each page. Maximum value: **50**. Default value: **10**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '50', - 'minimum' => '1', - 'example' => '10', - 'default' => '10', - ], + 'schema' => ['description' => 'The region ID of the VPC to which the route table belongs.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => '', 'type' => 'object', 'properties' => [ - 'PageSize' => [ - 'description' => 'The number of entries returned per page.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => 'F5BB78C8-5F41-464F-B9FF-5E0A7198BA26', - ], - 'PageNumber' => [ - 'description' => 'The page number of the returned page.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'TotalCount' => [ - 'description' => 'The total number of entries returned.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'CenGrantRules' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'CbnGrantRule' => [ - 'description' => 'The information about the authorization.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'CenInstanceId' => [ - 'description' => 'The ID of the authorized CEN instance.'."\n", - 'type' => 'string', - 'example' => 'cen-9gsm1q2yh1prpt****', - ], - 'CenOwnerId' => [ - 'description' => 'The UID of the Alibaba Cloud account to which the authorized CEN instance belongs.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '132193271328****', - ], - 'CreationTime' => [ - 'description' => 'The time when the instance was created.'."\n", - 'type' => 'string', - 'example' => '2019-11-15T09:26:36Z', - ], - ], - ], - ], - ], - ], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => 'DC668356-BCB4-42FD-9BC3-FA2B2E04B634', 'title' => ''], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ - 403 => [ - [ - 'errorCode' => 'Forbbiden', - 'errorMessage' => 'User not authorized to operate on the specified resource.', - ], + 400 => [ + ['errorCode' => 'OperationDenied.CloudBoxVbrEntryExist', 'errorMessage' => 'The operation is not allowed because the routing table has a route entry for the next hop to the cloud box VBR.', 'description' => ''], + ['errorCode' => 'OperationDenied.OtherCloudBoxVbrEntryExist', 'errorMessage' => 'The operation is not allowed because the routing table has a route entry for the next hop that points to a VBR other than this cloud box.', 'description' => ''], + ['errorCode' => 'ResourceAlreadyAssociated.RouteTable', 'errorMessage' => 'The resource has already associated with a routetable.', 'description' => ''], + ['errorCode' => 'OperationDenied.AssociateGatewayRouteTable', 'errorMessage' => 'The operation is not allowed because gateway route tables cannot be bound to a vSwitch.', 'description' => 'The vSwitch cannot be associated with a gateway route table.'], + ['errorCode' => 'OperationDenied.SwitchToSystemRouteTable', 'errorMessage' => 'The associated route tables cannot be directly changed to system route tables.', 'description' => 'Failed to switch from the associated route table to the system route table.'], + ['errorCode' => 'ResourceNotFound.VSwitch', 'errorMessage' => 'The specified resource of VSwitch is not found.', 'description' => 'The specified vSwitch does not exist.'], + ['errorCode' => 'InvalidRouteTableId.NotFound', 'errorMessage' => 'Specified route table does not exist.', 'description' => ''], + ['errorCode' => 'OperationDenied.LocalRouteEntryModified', 'errorMessage' => 'The next hop of a local route is modified.', 'description' => 'The next hop of the local type route has been modified.'], + ['errorCode' => 'MissingParam.VSwitchId', 'errorMessage' => 'The parameter VSwitchId is missing.', 'description' => 'The parameter VSwitchId is missing.'], + ['errorCode' => 'InvalidRegionId.NotFound', 'errorMessage' => 'Specified value of RegionId is not supported.', 'description' => ''], + ['errorCode' => 'InvalidParameter.Action', 'errorMessage' => 'This vpc feature is not supported in this region', 'description' => ''], + ['errorCode' => 'IncorrectVSwitchStatus', 'errorMessage' => 'The current status of the virtual switch does not support this operation.', 'description' => ''], + ['errorCode' => 'Forbidden.VSwitchAlreadyAssociatedRouteTable', 'errorMessage' => 'The specified virtual switch already associates route table.', 'description' => ''], + ['errorCode' => 'Forbidden.NotInSameVpc', 'errorMessage' => 'The specified virtual switch and route table are not in the same VPC.', 'description' => ''], + ['errorCode' => 'IncorrectStatus.RouteTable', 'errorMessage' => 'The status of the specified route table is incorrect.', 'description' => ''], + ], + 404 => [ + ['errorCode' => 'InvalidRouteTableId.NotFound', 'errorMessage' => 'Specified route table does not exist.', 'description' => ''], + ['errorCode' => 'InvalidVSwitchId.NotFound', 'errorMessage' => 'Specified VSwitch does not exist.', 'description' => ''], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"PageSize\\": 10,\\n \\"RequestId\\": \\"F5BB78C8-5F41-464F-B9FF-5E0A7198BA26\\",\\n \\"PageNumber\\": 1,\\n \\"TotalCount\\": 1,\\n \\"CenGrantRules\\": {\\n \\"CbnGrantRule\\": [\\n {\\n \\"CenInstanceId\\": \\"cen-9gsm1q2yh1prpt****\\",\\n \\"CenOwnerId\\": 0,\\n \\"CreationTime\\": \\"2019-11-15T09:26:36Z\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 10\\n F5BB78C8-5F41-464F-B9FF-5E0A7198BA26\\n 1\\n 1\\n \\n cen-9gsm1q2yh1prpt****\\n 2019-11-15T09:26:36Z\\n \\n","errorExample":""}]', - 'title' => 'DescribeGrantRulesToCen', + 'title' => 'AssociateRouteTable', + 'description' => '**AssociateRouteTable** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call the [DescribeVSwitchAttributes](~~94567~~) operation to query the status of the task:'."\n" + ."\n" + .'* If the vSwitch is in the **Pending** state, the route table is being associated with the vSwitch.'."\n" + .'* If the vSwitch is in the **Available** state, the route table is associated with the vSwitch.'."\n", 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2024-12-31T01:51:54.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-09-06T06:04:22.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-08-18T04:04:41.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-08-03T07:35:14.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-06-21T07:30:18.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-06-09T08:58:31.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2022-01-21T06:22:28.000Z', 'description' => 'Error codes changed'], + ], + 'ramActions' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"DC668356-BCB4-42FD-9BC3-FA2B2E04B634\\"\\n}","errorExample":""},{"type":"xml","example":"\\r\\nDC668356-BCB4-42FD-9BC3-FA2B2E04B634\\r\\n","errorExample":"\\n\\n 62172DD5-6BAC-45DF-8D44-xxxxxxx\\n"}]', ], - 'ModifyVRouterAttribute' => [ - 'summary' => 'Modifies the name and description of a vRouter.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'AssociateRouteTableWithGateway' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -4726,55 +3722,55 @@ ], 'operationType' => 'readAndWrite', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'update', - ], + 'systemTags' => ['operationType' => 'create'], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the vRouter.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The region ID of the IPv4 gateway with which you want to associate the gateway route table.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'ap-southeast-6'], ], [ - 'name' => 'VRouterId', + 'name' => 'RouteTableId', 'in' => 'query', - 'schema' => [ - 'description' => 'The vRouter ID.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'vrt-gw0p7zigake75znix****', - ], + 'schema' => ['description' => 'The ID of the gateway route table.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'vtb-5ts0ohchwkp3dydt2****'], ], [ - 'name' => 'VRouterName', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The name of the vRouter.'."\n" - ."\n" - .'The name must be 1 to 128 characters in length and cannot start with `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'VRouter-1', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'You can use the client to generate the value, but you must make sure that it is unique among different requests. The token can contain only ASCII characters and cannot exceed 64 characters in length.'."\n" + ."\n" + .'> If you do not set this parameter, the system automatically uses **RequestId** as **ClientToken**. **RequestId** of each API request may be different.'."\n", 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-426655440000'], ], [ - 'name' => 'Description', + 'name' => 'DryRun', 'in' => 'query', - 'schema' => [ - 'description' => 'The description of the vRouter.'."\n" - ."\n" - .'The description must be 1 to 256 characters in length, and cannot start with `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'My VRouter', - ], + 'schema' => ['description' => 'Specifies whether to check the request without performing the operation. Valid values:'."\n" + ."\n" + .'* **true**: prechecks the request without performing the operation. The system prechecks the required parameters, request syntax, and limits. If the request fails the precheck, an error message is returned. If the request passes the precheck, the `DryRunOperation` error code is returned.'."\n" + .'* **false** (default): sends the request. After the request passes the precheck, a 2xx HTTP status code is returned and the operation is performed.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false'], + ], + [ + 'name' => 'GatewayId', + 'in' => 'query', + 'schema' => ['description' => 'The ID of the IPv4 gateway.'."\n" + ."\n" + .'The IPv4 gateway must be in the **Activated** state.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'ipv4gw-5tsnc6s4ogsedtp3k****'], + ], + [ + 'name' => 'GatewayType', + 'in' => 'query', + 'schema' => ['description' => 'The type of a gateway to be associated with a route table.', 'type' => 'string', 'required' => false, 'docRequired' => false, 'example' => 'Ipv4Gateway'], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => ['description' => 'The region ID of the IPv4 gateway with which you want to associate the gateway route table.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'ap-southeast-6'], ], ], 'responses' => [ @@ -4782,1818 +3778,916 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B45', - ], + 'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => 'F89C2176-8F10-55EF-90CF-CF99D1E3F816'], ], - 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidVRouterName.Malformed', - 'errorMessage' => 'Specified virtual router name is not valid.', - ], - [ - 'errorCode' => 'InvalidVRouterDescription.Malformed', - 'errorMessage' => 'Specified virtual router description is not valid.', - ], - [ - 'errorCode' => 'MissingParameter', - 'errorMessage' => 'Miss mandatory parameter.', - ], - [ - 'errorCode' => 'InvalidDescription.Malformed', - 'errorMessage' => 'Invalid description.', - ], - [ - 'errorCode' => 'Forbidden.VRouterNotFound', - 'errorMessage' => 'Specified virtual router is not found during access authentication.', - ], - ], - 404 => [ - [ - 'errorCode' => 'InvalidVRouterId.NotFound', - 'errorMessage' => 'Specified virtual router does not exist.', - ], + ['errorCode' => 'ResourceNotFound.Ipv4Gateway', 'errorMessage' => 'The specified resource ipv4Gateway is not found.', 'description' => 'The IPv4 gateway is not found and cannot be deleted.'], + ['errorCode' => 'IncorrectStatus.Ipv4Gateway', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => 'The IPv4 gateway is in an invalid state. Try again later.'], + ['errorCode' => 'ResourceAlreadyAssociated.Ipv4Gateway', 'errorMessage' => 'The specified resource %s is already associated.', 'description' => 'The IPv4 gateway is already associated.'], + ['errorCode' => 'ResourceNotFound.GatewayRouteTable', 'errorMessage' => 'The specified resource GatewayRouteTable is not found.', 'description' => 'The gateway route table cannot be found.'], + ['errorCode' => 'IncorrectStatus.GatewayRouteTable', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => 'The gateway route table is in an invalid state. Try again later.'], + ['errorCode' => 'ResourceAlreadyAssociated.GatewayRouteTable', 'errorMessage' => 'The specified resource %s is already associated.', 'description' => 'The gateway route table is already associated with a gateway of the same type.'], + ['errorCode' => 'OperationDenied.Ipv4GatewayNotActive', 'errorMessage' => 'The operation is not allowed because of ipv4Gateway [%s] is not active.', 'description' => 'The operation is not allowed because the IPv4 gateway is not activated.'], + ['errorCode' => 'OperationDenied.RouteTableTypeIncorrect', 'errorMessage' => 'The operation is not allowed because of routeTableType is incorrect.', 'description' => 'The operation is not allowed because the type of route table is not supported.'], + ['errorCode' => 'ResourceNotFound.RouteTable', 'errorMessage' => 'The specified resource gatewayRouteTable is not found.', 'description' => 'The gateway route table does not exist.'], + ['errorCode' => 'OperationDenied.GatewayAndTableNotInOneVpc', 'errorMessage' => 'The operation is not allowed because of GatewayAndTableNotInOneVpc.', 'description' => 'The gateway route table and gateway do not belong to the same VPC.'], + ['errorCode' => 'IncorrectStatus.RouteTable', 'errorMessage' => 'The status of the specified route table is incorrect.', 'description' => ''], + ['errorCode' => 'IllegalParam.GatewayType', 'errorMessage' => 'The param of %s is illegal.', 'description' => 'Invalid GatewayType value.'], + ['errorCode' => 'UnsupportedFeature.Ipv6GatewayRouteTable', 'errorMessage' => 'The feature of %s is not supported.', 'description' => 'The border gateway route table cannot be associated with the gateway.'], + ['errorCode' => 'OperationDenied.IngressRoutingNotSupportAnycast', 'errorMessage' => 'The operation is not allowed because ingress routing not support anycast.', 'description' => 'The operation is not allowed because ingress routing not support anycast.'], + ['errorCode' => 'OperationDenied.ExistPublicIpv6IpInVpc', 'errorMessage' => 'Operation denied because IPV6 public ip exists in VPC.', 'description' => 'The operation failed because the ipv6 public IP exists in the VPC.'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B45\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 54B48E3D-DF70-471B-AA93-08E683A1B45\\n","errorExample":""}]', - 'title' => 'ModifyVRouterAttribute', - 'description' => 'You cannot repeatedly call the **ModifyVRouterAttribute** operation within a specific period of time.'."\n", - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"F89C2176-8F10-55EF-90CF-CF99D1E3F816\\"\\n}","errorExample":""},{"type":"xml","example":"\\n F89C2176-8F10-55EF-90CF-CF99D1E3F816\\n","errorExample":""}]', + 'title' => 'AssociateRouteTableWithGateway', + 'summary' => 'Associates a gateway route table with an IPv4 gateway in the same virtual private cloud (VPC).', + 'changeSet' => [ + ['createdAt' => '2025-03-20T02:56:45.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-12-31T01:51:54.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-08-30T03:22:01.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2023-06-30T05:52:49.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2021-11-17T10:03:13.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2021-11-02T02:19:49.000Z', 'description' => 'OpenAPI offline'], + ], + 'ramActions' => [], ], - 'DescribeVRouters' => [ - 'summary' => 'Queries vRouters in a region.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'AssociateRouteTablesWithVpcGatewayEndpoint' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'readAndWrite', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'list', - ], + 'systemTags' => ['operationType' => 'create', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ - 'name' => 'VRouterId', + 'name' => 'EndpointId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the vRouter.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'vrt-bp1lhl0taikrteen****', - ], + 'schema' => ['title' => '', 'description' => 'The ID of the gateway endpoint instance with which you want to associate route tables.', 'type' => 'string', 'required' => true, 'example' => 'vpce-m5e371h5clm3uadih****'], ], [ - 'name' => 'RegionId', + 'name' => 'RouteTableIds', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => 'The region ID of the vRouter that you want to query.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', + 'title' => '', + 'description' => 'The ID of the route table to associate. Valid values of **N**: **1** to **20**. You can associate up to 20 route tables at a time.', + 'type' => 'array', + 'items' => ['description' => 'The ID of the route table to associate. Valid values of **N**: **1** to **20**. You can associate up to 20 route tables at a time.', 'type' => 'string', 'required' => false, 'example' => 'vtb-m5elgtm3aj586iitr****', 'title' => ''], 'required' => true, - 'example' => 'cn-hangzhou', + 'example' => 'vtb-m5elgtm3aj586iitr****', + 'maxItems' => 20, ], ], [ - 'name' => 'PageNumber', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The number of the page to return. Default value: **1**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'minimum' => '1', - 'example' => '1', - ], + 'schema' => ['title' => '', 'description' => 'The client token that is used to ensure the idempotence of the request. You can use the client to generate the token, but you must make sure that the token is unique among different requests. The **ClientToken** value can contain only ASCII characters and cannot exceed 64 characters in length.'."\n" + ."\n" + .'> If you do not specify this parameter, the system automatically uses the **RequestId** of the API request as the **ClientToken**. The **RequestId** may be different for each API request.', 'type' => 'string', 'required' => false, 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3FF3898'], ], [ - 'name' => 'PageSize', + 'name' => 'DryRun', 'in' => 'query', - 'schema' => [ - 'description' => 'The number of entries to return on each page. Maximum value: **50**. Default value: **10**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '50', - 'minimum' => '1', - 'example' => '10', - 'default' => '10', - ], + 'schema' => ['title' => '', 'description' => 'Specifies whether to perform a dry run. Valid values:'."\n" + ."\n" + .'- **true**: sends a dry run request without associating route tables with the gateway endpoint. The system checks the AccessKey pair, the authorization of the Resource Access Management (RAM) user, and the required parameters. 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.'."\n" + ."\n" + .'- **false** (default): sends a normal request. After the request passes the dry run, a 2xx HTTP status code is returned and the route tables are associated.', 'type' => 'boolean', 'required' => false, 'example' => 'false'], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => ['title' => '', 'description' => 'The region ID of the gateway endpoint with which you want to associate route tables.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.', 'type' => 'string', 'required' => true, 'example' => 'cn-hangzhou'], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'title' => '', + 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'PageSize' => [ - 'description' => 'The number of entries returned per page.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => '0ED8D006-F706-4D23-88ED-E11ED28DCAC0', - ], - 'PageNumber' => [ - 'description' => 'The page number of the returned page.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'TotalCount' => [ - 'description' => 'The number of entries returned.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'VRouters' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'VRouter' => [ - 'description' => 'The details about the vRouters.'."\n", - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'VpcId' => [ - 'description' => 'The ID of the virtual private cloud (VPC) to which the vRouter belongs.'."\n", - 'type' => 'string', - 'example' => 'vpc-rj905wotv6y030t1****', - ], - 'CreationTime' => [ - 'description' => 'The time when the vRouter was created.'."\n", - 'type' => 'string', - 'example' => '2018-03-22T07:46:20Z', - ], - 'VRouterId' => [ - 'description' => 'The ID of the vRouter.'."\n", - 'type' => 'string', - 'example' => 'vrt-rj98khsezfqpjrxmv****', - ], - 'Description' => [ - 'description' => 'The description of the vRouter.'."\n", - 'type' => 'string', - 'example' => 'abc', - ], - 'VRouterName' => [ - 'description' => 'The name of the vRouter.'."\n", - 'type' => 'string', - 'example' => 'doctest', - ], - 'RegionId' => [ - 'description' => 'The region to which the vRouter belongs.'."\n", - 'type' => 'string', - 'example' => 'cn-hangzhou', - ], - 'RouteTableIds' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'RouteTableId' => [ - 'description' => 'The IDs of the route tables.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The ID of the route table.', - 'type' => 'string', - 'example' => '{ "RouteTableId": [ "vtb-rj9ybe3y0u41mmjsp****"] }', - ], - ], - ], - ], - ], - 'description' => '', - ], - ], - ], - ], + 'RequestId' => ['title' => '', 'description' => 'The request ID.', 'type' => 'string', 'example' => '59BDDA2D-FB52-59F9-9DC5-5EA7D6808B8E'], ], - 'description' => '', + 'example' => '', ], ], ], 'errorCodes' => [ - 403 => [ - [ - 'errorCode' => 'Forbidden', - 'errorMessage' => 'User not authorized to operate on the specified resource.', - ], - ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"PageSize\\": 10,\\n \\"RequestId\\": \\"0ED8D006-F706-4D23-88ED-E11ED28DCAC0\\",\\n \\"PageNumber\\": 1,\\n \\"TotalCount\\": 1,\\n \\"VRouters\\": {\\n \\"VRouter\\": [\\n {\\n \\"VpcId\\": \\"vpc-rj905wotv6y030t1****\\",\\n \\"CreationTime\\": \\"2018-03-22T07:46:20Z\\",\\n \\"VRouterId\\": \\"vrt-rj98khsezfqpjrxmv****\\",\\n \\"Description\\": \\"abc\\",\\n \\"VRouterName\\": \\"doctest\\",\\n \\"RegionId\\": \\"cn-hangzhou\\",\\n \\"RouteTableIds\\": {\\n \\"RouteTableId\\": [\\n \\"{ \\\\\\"RouteTableId\\\\\\": [ \\\\\\"vtb-rj9ybe3y0u41mmjsp****\\\\\\"] }\\"\\n ]\\n }\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 10\\n 0ED8D006-F706-4D23-88ED-E11ED28DCAC0\\n 1\\n 1\\n \\n vpc-rj905wotv6y030t1****\\n 2018-03-22T07:46:20Z\\n vrt-rj98khsezfqpjrxmv****\\n abc\\n doctest\\n cn-hangzhou\\n { \\"RouteTableId\\": [ \\"vtb-rj9ybe3y0u41mmjsp****\\"] }\\n \\n","errorExample":""}]', - 'title' => 'DescribeVRouters', + 400 => [ + ['errorCode' => 'OperationFailed.ConcurrentOperation', 'errorMessage' => 'The operation is failed because of concurrent operation.', 'description' => ''], + ['errorCode' => 'IdempotentParameterMismatch', 'errorMessage' => 'The request uses the same client token as a previous, but non-identical request. Do not reuse a client token with different requests, unless the requests are identical.', 'description' => ''], + ['errorCode' => 'ResourceNotFound.GatewayEndpoint', 'errorMessage' => 'The specified resource gateway endpoint is not found.', 'description' => 'The error message returned because the specified gateway endpoint does not exist.'], + ['errorCode' => 'IncorrectStatus.GatewayEndpoint', 'errorMessage' => 'The status of GatewayEndpoint [%s] is incorrect.', 'description' => ''], + ['errorCode' => 'ResourceNotFound.ServiceName', 'errorMessage' => 'The specified resource service name is not found.', 'description' => ''], + ['errorCode' => 'ResourceNotFound.PrefixList', 'errorMessage' => 'The specified resource prefixList is not found.', 'description' => ''], + ['errorCode' => 'ResourceNotFound.RouteTable', 'errorMessage' => 'The specified resource routetable is not found.', 'description' => ''], + ['errorCode' => 'Mismatch.VpcAndRouteTable', 'errorMessage' => 'The vpc and routetable are mismatched.', 'description' => ''], + ['errorCode' => 'IncorrectStatus.RouteTable', 'errorMessage' => 'The status of route table [%s] is incorrect.', 'description' => ''], + ['errorCode' => 'ResourceAlreadyExist.Association', 'errorMessage' => 'The specified resource of [%s] is already exist.', 'description' => ''], + ['errorCode' => 'VPC_ROUTE_ENTRY_CIDR_BLOCK_DUPLICATE', 'errorMessage' => 'Specified CIDR block is already exists.', 'description' => ''], + ['errorCode' => 'VPC_SWITCH_STATUS_ERROR', 'errorMessage' => 'vSwitch status error, %s', 'description' => ''], + ['errorCode' => 'QuotaExceeded.VpcRouteEntryNum', 'errorMessage' => 'The quota of vpc route entry num is exceeded, usage %s/%s.', 'description' => ''], + ['errorCode' => 'OperationUnsupported.DestinationCidrBlockOverlapWithVSwitch', 'errorMessage' => 'The operation is failed because of destination CIDR block is in the CIDR of the VSwitch.', 'description' => ''], + ['errorCode' => 'SystemBusy', 'errorMessage' => 'System is busy, please try again later.', 'description' => ''], + ['errorCode' => 'Forbbiden', 'errorMessage' => 'User not authorized to operate on the specified resource.', 'description' => ''], + ['errorCode' => 'InvalidRegionId.NotFound', 'errorMessage' => 'The regionId provided does not exist in our records.', 'description' => 'The RegionId parameter is set to an invalid value. Specify a valid value and try again.'], + ['errorCode' => 'IncorrectStatus.Vpc', 'errorMessage' => 'The status of vpc [%s] is incorrect.', 'description' => ''], + ['errorCode' => 'IncorrectStatus.CenStatus', 'errorMessage' => 'The status of vpc cenStatus [%s] is incorrect.', 'description' => ''], + ['errorCode' => 'UnsupportedFeature.RouterTableType', 'errorMessage' => 'The type of router table is not supported.', 'description' => 'The specified route table type is not supported.'], + ], + ], + 'staticInfo' => ['returnType' => 'asynchronous', 'callback' => 'Vpc::2016-04-28::ListVpcGatewayEndpoints', 'callbackInterval' => 3000, 'maxCallbackTimes' => 10], + 'title' => 'Associate route tables with a VPC gateway endpoint', + 'summary' => 'Calls the AssociateRouteTablesWithVpcGatewayEndpoint operation to associate route tables with a gateway endpoint.', + 'description' => 'Before you call this operation to associate route tables with a gateway endpoint, take note of the following information:'."\n" + ."\n" + .'- The gateway endpoint instance with which you want to associate route tables cannot be in a transient state, such as **Creating**, **Modifying**, **Associating** (attaching), **Dissociating** (detaching), or **Deleting** (deleting).'."\n" + .'- The route tables that you want to associate cannot be in a transient state, such as **Creating**, **Modifying**, **Associating** (attaching), **Dissociating** (detaching), or **Deleting** (deleting).'."\n" + .'- The route tables and the gateway endpoint must belong to the same VPC.'."\n" + .'- The route tables to be associated cannot be shared route tables.'."\n" + .'- Virtual Border Router (VBR) route tables are not supported.'."\n" + .'- You can associate up to 20 route tables at a time.'."\n" + .'- The **AssociateRouteTablesWithVpcGatewayEndpoint** operation is asynchronous. After you send a request, the system returns an endpoint instance ID, but the route tables have not been associated with the gateway endpoint yet. The association task is still running in the background. You can call [GetVpcGatewayEndpointAttribute](~~311017~~) to query the association status of the route tables and the gateway endpoint:'."\n" + .' - If the route tables and the gateway endpoint are in the **Associating** state, the route tables are being associated with the gateway endpoint.'."\n" + .' - If the route tables and the gateway endpoint are in the **Created** state, the route tables have been associated with the gateway endpoint.'."\n" + .'- The **AssociateRouteTablesWithVpcGatewayEndpoint** operation does not support concurrent association of the same route table with a gateway endpoint.', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'ListVSwitchCidrReservations' => [ - 'summary' => 'Queries the CIDR reservation information about vSwitches.', - 'methods' => [ - 'get', - 'post', + 'changeSet' => [ + ['createdAt' => '2023-12-07T09:32:08.000Z', 'description' => 'Error codes changed'], ], - 'schemes' => [ - 'http', - 'https', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '600', 'countWindow' => 60, 'regionId' => '*', 'api' => 'AssociateRouteTablesWithVpcGatewayEndpoint'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], + ], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'vpc:AssociateRouteTablesWithVpcGatewayEndpoint', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'GatewayEndpoint', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:gatewayendpoint/{#GatewayEndpointId}'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"59BDDA2D-FB52-59F9-9DC5-5EA7D6808B8E\\"\\n}","type":"json"}]', + ], + 'AssociateVpcCidrBlock' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'list', - 'riskType' => 'none', - 'chargeType' => 'free', - ], + 'operationType' => 'readAndWrite', + 'systemTags' => ['operationType' => 'create', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ - 'name' => 'Tags', + 'name' => 'RegionId', 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => 'The tags.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => 'The tag key. You can specify at most 20 tag keys. The tag key cannot be an empty string.'."\n" - ."\n" - .'A tag key can be up to 128 characters in length. It cannot start with aliyun or acs:, and cannot contain http:// or https://.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'FinanceDept', - ], - 'Value' => [ - 'description' => 'The tag value. You can specify at most 20 tag values. The tag value can be an empty string.'."\n" - ."\n" - .'The tag value can be up to 128 characters in length, and cannot start with acs: or aliyun. It cannot contain http:// or https://.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'FinanceJoshua', - ], - ], - 'required' => false, - ], - 'required' => false, - 'maxItems' => 10, - ], + 'schema' => ['description' => 'The region ID of the VPC to which you want to add a secondary CIDR block. '."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'ch-hangzhou', 'title' => ''], ], [ - 'name' => 'VSwitchId', + 'name' => 'VpcId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the vSwitch for which you want to query reserved CIDR blocks.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'vsw-25navfgbue4g****', - ], + 'schema' => ['description' => 'The ID of the VPC to which you want to add a secondary CIDR block.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'vpc-o6wrloqsdqc9io3mg****', 'title' => ''], ], [ - 'name' => 'VSwitchCidrReservationIds', + 'name' => 'SecondaryCidrBlock', 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'title' => '前缀列表的实例ID', - 'description' => 'The ID of the reserved CIDR block. You can specify at most 10 IDs.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The ID of the reserved CIDR block. You can specify at most 10 IDs.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'vcr-bp1m12saqteraw3rp****', - ], - 'required' => false, - 'maxItems' => 100, - ], + 'schema' => ['description' => 'The secondary IPv4 CIDR block to add. The CIDR block must meet the following requirements:'."\n" + ."\n" + .'- Use a private IPv4 address specified in RFC 1918 as the secondary IPv4 CIDR block of the virtual private cloud (VPC). The subnet mask must be 16 to 28 bits in length. Examples: 10.0.0.0/16, 172.16.0.0/16, and 192.168.0.0/16.'."\n" + .'- You can use a custom CIDR block other than 100.64.0.0/10, 224.0.0.0/4, 127.0.0.0/8, 169.254.0.0/16, or their subnets as the secondary IPv4 CIDR block of the virtual private cloud (VPC).'."\n" + ."\n" + .'Configuration limits:'."\n" + .'- The CIDR block cannot start with 0. The subnet mask must be 16 to 28 bits in length.'."\n" + ."\n" + .'- The secondary CIDR block cannot overlap with the primary CIDR block or existing secondary CIDR blocks of the VPC.'."\n" + ."\n" + .'> If you do not use an IPAM pool to add a secondary CIDR block to the VPC, you must specify either the **SecondaryCidrBlock** parameter or the **Ipv6CidrBlock** parameter, but not both.', 'type' => 'string', 'required' => false, 'example' => '192.168.0.0/16', 'title' => ''], ], [ - 'name' => 'VSwitchCidrReservationType', + 'name' => 'SecondaryCidrMask', 'in' => 'query', - 'schema' => [ - 'description' => 'The type of the reserved CIDR block. Set the value to **prefix**.'."\n" - ."\n" - .'> When you allocate CIDR blocks, or enable the service to automatically allocate CIDR blocks to elastic network interfaces (ENIs), the CIDR blocks to allocate must fall into the reserved CIDR block. If the reserved CIDR is exhausted, an error message is returned.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'prefix', - ], + 'schema' => ['description' => 'The subnet mask used to add a secondary IPv4 CIDR block from an IPAM pool to the VPC.'."\n" + ."\n" + .'> When you use an IPAM pool to add a secondary IPv4 CIDR block to the VPC, you must specify at least one of SecondaryCidrBlock and SecondaryCidrMask.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '16', 'title' => ''], + ], + [ + 'name' => 'IPv6CidrBlock', + 'in' => 'query', + 'schema' => ['description' => 'The specified IPv6 CIDR block of the VPC.'."\n" + ."\n" + .'> You cannot specify both **SecondaryCidrBlock** and **Ipv6CidrBlock**.', 'type' => 'string', 'required' => false, 'example' => '2408:XXXX:0:6a::/56', 'title' => ''], + ], + [ + 'name' => 'Ipv6Isp', + 'in' => 'query', + 'schema' => ['description' => 'The type of the IPv6 CIDR block of the VPC. Valid values:'."\n" + ."\n" + .'- **BGP** (default): Alibaba Cloud BGP IPv6.'."\n" + .'- **ChinaMobile**: China Mobile (single ISP).'."\n" + .'- **ChinaUnicom**: China Unicom (single ISP).'."\n" + .'- **ChinaTelecom**: China Telecom (single ISP).'."\n" + ."\n" + .'> If your account is included in the China single-ISP bandwidth whitelist, you can set this parameter to **ChinaTelecom** (China Telecom), **ChinaUnicom** (China Unicom), or **ChinaMobile** (China Mobile).', 'type' => 'string', 'required' => false, 'example' => 'BGP', 'title' => ''], ], [ 'name' => 'IpVersion', 'in' => 'query', - 'schema' => [ - 'description' => 'The IP version of the reserved CIDR block. Valid values:'."\n" - ."\n" - .'* **IPv4** (default)'."\n" - .'* **IPv6**'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'IPv4', - ], + 'schema' => ['description' => 'The version of the IP address. Valid values:'."\n" + ."\n" + .'- **IPV4**: IPv4 address.'."\n" + .'- **IPV6**: IPv6 address. When **IpVersion** is set to **IPV6** and **SecondaryCidrBlock** is not specified, a secondary IPv6 CIDR block is added to the VPC.', 'type' => 'string', 'required' => false, 'example' => 'IPV4', 'title' => ''], ], [ - 'name' => 'NextToken', + 'name' => 'IpamPoolId', 'in' => 'query', - 'schema' => [ - 'description' => 'The pagination token that is used in the next request to retrieve a new page of results. Valid values:'."\n" - ."\n" - .'* You do not need to specify this parameter for the first request.'."\n" - .'* You must specify the token that is obtained from the previous query as the value of NextToken.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', - ], + 'schema' => ['description' => 'The instance ID of the IPAM pool.', 'type' => 'string', 'required' => false, 'example' => 'ipam-pool-sycmt3p2a9v63i****', 'title' => ''], ], [ - 'name' => 'MaxResults', + 'name' => 'Ipv6CidrMask', 'in' => 'query', - 'schema' => [ - 'description' => 'The number of entries to return on each page. Valid values: **1** to **100**. Default value: **10**.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'maximum' => '100', - 'minimum' => '1', - 'example' => '10', - 'default' => '10', - ], + 'schema' => ['description' => 'The subnet mask used to add an IPv6 CIDR block from an IPAM pool to the VPC.'."\n" + ."\n" + .'> When you use an IPAM pool to add a secondary IPv6 CIDR block to the VPC, you must specify at least one of IPv6CidrBlock and Ipv6CidrMask.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '56', 'title' => ''], ], [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'title' => '地域', - 'description' => 'The region ID of the vSwitch.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The region ID of the VPC to which you want to add a secondary CIDR block. '."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'ch-hangzhou', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'The request ID.'."\n", + 'description' => 'The request ID.', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B45', - ], - 'NextToken' => [ - 'description' => 'The returned value of NextToken is a pagination token, which can be used in the next request to retrieve a new page of results. Valid values:'."\n" - ."\n" - .'* If **NextToken** is empty, no next page exists.'."\n" - .'* If a value is returned for **NextToken**, the value is the token that determines the start point of the next query.'."\n", - 'type' => 'string', - 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', - ], - 'TotalCount' => [ - 'description' => 'The total number of entries returned.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '10', - ], - 'MaxResults' => [ - 'description' => 'The number of entries to return per page.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '10', - ], - 'VSwitchCidrReservations' => [ - 'description' => 'A list of reserved CIDR blocks.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'VpcId' => [ - 'description' => 'The virtual private cloud (VPC) to which the reserved CIDR block belongs.'."\n", - 'type' => 'string', - 'example' => 'vpc-bp1wdz2pdhgurz1od****', - ], - 'VSwitchId' => [ - 'title' => '交换机实例Id', - 'description' => 'The ID of the vSwitch to which the reserved CIDR block belongs.'."\n", - 'type' => 'string', - 'example' => 'vsw-25navfgbue4g****', - ], - 'VSwitchCidrReservationId' => [ - 'title' => '预留网段实例Id', - 'description' => 'The ID of the reserved CIDR block.'."\n", - 'type' => 'string', - 'example' => 'vcr-bp1m12saqteraw3rp****', - ], - 'VSwitchCidrReservationCidr' => [ - 'title' => '预留网段CIdrBlock', - 'description' => 'The reserved CIDR block.'."\n", - 'type' => 'string', - 'example' => '192.168.1.64/28', - ], - 'VSwitchCidrReservationName' => [ - 'title' => '预留网段名称', - 'description' => 'The name of the reserved CIDR block.'."\n", - 'type' => 'string', - 'example' => 'ReservationName', - ], - 'VSwitchCidrReservationDescription' => [ - 'title' => '预留网段描述', - 'description' => 'The description of the reserved CIDR block.'."\n", - 'type' => 'string', - 'example' => 'ReservationDescription', - ], - 'IpVersion' => [ - 'title' => 'IpVersion', - 'description' => 'The IP version of the reserved CIDR block. Valid values:'."\n" - ."\n" - .'* **IPv4** (default)'."\n" - .'* **IPv6**'."\n", - 'type' => 'string', - 'example' => 'IPv4', - ], - 'CreationTime' => [ - 'title' => '创建时间', - 'description' => 'The time when the reserved CIDR block was created.'."\n", - 'type' => 'string', - 'example' => '2023-03-14T10:02:37Z', - ], - 'Type' => [ - 'title' => '预留网段类型', - 'description' => 'The type of the reserved CIDR block. Valid value: **prefix**. CIDR blocks are allocated from the reserved CIDR block.'."\n", - 'type' => 'string', - 'example' => 'prefix', - ], - 'AvailableCidrCount' => [ - 'title' => '可用地址段数量', - 'description' => 'The number of available prefixes in the reserved CIDR block.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'AssignedCidrCount' => [ - 'title' => '已使用地址段数量', - 'description' => 'The number of used prefixes in the reserved CIDR block.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '6', - ], - 'Status' => [ - 'description' => 'The status of the reserved CIDR block. Valid values:'."\n" - ."\n" - .'* **Assigning**'."\n" - .'* **Assigned**'."\n" - .'* **Releasing**'."\n" - .'* **Released**'."\n", - 'type' => 'string', - 'example' => 'Assigned', - ], - 'Tags' => [ - 'description' => 'The tags.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => 'The tag key.'."\n", - 'type' => 'string', - 'example' => 'FinanceDept', - ], - 'Value' => [ - 'description' => 'The tag value.'."\n", - 'type' => 'string', - 'example' => 'FinanceJoshua', - ], - ], - ], - ], - ], - ], - ], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'C1221A1F-2ACD-4592-8F27-474E02883159', 'title' => ''], + 'CidrBlock' => ['description' => 'The secondary CIDR block added to the VPC.', 'type' => 'string', 'example' => '192.168.0.0/16', 'title' => ''], + 'IpVersion' => ['description' => 'The IP address version of the secondary CIDR block.', 'type' => 'string', 'example' => 'IPV4', 'title' => ''], ], + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'IllegalParam.NextToken', - 'errorMessage' => 'The specified NextToken is invalid.', - ], + ['errorCode' => 'InvalidVpc.NotFound', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'IncorrectStatus.Vpc', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'ParamExclusive.SecondaryCidrAndIpv6Cidr', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'OperationUnsupported.VpcMultiCidr', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'MissingParam.SecondaryCidrOrIpv6Cidr', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'OperationUnsupported.IPv6ULA', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'OperationFailed.Ipv6CidrBlockExisted', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'InvalidIpv6ULACidrBlock.Malformed', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'QuotaExceeded.GUAIpv6CidrBlock', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'IllegalParam.Ipv6CidrType', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'OperationUnsupported.OnlyULA', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'InvalidCidrBlock.Malformed', 'errorMessage' => 'Specified CIDR block is not valid.', 'description' => ''], + ['errorCode' => 'IllegalParam.SecondaryCidrBlock', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'Duplicated.SecondaryCidrBlock', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'OperationFailed.ConflictWithEntry', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'QuotaExceeded.VpcMultiCidr', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'MissingParam.SecondaryCidrBlockOrIpv6CidrBlock', 'errorMessage' => 'Either SecondaryCidrBlock or Ipv6CidrBlock must be specified.', 'description' => 'The secondary CIDR block or the IPv6 CIDR block is not specified.'], + ['errorCode' => 'MissingParam.VpcId', 'errorMessage' => 'You must specify VpcId.', 'description' => 'You must specify VpcId.'], + ['errorCode' => 'UnsupportedFeature.Ipv6Isp', 'errorMessage' => 'The Ipv6Isp feature is not supported.', 'description' => 'The specified IPv6 ISP is not supported.'], + ['errorCode' => 'IllegalParam.IpVersion', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'OperationDenied.GUAIpv6CidrBlock', 'errorMessage' => 'The operation is not allowed because this ipv6 CIDR is not reserved.', 'description' => ''], + ['errorCode' => 'OperationFailed.IPv6CidrNotReserved', 'errorMessage' => 'Operation failed because this ipv6 cidr is not reserved.', 'description' => ''], + ['errorCode' => 'InvalidCidrBlock', 'errorMessage' => 'Specified CIDR block is already exists.', 'description' => ''], + ['errorCode' => 'IllegalParam.IpamPool', 'errorMessage' => 'The specified IPAM pool cannot be empty.', 'description' => 'The IPAM pool cannot be empty.'], + ['errorCode' => 'MissingParam.SecondaryCidrMask', 'errorMessage' => 'The parameter SecondaryCidrMask must be input.', 'description' => 'SecondaryCidrMask is required.'], + ['errorCode' => 'IllegalParam.SecondaryCidrMask', 'errorMessage' => 'The specified Secondary CIDR Mask is illegal.', 'description' => 'Invalid SecondaryCidrMask.'], + ['errorCode' => 'OperationDenied.RequestRegionInvalid', 'errorMessage' => 'The operation is not allowed because the request is not invoked in the region of the IPAM pool.', 'description' => 'The operation is not allowed because the request is not invoked in the region of the IPAM pool.'], + ['errorCode' => 'OperationDenied.IpamPoolNotInRegion', 'errorMessage' => 'The operation is not allowed because the IPAM pool not in specific region does not support creating VPC or associating CIDR for VPC.', 'description' => 'The operation is not allowed because the IPAM pool not in specific region does not support creating VPC or associating CIDR for VPC.'], + ['errorCode' => 'MissingParam.CidrOrCidrMask', 'errorMessage' => 'The CIDR or CIDR Mask must be input.', 'description' => 'The CIDR or CIDR Mask must be input.'], + ['errorCode' => 'OperationDenied.CidrInExcludeCidrs', 'errorMessage' => 'The operation is not allowed because the input CIDR is within the illegal CIDRs.', 'description' => 'The operation is not allowed because the input CIDR is within the illegal CIDRs.'."\n"], + ['errorCode' => 'OperationDenied.AvailableCidrInsufficient', 'errorMessage' => 'The operation is not allowed because available CIDR is insufficient.', 'description' => 'The operation is not allowed because available CIDR is insufficient.'], + ['errorCode' => 'UnsupportedFeature.Ipam', 'errorMessage' => 'IPAM is not supported in this region.', 'description' => 'The IPAM feature is not supported in this region.'], + ['errorCode' => 'UnsupportedFeature.VpcIpamIpv6', 'errorMessage' => 'The specified IPAM pool does not support the IPv6 feature.', 'description' => 'The specified IPAM pool does not support the IPv6 feature.'], + ['errorCode' => 'OperationDenied.CidrUnavailableInPool', 'errorMessage' => 'The operation is not allowed because the CIDR is unavailable in the IPAM pool.', 'description' => 'The operation is not allowed because the CIDR is unavailable in the IPAM pool.'], + ['errorCode' => 'InvalidIpv6CidrBlock.Malformed', 'errorMessage' => 'Param Ipv6CidrBlock is malformed.', 'description' => 'IPv6 network segment is illegal'], + ['errorCode' => 'MissingParam.IpVersion', 'errorMessage' => 'The parameter IpVersion is missing.', 'description' => 'The parameter IpVersion is missing.'], + ['errorCode' => 'Mismatch.IpVersionAndIpamPoolIpVersion', 'errorMessage' => 'The input IpVersion is inconsistent with the IpVersion of the input IPAM pool.', 'description' => 'The input IpVersion is inconsistent with the IpVersion of the input IPAM pool.'], + ['errorCode' => 'IllegalParam.Ipv6CidrBlock', 'errorMessage' => 'The parameter of Ipv6CidrBlock is illegal.', 'description' => 'The Ipv6CidrBlock parameter is invalid.'], + ['errorCode' => 'OperationFailed.Ipv6CidrBlockOverLapped', 'errorMessage' => 'The input IPv6 CIDR block overlaps with the existing ones.', 'description' => 'The input IPv6 CIDR block overlaps with the existing ones.'], + ['errorCode' => 'QuotaExceeded.IPv6CidrBlock', 'errorMessage' => 'The number of IPv6 CIDR blocks in the VPC exceeds the limit.', 'description' => 'The number of IPv6 CIDR blocks in the VPC exceeds the limit.'], + ['errorCode' => 'OperationDenied.MaskOfCidrIsNotAllowed', 'errorMessage' => 'The input mask or mask of the input CIDR is not allowed.', 'description' => 'The input mask or mask of the input CIDR is not allowed.'], + ['errorCode' => 'IllegalParam.Ipv6Isp', 'errorMessage' => 'The specified Ipv6Isp is illegal.', 'description' => 'The specified Ipv6Isp is illegal.'], + ['errorCode' => 'IllegalParam.CidrMask', 'errorMessage' => 'The input CIDR mask is illegal.', 'description' => 'The input CIDR mask is illegal.'], + ], + 403 => [ + ['errorCode' => 'Forbbiden', 'errorMessage' => 'User not authorized to operate on the specified resource.', 'description' => 'User not authorized to operate on the specified resource.'], + ], + [ + ['errorCode' => 'ResourceNotFound.IpamPool', 'errorMessage' => 'The dependent IPAM pool is not found.', 'description' => 'The dependent IPAM pool is not found.'], + ], + 500 => [ + ['errorCode' => 'OperationFailed.ResourceNotEnough', 'errorMessage' => 'Insufficient resources.', 'description' => 'The resources that you request are insufficient. If you still want to request the resources, submit a ticket.'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'title' => 'Add a secondary CIDR block to a VPC', + 'summary' => 'Adds a secondary CIDR block to a VPC.', + 'description' => '- The maximum number of secondary CIDR blocks that can be added to a VPC is as follows:'."\n" + .' - A maximum of 5 secondary IPv4 CIDR blocks can be added to a VPC.'."\n" + .' - A maximum of 5 secondary IPv6 CIDR blocks can be added to a VPC.'."\n" + ."\n" + .'- The **AssociateVpcCidrBlock** operation does not support concurrently adding secondary CIDR blocks to the same VPC.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2025-01-16T06:58:55.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2024-12-30T01:56:22.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-12-18T11:29:07.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-08-28T05:52:46.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-05-21T03:43:17.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-04-25T12:15:52.000Z', 'description' => 'Error codes changed, Request parameters changed'], + ['createdAt' => '2023-08-24T07:18:02.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-04-14T10:13:04.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-04-13T11:16:21.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2021-11-17T10:03:13.000Z', 'description' => 'Error codes changed, Request parameters changed'], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B45\\",\\n \\"NextToken\\": \\"FFmyTO70tTpLG6I3FmYAXGKPd****\\",\\n \\"TotalCount\\": 10,\\n \\"MaxResults\\": 10,\\n \\"VSwitchCidrReservations\\": [\\n {\\n \\"VpcId\\": \\"vpc-bp1wdz2pdhgurz1od****\\",\\n \\"VSwitchId\\": \\"vsw-25navfgbue4g****\\",\\n \\"VSwitchCidrReservationId\\": \\"vcr-bp1m12saqteraw3rp****\\",\\n \\"VSwitchCidrReservationCidr\\": \\"192.168.1.64/28\\",\\n \\"VSwitchCidrReservationName\\": \\"ReservationName\\",\\n \\"VSwitchCidrReservationDescription\\": \\"ReservationDescription\\",\\n \\"IpVersion\\": \\"IPv4\\",\\n \\"CreationTime\\": \\"2023-03-14T10:02:37Z\\",\\n \\"Type\\": \\"prefix\\",\\n \\"AvailableCidrCount\\": 10,\\n \\"AssignedCidrCount\\": 6,\\n \\"Status\\": \\"Assigned\\",\\n \\"Tags\\": [\\n {\\n \\"Key\\": \\"FinanceDept\\",\\n \\"Value\\": \\"FinanceJoshua\\"\\n }\\n ]\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\n 54B48E3D-DF70-471B-AA93-08E683A1B45\\n FFmyTO70tTpLG6I3FmYAXGKPd****\\n 10\\n 10\\n \\n vpc-bp1wdz2pdhgurz1od****\\n vsw-25navfgbue4g****\\n vcr-bp1m12saqteraw3rp****\\n 192.168.1.64/28\\n ReservationName\\n ReservationDescription\\n IPv4\\n 2023-03-14T10:02:37Z\\n prefix\\n 10\\n 6\\n Assigned\\n \\n","errorExample":""}]', - 'title' => 'ListVSwitchCidrReservations', - ], - 'CreateVSwitchCidrReservation' => [ - 'summary' => 'Creates a reserved CIDR block for a vSwitch.', - 'methods' => [ - 'post', - 'get', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'AssociateVpcCidrBlock'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'vpc:AssociateVpcCidrBlock', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VPC', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vpc/{#VpcId}'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"C1221A1F-2ACD-4592-8F27-474E02883159\\",\\n \\"CidrBlock\\": \\"192.168.0.0/16\\",\\n \\"IpVersion\\": \\"IPV4\\"\\n}","type":"json"}]', + ], + 'AssociateVpnGatewayWithCertificate' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'write', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'create', - 'riskType' => 'none', - 'chargeType' => 'free', - ], + 'systemTags' => ['operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', 'autoTest' => true, 'tenantRelevance' => 'tenant'], 'parameters' => [ [ - 'name' => 'Tag', - 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => 'Resource tags'."\n", - 'type' => 'array', - 'items' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => '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.'."\n" - ."\n" - .'The tag key can be up to 128 characters in length. It cannot start with aliyun or acs:, and cannot contain http:// or https://.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'FinanceDept', - ], - 'Value' => [ - 'description' => '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.'."\n" - ."\n" - .'The tag value can be up to 128 characters in length and cannot start with acs: or aliyun. It cannot contain http:// or https://.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'FinanceJoshua', - ], - ], - 'required' => false, - ], - 'required' => false, - 'maxItems' => 21, - ], - ], - [ - 'name' => 'VSwitchId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the vSwitch to which the reserved CIDR block belongs.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'vsw-25navfgbue4g****', - ], - ], - [ - 'name' => 'VSwitchCidrReservationName', - 'in' => 'query', - 'schema' => [ - 'description' => 'The name of the reserved CIDR block.'."\n" - ."\n" - .'The name must be 2 to 128 characters in length and can contain digits, underscores (\\_), and hyphens (-). It must start with a letter.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'ReservationName', - ], - ], - [ - 'name' => 'VSwitchCidrReservationDescription', - 'in' => 'query', - 'schema' => [ - 'description' => 'The description of the reserved CIDR block. This parameter is empty by default.'."\n" - ."\n" - .'The description must be 2 to 256 characters in length. It must start with a letter and cannot start with `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'ReservationDescription', - ], - ], - [ - 'name' => 'IpVersion', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The IP version of the reserved CIDR block. Valid values:'."\n" - ."\n" - .'* **IPv4** (default)'."\n" - .'* **IPv6**'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'IPv4', - ], + 'schema' => ['description' => 'The region ID of the VPN gateway.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'VSwitchCidrReservationMask', + 'name' => 'VpnGatewayId', 'in' => 'query', - 'schema' => [ - 'description' => 'The subnet mask of the reserved CIDR block.'."\n" - ."\n" - .'* When **IpVersion** is set to **IPv4**, the subnet mask length of the CIDR block must be greater than the IPv4 subnet mask length of the vSwitch and cannot be greater than 28.'."\n" - .'* When **IpVersion** is set to **IPv6**, the subnet mask length of the CIDR block must be greater than the IPv6 subnet mask length of the vSwitch and cannot be greater than 80.'."\n" - ."\n" - .'> You must specify one of **VSwitchCidrReservationMask** and **VSwitchCidrReservationCidr**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '28', - ], + 'schema' => ['description' => 'The ID of the VPN gateway.'."\n" + ."\n" + .'> You can associate only VPN gateways of the SM type with certificates.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'vpn-bp1q8bgx4xnkm2ogj****', 'title' => ''], ], [ - 'name' => 'VSwitchCidrReservationCidr', + 'name' => 'CertificateType', 'in' => 'query', - 'schema' => [ - 'description' => 'The reserved CIDR block of the vSwitch.'."\n" - ."\n" - .'* When **IpVersion** is set to **IPv4**, the reserved CIDR block must be a proper subset of the IPv4 CIDR block of the vSwitch and the subnet mask length of the reserved CIDR block cannot be greater than 28.'."\n" - .'* When **IpVersion** is set to **IPv6**, the reserved CIDR block must be a proper subset of the IPv6 CIDR block of the vSwitch and the subnet mask length of the reserved CIDR block cannot be greater than 80.'."\n" - ."\n" - .'> You must specify one of **VSwitchCidrReservationMask** and **VSwitchCidrReservationCidr**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '192.168.1.64/28', - ], + 'schema' => ['description' => 'The type of the certificate. Valid values:'."\n" + ."\n" + .'* **Encryption**'."\n" + .'* **Signature**'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'Signature', 'title' => ''], ], [ - 'name' => 'VSwitchCidrReservationType', + 'name' => 'CertificateId', 'in' => 'query', - 'schema' => [ - 'description' => 'The type of reserved CIDR block. Set the value to **prefix**.'."\n" - ."\n" - .'> When a user or a cloud service allocates a CIDR block to an elastic network interface (ENI), the CIDR block must be allocated from the reserved CIDR block. If the reserved CIDR block is exhausted, an error is returned.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'prefix', - ], + 'schema' => ['description' => 'The ID of the certificate.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '6bfe4218-ea1d****', 'title' => ''], ], [ 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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.'."\n" - ."\n" - .'> 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.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-426655440000', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'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.'."\n" + ."\n" + .'> 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.'."\n", 'type' => 'string', 'required' => false, 'example' => '0c593ea1-3bea****', 'title' => ''], ], [ 'name' => 'DryRun', 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values:'."\n" - ."\n" - .'* **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.'."\n" - .'* **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.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], - ], - [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region where the vSwitch is deployed.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'Specifies whether to perform a dry run, without performing the actual request. Valid values:'."\n" + ."\n" + .'* **true**: performs a dry run. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request passes the dry run, a request ID is returned. Otherwise, an error message is returned.'."\n" + .'* **false** (default): performs a dry run and performs the actual request. If the request passes the dry run, the operation is performed.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => 'The ID of the reserved CIDR block.'."\n", + 'description' => 'The returned data.'."\n", 'type' => 'object', 'properties' => [ - 'VSwitchCidrReservationId' => [ - 'description' => 'The ID of the reserved CIDR block.'."\n", - 'type' => 'string', - 'example' => 'vcr-bp1m12saqteraw3rp****', - ], - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B45', - ], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '4EC47282-1B74-4534-BD0E-403F3EE64CAF', 'title' => ''], ], + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'IllegalParamFormat', - 'errorMessage' => 'IllegalParamFormat', - ], - [ - 'errorCode' => 'IllegalParamFormat.VSwitchCidrReservationCidr', - 'errorMessage' => 'The param format of VSwitchCidrReservationCidr is illegal.', - ], - [ - 'errorCode' => 'ResourceNotFound.VSwitch', - 'errorMessage' => 'The specified resource of VSwitch is not found.', - ], - [ - 'errorCode' => 'UnsupportedFeature.ReservedType', - 'errorMessage' => 'The specified ReservedType is not supported.', - ], - [ - 'errorCode' => 'UnsupportedFeature.VSwitchIpv6', - 'errorMessage' => 'The ipv6 feature of switch is not supported.', - ], - [ - 'errorCode' => 'OperationFailed.VSwitchCidrReservationCidr', - 'errorMessage' => 'The specified VSwitchCidrReservationCidr conflicts with existed cidr reservation or vswitch cidr.', - ], - [ - 'errorCode' => 'MissingParam.CidrReservationMaskOrCidrReservationCidr', - 'errorMessage' => 'Either VSwitchCidrReservationMask or VSwitchCidrReservationCidr should be specified.', - ], - [ - 'errorCode' => 'UnsupportedRegion', - 'errorMessage' => 'UnsupportedRegion', - ], - [ - 'errorCode' => 'UnsupportedFeature.VpcAdvancedFeature', - 'errorMessage' => 'UnsupportedFeature.VpcAdvancedFeature', - ], - [ - 'errorCode' => 'QuotaExceeded.CidrReservationCount', - 'errorMessage' => 'The quota of VSwitchCidrReservation is exceeded.', - ], - [ - 'errorCode' => 'Conflict.CidrReservationMaskAndCidrReservationCidr', - 'errorMessage' => 'The specified VSwitchCidrReservationMask and VSwitchCidrReservationCidr is conflict.', - ], - [ - 'errorCode' => 'OperationFailed.CidrNotEnoughInVSwitch', - 'errorMessage' => 'No enough cidr to allocate in this vswitch.', - ], - [ - 'errorCode' => 'OperationFailed.SystemReservedIpContained', - 'errorMessage' => 'The specified VSwitchCidrReservationCidr cannot contain system reserved IP addresses.', - ], - [ - 'errorCode' => 'OperationFailed.AlreadyUsedIpContained', - 'errorMessage' => 'The specified VSwitchCidrReservationCidr cannot contain already used IP addresses.', - ], - [ - 'errorCode' => 'IncorrectStatus.VSWITCH', - 'errorMessage' => 'The status of the specified VSwitch is invalid.', - ], - [ - 'errorCode' => 'IllegalParam.VSwitchCidrReservationMask', - 'errorMessage' => 'The specified VSwitchCidrReservationMask must be at least 2 bits greater than the vSwitch mask.', - ], - [ - 'errorCode' => 'QuotaExceeded.VSwitchCidrReservationMask', - 'errorMessage' => 'The operation is failed because of %s. The mask of the reserved subnet cidr exceeds the current default mask of IP Prefix, %s/%s.', - ], + ['errorCode' => 'IllegalParam.CertificateType', 'errorMessage' => 'The specified certificate type (%s) is invalid.', 'description' => ''], + ['errorCode' => 'OperationFailed.NotNationalStandard', 'errorMessage' => 'The VPN gateway is not national standard.', 'description' => ''], + ['errorCode' => 'VpnGateway.Configuring', 'errorMessage' => 'The specified service is configuring.', 'description' => ''], + ['errorCode' => 'OperationFailed.NoRamPermission', 'errorMessage' => 'VPN service has no permission to operate your KMS instances.', 'description' => ''], + ['errorCode' => 'OperationFailed.AssociationExist', 'errorMessage' => 'The association already exists.', 'description' => 'Operation is failed because the current resource is associated.'], + ['errorCode' => 'OperationFailed.AnotherAssociationExist', 'errorMessage' => 'The VPN gateway has associated with %s.', 'description' => 'The VPN gateway is already associated with a certificate of the same type.'], + ['errorCode' => 'SystemBusy', 'errorMessage' => 'The system is busy. Please try again later.', 'description' => ''], + ['errorCode' => 'OperationFailed.InvalidCertificate', 'errorMessage' => 'The specified certificate is invalid.', 'description' => ''], + ], + 403 => [ + ['errorCode' => 'Forbidden', 'errorMessage' => 'User not authorized to operate on the specified resource.', 'description' => 'You do not have the permissions to manage the specified resource. Apply for the permissions and try again.'], + ['errorCode' => 'Forbidden.NoSlrPermission', 'errorMessage' => 'User not authorized to create service linked role.', 'description' => ''], + ], + [ + ['errorCode' => 'InvalidVpnGatewayInstanceId.NotFound', 'errorMessage' => 'The specified vpn gateway instance id does not exist.', 'description' => ''], + ['errorCode' => 'InvalidCertificateId.NotFound', 'errorMessage' => 'The specified certificate ID (%s) does not exist.', 'description' => ''], + ], + 409 => [ + ['errorCode' => 'OperationConflict', 'errorMessage' => 'The operation against this instance is too frequent, please try again later.', 'description' => 'Operations are too frequently performed on the instance. Try again later.'], ], ], - 'staticInfo' => [ - 'returnType' => 'asynchronous', - 'callback' => 'Vpc::2016-04-28::ListVSwitchCidrReservations', - 'callbackInterval' => 3, - 'maxCallbackTimes' => 10, - ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"VSwitchCidrReservationId\\": \\"vcr-bp1m12saqteraw3rp****\\",\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B45\\"\\n}","type":"json"}]', - 'title' => 'CreateVSwitchCidrReservation', - 'description' => '## [](#)Description'."\n" + 'staticInfo' => ['returnType' => 'asynchronous', 'callback' => 'Vpc::2016-04-28::DescribeVpnGateway', 'callbackInterval' => 1000, 'maxCallbackTimes' => 30], + 'title' => 'AssociateVpnGatewayWithCertificate', + 'summary' => 'Associates a VPN gateway with a certificate.', + 'description' => 'Before you associate a VPN gateway with an SSL certificate, take note of the following items:'."\n" ."\n" - .'Take note of the following items:'."\n" + .'* You can associate only VPN gateways of the ShangMi (SM) type with SSL certificates. You need to associate a VPN gateway of the SM type with two SSL certificates, one as the encryption certificate and the other as the signature certificate.'."\n" ."\n" - .'* You can create at most 10 reserved IPv4 CIDR blocks and 10 reserved IPv6 CIDR blocks for each vSwitch in a virtual private cloud (VPC).'."\n" + .'* The SSL certificates must use the SM algorithm.'."\n" ."\n" - .'* After you create a reserved CIDR block for a vSwitch, the CIDR block cannot contain the IP address of the subnet gateway of the VPC to which the vSwitch belongs.'."\n" + .'* You cannot specify one SSL certificate as both the encryption certificate and signature certificate for one VPN gateway.'."\n" ."\n" - .'* **CreateVSwitchCidrReservation** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call [ListVSwitchCidrReservations](~~610155~~) to query the status of the task:'."\n" + .'* **AssociateVpnGatewayWithCertificate** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call the [DescribeVpnGateway](~~73720~~) operation to query the status of the task.'."\n" ."\n" - .' * If the vSwitch is in the **Assigning** state, the reserved CIDR block is being created.'."\n" - .' * If the vSwitch is in the **Assigned** state, the reserved CIDR block is created.'."\n" + .' * If the VPN gateway is in the **updating** state, the SSL certificate is being associated.'."\n" + .' * If the VPN gateway is in the **active** state, the SSL certificate is being associated.'."\n" ."\n" - .'* When you create a reserved IPv4 CIDR block for a vSwitch, the first IP address and the last three IP addresses of the vSwitch are reserved by the system. The four IP addresses will not be allocated.'."\n" + .'* You cannot call **AssociateVpnGatewayWithCertificate** within a specific period of time.'."\n" ."\n" - .'* When you create a reserved IPv6 CIDR block for a vSwitch, the first IP address and the last nine IP addresses of the vSwitch are reserved by the system. The 10 IP addresses will not be allocated. For example, if you create a reserved IPv4 CIDR block for a vSwitch whose CIDR block is 192.168.1.0/24, the reserved CIDR block cannot contain the following IP addresses: 192.168.1.0, 192.168.1.253, 192.168.1.254, and 192.168.1.255.'."\n", - ], - 'GetVSwitchCidrReservationUsage' => [ - 'summary' => 'Queries the usage of a prefix list.', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', + .'### [](#)Prerequisites'."\n" + ."\n" + .'Make sure that you have two SSL certificates that use the SM algorithm in the Certificate Management Service console. For more information about SSL certificates, see [What is Certificate Management Service?](~~28535~~).'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2021-10-12T12:15:02.000Z', 'description' => 'Error codes changed'], ], + 'ramActions' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"4EC47282-1B74-4534-BD0E-403F3EE64CAF\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 4EC47282-1B74-4534-BD0E-403F3EE64CAF\\n","errorExample":""}]', + ], + 'AttachDhcpOptionsSetToVpc' => [ + 'summary' => 'Associates a DHCP options set with a virtual private cloud (VPC).', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'write', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'get', - ], + 'systemTags' => ['operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ - 'name' => 'VSwitchCidrReservationId', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the reserved CIDR block.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'vcr-bp1m12saqteraw3rp****', - ], + 'schema' => ['description' => 'The region to which the DHCP options set belongs. You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'NextToken', + 'name' => 'DhcpOptionsSetId', 'in' => 'query', - 'schema' => [ - 'description' => 'The pagination token that is used in the next request to retrieve a new page of results. Valid values:'."\n" - ."\n" - .'* You do not need to specify this parameter for the first request.'."\n" - .'* If a value is returned for NextToken, specify the value in the next request to retrieve a new page of results.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', - ], + 'schema' => ['description' => 'The ID of the DHCP options set.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'dopt-o6w0df4epg9zo8isy****', 'title' => ''], ], [ - 'name' => 'MaxResults', + 'name' => 'VpcId', 'in' => 'query', - 'schema' => [ - 'description' => 'The number of entries to return on each page. Valid values: **1** to **100**. Default value: **10**.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'maximum' => '100', - 'minimum' => '1', - 'example' => '10', - 'default' => '10', - ], + 'schema' => ['description' => 'The ID of the VPC to be associated with the DHCP options set.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'vpc-sfdkfdjkdf****', 'title' => ''], ], [ - 'name' => 'RegionId', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'title' => '地域', - 'description' => 'The region ID of the vSwitch.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'You can use the client to generate the value, but you must make sure that it is unique among different requests. The client token can contain only ASCII characters.'."\n" + ."\n" + .'> If you do not set this parameter, the system uses **RequestId** as **ClientToken**. **RequestId** may be different for each API request.'."\n", 'type' => 'string', 'required' => false, 'example' => '0c593ea1-3bea-11e9-b96b-88e9fe637760', 'title' => ''], + ], + [ + 'name' => 'DryRun', + 'in' => 'query', + 'schema' => ['description' => 'Specifies whether to check the request without performing the operation. Valid values:'."\n" + ."\n" + .'**true**: checks the request without performing the operation. The system checks whether your AccessKey pair is valid, whether the Resource Access Management (RAM) user is authorized, and whether the required parameters are set. If the request fails to pass the check, the corresponding error message is returned. If the request passes the check, the `DryRunOperation` error code is returned.'."\n" + ."\n" + .'**false** (default): sends the request. If the request passes the check, a 2XX HTTP status code is returned and the operation is performed.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'The request ID.'."\n", 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B45', - ], - 'NextToken' => [ - 'description' => 'The returned value of NextToken is a pagination token, which can be used in the next request to retrieve a new page of results. Valid values:'."\n" - ."\n" - .'* If **NextToken** is empty, no next page exists.'."\n" - .'* If a value is returned for **NextToken**, the value is the token that determines the start point of the next query.'."\n", - 'type' => 'string', - 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', - ], - 'TotalCount' => [ - 'description' => 'The total number of entries returned.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '10', - ], - 'MaxResults' => [ - 'description' => 'The number of entries to return per page.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '10', - ], - 'CidrReservationUsages' => [ - 'description' => 'A list of reserved CIDR blocks that are in use.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'VSwitchCidrReservationId' => [ - 'title' => '预留网段实例Id', - 'description' => 'The ID of the reserved CIDR block.'."\n", - 'type' => 'string', - 'example' => 'vcr-bp1m12saqteraw3rp****', - ], - 'VSwitchId' => [ - 'title' => '交换机实例Id', - 'description' => 'The ID of the vSwitch to which the reserved CIDR block belongs.'."\n", - 'type' => 'string', - 'example' => 'vsw-25navfgbue4g****', - ], - 'ResourceId' => [ - 'title' => '前缀网段绑定资源的实例Id', - 'description' => 'The ID of the elastic network interface (ENI) whose CIDR block is allocated from the reserved CIDR block.'."\n", - 'type' => 'string', - 'example' => 'eni-bp14v2sdd3v8htln****', - ], - 'ResourceType' => [ - 'title' => '前缀网段绑定资源的类型', - 'description' => 'The type of the resource to which a CIDR block is allocated from the reserved CIDR block. Only **NetworkInterface** may be returned, which indicates an ENI.'."\n", - 'type' => 'string', - 'example' => 'NetworkInterface', - ], - 'IpPrefixId' => [ - 'title' => '前缀网段实例id', - 'description' => 'The ID of the reserved CIDR block.'."\n", - 'type' => 'string', - 'example' => 'vcr-bp1m12saqteraw3rp****', - ], - 'IpPrefixCidr' => [ - 'description' => 'The CIDR block allocated to the ENI from the reserved CIDR block.'."\n", - 'type' => 'string', - 'example' => '192.168.1.64/28', - ], - ], - ], - ], + 'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => '0ED8D006-F706-4D23-88ED-E11ED28DCAC0', 'title' => ''], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'IllegalParam.NextToken', - 'errorMessage' => 'The specified NextToken is invalid.', - ], - ], - 404 => [ - [ - 'errorCode' => 'ResourceNotFound.CidrReservation', - 'errorMessage' => 'The specified resource of VSwitchCidrReservation is not found.', - ], + ['errorCode' => 'Forbidden.OperateShareResource', 'errorMessage' => 'You cannot operate shared resources.', 'description' => 'Shared resources do not support this operation.'], + ['errorCode' => 'InvalidDhcpOptionsSetId.NotFound', 'errorMessage' => 'The specified dhcpOptionsSetId does not exist.', 'description' => 'The DHCP options set does not exist. Check whether the parameter is set to a valid value.'], + ['errorCode' => 'IncorrectStatus.DhcpOptionsSet', 'errorMessage' => 'The DhcpOptionsSet status does not support this operation.', 'description' => 'The DHCP options set that is associated with the VPC is being configured. As a result, the DHCP options set does not support this operation. You can perform the operation after the status of the DHCP options set is stable.'], + ['errorCode' => 'InvalidVpcId.NotFound', 'errorMessage' => 'Specified value of VpcId is not found in our record.', 'description' => ''], + ['errorCode' => 'IncorrectStatus.VpcDhcpOptionsSet', 'errorMessage' => 'The dhcpOptionsSet status of VPC does not support this operation.', 'description' => 'The DHCP options set that is associated with the VPC is being configured. As a result, the DHCP options set does not support this operation.'], + ['errorCode' => 'OperationFailed.AttachmentExist', 'errorMessage' => 'The current VPC is already attached to a DHCP options set.', 'description' => 'The VPC is associated with a DHCP options set. You can associate a VPC with only one DHCP options set.'], + ['errorCode' => 'QuotaExceeded.AttachVpcNumber', 'errorMessage' => 'The maximum number of VPCs that can be attached to a DHCP options set is exceeded.', 'description' => 'The number of VPCs that can be associated with a DHCP options set reaches the upper limit.'], + ['errorCode' => 'TaskConflict', 'errorMessage' => 'The operation is too frequent. Please wait a moment and try again.', 'description' => 'The system is unavailable. Try again later.'], + ['errorCode' => 'MissingParam.VpcId', 'errorMessage' => 'You must specify VpcId.', 'description' => 'You must specify VpcId.'], + ['errorCode' => 'MissingParam.DhcpOptionsSetId', 'errorMessage' => 'Missing parameter DhcpOptionsSetId.', 'description' => 'Missing parameter DhcpOptionsSetId'], + ['errorCode' => 'InvalidRegionId.NotFound', 'errorMessage' => 'The specified RegionId does not exist.', 'description' => 'The specified region does not exist.'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B45\\",\\n \\"NextToken\\": \\"FFmyTO70tTpLG6I3FmYAXGKPd****\\",\\n \\"TotalCount\\": 10,\\n \\"MaxResults\\": 10,\\n \\"CidrReservationUsages\\": [\\n {\\n \\"VSwitchCidrReservationId\\": \\"vcr-bp1m12saqteraw3rp****\\",\\n \\"VSwitchId\\": \\"vsw-25navfgbue4g****\\",\\n \\"ResourceId\\": \\"eni-bp14v2sdd3v8htln****\\",\\n \\"ResourceType\\": \\"NetworkInterface\\",\\n \\"IpPrefixId\\": \\"vcr-bp1m12saqteraw3rp****\\",\\n \\"IpPrefixCidr\\": \\"192.168.1.64/28\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\n 54B48E3D-DF70-471B-AA93-08E683A1B45\\n FFmyTO70tTpLG6I3FmYAXGKPd****\\n 10\\n 10\\n \\n vcr-bp1m12saqteraw3rp****\\n vsw-25navfgbue4g****\\n eni-bp14v2sdd3v8htln****\\n NetworkInterface\\n vcr-bp1m12saqteraw3rp****\\n 192.168.1.64/28\\n \\n","errorExample":""}]', - 'title' => 'GetVSwitchCidrReservationUsage', + 'title' => 'AttachDhcpOptionsSetToVpc', + 'description' => '* The **AttachDhcpOptionsSetToVpc** operation is asynchronous. After you send the request, the system returns a request ID. However, the operation is still being performed in the system background. You can call the [DescribeVpcAttribute](~~94565~~) operation to query the status of a DHCP options set:'."\n" + ."\n" + .' * If the DHCP options set is in the **Pending** state, the DHCP options set is being associated.'."\n" + .' * If the DHCP options set is in the **InUse** state, the DHCP options set is associated.'."\n" + ."\n" + .'* You cannot repeatedly call the **AttachDhcpOptionsSetToVpc** operation to associate DHCP options sets with a VPC within the specified period of time.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"0ED8D006-F706-4D23-88ED-E11ED28DCAC0\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 0ED8D006-F706-4D23-88ED-E11ED28DCAC0\\n","errorExample":""}]', ], - 'ModifyVSwitchCidrReservationAttribute' => [ - 'summary' => 'Modifies the name and description of a CIDR block reserved for a vSwitch.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'AttachVbrToVpconn' => [ + 'summary' => 'Associates a virtual border router (VBR) with a hosted connection.', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'write', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'update', - 'riskType' => 'none', - 'chargeType' => 'free', - ], + 'systemTags' => ['operationType' => 'update'], 'parameters' => [ [ - 'name' => 'VSwitchCidrReservationId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the reserved CIDR block.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'vcr-bp1m12saqteraw3rp****', - ], - ], - [ - 'name' => 'VSwitchCidrReservationName', + 'name' => 'VpconnId', 'in' => 'query', - 'schema' => [ - 'description' => 'The new name of the reserved CIDR block.'."\n" - ."\n" - .'The name must be 2 to 128 characters in length and can contain letters, digits, underscores (\\_), and hyphens (-). It must start with a letter.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'ReservationName', - ], + 'schema' => ['title' => '', 'description' => 'The ID of the hosted connection.'."\n", 'type' => 'string', 'required' => true, 'example' => 'pc-bp1mrgfbtmc9brre7****'], ], [ - 'name' => 'VSwitchCidrReservationDescription', + 'name' => 'VbrId', 'in' => 'query', - 'schema' => [ - 'description' => 'The new description of the reserved CIDR block. The default value is empty.'."\n" - ."\n" - .'The description must be 2 to 256 characters in length. It must start with a letter and cannot start with `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'ReservationDescription', - ], + 'schema' => ['title' => '', 'description' => 'The ID of the VBR.'."\n", 'type' => 'string', 'required' => true, 'example' => 'vbr-bp133sn3nwjvu7twc****'], ], [ - 'name' => 'RegionId', + 'name' => 'Token', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region where the vSwitch is deployed.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['title' => '', 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'You can use the client to generate the value, but you must ensure that it is unique among different requests. The token can contain only ASCII characters and cannot exceed 64 characters in length.'."\n", 'type' => 'string', 'required' => false, 'example' => 'CBCE910E-D396-4944-8****'], ], [ 'name' => 'DryRun', 'in' => 'query', - 'schema' => [ - 'type' => 'boolean', - ], + 'schema' => ['title' => 'DryRun', 'description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values:'."\n" + ."\n" + .'* **true**: performs only a dry run. The system checks the request for potential issues, including required parameters, request syntax, and instance status. If the request fails the dry run, an error message is returned. If the request passes the dry run, the request ID is returned.'."\n" + .'* **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.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false'], ], [ - 'name' => 'ClientToken', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => false, - ], + 'schema' => ['description' => 'The region ID of the hosted connection.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => 'The request ID.'."\n", + 'title' => 'Schema of Response', + 'description' => 'The response parameters.'."\n", 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B45', - ], + 'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '5356F028-0F5C-56FC-8574-897D24379041'], + 'VirtualPhysicalConnection' => ['title' => '', 'description' => 'The ID of the hosted connection.'."\n", 'type' => 'string', 'example' => 'pc-bp1mrgfbtmc9brre7****'], ], + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'ResourceNotFound.CidrReservation', - 'errorMessage' => 'ResourceNotFound.CidrReservation', - ], - [ - 'errorCode' => 'IllegalParamFormat', - 'errorMessage' => 'IllegalParamFormat', - ], + ['errorCode' => 'QuotaExceeded.VPCONN', 'errorMessage' => 'The quota of VBR_COUNT_PER_VPCONN is exceeded, usage 1/1.', 'description' => ''], + ['errorCode' => 'OperationFailed.VbrBindedPconn', 'errorMessage' => 'The operation is failed because of VbrBindedPconn.', 'description' => 'A hosted connection is created for the VBR.'], + ['errorCode' => 'ResourceNotFound.PhysicalConnectionId', 'errorMessage' => 'PhysicalConnection is not found. ', 'description' => ''], + ['errorCode' => 'IncorrectStatus.PhysicalConnection', 'errorMessage' => 'The specified PhysicalConnectionId [%s] is not in Enabled state.', 'description' => ''], + ['errorCode' => 'ResourceNotFound.VirtualBorderRouter', 'errorMessage' => 'The specified resource of %s is not found.', 'description' => 'Virtual Border Router does not exist'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'title' => 'AttachVbrToVpconn', + 'changeSet' => [ + ['createdAt' => '2024-06-28T02:56:12.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2021-09-27T03:23:37.000Z', 'description' => 'OpenAPI offline'], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B45\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 54B48E3D-DF70-471B-AA93-08E683A1B45\\n","errorExample":""}]', - 'title' => 'ModifyVSwitchCidrReservationAttribute', - 'description' => '## [](#)Usage notes'."\n" - ."\n" - .'You cannot repeatedly call **ModifyVSwitchCidrReservationAttribute** within a specific time period.'."\n", + 'ramActions' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"5356F028-0F5C-56FC-8574-897D24379041\\",\\n \\"VirtualPhysicalConnection\\": \\"pc-bp1mrgfbtmc9brre7****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 5356F028-0F5C-56FC-8574-897D24379041\\n pc-bp1mrgfbtmc9brre7****\\n","errorExample":""}]', ], - 'CreateVSwitch' => [ - 'summary' => 'Creates a vSwitch.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'CancelCommonBandwidthPackageIpBandwidth' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'readAndWrite', - 'systemTags' => [ - 'operationType' => 'create', - 'riskType' => 'none', - 'chargeType' => 'free', - ], + 'deprecated' => false, + 'systemTags' => ['operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', 'autoTest' => true, 'tenantRelevance' => 'tenant'], 'parameters' => [ [ - 'name' => 'Tag', + 'name' => 'RegionId', 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => 'The tag of the resource.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => 'The tag key. You can specify at most 20 tag keys. The tag key cannot be an empty string.'."\n" - ."\n" - .'The tag key can be at most 128 characters in length. It cannot start with `aliyun` or `acs:`, and cannot contain `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'FinanceJoshua', - ], - 'Value' => [ - 'description' => 'The tag value. You can specify at most 20 tag values. The tag value can be an empty string.'."\n" - ."\n" - .'The tag value can be up to 128 characters in length, but cannot contain `http://` or `https://`. The tag value cannot start with `aliyun` or `acs:`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'FinanceDept', - ], - ], - 'required' => false, - ], - 'required' => false, - 'maxItems' => 21, - ], + 'schema' => ['description' => 'The region ID of the Internet Shared Bandwidth instance. You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'ZoneId', + 'name' => 'BandwidthPackageId', 'in' => 'query', - 'schema' => [ - 'description' => 'The zone ID of the vSwitch.'."\n" - ."\n" - .'You can call the [DescribeZones](~~36064~~) operation to query the most recent zone list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou-b', - ], + 'schema' => ['description' => 'The ID of the Internet Shared Bandwidth instance.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cbwp-bp13d0m4e2qv8xxxxxxxx', 'title' => ''], ], [ - 'name' => 'RegionId', + 'name' => 'EipId', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the vSwitch.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The ID of the EIP that is associated with the Internet Shared Bandwidth instance.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'eip-2zewysoansu0sxxxxxxxx', 'title' => ''], ], - [ - 'name' => 'CidrBlock', - 'in' => 'query', + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => 'The CIDR block of the vSwitch. Take note of the following limits:'."\n" - ."\n" - .'* The subnet mask of the CIDR block must be 16 to 29 bits in length.'."\n" - .'* The CIDR block of the vSwitch must fall within the CIDR block of the VPC to which the vSwitch belongs.'."\n" - .'* The CIDR block of a vSwitch cannot be the same as the destination CIDR block in a route entry of the VPC. However, it can be a subset of the destination CIDR block.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => '172.16.0.0/24', + 'description' => 'The response parameters.'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '63D187BF-A30A-4DD6-B68D-FF182C96D8A2', 'title' => ''], + ], + 'title' => '', + 'example' => '', ], ], - [ - 'name' => 'Ipv6CidrBlock', - 'in' => 'query', - 'schema' => [ - 'description' => 'The last eight bits of the IPv6 CIDR block of the vSwitch. Valid values: **0** to **255**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '12', - ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => '%s', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'InvalidEIPStatus.BizDisabled', 'errorMessage' => 'The EIP has been locked.', 'description' => 'The error message returned because the EIP is locked.'], + ['errorCode' => 'Forbidden.FinancialLocked', 'errorMessage' => 'The ip business status is invalid.', 'description' => 'The error message returned because the instance has overdue payments.'], ], - [ - 'name' => 'VpcId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the VPC where you want to create the vSwitch.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'vpc-257gqcdfvx6n****', - ], + 404 => [ + ['errorCode' => 'InvalidRegionId.NotFound', 'errorMessage' => 'The specified RegionId does not exist in our records.', 'description' => ''], + ['errorCode' => '%s', 'errorMessage' => '%s', 'description' => ''], ], + ], + 'staticInfo' => ['returnType' => 'asynchronous', 'callback' => 'Vpc::2016-04-28::DescribeEipAddresses', 'callbackInterval' => 3, 'maxCallbackTimes' => 10], + 'title' => 'CancelCommonBandwidthPackageIpBandwidth', + 'summary' => 'Cancels the maximum bandwidth configured for an elastic IP address (EIP) that is associated with an Internet Shared Bandwidth instance.', + 'description' => 'Before you call this operation, take note of the following items:'."\n" + ."\n" + .'* After this operation is performed, the maximum bandwidth of the EIP equals that of the Internet Shared Bandwidth instance.'."\n" + .'* You cannot repeatedly call the **CancelCommonBandwidthPackageIpBandwidth** operation within a specific time period.'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2022-11-29T10:25:34.000Z', 'description' => 'Error codes changed'], + ], + 'ramActions' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"63D187BF-A30A-4DD6-B68D-FF182C96D8A2\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 63D187BF-A30A-4DD6-B68D-FF182C96D8A2\\n","errorExample":""}]', + ], + 'CancelPhysicalConnection' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'VSwitchName', - 'in' => 'query', - 'schema' => [ - 'description' => 'The name of the vSwitch.'."\n" - ."\n" - .'The name must be 1 to 128 characters in length, and cannot start with `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'vSwitch-1', - ], + 'AK' => [], ], + ], + 'deprecated' => false, + 'systemTags' => ['operationType' => 'update'], + 'parameters' => [ [ - 'name' => 'Description', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The description of the vSwitch.'."\n" - ."\n" - .'The description must be 1 to 256 characters in length and cannot start with `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'vSwitch', - ], + 'schema' => ['description' => 'The region ID of the Express Connect circuit. '."\n" + ."\n" + .'You can call [DescribeRegions](~~36063~~) to query region IDs.', 'type' => 'string', 'required' => true, 'example' => 'cn-shanghai', 'title' => ''], ], [ - 'name' => 'ClientToken', + 'name' => 'PhysicalConnectionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'You can use the client to generate the value, but you must make sure that it is unique among all requests. The token can contain only ASCII characters.'."\n" - ."\n" - .'> If you do not specify this parameter, **ClientToken** is set to the value of **RequestId**. The value of **RequestId** may be different for each API request.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '0c593ea1-3bea-11e9-b96b-88e9fe63****', - ], + 'schema' => ['description' => 'The ID of the Express Connect circuit.', 'type' => 'string', 'required' => true, 'example' => 'pc-119mfjzm7****', 'title' => ''], ], [ - 'name' => 'VpcIpv6CidrBlock', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The IPv6 CIDR block of the VPC.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '2408:XXXX:0:6a::/56', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'The client generates the value of this parameter. Make sure that the value is unique among different requests. The value can be up to 64 ASCII characters in length.', 'type' => 'string', 'required' => false, 'example' => '02fb3da4-130e-11e9-8e44-0016e04115b', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => 'The returned data.'."\n", 'type' => 'object', 'properties' => [ - 'VSwitchId' => [ - 'description' => 'The ID of the vSwitch.'."\n", - 'type' => 'string', - 'example' => 'vsw-25navfgbue4g****', - ], - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => '0ED8D006-F706-4D23-88ED-E11ED28DCAC0', - ], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '4EC47282-1B74-4534-BD0E-403F3EE64CAF', 'title' => ''], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'OperationFailed.ResourceConflict', - 'errorMessage' => 'vpc only support one cloud box.', - ], - [ - 'errorCode' => 'OperationFailed.IdempotentTokenProcessing', - 'errorMessage' => 'Action is processing.', - ], - [ - 'errorCode' => 'InvalidDescription.Malformed', - 'errorMessage' => 'Invalid description.', - ], - [ - 'errorCode' => 'InvalidVSwitchName.Malformed', - 'errorMessage' => 'Specified virtual switch name is not valid.', - ], - [ - 'errorCode' => 'InvalidVSwitchDiscription.Malformed', - 'errorMessage' => 'Specified virtual switch description is not valid.', - ], - [ - 'errorCode' => 'Abs.Vpc.InvalidDescription.Malformed', - 'errorMessage' => 'Specified virtual switch name is not valid.', - ], - [ - 'errorCode' => 'MissingParam.vpcId', - 'errorMessage' => 'The parameter vpcId is mandatory.', - ], - [ - 'errorCode' => 'ResourceNotAvailable', - 'errorMessage' => 'Resource you requested is not available in this region or zone.', - ], - [ - 'errorCode' => 'InvalidParameter', - 'errorMessage' => 'Specified CIDR block is not valid in VPC.', - ], - [ - 'errorCode' => 'InvalidCidrBlock.Overlapped', - 'errorMessage' => 'Specified CIDR block overlapped with other subnets.', - ], - [ - 'errorCode' => 'QuotaExceeded.VSwitch', - 'errorMessage' => 'Virtual switch quota exceeded.', - ], - [ - 'errorCode' => 'IncorrectRouteEntryStatus', - 'errorMessage' => 'Some route entry status blocked this operation.', - ], - [ - 'errorCode' => 'IncorrectVSwitchStatus', - 'errorMessage' => 'Some virtual switch is modifying within the same VPC.', - ], - [ - 'errorCode' => 'InvalidCirdrBlock.MaskLength', - 'errorMessage' => 'Specified CIDR block is not valid .', - ], - [ - 'errorCode' => 'IncorrectVpcStatus', - 'errorMessage' => 'Current VPC status does not support this operation.', - ], - [ - 'errorCode' => 'CreateVSwitch.IncorrectStatus.cbnStatus', - 'errorMessage' => 'Current CBN status does not support this operation.', - ], - [ - 'errorCode' => 'InvalidCidrBlock.Malformed', - 'errorMessage' => 'Specified CIDR block is not valid.', - ], - [ - 'errorCode' => 'MissingParameter', - 'errorMessage' => 'Miss mandatory parameter.', - ], - [ - 'errorCode' => 'TaskConflict', - 'errorMessage' => 'The operation is too frequent, TaskConflict.', - ], - [ - 'errorCode' => 'VPC.SWITCH.RULE.QUOTA.NOT.EXISTS', - 'errorMessage' => 'vSwitch quota rule not exists.', - ], - [ - 'errorCode' => 'Forbidden.VpcNotFound', - 'errorMessage' => 'Specified VPC can not found.', - ], - [ - 'errorCode' => 'RouteConflict.AlreadyExist', - 'errorMessage' => 'Route conflict exists in routing table.', - ], - [ - 'errorCode' => 'OperationFailed.CidrAcross', - 'errorMessage' => 'Classic link instance cidr must not across.', - ], - [ - 'errorCode' => 'Duplicated.ClientToken', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'OperationFailed.Ipv6CidrBlockExisted', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'IllegalParam.Ipv6CidrBlock', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'OperationFailed.VpcIpv6Disabled', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'IncorrectStatus.cbnStatus', - 'errorMessage' => 'Current CBN status does not support this operation.', - ], - [ - 'errorCode' => 'OperationFailed.NotifyCenCreate', - 'errorMessage' => 'Failed to notify cen when create vswitch.', - ], - [ - 'errorCode' => 'OperationFailed.DistibuteLock', - 'errorMessage' => 'Distibute lock fail.', - ], - [ - 'errorCode' => 'UnsupportedFeature.CloudBoxIpv6', - 'errorMessage' => 'The IPv6 feature is not supported by cloud box.', - ], - [ - 'errorCode' => 'OperationDenied.VpcPeerExist', - 'errorMessage' => 'The operation is not allowed because the VPC peer exists.', - ], - [ - 'errorCode' => 'OperationDenied.CenAttached', - 'errorMessage' => 'The operation is not allowed because the VPC is attached to CEN.', - ], - [ - 'errorCode' => 'OperationDenied.NatgwExist', - 'errorMessage' => 'The operation is not allowed because the NAT gateway exists in VPC.', - ], - [ - 'errorCode' => 'MissingParam.Ipv6CidrBlock', - 'errorMessage' => 'The parameter Ipv6CidrBlock is mandatory.', - ], - [ - 'errorCode' => 'IllegalParam.VpcIpv6CidrBlock', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'OperationDenied.OtherSubnetCreating', - 'errorMessage' => 'The operation is not allowed because the other VSwitch is creating.', - ], - [ - 'errorCode' => 'OperationDenied.VpcPeerExists', - 'errorMessage' => 'The operation is not allowed because the VpcPeer exists.', - ], - [ - 'errorCode' => 'IllegalParam.CidrBlock', - 'errorMessage' => 'The param of CidrBlock [%s] is illegal.', - ], - [ - 'errorCode' => 'InvalidStatus.RouteEntry', - 'errorMessage' => 'RouteEntry status error.', - ], - [ - 'errorCode' => 'InvalidZoneId.NotFound', - 'errorMessage' => 'Specified zone does not exist.', - ], - [ - 'errorCode' => 'OperationDenied.ZoneIsDisabled', - 'errorMessage' => 'The specified zone is disabled. You cannot create a vSwitch in a disabled zone.', - ], + ['errorCode' => 'Forbidden.NotAllowedInState', 'errorMessage' => 'The request does not allow in this state.', 'description' => ''], ], 404 => [ - [ - 'errorCode' => 'Invalid.NotExist', - 'errorMessage' => 'witch mask rule not exists.', - ], - [ - 'errorCode' => 'InvalidVpcId.NotFound', - 'errorMessage' => 'Specified VPC does not exist.', - ], + ['errorCode' => 'InvalidRegionId.NotFound', 'errorMessage' => 'The RegionId provided does not exist in our records.', 'description' => ''], + ['errorCode' => 'InvalidPhysicalConnectionId.NotFound', 'errorMessage' => 'The PhysicalConnectionId provided does not exist in our records.', 'description' => ''], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"VSwitchId\\": \\"vsw-25navfgbue4g****\\",\\n \\"RequestId\\": \\"0ED8D006-F706-4D23-88ED-E11ED28DCAC0\\"\\n}","errorExample":""},{"type":"xml","example":"\\n vsw-25navfgbue4g****\\n 0ED8D006-F706-4D23-88ED-E11ED28DCAC0\\n","errorExample":""}]', - 'title' => 'CreateVSwitch', - 'description' => 'When you call this operation, take note of the following limits:'."\n" - ."\n" - .'* You can create at most 150 vSwitches in a virtual private cloud (VPC).'."\n" - ."\n" - .'* The first IP address and last three IP addresses of each vSwitch CIDR block are reserved. For example, if the CIDR block of a vSwitch is 192.168.1.0/24, the IP addresses 192.168.1.0, 192.168.1.253, 192.168.1.254, and 192.168.1.255 are reserved.'."\n" - ."\n" - .'* The number of instances in a vSwitch cannot exceed the remaining capacity of the VPC. The remaining capacity is the difference between 15,000 and the current number of instances.'."\n" - ."\n" - .'* Each instance can belong to only one vSwitch.'."\n" - ."\n" - .'* vSwitches do not support multicast or broadcast.'."\n" - ."\n" - .'* After you create a vSwitch, you cannot modify its CIDR block.'."\n" - ."\n" - .'* **CreateVSwitch** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call [DescribeVSwitchAttributes](~~94567~~) to query the status of the task.'."\n" - ."\n" - .' * If the vSwitch is in the **Pending** state, the vSwitch is being configured.'."\n" - .' * If the vSwitch is in the **Available** state, the vSwitch is available.'."\n" - ."\n" - .'* You cannot repeatedly call the **CreateVSwitch** operation to create a vSwitch in a VPC within the specified period of time.'."\n", + 'title' => 'Cancel express connect circuit access', + 'summary' => 'Cancels access to an Express Connect circuit. After the cancellation, the Express Connect circuit enters the Canceled state.', + 'description' => 'You can cancel access only for Express Connect circuits that are in the **Initial**, **Approved**, **Allocated**, or **Confirmed** state (not yet activated).', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'CreateDefaultVSwitch' => [ - 'summary' => 'Creates a default vSwitch.', - 'methods' => [ - 'post', - 'get', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CancelPhysicalConnection'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:CancelPhysicalConnection', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'PhysicalConnection', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:physicalconnection/{#PhysicalConnectionId}'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"4EC47282-1B74-4534-BD0E-403F3EE64CAF\\"\\n}","type":"json"}]', + ], + 'ChangeResourceGroup' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'write', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'create', - 'riskType' => 'none', - 'chargeType' => 'free', - ], + 'systemTags' => ['operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ - 'name' => 'ZoneId', + 'name' => 'NewResourceGroupId', 'in' => 'query', 'schema' => [ - 'description' => 'The zone ID of the default vSwitch.'."\n" + 'title' => '', + 'description' => 'The ID of the new resource group.'."\n" ."\n" - .'You can call the [DescribeZones](~~36064~~) operation to query the most recent zone list.'."\n", + .'> You can use resource groups to manage resources within your Alibaba Cloud account by group. This helps you resolve issues such as resource grouping and permission management for your Alibaba Cloud account. For more information, see [What is Resource Management?](~~94475~~)'."\n", 'type' => 'string', 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou-b', + 'example' => 'rg-bp1drpcfz9srr393h****', + 'enum' => [], ], ], [ - 'name' => 'RegionId', + 'name' => 'ResourceType', 'in' => 'query', 'schema' => [ - 'description' => 'The region ID of the default vSwitch.'."\n" + 'description' => 'The type of the resource. Valid values:'."\n" ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", + .'* **PHYSICALCONNECTION**: Express Connect circuit.'."\n" + .'* **VIRTUALBORDERROUTER**: virtual border router (VBR).'."\n" + .'* **ROUTERINTERFACE**: router interface.'."\n", 'type' => 'string', 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', + 'example' => 'PHYSICALCONNECTION', + 'enum' => [], + 'title' => '', ], ], [ - 'name' => 'Ipv6CidrBlock', + 'name' => 'ResourceId', 'in' => 'query', - 'schema' => [ - 'description' => 'The last eight bits of the IPv6 CIDR block of the vSwitch. Valid values: **0** to **255**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '12', - ], + 'schema' => ['title' => '', 'description' => 'The ID of the Express Connect circuit whose resource group you want to modify.'."\n", 'type' => 'string', 'required' => true, 'example' => 'pc-bp16qjewdsunr41m1****'], ], [ - 'name' => 'ClientToken', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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.'."\n" - ."\n" - .'> If you do not set this parameter, the system automatically uses the **request ID** as the **client token**. The **request ID** may be different for each request.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '0c593ea1-3bea-11e9-b96b-88e9fe63****', - ], + 'schema' => ['description' => 'The ID of the region to which the new resource group belongs.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to obtain the region ID.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => 'The ID of the default vSwitch.'."\n", + 'title' => 'Schema of Response', + 'description' => 'The request ID.'."\n", 'type' => 'object', 'properties' => [ - 'VSwitchId' => [ - 'description' => 'The ID of the default vSwitch.'."\n", - 'type' => 'string', - 'example' => 'vsw-bp1a4b5qhmxftjimq****', - ], - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '0ED8D006-F706-4D23-88ED-E11ED28DCAC0', - ], + 'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B45'], ], + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidDescription.Malformed', - 'errorMessage' => 'Invalid description.', - ], - [ - 'errorCode' => 'InvalidVSwitchName.Malformed', - 'errorMessage' => 'Specified virtual switch name is not valid.', - ], - [ - 'errorCode' => 'InvalidVSwitchDiscription.Malformed', - 'errorMessage' => 'Specified virtual switch description is not valid.', - ], - [ - 'errorCode' => 'Abs.Vpc.InvalidDescription.Malformed', - 'errorMessage' => 'Specified virtual switch name is not valid.', - ], - [ - 'errorCode' => 'ResourceNotAvailable', - 'errorMessage' => 'Resource you requested is not available in this region or zone.', - ], - [ - 'errorCode' => 'InvalidParameter', - 'errorMessage' => 'Specified CIDR block is not valid in VPC.', - ], - [ - 'errorCode' => 'InvalidCidrBlock.Overlapped', - 'errorMessage' => 'Specified CIDR block overlapped with other subnets.', - ], - [ - 'errorCode' => 'QuotaExceeded.VSwitch', - 'errorMessage' => 'Virtual switch quota exceeded.', - ], - [ - 'errorCode' => 'IncorrectRouteEntryStatus', - 'errorMessage' => 'Some route entry status blocked this operation.', - ], - [ - 'errorCode' => 'IncorrectVSwitchStatus', - 'errorMessage' => 'Some virtual switch is modifying within the same VPC.', - ], - [ - 'errorCode' => 'InvalidCirdrBlock.MaskLength', - 'errorMessage' => 'Specified CIDR block is not valid .', - ], - [ - 'errorCode' => 'IncorrectVpcStatus', - 'errorMessage' => 'Current VPC status does not support this operation.', - ], - [ - 'errorCode' => 'CreateVSwitch.IncorrectStatus.cbnStatus', - 'errorMessage' => 'Current CBN status does not support this operation.', - ], - [ - 'errorCode' => 'InvalidCidrBlock.Malformed', - 'errorMessage' => 'Specified CIDR block is not valid.', - ], - [ - 'errorCode' => 'MissingParameter', - 'errorMessage' => 'Miss mandatory parameter.', - ], - [ - 'errorCode' => 'TaskConflict', - 'errorMessage' => 'The operation is too frequent, TaskConflict.', - ], - [ - 'errorCode' => 'VPC.SWITCH.RULE.QUOTA.NOT.EXISTS', - 'errorMessage' => 'vSwitch quota rule not exists.', - ], - [ - 'errorCode' => 'Forbidden.VpcNotFound', - 'errorMessage' => 'Specified VPC can not found.', - ], - [ - 'errorCode' => 'RouteConflict.AlreadyExist', - 'errorMessage' => 'Route conflict exists in routing table.', - ], - [ - 'errorCode' => 'OperationFailed.CidrAcross', - 'errorMessage' => 'Classic link instance cidr must not across.', - ], - [ - 'errorCode' => 'Duplicated.ClientToken', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'OperationFailed.Ipv6CidrBlockExisted', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'IllegalParam.Ipv6CidrBlock', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'OperationFailed.VpcIpv6Disabled', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'IncorrectStatus.cbnStatus', - 'errorMessage' => 'Current CBN status does not support this operation.', - ], - [ - 'errorCode' => 'OperationFailed.DefaultVpcNotExist', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'UnsupportedFeature.CloudBoxIpv6', - 'errorMessage' => 'The IPv6 feature is not supported by cloud box.', - ], - [ - 'errorCode' => 'OperationDenied.VpcPeerExist', - 'errorMessage' => 'The operation is not allowed because the VPC peer exists.', - ], - [ - 'errorCode' => 'OperationDenied.CenAttached', - 'errorMessage' => 'The operation is not allowed because the VPC is attached to CEN.', - ], - [ - 'errorCode' => 'OperationDenied.NatgwExist', - 'errorMessage' => 'The operation is not allowed because the NAT gateway exists in VPC.', - ], - [ - 'errorCode' => 'OperationDenied.OtherSubnetCreating', - 'errorMessage' => 'other subnet is creating', - ], - [ - 'errorCode' => 'OperationFailed.DefaultVSwitchExist', - 'errorMessage' => 'A default vSwitch already exists in the zone.', - ], - [ - 'errorCode' => 'InvalidStatus.RouteEntry', - 'errorMessage' => 'RouteEntry status error.', - ], - [ - 'errorCode' => 'InvalidZoneId.NotFound', - 'errorMessage' => 'Specified zone does not exist.', - ], - [ - 'errorCode' => 'OperationDenied.ZoneIsDisabled', - 'errorMessage' => 'The specified zone is disabled. You cannot create a vSwitch in a disabled zone.', - ], - ], - 404 => [ - [ - 'errorCode' => 'Invalid.NotExist', - 'errorMessage' => 'witch mask rule not exists.', - ], - [ - 'errorCode' => 'InvalidVpcId.NotFound', - 'errorMessage' => 'Specified VPC does not exist.', - ], + ['errorCode' => 'ResourceType.Unknown', 'errorMessage' => 'Unknown ResourceType.', 'description' => 'The resource type is invalid.'], + ['errorCode' => 'InvalidInstanceId.NotFound', 'errorMessage' => 'The specified instance id does not exist.', 'description' => 'The specified instance ID does not exist.'], + ['errorCode' => 'InvalidResourceId.NotFound', 'errorMessage' => 'This resourceId already has flowlog instance existed.', 'description' => 'A flow log is already enabled for the resource.'], + ['errorCode' => 'IllegalParam.ResourceType', 'errorMessage' => 'Invalid Resource Type value.', 'description' => 'The ResourceType parameter is not supported or set to an invalid value.'], + ['errorCode' => 'IllegalParam.ResourceGroupId', 'errorMessage' => 'Invalid ResourceGroupld value.', 'description' => 'The specified resource group is invalid or does not exist.'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"VSwitchId\\": \\"vsw-bp1a4b5qhmxftjimq****\\",\\n \\"RequestId\\": \\"0ED8D006-F706-4D23-88ED-E11ED28DCAC0\\"\\n}","errorExample":""},{"type":"xml","example":"\\n vsw-bp1a4b5qhmxftjimq****\\n 0ED8D006-F706-4D23-88ED-E11ED28DCAC0\\n","errorExample":""}]', - 'title' => 'CreateDefaultVSwitch', - 'description' => 'When you call this operation, take note of the following limits:'."\n" - ."\n" - .'* The first IP address and last three IP addresses of a vSwitch CIDR block are reserved. For example, if the CIDR block of a vSwitch is 192.168.1.0/24, the IP addresses 192.168.1.0, 192.168.1.253, 192.168.1.254, and 192.168.1.255 are reserved.'."\n" - ."\n" - .'* The number of instances in the default vSwitch cannot exceed the remaining number of instances supported by the VPC (15,000 minus the number of existing instances).'."\n" - ."\n" - .'* Default vSwitches do not support multicasting or broadcasting.'."\n" - ."\n" - .'* After you create a default vSwitch, you cannot modify its CIDR block.'."\n" - ."\n" - .'* **CreateDefaultVSwitch** is an asynchronous operation. After you send a request, the system returns a request ID and runs the task in the background. You can call the [DescribeVSwitchAttributes](~~94567~~) operation to query the status of a default vSwitch:'."\n" - ."\n" - .' * If a default vSwitch is in the **Pending** state, it is being configured.'."\n" - .' * If a default vSwitch is in the **Available** state, it is available.'."\n" - ."\n" - .'* If a default vSwitch already exists in a region, you cannot call this operation to create a default vSwitch in this region.'."\n" + 'title' => 'ChangeResourceGroup', + 'summary' => 'Moves an Express Connect circuit to a new resource group.', + 'description' => '## [](#)'."\n" ."\n" - .'* Before you create a default vSwitch, make sure that a default VPC is created. You can call the [CreateDefaultVpc](~~609152~~) operation to create a default VPC.'."\n", + .'You cannot repeatedly call the **ChangeResourceGroup** operation to modify the resource group of the same Express Connect circuit.'."\n", + 'changeSet' => [ + ['createdAt' => '2025-03-03T02:31:33.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-06-13T08:13:19.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-05-08T02:53:52.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-07-25T08:46:26.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-07-20T11:21:53.000Z', 'description' => 'Request parameters changed'], + ], + 'ramActions' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B45\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 54B48E3D-DF70-471B-AA93-08E683A1B45\\n","errorExample":""}]', ], 'CheckCanAllocateVpcPrivateIpAddress' => [ - 'summary' => 'Checks whether a private IP address in a specified vSwitch is available.', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -6601,58 +4695,32 @@ ], 'operationType' => 'read', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'none', - ], + 'systemTags' => ['operationType' => 'none'], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'title' => 'RegionId', - 'description' => 'The region ID of the vSwitch to which the private IP address that you want to query belongs.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cn-qingdao', - ], + 'schema' => ['title' => 'RegionId', 'description' => 'The region ID of the vSwitch to which the private IP address that you want to query belongs.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'example' => 'cn-qingdao'], ], [ 'name' => 'VSwitchId', 'in' => 'query', - 'schema' => [ - 'title' => 'VSwitchId', - 'description' => 'The ID of the vSwitch to which the private IP address to be queried belongs.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'vsw-m5ew3t46z2drmifnt****', - ], + 'schema' => ['title' => 'VSwitchId', 'description' => 'The ID of the vSwitch to which the private IP address to be queried belongs.'."\n", 'type' => 'string', 'required' => true, 'example' => 'vsw-m5ew3t46z2drmifnt****'], ], [ 'name' => 'PrivateIpAddress', 'in' => 'query', - 'schema' => [ - 'title' => 'PrivateIpAddress', - 'description' => 'To query whether a private IP address is available, the private IP address must belong to the vSwitch specified by the **VSwitchId** parameter.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => '10.0.0.7', - ], + 'schema' => ['title' => 'PrivateIpAddress', 'description' => 'To query whether a private IP address is available, the private IP address must belong to the vSwitch specified by the **VSwitchId** parameter.'."\n", 'type' => 'string', 'required' => true, 'example' => '10.0.0.7'], ], [ 'name' => 'IpVersion', 'in' => 'query', - 'schema' => [ - 'title' => 'IpVersion', - 'description' => 'The version of the private IP address. Valid values:'."\n" - ."\n" - .'* **ipv4** If you want to query an IPv4 address, this parameter is optional.'."\n" - .'* **ipv6** If you want to query an IPv6 address, this parameter is required.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'ipv4', - ], + 'schema' => ['title' => 'IpVersion', 'description' => 'The version of the private IP address. Valid values:'."\n" + ."\n" + .'* **ipv4** If you want to query an IPv4 address, this parameter is optional.'."\n" + .'* **ipv6** If you want to query an IPv6 address, this parameter is required.'."\n", 'type' => 'string', 'required' => false, 'example' => 'ipv4'], ], ], 'responses' => [ @@ -6662,56 +4730,105 @@ 'description' => 'Schema object'."\n", 'type' => 'object', 'properties' => [ - 'CanAllocate' => [ - 'description' => 'Indicates whether the private IP address is available. Valid values:'."\n" - ."\n" - .'* **true**'."\n" - .'* **false**'."\n", - 'type' => 'boolean', - 'example' => 'true', - ], - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '93360B0-2969-40BF-8542-EBB34FD358AB', - ], + 'CanAllocate' => ['description' => 'Indicates whether the private IP address is available. Valid values:'."\n" + ."\n" + .'* **true**'."\n" + .'* **false**'."\n", 'type' => 'boolean', 'example' => 'true'], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '93360B0-2969-40BF-8542-EBB34FD358AB'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'PARAMETER_ILLEGAL', - 'errorMessage' => 'Parameter illegal.Parameter is ipVersion', - ], - [ - 'errorCode' => 'ResourceNotFound.VSwitchId', - 'errorMessage' => 'The specified resource vswitch is not found.', - ], - [ - 'errorCode' => 'Mismatch.VSwitchAndPrivateIpAddress', - 'errorMessage' => 'The vswitch and privateIpAddress are mismatched.', - ], - [ - 'errorCode' => 'IllegalParam.PrivateIpAddress', - 'errorMessage' => 'The specified PrivateIpAddress is illegal.', - ], + ['errorCode' => 'PARAMETER_ILLEGAL', 'errorMessage' => 'Parameter illegal.Parameter is ipVersion', 'description' => ''], + ['errorCode' => 'ResourceNotFound.VSwitchId', 'errorMessage' => 'The specified resource vswitch is not found.', 'description' => ''], + ['errorCode' => 'Mismatch.VSwitchAndPrivateIpAddress', 'errorMessage' => 'The vswitch and privateIpAddress are mismatched.', 'description' => 'The specified private IP address does not match the vSwitch.'], + ['errorCode' => 'IllegalParam.PrivateIpAddress', 'errorMessage' => 'The specified PrivateIpAddress is illegal.', 'description' => 'The specified PrivateIpAddress is invalid. Check the parameter constraints and try again after modification.'], ], ], 'responseDemo' => '[{"type":"json","example":"{\\n \\"CanAllocate\\": true,\\n \\"RequestId\\": \\"93360B0-2969-40BF-8542-EBB34FD358AB\\"\\n}","errorExample":""},{"type":"xml","example":"\\n true\\n 93360B0-2969-40BF-8542-EBB34FD358AB\\n","errorExample":""}]', 'title' => 'CheckCanAllocateVpcPrivateIpAddress', + 'summary' => 'Checks whether a private IP address in a specified vSwitch is available.', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'vpc:CheckCanAllocateVpcPrivateIpAddress', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VSwitch', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vswitch/{#VSwitchId}'], + ], + ], + ], + ], ], - 'DeleteVSwitch' => [ - 'summary' => 'Deletes a vSwitch.', - 'methods' => [ - 'post', - 'get', + 'CheckVpnBgpEnabled' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'none', 'riskType' => 'none', 'chargeType' => 'free', 'autoTest' => true, 'tenantRelevance' => 'publicInformation'], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => ['description' => 'The region ID of the IPsec-VPN connection.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'example' => 'cn-hangzhou', 'title' => ''], + ], + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'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.'."\n" + ."\n" + .'> 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.'."\n", 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-4266****', 'title' => ''], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'The response parameters.'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.'."\n", 'type' => 'string', 'example' => 'DF448D2E-215D-334F-B10D-7C3B087EF996'], + 'BgpEnabled' => ['description' => 'Indicates whether the region supports BGP.'."\n" + ."\n" + .'* **true**'."\n" + .'* **false**'."\n", 'type' => 'boolean', 'example' => 'true', 'title' => ''], + ], + 'example' => '', + ], + ], + ], + 'errorCodes' => [ + 403 => [ + ['errorCode' => 'Forbidden', 'errorMessage' => 'User not authorized to operate on the specified resource.', 'description' => 'You do not have the permissions to manage the specified resource. Apply for the permissions and try again.'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'CheckVpnBgpEnabled', + 'summary' => 'Checks whether the region of an IPsec-VPN connection supports BGP.', + 'changeSet' => [ + ['createdAt' => '2023-06-12T09:40:13.000Z', 'description' => 'Error codes changed'], ], + 'ramActions' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"DF448D2E-215D-334F-B10D-7C3B087EF996\\",\\n \\"BgpEnabled\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n DF448D2E-215D-334F-B10D-7C3B087EF996\\n true\\n","errorExample":""}]', + ], + 'CompletePhysicalConnectionLOA' => [ + 'summary' => 'Generates a report for an installed Express Connect circuit.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -6719,316 +4836,295 @@ ], 'operationType' => 'write', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'delete', - 'riskType' => 'high', - 'chargeType' => 'free', - 'abilityTreeCode' => '37697', - 'abilityTreeNodes' => [ - 'FEATUREvpc1WY1RZ', - ], - ], + 'systemTags' => ['operationType' => 'update'], 'parameters' => [ [ - 'name' => 'VSwitchId', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the vSwitch that you want to delete.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'vsw-asdfjlna****', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'You can use the client to generate the value, but you must ensure that it is unique among different requests.'."\n" + ."\n" + .'> If you do not set this parameter, the system automatically uses **RequestId** as **ClientToken**. **RequestId** of each API request may be different.'."\n", 'type' => 'string', 'required' => false, 'example' => '02fb3da4-230e-11e9-8e44-0016e04115b', 'title' => ''], + ], + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'You can use the client to generate the value, but you must ensure that it is unique among different requests.'."\n" + ."\n" + .'> If you do not set this parameter, the system automatically uses **RequestId** as **ClientToken**. **RequestId** of each API request may be different.'."\n", 'type' => 'string', 'required' => false, 'example' => '02fb3da4-230e-11e9-8e44-0016e04115b', 'title' => ''], ], [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the vSwitch.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The region ID of the Express Connect circuit.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-shanghai', 'title' => ''], ], [ - 'name' => 'DryRun', + 'name' => 'InstanceId', 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to perform a dry run. Valid values:'."\n" - ."\n" - .'- **true**: performs a dry run. The system checks the required parameters, request syntax, and 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.'."\n" - .'- **false** (default): performs a dry run and sends the request. If the request passes the dry run, a 2xx HTTP status code is returned and the operation is performed.', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['description' => 'The ID of the Express Connect circuit.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'pc-bp10tvlhnwkw****', 'title' => ''], + ], + [ + 'name' => 'LineCode', + 'in' => 'query', + 'schema' => ['description' => 'The circuit code provided by the connectivity provider.'."\n", 'type' => 'string', 'required' => false, 'docRequired' => false, 'example' => 'aaa111****', 'title' => ''], + ], + [ + 'name' => 'LineLabel', + 'in' => 'query', + 'schema' => ['description' => 'The label of the cable in the data center.'."\n", 'type' => 'string', 'required' => false, 'docRequired' => false, 'example' => 'bbb222****', 'title' => ''], + ], + [ + 'name' => 'LineServiceProvider', + 'in' => 'query', + 'schema' => ['description' => 'The ISP. Valid values:'."\n" + ."\n" + .'* **China Telecom**'."\n" + .'* **China Unicom**'."\n" + .'* **China Mobile**'."\n" + .'* **Other ISPs in China**'."\n", 'type' => 'string', 'required' => false, 'example' => '中国其他', 'title' => ''], + ], + [ + 'name' => 'LineSPContactInfo', + 'in' => 'query', + 'schema' => ['description' => 'The contact information about line O\\&M.'."\n", 'type' => 'string', 'required' => false, 'example' => '1388888****', 'title' => ''], + ], + [ + 'name' => 'FinishWork', + 'in' => 'query', + 'schema' => ['description' => 'Specifies whether the construction is completed. Valid values:'."\n" + ."\n" + .'* **true**'."\n" + .'* **false**'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'true', 'default' => 'true', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => 'The returned information.'."\n", 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => '0ED8D006-F706-4D23-88ED-E11ED28DCAC0', - ], + 'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => 'F8983C74-E068-4509-B442-89BD82C8F43B', 'title' => ''], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'OperationDenied.OtherSubnetProcessing', - 'errorMessage' => 'other subnet is processing.', - ], - [ - 'errorCode' => 'IncorrectVSwitchStatus', - 'errorMessage' => 'vpc subnet is in middle status.', - ], - [ - 'errorCode' => 'DependencyViolation', - 'errorMessage' => 'Resources deployed in the vSwitch have not been deleted.', - ], - [ - 'errorCode' => 'IncorrectRouteEntryStatus', - 'errorMessage' => 'Some route entry status blocked this operation.', - ], - [ - 'errorCode' => 'DependencyViolation.HaVip', - 'errorMessage' => 'VSwitch cannot be deleted when there are some HaVip dependent with it.', - ], - [ - 'errorCode' => 'DependencyViolation.RouteTable', - 'errorMessage' => 'VSwitch cannot be deleted when associated with route table', - ], - [ - 'errorCode' => 'MissingParameter', - 'errorMessage' => 'Miss mandatory parameter.', - ], - [ - 'errorCode' => 'TaskConflict', - 'errorMessage' => 'The operation is too frequent, TaskConflict.', - ], - [ - 'errorCode' => 'DependencyViolation.SNAT', - 'errorMessage' => 'The vswitch cannot be deleted when used by snat.', - ], - [ - 'errorCode' => 'DeleteVSwitch.IncorrectStatus.cbnStatus', - 'errorMessage' => 'Current CBN status does not support this operation.', - ], - [ - 'errorCode' => 'AttrMismatching.NaclAndBindInstance', - 'errorMessage' => 'The network acl and resource not in same vpc.', - ], - [ - 'errorCode' => 'InvalidResource.NotBinding', - 'errorMessage' => 'The resource has not been binded.', - ], - [ - 'errorCode' => 'DependencyViolation.SnatEntry', - 'errorMessage' => 'VSwitch cannot be deleted when snat entry exist.', - ], - [ - 'errorCode' => 'DependencyViolation.NetworkAcl', - 'errorMessage' => 'VSwitch cannot be deleted when network acl exist.', - ], - [ - 'errorCode' => 'DependencyViolation.EnhancedNatgw', - 'errorMessage' => 'VSwitch cannot be deleted when natgw exist.', - ], - [ - 'errorCode' => 'DependencyViolation.ResourceShare', - 'errorMessage' => 'VSwitch cannot be deleted when resource share exist.', - ], - [ - 'errorCode' => 'OperationFailed.SystemBusy', - 'errorMessage' => 'Operation failed because system is busy.', - ], - [ - 'errorCode' => 'DependencyViolation.MulticastDomain', - 'errorMessage' => 'VSwitch cannot be deleted when associated with multicast domain.', - ], - [ - 'errorCode' => 'DependencyViolation.VSwitchCidrReservation', - 'errorMessage' => 'VSwitch cannot be deleted when vswitch cidr reservation exist.', - ], - [ - 'errorCode' => 'DependencyViolation.CloudService', - 'errorMessage' => 'VSwitch cannot be deleted when uesd by cloud service.', - ], - [ - 'errorCode' => 'InvalidVSwitchId.NotFound', - 'errorMessage' => 'VSwitch not exist.', - ], - [ - 'errorCode' => 'OperationFailed.Ipv6InstanceExist', - 'errorMessage' => 'Operation failed because vswitch has ipv6 instance.', - ], - [ - 'errorCode' => 'DependencyViolation.Ipv6Address', - 'errorMessage' => 'The specified resource of %s depends on %s, so the operation cannot be completed.', - ], - [ - 'errorCode' => 'DependencyViolation.%s', - 'errorMessage' => 'The specified resource of [%s] depends on [%s], so the operation cannot be completed.', - ], - [ - 'errorCode' => 'Forbidden.RegionNotFound', - 'errorMessage' => 'Specified instance is not found during access authentication.', - ], - [ - 'errorCode' => 'IncorrectStatus', - 'errorMessage' => 'Vswtich status not stable.', - ], - [ - 'errorCode' => 'DependencyViolation.RouterInterface', - 'errorMessage' => 'Specified object has dependent resources RouterInterface.', - ], - [ - 'errorCode' => 'InvalidRegionId.NotFound', - 'errorMessage' => 'The specified region is not found.', - ], + ['errorCode' => 'MissingParam.AliUid', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'MissingParam.InstanceId', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'MissingParam.RegionNo', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'InvalidInstanceId.NotFound', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'IncorrectStatus.PhysicalConnectionLOA', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'IllegalParam.LineCode', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'IllegalParam.LineLabel', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'OperationDenied.LOAStatusNotAllowComplete', 'errorMessage' => 'The operation is not allowed because of LOAStatusNotAllowComplete.', 'description' => 'The LOA status of the port does not allow completion reporting or line O&M.'], + ['errorCode' => 'IllegalParam.LineSPContactInfo', 'errorMessage' => 'LineSPContactInfo is illegal.', 'description' => 'The contact information of the operator\'s line operation and maintenance is illegal.'], ], - 404 => [ - [ - 'errorCode' => 'IncorrectVSwitchId', - 'errorMessage' => 'Specified vSwtich instance is not found during access authentication.', - ], - [ - 'errorCode' => 'InvalidVSwitchId.NotFound', - 'errorMessage' => 'VSwitch not exist.', + ], + 'title' => 'CompletePhysicalConnectionLOA', + 'changeSet' => [ + ['createdAt' => '2023-11-07T09:57:25.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-09-08T05:34:39.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2023-09-07T11:50:19.000Z', 'description' => 'Error codes changed, Request parameters changed'], + ['createdAt' => '2021-11-17T10:03:13.000Z', 'description' => 'Request parameters changed'], + ], + 'ramActions' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"F8983C74-E068-4509-B442-89BD82C8F43B\\"\\n}","errorExample":""},{"type":"xml","example":"\\n F8983C74-E068-4509-B442-89BD82C8F43B\\n","errorExample":""}]', + ], + 'ConfirmPhysicalConnection' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'get'], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => ['description' => 'The region ID of the Express Connect circuit.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-shanghai', 'title' => ''], + ], + [ + 'name' => 'PhysicalConnectionId', + 'in' => 'query', + 'schema' => ['description' => 'The ID of the Express Connect circuit.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'pc-119mf****', 'title' => ''], + ], + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'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 and cannot exceed 64 characters in length.'."\n" + ."\n" + .'> 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.'."\n", 'type' => 'string', 'required' => false, 'example' => '02fb3da4-130e-11e9-8e44-0016e0****', 'title' => ''], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => 'API-20365164-5b0d-460a-83c2-2189972b****', 'title' => ''], + ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"0ED8D006-F706-4D23-88ED-E11ED28DCAC0\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 0ED8D006-F706-4D23-88ED-E11ED28DCAC0\\n","errorExample":""}]', - 'title' => 'DeleteVSwitch', - 'description' => 'When you call this operation, take note of the following limits:'."\n" - ."\n" - .'* Before you delete a vSwitch, you must first release or remove all virtual private cloud (VPC) resources, including vSwitches, instances, router interfaces, and high-availability virtual IP addresses (HaVips).'."\n" - ."\n" - .'* You can delete only vSwitches that are in the **Available** state.'."\n" - ."\n" - .'* You cannot delete a vSwitch from a VPC where a vSwitch or a route is being created or deleted.'."\n" - ."\n" - .'* **DeleteVSwitch** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call the [DescribeVSwitchAttributes](~~94567~~) operation to query the status of the task:'."\n" - ."\n" - .' * If the vSwitch is in the **Pending** state, the vSwitch is being deleted.'."\n" - .' * If you cannot query the vSwitch, the vSwitch is deleted.'."\n" - ."\n" - .'* You cannot repeatedly call the **DeleteVSwitch** operation to delete a vSwitch within the specified period of time.', + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'OperationFailed.PconnTrafficNotEnable', 'errorMessage' => 'The operation is failed because of PconnTrafficNotEnable.', 'description' => 'Billing for outbound data transfer is disabled.'], + ['errorCode' => 'ResourceNotFound.PhysicalConnectionId', 'errorMessage' => 'PhysicalConnection is not found.', 'description' => 'PhysicalConnectionId is set to an invalid value.'], + ['errorCode' => 'MissingParam.RegionNo', 'errorMessage' => 'RegionNo is missing.', 'description' => 'The RegionNo parameter is not set.'], + ['errorCode' => 'MissingParam.AliUid', 'errorMessage' => 'AliUid is missing.', 'description' => 'The AliUid parameter is not set.'], + ['errorCode' => 'MissingParam.PhysicalConnectionId', 'errorMessage' => 'PhysicalConnectionId is missing.', 'description' => 'The PhysicalConnectionId is not set.'], + ['errorCode' => 'InvalidPhysicalConnectionId.NotFound', 'errorMessage' => 'The specified physicalConnection is not found', 'description' => 'The PhysicalConnectionId parameter is set to an invalid value.'], + ['errorCode' => 'InvalidRegionId.NotFound', 'errorMessage' => 'The specified RegionId is not found.', 'description' => 'The specified region ID is invalid. Check whether the service is available in the specified region.'], + ['errorCode' => 'IncorrectStatus.PhysicalConnection', 'errorMessage' => 'The specified PhysicalConnectionId is not in Allocated state.', 'description' => 'The PhysicalConnectionId parameter is not in the Allocated state.'], + ['errorCode' => 'OperationUnsupported.SkipConstruction', 'errorMessage' => 'You can not skip construction.', 'description' => 'You cannot skip the construction step.'], + ['errorCode' => 'ResourceNotFound.PhysicalConnection', 'errorMessage' => 'The specified resource of %s is not found.', 'description' => 'The PhysicalConnection does not exist.'], + ], + ], + 'title' => 'ConfirmPhysicalConnection', + 'summary' => 'Changes the status of an Express Connect circuit to Confirmed.', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'ModifyVSwitchAttribute' => [ - 'summary' => 'Modifies the name and description of a vSwitch.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [ + ['createdAt' => '2024-06-28T02:56:12.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2021-09-27T03:23:37.000Z', 'description' => 'Error codes changed'], ], + 'ramActions' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"API-20365164-5b0d-460a-83c2-2189972b****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n API-20365164-5b0d-460a-83c2-2189972b****\\n","errorExample":""}]', + ], + 'ConnectRouterInterface' => [ + 'summary' => 'Initiates a connection from the router interface of an initiator to the router interface of an accepter.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', - 'systemTags' => [ - 'operationType' => 'update', - ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ - 'name' => 'VSwitchId', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the vSwitch.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'vsw-25nacdfvue4****', - ], + 'schema' => ['description' => 'The ID of the region where the router interface is deployed.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'VSwitchName', + 'name' => 'RouterInterfaceId', 'in' => 'query', + 'schema' => ['description' => 'The ID of the initiator router interface.'."\n", 'type' => 'string', 'required' => true, 'example' => 'ri-2zeo3xzyf38r4urzd****', 'title' => ''], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => 'The new name for the vSwitch.'."\n" - ."\n" - .'The name must be 1 to 128 characters in length, and cannot start with `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'VSwitch-1', + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => 'DE77A7F3-3B74-41C0-A5BC-CAFD188C28B6', 'title' => ''], + ], + 'title' => '', + 'example' => '', ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'IncorrectRole.NotInitiatingSide', 'errorMessage' => 'The specified RouterInterface is not InitiatingSide.', 'description' => ''], + ['errorCode' => 'IncorrectRIStatus', 'errorMessage' => 'RouterInterface can be operated by this action only when it\'s status is Idle.', 'description' => 'You can perform the operation only when the router interface is in the Idle state.'], + ['errorCode' => 'IncorrectOppositeInterfaceInfo.NotSet', 'errorMessage' => 'OppositeInterfaceId/OppositeRouterId/OppositeRouterType/OppositeInterfaceOwnerId must be all set.', 'description' => 'You must specify OppositeInterfaceId, OppositeRouterId, OppositeRouterType, and OppositeInterfaceOwnerId.'], + ['errorCode' => 'IncorrectOppositeInterfaceInfo', 'errorMessage' => 'Cannot connect on the same router', 'description' => ''], + ['errorCode' => 'Forbidden.OnlyOneConnection', 'errorMessage' => 'The Specified routers have a connection already', 'description' => ''], + ['errorCode' => 'Forbidden.BillsOutstanding', 'errorMessage' => 'You cannot use this action because you have bills outstanding.', 'description' => ''], + ['errorCode' => 'InvalidAccount.NotFound', 'errorMessage' => 'The specified account is not exists.', 'description' => ''], + ['errorCode' => 'ErrCode.Invalid', 'errorMessage' => 'got error', 'description' => ''], + ['errorCode' => 'AttrMismatching.AcceptingSideRole', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'AttrMismatching.AcceptingSideInstanceId', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'AttrMismatching.AcceptingSideRegionNo', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'AttrMismatching.AcceptingSideRouterId', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'AttrMismatching.AcceptingSideRouterType', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'AttrMismatching.AcceptingSideAliUid', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'AttrMismatching.AcceptingSideOppositeInterfaceOwnerId', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'AttrMismatching.AcceptingSideOppositeRegionNo', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'AttrMismatching.AcceptingSideOppositeInterfaceId', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'AttrMismatching.AcceptingSideOppositeRouterId', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'AttrMismatching.AcceptingSideOppositeRouterType', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'IllegalParam.InstanceOwner', 'errorMessage' => 'The router instance owener error.', 'description' => ''], + ], + 404 => [ + ['errorCode' => 'InvalidRegionId.NotFound', 'errorMessage' => 'The RegionId provided does not exist in our records.', 'description' => ''], + ['errorCode' => 'InvalidRouterInterfaceId.NotFound', 'errorMessage' => 'The specified RouterInterfaceId does not exist in our record.', 'description' => ''], + ['errorCode' => 'CROSS_BID.FORBIDDEN', 'errorMessage' => 'Connect RouterInterface across bid is illegal', 'description' => ''], + ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'ConnectRouterInterface', + 'description' => 'After you call this operation, the router interface enters the **Connecting** state. When the connection is established, it enters the **Active** state.'."\n" + ."\n" + .'When you call this operation, take note of the following items:'."\n" + ."\n" + .'* Only an initiator router interface in the **Idle** state can initiate a connection.'."\n" + .'* You can create only one pair of connected router interfaces between two routers.'."\n" + .'* You cannot initiate a connection if your Alibaba Cloud account has a router interface with overdue payments.', + 'changeSet' => [ + ['createdAt' => '2023-07-21T03:54:45.000Z', 'description' => 'Error codes changed'], + ], + 'ramActions' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"DE77A7F3-3B74-41C0-A5BC-CAFD188C28B6\\"\\n}","errorExample":""},{"type":"xml","example":"\\n DE77A7F3-3B74-41C0-A5BC-CAFD188C28B6\\n","errorExample":""}]', + ], + 'ConvertBandwidthPackage' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region where the vSwitch is deployed. You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou', - ], + 'AK' => [], ], + ], + 'operationType' => 'readAndWrite', + 'deprecated' => true, + 'systemTags' => ['operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free'], + 'parameters' => [ [ - 'name' => 'Description', + 'name' => 'BandwidthPackageId', 'in' => 'query', - 'schema' => [ - 'description' => 'The new description for the vSwitch.'."\n" - ."\n" - .'The description must be 1 to 256 characters in length and cannot start with `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'This is my vswitch.', - ], + 'schema' => ['description' => 'The ID of the NAT service plan.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'bwp-bp1xea10o8qxw4f****', 'title' => ''], ], [ - 'name' => 'Ipv6CidrBlock', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The last eight bits of the IPv6 CIDR block of the vSwitch. Valid values: **0** to **255**.'."\n" - ."\n" - .'You can set this parameter only when the IPv6 feature is enabled for the virtual private cloud (VPC) to which the vSwitch belongs.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '10', - ], + 'schema' => ['description' => 'The region where the NAT gateway resides. You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'EnableIPv6', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to enable the IPv6 feature for the vSwitch. Valid values:'."\n" - ."\n" - .'* **true**: enables the IPv6 feature.'."\n" - .'* **false**: disables the IPv6 feature. This is the default value.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['description' => 'The region where the NAT gateway resides. You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'VpcIpv6CidrBlock', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The IPv6 CIDR block of the VPC to which the vSwitch belongs.'."\n" - ."\n" - .'You can set this parameter only when the IPv6 feature is enabled for the VPC.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '2408:XXXX:312:3e00::/56', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotency of the request. You can use the client to generate a client token. Make sure that a unique client token is used for each request. The **token** can contain only ASCII characters and cannot exceed 64 characters in length. For more information, see [How to ensure idempotence](~~36569~~).'."\n", 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-426655440000', 'title' => ''], ], ], 'responses' => [ @@ -7036,807 +5132,486 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => '0ED8D006-F706-4D23-88ED-E11ED28DCAC0', - ], + 'ConvertInstanceId' => ['description' => 'The ID of the Internet Shared Bandwidth instance.'."\n", 'type' => 'string', 'example' => 'bwp-s6lmotmkkf567b****', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '455AC20C-7061-446A-BDBD-B3BEE0856304', 'title' => ''], ], + 'description' => '', + 'title' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidVSwitchName.Malformed', - 'errorMessage' => 'Specified virtual switch name is not valid.', - ], - [ - 'errorCode' => 'InvalidVSwitchDiscription.Malformed', - 'errorMessage' => 'Specified virtual switch description is not valid.', - ], - [ - 'errorCode' => 'Forbidden.VRouterNotFound', - 'errorMessage' => 'specified virtual switch is not found during access authentication.', - ], - [ - 'errorCode' => 'UnsupportedFeature.CloudBoxIpv6', - 'errorMessage' => 'The IPv6 feature is not supported by cloud box.', - ], - [ - 'errorCode' => 'OperationFailed.Ipv6InstanceExist', - 'errorMessage' => 'Operation failed because vswitch has ipv6 instance.', - ], - [ - 'errorCode' => 'IncorrectStatus.VpcRouteEntry', - 'errorMessage' => 'The status of the specified routeEntry is invalid.', - ], - [ - 'errorCode' => 'OperationFailed.IPv6Disabled', - 'errorMessage' => 'Operation failed because IPv6 is not enabled for the vSwitch.', - ], - [ - 'errorCode' => 'ParamExclusive.DisableIpv6AndIpv6CidrBlock', - 'errorMessage' => 'DisableIpv6 and Ipv6Cidr are mutually exclusive.', - ], - [ - 'errorCode' => 'IncorrectStatus.cbnStatus', - 'errorMessage' => 'Current CBN status does not support this operation.', - ], - [ - 'errorCode' => 'DependencyViolation.IPv6CidrReservation', - 'errorMessage' => 'The specified resource of [%s] depends on [%s], so the operation cannot be completed.', - ], - [ - 'errorCode' => 'IllegalParam.VpcIpv6CidrBlock', - 'errorMessage' => 'The parameter of VpcIPv6CidrBlock is illegal.', - ], - [ - 'errorCode' => 'OperationFailed.Ipv6AlreadyEnabled', - 'errorMessage' => 'Operation failed because the IPv6 is enabled already.', - ], - [ - 'errorCode' => 'OperationFailed.Ipv6CidrBlockExisted', - 'errorMessage' => 'Operation failed because the specified IPv6 CIDR block is used already.', - ], - [ - 'errorCode' => 'IllegalParam.Ipv6CidrBlock', - 'errorMessage' => 'The parameter of Ipv6CidrBlock is illegal.', - ], - [ - 'errorCode' => 'InvalidDescription.Malformed', - 'errorMessage' => 'The specified Description is wrongly formed.', - ], - [ - 'errorCode' => 'OperationFailed.VpcIpv6Disabled', - 'errorMessage' => 'Operation failed because the VPC has not enabled IPv6.', - ], - [ - 'errorCode' => 'IncorrectStatus.VSwitch', - 'errorMessage' => 'The specified vSwitch status is invalid.', - ], - [ - 'errorCode' => 'OperationFailed.Ipv6CidrBlockUsed', - 'errorMessage' => 'Operation failed because the specified IPv6 CIDR block is used already.', - ], - [ - 'errorCode' => 'TaskConflict', - 'errorMessage' => 'The operation is too frequent. Please wait a moment and try again.', - ], - ], - 404 => [ - [ - 'errorCode' => 'InvalidVSwitchId.NotFound', - 'errorMessage' => 'The specified virtual switch does not exists.', - ], + ['errorCode' => 'NotOpen.Api', 'errorMessage' => 'The api is not open.', 'description' => ''], + ['errorCode' => 'NotFound.BandwidthPackage', 'errorMessage' => 'BandwidthPackage is not exist', 'description' => ''], + ['errorCode' => 'ORDER.QUOTA_EXCEEDED', 'errorMessage' => 'The EIP quota is exceeded', 'description' => ''], + ['errorCode' => 'ORDER.ERROR', 'errorMessage' => 'Create order failed.Commodity configuration does not support.', 'description' => ''], ], 500 => [ - [ - 'errorCode' => 'SystemBusy', - 'errorMessage' => 'The system is busy. Please try again later.', - ], + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error.', 'description' => ''], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"0ED8D006-F706-4D23-88ED-E11ED28DCAC0\\"\\n}","errorExample":""},{"type":"xml","example":"\\r\\n0ED8D006-F706-4D23-88ED-E11ED28DCAC0\\r\\n","errorExample":"\\n\\n 0ED8D006-F706-4D23-88ED-E11ED28DCAC0\\n"}]', - 'title' => 'ModifyVSwitchAttribute', - 'description' => '* **ModifyVSwitchAttribute** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call the [DescribeVSwitchAttributes](~~94567~~) operation to query the status of the task:'."\n" - ."\n" - .' * If the vSwitch is in the **Pending** state, the name and description of the vSwitch are being modified.'."\n" - .' * If the vSwitch is in the **Available** state, the name and description of the vSwitch are modified.'."\n" + 'staticInfo' => ['noSubstitutionReason' => '无替代API,历史原因导致该API被标记为弃用。'], + 'title' => 'ConvertBandwidthPackage', + 'summary' => 'Converts a NAT service plan to an Internet Shared Bandwidth instance.', + 'description' => 'Before you convert a NAT service plan to an Internet Shared Bandwidth instance, take note of the following limits:'."\n" ."\n" - .'* You cannot repeatedly call the **ModifyVSwitchAttribute** operation to modify the name and description of a vSwitch within the specified period of time.'."\n", + .'* You are not charged for the conversion.'."\n" + .'* When you convert a NAT service plan to an Internet Shared Bandwidth instance, you can continue to use the SNAT and DNAT features of the NAT gateway, and your workloads are not affected. However, we recommend that you convert your NAT service plan during off-peak hours.'."\n" + .'* After the NAT service plan is converted to an Internet Shared Bandwidth instance, the public IP addresses in the NAT service plan are converted to elastic IP addresses (EIPs). The maximum bandwidth and billing method of the Internet Shared Bandwidth instance are the same as those of the NAT service plan.'."\n", 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeVSwitches' => [ - 'summary' => 'Queries the information about available vSwitches that are used for an internal network.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:ConvertBandwidthPackage', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"ConvertInstanceId\\": \\"bwp-s6lmotmkkf567b****\\",\\n \\"RequestId\\": \\"455AC20C-7061-446A-BDBD-B3BEE0856304\\"\\n}","errorExample":""},{"type":"xml","example":"\\r\\n\\t0C2EE7A8-74D4-4081-8236-CEBDE3BBCF50\\r\\n\\tbwp-s6lmotmkkf567b****\\r\\n","errorExample":""}]', + ], + 'CopyNetworkAclEntries' => [ + 'summary' => 'Copies network ACL rules by calling the CopyNetworkAclEntries operation.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'readAndWrite', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'list', - 'riskType' => 'none', - 'chargeType' => 'free', - ], + 'systemTags' => ['operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ - 'name' => 'VpcId', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the virtual private cloud (VPC) to which the vSwitches belong.'."\n" - ."\n" - .'> You must set at least one of **RegionId** and **VpcId**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'vpc-25cdvfeq58pl****', - ], + 'schema' => ['description' => 'The region ID of the network ACL. You can call the [DescribeRegions](~~36063~~) operation to query the region ID.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'VSwitchId', + 'name' => 'NetworkAclId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the vSwitch that you want to query.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'vsw-23dscddcffvf3****', - ], + 'schema' => ['description' => 'The ID of the network ACL.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'nacl-a2do9e413e0spxxxxxxxx', 'title' => ''], ], [ - 'name' => 'ZoneId', + 'name' => 'SourceNetworkAclId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the zone to which the vSwitches belong. You can call the [DescribeZones](~~36064~~) operation to query the most recent zone list.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou-d', - ], + 'schema' => ['description' => 'The ID of the source network ACL from which rules are copied.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'nacl-ghuo9ehg3e0spxxxxxxxx', 'title' => ''], + ], + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'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.'."\n" + ."\n" + .'> If you do not specify this parameter, the system automatically uses the **RequestId** of the API request as the **ClientToken**. The **RequestId** may differ for each API request.', 'type' => 'string', 'required' => false, 'example' => '123', 'title' => ''], + ], + [ + 'name' => 'DryRun', + 'in' => 'query', + 'schema' => ['description' => 'Specifies whether to perform a dry run. Valid values:'."\n" + .'* **true**: performs a dry run. The system checks the request for potential issues without performing the actual operation.'."\n" + .'* **false** (default): performs the actual request.', 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], ], [ 'name' => 'RegionId', 'in' => 'query', + 'schema' => ['description' => 'The region ID of the network ACL. You can call the [DescribeRegions](~~36063~~) operation to query the region ID.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => 'The region ID of the vSwitch. You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n" - ."\n" - .'> You must set at least one of **RegionId** and **VpcId**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '6608E72F-F276-440F-ABEF-419971CEC4D1', 'title' => ''], + ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'ParameterMissing.AliUid', 'errorMessage' => 'ParameterMissing.AliUid', 'description' => ''], + ['errorCode' => 'ParameterMissing.Bid', 'errorMessage' => 'ParameterMissing.Bid', 'description' => ''], + ['errorCode' => 'ParameterMissing.RegionId', 'errorMessage' => 'ParameterMissing.RegionId', 'description' => ''], + ['errorCode' => 'ParameterEmpty.RegionId', 'errorMessage' => 'ParameterEmpty.RegionId', 'description' => ''], + ['errorCode' => 'ParameterMissing.NetworkAclId', 'errorMessage' => 'ParameterMissing.NetworkAclId', 'description' => ''], + ['errorCode' => 'ParameterEmpty.NetworkAclId', 'errorMessage' => 'ParameterEmpty.NetworkAclId', 'description' => ''], + ['errorCode' => 'ParameterMissing.SourceNetworkAclId', 'errorMessage' => 'ParameterMissing.SourceNetworkAclId', 'description' => ''], + ['errorCode' => 'ParameterEmpty.SourceNetworkAclId', 'errorMessage' => 'ParameterEmpty.SourceNetworkAclId', 'description' => ''], + ['errorCode' => 'InvalidNetworkAcl.NotFound', 'errorMessage' => 'The special Network Acl is not found.', 'description' => 'The network ACL is not found.'], + ['errorCode' => 'InvalidSourceNetworkAcl.NotFound', 'errorMessage' => 'The special source network Acl is not found.', 'description' => ''], + ], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error.', 'description' => ''], + ], + ], + 'staticInfo' => ['returnType' => 'asynchronous', 'callback' => 'Vpc::2016-04-28::DescribeNetworkAcls', 'callbackInterval' => 3000, 'maxCallbackTimes' => 10], + 'title' => 'Copy network ACL rules', + 'description' => '- **CopyNetworkAclEntries** is an asynchronous operation. After you invoke this operation, the system returns a request ID, but the network ACL rules have not been replicated yet. The replication node continues to run in the background. You can invoke [DescribeNetworkAclAttributes](~~116542~~) to query the replication status of the network ACL rules:'."\n" + .' - If the network ACL rules are in the **Modifying** state, the network ACL rules are being replicated.'."\n" + .' - If the network ACL rules are in the **Available** state, the network ACL rules have been replicated. Copy succeeded.'."\n" + .'- **CopyNetworkAclEntries** does not support concurrent replication of the same network ACL rules.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2023-11-24T05:37:30.000Z', 'description' => 'Request parameters changed'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '30', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CopyNetworkAclEntries'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], + ], + 'ramActions' => [ [ - 'name' => 'VSwitchName', - 'in' => 'query', - 'schema' => [ - 'description' => 'The vSwitch name.'."\n" - ."\n" - .'The name must be 1 to 128 characters in length, and cannot start with `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'vSwitch', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:CopyNetworkAclEntries', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'NetworkAcl', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:networkacl/{#NetworkAclId}'], + ], ], ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"6608E72F-F276-440F-ABEF-419971CEC4D1\\"\\n}","type":"json"}]', + ], + 'CreateBgpGroup' => [ + 'summary' => 'Creates a BGP group for a virtual border router (VBR).', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'readAndWrite', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'create'], + 'parameters' => [ [ - 'name' => 'DryRun', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to perform a dry run, without performing the actual request. Valid values:'."\n" - ."\n" - .'* **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.'."\n" - .'* **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.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], + 'schema' => ['description' => 'The region ID of the VBR.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-shanghai', 'title' => ''], ], [ - 'name' => 'IsDefault', + 'name' => 'RouterId', 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to query the default vSwitches in the specified region. Valid values:'."\n" - ."\n" - .'* **true**'."\n" - .'* **false**'."\n" - ."\n" - .'If you do not set this parameter, the system queries all vSwitches in the specified region by default.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], + 'schema' => ['description' => 'The ID of the VBR.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'vbr-bp1ctxy813985gkuk****', 'title' => ''], ], [ - 'name' => 'RouteTableId', + 'name' => 'Name', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the route table.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'vtb-bp145q7glnuzdvzu2****', - ], + 'schema' => ['description' => 'The name of the BGP group.'."\n" + ."\n" + .'The name must be 2 to 128 characters in length, and can contain letters, digits, periods (.), underscores (\\_), and hyphens (-). The name must start with a letter.'."\n", 'type' => 'string', 'required' => false, 'example' => 'test', 'title' => ''], ], [ - 'name' => 'ResourceGroupId', + 'name' => 'Description', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the resource group to which the vSwitch belongs.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'rg-bp67acfmxazb4ph****', - ], + 'schema' => ['description' => 'The description of the BGP group.'."\n" + ."\n" + .'The description must be 2 to 256 characters in length. It must start with a letter and cannot start with `http://` or `https://`.'."\n", 'type' => 'string', 'required' => false, 'example' => 'BGP', 'title' => ''], ], [ - 'name' => 'PageNumber', + 'name' => 'LocalAsn', 'in' => 'query', - 'schema' => [ - 'description' => 'The page number. Default value: **1**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'minimum' => '1', - 'example' => '1', - 'default' => '1', - ], + 'schema' => ['description' => 'The custom ASN on the Alibaba Cloud side. Valid values:'."\n" + ."\n" + .'* **45104**'."\n" + .'* **64512~65534**'."\n" + .'* **4200000000~4294967294**'."\n" + ."\n" + .'> **65025** is reserved by Alibaba Cloud. By default, Alibaba Cloud uses **45104** as **LocalAsn**. If you use custom **LocalAsn** in multi-line access scenarios, loops in BGP may occur.'."\n", 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '45104', 'title' => ''], ], [ - 'name' => 'PageSize', + 'name' => 'PeerAsn', 'in' => 'query', - 'schema' => [ - 'description' => 'The number of entries per page. Maximum value: **50**. Default value: **10**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '50', - 'minimum' => '1', - 'example' => '10', - 'default' => '10', - ], + 'schema' => ['description' => 'The ASN of the gateway device in the data center.'."\n", 'type' => 'integer', 'format' => 'int64', 'required' => true, 'docRequired' => true, 'example' => '1****', 'title' => ''], ], [ - 'name' => 'VSwitchOwnerId', + 'name' => 'AuthKey', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the Alibaba Cloud account to which the vSwitch belongs.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '2546073170691****', - ], + 'schema' => ['description' => 'The authentication key of the BGP group.'."\n", 'type' => 'string', 'required' => false, 'example' => '!PWZ2****', 'title' => ''], ], [ - 'name' => 'EnableIpv6', + 'name' => 'IsFakeAsn', 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to query vSwitches with IPv6 enabled in the region. Valid values:'."\n" - ."\n" - .'* **true**'."\n" - .'* **false**'."\n" - ."\n" - .'If you do not set this parameter, the system queries all vSwitches in the specified region by default.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['description' => 'Specifies whether to use a fake ASN. Valid values:'."\n" + ."\n" + .'* **false** (default)'."\n" + .'* **true**'."\n" + ."\n" + .'> A router that runs BGP typically belongs to only one AS. If you need to replace an existing AS with a new AS and you cannot immediately modify BGP configurations, you can use fake ASNs to ensure service continuity.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'true', 'default' => 'true', 'title' => ''], ], [ - 'name' => 'Tag', + 'name' => 'ClientToken', 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => 'The tags.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => 'The tag key. You can specify at most 20 tag keys. The tag key cannot be an empty string.'."\n" - ."\n" - .'The tag key can be up to 128 characters in length. It cannot start with `aliyun` or `acs:`, and cannot contain `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'FinanceDept', - ], - 'Value' => [ - 'description' => 'The tag value. You can specify at most 20 tag values. The tag value can be an empty string.'."\n" - ."\n" - .'The tag value can be up to 128 characters in length, and cannot contain `http://` or `https://`. The tag value cannot start with `aliyun` or `acs:`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'FinanceJoshua', - ], - ], - 'required' => false, - ], - 'required' => false, - 'maxItems' => 20, - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'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.'."\n" + ."\n" + .'> 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.'."\n", 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-426655440000', 'title' => ''], + ], + [ + 'name' => 'IpVersion', + 'in' => 'query', + 'schema' => ['description' => 'The IP version. Valid values:'."\n" + ."\n" + .'* **IPv4**: This is the default value.'."\n" + .'* **IPv6**: IPv6 is supported only if the VBR for which you want to create the BGP group has IPv6 enabled.'."\n", 'type' => 'string', 'required' => false, 'example' => 'IPv4', 'title' => ''], + ], + [ + 'name' => 'RouteQuota', + 'in' => 'query', + 'schema' => ['description' => 'The maximum number of routes supported by a BGP peer. Default value: **110**.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '110', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => 'The response parameters.'."\n", + 'description' => 'The ID of the BGP group.'."\n", 'type' => 'object', 'properties' => [ - 'PageSize' => [ - 'description' => 'The number of entries returned per page.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '9A572171-4E27-40D1-BD36-D26C9E71E29E', - ], - 'PageNumber' => [ - 'description' => 'The number of the returned page.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'TotalCount' => [ - 'description' => 'The total number of entries returned.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'VSwitches' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'VSwitch' => [ - 'description' => 'The details about the vSwitch.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'VpcId' => [ - 'description' => 'The ID of the VPC to which the vSwitch belongs.'."\n", - 'type' => 'string', - 'example' => 'vpc-257gcdcdq64****', - ], - 'Status' => [ - 'description' => 'The status of the vSwitch. Valid values:'."\n" - ."\n" - .'* **Pending**'."\n" - .'* **Available**'."\n", - 'type' => 'string', - 'example' => 'Available', - ], - 'CreationTime' => [ - 'description' => 'The time when the vSwitch was created.'."\n", - 'type' => 'string', - 'example' => '2022-01-18T12:43:57Z', - ], - 'IsDefault' => [ - 'description' => 'Indicates whether the vSwitch is the default vSwitch. Valid values:'."\n" - ."\n" - .'* **true**'."\n" - .'* **false**'."\n", - 'type' => 'boolean', - 'example' => 'true', - ], - 'AvailableIpAddressCount' => [ - 'description' => 'The number of available IP addresses in the vSwitch.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1', - ], - 'NetworkAclId' => [ - 'description' => 'The ID of the network access control list (ACL).'."\n", - 'type' => 'string', - 'example' => 'nacl-a2do9e413e0spzasx****', - ], - 'OwnerId' => [ - 'description' => 'The ID of the Alibaba Cloud account to which the resource belongs.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '25346073170691****', - ], - 'VSwitchId' => [ - 'description' => 'The vSwitch ID.'."\n", - 'type' => 'string', - 'example' => 'vsw-25bcdxs7pv1****', - ], - 'CidrBlock' => [ - 'description' => 'The IPv4 CIDR block of the vSwitch.'."\n", - 'type' => 'string', - 'example' => '172.16.0.0/24', - ], - 'Description' => [ - 'description' => 'The description of the vSwitch.'."\n", - 'type' => 'string', - 'example' => 'VSwitchDescription', - ], - 'ResourceGroupId' => [ - 'description' => 'The ID of the resource group to which the vSwitch belongs.'."\n", - 'type' => 'string', - 'example' => 'rg-acfmxazb4ph6aiy****', - ], - 'ZoneId' => [ - 'description' => 'The ID of the zone to which the vSwitch belongs.'."\n", - 'type' => 'string', - 'example' => 'cn-hangzhou-d', - ], - 'Ipv6CidrBlock' => [ - 'description' => 'The IPv6 CIDR block of the vSwitch.'."\n", - 'type' => 'string', - 'example' => '2408:4002:10c4:4e03::/64', - ], - 'VSwitchName' => [ - 'description' => 'The vSwitch name.'."\n", - 'type' => 'string', - 'example' => 'vSwitch', - ], - 'ShareType' => [ - 'description' => 'Indicates whether the vSwitch is shared.'."\n" - ."\n" - .'* If no value is returned, the vSwitch is a regular vSwitch.'."\n" - .'* If **Shared** is returned, the vSwitch is shared.'."\n" - .'* If **Sharing** is returned, the vSwitch is being shared.'."\n", - 'type' => 'string', - 'example' => 'Shared', - ], - 'EnabledIpv6' => [ - 'description' => 'Indicates whether IPv6 is enabled for the vSwitch. If you enable IPv6, you must configure an IPv6 CIDR block for the vSwitch. Valid values:'."\n" - ."\n" - .'* **true**'."\n" - .'* **false**'."\n", - 'type' => 'boolean', - 'example' => 'true', - ], - 'Tags' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'Tag' => [ - 'description' => 'The tags of the vSwitch.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => 'The tag key.'."\n", - 'type' => 'string', - 'example' => 'department', - ], - 'Value' => [ - 'description' => 'The tag value.'."\n", - 'type' => 'string', - 'example' => 'dev', - ], - ], - ], - ], - ], - ], - 'RouteTable' => [ - 'description' => 'The information about the route table.'."\n", - 'type' => 'object', - 'properties' => [ - 'RouteTableId' => [ - 'description' => 'The ID of the route table that is associated with the vSwitch.'."\n", - 'type' => 'string', - 'example' => 'vrt-bp145q7glnuzdv****', - ], - 'RouteTableType' => [ - 'description' => 'The type of the route table. Valid values:'."\n" - ."\n" - .'* **System**'."\n" - .'* **Custom**'."\n", - 'type' => 'string', - 'example' => 'System', - ], - ], - ], - ], - ], - ], - ], - ], + 'BgpGroupId' => ['description' => 'The ID of the BGP group.'."\n", 'type' => 'string', 'example' => 'bgpg-bp1k25cyp26cllath****', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => 'C1221A1F-2ACD-4592-8F27-474E02883159', 'title' => ''], ], + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'Forbidden.VpcNotFound', - 'errorMessage' => 'Specified VPC can not found.', - ], - [ - 'errorCode' => 'InvalidTagKey', - 'errorMessage' => 'The tag keys are not valid.', - ], - [ - 'errorCode' => 'InvalidTagValue', - 'errorMessage' => 'The tag values are not valid.', - ], - [ - 'errorCode' => 'IellgalParameter.OwnerAccount', - 'errorMessage' => 'The specified parameter OwnerAccount is not valid.', - ], - [ - 'errorCode' => 'IllegalParam.OwnerId', - 'errorMessage' => 'The specified parameter VSwitchOwnerId is not valid.', - ], - [ - 'errorCode' => 'InvalidVpcIdNumber.NotSupported', - 'errorMessage' => 'The number of vpcIds exceeds the limit.', - ], - [ - 'errorCode' => 'InvalidVSwitchIdNumber.NotSupported', - 'errorMessage' => 'The number of vSwitchIds exceeds the limit.', - ], + ['errorCode' => 'QuotaExceeded.Bgp', 'errorMessage' => 'bgp peer count per vbr quota exceed.', 'description' => 'The number of BGP peers in the VBR has reached the upper limit.'], + ['errorCode' => 'QuotaExceeded.Nqa', 'errorMessage' => 'nqa count per vbr quota exceed.', 'description' => ''], + ['errorCode' => 'QuotaExceeded.BgpNetwork', 'errorMessage' => 'bgp network count per vbr quota exceed.', 'description' => ''], + ['errorCode' => 'InvalidPeerIpAddress', 'errorMessage' => 'multi pconn peer ip can not be null.', 'description' => ''], + ['errorCode' => 'InvalidVbrNetwork', 'errorMessage' => 'vbr netowrk not exists', 'description' => ''], + ['errorCode' => 'InvalidBgpGroup', 'errorMessage' => 'bgp group not exists', 'description' => ''], + ['errorCode' => 'InvalidBgpName.Malformed', 'errorMessage' => 'Specified Bgp Group name is not valid.', 'description' => ''], + ['errorCode' => 'InvalidBgpDescription.Malformed', 'errorMessage' => 'Specified Bgp Group description is not valid.', 'description' => ''], + ['errorCode' => 'InvalidBgpAuthkey.Malformed', 'errorMessage' => 'Specified Bgp Group authkey is not valid.', 'description' => ''], + ['errorCode' => 'InvalidIP.Malformed', 'errorMessage' => 'Ip malformed.', 'description' => ''], + ['errorCode' => 'InvalidPeerAsn.Malformed', 'errorMessage' => 'invalid peer asn cannot equals aliyun asn:45104', 'description' => ''], + ['errorCode' => 'InvalidParams.NotNull', 'errorMessage' => 'params must not null.', 'description' => 'The parameter is required.'], + ['errorCode' => 'InvalidBgpGroup.LocalAsnInvalid', 'errorMessage' => 'The specified BgpGroup LocalAsn is invalid, only support 64512 to 65534 or 4200000000 to 4294967294, but cannot be 65025.', 'description' => 'The local ASN of the BGP group is invalid. You must set a value from 64512 to 65534 or from 420000000 to 429496729.'], + ['errorCode' => 'InvalidParams.NotFound', 'errorMessage' => 'instance not found', 'description' => ''], + ['errorCode' => 'InvalidParams.AlreadyExists', 'errorMessage' => 'bgp network already exists', 'description' => 'The BGP network already exists.'], + ['errorCode' => 'InvalidStatus.CannotOperate', 'errorMessage' => 'invalid status cannot operate', 'description' => ''], + ['errorCode' => 'InvalidParams.PeerIpAddressMustPointOut', 'errorMessage' => 'vbr has 0 or more than 1 subif ,point out peerIpAddress.', 'description' => 'You must set the PeerIpAddress parameter.'], + ['errorCode' => 'InvalidParams.PeerIpAddressInUse', 'errorMessage' => 'peer ip address in use ,cannot create bgp peer.', 'description' => 'The peer IP address is being used. Therefore, you cannot use it to create a BGP peer.'], + ['errorCode' => 'IllegalParam.PeerAsn', 'errorMessage' => 'The param of PeerAsn is illegal', 'description' => 'The PeerAsn parameter is set to an invalid value.'], + ['errorCode' => 'IllegalParam.LocalAsn', 'errorMessage' => 'The param of LocalAsn is illegal', 'description' => 'The LocalAsn parameter is set to an invalid value.'], + ['errorCode' => 'OperationFailed.PconnTrafficNotEnable', 'errorMessage' => 'The operation is failed because of PconnTrafficNotEnable.', 'description' => 'Billing for outbound data transfer is disabled.'], + ['errorCode' => 'OperationUnsupport', 'errorMessage' => 'Operation is unsupport, not in vbr support custom local asn white list.', 'description' => 'The operation is not supported.'], + ['errorCode' => 'IllegalParam.RouteLimit', 'errorMessage' => 'The operation is failed because of bgp group max route entry num quota exceed.', 'description' => 'The number of routes that can be received by each BGP peer in the BGP group exceeds the upper limit.'], + ['errorCode' => 'IllegalParam.BgpGroupLocalAsn', 'errorMessage' => 'VBR BgpGroup localAsn must same with ECR asn.', 'description' => 'The LocalAsn of the VBR must be the same as the ASN of the ECR.'], + ['errorCode' => 'OperationDenied.VbrAttachEcrInMiddleStatus', 'errorMessage' => 'The operation is not allowed because of VBR attach or detach ECR in middle status.', 'description' => 'The current operation cannot be performed because the VBR is in the process of loading or unloading the leased line gateway. Please wait a moment and try again.'], + ['errorCode' => 'OperationFailed.BgpPeerConflictWithECR', 'errorMessage' => 'The BGP neighbor created by the previous VBR conflicts with the ECR configuration.', 'description' => 'The BGP neighbor created by the current VBR conflicts with the ECR configuration. Delete the BGP configuration and try again.'], + ['errorCode' => 'OperationFailed.PeerAsnCannotEqualsLocalAsn', 'errorMessage' => 'Peer ASN is illegal, peer ASN cannot equals to local ASN.', 'description' => 'When adding a BGPGroup, the peer autonomous system number cannot be the same as the local autonomous system number. Please check the parameters and try again.'], ], 404 => [ - [ - 'errorCode' => 'InvalidVSwitchId.NotFound', - 'errorMessage' => 'VSwitch not exist.', - ], + ['errorCode' => 'InvalidRegionId.NotFound', 'errorMessage' => 'The specified RegionId is not found.', 'description' => 'The specified region ID is invalid. Check whether the service is available in the specified region.'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"PageSize\\": 10,\\n \\"RequestId\\": \\"9A572171-4E27-40D1-BD36-D26C9E71E29E\\",\\n \\"PageNumber\\": 1,\\n \\"TotalCount\\": 1,\\n \\"VSwitches\\": {\\n \\"VSwitch\\": [\\n {\\n \\"VpcId\\": \\"vpc-257gcdcdq64****\\",\\n \\"Status\\": \\"Available\\",\\n \\"CreationTime\\": \\"2022-01-18T12:43:57Z\\",\\n \\"IsDefault\\": true,\\n \\"AvailableIpAddressCount\\": 1,\\n \\"NetworkAclId\\": \\"nacl-a2do9e413e0spzasx****\\",\\n \\"OwnerId\\": 0,\\n \\"VSwitchId\\": \\"vsw-25bcdxs7pv1****\\",\\n \\"CidrBlock\\": \\"172.16.0.0/24\\",\\n \\"Description\\": \\"VSwitchDescription\\",\\n \\"ResourceGroupId\\": \\"rg-acfmxazb4ph6aiy****\\",\\n \\"ZoneId\\": \\"cn-hangzhou-d\\",\\n \\"Ipv6CidrBlock\\": \\"2408:4002:10c4:4e03::/64\\",\\n \\"VSwitchName\\": \\"vSwitch\\",\\n \\"ShareType\\": \\"Shared\\",\\n \\"EnabledIpv6\\": true,\\n \\"Tags\\": {\\n \\"Tag\\": [\\n {\\n \\"Key\\": \\"department\\",\\n \\"Value\\": \\"dev\\"\\n }\\n ]\\n },\\n \\"RouteTable\\": {\\n \\"RouteTableId\\": \\"vrt-bp145q7glnuzdv****\\",\\n \\"RouteTableType\\": \\"System\\"\\n }\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 10\\n 9A572171-4E27-40D1-BD36-D26C9E71E29E\\n 1\\n 1\\n \\n vpc-257gcdcdq64****\\n Available\\n 2022-01-18T12:43:57Z\\n true\\n 1\\n nacl-a2do9e413e0spzasx****\\n 253460731706911260\\n vsw-25bcdxs7pv1****\\n 172.16.0.0/24\\n VSwitchDescription\\n rg-acfmxazb4ph6aiy****\\n cn-hangzhou-d\\n 2408:4002:10c4:4e03::/64\\n vSwitch\\n Shared\\n true\\n \\n department\\n dev\\n \\n \\n vrt-bp145q7glnuzdv****\\n System\\n \\n \\n","errorExample":""}]', - 'title' => 'DescribeVSwitches', + 'title' => 'CreateBgpGroup', + 'description' => 'You can connect a VBR to a data center through BGP. Each BGP group is associated with a VBR. You can add a BGP peer that needs to communicate with a VBR to a BGP group and advertise the BGP network in the VBR.'."\n" + ."\n" + .'BGP groups are used to simplify BGP configurations. You can add BGP peers that use the same configurations to one BGP group. Before you start, you must create a BGP group with the requested autonomous system number (ASN).'."\n" + ."\n" + .'When you call this operation, take note of the following limits:'."\n" + ."\n" + .'* You can specify only the data center that is connected to the VBR through an Express Connect circuit as a BGP peer.'."\n" + .'* VBRs support only BGP-4.'."\n" + .'* You can create at most eight BGP peers for each VBR.'."\n" + .'* Each BGP peer supports at most 110 dynamic routes.'."\n" + .'* The ASN of Alibaba Cloud is 45104. You can specify a 2-byte or 4-byte ASN for the data center.'."\n", 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2024-08-16T02:04:29.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-06-19T02:32:26.000Z', 'description' => 'Error codes changed, Response parameters changed'], + ['createdAt' => '2024-06-13T08:13:13.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-04-19T07:23:36.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2022-12-06T07:52:31.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2021-11-17T09:56:47.000Z', 'description' => 'Error codes changed, Request parameters changed'], + ], + 'ramActions' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"BgpGroupId\\": \\"bgpg-bp1k25cyp26cllath****\\",\\n \\"RequestId\\": \\"C1221A1F-2ACD-4592-8F27-474E02883159\\"\\n}","errorExample":""},{"type":"xml","example":"\\n bgpg-bp1k25cyp26cllath****\\n C1221A1F-2ACD-4592-8F27-474E02883159\\n","errorExample":""}]', ], - 'DescribeVSwitchAttributes' => [ - 'summary' => 'Queries the detailed information about a vSwitch.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'CreateBgpPeer' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'readAndWrite', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'get', - ], + 'systemTags' => ['operationType' => 'create'], 'parameters' => [ [ - 'name' => 'VSwitchId', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the vSwitch.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'vsw-25naue4g****', - ], + 'schema' => ['description' => 'The region ID of the BGP group.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) API to obtain the region ID.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-shanghai', 'title' => ''], ], [ - 'name' => 'RegionId', + 'name' => 'BgpGroupId', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the virtual private cloud (VPC) to which the custom route table belongs.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The ID of the BGP group.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'bgpg-wz9f62v4fbg****', 'title' => ''], ], [ - 'name' => 'DryRun', + 'name' => 'PeerIpAddress', 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values:'."\n" - ."\n" - .'* **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.'."\n" - .'* **false** (default): sends a request and performs a dry run. If the request passes the dry run, a 2xx HTTP status code is returned and the operation is performed.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['description' => 'The IP address of the BGP peer.', 'type' => 'string', 'required' => false, 'example' => '116.62.XX.XX', 'title' => ''], + ], + [ + 'name' => 'EnableBfd', + 'in' => 'query', + 'schema' => ['description' => 'Specifies whether to enable Bidirectional Forwarding Detection (BFD). Valid values:'."\n" + ."\n" + .'- **true**: enables BFD.'."\n" + ."\n" + .'- **false**: disables BFD.', 'type' => 'boolean', 'required' => false, 'default' => 'false', 'example' => 'true', 'title' => ''], + ], + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'The client generates the value of this parameter. Make sure that the value is unique among different requests. The maximum length is 64 ASCII characters.'."\n" + ."\n" + .'> If you do not specify this parameter, the system uses the **RequestId** of the API request as the **ClientToken**. The **RequestId** of each API request is different.', 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-426655440000', 'title' => ''], + ], + [ + 'name' => 'IpVersion', + 'in' => 'query', + 'schema' => ['description' => 'The IP version. Valid values:'."\n" + ."\n" + .'- **IPv4** (default): IPv4.'."\n" + .'- **IPv6**: IPv6. IPv6 is supported only when the VBR on which the BGP group is created has IPv6 enabled.', 'type' => 'string', 'required' => false, 'example' => 'IPv4', 'title' => ''], + ], + [ + 'name' => 'BfdMultiHop', + 'in' => 'query', + 'schema' => ['description' => 'The BFD hop count. Valid values: **1** to **255**.'."\n" + ."\n" + .'This parameter is required when BFD is enabled.'."\n" + .'Specify the BFD hop count, which is the maximum number of devices that data passes through from the source to the destination. You can configure different hop counts based on actual physical link factors.'."\n" + ."\n" + .'> When you use BFD in a multi-cloud environment or a fiber direct connect network without any bridging devices in between, you need to change the default BFD hop count from **255** to **1**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '3', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => 'The details about the vSwitch.'."\n", 'type' => 'object', 'properties' => [ - 'VpcId' => [ - 'description' => 'The ID of the VPC to which the vSwitch belongs.'."\n", - 'type' => 'string', - 'example' => 'vpc-257gq642n****', - ], - 'Status' => [ - 'description' => 'The status of the vSwitch. Valid values:'."\n" - ."\n" - .'* **Pending**'."\n" - .'* **Available**'."\n", - 'type' => 'string', - 'example' => 'Pending', - ], - 'CreationTime' => [ - 'description' => 'The time when the vSwitch was created.'."\n", - 'type' => 'string', - 'example' => '2021-08-22T10:40:25Z', - ], - 'IsDefault' => [ - 'description' => 'Indicates whether the vSwitch is the default vSwitch. Valid values:'."\n" - ."\n" - .'* **true**'."\n" - .'* **false**'."\n", - 'type' => 'boolean', - 'example' => 'false', - ], - 'AvailableIpAddressCount' => [ - 'description' => 'The number of available IP addresses.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '12', - ], - 'NetworkAclId' => [ - 'description' => 'The network access control list (ACL) rules.'."\n", - 'type' => 'string', - 'example' => '1', - ], - 'OwnerId' => [ - 'description' => 'The ID of the Alibaba Cloud account to which the resource belongs.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '287683832402436789', - ], - 'VSwitchId' => [ - 'description' => 'The vSwitch ID.'."\n", - 'type' => 'string', - 'example' => 'vsw-25b7pv15t****', - ], - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '7B48B4B9-1EAD-469F-B488-594DAB4B6A1A', - ], - 'CidrBlock' => [ - 'description' => 'The CIDR block of the vSwitch.'."\n", - 'type' => 'string', - 'example' => '192.168.0.1/24', - ], - 'Description' => [ - 'description' => 'The description of the vSwitch.'."\n", - 'type' => 'string', - 'example' => 'abc', - ], - 'ResourceGroupId' => [ - 'description' => 'The ID of the resource group to which the ACL belongs.'."\n", - 'type' => 'string', - 'example' => 'rg-acfmxazb4ph****', - ], - 'ZoneId' => [ - 'description' => 'The ID of the zone to which the vSwitch belongs.'."\n", - 'type' => 'string', - 'example' => 'cn-beijing-a', - ], - 'Ipv6CidrBlock' => [ - 'description' => 'The IPv6 CIDR block of the vSwitch.'."\n", - 'type' => 'string', - 'example' => '2408:XXXX:3c5:44e::/64', - ], - 'VSwitchName' => [ - 'description' => 'The vSwitch name.'."\n", - 'type' => 'string', - 'example' => 'test', - ], - 'ShareType' => [ - 'description' => 'Indicates whether the vSwitch is shared.'."\n" - ."\n" - .'* If no value is returned, the vSwitch is a regular vSwitch.'."\n" - .'* If **Shared** is returned, the vSwitch is shared.'."\n" - .'* If **Sharing** is returned, the vSwitch is being shared.'."\n", - 'type' => 'string', - 'example' => 'Shared', - ], - 'EnabledIpv6' => [ - 'description' => 'Indicates whether IPv6 is enabled for the vSwitch. If you enable IPv6, you must configure the IPv6 CIDR block of the vSwitch. Valid values:'."\n" - ."\n" - .'* **true**'."\n" - .'* **false**'."\n", - 'type' => 'boolean', - 'example' => 'true', - ], - 'RouteTable' => [ - 'description' => 'The information about the route table that is associated with the vSwitch.'."\n", - 'type' => 'object', - 'properties' => [ - 'RouteTableId' => [ - 'description' => 'The ID of the route table that is associated with the vSwitch.'."\n", - 'type' => 'string', - 'example' => 'vtb-bp145q7glnuzdv****', - ], - 'RouteTableType' => [ - 'description' => 'The type of the route table. Valid values:'."\n" - ."\n" - .'* **System**'."\n" - .'* **Custom**'."\n", - 'type' => 'string', - 'example' => 'System', - ], - ], - ], - 'Tags' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'Tag' => [ - 'description' => 'The information about the tags.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => 'The key of tag N added to the resource.'."\n", - 'type' => 'string', - 'example' => 'FinanceDept', - ], - 'Value' => [ - 'description' => 'The value of tag N added to the resource.'."\n", - 'type' => 'string', - 'example' => 'FinanceJoshua', - ], - ], - ], - ], - ], - ], + 'BgpPeerId' => ['description' => 'The ID of the BGP peer.', 'type' => 'string', 'example' => 'bgp-m5eoyp2mwegk8ce9v****', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'D4B7649A-61BB-4C64-A586-1DFF1EDA6A42', 'title' => ''], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidVSwitchId.NotFound', - 'errorMessage' => 'Specified VSwitch can not found.', - ], + ['errorCode' => 'QuotaExceeded.Bgp', 'errorMessage' => 'bgp peer count per vbr quota exceed.', 'description' => 'The number of BGP peers in the VBR has reached the upper limit.'], + ['errorCode' => 'QuotaExceeded.Nqa', 'errorMessage' => 'nqa count per vbr quota exceed.', 'description' => ''], + ['errorCode' => 'InvalidAccessDeviceId.NotFound', 'errorMessage' => 'There is no Access_Device_Id in our records', 'description' => ''], + ['errorCode' => 'QuotaExceeded.BfdSession', 'errorMessage' => 'Your Bfd Session number reaches the upper limit.', 'description' => ''], + ['errorCode' => 'QuotaExceeded.BgpNetwork', 'errorMessage' => 'bgp network count per vbr quota exceed.', 'description' => ''], + ['errorCode' => 'InvalidPeerIpAddress', 'errorMessage' => 'multi pconn peer ip can not be null.', 'description' => ''], + ['errorCode' => 'InvalidVbrNetwork', 'errorMessage' => 'vbr netowrk not exists', 'description' => ''], + ['errorCode' => 'InvalidBgpGroup', 'errorMessage' => 'bgp group not exists', 'description' => ''], + ['errorCode' => 'InvalidBgpName.Malformed', 'errorMessage' => 'Specified Bgp Group name is not valid.', 'description' => ''], + ['errorCode' => 'InvalidBgpDiscription.Malformed', 'errorMessage' => 'Specified Bgp Group description is not valid.', 'description' => ''], + ['errorCode' => 'InvalidBgpAuthkey.Malformed', 'errorMessage' => 'Specified Bgp Group authkey is not valid.', 'description' => ''], + ['errorCode' => 'InvalidIP.Malformed', 'errorMessage' => 'Ip malformed.', 'description' => ''], + ['errorCode' => 'InvalidPeerAsn.Malformed', 'errorMessage' => 'invalid peer asn cannot equals aliyun asn:45104', 'description' => ''], + ['errorCode' => 'InvalidParams.NotNull', 'errorMessage' => 'invalid peer asn cannot equals aliyun asn:45104', 'description' => ''], + ['errorCode' => 'InvalidParams.NotFound', 'errorMessage' => 'instance not found', 'description' => ''], + ['errorCode' => 'InvalidParams.AlreadyExists', 'errorMessage' => 'bgp network already exists', 'description' => 'The BGP network already exists.'], + ['errorCode' => 'InvalidStatus.CannotOperate', 'errorMessage' => 'invalid status cannot operate', 'description' => ''], + ['errorCode' => 'InvalidParams.PeerIpAddressMustPointOut', 'errorMessage' => 'vbr has 0 or more than 1 subif ,point out peerIpAddress.', 'description' => 'You must set the PeerIpAddress parameter.'], + ['errorCode' => 'InvalidParams.PeerIpAddressInUse', 'errorMessage' => 'peer ip address in use ,cannot create bgp peer.', 'description' => 'The peer IP address is being used. Therefore, you cannot use it to create a BGP peer.'], + ['errorCode' => 'BgpPeer.Already.Exists', 'errorMessage' => 'bgp peer already exists.', 'description' => ''], + ['errorCode' => 'MissingParam.EnableBfd', 'errorMessage' => 'The parameter EnableBfd is missing.', 'description' => ''], + ['errorCode' => 'OperationUnsupported.IPV6ForThisRegion', 'errorMessage' => 'This Region is unsupported IPV6.', 'description' => ''], + ['errorCode' => 'IllegalParam.BfdMultiHop', 'errorMessage' => 'BfdMultiHop is illegal.', 'description' => ''], + ['errorCode' => 'OperationFailed.PconnTrafficNotEnable', 'errorMessage' => 'The operation is failed because of PconnTrafficNotEnable.', 'description' => 'Billing for outbound data transfer is disabled.'], + ['errorCode' => 'UnsupportedFeature.Vpconn', 'errorMessage' => 'The feature of Vpconn is not supported.', 'description' => 'The Express Connect circuit type is not supported.'], + ['errorCode' => 'DuplicatedParam.PeerIpAddress', 'errorMessage' => 'The param of PeerIpAddress is duplicated.', 'description' => 'Duplicate IP addresses of BGP peers exist.'], + ['errorCode' => 'DuplicatedParam.LocalIpAddress', 'errorMessage' => 'The LocalIpAddress already exists.', 'description' => 'The error message returned because you specified a duplicate local IP address. Change the local IP address and try again.'], + ['errorCode' => 'DuplicatedParam.PeerIpv6Address', 'errorMessage' => 'The PeerIpv6Address already exists.', 'description' => 'The error message returned because you specified a duplicate peer IP address. Change the peer IP address and try again.'], + ['errorCode' => 'DuplicatedParam.LocalIpv6Address', 'errorMessage' => 'The LocalIpv6Address already exists.', 'description' => 'The error message returned because you specified a duplicate local IP address. Change the local IP address and try again.'], + ['errorCode' => 'IllegalParam.LocalGatewayIpAndMask', 'errorMessage' => 'The LocalGatewayIpAndMask value is invalid.', 'description' => 'The error message returned because the IP address of the local gateway and the subnet mask are invalid. Specify a valid IP address and subnet mask and try again.'], + ['errorCode' => 'IllegalParam.PeeringIpv6SubnetMask', 'errorMessage' => 'The PeeringIpv6SubnetMask value is invalid.', 'description' => 'The error message returned because the subnet mask is invalid. Specify a valid subnet mask and try again.'], + ['errorCode' => 'IllegalParam.IpVersion', 'errorMessage' => 'The param of IPV6 is illegal.', 'description' => 'The parameter IpVersion is abnormal. Please check the parameter and try again.'], + ['errorCode' => 'IllegalParam.PeerIpAddress', 'errorMessage' => 'The param of PeerIpAddress is illegal.', 'description' => 'The peer IP address is invalid.'], + ], + 404 => [ + ['errorCode' => 'InvalidRegionId.NotFound', 'errorMessage' => 'Specified value of "regionId" is not supported.', 'description' => ''], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"VpcId\\": \\"vpc-257gq642n****\\",\\n \\"Status\\": \\"Pending\\",\\n \\"CreationTime\\": \\"2021-08-22T10:40:25Z\\",\\n \\"IsDefault\\": false,\\n \\"AvailableIpAddressCount\\": 12,\\n \\"NetworkAclId\\": \\"1\\",\\n \\"OwnerId\\": 0,\\n \\"VSwitchId\\": \\"vsw-25b7pv15t****\\",\\n \\"RequestId\\": \\"7B48B4B9-1EAD-469F-B488-594DAB4B6A1A\\",\\n \\"CidrBlock\\": \\"192.168.0.1/24\\",\\n \\"Description\\": \\"abc\\",\\n \\"ResourceGroupId\\": \\"rg-acfmxazb4ph****\\",\\n \\"ZoneId\\": \\"cn-beijing-a\\",\\n \\"Ipv6CidrBlock\\": \\"2408:XXXX:3c5:44e::/64\\",\\n \\"VSwitchName\\": \\"test\\",\\n \\"ShareType\\": \\"Shared\\",\\n \\"EnabledIpv6\\": true,\\n \\"RouteTable\\": {\\n \\"RouteTableId\\": \\"vtb-bp145q7glnuzdv****\\",\\n \\"RouteTableType\\": \\"System\\"\\n },\\n \\"Tags\\": {\\n \\"Tag\\": [\\n {\\n \\"Key\\": \\"FinanceDept\\",\\n \\"Value\\": \\"FinanceJoshua\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n vpc-257gq642n****\\n Pending\\n 2021-08-22T10:40:25Z\\n false\\n 12\\n 1\\n 287683832402436800\\n vsw-25b7pv15t****\\n 7B48B4B9-1EAD-469F-B488-594DAB4B6A1A\\n 192.168.0.1/24\\n abc\\n rg-acfmxazb4ph****\\n cn-beijing-a\\n 2408:XXXX:3c5:44e::/64\\n test\\n Shared\\n \\n vtb-bp145q7glnuzdv****\\n System\\n \\n \\n FinanceDept\\n FinanceJoshua\\n \\n","errorExample":""}]', - 'title' => 'DescribeVSwitchAttributes', + 'title' => 'Add a BGP peer to the specified BGP group', + 'summary' => 'Calls the CreateBgpPeer API to add a BGP peer to the specified BGP group.', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DeleteVSwitchCidrReservation' => [ - 'summary' => 'Deletes a reserved CIDR block of a vSwitch.', - 'methods' => [ - 'post', - 'get', + 'changeSet' => [ + ['createdAt' => '2025-03-19T10:32:30.000Z', 'description' => 'Error codes changed, Response parameters changed'], + ['createdAt' => '2024-08-16T02:04:29.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2022-06-09T02:27:47.000Z', 'description' => 'Request parameters changed'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CreateBgpPeer'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'vpc:CreateBgpPeer', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VirtualBorderRouter', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:virtualborderrouter/{#VirtualBorderRouterId}'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"BgpPeerId\\": \\"bgp-m5eoyp2mwegk8ce9v****\\",\\n \\"RequestId\\": \\"D4B7649A-61BB-4C64-A586-1DFF1EDA6A42\\"\\n}","type":"json"}]', + ], + 'CreateCommonBandwidthPackage' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -7844,129 +5619,247 @@ ], 'operationType' => 'readAndWrite', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'delete', - 'riskType' => 'none', - 'chargeType' => 'free', - ], + 'systemTags' => ['operationType' => 'create', 'riskType' => 'high', 'chargeType' => 'paid'], 'parameters' => [ [ - 'name' => 'VSwitchCidrReservationId', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the reserved CIDR block.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'vcr-bp1m12saqteraw3rp****', - ], + 'schema' => ['description' => 'The region ID of the Internet Shared Bandwidth instance.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'RegionId', + 'name' => 'Zone', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region where the vSwitch is deployed.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The zone of the Internet Shared Bandwidth instance.'."\n" + .'This parameter is required when you create an Internet Shared Bandwidth instance for a CloudBox.', 'type' => 'string', 'required' => false, 'example' => 'ap-southeast-1-lzdvn-cb', 'title' => ''], ], [ - 'name' => 'DryRun', + 'name' => 'ISP', + 'in' => 'query', + 'schema' => ['description' => 'The line type. Valid values:'."\n" + .'- **BGP** (default): BGP (multi-ISP) lines. All regions support BGP (multi-ISP) lines.'."\n" + .'- **BGP_PRO**: BGP (multi-ISP) premium lines. Currently, only the Hong Kong (China), Singapore, Japan (Tokyo), Philippines (Manila), Malaysia (Kuala Lumpur), Indonesia (Jakarta), and Thailand (Bangkok) regions support BGP (multi-ISP) premium Internet Shared Bandwidth instances.'."\n" + ."\n" + .'If you are a single-ISP bandwidth whitelist user, you can also select the following types:'."\n" + .'- **ChinaTelecom**: China Telecom'."\n" + .'- **ChinaUnicom**: China Unicom'."\n" + .'- **ChinaMobile**: China Mobile'."\n" + .'- **ChinaTelecom_L2**: China Telecom L2'."\n" + .'- **ChinaUnicom_L2**: China Unicom L2'."\n" + .'- **ChinaMobile_L2**: China Mobile L2'."\n" + ."\n" + .'If you are a Finance Cloud user in the China (Hangzhou) region, this parameter is required. Set the value to **BGP_FinanceCloud**.', 'type' => 'string', 'required' => false, 'example' => 'BGP', 'title' => ''], + ], + [ + 'name' => 'Name', + 'in' => 'query', + 'schema' => ['description' => 'The name of the Internet Shared Bandwidth instance.'."\n" + ."\n" + .'The name must be 0 to 128 characters in length and cannot start with `http://` or `https://`.', 'type' => 'string', 'required' => false, 'example' => 'test123', 'title' => ''], + ], + [ + 'name' => 'Description', + 'in' => 'query', + 'schema' => ['description' => 'The description of the Internet Shared Bandwidth instance.'."\n" + ."\n" + .'The description must be 0 to 256 characters in length and cannot start with `http://` or `https://`.', 'type' => 'string', 'required' => false, 'example' => 'abc', 'title' => ''], + ], + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'You can use the client to generate the token, but you must make sure that the token is unique among different requests. The ClientToken value can contain only ASCII characters.'."\n" + ."\n" + .'> If you do not specify this parameter, the system automatically uses the **RequestId** of the API request as the **ClientToken**. The **RequestId** may be different for each API request.', 'type' => 'string', 'required' => false, 'example' => '02fb3da4-130e-11e9-8e44-001****', 'title' => ''], + ], + [ + 'name' => 'ResourceGroupId', + 'in' => 'query', + 'schema' => ['description' => 'The resource group ID.', 'type' => 'string', 'required' => false, 'example' => 'rg-acfmxazdjdhd****', 'title' => ''], + ], + [ + 'name' => 'Bandwidth', + 'in' => 'query', + 'schema' => ['description' => 'The peak bandwidth of the Internet Shared Bandwidth instance. Unit: Mbit/s. '."\n" + ."\n" + .'Default value range: **1** to **1000**. Default value: **1**.'."\n" + ."\n" + .''."\n" + ."\n" + .'- If **InternetChargeType** is set to **PayByBandwidth**, which indicates that the billable method of the Internet Shared Bandwidth instance is pay-by-bandwidth, the default value range of **Bandwidth** is **2** to **20000**.'."\n" + .'- If **InternetChargeType** is set to **PayBy95**, which indicates that the billable method of the Internet Shared Bandwidth instance is pay-by-enhanced-95th-percentile, the default value range of **Bandwidth** is **200** to **20000**.'."\n" + .'- If **InternetChargeType** is set to **PayByDominantTraffic**, which indicates that the billable method of the Internet Shared Bandwidth instance is pay-by-dominant-traffic, the default value range of **Bandwidth** is **1** to **2000**.'."\n" + ."\n" + .' Default value: **1000**.'."\n" + .'.', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'docRequired' => true, 'example' => '1000', 'title' => ''], + ], + [ + 'name' => 'Ratio', + 'in' => 'query', + 'schema' => ['description' => 'The minimum bandwidth commitment percentage of the Internet Shared Bandwidth instance. Set the value to **20**.'."\n" + ."\n" + .' This parameter is required when **InternetChargeType** is set to **PayBy95**.'."\n" + .'>This parameter is supported only on the China site.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '100', 'minimum' => '0', 'example' => '20', 'title' => ''], + ], + [ + 'name' => 'InternetChargeType', + 'in' => 'query', + 'schema' => ['description' => 'The billable method of the Internet Shared Bandwidth instance. Valid values:'."\n" + .'**PayByTraffic** (pay-by-data-transfer).'."\n" + ."\n" + .''."\n" + ."\n" + .'- **PayByBandwidth** (default): pay-by-bandwidth.'."\n" + .'- **PayBy95**: pay-by-enhanced-95th-percentile.'."\n" + .'- **PayByDominantTraffic**: pay-by-dominant-traffic.'."\n" + .'.', 'type' => 'string', 'required' => false, 'default' => 'PayByBandwidth', 'example' => '中国站示例值:PayByBandwidth,国际站示例值:PayByTraffic', 'title' => ''], + ], + [ + 'name' => 'SecurityProtectionTypes', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => 'Specifies whether to perform a dry run. Valid values:'."\n" + 'description' => 'The security protection level.'."\n" + ."\n" + .'- If you do not set this parameter, Anti-DDoS Origin Basic is used by default.'."\n" + ."\n" + .'- If you set this parameter to **AntiDDoS_Enhanced**, Anti-DDoS Origin Enhanced is used.'."\n" + ."\n" + .'You can set this parameter when **InternetChargeType** is set to **PayBy95**.'."\n" + ."\n" + .'You can specify up to 10 security protection levels.'."\n" ."\n" - .'**true**: performs a dry run. The system checks the required parameters, request format, and 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.'."\n" + .'> This parameter is deprecated.', + 'type' => 'array', + 'items' => ['description' => 'The security protection level.'."\n" + ."\n" + .'- If you do not set this parameter, Anti-DDoS Origin Basic is used by default.'."\n" + ."\n" + .'- If you set this parameter to **AntiDDoS_Enhanced**, Anti-DDoS Origin Enhanced is used.'."\n" + ."\n" + .'You can set this parameter when **InternetChargeType** is set to **PayBy95**.'."\n" ."\n" - .'**false** (default): performs a dry run and sends the request. If the request passes the dry run, a 2xx HTTP status code is returned and the operation is performed.'."\n", - 'type' => 'boolean', + .'Valid values of **N**: **1** to **10**. Currently, only one security protection level can be specified. If you specify multiple levels, you may fail to invoke the operation.'."\n" + ."\n" + .'> This parameter is deprecated.', 'type' => 'string', 'required' => false, 'example' => 'AntiDDoS_Enhanced', 'title' => ''], 'required' => false, - 'example' => 'false', + 'example' => 'AntiDDoS_Enhanced', + 'maxItems' => 10, + 'title' => '', ], ], [ - 'name' => 'ClientToken', + 'name' => 'Tag', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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.'."\n" - ."\n" - .'> 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.'."\n", - 'type' => 'string', + 'description' => 'The list of tags for the Internet Shared Bandwidth instance.', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => 'The tag key of the resource. You can specify up to 20 tag keys. The tag key cannot be an empty string.'."\n" + ."\n" + .'The tag key can be up to 128 characters in length and cannot start with `aliyun` or `acs:`. It cannot contain `http://` or `https://`.', 'type' => 'string', 'required' => false, 'example' => 'FinanceDept', 'title' => ''], + 'Value' => ['description' => 'The tag value of the resource. You can specify up to 20 tag values. The tag value can be an empty string.'."\n" + ."\n" + .'The tag value can be up to 128 characters in length and cannot start with `aliyun` or `acs:`. It cannot contain `http://` or `https://`.', 'type' => 'string', 'required' => false, 'example' => 'FinanceJoshua', 'title' => ''], + ], + 'required' => false, + 'description' => '', + 'title' => '', + 'example' => '', + ], 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-426655440000', + 'maxItems' => 21, + 'title' => '', + 'example' => '', ], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => 'The request ID.'."\n", + 'description' => 'The response parameters.', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B45', - ], + 'BandwidthPackageId' => ['description' => 'The ID of the Internet Shared Bandwidth instance.', 'type' => 'string', 'example' => 'cbwp-bp1vevu8h3ieh****', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'FF39F653-033E-4CD9-9EDF-3CCA5A71FBC3', 'title' => ''], + 'ResourceGroupId' => ['description' => 'The resource group ID.', 'type' => 'string', 'example' => 'rg-acfmxazdjdhd****', 'title' => ''], ], + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'DependencyViolation.IpPrefix', - 'errorMessage' => 'DependencyViolation.IpPrefix', - ], - [ - 'errorCode' => 'IncorrectStatus.CidrReservation', - 'errorMessage' => 'The status of the CIDR reservation is incorrect.', - ], - [ - 'errorCode' => 'ResourceNotFound.CidrReservation', - 'errorMessage' => 'reserve segment not exist.', - ], + ['errorCode' => 'ResourceNotEnough.Bandwidth', 'errorMessage' => 'The specified resource of Bandwidth is not enough.', 'description' => 'The specified resource of Bandwidth is insufficient.'], + ['errorCode' => 'MissingParameter', 'errorMessage' => 'Miss mandatory parameter.', 'description' => ''], + ['errorCode' => 'InvalidParameter.Name.Malformed', 'errorMessage' => 'The specified Name is not valid.', 'description' => ''], + ['errorCode' => 'InvalidParameter.Description.Malformed', 'errorMessage' => 'The specified Description is not valid.', 'description' => ''], + ['errorCode' => 'BandwidthPackageOperation.conflict', 'errorMessage' => 'BandwidthPackage operation conflict, please wait a moment and try again.', 'description' => ''], + ['errorCode' => 'InvalidParameter.Bandwidth', 'errorMessage' => 'The specified bandwidth is not valid.', 'description' => ''], + ['errorCode' => 'BandwidthPackage.QuotaExceeded', 'errorMessage' => 'Create BandwidthPackage has exceeded quota.', 'description' => ''], + ['errorCode' => 'IllegalParam.Zone', 'errorMessage' => 'Zone is illegal.', 'description' => ''], + ['errorCode' => 'InvalidParameter.InvalidChargeType', 'errorMessage' => 'The specified chargeType is not valid.', 'description' => ''], + ['errorCode' => 'InvalidResourceGroupId', 'errorMessage' => 'The specified ResourceGroupId does not exist.', 'description' => 'The specified resource group ID does not exist.'], + ['errorCode' => 'OperationFailed.SaleValidate', 'errorMessage' => 'Validate sale condition with subArticle failed.', 'description' => 'Failed to validate the sales condition with a subproject.'], + ['errorCode' => 'OperationFailed.SyncOrderToSub', 'errorMessage' => 'SyncOrderToSub error.', 'description' => 'The operation failed.'], + ['errorCode' => 'IllegalParam.Ratio', 'errorMessage' => 'The specified ratio is not valid.', 'description' => ''], + ['errorCode' => 'OperationUnsupported.InvalidZone', 'errorMessage' => 'It is not allowed to create CBWP in the specified zone.', 'description' => ''], + ['errorCode' => 'IllegalParam.AvailableZone', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'MissingParam.NameOrDescription', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'UnsupportedRegion.CloudBoxInternet', 'errorMessage' => 'The region does not support cloud box public network.', 'description' => 'The region does not support cloud box public network.'], + ['errorCode' => 'ResourceNotEnough.CommonBandWidthPackage', 'errorMessage' => 'The specified resource commonBandWidthPackage is not enough.', 'description' => 'The specified resource commonBandWidthPackage is not enough.'], ], 404 => [ - [ - 'errorCode' => 'ResourceNotFound.CidrReservation', - 'errorMessage' => 'ResourceNotFound.CidrReservation', - ], + ['errorCode' => 'InvalidRegionId.NotFound', 'errorMessage' => 'The specified RegionId does not exist in our records.', 'description' => ''], + ['errorCode' => 'InvalidVpcId.NotFound', 'errorMessage' => 'Specified value of VpcId is not found in our record.', 'description' => 'The VPC does not exist. Check whether the specified VPC is valid.'], + ['errorCode' => 'InvalidZoneId.NotFound', 'errorMessage' => 'Specified value of ZoneId is not exists.', 'description' => ''], ], ], - 'staticInfo' => [ - 'returnType' => 'asynchronous', - 'callback' => 'Vpc::2016-04-28::ListVSwitchCidrReservations', - 'callbackInterval' => 3, - 'maxCallbackTimes' => 10, + 'title' => 'Create an internet shared bandwidth instance', + 'summary' => 'Creates an Internet Shared Bandwidth instance by calling the CreateCommonBandwidthPackage operation.', + 'description' => 'This operation supports only the creation of pay-as-you-go Internet Shared Bandwidth instances. To create a subscription Internet Shared Bandwidth instance, see [Create an Internet Shared Bandwidth instance](~~65223~~)..', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2025-03-26T08:11:23.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2024-02-23T08:26:24.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-11-06T04:01:13.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-06-26T06:23:12.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2022-09-27T07:25:24.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2021-11-22T09:41:14.000Z', 'description' => 'Error codes changed'], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B45\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 54B48E3D-DF70-471B-AA93-08E683A1B45\\n","errorExample":""}]', - 'title' => 'DeleteVSwitchCidrReservation', - 'description' => '## [](#)Description'."\n" - ."\n" - .'* Before you call this operation, make sure that the IP address allocated to an elastic network interface (ENI) from the reserved CIDR block is deleted. If the IP address of the ENI is not deleted, call [UnassignPrivateIpAddresses](~~85919~~) or [UnassignIpv6Addresses](~~98611~~) to delete the IPv4 or IPv6 address.'."\n" - ."\n" - .'* **DeleteVSwitchCidrReservation** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call [ListVSwitchCidrReservations](~~610155~~) to query the status of the task:'."\n" - ."\n" - .' * If the reserved CIDR block is in the **Releasing** state, it is being released.'."\n" - .' * If the reserved CIDR block is in the **Released** state, it is released.'."\n", - ], - 'CreateRouteEntry' => [ - 'summary' => 'Creates a custom route entry in the route table of a VRouter or virtual border router (VBR).', - 'methods' => [ - 'post', - 'get', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CreateCommonBandwidthPackage'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'vpc:CreateCommonBandwidthPackage', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'CommonBandwidthPackage', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:combandwidthpackage/*'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"BandwidthPackageId\\": \\"cbwp-bp1vevu8h3ieh****\\",\\n \\"RequestId\\": \\"FF39F653-033E-4CD9-9EDF-3CCA5A71FBC3\\",\\n \\"ResourceGroupId\\": \\"rg-acfmxazdjdhd****\\"\\n}","type":"json"}]', + ], + 'CreateCustomerGateway' => [ + 'summary' => 'Creates a customer gateway.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -7974,1100 +5867,451 @@ ], 'operationType' => 'readAndWrite', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'create', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeCode' => '37635', - 'abilityTreeNodes' => [ - 'FEATUREvpcJSBF65', - ], - ], + 'systemTags' => ['operationType' => 'create', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the route table.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou', - ], - ], - [ - 'name' => 'RouteTableId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the route table to which you want to add a custom route entry.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'vtb-bp145q7glnuzd****', - ], + 'schema' => ['description' => 'The region ID of the customer gateway.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-shanghai', 'title' => ''], ], [ - 'name' => 'DestinationCidrBlock', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The destination CIDR block of the custom route entry. Both IPv4 and IPv6 CIDR blocks are supported. Make sure that the destination CIDR block meets the following requirements:'."\n" - ."\n" - .'* The destination CIDR block is not 100.64.0.0/10 or a subset of 100.64.0.0/10.'."\n" - .'* The destination CIDR block of the custom route entry is different from the destination CIDR blocks of other route entries in the same route table.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => '192.168.0.0/24', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'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 and cannot exceed 64 characters in length.'."\n" + ."\n" + .'> 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.'."\n", 'type' => 'string', 'required' => false, 'example' => '02fb3da4-130e-11e9-8e44****', 'title' => ''], ], [ - 'name' => 'NextHopId', + 'name' => 'IpAddress', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the next hop for the custom route.'."\n" - ."\n" - .'> [](#-nexthoptype--ecr-describeexpressconnectrouterassociation--associationid--id)If you set the NextHopType parameter to ECR, call the [DescribeExpressConnectRouterAssociation](~~2712069~~) operation to access the AssociationId and use it as the next hop ID.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'i-j6c2fp57q8rr4jlu****', - ], + 'schema' => ['description' => 'The static IP address of the gateway device in the data center.'."\n" + ."\n" + .'* If you want to create a public IPsec-VPN connection, enter a public IP address.'."\n" + .'* If you want to create a private IPsec-VPN connection, enter a private IP address.'."\n" + ."\n" + .'You cannot use the following IP addresses. Otherwise, a IPsec-VPN connection cannot be established:'."\n" + ."\n" + .'* 100.64.0.0~100.127.255.255'."\n" + .'* 127.0.0.0~127.255.255.255'."\n" + .'* 169.254.0.0~169.254.255.255'."\n" + .'* 224.0.0.0~239.255.255.255'."\n" + .'* 255.0.0.0~255.255.255.255'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '101.12.XX.XX', 'title' => ''], ], [ - 'name' => 'ClientToken', + 'name' => 'Name', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'You can use the client to generate the value, but you must make sure that the value is unique among different requests. The ClientToken value can contain only ASCII characters.'."\n" - ."\n" - .'> If you do not specify this parameter, **ClientToken** is set to the value of **RequestId**. The value of **RequestId** for each API request may be different.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '02fb3da4-130e-11e9-8e44-001****', - ], + 'schema' => ['description' => 'The name of the customer gateway.'."\n" + ."\n" + .'The name must be 1 to 100 characters in length, and cannot start with `http://` or `https://`.'."\n", 'type' => 'string', 'required' => false, 'example' => 'nametest', 'title' => ''], ], [ - 'name' => 'RouteEntryName', + 'name' => 'Description', 'in' => 'query', - 'schema' => [ - 'description' => 'The name of the custom route entry that you want to add.'."\n" - ."\n" - .'The name must be 1 to 128 characters in length, and cannot start with `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'test', - ], + 'schema' => ['description' => 'The description of the customer gateway.'."\n" + ."\n" + .'The description must be 1 to 100 characters in length, and cannot start with `http://` or `https://`.', 'type' => 'string', 'required' => false, 'example' => 'desctest', 'title' => ''], ], [ - 'name' => 'Description', + 'name' => 'Asn', 'in' => 'query', - 'schema' => [ - 'description' => 'The description of the custom route entry.'."\n" - ."\n" - .'The description must be 1 to 256 characters in length, and cannot start with `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'test', - ], + 'schema' => ['description' => 'The autonomous system number (ASN) of the gateway device in your data center. This parameter is required If you want to use Border Gateway Protocol (BGP) for the IPsec-VPN connection. Valid values: 1 to 4294967295. 45104 is not supported.'."\n" + ."\n" + .'**Asn** is a 4-byte number. You can enter it in two segments and separate the first 16 bits from the following 16 bits with a period (.). Enter the number in each segment in decimal format.'."\n" + ."\n" + .'For example, if you enter 123.456, the ASN is 8061384. The ASN is calculated by using the following formula: 123 × 65536 + 456 = 8061384.'."\n" + ."\n" + .'> - We recommend that you use a private ASN to establish BGP connections to Alibaba Cloud. For information about the range of private ASNs, see the relevant documentation.'."\n" + .'> - 45104 is a unique identifier assigned by IANA to Alibaba Cloud. It is used to identify Alibaba Cloud during route selection and data transmission over the Internet.', 'type' => 'string', 'required' => false, 'example' => '65530', 'title' => ''], ], [ - 'name' => 'NextHopType', + 'name' => 'AuthKey', 'in' => 'query', - 'schema' => [ - 'description' => 'The type of next hop of the custom route entry. Valid values:'."\n" - ."\n" - .'* **Instance**: an Elastic Compute Service (ECS) instance. This is the default value.'."\n" - .'* **HaVip**: a high-availability virtual IP address (HaVip).'."\n" - .'* **RouterInterface**: a router interface.'."\n" - .'* **NetworkInterface**: an elastic network interface (ENI).'."\n" - .'* **VpnGateway**: a VPN gateway.'."\n" - .'* **IPv6Gateway**: an IPv6 gateway.'."\n" - .'* **NatGateway**: a NAT gateway.'."\n" - .'* **Attachment**: a transit router.'."\n" - .'* **VpcPeer**: a VPC peering connection.'."\n" - .'* **Ipv4Gateway**: an IPv4 gateway.'."\n" - .'* **GatewayEndpoint**: a gateway endpoint.'."\n" - .'* **Ecr**: an Express Connect Router (ECR).', - 'type' => 'string', - 'required' => false, - 'enumValueTitles' => [ - 'HaVip' => 'HaVip', - 'VpnGateway' => 'VpnGateway', - 'GatewayLoadBalancerEndpoint' => 'GatewayLoadBalancerEndpoint', - 'VpcPeer' => 'VpcPeer', - 'Instance' => 'Instance', - 'NetworkInterface' => 'NetworkInterface', - 'NatGateway' => 'NatGateway', - 'Attachment' => 'Attachment', - 'Ipv4Gateway' => 'Ipv4Gateway', - 'GatewayEndpoint' => 'GatewayEndpoint', - 'Ecr' => 'Ecr', - 'RouterInterface' => 'RouterInterface', - 'IPv6Gateway' => 'IPv6Gateway', - ], - 'example' => 'RouterInterface', - ], + 'schema' => ['description' => 'The authentication key of the BGP routing protocol for the gateway device in the data center.'."\n" + ."\n" + .'The key must be 1 to 64 characters in length. It can contain only ASCII characters and cannot contain spaces or question marks (?).'."\n", 'type' => 'string', 'required' => false, 'example' => 'AuthKey****', 'title' => ''], ], [ - 'name' => 'NextHopList', + 'name' => 'Tags', 'in' => 'query', 'style' => 'repeatList', 'schema' => [ - 'description' => 'The next hop list.', + 'description' => 'The tag value.'."\n" + ."\n" + .'The tag value can be an empty string and cannot exceed 128 characters in length. It cannot start with `aliyun` or `acs:`, and cannot contain `http://` or `https://`.'."\n" + ."\n" + .'Each tag key corresponds to one tag value. You can specify up to 20 tag values in each call.'."\n", 'type' => 'array', 'items' => [ - 'description' => 'The next hop list.', + 'description' => '', 'type' => 'object', 'properties' => [ - 'NextHopId' => [ - 'description' => 'The ID of the next hop of the ECMP route.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'ri-2zeo3xzyf3cd8r4****', - ], - 'Weight' => [ - 'description' => 'The weight of the next hop of the ECMP route entry.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '10', - ], - 'NextHopType' => [ - 'description' => 'The type of next hop of the ECMP route entry. Set the value to **RouterInterface**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'RouterInterface', - ], + 'Key' => ['description' => 'The tag key. The tag key cannot be an empty string.'."\n" + ."\n" + .'It can be at most 64 characters in length, and cannot contain `http://` or `https://`. It cannot start with `aliyun` or `acs:`.'."\n" + ."\n" + .'You can specify at most 20 tag keys in each call.'."\n", 'type' => 'string', 'required' => false, 'example' => 'TagKey', 'title' => ''], + 'Value' => ['description' => 'The tag value.'."\n" + ."\n" + .'The tag value can be an empty string and cannot exceed 128 characters in length. It cannot start with `aliyun` or `acs:`, and cannot contain `http://` or `https://`.'."\n" + ."\n" + .'Each tag key corresponds to one tag value. You can specify at most 20 tag values in each call.'."\n", 'type' => 'string', 'required' => false, 'example' => 'TagValue', 'title' => ''], ], 'required' => false, + 'title' => '', + 'example' => '', ], 'required' => false, - 'maxItems' => 16, + 'maxItems' => 21, + 'title' => '', + 'example' => '', ], ], [ - 'name' => 'DryRun', + 'name' => 'ResourceGroupId', 'in' => 'query', + 'schema' => ['description' => 'The ID of the resource group to which the customer gateway belongs.'."\n" + ."\n" + .'- You can call the [ListResourceGroups](~~158855~~) operation to query the resource group list.'."\n" + ."\n" + .'- If you do not specify a resource group, the customer gateway will belong to the default resource group after being created.', 'type' => 'string', 'required' => false, 'example' => 'rg-aek2qo2h4jy****', 'title' => ''], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => 'Specifies whether to perform a dry run. Valid values:'."\n" - ."\n" - .'* **true**: performs only a dry run. The system checks the required parameters, request syntax, and limits. If the request fails, an error message is returned. If the request passes the validation, the `DryRunOperation` error code is returned.'."\n" - .'* **false** (default): sends the request. If the request passes the check, an HTTP 2xx status code is returned and the operation is performed.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', + 'description' => 'The response parameters.'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => 'D32B3C26-6C6C-4988-93E9-D2A6444CE6AE', 'title' => ''], + 'IpAddress' => ['description' => 'The static IP address of the gateway device in the on-premises data center.', 'type' => 'string', 'example' => '101.12.XX.XX', 'title' => ''], + 'Description' => ['description' => 'The description of the customer gateway.'."\n", 'type' => 'string', 'example' => 'desctest', 'title' => ''], + 'CustomerGatewayId' => ['description' => 'The ID of the customer gateway.'."\n", 'type' => 'string', 'example' => 'cgw-bp1jrawp82av6bws9****', 'title' => ''], + 'CreateTime' => ['description' => 'The timestamp generated when the customer gateway was created. Unit: milliseconds.'."\n" + ."\n" + .'This value is a UNIX timestamp representing the number of milliseconds that have elapsed since the epoch time January 1, 1970, 00:00:00 UTC.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '1493363486000', 'title' => ''], + 'Name' => ['description' => 'The name of the customer gateway.'."\n", 'type' => 'string', 'example' => 'nametest', 'title' => ''], + ], + 'title' => '', + 'example' => '', ], ], ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InvalidAuthkey.Malformed', 'errorMessage' => 'The specified BGP authentication key (%s) is malformed.', 'description' => 'The BGP authentication key is invalid.'], + ['errorCode' => 'InvalidIpAddress.AlreadyExist', 'errorMessage' => 'Specified IpAddress is already exist.', 'description' => 'The IP address already exists. You cannot specify duplicate IP addresses by using the same account in the same region.'], + ['errorCode' => 'InvalidIpAddress.WrongFormat', 'errorMessage' => 'Specified IpAddress is invalid.', 'description' => ''], + ['errorCode' => 'InvalidName', 'errorMessage' => 'The name is not valid', 'description' => ''], + ['errorCode' => 'InvalidDescription', 'errorMessage' => 'The description is not valid', 'description' => ''], + ['errorCode' => 'Resource.QuotaFull', 'errorMessage' => 'The quota of resource is full', 'description' => ''], + ['errorCode' => 'IllegalParam.Asn', 'errorMessage' => 'The specified Asn is invalid.', 'description' => 'The error message returned because the ASN is invalid.'], + ['errorCode' => 'OperationDenied.MissingAsn', 'errorMessage' => 'The autonomous system number of the customer gateway is mandatory when BGP authentication key is specified.', 'description' => 'The autonomous system number of the customer gateway is mandatory when BGP authentication key is specified.'], + ['errorCode' => 'InvalidParameter.TagValue', 'errorMessage' => 'The specified parameter TagValue is invalid.', 'description' => 'The error message returned because the specified tag value is invalid.'], + ['errorCode' => 'SizeLimitExceeded.TagNum', 'errorMessage' => 'The maximum number of tags is exceeded.', 'description' => 'The number of tags has reached the upper limit.'], + ['errorCode' => 'Forbidden.TagKey.Duplicated', 'errorMessage' => 'The specified tag key already exists.', 'description' => 'The tag resources are duplicate.'], + ['errorCode' => 'InvalidParameter.TagKey', 'errorMessage' => 'The specified parameter TagKey is invalid.', 'description' => 'The error message returned because the specified tag key is invalid.'], + ['errorCode' => 'Duplicated.TagKey', 'errorMessage' => 'The specified parameter TagKey is duplicated.', 'description' => 'The error message returned because the specified tag key already exists.'], + ['errorCode' => 'OperationFailed.NoRamPermission', 'errorMessage' => 'Vpn Service has no permission to operate your IDaaS instances.', 'description' => 'The VPN service does not have the permissions to manage your IDaaS instance.'], + ['errorCode' => 'CreateVpnUserGatewayQuotaFull.QuotaFull', 'errorMessage' => 'The number of created VPN customer gateways exceeds the quota.', 'description' => 'The number of created VPN customer gateways exceeds the quota.'], + ], + 403 => [ + ['errorCode' => 'Forbidden.SubUser', 'errorMessage' => 'User not authorized to operate on the specified resource as your account is created by another user.', 'description' => 'The error message returned because you are unauthorized to perform this operation on the specified resource. Acquire the required permissions and try again.'], + ['errorCode' => 'Forbidden', 'errorMessage' => 'User not authorized to operate on the specified resource.', 'description' => 'You do not have the permissions to manage the specified resource. Apply for the permissions and try again.'], + ], + 409 => [ + ['errorCode' => 'OperationConflict', 'errorMessage' => 'The operation against this instance is too frequent, please try again later.', 'description' => 'Operations are too frequently performed on the instance. Try again later.'], + ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'CreateCustomerGateway', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2024-01-04T07:17:10.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-10-19T07:04:01.000Z', 'description' => 'Request parameters changed, Response parameters changed'], + ['createdAt' => '2022-12-27T12:19:50.000Z', 'description' => 'Error codes changed, Response parameters changed'], + ['createdAt' => '2022-12-27T03:28:32.000Z', 'description' => 'Error codes changed'], + ], + 'ramActions' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"D32B3C26-6C6C-4988-93E9-D2A6444CE6AE\\",\\n \\"IpAddress\\": \\"101.12.XX.XX\\",\\n \\"Description\\": \\"desctest\\",\\n \\"CustomerGatewayId\\": \\"cgw-bp1jrawp82av6bws9****\\",\\n \\"CreateTime\\": 1493363486000,\\n \\"Name\\": \\"nametest\\"\\n}","errorExample":""},{"type":"xml","example":"\\n D32B3C26-6C6C-4988-93E9-D2A6444CE6AE\\n 101.12.XX.XX\\n desctest\\n cgw-bp1jrawp82av6bws9****\\n 1493363486000\\n nametest\\n","errorExample":""}]', + ], + 'CreateDefaultVSwitch' => [ + 'summary' => 'Creates a default vSwitch.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'readAndWrite', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'create', 'riskType' => 'none', 'chargeType' => 'free'], + 'parameters' => [ + [ + 'name' => 'ZoneId', + 'in' => 'query', + 'schema' => ['description' => 'The zone ID of the default vSwitch that you want to create.'."\n" + ."\n" + .'You can call the [DescribeZones](~~36064~~) operation to query zone IDs.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou-b', 'title' => ''], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => ['description' => 'The region ID of the default vSwitch that you want to create.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query region IDs.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], + ], + [ + 'name' => 'Ipv6CidrBlock', + 'in' => 'query', + 'schema' => ['description' => 'The last 8 bits of the IPv6 CIDR block of the vSwitch. Valid values: **0** to **255**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '12', 'title' => ''], + ], + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'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.'."\n" + ."\n" + .'> If you do not specify this parameter, the system automatically uses the **RequestId** of the API request as the **ClientToken**. The **RequestId** may be different for each API request.', 'type' => 'string', 'required' => false, 'example' => '0c593ea1-3bea-11e9-b96b-88e9fe63****', 'title' => ''], + ], + ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => 'The returned information.', + 'description' => 'The ID of the default vSwitch that was created.', 'type' => 'object', 'properties' => [ - 'RouteEntryId' => [ - 'description' => 'The ID of the custom route entry.'."\n", - 'type' => 'string', - 'example' => 'rte-sn6vjkioxte1gz83z****', - ], - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => '0ED8D006-F706-4D23-88ED-E11ED28DCAC0', - ], + 'VSwitchId' => ['description' => 'The ID of the default vSwitch that was created.', 'type' => 'string', 'example' => 'vsw-bp1a4b5qhmxftjimq****', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '0ED8D006-F706-4D23-88ED-E11ED28DCAC0', 'title' => ''], ], + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'IllegalParam.CidrBlock', - 'errorMessage' => 'The specified CidrBlock is illegal.', - ], - [ - 'errorCode' => 'QuotaExceeded', - 'errorMessage' => 'Route entry quota exceeded in this route table.', - ], - [ - 'errorCode' => 'MissingParameter', - 'errorMessage' => 'Miss mandatory parameter.', - ], - [ - 'errorCode' => 'InvalidCidrBlock.Malformed', - 'errorMessage' => 'Specified CIDR block is not valid.', - ], - [ - 'errorCode' => 'InvalidCIDRBlock.Duplicate', - 'errorMessage' => 'Specified CIDR block is already exists.', - ], - [ - 'errorCode' => 'IncorrectVpcStatus', - 'errorMessage' => 'Current VPC status does not support this operation.', - ], - [ - 'errorCode' => 'IncorrectInstanceStatus', - 'errorMessage' => 'Current instance status does not support this operation.', - ], - [ - 'errorCode' => 'IncorrectRouteEntryStatus', - 'errorMessage' => 'Some route entry status blocked this operation.', - ], - [ - 'errorCode' => 'IncorrectVSwitchStatus', - 'errorMessage' => 'The current virtual switch status does not support this operation.', - ], - [ - 'errorCode' => 'InvalidCidrBlock', - 'errorMessage' => 'Specified CIDR block is not valid.', - ], - [ - 'errorCode' => 'InvalidNextHop.NotFound', - 'errorMessage' => 'Specified next hop does not exist.', - ], - [ - 'errorCode' => 'InvalidVRouter.NotFound', - 'errorMessage' => 'vRouter not exists.', - ], - [ - 'errorCode' => 'InvalidVPC.NotFound', - 'errorMessage' => 'vpc not exists.', - ], - [ - 'errorCode' => 'InvalidNexthopTypeAndList.BothNull', - 'errorMessage' => 'both nexthopType and nextHopList are null.', - ], - [ - 'errorCode' => 'InvalidNexthopTypeAndList.BothNotNull', - 'errorMessage' => 'both nexthopType and nextHopList are not null.', - ], - [ - 'errorCode' => 'InvalidRouterInterface', - 'errorMessage' => 'invalid router interface.', - ], - [ - 'errorCode' => 'InvalidOppositeRouterType', - 'errorMessage' => 'nexthop list cannot only contain router interface whose opposite router interface is on vbr.', - ], - [ - 'errorCode' => 'InvalidNexthopListSize', - 'errorMessage' => 'nexthop size is illegal. Must be between 2 and 4.', - ], - [ - 'errorCode' => 'InvalidEntryRuleQuota.NotFound', - 'errorMessage' => 'Route entry quota rule not exists.', - ], - [ - 'errorCode' => 'Forbidden.CheckEntryRuleQuota', - 'errorMessage' => 'Route entry quota rule check error.', - ], - [ - 'errorCode' => 'InvalidVBRStatus', - 'errorMessage' => 'invalid virtual border router status.', - ], - [ - 'errorCode' => 'InvalidPhysicalConnectionBusinessStatus', - 'errorMessage' => 'invalid physical connection business status.', - ], - [ - 'errorCode' => 'InvalidRouterType', - 'errorMessage' => 'Cannot specify nexthop list in vbr\'s route table.', - ], - [ - 'errorCode' => 'IncorrectHaVipStatus', - 'errorMessage' => 'This operation is denied because satus of the specified HaVip is neither Available nor InUse.', - ], - [ - 'errorCode' => 'CountLimitExceed.HaVipRouteEntry', - 'errorMessage' => 'The count of route entry to HaVip in one route table is exceeded.', - ], - [ - 'errorCode' => 'InvalidRouteEntry.Duplicate', - 'errorMessage' => 'The route entry already exist.', - ], - [ - 'errorCode' => 'InvalidParam', - 'errorMessage' => 'The Ecmp routerEntry with router interfaces local vgw vip not match.', - ], - [ - 'errorCode' => 'INVALID_WEIGHT_PARAM', - 'errorMessage' => 'Specified value of weight invalid', - ], - [ - 'errorCode' => 'FORBIDDEN_USE_VPC_AS_INTERNET_GATEWAY', - 'errorMessage' => 'The Specified CIDR must be in vpc CIDR.', - ], - [ - 'errorCode' => 'InvalidNexthop', - 'errorMessage' => 'The Specified nexthop illegal.', - ], - [ - 'errorCode' => 'INVALID_VPC_ID', - 'errorMessage' => 'The Specified VpcId not match.', - ], - [ - 'errorCode' => 'InvalidRouteEntrySize', - 'errorMessage' => 'The Specified routerEntry size not legal.', - ], - [ - 'errorCode' => 'TaskConflict', - 'errorMessage' => 'The operation is too frequent, please wait a moment and try again.', - ], - [ - 'errorCode' => 'InvalidRouteEntry', - 'errorMessage' => 'Specified routeEntry not exist.', - ], - [ - 'errorCode' => 'InvalidDestinationCidrBlock', - 'errorMessage' => 'The specified destinationCidrBlock must not included in black list cidr.', - ], - [ - 'errorCode' => 'Forbidden.VRouterNotFound', - 'errorMessage' => 'Specified virtual switch is not found during access authentication.', - ], - [ - 'errorCode' => 'DefaultValidate.Error', - 'errorMessage' => 'validte fail.', - ], - [ - 'errorCode' => 'Region.NotSupport', - 'errorMessage' => 'The specified region does not currently support nextHopType for networkInterface', - ], - [ - 'errorCode' => 'OperationFailed.NotifyCenCreate', - 'errorMessage' => 'Failed to notify cen when create route entry.', - ], - [ - 'errorCode' => 'Forbidden.PrivateIpNotFound', - 'errorMessage' => 'Private ip address not exist.', - ], - [ - 'errorCode' => 'OperationUnsupported.InactiveMode', - 'errorMessage' => 'Vpc multi scope route only support active standby.', - ], - [ - 'errorCode' => 'InvalidRouteEntryName.Malformed', - 'errorMessage' => 'Specified RouteEntry name is not valid.', - ], - [ - 'errorCode' => 'IncorrectStatus.MultiScopeRiRouteEntry', - 'errorMessage' => 'MultiScope ri status must not in idle.', - ], - [ - 'errorCode' => 'OperationUnsupported.MoreThanOneVpnOrHavip', - 'errorMessage' => 'MultiScope can not support more than one vpn/havip.', - ], - [ - 'errorCode' => 'OperationUnsupported.EcmpRiTypeOrNumber', - 'errorMessage' => 'Emcp entry not supported if vpc-vbr or vbr-vlan ri does not exist.', - ], - [ - 'errorCode' => 'Duplicated.VpcNextHop', - 'errorMessage' => 'Route entry nexthop duplicate.', - ], - [ - 'errorCode' => 'OperationUnsupported.SubRouteTableECMP', - 'errorMessage' => 'Vpc subRouteTable don\'t support ecmp or multiScope.', - ], - [ - 'errorCode' => 'InvalidNexthop.NotFound', - 'errorMessage' => 'VRouterEntry nexthop does not exist.', - ], - [ - 'errorCode' => 'IllegalParam.NextHopId', - 'errorMessage' => 'Instance not exists or not vpc vm.', - ], - [ - 'errorCode' => 'QuotaExceeded.HaVipRouteEntry', - 'errorMessage' => 'Vpc havip route entry quota exceed.', - ], - [ - 'errorCode' => 'InvalidNexthop.DirectEni', - 'errorMessage' => 'The direct Eni cannot be nexthop.', - ], - [ - 'errorCode' => 'OperationFailed.InvalidNexthop', - 'errorMessage' => 'vpc multi scope route must has a enable nexthop.', - ], - [ - 'errorCode' => 'OperationFailed.NotifyCenDelete', - 'errorMessage' => 'Failed to notify cen when delete route entry.', - ], - [ - 'errorCode' => 'InvalidNatGateway.NotFound', - 'errorMessage' => 'Natgateway not exist.', - ], - [ - 'errorCode' => 'OperationFailed.CxpRouteExist', - 'errorMessage' => 'Cxp route alreay existed.', - ], - [ - 'errorCode' => 'OperationFailed.GetEniInfo', - 'errorMessage' => 'Failed to get networkInterface info.', - ], - [ - 'errorCode' => 'OperationUnsupported.InvalidRouterInterfaceType', - 'errorMessage' => 'Only vpc vbr interface support ecmp route.', - ], - [ - 'errorCode' => 'InvalidHaVip.NotFound', - 'errorMessage' => 'The specified HaVip does not exist in the specified region.', - ], - [ - 'errorCode' => 'OperationFailed.MultiScopeType', - 'errorMessage' => 'The specified nexthop type is not support in multiScope.', - ], - [ - 'errorCode' => 'OperationFailed.DistibuteLock', - 'errorMessage' => 'Distibute lock fail.', - ], - [ - 'errorCode' => 'QuotaExceeded.VpnRouteEntry', - 'errorMessage' => 'Vpn route entry quota exceeded.', - ], - [ - 'errorCode' => 'InvalidAttachment.NotFound', - 'errorMessage' => 'The attachment is not found.', - ], - [ - 'errorCode' => 'OperationFailed.ActiveNetworkInterfaceNotFound', - 'errorMessage' => 'No active network interface is found on the attachment.', - ], - [ - 'errorCode' => 'InvalidNetworkInterface.NotFound', - 'errorMessage' => 'The network interface is not found on the attachment.', - ], - [ - 'errorCode' => 'OperationFailed.QueryAttachmentInfo', - 'errorMessage' => 'Failed to query attachment information.', - ], - [ - 'errorCode' => 'IllegalParam.AttachmentId', - 'errorMessage' => 'The attachment is invalid.', - ], - [ - 'errorCode' => 'OperationFailed.NotSupportIPV6', - 'errorMessage' => 'The specified next hop does not support IPv6.', - ], - [ - 'errorCode' => 'IncorrectStatus.Ipv6Address', - 'errorMessage' => 'The IPv6 address of the specified next hop is being assigned or deleted.', - ], - [ - 'errorCode' => 'OperationUnsupported.Ipv6EntryOnPrimaryNetworkInterface', - 'errorMessage' => 'You cannot create IPv6 route entries on a primary network interface.', - ], - [ - 'errorCode' => 'OperationUnsupported.SpecifyIpOnIpv6Entry', - 'errorMessage' => 'You cannot specify the private IP address when you create IPv6 route entries.', - ], - [ - 'errorCode' => 'OperationUnsupported.MutipleIpv6Address', - 'errorMessage' => 'You cannot specify a next hop that has bound multiple IPv6 addresses.', - ], - [ - 'errorCode' => 'OperationDenied.Ipv6EntryOnCustomTable', - 'errorMessage' => 'You cannot create any IPv6 route entry on a custom route table.', - ], - [ - 'errorCode' => 'OperationDenied.CloudBoxVbrEntryAllowedInCustomRouteTable', - 'errorMessage' => 'The operation is not allowed because only the custom routing table can add a routing entry with the next hop pointing to the cloud box type VBR.', - ], - [ - 'errorCode' => 'OperationDenied.RouteTableAssociateNotCloudBoxVSwitch', - 'errorMessage' => 'The operation is not allowed because of the routing table is bound to a non-cloud box type vswitch, and routing entries pointing to the cloud box VBR cannot be added.', - ], - [ - 'errorCode' => 'OperationDenied.VbrMisMatchCloudBox', - 'errorMessage' => 'The operation is not allowed because the routing table is bound to a cloud box vswitch, and routing entries pointing to other cloud box VBRs cannot be added.', - ], - [ - 'errorCode' => 'OperationDenied.VbrIdle', - 'errorMessage' => 'The operation is not allowed because the next hop of the added routing entry is a VBR type RI at the opposite end, which cannot be in an idle state.', - ], - [ - 'errorCode' => 'OperationDenied.RouterInterfaceToDifferentVpc', - 'errorMessage' => 'The operation is not allowed because the router interface is connected to different VPCs.', - ], - [ - 'errorCode' => 'OperationDenied.RouterInterfaceFromDifferentZones', - 'errorMessage' => 'The operation is not allowed because the router interface resides in different zones.', - ], - [ - 'errorCode' => 'OperationFailed.PconnTrafficNotEnable', - 'errorMessage' => 'The operation is failed because of PconnTrafficNotEnable.', - ], - [ - 'errorCode' => 'ResourceNotFound.VpcPeer', - 'errorMessage' => 'The specified resource of %s is not found.', - ], - [ - 'errorCode' => 'IncorrectStatus.VpcPeer', - 'errorMessage' => 'The status of %s [%s] is incorrect.', - ], - [ - 'errorCode' => 'OperationDenied.RouteTableTypeNotPermitted', - 'errorMessage' => 'The operation is not allowed because the type of route table is not permitted.', - ], - [ - 'errorCode' => 'OperationDenied.GatewayRouteTableNotPermitted', - 'errorMessage' => 'The operation is not allowed to create a route pointing to this nextHop type on gateway route table.', - ], - [ - 'errorCode' => 'UnsupportedFeature.VpcPeerIpv6', - 'errorMessage' => 'IPv6 route entries for VPC peering connections cannot be created in this region.', - ], - [ - 'errorCode' => 'OperationDenied.VpcIpv6NotEnabled', - 'errorMessage' => 'IPv6 has not been enabled for the VPC.', - ], - [ - 'errorCode' => 'IncorrectStatus.Ipv4Gateway', - 'errorMessage' => 'The status of Ipv4Gateway is incorrect.', - ], - [ - 'errorCode' => 'ResourceNotFound.PrefixList', - 'errorMessage' => 'The specified resource of prefixList is not found.', - ], - [ - 'errorCode' => 'UnsupportedFeature.CreatePrefixListEcmpRouteEntry', - 'errorMessage' => 'The feature of creating ecmp route entry with prefixList is not supported.', - ], - [ - 'errorCode' => 'OperationDenied.RouterInterfaceIpv6NotEnabled', - 'errorMessage' => 'Routerinterface does not support IPv6.', - ], - [ - 'errorCode' => 'OperationDenied.NextHopTypeNotPermitted', - 'errorMessage' => 'The operation is not allowed because the nextHop type is invalid.', - ], - [ - 'errorCode' => 'ResourceAlreadyAssociated.PrefixList', - 'errorMessage' => 'The operation failed because the specified prefixList route entry already exists.', - ], - [ - 'errorCode' => 'OperationFailed.CidrConflictWithPrefixList', - 'errorMessage' => 'The specified CIDR block already exists in a prefixList route entry.', - ], - [ - 'errorCode' => 'ResourceNotFound.Ipv4Gateway', - 'errorMessage' => 'Specified Ipv4Gateway does not exist.', - ], - [ - 'errorCode' => 'Mismatch.HaVipIdAndRouteTableId', - 'errorMessage' => 'The HaVip and RouteTable are mismatched.', - ], - [ - 'errorCode' => 'OperationFailed.OperationLocked', - 'errorMessage' => 'The operation failed because the nextHop instance is in the O&M lock state.', - ], - [ - 'errorCode' => 'Mismatch.Ipv4GatewayIdAndRouteTableId', - 'errorMessage' => 'The specified IPv4Gateway and RouteTable are not matched.', - ], - [ - 'errorCode' => 'OperationUnsupported.DestinationCidrBlockOverlapWithVSwitch', - 'errorMessage' => 'The destination IPv6 network segment specified in the route entry overlaps with the vSwitch network segment.', - ], - [ - 'errorCode' => 'ResourceNotAssociated.Cen', - 'errorMessage' => 'The Vpc and Cen are not associated.', - ], - [ - 'errorCode' => 'IncorrectStatus.CenRelation', - 'errorMessage' => 'The status of Vpc in Cen is incorrect.', - ], - [ - 'errorCode' => 'OperationDenied.CenTypeInvalid', - 'errorMessage' => 'The operation is not allowed because of Cen type is invalid..', - ], - [ - 'errorCode' => 'ResourceNotFound.Cen', - 'errorMessage' => 'The specified resource of Cen is not found.', - ], - [ - 'errorCode' => 'ResourceNotFound.NetworkInterface', - 'errorMessage' => 'The specified resource of network interface is not found.', - ], - [ - 'errorCode' => 'RouteConflict.AlreadyExist', - 'errorMessage' => 'Route conflict exists in routing table.', - ], - [ - 'errorCode' => 'IncorrectStatus.RouterInterface', - 'errorMessage' => 'The specified RouterInterface status is invalid.', - ], - [ - 'errorCode' => 'InvalidNexthop.UnsupportedEniBizType', - 'errorMessage' => 'The biz type of NetworkInterface is illegal.', - ], - [ - 'errorCode' => 'OperationDenied.RouterInterfaceIpv6', - 'errorMessage' => 'RouterInterface does not support IPv6.', - ], - [ - 'errorCode' => 'InvalidNextHopType', - 'errorMessage' => 'Specified parameter "NextHopType" is not valid.', - ], - [ - 'errorCode' => 'OperationDenied.VbrAttachEcrInMiddleStatus', - 'errorMessage' => 'The operation is not allowed because of VBR attach or detach ECR in middle status.', - ], - [ - 'errorCode' => 'ResourceNotAssociated.Ecr', - 'errorMessage' => 'The ECR is not associated.', - ], - [ - 'errorCode' => 'UnsupportedFeature.RouterInterfaceIpv6', - 'errorMessage' => 'The feature of ipv6 is not supported for the routerInterface.', - ], - [ - 'errorCode' => 'InvalidVpnInstanceId.NotFound', - 'errorMessage' => 'The specified VPN was not found.', - ], - [ - 'errorCode' => 'OperationFailed.ScopeActiveRouteEntryType', - 'errorMessage' => 'Operation failed because the type of the active route entry is not supported.', - ], - [ - 'errorCode' => 'OperationFailed.ScopeStandbyRouteEntryQuota', - 'errorMessage' => 'Operation failed because the quota for standby route entries in the scope has been exceeded.', - ], - [ - 'errorCode' => 'OperationFailed.ScopeActiveRouteEntryQuota', - 'errorMessage' => 'Operation failed because the quota for active route entries in the scope has been exceeded.', - ], - [ - 'errorCode' => 'OperationUnsupported.ScopeInvalidRouteType', - 'errorMessage' => 'The specified route type is unsupported.', - ], - [ - 'errorCode' => 'OperationFailed.EcmpInvalidRouterInterfaceOppositeType', - 'errorMessage' => 'Operation failed because the opposite type of the router interface is invalid for ECMP configuration.', - ], - [ - 'errorCode' => 'OperationUnsupported.Ipv6EcmpRouteEntry', - 'errorMessage' => 'The EcmpRouteEntry is not supported for IPv6.', - ], - [ - 'errorCode' => 'OperationUnsupported.Ipv6CidrBlock', - 'errorMessage' => 'The specified IPv6 CIDR block is unsupported.', - ], - [ - 'errorCode' => 'OperationUnsupported.Ipv6ForVBR', - 'errorMessage' => 'IPv6 route entry is not supported for VirtualBorderRouter.', - ], - [ - 'errorCode' => 'IncorrectStatus.RouteTableStatus', - 'errorMessage' => 'The status of the specified RouteTable is incorrect.', - ], - [ - 'errorCode' => 'OperationFailed.InvalidNextHopType', - 'errorMessage' => 'Operation failed because Ecmp routeEntry has more than one ri entry and can only support one non-ri entry.', - ], - [ - 'errorCode' => 'UnsupportedRegion', - 'errorMessage' => 'The feature is not supported in current region.', - ], - [ - 'errorCode' => 'UnsupportedFeature.VpcAdvancedFeature', - 'errorMessage' => 'The VPC does not support some advanced features.', - ], - [ - 'errorCode' => 'OperationDenied.CreateEcmpForPublishedRouteEntry', - 'errorMessage' => 'Operation denied because of can not create EcmpRouteEntry for published RouteEntry.', - ], - [ - 'errorCode' => 'OperationDenied.TrAttachmentIpv6Disabled', - 'errorMessage' => 'The operation is not allowed because tr attachment Ipv6 is disabled.', - ], - [ - 'errorCode' => 'Mismatch.EniIdAndRouteTableId', - 'errorMessage' => 'The operation is not allowed because eni and route table not in same vpc.', - ], - [ - 'errorCode' => 'InvalidDescription.Malformed', - 'errorMessage' => 'The Description is illegal.', - ], - [ - 'errorCode' => 'OperationFailed.InstanceDismatchCurrentVpc', - 'errorMessage' => 'The specified instance does not exist in current vpc.', - ], - ], - 403 => [ - [ - 'errorCode' => 'IncorrectInstanceStatus', - 'errorMessage' => 'The current status of the resource does not support this operation.', - ], - ], - [ - [ - 'errorCode' => 'InvalidParameter', - 'errorMessage' => 'Instance not exists or not vpc vm', - ], - [ - 'errorCode' => 'InvalidNatGatewayId.NotFound', - 'errorMessage' => 'Specified value of NatGatewayId is not found in our record.', - ], - [ - 'errorCode' => 'InvalidInstanId.NotFound', - 'errorMessage' => 'Specified instance does not exist.', - ], - [ - 'errorCode' => 'InvalidNextHopId.NotFound', - 'errorMessage' => 'Specified next hop does not exist.', - ], - [ - 'errorCode' => 'InvalidRouteTableId.NotFound', - 'errorMessage' => 'Specified route table does not exist.', - ], - [ - 'errorCode' => 'InvalidHaVipId.NotFound', - 'errorMessage' => 'The specified HaVip does not exist in the specified VPC.', - ], - [ - 'errorCode' => 'InvalidNetworkInterface.NotFound', - 'errorMessage' => 'The specified networkInterface does not exist.', - ], - [ - 'errorCode' => 'InvalidVpc.NotFound', - 'errorMessage' => 'Specified vpc is not found in our record.', - ], - [ - 'errorCode' => 'InvalidIpv6Gateway.NotFound', - 'errorMessage' => 'Specified Ipv6Gateway does not exist.', - ], - [ - 'errorCode' => 'ResourceNotFound.GatewayLoadBalancerEndpoint', - 'errorMessage' => 'GatewayLoadBalancerEndpoint instance not found.', - ], + ['errorCode' => 'InvalidDescription.Malformed', 'errorMessage' => 'Invalid description.', 'description' => ''], + ['errorCode' => 'InvalidVSwitchName.Malformed', 'errorMessage' => 'Specified virtual switch name is not valid.', 'description' => 'The format of the specified vSwitch name is invalid. Specify the name in the valid format.'], + ['errorCode' => 'InvalidVSwitchDiscription.Malformed', 'errorMessage' => 'Specified virtual switch description is not valid.', 'description' => ''], + ['errorCode' => 'Abs.Vpc.InvalidDescription.Malformed', 'errorMessage' => 'Specified virtual switch name is not valid.', 'description' => ''], + ['errorCode' => 'ResourceNotAvailable', 'errorMessage' => 'Resource you requested is not available in this region or zone.', 'description' => ''], + ['errorCode' => 'InvalidParameter', 'errorMessage' => 'Specified CIDR block is not valid in VPC.', 'description' => ''], + ['errorCode' => 'InvalidCidrBlock.Overlapped', 'errorMessage' => 'Specified CIDR block overlapped with other subnets.', 'description' => ''], + ['errorCode' => 'QuotaExceeded.VSwitch', 'errorMessage' => 'Virtual switch quota exceeded.', 'description' => 'The number of vSwitches has reached the upper limit. Reduce the number of vSwitches and try again later.'], + ['errorCode' => 'IncorrectRouteEntryStatus', 'errorMessage' => 'Some route entry status blocked this operation.', 'description' => ''], + ['errorCode' => 'IncorrectVSwitchStatus', 'errorMessage' => 'Some virtual switch is modifying within the same VPC.', 'description' => 'Multiple vSwitches are in the Modifying state in the same VPC. Try again later.'], + ['errorCode' => 'InvalidCirdrBlock.MaskLength', 'errorMessage' => 'Specified CIDR block is not valid .', 'description' => 'Invalid CIDR block.'], + ['errorCode' => 'IncorrectVpcStatus', 'errorMessage' => 'Current VPC status does not support this operation.', 'description' => ''], + ['errorCode' => 'CreateVSwitch.IncorrectStatus.cbnStatus', 'errorMessage' => 'Current CBN status does not support this operation.', 'description' => 'You cannot create a vSwitch when the CEN instance is in the current state.'], + ['errorCode' => 'InvalidCidrBlock.Malformed', 'errorMessage' => 'Specified CIDR block is not valid.', 'description' => ''], + ['errorCode' => 'MissingParameter', 'errorMessage' => 'Miss mandatory parameter.', 'description' => ''], + ['errorCode' => 'TaskConflict', 'errorMessage' => 'The operation is too frequent, TaskConflict.', 'description' => 'The system is unavailable. Try again later.'], + ['errorCode' => 'VPC.SWITCH.RULE.QUOTA.NOT.EXISTS', 'errorMessage' => 'vSwitch quota rule not exists.', 'description' => ''], + ['errorCode' => 'Forbidden.VpcNotFound', 'errorMessage' => 'Specified VPC can not found.', 'description' => 'The specified VPC does not exist.'], + ['errorCode' => 'RouteConflict.AlreadyExist', 'errorMessage' => 'Route conflict exists in routing table.', 'description' => 'Route conflicts exist in the route table.'], + ['errorCode' => 'OperationFailed.CidrAcross', 'errorMessage' => 'Classic link instance cidr must not across.', 'description' => ''], + ['errorCode' => 'Duplicated.ClientToken', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'OperationFailed.Ipv6CidrBlockExisted', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'IllegalParam.Ipv6CidrBlock', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'OperationFailed.VpcIpv6Disabled', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'IncorrectStatus.cbnStatus', 'errorMessage' => 'Current CBN status does not support this operation.', 'description' => 'The status of the CEN instance is invalid.'], + ['errorCode' => 'OperationFailed.DefaultVpcNotExist', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'UnsupportedFeature.CloudBoxIpv6', 'errorMessage' => 'The IPv6 feature is not supported by cloud box.', 'description' => 'You cannot create an IPv6 address for a CloudBox instance.'], + ['errorCode' => 'OperationDenied.VpcPeerExist', 'errorMessage' => 'The operation is not allowed because the VPC peer exists.', 'description' => 'The operation failed because VPC peering connections exist.'], + ['errorCode' => 'OperationDenied.CenAttached', 'errorMessage' => 'The operation is not allowed because the VPC is attached to CEN.', 'description' => 'The operation is not allowed because the VPC is attached to a CEN instance.'], + ['errorCode' => 'OperationDenied.NatgwExist', 'errorMessage' => 'The operation is not allowed because the NAT gateway exists in VPC.', 'description' => 'The operation is not allowed because NAT gateways exist in the VPC.'], + ['errorCode' => 'OperationDenied.OtherSubnetCreating', 'errorMessage' => 'other subnet is creating', 'description' => ''], + ['errorCode' => 'OperationFailed.DefaultVSwitchExist', 'errorMessage' => 'A default vSwitch already exists in the zone.', 'description' => 'The error message returned because the default vSwitch already exists in the current zone.'], + ['errorCode' => 'InvalidStatus.RouteEntry', 'errorMessage' => 'RouteEntry status error.', 'description' => ''], + ['errorCode' => 'InvalidZoneId.NotFound', 'errorMessage' => 'Specified zone does not exist.', 'description' => ''], + ['errorCode' => 'OperationDenied.ZoneIsDisabled', 'errorMessage' => 'The specified zone is disabled. You cannot create a vSwitch in a disabled zone.', 'description' => 'The specified zone is disabled. You cannot create a vSwitch in a disabled zone.'], ], - 500 => [ - [ - 'errorCode' => 'VPC.ERROR', - 'errorMessage' => 'error code 500,Internal server error.', - ], - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', - ], - [ - 'errorCode' => 'IncorrectStatus.Ipv4Gateway', - 'errorMessage' => 'The status of Ipv4Gateway is incorrect.', - ], + 404 => [ + ['errorCode' => 'Invalid.NotExist', 'errorMessage' => 'witch mask rule not exists.', 'description' => ''], + ['errorCode' => 'InvalidVpcId.NotFound', 'errorMessage' => 'Specified VPC does not exist.', 'description' => ''], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RouteEntryId\\": \\"rte-sn6vjkioxte1gz83z****\\",\\n \\"RequestId\\": \\"0ED8D006-F706-4D23-88ED-E11ED28DCAC0\\"\\n}","errorExample":""},{"type":"xml","example":"\\n rte-sn6vjkioxte1gz83z****\\n 0ED8D006-F706-4D23-88ED-E11ED28DCAC0\\n","errorExample":""}]', - 'title' => 'CreateRouteEntry', - 'description' => '* **CreateRouteEntry** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call the [DescribeRouteEntryList](~~138148~~) operation to query the status of the task:'."\n" + 'title' => 'Create a default vSwitch', + 'description' => 'When you call this operation to create a default vSwitch, take note of the following items:'."\n" + .'- The first and last three IP addresses of each default vSwitch CIDR block are reserved by the system. For example, the system reserved IP addresses of 192.168.1.0/24 are 192.168.1.0, 192.168.1.253, 192.168.1.254, and 192.168.1.255.'."\n" ."\n" - .' * If a route is in the **Creating** state, the route is being added.'."\n" - .' * If a route is in the **Created** state, the route is added.'."\n" + .'- The number of cloud service instances in a default vSwitch cannot exceed the remaining available cloud service instances in the VPC (15,000 minus the current number of cloud service instances).'."\n" ."\n" - .'* You cannot repeatedly call **CreateRouteEntry** within a specific period of time.'."\n" + .'- Default vSwitches do not support multicast or broadcast.'."\n" ."\n" - .'**When you call this operation to add a custom route entry to the route table of a vRouter, take note of the following limits:**'."\n" + .'- After a default vSwitch is created, you cannot modify its CIDR block.'."\n" ."\n" - .'> When you add a route entry from a prefix list, the quota usage is calculated by adding the number of existing route entries and the maximum number of route entries of the prefix list.'."\n" - ."\n" - .'* A route table can contain up to 200 custom route entries.'."\n" - ."\n" - .'* The destination CIDR block (**DestinationCidrBlock**) of a custom route entry cannot be the same as or be a subset of the CIDR block of a vSwitch in the virtual private cloud (VPC). The destination CIDR block can contain the CIDR block of a vSwitch.'."\n" - ."\n" - .'* The destination CIDR block (**DestinationCidrBlock**) of a custom route entry cannot be 100.64.0.0/10 or a subset of it.'."\n" - ."\n" - .'* The destination CIDR blocks (**DestinationCidrBlock**) of route entries in the same route table must be unique.'."\n" - ."\n" - .'* If you do not include the mask length when you specify the destination CIDR block (**DestinationCidrBlock**), the destination CIDR block is considered a host IP address whose mask length is 32 bits.'."\n" - ."\n" - .'* Multiple custom route entries can point to the same next hop (**NextHopId**).'."\n" - ."\n" - .'* The next hop (**NextHopId**) of a custom route entry must in the same VPC as the route table.'."\n" - ."\n" - .'* Equal-cost multi-path (ECMP) routing can be configured by specifying the **NextHopList** parameter.'."\n" - ."\n" - .' * When you add non-ECMP route entries, you must specify **DestinationCidrBlock**, **NextHopType**, and **NextHopId**, and you must not specify **NextHopList**.'."\n" - .' * When you add route entries for ECMP routing, you must specify **DestinationCidrBlock** and **NextHopList**, and you must not specify **NextHopType** or **NextHopId**.'."\n" - ."\n" - .'**When you call this operation to add a custom route entry to the route table of a VBR, take note of the following limits:**'."\n" - ."\n" - .'* A route table can contain up to 200 custom route entries.'."\n" - .'* **NextHopList** is not supported.'."\n" - .'* The destination CIDR block (**DestinationCidrBlock**) of a custom route entry cannot be 100.64.0.0/10 or a subset of it.'."\n" - .'* The destination CIDR blocks (**DestinationCidrBlock**) of route entries in the same route table must be unique.'."\n" - .'* If you do not include the mask length when you specify the destination CIDR block (**DestinationCidrBlock**), the destination CIDR block is considered a host IP address whose mask length is 32 bits.'."\n" - .'* Multiple custom route entries can point to the same next hop (**NextHopId**).'."\n" - .'* The next hop (**NextHopId**) of a custom route entry must be a router interface associated with the VBR.'."\n" - .'* You can add route entries only when the VBR is in the **Active** state, and the Express Connect circuit associated with the VBR is in the **Enabled** state and is not locked due to overdue payments.'."\n" - .'* Only non-ECMP route entries are supported. When you add non-ECMP route entries, you must specify **DestinationCidrBlock**, **NextHopType**, and **NextHopId**, and you cannot specify **NextHopList**.'."\n", - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'CreateRouteEntries' => [ - 'summary' => 'Adds custom route entries to the route table of a vRouter in a virtual private cloud (VPC).', - 'methods' => [ - 'post', - 'get', + .'- The **CreateDefaultVSwitch** operation is asynchronous. After you send a request, the system returns an instance ID, but the default vSwitch is not yet created. A background task is still in progress. You can call [DescribeVSwitchAttributes](~~94567~~) to query the creation status of the default vSwitch:'."\n" + .' - If the default vSwitch is in the **Pending** state, the default vSwitch is being configured.'."\n" + .' - If the default vSwitch is in the **Available** state, the default vSwitch is available.'."\n" + .'- If a default vSwitch already exists in a zone of the specified region, the call to this operation fails.'."\n" + .'- Before you create a default vSwitch, create a default VPC first. You can call the [CreateDefaultVpc](~~609152~~) operation to create a default VPC.', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CreateDefaultVSwitch'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'vpc:CreateDefaultVSwitch', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VSwitch', 'arn' => 'acs:vpc:{#regionid}:{#accountId}:vswitch/*'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"VSwitchId\\": \\"vsw-bp1a4b5qhmxftjimq****\\",\\n \\"RequestId\\": \\"0ED8D006-F706-4D23-88ED-E11ED28DCAC0\\"\\n}","type":"json"}]', + ], + 'CreateDefaultVpc' => [ + 'summary' => 'Creates a default virtual private cloud (VPC).', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'readAndWrite', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'create', - 'riskType' => 'none', - 'chargeType' => 'free', - ], + 'systemTags' => ['operationType' => 'create', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the route table.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The region ID of the default VPC.'."\n" + ."\n" + .'You can call [DescribeRegions](~~36063~~) to query the most recent region list.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'RegionId', + 'name' => 'Ipv6CidrBlock', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the route table.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The IPv6 CIDR block of the default VPC.'."\n" + ."\n" + .'> This parameter is required when **EnableIpv6** is set to **true**.', 'type' => 'string', 'required' => false, 'example' => '2408:XXXX:346:b600::/56', 'title' => ''], ], [ - 'name' => 'RouteEntries', + 'name' => 'EnableIpv6', 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => 'The routes.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'DstCidrBlock' => [ - 'description' => 'The destination CIDR block of the custom route. IPv4 CIDR blocks, IPv6 CIDR blocks, and prefix lists are supported. You can enter up to 50 destination CIDR blocks. Make sure that the following requirements are met:'."\n" - ."\n" - .'* The destination CIDR block cannot point to 100.64.0.0/10 or belong to 100.64.0.0/10.'."\n" - .'* The destination CIDR block of each route in the route table is unique.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => '192.168.0.0/24', - ], - 'RouteTableId' => [ - 'description' => 'The ID of the route table to which you want to add custom route s. You can specify at most 50 route table IDs.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'vtb-bp145q7glnuzd****', - ], - 'IpVersion' => [ - 'description' => 'The IP version. Valid values: You can specify at most 50 IP versions. Valid values:'."\n" - ."\n" - .'* **4**: IPv4'."\n" - .'* **6**: IPv6'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => 'IPv4', - ], - 'NextHop' => [ - 'description' => 'The ID of the next hop for the custom route. You can specify at most 50 instance IDs.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'i-j6c2fp57q8rr4jlu****', - ], - 'NextHopType' => [ - 'description' => 'The type of next hop. You can specify at most 50 next hop types. Valid values:'."\n" - ."\n" - .'* **Instance**: Elastic Compute Service (ECS) instance. This is the default value.'."\n" - .'* **HaVip**: high-availability virtual IP address (HaVip).'."\n" - .'* **RouterInterface**: router interface.'."\n" - .'* **NetworkInterface**: elastic network interface (ENI).'."\n" - .'* **VpnGateway**: VPN gateway.'."\n" - .'* **IPv6Gateway**: IPv6 gateway.'."\n" - .'* **NatGateway**: NAT gateway.'."\n" - .'* **Attachment**: transit router.'."\n" - .'* **VpcPeer**: VPC peering connection.'."\n" - .'* **Ipv4Gateway**: IPv4 gateway.'."\n" - .'* **GatewayEndpoint**: gateway endpoint.'."\n" - .'* **CenBasic**: CEN does not support transfer routers.'."\n" - .'* **Ecr**: Express Connect Router (ECR).', - 'type' => 'string', - 'required' => true, - 'example' => 'RouterInterface', - ], - 'Name' => [ - 'description' => 'The name of the custom route that you want to add. You can specify at most 50 names.'."\n" - ."\n" - .'The name must be 1 to 128 characters in length and cannot start with `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'test', - ], - 'Description' => [ - 'description' => 'The description of the custom route. You can specify at most 50 descriptions.'."\n" - ."\n" - .'The description must be 1 to 256 characters in length and cannot start with `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'test', - ], - ], - 'required' => false, - ], - 'required' => true, - 'maxItems' => 200, - ], + 'schema' => ['description' => 'Specifies whether to enable the IPv6 CIDR block. Valid values:'."\n" + ."\n" + .'- **false** (default): does not enable the IPv6 CIDR block.'."\n" + .'- **true**: enables the IPv6 CIDR block.', 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], ], [ - 'name' => 'DryRun', + 'name' => 'ResourceGroupId', 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to only precheck the request. Valid values:'."\n" - ."\n" - .'* **true**: prechecks the request without performing the operation. The system prechecks the required parameters, request syntax, and limits. If the request fails to pass the precheck, an error message is returned. If the request passes the precheck, the `DryRunOperation` error code is returned.'."\n" - .'* **false** (default): sends the request. After the request passes the precheck, a 2xx HTTP status code is returned and the operation is performed.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], + 'schema' => ['description' => 'The ID of the resource group.', 'type' => 'string', 'required' => false, 'example' => 'rg-acfmystnjq4****', 'title' => ''], + ], + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'You can use the client to generate the token, but you must make sure that the token is unique among different requests. The ClientToken value can contain only ASCII characters.'."\n" + ."\n" + .'> If you do not specify this parameter, the system uses the **RequestId** of the API request as the **ClientToken**. The **RequestId** may be different for each API request.', 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-426655440000', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => 'The number of completed tasks.'."\n", + 'description' => 'The ID of the default VPC that is created.', 'type' => 'object', 'properties' => [ - 'SuccessCount' => [ - 'description' => 'The number of custom route entries that were successfully added.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '2', - ], - 'FailedCount' => [ - 'description' => 'The number of custom route entries that failed to be added.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '2', - ], - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '0ED8D006-F706-4D23-88ED-E11ED28DCAC0', - ], - 'FailedRouteEntries' => [ - 'description' => 'The details about the custom route entry that failed to be added.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'DstCidrBlock' => [ - 'description' => 'The destination CIDR block of the custom route entry that failed to be added.'."\n", - 'type' => 'string', - 'example' => '192.168.0.0/24', - ], - 'NextHop' => [ - 'description' => 'The ID of the next hop of the custom route entry that failed to be added.'."\n", - 'type' => 'string', - 'example' => 'i-j6c2fp57q8rr4jlu****', - ], - 'FailedCode' => [ - 'description' => 'The error code.'."\n", - 'type' => 'string', - 'example' => 'VPC_ROUTE_ENTRY_CIDR_BLOCK_DUPLICATE', - ], - 'FailedMessage' => [ - 'description' => 'The error message.'."\n", - 'type' => 'string', - 'example' => 'Specified CIDR block is already exists, entry.cidrBlock=xxxx', - ], - ], - ], - ], - 'RouteEntryIds' => [ - 'description' => 'The information about the ID of the custom route entry that was successfully added.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The ID of the custom route entry that was successfully added.'."\n", - 'type' => 'string', - 'example' => 'rte-sn6vjkioxte1gz83z****', - ], - ], + 'VpcId' => ['description' => 'The ID of the default VPC that is created.', 'type' => 'string', 'example' => 'vpc-bp15zckdt37pq72zv****', 'title' => ''], + 'VRouterId' => ['description' => 'The ID of the vRouter that the system automatically creates after the default VPC is created.', 'type' => 'string', 'example' => 'vrt-bp1lhl0taikrteen8****', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '0ED8D006-F706-4D23-88ED-E11ED28DCAC0', 'title' => ''], + 'RouteTableId' => ['description' => 'The ID of the route table that the system automatically creates after the default VPC is created.', 'type' => 'string', 'example' => 'vtb-bp1q1uirugzb1x32m****', 'title' => ''], ], + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'DryRunOperation', - 'errorMessage' => 'Request validation has been passed with DryRun flag set.', - ], - [ - 'errorCode' => 'MissingParam.RouteTableId', - 'errorMessage' => 'The parameter RouteTableId is missing.', - ], + ['errorCode' => 'TOKEN_PROCESSING', 'errorMessage' => 'Action is processing.', 'description' => ''], + ['errorCode' => 'InvokeError', 'errorMessage' => 'instance quota rule invoke error.', 'description' => 'Failed to get rule data, please wait zai shi'], + ['errorCode' => 'InvalidParameter', 'errorMessage' => 'Specified CIDR block is not valid', 'description' => ''], + ['errorCode' => 'ResourceNotAvailable', 'errorMessage' => 'Resource you requested is not available in this region or zone.', 'description' => ''], + ['errorCode' => 'InvalidVpcName.Malformed', 'errorMessage' => 'Specified VPC name is not valid.', 'description' => ''], + ['errorCode' => 'InvalidVpcDiscription.Malformed', 'errorMessage' => 'Specified VPC description is not valid.', 'description' => ''], + ['errorCode' => 'QuotaExceeded.Vpc', 'errorMessage' => 'VPC quota exceeded.', 'description' => 'The number of VPCs in this account has reached the upper limit.'], + ['errorCode' => 'ResourceNotAvailable.Vpc', 'errorMessage' => 'Resource you requested is not available in this region or zone.', 'description' => ''], + ['errorCode' => 'InvalidUserCidr.Quota', 'errorMessage' => 'Specified UserCidr number is greater than 3.', 'description' => ''], + ['errorCode' => 'InvalidUserCidr.Malformed', 'errorMessage' => 'Specified UserCidr overlapping in of 100.64.0.0/10.', 'description' => 'The user CIDR block that you specify overlaps with 100.64.0.0/10.'], + ['errorCode' => 'InvalidResourceGroupId', 'errorMessage' => 'The specified ResourceGroupId does not exist.', 'description' => 'The specified resource group ID does not exist.'], + ['errorCode' => 'IllegalParam.Ipv6CidrBlock', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'OperationFailed.IPv6CidrNotReserved', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'MissingParam.EnableIpv6', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'OperationUnsupported.Ipv6Feature', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'IllegalParam.ZoneId', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'OperationFailed.DefaultVpcExist', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'InvalidRegionId.NotFound', 'errorMessage' => 'Specified value of "regionId" is not supported.', 'description' => ''], + ], + 403 => [ + ['errorCode' => 'Forbbiden', 'errorMessage' => 'User not authorized to operate on the specified resource.', 'description' => 'User not authorized to operate on the specified resource.'], + ], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error.', 'description' => ''], ], ], - 'staticInfo' => [ - 'returnType' => 'asynchronous', - 'callback' => 'Vpc::2016-04-28::DescribeRouteEntryList', - 'callbackInterval' => 3, - 'maxCallbackTimes' => 5, - ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"SuccessCount\\": 2,\\n \\"FailedCount\\": 2,\\n \\"RequestId\\": \\"0ED8D006-F706-4D23-88ED-E11ED28DCAC0\\",\\n \\"FailedRouteEntries\\": [\\n {\\n \\"DstCidrBlock\\": \\"192.168.0.0/24\\",\\n \\"NextHop\\": \\"i-j6c2fp57q8rr4jlu****\\",\\n \\"FailedCode\\": \\"VPC_ROUTE_ENTRY_CIDR_BLOCK_DUPLICATE\\",\\n \\"FailedMessage\\": \\"Specified CIDR block is already exists, entry.cidrBlock=xxxx\\"\\n }\\n ],\\n \\"RouteEntryIds\\": [\\n \\"rte-sn6vjkioxte1gz83z****\\"\\n ]\\n}","type":"json"}]', - 'title' => 'CreateRouteEntries', - 'description' => '## [](#)References'."\n" - ."\n" - .'* **CreateRouteEntries** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call the [DescribeRouteEntryList](~~138148~~) operation to query the status of the task.'."\n" + 'title' => 'Create a default VPC', + 'description' => 'When you call this operation to create a default VPC, note the following items:'."\n" ."\n" - .' * If the route entry is in the **Creating** state, the route entry is being created.'."\n" - .' * If the route entry is in the **Created** state, the route entry is created.'."\n" + .'- After a default VPC is created, you cannot modify its CIDR block, but you can add secondary IPv4 CIDR blocks.'."\n" ."\n" - .'* You cannot repeatedly call the **CreateRouteEntries** operation to create the same route entry within the specified period of time.'."\n" + .'- Each default VPC supports up to 300,000 private network IP addresses for cloud resources, and this quota cannot be upgraded.'."\n" + .' '."\n" + .'- After a default VPC is created, a vRouter and a route table are automatically created.'."\n" + .' '."\n" + .'- Each default VPC supports up to three user CIDR blocks. If multiple user CIDR blocks overlap, the CIDR block with the shorter mask takes effect. For example, if both 10.0.0.0/16 and 10.0.0.0/24 exist, 10.0.0.0/16 takes effect.'."\n" ."\n" - .'**When you call this operation to add custom route entries to the route table of a vRouter, take note of the following items:**'."\n" - ."\n" - .'* A route table can contain up to 200 custom route entries.'."\n" - .'* The destination CIDR block (**DstCidrBlock**) of a custom route entry cannot be the same as or overlap with the CIDR block of a vSwitch in the VPC.'."\n" - .'* The destination CIDR block (**DstCidrBlock**) of a custom route entry cannot be 100.64.0.0/10 or its subnets.'."\n" - .'* The destination CIDR blocks (**DstCidrBlock**) of route entries in the same route table must be unique.'."\n" - .'* If you do not include the mask length when you specify the destination CIDR block (**DstCidrBlock**), the destination CIDR block is considered a host IP address whose mask length is 32 bits.'."\n" - .'* Multiple custom route entries can point to the same next hop (**NextHop**).'."\n" - .'* The next hop (**NextHop**) of a custom route entry must belong to the same VPC as the route table.'."\n", - ], - 'CreateRouteTable' => [ - 'summary' => 'Creates a custom route table.', - 'methods' => [ - 'post', - 'get', + .'- The **CreateDefaultVpc** operation is asynchronous. After you send a request, the system returns an instance ID while the default VPC is still being created in the background. You can call [DescribeVpcAttribute](~~94565~~) to query the creation status of the default VPC:'."\n" + .' - If the default VPC is in the **Pending** state, the default VPC is being configured.'."\n" + .' - If the default VPC is in the **Available** state, the default VPC is available.'."\n" + .'- The **CreateDefaultVpc** operation does not support concurrent creation of default VPCs in the same region.'."\n" + .'- Only one default VPC can exist in a region.', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CreateDefaultVpc'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'vpc:CreateDefaultVpc', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VPC', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vpc/*'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"VpcId\\": \\"vpc-bp15zckdt37pq72zv****\\",\\n \\"VRouterId\\": \\"vrt-bp1lhl0taikrteen8****\\",\\n \\"RequestId\\": \\"0ED8D006-F706-4D23-88ED-E11ED28DCAC0\\",\\n \\"RouteTableId\\": \\"vtb-bp1q1uirugzb1x32m****\\"\\n}","type":"json"}]', + ], + 'CreateDhcpOptionsSet' => [ + 'summary' => 'Creates a DHCP options set.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -9075,232 +6319,171 @@ ], 'operationType' => 'write', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'create', - 'riskType' => 'none', - 'chargeType' => 'free', - ], + 'systemTags' => ['operationType' => 'create', 'riskType' => 'none', 'chargeType' => 'free', 'autoTest' => true, 'tenantRelevance' => 'publicInformation'], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the virtual private cloud (VPC) to which the custom route table belongs.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-zhangjiakou', - ], - ], - [ - 'name' => 'VpcId', - 'in' => 'query', - 'allowEmptyValue' => false, - 'schema' => [ - 'description' => 'The ID of the VPC to which the custom route table belongs.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'vpc-bp1qpo0kug3a20qqe****', - ], + 'schema' => ['description' => 'The region to which the DHCP options set belongs.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'RouteTableName', + 'name' => 'DomainNameServers', 'in' => 'query', - 'schema' => [ - 'description' => 'The name of the route table.'."\n" - ."\n" - .'The name must be 1 to 128 characters in length, and cannot start with `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'myRouteTable', - ], + 'schema' => ['description' => 'The IP address of the DNS server. You can enter at most four DNS server IP addresses. Separate IP addresses with commas (,).'."\n" + ."\n" + .'> If no IP address is specified, the Elastic Compute Service (ECS) instance uses the IP addresses 100.100.2.136 and 100.100.2.138, which are provided by Alibaba Cloud by default.'."\n", 'type' => 'string', 'required' => false, 'docRequired' => false, 'example' => '192.XX.XX.123', 'title' => ''], ], [ - 'name' => 'Description', + 'name' => 'DhcpOptionsSetName', 'in' => 'query', - 'schema' => [ - 'description' => 'The description of the route table.'."\n" - ."\n" - .'The description must be 1 to 256 characters in length, and cannot start with `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'abc', - ], + 'schema' => ['description' => 'The name of the DHCP options set.'."\n" + ."\n" + .'The name must be 1 to 128 characters in length and can contain letters, digits, underscores (\\_), and hyphens (-). It must start with a letter.'."\n", 'type' => 'string', 'required' => false, 'example' => 'name', 'title' => ''], ], [ - 'name' => 'AssociateType', + 'name' => 'DhcpOptionsSetDescription', 'in' => 'query', - 'schema' => [ - 'description' => 'The type of the route table. Valid values:'."\n" - ."\n" - .'* **VSwitch** (default): vSwitch route table'."\n" - .'* **Gateway**: gateway route table'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'VSwitch', - ], + 'schema' => ['description' => 'The description of the DHCP options set.'."\n" + ."\n" + .'The description must be 1 to 256 characters in length. It must start with a letter and cannot start with `http://` or `https://`.'."\n", 'type' => 'string', 'required' => false, 'example' => 'description', 'title' => ''], ], [ - 'name' => 'RegionId', + 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the virtual private cloud (VPC) to which the custom route table belongs.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-zhangjiakou', - ], + 'schema' => ['description' => 'The root domain. For example, you can set the value to example.com.'."\n" + ."\n" + .'After a DHCP options set is associated with a virtual private cloud (VPC), the root domain in the DHCP options set is automatically synchronized with the ECS instances in the VPC.'."\n", 'type' => 'string', 'required' => false, 'example' => 'example.com', 'title' => ''], ], [ - 'name' => 'ClientToken', + 'name' => 'ResourceGroupId', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'You can use the client to generate the value, but you must make sure that it is unique among different requests. The token can contain only ASCII characters.'."\n" - ."\n" - .'> If you do not specify this parameter, **ClientToken** is set to the value of **RequestId**. The value of **RequestId** in each API request may be different.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '02fb3da4-130e-11e9-8e44-0016e04', - ], + 'schema' => ['description' => 'The ID of the resource group to which the DHCP options set belongs.'."\n", 'type' => 'string', 'required' => false, 'example' => 'rg-acfmxazb4ph****', 'title' => ''], ], [ 'name' => 'Tag', 'in' => 'query', 'style' => 'repeatList', 'schema' => [ - 'description' => 'The tags of the resource.'."\n", + 'description' => 'The tag of the resource.'."\n", 'type' => 'array', 'items' => [ - 'description' => 'The tags.', + 'description' => '', 'type' => 'object', 'properties' => [ - 'Key' => [ - 'description' => 'The tag key. You can specify up to 20 tag keys. The tag key cannot be an empty string.'."\n" - ."\n" - .'The tag key can be up to 128 characters in length. It cannot start with `aliyun` or `acs:`, and cannot contain `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'FinanceDept', - ], - 'Value' => [ - 'description' => 'The tag value. You can specify at most 20 tag values. The tag value can be an empty string.'."\n" - ."\n" - .'The tag value can be up to 128 characters in length and cannot contain `http://` or `https://`. The tag value cannot start with `aliyun` or `acs:`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'FinanceJoshua', - ], + 'Key' => ['description' => 'The key of tag N to add to the resource. You can specify up to 20 tag keys. The tag key cannot be an empty string.'."\n" + ."\n" + .'A tag key can be at most 128 characters in length. It cannot start with `aliyun` or `acs:`, and cannot contain `http://` or `https://`.'."\n", 'type' => 'string', 'required' => false, 'example' => 'FinanceDept', 'title' => ''], + 'Value' => ['description' => '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.'."\n" + ."\n" + .'The tag value can be up to 128 characters in length, and cannot contain `http://` or `https://`. The tag value cannot start with `aliyun` or `acs:`.'."\n", 'type' => 'string', 'required' => false, 'example' => 'FinanceJoshua', 'title' => ''], ], 'required' => false, + 'title' => '', + 'example' => '', ], 'required' => false, 'maxItems' => 21, + 'title' => '', + 'example' => '', ], ], + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'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.'."\n" + ."\n" + .'> 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.'."\n", 'type' => 'string', 'required' => false, 'example' => '0c593ea1-3bea-11e9-b96b-88e9fe637760', 'title' => ''], + ], + [ + 'name' => 'DryRun', + 'in' => 'query', + 'schema' => ['description' => 'Specifies whether to perform only a dry run, without performing the actual request.'."\n" + ."\n" + .'**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 dry run, an error message is returned. If the request passes the dry run, the `DryRunOperation` error code is returned.'."\n" + ."\n" + .'**false** (default): performs a dry run and sends the request. If the request passes the dry run, a 2xx HTTP status code is returned and the operation is performed.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], + ], + [ + 'name' => 'LeaseTime', + 'in' => 'query', + 'schema' => ['description' => 'The lease time of the IPv4 addresses for the DHCP options set.'."\n" + ."\n" + .'* If you use hours as the unit, valid values are **24h to 1176h** and **87600h to 175200h**. Default value: **87600h**.'."\n" + .'* If you use days as the unit, valid values are **1d to 49d** and **3650d to 7300d**. Default value: **3650d**.'."\n" + ."\n" + .'> When you enter a value, you must also specify the unit.'."\n", 'type' => 'string', 'required' => false, 'example' => '3650d', 'title' => ''], + ], + [ + 'name' => 'Ipv6LeaseTime', + 'in' => 'query', + 'schema' => ['description' => 'The lease time of the IPv6 addresses for the DHCP options set.'."\n" + ."\n" + .'* If you use hours as the unit, valid values are **24h to 1176h** and **87600h to 175200h**. Default value: **87600h**.'."\n" + .'* If you use days as the unit, valid values are **1d to 49d** and **3650d to 7300d**. Default value: **3650d**.'."\n" + ."\n" + .'> When you enter a value, you must also specify the unit.'."\n", 'type' => 'string', 'required' => false, 'example' => '3650d', 'title' => ''], + ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => 'The returned information.', + 'description' => 'The ID of the DHCP options set that is created.'."\n", 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => '62172DD5-6BAC-45DF-8D44-E11ED28DCAC0', - ], - 'RouteTableId' => [ - 'description' => 'The IDs of the route tables.'."\n", - 'type' => 'string', - 'example' => 'vtb-bp145q7glnuzdvzu2****', - ], + 'DhcpOptionsSetId' => ['description' => 'The ID of the DHCP options set that is created.'."\n", 'type' => 'string', 'example' => 'dopt-o6w0df4epg9zo8isy****', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '0ED8D006-F706-4D23-88ED-E11ED28DCAC0', 'title' => ''], + 'ResourceGroupId' => ['description' => 'The ID of the resource group to which the DHCP options set belongs.'."\n", 'type' => 'string', 'example' => 'rg-acfmxazb4ph****', 'title' => ''], ], + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'UnsupportedRegion', - 'errorMessage' => 'The feature of ipv4Gateway is not supported in the region.', - ], - [ - 'errorCode' => 'InvalidParameter.RouteTableName.Malformed', - 'errorMessage' => 'The specified route table name is not valid.', - ], - [ - 'errorCode' => 'InvalidParameter.Description.Malformed', - 'errorMessage' => 'The specified Description is not valid.', - ], - [ - 'errorCode' => 'QuotaExceeded.RouteTable', - 'errorMessage' => 'VPC RouteTable quota exceeded.', - ], - [ - 'errorCode' => 'IncorrectStatus.cbnStatus', - 'errorMessage' => 'Current CBN status does not support this operation.', - ], - [ - 'errorCode' => 'InvalidVpcId.NotSupport', - 'errorMessage' => 'The vpc is not support.', - ], - [ - 'errorCode' => 'OperationUnsupported.AdvancedFeature', - 'errorMessage' => 'Advanced features of the vpc is unsupported.', - ], - [ - 'errorCode' => 'QuotaExceeded.GatewayRouteTable', - 'errorMessage' => 'The quota of Gateway Route Table is exceeded.', - ], - [ - 'errorCode' => 'MissingParam.vpcId', - 'errorMessage' => 'The parameter vpcId is mandatory.', - ], - [ - 'errorCode' => 'InvalidRegionId.NotFound', - 'errorMessage' => 'Specified value of RegionId is not supported.', - ], - [ - 'errorCode' => 'InvalidParameter.Action', - 'errorMessage' => 'This vpc feature is not supported in this region', - ], - ], - 404 => [ - [ - 'errorCode' => 'InvalidVpcId.NotFound', - 'errorMessage' => 'Specified VPC does not exist.', - ], - ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"62172DD5-6BAC-45DF-8D44-E11ED28DCAC0\\",\\n \\"RouteTableId\\": \\"vtb-bp145q7glnuzdvzu2****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 62172DD5-6BAC-45DF-8D44-E11ED28DCAC0\\n vtb-bp145q7glnuzdvzu2****\\n","errorExample":""}]', - 'title' => 'CreateRouteTable', - 'description' => '* **CreateRouteTable** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the operation in the background. You can call the [DescribeRouteTableList](~~87602~~) operation to query the status of the task.'."\n" - ."\n" - .' * If the custom route table is in the **Creating** state, the custom route table is being created.'."\n" - .' * If the custom route table is in the **Created** state, the custom route table is created.'."\n" + ['errorCode' => 'OperationUnsupported.DhcpOptionsSet', 'errorMessage' => 'The DHCP options set feature in this region is not supported.', 'description' => 'The current region does not support the DHCP options sets feature.'], + ['errorCode' => 'InvalidDomainNameServers.Malformed', 'errorMessage' => 'The specified format of DomainNameServers is invalid.', 'description' => 'The format of the value of DomainNameServers is invalid. Check whether the parameter is set to a valid value.'], + ['errorCode' => 'QuotaExceeded.DomainNameServers', 'errorMessage' => 'The maximum number of domain name servers cannot exceed 4.', 'description' => 'DomainNameServers is set to a value greater than four.'], + ['errorCode' => 'IllegalParam.DomainNameServers', 'errorMessage' => 'The specified DomainNameServers is invalid.', 'description' => 'DomainNameServers is set to an invalid value.'], + ['errorCode' => 'IllegalParam.DomainName', 'errorMessage' => 'The specified DomainName is invalid.', 'description' => 'The error message returned because DomainName is set to an invalid value.'], + ['errorCode' => 'IllegalParam.DhcpOptionsSetName', 'errorMessage' => 'The specified DhcpOptionsSetName is invalid.', 'description' => 'DhcpOptionsSetName is set to an invalid value.'], + ['errorCode' => 'IllegalParam.DhcpOptionsSetDescription', 'errorMessage' => 'The specified DhcpOptionsSetDescription is invalid.', 'description' => 'DhcpOptionsSetDescription is set to an invalid value.'], + ['errorCode' => 'QuotaExceeded.RegionDhcpOptionsSet', 'errorMessage' => 'The quota of dhcpOptionsSet in the region is exceeded.', 'description' => 'The number of DHCP options sets reaches the upper limit.'], + ['errorCode' => 'OperationUnsupported.DhcpLeaseTime', 'errorMessage' => 'The DhcpOptionsSet of this region does not support custom LeaseTime.', 'description' => 'DHCP options sets in the region do not support a custom lease time.'], + ['errorCode' => 'IllegalParam.LeaseTime', 'errorMessage' => 'LeaseTime [%s] is illegal.', 'description' => 'The specified LeaseTime parameter is illegal'], + ['errorCode' => 'InvalidRegionId.NotFound', 'errorMessage' => 'The specified RegionId does not exist.', 'description' => 'The specified region does not exist.'], + ], + ], + 'staticInfo' => ['returnType' => 'asynchronous', 'callback' => 'Vpc::2016-04-28::GetDhcpOptionsSet', 'callbackInterval' => 3000, 'maxCallbackTimes' => 10], + 'title' => 'CreateDhcpOptionsSet', + 'description' => '* **CreateDhcpOptionsSet** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call [GetDhcpOptionsSet](~~448820~~) to query the status of the task.'."\n" ."\n" - .'* You cannot repeatedly call the **CreateRouteTable** operation within the specified period of time.'."\n", + .' * If the vSwitch is in the **Pending** state, the DHCP options set is being configured.'."\n" + .' * If the vSwitch is in the **Available** state, the DHCP options set is available.'."\n", 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2025-04-29T07:12:47.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2023-09-27T07:40:56.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-09-21T11:15:54.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-07-05T05:51:48.000Z', 'description' => 'Error codes changed, Request parameters changed'], + ['createdAt' => '2023-05-18T08:53:54.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-03-23T02:20:37.000Z', 'description' => 'Request parameters changed, Response parameters changed'], + ['createdAt' => '2022-10-27T07:35:46.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2021-11-17T09:56:47.000Z', 'description' => 'Request parameters changed'], + ], + 'ramActions' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"DhcpOptionsSetId\\": \\"dopt-o6w0df4epg9zo8isy****\\",\\n \\"RequestId\\": \\"0ED8D006-F706-4D23-88ED-E11ED28DCAC0\\",\\n \\"ResourceGroupId\\": \\"rg-acfmxazb4ph****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n dopt-o6w0df4epg9zo8isy****\\n 0ED8D006-F706-4D23-88ED-E11ED28DCAC0\\n","errorExample":""}]', ], - 'AssociateRouteTable' => [ - 'summary' => 'Associates a custom route table with a vSwitch in the same VPC.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'CreateEnhancedVpnGateway' => [ + 'summary' => 'Use the `CreateEnhancedVpnGateway` API to create an Enhanced VPN Gateway.', + 'methods' => ['post', 'get'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], @@ -9308,703 +6491,450 @@ ], 'operationType' => 'readAndWrite', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'update', - ], + 'systemTags' => ['operationType' => 'create', 'riskType' => 'high', 'chargeType' => 'free', 'autoTest' => true, 'tenantRelevance' => 'tenant'], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the VPC to which the route table belongs.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The ID of the region where you want to create the enhanced VPN gateway.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to get the region ID.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'RouteTableId', + 'name' => 'Name', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the route table.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'vtb-bp145q7glnuzdvzu2****', - ], + 'schema' => ['description' => 'The name of the enhanced VPN gateway. If you do not specify this parameter, the gateway ID is used as the name.'."\n" + ."\n" + .'The name must be 2 to 100 characters long, start with a letter, and not start with http\\:// or https\\://. It can contain only letters, digits, underscores (\\_), hyphens (-), and periods (.).', 'type' => 'string', 'required' => false, 'example' => 'MYVPN', 'title' => ''], + ], + [ + 'name' => 'VpcId', + 'in' => 'query', + 'schema' => ['description' => 'The ID of the VPC where you want to create the enhanced VPN gateway.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'vpc-bp1ub1yt9cvakoelj****', 'title' => ''], ], [ 'name' => 'VSwitchId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the vSwitch.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'vsw-25ncdvfaue4****', - ], + 'schema' => ['description' => 'The ID of the vSwitch to associate with the enhanced VPN gateway.'."\n" + ."\n" + .'-', 'type' => 'string', 'required' => false, 'example' => 'vsw-bp1j5miw2bae9s2vt****', 'title' => ''], + ], + [ + 'name' => 'VpnType', + 'in' => 'query', + 'schema' => ['description' => 'The type of the enhanced VPN gateway. Valid value:'."\n" + ."\n" + .'- **Normal** (default): standard type.', 'type' => 'string', 'required' => false, 'example' => 'Normal', 'title' => ''], ], [ 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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.'."\n" - ."\n" - .'> 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.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '02fb3da4-130e-11e9-8e44-0016e04115b', - ], + 'schema' => ['description' => 'A client token used to ensure request idempotence.'."\n" + ."\n" + .'You can generate this token from your client. Make sure that the token is unique for each request. The client token can contain only ASCII characters.'."\n" + ."\n" + .'> If you do not specify this parameter, the system automatically uses the **RequestId** of the request as the **ClientToken**. Each request may have a different **RequestId**.', 'type' => 'string', 'required' => false, 'example' => '02fb3da4****', 'title' => ''], ], [ - 'name' => 'RegionId', + 'name' => 'NetworkType', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the VPC to which the route table belongs.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The network type of the VPN gateway. Valid value:'."\n" + ."\n" + .'- **public** (default): a public VPN gateway.', 'type' => 'string', 'required' => false, 'example' => 'public', 'title' => ''], + ], + [ + 'name' => 'DisasterRecoveryVSwitchId', + 'in' => 'query', + 'allowEmptyValue' => true, + 'schema' => ['description' => 'The ID of the second vSwitch to associate with the enhanced VPN gateway for high availability.'."\n" + ."\n" + .'-'."\n" + ."\n" + .'- For zone-level disaster recovery, the two vSwitches must be in different availability zones within the same VPC.'."\n" + ."\n" + .'- In regions with only one availability zone, zone-level disaster recovery is not supported. To ensure high availability, specify two different vSwitches from that zone. You can also specify the same vSwitch for both the **VSwitchId** and **DisasterRecoveryVSwitchId** parameters.', 'type' => 'string', 'required' => false, 'example' => 'vsw-p0wiz7obm0tbimu4r****', 'title' => ''], + ], + [ + 'name' => 'ResourceGroupId', + 'in' => 'query', + 'schema' => ['description' => 'The ID of the resource group to which you want to assign the enhanced VPN gateway.'."\n" + ."\n" + .'- You can call the [ListResourceGroups](~~158855~~) operation to query resource group IDs.'."\n" + ."\n" + .'- If you do not specify this parameter, the enhanced VPN gateway is added to the Default Resource Group.'."\n" + ."\n" + .'- Associated IPsec connections are automatically added to the same resource group as the enhanced VPN gateway. You cannot directly change the resource group of an IPsec connection. If you change the resource group of the gateway, the resource group of its associated IPsec connections is also updated.', 'type' => 'string', 'required' => false, 'example' => 'rg-acfmzs372yg****', 'title' => ''], + ], + [ + 'name' => 'GatewayType', + 'in' => 'query', + 'schema' => ['description' => 'The type of the enhanced VPN gateway. Valid value:'."\n" + ."\n" + .'- **Enhanced.SiteToSite**: an enhanced site-to-site VPN gateway that supports only the IPsec feature.', 'type' => 'string', 'required' => true, 'example' => 'Enhanced.SiteToSite', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'description' => 'The response object.', + 'title' => '', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => 'DC668356-BCB4-42FD-9BC3-FA2B2E04B634', - ], + 'VpnGatewayId' => ['description' => 'The ID of the enhanced VPN gateway instance.', 'type' => 'string', 'example' => 'vpn-uf68lxhgr7ftbqr3p****', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'EB2C156A-41F8-49CC-A756-D55AFC8BFD69', 'title' => ''], + 'Name' => ['description' => 'The name of the enhanced VPN gateway.', 'type' => 'string', 'example' => 'MYVPN', 'title' => ''], ], - 'description' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'OperationDenied.CloudBoxVbrEntryExist', - 'errorMessage' => 'The operation is not allowed because the routing table has a route entry for the next hop to the cloud box VBR.', - ], - [ - 'errorCode' => 'OperationDenied.OtherCloudBoxVbrEntryExist', - 'errorMessage' => 'The operation is not allowed because the routing table has a route entry for the next hop that points to a VBR other than this cloud box.', - ], - [ - 'errorCode' => 'ResourceAlreadyAssociated.RouteTable', - 'errorMessage' => 'The resource has already associated with a routetable.', - ], - [ - 'errorCode' => 'OperationDenied.AssociateGatewayRouteTable', - 'errorMessage' => 'The operation is not allowed because gateway route tables cannot be bound to a vSwitch.', - ], - [ - 'errorCode' => 'OperationDenied.SwitchToSystemRouteTable', - 'errorMessage' => 'The associated route tables cannot be directly changed to system route tables.', - ], - [ - 'errorCode' => 'ResourceNotFound.VSwitch', - 'errorMessage' => 'The specified resource of VSwitch is not found.', - ], - [ - 'errorCode' => 'InvalidRouteTableId.NotFound', - 'errorMessage' => 'Specified route table does not exist.', - ], - [ - 'errorCode' => 'OperationDenied.LocalRouteEntryModified', - 'errorMessage' => 'The next hop of a local route is modified.', - ], - [ - 'errorCode' => 'MissingParam.VSwitchId', - 'errorMessage' => 'The parameter VSwitchId is missing.', - ], - [ - 'errorCode' => 'InvalidRegionId.NotFound', - 'errorMessage' => 'Specified value of RegionId is not supported.', - ], - [ - 'errorCode' => 'InvalidParameter.Action', - 'errorMessage' => 'This vpc feature is not supported in this region', - ], - [ - 'errorCode' => 'IncorrectVSwitchStatus', - 'errorMessage' => 'The current status of the virtual switch does not support this operation.', - ], - [ - 'errorCode' => 'Forbidden.VSwitchAlreadyAssociatedRouteTable', - 'errorMessage' => 'The specified virtual switch already associates route table.', - ], - [ - 'errorCode' => 'Forbidden.NotInSameVpc', - 'errorMessage' => 'The specified virtual switch and route table are not in the same VPC.', - ], - [ - 'errorCode' => 'IncorrectStatus.RouteTable', - 'errorMessage' => 'The status of the specified route table is incorrect.', - ], + ['errorCode' => 'InvalidVpcId.NotFound', 'errorMessage' => 'The specified VPC id does not exist in our records.', 'description' => ''], + ['errorCode' => 'InvalidName', 'errorMessage' => 'The specified value of Name not supported.', 'description' => ''], + ['errorCode' => 'InventoryNotEnough', 'errorMessage' => 'The inventory is not enough.', 'description' => ''], + ['errorCode' => 'Resource.QuotaFull', 'errorMessage' => 'The quota of resource is full', 'description' => ''], + ['errorCode' => 'InvalidVSwitchId.NotFound', 'errorMessage' => 'The specified vswitchId is not found.', 'description' => ''], + ['errorCode' => 'OperationFailed.InventoryNotEnough', 'errorMessage' => 'No enough available resource. Try another vswitch with different available zone.', 'description' => ''], + ['errorCode' => 'Forbidden.OperateShareResource', 'errorMessage' => 'Operating shared resources is forbidden.', 'description' => ''], + ['errorCode' => 'OperationFailed.IpNotEnough', 'errorMessage' => 'Operation failed because private ip address of the virtual switch is not enough.', 'description' => ''], + ['errorCode' => 'Forbidden.NoSLRPermission', 'errorMessage' => 'User not authorized to create service linked role.', 'description' => ''], + ['errorCode' => 'OperationFailed.VSwitchConflict', 'errorMessage' => 'The vswitch can\'t create vpn. Try another vswitch.', 'description' => ''], + ['errorCode' => 'OperationFailed.AzNotSupport', 'errorMessage' => 'Current available zone can\'t create vpn. Try another vswitch with different available zone.', 'description' => ''], + ['errorCode' => 'OperationFailed.NetworkTypeNotMatch', 'errorMessage' => 'Create NationalStandard vpn with private networkType is unsupported.', 'description' => ''], + ['errorCode' => 'OperationFailed.SslNotSupport', 'errorMessage' => 'Enable ssl vpn with private networkType is unsupported.', 'description' => 'You cannot enable the SSL feature for a private VPN gateway.'], + ['errorCode' => 'Forbidden.TagKey.Duplicated', 'errorMessage' => 'The specified tag key already exists.', 'description' => 'The tag resources are duplicate.'], + ['errorCode' => 'SizeLimitExceeded.TagNum', 'errorMessage' => 'The maximum number of tags is exceeded.', 'description' => 'The number of tags has reached the upper limit.'], + ['errorCode' => 'InvalidParameter.TagValue', 'errorMessage' => 'The specified parameter TagValue is invalid.', 'description' => 'The error message returned because the specified tag value is invalid.'], + ['errorCode' => 'InvalidParameter.TagKey', 'errorMessage' => 'The specified parameter TagKey is invalid.', 'description' => 'The error message returned because the specified tag key is invalid.'], + ['errorCode' => 'Duplicated.TagKey', 'errorMessage' => 'The specified parameter TagKey is duplicated.', 'description' => 'The error message returned because the specified tag key already exists.'], + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', 'description' => ''], + ['errorCode' => 'InvalidVSwitchId.SecondVswitchNotSupport', 'errorMessage' => 'The available zone of vswitch2 not supported.', 'description' => 'The zone of the secondary vSwitch does not support the feature.'], + ['errorCode' => 'InvalidVSwitchId.FirstVswitchNotSupport', 'errorMessage' => 'The available zone of vswitch1 not supported.', 'description' => 'The zone where the primary vSwitch is located is not supported.'], + ['errorCode' => 'InvalidVSwitchId.VswitchIdShouldDifferent', 'errorMessage' => 'The VSwitch ids should be different.', 'description' => 'The primary zone cannot be the same as the secondary zone.'], + ['errorCode' => 'InvalidVSwitchId.FirstVswitchIpNotEnough', 'errorMessage' => 'The ip of vswitch1 not enough.', 'description' => 'Insufficient number of available IPs in primary vSwitch.'], + ['errorCode' => 'InvalidVSwitchId.SecondVswitchIpNotEnough', 'errorMessage' => 'The ip of vswitch2 not enough.', 'description' => 'Insufficient IP addresses are available in the standby vSwitch.'], + ['errorCode' => 'InvalidVSwitchId.ZoneIdShouldDifferent', 'errorMessage' => 'Two vSwitches should belong to different Availability Zones.', 'description' => 'When you create a dual-tunnel VPN gateway, the two vSwitches that you specify must belong to different zones.'], + ['errorCode' => 'OperationFailed.OpenCdtServiceFirst', 'errorMessage' => 'The operation is failed because of %s.', 'description' => 'The billing method requires CDT billing enabled. Enable CDT billing and try again.'], ], 404 => [ - [ - 'errorCode' => 'InvalidRouteTableId.NotFound', - 'errorMessage' => 'Specified route table does not exist.', - ], - [ - 'errorCode' => 'InvalidVSwitchId.NotFound', - 'errorMessage' => 'Specified VSwitch does not exist.', - ], + ['errorCode' => 'InvalidRegionId.NotFound', 'errorMessage' => 'The specified region is not found during access authentication.', 'description' => 'The specified area is not found during authentication.'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"DC668356-BCB4-42FD-9BC3-FA2B2E04B634\\"\\n}","errorExample":""},{"type":"xml","example":"\\r\\nDC668356-BCB4-42FD-9BC3-FA2B2E04B634\\r\\n","errorExample":"\\n\\n 62172DD5-6BAC-45DF-8D44-xxxxxxx\\n"}]', - 'title' => 'AssociateRouteTable', - 'description' => '**AssociateRouteTable** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call the [DescribeVSwitchAttributes](~~94567~~) operation to query the status of the task:'."\n" + 'staticInfo' => ['returnType' => 'asynchronous', 'callback' => 'Vpc::2016-04-28::DescribeVpnGateway', 'callbackInterval' => 60000, 'maxCallbackTimes' => 100], + 'title' => 'Create an enhanced VPN Gateway', + 'description' => '- Before you create an enhanced VPN gateway, we recommend that you review the [VPN Gateway Usage Limits](https://help.aliyun.com/zh/vpn/sub-product-ipsec-vpn/user-guide/vpn-gateway-instance/?spm=a2c4g.11186623.0.0.6c6919591peeAe).'."\n" ."\n" - .'* If the vSwitch is in the **Pending** state, the route table is being associated with the vSwitch.'."\n" - .'* If the vSwitch is in the **Available** state, the route table is associated with the vSwitch.'."\n", - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'DeleteRouteEntry' => [ - 'summary' => 'Deletes a route entry from a route table of a VRouter or virtual border router (VBR).', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + .'- An enhanced VPN gateway supports only dual-tunnel mode IPsec-VPN connections. When you call the `CreateEnhancedVpnGateway` operation to create a VPN Gateway instance, you must specify the **VSwitchId** and **DisasterRecoveryVSwitchId** parameters in addition to other required parameters.'."\n" + ."\n" + .'- **CreateEnhancedVpnGateway** is an asynchronous operation. After you send a request, the system returns an instance ID and starts creating the enhanced VPN gateway in the background. You can call [DescribeVpnGateway](https://help.aliyun.com/zh/vpn/sub-product-ipsec-vpn/developer-reference/api-vpc-2016-04-28-describevpngateway-vpns?spm=a2c4g.11186623.0.0.6c6919591peeAe) to query the creation status of the enhanced VPN gateway:'."\n" + ."\n" + .' - The **provisioning** state indicates that the gateway is being created.'."\n" + ."\n" + .' - The **active** state indicates that the gateway has been created.', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], + ], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'vpc:CreateEnhancedVpnGateway', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"VpnGatewayId\\": \\"vpn-uf68lxhgr7ftbqr3p****\\",\\n \\"RequestId\\": \\"EB2C156A-41F8-49CC-A756-D55AFC8BFD69\\",\\n \\"Name\\": \\"MYVPN\\"\\n}","type":"json"}]', + ], + 'CreateExpressCloudConnection' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'delete', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeCode' => '37680', - 'abilityTreeNodes' => [ - 'FEATUREvpcJSBF65', - ], - ], + 'systemTags' => ['operationType' => 'create', 'tenantRelevance' => 'publicInformation'], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the route table.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The region ID of the ECC instance.'."\n", 'type' => 'string', 'required' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'RouteTableId', + 'name' => 'Name', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the route table to which the route belongs.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'vtb-2ze3jgygk9bmsj23s****', - ], + 'schema' => ['description' => 'The name of the ECC instance.'."\n" + ."\n" + .'The name must be 2 to 128 characters in length and can contain letters, digits, periods (.), underscores (\\_), and hyphens (-). It must start with a letter but cannot start with `http://` or `https://`.'."\n", 'type' => 'string', 'required' => false, 'example' => 'doctest', 'title' => ''], ], [ - 'name' => 'RouteEntryId', + 'name' => 'Description', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the route that you want to delete.'."\n", - 'type' => 'string', - 'required' => false, - 'docRequired' => false, - 'example' => 'rte-bp1mnnr2al0naomnpv****', - ], + 'schema' => ['description' => 'The description of ECC.'."\n" + ."\n" + .'The description must be 2 to 256 characters in length. It must start with a letter but cannot start with `http://` or `https://`.'."\n", 'type' => 'string', 'required' => false, 'example' => '高速上云服务', 'title' => ''], ], [ - 'name' => 'DestinationCidrBlock', + 'name' => 'PeerCity', 'in' => 'query', - 'schema' => [ - 'description' => 'The destination CIDR block of the route. Only IPv4 CIDR blocks, IPv6 CIDR blocks, and prefix lists are supported.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '47.100.XX.XX/16', - ], + 'schema' => ['description' => 'The city where the data center is located.'."\n", 'type' => 'string', 'required' => false, 'example' => '杭州', 'default' => 'blank', 'title' => ''], ], [ - 'name' => 'NextHopId', + 'name' => 'PeerLocation', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the next hop.'."\n" - ."\n" - .'* To delete a route other than an equal-cost multi-path (ECMP) route, set the **NextHopId** parameter and ignore the **NextHopList** parameter.'."\n" - .'* To delete an ECMP route, set the **NextHopList** parameter and ignore the **NextHopId** parameter.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'ri-2zeo3xzyf38r4urzd****', - ], + 'schema' => ['description' => 'The geographical location of the data center.'."\n" + ."\n" + .'> It must be accurate to house number-floor-room number-server rack number.'."\n", 'type' => 'string', 'required' => true, 'example' => '**市**区/县**路**号**物业或楼宇名称**座**楼层**房间号**机柜号**机柜名称**设备**端口', 'title' => ''], ], [ - 'name' => 'NextHopList', + 'name' => 'IdcSP', 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => 'The list of the next hop of the ECMP route.', - 'type' => 'array', - 'items' => [ - 'description' => 'The information about the next hop of the ECMP route.', - 'type' => 'object', - 'properties' => [ - 'NextHopId' => [ - 'description' => 'The ID of the next hop that is configured for ECMP routing. You can specify information about at most 16 next hops.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'ri-2zeo3xzyf38r43cd****', - ], - 'NextHopType' => [ - 'description' => 'The type of the next hop that is configured for ECMP routing. Set the value to **RouterInterface**. You can specify information about at most 16 next hops.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'RouterInterface', - ], - ], - 'required' => false, - ], - 'required' => false, - 'maxItems' => 8, - ], + 'schema' => ['description' => 'The Internet service provider (ISP) for the data center.'."\n", 'type' => 'string', 'required' => true, 'example' => 'CU', 'title' => ''], ], [ - 'name' => 'DryRun', + 'name' => 'PortType', 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values:'."\n" - ."\n" - .'**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.'."\n" - ."\n" - .'**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.'."\n", - 'type' => 'boolean', - 'required' => false, - ], + 'schema' => ['description' => 'The port of the Express Connect circuit. Valid values:'."\n" + ."\n" + .'* 100Base-T'."\n" + .'* 1000Base-T'."\n" + .'* 1000Base-LX'."\n" + .'* 10GBase-T'."\n" + .'* 10GBase-LR'."\n", 'type' => 'string', 'required' => false, 'example' => '100Base-T', 'title' => ''], + ], + [ + 'name' => 'Bandwidth', + 'in' => 'query', + 'schema' => ['description' => 'The bandwidth for ECC, which corresponds to the bandwidth for the underlying circuit.'."\n" + ."\n" + .'Unit: Mbit/s.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '2', 'title' => ''], + ], + [ + 'name' => 'ContactTel', + 'in' => 'query', + 'schema' => ['description' => 'The phone number of the contact who applies for ECC.'."\n", 'type' => 'string', 'required' => false, 'example' => '132*********', 'title' => ''], + ], + [ + 'name' => 'ContactMail', + 'in' => 'query', + 'schema' => ['description' => 'The email address of the contact who applies for ECC.'."\n", 'type' => 'string', 'required' => false, 'example' => 'XX@example.com', 'title' => ''], + ], + [ + 'name' => 'IDCardNo', + 'in' => 'query', + 'schema' => ['description' => 'The ID card number of the contact who applies for ECC.'."\n", 'type' => 'string', 'required' => false, 'example' => '32*****************', 'default' => 'blank', 'title' => ''], + ], + [ + 'name' => 'RedundantEccId', + 'in' => 'query', + 'schema' => ['description' => 'The ID of the standby Express Connect circuit.'."\n", 'type' => 'string', 'required' => false, 'example' => 'ecc-d****', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => 'The returned information.', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => '0ED8D006-F706-4D23-88ED-E11ED28DCAC0', - ], + 'EccId' => ['description' => 'The ID of the ECC instance.'."\n", 'type' => 'string', 'example' => 'ecc-jg************', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => 'C004F022-1CC2-4958-9937-675513A2CD7E', 'title' => ''], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'MissingParameter', - 'errorMessage' => 'Miss mandatory parameter.', - ], - [ - 'errorCode' => 'IncorrcetRouteEntryStatus', - 'errorMessage' => 'Some route entry status blocked this operation.', - ], - [ - 'errorCode' => 'InvalidCidrBlock.Malformed', - 'errorMessage' => 'Specified CIDR block is not valid.', - ], - [ - 'errorCode' => 'OperationDenied', - 'errorMessage' => 'Specified operation is denied as route entry type is system.', - ], - [ - 'errorCode' => 'InvalidRouteEntry.NotFound', - 'errorMessage' => 'Route entry not exists.', - ], - [ - 'errorCode' => 'InvalidVRouter.NotFound', - 'errorMessage' => 'vRouter not exists.', - ], - [ - 'errorCode' => 'IncorrectRouteEntryStatus', - 'errorMessage' => 'Some route entry status blocked this operation.', - ], - [ - 'errorCode' => 'Forbbiden', - 'errorMessage' => 'Specified RouteEntry cannot allowed delete by openApi.', - ], - [ - 'errorCode' => 'InvalidNextHop', - 'errorMessage' => 'Specified nexthop and nexthop list cannot both null.', - ], - [ - 'errorCode' => 'InvalidRouteEntry', - 'errorMessage' => 'Specified routeEntry not exist.', - ], - [ - 'errorCode' => 'Forbidden.VRouterNotFound', - 'errorMessage' => 'pecified virtual switch is not found during access authentication.', - ], - [ - 'errorCode' => 'TaskConflict', - 'errorMessage' => 'The operation is too frequent, TaskConflict.', - ], - [ - 'errorCode' => 'InvalidRouteEntryId.NotFound', - 'errorMessage' => 'Specified RouteEntryId does not exist.', - ], - [ - 'errorCode' => 'IncorrectVpcStatus', - 'errorMessage' => 'Current VPC status does not support this operation.', - ], - [ - 'errorCode' => 'InvalidVpnInstanceId.NotFound', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'ParamExclusive.RouteEntryIdAndRouteTableIdOrDestCidrBlock', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'InvalidNextHopList.Size', - 'errorMessage' => 'Nexthop list size should be between 2 and 16', - ], - [ - 'errorCode' => 'ParamExclusive.NextHopIdAndList', - 'errorMessage' => 'NextHopId and NextHopList cannot both be not null.', - ], - [ - 'errorCode' => 'OperationFailed.DeleteMultiScopeEntry', - 'errorMessage' => 'Multi or ecmp scope must delete with force.', - ], - [ - 'errorCode' => 'OperationFailed.DistibuteLock', - 'errorMessage' => 'Distibute lock fail.', - ], - [ - 'errorCode' => 'OperationDenied.DeleteManagedRouteEntry', - 'errorMessage' => 'The operation is not allowed because of route entry is managed.', - ], - [ - 'errorCode' => 'OperationDenied.RouteTableTypeNotPermitted', - 'errorMessage' => 'The operation is not allowed because the type of route table is not permitted.', - ], - [ - 'errorCode' => 'IncorrectStatus.VpcRouteEntry', - 'errorMessage' => 'The status of the specified routeEntry is invalid.', - ], - [ - 'errorCode' => 'OperationDenied.NextHopNotChanged', - 'errorMessage' => 'The operation is not allowed because of NextHopNotChanged.', - ], - [ - 'errorCode' => 'OperationDenied.DeleteGatewayEndpointRoute', - 'errorMessage' => 'The operation is not allowed to delete route entry pointing gateway endpoint..', - ], - [ - 'errorCode' => 'IncorrectStatus.PrefixList', - 'errorMessage' => 'The status of prefixList is incorrect.', - ], - [ - 'errorCode' => 'InvalidCidrBlock', - 'errorMessage' => 'Specified CIDR block is not valid.', - ], - [ - 'errorCode' => 'OperationDenied.VbrAttachEcrInMiddleStatus', - 'errorMessage' => 'The operation is not allowed because of VBR attach or detach ECR in middle status.', - ], - [ - 'errorCode' => 'UnsupportedFeature.NextHopType', - 'errorMessage' => 'The operation is not allowed because the NextHopType of specified RouteEntry is modified from Local type.', - ], - [ - 'errorCode' => 'ResourceNotFound.PrefixList', - 'errorMessage' => 'The specified resource of prefixList is not found.', - ], + ['errorCode' => 'IllegalParam.AliUid', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'MissingParam.Bid', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'IllegalParam.RegionNo', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'IllegalParam.Bandwith', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'IllegalParam.ContactTel', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'IllegalParam.ContactMail', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'IllegalParam.Description', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'IllegalParam.IDCardNo', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'IllegalParam.PortType', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'IllegalParam.Name', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'IllegalParam.PeerCity', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'IllegalParam.PeerLocation', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'IllegalParam.ServiceProvider', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'IllegalParam.RedundantEccId', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'IllegalParam.IdcSP', 'errorMessage' => '%s', 'description' => ''], ], - 404 => [ - [ - 'errorCode' => 'InvalidRouteTableId.NotFound', - 'errorMessage' => 'Specified route table does not exist.', - ], - [ - 'errorCode' => 'InvalidVpcId.NotFound', - 'errorMessage' => 'Specified value of VpcId is not found in our record.', - ], - [ - 'errorCode' => 'ResourceNotFound.GatewayLoadBalancerEndpoint', - 'errorMessage' => 'GatewayLoadBalancerEndpoint instance not found.', + ], + 'title' => 'CreateExpressCloudConnection', + 'summary' => 'Creates an Express Cloud Connect (ECC) instance.', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'vpc:CreateExpressCloudConnection', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'All Resource', 'arn' => '*'], + ], ], ], - 500 => [ - [ - 'errorCode' => 'Vpc.Error', - 'errorMessage' => 'error code 500,Internal server error.', - ], - [ - 'errorCode' => 'Internal.Error', - 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', - ], - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', - ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"EccId\\": \\"ecc-jg************\\",\\n \\"RequestId\\": \\"C004F022-1CC2-4958-9937-675513A2CD7E\\"\\n}","errorExample":""},{"type":"xml","example":"\\n ecc-bp1t9osmuln1*******\\n C004F022-1CC2-4958-9937-675513A2CD7E\\n","errorExample":""}]', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CreateExpressCloudConnection'], ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"0ED8D006-F706-4D23-88ED-E11ED28DCAC0\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 0ED8D006-F706-4D23-88ED-E11ED28DCAC0\\n","errorExample":""}]', - 'title' => 'DeleteRouteEntry', - 'description' => 'When you call this operation, take note of the following items:'."\n" - ."\n" - .'* You can delete only routes that are in the **Available** state.'."\n" - ."\n" - .'* You cannot delete a route entry of a virtual private cloud (VPC) in which a vSwitch or another route entry is being created or deleted.'."\n" - ."\n" - .'* Before you call this operation to delete a route of a VBR route table, call the [DescribeRouteEntryList](~~138148~~) operation to query the **NextHopId** of the route first.'."\n" - ."\n" - .'* **DeleteRouteEntry** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call the [DescribeRouteEntryList](~~138148~~) operation to query the status of the task.'."\n" - ."\n" - .' * If the route is in the **Deleting** state, the route is being deleted.'."\n" - .' * If you cannot query the route entry, the route entry is deleted.'."\n" - ."\n" - .'* You cannot repeatedly call the **DeleteRouteEntry** operation to delete a route from the route table of a vRouter or a VBR within the specified period of time.'."\n", - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', ], - 'DeleteRouteEntries' => [ - 'summary' => 'Deletes multiple custom route entries at a time.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'CreateExpressConnectTrafficQos' => [ + 'summary' => 'Calls the CreateExpressConnectTrafficQos operation to create a Quality of Service (QoS) policy for Express Connect.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'write', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'delete', - 'riskType' => 'none', - 'chargeType' => 'free', - 'tenantRelevance' => 'publicInformation', - ], + 'systemTags' => ['operationType' => 'create', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the route table.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The region ID of the QoS policy.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the region ID.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-shanghai', 'title' => ''], ], [ - 'name' => 'RegionId', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the route table.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'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.'."\n" + ."\n" + .'> If you do not specify this parameter, the system automatically uses the **RequestId** value as the **ClientToken** value. The **RequestId** value may be different for each API request.', 'type' => 'string', 'required' => false, 'docRequired' => true, 'example' => '123e4567-e89b-12d3-a456-426655440000', 'title' => ''], ], [ - 'name' => 'RouteEntries', + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'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.'."\n" + ."\n" + .'> If you do not specify this parameter, the system automatically uses the **RequestId** value as the **ClientToken** value. The **RequestId** value may be different for each API request.', 'type' => 'string', 'required' => false, 'docRequired' => true, 'example' => '123e4567-e89b-12d3-a456-426655440000', 'title' => ''], + ], + [ + 'name' => 'QosName', + 'in' => 'query', + 'schema' => ['title' => '', 'description' => 'The name of the QoS policy.'."\n" + ."\n" + .'The name must be 0 to 128 characters in length and cannot start with `http://` or `https://`.', 'type' => 'string', 'required' => false, 'example' => 'qos-test'], + ], + [ + 'name' => 'QosDescription', + 'in' => 'query', + 'schema' => ['title' => '', 'description' => 'The description of the QoS policy.'."\n" + ."\n" + .'The description must be 0 to 256 characters in length and cannot start with `http://` or `https://`.', 'type' => 'string', 'required' => false, 'example' => 'qos-test'."\n"], + ], + [ + 'name' => 'ResourceGroupId', + 'in' => 'query', + 'schema' => ['description' => 'The resource group ID.', 'type' => 'string', 'required' => false, 'example' => 'rg-acfmxazfdgdg****', 'title' => ''], + ], + [ + 'name' => 'Tags', 'in' => 'query', 'style' => 'repeatList', 'schema' => [ - 'description' => 'The information about the routes that you want to delete.'."\n", + 'description' => 'The tags of the resource.', 'type' => 'array', 'items' => [ - 'description' => '', + 'description' => 'The tag.', 'type' => 'object', 'properties' => [ - 'RouteTableId' => [ - 'description' => 'The ID of the route table to which the routes to be deleted belongs. You can specify up to 50 route table IDs.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'vtb-2ze3jgygk9bmsj23s****', - ], - 'RouteEntryId' => [ - 'description' => 'The ID of the route that you want to delete. You can specify up to 50 route IDs.'."\n" - ."\n" - .'> If **RouteEntryId** is not specified, **DstCidrBlock** and **NextHop** are required.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'rte-bp1mnnr2al0naomnpv****', - ], - 'DstCidrBlock' => [ - 'description' => 'The destination CIDR block of the route that you want to delete. IPv4 and IPv6 CIDR blocks are supported. You can specify up to 50 destination CIDR blocks.'."\n" - ."\n" - .'> If **RouteEntryId** is not specified, **DstCidrBlock** and **NextHop** are required.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '47.100.XX.XX/24', - ], - 'NextHop' => [ - 'description' => 'The ID of the next hop that you want to delete. You can specify up to 50 next hop IDs.'."\n" - ."\n" - .'> If **RouteEntryId** is not specified, **DstCidrBlock** and **NextHop** are required.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'i-j6c2fp57q8rr4jlu****', - ], + 'Key' => ['description' => 'The tag key of the resource. You must specify at least 1 tag key and can specify at most 20 tag keys. The tag key cannot be an empty string.'."\n" + ."\n" + .'The tag key can be up to 128 characters in length, and cannot start with aliyun or acs:, or contain http:// or https://.', 'type' => 'string', 'required' => false, 'example' => 'FinanceDept', 'title' => ''], + 'Value' => ['description' => 'The tag value of the resource. You can specify at most 20 tag values. The tag value can be an empty string.'."\n" + ."\n" + .'The tag value can be up to 128 characters in length, and cannot start with aliyun or acs:, or contain http:// or https://.', 'type' => 'string', 'required' => false, 'example' => 'FinanceJoshua', 'title' => ''], ], 'required' => false, + 'title' => '', + 'example' => '', ], 'required' => false, - 'maxItems' => 200, - ], - ], - [ - 'name' => 'DryRun', - 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to perform a dry run, without performing the actual request. Valid values:'."\n" - ."\n" - .'* **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.'."\n" - .'* **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.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', + 'maxItems' => 20, + 'title' => '', + 'example' => '', ], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => 'The returned data.'."\n", + 'description' => 'The response parameters.', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '0ED8D006-F706-4D23-88ED-E11ED28DCAC0', - ], - 'SuccessCount' => [ - 'description' => 'The number of route entries that were deleted.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '2', - ], - 'FailedCount' => [ - 'description' => 'The number of route entries that failed to be deleted.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '2', - ], - 'FailedRouteEntries' => [ - 'description' => 'The information about the route entry that failed to be deleted.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'RouteEntryId' => [ - 'description' => 'The ID of the route entry that failed to be deleted.'."\n", - 'type' => 'string', - 'example' => 'rte-bp1mnnr2al0naomnpv****', - ], - 'DstCidrBlock' => [ - 'description' => 'The destination CIDR block of the route entry that failed to be deleted. IPv4 and IPv6 CIDR blocks are supported.'."\n", - 'type' => 'string', - 'example' => '47.100.XX.XX/24', - ], - 'NextHop' => [ - 'description' => 'The ID of the next hop that failed to be deleted.'."\n", - 'type' => 'string', - 'example' => 'i-j6c2fp57q8rr4jlu****', - ], - 'FailedCode' => [ - 'description' => 'The error code.'."\n", - 'type' => 'string', - 'example' => 'VPC_ROUTER_ENTRY_NOT_EXIST', - ], - 'FailedMessage' => [ - 'description' => 'The error message.'."\n", - 'type' => 'string', - 'example' => 'vRouterEntry not exists', - ], - ], - ], - ], + 'RequestId' => ['title' => '', 'description' => 'The request ID.', 'type' => 'string', 'example' => 'DC668356-BCB4-42FD-9BC3-FA2B2E04B634'], + 'QosId' => ['title' => '', 'description' => 'The QoS policy ID.', 'type' => 'string', 'example' => 'qos-2giu0a6vd5x0mv****'], ], + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'DryRunOperation', - 'errorMessage' => 'Request validation has been passed with DryRun flag set.', - ], - [ - 'errorCode' => 'TaskConflict', - 'errorMessage' => 'The operation is too frequent. Please wait a moment and try again.', - ], + ['errorCode' => 'IllegalParam.%s', 'errorMessage' => 'The param of %s is illegal.', 'description' => 'The parameter is invalid.'], + ['errorCode' => 'OperationUnsupported.Qos', 'errorMessage' => 'QoS is unsupported.', 'description' => 'Current user does not support creating QoS, please contact Business Manager'], + ['errorCode' => 'QuotaExceeded.Qos', 'errorMessage' => 'The quota of QoS is exceeded.', 'description' => 'The number of QoS policies for the current user exceeds the limit. Please contact the business manager for resolution.'], ], ], - 'staticInfo' => [ - 'returnType' => 'asynchronous', - 'callback' => 'Vpc::2016-04-28::DescribeRouteEntryList', - 'callbackInterval' => 3, - 'maxCallbackTimes' => 10, - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"0ED8D006-F706-4D23-88ED-E11ED28DCAC0\\",\\n \\"SuccessCount\\": 2,\\n \\"FailedCount\\": 2,\\n \\"FailedRouteEntries\\": [\\n {\\n \\"RouteEntryId\\": \\"rte-bp1mnnr2al0naomnpv****\\",\\n \\"DstCidrBlock\\": \\"47.100.XX.XX/24\\",\\n \\"NextHop\\": \\"i-j6c2fp57q8rr4jlu****\\",\\n \\"FailedCode\\": \\"VPC_ROUTER_ENTRY_NOT_EXIST\\",\\n \\"FailedMessage\\": \\"vRouterEntry not exists\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\n 0ED8D006-F706-4D23-88ED-E11ED28DCAC0\\n 2\\n 2\\n \\n rte-bp1mnnr2al0naomnpv****\\n 47.100.XX.XX/24\\n i-j6c2fp57q8rr4jlu****\\n VPC_ROUTER_ENTRY_NOT_EXIST\\n vRouterEntry not exists\\n \\n","errorExample":""}]', - 'title' => 'DeleteRouteEntries', - 'description' => 'When you call this operation, take note of the following items:'."\n" + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'Create an express connect qoS policy', + 'description' => '- The Express Connect QoS feature is currently in invitational preview. To call this operation, contact your account manager to be added to the whitelist.'."\n" ."\n" - .'* You can delete only routes that are in the **Available** state.'."\n" - ."\n" - .'* You cannot delete a route of a virtual private cloud (VPC) in which a vSwitch or another route is being created or deleted.'."\n" - ."\n" - .'* **DeleteRouteEntries** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call the [DescribeRouteEntryList](~~138148~~) operation to query the status of the task.'."\n" - ."\n" - .' * If the route is in the **Deleting** state, the route is being deleted.'."\n" - .' * If you cannot query the route, the route is deleted.'."\n" - ."\n" - .'* You cannot repeatedly call **DeleteRouteEntries** within a specific period of time.'."\n", - ], - 'DeleteRouteTable' => [ - 'summary' => 'Deletes a custom route table.', - 'methods' => [ - 'post', - 'get', + .'- The number of QoS policies that each user can create is subject to a quota limit. To increase the quota, contact your account manager.', + 'changeSet' => [ + ['createdAt' => '2024-12-18T07:44:11.000Z', 'description' => 'Request parameters changed'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CreateExpressConnectTrafficQos'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'vpc:CreateExpressConnectTrafficQos', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'TrafficQos', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:TrafficQos/*'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"DC668356-BCB4-42FD-9BC3-FA2B2E04B634\\",\\n \\"QosId\\": \\"qos-2giu0a6vd5x0mv****\\"\\n}","type":"json"}]', + ], + 'CreateExpressConnectTrafficQosQueue' => [ + 'summary' => 'Creates a QoS queue for Express Connect.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -10012,47 +6942,72 @@ ], 'operationType' => 'write', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'delete', - 'riskType' => 'none', - 'chargeType' => 'free', - 'autoTest' => true, - 'tenantRelevance' => 'publicInformation', - ], + 'systemTags' => ['operationType' => 'create', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the virtual private cloud (VPC) to which the custom route table belongs.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The region ID of the QoS policy.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the region ID.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-shanghai'."\n", 'title' => ''], ], [ - 'name' => 'RouteTableId', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the custom route table.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'vtb-bp145q7glnuzdvzu2****', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'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.'."\n" + ."\n" + .'> If you do not specify this parameter, the system automatically uses the **RequestId** of the API request as the **ClientToken**. The **RequestId** may be different for each API request.', 'type' => 'string', 'required' => false, 'docRequired' => true, 'example' => '0c593ea1-3bea-11e9-b96b-88e9fe637760', 'title' => ''], ], [ - 'name' => 'RegionId', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the virtual private cloud (VPC) to which the custom route table belongs.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'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.'."\n" + ."\n" + .'> If you do not specify this parameter, the system automatically uses the **RequestId** of the API request as the **ClientToken**. The **RequestId** may be different for each API request.', 'type' => 'string', 'required' => false, 'docRequired' => true, 'example' => '0c593ea1-3bea-11e9-b96b-88e9fe637760', 'title' => ''], + ], + [ + 'name' => 'QueueName', + 'in' => 'query', + 'schema' => ['title' => '', 'description' => 'The name of the QoS queue.'."\n" + ."\n" + .'The name must be 0 to 128 characters in length and cannot start with `http://` or `https://`.', 'type' => 'string', 'required' => false, 'example' => 'qos-queue-test'], + ], + [ + 'name' => 'QueueDescription', + 'in' => 'query', + 'schema' => ['title' => '', 'description' => 'The description of the QoS queue.'."\n" + ."\n" + .'The description must be 0 to 256 characters in length and cannot start with `http://` or `https://`.', 'type' => 'string', 'required' => false, 'example' => 'qos-queue-test'."\n"], + ], + [ + 'name' => 'QosId', + 'in' => 'query', + 'schema' => ['description' => 'The ID of the QoS policy.', 'type' => 'string', 'required' => true, 'example' => 'qos-2giu0a6vd5x0mv****', 'title' => ''], + ], + [ + 'name' => 'QueueType', + 'in' => 'query', + 'schema' => ['description' => 'The type of the QoS queue. Valid values:'."\n" + ."\n" + .'- **High**: high-priority queue.'."\n" + ."\n" + .'- **Medium**: lower-priority queue.'."\n" + ."\n" + .'- **Default**: default priority queue.'."\n" + ."\n" + .'> The default priority queue cannot be created.', 'type' => 'string', 'required' => true, 'example' => 'High', 'title' => ''], + ], + [ + 'name' => 'BandwidthPercent', + 'in' => 'query', + 'schema' => ['description' => 'The bandwidth percentage of the QoS queue.'."\n" + ."\n" + .'* When the QoS queue type is **Medium**, this parameter is required. Valid values: 1 to 100.'."\n" + .'* When the QoS queue type is **Default**, this parameter is set to "-".', 'type' => 'string', 'required' => false, 'example' => '100', 'title' => ''], ], ], 'responses' => [ @@ -10060,393 +7015,417 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => 'DC668356-BCB4-42FD-9BC3-FA2B2E04B634', - ], + 'RequestId' => ['title' => '', 'description' => 'The request ID.', 'type' => 'string', 'example' => '4CF20CC7-D1FC-425B-A15B-DF7C8E2131A7'], + 'QosId' => ['title' => '', 'description' => 'The ID of the QoS policy.', 'type' => 'string', 'example' => 'qos-2giu0a6vd5x0mv****'], + 'QueueId' => ['description' => 'The ID of the QoS queue.', 'type' => 'string', 'example' => 'qos-queue-9nyx2u7n71s2rc****'."\n", 'title' => ''], ], 'description' => '', + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'OperationDenied.GatewayAssociated', - 'errorMessage' => 'You cannot delete the specified route table because it still associates with gateway.', - ], - [ - 'errorCode' => 'MissingParam.RouteTableId', - 'errorMessage' => 'The param of RouteTableId is missing.', - ], - [ - 'errorCode' => 'IncorrectRouteTableType', - 'errorMessage' => 'Route table can be deleted by this action only when it\'s type is custom.', - ], - [ - 'errorCode' => 'IncorrectVSwitchStatus', - 'errorMessage' => 'The current virtual switch status does not support this operation.', - ], - [ - 'errorCode' => 'IncorrectRouteTableStatus.RouteEntryExist', - 'errorMessage' => 'You cannot delete the specified route table because it still has custom route entry.', - ], - [ - 'errorCode' => 'IncorrectStatus.cbnStatus', - 'errorMessage' => 'Current CBN status does not support this operation.', - ], - [ - 'errorCode' => 'InvalidRegionId.NotFound', - 'errorMessage' => 'Specified value of RegionId is not supported.', - ], - [ - 'errorCode' => 'InvalidParameter.Action', - 'errorMessage' => 'This vpc feature is not supported in this region', - ], - [ - 'errorCode' => 'IncorrectRouteTableStatus', - 'errorMessage' => 'The current status of the route table does not support this operation.', - ], - [ - 'errorCode' => 'DependencyViolation.RouteEntry', - 'errorMessage' => 'Vpc route table has route entry.', - ], + ['errorCode' => 'IllegalParam.%s', 'errorMessage' => 'The param of %s is illegal.', 'description' => 'The parameter is invalid.'], + ['errorCode' => 'QuotaExceeded.QosMediumPriorityQueueCount', 'errorMessage' => 'The quota of QosMediumPriorityQueueCount is exceeded.', 'description' => 'The number of normal priority queues in the QoS policy exceeds the specification. If you need to increase the quota, contact the business manager.'], + ['errorCode' => 'QuotaExceeded.QosHighPriorityQueueCount', 'errorMessage' => 'The quota of QosHighPriorityQueueCount is exceeded.', 'description' => 'The number of high-priority queues in the QoS policy exceeds the specification. If you need to increase the quota, contact the business manager.'], + ['errorCode' => 'QuotaExceeded.QosMediumPriorityQueueBandwidthPercent', 'errorMessage' => 'The quota of QosMediumPriorityQueueBandwidthPercent is exceeded.', 'description' => 'The sum of the bandwidth percentages of the normal priority queues in the QoS policy exceeds the specification.'], + ['errorCode' => 'IncorrectStatus.Qos', 'errorMessage' => 'The status of QoS is incorrect.', 'description' => 'The status of the QoS policy is abnormal and the operation cannot be performed. Try again later.'], + ['errorCode' => 'EcQoSConflict', 'errorMessage' => 'The specified QoS is conflict with other QoS.', 'description' => 'The current QoS configuration conflicts with other configurations. Please try again later.'], ], ], - 'staticInfo' => [ - 'returnType' => 'asynchronous', - 'callback' => 'Vpc::2016-04-28::DeleteRouteTable', - 'callbackInterval' => 3000, - 'maxCallbackTimes' => 10, - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"DC668356-BCB4-42FD-9BC3-FA2B2E04B634\\"\\n}","errorExample":"{\\n \\"RequestId\\": \\"62172DD5-6BAC-45DF-8D44-xxxxxxxx\\"\\n}"},{"type":"xml","example":"\\n\\n 62172DD5-6BAC-45DF-8D44-xxxxxxx\\n","errorExample":"\\n\\n 62172DD5-6BAC-45DF-8D44-xxxxxxx\\n"}]', - 'title' => 'DeleteRouteTable', - 'description' => '## [](#)Description'."\n" + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'Create an express connect qoS queue', + 'description' => '- The default queue cannot be created.'."\n" ."\n" - .'* **DeleteRouteTable** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call the [DescribeRouteTableList](~~87602~~) operation to query the status of the task.'."\n" + .'- The number of high-priority queues has an upper limit. To increase the quota, contact your account manager.'."\n" ."\n" - .' * If the custom route table is in the **Deleting** state, the custom route table is being deleted.'."\n" - .' * If you cannot query the custom route table, the custom route table is deleted.'."\n" + .'- The number of lower-priority queues has an upper limit. To increase the quota, contact your account manager.'."\n" ."\n" - .'* You cannot repeatedly call the **DeleteRouteTable** operation to delete a custom route table within the specified period of time.'."\n", - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'UnassociateRouteTable' => [ - 'summary' => 'Disassociates a route table from a vSwitch.', - 'methods' => [ - 'post', - 'get', + .'- The total bandwidth percentage of all lower-priority queues has an upper limit.', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CreateExpressConnectTrafficQosQueue'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'vpc:CreateExpressConnectTrafficQosQueue', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"4CF20CC7-D1FC-425B-A15B-DF7C8E2131A7\\",\\n \\"QosId\\": \\"qos-2giu0a6vd5x0mv****\\",\\n \\"QueueId\\": \\"qos-queue-9nyx2u7n71s2rc****\\\\n\\"\\n}","type":"json"}]', + ], + 'CreateExpressConnectTrafficQosRule' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'write', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'update', - 'riskType' => 'none', - 'chargeType' => 'free', - ], + 'systemTags' => ['operationType' => 'create', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the virtual private cloud (VPC) to which the custom route table belongs.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The region ID of the QoS policy.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-shanghai'."\n", 'title' => ''], ], [ - 'name' => 'RouteTableId', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the route table.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'vtb-bp145q7glnuzdvzu2****', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'You can use the client to generate a token, but you must make sure that the token is unique among different requests. The token can contain only ASCII characters.'."\n" + ."\n" + .'> 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.'."\n", 'type' => 'string', 'required' => false, 'docRequired' => true, 'example' => '123e4567-e89b-12d3-a456-426655440000', 'title' => ''], ], [ - 'name' => 'VSwitchId', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the vSwitch from which you want to disassociate the route table.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'vsw-25naue4****', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'You can use the client to generate a token, but you must make sure that the token is unique among different requests. The token can contain only ASCII characters.'."\n" + ."\n" + .'> 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.'."\n", 'type' => 'string', 'required' => false, 'docRequired' => true, 'example' => '123e4567-e89b-12d3-a456-426655440000', 'title' => ''], ], [ - 'name' => 'ClientToken', + 'name' => 'QosId', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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.'."\n" - ."\n" - .'> 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.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '02fb3da4-130e-11e9-8e44-0016e04115b', - ], + 'schema' => ['title' => '', 'description' => 'The ID of the QoS policy.'."\n", 'type' => 'string', 'required' => true, 'example' => 'qos-2giu0a6vd5x0mv****'], ], [ - 'name' => 'RegionId', + 'name' => 'QueueId', + 'in' => 'query', + 'schema' => ['title' => '', 'description' => 'The ID of the QoS queue.'."\n", 'type' => 'string', 'required' => true, 'example' => 'qos-queue-9nyx2u7n71s2rc****'], + ], + [ + 'name' => 'Priority', + 'in' => 'query', + 'schema' => ['description' => 'The priority of the QoS rule. Valid values: **1** to **9000**. A larger value indicates a higher priority. The priority of each QoS rule must be unique in the same QoS policy.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '1', 'title' => ''], + ], + [ + 'name' => 'Protocol', 'in' => 'query', 'schema' => [ - 'description' => 'The region ID of the virtual private cloud (VPC) to which the custom route table belongs.'."\n" + 'description' => 'The protocol of the QoS rule. Valid values:'."\n" ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", + .'* **ALL**'."\n" + .'* **ICMP(IPv4)**'."\n" + .'* **ICMPv6(IPv6)**'."\n" + .'* **TCP**'."\n" + .'* **UDP**'."\n" + .'* **GRE**'."\n" + .'* **SSH**'."\n" + .'* **Telnet**'."\n" + .'* **HTTP**'."\n" + .'* **HTTPS**'."\n" + .'* **MS SQL**'."\n" + .'* **Oracle**'."\n" + .'* **MySql**'."\n" + .'* **RDP**'."\n" + .'* **PostgreSQL**'."\n" + .'* **Redis**'."\n", 'type' => 'string', 'required' => true, - 'example' => 'cn-hangzhou', + 'enumValueTitles' => [], + 'example' => 'ALL', + 'title' => '', ], ], + [ + 'name' => 'SrcCidr', + 'in' => 'query', + 'schema' => ['description' => 'The source IPv4 CIDR block that matches the QoS rule traffic.'."\n" + ."\n" + .'> When this parameter is unavailable, specify **SrcIPv6Cidr** or **DstIPv6Cidr**.'."\n", 'type' => 'string', 'required' => false, 'example' => '1.1.**.**/24'."\n", 'title' => ''], + ], + [ + 'name' => 'DstCidr', + 'in' => 'query', + 'schema' => ['description' => 'The destination IPv4 CIDR block that matches the QoS rule traffic.'."\n" + ."\n" + .'> When this parameter is unavailable, specify **SrcIPv6Cidr** or **DstIPv6Cidr**.'."\n", 'type' => 'string', 'required' => false, 'example' => '1.1.**.**/24'."\n", 'title' => ''], + ], + [ + 'name' => 'SrcIPv6Cidr', + 'in' => 'query', + 'schema' => ['description' => 'The source IPv6 CIDR block that matches the QoS rule traffic.'."\n" + ."\n" + .'> When this parameter is unavailable, specify **SrcCidr** or **DstCidr**.'."\n", 'type' => 'string', 'required' => false, 'example' => '2001:0db8:1234:****::/64'."\n", 'title' => ''], + ], + [ + 'name' => 'DstIPv6Cidr', + 'in' => 'query', + 'schema' => ['description' => 'The destination IPv6 CIDR block that matches the QoS rule traffic.'."\n" + ."\n" + .'> When this parameter is unavailable, specify **SrcCidr** or **DstCidr**.'."\n", 'type' => 'string', 'required' => false, 'example' => '2001:0db8:1234:****::/64', 'title' => ''], + ], + [ + 'name' => 'SrcPortRange', + 'in' => 'query', + 'schema' => ['description' => 'The range of source ports that match the QoS rule traffic. Valid values: **0** to **65535**. If the traffic does not match, the value is -1. You can specify only one port. The start port number must be the same as the end port number.'."\n", 'type' => 'string', 'required' => false, 'example' => '-1/-1'."\n", 'title' => ''], + ], + [ + 'name' => 'DstPortRange', + 'in' => 'query', + 'schema' => ['description' => 'The range of destination ports that match the QoS rule traffic. Valid values: **0** to **65535**. If the traffic does not match, the value is -1. You can specify only one port. The start port number must be the same as the end port number. Different protocols correspond to different ports. Valid values:'."\n" + ."\n" + .'* **ALL** (uneditable): -1/-1.'."\n" + .'* **ICMP(IPv4)** (uneditable): -1/-1.'."\n" + .'* **ICMPv6(IPv6)** (uneditable): -1/-1.'."\n" + .'* **TCP** (editable): -1/-1.'."\n" + .'* **UDP** (editable): -1/-1.'."\n" + .'* **GRE** (uneditable): -1/-1.'."\n" + .'* **SSH** (uneditable): 22/22.'."\n" + .'* **Telnet** (uneditable): 23/23.'."\n" + .'* **HTTP** (uneditable): 80/80.'."\n" + .'* **HTTPS** (uneditable): 443/443.'."\n" + .'* **MS SQL** (uneditable): 1443/1443.'."\n" + .'* **Oracle** (uneditable): 1521/1521.'."\n" + .'* **MySql** (uneditable): 3306/3306.'."\n" + .'* **RDP** (uneditable): 3389/3389.'."\n" + .'* **PostgreSQL** (uneditable): 5432/5432.'."\n" + .'* **Redis** (uneditable): 6379/6379.'."\n", 'type' => 'string', 'required' => false, 'example' => '-1/-1'."\n", 'title' => ''], + ], + [ + 'name' => 'MatchDscp', + 'in' => 'query', + 'schema' => ['description' => 'The DSCP value that matches the QoS rule traffic. Valid values: **0** to **63**. If no value is matched, the value is -1.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1', 'title' => ''], + ], + [ + 'name' => 'RemarkingDscp', + 'in' => 'query', + 'schema' => ['description' => 'The new DSCP value. Valid values: **0** to **63**. If you do not change the value, set the value to -1.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1', 'title' => ''], + ], + [ + 'name' => 'RuleName', + 'in' => 'query', + 'schema' => ['description' => 'The name of the QoS rule.'."\n" + ."\n" + .'The name must be 0 to 128 characters in length and cannot start with `http://` or `https://`.'."\n", 'type' => 'string', 'required' => false, 'example' => 'qos-rule-test'."\n", 'title' => ''], + ], + [ + 'name' => 'RuleDescription', + 'in' => 'query', + 'schema' => ['description' => 'The description of the QoS rule.'."\n" + ."\n" + .'The description must be 0 to 256 characters in length and cannot start with `http://` or `https://`.'."\n", 'type' => 'string', 'required' => false, 'example' => 'qos-rule-test'."\n", 'title' => ''], + ], ], 'responses' => [ 200 => [ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '62172DD5-6BAC-45DF-8D44-xxxxxxx', - ], + 'RequestId' => ['title' => '', 'description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '606998F0-B94D-48FE-8316-ACA81BB230DA'], + 'QosId' => ['title' => '', 'description' => 'The ID of the QoS policy.'."\n", 'type' => 'string', 'example' => 'qos-2giu0a6vd5x0mv****'], + 'QueueId' => ['description' => 'The ID of the QoS queue.'."\n", 'type' => 'string', 'example' => 'qos-queue-9nyx2u7n71s2rc****', 'title' => ''], + 'RuleId' => ['description' => 'The ID of the QoS rule.'."\n", 'type' => 'string', 'example' => 'qos-rule-iugg0l9x27f2no****'."\n", 'title' => ''], ], 'description' => '', + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidRegionId.NotFound', - 'errorMessage' => 'Specified value of RegionId is not supported.', - ], - [ - 'errorCode' => 'InvalidParameter.Action', - 'errorMessage' => 'This vpc feature is not supported in this region', - ], - [ - 'errorCode' => 'IncorrectVSwitchStatus', - 'errorMessage' => 'The current status of the virtual switch does not support this operation.', - ], - [ - 'errorCode' => 'OperationUnsupported.SystemRouteTable', - 'errorMessage' => 'System route table can not be unassociated.', - ], - [ - 'errorCode' => 'InvalidStatus.VSwitch', - 'errorMessage' => 'Specified vswitch is not in stable status and cannot operate.', - ], - ], - 404 => [ - [ - 'errorCode' => 'InvalidRouteTableId.NotFound', - 'errorMessage' => 'Specified route table does not exist.', - ], - [ - 'errorCode' => 'InvalidVSwitchId.NotFound', - 'errorMessage' => 'Specified VSwitch does not exist.', - ], - [ - 'errorCode' => 'InvalidBindingStatus.RouteTable', - 'errorMessage' => 'The specified virtual switch and route table does not bind', - ], - [ - 'errorCode' => 'OperationFailed.VSwitchNotAssociate', - 'errorMessage' => 'Specified vswitch is not associated with the routeTable and cannot operate.', - ], + ['errorCode' => 'IllegalParam.%s', 'errorMessage' => 'The param of %s is illegal.', 'description' => 'The parameter is invalid.'], + ['errorCode' => 'IncorrectStatus.Qos', 'errorMessage' => 'The status of QoS is incorrect.', 'description' => 'The status of the QoS policy is abnormal and the operation cannot be performed. Try again later.'], + ['errorCode' => 'EcQoSConflict', 'errorMessage' => 'The specified QoS is conflict with other QoS.', 'description' => 'The current QoS configuration conflicts with other configurations. Please try again later.'], + ['errorCode' => 'EcQosRuleNotAllowV4AndV6', 'errorMessage' => 'QoS rules do not allow IPv4 and IPv6 addresses to be mixed and updated.', 'description' => 'Both IPv4 address configuration and IPv6 address configuration are not allowed in a QoS rule. If the original configuration network type is IPv4 and cannot be modified to IPv6 (or vice versa), please check and modify it.'], + ['errorCode' => 'QuotaExceeded.QosRuleCount', 'errorMessage' => 'The quota of QosRuleCount is exceeded.', 'description' => 'The number of QoS rules in the QoS queue exceeds the limit. If you want to increase the quota, contact your business manager.'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"62172DD5-6BAC-45DF-8D44-xxxxxxx\\"\\n}","errorExample":"{\\n \\"RequestId\\": \\"62172DD5-6BAC-45DF-8D44-xxxxxxxx\\"\\n}"},{"type":"xml","example":"\\n\\n 62172DD5-6BAC-45DF-8D44-xxxxxxx\\n","errorExample":"\\n\\n 62172DD5-6BAC-45DF-8D44-xxxxxxx\\n"}]', - 'title' => 'UnassociateRouteTable', - 'description' => '## [](#)References'."\n" - ."\n" - .'* **UnassociateRouteTable** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call the [DescribeVSwitchAttributes](~~94567~~) operation to query the status of the task.'."\n" - ."\n" - .' * If the vSwitch is in the **Pending** state, the route table is being disassociated.'."\n" - .' * If the vSwitch is in the **Available** state, the route table is disassociated.'."\n" + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'CreateExpressConnectTrafficQosRule', + 'summary' => 'Creates a quality of service (QoS) rule.', + 'description' => '- QoS规则的优先级,需要在一个QoS策略中唯一。'."\n" ."\n" - .'* You cannot repeatedly call the **UnassociateRouteTable** operation to disassociate a route table from a vSwitch within the specified period of time.'."\n", - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', + .'- 单个QoS队列的QoS规则数量有限制,如果想要提升配额,请联系商务经理。', + 'changeSet' => [], + 'ramActions' => [], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"606998F0-B94D-48FE-8316-ACA81BB230DA\\",\\n \\"QosId\\": \\"qos-2giu0a6vd5x0mv****\\",\\n \\"QueueId\\": \\"qos-queue-9nyx2u7n71s2rc****\\",\\n \\"RuleId\\": \\"qos-rule-iugg0l9x27f2no****\\\\n\\"\\n}","type":"json"}]', ], - 'ModifyRouteTableAttributes' => [ - 'summary' => 'Modifies the name and description of a route table.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'CreateFailoverTestJob' => [ + 'summary' => 'Creates a failover test.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'write', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'update', - ], + 'systemTags' => ['operationType' => 'create', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ - 'name' => 'RouteTableId', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the route table.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'vtb-bp145q7glnuzdvzu2****', - ], + 'schema' => ['description' => 'The region ID of the failover test.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => false, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'RouteTableName', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The name of the route table.'."\n" - ."\n" - .'The name must be 1 to 128 characters in length and cannot start with `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'doctest', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'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.'."\n" + ."\n" + .'> 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.'."\n", 'type' => 'string', 'required' => false, 'docRequired' => true, 'example' => '123e4567-e89b-12d3-a456-426655440000', 'title' => ''], + ], + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'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.'."\n" + ."\n" + .'> 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.'."\n", 'type' => 'string', 'required' => false, 'docRequired' => true, 'example' => '123e4567-e89b-12d3-a456-426655440000', 'title' => ''], + ], + [ + 'name' => 'Name', + 'in' => 'query', + 'schema' => ['title' => '', 'description' => 'The name of the failover test.'."\n" + ."\n" + .'The name must be 0 to 128 characters in length and cannot start with `http://` or `https://`.'."\n", 'type' => 'string', 'required' => false, 'example' => 'test'], ], [ 'name' => 'Description', 'in' => 'query', + 'schema' => ['title' => '', 'description' => 'The description of the failover test.'."\n" + ."\n" + .'The description must be 0 to 256 characters in length and cannot start with `http://` or `https://`.'."\n", 'type' => 'string', 'required' => false, 'example' => 'test'], + ], + [ + 'name' => 'ResourceType', + 'in' => 'query', 'schema' => [ - 'description' => 'The description of the route table.'."\n" - ."\n" - .'The description must be 1 to 256 characters in length, and cannot start with `http://` or `https://`.'."\n", + 'title' => '', + 'description' => 'The resource type of the failover test. Set the value to **PHYSICALCONNECTION**.'."\n", 'type' => 'string', - 'required' => false, - 'example' => 'test', + 'required' => true, + 'example' => 'PHYSICALCONNECTION', + 'enum' => ['PHYSICALCONNECTION', 'VIRTUALBORDERROUTER', 'BGPPEER'], ], ], [ - 'name' => 'RegionId', + 'name' => 'ResourceId', 'in' => 'query', + 'allowEmptyValue' => false, + 'style' => 'repeatList', 'schema' => [ - 'description' => 'The region ID of the virtual private cloud (VPC) to which the custom route table belongs.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', + 'title' => '', + 'description' => 'The IDs of failover test resources. You can add at most 16 resources.'."\n", + 'type' => 'array', + 'items' => ['description' => 'The ID of the resource.'."\n", 'type' => 'string', 'required' => false, 'example' => 'pc-uf66k4e8pq3r00jfq****', 'title' => ''], 'required' => true, - 'example' => 'cn-hangzhou', + 'maxItems' => 16, + 'minItems' => 1, + 'example' => '', ], ], [ - 'name' => 'RoutePropagationEnable', + 'name' => 'JobType', 'in' => 'query', + 'allowEmptyValue' => false, 'schema' => [ - 'description' => 'Indicates whether to enable route propagation to receive dynamic routes. Valid values:'."\n" - ."\n" - .'- **true** (default): enables route propagation.'."\n" + 'title' => '', + 'description' => 'The type of the failover test. Valid values:'."\n" ."\n" - .'- **false**: disables route propagation.', - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', + .'* **StartNow**'."\n" + .'* **StartLater**'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'StartNow', + 'enum' => ['StartNow', 'StartLater'], ], ], + [ + 'name' => 'JobDuration', + 'in' => 'query', + 'schema' => ['title' => '', 'description' => 'The duration of the failover test. Unit: minutes. Valid values: **1 to 4320**.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => true, 'maximum' => '4320', 'minimum' => '1', 'example' => '60'], + ], + [ + 'name' => 'DryRun', + 'in' => 'query', + 'schema' => ['title' => '', 'description' => '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.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false'], + ], ], 'responses' => [ 200 => [ 'schema' => [ + 'description' => 'The response parameters.'."\n", 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '62172DD5-6BAC-45DF-8D44', - ], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => 'C44F62BE-9CE7-4277-B117-69243F3988BF'."\n", 'title' => ''], + 'JobId' => ['description' => 'The ID of the failover test.'."\n", 'type' => 'string', 'example' => 'ftj-bp1yh6mvi13aq3g8w****', 'title' => ''], ], - 'description' => 'The response.', + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'Abs.InvaliTableName.Malformed', - 'errorMessage' => 'Table name format is invalid.', - ], - [ - 'errorCode' => 'Abs.InvalidRouteTableId.NotExist', - 'errorMessage' => 'The route table id is not exist.', - ], - [ - 'errorCode' => 'InvalidDescription.Malformed', - 'errorMessage' => 'Description format is invalid.', - ], - [ - 'errorCode' => 'Forbidden.DisableRoutePropagation', - 'errorMessage' => 'The operation of disable route propagation is forbidden.', - ], - [ - 'errorCode' => 'ResourceNotFound.RouteTable', - 'errorMessage' => 'The specified resource gatewayRouteTable is not found.', - ], - [ - 'errorCode' => 'IncorrectStatus.RouteTable', - 'errorMessage' => 'The route table is in an invalid state.', - ], - [ - 'errorCode' => 'IncorrectStatus.RoutePropagationStatus', - 'errorMessage' => 'Route table propagation status not stable. Please wait and try again.', - ], - [ - 'errorCode' => 'IncorrectStatus.RouteEntry', - 'errorMessage' => 'The status of %s [%s] is incorrect.', - ], - [ - 'errorCode' => 'IncorrectStatus.Vpc', - 'errorMessage' => 'Vpc status is invalid.', - ], - ], - 403 => [ - [ - 'errorCode' => 'Forbbiden', - 'errorMessage' => 'User not authorized to operate on the specified resource.', - ], - ], + ['errorCode' => 'IllegalParam.Name', 'errorMessage' => 'The param of Name [%s] is illegal.', 'description' => 'The error message returned because the Name parameter is set to an invalid value. Specify a valid value and try again.'], + ['errorCode' => 'IllegalParam.Description', 'errorMessage' => 'The param of Description [%s] is illegal.', 'description' => 'The error message returned because the Description parameter is set to an invalid value. Specify a valid values and try again.'], + ['errorCode' => 'IllegalParam.ResourceType', 'errorMessage' => 'Invalid Resource Type value.', 'description' => 'The ResourceType parameter is not supported or set to an invalid value.'], + ['errorCode' => 'EcFailoverTestJobExceedMaxResourceNum', 'errorMessage' => 'The input resource number is exceeded the quota of 16.', 'description' => 'The failover test job can add up to 16 resources.'], + ['errorCode' => 'EcFailoverTestJobResourceInAnotherProcessingJob', 'errorMessage' => 'There is another processing failover test job.', 'description' => 'The current user already has a failover test job in progress. Please complete it and try again.'], + ['errorCode' => 'IllegalParam.ResourceId', 'errorMessage' => 'The input parameter resource ID is invalid.', 'description' => 'The input parameter resource ID is invalid.'], + ['errorCode' => 'IncorrectStatus.ResourceId', 'errorMessage' => 'The specified resource status is invalid.', 'description' => 'The resource status corresponding to the entered resource ID is invalid.'], + ['errorCode' => 'IncorrectBusinessStatus.ResourceId', 'errorMessage' => 'The specified resource business status is invalid.', 'description' => 'The entered resource is in arrears.'], + ['errorCode' => 'VpconnNotAssociatedVbr', 'errorMessage' => 'The specified vpconn is not associated with vbr.', 'description' => 'The entered virtual physical connection is not associated with a virtual border router.'], + ['errorCode' => 'VpconnWithVlan0NotSupportShutdown', 'errorMessage' => 'The specified virtualPhysicalConnection with vlan 0 does not support shutdown.', 'description' => 'The shared physical connection of VLAN 0 does not support failover test.'], + ['errorCode' => 'PconnContainsMoreThanOneVpconn', 'errorMessage' => 'The specified physicalConnection contains more than one virtualPhysicalConnection.', 'description' => 'A physical line that contains more than one shared physical line does not support failover test.'], + ['errorCode' => 'PconnContailsMoreThanOneAcrossCountVbr', 'errorMessage' => 'The specified physicalConnection contains more than one virtualBorderRouter which is across count.', 'description' => 'Physical connections that contain more than one cross-account VBR do not support failover test.'], + ['errorCode' => 'IllegalParam.JobType', 'errorMessage' => 'The specified parameter JobType is illegal.', 'description' => 'The task type entered is illegal.'], + ['errorCode' => 'IllegalParam.JobDuration', 'errorMessage' => 'The specified parameter JobDuration is illegal.', 'description' => 'The task duration entered is illegal.'], + ['errorCode' => 'AnotherJobTesting', 'errorMessage' => 'There is another job which is testing.', 'description' => 'The same user can only perform one fault drill task in the same region at the same time.'], + ['errorCode' => 'MultiplePconnSingleVbrNotSupportShutdown', 'errorMessage' => 'Vbr for single vbr and multiple pconn scenarios does not support failover test job.', 'description' => 'The vbr of a single vbr and multiple pconn scenarios does not support failover test job.'], + ['errorCode' => 'EcFailoverTestJobConflict', 'errorMessage' => 'The current failover test job task is in operation, please try again later.', 'description' => 'The current failover test job task is in operation, please try again later.'], + ['errorCode' => 'OperationDeny.VbrWithVlan0', 'errorMessage' => 'The specified VirtualBorderRouter with vlan 0 does not support shutdown.', 'description' => 'The entered VBR VLAN is 0. Fault drill is not supported. Please use the physical connection for fault drill.'], + ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'CreateFailoverTestJob', + 'description' => 'You cannot create a failover test in the following scenarios:'."\n" + ."\n" + .'* You have created a failover test in the region and its type is StartNow.'."\n" + .'* The Express Connect circuit or hosted connection has pending orders or overdue payments.'."\n" + .'* A failover test is already performed on the Express Connect circuit or hosted connection.'."\n" + .'* More than one hosted connection is created over the Express Connect circuit.'."\n" + .'* More than one cross-account VBR is created on the Express Connect circuit.'."\n" + .'* No VBR is associated with the hosted connection.'."\n" + .'* The VLAN ID of the hosted connection is set to 0.'."\n", + 'changeSet' => [ + ['createdAt' => '2024-07-19T02:56:58.000Z', 'description' => 'Error codes changed, Request parameters changed'], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"62172DD5-6BAC-45DF-8D44\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 62172DD5-6BAC-45DF-8D44\\n","errorExample":""}]', - 'title' => 'ModifyRouteTableAttributes', - 'description' => 'You cannot repeatedly call the **ModifyRouteTableAttributes** operation to modify the name and description of a route table within the specified period of time.', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', + 'ramActions' => [], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"C44F62BE-9CE7-4277-B117-69243F3988BF\\\\n\\",\\n \\"JobId\\": \\"ftj-bp1yh6mvi13aq3g8w****\\"\\n}","type":"json"}]', ], - 'ModifyRouteEntry' => [ - 'summary' => 'Modifies the name and description of a custom route entry.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'CreateFlowLog' => [ + 'summary' => 'Creates a flow log.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -10454,2615 +7433,1739 @@ ], 'operationType' => 'readAndWrite', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'update', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeCode' => '37904', - 'abilityTreeNodes' => [ - 'FEATUREvpc0T77AE', - ], - ], + 'systemTags' => ['operationType' => 'create', 'riskType' => 'none', 'chargeType' => 'paid'], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region to which the route belongs.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The region ID of the flow log. You can call [DescribeRegions](~~448570~~) to query the most recent region list.', 'type' => 'string', 'required' => true, 'example' => 'cn-qingdao', 'title' => ''], ], [ - 'name' => 'RouteEntryName', + 'name' => 'FlowLogName', 'in' => 'query', - 'schema' => [ - 'description' => 'The name of the route entry.'."\n" - ."\n" - .'The name must be 1 to 128 characters in length, and cannot start with `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'EntryName', - ], + 'schema' => ['description' => 'The name of the flow log.'."\n" + ."\n" + .'The name must be 1 to 128 characters in length and cannot start with `http://` or `https://`.', 'type' => 'string', 'required' => false, 'example' => 'myFlowlog', 'title' => ''], ], [ - 'name' => 'RouteEntryId', + 'name' => 'Description', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the custom route entry.'."\n", - 'type' => 'string', - 'required' => false, - 'docRequired' => false, - 'example' => 'rte-acfvgfsghfdd****', - ], + 'schema' => ['description' => 'The description of the flow log.'."\n" + ."\n" + .'The description must be 1 to 256 characters in length and cannot start with `http://` or `https://`.', 'type' => 'string', 'required' => false, 'example' => 'This is my Flowlog.', 'title' => ''], ], [ - 'name' => 'Description', + 'name' => 'ResourceType', 'in' => 'query', - 'schema' => [ - 'description' => 'The description of the route entry.'."\n" - ."\n" - .'The description must be 1 to 256 characters in length, and cannot start with `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'EntryDescription', - ], + 'schema' => ['description' => 'The type of resource from which to capture traffic. Valid values:'."\n" + ."\n" + .'- **NetworkInterface**: network interface controller (NIC).'."\n" + .' '."\n" + .'- **VSwitch**: all network interface controllers (NICs) in a vSwitch.'."\n" + .' '."\n" + .'- **VPC**: all network interface controllers (NICs) in a virtual private cloud (VPC).', 'type' => 'string', 'required' => true, 'example' => 'NetworkInterface', 'title' => ''], ], [ - 'name' => 'NewNextHopType', + 'name' => 'ResourceId', 'in' => 'query', - 'schema' => [ - 'title' => '新路由条目下一跳类型', - 'description' => 'The new next hop type of the route.'."\n", - 'type' => 'string', - 'required' => false, - 'enumValueTitles' => [ - 'HaVip' => 'HaVip', - 'VpnGateway' => 'VpnGateway', - 'GatewayLoadBalancerEndpoint' => 'GatewayLoadBalancerEndpoint', - 'VpcPeer' => 'VpcPeer', - 'Instance' => 'Instance', - 'NetworkInterface' => 'NetworkInterface', - 'NatGateway' => 'NatGateway', - 'Attachment' => 'Attachment', - 'Ipv4Gateway' => 'Ipv4Gateway', - 'GatewayEndpoint' => 'GatewayEndpoint', - 'Ecr' => 'Ecr', - 'RouterInterface' => 'RouterInterface', - 'IPv6Gateway' => 'IPv6Gateway', - ], - 'example' => 'NetworkInterface', - ], + 'schema' => ['description' => 'The ID of the resource from which to capture traffic.', 'type' => 'string', 'required' => true, 'example' => 'eni-askldfas****', 'title' => ''], ], [ - 'name' => 'NewNextHopId', + 'name' => 'TrafficType', 'in' => 'query', - 'schema' => [ - 'title' => '新路由条目下一跳实例ID', - 'description' => 'The ID of the new next hop instance.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'eni-bp17y37ytsenqyim****', - ], + 'schema' => ['description' => 'The traffic type to collect. Valid values:'."\n" + ."\n" + .'- **All**: all traffic.'."\n" + .' '."\n" + .'- **Allow**: traffic allowed by access control.'."\n" + .' '."\n" + .'- **Drop**: traffic denied by access control.', 'type' => 'string', 'required' => true, 'example' => 'All', 'title' => ''], ], [ - 'name' => 'RouteTableId', + 'name' => 'ProjectName', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the route table to which the route entry belongs.', - 'type' => 'string', - 'required' => false, - 'example' => 'vtb-bp1nk7zk65du3pni8z9td', - ], + 'schema' => ['description' => 'The name of the project that manages the captured traffic.'."\n" + .'- The project name can contain only lowercase letters, digits, and hyphens (-).'."\n" + .'- The name must start and end with a lowercase letter or digit.'."\n" + .'- The name must be 3 to 63 characters in length.', 'type' => 'string', 'required' => false, 'example' => 'FlowLogProject', 'title' => ''], ], [ - 'name' => 'DestinationCidrBlock', + 'name' => 'LogStoreName', + 'in' => 'query', + 'schema' => ['description' => 'The name of the Logstore that stores the captured traffic.'."\n" + .'- The Logstore name can contain only lowercase letters, digits, hyphens (-), and underscores (_).'."\n" + .'- The name must start and end with a lowercase letter or digit.'."\n" + .'- The name must be 3 to 63 characters in length.', 'type' => 'string', 'required' => false, 'example' => 'FlowLogStore', 'title' => ''], + ], + [ + 'name' => 'AggregationInterval', + 'in' => 'query', + 'schema' => ['description' => 'The sampling interval of the flow log. Unit: minutes. Valid values: **1**, **5**, and **10** (default).', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '10', 'title' => ''], + ], + [ + 'name' => 'TrafficPath', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => 'The destination CIDR block of the route entry. Only IPv4 CIDR blocks, IPv6 CIDR blocks, and prefix lists are supported.', - 'type' => 'string', + 'description' => 'The traffic path to capture. Valid values:'."\n" + ."\n" + .'- **all**: captures all traffic.'."\n" + .'- **internetGateway**: captures Internet traffic.', + 'type' => 'array', + 'items' => ['description' => 'The traffic path to capture. Valid values:'."\n" + ."\n" + .'- **all** (default): captures all traffic.'."\n" + ."\n" + .''."\n" + .'> The traffic path feature is not enabled by default. To use this feature, [submit a ticket](https://selfservice.console.aliyun.com/ticket/category/ga/today).'."\n" + ."\n\n" + .''."\n" + .'> The traffic path feature is not enabled by default. To use this feature, [submit a ticket](https://workorder-intl.console.aliyun.com/?spm=5176.11182188.console-base-top.dworkorder.18ae4882n3v6ZW#/ticket/createIndex)..', 'type' => 'string', 'required' => false, 'example' => 'all', 'title' => ''], 'required' => false, - 'example' => '192.168.0.0/24', + 'maxItems' => 20, + 'title' => '', + 'example' => '', ], ], [ - 'name' => 'DryRun', + 'name' => 'ResourceGroupId', + 'in' => 'query', + 'schema' => ['description' => 'The ID of the resource group.', 'type' => 'string', 'required' => false, 'example' => 'rg-acfmxazdjdhd****', 'title' => ''], + ], + [ + 'name' => 'Tag', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values:'."\n" - ."\n" - .'* **true**: performs a dry run. The system checks the request for potential issues, including the AccessKey pair, the permissions of the RAM user, and the required parameters. 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.'."\n" - .'* **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.'."\n", - 'type' => 'boolean', + 'description' => 'The tags of the resource.', + 'type' => 'array', + 'items' => [ + 'description' => 'The tag.', + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => 'The tag key of the resource. You can specify up to 20 tag keys. The tag key cannot be an empty string.'."\n" + ."\n" + .'The tag key can be up to 128 characters in length and cannot start with `aliyun` or `acs:`. It cannot contain `http://` or `https://`.', 'type' => 'string', 'required' => false, 'example' => 'FinanceDept', 'title' => ''], + 'Value' => ['description' => 'The tag value of the resource. You can specify up to 20 tag values. The tag value can be an empty string.'."\n" + ."\n" + .'The tag value can be up to 128 characters in length and cannot start with `aliyun` or `acs:`. It cannot contain `http://` or `https://`.', 'type' => 'string', 'required' => false, 'example' => 'FinanceJoshua', 'title' => ''], + ], + 'required' => false, + 'title' => '', + 'example' => '', + ], 'required' => false, - 'example' => 'false', + 'maxItems' => 21, + 'title' => '', + 'example' => '', ], ], + [ + 'name' => 'IpVersion', + 'in' => 'query', + 'schema' => ['description' => 'The IP version of the traffic captured by the flow log.', 'type' => 'string', 'required' => false, 'example' => 'IPv4', 'title' => ''], + ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => '', + 'description' => 'The request ID.', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => '861E6630-AEC0-4B2D-B214-6CB5E44B7F04', - ], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B457', 'title' => ''], + 'Success' => ['description' => 'Indicates whether the call is successful. Valid values:'."\n" + ."\n" + .'- **true**: The call is successful.'."\n" + .'- **false**: The call failed.', 'type' => 'string', 'example' => 'true', 'title' => ''], + 'FlowLogId' => ['description' => 'The flow log ID.', 'type' => 'string', 'example' => 'fl-m5e8vhz2t21sel1nq****', 'title' => ''], + 'ResourceGroupId' => ['description' => 'The ID of the resource group.', 'type' => 'string', 'example' => 'rg-acfmxazdjdhd****', 'title' => ''], ], + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidRouteEntryId.NotFound', - 'errorMessage' => 'Specified RouteEntryId does not exist.', - ], - [ - 'errorCode' => 'InvalidRouteEntryName.Malformed', - 'errorMessage' => 'Specified RouteEntry name is not valid.', - ], - [ - 'errorCode' => 'OperationDenied.ModifyManagedRouteEntry', - 'errorMessage' => 'The operation is not allowed because of route entry is managed.', - ], - [ - 'errorCode' => 'OperationDenied.RouteTableTypeNotPermitted', - 'errorMessage' => 'The operation is not allowed because the type of route table is not permitted.', - ], - [ - 'errorCode' => 'MissingParam.NewNextHopId', - 'errorMessage' => 'The parameter NewNextHopId is mandatory.', - ], - [ - 'errorCode' => 'IllegealParam.NextHopType', - 'errorMessage' => 'The parameter NewNextHopType is illegal.', - ], - [ - 'errorCode' => 'UnsupportedFeature.NormalTypeNatGateway', - 'errorMessage' => 'Normal nat gateways do not support modifying the next hop of the route.', - ], - [ - 'errorCode' => 'UnsupportedFeature.NextHopType', - 'errorMessage' => 'The route type does not support modifying the next hop of the route.', - ], - [ - 'errorCode' => 'InvalidRouteTable.NotFound', - 'errorMessage' => 'The specified routetable does not exist.', - ], - [ - 'errorCode' => 'InvalidNetworkInterface.NotFound', - 'errorMessage' => 'The specified network interface does not exist.', - ], - [ - 'errorCode' => 'OperationDenied.NextHopExist', - 'errorMessage' => 'The operation is not allowed because the nexthop already exists.', - ], - [ - 'errorCode' => 'MissingParam.NewNextHopType', - 'errorMessage' => 'The parameter NewNextHopType is mandatory.', - ], - [ - 'errorCode' => 'UnsupportedFeature.ModifyRouteEntryNextHop', - 'errorMessage' => 'The current region does not support the function of modifying the route next hop.', - ], - [ - 'errorCode' => 'IncorrectRouteEntryStatus', - 'errorMessage' => 'Some route entry status blocked this operation.', - ], - [ - 'errorCode' => 'ResourceNotFound.VSwitch', - 'errorMessage' => 'The vSwitch where the specified networkinterface is located does not exist.', - ], - [ - 'errorCode' => 'MissingParam.RouteEntryId', - 'errorMessage' => 'The param of %s is missing.', - ], - [ - 'errorCode' => 'IllegalParam.RouteEntryName', - 'errorMessage' => 'The param of %s is illegal.', - ], - [ - 'errorCode' => 'OperationDenied.LocalRouteEntryModified', - 'errorMessage' => 'The next hop of a local route is modified.', - ], - [ - 'errorCode' => 'OperationDenied.IllegalNewNextHopType', - 'errorMessage' => 'When modifying the next hop of a route of the local type, a new next hop type that is not supported is passed in.', - ], - [ - 'errorCode' => 'UnsupportedFeature.VpcAdvancedFeature', - 'errorMessage' => 'The VPC does not support some advanced features.', - ], - [ - 'errorCode' => 'UnsupportedRegion', - 'errorMessage' => 'The feature is not supported in current region.', - ], - [ - 'errorCode' => 'OperationFailed.NotSupportIPV6', - 'errorMessage' => 'The specified next hop does not support IPv6.', - ], - [ - 'errorCode' => 'UnsupportedFeature.ModifyIpv6RouteEntryNextHop', - 'errorMessage' => 'The current region does not support the feature of modifying the IPv6 route next hop.', - ], - [ - 'errorCode' => 'OperationDenied.NewNextHopNotSupportPublish', - 'errorMessage' => 'New nexthop is not supported for published route entry.', - ], - [ - 'errorCode' => 'IllegalParam.DestCidrBlock', - 'errorMessage' => 'The destCidrBlock is invalid.', - ], - [ - 'errorCode' => 'IllegalParamFormat.DstCidrBlock', - 'errorMessage' => 'The format of the specified destination CIDR block is invalid.', - ], - [ - 'errorCode' => 'MissingParam.RouteEntryIdOrRouteTableDstCidr', - 'errorMessage' => 'The request is missing required parameters. You must provide either the RouteEntryId or the combination of RouteTableId and DestinationCidrBlock to proceed. Please ensure that one of these parameter sets is included in your request.', - ], - [ - 'errorCode' => 'MissingParam.ParameterMustNotNull', - 'errorMessage' => '%s, %s.', - ], - [ - 'errorCode' => 'ResourceNotFound.RouteTable', - 'errorMessage' => 'The specified resource gatewayRouteTable is not found.', - ], - [ - 'errorCode' => 'OperationDenied.UpdateGatewayRouteEntry', - 'errorMessage' => 'The operation is not allowed because of need switch to local first.', - ], - [ - 'errorCode' => 'ResourceNotFound.RouteEntry', - 'errorMessage' => 'The specified resource routeEntry is not found.', - ], - [ - 'errorCode' => 'IncorrectStatus.RouteEntry', - 'errorMessage' => 'The status of %s [%s] is incorrect.', - ], - [ - 'errorCode' => 'IncorrectStatus.Vswitch', - 'errorMessage' => 'The status of %s [%s] is incorrect.', - ], - [ - 'errorCode' => 'ResourceNotFound.Instance', - 'errorMessage' => 'The specified resource nextHop is not found.', - ], - [ - 'errorCode' => 'IncorrectStatus.NextHop', - 'errorMessage' => 'The status of %s [%s] is incorrect.', - ], - [ - 'errorCode' => 'OperationDenied.NextHopTypeNonsupport', - 'errorMessage' => 'The operation is not allowed because of nextHopType is nonsupport.', - ], - [ - 'errorCode' => 'OperationDenied.LocalEntryCanOnlyModifyNextHop', - 'errorMessage' => 'Only the nextHop parameter can be modified for a local route entry.', - ], - [ - 'errorCode' => 'ExclusiveParam.NextHopTypeAndNextHopId', - 'errorMessage' => 'The param of nextHopType and nextHopId are mutually exclusive.', - ], - [ - 'errorCode' => 'InvalidRouterInterfaceId.NotFound', - 'errorMessage' => 'The specified RouterInterfaceId does not exist in our record.', - ], - [ - 'errorCode' => 'OperationUnsupported.OnlySupportNormalNetworkInterface', - 'errorMessage' => 'Next hop only supports binding normal network Interface.', - ], - [ - 'errorCode' => 'UnsupportedFeature.Ipv6GatewayRouteTable', - 'errorMessage' => 'The feature of %s is not supported.', - ], - [ - 'errorCode' => 'OperationDenied.TrAttachmentIpv6Disabled', - 'errorMessage' => 'The operation is not allowed because tr attachment Ipv6 is disabled.', - ], - [ - 'errorCode' => 'InvalidAttachment.NotFound', - 'errorMessage' => 'The attachment is not found.', - ], - [ - 'errorCode' => 'OperationDenied.LocalRouteEntryInSystemRouteTable', - 'errorMessage' => 'The Local Route Entry In System Route Table Can Not Be Modify.', - ], - [ - 'errorCode' => 'OperationDenied.LocalRouteEntryBoundToVSwitch', - 'errorMessage' => 'The VSwitch to which the local route you modified belongs is bound to the current routing table. You are not allowed to modify its next hop.', - ], - [ - 'errorCode' => 'OperationFailed.ModifyEcmpRoute', - 'errorMessage' => 'Operation is failed because ecmp route can not modify.', - ], - ], - 403 => [ - [ - 'errorCode' => 'Forbbiden', - 'errorMessage' => 'User not authorized to operate on the specified resource.', - ], - ], - [ - [ - 'errorCode' => 'ResourceNotFound.NatGateway', - 'errorMessage' => 'The specific NAT gateway is not found.', - ], - [ - 'errorCode' => 'ResourceNotFound.GatewayLoadBalancerEndpoint', - 'errorMessage' => 'GatewayLoadBalancerEndpoint instance not found.', - ], - ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"861E6630-AEC0-4B2D-B214-6CB5E44B7F04\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 861E6630-AEC0-4B2D-B214-6CB5E44B7F04\\n","errorExample":""}]', - 'title' => 'ModifyRouteEntry', - 'description' => 'You cannot repeatedly call the **ModifyRouteEntry** operation to modify the name and description of a custom route within the specified period of time.', + ['errorCode' => 'IncorrectBusinessStatus.FlowLog', 'errorMessage' => 'The business status of flowLog is incorrect.', 'description' => 'The error message returned because you cannot create flow logs in the current business state.'], + ['errorCode' => 'OptInRequired.FlowLog', 'errorMessage' => 'You are not authorized to use the requested service of flowLog. Ensure that you have subscribed to the service you are trying to use.', 'description' => 'The error message returned because you do not have the permissions to use the flow log feature. Make sure that the flow log feature is already enabled.'], + ['errorCode' => 'OperationUnsupported.AdvancedFeature', 'errorMessage' => 'Advanced features of the vpc is unsupported.', 'description' => 'This advanced feature is not supported.'], + ['errorCode' => 'InvalidInstanceId', 'errorMessage' => 'vswitch does not exist.', 'description' => 'The error message returned because the vSwitch does not exist.'], + ['errorCode' => 'ProjectOrLogstoreNotExist', 'errorMessage' => 'The specified project or logstore does not exist.', 'description' => 'The error message returned because the specified project or Logstore does not exist.'], + ['errorCode' => 'SourceProjectNotExist', 'errorMessage' => 'The Source Project or logstore does not exist.', 'description' => 'The error message returned because the source project or Logstore does not exist.'], + ['errorCode' => 'Unauthorized', 'errorMessage' => 'This api does not support sub user or role.', 'description' => 'The error message returned because you cannot call this operation as a RAM user.'], + ['errorCode' => 'OperationUnsupported.action', 'errorMessage' => 'This action is not support.', 'description' => 'The error message returned because the operation is not supported.'], + ['errorCode' => 'ParameterInvalid', 'errorMessage' => 'Invalid parameter.', 'description' => 'The error message returned because a parameter is invalid.'], + ['errorCode' => 'RuleExist', 'errorMessage' => 'The rule has already existed.', 'description' => ''], + ['errorCode' => 'InvalidHdMonitorStatus', 'errorMessage' => 'Current instance status is not valid for this action.', 'description' => ''], + ['errorCode' => 'QuotaExceeded.FlowlogCount', 'errorMessage' => 'This user has reached the maximum instance number of flowlog.', 'description' => 'The number of flow logs reaches the upper limit.'], + ['errorCode' => 'InvalidResourceId.NotFound', 'errorMessage' => 'This resourceId already has flowlog instance existed.', 'description' => 'A flow log is already enabled for the resource.'], + ['errorCode' => 'INVALID_PARAMETER', 'errorMessage' => 'The parameter invalid.', 'description' => ''], + ['errorCode' => 'MissingParameter', 'errorMessage' => 'Missing mandatory parameter', 'description' => ''], + ['errorCode' => 'InvalidRegionId.NotFound', 'errorMessage' => 'The RegionId provided does not exist in our records.', 'description' => ''], + ['errorCode' => 'InvalidResourceType.NotFound', 'errorMessage' => 'Resource type no the same.', 'description' => ''], + ['errorCode' => 'OperationUnsupported.ResourceType', 'errorMessage' => 'This resource type is not supported.', 'description' => ''], + ['errorCode' => 'IllegalParam.AggregationInterval', 'errorMessage' => 'The param of aggregationInterval is illegal.', 'description' => ''], + ['errorCode' => 'UnsupportedFeature.UserDefinedTrafficPath', 'errorMessage' => 'The feature of UserDefinedTrafficPath is not supported.', 'description' => 'The current user does not have the permissions to specify trafficPath.'], + ['errorCode' => 'IllegalParam.TrafficPath', 'errorMessage' => 'The param of trafficPath is illegal.', 'description' => 'TrafficPath.N is set to an invalid value.'], + ['errorCode' => 'DuplicatedParam.TrafficPath', 'errorMessage' => 'The param of trafficPath is duplicated.', 'description' => 'The value of TrafficPath.N is duplicate.'], + ['errorCode' => 'IllegalParam.ResourceGroupId', 'errorMessage' => 'Invalid ResourceGroupld value.', 'description' => 'The specified resource group is invalid or does not exist.'], + ['errorCode' => 'OperationDenied.OperateShareResource', 'errorMessage' => 'The operation is not allowed because of OperateShareResource.', 'description' => 'Operating on shared resources causes the operation to fail'], + ['errorCode' => 'UnsupportedFeature.IpVersion', 'errorMessage' => 'The ipversion type is not supported.', 'description' => ''], + ['errorCode' => 'UnsupportedFeature.VpcAdvancedFeature', 'errorMessage' => 'The VPC does not support some advanced features.', 'description' => 'The VPC does not support some advanced features. Please submit a ticket.'], + ['errorCode' => 'OperationFailed.EniTypeNotSupport', 'errorMessage' => 'Operation failed because the ENI type is not supported.', 'description' => 'Operation failed because the ENI type is not supported.'], + ['errorCode' => 'IllegalParam.IpVersion', 'errorMessage' => 'The parameter of IpVersion is illegal.', 'description' => ''], + ['errorCode' => 'OperationDenied.NisTrafficAnalyzerAggregationIntervalMismatch', 'errorMessage' => 'The sampling interval of the FlowLog is greater than the sampling interval of the NIS Traffic Analyzer.', 'description' => 'The sampling interval of the FlowLog is greater than the sampling interval of the NIS Traffic Analyzer.'], + ['errorCode' => 'OperationDenied.NisTrafficAnalyzerNotFound', 'errorMessage' => 'The specified NIS Traffic Analyzer does not exist.', 'description' => 'The specified NIS Traffic Analyzer does not exist.'], + ['errorCode' => 'OperationDenied.NisTrafficAnalyzerNotActive', 'errorMessage' => 'The specified NIS Traffic Analyzer is not enabled.', 'description' => 'The specified NIS Traffic Analyzer is not enabled.'], + ['errorCode' => 'OperationFailed.InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error.', 'description' => 'Unknown error. Please retry the operation. The error still exists. Please submit the work order for processing.'], + ['errorCode' => 'MissingParam.TrafficAnalyzerIdOrLogProjectOrLogStore', 'errorMessage' => 'TrafficAnalyzerId and ProjectName and LogStoreName parameters are not passed in.', 'description' => 'TrafficAnalyzerId and ProjectName and LogStoreName parameters are not passed in.'], + ['errorCode' => 'OperationDenied.AllTrafficPathOfManagedExist', 'errorMessage' => 'The resource you specified has created a flow log instance that collects the traffic of all scenarios. You cannot create a flow log instance that collects only some scenarios.', 'description' => 'The resource you specified has created a flow log instance that collects the traffic of all scenarios. You cannot create a flow log instance that collects only some scenarios.'], + ['errorCode' => 'UnsupportedFeature.UserDefinedTrafficPathIpv6', 'errorMessage' => 'Dual-stack flow log instances do not support custom trafficPath.', 'description' => 'Dual-stack flow log instances do not support custom trafficPath.'], + ], + ], + 'staticInfo' => ['returnType' => 'asynchronous', 'callback' => 'Vpc::2016-04-28::DescribeFlowLogs', 'callbackInterval' => 3000, 'maxCallbackTimes' => 10], + 'title' => 'Create a flow log', + 'description' => '**CreateFlowLog** is an asynchronous operation. After you invoke this operation, the system returns an instance ID, but the flow log has not been created yet. The creation node is still running in the background. You can invoke [DescribeFlowLogs](~~448670~~) to query the creation status of the flow log:'."\n" + .'- If the flow log is in the **Activating** state, the flow log is being created.'."\n" + .'- If the flow log is in the **Active** state, the flow log is created and activated.', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2025-04-27T05:47:49.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2025-03-14T01:59:01.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2025-02-26T11:03:27.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2025-02-21T05:35:50.000Z', 'description' => 'Error codes changed, Request parameters changed'], + ['createdAt' => '2024-11-20T03:14:12.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-10-29T02:52:22.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-09-25T15:16:14.000Z', 'description' => 'Error codes changed, Request parameters changed'], + ['createdAt' => '2024-04-28T03:16:37.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-07-05T05:51:51.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2023-05-18T08:53:54.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2022-10-18T15:24:34.000Z', 'description' => 'Error codes changed, Request parameters changed'], + ['createdAt' => '2021-11-17T09:56:46.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2021-11-17T09:56:46.000Z', 'description' => 'Error codes changed, Request parameters changed'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '600', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CreateFlowLog'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], + ], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'vpc:CreateFlowLog', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'conditional', 'product' => 'VPC', 'resourceType' => 'VSwitch', 'arn' => 'acs:vpc:{#regionid}:{#accountId}:vswitch/{#VSwitchId}'], + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'FlowLog', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:flowlog/*'], + ['validationType' => 'conditional', 'product' => 'VPC', 'resourceType' => 'VPC', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vpc/{#VpcId}'], + ], + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B457\\",\\n \\"Success\\": \\"true\\",\\n \\"FlowLogId\\": \\"fl-m5e8vhz2t21sel1nq****\\",\\n \\"ResourceGroupId\\": \\"rg-acfmxazdjdhd****\\"\\n}","type":"json"}]', ], - 'GetVpcRouteEntrySummary' => [ - 'summary' => 'Queries route types.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'CreateForwardEntry' => [ + 'summary' => 'Adds a DNAT entry to a DNAT table.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'list', - 'riskType' => 'none', - 'chargeType' => 'free', - ], + 'operationType' => 'readAndWrite', + 'systemTags' => ['operationType' => 'create', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ - 'name' => 'VpcId', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the virtual private cloud (VPC) to which the route table belongs.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'vpc-bp15zckdt37pq72****', - ], + 'schema' => ['description' => 'The region ID of the NAT gateway.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to obtain the region ID.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'RouteTableId', + 'name' => 'ForwardTableId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the route table that you want to query.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'vtb-bp145q7glnuzdvzu2****', - ], + 'schema' => ['description' => 'The ID of the DNAT table.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'ftb-bp1mbjubq34hlcqpa****', 'title' => ''], ], [ - 'name' => 'RouteEntryType', + 'name' => 'ExternalIp', 'in' => 'query', - 'schema' => [ - 'description' => 'The type of the route. Valid values:'."\n" - ."\n" - .'* **All**: all route types'."\n" - .'* **Custom**: a custom route'."\n" - .'* **System**: a system route'."\n" - .'* **BGP**: a BGP route'."\n" - .'* **CEN**: a Cloud Enterprise Network (CEN) route'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'Custom', - ], + 'schema' => ['description' => '* The EIP that can be accessed over the Internet when you configure a DNAT entry for an Internet NAT gateway.'."\n" + .'* The NAT IP address that can be accessed by external networks when you configure a DNAT entry for a VPC NAT gateway.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '116.28.XX.XX', 'title' => ''], ], [ - 'name' => 'RegionId', + 'name' => 'ExternalPort', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the route table.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => '* The external port range that is used for port forwarding when you configure a DNAT entry for an Internet NAT gateway.'."\n" + ."\n" + .' * Valid values: **1** to **65535**.'."\n" + .' * To specify a port range, separate the first port and the last port with a forward slash (/), for example, `10/20`.'."\n" + .' * If you set **ExternalPort** to a port range, you must also set **InternalPort** to a port range, and the number of ports specified by these parameters must be the same. For example, if you set **ExternalPort** to `10/20`, you can set **InternalPort** to `80/90`.'."\n" + ."\n" + .'* The port that can be accessed by external networks when you configure a DNAT entry for a VPC NAT gateway. Valid values: **1** to **65535**.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '8080', 'title' => ''], + ], + [ + 'name' => 'InternalIp', + 'in' => 'query', + 'schema' => ['description' => '* The private IP address of the ECS instance that needs to communicate with the Internet when you configure a DNAT entry for an Internet NAT gateway. The private IP address must meet the following requirements:'."\n" + ."\n" + .' * It must belong to the CIDR block of the VPC where the NAT gateway is deployed.'."\n" + .' * The DNAT entry takes effect only if the private IP address is assigned to an ECS instance and the ECS instance is not associated with an EIP.'."\n" + ."\n" + .'* The private IP address that uses DNAT when you add a DNAT entry to a VPC NAT gateway.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '192.168.XX.XX', 'title' => ''], + ], + [ + 'name' => 'InternalPort', + 'in' => 'query', + 'schema' => ['description' => '* The internal port or port range that is used for port forwarding when you configure a DNAT entry for an Internet NAT gateway. Valid values: **1** to **65535**.'."\n" + .'* The port of the destination ECS instance to be mapped when you configure a DNAT entry for a VPC NAT gateway. Valid values: **1** to **65535**.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '80', 'title' => ''], + ], + [ + 'name' => 'IpProtocol', + 'in' => 'query', + 'schema' => ['description' => 'The protocol. Valid values:'."\n" + ."\n" + .'* **TCP**'."\n" + .'* **UDP**'."\n" + .'* **Any** If you set **IpProtocol** to **Any**, you must also set **ExternalPort** and **InternalPort** to **Any** to implement DNAT IP mapping.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'TCP', 'title' => ''], + ], + [ + 'name' => 'ForwardEntryName', + 'in' => 'query', + 'schema' => ['description' => 'The name of the DNAT entry.'."\n" + ."\n" + .'The name must be 2 to 128 characters in length. It must start with a letter but cannot start with `http://` or `https://`.'."\n", 'type' => 'string', 'required' => false, 'example' => 'ForwardEntry-1', 'title' => ''], + ], + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'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.'."\n" + ."\n" + .'> 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.'."\n", 'type' => 'string', 'required' => false, 'example' => '0c593ea1-3bea-11e9-b96b-88e9fe6****', 'title' => ''], + ], + [ + 'name' => 'PortBreak', + 'in' => 'query', + 'schema' => ['description' => 'Whether to enable port breakthrough, with values:'."\n" + .'- **true**: Enable port breakthrough. '."\n" + .'- **false** (default): Do not enable port breakthrough.'."\n" + .'>When both DNAT and SNAT entries use the same public IP address, if you need to configure a port number greater than 1024, you must set **PortBreak** to **true**.', 'type' => 'boolean', 'required' => false, 'default' => 'false', 'example' => 'false', 'title' => ''], + ], + [ + 'name' => 'DryRun', + 'in' => 'query', + 'schema' => ['description' => 'Indicates whether to perform a dry run of the request. Values:'."\n" + .'- **true**: Sends a check request without creating a DNAT entry. The checks include whether the AccessKey is valid, the RAM user\'s authorization status, and if all required parameters are filled out. If any check fails, the corresponding error is returned. If all checks pass, an error code `DryRunOperation` is returned.'."\n" + .'- **false** (default): Sends a normal request. After passing the checks, it returns a 2xx HTTP status code and creates a DNAT entry.', 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => '', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => 'DC668356-BCB4-42FD-9BC3-FA2B2E04B634', - ], - 'RouteEntrySummarys' => [ - 'description' => 'The information about the routes in the route tables.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'RouteTableId' => [ - 'description' => 'The ID of the route table.'."\n", - 'type' => 'string', - 'example' => 'vtb-bp145q7glnuzdvzu2****', - ], - 'EntrySummarys' => [ - 'description' => 'The information about the routes of different types in one route table.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'RouteEntryType' => [ - 'description' => 'The type of the route. Valid values:'."\n" - ."\n" - .'* **All**: all route types'."\n" - .'* **Custom**: a custom route'."\n" - .'* **System**: a system route'."\n" - .'* **BGP**: a BGP route'."\n" - .'* **CEN**: a CEN route'."\n", - 'type' => 'string', - 'example' => 'Custom', - ], - 'Count' => [ - 'description' => 'The number of entries returned.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - ], - ], - ], - ], - ], - ], + 'ForwardEntryId' => ['description' => 'The ID of the DNAT entry.'."\n", 'type' => 'string', 'example' => 'fwd-119smw5tkasdf****', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => 'A4AEE536-A97A-40EB-9EBE-53A6948A6928', 'title' => ''], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidVpcId.NotFound', - 'errorMessage' => '%s [%s] is not found.', - ], - [ - 'errorCode' => 'IllegalParam.RouteEntryType', - 'errorMessage' => 'The parameter of RouteEntryType is illegal.', - ], + ['errorCode' => 'UnsupportedFeature.PrivateLinkEnabled', 'errorMessage' => 'The feature of PrivateLinkEnabled is not supported.', 'description' => ''], + ['errorCode' => 'UnsupportedFeature.PortSegment', 'errorMessage' => 'The feature of PortSegment is not supported.', 'description' => ''], + ['errorCode' => 'ExclusiveParam.%sAnd%s', 'errorMessage' => 'The param of %s and %s are mutually exclusive.', 'description' => 'You cannot specify %s and %s at the same time.'], + ['errorCode' => 'DuplicatedParam.InternalPort', 'errorMessage' => 'The param of %s is duplicated.', 'description' => 'Duplicate or occupied InternalPort parameter'], + ['errorCode' => 'DuplicatedParam.ExternalPort', 'errorMessage' => 'The param of %s is duplicated.', 'description' => 'The DNAT public network port has been used repeatedly.'], + ['errorCode' => 'OperationFailed.AnyPortConfig', 'errorMessage' => 'Operation failed because any port correspondence any protocol', 'description' => 'The operation failed. There is a conflict with another entry, any port or any protocol type.'], + ['errorCode' => 'OperationUnsupported.ForwardEntry', 'errorMessage' => 'Duplicated destination ip port is unsupported.', 'description' => 'You cannot specify duplicate destination IP addresses or destination ports.'], + ['errorCode' => 'InvalidIp.NotInNatgw', 'errorMessage' => 'The specified Ip not belong to natgateway.', 'description' => ''], + ['errorCode' => 'QuotaExceeded.ForwardEntry', 'errorMessage' => 'The quota of %s is exceeded, usage %s/%s.', 'description' => ''], + ['errorCode' => 'IncorrectStatus.NatIp', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => 'The status of NatIp is incorrect.'], + ['errorCode' => 'Forbidden.IpHasBeenUsedInSnat', 'errorMessage' => 'The source ip can\'t be used. Because it has been used in snat.', 'description' => ''], + ['errorCode' => 'InvalidExternalIp.Malformed', 'errorMessage' => 'The specified ExternalIp is not a valid IP address.', 'description' => ''], + ['errorCode' => 'InvalidInternalIp.Malformed', 'errorMessage' => 'The specified InternalIp is not a valid IP address.', 'description' => ''], + ['errorCode' => 'InvalidExternalPort.Malformed', 'errorMessage' => 'The specified ExternalPort is not a valid port.', 'description' => ''], + ['errorCode' => 'InvalidInternalPort.Malformed', 'errorMessage' => 'The specified InternalPort is not a valid port.', 'description' => ''], + ['errorCode' => 'Forbidden.DestnationIpOutOfVpcCIDR', 'errorMessage' => 'The specified Internal Ip is Out of VPC CIDR.', 'description' => ''], + ['errorCode' => 'Forbidden.DestinationIpOutOfVswitchCIDR', 'errorMessage' => 'The specified Internal Ip is Out of VSwitch CIDR.', 'description' => ''], + ['errorCode' => 'InvalidProtocal.ValueNotSupported', 'errorMessage' => 'The specified IpProtocol does not support.', 'description' => ''], + ['errorCode' => 'IncorretForwardEntryStatus', 'errorMessage' => 'Some Forward entry status blocked this operation..', 'description' => ''], + ['errorCode' => 'ForwardEntry.Duplicated', 'errorMessage' => 'The specified ExternalIp, IpProtocol, ExternalPort,InternalIp, InternalPort is duplicated', 'description' => ''], + ['errorCode' => 'Forbidden.ExternalIp.UsedInSnatTable', 'errorMessage' => 'The specified ExternalIp is already used in SnatTable', 'description' => ''], + ['errorCode' => 'Forbindden', 'errorMessage' => 'The specified Instance already bind eip', 'description' => ''], + ['errorCode' => 'Forbidden.InternalIpOutOfVpcCIDR', 'errorMessage' => 'The specified Internal Ip is Out of VPC CIDR.', 'description' => ''], + ['errorCode' => 'Invalid.natgwNotExist', 'errorMessage' => 'The specified natgateway not exist.', 'description' => ''], + ['errorCode' => 'MissingParameter', 'errorMessage' => 'Missing mandatory parameter', 'description' => ''], + ['errorCode' => 'AnyPort.PortMustBeZero', 'errorMessage' => 'any port port must be zero.', 'description' => ''], + ['errorCode' => 'InvalidParameter.Name.Malformed', 'errorMessage' => 'The specified Name is not valid.', 'description' => ''], + ['errorCode' => 'IncorrectStatus.ForwardEntry', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => 'The DNAT entry to be deleted is in an invalid state.'], + ['errorCode' => 'Duplicated.DestinationPort', 'errorMessage' => 'The specified param DestinationPort is duplicated.', 'description' => ''], + ['errorCode' => 'OperationUnsupported.EipInBinding', 'errorMessage' => 'Create snat entry with eip in associating status is unsupported.', 'description' => 'You cannot use an associated EIP when you create an SNAT entry.'], + ['errorCode' => 'QuotaExceeded.ForwardEntrySessionManytoOne', 'errorMessage' => 'The dnat session quota is exceed.', 'description' => 'The number of DNAT sessions exceeds the upper limit.'], + ['errorCode' => 'TaskConflict', 'errorMessage' => 'The operation is too frequent, please wait a moment and try again.', 'description' => 'Your requests are too frequent. Try again later.'], + ['errorCode' => 'OperationFailed.DnatPortRangeLimit', 'errorMessage' => 'The maximum number of port ranges that can be specified is exceeded.', 'description' => 'The maximum number of port ranges that can be specified is exceeded.'], + ['errorCode' => 'IncorrectStatus.NATGW', 'errorMessage' => 'NATGW status is invalid.', 'description' => 'The NAT gateway is in an invalid state.'], + ['errorCode' => 'OperationFailed.ForwardEntryNotAllowSrcIpEqualDstIp', 'errorMessage' => 'The source IP of forward entry is not allowed to equal destination IP.', 'description' => 'The public IP address of the DNAT entry is not allowed to be equal to the private IP address.'], + ], + 404 => [ + ['errorCode' => 'ResourceNotFound.NatIp', 'errorMessage' => 'The specified resource of %s is not found.', 'description' => ''], + ['errorCode' => 'InvalidRegionId.NotFound', 'errorMessage' => 'The specified RegionId does not exist in our records.', 'description' => ''], + ['errorCode' => 'InvalidForwardTableId.NotFound', 'errorMessage' => 'Specified forward table does not exist.', 'description' => ''], + ['errorCode' => 'InvalidExternalIp.NotFound', 'errorMessage' => 'Specified External Ip address does not found on the VRouter', 'description' => ''], + ], + 500 => [ + ['errorCode' => 'System.Error', 'errorMessage' => 'ERROR SYSTEM ERROR.', 'description' => ''], + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error.', 'description' => ''], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"DC668356-BCB4-42FD-9BC3-FA2B2E04B634\\",\\n \\"RouteEntrySummarys\\": [\\n {\\n \\"RouteTableId\\": \\"vtb-bp145q7glnuzdvzu2****\\",\\n \\"EntrySummarys\\": [\\n {\\n \\"RouteEntryType\\": \\"Custom\\",\\n \\"Count\\": 10\\n }\\n ]\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\n DC668356-BCB4-42FD-9BC3-FA2B2E04B634\\n \\n vtb-bp145q7glnuzdvzu2****\\n \\n Custom\\n 10\\n \\n \\n","errorExample":""}]', - 'title' => 'GetVpcRouteEntrySummary', + 'title' => 'CreateForwardEntry', + 'description' => '## [](#)'."\n" + ."\n" + .'Each DNAT entry consists of the following parameters: **ExternalIp**, **ExternalPort**, **IpProtocol**, **InternalIp**, and **InternalPort**. After you add a DNAT entry, the NAT gateway forwards packets over the specified protocol from **ExternalIp:ExternalPort** to **InternalIp:InternalPort** and sends responses back through the same route.'."\n" + ."\n" + .'When you call this operation, take note of the following limits:'."\n" + ."\n" + .'* **CreateForwardEntry** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call the [DescribeForwardTableEntries](~~36053~~) operation to query the status of the task.'."\n" + ."\n" + .' * If the DNAT entry is in the **Pending** state, the system is adding the DNAT entry. You can only query the DNAT entry, but cannot perform other operations.'."\n" + .' * If the DNAT entry is in the **Available** state, the DNAT entry is added.'."\n" + ."\n" + .'* You cannot repeatedly call the **CreateForwardEntry** operation to add a DNAT entry within a specific period of time.'."\n" + ."\n" + .'* All combinations of **ExternalIp**, **ExternalPort**, and **IpProtocol** used in DNAT entries must be unique. You cannot distribute requests to more than one Elastic Compute Service (ECS) instance if these requests are initiated from the same source IP address, received on the same port, and use the same protocol.'."\n" + ."\n" + .'* The combinations of **IpProtocol**, **InternalIp**, and **InternalPort** must be unique.'."\n" + ."\n" + .'* If one or more DNAT entries in the DNAT table are in the **Pending** or **Modifying** state, you cannot add DNAT entries to the DNAT table.'."\n" + ."\n" + .'* You can add at most 100 DNAT entries to a DNAT table.'."\n" + ."\n" + .'* For an elastic IP address (EIP) used by an Internet NAT gateway or a NAT IP address used by a Virtual Private Cloud (VPC) NAT gateway, take note of the following limit: If the IP address has IP mapping enabled and is specified in a DNAT entry, the IP address cannot be used by another DNAT or SNAT entry.'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2024-12-03T02:23:00.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2024-10-23T06:17:17.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-01-18T07:07:57.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-06-14T03:06:38.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-03-30T03:54:31.000Z', 'description' => 'Error codes changed, Response parameters changed'], + ['createdAt' => '2023-03-01T06:45:50.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2022-12-02T02:41:29.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2022-11-07T11:48:27.000Z', 'description' => 'Error codes changed'], + ], + 'ramActions' => [], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"ForwardEntryId\\": \\"fwd-119smw5tkasdf****\\",\\n \\"RequestId\\": \\"A4AEE536-A97A-40EB-9EBE-53A6948A6928\\"\\n}","type":"json"}]', + 'translator' => 'manual', ], - 'DescribeRouteTables' => [ - 'summary' => 'Queries route tables.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'CreateFullNatEntry' => [ + 'summary' => 'Adds a FULLNAT entry to the FULLNAT table.', + 'methods' => ['post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', - 'deprecated' => true, - 'systemTags' => [ - 'operationType' => 'list', - 'riskType' => 'none', - 'chargeType' => 'free', - ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'create', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ - 'name' => 'RegionId', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the VPC to which the route table belongs.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'You can use the client to generate a value, and you must make sure that each request has a unique token value. The client token can contain only ASCII characters.'."\n" + ."\n" + .'> If you do not specify this parameter, the system automatically uses the value of **RequestId** as the value of **ClientToken**. The **request ID** may be different for each request.'."\n", 'type' => 'string', 'required' => false, 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3FF3898', 'title' => ''], ], [ - 'name' => 'VRouterId', + 'name' => 'FullNatTableId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the vRouter.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'vtb-bp1krxxzp0c29fmon****', - ], + 'schema' => ['title' => 'FullNAT条目所属的FullNAT列表的ID。', 'description' => 'The ID of the FULLNAT table to which the FULLNAT entry belongs.'."\n", 'type' => 'string', 'required' => true, 'example' => 'fulltb-gw88z7hhlv43rmb26****'], ], [ - 'name' => 'RouteTableId', + 'name' => 'NetworkInterfaceId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the route table that you want to query.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'rtb-bp12mw1f8k3jgygk9****', - ], + 'schema' => ['description' => 'The elastic network interface (ENI) ID.'."\n", 'type' => 'string', 'required' => true, 'example' => 'eni-gw8g131ef2dnbu3k****', 'title' => ''], ], [ - 'name' => 'RouterType', + 'name' => 'NatIp', 'in' => 'query', - 'schema' => [ - 'description' => 'The type of the router to which the route table belongs. Valid values:'."\n" - ."\n" - .'* **VRouter** (default)'."\n" - .'* **VBR**'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'VRouter', - ], + 'schema' => ['title' => '提供入方向访问的IP地址,该公网IP需要是当前VpcNat下的NatIP', 'description' => 'The NAT IP address that provides address translation.'."\n", 'type' => 'string', 'required' => true, 'example' => '192.168.XX.XX'], ], [ - 'name' => 'RouterId', + 'name' => 'NatIpPort', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the router to which the route table belongs.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'vtb-bp1krxxzp0c29fmon****', - ], + 'schema' => ['title' => '需要进行端口转发的外部端口,取值范围:1~65535。', 'description' => 'The frontend port to be modified in the mapping of FULLNAT port. Valid values: **1** to **65535**.'."\n", 'type' => 'string', 'required' => false, 'example' => '80'], ], [ - 'name' => 'Type', + 'name' => 'AccessIp', 'in' => 'query', - 'schema' => [ - 'description' => 'The route type. Valid values:'."\n" - ."\n" - .'* **Custom**'."\n" - .'* **System**'."\n" - .'* **BGP**'."\n" - .'* **CEN**'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'custom', - ], + 'schema' => ['title' => '需要进行转发的后端IP', 'description' => 'The backend IP address to be modified in FULLNAT address translation.'."\n", 'type' => 'string', 'required' => false, 'example' => '192.168.XX.XX'], ], [ - 'name' => 'RouteTableName', + 'name' => 'AccessPort', 'in' => 'query', - 'schema' => [ - 'description' => 'The name of the route table that you want to query.'."\n" - ."\n" - .'The name must be 2 to 128 characters in length, and can contain letters, digits, periods (.), underscores (\\_), and hyphens (-).'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'RouteTable-1', - ], + 'schema' => ['title' => '需要进行端口转发的内部端口,取值范围:1~65535。', 'description' => 'The backend port to be modified in the mapping of FULLNAT port. Valid values: **1** to **65535**.'."\n", 'type' => 'string', 'required' => true, 'example' => '80'], ], [ - 'name' => 'ResourceGroupId', + 'name' => 'IpProtocol', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the resource group to which the route table to be queried belongs.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'rg-acfmxazccb4ph****', - ], + 'schema' => ['title' => '协议类型,取值: • TCP:转发TCP协议的报文。 • UDP:转发UDP协议的报文。', 'description' => 'The protocol of the packets that are forwarded by the port. Valid values:'."\n" + ."\n" + .'* **TCP**'."\n" + .'* **UDP**'."\n", 'type' => 'string', 'required' => true, 'example' => 'TCP'], ], [ - 'name' => 'PageNumber', + 'name' => 'FullNatEntryName', 'in' => 'query', - 'schema' => [ - 'description' => 'The page number. Default value: 1.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'minimum' => '1', - 'example' => '1', - 'default' => '1', - ], + 'schema' => ['title' => 'FULLNAT规则的名称。 长度为2~128个字符,必须以大小写字母或中文开头,但不能以http://或https://开头。', 'description' => 'The FULLNAT entry name. The name must be 2 to 128 characters in length. It must start with a letter but cannot start with http:// or https://.'."\n", 'type' => 'string', 'required' => false, 'example' => 'test'], ], [ - 'name' => 'PageSize', + 'name' => 'FullNatEntryDescription', 'in' => 'query', - 'schema' => [ - 'description' => 'The number of entries per page. Maximum value: **50**. Default value: **10**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '50', - 'minimum' => '1', - 'example' => '10', - 'default' => '10', - ], + 'schema' => ['description' => 'The description of the FULLNAT entry.'."\n" + ."\n" + .'This parameter is optional. If you enter a description, the description must be 2 to 256 characters in length, and cannot start with `http://` or `https://`.'."\n", 'type' => 'string', 'required' => false, 'example' => 'abc', 'title' => ''], + ], + [ + 'name' => 'DryRun', + 'in' => 'query', + 'schema' => ['description' => 'Specifies whether to only precheck this request. Valid values:'."\n" + ."\n" + .'* **true**: prechecks the request without adding the FULLNAT entry. The system checks whether your AccessKey pair is valid, whether RAM users are granted required permissions, and whether the required parameters are set. If the request fails to pass the precheck, an error code is returned. If the request passes the precheck, the `DryRunOperation` error code is returned.'."\n" + .'* **false**: sends the API request. This is the default value. After the request passes the precheck, a 2XX HTTP status code is returned and the FULLNAT entry is added.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => ['description' => 'The region ID of the Virtual Private Cloud (VPC) NAT gateway to which the FULLNAT entry to be added belongs.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'example' => 'eu-central-1', 'title' => ''], + ], + [ + 'name' => 'AccessDomain', + 'in' => 'query', + 'schema' => ['description' => 'The backend domain name for FULLNAT address translation.', 'type' => 'string', 'required' => false, 'example' => 'xxx.com', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => 'The number of entries per page.'."\n", + 'title' => 'Schema of Response', + 'description' => 'Schema of Response'."\n", 'type' => 'object', 'properties' => [ - 'PageSize' => [ - 'description' => 'The number of entries per page.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => 'DC668356-BCB4-42FD-9BC3-FA2B2E04B634', - ], - 'PageNumber' => [ - 'description' => 'The page number.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'TotalCount' => [ - 'description' => 'The total number of entries returned.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'RouteTables' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'RouteTable' => [ - 'description' => 'The detailed information about the route tables.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'CreationTime' => [ - 'description' => 'The time when the route table was created.'."\n" - ."\n" - .'The time is displayed in the `YYYY-MM-DDThh:mm:ssZ` format in UTC.'."\n", - 'type' => 'string', - 'example' => '2017-08-22T10:40:25Z', - ], - 'Status' => [ - 'description' => 'The status of the route table. Valid values:'."\n" - ."\n" - .'* **Pending**'."\n" - .'* **Available**'."\n", - 'type' => 'string', - 'example' => 'Available', - ], - 'VRouterId' => [ - 'description' => 'The vRouter ID.'."\n", - 'type' => 'string', - 'example' => 'vrt-bp1lhl0taikrteen8****', - ], - 'RouteTableType' => [ - 'description' => 'The type of the route table. Valid values:'."\n" - ."\n" - .'* **Custom**'."\n" - .'* **System**'."\n", - 'type' => 'string', - 'example' => 'System', - ], - 'ResourceGroupId' => [ - 'description' => 'The ID of the resource group to which the route table belongs.'."\n", - 'type' => 'string', - 'example' => 'rg-acfmxazb4ph****', - ], - 'RouteTableId' => [ - 'description' => 'The ID of the route table.'."\n", - 'type' => 'string', - 'example' => 'vtb-bp145q7glnuzdvzu2****', - ], - 'RouteEntrys' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'RouteEntry' => [ - 'description' => 'The information about the route.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'Type' => [ - 'description' => 'The route type. Valid values:'."\n" - ."\n" - .'* **Custom**'."\n" - .'* **System**'."\n" - .'* **BGP**'."\n" - .'* **CEN**'."\n", - 'type' => 'string', - 'example' => 'System', - ], - 'Status' => [ - 'description' => 'The route status. Valid values:'."\n" - ."\n" - .'* **Pending**'."\n" - .'* **Available**'."\n" - .'* **Modifying**'."\n", - 'type' => 'string', - 'example' => 'Pending', - ], - 'NextHopType' => [ - 'description' => 'The type of the next hop. Valid values:'."\n" - ."\n" - .'* **Instance** (default): an Elastic Compute Service (ECS) instance'."\n" - .'* **HaVip**: a high-availability virtual IP address (HaVip).'."\n" - .'* **VpnGateway**: a VPN gateway'."\n" - .'* **NatGateway**: a NAT gateway'."\n" - .'* **NetworkInterface**: a secondary elastic network interface (ENI)'."\n" - .'* **RouterInterface**: a router interface'."\n" - .'* **IPv6Gateway**: an IPv6 gateway'."\n" - .'* **Attachment**: a transit router', - 'type' => 'string', - 'example' => 'local', - ], - 'RouteEntryName' => [ - 'description' => 'The route name.'."\n" - ."\n" - .'The name must be 2 to 128 characters in length, and can contain letters, digits, periods (.), underscores (\\_), and hyphens (-).'."\n", - 'type' => 'string', - 'example' => 'test', - ], - 'RouteEntryId' => [ - 'description' => 'The ID of the route.'."\n", - 'type' => 'string', - 'example' => 'rte-bp1mnnr2al0naomnpxxx', - ], - 'InstanceId' => [ - 'description' => 'The ID of the instance associated with the next hop.'."\n", - 'type' => 'string', - 'example' => 'ri-2zeo3xzyf38r4urzd****', - ], - 'RouteTableId' => [ - 'description' => 'The route table ID.'."\n", - 'type' => 'string', - 'example' => 'vtb-bp145q7glnuzdvzu2****', - ], - 'Description' => [ - 'description' => 'The description of the route. The description must be 2 to 256 characters in length. It must start with a letter but cannot start with `http://` or `https://`.'."\n", - 'type' => 'string', - 'example' => 'RouteEntryDescription', - ], - 'DestinationCidrBlock' => [ - 'description' => 'The destination CIDR block of the route. The destination CIDR block supports IPv4 and IPv6. Make sure that the destination CIDR block meets the following requirements:'."\n" - ."\n" - .'* The destination CIDR block is not 100.64.0.0/10 or a subset of 100.64.0.0/10.'."\n" - .'* The destination CIDR block of each route in the route table is unique.'."\n", - 'type' => 'string', - 'example' => '192.168.0.1/24', - ], - 'NextHops' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'NextHop' => [ - 'description' => 'The information about the next hop.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'NextHopId' => [ - 'description' => 'The ID of the next hop.'."\n", - 'type' => 'string', - 'example' => 'ri-2zeo3xzyf38r4urzdpvqw', - ], - 'Weight' => [ - 'description' => 'The weight of the route.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '80', - ], - 'NextHopType' => [ - 'description' => 'The type of the next hop. Valid values:'."\n" - ."\n" - .'* **Instance**: an ECS instance'."\n" - .'* **HaVip**: an HaVip'."\n" - .'* **VpnGateway**: a VPN gateway'."\n" - .'* **NatGateway**: a NAT gateway'."\n" - .'* **NetworkInterface**: a secondary ENI'."\n" - .'* **RouterInterface**: a router interface'."\n" - .'* **IPv6Gateway**: an IPv6 gateway'."\n" - .'* **Attachment**: a transit router', - 'type' => 'string', - 'example' => 'HaVip', - ], - 'Enabled' => [ - 'description' => 'Indicates whether the route is available. Valid values:'."\n" - ."\n" - .'* **0**: unavailable'."\n" - .'* **1**: available'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '0', - ], - ], - ], - ], - ], - ], - ], - ], - ], - ], - ], - 'VSwitchIds' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'VSwitchId' => [ - 'description' => 'The vSwitch ID.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The vSwitch ID.'."\n", - 'type' => 'string', - 'example' => 'vsw-bp14cagpfysr29fe****', - ], - ], - ], - ], - ], - ], - ], - ], - ], + 'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '2315DEB7-5E92-423A-91F7-4C1EC9AD97C3'], + 'FullNatEntryId' => ['description' => 'The FULLNAT entry ID.'."\n", 'type' => 'string', 'example' => 'fullnat-gw8fz23jezpbblf1j****', 'title' => ''], ], + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidVRouterId.NotFound', - 'errorMessage' => 'Specified virtual router does not exist.', - ], - [ - 'errorCode' => 'OperationFailed.DescribeCenRoute', - 'errorMessage' => 'An error occurred while querying the CEN route entry.', - ], - [ - 'errorCode' => 'OperationFailed.VRouterNotExist', - 'errorMessage' => 'Operation failed because the VRouter does not exist.', - ], - [ - 'errorCode' => 'IllegalParam.Type', - 'errorMessage' => 'The parameter of Type is illegal.', - ], + ['errorCode' => 'ResourceNotFound.NatIp', 'errorMessage' => 'The specified resource of %s is not found.', 'description' => 'The specified NatIp parameter is not found.'], + ['errorCode' => 'IllegalParamFormat.NatIp', 'errorMessage' => 'The param format of %s[%s] is illegal.', 'description' => 'The parameter format of NatIp is invalid. '], + ['errorCode' => 'UnsupportedFeature.PrivateLinkMode', 'errorMessage' => 'The feature of %s is not supported.', 'description' => 'The feature of reverse access is not supported.'], + ['errorCode' => 'QuotaExceeded.FullNatEntry', 'errorMessage' => 'The quota of %s is exceeded, usage %s/%s.', 'description' => 'The quota of FullNatEntry has been reached.'], + ['errorCode' => 'IncorrectStatus.NatIp', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => 'The status of NatIp is incorrect.'], + ['errorCode' => 'ResourceAlreadyExist.FullNatEntry', 'errorMessage' => 'The specified resource of %s is already exist.', 'description' => 'The FULLNAT rule already exists.'], + ['errorCode' => 'IncorrectStatus.NetworkInterface', 'errorMessage' => 'The status of network interface is incorrect.', 'description' => 'The status of the ENI is invalid.'], + ['errorCode' => 'OperationFailed.AllocateNatIpPortFailed', 'errorMessage' => 'NatIpPort allocation failed.', 'description' => 'NatIpPort allocation failed.'], + ['errorCode' => 'IllegalParam.NetworkInterfaceId', 'errorMessage' => 'The param of NetworkInterfaceId is illegal.', 'description' => 'Invalid NetworkInterfaceId value.'], + ['errorCode' => 'IllegalParam.AccessDomain', 'errorMessage' => 'The request parameter AccessDomain is illegal.', 'description' => 'The AccessDomain parameter in the request parameter is invalid.'], + ['errorCode' => 'ExclusiveParam.AccessIpAndAccessDomain', 'errorMessage' => 'The specified AccessIp and AccessDomain are mutually exclusive.', 'description' => 'The specified input AccessIp conflicts with the AccessDomain.'], + ['errorCode' => 'InstanceUnsupported.FullNatDomain', 'errorMessage' => 'The current instance does not support the configuration of the FullNat rule domain name.', 'description' => 'The current instance does not support the configuration of the FullNat rule domain name.'], + ['errorCode' => 'ZoneUnsupported.FullNatDomain', 'errorMessage' => 'The current zone does not support the configuration of the FullNat rule domain name.', 'description' => 'The current zone does not support the configuration of the FullNat rule domain name.'], ], - ], - 'staticInfo' => [ - 'substitutions' => [ - 'Vpc::2016-04-28::DescribeRouteTableList', + 404 => [ + ['errorCode' => 'ResourceNotFound.NatGateway', 'errorMessage' => 'The NatGateway instance not exist.', 'description' => 'The NAT gateway does not exist.'], + ], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', 'description' => 'An internal error occurred.'], ], - 'returnType' => 'synchronous', ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"PageSize\\": 10,\\n \\"RequestId\\": \\"DC668356-BCB4-42FD-9BC3-FA2B2E04B634\\",\\n \\"PageNumber\\": 1,\\n \\"TotalCount\\": 1,\\n \\"RouteTables\\": {\\n \\"RouteTable\\": [\\n {\\n \\"CreationTime\\": \\"2022-08-22T10:40:25Z\\",\\n \\"Status\\": \\"Available\\",\\n \\"VRouterId\\": \\"vrt-bp1lhl0taikrteen****\\",\\n \\"RouteTableType\\": \\"Custom\\",\\n \\"ResourceGroupId\\": \\"rg-acfmxazb4ph****\\",\\n \\"RouteTableId\\": \\"vtb-bp145q7glnuzdvzu2****\\",\\n \\"RouteEntrys\\": {\\n \\"RouteEntry\\": [\\n {\\n \\"Type\\": \\"Custom\\",\\n \\"Status\\": \\"Available\\",\\n \\"NextHopType\\": \\"Instance\\",\\n \\"RouteEntryName\\": \\"name\\",\\n \\"RouteEntryId\\": \\"rte-bp1mnnr2al0naomnp****\\",\\n \\"InstanceId\\": \\"vpc-bp1t36rn9l53iwbsf****\\",\\n \\"RouteTableId\\": \\"vtb-bp15w5q90d2rk3bww****\\",\\n \\"Description\\": \\"RouteEntryDescription\\",\\n \\"DestinationCidrBlock\\": \\"192.168.2.0/24\\",\\n \\"NextHops\\": {\\n \\"NextHop\\": [\\n {\\n \\"NextHopId\\": \\"vpn-bp10zyaph5cc8b7c7****\\",\\n \\"Weight\\": 100,\\n \\"NextHopType\\": \\"Instance\\",\\n \\"Enabled\\": 1\\n }\\n ]\\n }\\n }\\n ]\\n },\\n \\"VSwitchIds\\": {\\n \\"VSwitchId\\": [\\n \\"vsw-bp12mw1f8k3jgygk9****\\"\\n ]\\n }\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 10\\n DC668356-BCB4-42FD-9BC3-FA2B2E04B634\\n 1\\n 1\\n \\n 2022-08-22T10:40:25Z\\n Available\\n vrt-bp1lhl0taikrteen****\\n Custom\\n rg-acfmxazb4ph****\\n vtb-bp145q7glnuzdvzu2****\\n \\n Custom\\n Available\\n Instance\\n name\\n rte-bp1mnnr2al0naomnp****\\n vpc-bp1t36rn9l53iwbsf****\\n vtb-bp15w5q90d2rk3bww****\\n RouteEntryDescription\\n 192.168.2.0/24\\n \\n vpn-bp10zyaph5cc8b7c7****\\n 100\\n Instance\\n 1\\n \\n \\n vsw-bp12mw1f8k3jgygk9****\\n \\n","errorExample":""}]', - 'title' => 'DescribeRouteTables', + 'title' => 'CreateFullNatEntry', + 'description' => '* **CreateFullNatEntry** is an asynchronous operation. After you send a request to call this operation, the system returns a FULLNAT entry and the FULLNAT entry is being added in the backend. You can call the [ListFullNatEntries](~~348779~~) operation to query the status of a FULLNAT entry.'."\n" + ."\n" + .' * If the FULLNAT entry is in the **Creating** state, the system is adding the FULLNAT entry. You can only query the status of the FULLNAT entry, but cannot perform other operations.'."\n" + .' * If the FULLNAT entry is in the **Available** state, the FULLNAT entry is added.'."\n" + ."\n" + .'* You cannot repeatedly call the **CreateFullNatEntry** operation for the same VPN gateway within the specified period of time.', + 'changeSet' => [ + ['createdAt' => '2024-08-09T10:09:59.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-06-06T09:49:13.000Z', 'description' => 'Error codes changed, Request parameters changed'], + ['createdAt' => '2023-03-20T13:09:28.000Z', 'description' => 'Error codes changed, Response parameters changed'], + ['createdAt' => '2023-01-04T09:37:44.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2021-10-15T06:08:26.000Z', 'description' => 'Error codes changed'], + ], + 'ramActions' => [], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"2315DEB7-5E92-423A-91F7-4C1EC9AD97C3\\",\\n \\"FullNatEntryId\\": \\"fullnat-gw8fz23jezpbblf1j****\\"\\n}","type":"json"}]', + 'translator' => 'manual', ], - 'DescribeRouteEntryList' => [ - 'summary' => 'Queries information about route entries in a route table.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'CreateGlobalAccelerationInstance' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'get', - ], + 'operationType' => 'readAndWrite', + 'deprecated' => true, + 'systemTags' => ['operationType' => 'create', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the route table.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The region ID of the GA instance.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'example' => 'cn-hangzhou', 'docRequired' => true], ], [ - 'name' => 'RouteTableId', + 'name' => 'ServiceLocation', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the route table that you want to query.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'vtb-bp1r9pvl4xen8s9ju****', - ], + 'schema' => ['description' => 'The acceleration area. Valid values:'."\n" + ."\n" + .'* **china-mainland**'."\n" + .'* **north-america**'."\n" + .'* **asia-pacific**'."\n" + .'* **europe**'."\n", 'type' => 'string', 'required' => true, 'example' => 'china-mainland', 'docRequired' => true], ], [ - 'name' => 'RouteEntryId', + 'name' => 'Bandwidth', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the route that you want to query.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'rte-bp1mnnr2al0naomnp****', - ], + 'schema' => ['description' => 'The maximum bandwidth of the GA instance. Set the value to **10**. Unit: Mbit/s.'."\n", 'type' => 'string', 'required' => true, 'example' => '10', 'docRequired' => true], ], [ - 'name' => 'DestinationCidrBlock', + 'name' => 'BandwidthType', 'in' => 'query', - 'schema' => [ - 'description' => 'The destination CIDR block of the route. IPv4 and IPv6 CIDR blocks are supported.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '192.168.2.0/24', - ], + 'schema' => ['description' => 'The bandwidth type. Valid values:'."\n" + ."\n" + .'* **Sharing**'."\n" + .'* **Exclusive**'."\n", 'type' => 'string', 'required' => false, 'example' => 'Exclusive'], ], [ - 'name' => 'RouteEntryName', + 'name' => 'Name', 'in' => 'query', - 'schema' => [ - 'description' => 'The name of the route entry.'."\n" - ."\n" - .'The name must be 1 to 128 characters in length and cannot start with `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'abc', - ], + 'schema' => ['description' => 'The name of the GA instance.'."\n" + ."\n" + .'The name must be 2 to 128 characters in length and can contain letters, digits, periods (.), underscores (\\_), and hyphens (-). It must start with a letter and cannot start with `http://` or `https://`.'."\n", 'type' => 'string', 'required' => false, 'example' => 'GA-1'], ], [ - 'name' => 'IpVersion', + 'name' => 'Description', 'in' => 'query', - 'schema' => [ - 'description' => 'The IP version. Valid values:'."\n" - ."\n" - .'* **IPv4**'."\n" - .'* **IPv6**'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'IPv4', - ], + 'schema' => ['description' => 'The description of the GA instance.'."\n" + ."\n" + .'The description must be 2 to 256 characters in length. It must start with a letter but cannot start with `http://` or `https://`.'."\n", 'type' => 'string', 'required' => false, 'example' => 'My GA'], ], [ - 'name' => 'RouteEntryType', + 'name' => 'ClientToken', 'in' => 'query', + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'You can use the client to generate the value, but you must make sure that it is unique among different requests. The token can contain only ASCII characters and cannot exceed 64 characters in length.'."\n", 'type' => 'string', 'required' => false, 'example' => '02fb3da4-130e-11e9-8e44-0016e04115b'], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => 'The route type. Valid values:'."\n" - ."\n" - .'* **Custom**: custom routes.'."\n" - .'* **System**: system routes.'."\n" - .'* **BGP**: BGP routes.'."\n" - .'* **CEN**: Cloud Enterprise Network (CEN) routes.'."\n" - .'* **ECR**: Express Connect Router (ECR) routes.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'System', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '4EC47282-1B74-4534-BD0E-403F3EE64CAF'], + 'GlobalAccelerationInstanceId' => ['description' => 'The ID of the GA instance.'."\n", 'type' => 'string', 'example' => 'ga-bp1fi6sq7npnicmjj****'], + 'IpAddress' => ['description' => 'The public IP address of the GA instance.'."\n" + ."\n" + .'If **BandwidthType** is set to **Sharing**, this parameter is not returned.'."\n", 'type' => 'string', 'example' => '12.xx.xx.78'], + ], ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InvalidBandwidth.ValueNotSupported', 'errorMessage' => 'The specified Bandwidth is not supported.', 'description' => ''], + ['errorCode' => 'InvalidServiceLocation.ValueNotSupported', 'errorMessage' => 'The specified ServiceLocation is not supported.', 'description' => ''], + ['errorCode' => 'QuotaExceeded.GlobalAccelerationInstance', 'errorMessage' => 'GlobalAccelerationInstance quota exceeded.', 'description' => ''], + ['errorCode' => 'InvalidGlobalAccelerationInstanceName.Malformed', 'errorMessage' => 'The specified Name is not valid.', 'description' => ''], + ['errorCode' => 'InvalidGlobalAccelerationInstanceDescription.Malformed', 'errorMessage' => 'The specified Description is not valid.', 'description' => ''], + ['errorCode' => 'OperationFailed.UnpaidBillsExist', 'errorMessage' => 'The account has unpaid bills. Please pay your overdue bill first.', 'description' => 'This account has unpaid orders.'], + ], + 404 => [ + ['errorCode' => 'InvalidRegionId.NotFound', 'errorMessage' => 'The specified region is not supported.', 'description' => ''], + ], + ], + 'staticInfo' => ['noSubstitutionReason' => '无替代API,历史原因导致该API被标记为弃用。'], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"4EC47282-1B74-4534-BD0E-403F3EE64CAF\\",\\n \\"GlobalAccelerationInstanceId\\": \\"ga-bp1fi6sq7npnicmjj****\\",\\n \\"IpAddress\\": \\"12.xx.xx.78\\"\\n}","errorExample":"\\n\\n\\tga-t4nluhu6\\n\\t12.34.56.78\\n\\t21AAFD16-F784-4BFB-XXXX-XXXXXXXX\\n"},{"type":"xml","example":"\\n\\tga-t4nluhu****\\n\\t12.34.56.78\\n\\t4EC47282-1B74-4534-BD0E-403F3EE64CAF\\n","errorExample":"{\\n \\"GlobalAccelerationInstanceId\\": \\"ga-t4nluhu6\\",\\n \\"IpAddress\\": \\"12.34.56.78\\",\\n \\"RequestId\\": \\"21AAFD16-F784-4BFB-XXXX-XXXXXXXX\\"\\n }"}]', + 'title' => 'CreateGlobalAccelerationInstance', + 'summary' => 'Creates a Global Accelerator (GA) instance.', + 'description' => '## Usage notes'."\n" + ."\n" + .'You can call this operation to create only pay-as-you-go GA instances.'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [], + ], + 'CreateHaVip' => [ + 'summary' => 'Creates a high-availability virtual IP address (HAVIP).', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'readAndWrite', + 'systemTags' => ['operationType' => 'create', 'riskType' => 'none', 'chargeType' => 'free'], + 'parameters' => [ [ - 'name' => 'NextHopId', + 'name' => 'Name', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the next hop.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'vpn-bp10zyaph5cc8b7c7****', - ], + 'schema' => ['description' => 'The name of the HAVIP.'."\n" + ."\n" + .'The name must be 1 to 128 characters in length and cannot start with `http://` or `https://`.', 'type' => 'string', 'required' => false, 'example' => 'test', 'title' => ''], ], [ - 'name' => 'NextHopType', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The next hop type. Valid values:'."\n" - ."\n" - .'* **Instance**: an Elastic Compute Service (ECS) instance. This is the default value.'."\n" - .'* **HaVip**: a high-availability virtual IP address (HaVip).'."\n" - .'* **VpnGateway**: a VPN gateway.'."\n" - .'* **NatGateway**: a NAT gateway.'."\n" - .'* **NetworkInterface**: a secondary elastic network interface (ENI).'."\n" - .'* **RouterInterface**: a router interface.'."\n" - .'* **IPv6Gateway**: an IPv6 gateway.'."\n" - .'* **Attachment**: a transit router.'."\n" - .'* **Ipv4Gateway**: an IPv4 gateway.'."\n" - .'* **GatewayEndpoint**: a gateway endpoint.'."\n" - .'* **CenBasic**: CEN does not support transit routers.'."\n" - .'* **Ecr**: Express Connect Router (ECR).', - 'type' => 'string', - 'required' => false, - 'example' => 'Instance', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'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.'."\n" + ."\n" + .'> If you do not specify this parameter, the system automatically uses the **RequestId** as the **ClientToken**. The **RequestId** may be different for each API request.', 'type' => 'string', 'required' => false, 'example' => '0c593ea1-3bea-11e9-b96b-88e9fe637760', 'title' => ''], ], [ - 'name' => 'MaxResult', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The number of entries per page. Valid values: **1** to **100**. Default value: **10**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '500', - 'example' => '10', - 'default' => '100', - ], + 'schema' => ['description' => 'The region ID of the HAVIP. You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'NextToken', + 'name' => 'VSwitchId', 'in' => 'query', - 'schema' => [ - 'description' => 'The pagination token that is used in the next request to retrieve a new page of results. Valid values:'."\n" - ."\n" - .'* You do not need to specify this parameter for the first request.'."\n" - .'* You must specify the token that is obtained from the previous query as the value of NextToken.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', - ], + 'schema' => ['description' => 'The ID of the vSwitch to which the HAVIP belongs.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'vsw-asdfjlnaue4g****', 'title' => ''], ], [ - 'name' => 'RegionId', + 'name' => 'IpAddress', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the route table.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The IP address of the HAVIP.'."\n" + ."\n" + .'The specified IP address must be an idle IP address in vSwitch CIDR block of the vSwitch. If you do not specify this parameter, an idle IP address is randomly assigned from vSwitch CIDR block of the specified vSwitch.', 'type' => 'string', 'required' => false, 'example' => '192.XX.XX.10', 'title' => ''], ], [ - 'name' => 'ServiceType', + 'name' => 'Description', 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to host the route. If the parameter is empty, the route is not hosted.'."\n" - ."\n" - .'Set the value to **TR**, which specifies that the route is hosted by a transit router.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'TR', - ], + 'schema' => ['description' => 'The description of the HAVIP.'."\n" + ."\n" + .'The description must be 1 to 255 characters in length and cannot start with `http://` or `https://`.', 'type' => 'string', 'required' => false, 'example' => 'This is my HaVip.', 'title' => ''], ], [ - 'name' => 'DestCidrBlockList', + 'name' => 'ResourceGroupId', + 'in' => 'query', + 'schema' => ['description' => 'The ID of the resource group to which the HAVIP belongs.', 'type' => 'string', 'required' => false, 'example' => 'rg-acfmxazb4ph6aiy****', 'title' => ''], + ], + [ + 'name' => 'Tag', 'in' => 'query', 'style' => 'repeatList', 'schema' => [ - 'description' => 'The destination CIDR blocks of the routes.'."\n", + 'description' => 'The tags of the resource.', 'type' => 'array', 'items' => [ - 'description' => 'The destination CIDR blocks of the routes. You can specify at most 20 destination CIDR blocks.'."\n", - 'type' => 'string', + 'description' => 'The tag.', + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => 'The tag key of the resource. You can specify up to 20 tag keys. The tag key cannot be an empty string.'."\n" + ."\n" + .'The tag key can be up to 128 characters in length and cannot start with `aliyun` or `acs:`. It cannot contain `http://` or `https://`.', 'type' => 'string', 'required' => false, 'example' => 'FinanceDept', 'title' => ''], + 'Value' => ['description' => 'The tag value of the resource. You can specify up to 20 tag values. The tag value can be an empty string.'."\n" + ."\n" + .'The tag value can be up to 128 characters in length and cannot start with `aliyun` or `acs:`. It cannot contain `http://` or `https://`.', 'type' => 'string', 'required' => false, 'example' => 'FinanceJoshua', 'title' => ''], + ], 'required' => false, - 'example' => '192.168.0.0/24', + 'title' => '', + 'example' => '', ], 'required' => false, - 'maxItems' => 200, + 'maxItems' => 21, + 'title' => '', + 'example' => '', ], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => 'The route details.'."\n", + 'description' => 'The response parameters.', 'type' => 'object', 'properties' => [ - 'NextToken' => [ - 'description' => 'A pagination token. It can be used in the next request to retrieve a new page of results. Valid values:'."\n" - ."\n" - .'* If no value is returned for **NextToken**, no next queries are sent.'."\n" - .'* If a value is returned for **NextToken**, the value is used to retrieve a new page of results.'."\n", - 'type' => 'string', - 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', - ], - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '14A07460-EBE7-47CA-9757-12CC4761D47A', - ], - 'RouteEntrys' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'RouteEntry' => [ - 'description' => 'The information about the routes.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The information about the routes.'."\n", - 'type' => 'object', - 'properties' => [ - 'Status' => [ - 'description' => 'The status of the route entry. Valid values:'."\n" - ."\n" - .'* **Pending**'."\n" - .'* **Available**'."\n" - .'* **Modifying**'."\n" - .'* **Deleting**'."\n", - 'type' => 'string', - 'example' => 'Available', - ], - 'Type' => [ - 'description' => 'The route type. Valid values:'."\n" - ."\n" - .'* **Custom**: custom routes.'."\n" - .'* **System**: system routes.'."\n" - .'* **BGP**: BGP routes.'."\n" - .'* **CEN**: CEN routes.'."\n" - .'* **ECR**: ECR routes.'."\n", - 'type' => 'string', - 'example' => 'Custom', - ], - 'IpVersion' => [ - 'description' => 'The IP version. Valid values: Valid values:'."\n" - ."\n" - .'* **ipv4**'."\n" - .'* **ipv6**'."\n", - 'type' => 'string', - 'example' => 'IPv4', - ], - 'Description' => [ - 'description' => 'The description of the route.'."\n", - 'type' => 'string', - 'example' => 'RouteEntryDescription', - ], - 'RouteEntryName' => [ - 'description' => 'The name of the route.'."\n", - 'type' => 'string', - 'example' => 'aaa', - ], - 'DestinationCidrBlock' => [ - 'description' => 'The destination CIDR block of the route.'."\n", - 'type' => 'string', - 'example' => '192.168.2.0/24', - ], - 'RouteEntryId' => [ - 'description' => 'The ID of the route.'."\n", - 'type' => 'string', - 'example' => 'rte-bp1mnnr2al0naomnp****', - ], - 'RouteTableId' => [ - 'description' => 'The ID of the route table.'."\n", - 'type' => 'string', - 'example' => 'vtb-bp15w5q90d2rk3bww****', - ], - 'GmtModified' => [ - 'description' => 'The time when the route was modified. The time follows the ISO 8601 standard in the `YYYY-MM-DDThh:mm:ssZ` format. The time is displayed in UTC.'."\n", - 'type' => 'string', - 'format' => 'iso8601', - 'example' => '2022-05-09T03:00:07Z', - ], - 'NextHops' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'NextHop' => [ - 'description' => 'The information about the next hops.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'NextHopRegionId' => [ - 'description' => 'The ID of the region where the next hop is deployed.'."\n" - ."\n" - .'> This parameter is returned when the next hop type is set to **RouterInterface**.'."\n", - 'type' => 'string', - 'example' => 'cn-hangzhou', - ], - 'Weight' => [ - 'description' => 'The weight of the route.'."\n" - ."\n" - .'> This parameter is returned when the next hop type is set to **RouterInterface**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '100', - ], - 'NextHopId' => [ - 'description' => 'The ID of the next hop.'."\n", - 'type' => 'string', - 'example' => 'vpn-bp10zyaph5cc8b7c7****', - ], - 'Enabled' => [ - 'description' => 'Indicates whether the route is available. Valid values:'."\n" - ."\n" - .'* **0**: unavailable'."\n" - .'* **1**: available'."\n" - ."\n" - .'> This parameter is returned when the next hop type is set to **RouterInterface**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'NextHopType' => [ - 'description' => 'The next hop type. Valid values:'."\n" - ."\n" - .'* **Instance**: an ECS instance.'."\n" - .'* **HaVip**: an HaVip.'."\n" - .'* **VpnGateway**: a VPN gateway.'."\n" - .'* **NatGateway**: a NAT gateway.'."\n" - .'* **NetworkInterface**: a secondary ENI.'."\n" - .'* **RouterInterface**: a router interface.'."\n" - .'* **IPv6Gateway**: an IPv6 gateway.'."\n" - .'* **Attachment**: a transit router.'."\n" - .'* **Ipv4Gateway**: an IPv4 gateway.'."\n" - .'* **GatewayEndpoint**: a gateway endpoint.'."\n" - .'* **CenBasic**: CEN does not support transit routers.'."\n" - .'* **Ecr**: ECR.', - 'type' => 'string', - 'example' => 'Instance', - ], - 'NextHopRelatedInfo' => [ - 'description' => 'The information about the next hop.'."\n", - 'type' => 'object', - 'properties' => [ - 'InstanceId' => [ - 'description' => 'The ID of the instance that is associated with the next hop.'."\n", - 'type' => 'string', - 'example' => 'vpc-bp1t36rn9l53iwbsf****', - ], - 'InstanceType' => [ - 'description' => 'The type of the instance associated with the next hop. Valid values:'."\n" - ."\n" - .'* **VPC**: a VPC'."\n" - .'* **VBR**: a VBR'."\n" - .'* **PCONN**: an Express Connect circuit'."\n", - 'type' => 'string', - 'example' => 'VPC', - ], - 'RegionId' => [ - 'description' => 'The region ID of the instance associated with the next hop. Valid values:'."\n", - 'type' => 'string', - 'example' => 'ch-hangzhou', - ], - ], - ], - ], - ], - ], - ], - ], - 'ServiceType' => [ - 'description' => 'Indicates whether the route is hosted. If the parameter is empty, the route is not hosted.'."\n" - ."\n" - .'If **TR** is returned, the route is hosted by a transit router.'."\n", - 'type' => 'string', - 'example' => 'TR', - ], - 'Origin' => [ - 'description' => 'The route origin. Valid values:'."\n" - .'* **RoutePropagation**: The route is created by a dynamic propagation source.'."\n" - .'* **SystemCreate**: The route is created by the system.'."\n" - .'* **CustomCreate**: The route is created by a user.', - 'type' => 'string', - 'example' => 'RoutePropagation', - ], - ], - ], - ], - ], - ], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'C44F62BE-9CE7-4277-B117-69243F3988BF', 'title' => ''], + 'IpAddress' => ['description' => 'The IP address of the HAVIP.', 'type' => 'string', 'example' => '192.XX.XX.10', 'title' => ''], + 'HaVipId' => ['description' => 'The ID of the HAVIP.', 'type' => 'string', 'example' => 'havip-2zeo05qre24nhrqpy****', 'title' => ''], ], + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'IllegalParam.NextToken', - 'errorMessage' => 'User nextToken is illegal.', - ], - [ - 'errorCode' => 'InvalidNextHop.NotFound', - 'errorMessage' => 'The specified route entry nexthop does not exist in our records.', - ], - [ - 'errorCode' => 'OperationFailed.QueryCenEntry', - 'errorMessage' => 'Operation is denied because getting CEN route entry has failed.', - ], - [ - 'errorCode' => 'OperationDenied.UseGatewayRouteEntryQueryInterface', - 'errorMessage' => 'Use listGatewayRouteTableEntries to describe gateway route entries.', - ], - [ - 'errorCode' => 'InvalidRouteTable.NotFound', - 'errorMessage' => 'The specified RouteTable was not found.', - ], - [ - 'errorCode' => 'IllegalParam.RouteEntryType', - 'errorMessage' => 'The parameter of RouteEntryType is illegal.', - ], - [ - 'errorCode' => 'MissingParam.context', - 'errorMessage' => 'The param of context is missing.', - ], - [ - 'errorCode' => 'MissingParam.aliUid', - 'errorMessage' => 'The param of aliUid is missing.', - ], - [ - 'errorCode' => 'MissingParam.bid', - 'errorMessage' => 'The param of bid is missing.', - ], - [ - 'errorCode' => 'IllegalParam.IpVersion', - 'errorMessage' => 'Param IpVersion illegal.', - ], - [ - 'errorCode' => 'OperationFailed.FilterParamUnderWrongRouteType', - 'errorMessage' => 'Operation failed because only custom type support filter by routeEntryId or routeEntryName', - ], - [ - 'errorCode' => 'IllegalParam.NextTokenExpired', - 'errorMessage' => 'The parameter of NextTokenExpired is illegal.', - ], + ['errorCode' => 'InvalidDescription.Malformed', 'errorMessage' => 'The specified Description is wrongly formed.', 'description' => 'The error message returned because the Description parameter is set to an invalid value.'], + ['errorCode' => 'InvalidIPAddress.OutOfRange', 'errorMessage' => 'The specified IPAddress is out of VSwitch CIDR.', 'description' => ''], + ['errorCode' => 'InvalidIPAddress.NotAvailable', 'errorMessage' => 'The specified IPAddress is not available because it is a system reserved IPAddress.', 'description' => ''], + ['errorCode' => 'InvalidIPAddress.AlreadyUsed', 'errorMessage' => 'The specified IPAddress is already used by other resource.', 'description' => ''], + ['errorCode' => 'InvalidIPAddress.Malformed', 'errorMessage' => 'The specified IPAddress is not a valid or strict address.', 'description' => 'The specified IP address is invalid.'], + ['errorCode' => 'Abs.Vpc.InvalidName.Malformed', 'errorMessage' => 'The specified Name is not valid.', 'description' => ''], + ['errorCode' => 'InvalidIPAddress.OutOfVswCIDR', 'errorMessage' => 'The specified IPAddress is out of VSwitch CIDR.', 'description' => 'The IP address does not fall within the CIDR block of the vSwitch.'], + ['errorCode' => 'InvalidIPAddress.AlreadyInUse', 'errorMessage' => 'The specified IPAddress is already used by other resource.', 'description' => 'The IP address is being used by other resources.'], + ['errorCode' => 'UnsupportedFeature.CloudBoxHaVip', 'errorMessage' => 'The HAVIP feature is not supported in cloud box.', 'description' => ''], + ['errorCode' => 'CountLimitExceed.HaVipInVpc', 'errorMessage' => 'Specified Vpc exceeds the quota of max number of ha-vip count.', 'description' => ''], + ['errorCode' => 'Forbidden.HaVip', 'errorMessage' => 'No permissions to perform operations on HAVIPs. Please apply for privilege--vpc_privilege_allow_buy_havip_instance.', 'description' => 'The error message returned because you do not have the permissions to manage the HAVIP. Go to the Quota Center page to acquire the permissions.'], + ['errorCode' => 'OperationDenied.InvalidIpReservedByVSwitch', 'errorMessage' => 'The specified ip address is the reserved address of the switch.', 'description' => ''], + ['errorCode' => 'InvalidRegionId.NotFound', 'errorMessage' => 'Specified value of "regionId" is not supported.', 'description' => ''], + ['errorCode' => 'IllegalParam.ResourceGroupId', 'errorMessage' => 'Invalid ResourceGroupld value.', 'description' => 'The specified resource group is invalid or does not exist.'], + ['errorCode' => 'IncorrectStatus.VSwitch', 'errorMessage' => 'The specified vSwitch status is invalid.', 'description' => 'The virtual switch status is abnormal.'], + ], + 403 => [ + ['errorCode' => 'CountLimitExceed.HaVipInVpc', 'errorMessage' => 'Specified Vpc exceeds the quota of max number of ha-vip count.', 'description' => ''], + ['errorCode' => 'QuotaExceeded.HaVip', 'errorMessage' => 'Living HaVip quota exceeded.', 'description' => ''], + ], + [ + ['errorCode' => 'InvalidVSwitchId.NotFound', 'errorMessage' => 'The specified VSwitch does not exist in the specified region.', 'description' => ''], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"NextToken\\": \\"FFmyTO70tTpLG6I3FmYAXGKPd****\\",\\n \\"RequestId\\": \\"14A07460-EBE7-47CA-9757-12CC4761D47A\\",\\n \\"RouteEntrys\\": {\\n \\"RouteEntry\\": [\\n {\\n \\"Status\\": \\"Available\\",\\n \\"Type\\": \\"System\\",\\n \\"IpVersion\\": \\"ipv4\\",\\n \\"Description\\": \\"RouteEntryDescription\\",\\n \\"RouteEntryName\\": \\"aaa\\",\\n \\"DestinationCidrBlock\\": \\"192.168.2.0/24\\",\\n \\"RouteEntryId\\": \\"rte-bp1mnnr2al0naomnp****\\",\\n \\"RouteTableId\\": \\"vtb-bp15w5q90d2rk3bww****\\",\\n \\"GmtModified\\": \\"2022-05-09T03:00:07Z\\",\\n \\"NextHops\\": {\\n \\"NextHop\\": [\\n {\\n \\"NextHopRegionId\\": \\"cn-hangzhou\\",\\n \\"Weight\\": 100,\\n \\"NextHopId\\": \\"vpn-bp10zyaph5cc8b7c7****\\",\\n \\"Enabled\\": 1,\\n \\"NextHopType\\": \\"Instance\\",\\n \\"NextHopRelatedInfo\\": {\\n \\"InstanceId\\": \\"vpc-bp1t36rn9l53iwbsf****\\",\\n \\"InstanceType\\": \\"VPC\\",\\n \\"RegionId\\": \\"ch-hangzhou\\"\\n }\\n }\\n ]\\n },\\n \\"ServiceType\\": \\"TR\\",\\n \\"Origin\\": \\"RoutePropagation\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n FFmyTO70tTpLG6I3FmYAXGKPd****\\n 14A07460-EBE7-47CA-9757-12CC4761D47A\\n \\n Available\\n Custom\\n ipv4\\n RouteEntryDescription\\n aaa\\n 192.168.2.0/24\\n rte-bp1mnnr2al0naomnp****\\n vtb-bp15w5q90d2rk3bww****\\n 2022-05-09T03:00:07Z\\n \\n cn-hangzhou\\n 100\\n vpn-bp10zyaph5cc8b7c7****\\n 1\\n Instance\\n \\n vpc-bp1t36rn9l53iwbsf****\\n VPC\\n ch-hangzhou\\n \\n \\n TR\\n \\n","errorExample":""}]', - 'title' => 'DescribeRouteEntryList', - 'description' => 'Before you call the [DeleteRouteEntry](~~36013~~) operation to delete a route, you can call this operation to query the next hop of the route that you want to delete.', + 'title' => 'Create a high-availability virtual IP address (HAVIP)', + 'description' => '**CreateHaVip** is an asynchronous operation. After you invoke this operation, the system returns the HAVIP ID, but the HAVIP is not yet created. The creation node is still running in the background. You can invoke [DescribeHaVips](~~114611~~) to query the creation status of the HAVIP:'."\n" + .'- If the HAVIP is in the **Creating** state, the HAVIP is being created.'."\n" + .'- If the HAVIP is in the **Available** state, the HAVIP is created.', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeRouteTableList' => [ - 'summary' => 'Queries route tables.', - 'methods' => [ - 'post', - 'get', + 'changeSet' => [ + ['createdAt' => '2023-09-06T08:37:24.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-07-05T05:51:52.000Z', 'description' => 'Error codes changed, Request parameters changed, Response parameters changed'], + ['createdAt' => '2023-01-11T06:07:05.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-01-10T15:26:11.000Z', 'description' => 'Error codes changed, Response parameters changed'], + ['createdAt' => '2022-10-13T02:00:25.000Z', 'description' => 'Error codes changed'], ], - 'schemes' => [ - 'http', - 'https', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CreateHaVip'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], + ], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'vpc:CreateHaVip', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'HaVip', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:havip/*'], + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VSwitch', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vswitch/{#VSwitchId}'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"C44F62BE-9CE7-4277-B117-69243F3988BF\\",\\n \\"IpAddress\\": \\"192.XX.XX.10\\",\\n \\"HaVipId\\": \\"havip-2zeo05qre24nhrqpy****\\"\\n}","type":"json"}]', + ], + 'CreateHighReliablePhysicalConnection' => [ + 'summary' => 'Creates Express Connect circuits in zone-redundancy mode to ensure the stability of multi-line access to your workloads on Alibaba Cloud and to avoid service disruptions caused by single-line failures through multi-line disaster recovery.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'write', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'list', - 'riskType' => 'none', - 'chargeType' => 'free', - ], + 'systemTags' => ['operationType' => 'create', 'riskType' => 'none', 'chargeType' => 'free', 'tenantRelevance' => 'publicInformation'], 'parameters' => [ [ - 'name' => 'RouterType', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The type of the router to which the route table belongs. Valid value:'."\n" - ."\n" - .'* **VRouter** (default): a vRouter'."\n" - .'* **VBR**: a VBR'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'VRouter', - 'default' => 'VRouter', - ], + 'schema' => ['description' => 'The region ID of the Express Connect circuit.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the region ID.', 'type' => 'string', 'required' => false, 'docRequired' => true, 'example' => 'cn-shanghai', 'title' => ''], ], [ - 'name' => 'RouterId', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of vRouter to which the route table belongs.', - 'type' => 'string', - 'required' => false, - 'example' => 'vrt-bp1lhl0taikrteen8****', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'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.'."\n" + ."\n" + .'> If you do not specify this parameter, the system automatically uses the **RequestId** of the API request as the **ClientToken**. The **RequestId** may be different for each API request.', 'type' => 'string', 'required' => false, 'docRequired' => true, 'example' => '123e4567-e89b-12d3-a456-426655440000', 'title' => ''], ], [ - 'name' => 'VpcId', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the VPC to which the route table belongs. '."\n" - ."\n" - .'When this parameter is set, the value of **RouterType** is automatically assigned to **VRouter**.', - 'type' => 'string', - 'required' => false, - 'example' => 'vpc-bp15zckdt37pq72****', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'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.'."\n" + ."\n" + .'> If you do not specify this parameter, the system automatically uses the **RequestId** of the API request as the **ClientToken**. The **RequestId** may be different for each API request.', 'type' => 'string', 'required' => false, 'docRequired' => true, 'example' => '123e4567-e89b-12d3-a456-426655440000', 'title' => ''], ], [ - 'name' => 'RouteTableId', + 'name' => 'ResourceGroupId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the route table.', - 'type' => 'string', - 'required' => false, - 'example' => 'vtb-bp145q7glnuzdvzu2****', - ], + 'schema' => ['description' => 'The ID of the resource group to which the Express Connect circuit belongs.', 'type' => 'string', 'required' => false, 'example' => 'rg-acfmxazb4p****', 'title' => ''], ], [ - 'name' => 'RouteTableName', + 'name' => 'Tag', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => 'The name of the route table.', - 'type' => 'string', + 'description' => 'The tags.', + 'type' => 'array', + 'items' => [ + 'description' => 'The tags.', + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => 'The tag key of the resource. You can specify up to 20 tag keys. The tag key cannot be an empty string.'."\n" + ."\n" + .'The tag key can be up to 64 characters in length and must start with a letter or Chinese character. It can contain digits, periods (.), underscores (_), and hyphens (-). It cannot start with `aliyun` or `acs:`, and cannot contain `http://` or `https://`.', 'type' => 'string', 'required' => false, 'example' => 'FinanceDept', 'title' => ''], + 'Value' => ['description' => 'The tag value of the resource. You can specify up to 20 tag values. The tag value can be an empty string.'."\n" + ."\n" + .'The tag value can be up to 128 characters in length and must start with a letter or Chinese character. It can contain digits, periods (.), underscores (_), and hyphens (-). It cannot start with `aliyun` or `acs:`, and cannot contain `http://` or `https://`.', 'type' => 'string', 'required' => false, 'example' => 'FinanceJoshua', 'title' => ''], + ], + 'required' => false, + 'title' => '', + 'example' => '', + ], 'required' => false, - 'example' => 'doctest', + 'maxItems' => 20, + 'title' => '', + 'example' => '', ], ], [ - 'name' => 'PageNumber', + 'name' => 'HighReliableType', 'in' => 'query', - 'schema' => [ - 'description' => 'The number of the returned page. Default value: **1**.', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', - ], + 'schema' => ['description' => 'The zone-redundancy mode. Valid values:'."\n" + ."\n" + .'- **MultiApMultiDevice**: maximum disaster recovery. This mode supports two different access points and two different devices, providing maximum disaster recovery.'."\n" + .'- **MultiApSingleDevice**: enhanced disaster recovery. This mode supports two different access points and one device, providing enhanced disaster recovery.'."\n" + .'- **SingleApMultiDevice**: development and testing. This mode supports one access point and two devices. This mode is recommended only for development and testing of non-critical workloads.'."\n" + .'- **SingleApMultiConnection**: high-bandwidth load balancing. This mode is available only to users in the whitelist. It supports one access point, one device, and multiple physical ports. To use this mode, contact your account manager.', 'type' => 'string', 'required' => true, 'example' => 'MultiApMultiDevice', 'title' => ''], ], [ - 'name' => 'PageSize', + 'name' => 'PortType', 'in' => 'query', - 'schema' => [ - 'description' => 'The number of entries per page. Maximum value: **50**. Default value: **10**.', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '10', - ], + 'schema' => ['description' => 'The port type of the Express Connect circuit. Valid values:'."\n" + ."\n" + .'- **1000Base-LX**: GE single-mode optical port (10 km).'."\n" + ."\n" + .'- **10GBase-LR**: 10 GE single-mode optical port (10 km).'."\n" + ."\n" + .'- **40GBase-LR**: 40 GE single-mode optical port.'."\n" + ."\n" + .'- **100GBase-LR**: 100 GE single-mode optical port.'."\n" + .' '."\n" + .'> 40GBase-LR and 100GBase-LR are subject to the actual port availability. For information about port availability, contact your account manager.', 'type' => 'string', 'required' => true, 'example' => '1000Base-LX', 'title' => ''], ], [ - 'name' => 'ResourceGroupId', + 'name' => 'DeviceAdvancedCapacity', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => 'The ID of the resource group to which the route table belongs.', - 'type' => 'string', + 'description' => 'The list of advanced device capabilities.', + 'type' => 'array', + 'items' => ['description' => 'The advanced device capability. Valid values:'."\n" + .'- **SubifRateLimit**: VBR rate limiting.'."\n" + .'- **DualStack**: IPv6 support.'."\n" + .'- **BFD**: Bidirectional Forwarding Detection.'."\n" + .'- **CEN**: multi-protocol BGP support.'."\n" + .'- **CENv6**: multi-protocol BGPv6 support.'."\n" + .'- **QOS**: QoS support.'."\n" + .'- **MS-HA**: fast failover group support.'."\n" + .'- **Multi-MS-HA**: multiple failover group support.', 'type' => 'string', 'required' => false, 'example' => 'SubifRateLimit', 'title' => ''], 'required' => false, - 'example' => 'rg-acfmxazb4ph****', - ], - ], - [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the VPC to which the route table belongs.'."\n" - ."\n" - .'You can call [DescribeRegions](https://www.alibabacloud.com/help/vpc/developer-reference/api-vpc-2016-04-28-describeregions) to query the most recent region list.', - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'ap-southeast-6', + 'maxItems' => 100, + 'title' => '', + 'example' => '', ], ], [ - 'name' => 'Tag', + 'name' => 'ApList', 'in' => 'query', 'style' => 'repeatList', 'schema' => [ - 'description' => 'The tags of the resource.', + 'description' => 'The list of access points.', 'type' => 'array', 'items' => [ - 'description' => 'The tags of the resource.', + 'description' => 'The list of access points.', 'type' => 'object', 'properties' => [ - 'Key' => [ - 'description' => 'The value of tag N to add to the resource. You can specify up to 20 tag values. The tag value can be an empty string.'."\n" - ."\n" - .'The tag value can be up to 128 characters in length. It cannot start with `aliyun` or `acs:` and cannot contain `http://` or `https://`.', - 'type' => 'string', - 'required' => false, - 'example' => 'FinanceDept', - ], - 'Value' => [ - 'description' => 'The value of tag N to add to the resource. You can specify up to 20 tag values. The tag value can be an empty string.'."\n" - ."\n" - .'The tag value can be up to 128 characters in length. It cannot start with `aliyun` or `acs:` and cannot contain `http://` or `https://`.', - 'type' => 'string', - 'required' => false, - 'example' => 'FinanceJoshua', - ], + 'Name' => ['description' => 'The name of the Express Connect circuit. '."\n" + ."\n" + .'The name must be 2 to 128 characters in length and must start with a letter or Chinese character. It can contain digits, underscores (_), and hyphens (-), but cannot start with `http://` or `https://`.', 'type' => 'string', 'required' => false, 'example' => 'test', 'title' => ''], + 'Description' => ['description' => 'The description of the Express Connect circuit.'."\n" + ."\n" + .'The description must be 2 to 256 characters in length and must start with a letter or Chinese character, but cannot start with `http://` or `https://`.', 'type' => 'string', 'required' => false, 'example' => 'description', 'title' => ''], + 'RegionId' => ['description' => 'The region ID of the Express Connect circuit.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the region ID.', 'type' => 'string', 'required' => true, 'example' => 'cn-shanghai', 'title' => ''], + 'LineOperator' => ['description' => 'The connectivity provider of the Express Connect circuit. Valid values:'."\n" + ."\n" + .'- **CT**: China Telecom.'."\n" + ."\n" + .'- **CU**: China Unicom.'."\n" + ."\n" + .'- **CM**: China Mobile.'."\n" + ."\n" + .'- **CO**: other Chinese carriers. '."\n" + ."\n" + .'- **Equinix**: Equinix.'."\n" + ."\n" + .'- **Other**: other carriers outside the Chinese mainland.', 'type' => 'string', 'required' => true, 'example' => 'CT', 'title' => ''], + 'AccessPointId' => ['description' => 'The ID of the access point for the Express Connect circuit.'."\n" + ."\n" + .'> When **HighReliableType** is set to **MultiApMultiDevice** or **MultiApSingleDevice**, you must specify two different access points. When **HighReliableType** is set to **SingleApMultiDevice** or **SingleApMultiConnection**, you must specify one access point.', 'type' => 'string', 'required' => true, 'example' => 'ap-cn-beijing-ft-A', 'title' => ''], + 'PortNum' => ['description' => 'The number of ports. This parameter is required only when **HighReliableType** is set to **SingleApMultiConnection**. Valid values: 2 to 16.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '2', 'title' => ''], + 'Type' => ['description' => 'The type of the Express Connect circuit. Default value: **VPC**.', 'type' => 'string', 'required' => false, 'example' => 'VPC', 'title' => ''], + 'Bandwidth' => ['description' => 'The bandwidth of the shared Express Connect circuits. Unit: Mbit/s.'."\n" + ."\n" + .'Valid values: 50, 100, 200, 300, 400, 500, 1000, 2000, 4000, 5000, 8000, and 10000.', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '50', 'title' => ''], + 'PeerLocation' => ['description' => 'The geographic location of the on-premises data center.', 'type' => 'string', 'required' => false, 'example' => 'XX街道', 'title' => ''], + 'CircuitCode' => ['description' => 'The circuit code provided by the connectivity provider for the Express Connect circuit.', 'type' => 'string', 'required' => false, 'example' => 'longtel001', 'title' => ''], + 'OpticalModuleModel' => ['title' => '', 'description' => 'The optical module model supported by the access point of the Express Connect circuit. Valid values:'."\n" + .'- 1000Base-LX: '."\n" + .' - `SFP-GE-LR-SM1310,10KM`'."\n" + .' - `SFP-GE-ER-SM1310,40KM`'."\n" + .' - `SFP-GE-ZR-SM1550,80KM`'."\n" + .'- 10GBase-LR: '."\n" + .' - `SFP-10G-LR-SM1310,10KM`'."\n" + .' - `SFP-10G-ER-SM1550,40KM` '."\n" + .' - `SFP-10G-ZR-SM1550,80KM` '."\n" + .'- 40GBase-LR: '."\n" + .' - `QSFP-40G-LR4-WDM1300,10KM`'."\n" + .' - `QSFP-40G-ER4-WDM1300,40KM`'."\n" + .' - `QSFP-40G-ZR4-WDM1300,80KM`'."\n" + .'- 100GBase-LR: '."\n" + .' - `QSFP28-100G-LR4-WDM1300,10KM`'."\n" + .' - `QSFP28-100G-ER4-WDM1300,40KM`'."\n" + .' - `QSFP28-100G-ZR4-WDM1300,80KM`.', 'type' => 'string', 'required' => false, 'example' => 'SFP-GE-LR-SM1310,10KM'], ], 'required' => false, + 'title' => '', + 'example' => '', ], - 'required' => false, - 'maxItems' => 21, + 'required' => true, + 'maxItems' => 100, + 'title' => '', + 'example' => '', ], ], [ - 'name' => 'RouteTableType', + 'name' => 'DryRun', 'in' => 'query', - 'schema' => [ - 'description' => 'The type of the route table.'."\n" - ."\n" - .'* **System**'."\n" - .'* **Custom**', - 'type' => 'string', - 'required' => false, - 'example' => 'System', - ], + 'schema' => ['description' => 'Specifies whether to perform a dry run. Valid values:'."\n" + ."\n" + .'- **true**: performs a dry run without creating the instance. The system checks the required parameters, request format, and instance status. If the check fails, the error code `DRYRUN.FAIL` is returned along with the corresponding error list. If the check succeeds, the code `DRYRUN.SUCCESS` is returned.'."\n" + ."\n" + .'- **false** (default): sends the request. After the request passes the check, the instance is created.', 'type' => 'string', 'required' => false, 'example' => 'false', 'title' => ''], + ], + [ + 'name' => 'AcceptLanguage', + 'in' => 'query', + 'schema' => ['description' => 'The language of the response. Valid values:'."\n" + ."\n" + .'- **zh-CN** (default): Chinese.'."\n" + .'- **en-US**: English.', 'type' => 'string', 'required' => false, 'example' => 'zh-CN', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => 'The details of the route table.', + 'description' => 'The response parameters.', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.', - 'type' => 'string', - 'example' => 'DC668356-BCB4-42FD-9BC3-FA2B2E04B634', - ], - 'PageSize' => [ - 'description' => 'The number of entries per page.', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'PageNumber' => [ - 'description' => 'The page number.', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'TotalCount' => [ - 'description' => 'The total number of entries returned.', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', + 'PhysicalConnectionList' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'physicalConnectionList' => [ + 'description' => 'The list of Express Connect circuit instances.', + 'type' => 'array', + 'items' => [ + 'description' => 'The list of Express Connect circuit instances.', + 'type' => 'object', + 'properties' => [ + 'InstanceId' => ['description' => 'The instance ID of the Express Connect circuit.', 'type' => 'string', 'example' => 'pc-j5e5qqo616p81ncsp****', 'title' => ''], + 'RegionNo' => ['description' => 'The region ID of the Express Connect circuit instance.', 'type' => 'string', 'example' => 'cn-shanghai', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', ], - 'RouterTableList' => [ + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '0ED8D006-F706-4D23-88ED-E11ED28DCAC0', 'title' => ''], + 'ErrorInfoList' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ - 'RouterTableListType' => [ - 'description' => 'The detailed information about the route tables.', + 'errorInfoList' => [ + 'description' => 'The error codes and error messages returned when the dry run fails. All error information is returned, including:'."\n" + ."\n" + .'- `pconn.high.reliable.dryrun.error.disable.outbound.data.transfer.billing`: Outbound data transfer billing is not enabled for the user.'."\n" + ."\n" + .'- `pconn.high.reliable.dryrun.error.incompatable.device.capacity`: No device in the selected access point meets the advanced device capability requirements.'."\n" + ."\n" + .'- `pconn.high.reliable.dryrun.error.quota.exceeded`: The user quota is insufficient.'."\n" + ."\n" + .'- `pconn.high.reliable.dryrun.error.not.enough.resource`: The access point resources are insufficient.', 'type' => 'array', 'items' => [ - 'description' => 'The details of the route table.', + 'description' => 'The error code.', 'type' => 'object', 'properties' => [ - 'VpcId' => [ - 'description' => 'The ID of the VPC to which the route table belongs.', - 'type' => 'string', - 'example' => 'vpc-bp15zckdt37pq72****', - ], - 'CreationTime' => [ - 'description' => 'The time when the route table was created.', - 'type' => 'string', - 'example' => '2021-08-22T10:40:25Z', - ], - 'Status' => [ - 'description' => 'The status of the route table. Valid values:'."\n" - ."\n" - .'* **Pending**'."\n" - .'* **Available**'."\n" - .'* **Deleting**', - 'type' => 'string', - 'example' => 'Available', - ], - 'RouterId' => [ - 'description' => 'The ID of the vRouter to which the route table belongs.', - 'type' => 'string', - 'example' => 'vrt-bp1lhl0taikrteen8****', - ], - 'AssociateType' => [ - 'description' => 'The type of the cloud resource with which the route table is associated. Valid values:'."\n" - ."\n" - .'* **VSwitch**: vSwitch'."\n" - .'* **Gateway**: IPv4 gateway', - 'type' => 'string', - 'example' => 'VSwitch', - ], - 'RouteTableId' => [ - 'description' => 'The ID of the route table.', - 'type' => 'string', - 'example' => 'vtb-bp145q7glnuzdvzu2****', - ], - 'OwnerId' => [ - 'description' => 'The ID of the Alibaba Cloud account to which the route table belongs.', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '253460731706911258', - ], - 'Description' => [ - 'description' => 'The information about the route table.', - 'type' => 'string', - 'example' => 'This is Route Table.', - ], - 'RouteTableType' => [ - 'description' => 'The type of the route table. Valid values:'."\n" - ."\n" - .'* **Custom**'."\n" - .'* **System**', - 'type' => 'string', - 'example' => 'System', - ], - 'ResourceGroupId' => [ - 'description' => 'The ID of the resource group to which the route table belongs.', - 'type' => 'string', - 'example' => 'rg-acfmxazb4ph****', - ], - 'RouterType' => [ - 'description' => 'The type of the vRouter to which the route table belongs. Valid values:'."\n" - ."\n" - .'- **VRouter**: a vRouter.'."\n" - ."\n" - .'- **VBR**: a VBR.', - 'type' => 'string', - 'example' => 'VRouter', - ], - 'RouteTableName' => [ - 'description' => 'The name of the route table.', - 'type' => 'string', - 'example' => 'doctest', - ], - 'Tags' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'Tag' => [ - 'description' => 'The tags.', - 'type' => 'array', - 'items' => [ - 'description' => 'The tags.', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => 'The key of the tag that is added to the route table.', - 'type' => 'string', - 'example' => 'type', - ], - 'Value' => [ - 'description' => 'The value of the tag that is added to the route table.', - 'type' => 'string', - 'example' => 'ingress', - ], - ], - ], - ], - ], - ], - 'VSwitchIds' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'VSwitchId' => [ - 'description' => 'The vSwitch IDs.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The vSwitch IDs.'."\n", - 'type' => 'string', - 'example' => 'vsw-bp12mw1f8k3jgygk9****', - ], - ], - ], - ], - 'GatewayIds' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'GatewayIds' => [ - 'description' => 'The detailed information about the IPv4 gateway.', - 'type' => 'array', - 'items' => [ - 'description' => 'The detailed information about the IPv4 gateway.', - 'type' => 'string', - 'example' => 'ipv4gw-5tsnc6s4ogsedtp3k****', - ], - ], - ], - ], - 'RoutePropagationEnable' => [ - 'description' => 'Whether to receive the propagation routes. Valid Values:'."\n" - ."\n" - .'* **true**: received.'."\n" - ."\n" - .'* **false**: not received.', - 'type' => 'boolean', - 'example' => 'true', - ], + 'ErrorCode' => ['description' => 'The error code.', 'type' => 'string', 'example' => 'pconn.high.reliable.dryrun.error.disable.outbound.data.transfer.billing', 'title' => ''], + 'ErrorMessage' => ['description' => 'The error message.', 'type' => 'string', 'example' => 'pconn.high.reliable.dryrun.error.disable.outbound.data.transfer.billing', 'title' => ''], + 'InstanceId' => ['description' => 'The instance ID of the Express Connect circuit.', 'type' => 'string', 'example' => 'pc-j5e5qqo616p81ncsp****', 'title' => ''], ], + 'title' => '', + 'example' => '', ], + 'title' => '', + 'example' => '', ], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidTagKey', - 'errorMessage' => 'The tag keys are not valid.', - ], - [ - 'errorCode' => 'InvalidTagValue', - 'errorMessage' => 'The tag values are not valid.', - ], - [ - 'errorCode' => 'IellgalParameter.OwnerAccount', - 'errorMessage' => 'The specified parameter OwnerAccount is not valid.', - ], + ['errorCode' => 'Invalid.Status', 'errorMessage' => 'The device or interface status invalid, or has been used..', 'description' => 'The Status parameter is set to an invalid value.'], + ['errorCode' => 'InvalidType.Malformd', 'errorMessage' => 'The Type provided was invalid.', 'description' => ''], + ['errorCode' => 'InvalidPeerLocation.Malformd', 'errorMessage' => 'The PeerLocation provided was invalid.', 'description' => ''], + ['errorCode' => 'InvalidLineOperator.Malformd', 'errorMessage' => 'The LineOperator provided was invalid.', 'description' => ''], + ['errorCode' => 'InvalidPortType.Malformd', 'errorMessage' => 'The PortType provided was invalid.', 'description' => ''], + ['errorCode' => 'InvalidDescription.Malformed', 'errorMessage' => 'The specifid ?Description? is not valid.', 'description' => 'The error message returned because the specified resource description is invalid. The description must be 2 to 256 characters in length and cannot start with http:// or https://.'], + ['errorCode' => 'InvalidRedundantPhysicalConnectionId.NotFound', 'errorMessage' => 'The RedundantPhysicalConnectionId does not found.', 'description' => ''], + ['errorCode' => 'InvalidName.Malformed', 'errorMessage' => 'The specified ?Name? is not valid.', 'description' => ''], + ['errorCode' => 'QuotaExceeded.pConnPerAP', 'errorMessage' => 'Physical connection count per ap quota exceed.', 'description' => ''], + ['errorCode' => 'InvalidBandwidth', 'errorMessage' => 'invalid physical connection banwidth.', 'description' => ''], + ['errorCode' => 'InvalidRedundantPhysicalConnection', 'errorMessage' => 'redundant physical connection doesn\'t belong to current user.', 'description' => ''], + ['errorCode' => 'InvalidRedundantPhysicalConnectionStatus', 'errorMessage' => 'invalid redundant physical connection status.', 'description' => ''], + ['errorCode' => 'InvalidCircuitCode.Malformed', 'errorMessage' => 'circuitCode is illegal.', 'description' => ''], + ['errorCode' => 'QuotaExceeded.freePconnPerAP', 'errorMessage' => 'free physical connections count excceeded.', 'description' => ''], + ['errorCode' => 'InvalidPhysicalConnectionOperator.Malformed', 'errorMessage' => 'Specified PhysicalConnection Operator is not valid.', 'description' => 'The operation on the Express Connect circuit is invalid.'], + ['errorCode' => 'InvalidPhysicalConnectionPortType.Malformed', 'errorMessage' => 'Specified PhysicalConnection PortType is not valid.', 'description' => 'The port type of the Express Connect circuit is invalid.'], + ['errorCode' => 'InvalidPhysicalConnectionBandwidth.Malformed', 'errorMessage' => 'Specified PhysicalConnection Bandwidth is not valid.', 'description' => 'The bandwidth of the Express Connect circuit is set to an invalid value.'], + ['errorCode' => 'IllegalParam.ClientToken', 'errorMessage' => 'Token verify failed because client token length too long.', 'description' => 'The ClientToken parameter is set to an invalid value.'], + ['errorCode' => 'InvalidPortType.NotFound', 'errorMessage' => 'Specified port type is not found.', 'description' => 'The portType parameter is not set.'], + ['errorCode' => 'OperationFailed.PconnTrafficNotEnable', 'errorMessage' => 'The operation is failed because of PconnTrafficNotEnable.', 'description' => 'Billing for outbound data transfer is disabled.'], + ['errorCode' => 'EcNotSupportRegion', 'errorMessage' => 'High reliable physical connection is not support in this region.', 'description' => 'Highly reliable physical lines are temporarily not supported for sale in the local region.'], + ['errorCode' => 'EcFailToGetAp', 'errorMessage' => 'Fail to get access point details.', 'description' => 'Unable to query the corresponding access point information.'], + ['errorCode' => 'EcNotEnoughResource', 'errorMessage' => 'Insufficient access point resources.', 'description' => 'Insufficient Access Point Resources'], + ['errorCode' => 'IllegalParam.UnsupportedAccessPoint', 'errorMessage' => 'The access point type does not support the creation of a highly reliable physical connection.', 'description' => 'You cannot create a high-availability Express Connect circuit for an access point of this type.'], + ['errorCode' => 'ResourceNotFound.AccessPointId', 'errorMessage' => 'The specified resource of access point id is not found.', 'description' => 'The current access point information does not exist. Please check and try again.'], + ['errorCode' => 'IllegalParam.%s', 'errorMessage' => 'The param of %s is illegal.', 'description' => 'The parameter is invalid.'], ], - 403 => [ - [ - 'errorCode' => 'Forbbiden', - 'errorMessage' => 'User not authorized to operate on the specified resource.', - ], - [ - 'errorCode' => 'Abs.InvalidPayType', - 'errorMessage' => 'Specified pay type is not valid.', - ], - [ - 'errorCode' => 'Abs.InstanceNotExist', - 'errorMessage' => 'Specified instance not exist.', - ], - [ - 'errorCode' => 'Abs.Forbidden', - 'errorMessage' => 'Specified instance cannot change pay type.', - ], - [ - 'errorCode' => 'Abs.InvalidPayPeriod', - 'errorMessage' => 'Specified pay period not valid.', - ], + 404 => [ + ['errorCode' => 'InvalidPortType.NotFound', 'errorMessage' => 'There are no resources with the portType.', 'description' => 'The specified port type is invalid.'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'staticInfo' => ['returnType' => 'asynchronous', 'callback' => 'Vpc::2016-04-28::DescribePhysicalConnections', 'callbackInterval' => 5, 'maxCallbackTimes' => 100], + 'title' => 'Create zone-redundancy express connect circuits', + 'description' => 'When you purchase ports, you can select one of the following three combination types to provide disaster recovery capabilities for your workloads.'."\n" + .'- Maximum disaster recovery: You apply for resources in two access points and establish four independent Express Connect circuit connections. The SLA availability for maximum disaster recovery is no less than 99.99%.'."\n" + ."\n" + .'- Enhanced disaster recovery: You apply for resources in two access points and establish two independent Express Connect circuit connections. The SLA availability for enhanced disaster recovery is no less than 99.95%.'."\n" + ."\n" + .'- Development and testing: You apply for resources in one access point and establish two independent Express Connect circuit connections.', + 'changeSet' => [ + ['createdAt' => '2024-06-28T02:56:12.000Z', 'description' => 'Error codes changed'], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"DC668356-BCB4-42FD-9BC3-FA2B2E04B634\\",\\n \\"PageSize\\": 10,\\n \\"PageNumber\\": 1,\\n \\"TotalCount\\": 1,\\n \\"RouterTableList\\": {\\n \\"RouterTableListType\\": [\\n {\\n \\"VpcId\\": \\"vpc-bp15zckdt37pq72****\\",\\n \\"CreationTime\\": \\"2021-08-22T10:40:25Z\\",\\n \\"Status\\": \\"Available\\",\\n \\"RouterId\\": \\"vrt-bp1lhl0taikrteen8****\\",\\n \\"AssociateType\\": \\"VSwitch\\",\\n \\"RouteTableId\\": \\"vtb-bp145q7glnuzdvzu2****\\",\\n \\"OwnerId\\": 253460731706911260,\\n \\"Description\\": \\"This is Route Table.\\",\\n \\"RouteTableType\\": \\"System\\",\\n \\"ResourceGroupId\\": \\"rg-acfmxazb4ph****\\",\\n \\"RouterType\\": \\"VRouter\\",\\n \\"RouteTableName\\": \\"doctest\\",\\n \\"Tags\\": {\\n \\"Tag\\": [\\n {\\n \\"Key\\": \\"type\\",\\n \\"Value\\": \\"ingress\\"\\n }\\n ]\\n },\\n \\"VSwitchIds\\": {\\n \\"VSwitchId\\": [\\n \\"vsw-bp12mw1f8k3jgygk9****\\"\\n ]\\n },\\n \\"GatewayIds\\": {\\n \\"GatewayIds\\": [\\n \\"ipv4gw-5tsnc6s4ogsedtp3k****\\"\\n ]\\n },\\n \\"RoutePropagationEnable\\": true\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n DC668356-BCB4-42FD-9BC3-FA2B2E04B634\\n 10\\n 1\\n 1\\n \\n vpc-bp15zckdt37pq72****\\n 2021-08-22T10:40:25Z\\n Available\\n vrt-bp1lhl0taikrteen8****\\n VSwitch\\n vtb-bp145q7glnuzdvzu2****\\n 253460731706911260\\n This is Route Table.\\n System\\n rg-acfmxazb4ph****\\n VRouter\\n doctest\\n \\n type\\n ingress\\n \\n vsw-bp12mw1f8k3jgygk9****\\n ipv4gw-5tsnc6s4ogsedtp3k****\\n \\n","errorExample":""}]', - 'title' => 'DescribeRouteTableList', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'ListVpcPublishedRouteEntries' => [ - 'summary' => 'Query the route publishing status', - 'methods' => [ - 'get', - 'post', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CreateHighReliablePhysicalConnection'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], ], - 'schemes' => [ - 'https', + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'vpc:CreateHighReliablePhysicalConnection', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"PhysicalConnectionList\\": {\\n \\"physicalConnectionList\\": [\\n {\\n \\"InstanceId\\": \\"pc-j5e5qqo616p81ncsp****\\",\\n \\"RegionNo\\": \\"cn-shanghai\\"\\n }\\n ]\\n },\\n \\"RequestId\\": \\"0ED8D006-F706-4D23-88ED-E11ED28DCAC0\\",\\n \\"ErrorInfoList\\": {\\n \\"errorInfoList\\": [\\n {\\n \\"ErrorCode\\": \\"pconn.high.reliable.dryrun.error.disable.outbound.data.transfer.billing\\",\\n \\"ErrorMessage\\": \\"pconn.high.reliable.dryrun.error.disable.outbound.data.transfer.billing\\",\\n \\"InstanceId\\": \\"pc-j5e5qqo616p81ncsp****\\"\\n }\\n ]\\n }\\n}","type":"json"}]', + ], + 'CreateIPv6Translator' => [ + 'summary' => 'Creates an IPv6 Translation Service instance.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'list', - ], + 'operationType' => 'readAndWrite', + 'deprecated' => true, + 'systemTags' => ['operationType' => 'create', 'riskType' => 'none', 'chargeType' => 'free', 'autoTest' => false, 'notSupportAutoTestReason' => '产品在2022年已经发布下线公告', 'tenantRelevance' => 'tenant'], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region where the instance is located.', - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The region of the IPv6 Translation Service instance. You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'example' => 'cm-hangzhou', 'title' => ''], ], [ - 'name' => 'RegionId', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region where the instance is located.', - 'type' => 'string', - 'required' => false, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request. You can use the client to generate the value, but you must ensure that it is unique among different requests. The token can contain only ASCII characters and cannot exceed 64 characters in length.'."\n", 'type' => 'string', 'required' => false, 'example' => 'sha111', 'title' => ''], ], [ - 'name' => 'RouteTableId', + 'name' => 'Name', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the route table.', - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'vtb-bp145q7glnuzd****', - ], + 'schema' => ['description' => 'The name of the IPv6 Translation Service instance. The default name is the instance ID. It must be 2 to 100 characters in length and must start with a letter. It can contain letters, digits, periods (.), underscores (\\_), and hyphens (-). It cannot start with `http://` or `https://`.'."\n", 'type' => 'string', 'required' => false, 'example' => 'ipv6_1', 'title' => ''], ], [ - 'name' => 'DestinationCidrBlock', + 'name' => 'Spec', 'in' => 'query', - 'schema' => [ - 'description' => 'The destination CIDR block of the route entry, supporting both IPv4 and IPv6 segments.', - 'type' => 'string', - 'required' => false, - 'example' => '47.100.XX.XX/16', - ], + 'schema' => ['description' => 'The specification of the IPv6 Translation Service instance. Set the value to **small**.'."\n", 'type' => 'string', 'required' => false, 'example' => 'small', 'default' => 'small', 'title' => ''], ], [ - 'name' => 'TargetType', + 'name' => 'PayType', 'in' => 'query', - 'schema' => [ - 'description' => 'The type of the route publishing target.', - 'type' => 'string', - 'required' => true, - 'example' => 'ECR', - ], + 'schema' => ['description' => 'The billing method of the IPv6 Translation Service instance. Valid values:'."\n" + ."\n" + .'* **PREPAY**: subscription'."\n" + .'* **POSTPAY**: pay-as-you-go'."\n", 'type' => 'string', 'required' => false, 'example' => 'PREPAY', 'default' => 'PREPAY', 'title' => ''], ], [ - 'name' => 'TargetInstanceId', + 'name' => 'PricingCycle', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the route publishing target instance.', - 'type' => 'string', - 'required' => false, - 'example' => 'ecr-dhw2xsds5****', - ], + 'schema' => ['description' => 'The billing cycle of the subscription. Valid values:'."\n" + ."\n" + .'* **Month** (default)'."\n" + .'* **Year**'."\n", 'type' => 'string', 'required' => false, 'example' => 'Month', 'default' => '', 'title' => ''], ], [ - 'name' => 'MaxResults', + 'name' => 'Duration', 'in' => 'query', - 'schema' => [ - 'description' => 'The number of entries to display per batch query. Range: **1**~**500**, default value is **50**.', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '500', - 'example' => '50', - 'default' => '50', - ], + 'schema' => ['description' => 'The subscription duration.'."\n" + ."\n" + .'* If the billing cycle is **Month**, valid values are **1** to **9**.'."\n" + .'* If the billing cycle is **Year**, set the value to **3**.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1', 'default' => '', 'title' => ''], ], [ - 'name' => 'NextToken', + 'name' => 'AutoPay', 'in' => 'query', - 'schema' => [ - 'description' => 'Indicates whether there is a token for the next query. Values:'."\n" - .'- If **NextToken** is empty, it means there is no next query.'."\n" - .'- If **NextToken** has a return value, this value indicates the token for the start of the next query.', - 'type' => 'string', - 'required' => false, - 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', - ], + 'schema' => ['description' => 'Specifies whether to enable automatic payment. Valid values: **true and false**.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false', 'default' => 'false', 'title' => ''], + ], + [ + 'name' => 'Bandwidth', + 'in' => 'query', + 'schema' => ['description' => 'The bandwidth of the IPv6 Translation Service instance. Unit: Mbit/s. Valid values: **1** to **200**. If you do not specify the bandwidth for the mapping entry, the bandwidth is shared with the mapping entry.'."\n" + ."\n" + .'> If you do not specify this parameter, the default bandwidth is 10 Mbit/s.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '10', 'default' => '10', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'Request ID.', - 'type' => 'string', - 'example' => '1D0971B2-A35A-42C1-A44C-E91360C36C0B', - ], - 'NextToken' => [ - 'description' => 'Indicates whether there is a token for the next query. Values:'."\n" - ."\n" - .'- If **NextToken** is empty, it means there is no next query.'."\n" - .'- If **NextToken** has a return value, this value indicates the token for the start of the next query.', - 'type' => 'string', - 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', - ], - 'RouteEntries' => [ - 'description' => 'List of route entry publishing status information.', - 'type' => 'array', - 'items' => [ - 'description' => 'List of route entry publishing status information.', - 'type' => 'object', - 'properties' => [ - 'RouteEntryId' => [ - 'description' => 'The ID of the route entry.', - 'type' => 'string', - 'example' => 'rte-bp1mnnr2al0naomnpv****', - ], - 'DestinationCidrBlock' => [ - 'description' => 'The destination CIDR block of the route entry.', - 'type' => 'string', - 'example' => '10.0.0.0/24', - ], - 'RouteTableId' => [ - 'description' => 'The ID of the route table.', - 'type' => 'string', - 'example' => 'vtb-2ze3jgygk9bmsj23s****', - ], - 'RoutePublishTargets' => [ - 'description' => 'List of route entry publishing status information in the publishing targets.', - 'type' => 'array', - 'items' => [ - 'description' => 'List of route entry publishing status information in the publishing targets.', - 'type' => 'object', - 'properties' => [ - 'PublishStatus' => [ - 'description' => 'The publishing status of the route entry in the publishing target.', - 'type' => 'string', - 'enumValueTitles' => [ - 'NonPublished' => 'NonPublished', - 'Published' => 'Published', - ], - 'example' => 'Published', - ], - 'PublishTargetType' => [ - 'description' => 'The type of the route publishing target.', - 'type' => 'string', - 'example' => 'ECR', - ], - 'PublishTargetInstanceId' => [ - 'description' => 'The ID of the route publishing target instance.', - 'type' => 'string', - 'example' => 'ecr-xvuqdfma6x57ei****', - ], - ], - ], - ], - ], - ], - ], + 'Ipv6TranslatorId' => ['description' => 'The ID of the IPv6 Translation Service instance.'."\n", 'type' => 'string', 'example' => 'ipv6trans-bp1i8ahxut1xxxx', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '1AE05898-06E5-4782-xxxxx', 'title' => ''], + 'Spec' => ['description' => 'The specification of the IPv6 Translation Service instance.'."\n", 'type' => 'string', 'example' => 'small', 'title' => ''], + 'Name' => ['description' => 'The name of the IPv6 Translation Service instance.'."\n", 'type' => 'string', 'example' => 'test_nat64gw', 'title' => ''], + 'OrderId' => ['description' => 'The order ID.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '202303300940739', 'title' => ''], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'ResourceNotAssociated.TargetInstance', - 'errorMessage' => 'The target instance is not associated with vpc.', - ], - [ - 'errorCode' => 'ResourceNotFound.RouteTable', - 'errorMessage' => 'The specified resource gatewayRouteTable is not found.', - ], - [ - 'errorCode' => 'IllegalParam.NextToken', - 'errorMessage' => 'The specified NextToken is invalid.', - ], - [ - 'errorCode' => 'IllegalParam.NextTokenExpired', - 'errorMessage' => 'The specified NextToken is invalid.', - ], - [ - 'errorCode' => 'IllegalParam.TargetType', - 'errorMessage' => 'The parameter of TargetType is illegal.', - ], - [ - 'errorCode' => 'OperationDenied.UnexpectedRouteTable', - 'errorMessage' => 'Operation is denied because only system route table supports publishing route entries.', + ['errorCode' => 'InvalidName', 'errorMessage' => 'The specified name is not support.', 'description' => ''], + ['errorCode' => 'Spec.NotSupport', 'errorMessage' => 'The specified spec does not exist in our records.', 'description' => ''], + ['errorCode' => 'Duration.NotSupport', 'errorMessage' => 'The specified duration is not support.', 'description' => ''], + ['errorCode' => 'PricingCycle.NotSupport', 'errorMessage' => 'The specified pricing cycle is not support.', 'description' => ''], + ['errorCode' => 'PayType.NotSupport', 'errorMessage' => 'The specified pay type is not support.', 'description' => ''], + ['errorCode' => 'InventoryNotEnough', 'errorMessage' => 'The inventory is not enough.', 'description' => ''], + ['errorCode' => 'Resource.QuotaFull', 'errorMessage' => 'The quota of resource is full.', 'description' => ''], + ['errorCode' => 'Bandwidth.NotSupport', 'errorMessage' => 'The specified bandwidth is not support.', 'description' => ''], + ], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => 'Internal Error', 'description' => ''], + ], + ], + 'staticInfo' => ['noSubstitutionReason' => '无替代API,历史原因导致该API被标记为弃用。', 'returnType' => 'asynchronous', 'callback' => 'Vpc::2016-04-28::DescribeIPv6Translators', 'callbackInterval' => 2000, 'maxCallbackTimes' => 50], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Ipv6TranslatorId\\": \\"ipv6trans-bp1i8ahxut1xxxx\\",\\n \\"RequestId\\": \\"1AE05898-06E5-4782-xxxxx\\",\\n \\"Spec\\": \\"small\\",\\n \\"Name\\": \\"test_nat64gw\\",\\n \\"OrderId\\": 202303300940739\\n}","errorExample":"{\\n \\"Ipv6TranslatorId\\": \\"ipv6trans-bp1i8ahxut1iedrqqgbco\\", \\n \\"Name\\": \\"test_nat64gw_autopay_0725\\", \\n \\"OrderId\\": 202303300940739, \\n \\"RequestId\\": \\"1AE05898-06E5-4782-B4D0-6714DD94C4E6\\", \\n \\"Spec\\": \\"small\\"\\n}"},{"type":"xml","example":"\\n\\n\\tipv6trans-bp1i8ahxut1iexxxx\\n\\ttest_nat64gw\\n\\t202303300940739\\n\\t1AE05898-06E5-4782-B4D0-xxxxx\\n\\tsmall\\n","errorExample":"\\n\\n\\tipv6trans-bp1i8ahxut1iedrqqgbco\\n\\ttest_nat64gw_autopay_0725\\n\\t202303300940739\\n\\t1AE05898-06E5-4782-B4D0-6714DD94C4E6\\n\\tsmall\\n"}]', + 'title' => 'CreateIPv6Translator', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'vpc:CreateIPv6Translator', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'All Resource', 'arn' => '*'], + ], ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CreateIPv6Translator'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"1D0971B2-A35A-42C1-A44C-E91360C36C0B\\",\\n \\"NextToken\\": \\"FFmyTO70tTpLG6I3FmYAXGKPd****\\",\\n \\"RouteEntries\\": [\\n {\\n \\"RouteEntryId\\": \\"rte-bp1mnnr2al0naomnpv****\\",\\n \\"DestinationCidrBlock\\": \\"10.0.0.0/24\\",\\n \\"RouteTableId\\": \\"vtb-2ze3jgygk9bmsj23s****\\",\\n \\"RoutePublishTargets\\": [\\n {\\n \\"PublishStatus\\": \\"Published\\",\\n \\"PublishTargetType\\": \\"ECR\\",\\n \\"PublishTargetInstanceId\\": \\"ecr-xvuqdfma6x57ei****\\"\\n }\\n ]\\n }\\n ]\\n}","type":"json"}]', - 'title' => 'Query VPC Route Publishing Status', - 'translator' => 'machine', ], - 'PublishVpcRouteEntries' => [ - 'summary' => 'Publish VPC Routes', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'https', - ], + 'CreateIPv6TranslatorAclList' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'readAndWrite', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'update', - ], + 'deprecated' => true, + 'systemTags' => ['operationType' => 'create'], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region where the instance is located. You can obtain the region ID by calling the DescribeRegions interface.', - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], - ], - [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region where the instance is located. You can obtain the region ID by calling the DescribeRegions interface.', - 'type' => 'string', - 'required' => false, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], - ], - [ - 'name' => 'RouteEntries', - 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => 'List of route entries to be published, supporting up to 50 routes at most.', - 'type' => 'array', - 'items' => [ - 'description' => 'List of route entry information to be published.', - 'type' => 'object', - 'properties' => [ - 'RouteTableId' => [ - 'description' => 'The ID of the route table for the route entry.', - 'type' => 'string', - 'required' => true, - 'example' => 'vtb-2ze3jgygk9bmsj23s****', - ], - 'DestinationCidrBlock' => [ - 'description' => 'The destination CIDR block for the route entry.', - 'type' => 'string', - 'required' => true, - 'example' => '121.41.165.123/32', - ], - ], - 'required' => false, - ], - 'required' => false, - 'maxItems' => 50, - 'minItems' => 1, - ], - ], - [ - 'name' => 'TargetType', - 'in' => 'query', - 'schema' => [ - 'description' => 'The type of the target for route publication.', - 'type' => 'string', - 'required' => true, - 'example' => 'ECR', - ], + 'schema' => ['description' => 'The region of the IPv6 Translation Service instance. You can call the DescribeRegions operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'TargetInstanceId', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the target instance for route publication.', - 'type' => 'string', - 'required' => true, - 'example' => 'ecr-dhw2xsds5****', - ], + 'schema' => ['type' => 'string', 'required' => false, 'example' => 'sha123456', 'description' => '', 'title' => ''], ], [ - 'name' => 'DryRun', + 'name' => 'AclName', 'in' => 'query', - 'schema' => [ - 'description' => 'Indicates whether to perform a dry run of this request. Values:'."\n" - ."\n" - .'- **true**: Sends a check request without publishing the route. The checks include whether the AccessKey is valid, the authorization status of the RAM user, and if all required parameters are filled out. If the check fails, the corresponding error is returned. If the check passes, the `DryRunOperation` error code is returned.'."\n" - ."\n" - .'- **false** (default): Sends a normal request. After passing the check, it returns a 2xx HTTP status code and directly queries the resource status.', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['description' => 'The ACL name.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'test', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.', - 'type' => 'string', - 'example' => '980960B0-2969-40BF-8542-EBB34FD358AB', - ], + 'AclId' => ['description' => 'The ACL ID.'."\n", 'type' => 'string', 'example' => 'ipv6transacl-bp1de2xxxx', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '8B2F5262-6B57-43F2-xxxxx', 'title' => ''], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'IncorrectStatus.Vpc', - 'errorMessage' => 'The status of %s [%s] is incorrect.', - ], - [ - 'errorCode' => 'ResourceNotFound.RouteEntry', - 'errorMessage' => 'The specified resource routeEntry is not found.', - ], - [ - 'errorCode' => 'IncorrectStatus.RouteEntry', - 'errorMessage' => 'The status of %s [%s] is incorrect.', - ], - [ - 'errorCode' => 'Forbidden.OperateCustomRouteTable', - 'errorMessage' => 'The operation is forbidden because publish route entry in custom route table.', - ], - [ - 'errorCode' => 'IncorrectStatus.RouteEntryPublishStatus', - 'errorMessage' => 'Route entry publish status is incorrect.', - ], - [ - 'errorCode' => 'ResourceNotAssociated.TargetInstance', - 'errorMessage' => 'The target instance is not associated with vpc.', - ], - [ - 'errorCode' => 'OperationDenied.UnsupportedTargetType', - 'errorMessage' => 'The operation is not allowed because the target type is not supported.', - ], - [ - 'errorCode' => 'IncorrectStatus.RouteTable', - 'errorMessage' => 'The route table is in an invalid state.', - ], - [ - 'errorCode' => 'OperationUnsupported.PublishSystemRouteEntry', - 'errorMessage' => 'Publishing system route entry is unsupported.', - ], - [ - 'errorCode' => 'OperationUnsupported.UnsupportedNextHop', - 'errorMessage' => 'Unsupported nexthop type for route entry publish operation.', - ], - [ - 'errorCode' => 'OperationUnsupported.PublishPrefixListRouteEntry', - 'errorMessage' => 'Publishing prefix list route entry is unsupported.', + ['errorCode' => 'InvalidName', 'errorMessage' => 'The specified name is not support.', 'description' => ''], + ['errorCode' => 'Resource.QuotaFull', 'errorMessage' => 'The quota of resource is full.', 'description' => ''], + ['errorCode' => 'Nat64Acl.AclNameExist', 'errorMessage' => 'This ipv6 translator acl name is existed', 'description' => ''], + ], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => 'Internal Error', 'description' => ''], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"AclId\\": \\"ipv6transacl-bp1de2xxxx\\",\\n \\"RequestId\\": \\"8B2F5262-6B57-43F2-xxxxx\\"\\n}","errorExample":"\\n"},{"type":"xml","example":"\\n\\n 0ED8D006-F706-4D23-88ED-E11ED28DCAC0\\n vsw-25naue4gz\\n","errorExample":"\\n\\n"}]', + 'title' => 'CreateIPv6TranslatorAclList', + 'summary' => 'Creates an access control list (ACL).', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'vpc:CreateIPv6TranslatorAclList', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'All Resource', 'arn' => '*'], + ], ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CreateIPv6TranslatorAclList'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"980960B0-2969-40BF-8542-EBB34FD358AB\\"\\n}","type":"json"}]', - 'title' => 'Publish VPC Routes', - 'translator' => 'machine', ], - 'WithdrawVpcPublishedRouteEntries' => [ - 'summary' => 'Withdraw advertised Virtual Private Cloud (VPC) routes.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'https', - ], + 'CreateIPv6TranslatorEntry' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'readAndWrite', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'update', - ], + 'deprecated' => true, + 'systemTags' => ['operationType' => 'create'], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region. Call the DescribeRegions operation to access it.', - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The region of the IPv6 Translation Service instance. You can call the **DescribeRegions** operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'example' => 'cn-hangzhou'], ], [ - 'name' => 'RegionId', + 'name' => 'Ipv6TranslatorId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region. Call the DescribeRegions operation to access it.', - 'type' => 'string', - 'required' => false, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The ID of the IPv6 Translation Service instance.'."\n", 'type' => 'string', 'required' => true, 'example' => 'ipv6trans-bp1858ys57xxxxxx'], ], [ - 'name' => 'RouteEntries', + 'name' => 'EntryName', 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => 'The route entries to be withdrawn. Maximum value: 50.', - 'type' => 'array', - 'items' => [ - 'description' => 'The list of route entries to be withdrawn.', - 'type' => 'object', - 'properties' => [ - 'RouteTableId' => [ - 'description' => 'The ID of the route table.', - 'type' => 'string', - 'required' => true, - 'example' => 'vtb-bp145q7glnuzd****', - ], - 'DestinationCidrBlock' => [ - 'description' => 'The destination CIDR block', - 'type' => 'string', - 'required' => true, - 'example' => '10.0.0.0/24', - ], - ], - 'required' => false, - ], - 'required' => false, - 'maxItems' => 50, - 'minItems' => 1, - ], + 'schema' => ['description' => 'The name of the IPv6 mapping entry. It must be 2 to 100 characters in length and can contain letters, digits, periods (.), underscores (\\_), and hyphens (-). It must start with a letter. It cannot start with `http://` or `https://`.'."\n", 'type' => 'string', 'required' => false, 'example' => 'name1'], ], [ - 'name' => 'TargetType', + 'name' => 'EntryDescription', 'in' => 'query', - 'schema' => [ - 'description' => 'The type of target instance.', - 'type' => 'string', - 'required' => true, - 'example' => 'ECR', - ], + 'schema' => ['description' => 'The description of the IPv6 mapping entry.'."\n", 'type' => 'string', 'required' => false, 'example' => 'description'], ], [ - 'name' => 'TargetInstanceId', + 'name' => 'AllocateIpv6Port', 'in' => 'query', - 'schema' => [ - 'description' => 'Target instance ID.', - 'type' => 'string', - 'required' => true, - 'example' => 'ecr-dhw2xsds5****', - ], + 'schema' => ['description' => 'The port that is used by the IPv6 address allocated to the IPv6 Translation Service instance.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '80'], ], [ - 'name' => 'DryRun', + 'name' => 'BackendIpv4Addr', 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values:'."\n" - ."\n" - .'* **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.'."\n" - .'* **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.', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['description' => 'The public IPv4 address that needs to provide IPv6 services.'."\n", 'type' => 'string', 'required' => true, 'example' => '46.22.xx.xx'], + ], + [ + 'name' => 'BackendIpv4Port', + 'in' => 'query', + 'schema' => ['description' => 'The port of the public IPv4 address that needs to provide IPv6 services.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '80'], + ], + [ + 'name' => 'TransProtocol', + 'in' => 'query', + 'schema' => ['description' => 'The protocol. Valid values:'."\n" + ."\n" + .'* **tcp**'."\n" + .'* **udp**'."\n", 'type' => 'string', 'required' => true, 'example' => 'tcp'], + ], + [ + 'name' => 'EntryBandwidth', + 'in' => 'query', + 'schema' => ['description' => 'The maximum bandwidth specified in the IPv6 mapping entry. Valid values:'."\n" + ."\n" + .'* \\-1 (default): does not limit the maximum bandwidth specified in the IPv6 mapping entry.'."\n" + .'* 1 to 200: the bandwidth value specified in the IPv6 mapping entry. Unit: Mbit/s.'."\n" + ."\n" + .'> The sum of the maximum bandwidth values specified in all IPv6 entries cannot exceed the maximum bandwidth supported by the instance.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '2', 'default' => '-1'], + ], + [ + 'name' => 'AclStatus', + 'in' => 'query', + 'schema' => ['description' => 'Specifies whether to enable access control lists (ACLs). Valid values:'."\n" + ."\n" + .'* **on**'."\n" + .'* **off**'."\n", 'type' => 'string', 'required' => false, 'example' => 'on', 'default' => 'off'], + ], + [ + 'name' => 'AclType', + 'in' => 'query', + 'schema' => ['description' => 'Specifies whether to enable ACLs. Valid values:'."\n" + ."\n" + .'* **white**: a whitelist. IPv6 addresses in the ACL are allowed to access backend services.'."\n" + .'* **black**: a blacklist. IPv6 addresses in the ACL are not allowed to access backend services.'."\n", 'type' => 'string', 'required' => false, 'example' => 'white'], + ], + [ + 'name' => 'AclId', + 'in' => 'query', + 'schema' => ['description' => 'The ID of the associated ACL.'."\n", 'type' => 'string', 'required' => false, 'example' => 'ipv6transacl-bp1g8bhrdexnrxxxx'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'Schema of Response', + 'description' => 'The returned data.'."\n", 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '0ED8D006-F706-4D23-88ED-E11ED28DCAC0', - ], + 'Ipv6TranslatorEntryId' => ['description' => 'The ID of the IPv6 Translation Service instance.'."\n", 'type' => 'string', 'example' => 'ipv6transentry-xxxxxxxx'], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => 'DCE5D25-FFC9-492A-8371-12A4E0EE2E05'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'IncorrectStatus.Vpc', - 'errorMessage' => 'The status of %s [%s] is incorrect.', - ], - [ - 'errorCode' => 'ResourceNotFound.RouteEntry', - 'errorMessage' => 'The specified resource routeEntry is not found.', - ], - [ - 'errorCode' => 'IncorrectStatus.RouteEntry', - 'errorMessage' => 'The status of %s [%s] is incorrect.', - ], - [ - 'errorCode' => 'IncorrectStatus.RouteEntryPublishStatus', - 'errorMessage' => 'Route entry publish status is incorrect.', - ], - [ - 'errorCode' => 'Forbidden.OperateCustomRouteTable', - 'errorMessage' => 'The operation is forbidden because publish route entry in custom route table.', - ], - [ - 'errorCode' => 'ResourceNotAssociated.TargetInstance', - 'errorMessage' => 'The target instance is not associated with vpc.', - ], - [ - 'errorCode' => 'OperationDenied.UnsupportedTargetType', - 'errorMessage' => 'The operation is not allowed because the target type is not supported.', - ], - [ - 'errorCode' => 'IncorrectStatus.RouteTable', - 'errorMessage' => 'The route table is in an invalid state.', - ], - [ - 'errorCode' => 'OperationUnsupported.PublishSystemRouteEntry', - 'errorMessage' => 'Publishing system route entry is unsupported.', - ], - [ - 'errorCode' => 'OperationUnsupported.UnsupportedNextHop', - 'errorMessage' => 'Unsupported nexthop type for route entry publish operation.', - ], - [ - 'errorCode' => 'OperationUnsupported.PublishPrefixListRouteEntry', - 'errorMessage' => 'Publishing prefix list route entry is unsupported.', - ], - [ - 'errorCode' => 'MissingParam.RouteEntries', - 'errorMessage' => 'The parameter RouteEntries is missing.', - ], + ['errorCode' => 'InvalidIpAddress.AlreadyExist', 'errorMessage' => 'The specified ip address is already exist.', 'description' => ''], + ['errorCode' => 'InvalidIpAddress.WrongFormat', 'errorMessage' => 'The specified ip address is invalid.', 'description' => ''], + ['errorCode' => 'InvalidIpAddress.PrivateAddress', 'errorMessage' => 'The specified private ip address is invalid.', 'description' => ''], + ['errorCode' => 'IPv6TranslatorEntry.InvalidPort', 'errorMessage' => 'The specified port is invalid.', 'description' => ''], + ['errorCode' => 'InvalidIPv6TranslatorId.NotFound', 'errorMessage' => 'The specified ipv6 translator instance id does not exist.', 'description' => ''], + ['errorCode' => 'InvalidName', 'errorMessage' => 'The specified value of name not supported.', 'description' => ''], + ['errorCode' => 'InvalidDescription', 'errorMessage' => 'The specified value of description not supported.', 'description' => ''], + ['errorCode' => 'IPv6TranslatorEntry.InvalidProtocol', 'errorMessage' => 'The specified transProtocol is invalid.', 'description' => ''], + ['errorCode' => 'Resource.QuotaFull', 'errorMessage' => 'The quota of resource is full', 'description' => ''], + ['errorCode' => 'IPv6Translator.Configuring', 'errorMessage' => 'The specified ipv6 translator is configuring.', 'description' => ''], + ['errorCode' => 'IPv6TranslatorEntry.InvalidBandwidth', 'errorMessage' => 'The specified entry bandwidth is not valid.', 'description' => ''], + ['errorCode' => 'IPv6TranslatorEntry.IPv6Conflict', 'errorMessage' => 'The specified ipv6 port conflict.', 'description' => ''], + ['errorCode' => 'IPv6TranslatorEntry.IPv4Conflict', 'errorMessage' => 'The specified ipv4 port and address conflict.', 'description' => ''], + ['errorCode' => 'IPv6TranslatorEntry.AclIdNull', 'errorMessage' => 'The acl id must not be null.', 'description' => ''], + ['errorCode' => 'InvalidIPv6TranslatorAclId.NotFound', 'errorMessage' => 'The specified ipv6 translator acl id does not exist.', 'description' => ''], + ['errorCode' => 'IPv6TranslatorEntry.InvalidAclStatus', 'errorMessage' => 'The specified acl status is invalid.', 'description' => ''], + ['errorCode' => 'IPv6TranslatorEntry.InvalidAclType', 'errorMessage' => 'The specified acl type is invalid.', 'description' => ''], + ], + 403 => [ + ['errorCode' => 'Forbbiden.SubUser', 'errorMessage' => 'User not authorized to operate on the specified resource as your account is created by another user.', 'description' => ''], + ['errorCode' => 'Forbidden', 'errorMessage' => 'User not authorized to operate on the specified resource.', 'description' => 'You do not have the permissions to manage the specified resource. Apply for the permissions and try again.'], ], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"0ED8D006-F706-4D23-88ED-E11ED28DCAC0\\"\\n}","type":"json"}]', - 'title' => 'WithdrawVpcPublishedRouteEntries', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Ipv6TranslatorEntryId\\": \\"ipv6transentry-xxxxxxxx\\",\\n \\"RequestId\\": \\"DCE5D25-FFC9-492A-8371-12A4E0EE2E05\\"\\n}","errorExample":""},{"type":"xml","example":"\\n ipv6transentry-xxxxxxxx\\n DCE5D25-FFC9-492A-8371-12A4E0EE2E05\\n","errorExample":""}]', + 'title' => 'CreateIPv6TranslatorEntry', + 'summary' => 'Adds an IPv6 mapping entry to an IPv6 Translation Service instance.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [], ], - 'ListGatewayRouteTableEntries' => [ - 'summary' => 'Queries route entries of a gateway route table.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'CreateIpsecServer' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'readAndWrite', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'list', - 'riskType' => 'none', - 'chargeType' => 'free', - ], + 'systemTags' => ['operationType' => 'create', 'riskType' => 'none', 'chargeType' => 'free', 'autoTest' => true, 'tenantRelevance' => 'tenant'], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the gateway route table.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent list of regions.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'ap-southeast-6', - ], + 'schema' => ['description' => 'The ID of the region where the VPN gateway is deployed.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'MaxResults', + 'name' => 'VpnGatewayId', 'in' => 'query', - 'schema' => [ - 'description' => 'The number of entries to return on each page. Valid values: **1** to **100**. Default value: **10**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '10', - ], + 'schema' => ['description' => 'The ID of the VPN gateway.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'vpn-bp17lofy9fd0dnvzv****', 'title' => ''], ], [ - 'name' => 'NextToken', + 'name' => 'LocalSubnet', 'in' => 'query', - 'schema' => [ - 'description' => 'The pagination token that is used in the next request to retrieve a new page of results. Valid values:'."\n" - ."\n" - .'* You do not need to specify this parameter for the first request.'."\n" - .'* If a value is returned for NextToken, specify the value in the next request to retrieve a new page of results.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', - ], + 'schema' => ['description' => 'The local CIDR blocks, which are the CIDR blocks of the virtual private cloud (VPC) for the client to access.'."\n" + ."\n" + .'Multiple CIDR blocks are separated with commas (,). Example: 192.168.1.0/24,192.168.2.0/24.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '192.168.0.0/24', 'title' => ''], ], [ - 'name' => 'GatewayRouteTableId', + 'name' => 'ClientIpPool', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the gateway route table that you want to query.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'vtb-5ts0ohchwkp3dydt2****', - ], + 'schema' => ['description' => 'The client CIDR block from which an IP address is allocated to the virtual network interface controller (NIC) of the client.'."\n" + ."\n" + .'> The client CIDR block must not overlap with the CIDR blocks of the VPC.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '10.0.0.0/24', 'title' => ''], ], [ - 'name' => 'DestinationCidrBlock', + 'name' => 'IpSecServerName', 'in' => 'query', - 'schema' => [ - 'description' => 'The destination CIDR block of the route entry in the gateway route table.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '192.168.0.5', - ], + 'schema' => ['description' => 'The name of the IPsec server.'."\n" + ."\n" + .'The name must be 1 to 100 characters in length.'."\n", 'type' => 'string', 'required' => false, 'example' => 'test', 'maxLength' => 100, 'title' => ''], ], [ - 'name' => 'RegionId', + 'name' => 'EffectImmediately', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the gateway route table.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent list of regions.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'ap-southeast-6', - ], + 'schema' => ['description' => 'Specify whether to start connection negotiations immediately. Valid values:'."\n" + ."\n" + .'* **true**: immediately initiates negotiations after the configuration is complete.'."\n" + .'* **false** (default): initiates negotiations when inbound traffic is detected. This is the default value.', 'type' => 'boolean', 'required' => false, 'example' => 'true', 'title' => ''], + ], + [ + 'name' => 'IkeConfig', + 'in' => 'query', + 'schema' => ['description' => 'The configuration of Phase 1 negotiation. Valid values:'."\n" + ."\n" + .'* **IkeVersion**: the IKE version. Valid values: **ikev1** and **ikev2**. Default value: **ikev2**.'."\n" + .'* **IkeMode**: the IKE negotiation mode. Default value: **main**.'."\n" + .'* **IkeEncAlg**: the encryption algorithm that is used in Phase 1 negotiation. Default value: **aes**.'."\n" + .'* **IkeAuthAlg**: the authentication algorithm that is used in Phase 1 negotiation. Default value: **sha1**.'."\n" + .'* **IkePfs**: the Diffie-Hellman key exchange algorithm that is used in Phase 1 negotiation. Default value: **group2**.'."\n" + .'* **IkeLifetime**: the security association (SA) lifetime determined by Phase 1 negotiation. Unit: seconds. Valid values: **0** to **86400**. Default value: **86400**.'."\n" + .'* **LocalId**: the identifier of the IPsec server. The value can be a fully qualified domain name (FQDN) or an IP address. The default value is the public IP address of the VPN gateway.'."\n" + .'* **RemoteId**: the peer identifier. The value can be an FQDN or an IP address. The default value is empty.'."\n", 'type' => 'string', 'required' => false, 'example' => '{"IkeVersion":"ikev2","IkeMode":"main","IkeEncAlg":"aes","IkeAuthAlg":"sha1","IkePfs":"group2","IkeLifetime":86400}', 'title' => ''], + ], + [ + 'name' => 'IpsecConfig', + 'in' => 'query', + 'schema' => ['description' => 'The configuration of Phase 2 negotiation. Valid values:'."\n" + ."\n" + .'* **IpsecEncAlg**: the encryption algorithm that is used in Phase 2 negotiation. Default value: **aes**.'."\n" + .'* **IpsecAuthAlg**: the authentication algorithm that is used in Phase 2 negotiation. Default value: **sha1**.'."\n" + .'* **IpsecPfs**: forwards packets of all protocols. The Diffie-Hellman key exchange algorithm that is used in Phase 2 negotiation. Default value: **group2**.'."\n" + .'* **IpsecLifetime**: the SA lifetime determined by Phase 2 negotiation. Unit: seconds. Valid values: **0** to **86400**. Default value: **86400**.'."\n", 'type' => 'string', 'required' => false, 'example' => '{"IpsecEncAlg":"aes","IpsecAuthAlg":"sha1","IpsecPfs":"group2","IpsecLifetime":86400}', 'title' => ''], + ], + [ + 'name' => 'PskEnabled', + 'in' => 'query', + 'schema' => ['description' => 'Indicates whether pre-shared key authentication is enabled. If you set the value to **true**, pre-shared key authentication is enabled.'."\n" + ."\n" + .'> This parameter is required.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'true', 'title' => ''], + ], + [ + 'name' => 'Psk', + 'in' => 'query', + 'schema' => ['description' => 'The pre-shared key.'."\n" + ."\n" + .'The pre-shared key that is used for authentication between the IPsec-VPN server and the client. It must be 1 to 100 characters in length.'."\n" + ."\n" + .'If you do not specify a pre-shared key, the system randomly generates a 16-bit string as the pre-shared key. You can call [ListIpsecServers](~~2794120~~) to query keys generated by the system.'."\n" + ."\n" + .'> The pre-shared key of the IPsec server key must be the same as that of the client. Otherwise, the connection between the IPsec server and the client cannot be established.'."\n", 'type' => 'string', 'required' => false, 'example' => 'Cfd123****', 'title' => ''], + ], + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'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.'."\n" + ."\n" + .'> 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.'."\n", 'type' => 'string', 'required' => false, 'example' => 'd7d24a21-f4ba-4454-9173-b38****', 'title' => ''], + ], + [ + 'name' => 'DryRun', + 'in' => 'query', + 'schema' => ['description' => 'Specifies whether to only precheck this request. Valid values:'."\n" + ."\n" + .'* **true**: prechecks the request without creating the IPsec server. The system checks the required parameters, request format, and service limits. If the request fails to pass the precheck, an error code is returned. If the request passes the precheck, the `DryRunOperation` error code is returned.'."\n" + .'* **false** (default): sends the request. This is the default value. If the request passes the precheck, the system creates the IPsec server.', 'type' => 'string', 'required' => false, 'example' => 'false', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => 'The route entries in the gateway route table.'."\n", + 'description' => 'The returned results.'."\n", 'type' => 'object', 'properties' => [ - 'NextToken' => [ - 'description' => 'The returned value of NextToken is a pagination token, which can be used in the next request to retrieve a new page of results. Valid values:'."\n" - ."\n" - .'* If **NextToken** is empty, no next page exists.'."\n" - .'* If a value is returned for **NextToken**, the value is used to retrieve a new page of results.'."\n", - 'type' => 'string', - 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', - ], - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '0ED8D006-F706-4D23-88ED-E11ED28DCAC0', - ], - 'TotalCount' => [ - 'description' => 'The total number of entries returned.'."\n", - 'type' => 'string', - 'example' => '1', - ], - 'GatewayRouteEntryModels' => [ - 'description' => 'The details of the routes in the gateway route table.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'Status' => [ - 'description' => 'The status of the route entry. Valid values:'."\n" - ."\n" - .'* **Pending**'."\n" - .'* **Available**'."\n" - .'* **Modifying**'."\n", - 'type' => 'string', - 'example' => 'Available', - ], - 'NextHopId' => [ - 'description' => 'The ID of the next hop.'."\n", - 'type' => 'string', - 'example' => 'i-bp11gcl0sm85t9bi****', - ], - 'Description' => [ - 'description' => 'The name of the route entry.'."\n", - 'type' => 'string', - 'example' => 'test', - ], - 'NextHopType' => [ - 'description' => 'The type of the next hop. Valid values:'."\n" - ."\n" - .'* **EcsInstance**: Elastic Compute Service (ECS) instance'."\n" - .'* **NetworkInterface**: elastic network interfaces (ENIs).'."\n" - .'* **Local**: local next hop'."\n", - 'type' => 'string', - 'example' => 'EcsInstance', - ], - 'DestinationCidrBlock' => [ - 'description' => 'The destination CIDR block of the route.'."\n", - 'type' => 'string', - 'example' => '192.168.0.5', - ], - 'Name' => [ - 'description' => 'The name of the route entry.'."\n" - ."\n" - .'The name must be 2 to 128 characters in length and can contain letter, digits, periods (.), underscores (\\_), and hyphens (-). The name must start with a letter.'."\n", - 'type' => 'string', - 'example' => 'name', - ], - 'NextHops' => [ - 'description' => 'The information about the next hop.'."\n", - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'NextHopId' => [ - 'description' => 'The ID of the next hop.'."\n", - 'type' => 'string', - 'example' => 'vpn-bp10zyaph5cc8b7c7****', - ], - 'NextHopType' => [ - 'description' => 'The type of the next hop. Valid values:'."\n" - ."\n" - .'* **Instance** (default): an ECS instance'."\n" - .'* **HaVip**: a high-availability virtual IP address (HaVip).'."\n" - .'* **VpnGateway**: a VPN gateway'."\n" - .'* **NatGateway**: a NAT gateway'."\n" - .'* **NetworkInterface**: a secondary ENI'."\n" - .'* **RouterInterface**: a router interface'."\n" - .'* **IPv6Gateway**: an IPv6 gateway'."\n" - .'* **Attachment**: a transit router', - 'type' => 'string', - 'example' => 'Instance', - ], - 'Weight' => [ - 'description' => 'The weight of the route.'."\n", - 'type' => 'string', - 'example' => '100', - ], - 'Enabled' => [ - 'description' => 'Indicates whether the route is available. Valid values:'."\n" - ."\n" - .'* **0**: unavailable'."\n" - .'* **1**: available'."\n", - 'type' => 'string', - 'example' => '1', - ], - ], - ], - ], - ], - ], - ], + 'CreationTime' => ['description' => 'The time when the IPsec server was created.'."\n" + ."\n" + .'T is used as a delimiter. Z indicates that the time is in UTC.'."\n", 'type' => 'string', 'example' => '2021-02-22T03:24:28Z', 'title' => ''], + 'IpsecServerId' => ['description' => 'The IPsec server ID.'."\n", 'type' => 'string', 'example' => 'iss-bp1jougp8cfsbo8y9****', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '690A967E-D4CD-4B69-8C78-94FE828BA10B', 'title' => ''], + 'IpsecServerName' => ['description' => 'The IPsec server name.'."\n", 'type' => 'string', 'example' => 'test', 'title' => ''], + 'VpnGatewayId' => ['description' => 'The ID of the VPN gateway.'."\n", 'type' => 'string', 'example' => 'vpn-bp17lofy9fd0dnvzv****', 'title' => ''], + 'RegionId' => ['description' => 'The ID of the region where the VPN gateway is deployed.'."\n", 'type' => 'string', 'example' => 'cn-hangzhou', 'title' => ''], ], + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'ResourceNotFound.GatewayRouteTable', - 'errorMessage' => 'The specified resource GatewayRouteTable is not found.', - ], - [ - 'errorCode' => 'IllegalParam.NextToken', - 'errorMessage' => 'The param of nextToken is illegal', - ], + ['errorCode' => 'OperationUnsupported.IPsecServer', 'errorMessage' => 'The current version of the VPN gateway does not support IPsec server.', 'description' => 'The current version of the VPN gateway does not support IPsec server.'], + ['errorCode' => 'VpnGateway.SslVpnDisabled', 'errorMessage' => 'The VPN gateway has not enabled SSL VPN.', 'description' => 'The SSL-VPN feature is disabled for the VPN gateway.'], + ['errorCode' => 'VpnGateway.Configuring', 'errorMessage' => 'The specified service is configuring.', 'description' => ''], + ['errorCode' => 'VpnGateway.FinancialLocked', 'errorMessage' => 'The specified service is financial locked.', 'description' => ''], + ['errorCode' => 'OperationFailed.IPsecServerExist', 'errorMessage' => 'An IPsec server already exists in the VPN gateway.', 'description' => 'An IPsec server already exists in the VPN gateway.'], + ['errorCode' => 'OperationUnsupported.IpsecPfs', 'errorMessage' => 'The specified IPsec Pfs is unsupported.', 'description' => 'The specified IPsec PFS property is not supported.'], + ['errorCode' => 'IllegalParam.AuthMethod', 'errorMessage' => 'One authentication method (Psk or IDaaS) should be specified at least.', 'description' => 'You must specify at least one authentication method, such as PSK or IDaaS.'], + ['errorCode' => 'IllegalParam.LocalSubnet', 'errorMessage' => 'The specified "LocalSubnet" (%s) is invalid.', 'description' => 'The specified "LocalSubnet" (%s) is invalid.'], + ['errorCode' => 'IllegalParam.ClientIpPool', 'errorMessage' => 'The specified ClientIpPool (%s) is invalid.', 'description' => 'The client CIDR block (%s) is invalid.'], + ['errorCode' => 'MissingParam.IDaaSInstanceId', 'errorMessage' => 'The input parameter IDaaSInstanceId is mandatory when enable multi-factor authentication.', 'description' => 'You must specify the IDaaS instance ID when two-factor authentication is enabled.'], + ['errorCode' => 'OperationFailed.NoRamPermission', 'errorMessage' => 'Vpn Service has no permission to operate your IDaaS instances.', 'description' => 'The VPN service does not have the permissions to manage your IDaaS instance.'], + ['errorCode' => 'ClientIpPool.NetmaskInvalid', 'errorMessage' => 'The netmask length of client IP pool must be greater than or equal to 16 and less than or equal to 29.', 'description' => 'The subnet mask of the client IP pool must range from 16 to 29.'], + ['errorCode' => 'VpnRouteEntry.Conflict', 'errorMessage' => 'The specified client IP pool conflicts with VPN connection or SSL server.', 'description' => 'The specified client IP pool conflicts with the VPN connection or the SSL server.'], + ['errorCode' => 'ClientIpPool.SubnetInvalid', 'errorMessage' => 'The specified client IP pool cannot be used.', 'description' => 'The client CIDR block is unavailable.'], + ['errorCode' => 'InvalidClientIpPool.Conflict', 'errorMessage' => 'The specified client IP pool conflicts with other resources in the same VPC.', 'description' => 'The client CIDR block conflicts with resources in the VPC.'], + ['errorCode' => 'OperationFailed.AddVpcRoute', 'errorMessage' => 'It is failed to add VPC route after this operation.', 'description' => 'VPC routes failed to be added after the operation is performed.'], + ['errorCode' => 'QuotaExceeded.VpnRouteEntry', 'errorMessage' => 'The number of route entries to the VPN gateway in the VPC routing table has reached the quota limit.', 'description' => 'The number of route entries to the VPN gateway in the VPC routing table has reached the quota limit.'], + ['errorCode' => 'SystemBusy', 'errorMessage' => 'The system is busy. Please try again later.', 'description' => ''], + ['errorCode' => 'EnableHaCheck.IpsecServerCidrContainsVpcRouteDest', 'errorMessage' => 'Ipsec server client cidr contains vpc route prefix. The vpc route prefix is %s.', 'description' => 'The prefix %s in the VPC route table falls within the CIDR block of the IPsec client.'], + ['errorCode' => 'VpnGateway.IPsecServerAndVpnConnectionConflict', 'errorMessage' => 'The IPSec connection and IPSec server cannot be configured on the same VPN gateway at the same time.', 'description' => 'You cannot configure an IPsec server and an IPsec-VPN connection at the same time for one VPN gateway.'], + ['errorCode' => 'EnableHaCheck.SslVpnServerClientCidrContainsVpcRouteDest', 'errorMessage' => 'Ssl vpn client cidr contains vpc route prefix. The vpc route prefix is %s.', 'description' => 'The prefix %s in the VPC route table falls within the CIDR block of the SSL client.'], + ], + 403 => [ + ['errorCode' => 'Forbidden', 'errorMessage' => 'User not authorized to operate on the specified resource.', 'description' => 'You do not have the permissions to manage the specified resource. Apply for the permissions and try again.'], + ], + [ + ['errorCode' => 'InvalidVpnGatewayInstanceId.NotFound', 'errorMessage' => 'The specified vpn gateway instance id does not exist.', 'description' => ''], + ['errorCode' => 'InvalidIDaaSInstanceId.NotFound', 'errorMessage' => 'The specified IDaaS instance ID does not exist.', 'description' => 'The specified IDaaS instance does not exist.'], + ], + 409 => [ + ['errorCode' => 'OperationConflict', 'errorMessage' => 'The operation against this instance is too frequent, please try again later.', 'description' => 'Operations are too frequently performed on the instance. Try again later.'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'staticInfo' => ['returnType' => 'asynchronous', 'callback' => 'Vpc::2016-04-28::DescribeVpnGateway', 'callbackInterval' => 1000, 'maxCallbackTimes' => 30], + 'title' => 'CreateIpsecServer', + 'summary' => 'Creates an IPsec server.', + 'description' => '* Before you create an IPsec server, you must create a VPN gateway and enable the SSL-VPN feature for the VPN gateway. For more information, see [CreateVpnGateway](~~2794049~~).'."\n" + ."\n" + .'* Before you create an IPsec server, make sure that no IPsec-VPN connection exists on the VPN gateway. For more information, see [DeleteVpnConnection](~~2526948~~).'."\n" + ."\n" + .'* **CreateIpsecServer** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call [DescribeVpnGateway](~~2794055~~) to query the status of the task.'."\n" + ."\n" + .' * If the VPN gateway is in the **updating** state, the IPsec server is being created.'."\n" + .' * If the VPN gateway is in the **active** state, the IPsec server is created.'."\n" + ."\n" + .'* You cannot repeatedly call **CreateIpsecServer** within the specified period of time.'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2025-05-23T06:50:33.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-01-04T07:17:11.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-10-19T07:04:01.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2022-12-08T09:38:28.000Z', 'description' => 'Error codes changed'], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"NextToken\\": \\"FFmyTO70tTpLG6I3FmYAXGKPd****\\",\\n \\"RequestId\\": \\"0ED8D006-F706-4D23-88ED-E11ED28DCAC0\\",\\n \\"TotalCount\\": \\"1\\",\\n \\"GatewayRouteEntryModels\\": [\\n {\\n \\"Status\\": \\"Available\\",\\n \\"NextHopId\\": \\"i-bp11gcl0sm85t9bi****\\",\\n \\"Description\\": \\"test\\",\\n \\"NextHopType\\": \\"EcsInstance\\",\\n \\"DestinationCidrBlock\\": \\"192.168.0.5\\",\\n \\"Name\\": \\"name\\",\\n \\"NextHops\\": [\\n {\\n \\"NextHopId\\": \\"vpn-bp10zyaph5cc8b7c7****\\",\\n \\"NextHopType\\": \\"Instance\\",\\n \\"Weight\\": \\"100\\",\\n \\"Enabled\\": \\"1\\"\\n }\\n ]\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\n FFmyTO70tTpLG6I3FmYAXGKPd****\\n 0ED8D006-F706-4D23-88ED-E11ED28DCAC0\\n 1\\n \\n Available\\n i-bp11gcl0sm85t9bi****\\n test\\n EcsInstance\\n 192.168.0.5\\n name\\n \\n","errorExample":""}]', - 'title' => 'ListGatewayRouteTableEntries', + 'ramActions' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"CreationTime\\": \\"2021-02-22T03:24:28Z\\",\\n \\"IpsecServerId\\": \\"iss-bp1jougp8cfsbo8y9****\\",\\n \\"RequestId\\": \\"690A967E-D4CD-4B69-8C78-94FE828BA10B\\",\\n \\"IpsecServerName\\": \\"test\\",\\n \\"VpnGatewayId\\": \\"vpn-bp17lofy9fd0dnvzv****\\",\\n \\"RegionId\\": \\"cn-hangzhou\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 2021-02-22T03:24:28Z\\n iss-bp1jougp8cfsbo8y9****\\n 690A967E-D4CD-4B69-8C78-94FE828BA10B\\n test\\n vpn-bp17lofy9fd0dnvzv****\\n cn-hangzhou\\n","errorExample":""}]', ], - 'AssociateRouteTableWithGateway' => [ - 'summary' => 'Associates a gateway route table with an IPv4 gateway in the same virtual private cloud (VPC).', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'CreateIpv4Gateway' => [ + 'summary' => 'Creates an IPv4 gateway.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -13070,190 +9173,163 @@ ], 'operationType' => 'readAndWrite', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'create', - ], + 'systemTags' => ['operationType' => 'create', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ - 'name' => 'RegionId', + 'name' => 'Ipv4GatewayName', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the IPv4 gateway with which you want to associate the gateway route table.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'ap-southeast-6', - ], + 'schema' => ['description' => 'The name of the IPv4 gateway.'."\n" + ."\n" + .'The name must be 1 to 128 characters in length, and cannot start with `http://` or `https://`.'."\n", 'type' => 'string', 'required' => false, 'example' => 'ipv4', 'title' => ''], ], [ - 'name' => 'RouteTableId', + 'name' => 'Ipv4GatewayDescription', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the gateway route table.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'vtb-5ts0ohchwkp3dydt2****', - ], + 'schema' => ['description' => 'The description of the IPv4 gateway.'."\n" + ."\n" + .'The description must be 1 to 256 characters in length and cannot start with `http://` or `https://`.'."\n", 'type' => 'string', 'required' => false, 'example' => 'test', 'title' => ''], ], [ - 'name' => 'ClientToken', + 'name' => 'VpcId', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'You can use the client to generate the value, but you must make sure that it is unique among different requests. The token can contain only ASCII characters and cannot exceed 64 characters in length.'."\n" - ."\n" - .'> If you do not set this parameter, the system automatically uses **RequestId** as **ClientToken**. **RequestId** of each API request may be different.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-426655440000', - ], + 'schema' => ['description' => 'The ID of the VPC where you want to create the IPv4 gateway.'."\n" + ."\n" + .'You can create only one IPv4 gateway in a VPC.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'vpc-5tss06uvoyps5xoya****', 'title' => ''], ], [ 'name' => 'DryRun', 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to check the request without performing the operation. Valid values:'."\n" - ."\n" - .'* **true**: prechecks the request without performing the operation. The system prechecks the required parameters, request syntax, and limits. If the request fails the precheck, an error message is returned. If the request passes the precheck, the `DryRunOperation` error code is returned.'."\n" - .'* **false** (default): sends the request. After the request passes the precheck, a 2xx HTTP status code is returned and the operation is performed.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['description' => 'Specifies whether to perform a dry run. Valid values:'."\n" + ."\n" + .'* **true**: performs a dry run. The system checks the required parameters, request syntax, and 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.'."\n" + .'* **false** (default): performs a dry run and sends the request. If the request passes the dry run, a 2xx HTTP status code is returned and the operation is performed.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], ], [ - 'name' => 'GatewayId', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the IPv4 gateway.'."\n" - ."\n" - .'The IPv4 gateway must be in the **Activated** state.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'ipv4gw-5tsnc6s4ogsedtp3k****', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'You can use the client to generate the value, but you must make sure that it is unique among different requests. ClientToken can contain only ASCII characters.'."\n" + ."\n" + .'> If you do not set this parameter, the system sets **ClientToken** to the value of **RequestId**. The value of **RequestId** for each API request is different.'."\n", 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-426655440000', 'title' => ''], ], [ - 'name' => 'GatewayType', + 'name' => 'RegionId', 'in' => 'query', + 'schema' => ['description' => 'The ID of the region where you want to create the IPv4 gateway.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'ap-southeast-6', 'title' => ''], + ], + [ + 'name' => 'ResourceGroupId', + 'in' => 'query', + 'schema' => ['description' => 'The ID of the resource group.'."\n", 'type' => 'string', 'required' => false, 'docRequired' => false, 'example' => 'rg-acfmxazb4ph6aiy****', 'title' => ''], + ], + [ + 'name' => 'Tag', + 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => 'The type of a gateway to be associated with a route table.', - 'type' => 'string', + 'description' => 'The tags of the resource.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => 'The key of tag N to add to the resource. You can specify up to 20 tag keys. The tag key cannot be an empty string.'."\n" + ."\n" + .'The tag key can be up to 128 characters in length. It cannot start with `aliyun` or `acs:`, and cannot contain `http://` or `https://`.'."\n", 'type' => 'string', 'required' => false, 'example' => 'FinanceDept', 'title' => ''], + 'Value' => ['description' => '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.'."\n" + ."\n" + .'The tag value can be up to 128 characters in length and cannot contain `http://` or `https://`. The tag value cannot start with `aliyun` or `acs:`.'."\n", 'type' => 'string', 'required' => false, 'example' => 'FinanceJoshua', 'title' => ''], + ], + 'required' => false, + 'title' => '', + 'example' => '', + ], 'required' => false, - 'docRequired' => false, - 'example' => 'Ipv4Gateway', + 'maxItems' => 21, + 'title' => '', + 'example' => '', ], ], [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the IPv4 gateway with which you want to associate the gateway route table.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'ap-southeast-6', - ], + 'schema' => ['description' => 'The ID of the region where you want to create the IPv4 gateway.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'ap-southeast-6', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'description' => '', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => 'F89C2176-8F10-55EF-90CF-CF99D1E3F816', - ], + 'Ipv4GatewayId' => ['description' => 'The ID of the IPv4 gateway.'."\n", 'type' => 'string', 'example' => 'ipv4gw-5tsnc6s4ogsedtp3k****', 'title' => ''], + 'ResourceGroupId' => ['description' => 'The ID of the resource group.'."\n", 'type' => 'string', 'example' => 'rg-acfmxazb4ph6aiy****', 'title' => ''], + 'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => 'F282742B-1BBB-5F63-A3AF-E92EC575A1A6', 'title' => ''], ], + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'ResourceNotFound.Ipv4Gateway', - 'errorMessage' => 'The specified resource ipv4Gateway is not found.', - ], - [ - 'errorCode' => 'IncorrectStatus.Ipv4Gateway', - 'errorMessage' => 'The status of %s [%s] is incorrect.', - ], - [ - 'errorCode' => 'ResourceAlreadyAssociated.Ipv4Gateway', - 'errorMessage' => 'The specified resource %s is already associated.', - ], - [ - 'errorCode' => 'ResourceNotFound.GatewayRouteTable', - 'errorMessage' => 'The specified resource GatewayRouteTable is not found.', - ], - [ - 'errorCode' => 'IncorrectStatus.GatewayRouteTable', - 'errorMessage' => 'The status of %s [%s] is incorrect.', - ], - [ - 'errorCode' => 'ResourceAlreadyAssociated.GatewayRouteTable', - 'errorMessage' => 'The specified resource %s is already associated.', - ], - [ - 'errorCode' => 'OperationDenied.Ipv4GatewayNotActive', - 'errorMessage' => 'The operation is not allowed because of ipv4Gateway [%s] is not active.', - ], - [ - 'errorCode' => 'OperationDenied.RouteTableTypeIncorrect', - 'errorMessage' => 'The operation is not allowed because of routeTableType is incorrect.', - ], - [ - 'errorCode' => 'ResourceNotFound.RouteTable', - 'errorMessage' => 'The specified resource gatewayRouteTable is not found.', - ], - [ - 'errorCode' => 'OperationDenied.GatewayAndTableNotInOneVpc', - 'errorMessage' => 'The operation is not allowed because of GatewayAndTableNotInOneVpc.', - ], - [ - 'errorCode' => 'IncorrectStatus.RouteTable', - 'errorMessage' => 'The status of the specified route table is incorrect.', - ], - [ - 'errorCode' => 'IllegalParam.GatewayType', - 'errorMessage' => 'The param of %s is illegal.', - ], - [ - 'errorCode' => 'UnsupportedFeature.Ipv6GatewayRouteTable', - 'errorMessage' => 'The feature of %s is not supported.', - ], - [ - 'errorCode' => 'OperationDenied.IngressRoutingNotSupportAnycast', - 'errorMessage' => 'The operation is not allowed because ingress routing not support anycast.', - ], - [ - 'errorCode' => 'OperationDenied.ExistPublicIpv6IpInVpc', - 'errorMessage' => 'Operation denied because IPV6 public ip exists in VPC.', + ['errorCode' => 'OperationDenied.ExistDirectEip', 'errorMessage' => 'The operation is not allowed because of existing direct eip.', 'description' => 'You are not allowed to create an IPv4 gateway because an EIP in cut-through mode exists.'], + ['errorCode' => 'UnsupportedRegion', 'errorMessage' => 'The feature of ipv4Gateway is not supported in the region.', 'description' => 'IPv4 gateways are not supported in this region.'], + ['errorCode' => 'Forbidden.OperateShareResource', 'errorMessage' => 'You cannot operate shared resources.', 'description' => 'Shared resources do not support this operation.'], + ['errorCode' => 'OperationDenied.SubnetRouteV1Exist', 'errorMessage' => 'The operation is not allowed because of existing subnetRouteV1.', 'description' => 'The subnet routes in the VPC do not meet the requirements.'], + ['errorCode' => 'OperationDenied.NormalNatExist', 'errorMessage' => 'The operation is not allowed because of existing normalNat.', 'description' => 'Standard NAT gateways are deployed in the specified VPC.'], + ['errorCode' => 'OperationDenied.VpcExistIpv4Gateway', 'errorMessage' => 'An IPv4 gateway already exists in the VPC.', 'description' => 'You are not allowed to create an IPv4 gateway in the VPC because an IPv4 gateway already exists in the VPC.'], + ['errorCode' => 'UnsupportedFeature.Ipv4Gateway', 'errorMessage' => 'The feature of ipv4Gateway is not supported for [%s].', 'description' => 'The system failed to create the IPv4 gateway because IPv4 gateways are not supported.'], + ['errorCode' => 'OperationDenied.VpnExist', 'errorMessage' => 'The operation is not allowed because of existing vpn.', 'description' => 'You are not allowed to create an IPv4 gateway because a VPN gateway already exists in the VPC.'], + ['errorCode' => 'OperationDenied.DirectEipExist', 'errorMessage' => 'The operation is not allowed because of existing directEip.', 'description' => 'EIPs are associated with the VPC in cut-through mode or enhanced NAT gateways are deployed in the VPC.'], + ['errorCode' => 'OperationFailed.GetNfvServiceList', 'errorMessage' => 'The operation is failed because of get nfv serviceList failed.', 'description' => 'Failed to obtain the nfc service list.'], + ['errorCode' => 'IncorrectStatus.Vpc', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => 'The instance is in an invalid state.'], + ['errorCode' => 'OperationFailed.VpcNotExist', 'errorMessage' => 'The operation is failed because of vpc is not found.', 'description' => 'The operation failed because the VPC is not found.'], + ['errorCode' => 'IllegalParam.ResourceGroupId', 'errorMessage' => 'Invalid ResourceGroupld value.', 'description' => 'The specified resource group is invalid or does not exist.'], + ], + ], + 'staticInfo' => ['returnType' => 'asynchronous', 'callback' => 'Vpc::2016-04-28::GetIpv4GatewayAttribute', 'callbackInterval' => 3, 'maxCallbackTimes' => 10], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Ipv4GatewayId\\": \\"ipv4gw-5tsnc6s4ogsedtp3k****\\",\\n \\"ResourceGroupId\\": \\"rg-acfmxazb4ph6aiy****\\",\\n \\"RequestId\\": \\"F282742B-1BBB-5F63-A3AF-E92EC575A1A6\\"\\n}","errorExample":""},{"type":"xml","example":"\\n ipv4gw-5tsnc6s4ogsedtp3k****\\n rg-acfmxazb4ph6aiy****\\n F282742B-1BBB-5F63-A3AF-E92EC575A1A6\\n","errorExample":""}]', + 'title' => 'CreateIpv4Gateway', + 'description' => '* **CreateIpv4Gateway** is an asynchronous operation. After you send a request, the system returns a request ID and runs the task in the background. You can call the [GetIpv4GatewayAttribute](~~407670~~) operation to query the status of an IPv4 gateway:'."\n" + ."\n" + .' * If the IPv4 gateway is in the **Creating** state, the IPv4 gateway is being created.'."\n" + .' * If the IPv4 gateway is in the **Created** state, the IPv4 gateway is created.'."\n" + ."\n" + .'* You cannot repeatedly call the **CreateIpv4Gateway** operation to create IPv4 gateways in a virtual private cloud (VPC) within the specified period of time.', + 'changeSet' => [ + ['createdAt' => '2023-07-18T07:25:12.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-07-05T05:51:50.000Z', 'description' => 'Request parameters changed, Response parameters changed'], + ['createdAt' => '2021-11-02T02:19:49.000Z', 'description' => 'OpenAPI offline'], + ], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'vpc:CreateIpv4Gateway', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'Ipv4Gateway', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:ipv4gateway/*'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"F89C2176-8F10-55EF-90CF-CF99D1E3F816\\"\\n}","errorExample":""},{"type":"xml","example":"\\n F89C2176-8F10-55EF-90CF-CF99D1E3F816\\n","errorExample":""}]', - 'title' => 'AssociateRouteTableWithGateway', - ], - 'DissociateRouteTableFromGateway' => [ - 'summary' => 'Disassociates a gateway route table from an IPv4 gateway.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '60', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CreateIpv4Gateway'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], ], + ], + 'CreateIpv6EgressOnlyRule' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -13262,164 +9338,143 @@ 'operationType' => 'readAndWrite', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'get', - 'abilityTreeCode' => '38047', - 'abilityTreeNodes' => [ - 'FEATUREvpcRPO4YI', - ], + 'operationType' => 'create', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '37981', + 'abilityTreeNodes' => ['FEATUREvpc3GHR3P'], + 'autoTest' => true, + 'tenantRelevance' => 'publicInformation', ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the IPv4 gateway from which you want to disassociate the gateway route table.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'ap-southeast-6', - ], + 'schema' => ['description' => 'The region ID of the IPv6 gateway.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the region ID.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-huhehaote', 'title' => ''], ], [ - 'name' => 'RouteTableId', + 'name' => 'Ipv6GatewayId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the gateway route table.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'vtb-5ts0ohchwkp3dydt2****', - ], + 'schema' => ['description' => 'The instance ID of the IPv6 gateway.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'ipv6gw-hp3c2paq0ywauasza****', 'title' => ''], ], [ - 'name' => 'ClientToken', + 'name' => 'InstanceId', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'You can use the client to generate the value, but you must make sure that it is unique among different requests. The token can contain only ASCII characters and cannot exceed 64 characters in length.'."\n" - ."\n" - .'> If you do not set this parameter, the system automatically uses **RequestId** as **ClientToken**. **RequestId** may be different for each API request.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-426655440000', - ], + 'schema' => ['description' => 'The ID of the IPv6 address for which you want to create an egress-only rule.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'ipv6-hp3nxjkfxn5pnhgl5****', 'title' => ''], ], [ - 'name' => 'DryRun', + 'name' => 'InstanceType', 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to only precheck the request. Valid values:'."\n" - ."\n" - .'* **true**: prechecks the request without performing the operation. The system prechecks the required parameters, request syntax, and limits. If the request fails to pass the precheck, an error message is returned. If the request passes the precheck, the `DryRunOperation` error code is returned.'."\n" - .'* **false** (default): sends the request. After the request passes the precheck, a 2xx HTTP status code is returned and the operation is performed.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['description' => 'The type of the instance for which you want to create an egress-only rule.'."\n" + ."\n" + .'Set the value to **Ipv6Address** (default), which indicates the IPv6 address type.', 'type' => 'string', 'required' => false, 'example' => 'Ipv6Address', 'title' => ''], ], [ - 'name' => 'GatewayId', + 'name' => 'Name', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the IPv4 gateway.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'ipv4gw-5tsnc6s4ogsedtp3k****', - ], + 'schema' => ['description' => 'The name of the egress-only rule.'."\n" + ."\n" + .'The name must be 0 to 128 characters in length and cannot start with `http://` or `https://`.', 'type' => 'string', 'required' => false, 'example' => 'rulename', 'title' => ''], ], [ - 'name' => 'GatewayType', + 'name' => 'Description', 'in' => 'query', - 'schema' => [ - 'description' => 'The type of a gateway to be disassociated from a route table.', - 'type' => 'string', - 'required' => false, - 'docRequired' => true, - 'example' => 'Ipv4Gateway', - ], + 'schema' => ['description' => 'The description of the egress-only rule.'."\n" + ."\n" + .'The description must be 0 to 256 characters in length and cannot start with `http://` or `https://`.', 'type' => 'string', 'required' => false, 'example' => 'ruledescription', 'title' => ''], ], [ - 'name' => 'RegionId', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the IPv4 gateway from which you want to disassociate the gateway route table.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'ap-southeast-6', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'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 and cannot exceed 64 characters in length.'."\n" + ."\n" + .'> If you do not specify this parameter, the system automatically uses the RequestId of the API request as the ClientToken. The RequestId may be different for each API request.', 'type' => 'string', 'required' => false, 'example' => '0c593ea1-3bea-11e9-b96b-88e9fe637760', 'title' => ''], + ], + [ + 'name' => 'DryRun', + 'in' => 'query', + 'schema' => ['title' => '', 'description' => 'Specifies whether to perform a dry run without performing the actual request.', 'type' => 'boolean', 'required' => false, 'example' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => 'The returned information.', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => 'C5644C9A-7480-13B6-AECB-30FF142E3724', - ], + 'Ipv6EgressRuleId' => ['description' => 'The ID of the egress-only rule.', 'type' => 'string', 'example' => 'ipv6py-hp3w98rmlbqp01245****', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '9DFEDBEE-E5AB-49E8-A2DC-CC114C67AF75', 'title' => ''], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'OperationFailed.NotExistAssociateRelation', - 'errorMessage' => 'The operation is not failed because of not exist this associate relation.', - ], - [ - 'errorCode' => 'ResourceNotFound.Ipv4Gateway', - 'errorMessage' => 'The specified resource ipv4Gateway is not found.', - ], - [ - 'errorCode' => 'IncorrectStatus.Ipv4Gateway', - 'errorMessage' => 'The status of %s [%s] is incorrect.', - ], - [ - 'errorCode' => 'ResourceNotFound.GatewayRouteTable', - 'errorMessage' => 'The specified resource GatewayRouteTable is not found.', - ], - [ - 'errorCode' => 'IncorrectStatus.GatewayRouteTable', - 'errorMessage' => 'The status of %s [%s] is incorrect.', - ], - [ - 'errorCode' => 'ResourceNotFound.RouteTable', - 'errorMessage' => 'The specified resource gatewayRouteTable is not found.', - ], - [ - 'errorCode' => 'OperationDenied.RouteTableTypeIncorrect', - 'errorMessage' => 'The operation is not allowed because of %s.', - ], - [ - 'errorCode' => 'IncorrectStatus.Ipv6Gateway', - 'errorMessage' => 'The status of %s [%s] is incorrect.', + ['errorCode' => 'InvalidIpv6Gateway.NotFound', 'errorMessage' => 'The specified IPv6 gateway was not found.', 'description' => 'The specified IPv6 gateway was not found.'], + ['errorCode' => 'IllegalParam.Name', 'errorMessage' => 'The param of Name [%s] is illegal.', 'description' => 'The error message returned because the Name parameter is set to an invalid value. Specify a valid value and try again.'], + ['errorCode' => 'IllegalParam.Description', 'errorMessage' => 'The parameter of Description is illegal.', 'description' => 'The Description parameter is invalid.'], + ['errorCode' => 'IllegalParam.InstanceType', 'errorMessage' => 'The parameter of InstanceType is illegal.', 'description' => 'The InstanceType parameter is invalid.'], + ['errorCode' => 'OperationFailed.FinancialLocked', 'errorMessage' => 'The operation is forbidden because of financialLocked.', 'description' => 'The operation failed due to an overdue payment.'], + ['errorCode' => 'OperationUnsupported.EgressRuleVSwitch', 'errorMessage' => 'The specified VSwitch is not supported to create egress-only rule.', 'description' => 'The specified region does not support vSwitch-level egress-only rules.'], + ['errorCode' => 'InvalidIpv6Instance.NotFound', 'errorMessage' => 'The specified resource of InvalidIpv6Instance is not found.', 'description' => 'The error message returned because the IPv6 resource is not found.'], + ['errorCode' => 'OperationFailed.NoInternetBandwidth', 'errorMessage' => 'Operation failed because the ipv6 instance has no internet bandwidth.', 'description' => 'The operation is not supported because the IPv6 instance does not have Internet bandwidth.'], + ['errorCode' => 'OperationFailed.Ipv6EgressRuleExisted', 'errorMessage' => 'An egress-only rule already exists for the IPv6 address.', 'description' => 'The IPv6 instance already has egress-only rules.'], + ['errorCode' => 'OperationFailed.InternetBandwidthUnstable', 'errorMessage' => 'The operation is forbidden because of InternetBandwidthUnstable.', 'description' => 'The operation is prohibited because the bandwidth instance is not in a stable state.'], + ['errorCode' => 'IncorrectStatus.Ipv6InternetBandwidth', 'errorMessage' => 'The status of the IPv6InternetBandwidth is incorrect.', 'description' => 'The current state of the IPv6 Internet bandwidth does not support creating IPv6 egress-only rules.'], + ['errorCode' => 'OperationUnsupported.EgressRuleInDefaultSpec', 'errorMessage' => 'Egress-only rule is not supported. Please update the spec of IPv6 Gateway to Medium or Large.', 'description' => 'The free edition IPv6 gateway does not support creating egress-only rules. Upgrade the IPv6 gateway to Enterprise Edition or Enhanced Enterprise Edition.'], + ['errorCode' => 'QuotaExceeded.Ipv6EgressRules', 'errorMessage' => '%s quota exceeded.', 'description' => 'Ipv6EgressRules quantity quota exceeds limit'], + ['errorCode' => 'Mismatch.Ipv6AddressAndIpv6Gateway', 'errorMessage' => 'The %s and %s are mismatched.', 'description' => 'Specified Ipv6Address and Ipv6Gateway are not in the same VPC'], + ['errorCode' => 'OperationUnsupported.EgressOnlyRuleOnFreeIpv6Instance', 'errorMessage' => 'Creating ipv6 egress only rule on ipv6 instance that not associated with any resource is unsupported.', 'description' => 'Creating egress-only rules on unbound IPv6 instances is not supported'], + ['errorCode' => 'MissingParam.InstanceId', 'errorMessage' => 'The parameter InstanceId is mandatory.', 'description' => 'You must specify the Express Connect circuit ID.'], + ['errorCode' => 'OperationUnsupported.ULA', 'errorMessage' => '%s is unsupported.', 'description' => 'This operation does not support ULA addresses.'], + ['errorCode' => 'OperationUnsupported.PrivateGUA', 'errorMessage' => 'This operation does not support private GUA addresses.', 'description' => 'This operation does not support private GUA addresses.'], + ], + ], + 'staticInfo' => ['returnType' => 'asynchronous', 'callback' => 'Vpc::2016-04-28::DescribeIpv6EgressOnlyRules', 'callbackInterval' => 3000, 'maxCallbackTimes' => 10], + 'title' => 'Create an iPv6 egress-only rule for an iPv6 address', + 'summary' => 'Creates an IPv6 egress-only rule for an IPv6 address by calling CreateIpv6EgressOnlyRule. You can create an egress-only rule to allow ECS instances in a VPC with an IPv6 CIDR block to proactively access IPv6 endpoints on the client side, while preventing the client IPv6 endpoints from accessing ECS instances in the VPC over the Internet.', + 'description' => '- The **CreateIpv6EgressOnlyRule** operation is asynchronous. After you send a request, the system returns an instance ID, but the IPv6 egress-only rule has not been created yet. The creation task is still running in the background. You can call [DescribeIpv6EgressOnlyRules](~~102208~~) to query the creation status of the IPv6 egress-only rule:'."\n" + .' - If the IPv6 egress-only rule is in the **Creating** state, the rule is being created.'."\n" + .' - If the IPv6 egress-only rule is in the **Created** state, the rule has been created.'."\n" + .'- The **CreateIpv6EgressOnlyRule** operation does not support concurrent creation of egress-only rules for the same IPv6 address.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2024-06-28T01:52:07.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-10-10T04:48:56.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-07-05T07:33:20.000Z', 'description' => 'Error codes changed'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CreateIpv6EgressOnlyRule'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], + ], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'vpc:CreateIpv6EgressOnlyRule', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'Ipv6EgressRule', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:ipv6gateway/{#Ipv6GatewayId}'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"C5644C9A-7480-13B6-AECB-30FF142E3724\\"\\n}","errorExample":""},{"type":"xml","example":"\\n C5644C9A-7480-13B6-AECB-30FF142E3724\\n","errorExample":""}]', - 'title' => 'DissociateRouteTableFromGateway', + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Ipv6EgressRuleId\\": \\"ipv6py-hp3w98rmlbqp01245****\\",\\n \\"RequestId\\": \\"9DFEDBEE-E5AB-49E8-A2DC-CC114C67AF75\\"\\n}","type":"json"}]', ], - 'UpdateGatewayRouteTableEntryAttribute' => [ - 'summary' => 'Modifies the next hop type and next hop of the route entry in a gateway route table.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'CreateIpv6Gateway' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -13427,269 +9482,156 @@ ], 'operationType' => 'readAndWrite', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'update', - 'riskType' => 'none', - 'chargeType' => 'free', - ], + 'systemTags' => ['operationType' => 'create', 'riskType' => 'none', 'chargeType' => 'paid'], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region to which the gateway route table that you want to modify belongs.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'ap-southeast-6', - ], - ], - [ - 'name' => 'IPv4GatewayRouteTableId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the gateway route table that you want to modify.'."\n", - 'type' => 'string', - 'required' => false, - 'docRequired' => false, - 'example' => 'vtb-5ts0ohchwkp3dydt2****', - ], - ], - [ - 'name' => 'GatewayRouteTableId', - 'in' => 'query', - 'schema' => [ - 'title' => '要修改的网关路由表 ID。', - 'description' => 'The ID of the gateway route table that you want to modify.', - 'type' => 'string', - 'required' => false, - 'docRequired' => true, - 'example' => 'vtb-5ts0ohchwkp3dydt2****', - ], - ], - [ - 'name' => 'ClientToken', - 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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.'."\n" - ."\n" - .'> 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.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-426655440000', - ], + 'schema' => ['description' => 'The region ID of the IPv6 gateway. You can call [DescribeRegions](~~36063~~) to query the most recent region list.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-huhehaote', 'title' => ''], ], [ - 'name' => 'DryRun', + 'name' => 'VpcId', 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to precheck only this request. Valid values:'."\n" - ."\n" - .'* **true**: prechecks the request without modifying the gateway route table. The system checks the required parameters, request format, and service limits. If the request fails to pass the precheck, an error code is returned. If the request passes the precheck, the `DryRunOperation` error code is returned.'."\n" - .'* **false**: sends the request. This is the default value. If the request passes the precheck, a 2xx HTTP status code is returned and the gateway route table is modified.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['description' => 'The ID of the VPC for which you want to enable IPv6 and create the IPv6 gateway.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'vpc-123sedrfswd23****', 'title' => ''], ], [ - 'name' => 'DestinationCidrBlock', + 'name' => 'Name', 'in' => 'query', - 'schema' => [ - 'description' => 'The destination CIDR block of the route entry in the gateway route table.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => '47.100.XX.XX/16', - ], + 'schema' => ['description' => 'The name of the IPv6 gateway.'."\n" + ."\n" + .'The name must be 0 to 128 characters in length and cannot start with `http://` or `https://`.', 'type' => 'string', 'required' => false, 'example' => 'ipv6GW', 'title' => ''], ], [ - 'name' => 'NextHopType', + 'name' => 'Description', 'in' => 'query', - 'schema' => [ - 'description' => 'The new next hop type of the route. Valid values:'."\n" - ."\n" - .'* **Instance**: Elastic Compute Service (ECS) instance'."\n" - .'* **NetworkInterface**: elastic network interface (ENI)'."\n" - .'* **Local**: local next hop'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'EcsInstance', - ], + 'schema' => ['description' => 'The description of the IPv6 gateway.'."\n" + ."\n" + .'The description must be 0 to 256 characters in length and cannot start with `http://` or `https://`.', 'type' => 'string', 'required' => false, 'example' => 'ipv6gatewayforVPC1', 'title' => ''], ], [ - 'name' => 'NextHopId', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The new next hop ID of the route entry.'."\n" - ."\n" - .'* If you set **NextHopType** to **Instance**, specify an ECS instance ID for **NextHopId**.'."\n" - .'* If you set **NextHopType** to **NetworkInterface**, specify an ENI ID for **NextHopId**.'."\n" - .'* If you set **NextHopType** to **Local**, leave **NextHopId** empty. This indicates a local next hop.'."\n" - ."\n" - .'> If the value of NextHopType is **Instance** or **NetworkInterface**, and you want to modify the next hop, you must set **NextHopType** to **Local** first. Then, set **NextHopType** to **Instance** or **NetworkInterface** and specify **NextHopId** based on your requirements. If the next hop type of a route entry is Instance or NetworkInterface, you cannot directly specify a different ENI ID or ECS instance ID for the NextHopId parameter.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'i-bp18xq9yguxoxe7m****', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'You can use the client to generate the token, but you must make sure that the token is unique among different requests. The ClientToken value can contain only ASCII characters.'."\n" + ."\n" + .'> If you do not specify this parameter, the system uses the **RequestId** of the API request as the **ClientToken**. The **RequestId** may be different for each API request.', 'type' => 'string', 'required' => false, 'example' => '0c593ea1-3bea-11e9-b96b-88e9fe637760', 'title' => ''], ], [ - 'name' => 'Name', + 'name' => 'ResourceGroupId', 'in' => 'query', - 'schema' => [ - 'description' => 'The name of the gateway route table.'."\n" - ."\n" - .'The name must be 2 to 128 characters in length and can contain letter, digits, periods (.), underscores (\\_), and hyphens (-). The name must start with a letter.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'test', - ], + 'schema' => ['description' => 'The ID of the resource group to which the IPv6 gateway belongs.'."\n" + ."\n" + .'For more information about resource groups, see [What is a resource group?](~~2381067~~).', 'type' => 'string', 'required' => false, 'example' => 'rg-acfmxazb4ph6aiy****', 'title' => ''], ], [ - 'name' => 'Description', + 'name' => 'Tag', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => 'The description of the gateway route table.'."\n" - ."\n" - .'The description must be 2 to 256 characters in length. The description must start with a letter but cannot start with `http://` or `https://`.'."\n", - 'type' => 'string', + 'description' => 'The tags of the resource.', + 'type' => 'array', + 'items' => [ + 'description' => 'The tag.', + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => 'The tag key of the resource. You can specify up to 20 tag keys. The tag key cannot be an empty string.'."\n" + ."\n" + .'The tag key can be up to 128 characters in length and cannot start with `aliyun` or `acs:`. It cannot contain `http://` or `https://`.', 'type' => 'string', 'required' => false, 'example' => 'FinanceDept', 'title' => ''], + 'Value' => ['description' => 'The tag value of the resource. You can specify up to 20 tag values. The tag value can be an empty string.'."\n" + ."\n" + .'The tag value can be up to 128 characters in length and cannot start with `aliyun` or `acs:`. It cannot contain `http://` or `https://`.', 'type' => 'string', 'required' => false, 'example' => 'FinanceJoshua', 'title' => ''], + ], + 'required' => false, + 'title' => '', + 'example' => '', + ], 'required' => false, - 'example' => 'new', + 'maxItems' => 21, + 'title' => '', + 'example' => '', ], ], [ - 'name' => 'RegionId', + 'name' => 'DryRun', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region to which the gateway route table that you want to modify belongs.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'ap-southeast-6', - ], + 'schema' => ['type' => 'boolean', 'description' => '', 'title' => '', 'example' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'description' => 'The response parameters.', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B45', - ], + 'Ipv6GatewayId' => ['description' => 'The ID of the IPv6 gateway.', 'type' => 'string', 'example' => 'ipv6gw-hp3y0l3ln89j8cdvf****', 'title' => ''], + 'ResourceGroupId' => ['description' => 'The ID of the resource group to which the IPv6 gateway belongs.', 'type' => 'string', 'example' => 'rg-acfmxazb4ph6aiy****', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '0ED8D006-F706-4D23-88ED-E11ED28DCAC', 'title' => ''], ], - 'description' => '', + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'OperationDenied.UpdateGatewayRouteEntry', - 'errorMessage' => 'The operation is not allowed because of need switch to local first.', - ], - [ - 'errorCode' => 'IllegalParam.DestCidrBlock', - 'errorMessage' => 'The destCidrBlock is invalid.', - ], - [ - 'errorCode' => 'ResourceNotFound.NetworkInterface', - 'errorMessage' => 'The specified resource nextHop is not found.', - ], - [ - 'errorCode' => 'ResourceNotFound.RouteEntry', - 'errorMessage' => 'The specified resource routeEntry is not found.', - ], - [ - 'errorCode' => 'IncorrectStatus.RouteEntry', - 'errorMessage' => 'The status of %s [%s] is incorrect.', - ], - [ - 'errorCode' => 'IncorrectStatus.Vswitch', - 'errorMessage' => 'The status of %s [%s] is incorrect.', - ], - [ - 'errorCode' => 'ResourceNotFound.Instance', - 'errorMessage' => 'The specified resource nextHop is not found.', - ], - [ - 'errorCode' => 'IncorrectStatus.NextHop', - 'errorMessage' => 'The status of %s [%s] is incorrect.', - ], - [ - 'errorCode' => 'OperationDenied.NextHopTypeNonsupport', - 'errorMessage' => 'The operation is not allowed because of nextHopType is nonsupport.', - ], - [ - 'errorCode' => 'OperationDenied.LocalEntryCanOnlyModifyNextHop', - 'errorMessage' => 'Only the nextHop parameter can be modified for a local route entry.', - ], - [ - 'errorCode' => 'ExclusiveParam.NextHopTypeAndNextHopId', - 'errorMessage' => 'The param of nextHopType and nextHopId are mutually exclusive.', - ], - [ - 'errorCode' => 'ResourceNotFound.RouteTable', - 'errorMessage' => 'The specified resource gatewayRouteTable is not found.', - ], - [ - 'errorCode' => 'InvalidRouterInterfaceId.NotFound', - 'errorMessage' => 'The specified RouterInterfaceId does not exist in our record.', - ], - [ - 'errorCode' => 'OperationUnsupported.OnlySupportNormalNetworkInterface', - 'errorMessage' => 'Next hop only supports binding normal network Interface.', - ], - [ - 'errorCode' => 'UnsupportedRegion', - 'errorMessage' => 'The feature is not supported in current region.', - ], - [ - 'errorCode' => 'UnsupportedFeature.Ipv6GatewayRouteTable', - 'errorMessage' => 'The feature of %s is not supported.', - ], - [ - 'errorCode' => 'OperationDenied.TrAttachmentIpv6Disabled', - 'errorMessage' => 'The operation is not allowed because tr attachment Ipv6 is disabled.', - ], - [ - 'errorCode' => 'InvalidAttachment.NotFound', - 'errorMessage' => 'The attachment is not found.', - ], - [ - 'errorCode' => 'BothEmptyParam.GatewayRouteTableIdAndIpv4GatewayRouteTableId', - 'errorMessage' => 'The parameter GatewayRouteTableId and Ipv4GatewayRouteTableId cannot be empty at the same time. We recommend that you use GatewayRouteTableId.', - ], + ['errorCode' => 'InvalidVpcId.NotFound', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'IllegalParam.Name', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'IllegalParam.Description', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'IllegalParam.Spec', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'IllegalParam.ChargeType', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'OperationUnsupported.OnlyOneIpv6GatewayInVpc', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'OperationFailed.VpcIpv6Disabled', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'IllegalParam.ResourceGroupId', 'errorMessage' => 'Invalid ResourceGroupld value.', 'description' => 'The specified resource group is invalid or does not exist.'], + ['errorCode' => 'MissingParam.vpcId', 'errorMessage' => 'The parameter vpcId is mandatory.', 'description' => 'The vpcId parameter is required.'], + ['errorCode' => 'Forbidden.OperateShareResource', 'errorMessage' => 'You cannot operate shared resources.', 'description' => 'Shared resources do not support this operation.'], ], 404 => [ - [ - 'errorCode' => 'ResourceNotFound.GatewayLoadBalancerEndpoint', - 'errorMessage' => 'GatewayLoadBalancerEndpoint instance not found.', - ], + ['errorCode' => 'InvalidVpcId.NotFound', 'errorMessage' => 'Specified VPC does not exist.', 'description' => ''], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B45\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 54B48E3D-DF70-471B-AA93-08E683A1B45\\n","errorExample":""}]', - 'title' => 'UpdateGatewayRouteTableEntryAttribute', - ], - 'CreateVpcPrefixList' => [ - 'summary' => 'Creates a prefix list.', - 'methods' => [ - 'post', - 'get', + 'title' => 'Create an iPv6 gateway', + 'summary' => 'Creates an IPv6 gateway. An IPv6 gateway is used to control IPv6 network traffic for a virtual private cloud (VPC).', + 'description' => '- Before you create an IPv6 gateway, make sure that the target VPC and vSwitch have IPv6 CIDR blocks enabled. You can call [DescribeVpcAttribute](~~448582~~) to query the configuration of a VPC.'."\n" + ."\n" + .'- Only one IPv6 gateway can be created in a VPC.'."\n" + ."\n" + .'- **CreateIpv6Gateway** is an asynchronous operation. After you send a request, the system returns an instance ID but enable IPv6 gateway is not yet created. The system continues to run the startup task in the background. You can call [DescribeIpv6GatewayAttribute](~~102226~~) to query the creation status of enable IPv6 gateway:'."\n" + .' - If enable IPv6 gateway is in the **Creating** state, enable IPv6 gateway is being created.'."\n" + .' - If enable IPv6 gateway is in the **Created** state, enable IPv6 gateway is created.'."\n" + .'- The **CreateIpv6Gateway** operation does not support concurrent creation of IPv6 gateways in the same VPC.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2025-04-14T06:08:17.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-07-05T05:51:49.000Z', 'description' => 'Error codes changed, Request parameters changed, Response parameters changed'], ], - 'schemes' => [ - 'http', - 'https', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CreateIpv6Gateway'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], + ], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'vpc:CreateIpv6Gateway', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'Ipv6Gateway', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:ipv6gateway/*'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Ipv6GatewayId\\": \\"ipv6gw-hp3y0l3ln89j8cdvf****\\",\\n \\"ResourceGroupId\\": \\"rg-acfmxazb4ph6aiy****\\",\\n \\"RequestId\\": \\"0ED8D006-F706-4D23-88ED-E11ED28DCAC\\"\\n}","type":"json"}]', + ], + 'CreateNatGateway' => [ + 'summary' => 'Createa an enhanced public NAT gateway or a VPC NAT gateway.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -13697,254 +9639,444 @@ ], 'operationType' => 'readAndWrite', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'create', - 'riskType' => 'none', - 'chargeType' => 'free', - ], + 'systemTags' => ['operationType' => 'create', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ - 'name' => 'PrefixListName', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The name of the prefix list.'."\n" - ."\n" - .'The name must be 1 to 128 characters in length, and cannot start with `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'name', - ], + 'schema' => ['description' => 'The ID of the region in which to create the NAT gateway.'."\n" + ."\n" + .'Call the [DescribeRegions](~~36063~~) operation to obtain the region ID.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'PrefixListDescription', + 'name' => 'VpcId', 'in' => 'query', - 'schema' => [ - 'description' => 'The description of the prefix list.'."\n" - ."\n" - .'The description must be 1 to 256 characters in length and cannot start with `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'description', - ], + 'schema' => ['description' => 'The ID of the virtual private cloud (VPC) where you want to create the NAT gateway.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'vpc-bp1di7uewzmtvfuq8****', 'title' => ''], + ], + [ + 'name' => 'Name', + 'in' => 'query', + 'schema' => ['description' => 'The name of the NAT gateway.'."\n" + ."\n" + .'Must be 2 to 128 characters in length, start with a letter or a Chinese character, and can contain digits, underscores (\\_), and hyphens (-).'."\n" + ."\n" + .'If you do not specify this parameter, the system automatically specifies a name for the NAT gateway.', 'type' => 'string', 'required' => false, 'example' => 'fortest', 'title' => ''], + ], + [ + 'name' => 'Description', + 'in' => 'query', + 'schema' => ['description' => 'The description of the NAT gateway.'."\n" + ."\n" + .'The description must be 2 to 256 characters in length. It cannot start with `http://` or `https://`.', 'type' => 'string', 'required' => false, 'example' => 'testnat', 'title' => ''], ], [ 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'You can use the client to generate the value, but you must make sure that it is unique among all requests. ClientToken can contain only ASCII characters.'."\n" - ."\n" - .'> If you do not specify this parameter, **ClientToken** is set to the value of **RequestId**. The value of **RequestId** for each API request may be different.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-426655440000', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'You can create the token, but you must make sure that the token is unique among different requests.'."\n" + ."\n" + .'> 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.', 'type' => 'string', 'required' => false, 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3FF3898', 'title' => ''], ], [ - 'name' => 'DryRun', + 'name' => 'Spec', 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to perform a dry run. Valid values:'."\n" - ."\n" - .'* **true**: performs a dry run. The system checks the required parameters, request syntax, and 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.'."\n" - .'* **false** (default): performs a dry run and sends the request. If the request passes the dry run, a 2xx HTTP status code is returned and the operation is performed.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['description' => 'Subscription-based public NAT gateways are no longer available for purchase. This parameter is deprecated.', 'type' => 'string', 'required' => false, 'example' => '无效参数', 'title' => ''], ], [ - 'name' => 'MaxEntries', + 'name' => 'InstanceChargeType', 'in' => 'query', - 'schema' => [ - 'description' => 'The maximum number of CIDR blocks that you can specify in the prefix list. Default value: 50.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '50', - ], + 'schema' => ['description' => 'The billing method of the NAT gateway. Set the value to:'."\n" + ."\n" + .'**PostPaid** (default): pay-as-you-go.'."\n" + ."\n" + .'For more information, see [Billing of public NAT gateways](~~48126~~) and [Billing of VPC NAT gateways](~~270913~~).', 'type' => 'string', 'required' => false, 'example' => 'PostPaid', 'title' => ''], ], [ - 'name' => 'PrefixListEntries', + 'name' => 'PricingCycle', 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => 'The CIDR block information specified in the prefix list.', - 'type' => 'array', - 'items' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'Cidr' => [ - 'description' => 'The CIDR block specified in the prefix list.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '192.168.0.0/16', - ], - 'Description' => [ - 'description' => 'The description of the CIDR block specified in the prefix list.'."\n" - ."\n" - .'The description must be 1 to 256 characters in length and cannot start with `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'CIDR', - ], - ], - 'required' => false, - ], - 'required' => false, - 'maxItems' => 50, - ], + 'schema' => ['description' => 'Subscription-based public NAT gateways are no longer available for purchase. This parameter is no longer used.', 'type' => 'string', 'required' => false, 'example' => '无效参数', 'title' => ''], ], [ - 'name' => 'ResourceGroupId', + 'name' => 'Duration', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the resource group to which the prefix list belongs.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'rg-bp67acfmxazb4ph****', - ], + 'schema' => ['description' => 'Subscription-based public NAT gateways are no longer available for purchase. This parameter is deprecated.', 'type' => 'string', 'required' => false, 'example' => '无效参数', 'title' => ''], ], [ - 'name' => 'RegionId', + 'name' => 'AutoPay', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region where you want to create the prefix list.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'Subscription-based public NAT gateways are no longer available for purchase. This parameter is deprecated.', 'type' => 'boolean', 'required' => false, 'example' => '无效参数', 'title' => ''], ], [ - 'name' => 'IpVersion', + 'name' => 'VSwitchId', 'in' => 'query', - 'schema' => [ - 'description' => 'The IP version. Valid values:'."\n" - ."\n" - .'* **IPv4** (default)'."\n" - .'* **IPv6**'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'IPv4', - ], + 'schema' => ['description' => 'The ID of the vSwitch to which the NAT gateway belongs.'."\n" + ."\n" + .'When you create a NAT gateway, you must specify a vSwitch to which the NAT gateway belongs. The system then assigns a private IP address to the NAT gateway from the vSwitch.'."\n" + ."\n" + .'- To create a NAT gateway in an existing vSwitch, make sure that the zone to which the vSwitch belongs supports NAT gateways and that the vSwitch has idle IP addresses.'."\n" + ."\n" + .'- If you have not created a vSwitch, create a vSwitch in a zone that supports NAT gateways and then specify the vSwitch.'."\n" + ."\n" + .'> Call the [ListEnhancedNatGatewayAvailableZones](~~182292~~) operation to query available zones and [DescribeVSwitches](~~35748~~) to query the number of idle IP addresses in a vSwitch.', 'type' => 'string', 'required' => false, 'docRequired' => true, 'example' => 'vsw-bp1e3se98n9fq8hle****', 'title' => ''], ], [ - 'name' => 'Tag', + 'name' => 'NatType', 'in' => 'query', - 'style' => 'repeatList', + 'schema' => ['description' => 'The type of NAT gateway. Set the value to **Enhanced**, which specifies an enhanced NAT gateway.', 'type' => 'string', 'required' => false, 'docRequired' => true, 'example' => 'Enhanced', 'title' => ''], + ], + [ + 'name' => 'InternetChargeType', + 'in' => 'query', + 'schema' => ['description' => 'The billing method of the NAT gateway. Set the value to **PayByLcu**, which indicates that the NAT gateway is a pay-as-you-go NAT gateway and is measured in LCUs.', 'type' => 'string', 'required' => false, 'example' => 'PayByLcu', 'title' => ''], + ], + [ + 'name' => 'NetworkType', + 'in' => 'query', + 'schema' => ['description' => 'The type of the NAT gateway to be created. Valid values:'."\n" + ."\n" + .'- **internet**: a public NAT gateway'."\n" + ."\n" + .'- **intranet**: a VPC NAT gateway', 'type' => 'string', 'required' => false, 'docRequired' => false, 'example' => 'internet', 'title' => ''], + ], + [ + 'name' => 'SecurityProtectionEnabled', + 'in' => 'query', + 'schema' => ['description' => 'Specifies whether to enable the firewall feature. Valid values:'."\n" + ."\n" + .'- **false** (default): disables the firewall feature.'."\n" + ."\n" + .' >'."\n" + ."\n" + .' This parameter is deprecated.'."\n" + ."\n" + .' >', 'type' => 'boolean', 'deprecated' => true, 'required' => false, 'example' => 'false', 'title' => ''], + ], + [ + 'name' => 'IcmpReplyEnabled', + 'in' => 'query', + 'schema' => ['description' => 'Specifies whether to enable ICMP reply. Valid values:'."\n" + ."\n" + .'- **true** (default): enables ICMP reply.'."\n" + ."\n" + .'- **false**: disables ICMP reply.', 'type' => 'boolean', 'required' => false, 'example' => 'true', 'title' => ''], + ], + [ + 'name' => 'PrivateLinkEnabled', + 'in' => 'query', + 'schema' => ['title' => '默认不支持私网链接。设置为true则意味着支持私网链接', 'description' => 'Specifies whether to enable PrivateLink. Valid values:'."\n" + ."\n" + .'- true: enables PrivateLink.'."\n" + ."\n" + .'- false (default): disables PrivateLink.', 'type' => 'boolean', 'required' => false, 'example' => 'false'], + ], + [ + 'name' => 'EipBindMode', + 'in' => 'query', + 'allowEmptyValue' => false, 'schema' => [ - 'description' => 'The tag list.'."\n", + 'title' => 'NAT:NAT模式,支持SNAT/访问DANT,最多支持绑定50个EIP,支持ingress routing;'."\n" + .'MULTI_BINDED:多EIP网卡可见模式。', + 'description' => 'The mode in which the EIP is associated with the NAT gateway. Valid values:'."\n" + ."\n" + .'- **MULTI\\_BINDED** (default): the multi-EIP-to-ENI mode.'."\n" + ."\n" + .'- **NAT**: the EIP-to-NAT gateway mode. This mode is compatible with IPv4 gateways.'."\n" + ."\n" + .' > If the EIP is associated with the NAT gateway in EIP-to-NAT gateway mode, the EIP occupies a private IP address of the vSwitch to which the NAT gateway belongs. Make sure that the vSwitch has sufficient private IP addresses. Otherwise, the EIP fails to be associated. In EIP-to-NAT gateway mode, a NAT gateway can be associated with up to 50 EIPs.', + 'type' => 'string', + 'example' => 'MULTI_BINDED', + 'default' => 'MULTI_BINDED', + 'enum' => [], + 'required' => false, + ], + ], + [ + 'name' => 'Tag', + 'in' => 'query', + 'style' => 'repeatList', + 'schema' => [ + 'description' => 'The tags.', 'type' => 'array', 'items' => [ - 'description' => '', 'type' => 'object', 'properties' => [ - 'Key' => [ - 'description' => 'The key of tag N. You can specify up to 20 tag keys. The tag key cannot be an empty string.'."\n" - ."\n" - .'The tag key can be up to 128 characters in length. It cannot start with `aliyun` or `acs:`, and cannot contain `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'FinanceDept', - ], - 'Value' => [ - 'description' => 'The value of tag N. You can specify at most 20 tag values. The tag value can be an empty string.'."\n" - ."\n" - .'The tag value can be up to 128 characters in length and cannot contain `http://` or `https://`. The tag value cannot start with `aliyun` or `acs:`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'FinanceJoshua', - ], + 'Key' => ['description' => 'The tag key. You can specify up to 20 tag keys. The tag key cannot be an empty string. The tag key must be 1 to 128 characters in length and cannot start with `aliyun` or `acs:`. The tag key cannot contain `http://` or `https://`.', 'type' => 'string', 'required' => false, 'example' => 'TestKey', 'title' => ''], + 'Value' => ['description' => 'The tag value. You can specify up to 20 tag values. The tag value can be an empty string. The tag value must be 0 to 128 characters in length and cannot start with `aliyun` or `acs:`. It cannot contain `http://` or `https://`.', 'type' => 'string', 'required' => false, 'example' => 'TestValue', 'title' => ''], ], 'required' => false, + 'description' => '', + 'title' => '', + 'example' => '', ], 'required' => false, + 'example' => 'MULTI_BINDED', 'maxItems' => 21, + 'title' => '', + ], + ], + [ + 'name' => 'AccessMode', + 'in' => 'query', + 'style' => 'json', + 'schema' => [ + 'description' => 'The access mode of the VPC NAT gateway for reverse endpoint access.', + 'type' => 'object', + 'properties' => [ + 'ModeValue' => ['description' => 'The access mode. Valid values:'."\n" + ."\n" + .'- **route**'."\n" + ."\n" + .'- **tunnel**'."\n" + ."\n" + .'> This parameter is valid only when **PrivateLinkEnabled** is set to **true**.', 'type' => 'string', 'required' => false, 'example' => 'route', 'title' => ''], + 'TunnelType' => ['description' => 'The type of tunnel. Valid value:'."\n" + ."\n" + .'- **geneve**: Geneve.'."\n" + ."\n" + .'> This parameter is valid only when the access mode is tunnel.', 'type' => 'string', 'required' => false, 'example' => 'geneve', 'title' => ''], + ], + 'required' => false, + 'example' => 'MULTI_BINDED', + 'title' => '', ], ], + [ + 'name' => 'NatIp', + 'in' => 'query', + 'schema' => ['description' => 'The private IP address of the NAT gateway. Use an idle IP address from the CIDR block of the vSwitch to which the NAT gateway belongs. If this parameter is left empty, an IP address is randomly assigned.', 'type' => 'string', 'required' => false, 'example' => '192.168.0.2', 'title' => ''], + ], + [ + 'name' => 'Ipv4Prefix', + 'in' => 'query', + 'schema' => ['description' => 'The IP address prefix. NAT IP addresses are created from the prefix. Use a reserved CIDR block that is not allocated in the vSwitch to which the NAT gateway belongs.', 'type' => 'string', 'required' => false, 'example' => '192.168.0.0/28', 'title' => ''], + ], + [ + 'name' => 'AvailabilityMode', + 'in' => 'query', + 'schema' => ['type' => 'string', 'description' => '', 'title' => '', 'example' => ''], + ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => '', + 'description' => 'The response body.', 'type' => 'object', 'properties' => [ - 'PrefixListId' => [ - 'description' => 'The ID of the prefix list.'."\n", - 'type' => 'string', - 'example' => 'pl-0b700s2ee3***', + 'NatGatewayId' => ['description' => 'The instance ID of the NAT gateway.', 'type' => 'string', 'example' => 'ngw-112za33e4****', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '2315DEB7-5E92-423A-91F7-4C1EC9AD97C3', 'title' => ''], + 'ForwardTableIds' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'ForwardTableId' => [ + 'description' => 'The DNAT list.', + 'type' => 'array', + 'items' => ['description' => 'The ID of a DNAT forward table.', 'type' => 'string', 'example' => 'ftb-11tc6xgmv****', 'title' => ''], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', ], - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B45', + 'SnatTableIds' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'SnatTableId' => [ + 'description' => 'The SNAT list.', + 'type' => 'array', + 'items' => ['description' => 'The ID of an SNAT table.', 'type' => 'string', 'example' => 'stb-SnatTableIds****', 'title' => ''], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', ], - 'ResourceGroupId' => [ - 'description' => 'The ID of the resource group to which the prefix list belongs.'."\n", - 'type' => 'string', - 'example' => 'rg-bp67acfmxazb4ph****', + 'FullNatTableIds' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'FullNatTableId' => [ + 'description' => 'The FULLNAT list.', + 'type' => 'array', + 'items' => ['description' => 'The ID of a FULLNAT table.', 'type' => 'string', 'example' => 'fulltb-gw88z7hhlv43rmb26****', 'title' => ''], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'UnsupportedFeature.IpVersion', - 'errorMessage' => 'The ipversion type is not supported.', - ], - [ - 'errorCode' => 'QuotaExceeded.PrefixListCidrCount', - 'errorMessage' => 'The quota of prefixListMaxEntry count is exceeded.', - ], - [ - 'errorCode' => 'OperationFailed.CidrCountExceedMaxCount', - 'errorMessage' => 'The operation is failed because of cidrCountExceedMaxCount.', - ], - [ - 'errorCode' => 'IllegalParam.CidrBlock', - 'errorMessage' => 'The param of cidrBlock is illegal.', - ], - [ - 'errorCode' => 'IllegalParam.CidrName', - 'errorMessage' => 'The param of cidrName is illegal.', - ], - [ - 'errorCode' => 'DuplicatedParam.CidrBlock', - 'errorMessage' => 'The param of cidrBlock is duplicated.', - ], - [ - 'errorCode' => 'QuotaExceeded.PrefixListCount', - 'errorMessage' => 'The quota of prefixList count is exceeded.', - ], + ['errorCode' => 'Forbidden.NatPayBySpec', 'errorMessage' => 'Pay-by-specification NAT is no longer supported. Newly purchased pay-as-you-go NAT gateways only support the pay-by-CU metering method.', 'description' => 'Pay-by-specification NAT gateways are no longer available for purchase. Set InternetChargeType to PayByLcu.'], + ['errorCode' => 'DependencyViolation.FullNatEntry', 'errorMessage' => 'The specified resource of %s depends on %s, so the operation cannot be completed.', 'description' => ''], + ['errorCode' => 'UnsupportedFeature.InternetChargeType', 'errorMessage' => 'The feature of InternetChargeType is not supported.', 'description' => ''], + ['errorCode' => 'InvalidVPCStatus', 'errorMessage' => 'vpc incorrect status.', 'description' => ''], + ['errorCode' => 'InvalidNatGatewayName.MalFormed', 'errorMessage' => 'NatGateway name is not valid.', 'description' => ''], + ['errorCode' => 'InvalidNatGatewayDescription.MalFormed', 'errorMessage' => 'NatGateway description is not valid.', 'description' => ''], + ['errorCode' => 'MissingParameter.BandwidthPackage', 'errorMessage' => 'only support one BandwidthPackage be created with NatGateway.', 'description' => ''], + ['errorCode' => 'OperationDenied', 'errorMessage' => 'The user cannot allow to create natgw, please call PD to authorize', 'description' => ''], + ['errorCode' => 'RouterEntryConflict.Duplicated', 'errorMessage' => 'A route entry already exists, which CIDR is \'0.0.0.0/0\'', 'description' => ''], + ['errorCode' => 'MissingParameter', 'errorMessage' => 'Miss mandatory parameter.', 'description' => ''], + ['errorCode' => 'QuotaExceeded.BandwidthPackageIps', 'errorMessage' => 'The specified ipCount exceeded quota.', 'description' => 'The number of IP addresses has reached the upper limit. Request a quota increase on the Quota Management page.'], + ['errorCode' => 'AllocateIpFailed', 'errorMessage' => 'Alloc bandwidthPackage ips failed, maybe no available ip.', 'description' => ''], + ['errorCode' => 'InvalidParameter.Name.Malformed', 'errorMessage' => 'The specified Name is not valid.', 'description' => ''], + ['errorCode' => 'InvalidParameter.Description.Malformed', 'errorMessage' => 'The specified Description is not valid.', 'description' => ''], + ['errorCode' => 'ZONE_NO_AVAILABLE_IP', 'errorMessage' => 'The Zone have no available ip.', 'description' => ''], + ['errorCode' => 'ParameterIllegal', 'errorMessage' => 'ipCount,bandwidth parameter invalid', 'description' => ''], + ['errorCode' => 'InvalidParameter.BandwidthPackage.n.ISP.ValueNotSupport', 'errorMessage' => 'The specified ISP of BandwidthPackage is not valid.', 'description' => ''], + ['errorCode' => 'InvalidNatGatewayId.NotFound', 'errorMessage' => 'The NatGatewayId not exist.', 'description' => ''], + ['errorCode' => 'VpcStatusError', 'errorMessage' => 'The Vpc is creating .', 'description' => ''], + ['errorCode' => 'InvalidParameter.Spec.ValueNotSupported', 'errorMessage' => 'The specified Spec is not valid.', 'description' => ''], + ['errorCode' => 'TaskConflict', 'errorMessage' => 'The operation is too frequent, TaskConflict.', 'description' => 'The system is unavailable. Try again later.'], + ['errorCode' => 'COMMODITY.INVALID_COMPONENT', 'errorMessage' => 'The instance component is invalid.', 'description' => 'The instance component is invalid.'], + ['errorCode' => 'CreateNatGateway.RouteConflict.DynamicRoute', 'errorMessage' => 'Route conflict exists in routing table.', 'description' => ''], + ['errorCode' => 'OperationUnsupported.MultiNatGateway', 'errorMessage' => 'More than one natGateway per vpc is unsupported.', 'description' => ''], + ['errorCode' => 'Forbidden.CheckEntryRuleQuota', 'errorMessage' => 'Route entry quota rule check error.', 'description' => ''], + ['errorCode' => 'OperationFailed.UnpaidBillsExist', 'errorMessage' => 'The account has unpaid bills. Please pay your overdue bill first.', 'description' => 'This account has unpaid orders.'], + ['errorCode' => 'IncorrectStatus.RouteEntry', 'errorMessage' => 'Specified routeEntry status error.', 'description' => ''], + ['errorCode' => 'OperationFailed.RiskControl', 'errorMessage' => 'Risk control check failed.', 'description' => 'The error message returned because your payment method has security risks. Click the link for verification in your email or console message and submit your order after verification.'], + ['errorCode' => 'OperationFailed.TokenVerfiy', 'errorMessage' => 'Token verify failed.', 'description' => ''], + ['errorCode' => 'IllegalParam.Name', 'errorMessage' => 'The specified Name is invalid, shorter than 2 characters.', 'description' => ''], + ['errorCode' => 'OperationFailed.EnhancedQuotaExceed', 'errorMessage' => 'Enhanced nat gateway per vpc quota is exceeded', 'description' => ''], + ['errorCode' => 'NoPermission.CreateServiceLinkedRole', 'errorMessage' => 'You are not authorized to create service linked role', 'description' => ''], + ['errorCode' => 'OperationFailed.EnhancedInventoryNotEnough', 'errorMessage' => 'Operation failed because inventory is not enough.', 'description' => ''], + ['errorCode' => 'OperationFailed.VswNotBelongToVpc', 'errorMessage' => 'Operation failed because the specified VSwitch is not bound to the same VPC with NAT gateway.', 'description' => 'The vSwitch and NAT gateway do not belong to the same VPC.'], + ['errorCode' => 'OperationFailed.EnhancedUserIsUnAuthorized', 'errorMessage' => 'Operation failed because the user is not authorized to create an enhanced NAT gateway.', 'description' => 'Operation failed because the user is not authorized to create an enhanced NAT gateway.'], + ['errorCode' => 'OperationUnsupported.PrePaidPyByLcu', 'errorMessage' => 'The operation failed because the subscription NAT gateway does not support the pay-by-LCU billing method.', 'description' => 'The operation failed because the subscription NAT gateway does not support the pay-by-LCU billing method.'], + ['errorCode' => 'OperationFailed.NormalInventoryNotEnough', 'errorMessage' => 'Standard NAT gateways are no longer offered. You can create enhanced NAT gateways and set the correct natType.', 'description' => ''], + ['errorCode' => 'OperationFailed.VSwitchNoAvailableIp', 'errorMessage' => 'Operation failed because the specified vswitch does not have availabe ip.', 'description' => ''], + ['errorCode' => 'UnsupportedFeature.IcmpReplyEnabled', 'errorMessage' => 'The feature of IcmpReplyEnabled is not supported.', 'description' => 'The value of IcmpReplyEnabled cannot be modified.'], + ['errorCode' => 'UnsupportedFeature.SecurityProtectionEnabled', 'errorMessage' => 'The feature of SecurityProtectionEnabled is not supported.', 'description' => ''], + ['errorCode' => 'OperationFailed.RegionConvert', 'errorMessage' => 'Operation failed because do not find region info.', 'description' => ''], + ['errorCode' => 'UnsupportedFeature.VpcNat', 'errorMessage' => 'The feature of VpcNat is not supported.', 'description' => ''], + ['errorCode' => 'InvalidVSWITCHID.NotFound', 'errorMessage' => 'The specified resource of %s is not found.', 'description' => ''], + ['errorCode' => 'Forbidden.OperateShareResource', 'errorMessage' => 'Operate share resource is forbidden.', 'description' => ''], + ['errorCode' => 'IncorrectStatus.VSWITCH', 'errorMessage' => 'The status of VSWITCH is incorrect.', 'description' => ''], + ['errorCode' => 'OperationFailed.VpcNatGatewayInventoryNotEnough', 'errorMessage' => 'The operation is failed because of inventory is not enough.', 'description' => ''], + ['errorCode' => 'OperationFailed.VpcNatGatewayCheckInventory', 'errorMessage' => 'The operation is failed because of check inventory result is unexpected', 'description' => ''], + ['errorCode' => 'ExclusiveParam.%sAnd%s', 'errorMessage' => 'The param of %s and %s are mutually exclusive.', 'description' => 'You cannot specify %s and %s at the same time.'], + ['errorCode' => 'SecurityGroupType.NotSupported', 'errorMessage' => 'The specified security group type is not supported.', 'description' => 'The security group is already hosted and cannot be used.'], + ['errorCode' => 'SecurityGroup.NotExist', 'errorMessage' => 'The specified security group is not exist.', 'description' => 'The security group does not exist in this VPC.'], + ['errorCode' => 'OperationFailed.ContainForbiddenLabel', 'errorMessage' => 'There is a label that prohibits ordering, please contact your distributor for processing.', 'description' => 'There is a label that prohibits ordering, please contact your distributor for processing.'], + ['errorCode' => 'OperationDenied.PrePaidInstance', 'errorMessage' => 'The operation is not allowed because prepaid instance is no longer supported.', 'description' => 'Prepaid instance is no longer supported.'], + ['errorCode' => 'UnsupportedFeature.Geneve', 'errorMessage' => 'The feature of Geneve is not supported.', 'description' => 'The feature of Geneve is not supported.'], + ['errorCode' => 'OperationFailed.NoAvailableResource', 'errorMessage' => 'The Zone have no available resource.', 'description' => 'No resources are available in the region.'], + ['errorCode' => 'ExclusiveParam.AccessModeValueAndAccessTunnelType', 'errorMessage' => 'The specified param AccessModeValue and AccessTunnelType are mutually exclusive.', 'description' => 'The specified input AccessMode.ModeValue and AccessMode.TunnelType conflict'], + ['errorCode' => 'ExclusiveParam.PrivateLinkModeAndAccessMode', 'errorMessage' => 'The specified param PrivateLinkMode and AccessMode are mutually exclusive.', 'description' => 'The specified input PrivateLinkMode conflicts with the AccessMode.'], + ['errorCode' => 'ExclusiveParam.PrivateLinkEnabledAndAccessMode', 'errorMessage' => 'The specified paramPrivateLinkEnabled and AccessMode are mutually exclusive.', 'description' => 'The specified input PrivateLinkEnabled conflicts with the AccessMode.'], + ['errorCode' => 'UnsupportedFeature.AccessModeValue', 'errorMessage' => 'The feature of AccessMode.ModeValue(%s) is not supported.', 'description' => 'This operation is not supported for the VPC NAT AccessMode.ModeValue attribute'], + ['errorCode' => 'IllegalParam.AccessTunnelType', 'errorMessage' => 'The request parameter AccessMode.TunnelType is illegal.', 'description' => 'The request parameter AccessMode.TunnelType is illegal.'], + ['errorCode' => 'IllegalParam.AccessModeValue', 'errorMessage' => 'The request parameter AccessMode.ModeValue is illegal.', 'description' => 'The request parameter AccessMode.ModeValue is illegal.'], + ['errorCode' => 'OperationFailed.VSwitchStatusError', 'errorMessage' => 'The vSwitch is creating .', 'description' => 'The vSwitch is being created.'], + ['errorCode' => 'UnsupportedFeature.PrivateLinkMode', 'errorMessage' => 'The feature of %s is not supported.', 'description' => 'The feature of reverse access is not supported.'], + ['errorCode' => 'OperationFailed.EcsNetworkInterfaceQuotaNotSatisfy', 'errorMessage' => 'ECS network interface quota is not satisfy.', 'description' => 'The ECS ENI quota does not meet the requirements.'], + ['errorCode' => 'OperationFailed.NoNameAuthentication', 'errorMessage' => 'You have not passed the real name authentication and do not meet the purchase conditions. Please log in to the user center for real-name authentication.', 'description' => 'You have not passed the real name authentication and do not meet the purchase conditions. Please log in to the user center for real-name authentication.'], + ['errorCode' => 'Mismatch.NatIpAndNatIpCidr', 'errorMessage' => 'The %s and %s are mismatched.', 'description' => 'The specified %s and %s do not match.'], + ['errorCode' => 'Mismatch.Ipv4PrefixAndNatIpCidr', 'errorMessage' => 'The %s and %s are mismatched.', 'description' => ''], + ['errorCode' => 'ResourceAlreadyExist.NatIp', 'errorMessage' => 'The specified resource of NatIp has already exist.', 'description' => 'Configured NatIp already exists'], + ['errorCode' => 'Mismatch.Ipv4PrefixAndCidrReservations', 'errorMessage' => 'The %s and %s are mismatched.', 'description' => 'The reserved network segments of the Ipv4Prefix and VSwitch do not match.'], + ['errorCode' => 'ResourceAlreadyAssociated.Ipv4Prefix', 'errorMessage' => '%s is already associated.', 'description' => 'Ipv4Prefix have been allocated.'], + ['errorCode' => 'ResourceNotEnough.Ipv4Prefix', 'errorMessage' => 'The resource of %s is not enough.', 'description' => 'Insufficient Ipv4Prefix resources.'], + ['errorCode' => 'ResourceNotFound.Ipv4Prefix', 'errorMessage' => 'The resource of s% is not found.', 'description' => 'The resource Ipv4Prefix does not exist.'], + ['errorCode' => 'ResourceAlreadyAssociated.NatIp', 'errorMessage' => 'The resource of %s was already associated.', 'description' => 'NatIp resources have been allocated.'], + ['errorCode' => 'ResourceNotEnough.NatIp', 'errorMessage' => 'The specified resource of NatIp is not enough.', 'description' => 'Insufficient IP addresses in the specified CIDR block.'], + ['errorCode' => 'ResourceNotFound.NatIp', 'errorMessage' => 'The specified resource of %s is not found.', 'description' => 'The specified NatIp parameter is not found.'], + ['errorCode' => 'IllegalParam.Ipv4Prefix', 'errorMessage' => 'The param of %s is illegal, must be /28 network segment.', 'description' => 'The parameter Ipv4Prefix is invalid and must be/28 network segment.'], + ['errorCode' => 'IllegalParam.NatIp', 'errorMessage' => 'The param of %s is illegal.', 'description' => 'The parameter NatIp is illegal.'], + ['errorCode' => 'OperationUnsupported.EnhancedRegion', 'errorMessage' => 'Region not support.', 'description' => 'The current region is temporarily not supported.'], + ['errorCode' => 'IncorrectStatus.RouteTableStatus', 'errorMessage' => 'The route table status is invaild. Please try again later.', 'description' => 'The routing table status does not support this operation. Please try again later.'], + ['errorCode' => 'OperationUnsupported.User', 'errorMessage' => 'The current user does not support this operation.', 'description' => 'The current user does not support this operation.'], + ['errorCode' => 'OperationUnsupported.EnhancedCURegion', 'errorMessage' => 'Operation failed because of this region not unsupported.', 'description' => 'Operation failed due to unsupported pay-as-you-go region'], + ['errorCode' => 'OrderError.NoAvailablePaymentMethod', 'errorMessage' => 'Order payment parameter is not available.', 'description' => 'Order error. The payment type parameter is not available.'], + ['errorCode' => 'OrderError.BasicInfoUncompleted', 'errorMessage' => 'Order basic parameter is not completed.', 'description' => 'Order error, basic parameter information incomplete.'], + ['errorCode' => 'OperationUnsupported.Region', 'errorMessage' => 'Operation unsupport this region parameter.', 'description' => 'This operation does not support the region parameter'], + ['errorCode' => 'InvalidParameter.SingleZone', 'errorMessage' => 'Operation failed because current user not support create single zone nat.', 'description' => 'current user is not allowed to create a single az nat'], + ], + 404 => [ + ['errorCode' => 'InvalidRegionId.NotFound', 'errorMessage' => 'The specified RegionId does not exist in our records.', 'description' => ''], + ['errorCode' => 'InvalidVpcId.NotFound', 'errorMessage' => 'Specified value of VpcId is not found in our record.', 'description' => 'The VPC does not exist. Check whether the specified VPC is valid.'], + ['errorCode' => 'InvalidZoneId.NotFound', 'errorMessage' => 'Specified value of ZoneId is not exists.', 'description' => ''], + ['errorCode' => 'VPC_ONLY_CAN_CREATE_ONE_NAT_GATEWAY', 'errorMessage' => 'NatGateway in one vpc support only one.', 'description' => ''], + ['errorCode' => 'OperationFailed.CrateEntryTimeOut', 'errorMessage' => 'Operation failed because create custom routeEntry timeout.', 'description' => ''], + ['errorCode' => 'Forbidden.CreateSpecialSpecNatGateway', 'errorMessage' => 'You are not authorized to create special spec nat gateway.', 'description' => ''], + ['errorCode' => 'UnsupportedZoneForFwNat', 'errorMessage' => 'The zone is unsupported for FW NAT.', 'description' => ''], + ], + 500 => [ + ['errorCode' => 'OrderError.NatGateway', 'errorMessage' => 'The Account failed to create order.', 'description' => ''], + ['errorCode' => 'OperationFailed.AccessTunnelId', 'errorMessage' => 'AccessTunnelId param do operation failed.', 'description' => 'VPC NAT failed to generate tunnel ID. Try again later'], + ['errorCode' => 'OperationFailed.EnhancedCheckInventory', 'errorMessage' => 'The NAT gateway in the current zone is not in service, or the resource inventory is insufficient.', 'description' => 'The NAT gateway in the current zone is not in service, or the resource inventory is insufficient.'], ], ], - 'staticInfo' => [ - 'returnType' => 'asynchronous', - 'callback' => 'Vpc::2016-04-28::ListPrefixLists', - 'callbackInterval' => 3000, - 'maxCallbackTimes' => 10, - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"PrefixListId\\": \\"pl-0b700s2ee3***\\",\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B45\\",\\n \\"ResourceGroupId\\": \\"rg-bp67acfmxazb4ph****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n pl-0b700s2ee3***\\n 54B48E3D-DF70-471B-AA93-08E683A1B45\\n rg-bp67acfmxazb4ph****\\n","errorExample":""}]', - 'title' => 'CreateVpcPrefixList', - 'description' => 'You cannot repeatedly call the **CreateVpcPrefixList** operation within the specified period of time.'."\n", + 'title' => 'CreateNatGateway', + 'description' => 'Before you call this operation, note the following:'."\n" + ."\n" + .'- When you create a NAT gateway for the first time, a service-linked role named AliyunServiceRoleForNatgw is automatically created. A permission policy named AliyunServiceRolePolicyForNatgw is attached to this role to allow the NAT gateway to access other cloud resources. For more information, see [Service-linked roles](~~174251~~).'."\n" + ."\n" + .'- After an enhanced public NAT gateway is created, the system automatically adds a route entry to the VPC\'s route table to route traffic to the NAT gateway. This entry sets the destination CIDR block to 0.0.0.0/0 and the next hop to the NAT gateway.'."\n" + ."\n" + .'- The **CreateNatGateway** operation is asynchronous. After you send a request, the system returns a NAT gateway (public or VPC) instance ID while the creation task runs in the background. Call the [DescribeNatGateways](~~36054~~) operation to query the status of the NAT gateway.'."\n" + ."\n" + .' - A status of **Creating** indicates that the NAT gateway is being created. You can perform only query operations.'."\n" + ."\n" + .' - A status of **Available** indicates that the NAT gateway has been created.'."\n" + ."\n" + .'Creating a NAT gateway takes about 1 to 3 minutes.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2024-12-30T03:59:17.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-12-03T02:23:00.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-10-23T06:17:18.000Z', 'description' => 'Error codes changed, Request parameters changed'], + ['createdAt' => '2024-08-15T09:06:23.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-05-06T03:02:14.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-01-18T07:07:56.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-12-14T03:32:38.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2023-06-30T08:16:10.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2023-03-01T06:45:50.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2023-01-10T09:00:26.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2022-11-25T07:53:05.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2022-08-12T13:22:21.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2022-08-09T11:26:44.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2022-08-05T02:26:15.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2022-08-03T09:50:00.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2022-07-22T07:54:11.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2021-12-28T07:12:45.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2021-10-15T06:08:26.000Z', 'description' => 'Error codes changed'], + ], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'vpc:CreateNatGateway', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'NatGateway', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:natgateway/*'], + ], + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"NatGatewayId\\": \\"ngw-112za33e4****\\",\\n \\"RequestId\\": \\"2315DEB7-5E92-423A-91F7-4C1EC9AD97C3\\",\\n \\"ForwardTableIds\\": {\\n \\"ForwardTableId\\": [\\n \\"ftb-11tc6xgmv****\\"\\n ]\\n },\\n \\"SnatTableIds\\": {\\n \\"SnatTableId\\": [\\n \\"stb-SnatTableIds****\\"\\n ]\\n },\\n \\"FullNatTableIds\\": {\\n \\"FullNatTableId\\": [\\n \\"fulltb-gw88z7hhlv43rmb26****\\"\\n ]\\n }\\n}","type":"json"}]', ], - 'RetryVpcPrefixListAssociation' => [ - 'summary' => 'Re-applies a prefix list.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'CreateNatIp' => [ + 'summary' => 'Creates a NAT IP address for a VPC NAT gateway instance.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -13952,157 +10084,186 @@ ], 'operationType' => 'readAndWrite', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'update', - 'riskType' => 'none', - 'chargeType' => 'free', - ], + 'systemTags' => ['operationType' => 'create', 'riskType' => 'none', 'chargeType' => 'free', 'tenantRelevance' => 'tenant'], 'parameters' => [ [ - 'name' => 'PrefixListId', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the prefix list that you want to re-apply.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'pl-0b7hwu67****', - ], + 'schema' => ['description' => 'The region ID of the VPC NAT gateway instance to which the NAT IP address belongs.'."\n" + ."\n" + .'You can call [DescribeRegions](~~36063~~) to query the region ID.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'eu-central-1', 'title' => ''], ], [ - 'name' => 'ResourceType', + 'name' => 'NatGatewayId', 'in' => 'query', - 'schema' => [ - 'description' => 'The type of the resource with which the prefix list is associated. Valid values:'."\n" - ."\n" - .'* **vpcRouteTable**: VPC route table'."\n" - .'* **trRouteTable**: route table of a transit router'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'vpcRouteTable', - ], + 'schema' => ['description' => 'The instance ID of the VPC NAT gateway to which the NAT IP address belongs.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'ngw-gw8v16wgvtq26vh59****', 'title' => ''], ], [ - 'name' => 'ResourceId', + 'name' => 'NatIpName', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the associated resource.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'vtb-bp1drpcfz9srr393h****', - ], + 'schema' => ['description' => 'The name of the NAT IP address.'."\n" + ."\n" + .'The name must be 2 to 128 characters in length and must start with a letter or Chinese character. It can contain digits, periods (.), underscores (_), and hyphens (-). It cannot start with `http://` or `https://`.', 'type' => 'string', 'required' => false, 'docRequired' => false, 'example' => 'newnatip', 'title' => ''], ], [ - 'name' => 'ClientToken', + 'name' => 'NatIpDescription', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'You can use the client to generate the value, but you must make sure that it is unique among different requests. The token can contain only ASCII characters.'."\n" - ."\n" - .'> If you do not set this parameter, the system automatically uses **RequestId** as **ClientToken**. **RequestId** may be different for each API request.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-426655440000', - ], + 'schema' => ['description' => 'The description of the NAT IP address.'."\n" + ."\n" + .'The description must be 2 to 256 characters in length and must start with a letter or Chinese character. It cannot start with `http://` or `https://`.', 'type' => 'string', 'required' => false, 'docRequired' => false, 'example' => 'test', 'title' => ''], ], [ 'name' => 'DryRun', 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to only precheck the request. Valid values:'."\n" - ."\n" - .'* **true**: prechecks the request without associating the prefix list. The system prechecks the required parameters, request syntax, and limits. If the request fails the precheck, an error message is returned. If the request passes the precheck, the `DryRunOperation` error code is returned.'."\n" - .'* **false**: sends the request. If the request passes the precheck, a 2xx HTTP status code is returned and the prefix list is associated. This is the default value.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['description' => 'Specifies whether to perform a dry run. Valid values:'."\n" + ."\n" + .'- **true**: performs a dry run. The system checks the AccessKey pair, the authorization of the Resource Access Management (RAM) user, and the required parameters. 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.'."\n" + ."\n" + .'- **false** (default): sends a Normal request. If the request passes the dry run, a 2xx HTTP status code is returned and the NAT IP address is created.', 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], + ], + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'You can use the client to generate the token, but you must make sure that the token is unique among different requests. The ClientToken value can contain only ASCII characters.'."\n" + ."\n" + .'> If you do not specify this parameter, the system uses the **RequestId** of the API request as the **ClientToken**. The **RequestId** may be different for each API request.', 'type' => 'string', 'required' => false, 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3FF3898', 'title' => ''], + ], + [ + 'name' => 'NatIpCidr', + 'in' => 'query', + 'schema' => ['description' => 'The NAT CIDR block from which the NAT IP address is created.', 'type' => 'string', 'required' => true, 'example' => '192.168.0.0/24', 'title' => ''], + ], + [ + 'name' => 'NatIp', + 'in' => 'query', + 'allowEmptyValue' => false, + 'schema' => ['description' => 'The NAT IP address to create.'."\n" + ."\n" + .'If you do not specify this parameter, the system randomly assigns an IP address from the NAT CIDR block.', 'type' => 'string', 'required' => false, 'example' => '192.168.0.34', 'title' => ''], ], [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the prefix list that you want to re-apply.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The region ID of the VPC NAT gateway instance to which the NAT IP address belongs.'."\n" + ."\n" + .'You can call [DescribeRegions](~~36063~~) to query the region ID.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'eu-central-1', 'title' => ''], + ], + [ + 'name' => 'Ipv4Prefix', + 'in' => 'query', + 'allowEmptyValue' => false, + 'schema' => ['description' => 'The IP prefix CIDR block to create.'."\n" + ."\n" + .'The IP prefix CIDR block must be within the reserved CIDR block of the vSwitch where the NAT gateway resides, and the reserved CIDR block must not be occupied. The prefix mask must be /28.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => '192.168.0.0/28'], + ], + [ + 'name' => 'Ipv4PrefixCount', + 'in' => 'query', + 'allowEmptyValue' => false, + 'schema' => ['description' => 'The number of IP prefixes to automatically assign.'."\n" + ."\n" + .'The IP prefixes are randomly assigned from unallocated reserved CIDR blocks of the vSwitch where the NAT gateway resides. Valid values: 1 to 10.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'description' => 'The NAT IP address that is created.', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => '4EC47282-1B74-4534-BD0E-403F3EE64CAF', + 'NatIp' => ['description' => 'The NAT IP address that is created.', 'type' => 'string', 'example' => '192.168.0.34', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'E9AD97A0-5338-43F8-8A80-5E274CCBA11B', 'title' => ''], + 'NatIpId' => ['description' => 'The instance ID of the NAT IP address that is created.', 'type' => 'string', 'example' => 'vpcnatip-gw8y7q3cpk3fggs8****', 'title' => ''], + 'Ipv4Prefix' => ['title' => '', 'description' => 'The IPv4 prefix returned by the legacy operation. This parameter is deprecated.', 'type' => 'string', 'example' => '""'], + 'NatIps' => [ + 'title' => '', + 'description' => 'The NAT IP address information returned after the NAT IP address is created. When you create a NAT IP address by using an IPv4 prefix, all NAT IP address information is returned. When you create a single NAT IP address, we recommend that you use this parameter to obtain the NAT IP address information.', + 'type' => 'array', + 'items' => [ + 'title' => '', + 'description' => 'The list of NAT IP addresses created when an IPv4 prefix is used.', + 'type' => 'object', + 'properties' => [ + 'NatIp' => ['title' => '', 'description' => 'The NAT IP address in the list of NAT IP addresses created when an IPv4 prefix is used.', 'type' => 'string', 'example' => '192.168.2.128'], + 'NatIpId' => ['title' => '', 'description' => 'The NAT IP address ID in the list of NAT IP addresses created when an IPv4 prefix is used.', 'type' => 'string', 'example' => 'vpcnatip-xxxxxxxx'], + 'Ipv4Prefix' => ['title' => '', 'description' => 'The IPv4 prefix in the list of NAT IP addresses created when an IPv4 prefix is used.', 'type' => 'string', 'example' => '192.168.1.128/28'], + ], + 'example' => '', + ], + 'example' => '', ], ], + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'UnsupportedRegion', - 'errorMessage' => 'The feature of prefixList entry is not supported in this region.', - ], - [ - 'errorCode' => 'OperationDenied.SystemPrefixList', - 'errorMessage' => 'The operation is not allowed because of SystemPrefixList.', - ], - [ - 'errorCode' => 'OperationFailed.OperateShareResource', - 'errorMessage' => 'This is not allowed to operate shared prefixList.', - ], - [ - 'errorCode' => 'IncorrectStatus.PrefixList', - 'errorMessage' => 'The status of prefixList is incorrect.', - ], - [ - 'errorCode' => 'OperationFailed.NotExistAssociateRelation', - 'errorMessage' => 'The operation is failed because of association not exist.', - ], - [ - 'errorCode' => 'ResourceNotFound.PrefixList', - 'errorMessage' => 'The specified resource of prefixList is not found.', - ], + ['errorCode' => 'Mismatch.NatIpAndNatIpCidr', 'errorMessage' => 'The %s and %s are mismatched.', 'description' => 'The specified %s and %s do not match.'], + ['errorCode' => 'ResourceNotFound.NatGateway', 'errorMessage' => 'The specified resource of %s is not found.', 'description' => ''], + ['errorCode' => 'ResourceNotFound.NatIpCidr', 'errorMessage' => 'The specified resource of %s is not found.', 'description' => 'The specified %s resource does not exist.'], + ['errorCode' => 'IncorrectStatus.NatGateway', 'errorMessage' => '%The status of %s [%s] is incorrect.', 'description' => 'The NAT gateway is in an invalid state.'], + ['errorCode' => 'QuotaExceeded.NatIp', 'errorMessage' => 'The quota of %s is exceeded, usage %s/%s.', 'description' => 'NatIp and Ipv4Prefix quota use overflow.'], + ['errorCode' => 'ResourceNotEnough.SwitchAvailableIps', 'errorMessage' => 'The available private Ip number is not enough in your subnet.', 'description' => 'The number of private IP addresses in the subnet is insufficient.'], + ['errorCode' => 'ResourceNotEnough.NatIp', 'errorMessage' => 'The specified resource of NatIp is not enough.', 'description' => 'Insufficient IP addresses in the specified CIDR block.'], + ['errorCode' => 'ResourceAlreadyExist.NatIp', 'errorMessage' => 'The specified resource of NatIp has already exist.', 'description' => 'Configured NatIp already exists'], + ['errorCode' => 'Mismatch.Ipv4PrefixAndNatIpCidr', 'errorMessage' => 'The %s and %s are mismatched.', 'description' => ''], + ['errorCode' => 'Mismatch.Ipv4PrefixAndCidrReservations', 'errorMessage' => 'The %s and %s are mismatched.', 'description' => 'The reserved network segments of the Ipv4Prefix and VSwitch do not match.'], + ['errorCode' => 'ResourceAlreadyAssociated.Ipv4Prefix', 'errorMessage' => '%s is already associated.', 'description' => 'Ipv4Prefix have been allocated.'], + ['errorCode' => 'ResourceNotEnough.Ipv4Prefix', 'errorMessage' => 'The resource of %s is not enough.', 'description' => 'Insufficient Ipv4Prefix resources.'], + ['errorCode' => 'ResourceNotFound.Ipv4Prefix', 'errorMessage' => 'The resource of s% is not found.', 'description' => 'The resource Ipv4Prefix does not exist.'], + ['errorCode' => 'ResourceAlreadyAssociated.NatIp', 'errorMessage' => 'The resource of %s was already associated.', 'description' => 'NatIp resources have been allocated.'], + ['errorCode' => 'ResourceNotFound.NatIp', 'errorMessage' => 'The specified resource of %s is not found.', 'description' => 'The specified NatIp parameter is not found.'], + ['errorCode' => 'IllegalParam.Ipv4Prefix', 'errorMessage' => 'The param of %s is illegal, must be /28 network segment.', 'description' => 'The parameter Ipv4Prefix is invalid and must be/28 network segment.'], + ['errorCode' => 'ResourceAlreadyExist.Ipv4Prefix', 'errorMessage' => 'The specified resource of %s is already exist.', 'description' => 'This Ipv4Prefix has already been created. Do not re-create it.'], + ['errorCode' => 'QuotaExceeded.Ipv4Prefix', 'errorMessage' => 'The quota of %s is exceeded, usage %s/%s.', 'description' => 'Ipv4Prefix quota usage overflow.'], + ['errorCode' => 'OperationFailed.InstanceNotSupport', 'errorMessage' => 'natgateway not support ipv4prefix.', 'description' => 'The gateway does not support Ipv4Prefix.'], + ], + 404 => [ + ['errorCode' => 'InvalidRegionId.NotFound', 'errorMessage' => 'The specified RegionId does not exist in our records.', 'description' => ''], ], ], - 'staticInfo' => [ - 'returnType' => 'asynchronous', - 'callback' => 'Vpc::2016-04-28::GetVpcPrefixListAssociations', - 'callbackInterval' => 3000, - 'maxCallbackTimes' => 10, - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"4EC47282-1B74-4534-BD0E-403F3EE64CAF\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 4EC47282-1B74-4534-BD0E-403F3EE64CAF\\n","errorExample":""}]', - 'title' => 'RetryVpcPrefixListAssociation', - 'description' => '* If you modify the information about a prefix list but the modification is not automatically applied to the route table that is associated with the prefix list, you can call this operation to apply the latest prefix list to the associated route table.'."\n" + 'title' => 'Create NAT IP address', + 'description' => '**CreateNatIp** is an asynchronous operation. After you call this operation, the system returns a NAT IP address, but the NAT IP address is not yet created. The creation task is still running in the background. You can call [ListNatIps](~~287000~~) to query the status of the NAT IP address:'."\n" ."\n" - .'* The **RetryVpcPrefixListAssociation** operation is asynchronous. After you send the request, the system returns a request ID. However, the operation is still being performed in the background. You can call the [GetVpcPrefixListAssociations](~~445478~~) to check whether the prefix list is re-applied.'."\n" + .'- If the NAT IP address is in the **Creating** state, the NAT IP address is being created. In this state, you can only perform query operations.'."\n" ."\n" - .' * If the prefix list is in the **Modifying** state, the prefix list is being re-applied.'."\n" - .' * If the prefix list is in the **ModifyFailed** state, the prefix list fails to be re-applied.'."\n" - .' * If the prefix list is in the **Created** state, the prefix list is re-applied.'."\n" + .'- If the NAT IP address is in the **Available** state, the NAT IP address is created.'."\n" ."\n" - .'* After you call the **RetryVpcPrefixListAssociation** operation to re-apply a prefix list, you cannot call the operation again until the current task is complete.', - ], - 'DeleteVpcPrefixList' => [ - 'summary' => 'Deletes a prefix list.', - 'methods' => [ - 'post', - 'get', + .'**CreateNatIp** does not support concurrent creation of NAT IP addresses within the same NAT gateway.', + 'changeSet' => [ + ['createdAt' => '2024-12-30T03:59:16.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-07-03T12:03:47.000Z', 'description' => 'Request parameters changed, Response parameters changed'], + ['createdAt' => '2023-06-09T06:44:31.000Z', 'description' => 'Error codes changed'], ], - 'schemes' => [ - 'http', - 'https', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CreateNatIp'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], + ], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'vpc:CreateNatIp', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'NatGateway', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:natgateway/{#NatGatewayId}'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"NatIp\\": \\"192.168.0.34\\",\\n \\"RequestId\\": \\"E9AD97A0-5338-43F8-8A80-5E274CCBA11B\\",\\n \\"NatIpId\\": \\"vpcnatip-gw8y7q3cpk3fggs8****\\",\\n \\"Ipv4Prefix\\": \\"\\\\\\"\\\\\\"\\",\\n \\"NatIps\\": [\\n {\\n \\"NatIp\\": \\"192.168.2.128\\",\\n \\"NatIpId\\": \\"vpcnatip-xxxxxxxx\\",\\n \\"Ipv4Prefix\\": \\"192.168.1.128/28\\"\\n }\\n ]\\n}","type":"json"}]', + ], + 'CreateNatIpCidr' => [ + 'summary' => 'Creates a NAT CIDR block for a VPC NAT gateway instance.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -14110,62 +10271,68 @@ ], 'operationType' => 'readAndWrite', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'delete', - 'riskType' => 'none', - 'chargeType' => 'free', - ], + 'systemTags' => ['operationType' => 'create', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ - 'name' => 'PrefixListId', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the prefix list that you want to delete.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'pl-0b78hw45f****', - ], + 'schema' => ['description' => 'The region ID of the NAT gateway instance to which the NAT CIDR block belongs.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the region ID.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'eu-central-1', 'title' => ''], ], [ - 'name' => 'ClientToken', + 'name' => 'NatGatewayId', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'You can use the client to generate the value, but you must make sure that it is unique among different requests. The client token can contain only ASCII characters.'."\n" - ."\n" - .'> If you do not set this parameter, the system uses **RequestId** as **ClientToken**. **RequestId** may be different for each API request.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-426655440000', - ], + 'schema' => ['description' => 'The instance ID of the VPC NAT gateway for which you want to create the NAT CIDR block.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'ngw-gw8v16wgvtq26vh59****', 'title' => ''], + ], + [ + 'name' => 'NatIpCidrName', + 'in' => 'query', + 'schema' => ['description' => 'The name of the NAT CIDR block.'."\n" + ."\n" + .'The name must be 2 to 128 characters in length and must start with a letter or Chinese character. It can contain digits, periods (.), underscores (_), and hyphens (-). It cannot start with `http://` or `https://`.', 'type' => 'string', 'required' => false, 'docRequired' => true, 'example' => 'newcidr', 'title' => ''], + ], + [ + 'name' => 'NatIpCidrDescription', + 'in' => 'query', + 'schema' => ['description' => 'The description of the NAT CIDR block.'."\n" + ."\n" + .'The description must be 2 to 256 characters in length and must start with a letter or Chinese character. It cannot start with `http://` or `https://`.', 'type' => 'string', 'required' => false, 'docRequired' => false, 'example' => 'mycidr', 'title' => ''], ], [ 'name' => 'DryRun', 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to check the request without performing the operation. Valid values:'."\n" - ."\n" - .'* **true**: checks the request without performing the operation. The system checks the required parameters, request syntax, and limits. If the request fails to pass the check, an error message is returned. If the request passes the check, the `DryRunOperation` error code is returned.'."\n" - .'* **false** (default): sends the request. If the request passes the check, a 2xx HTTP status code is returned and the operation is performed.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['description' => 'Specifies whether to perform a dry run. Valid values:'."\n" + .'- **true**: performs a dry run without creating the NAT CIDR block. The system checks the required parameters, request syntax, and business restrictions. If the check fails, the corresponding error is returned. If the check succeeds, the error code `DryRunOperation` is returned.'."\n" + .'- **false** (default): performs a dry run and sends the request. If the check succeeds, an HTTP 2xx status code is returned and the operation is performed.', 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], + ], + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'You can use the client to generate the token, but you must make sure that the token is unique among different requests. The ClientToken value can contain only ASCII characters.'."\n" + ."\n" + .'> If you do not specify this parameter, the system uses the **RequestId** of the API request as the **ClientToken**. The **RequestId** of each API request may be different.', 'type' => 'string', 'required' => false, 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3FF3898', 'title' => ''], + ], + [ + 'name' => 'NatIpCidr', + 'in' => 'query', + 'schema' => ['description' => 'The NAT CIDR block to create.'."\n" + ."\n" + .'The new CIDR block must meet the following conditions:'."\n" + ."\n" + .'- It must belong to 10.0.0.0/8, 172.16.0.0/12, or 192.168.0.0/16 and their subnets.'."\n" + .'- The subnet mask must be 16 to 32 bits in length.'."\n" + .'- It cannot overlap with the private CIDR block of the VPC to which the VPC NAT gateway belongs. If you want to transform a private endpoint to another address within the VPC private network CIDR block, create a vSwitch in the corresponding VPC private network CIDR block, and then create a new VPC NAT gateway in the vSwitch to provide private network address translation.'."\n" + .'- To use a public CIDR block as the NAT CIDR block, the CIDR block must belong to the user CIDR block of the VPC to which the VPC NAT gateway belongs. For more information about user CIDR blocks, see [What is a user CIDR block?](~~185311~~).', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '172.16.0.0/24', 'title' => ''], ], [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the prefix list.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The region ID of the NAT gateway instance to which the NAT CIDR block belongs.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the region ID.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'eu-central-1', 'title' => ''], ], ], 'responses' => [ @@ -14173,63 +10340,66 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => '64B48E3D-DF70-471B-AA93-08E683A1B45', - ], + 'NatIpCidrId' => ['description' => 'The instance ID of the NAT CIDR block.', 'type' => 'string', 'example' => 'vpcnatcidr-gw8lhqtvdn4qnea****', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '7021BEB1-210F-48A9-AB82-BE9A9110BB89', 'title' => ''], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'ResourceNotFound.PrefixList ', - 'errorMessage' => 'The specified resource of prefixList is not found.', - ], - [ - 'errorCode' => 'IncorrectStatus.SystemPrefixList', - 'errorMessage' => 'This is not allowed to operate system prefixList.', - ], - [ - 'errorCode' => 'OperationDenied.DeleteShareResource', - 'errorMessage' => 'This is not allowed to delete shared prefixList.', - ], - [ - 'errorCode' => 'IncorrectStatus.PrefixList', - 'errorMessage' => 'The status of prefixList is incorrect.', - ], - [ - 'errorCode' => 'DependencyViolation.PrefixListRelation', - 'errorMessage' => 'The specified resource of prefixList depends on prefixList relation, so the operation cannot be completed.', - ], - [ - 'errorCode' => 'DependencyViolation.ShareResource', - 'errorMessage' => 'The specified resource of prefixList depends on share resource, so the operation cannot be completed.', - ], + ['errorCode' => 'IncorrectStatus.NatGateway', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => ''], + ['errorCode' => 'OperationFailed.NatIpCidrInUse', 'errorMessage' => 'The operation is failed because of %s.', 'description' => ''], + ['errorCode' => 'QuotaExceeded.NatIpCidr', 'errorMessage' => 'The quota of %s is exceeded, usage %s/%s.', 'description' => ''], + ['errorCode' => 'OperationFailed.CreateNatIpCidrInVpcCidrBlock', 'errorMessage' => 'The operation is failed because of Creating NatIpCidr in Vpc Cidr.', 'description' => ''], + ['errorCode' => 'OperationFailed.CreateNatIpCidrNotInUserCidr', 'errorMessage' => 'The operation is failed because of Creating NatIpCidr not in UserCidr.', 'description' => 'The operation failed because the NAT CIDR block does not fall within the user CIDR block.'], + ['errorCode' => 'ResourceAlreadyExist.NatIpCidr', 'errorMessage' => 'The specified resource of %s is already exist.', 'description' => ''], + ['errorCode' => 'IllegalParamFormat.NatIpCidr', 'errorMessage' => 'The param format of NatIpCidr is illegal.', 'description' => 'The param format of NatIpCidr is illegal.'], + ], + 404 => [ + ['errorCode' => 'InvalidRegionId.NotFound', 'errorMessage' => 'The specified RegionId does not exist in our records.', 'description' => ''], + ['errorCode' => 'ResourceNotFound.NatGateway', 'errorMessage' => 'The specified resource of %s is not found.', 'description' => ''], + ['errorCode' => 'ResourceNotFound.VPC', 'errorMessage' => 'The specified resource of %s is not found.', 'description' => ''], ], ], - 'staticInfo' => [ - 'returnType' => 'asynchronous', - 'callback' => 'Vpc::2016-04-28::ListPrefixLists', - 'callbackInterval' => 3000, - 'maxCallbackTimes' => 10, + 'title' => 'Create a NAT CIDR block', + 'description' => 'The **CreateNatIpCidr** operation does not support concurrent creation of NAT IP CIDR blocks within the same NAT gateway.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2025-03-25T16:25:59.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2024-10-23T06:17:17.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-03-01T06:45:53.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2022-11-07T11:48:28.000Z', 'description' => 'Request parameters changed'], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"64B48E3D-DF70-471B-AA93-08E683A1B45\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 64B48E3D-DF70-471B-AA93-08E683A1B45\\n","errorExample":""}]', - 'title' => 'DeleteVpcPrefixList', - 'description' => 'You cannot repeatedly call the **DeleteDhcpOptionsSet** operation to delete a prefix list within the specified period of time.', - ], - 'ModifyVpcPrefixList' => [ - 'summary' => 'Modifies the configuration of a prefix list.', - 'methods' => [ - 'post', - 'get', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CreateNatIpCidr'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'vpc:CreateNatIpCidr', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'NatGateway', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:natgateway/{#NatGatewayId}'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"NatIpCidrId\\": \\"vpcnatcidr-gw8lhqtvdn4qnea****\\",\\n \\"RequestId\\": \\"7021BEB1-210F-48A9-AB82-BE9A9110BB89\\"\\n}","type":"json"}]', + ], + 'CreateNetworkAcl' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -14237,174 +10407,201 @@ ], 'operationType' => 'readAndWrite', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'update', - 'riskType' => 'none', - 'chargeType' => 'free', - ], + 'systemTags' => ['operationType' => 'create', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ - 'name' => 'PrefixListId', + 'name' => 'VpcId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the prefix list.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'pl-0b7hwu67****', - ], + 'schema' => ['description' => 'The ID of the virtual private cloud (VPC) to which the network ACL belongs.'."\n" + ."\n" + .'If the VPC contains Elastic Compute Service (ECS) instances of the following instance families, you must upgrade the ECS instances or release the ECS instances. Otherwise, you cannot create a network ACL for the VPC.'."\n" + ."\n" + .'ecs.c1, ecs.c2, ecs.c4, ecs.c5, ecs.ce4, ecs.cm4, ecs.d1, ecs.e3, ecs.e4, ecs.ga1, ecs.gn4, ecs.gn5, ecs.i1, ecs.m1, ecs.m2, ecs.mn4, ecs.n1, ecs.n2, ecs.n4, ecs.s1, ecs.s2, ecs.s3, ecs.se1, ecs.sn1, ecs.sn2, ecs.t1, and ecs.xn4.'."\n" + ."\n" + .'* For more information about how to upgrade an ECS instance, see [Upgrade subscription instances](~~25438~~) and [Change the specifications of pay-as-you-go instances](~~60051~~).'."\n" + .'* For more information about how to release an ECS instance, see [Release an ECS instance](~~25442~~).'."\n" + ."\n" + .'> If the VPC contains an ECS instance that does not support network ACLs, upgrade the ECS instance.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'vpc-dsfd34356vdf****'], ], [ - 'name' => 'PrefixListName', + 'name' => 'NetworkAclName', 'in' => 'query', - 'schema' => [ - 'description' => 'The new name of the prefix list.'."\n" - ."\n" - .'The name must be 1 to 128 characters in length, and cannot start with `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'newname', - ], + 'schema' => ['description' => 'The name of the network ACL.'."\n" + ."\n" + .'The name must be 1 to 128 characters in length, and cannot start with `http://` or `https://`.'."\n", 'type' => 'string', 'required' => false, 'example' => 'acl-1'], ], [ - 'name' => 'ClientToken', + 'name' => 'Description', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'You can use the client to generate the value, but you must make sure that it is unique among different requests. The token can contain only ASCII characters.'."\n" - ."\n" - .'> If you do not specify this parameter, the system uses **RequestId** as **ClientToken**. **RequestId** may be different for each API request.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-426655440000', - ], + 'schema' => ['description' => 'The description of the network ACL.'."\n" + ."\n" + .'The description must be 1 to 256 characters in length, and cannot start with `http://` or `https://`.'."\n", 'type' => 'string', 'required' => false, 'example' => 'This is my NetworkAcl.'], ], [ - 'name' => 'DryRun', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to only precheck the request. Valid values:'."\n" - ."\n" - .'* **true**: checks the request without performing the operation. The system prechecks the required parameters, request syntax, and limits. If the request fails the precheck, an error message is returned. If the request passes the precheck, the `DryRunOperation` error code is returned.'."\n" - .'* **false** (default): sends the request. If the request passes the check, a 2xx HTTP status code is returned and the operation is performed.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'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.'."\n" + ."\n" + .'> 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.'."\n", 'type' => 'string', 'required' => false, 'example' => '0c593ea1-3bea-11e9-b96b-88e9fe637760'], ], [ - 'name' => 'AddPrefixListEntry', + 'name' => 'DryRun', 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => 'The information about CIDR blocks to be added to the prefix list.', - 'type' => 'array', - 'items' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'Cidr' => [ - 'description' => 'The CIDR block to be added to the prefix list.'."\n" - ."\n" - .'> If the CIDR block already exists in the prefix list, you can only modify the description of the CIDR block by setting the **AddPrefixListEntry.N.Description** parameter.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '172.16.0.0/12', - ], - 'Description' => [ - 'description' => 'The description of the CIDR block to be added to the prefix list.'."\n" - ."\n" - .'The description must be 1 to 128 characters in length, and cannot start with `http://` or `https://`.', - 'type' => 'string', - 'required' => false, - 'example' => 'newcidr', - ], - ], - 'required' => false, - ], - 'required' => false, - 'maxItems' => 1000, - ], + 'schema' => ['description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values:'."\n" + ."\n" + .'* **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.'."\n" + .'* **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.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false'], ], [ - 'name' => 'RemovePrefixListEntry', + 'name' => 'Tag', 'in' => 'query', 'style' => 'repeatList', 'schema' => [ - 'description' => 'The information about CIDR blocks to be deleted to the prefix list.', + 'description' => 'The tags of the resource.'."\n", 'type' => 'array', 'items' => [ 'description' => '', 'type' => 'object', 'properties' => [ - 'Cidr' => [ - 'description' => 'The CIDR block that you want to delete from the prefix list.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '192.168.0.0/16', - ], - 'Description' => [ - 'description' => 'The description of the CIDR block that you want to delete.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'cidr', - ], + 'Key' => ['description' => 'The key of tag N to add to the resource. You can specify up to 20 tag keys. The tag key cannot be an empty string.'."\n" + ."\n" + .'The tag key can be up to 128 characters in length. It cannot start with `aliyun` or `acs:`, and cannot contain `http://` or `https://`.'."\n", 'type' => 'string', 'required' => false, 'example' => 'FinanceDept'], + 'Value' => ['description' => '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.'."\n" + ."\n" + .'The tag value can be up to 128 characters in length and cannot contain `http://` or `https://`. The tag value cannot start with `aliyun` or `acs:`.'."\n", 'type' => 'string', 'required' => false, 'example' => 'FinanceJoshua'], ], 'required' => false, ], 'required' => false, - 'maxItems' => 1000, + 'maxItems' => 21, ], ], [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the prefix list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], - ], - [ - 'name' => 'PrefixListDescription', - 'in' => 'query', - 'schema' => [ - 'description' => 'The new description of the prefix list.'."\n" - ."\n" - .'The description must be 1 to 256 characters in length, and cannot start with `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'newdescription', - ], - ], - [ - 'name' => 'MaxEntries', - 'in' => 'query', - 'schema' => [ - 'description' => 'The maximum number of CIDR blocks supported by the prefix list after the configuration of the prefix list is modified.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '20', - ], + 'schema' => ['description' => 'The region ID of the network ACL.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou'], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'description' => '', 'type' => 'object', 'properties' => [ - 'PrefixListId' => [ - 'description' => 'The ID of the prefix list.'."\n", - 'type' => 'string', - 'example' => 'pl-0b7hwu67****', - ], - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B45', + 'NetworkAclId' => ['description' => 'The ID of the network ACL.'."\n", 'type' => 'string', 'example' => 'nacl-a2do9e413e0spzasx****'], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '0ED8D006-F706-4D23-88ED-E11ED28DCAC0'], + 'NetworkAclAttribute' => [ + 'description' => 'The attributes of the network ACL.'."\n", + 'type' => 'object', + 'properties' => [ + 'Status' => ['description' => 'The status of the network ACL. Valid values:'."\n" + ."\n" + .'* **Available**'."\n" + .'* **Modifying**'."\n", 'type' => 'string', 'example' => 'Modifying'], + 'VpcId' => ['description' => 'The ID of the VPC to which the network ACL belongs.'."\n", 'type' => 'string', 'example' => 'vpc-a2d33rfpl72k5xsscd****'], + 'CreationTime' => ['description' => 'The time when the network ACL was created.'."\n", 'type' => 'string', 'example' => '2021-12-25 11:33:27'], + 'Description' => ['description' => 'The description of the network ACL.'."\n", 'type' => 'string', 'example' => 'This is my NetworkAcl.'], + 'NetworkAclName' => ['description' => 'The name of the network ACL.'."\n", 'type' => 'string', 'example' => 'acl-1 '], + 'NetworkAclId' => ['description' => 'The ID of the network ACL.'."\n", 'type' => 'string', 'example' => 'nacl-a2do9e413e0spdefr****'], + 'RegionId' => ['description' => 'The region ID of the network ACL.'."\n", 'type' => 'string', 'example' => 'cn-hangzhou '], + 'IngressAclEntries' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'IngressAclEntry' => [ + 'description' => 'The inbound rules.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'NetworkAclEntryId' => ['description' => 'The ID of the inbound rule.'."\n", 'type' => 'string', 'example' => 'nae-a2dk86arlydmexscd****'], + 'NetworkAclEntryName' => ['description' => 'The name of the inbound rule.'."\n", 'type' => 'string', 'example' => 'acl-3 '], + 'Policy' => ['description' => 'The action to be performed on network traffic that matches the rule. Valid values:'."\n" + ."\n" + .'* **accept**'."\n" + .'* **drop**'."\n", 'type' => 'string', 'example' => 'accept'], + 'Description' => ['description' => 'The description of the inbound rule.'."\n", 'type' => 'string', 'example' => 'This is IngressAclEntries. '], + 'SourceCidrIp' => ['description' => 'The source CIDR block.'."\n", 'type' => 'string', 'example' => '10.0.0.0/24 '], + 'Protocol' => ['description' => 'The protocol. Valid values:'."\n" + ."\n" + .'* **icmp**'."\n" + .'* **gre**'."\n" + .'* **tcp**'."\n" + .'* **udp**'."\n" + .'* **all**'."\n", 'type' => 'string', 'example' => 'all'], + 'Port' => ['description' => 'The destination port range of the inbound traffic.'."\n" + ."\n" + .'* If the **protocol** of the inbound rule is set to **all**, **icmp**, or **gre**, the port range is -1/-1, which specifies all ports.'."\n" + .'* If the **protocol** of the inbound rule is set to **tcp** or **udp**, set the port range in the following format: **1/200** or **80/80**, which specifies port 1 to port 200 or port 80. Valid ports: **1** to **65535**.'."\n", 'type' => 'string', 'example' => '-1/-1'], + ], + ], + ], + ], + ], + 'EgressAclEntries' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'EgressAclEntry' => [ + 'description' => 'The outbound rules.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'NetworkAclEntryId' => ['description' => 'The ID of the outbound rule.'."\n", 'type' => 'string', 'example' => 'nae-a2d447uw4tillxsdc****'], + 'NetworkAclEntryName' => ['description' => 'The name of the outbound rule.'."\n", 'type' => 'string', 'example' => 'acl-2'], + 'Policy' => ['description' => 'The action to be performed on network traffic that matches the rule. Valid values:'."\n" + ."\n" + .'* **accept**'."\n" + .'* **drop**'."\n", 'type' => 'string', 'example' => 'accept'], + 'Description' => ['description' => 'The description of the outbound rule.'."\n", 'type' => 'string', 'example' => 'This is EgressAclEntries.'], + 'Protocol' => ['description' => 'The protocol. Valid values:'."\n" + ."\n" + .'* **icmp**'."\n" + .'* **gre**'."\n" + .'* **tcp**'."\n" + .'* **udp**'."\n" + .'* **all**'."\n", 'type' => 'string', 'example' => 'all'], + 'DestinationCidrIp' => ['description' => 'The destination CIDR block.'."\n", 'type' => 'string', 'example' => '10.0.0.0/24'], + 'Port' => ['description' => 'The destination port range of the outbound traffic.'."\n" + ."\n" + .'* If the **protocol** of the outbound rule is set to **all**, **icmp**, or **gre**, the port range is -1/-1, which specified all ports.'."\n" + .'* If the **protocol** of the outbound rule is set to **tcp** or **udp**, set the port range in the following format: **1/200** or **80/80**, which specifies port 1 to port 200 or port 80. Valid values for a port: **1** to **65535**.'."\n", 'type' => 'string', 'example' => '-1/-1 '], + ], + ], + ], + ], + ], + 'Resources' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Resource' => [ + 'description' => 'The information about the associated resources.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'Status' => ['description' => 'The association status of the resource. Valid values:'."\n" + ."\n" + .'* **BINDED**'."\n" + .'* **BINDING**'."\n" + .'* **UNBINDING**'."\n", 'type' => 'string', 'example' => 'BINDED'], + 'ResourceType' => ['description' => 'The type of resource with which you want to associate the network ACL.'."\n", 'type' => 'string', 'example' => 'VSwitch'], + 'ResourceId' => ['description' => 'The ID of the associated resource.'."\n", 'type' => 'string', 'example' => 'vsw-bp1de348lntdwgthy****'], + ], + ], + ], + ], + ], + ], ], ], ], @@ -14412,1332 +10609,1409 @@ ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'ResourceNotFound.PrefixList', - 'errorMessage' => 'The specified resource of prefixList is not found.', - ], - [ - 'errorCode' => 'OperationFailed.CidrCountExceedMaxCount', - 'errorMessage' => 'The operation is failed because of cidrCountExceedMaxCount.', - ], - [ - 'errorCode' => 'OperationDenied.RemoveCountExceedExistCount', - 'errorMessage' => 'The operation is not allowed because of remove-count exceed exist-count.', - ], - [ - 'errorCode' => 'DuplicatedParam.CidrBlock', - 'errorMessage' => 'The param of cidrBlock is duplicated.', - ], - [ - 'errorCode' => 'IllegalParam.CidrBlock', - 'errorMessage' => 'The param of cidrBlock is illegal.', - ], - [ - 'errorCode' => 'IllegalParam.CidrName', - 'errorMessage' => 'The param of cidrName is illegal.', - ], - [ - 'errorCode' => 'OperationDenied.SystemPrefixList', - 'errorMessage' => 'This is not allowed to operate system prefixList.', - ], - [ - 'errorCode' => 'OperationFailed.OperateShareResource', - 'errorMessage' => 'This is not allowed to operate shared prefixList.', - ], - [ - 'errorCode' => 'IncorrectStatus.PrefixList', - 'errorMessage' => 'The status of prefixList is incorrect.', - ], - [ - 'errorCode' => 'QuotaExceeded.PrefixListCidrCount', - 'errorMessage' => 'The quota of prefixList entry maxEntry count is exceeded.', - ], - [ - 'errorCode' => 'QuotaExceeded', - 'errorMessage' => 'Route entry quota exceeded in associated route table.', - ], - [ - 'errorCode' => 'OperationDenied.QuotaExceededWithNetworkAcl', - 'errorMessage' => 'If the prefix list increases MaxEntries, the quota for the maximum number of entries for the associated network ACL instance %s is exceeded.', - ], - [ - 'errorCode' => 'ServiceUnavailable', - 'errorMessage' => 'The request has failed due to a temporary failure of the server.', - ], - ], - ], - 'staticInfo' => [ - 'returnType' => 'asynchronous', - 'callback' => 'Vpc::2016-04-28::ListPrefixLists', - 'callbackInterval' => 3000, - 'maxCallbackTimes' => 10, - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"PrefixListId\\": \\"pl-0b7hwu67****\\",\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B45\\"\\n}","errorExample":""},{"type":"xml","example":"\\n pl-0b7hwu67****\\n 54B48E3D-DF70-471B-AA93-08E683A1B45\\n","errorExample":""}]', - 'title' => 'ModifyVpcPrefixList', - 'description' => '* **ModifyVpcPrefixList** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call the [ListPrefixLists](~~311535~~) to query the status of the task.'."\n" - ."\n" - .' * If the prefix list is in the **Modifying** state, the configuration of the prefix list is being modified.'."\n" - .' * If the prefix list is in the **Created** state, the configuration of the prefix list is modified.'."\n" - .' * After the configuration of the prefix list is modified, you can call the [GetVpcPrefixListAssociations](~~445478~~) operation to query the information about the network instances that are associated with the prefix list and determine whether the associated network instances use the new CIDR blocks. If the association **status** of the prefix list is **Created**, the new CIDR blocks are used by the network instances that are associated with the prefix list.'."\n" - ."\n" - .'* You cannot repeatedly call **ModifyVpcPrefixList** to modify the configuration of a prefix list within the specified period of time.'."\n", + ['errorCode' => 'ParameterMissing.AliUid', 'errorMessage' => 'ParameterMissing.AliUid', 'description' => ''], + ['errorCode' => 'ParameterMissing.Bid', 'errorMessage' => 'ParameterMissing.Bid', 'description' => ''], + ['errorCode' => 'ParameterMissing.RegionId', 'errorMessage' => 'ParameterMissing.RegionId', 'description' => ''], + ['errorCode' => 'ParameterEmpty.RegionId', 'errorMessage' => 'ParameterEmpty.RegionId', 'description' => ''], + ['errorCode' => 'ParameterMissing.VpcId', 'errorMessage' => 'ParameterMissing.VpcId', 'description' => ''], + ['errorCode' => 'ParameterLengthIllegal.Name', 'errorMessage' => 'ParameterLengthIllegal.Name', 'description' => 'The length of the rule name is invalid.'], + ['errorCode' => 'ParameterIllegal.Name', 'errorMessage' => 'ParameterIllegal.Name', 'description' => 'The name of the entry is invalid.'], + ['errorCode' => 'ParameterLengthIllegal.Description', 'errorMessage' => 'ParameterLengthIllegal.Description', 'description' => ''], + ['errorCode' => 'ParameterIllegal.Description', 'errorMessage' => 'ParameterIllegal.Description', 'description' => ''], + ['errorCode' => 'ParameterEmpty.VpcId', 'errorMessage' => 'ParameterEmpty.VpcId', 'description' => ''], + ['errorCode' => 'InvalidVpcId.NotFound', 'errorMessage' => 'The vpc is not exist.', 'description' => ''], + ['errorCode' => 'QuotaExceed.NetworkAcl', 'errorMessage' => 'Network acl is over limit.', 'description' => ''], + ['errorCode' => 'NotSupport.NetworkAcl', 'errorMessage' => 'Network acl is not support now.', 'description' => ''], + ['errorCode' => 'IllegalParamFormat.%s', 'errorMessage' => 'The param format of %s is illegal.', 'description' => 'The parameter mode is invalid.'], + ], + ], + 'staticInfo' => ['returnType' => 'asynchronous', 'callback' => 'Vpc::2016-04-28::DescribeNetworkAcls', 'callbackInterval' => 3000, 'maxCallbackTimes' => 10], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"NetworkAclId\\": \\"nacl-a2do9e413e0spzasx****\\",\\n \\"RequestId\\": \\"0ED8D006-F706-4D23-88ED-E11ED28DCAC0\\",\\n \\"NetworkAclAttribute\\": {\\n \\"Status\\": \\"Modifying\\",\\n \\"VpcId\\": \\"vpc-a2d33rfpl72k5xsscd****\\",\\n \\"CreationTime\\": \\"2021-12-25 11:33:27\\",\\n \\"Description\\": \\"This is my NetworkAcl.\\",\\n \\"NetworkAclName\\": \\"acl-1\\\\t\\",\\n \\"NetworkAclId\\": \\"nacl-a2do9e413e0spdefr****\\",\\n \\"RegionId\\": \\"cn-hangzhou\\\\t\\",\\n \\"IngressAclEntries\\": {\\n \\"IngressAclEntry\\": [\\n {\\n \\"NetworkAclEntryId\\": \\"nae-a2dk86arlydmexscd****\\",\\n \\"NetworkAclEntryName\\": \\"acl-3\\\\t\\",\\n \\"Policy\\": \\"accept\\",\\n \\"Description\\": \\"This is IngressAclEntries.\\\\t\\",\\n \\"SourceCidrIp\\": \\"10.0.0.0/24\\\\t\\",\\n \\"Protocol\\": \\"all\\",\\n \\"Port\\": \\"-1/-1\\"\\n }\\n ]\\n },\\n \\"EgressAclEntries\\": {\\n \\"EgressAclEntry\\": [\\n {\\n \\"NetworkAclEntryId\\": \\"nae-a2d447uw4tillxsdc****\\",\\n \\"NetworkAclEntryName\\": \\"acl-2\\",\\n \\"Policy\\": \\"accept\\",\\n \\"Description\\": \\"This is EgressAclEntries.\\",\\n \\"Protocol\\": \\"all\\",\\n \\"DestinationCidrIp\\": \\"10.0.0.0/24\\",\\n \\"Port\\": \\"-1/-1\\\\t\\"\\n }\\n ]\\n },\\n \\"Resources\\": {\\n \\"Resource\\": [\\n {\\n \\"Status\\": \\"BINDED\\",\\n \\"ResourceType\\": \\"VSwitch\\",\\n \\"ResourceId\\": \\"vsw-bp1de348lntdwgthy****\\"\\n }\\n ]\\n }\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n nacl-a2do9e413e0spzasx****\\n 0ED8D006-F706-4D23-88ED-E11ED28DCAC0\\n \\n Modifying\\n vpc-a2d33rfpl72k5xsscd****\\n 2021-12-25 11:33:27\\n This is my NetworkAcl.\\n acl-1\\t\\n nacl-a2do9e413e0spdefr****\\n cn-hangzhou\\t\\n \\n nae-a2dk86arlydmexscd****\\n acl-3\\t\\n accept\\n This is IngressAclEntries.\\t\\n 10.0.0.0/24\\t\\n all\\n -1/-1\\n \\n \\n nae-a2d447uw4tillxsdc****\\n acl-2\\n accept\\n This is EgressAclEntries.\\n all\\n 10.0.0.0/24\\n -1/-1\\t\\n \\n \\n BINDED\\n VSwitch\\n vsw-bp1de348lntdwgthy****\\n \\n \\n","errorExample":""}]', + 'title' => 'CreateNetworkAcl', + 'summary' => 'Creates a network ACL.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [], ], - 'ListPrefixLists' => [ - 'summary' => 'Queries prefix lists.', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'CreatePhysicalConnection' => [ + 'summary' => 'Calls the CreatePhysicalConnection operation to apply for an Express Connect circuit.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'write', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'list', - 'riskType' => 'none', - 'chargeType' => 'free', - ], + 'systemTags' => ['operationType' => 'create', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ - 'name' => 'PrefixListIds', + 'name' => 'RegionId', 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'title' => '前缀列表的实例ID', - 'description' => 'The IDs of prefix lists to be queried. Valid values of **N** are **1** to **100**, which specifies that you can query up to 100 prefix lists at a time.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The ID of the prefix list.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'pl-0b7hwu67****', - ], - 'required' => false, - 'example' => 'pl-m5estsqsdqwg88hjf****', - 'maxItems' => 100, - ], + 'schema' => ['description' => 'The region ID of the Express Connect circuit.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the region ID.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-shanghai', 'title' => ''], ], [ - 'name' => 'NextToken', + 'name' => 'AccessPointId', 'in' => 'query', - 'schema' => [ - 'description' => 'The pagination token that is used in the next request to retrieve a new page of results. Valid values:'."\n" - ."\n" - .'* You do not need to specify this parameter for the first request.'."\n" - .'* You must specify the token that is obtained from the previous query as the value of NextToken.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', - ], + 'schema' => ['description' => 'The ID of the access point where the Express Connect circuit is located.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'ap-cn-beijing-ft-A', 'title' => ''], ], [ - 'name' => 'MaxResults', + 'name' => 'Type', 'in' => 'query', - 'schema' => [ - 'description' => 'The number of entries per page. Valid values: **1** to **100**. Default value: **20**.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'maximum' => '100', - 'minimum' => '1', - 'example' => '20', - 'default' => '10', - ], + 'schema' => ['description' => 'The type of the Express Connect circuit. Default value: **VPC**.', 'type' => 'string', 'required' => false, 'default' => 'VPC', 'example' => 'VPC', 'title' => ''], + ], + [ + 'name' => 'LineOperator', + 'in' => 'query', + 'schema' => ['description' => 'The carrier that provides the Express Connect circuit. Valid values:'."\n" + ."\n" + .'- **CT**: China Telecom.'."\n" + ."\n" + .'- **CU**: China Unicom.'."\n" + ."\n" + .'- **CM**: China Mobile.'."\n" + ."\n" + .'- **CO**: Other carriers in China. '."\n" + ."\n" + .'- **Equinix**: Equinix.'."\n" + ."\n" + .'- **Other**: Other carriers outside China.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'CT', 'title' => ''], + ], + [ + 'name' => 'bandwidth', + 'in' => 'query', + 'schema' => ['description' => 'The bandwidth of the shared Express Connect circuits. Unit: Mbit/s.'."\n" + ."\n" + .'Valid values: **50**, **100**, **200**, **300**, **400**, **500**, **1000**, **2000**, **4000**, **5000**, **8000**, and **10000**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'default' => '100', 'example' => '50', 'title' => ''], + ], + [ + 'name' => 'PeerLocation', + 'in' => 'query', + 'schema' => ['description' => 'The geographical location of the on-premises data center.', 'type' => 'string', 'required' => false, 'docRequired' => false, 'example' => 'XX街道', 'title' => ''], + ], + [ + 'name' => 'PortType', + 'in' => 'query', + 'schema' => ['description' => 'The port type of the Express Connect circuit. Valid values:'."\n" + ."\n" + .'- **100Base-T**: 100M Ethernet port.'."\n" + ."\n" + .'- **1000Base-T**: 1 GE electrical port.'."\n" + ."\n" + .'- **1000Base-LX**: GE single-mode optical port (10 km).'."\n" + ."\n" + .'- **10GBase-T**: 10 GE electrical port.'."\n" + ."\n" + .'- **10GBase-LR**: 10 GE single-mode optical port (10 km).'."\n" + ."\n" + .'- **40GBase-LR**: 40 GE single-mode optical port.'."\n" + ."\n" + .'- **100GBase-LR**: 100 GE single-mode optical port.'."\n" + ."\n" + .'> 40GBase-LR and 100GBase-LR are created based on the actual port availability in the backend. Contact your account manager for port availability details.', 'type' => 'string', 'required' => false, 'default' => '1000Base-T', 'example' => '1000Base-T', 'title' => ''], + ], + [ + 'name' => 'RedundantPhysicalConnectionId', + 'in' => 'query', + 'schema' => ['description' => 'The instance ID of the redundant Express Connect circuit. The redundant circuit must be in the **Allocated**, **Confirmed**, or **Enabled** state.', 'type' => 'string', 'required' => false, 'example' => 'pc-119mfjzm****', 'title' => ''], + ], + [ + 'name' => 'Description', + 'in' => 'query', + 'schema' => ['description' => 'The description of the Express Connect circuit. '."\n" + ."\n" + .'The description must be 2 to 256 characters in length and must start with a letter or a Chinese character. It cannot start with `http://` or `https://`.', 'type' => 'string', 'required' => false, 'example' => 'description', 'title' => ''], + ], + [ + 'name' => 'Name', + 'in' => 'query', + 'schema' => ['description' => 'The name of the Express Connect circuit. '."\n" + ."\n" + .'The name must be 2 to 128 characters in length and must start with a letter or a Chinese character. It can contain digits, underscores (_), and hyphens (-). It cannot start with `http://` or `https://`.', 'type' => 'string', 'required' => false, 'example' => 'test', 'title' => ''], + ], + [ + 'name' => 'CircuitCode', + 'in' => 'query', + 'schema' => ['description' => 'The circuit code provided by the carrier for the Express Connect circuit.', 'type' => 'string', 'required' => false, 'example' => 'longtel001', 'title' => ''], + ], + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'Generate a parameter value from your client to ensure uniqueness across different requests. ClientToken supports only ASCII characters.'."\n" + ."\n" + .'> If you do not specify this parameter, the system uses the **RequestId** of the API request as the **ClientToken**. The **RequestId** may be different for each API request.', 'type' => 'string', 'required' => false, 'docRequired' => true, 'example' => '123e4567-e89b-12d3-a456-42665544****', 'title' => ''], + ], + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'Generate a parameter value from your client to ensure uniqueness across different requests. ClientToken supports only ASCII characters.'."\n" + ."\n" + .'> If you do not specify this parameter, the system uses the **RequestId** of the API request as the **ClientToken**. The **RequestId** may be different for each API request.', 'type' => 'string', 'required' => false, 'docRequired' => true, 'example' => '123e4567-e89b-12d3-a456-42665544****', 'title' => ''], ], [ 'name' => 'ResourceGroupId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the resource group to which the prefix list belongs.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'rg-bp67acfmxazb4ph****', - ], + 'schema' => ['description' => 'The ID of the resource group to which the Express Connect circuit belongs.', 'type' => 'string', 'required' => false, 'example' => 'rg-acfmoiyermp****', 'title' => ''], ], [ - 'name' => 'Tags', + 'name' => 'Tag', 'in' => 'query', 'style' => 'repeatList', 'schema' => [ - 'description' => 'The tags.'."\n", + 'description' => 'The list of tags.', 'type' => 'array', 'items' => [ - 'description' => '', + 'description' => 'The list of tags.', 'type' => 'object', 'properties' => [ - 'Key' => [ - 'description' => 'The tag key. You can specify up to 20 tag keys. The tag key cannot be an empty string.'."\n" - ."\n" - .'The key cannot exceed 64 characters in length, and can contain digits, periods (.), underscores (\\_), and hyphens (-). The key must start with a letter but cannot start with `aliyun` or `acs:`. The key cannot contain `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'FinanceDept', - ], - 'Value' => [ - 'description' => 'The tag value. You can specify up to 20 tag values. The tag value can be an empty string.'."\n" - ."\n" - .'The tag value cannot exceed 128 characters in length, and can contain digits, periods (.), underscores (\\_), and hyphens (-). The key must start with a letter but cannot start with `aliyun` or `acs:`. The key cannot contain `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'FinanceJoshua', - ], + 'Key' => ['description' => 'The tag key of the resource. You can specify up to 20 tag keys. The tag key cannot be an empty string.'."\n" + ."\n" + .'The tag key can be up to 128 characters in length. It cannot start with `aliyun` or `acs:`, and cannot contain `http://` or `https://`.', 'type' => 'string', 'required' => false, 'example' => 'FinanceDept', 'title' => ''], + 'Value' => ['description' => 'The tag value of the resource. You can specify up to 20 tag values. The tag value can be an empty string.'."\n" + ."\n" + .'The tag value can be up to 128 characters in length. It cannot start with `aliyun` or `acs:`, and cannot contain `http://` or `https://`.', 'type' => 'string', 'required' => false, 'example' => 'FinanceJoshua', 'title' => ''], ], 'required' => false, + 'title' => '', + 'example' => '', ], 'required' => false, - 'maxItems' => 10, + 'maxItems' => 20, + 'title' => '', + 'example' => '', ], ], [ - 'name' => 'RegionId', + 'name' => 'DeviceAdvancedCapacity', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'title' => '地域', - 'description' => 'The ID of the region where you want to query prefix lists.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cn-hangzhou', + 'description' => 'The list of device advanced capabilities.', + 'type' => 'array', + 'items' => [ + 'description' => 'The list of device advanced capabilities. Valid values:'."\n" + .'- **SubifRateLimit**: supports bandwidth throttling at the VBR granularity.'."\n" + .'- **DualStack**: supports IPv6 protocol.'."\n" + .'- **BFD**: supports fault detection network protocol between forwarding points.'."\n" + .'- **CEN**: supports MP-BGP protocol.'."\n" + .'- **CENv6**: supports MP-BGPv6 protocol.'."\n" + .'- **QOS**: supports QoS.'."\n" + .'- **MS-HA**: supports fast switchover groups.'."\n" + .'- **Multi-MS-HA**: supports multiple switchover groups.', + 'enumValueTitles' => ['BFD' => 'BFD', 'SubifRateLimit' => 'SubifRateLimit', 'DualStack' => 'DualStack', 'CENv6' => 'CENv6', 'CEN' => 'CEN'], + 'type' => 'string', + 'required' => false, + 'example' => 'CENv6', + 'title' => '', + ], + 'required' => false, + 'maxItems' => 100, + 'title' => '', + 'example' => '', ], ], [ - 'name' => 'PrefixListName', + 'name' => 'OpticalModuleModel', 'in' => 'query', - 'schema' => [ - 'description' => 'The name of the prefix list to query.'."\n" - ."\n" - .'The name must be 1 to 128 characters in length and cannot start with `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'name', - ], + 'schema' => ['title' => '', 'description' => 'The optical module model supported by the Express Connect circuit access point. Valid values:'."\n" + .'- 1000Base-LX : '."\n" + .' - `SFP-GE-LR-SM1310,10KM`'."\n" + .' - `SFP-GE-ER-SM1310,40KM`'."\n" + .' - `SFP-GE-ZR-SM1550,80KM`'."\n" + .'- 10GBase-LR : '."\n" + .' - `SFP-10G-LR-SM1310,10KM`'."\n" + .' - `SFP-10G-ER-SM1550,40KM` '."\n" + .' - `SFP-10G-ZR-SM1550,80KM` '."\n" + .'- 40GBase-LR : '."\n" + .' - `QSFP-40G-LR4-WDM1300,10KM`'."\n" + .' - `QSFP-40G-ER4-WDM1300,40KM`'."\n" + .' - `QSFP-40G-ZR4-WDM1300,80KM`'."\n" + .'- 100GBase-LR : '."\n" + .' - `QSFP28-100G-LR4-WDM1300,10KM`'."\n" + .' - `QSFP28-100G-ER4-WDM1300,40KM`'."\n" + .' - `QSFP28-100G-ZR4-WDM1300,80KM`.', 'type' => 'string', 'required' => false, 'example' => 'SFP-GE-LR-SM1310,10KM'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'The request ID.'."\n", + 'description' => 'The response parameters.', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => 'DF72F7BB-5DFA-529C-887E-B0BB70D89C4F', - ], - 'NextToken' => [ - 'description' => 'A pagination token. It can be used in the next request to retrieve a new page of results. Valid values:'."\n" - ."\n" - .'* If **NextToken** is empty, no next page exists.'."\n" - .'* If a value is returned for **NextToken**, the value indicates the token that is used for the next request to retrieve a new page of results.'."\n", - 'type' => 'string', - 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', - ], - 'TotalCount' => [ - 'description' => 'The total number of entries returned.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1', - ], - 'MaxResults' => [ - 'description' => 'The number of entries per page. Valid values: **1** to **100**. Default value: **20**.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '20', - ], - 'PrefixLists' => [ - 'description' => 'The information about the prefix lists.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'PrefixListId' => [ - 'title' => '前缀列表的实例ID', - 'description' => 'The ID of the prefix list.'."\n", - 'type' => 'string', - 'example' => 'pl-m5estsqsdqwg88hjf****', - ], - 'PrefixListName' => [ - 'title' => '名称', - 'description' => 'The name of the prefix list.'."\n", - 'type' => 'string', - 'example' => 'test', - ], - 'PrefixListDescription' => [ - 'title' => '描述', - 'description' => 'The description of the prefix list.'."\n", - 'type' => 'string', - 'example' => 'Created with oss service by system.', - ], - 'IpVersion' => [ - 'title' => 'IpVersion', - 'description' => 'The IP version of the prefix list. Valid values:'."\n" - ."\n" - .'* **IPV4**'."\n" - .'* **IPV6**'."\n", - 'type' => 'string', - 'example' => 'IPV4', - ], - 'CreationTime' => [ - 'title' => '创建时间', - 'description' => 'The time when the prefix list was created.'."\n", - 'type' => 'string', - 'example' => '2022-07-12T14:22:32Z', - ], - 'CidrBlocks' => [ - 'title' => '前缀列表包含的网段', - 'description' => 'The CIDR block specified in the prefix list.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The CIDR block specified in the prefix list.'."\n", - 'type' => 'string', - 'example' => '100.115.XX.XX/24', - ], - ], - 'ShareType' => [ - 'description' => 'Indicates whether the prefix list is shared. Valid values:'."\n" - ."\n" - .'* **Shared**: The prefix list is shared.'."\n" - .'* If an empty value is returned, the prefix list is not shared.'."\n", - 'type' => 'string', - 'example' => 'Shared', - ], - 'MaxEntries' => [ - 'description' => 'The maximum number of CIDR blocks that you can specify in the prefix list.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'Status' => [ - 'description' => 'The status of the prefix list. Valid values:'."\n" - ."\n" - .'* **Created**'."\n" - .'* **Deleted**'."\n" - .'* **Modifying**'."\n", - 'type' => 'string', - 'example' => 'Created', - ], - 'OwnerId' => [ - 'description' => 'The Alibaba Cloud account to which the prefix list belongs.'."\n", - 'type' => 'string', - 'example' => '1210123456123456', - ], - 'PrefixListStatus' => [ - 'description' => 'The status of the prefix list. Valid values:'."\n" - ."\n" - .'* **Created**'."\n" - .'* **Deleted**'."\n" - .'* **Modifying**'."\n" - ."\n" - .'> This parameter is the same as the **Status** parameter.'."\n", - 'type' => 'string', - 'example' => 'Created', - ], - 'RegionId' => [ - 'description' => 'The region ID of the prefix list.'."\n", - 'type' => 'string', - 'example' => 'cn-hangzhou', - ], - 'ResourceGroupId' => [ - 'description' => 'The ID of the resource group to which the prefix list belongs.'."\n", - 'type' => 'string', - 'example' => 'rg-bp67acfmxazb4ph****', - ], - 'Tags' => [ - 'description' => 'The tags.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => 'The tag key.'."\n", - 'type' => 'string', - 'example' => 'FinanceDept', - ], - 'Value' => [ - 'description' => 'The tag value.'."\n", - 'type' => 'string', - 'example' => 'FinanceJoshua', - ], - ], - ], - ], - 'PrefixListType' => [ - 'title' => '前缀列表类型', - 'description' => 'The type of the prefix list.', - 'type' => 'string', - 'example' => 'Custom', - ], - ], - ], - ], + 'PhysicalConnectionId' => ['description' => 'The instance ID of the Express Connect circuit.', 'type' => 'string', 'example' => 'pc-bp1ciz7ekd2grn1as****', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '8A6A5EC5-6F6C-4906-9689-56ACE58A13E0', 'title' => ''], ], + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'IllegalParam.NextToken', - 'errorMessage' => 'The specified NextToken is invalid.', - ], + ['errorCode' => 'Invalid.Status', 'errorMessage' => 'The device or interface status invalid, or has been used..', 'description' => 'The Status parameter is set to an invalid value.'], + ['errorCode' => 'InvalidType.Malformd', 'errorMessage' => 'The Type provided was invalid.', 'description' => ''], + ['errorCode' => 'InvalidPeerLocation.Malformd', 'errorMessage' => 'The PeerLocation provided was invalid.', 'description' => ''], + ['errorCode' => 'InvalidLineOperator.Malformd', 'errorMessage' => 'The LineOperator provided was invalid.', 'description' => ''], + ['errorCode' => 'InvalidPortType.Malformd', 'errorMessage' => 'The PortType provided was invalid.', 'description' => ''], + ['errorCode' => 'InvalidDescription.Malformed', 'errorMessage' => 'The specifid ?Description? is not valid.', 'description' => 'The error message returned because the specified resource description is invalid. The description must be 2 to 256 characters in length and cannot start with http:// or https://.'], + ['errorCode' => 'InvalidRedundantPhysicalConnectionId.NotFound', 'errorMessage' => 'The RedundantPhysicalConnectionId does not found.', 'description' => ''], + ['errorCode' => 'InvalidName.Malformed', 'errorMessage' => 'The specified ?Name? is not valid.', 'description' => ''], + ['errorCode' => 'QuotaExceeded.pConnPerAP', 'errorMessage' => 'Physical connection count per ap quota exceed.', 'description' => ''], + ['errorCode' => 'InvalidBandwidth', 'errorMessage' => 'invalid physical connection banwidth.', 'description' => ''], + ['errorCode' => 'InvalidRedundantPhysicalConnection', 'errorMessage' => 'redundant physical connection doesn\'t belong to current user.', 'description' => ''], + ['errorCode' => 'InvalidRedundantPhysicalConnectionStatus', 'errorMessage' => 'invalid redundant physical connection status.', 'description' => ''], + ['errorCode' => 'InvalidCircuitCode.Malformed', 'errorMessage' => 'circuitCode is illegal.', 'description' => ''], + ['errorCode' => 'QuotaExceeded.freePconnPerAP', 'errorMessage' => 'free physical connections count excceeded.', 'description' => ''], + ['errorCode' => 'InvalidPhysicalConnectionOperator.Malformed', 'errorMessage' => 'Specified PhysicalConnection Operator is not valid.', 'description' => 'The operation on the Express Connect circuit is invalid.'], + ['errorCode' => 'InvalidPhysicalConnectionPortType.Malformed', 'errorMessage' => 'Specified PhysicalConnection PortType is not valid.', 'description' => 'The port type of the Express Connect circuit is invalid.'], + ['errorCode' => 'InvalidPhysicalConnectionBandwidth.Malformed', 'errorMessage' => 'Specified PhysicalConnection Bandwidth is not valid.', 'description' => 'The bandwidth of the Express Connect circuit is set to an invalid value.'], + ['errorCode' => 'IllegalParam.ClientToken', 'errorMessage' => 'Token verify failed because client token length too long.', 'description' => 'The ClientToken parameter is set to an invalid value.'], + ['errorCode' => 'InvalidPortType.NotFound', 'errorMessage' => 'Specified port type is not found.', 'description' => 'The portType parameter is not set.'], + ['errorCode' => 'OperationFailed.PconnTrafficNotEnable', 'errorMessage' => 'The operation is failed because of PconnTrafficNotEnable.', 'description' => 'Billing for outbound data transfer is disabled.'], + ['errorCode' => 'InvalidAccessPointId.NotEnabled', 'errorMessage' => 'Invalid access point status.', 'description' => ''], + ['errorCode' => 'ResourceNotFound.AccessPointId', 'errorMessage' => 'The specified resource of access point id is not found.', 'description' => 'The current access point information does not exist. Please check and try again.'], + ['errorCode' => 'InvalidParameter.DeviceAdvancedCapacity', 'errorMessage' => 'Invalid physical connection device advanced capacity.', 'description' => 'The advanced port capability is temporarily not supported. Please confirm and try again.'], + ], + 404 => [ + ['errorCode' => 'InvalidPortType.NotFound', 'errorMessage' => 'There are no resources with the portType.', 'description' => 'The specified port type is invalid.'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"DF72F7BB-5DFA-529C-887E-B0BB70D89C4F\\",\\n \\"NextToken\\": \\"FFmyTO70tTpLG6I3FmYAXGKPd****\\",\\n \\"TotalCount\\": 1,\\n \\"MaxResults\\": 20,\\n \\"PrefixLists\\": [\\n {\\n \\"PrefixListId\\": \\"pl-m5estsqsdqwg88hjf****\\",\\n \\"PrefixListName\\": \\"test\\",\\n \\"PrefixListDescription\\": \\"Created with oss service by system.\\",\\n \\"IpVersion\\": \\"IPV4\\",\\n \\"CreationTime\\": \\"2022-07-12T14:22:32Z\\",\\n \\"CidrBlocks\\": [\\n \\"100.115.XX.XX/24\\"\\n ],\\n \\"ShareType\\": \\"Shared\\",\\n \\"MaxEntries\\": 10,\\n \\"Status\\": \\"Created\\",\\n \\"OwnerId\\": \\"1210123456123456\\",\\n \\"PrefixListStatus\\": \\"Created\\",\\n \\"RegionId\\": \\"cn-hangzhou\\",\\n \\"ResourceGroupId\\": \\"rg-bp67acfmxazb4ph****\\",\\n \\"Tags\\": [\\n {\\n \\"Key\\": \\"FinanceDept\\",\\n \\"Value\\": \\"FinanceJoshua\\"\\n }\\n ],\\n \\"PrefixListType\\": \\"Custom\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\n DF72F7BB-5DFA-529C-887E-B0BB70D89C4F\\n FFmyTO70tTpLG6I3FmYAXGKPd****\\n 1\\n 20\\n \\n pl-m5estsqsdqwg88hjf****\\n test\\n Created with oss service by system.\\n IPV4\\n 2022-07-12T14:22:32Z\\n 100.115.XX.XX/24\\n Shared\\n 10\\n Created\\n 1210123456123456\\n Created\\n cn-hangzhou\\n rg-bp67acfmxazb4ph****\\n \\n FinanceDept\\n FinanceJoshua\\n \\n \\n","errorExample":""}]', - 'title' => 'ListPrefixLists', + 'title' => 'Apply for an express connect circuit', + 'description' => 'You can apply for a dedicated Express Connect circuit or apply for a shared Express Connect circuit for a tenant. After the application is complete, the Express Connect circuit enters the **Initial** state. Contact the carrier to start construction. '."\n" + .' '."\n" + .'When you call this operation, note the following items: '."\n" + .' '."\n" + .'- When you apply for an Express Connect circuit, the number of Express Connect circuits that are not in the **Enabled** state cannot exceed 5. '."\n" + ."\n" + .'- If your account has an Express Connect circuit with an overdue payment, you cannot apply for a new Express Connect circuit.', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'GetVpcPrefixListAssociations' => [ - 'summary' => 'Queries the resources that are associated with a prefix list.', - 'methods' => [ - 'get', - 'post', + 'changeSet' => [ + ['createdAt' => '2024-07-15T06:09:31.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-06-28T02:56:12.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-10-12T03:31:15.000Z', 'description' => 'Error codes changed, Request parameters changed'], + ['createdAt' => '2023-03-14T12:05:06.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2022-12-02T02:38:40.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2021-11-25T08:04:15.000Z', 'description' => 'Error codes changed'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CreatePhysicalConnection'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'vpc:CreatePhysicalConnection', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'PhysicalConnection', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:physicalconnection/*'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"PhysicalConnectionId\\": \\"pc-bp1ciz7ekd2grn1as****\\",\\n \\"RequestId\\": \\"8A6A5EC5-6F6C-4906-9689-56ACE58A13E0\\"\\n}","type":"json"}]', + ], + 'CreatePhysicalConnectionOccupancyOrder' => [ + 'summary' => 'Invoke the CreatePhysicalConnectionOccupancyOrder API to create an order for resource occupancy fees. ', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'readAndWrite', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'get', - 'riskType' => 'none', - 'chargeType' => 'free', - ], + 'systemTags' => ['operationType' => 'create', 'riskType' => 'none', 'chargeType' => 'paid', 'autoTest' => true, 'tenantRelevance' => 'tenant'], 'parameters' => [ [ - 'name' => 'PrefixListId', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the prefix list that you want to query.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'pl-0b7hwu67****', - ], + 'schema' => ['description' => 'The region ID of the Express Connect circuit.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'NextToken', + 'name' => 'PhysicalConnectionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The pagination token that is used in the next request to retrieve a new page of results. Valid values:'."\n" - ."\n" - .'* You do not need to specify this parameter for the first request.'."\n" - .'* If a value is returned for NextToken, specify the value in the next request to retrieve a new page of results.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', - ], + 'schema' => ['description' => 'The ID of the Express Connect circuit.'."\n", 'type' => 'string', 'required' => true, 'example' => 'pc-bp1hp0wr072f6****', 'title' => ''], ], [ - 'name' => 'MaxResults', + 'name' => 'Period', 'in' => 'query', - 'schema' => [ - 'description' => 'The number of entries to return in each call. Valid values: **1** to **100**. Default value: **20**.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'maximum' => '100', - 'minimum' => '1', - 'example' => '20', - 'default' => '50', - ], + 'schema' => ['description' => 'The subscription duration.'."\n" + ."\n" + .'* If **PricingCycle** is set to **Month**, set **Period** to a value from **1 to 9**.'."\n" + .'* If **PricingCycle** is set to **Year**, set **Period** to a value from **1 to 5**.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1', 'title' => ''], ], [ - 'name' => 'RegionId', + 'name' => 'InstanceChargeType', 'in' => 'query', - 'schema' => [ - 'title' => '地域', - 'description' => 'The region ID of the prefix list.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The billing method. Set the value to'."\n" + ."\n" + .'**PrePaid**, which specifies the subscription billing method. If you choose this billing method, make sure that your Alibaba Cloud account supports balance payments or credit payments.'."\n", 'type' => 'string', 'required' => false, 'example' => 'PrePaid', 'title' => ''], + ], + [ + 'name' => 'AutoPay', + 'in' => 'query', + 'schema' => ['description' => 'Specifies whether to enable automatic payments. Valid values:'."\n" + ."\n" + .'* **true**: yes Make sure that you have a sufficient balance in your account. Otherwise, your order becomes invalid and is automatically canceled.'."\n" + .'* **false**: disables automatic payment. This is the default value.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], + ], + [ + 'name' => 'PricingCycle', + 'in' => 'query', + 'schema' => ['description' => 'The billing cycle of the subscription. Valid values:'."\n" + ."\n" + .'* **Month** (default)'."\n" + .'* **Year**'."\n", 'type' => 'string', 'required' => false, 'example' => 'Month', 'title' => ''], + ], + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'You can use the client to generate the token, but you must make sure that the token is unique among different requests.'."\n", 'type' => 'string', 'required' => false, 'example' => 'CBCE910E-D396-4944', 'title' => ''], + ], + [ + 'name' => 'AutoRenew', + 'in' => 'query', + 'schema' => ['description' => 'Whether to enable auto-renewal. Valid values:'."\n" + ."\n" + .'- **false** (**default**): disable auto-renewal.'."\n" + .'- **true**: enable auto-renewal. ', 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], + ], + [ + 'name' => 'AutoRenewDuration', + 'in' => 'query', + 'schema' => ['description' => 'The auto-renewal duration. Unit: months. Valid values: **0** to **2147483647**. Default Value: **1**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'Schema of Response'."\n", 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '4EC47282-1B74-4534-BD0E-403F3EE64CAF', - ], - 'NextToken' => [ - 'description' => 'A pagination token. It can be used in the next request to retrieve a new page of results. Valid values:'."\n" - ."\n" - .'* If **NextToken** is empty, no next page exists.'."\n" - .'* If a value is returned for **NextToken**, the value is used to retrieve a new page of results.'."\n", - 'type' => 'string', - 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', - ], - 'TotalCount' => [ - 'description' => 'The number of entries returned.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1', - ], - 'Count' => [ - 'description' => 'The number of entries.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1', - ], - 'PrefixListAssociation' => [ - 'description' => 'The information about the network instances that are associated with the prefix list.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'PrefixListId' => [ - 'title' => '前缀列表的实例ID', - 'description' => 'The prefix list ID.'."\n", - 'type' => 'string', - 'example' => 'pl-0b7hwu67****', - ], - 'ResourceId' => [ - 'title' => '状态', - 'description' => 'The ID of the associated resource.'."\n", - 'type' => 'string', - 'example' => 'vtb-bp1drpcfz9srr393h****', - ], - 'ResourceType' => [ - 'title' => '名称', - 'description' => 'The type of the associated resource. Valid values:'."\n" - ."\n" - .'* **vpcRouteTable**: virtual private cloud (VPC) route table.'."\n" - .'* **trRouteTable**: route table of a transit router.'."\n", - 'type' => 'string', - 'example' => 'vpcRouteTable', - ], - 'OwnerId' => [ - 'description' => 'The ID of the Alibaba Cloud account to which the prefix list belongs.'."\n", - 'type' => 'string', - 'example' => '153460731706****', - ], - 'Status' => [ - 'title' => 'IpVersion', - 'description' => 'The status of the prefix list. Valid values:'."\n" - ."\n" - .'* **Created**'."\n" - .'* **ModifyFailed**'."\n" - .'* **Creating**'."\n" - .'* **Modifying**'."\n" - .'* **Deleting**'."\n" - .'* **Deleted**'."\n", - 'type' => 'string', - 'example' => 'Success', - ], - 'Reason' => [ - 'description' => 'The reason why the association failed.'."\n", - 'type' => 'string', - 'example' => 'failed', - ], - 'RegionId' => [ - 'description' => 'The region ID of the prefix list.'."\n", - 'type' => 'string', - 'example' => 'cn-hangzhou', - ], - 'ResourceUid' => [ - 'description' => 'The ID of the Alibaba Cloud account to which the resource associated with the prefix list belongs.'."\n", - 'type' => 'string', - 'example' => '132193271328****', - ], - 'CidrList' => [ - 'description' => 'List of CIDR addresses where the prefix list is effective in the currently associated resources.', - 'type' => 'string', - 'example' => '192.168.0.0/16', - ], - ], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '9B9300FE-11E2-4E3B-949C-BED3B44DD26D', 'title' => ''], + 'Data' => [ + 'description' => 'The details.'."\n", + 'type' => 'object', + 'properties' => [ + 'OrderId' => ['description' => 'The ID of the order that is placed.'."\n", 'type' => 'string', 'example' => '50187055895****', 'title' => ''], ], + 'title' => '', + 'example' => '', ], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'IllegalParam.NextToken', - 'errorMessage' => 'The specified NextToken is invalid.', - ], + ['errorCode' => 'IAbs.InvalidStatus.ValueNotSupported', 'errorMessage' => 'status is not supported.', 'description' => 'The status is invalid.'], + ['errorCode' => 'InvalidPrice.NotFound', 'errorMessage' => 'Pricing plan result not found.', 'description' => 'The Price parameter is set to an invalid value.'], + ['errorCode' => 'InvalidPhysicalConnectionChargeType.Malformed', 'errorMessage' => 'Specified Physical Connection ChargeType is not valid.', 'description' => 'The InstanceChargeType parameter is set to an invalid value.'], + ['errorCode' => 'InvalidPhysicalConnectionPeriod.Malformed', 'errorMessage' => 'Specified Physical Connection Period is not valid.', 'description' => 'The Period parameter is set to an invalid value.'], + ['errorCode' => 'InvalidPhysicalConnectionPricingCycle.Malformed', 'errorMessage' => 'Specified Physical Connection PricingCycle is not valid.', 'description' => ''], + ['errorCode' => 'Forbidden.NotAllowedInState', 'errorMessage' => 'The request does not allow in this state.', 'description' => ''], + ['errorCode' => 'INSTANCE.STATUS.NOT.ALLOW', 'errorMessage' => 'Instance status not allow', 'description' => 'The instance in the current state does not support the operation.'], + ['errorCode' => 'Abs.InstanceNotExist', 'errorMessage' => 'The specified instance does not exist.', 'description' => 'The specified instance does not exist.'], + ['errorCode' => 'IncorrectStatus.PhysicalConnection', 'errorMessage' => 'Invalid physical connection status.', 'description' => 'The Express Connect circuit is in an invalid state.'], + ], + 404 => [ + ['errorCode' => 'InvalidRegionId.NotFound', 'errorMessage' => 'The RegionId provided does not exist in our records.', 'description' => ''], + ['errorCode' => 'InvalidPhysicalConnectionId.NotFound', 'errorMessage' => 'The PhysicalConnectionId provided does not exist in our records.', 'description' => ''], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'Create a Resource Occupancy Fee Order ', + 'description' => '> This operation is allowed only for instances whose Express Connect circuit status is **Complete** (waiting for user payment). ', + 'changeSet' => [ + ['createdAt' => '2024-07-29T02:44:51.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-12-21T05:47:23.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2022-10-25T15:10:54.000Z', 'description' => 'Response parameters changed'], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"4EC47282-1B74-4534-BD0E-403F3EE64CAF\\",\\n \\"NextToken\\": \\"FFmyTO70tTpLG6I3FmYAXGKPd****\\",\\n \\"TotalCount\\": 1,\\n \\"Count\\": 1,\\n \\"PrefixListAssociation\\": [\\n {\\n \\"PrefixListId\\": \\"pl-0b7hwu67****\\",\\n \\"ResourceId\\": \\"vtb-bp1drpcfz9srr393h****\\",\\n \\"ResourceType\\": \\"vpcRouteTable\\",\\n \\"OwnerId\\": \\"153460731706****\\",\\n \\"Status\\": \\"Success\\",\\n \\"Reason\\": \\"failed\\",\\n \\"RegionId\\": \\"cn-hangzhou\\",\\n \\"ResourceUid\\": \\"132193271328****\\",\\n \\"CidrList\\": \\"192.168.0.0/16\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\n 4EC47282-1B74-4534-BD0E-403F3EE64CAF\\n FFmyTO70tTpLG6I3FmYAXGKPd****\\n 1\\n 1\\n \\n pl-0b7hwu67****\\n vtb-bp1drpcfz9srr393h****\\n vpcRouteTable\\n 153460731706****\\n Success\\n failed\\n cn-hangzhou\\n 132193271328****\\n \\n","errorExample":""}]', - 'title' => 'GetVpcPrefixListAssociations', + 'ramActions' => [], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"9B9300FE-11E2-4E3B-949C-BED3B44DD26D\\",\\n \\"Data\\": {\\n \\"OrderId\\": \\"50187055895****\\"\\n }\\n}","type":"json"}]', 'translator' => 'machine', ], - 'GetVpcPrefixListEntries' => [ - 'summary' => 'Queries the information about a prefix list.', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'CreatePhysicalConnectionSetupOrder' => [ + 'summary' => 'Creates an order for initial installation of an Express Connect circuit.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'readAndWrite', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'get', - 'riskType' => 'none', - 'chargeType' => 'free', - ], + 'systemTags' => ['operationType' => 'create', 'riskType' => 'none'], 'parameters' => [ [ - 'name' => 'PrefixListId', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the prefix list that you want to query.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'pl-0b7hwu67****', - ], + 'schema' => ['description' => 'The region ID of the Express Connect circuit.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-beijing', 'title' => ''], ], [ - 'name' => 'NextToken', + 'name' => 'AccessPointId', 'in' => 'query', - 'schema' => [ - 'description' => 'The pagination token that is used in the next request to retrieve a new page of results. Valid values:'."\n" - ."\n" - .'* You do not need to specify this parameter for the first request.'."\n" - .'* You must specify the token that is obtained from the previous query as the value of NextToken.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', - ], + 'schema' => ['description' => 'The ID of the access point.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'ap-cn-beijing-ft-A', 'title' => ''], ], [ - 'name' => 'MaxResults', + 'name' => 'LineOperator', 'in' => 'query', - 'schema' => [ - 'description' => 'The number of entries per page. Valid values: **1** to **100**. Default value: **20**.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'maximum' => '100', - 'minimum' => '1', - 'example' => '20', - 'default' => '50', - ], + 'schema' => ['description' => 'The connectivity provider of the Express Connect circuit. Valid values:'."\n" + ."\n" + .'* **CT**: China Telecom'."\n" + .'* **CU**: China Unicom'."\n" + .'* **CM**: China Mobile'."\n" + .'* **CO**: other connectivity providers in the Chinese mainland'."\n" + .'* **Equinix**: Equinix'."\n" + .'* **Other**: other connectivity providers outside the Chinese mainland'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'CT', 'title' => ''], ], [ - 'name' => 'RegionId', + 'name' => 'PortType', 'in' => 'query', - 'schema' => [ - 'title' => '地域', - 'description' => 'The region ID of the prefix list.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The port type of the Express Connect circuit. Valid values:'."\n" + ."\n" + .'* **100Base-T**: 100 Mbit/s copper Ethernet port'."\n" + .'* **1000Base-T** (default): 1,000 Mbit/s copper Ethernet port'."\n" + .'* **1000Base-LX**: 1,000 Mbit/s single-mode optical port (10 km)'."\n" + .'* **10GBase-T**: 10,000 Mbit/s copper Ethernet port'."\n" + .'* **10GBase-LR**: 10,000 Mbit/s single-mode optical port (10 km)'."\n" + .'* **40GBase-LR**: 40,000 Mbit/s single-mode optical port'."\n" + .'* **100GBase-LR**: 100,000 Mbit/s single-mode optical port'."\n" + ."\n" + .'> Whether 40GBase-LR and 100GBase-LR ports can be created depends on resource supplies. For more information, contact your account manager.'."\n", 'type' => 'string', 'required' => false, 'example' => '100Base-T', 'default' => '1000Base-T', 'title' => ''], + ], + [ + 'name' => 'RedundantPhysicalConnectionId', + 'in' => 'query', + 'schema' => ['description' => 'The ID of the redundant physical connection. The redundant physical connection must be in the **Allocated**, **Confirmed**, or **Enabled** state.'."\n", 'type' => 'string', 'required' => false, 'example' => 'pc-bp10zsv5ntp****', 'title' => ''], + ], + [ + 'name' => 'AutoPay', + 'in' => 'query', + 'schema' => ['description' => 'Specifies whether to enable automatic payments. Valid values:'."\n" + ."\n" + .'* **false** (default): disables automatic payment.'."\n" + .'* **true**'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], + ], + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'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.'."\n" + ."\n" + .'> 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.'."\n", 'type' => 'string', 'required' => false, 'example' => '318BB676-0A2B-43A0-9AD8-F1D34E93750F', 'title' => ''], + ], + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'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.'."\n" + ."\n" + .'> 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.'."\n", 'type' => 'string', 'required' => false, 'example' => '318BB676-0A2B-43A0-9AD8-F1D34E93750F', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'Schema of Response'."\n", 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '4EC47282-1B74-4534-BD0E-403F3EE64CAF', - ], - 'NextToken' => [ - 'description' => 'A pagination token. It can be used in the next request to retrieve a new page of results. Valid values:'."\n" - ."\n" - .'* If **NextToken** is empty, no next page exists.'."\n" - .'* If a value is returned for **NextToken**, the value indicates the token that is used for the next request to retrieve a new page of results.'."\n", - 'type' => 'string', - 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', - ], - 'TotalCount' => [ - 'description' => 'The total number of entries returned.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1', - ], - 'Count' => [ - 'description' => 'The number of entries.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1', - ], - 'PrefixListEntry' => [ - 'description' => 'The information about the prefix list.'."\n", - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'PrefixListId' => [ - 'title' => '前缀列表的实例ID', - 'description' => 'The ID of the prefix list.'."\n", - 'type' => 'string', - 'example' => 'pl-0b7hwu67****', - ], - 'Cidr' => [ - 'title' => '状态', - 'description' => 'The CIDR blocks specified in the prefix list.'."\n", - 'type' => 'string', - 'example' => '192.168.0.0/16', - ], - 'Description' => [ - 'title' => '名称', - 'description' => 'The description of the prefix list.'."\n", - 'type' => 'string', - 'example' => 'description', - ], - 'RegionId' => [ - 'description' => 'The region ID of the prefix list.'."\n", - 'type' => 'string', - 'example' => 'cn-hangzhou', - ], - ], - ], - ], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => 'F7A6301A-64BA-41EC-8284-8F4838C15D1F', 'title' => ''], + 'OrderId' => ['description' => 'The order ID.'."\n", 'type' => 'string', 'example' => '202844382740728', 'title' => ''], + 'PhysicalConnectionId' => ['description' => 'The ID of the Express Connect circuit.'."\n", 'type' => 'string', 'example' => 'pc-2zegmc02v7ss4****', 'title' => ''], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'IllegalParam.NextToken', - 'errorMessage' => 'The specified NextToken is invalid.', - ], - [ - 'errorCode' => 'ResourceNotFound.PrefixList', - 'errorMessage' => 'The specified resource of prefixList is not found.', - ], + ['errorCode' => 'InvalidPrice.NotFound', 'errorMessage' => 'Pricing plan result not found.', 'description' => 'The Price parameter is set to an invalid value.'], + ['errorCode' => 'QuotaExceeded.PerAccessPoint', 'errorMessage' => 'Physical connection count per ap quota exceed.', 'description' => ''], + ['errorCode' => 'InvalidPhysicalConnectionOperator.Malformed', 'errorMessage' => 'Specified PhysicalConnection Operator is not valid.', 'description' => 'The operation on the Express Connect circuit is invalid.'], + ['errorCode' => 'InvalidPhysicalConnectionPortType.Malformed', 'errorMessage' => 'Specified PhysicalConnection PortType is not valid.', 'description' => 'The port type of the Express Connect circuit is invalid.'], + ['errorCode' => 'InvalidPortType.NotFound', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'InvalidInstance.NotFound', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'IncorrectStatus.AccessPoint', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'AccessPoint.NotFound', 'errorMessage' => 'The input access point does not exist or does not have permission to view it.', 'description' => 'The input access point does not exist or does not have permission to view it.'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"4EC47282-1B74-4534-BD0E-403F3EE64CAF\\",\\n \\"NextToken\\": \\"FFmyTO70tTpLG6I3FmYAXGKPd****\\",\\n \\"TotalCount\\": 1,\\n \\"Count\\": 1,\\n \\"PrefixListEntry\\": [\\n {\\n \\"PrefixListId\\": \\"pl-0b7hwu67****\\",\\n \\"Cidr\\": \\"192.168.0.0/16\\",\\n \\"Description\\": \\"description\\",\\n \\"RegionId\\": \\"cn-hangzhou\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\n 4EC47282-1B74-4534-BD0E-403F3EE64CAF\\n FFmyTO70tTpLG6I3FmYAXGKPd****\\n 1\\n 1\\n \\n pl-0b7hwu67****\\n 192.168.0.0/16\\n description\\n cn-hangzhou\\n \\n","errorExample":""}]', - 'title' => 'GetVpcPrefixListEntries', + 'title' => 'CreatePhysicalConnectionSetupOrder', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"F7A6301A-64BA-41EC-8284-8F4838C15D1F\\",\\n \\"OrderId\\": \\"202844382740728\\",\\n \\"PhysicalConnectionId\\": \\"pc-2zegmc02v7ss4****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n F7A6301A-64BA-41EC-8284-8F4838C15D1F\\n 202844382740728\\n pc-2zegmc02v7ss4****\\n","errorExample":""}]', ], - 'CreateDhcpOptionsSet' => [ - 'summary' => 'Creates a DHCP options set.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'CreatePublicIpAddressPool' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'readAndWrite', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'create', - 'riskType' => 'none', - 'chargeType' => 'free', - 'autoTest' => true, - 'tenantRelevance' => 'publicInformation', - ], + 'systemTags' => ['operationType' => 'create', 'riskType' => 'none', 'chargeType' => 'paid', 'autoTest' => true, 'tenantRelevance' => 'publicInformation'], 'parameters' => [ [ - 'name' => 'RegionId', + 'name' => 'Isp', 'in' => 'query', - 'schema' => [ - 'description' => 'The region to which the DHCP options set belongs.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The line type. Valid values:'."\n" + ."\n" + .'- **BGP** (default): BGP (multi-ISP) line.'."\n" + ."\n" + .'- **BGP_PRO**: BGP (multi-ISP) premium line.'."\n" + ."\n" + .'For more information about BGP (multi-ISP) lines and BGP (multi-ISP) premium lines, see [EIP line types](~~32321~~).'."\n" + ."\n" + .'- If you are a whitelist user of single-ISP bandwidth, you can also select the following types:'."\n" + .' - **ChinaTelecom**: China Telecom'."\n" + .' - **ChinaUnicom**: China Unicom'."\n" + .' - **ChinaMobile**: China Mobile'."\n" + .' - **ChinaTelecom_L2**: China Telecom L2'."\n" + .' - **ChinaUnicom_L2**: China Unicom L2'."\n" + .' - **ChinaMobile_L2**: China Mobile L2'."\n" + .'- If you are a China (Hangzhou) Finance Cloud user, this parameter is required. Set the value to **BGP_FinanceCloud**.', 'type' => 'string', 'required' => false, 'example' => 'BGP', 'title' => ''], ], [ - 'name' => 'DomainNameServers', + 'name' => 'Name', 'in' => 'query', - 'schema' => [ - 'description' => 'The IP address of the DNS server. You can enter at most four DNS server IP addresses. Separate IP addresses with commas (,).'."\n" - ."\n" - .'> If no IP address is specified, the Elastic Compute Service (ECS) instance uses the IP addresses 100.100.2.136 and 100.100.2.138, which are provided by Alibaba Cloud by default.'."\n", - 'type' => 'string', - 'required' => false, - 'docRequired' => false, - 'example' => '192.XX.XX.123', - ], + 'schema' => ['description' => 'The name of the IP address pool instance.'."\n" + ."\n" + .'The name must be 0 to 128 characters in length and cannot start with `http://` or `https://`.', 'type' => 'string', 'required' => false, 'example' => 'AddressPoolName', 'title' => ''], ], [ - 'name' => 'DhcpOptionsSetName', + 'name' => 'Description', 'in' => 'query', - 'schema' => [ - 'description' => 'The name of the DHCP options set.'."\n" - ."\n" - .'The name must be 1 to 128 characters in length and can contain letters, digits, underscores (\\_), and hyphens (-). It must start with a letter.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'name', - ], + 'schema' => ['description' => 'The description of the IP address pool instance.'."\n" + ."\n" + .'The description must be 0 to 256 characters in length and cannot start with `http://` or `https://`.', 'type' => 'string', 'required' => false, 'example' => 'AddressPoolDescription', 'title' => ''], ], [ - 'name' => 'DhcpOptionsSetDescription', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The description of the DHCP options set.'."\n" - ."\n" - .'The description must be 1 to 256 characters in length. It must start with a letter and cannot start with `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'description', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'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.'."\n" + ."\n" + .'> If you do not specify this parameter, the system automatically uses the **RequestId** of the API request as the **ClientToken**. The **RequestId** may be different for each API request.', 'type' => 'string', 'required' => false, 'example' => '02fb3da4-130e-11****', 'title' => ''], ], [ - 'name' => 'DomainName', + 'name' => 'DryRun', 'in' => 'query', - 'schema' => [ - 'description' => 'The root domain. For example, you can set the value to example.com.'."\n" - ."\n" - .'After a DHCP options set is associated with a virtual private cloud (VPC), the root domain in the DHCP options set is automatically synchronized with the ECS instances in the VPC.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'example.com', - ], + 'schema' => ['description' => 'Specifies whether to perform a dry run. Valid values:'."\n" + .'- **true**: performs a dry run without creating the IP address pool. The system checks the required parameters, request syntax, and business restrictions. If the check fails, the corresponding error is returned. If the check succeeds, the `DryRunOperation` error code is returned.'."\n" + .'- **false** (default): performs a dry run and sends the request. If the check succeeds, an HTTP 2xx status code is returned and the operation is performed.', 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], ], [ 'name' => 'ResourceGroupId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the resource group to which the DHCP options set belongs.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'rg-acfmxazb4ph****', - ], + 'schema' => ['description' => 'The ID of the resource group to which the IP address pool belongs.', 'type' => 'string', 'required' => false, 'example' => 'rg-acfmxazb4pcdvf****', 'title' => ''], ], [ - 'name' => 'Tag', + 'name' => 'RegionId', 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => 'The tag of the resource.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => 'The key of tag N to add to the resource. You can specify up to 20 tag keys. The tag key cannot be an empty string.'."\n" - ."\n" - .'A tag key can be at most 128 characters in length. It cannot start with `aliyun` or `acs:`, and cannot contain `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'FinanceDept', - ], - 'Value' => [ - 'description' => '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.'."\n" - ."\n" - .'The tag value can be up to 128 characters in length, and cannot contain `http://` or `https://`. The tag value cannot start with `aliyun` or `acs:`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'FinanceJoshua', - ], - ], - 'required' => false, - ], - 'required' => false, - 'maxItems' => 21, - ], + 'schema' => ['description' => 'The region ID of the IP address pool that you want to create.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-chengdu', 'title' => ''], ], [ - 'name' => 'ClientToken', + 'name' => 'BizType', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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.'."\n" - ."\n" - .'> 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.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '0c593ea1-3bea-11e9-b96b-88e9fe637760', - ], + 'schema' => ['description' => 'The business type of the IP address pool. Valid values:'."\n" + .'- **CloudBox**: CloudBox. Only CloudBox users can select this type.'."\n" + .'- **Default** (default): indicates a non-special type.', 'type' => 'string', 'required' => false, 'example' => 'Default', 'title' => ''], ], [ - 'name' => 'DryRun', + 'name' => 'Zones', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => 'Specifies whether to perform only a dry run, without performing the actual request.'."\n" - ."\n" - .'**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 dry run, an error message is returned. If the request passes the dry run, the `DryRunOperation` error code is returned.'."\n" - ."\n" - .'**false** (default): performs a dry run and sends the request. If the request passes the dry run, a 2xx HTTP status code is returned and the operation is performed.'."\n", - 'type' => 'boolean', + 'description' => 'The zones of the IP address pool.'."\n" + .'This parameter is required only when **BizType** is set to **CloudBox**, which indicates that the business type of the IP address pool is CloudBox.', + 'type' => 'array', + 'items' => ['description' => 'The zones of the IP address pool.'."\n" + .'This parameter is required only when **BizType** is set to **CloudBox**, which indicates that the business type of the IP address pool is CloudBox.'."\n" + .'Only one zone can be specified.', 'type' => 'string', 'required' => false, 'example' => 'ap-southeast-1-lzdvn-cb', 'title' => ''], 'required' => false, - 'example' => 'false', + 'maxItems' => 10, + 'title' => '', + 'example' => '', ], ], [ - 'name' => 'LeaseTime', + 'name' => 'Tag', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => 'The lease time of the IPv4 addresses for the DHCP options set.'."\n" - ."\n" - .'* If you use hours as the unit, valid values are **24h to 1176h** and **87600h to 175200h**. Default value: **87600h**.'."\n" - .'* If you use days as the unit, valid values are **1d to 49d** and **3650d to 7300d**. Default value: **3650d**.'."\n" - ."\n" - .'> When you enter a value, you must also specify the unit.'."\n", - 'type' => 'string', + 'description' => 'The tags of the resource.', + 'type' => 'array', + 'items' => [ + 'description' => 'The tag.', + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => 'The tag key of the resource. You can specify up to 20 tag keys. The tag key cannot be an empty string.'."\n" + ."\n" + .'The tag key can be up to 128 characters in length and cannot start with `aliyun` or `acs:`. It cannot contain `http://` or `https://`.', 'type' => 'string', 'required' => false, 'example' => 'FinanceDept', 'title' => ''], + 'Value' => ['description' => 'The tag value of the resource. You can specify up to 20 tag values. The tag value can be an empty string.'."\n" + ."\n" + .'The tag value can be up to 128 characters in length and cannot start with `aliyun` or `acs:`. It cannot contain `http://` or `https://`.', 'type' => 'string', 'required' => false, 'example' => 'FinanceJoshua', 'title' => ''], + ], + 'required' => false, + 'title' => '', + 'example' => '', + ], 'required' => false, - 'example' => '3650d', + 'maxItems' => 21, + 'title' => '', + 'example' => '', ], ], [ - 'name' => 'Ipv6LeaseTime', + 'name' => 'SecurityProtectionTypes', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => 'The lease time of the IPv6 addresses for the DHCP options set.'."\n" + 'description' => 'The security protection level.'."\n" ."\n" - .'* If you use hours as the unit, valid values are **24h to 1176h** and **87600h to 175200h**. Default value: **87600h**.'."\n" - .'* If you use days as the unit, valid values are **1d to 49d** and **3650d to 7300d**. Default value: **3650d**.'."\n" + .'- If this parameter is left empty, DDoS Protection (Basic) is used by default.'."\n" ."\n" - .'> When you enter a value, you must also specify the unit.'."\n", - 'type' => 'string', + .'- If this parameter is set to **AntiDDoS_Enhanced**, DDoS Protection (Enhanced) is used.', + 'type' => 'array', + 'items' => ['description' => 'The security protection level.'."\n" + ."\n" + .'- If this parameter is left empty, DDoS Protection (Basic) is used by default.'."\n" + ."\n" + .'- If this parameter is set to **AntiDDoS_Enhanced**, DDoS Protection (Enhanced) is used.', 'type' => 'string', 'required' => false, 'example' => 'AntiDDoS_Enhanced', 'title' => ''], 'required' => false, - 'example' => '3650d', + 'maxItems' => 100, + 'title' => '', + 'example' => '', ], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => 'The ID of the DHCP options set that is created.'."\n", + 'description' => 'The response struct.', 'type' => 'object', 'properties' => [ - 'DhcpOptionsSetId' => [ - 'description' => 'The ID of the DHCP options set that is created.'."\n", - 'type' => 'string', - 'example' => 'dopt-o6w0df4epg9zo8isy****', - ], - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '0ED8D006-F706-4D23-88ED-E11ED28DCAC0', - ], - 'ResourceGroupId' => [ - 'description' => 'The ID of the resource group to which the DHCP options set belongs.'."\n", - 'type' => 'string', - 'example' => 'rg-acfmxazb4ph****', - ], + 'PulbicIpAddressPoolId' => ['description' => 'The instance ID of the IPAM pool.', 'type' => 'string', 'deprecated' => true, 'example' => 'pippool-6wetvn6fumkgycssx****', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '4EC47282-1B74-4534-BD0E-403F3EE64CAF', 'title' => ''], + 'ResourceGroupId' => ['description' => 'The ID of the resource group to which the IP address pool belongs.', 'type' => 'string', 'example' => 'rg-acfmxazb4pcdvf****', 'title' => ''], + 'PublicIpAddressPoolId' => ['description' => 'The instance ID of the IPAM pool.', 'type' => 'string', 'example' => 'pippool-6wetvn6fumkgycssx****', 'title' => ''], ], + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'OperationUnsupported.DhcpOptionsSet', - 'errorMessage' => 'The DHCP options set feature in this region is not supported.', - ], - [ - 'errorCode' => 'InvalidDomainNameServers.Malformed', - 'errorMessage' => 'The specified format of DomainNameServers is invalid.', - ], - [ - 'errorCode' => 'QuotaExceeded.DomainNameServers', - 'errorMessage' => 'The maximum number of domain name servers cannot exceed 4.', - ], - [ - 'errorCode' => 'IllegalParam.DomainNameServers', - 'errorMessage' => 'The specified DomainNameServers is invalid.', - ], - [ - 'errorCode' => 'IllegalParam.DomainName', - 'errorMessage' => 'The specified DomainName is invalid.', - ], - [ - 'errorCode' => 'IllegalParam.DhcpOptionsSetName', - 'errorMessage' => 'The specified DhcpOptionsSetName is invalid.', - ], - [ - 'errorCode' => 'IllegalParam.DhcpOptionsSetDescription', - 'errorMessage' => 'The specified DhcpOptionsSetDescription is invalid.', - ], - [ - 'errorCode' => 'QuotaExceeded.RegionDhcpOptionsSet', - 'errorMessage' => 'The quota of dhcpOptionsSet in the region is exceeded.', - ], - [ - 'errorCode' => 'OperationUnsupported.DhcpLeaseTime', - 'errorMessage' => 'The DhcpOptionsSet of this region does not support custom LeaseTime.', - ], - [ - 'errorCode' => 'IllegalParam.LeaseTime', - 'errorMessage' => 'LeaseTime [%s] is illegal.', - ], - [ - 'errorCode' => 'InvalidRegionId.NotFound', - 'errorMessage' => 'The specified RegionId does not exist.', - ], - ], - ], - 'staticInfo' => [ - 'returnType' => 'asynchronous', - 'callback' => 'Vpc::2016-04-28::GetDhcpOptionsSet', - 'callbackInterval' => 3000, - 'maxCallbackTimes' => 10, - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"DhcpOptionsSetId\\": \\"dopt-o6w0df4epg9zo8isy****\\",\\n \\"RequestId\\": \\"0ED8D006-F706-4D23-88ED-E11ED28DCAC0\\",\\n \\"ResourceGroupId\\": \\"rg-acfmxazb4ph****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n dopt-o6w0df4epg9zo8isy****\\n 0ED8D006-F706-4D23-88ED-E11ED28DCAC0\\n rg-acfmxazb4ph****\\n","errorExample":""}]', - 'title' => 'CreateDhcpOptionsSet', - 'description' => '* **CreateDhcpOptionsSet** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call [GetDhcpOptionsSet](~~448820~~) to query the status of the task.'."\n" - ."\n" - .' * If the vSwitch is in the **Pending** state, the DHCP options set is being configured.'."\n" - .' * If the vSwitch is in the **Available** state, the DHCP options set is available.'."\n", - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', + ['errorCode' => 'IllegalParam.Isp', 'errorMessage' => 'The param of Isp [%s] is illegal.', 'description' => 'The error message returned because the Isp parameter is set to an invalid value. Specify a valid value and try again.'], + ['errorCode' => 'IllegalParam.Name', 'errorMessage' => 'The param of Name [%s] is illegal.', 'description' => 'The error message returned because the Name parameter is set to an invalid value. Specify a valid value and try again.'], + ['errorCode' => 'IllegalParam.Description', 'errorMessage' => 'The param of Description [%s] is illegal.', 'description' => 'The error message returned because the Description parameter is set to an invalid value. Specify a valid values and try again.'], + ['errorCode' => 'Forbidden.CreatePublicIpAddressPool', 'errorMessage' => 'Authentication is failed for creating public ip address pool.', 'description' => 'The error message returned because you cannot create an IP address pool. Check whether you have the relevant permissions.'], + ['errorCode' => 'QuotaExceeded.PublicIpAddressPool', 'errorMessage' => 'The quota of PublicIpAddressPool is exceeded.', 'description' => 'The error message returned because the number of your IP address pools has reached the upper limit. Request a quota increase.'], + ['errorCode' => 'MissingParam.Zones', 'errorMessage' => 'The Zones parameter is required.', 'description' => 'Zones is required.'], + ['errorCode' => 'IllegalParam.Zones', 'errorMessage' => 'The values of Zones [%s] are invalid.', 'description' => 'Zones is set to an invalid value.'], + ['errorCode' => 'IllegalParamSize.Zones', 'errorMessage' => 'An invalid number of zones is specified.', 'description' => 'Zones is set to an invalid value.'], + ['errorCode' => 'UnsupportedFeature.Isp', 'errorMessage' => 'The feature of Isp is not supported.', 'description' => 'The ISP you specified is not currently supported.'], + ['errorCode' => 'OperationDenied.ISPNotSupportDdosEnhanced', 'errorMessage' => 'The operation is not allowed because of DdosEnhanced is not supported by current isp.', 'description' => 'The current ISP does not support the creation of an enhanced security protection address pool.'], + ['errorCode' => 'IllegalParam.SecurityProtectionTypes', 'errorMessage' => 'The param of securityProtectionTypes is illegal.', 'description' => 'The passed-in SecurityProtectionTypes parameter is invalid.'], + ['errorCode' => 'IncorrectBusinessStatus.PublicIpAddressPool', 'errorMessage' => 'The business status of publicIpAddressPool is incorrect.', 'description' => 'The current service status does not support creating an IP address pool instance.'], + ['errorCode' => 'OptInRequired.PublicIpAddressPool', 'errorMessage' => 'You are not authorized to use the requested service of publicIpAddressPool. Ensure that you have subscribed to the service you are trying to use.', 'description' => 'You are not authorized to use the requested IP address pool service. Make sure you have subscribed to the service you are trying to use.'], + ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'Create an IP address pool', + 'summary' => 'Creates an IP address pool by calling the CreatePublicIpAddressPool operation.', + 'description' => 'The IP address pool feature is not available by default. To use this feature, apply for the **IP address pool feature** privilege quota in Quota Center. For more information, see [Increase a quota in Quota Center](~~108213~~).', + 'changeSet' => [ + ['createdAt' => '2024-05-27T11:37:27.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-03-04T09:27:27.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2024-01-22T09:35:54.000Z', 'description' => 'Error codes changed, Request parameters changed'], + ['createdAt' => '2023-12-08T08:53:53.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-08-08T02:41:57.000Z', 'description' => 'Error codes changed, Request parameters changed'], + ['createdAt' => '2023-07-10T02:02:25.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2023-01-06T09:40:58.000Z', 'description' => 'Request parameters changed, Response parameters changed'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CreatePublicIpAddressPool'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], + ], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'vpc:CreatePublicIpAddressPool', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'PublicIpAddressPool', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:publicipaddresspool/*'], + ], + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"PulbicIpAddressPoolId\\": \\"pippool-6wetvn6fumkgycssx****\\",\\n \\"RequestId\\": \\"4EC47282-1B74-4534-BD0E-403F3EE64CAF\\",\\n \\"ResourceGroupId\\": \\"rg-acfmxazb4pcdvf****\\",\\n \\"PublicIpAddressPoolId\\": \\"pippool-6wetvn6fumkgycssx****\\"\\n}","type":"json"}]', ], - 'DeleteDhcpOptionsSet' => [ - 'summary' => 'Deletes a DHCP options set.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'CreateRouteEntries' => [ + 'summary' => 'Adds custom routes in a batch to the route table of a VPC router.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'read', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'delete', - 'riskType' => 'none', - 'chargeType' => 'free', - ], + 'systemTags' => ['operationType' => 'create', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The region of the DHCP options set to be deleted. You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The ID of the region where the route table is located.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'DhcpOptionsSetId', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the DHCP options set to be deleted.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'dopt-o6w0df4epg9zo8isy****', - ], + 'schema' => ['description' => 'The ID of the region where the route table is located.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'ClientToken', + 'name' => 'RouteEntries', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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.'."\n" - ."\n" - .'> 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.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '0c593ea1-3bea-11e9-b96b-88e9fe637760', + 'description' => 'The list of route information.', + 'type' => 'array', + 'items' => [ + 'description' => 'The list of route information.', + 'type' => 'object', + 'properties' => [ + 'DstCidrBlock' => ['description' => 'The destination CIDR block of the custom route. Both IPv4 and IPv6 CIDR blocks are supported. You can specify up to 50 destination CIDR blocks. The destination CIDR blocks must meet the following requirements:'."\n" + ."\n" + .'- The destination CIDR block cannot point to 100.64.0.0/10 or be a subset of 100.64.0.0/10.'."\n" + ."\n" + .'- The destination CIDR blocks of different routes in the same route table cannot be the same.', 'type' => 'string', 'required' => true, 'example' => '192.168.0.0/24', 'title' => ''], + 'RouteTableId' => ['description' => 'The ID of the route table to which you want to add custom routes. You can specify up to 50 route table IDs.', 'type' => 'string', 'required' => true, 'example' => 'vtb-bp145q7glnuzd****', 'title' => ''], + 'IpVersion' => ['description' => 'The IP protocol version. You can specify up to 50 IP protocol versions. Valid values:'."\n" + ."\n" + .'- **4**: IPv4.'."\n" + ."\n" + .'- **6**: IPv6.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '4', 'title' => ''], + 'NextHop' => ['description' => 'The ID of the next hop instance for the custom route. You can specify up to 50 instance IDs.'."\n" + ."\n" + .'> If you set NextHopType to Ecr, call the [DescribeExpressConnectRouterAssociation](~~2712069~~) operation to obtain the AssociationId and use it as the next hop ID.', 'type' => 'string', 'required' => true, 'example' => 'i-j6c2fp57q8rr4jlu****', 'title' => ''], + 'NextHopType' => ['description' => 'The type of the next hop for the custom route. You can specify up to 50 next hop types. Valid values:'."\n" + ."\n" + .'- **Instance** (default): an ECS instance.'."\n" + ."\n" + .'- **HaVip**: a high-availability virtual IP address (HAVIP).'."\n" + ."\n" + .'- **RouterInterface**: a router interface.'."\n" + ."\n" + .'- **NetworkInterface**: an elastic network interface (ENI).'."\n" + ."\n" + .'- **VpnGateway**: a VPN Gateway.'."\n" + ."\n" + .'- **IPv6Gateway**: an IPv6 Gateway.'."\n" + ."\n" + .'- **NatGateway**: a NAT Gateway.'."\n" + ."\n" + .'- **Attachment**: a transit router.'."\n" + ."\n" + .'- **VpcPeer**: a VPC peering connection.'."\n" + ."\n" + .'- **Ipv4Gateway**: an IPv4 gateway.'."\n" + ."\n" + .'- **GatewayEndpoint**: a gateway endpoint.'."\n" + ."\n" + .'- **CenBasic**: CEN does not support transit routers.'."\n" + ."\n" + .'- **Ecr**: an Express Connect Router (ECR).'."\n" + ."\n" + .'- **GatewayLoadBalancerEndpoint**: a Gateway Load Balancer endpoint (GWLBe).', 'type' => 'string', 'required' => true, 'example' => 'RouterInterface', 'title' => ''], + 'Name' => ['description' => 'The name of the custom route that you want to add. You can specify up to 50 names.'."\n" + ."\n" + .'The name must be 1 to 128 characters in length and cannot start with `http://` or `https://`.', 'type' => 'string', 'required' => false, 'example' => 'test', 'title' => ''], + 'Description' => ['description' => 'The description of the custom route. You can specify up to 50 descriptions.'."\n" + ."\n" + .'The description must be 1 to 256 characters in length and cannot start with `http://` or `https://`.', 'type' => 'string', 'required' => false, 'example' => 'test', 'title' => ''], + ], + 'required' => false, + 'title' => '', + 'example' => '', + ], + 'required' => true, + 'maxItems' => 200, + 'title' => '', + 'example' => '', ], ], [ 'name' => 'DryRun', 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values:'."\n" - ."\n" - .'**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.'."\n" - ."\n" - .'**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.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['description' => 'Specifies whether to perform a dry run. Valid values:'."\n" + ."\n" + .'**true**: Sends a request to check whether the request is valid. The system checks whether your AccessKey is valid, whether the RAM user is authorized, and whether the required parameters are specified. If the request fails the check, an error message is returned. If the request passes the check, the `DryRunOperation` error code is returned.'."\n" + ."\n" + .'**false** (default): Sends a normal request. After the request passes the check, a 2xx HTTP status code is returned and the routes are created.', 'type' => 'boolean', 'required' => false, 'title' => '', 'example' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'description' => 'The number of successful tasks.', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '0ED8D006-F706-4D23-88ED-E11ED28DCAC0', + 'SuccessCount' => ['description' => 'The number of custom routes that are successfully added.', 'type' => 'integer', 'format' => 'int32', 'example' => '2', 'title' => ''], + 'FailedCount' => ['description' => 'The number of custom routes that failed to be added.', 'type' => 'integer', 'format' => 'int32', 'example' => '2', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '0ED8D006-F706-4D23-88ED-E11ED28DCAC0', 'title' => ''], + 'FailedRouteEntries' => [ + 'description' => 'The details about the custom routes that failed to be added.', + 'type' => 'array', + 'items' => [ + 'description' => 'The details about the custom routes that failed to be added.', + 'type' => 'object', + 'properties' => [ + 'DstCidrBlock' => ['description' => 'The destination CIDR block of the custom route that failed to be added.', 'type' => 'string', 'example' => '192.168.0.0/24', 'title' => ''], + 'NextHop' => ['description' => 'The ID of the next hop of the custom route that failed to be added.', 'type' => 'string', 'example' => 'i-j6c2fp57q8rr4jlu****', 'title' => ''], + 'FailedCode' => ['description' => 'The error code.', 'type' => 'string', 'example' => 'VPC_ROUTE_ENTRY_CIDR_BLOCK_DUPLICATE', 'title' => ''], + 'FailedMessage' => ['description' => 'The error message.', 'type' => 'string', 'example' => 'Specified CIDR block is already exists, entry.cidrBlock=xxxx', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + 'RouteEntryIds' => [ + 'description' => 'The information about the IDs of the custom routes that are successfully added.', + 'type' => 'array', + 'items' => ['description' => 'The ID of the custom route that is successfully added.', 'type' => 'string', 'example' => 'rte-sn6vjkioxte1gz83z****', 'title' => ''], + 'title' => '', + 'example' => '', ], ], - 'description' => '', + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'IncorrectStatus.DhcpOptionsSet', - 'errorMessage' => 'The DhcpOptionsSet status does not support this operation.', - ], - [ - 'errorCode' => 'OperationUnsupported.DhcpOptionsSet', - 'errorMessage' => 'The DHCP options set feature in this region is not supported.', - ], - [ - 'errorCode' => 'DependencyViolation.VpcAttachment', - 'errorMessage' => 'DhcpOptionsSet cannot be deleted when it is attached to VPC.', - ], - [ - 'errorCode' => 'InvalidDhcpOptionsSetId.NotFound', - 'errorMessage' => 'The specified dhcpOptionsSetId does not exist.', - ], - [ - 'errorCode' => 'MissingParam.DhcpOptionsSetId', - 'errorMessage' => 'Missing parameter DhcpOptionsSetId.', - ], - [ - 'errorCode' => 'InvalidRegionId.NotFound', - 'errorMessage' => 'The specified RegionId does not exist.', - ], + ['errorCode' => 'DryRunOperation', 'errorMessage' => 'Request validation has been passed with DryRun flag set.', 'description' => 'The request passed the dry run.'], + ['errorCode' => 'InvalidCIDRBlock.Duplicate', 'errorMessage' => 'Specified CIDR block is already exists.', 'description' => ''], + ['errorCode' => 'MissingParam.RouteTableId', 'errorMessage' => 'The parameter RouteTableId is missing.', 'description' => ''], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"0ED8D006-F706-4D23-88ED-E11ED28DCAC0\\"\\n}","errorExample":""},{"type":"xml","example":"\\r\\n 8B2F5262-6B57-43F2-97C4-971425462DFE\\r\\n","errorExample":""}]', - 'title' => 'DeleteDhcpOptionsSet', - 'description' => '## [](#)Description'."\n" + 'staticInfo' => ['returnType' => 'asynchronous', 'callback' => 'Vpc::2016-04-28::DescribeRouteEntryList', 'callbackInterval' => 3, 'maxCallbackTimes' => 5], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"SuccessCount\\": 2,\\n \\"FailedCount\\": 2,\\n \\"RequestId\\": \\"0ED8D006-F706-4D23-88ED-E11ED28DCAC0\\",\\n \\"FailedRouteEntries\\": [\\n {\\n \\"DstCidrBlock\\": \\"192.168.0.0/24\\",\\n \\"NextHop\\": \\"i-j6c2fp57q8rr4jlu****\\",\\n \\"FailedCode\\": \\"VPC_ROUTE_ENTRY_CIDR_BLOCK_DUPLICATE\\",\\n \\"FailedMessage\\": \\"Specified CIDR block is already exists, entry.cidrBlock=xxxx\\"\\n }\\n ],\\n \\"RouteEntryIds\\": [\\n \\"rte-sn6vjkioxte1gz83z****\\"\\n ]\\n}","type":"json"}]', + 'title' => 'CreateRouteEntries', + 'description' => '- **CreateRouteEntries** is an asynchronous operation. After you send a request, the system returns a request ID, but the operation is still being performed in the background. You can call [DescribeRouteEntryList](~~138148~~) to query the status of a route:'."\n" ."\n" - .'* **DeleteDhcpOptionsSet** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call the [GetDhcpOptionsSet](~~189208~~) operation to query the status of the task.'."\n" + .' - If a route is in the **Creating** state, the route is being created.'."\n" ."\n" - .' * If the DHCP options set is in the **Deleting** state, the DHCP options set is being deleted.'."\n" - .' * If you cannot query the DHCP options set, the DHCP options set is deleted.'."\n" + .' - If a route is in the **Created** state, the route is created.'."\n" ."\n" - .'* You cannot repeatedly call the **DeleteDhcpOptionsSet** operation to delete a DHCP options set within the specified period of time.'."\n", - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'AttachDhcpOptionsSetToVpc' => [ - 'summary' => 'Associates a DHCP options set with a virtual private cloud (VPC).', - 'methods' => [ - 'post', - 'get', + .'- **CreateRouteEntries** does not support concurrent batch operations to add custom routes to the same VPC.'."\n" + ."\n" + .'**Note the following when you add custom routes to the route table of a VPC router:**'."\n" + ."\n" + .'- A route table can contain a maximum of 200 custom routes.'."\n" + ."\n" + .'- The destination CIDR block (**DstCidrBlock**) of a custom route cannot be the same as, overlap with, or be a subset of the CIDR block of a vSwitch in the VPC.'."\n" + ."\n" + .'- The destination CIDR block (**DstCidrBlock**) of a custom route cannot be 100.64.0.0/10 or a subset of 100.64.0.0/10.'."\n" + ."\n" + .'- The destination CIDR blocks (**DstCidrBlock**) of routes in the same route table cannot be the same.'."\n" + ."\n" + .'- An IP address specified as the destination CIDR block (**DstCidrBlock**) is processed with a 32-bit subnet mask.'."\n" + ."\n" + .'- Multiple custom routes can point to the same next hop (**NextHop**).'."\n" + ."\n" + .'- The next hop (**NextHop**) of a custom route must be in the same VPC as the route table.', + 'changeSet' => [ + ['createdAt' => '2025-05-19T01:45:15.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2025-02-10T06:07:08.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2023-03-30T06:20:23.000Z', 'description' => 'Request parameters changed, Response parameters changed'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CreateRouteEntries'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'vpc:CreateRouteEntries', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'RouteEntry', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:routetable/{#RouteTableId}'], + ], + ], + ], ], + ], + 'CreateRouteEntry' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'readAndWrite', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'update', + 'operationType' => 'create', 'riskType' => 'none', 'chargeType' => 'free', + 'abilityTreeCode' => '37635', + 'abilityTreeNodes' => ['FEATUREvpcJSBF65'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The region to which the DHCP options set belongs. You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The region ID of the route table.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the region ID.', 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'DhcpOptionsSetId', + 'name' => 'RouteTableId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the DHCP options set.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'dopt-o6w0df4epg9zo8isy****', - ], + 'schema' => ['description' => 'The ID of the route table to which you want to add a custom route entry.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'vtb-bp145q7glnuzd****', 'title' => ''], ], [ - 'name' => 'VpcId', + 'name' => 'DestinationCidrBlock', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the VPC to be associated with the DHCP options set.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'vpc-sfdkfdjkdf****', - ], + 'schema' => ['description' => 'The destination CIDR block of the custom route entry. IPv4 CIDR blocks, IPv6 CIDR blocks, destination CIDR blocks of prefix lists, and instance IDs of prefix lists are supported. The following requirements must be met:'."\n" + .' '."\n" + .'- The destination CIDR block cannot point to or be contained by 100.64.0.0/10. '."\n" + .' '."\n" + .'- The destination CIDR blocks of different route entries in the same route table must be unique.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '192.168.0.0/24', 'title' => ''], + ], + [ + 'name' => 'NextHopId', + 'in' => 'query', + 'schema' => ['description' => 'The ID of the next hop instance of the custom route entry.'."\n" + .'> If you set NextHopType to ECR, you can call the [DescribeExpressConnectRouterAssociation](~~2712069~~) operation to obtain the AssociationId as the next hop ID.'."\n" + .'> -.', 'type' => 'string', 'required' => false, 'example' => 'i-j6c2fp57q8rr4jlu****', 'title' => ''], ], [ 'name' => 'ClientToken', 'in' => 'query', + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'Generate a parameter value from your client. Make sure that the value is unique among different requests. The ClientToken value can contain only ASCII characters.'."\n" + ."\n" + .'> If you do not specify this parameter, the system uses the **RequestId** of the API request as the **ClientToken**. The **RequestId** may be different for each API request.', 'type' => 'string', 'required' => false, 'example' => '02fb3da4-130e-11e9-8e44-001****', 'title' => ''], + ], + [ + 'name' => 'RouteEntryName', + 'in' => 'query', + 'schema' => ['description' => 'The name of the custom route entry to add.'."\n" + ."\n" + .'The name must be 1 to 128 characters in length and cannot start with `http://` or `https://`.', 'type' => 'string', 'required' => false, 'example' => 'test', 'title' => ''], + ], + [ + 'name' => 'Description', + 'in' => 'query', + 'schema' => ['description' => 'The description of the custom route entry.'."\n" + ."\n" + .'The description must be 1 to 256 characters in length and cannot start with `http://` or `https://`.', 'type' => 'string', 'required' => false, 'example' => 'test', 'title' => ''], + ], + [ + 'name' => 'NextHopType', + 'in' => 'query', 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + 'description' => 'The type of next hop of the custom route entry. Valid values: '."\n" ."\n" - .'You can use the client to generate the value, but you must make sure that it is unique among different requests. The client token can contain only ASCII characters.'."\n" + .'- **Instance** (default): ECS instance.'."\n" ."\n" - .'> If you do not set this parameter, the system uses **RequestId** as **ClientToken**. **RequestId** may be different for each API request.'."\n", + .'- **HaVip**: high-availability virtual IP address. '."\n" + ."\n" + .'- **RouterInterface**: vRouter interface.'."\n" + ."\n" + .'- **NetworkInterface**: network interface controller (NIC).'."\n" + ."\n" + .'- **VpnGateway**: VPN gateway.'."\n" + ."\n" + .'- **IPv6Gateway**: IPv6 gateway.'."\n" + ."\n" + .'- **NatGateway**: NAT gateway.'."\n" + ."\n" + .'- **Attachment**: transit router.'."\n" + ."\n" + .'- **VpcPeer**: VPC peering connection.'."\n" + .'- **Ipv4Gateway**: IPv4 gateway.'."\n" + .'- **GatewayEndpoint**: gateway endpoint.'."\n" + .'- **Ecr**: Express Connect Router (ECR).'."\n" + .'- **GatewayLoadBalancerEndpoint**: Gateway Load Balancer endpoint (GWLBe).', + 'enumValueTitles' => [ + 'HaVip' => 'HaVip', 'VpnGateway' => 'VpnGateway', 'GatewayLoadBalancerEndpoint' => 'GatewayLoadBalancerEndpoint', 'VpcPeer' => 'VpcPeer', 'Instance' => 'Instance', 'NetworkInterface' => 'NetworkInterface', 'NatGateway' => 'NatGateway', 'Attachment' => 'Attachment', 'Ipv4Gateway' => 'Ipv4Gateway', 'GatewayEndpoint' => 'GatewayEndpoint', + 'Ecr' => 'Ecr', 'RouterInterface' => 'RouterInterface', 'IPv6Gateway' => 'IPv6Gateway', + ], 'type' => 'string', 'required' => false, - 'example' => '0c593ea1-3bea-11e9-b96b-88e9fe637760', + 'example' => 'RouterInterface', + 'title' => '', ], ], [ - 'name' => 'DryRun', + 'name' => 'NextHopList', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => 'Specifies whether to check the request without performing the operation. Valid values:'."\n" - ."\n" - .'**true**: checks the request without performing the operation. The system checks whether your AccessKey pair is valid, whether the Resource Access Management (RAM) user is authorized, and whether the required parameters are set. If the request fails to pass the check, the corresponding error message is returned. If the request passes the check, the `DryRunOperation` error code is returned.'."\n" - ."\n" - .'**false** (default): sends the request. If the request passes the check, a 2XX HTTP status code is returned and the operation is performed.'."\n", - 'type' => 'boolean', + 'description' => 'The information about the next hops.', + 'type' => 'array', + 'items' => [ + 'description' => 'The information about the next hops.', + 'type' => 'object', + 'properties' => [ + 'NextHopId' => ['description' => 'The ID of the next hop instance of the ECMP route.', 'type' => 'string', 'required' => false, 'example' => 'ri-2zeo3xzyf3cd8r4****', 'title' => ''], + 'Weight' => ['description' => 'The weight of the next hop of the ECMP route.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '10', 'title' => ''], + 'NextHopType' => ['description' => 'The type of next hop of the ECMP route. Valid value: **RouterInterface** (router interface).', 'type' => 'string', 'required' => false, 'example' => 'RouterInterface', 'title' => ''], + ], + 'required' => false, + 'title' => '', + 'example' => '', + ], 'required' => false, - 'example' => 'false', + 'maxItems' => 16, + 'title' => '', + 'example' => '', ], ], + [ + 'name' => 'DryRun', + 'in' => 'query', + 'schema' => ['description' => 'Specifies whether to perform a dry run. Valid values:'."\n" + .'- **true**: performs a dry run. The system checks the required parameters, request format, and business restrictions. If the request fails the dry run, the corresponding error is returned. If the request passes the dry run, the `DryRunOperation` error code is returned.'."\n" + .'- **false** (default): sends a normal request, passes the dry run, and returns an HTTP 2xx status code. The route is directly created.', 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], + ], ], 'responses' => [ 200 => [ 'schema' => [ + 'description' => 'The ID of the custom route entry.', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => '0ED8D006-F706-4D23-88ED-E11ED28DCAC0', - ], + 'RouteEntryId' => ['description' => 'The ID of the custom route entry.', 'type' => 'string', 'example' => 'rte-sn6vjkioxte1gz83z****', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '0ED8D006-F706-4D23-88ED-E11ED28DCAC0', 'title' => ''], ], + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'Forbidden.OperateShareResource', - 'errorMessage' => 'You cannot operate shared resources.', - ], - [ - 'errorCode' => 'InvalidDhcpOptionsSetId.NotFound', - 'errorMessage' => 'The specified dhcpOptionsSetId does not exist.', - ], - [ - 'errorCode' => 'IncorrectStatus.DhcpOptionsSet', - 'errorMessage' => 'The DhcpOptionsSet status does not support this operation.', - ], - [ - 'errorCode' => 'InvalidVpcId.NotFound', - 'errorMessage' => 'Specified value of VpcId is not found in our record.', - ], - [ - 'errorCode' => 'IncorrectStatus.VpcDhcpOptionsSet', - 'errorMessage' => 'The dhcpOptionsSet status of VPC does not support this operation.', - ], - [ - 'errorCode' => 'OperationFailed.AttachmentExist', - 'errorMessage' => 'The current VPC is already attached to a DHCP options set.', - ], - [ - 'errorCode' => 'QuotaExceeded.AttachVpcNumber', - 'errorMessage' => 'The maximum number of VPCs that can be attached to a DHCP options set is exceeded.', - ], - [ - 'errorCode' => 'TaskConflict', - 'errorMessage' => 'The operation is too frequent. Please wait a moment and try again.', - ], - [ - 'errorCode' => 'MissingParam.VpcId', - 'errorMessage' => 'You must specify VpcId.', - ], - [ - 'errorCode' => 'MissingParam.DhcpOptionsSetId', - 'errorMessage' => 'Missing parameter DhcpOptionsSetId.', - ], - [ - 'errorCode' => 'InvalidRegionId.NotFound', - 'errorMessage' => 'The specified RegionId does not exist.', - ], + ['errorCode' => 'IllegalParam.CidrBlock', 'errorMessage' => 'The specified CidrBlock is illegal.', 'description' => 'The operation failed because CidrBlock is set to an invalid value.'], + ['errorCode' => 'QuotaExceeded', 'errorMessage' => 'Route entry quota exceeded in this route table.', 'description' => ''], + ['errorCode' => 'MissingParameter', 'errorMessage' => 'Miss mandatory parameter.', 'description' => ''], + ['errorCode' => 'InvalidCidrBlock.Malformed', 'errorMessage' => 'Specified CIDR block is not valid.', 'description' => ''], + ['errorCode' => 'InvalidCIDRBlock.Duplicate', 'errorMessage' => 'Specified CIDR block is already exists.', 'description' => ''], + ['errorCode' => 'IncorrectVpcStatus', 'errorMessage' => 'Current VPC status does not support this operation.', 'description' => ''], + ['errorCode' => 'IncorrectInstanceStatus', 'errorMessage' => 'Current instance status does not support this operation.', 'description' => ''], + ['errorCode' => 'IncorrectRouteEntryStatus', 'errorMessage' => 'Some route entry status blocked this operation.', 'description' => ''], + ['errorCode' => 'IncorrectVSwitchStatus', 'errorMessage' => 'The current virtual switch status does not support this operation.', 'description' => 'The error message returned because the vSwitch is in the Pending state and cannot be deleted.'], + ['errorCode' => 'InvalidCidrBlock', 'errorMessage' => 'Specified CIDR block is not valid.', 'description' => 'Possible reasons for error reporting:'."\n" + .'1. You are not in the whitelist of the 10.0.0.0/8 CIDR block and cannot use this CIDR block.'."\n" + .'2. The target CIDR block of the added custom route cannot belong to the CIDR block of all vSwitches under the same VPC.'."\n" + .'3. Because 100.64.0.0/10 is a cloud service address, you cannot add this CIDR block to point to the IDC under the cloud.'."\n" + .'4. Except for 100.64.0.0/10, the detailed route network segments such as 100.64.0.0/11 and 100.96.0.0/11 cannot be used in the IDC under the cloud.'], + ['errorCode' => 'InvalidNextHop.NotFound', 'errorMessage' => 'Specified next hop does not exist.', 'description' => ''], + ['errorCode' => 'InvalidVRouter.NotFound', 'errorMessage' => 'vRouter not exists.', 'description' => ''], + ['errorCode' => 'InvalidVPC.NotFound', 'errorMessage' => 'vpc not exists.', 'description' => ''], + ['errorCode' => 'InvalidNexthopTypeAndList.BothNull', 'errorMessage' => 'both nexthopType and nextHopList are null.', 'description' => ''], + ['errorCode' => 'InvalidNexthopTypeAndList.BothNotNull', 'errorMessage' => 'both nexthopType and nextHopList are not null.', 'description' => ''], + ['errorCode' => 'InvalidRouterInterface', 'errorMessage' => 'invalid router interface.', 'description' => ''], + ['errorCode' => 'InvalidOppositeRouterType', 'errorMessage' => 'nexthop list cannot only contain router interface whose opposite router interface is on vbr.', 'description' => ''], + ['errorCode' => 'InvalidNexthopListSize', 'errorMessage' => 'nexthop size is illegal. Must be between 2 and 4.', 'description' => 'You must specify two to four router interfaces as next hops.'], + ['errorCode' => 'InvalidEntryRuleQuota.NotFound', 'errorMessage' => 'Route entry quota rule not exists.', 'description' => ''], + ['errorCode' => 'Forbidden.CheckEntryRuleQuota', 'errorMessage' => 'Route entry quota rule check error.', 'description' => ''], + ['errorCode' => 'InvalidVBRStatus', 'errorMessage' => 'invalid virtual border router status.', 'description' => ''], + ['errorCode' => 'InvalidPhysicalConnectionBusinessStatus', 'errorMessage' => 'invalid physical connection business status.', 'description' => ''], + ['errorCode' => 'InvalidRouterType', 'errorMessage' => 'Cannot specify nexthop list in vbr\'s route table.', 'description' => 'The specified next hop does not exist in the VBR routing table'], + ['errorCode' => 'IncorrectHaVipStatus', 'errorMessage' => 'This operation is denied because satus of the specified HaVip is neither Available nor InUse.', 'description' => 'You cannot perform the operation when the specified HAVIP is in the Available or InUse state.'], + ['errorCode' => 'CountLimitExceed.HaVipRouteEntry', 'errorMessage' => 'The count of route entry to HaVip in one route table is exceeded.', 'description' => 'The number of routes that point to the HAVIP in a route table exceeds the upper limit.'], + ['errorCode' => 'InvalidRouteEntry.Duplicate', 'errorMessage' => 'The route entry already exist.', 'description' => ''], + ['errorCode' => 'InvalidParam', 'errorMessage' => 'The Ecmp routerEntry with router interfaces local vgw vip not match.', 'description' => ''], + ['errorCode' => 'INVALID_WEIGHT_PARAM', 'errorMessage' => 'Specified value of weight invalid', 'description' => ''], + ['errorCode' => 'FORBIDDEN_USE_VPC_AS_INTERNET_GATEWAY', 'errorMessage' => 'The Specified CIDR must be in vpc CIDR.', 'description' => ''], + ['errorCode' => 'InvalidNexthop', 'errorMessage' => 'The Specified nexthop illegal.', 'description' => ''], + ['errorCode' => 'INVALID_VPC_ID', 'errorMessage' => 'The Specified VpcId not match.', 'description' => 'The specified VPC does not exist.'], + ['errorCode' => 'InvalidRouteEntrySize', 'errorMessage' => 'The Specified routerEntry size not legal.', 'description' => 'You must specify two to four router interfaces as next hops if you want to configure ECMP routing.'], + ['errorCode' => 'TaskConflict', 'errorMessage' => 'The operation is too frequent, please wait a moment and try again.', 'description' => 'Your requests are too frequent. Try again later.'], + ['errorCode' => 'InvalidRouteEntry', 'errorMessage' => 'Specified routeEntry not exist.', 'description' => ''], + ['errorCode' => 'InvalidDestinationCidrBlock', 'errorMessage' => 'The specified destinationCidrBlock must not included in black list cidr.', 'description' => ''], + ['errorCode' => 'Forbidden.VRouterNotFound', 'errorMessage' => 'Specified virtual switch is not found during access authentication.', 'description' => ''], + ['errorCode' => 'DefaultValidate.Error', 'errorMessage' => 'validte fail.', 'description' => ''], + ['errorCode' => 'Region.NotSupport', 'errorMessage' => 'The specified region does not currently support nextHopType for networkInterface', 'description' => ''], + ['errorCode' => 'OperationFailed.NotifyCenCreate', 'errorMessage' => 'Failed to notify cen when create route entry.', 'description' => ''], + ['errorCode' => 'Forbidden.PrivateIpNotFound', 'errorMessage' => 'Private ip address not exist.', 'description' => ''], + ['errorCode' => 'OperationUnsupported.InactiveMode', 'errorMessage' => 'Vpc multi scope route only support active standby.', 'description' => ''], + ['errorCode' => 'InvalidRouteEntryName.Malformed', 'errorMessage' => 'Specified RouteEntry name is not valid.', 'description' => 'The new name of the route is invalid.'], + ['errorCode' => 'IncorrectStatus.MultiScopeRiRouteEntry', 'errorMessage' => 'MultiScope ri status must not in idle.', 'description' => ''], + ['errorCode' => 'OperationUnsupported.MoreThanOneVpnOrHavip', 'errorMessage' => 'MultiScope can not support more than one vpn/havip.', 'description' => ''], + ['errorCode' => 'OperationUnsupported.EcmpRiTypeOrNumber', 'errorMessage' => 'Emcp entry not supported if vpc-vbr or vbr-vlan ri does not exist.', 'description' => ''], + ['errorCode' => 'Duplicated.VpcNextHop', 'errorMessage' => 'Route entry nexthop duplicate.', 'description' => 'Duplicate next hops are specified.'], + ['errorCode' => 'OperationUnsupported.SubRouteTableECMP', 'errorMessage' => 'Vpc subRouteTable don\'t support ecmp or multiScope.', 'description' => ''], + ['errorCode' => 'InvalidNexthop.NotFound', 'errorMessage' => 'VRouterEntry nexthop does not exist.', 'description' => ''], + ['errorCode' => 'IllegalParam.NextHopId', 'errorMessage' => 'Instance not exists or not vpc vm.', 'description' => ''], + ['errorCode' => 'QuotaExceeded.HaVipRouteEntry', 'errorMessage' => 'Vpc havip route entry quota exceed.', 'description' => ''], + ['errorCode' => 'InvalidNexthop.DirectEni', 'errorMessage' => 'The direct Eni cannot be nexthop.', 'description' => 'An ENI in cut-through mode cannot be specified as a next hop.'], + ['errorCode' => 'OperationFailed.InvalidNexthop', 'errorMessage' => 'vpc multi scope route must has a enable nexthop.', 'description' => ''], + ['errorCode' => 'OperationFailed.NotifyCenDelete', 'errorMessage' => 'Failed to notify cen when delete route entry.', 'description' => ''], + ['errorCode' => 'InvalidNatGateway.NotFound', 'errorMessage' => 'Natgateway not exist.', 'description' => ''], + ['errorCode' => 'OperationFailed.CxpRouteExist', 'errorMessage' => 'Cxp route alreay existed.', 'description' => ''], + ['errorCode' => 'OperationFailed.GetEniInfo', 'errorMessage' => 'Failed to get networkInterface info.', 'description' => ''], + ['errorCode' => 'OperationUnsupported.InvalidRouterInterfaceType', 'errorMessage' => 'Only vpc vbr interface support ecmp route.', 'description' => ''], + ['errorCode' => 'InvalidHaVip.NotFound', 'errorMessage' => 'The specified HaVip does not exist in the specified region.', 'description' => ''], + ['errorCode' => 'OperationFailed.MultiScopeType', 'errorMessage' => 'The specified nexthop type is not support in multiScope.', 'description' => ''], + ['errorCode' => 'OperationFailed.DistibuteLock', 'errorMessage' => 'Distibute lock fail.', 'description' => 'The operation is locked by another request;'], + ['errorCode' => 'QuotaExceeded.VpnRouteEntry', 'errorMessage' => 'Vpn route entry quota exceeded.', 'description' => 'The system failed to create the route because the number of routes in the VPN gateway route table has reached the upper limit.'], + ['errorCode' => 'InvalidAttachment.NotFound', 'errorMessage' => 'The attachment is not found.', 'description' => 'The specified transit router does not exist.'], + ['errorCode' => 'OperationFailed.ActiveNetworkInterfaceNotFound', 'errorMessage' => 'No active network interface is found on the attachment.', 'description' => 'No ENI is available on the specified transit router.'], + ['errorCode' => 'InvalidNetworkInterface.NotFound', 'errorMessage' => 'The network interface is not found on the attachment.', 'description' => 'No ENI is associated with the specified transit router.'], + ['errorCode' => 'OperationFailed.QueryAttachmentInfo', 'errorMessage' => 'Failed to query attachment information.', 'description' => 'The system fails to query the transit router.'], + ['errorCode' => 'IllegalParam.AttachmentId', 'errorMessage' => 'The attachment is invalid.', 'description' => 'The specified transit router is invalid.'], + ['errorCode' => 'OperationFailed.NotSupportIPV6', 'errorMessage' => 'The specified next hop does not support IPv6.', 'description' => 'The specified next hop does not support IPv6.'], + ['errorCode' => 'IncorrectStatus.Ipv6Address', 'errorMessage' => 'The IPv6 address of the specified next hop is being assigned or deleted.', 'description' => 'The IPv6 address that is specified as the next hop is being created or being deleted.'], + ['errorCode' => 'OperationUnsupported.Ipv6EntryOnPrimaryNetworkInterface', 'errorMessage' => 'You cannot create IPv6 route entries on a primary network interface.', 'description' => 'You cannot create an IPv6 route whose next hop is a primary ENI.'], + ['errorCode' => 'OperationUnsupported.SpecifyIpOnIpv6Entry', 'errorMessage' => 'You cannot specify the private IP address when you create IPv6 route entries.', 'description' => 'You cannot specify a private IPv6 address as the destination CIDR block.'], + ['errorCode' => 'OperationUnsupported.MutipleIpv6Address', 'errorMessage' => 'You cannot specify a next hop that has bound multiple IPv6 addresses.', 'description' => 'You cannot specify a next hop that is assigned multiple IPv6 addresses.'], + ['errorCode' => 'OperationDenied.Ipv6EntryOnCustomTable', 'errorMessage' => 'You cannot create any IPv6 route entry on a custom route table.', 'description' => ''], + ['errorCode' => 'OperationDenied.CloudBoxVbrEntryAllowedInCustomRouteTable', 'errorMessage' => 'The operation is not allowed because only the custom routing table can add a routing entry with the next hop pointing to the cloud box type VBR.', 'description' => ''], + ['errorCode' => 'OperationDenied.RouteTableAssociateNotCloudBoxVSwitch', 'errorMessage' => 'The operation is not allowed because of the routing table is bound to a non-cloud box type vswitch, and routing entries pointing to the cloud box VBR cannot be added.', 'description' => 'The operation is not allowed because the route table is associated with a non-CloudBox vSwitch. You cannot add routes that point to VBRs of the CloudBox instance.'], + ['errorCode' => 'OperationDenied.VbrMisMatchCloudBox', 'errorMessage' => 'The operation is not allowed because the routing table is bound to a cloud box vswitch, and routing entries pointing to other cloud box VBRs cannot be added.', 'description' => 'The operation failed because the route table is associated with the vSwitch of a CloudBox instance. You cannot add routes that point to VBRs of other CloudBox instances.'], + ['errorCode' => 'OperationDenied.VbrIdle', 'errorMessage' => 'The operation is not allowed because the next hop of the added routing entry is a VBR type RI at the opposite end, which cannot be in an idle state.', 'description' => 'The operation failed because the next hop of the added route is a router interface whose peer device is a VBR, and the VBR must not be in the Idle state.'], + ['errorCode' => 'OperationDenied.RouterInterfaceToDifferentVpc', 'errorMessage' => 'The operation is not allowed because the router interface is connected to different VPCs.', 'description' => 'The operation failed because the router interfaces point to different VPCs.'], + ['errorCode' => 'OperationDenied.RouterInterfaceFromDifferentZones', 'errorMessage' => 'The operation is not allowed because the router interface resides in different zones.', 'description' => ''], + ['errorCode' => 'OperationFailed.PconnTrafficNotEnable', 'errorMessage' => 'The operation is failed because of PconnTrafficNotEnable.', 'description' => 'Billing for outbound data transfer is disabled.'], + ['errorCode' => 'ResourceNotFound.VpcPeer', 'errorMessage' => 'The specified resource of %s is not found.', 'description' => 'The peer VPC cannot be found.'], + ['errorCode' => 'IncorrectStatus.VpcPeer', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => 'The status of %s[%s] is invalid.'], + ['errorCode' => 'OperationDenied.RouteTableTypeNotPermitted', 'errorMessage' => 'The operation is not allowed because the type of route table is not permitted.', 'description' => 'You cannot create routes for route tables of the specified type.'], + ['errorCode' => 'OperationDenied.GatewayRouteTableNotPermitted', 'errorMessage' => 'The operation is not allowed to create a route pointing to this nextHop type on gateway route table.', 'description' => 'You cannot create routes that point to instances of this type in the gateway route table.'], + ['errorCode' => 'UnsupportedFeature.VpcPeerIpv6', 'errorMessage' => 'IPv6 route entries for VPC peering connections cannot be created in this region.', 'description' => 'The error message returned because the peer of the router interface is a VPC and you cannot create a route whose next hop type is IPv6 address in this region.'], + ['errorCode' => 'OperationDenied.VpcIpv6NotEnabled', 'errorMessage' => 'IPv6 has not been enabled for the VPC.', 'description' => 'The error message returned because the VPC does not support IPv6 and the operation is denied.'], + ['errorCode' => 'IncorrectStatus.Ipv4Gateway', 'errorMessage' => 'The status of Ipv4Gateway is incorrect.', 'description' => ''], + ['errorCode' => 'ResourceNotFound.PrefixList', 'errorMessage' => 'The specified resource of prefixList is not found.', 'description' => 'The prefix list does not exist.'], + ['errorCode' => 'UnsupportedFeature.CreatePrefixListEcmpRouteEntry', 'errorMessage' => 'The feature of creating ecmp route entry with prefixList is not supported.', 'description' => 'You cannot create ECMP routes by using a prefix list.'], + ['errorCode' => 'OperationDenied.RouterInterfaceIpv6NotEnabled', 'errorMessage' => 'Routerinterface does not support IPv6.', 'description' => 'The operation failed because the router interface does not support IPv6.'], + ['errorCode' => 'OperationDenied.NextHopTypeNotPermitted', 'errorMessage' => 'The operation is not allowed because the nextHop type is invalid.', 'description' => 'You are not allowed to create a route whose next hop is of this type.'], + ['errorCode' => 'ResourceAlreadyAssociated.PrefixList', 'errorMessage' => 'The operation failed because the specified prefixList route entry already exists.', 'description' => 'The operation failed because the prefix list route already exists.'], + ['errorCode' => 'OperationFailed.CidrConflictWithPrefixList', 'errorMessage' => 'The specified CIDR block already exists in a prefixList route entry.', 'description' => 'The route conflicts with an existing prefix list route.'], + ['errorCode' => 'ResourceNotFound.Ipv4Gateway', 'errorMessage' => 'Specified Ipv4Gateway does not exist.', 'description' => 'The specified IPv4 gateway is not found.'], + ['errorCode' => 'Mismatch.HaVipIdAndRouteTableId', 'errorMessage' => 'The HaVip and RouteTable are mismatched.', 'description' => 'The specified HAVIP and route table do not belong to the same VPC.'], + ['errorCode' => 'OperationFailed.OperationLocked', 'errorMessage' => 'The operation failed because the nextHop instance is in the O&M lock state.', 'description' => 'The operation failed because the next hop instance is locked for O&M.'], + ['errorCode' => 'Mismatch.Ipv4GatewayIdAndRouteTableId', 'errorMessage' => 'The specified IPv4Gateway and RouteTable are not matched.', 'description' => 'The operation failed because the IPv4 gateway and route table do not belong to the same VPC.'], + ['errorCode' => 'OperationUnsupported.DestinationCidrBlockOverlapWithVSwitch', 'errorMessage' => 'The destination IPv6 network segment specified in the route entry overlaps with the vSwitch network segment.', 'description' => 'The error message returned because the destination IPv6 CIDR block of the route overlaps with the vSwitch CIDR block.'], + ['errorCode' => 'ResourceNotAssociated.Cen', 'errorMessage' => 'The Vpc and Cen are not associated.', 'description' => 'Failed to attach the VPC to the CEN instance.'], + ['errorCode' => 'IncorrectStatus.CenRelation', 'errorMessage' => 'The status of Vpc in Cen is incorrect.', 'description' => 'The operation failed because the VPC attached to the CEN instance is in an unstable state.'], + ['errorCode' => 'OperationDenied.CenTypeInvalid', 'errorMessage' => 'The operation is not allowed because of Cen type is invalid..', 'description' => 'You cannot add a route that points to a CEN instance of this type to the route table.'], + ['errorCode' => 'ResourceNotFound.Cen', 'errorMessage' => 'The specified resource of Cen is not found.', 'description' => 'The operation failed because the CEN resources do not exist.'], + ['errorCode' => 'ResourceNotFound.NetworkInterface', 'errorMessage' => 'The specified resource of network interface is not found.', 'description' => 'The specified ENI does not exist.'], + ['errorCode' => 'RouteConflict.AlreadyExist', 'errorMessage' => 'Route conflict exists in routing table.', 'description' => 'Route conflicts exist in the route table.'], + ['errorCode' => 'IncorrectStatus.RouterInterface', 'errorMessage' => 'The specified RouterInterface status is invalid.', 'description' => 'The router interface status is abnormal.'], + ['errorCode' => 'InvalidNexthop.UnsupportedEniBizType', 'errorMessage' => 'The biz type of NetworkInterface is illegal.', 'description' => 'The biz type of NetworkInterface as the nexthop is illegal.'], + ['errorCode' => 'OperationDenied.RouterInterfaceIpv6', 'errorMessage' => 'RouterInterface does not support IPv6.', 'description' => 'RouterInterface does not support IPv6.'], + ['errorCode' => 'InvalidNextHopType', 'errorMessage' => 'Specified parameter "NextHopType" is not valid.', 'description' => 'Specified parameter "NextHopType" is not valid.'], + ['errorCode' => 'OperationDenied.VbrAttachEcrInMiddleStatus', 'errorMessage' => 'The operation is not allowed because of VBR attach or detach ECR in middle status.', 'description' => 'The current operation cannot be performed because the VBR is in the process of loading or unloading the leased line gateway. Please wait a moment and try again.'], + ['errorCode' => 'ResourceNotAssociated.Ecr', 'errorMessage' => 'The ECR is not associated.', 'description' => 'The current resource is not associated with ECR and cannot perform this operation. Please check and try again.'], + ['errorCode' => 'UnsupportedFeature.RouterInterfaceIpv6', 'errorMessage' => 'The feature of ipv6 is not supported for the routerInterface.', 'description' => 'The router interface does not support ipv6'], + ['errorCode' => 'InvalidVpnInstanceId.NotFound', 'errorMessage' => 'The specified VPN was not found.', 'description' => ''], + ['errorCode' => 'OperationFailed.ScopeActiveRouteEntryType', 'errorMessage' => 'Operation failed because the type of the active route entry is not supported.', 'description' => ''], + ['errorCode' => 'OperationFailed.ScopeStandbyRouteEntryQuota', 'errorMessage' => 'Operation failed because the quota for standby route entries in the scope has been exceeded.', 'description' => ''], + ['errorCode' => 'OperationFailed.ScopeActiveRouteEntryQuota', 'errorMessage' => 'Operation failed because the quota for active route entries in the scope has been exceeded.', 'description' => ''], + ['errorCode' => 'OperationUnsupported.ScopeInvalidRouteType', 'errorMessage' => 'The specified route type is unsupported.', 'description' => ''], + ['errorCode' => 'OperationFailed.EcmpInvalidRouterInterfaceOppositeType', 'errorMessage' => 'Operation failed because the opposite type of the router interface is invalid for ECMP configuration.', 'description' => ''], + ['errorCode' => 'OperationUnsupported.Ipv6EcmpRouteEntry', 'errorMessage' => 'The EcmpRouteEntry is not supported for IPv6.', 'description' => ''], + ['errorCode' => 'OperationUnsupported.Ipv6CidrBlock', 'errorMessage' => 'The specified IPv6 CIDR block is unsupported.', 'description' => ''], + ['errorCode' => 'OperationUnsupported.Ipv6ForVBR', 'errorMessage' => 'IPv6 route entry is not supported for VirtualBorderRouter.', 'description' => ''], + ['errorCode' => 'IncorrectStatus.RouteTableStatus', 'errorMessage' => 'The status of the specified RouteTable is incorrect.', 'description' => ''], + ['errorCode' => 'OperationFailed.InvalidNextHopType', 'errorMessage' => 'Operation failed because Ecmp routeEntry has more than one ri entry and can only support one non-ri entry.', 'description' => 'The system failed to create the route because the next hop of an ECMP route must not be a router interface.'], + ['errorCode' => 'UnsupportedRegion', 'errorMessage' => 'The feature is not supported in current region.', 'description' => 'The feature is not supported in the current region.'], + ['errorCode' => 'UnsupportedFeature.VpcAdvancedFeature', 'errorMessage' => 'The VPC does not support some advanced features.', 'description' => 'The VPC does not support some advanced features. Please submit a ticket.'], + ['errorCode' => 'OperationDenied.CreateEcmpForPublishedRouteEntry', 'errorMessage' => 'Operation denied because of can not create EcmpRouteEntry for published RouteEntry.', 'description' => 'The published route does not support the creation of primary and secondary routes or load balancing routes.'], + ['errorCode' => 'OperationDenied.TrAttachmentIpv6Disabled', 'errorMessage' => 'The operation is not allowed because tr attachment Ipv6 is disabled.', 'description' => 'The operation is not allowed because tr attachment Ipv6 is disabled.'], + ['errorCode' => 'Mismatch.EniIdAndRouteTableId', 'errorMessage' => 'The operation is not allowed because eni and route table not in same vpc.', 'description' => 'The operation is not allowed because eni and route table not in same vpc.'], + ['errorCode' => 'InvalidDescription.Malformed', 'errorMessage' => 'The Description is illegal.', 'description' => ''], + ['errorCode' => 'OperationFailed.InstanceDismatchCurrentVpc', 'errorMessage' => 'The specified instance does not exist in current vpc.', 'description' => ''], + ['errorCode' => 'OperationDenied.RouterInterfaceStatusNotAllowed', 'errorMessage' => 'The operation is not allowed because of RouterInterfaceStatusNotAllowed.', 'description' => 'The router interface status is abnormal.'], + ['errorCode' => 'OperationFailed.Ipv6AddressNotBind', 'errorMessage' => 'The specified next hop has no IPv6 address.', 'description' => 'The next hop of an ipv6 route entry does not have any ipv6 address'], + ['errorCode' => 'OperationUnsupported.MultipleIpv6Address', 'errorMessage' => 'Operation unsupported because specific route next hop instance has multiple IPv6 address.', 'description' => 'The operation is not supported because the specified route next hop instance is bound to multiple IPv6 addresses'], ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"0ED8D006-F706-4D23-88ED-E11ED28DCAC0\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 0ED8D006-F706-4D23-88ED-E11ED28DCAC0\\n","errorExample":""}]', - 'title' => 'AttachDhcpOptionsSetToVpc', - 'description' => '* The **AttachDhcpOptionsSetToVpc** operation is asynchronous. After you send the request, the system returns a request ID. However, the operation is still being performed in the system background. You can call the [DescribeVpcAttribute](~~94565~~) operation to query the status of a DHCP options set:'."\n" + 403 => [ + ['errorCode' => 'IncorrectInstanceStatus', 'errorMessage' => 'The current status of the resource does not support this operation.', 'description' => ''], + ], + [ + ['errorCode' => 'InvalidParameter', 'errorMessage' => 'Instance not exists or not vpc vm', 'description' => ''], + ['errorCode' => 'InvalidNatGatewayId.NotFound', 'errorMessage' => 'Specified value of NatGatewayId is not found in our record.', 'description' => ''], + ['errorCode' => 'InvalidInstanId.NotFound', 'errorMessage' => 'Specified instance does not exist.', 'description' => ''], + ['errorCode' => 'InvalidNextHopId.NotFound', 'errorMessage' => 'Specified next hop does not exist.', 'description' => ''], + ['errorCode' => 'InvalidRouteTableId.NotFound', 'errorMessage' => 'Specified route table does not exist.', 'description' => ''], + ['errorCode' => 'InvalidHaVipId.NotFound', 'errorMessage' => 'The specified HaVip does not exist in the specified VPC.', 'description' => 'The specified HAVIP does not exist in the VPC.'], + ['errorCode' => 'InvalidNetworkInterface.NotFound', 'errorMessage' => 'The specified networkInterface does not exist.', 'description' => ''], + ['errorCode' => 'InvalidVpc.NotFound', 'errorMessage' => 'Specified vpc is not found in our record.', 'description' => ''], + ['errorCode' => 'InvalidIpv6Gateway.NotFound', 'errorMessage' => 'Specified Ipv6Gateway does not exist.', 'description' => ''], + ['errorCode' => 'ResourceNotFound.GatewayLoadBalancerEndpoint', 'errorMessage' => 'GatewayLoadBalancerEndpoint instance not found.', 'description' => 'GatewayLoadBalancerEndpoint instance not found.'], + ], + 500 => [ + ['errorCode' => 'VPC.ERROR', 'errorMessage' => 'error code 500,Internal server error.', 'description' => ''], + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', 'description' => 'An internal error occurred.'], + ['errorCode' => 'IncorrectStatus.Ipv4Gateway', 'errorMessage' => 'The status of Ipv4Gateway is incorrect.', 'description' => 'The error message returned because the IPv4 gateway is unstable.'], + ], + ], + 'title' => 'Create a custom route entry', + 'summary' => 'Creates a custom route entry on a vRouter or Virtual Border Router (VBR).', + 'description' => '- The **CreateRouteEntry** operation is asynchronous. After you send a request, the system returns an instance ID, but the custom route entry has not been created yet. The system continues to run the node in the background. You can invoke [DescribeRouteEntryList](~~138148~~) to query the status of the route:'."\n" + .' - If the route is in the **Creating** state, the route is being created.'."\n" + .' - If the route is in the **Created** state, the route is created.'."\n" + .'- The **CreateRouteEntry** operation does not support concurrent creation of custom route entries in the same VPC or the same VBR.'."\n" + .'- The **CreateRouteEntry** operation may return the **TaskConflict** error code in concurrent scenarios. Retry the operation as needed.'."\n" ."\n" - .' * If the DHCP options set is in the **Pending** state, the DHCP options set is being associated.'."\n" - .' * If the DHCP options set is in the **InUse** state, the DHCP options set is associated.'."\n" + .'**Take note of the following items when you use this operation to add custom route entries to a route table of a vRouter:**'."\n" + .'> When the route to be added is a prefix list route, the routing quota is calculated based on the sum of existing routes and the maximum number of entries in the prefix list route. The sum cannot exceed the routing quota.'."\n" + .'- A route table can contain up to 200 custom route entries.'."\n" ."\n" - .'* You cannot repeatedly call the **AttachDhcpOptionsSetToVpc** operation to associate DHCP options sets with a VPC within the specified period of time.', + .'- The destination CIDR block (**DestinationCidrBlock**) of a custom route entry cannot be the same as a vSwitch CIDR block in the VPC. The destination CIDR block can contain a vSwitch CIDR block but cannot be contained by a vSwitch CIDR block.'."\n" + ."\n" + .'- The destination CIDR block (**DestinationCidrBlock**) of a custom route entry can be a more specific CIDR block than the cloud service system route CIDR block `100.64.0.0/10`, but cannot be the same as that CIDR block.'."\n" + .'The system route with the destination CIDR block `100.64.0.0/10` is used for communication among cloud services within the VPC. Exercise caution when you configure a more specific route. Incorrect configurations may cause cloud services to become inaccessible..'."\n" + ."\n" + .'- The destination CIDR blocks (**DestinationCidrBlock**) of route entries in the same route table must be unique.'."\n" + ."\n" + .'- If the specified destination CIDR block (**DestinationCidrBlock**) is an IP address, it is treated as a CIDR block with a 32-bit mask.'."\n" + ."\n" + .'- Multiple custom route entries can point to the same next hop (**NextHopId**).'."\n" + ."\n" + .'- The next hop (**NextHopId**) of a custom route entry must be in the same VPC as the route table.'."\n" + ."\n" + .'- You can configure ECMP routing by using the **NextHopList** parameter settings:'."\n" + ."\n" + .' * To add a non-ECMP custom route, specify the **DestinationCidrBlock**, **NextHopType**, and **NextHopId** parameters. Do not specify the **NextHopList** parameter. '."\n" + .' '."\n" + .' * To add an ECMP route, specify the **DestinationCidrBlock** and **NextHopList** parameters. Do not specify the **NextHopType** or **NextHopId** parameter.'."\n" + ."\n" + .'**Take note of the following items when you use this operation to add custom route entries to a route table of a Virtual Border Router (VBR):**'."\n" + ."\n" + .'- A route table can contain up to 200 custom route entries. '."\n" + .' '."\n" + .'- The **NextHopList** parameter is not supported. '."\n" + .' '."\n" + .'- The destination CIDR block (**DestinationCidrBlock**) of a custom route entry can be a more specific CIDR block than the cloud service system route CIDR block `100.64.0.0/10`, but cannot be the same as that CIDR block.'."\n" + .'The system route with the destination CIDR block `100.64.0.0/10` is used for communication among cloud services within the VPC. Exercise caution when you configure a more specific route. Incorrect configurations may cause cloud services to become inaccessible.'."\n" + .' '."\n" + .'- The destination CIDR blocks (**DestinationCidrBlock**) of route entries in the same route table must be unique. '."\n" + .' '."\n" + .'- If the specified destination CIDR block (**DestinationCidrBlock**) is an IP address, it is treated as a CIDR block with a 32-bit mask. '."\n" + .' '."\n" + .'- Multiple custom route entries can point to the same next hop (**NextHopId**). '."\n" + .' '."\n" + .'- The next hop (**NextHopId**) of a custom route entry must be a vRouter interface associated with the VBR. '."\n" + .' '."\n" + .'- You can create route entries on a VBR only when the VBR is in the **Active** state, the corresponding Express Connect circuit is in the **Enabled** state, and the circuit is not under overdue payment lock. '."\n" + .' '."\n" + .'- Only non-ECMP route entries are supported. Specify the **DestinationCidrBlock**, **NextHopType**, and **NextHopId** parameters. Do not specify the **NextHopList** parameter.', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2025-05-19T01:45:16.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2025-01-14T01:32:53.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-12-31T01:51:55.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-09-13T07:10:18.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-09-03T02:21:02.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-08-23T09:38:29.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-08-12T03:08:30.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-06-19T02:32:26.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-06-13T08:13:13.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-04-02T12:12:58.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-03-25T01:57:23.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-01-04T01:43:50.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-09-25T07:38:52.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-09-01T09:17:10.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-07-25T10:02:43.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-06-25T12:18:32.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-06-21T07:30:19.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-06-16T01:50:49.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-06-09T08:58:32.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-06-07T03:56:30.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-06-06T11:09:23.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-05-05T08:45:58.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-05-04T02:15:51.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-04-04T03:02:17.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-03-07T12:05:31.000Z', 'description' => 'Error codes changed, Response parameters changed'], + ['createdAt' => '2022-12-05T09:33:00.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2021-07-30T09:21:17.000Z', 'description' => 'Error codes changed'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '600', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CreateRouteEntry'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], + ], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'vpc:CreateRouteEntry', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'RouteTable', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:routetable/{#RouteTableId}'], + ], + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RouteEntryId\\": \\"rte-sn6vjkioxte1gz83z****\\",\\n \\"RequestId\\": \\"0ED8D006-F706-4D23-88ED-E11ED28DCAC0\\"\\n}","type":"json"}]', ], - 'DetachDhcpOptionsSetFromVpc' => [ - 'summary' => 'Disassociates a DHCP options set from a VPC.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'CreateRouteTable' => [ + 'summary' => 'Creates a custom route table.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -15745,157 +12019,161 @@ ], 'operationType' => 'write', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'update', - 'riskType' => 'none', - 'chargeType' => 'free', - ], + 'systemTags' => ['operationType' => 'create', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The region to which the DHCP options set belongs. You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The region ID of the virtual private cloud (VPC) to which the custom route table belongs.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-zhangjiakou', 'title' => ''], ], [ - 'name' => 'DhcpOptionsSetId', + 'name' => 'VpcId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the DHCP options set to be disassociated from a VPC.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'dopt-o6w0df4epg9zo8isy****', - ], + 'allowEmptyValue' => false, + 'schema' => ['description' => 'The ID of the VPC to which the custom route table belongs.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'vpc-bp1qpo0kug3a20qqe****', 'title' => ''], ], [ - 'name' => 'VpcId', + 'name' => 'RouteTableName', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the VPC.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'vpc-dfdgrgthhy****', - ], + 'schema' => ['description' => 'The name of the route table.'."\n" + ."\n" + .'The name must be 1 to 128 characters in length, and cannot start with `http://` or `https://`.'."\n", 'type' => 'string', 'required' => false, 'example' => 'myRouteTable', 'title' => ''], + ], + [ + 'name' => 'Description', + 'in' => 'query', + 'schema' => ['description' => 'The description of the route table.'."\n" + ."\n" + .'The description must be 1 to 256 characters in length, and cannot start with `http://` or `https://`.'."\n", 'type' => 'string', 'required' => false, 'example' => 'abc', 'title' => ''], + ], + [ + 'name' => 'AssociateType', + 'in' => 'query', + 'schema' => ['description' => 'The type of the route table. Valid values:'."\n" + ."\n" + .'* **VSwitch** (default): vSwitch route table'."\n" + .'* **Gateway**: gateway route table'."\n", 'type' => 'string', 'required' => false, 'example' => 'VSwitch', 'title' => ''], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => ['description' => 'The region ID of the virtual private cloud (VPC) to which the custom route table belongs.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-zhangjiakou', 'title' => ''], ], [ 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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.'."\n" - ."\n" - .'> 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.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '0c593ea1-3bea-11e9-b96b-88e9fe637760', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'You can use the client to generate the value, but you must make sure that it is unique among different requests. The token can contain only ASCII characters.'."\n" + ."\n" + .'> If you do not specify this parameter, **ClientToken** is set to the value of **RequestId**. The value of **RequestId** in each API request may be different.'."\n", 'type' => 'string', 'required' => false, 'example' => '02fb3da4-130e-11e9-8e44-0016e04', 'title' => ''], ], [ - 'name' => 'DryRun', + 'name' => 'Tag', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values:'."\n" - ."\n" - .'**true**: performs only a dry run. The system checks your AccessKey pair, the Resource Access Management (RAM) user permissions, and the required parameters. 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.'."\n" - ."\n" - .'**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.'."\n", - 'type' => 'boolean', + 'description' => 'The tags of the resource.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The tags.', + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => 'The tag key. You can specify up to 20 tag keys. The tag key cannot be an empty string.'."\n" + ."\n" + .'The tag key can be up to 128 characters in length. It cannot start with `aliyun` or `acs:`, and cannot contain `http://` or `https://`.'."\n", 'type' => 'string', 'required' => false, 'example' => 'FinanceDept', 'title' => ''], + 'Value' => ['description' => 'The tag value. You can specify at most 20 tag values. The tag value can be an empty string.'."\n" + ."\n" + .'The tag value can be up to 128 characters in length and cannot contain `http://` or `https://`. The tag value cannot start with `aliyun` or `acs:`.'."\n", 'type' => 'string', 'required' => false, 'example' => 'FinanceJoshua', 'title' => ''], + ], + 'required' => false, + 'title' => '', + 'example' => '', + ], 'required' => false, - 'example' => 'false', + 'maxItems' => 21, + 'title' => '', + 'example' => '', ], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'description' => 'The returned information.', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '0ED8D006-F706-4D23-88ED-E11ED28DCAC0', - ], + 'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => '62172DD5-6BAC-45DF-8D44-E11ED28DCAC0', 'title' => ''], + 'RouteTableId' => ['description' => 'The IDs of the route tables.'."\n", 'type' => 'string', 'example' => 'vtb-bp145q7glnuzdvzu2****', 'title' => ''], ], - 'description' => '', + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidDhcpOptionsSetId.NotFound', - 'errorMessage' => 'The specified resource dhcpOptionsSetId is not found.', - ], - [ - 'errorCode' => 'OperationFailed.AttachmentNotExist', - 'errorMessage' => 'The current VPC is not attahced to a DHCP options set.', - ], - [ - 'errorCode' => 'IncorrectStatus.VpcDhcpOptionsSet', - 'errorMessage' => 'The dhcpOptionsSet status of VPC does not support this operation.', - ], - [ - 'errorCode' => 'AttrMismatching.VpcDhcpOptionsSetId', - 'errorMessage' => 'The dhcpOptionsSetId does not match the VPC.', - ], - [ - 'errorCode' => 'TaskConflict', - 'errorMessage' => 'The operation is too frequent. Please wait a moment and try again.', - ], - [ - 'errorCode' => 'InvalidVpcId.NotFound', - 'errorMessage' => 'Specified value of VpcId is not found in our record.', - ], - [ - 'errorCode' => 'IncorrectStatus.DhcpOptionsSet', - 'errorMessage' => 'The DhcpOptionsSet status does not support this operation.', - ], - [ - 'errorCode' => 'OperationUnsupported.DhcpOptionsSet', - 'errorMessage' => 'The DHCP options set feature in this region is not supported.', - ], - [ - 'errorCode' => 'MissingParam.VpcId', - 'errorMessage' => 'You must specify VpcId.', - ], - [ - 'errorCode' => 'InvalidRegionId.NotFound', - 'errorMessage' => 'The specified RegionId does not exist.', - ], + ['errorCode' => 'UnsupportedRegion', 'errorMessage' => 'The feature of ipv4Gateway is not supported in the region.', 'description' => 'IPv4 gateways are not supported in this region.'], + ['errorCode' => 'InvalidParameter.RouteTableName.Malformed', 'errorMessage' => 'The specified route table name is not valid.', 'description' => ''], + ['errorCode' => 'InvalidParameter.Description.Malformed', 'errorMessage' => 'The specified Description is not valid.', 'description' => ''], + ['errorCode' => 'QuotaExceeded.RouteTable', 'errorMessage' => 'VPC RouteTable quota exceeded.', 'description' => 'The quota of VPC route tables is exhausted.'], + ['errorCode' => 'IncorrectStatus.cbnStatus', 'errorMessage' => 'Current CBN status does not support this operation.', 'description' => 'The status of the CEN instance is invalid.'], + ['errorCode' => 'InvalidVpcId.NotSupport', 'errorMessage' => 'The vpc is not support.', 'description' => ''], + ['errorCode' => 'OperationUnsupported.AdvancedFeature', 'errorMessage' => 'Advanced features of the vpc is unsupported.', 'description' => 'This advanced feature is not supported.'], + ['errorCode' => 'QuotaExceeded.GatewayRouteTable', 'errorMessage' => 'The quota of Gateway Route Table is exceeded.', 'description' => 'The quota of the gateway route table created for a single VPC has reached the upper limit.'], + ['errorCode' => 'MissingParam.vpcId', 'errorMessage' => 'The parameter vpcId is mandatory.', 'description' => 'The vpcId parameter is required.'], + ['errorCode' => 'InvalidRegionId.NotFound', 'errorMessage' => 'Specified value of RegionId is not supported.', 'description' => ''], + ['errorCode' => 'InvalidParameter.Action', 'errorMessage' => 'This vpc feature is not supported in this region', 'description' => ''], + ], + 404 => [ + ['errorCode' => 'InvalidVpcId.NotFound', 'errorMessage' => 'Specified VPC does not exist.', 'description' => ''], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"0ED8D006-F706-4D23-88ED-E11ED28DCAC0\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 0ED8D006-F706-4D23-88ED-E11ED28DCAC0\\n","errorExample":""}]', - 'title' => 'DetachDhcpOptionsSetFromVpc', - 'description' => '## [](#)Description'."\n" - ."\n" - .'* **DetachDhcpOptionsSetFromVpc** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call the [DescribeVpcAttribute](~~94565~~) operation to query the status of the task.'."\n" - ."\n" - .' * If the DHCP options set is in the **Pending** state, the DHCP options set is being disassociated.'."\n" - .' * If the DHCP options set is in the **UnUsed** state, the DHCP options set is disassociated.'."\n" - ."\n" - .'* You cannot repeatedly call the **DetachDhcpOptionsSetFromVpc** operation to disassociate a DHCP options set from a VPC within the specified period of time.'."\n", + 'title' => 'CreateRouteTable', + 'description' => '- **CreateRouteTable**接口属于异步接口,即系统会返回一个实例ID,但该自定义路由表尚未创建完成,系统后台的创建任务仍在进行。您可以调用[DescribeRouteTableList](~~87602~~)查询自定义路由表的创建状态:'."\n" + .' - 当自定义路由表处于**Creating**状态时,表示自定义路由表创建中。'."\n" + .' - 当自定义路由表处于**Available**状态时,表示自定义路由表创建完成。'."\n" + .'- **CreateRouteTable**接口不支持在同一个VPC中并发创建自定义路由表。', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'ReplaceVpcDhcpOptionsSet' => [ - 'summary' => 'Replaces the DHCP options set that is associated with a virtual private cloud (VPC).', - 'methods' => [ - 'post', - 'get', + 'changeSet' => [ + ['createdAt' => '2025-05-21T03:26:32.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-10-23T07:38:35.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-07-05T05:51:46.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2023-06-16T01:50:49.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-05-22T02:14:30.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2021-11-02T02:19:49.000Z', 'description' => 'Error codes changed, Request parameters changed, Response parameters changed'], + ], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'vpc:CreateRouteTable', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'RouteTable', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:routetable/*'], + ], + ], + ], ], - 'schemes' => [ - 'http', - 'https', + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"62172DD5-6BAC-45DF-8D44-E11ED28DCAC0\\",\\n \\"RouteTableId\\": \\"vtb-bp145q7glnuzdvzu2****\\"\\n}","type":"json"}]', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CreateRouteTable'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], ], + ], + 'CreateRouteTargetGroup' => [ + 'path' => '', + 'methods' => ['post'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], @@ -15903,897 +12181,1403 @@ ], 'operationType' => 'write', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'update', - 'riskType' => 'none', - 'chargeType' => 'free', - ], + 'systemTags' => ['operationType' => 'create', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ - 'name' => 'RegionId', + 'name' => 'VpcId', 'in' => 'query', - 'schema' => [ - 'description' => 'The region to which the DHCP options set belongs. You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The ID of the VPC to which the route target group belongs.', 'type' => 'string', 'required' => true, 'docRequired' => false, 'example' => 'vpc-xxxx', 'title' => ''], ], [ - 'name' => 'DhcpOptionsSetId', + 'name' => 'RouteTargetGroupName', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the new DHCP options set.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'dopt-o6w0df4epg9zo8isy****', - ], + 'schema' => ['description' => 'The name of the route target group.'."\n" + ."\n" + .'The name must be 1 to 128 characters in length and cannot start with http:// or https://.', 'type' => 'string', 'required' => false, 'docRequired' => false, 'example' => 'myRouteTargetGroupName', 'title' => ''], ], [ - 'name' => 'VpcId', + 'name' => 'RouteTargetGroupDescription', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the associated VPC.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'vpc-dsferghthth****', - ], + 'schema' => ['description' => 'The description of the route target group.'."\n" + .'The description must be 1 to 256 characters in length and cannot start with http:// or https://.', 'type' => 'string', 'required' => false, 'docRequired' => false, 'example' => 'myRouteTargetGroupDescription', 'title' => ''], ], [ - 'name' => 'ClientToken', + 'name' => 'RouteTargetMemberList', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + 'description' => 'The member list of the route target group.'."\n" ."\n" - .'You can use the client to generate the value, but you must make sure that it is unique among different requests. The client token can contain only ASCII characters.'."\n" + .'In active/standby mode, the following limits apply to route target group members:'."\n" ."\n" - .'> If you do not set this parameter, the system uses **RequestId** as **ClientToken**. **RequestId** may be different for each API request.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '0c593ea1-3bea-11e9-b96b-88e9fe637760', + .'1. The number of route target group members must be 2.'."\n" + .'2. The route target group members must be in different zones.', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'MemberId' => ['description' => 'The instance ID of the route target group member.', 'type' => 'string', 'required' => true, 'example' => 'ep-xxxx', 'title' => ''], + 'MemberType' => ['description' => 'The member type of the route target group.'."\n" + ."\n" + .'Supported type:'."\n" + ."\n" + .'- **GatewayLoadBalancerEndpoint**'."\n" + ."\n" + .'In active/standby mode, all members of the route target group must be of the same type.', 'type' => 'string', 'required' => true, 'example' => 'GatewayLoadBalancerEndpoint', 'title' => ''], + 'Weight' => ['description' => 'The weight of the route target group member. Valid values:'."\n" + ."\n" + .'- **100**: The member is the active instance.'."\n" + .'- **0**: The member is the standby instance.'."\n" + ."\n" + .'The weight can only be set during creation and cannot be modified.', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '100', 'title' => ''], + ], + 'required' => true, + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'required' => true, + 'docRequired' => true, + 'maxItems' => 16, + 'title' => '', + 'example' => '', ], ], [ - 'name' => 'DryRun', + 'name' => 'ConfigMode', 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to check the request without performing the operation. Valid values:'."\n" - ."\n" - .'* **true**: checks the request without performing the operation. The system checks whether your AccessKey pair is valid, whether the Resource Access Management (RAM) user is authorized, and whether the required parameters are set. If the request fails to pass the check, the corresponding error message is returned. If the request passes the check, the DryRunOperation error code is returned.'."\n" - .'* **false** (default): sends the request. If the request passes the check, a 2XX HTTP status code is returned and the operation is performed.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['description' => 'The configuration mode of the route target group. Valid values:'."\n" + ."\n" + .'- **Active-Standby**: active/standby mode.', 'type' => 'string', 'required' => true, 'example' => 'Active-Standby', 'title' => ''], ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => '0ED8D006-F706-4D23-88ED-E11ED28DCAC0', + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => ['description' => 'The region ID of the route target group. You can call the DescribeRegions operation to query the most recent region list.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], + ], + [ + 'name' => 'ResourceGroupId', + 'in' => 'query', + 'schema' => ['description' => 'The resource group ID.'."\n" + ."\n" + .'For more information about resource groups, see [What is a resource group?](~~2381067~~).', 'type' => 'string', 'required' => false, 'example' => 'rg-acfmxazffggds****', 'title' => ''], + ], + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request. 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. If you do not specify this parameter, the system automatically uses the RequestId value as the ClientToken value. The RequestId value is different for each API request.', 'type' => 'string', 'required' => false, 'example' => '0c593ea1-3bea-11e9-b96b-88e9fe6****', 'title' => ''], + ], + [ + 'name' => 'Tag', + 'in' => 'query', + 'style' => 'repeatList', + 'schema' => [ + 'description' => 'The tags of the resource.', + 'type' => 'array', + 'items' => [ + 'description' => 'The tags of the resource.', + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => 'The tag key of the resource. You can specify up to 20 tag keys. The tag key cannot be an empty string.'."\n" + ."\n" + .'The tag key can be up to 128 characters in length and cannot start with `aliyun` or `acs:`. It cannot contain `http://` or `https://`.', 'type' => 'string', 'required' => false, 'example' => 'FinanceDept', 'title' => ''], + 'Value' => ['description' => 'The tag value of the resource. You can specify up to 20 tag values. The tag value can be an empty string.'."\n" + ."\n" + .'The tag value can be up to 128 characters in length and cannot start with `aliyun` or `acs:`. It cannot contain `http://` or `https://`.', 'type' => 'string', 'required' => false, 'example' => 'FinanceJoshua', 'title' => ''], ], + 'required' => false, + 'title' => '', + 'example' => '', ], + 'required' => false, + 'maxItems' => 21, + 'title' => '', + 'example' => '', ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'OperationFailed.AttachmentNotExist', - 'errorMessage' => 'The current VPC is not attahced to a DHCP options set.', - ], - [ - 'errorCode' => 'IncorrectStatus.VpcDhcpOptionsSet', - 'errorMessage' => 'The dhcpOptionsSet status of VPC does not support this operation.', - ], - [ - 'errorCode' => 'AttrMismatching.VpcDhcpOptionsSetId', - 'errorMessage' => 'The dhcpOptionsSetId does not match the VPC.', - ], - [ - 'errorCode' => 'TaskConflict', - 'errorMessage' => 'The operation is too frequent. Please wait a moment and try again.', - ], - [ - 'errorCode' => 'InvalidVpcId.NotFound', - 'errorMessage' => 'Specified value of VpcId is not found in our record.', - ], - [ - 'errorCode' => 'InvalidDhcpOptionsSetId.NotFound', - 'errorMessage' => 'The specified dhcpOptionsSetId does not exist.', - ], - [ - 'errorCode' => 'IncorrectStatus.DhcpOptionsSet', - 'errorMessage' => 'The DhcpOptionsSet status does not support this operation.', + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => '', + 'description' => 'Schema of Response', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['title' => '', 'description' => 'Id of the request', 'type' => 'string', 'example' => '8AA5CE21-2E6A-4530-BDF5-F055849476E6'], + 'RouteTargetGroupId' => ['description' => 'The instance ID of the route target group.', 'type' => 'string', 'example' => 'rtg-xxxx', 'title' => ''], + ], + 'example' => '', ], ], ], - 'staticInfo' => [ - 'returnType' => 'asynchronous', - 'callback' => 'Vpc::2016-04-28::GetDhcpOptionsSet', - 'callbackInterval' => 3000, - 'maxCallbackTimes' => 10, - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"0ED8D006-F706-4D23-88ED-E11ED28DCAC0\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 0ED8D006-F706-4D23-88ED-E11ED28DCAC0\\n","errorExample":""}]', - 'title' => 'ReplaceVpcDhcpOptionsSet', - 'description' => '* The **ReplaceVpcDhcpOptionsSet** operation is asynchronous. After you send the request, the system returns a request ID. However, the operation is still being performed in the system background. You can call the [DescribeVpcAttribute](~~94565~~) operation to query the status of a DHCP options set:'."\n" + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'UnsupportedFeature.RouteTargetGroup', 'errorMessage' => 'The feature of RouteTargetGroup is not supported.', 'description' => 'The feature of RouteTargetGroup is not supported.'], + ['errorCode' => 'Mismatch.GroupVpcIdAndInstanceVpcId', 'errorMessage' => 'The RouteTargetGroup VPC %s and the RouteTargetConfig VPC %s are mismatched.', 'description' => 'The VPC to which the route target group belongs is different from the VPC to which the route target configuration instance belongs.'], + ['errorCode' => 'OperationDenied.MemberWithSameAz', 'errorMessage' => 'The operation is not allowed because of all members being in the same availability zone.', 'description' => 'The operation is not allowed because of all members being in the same availability zone.'], + ['errorCode' => 'InvalidVpcId.NotFound', 'errorMessage' => 'Specified value of VpcId is not found in our record.', 'description' => ''], + ['errorCode' => 'ResourceNotFound.GatewayLoadBalancerEndpoint', 'errorMessage' => 'GatewayLoadBalancerEndpoint instance %s not found.', 'description' => ''], + ['errorCode' => 'QuotaExceeded.RouteTargetGroup', 'errorMessage' => 'The quota of %s is exceeded, usage %s/%s.', 'description' => 'The quota of %s is exceeded, usage %s/%s.'], + ['errorCode' => 'OperationDenied.NatGatewayNotSingleAZ', 'errorMessage' => 'NAT gateway must be in SingleAZ mode.', 'description' => 'A route target group only supports NAT gateways of a single AZ type.'], + ['errorCode' => 'OperationDenied.NatGatewayIcmpReplyDisabled', 'errorMessage' => 'NAT gateway ICMP reply is disabled.', 'description' => 'The NAT gateway in the route target group must enable the ICMP return function to ensure that ICMP detection packets can be responded to normally.'], + ['errorCode' => 'UnsupportedFeature.RouteTargetGroupForNat', 'errorMessage' => 'This region currently does not support NAT gateways as route target group members.', 'description' => 'The region does not support the NAT Gateway as a member of the route target group.'], + ['errorCode' => 'ResourceNotFound.NatGatewayVSwitch', 'errorMessage' => 'The VSwitch information associated with the selected NAT gateway was not found.', 'description' => 'VSwitch information associated with the selected NAT gateway was not found.'], + ['errorCode' => 'ResourceNotFound.NatGateway', 'errorMessage' => 'The selected NAT gateway was not found when creating or modifying the route target group.', 'description' => 'The selected NAT gateway resource is not discovered when creating or modifying the routing target group.'], + ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'Create a route target group', + 'summary' => 'Creates a route target group instance.', + 'description' => '- **CreateRouteTargetGroup** is an asynchronous operation. After you invoke this operation, the system returns an instance ID, but the route target group instance is not yet created. The creation node continues in the background. You can invoke **ListRouteTargetGroup** to query the creation status of the routing target group:'."\n" + .' - If the routing target group is in the **Pending** state, the routing target group is being created.'."\n" + .' - If the routing target group is in the **Available**, **Unavailable**, **Switched**, or **Abnormal** state, the routing target group is created.'."\n" ."\n" - .' * If the DHCP options set is in the **Pending** state, the DHCP options set is being replaced.'."\n" - .' * If the DHCP options set is in the **InUse** state, the DHCP options set is replaced.'."\n" + .'- **Active/standby pattern**: When you create a routing target group, configure primary and secondary instances that are in different zones and of the same type.'."\n" ."\n" - .'* You cannot repeatedly call the **ReplaceVpcDhcpOptionsSet** operation to replace the DHCP options set associated with a VPC within the specified period of time.', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'UpdateDhcpOptionsSetAttribute' => [ - 'summary' => 'Modifies the configuration of a DHCP options set.', - 'methods' => [ - 'post', - 'get', + .'- **Primary instance**: The weight is 100. The primary instance handles all traffic under normal conditions and takes effect when health checks are successful.'."\n" + ."\n" + .'- **Secondary instance**: The weight is 0. The secondary instance takes over traffic when the primary instance fails and serves as disaster recovery and backup.', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CreateRouteTargetGroup'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'vpc:CreateRouteTargetGroup', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'RouteTargetGroup', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:routetargetgroup/*'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"8AA5CE21-2E6A-4530-BDF5-F055849476E6\\",\\n \\"RouteTargetGroupId\\": \\"rtg-xxxx\\"\\n}","type":"json"}]', + ], + 'CreateRouterInterface' => [ + 'summary' => 'Creates a router interface.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'readAndWrite', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'update', - 'riskType' => 'none', - 'chargeType' => 'free', - ], + 'systemTags' => ['operationType' => 'create', 'riskType' => 'none', 'chargeType' => 'paid'], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The region where the DHCP options set is deployed. You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The ID of the region to which the router interface belongs.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to obtain the region ID.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'DhcpOptionsSetId', + 'name' => 'Role', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the DHCP options set.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'dopt-o6w0df4epg9zo8isy****', - ], + 'schema' => ['description' => 'The role of the router interface. Valid values:'."\n" + ."\n" + .'* **InitiatingSide**: requester'."\n" + .'* **AcceptingSide**: acceptor'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'InitiatingSide', 'title' => ''], ], [ - 'name' => 'DomainNameServers', + 'name' => 'OppositeRegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The IP address of the DNS server. You can enter at most four DNS server IP addresses. Separate IP addresses with commas (,).'."\n" - ."\n" - .'> If you do not specify a DNS server IP address, Elastic Compute Service (ECS) instances use the IP addresses of the Alibaba Cloud DNS servers, which are 100.100.2.136 and 100.100.2.138.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '192.XX.XX.123', - ], + 'schema' => ['description' => 'The ID of the region in which the acceptor is deployed.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-shanghai', 'title' => ''], ], [ - 'name' => 'DomainName', + 'name' => 'Spec', 'in' => 'query', - 'schema' => [ - 'description' => 'The root domain. For example, you can set the value to example.com.'."\n" - ."\n" - .'After a DHCP options set is associated with a virtual private cloud (VPC), the root domain in the DHCP options set is automatically synchronized with the ECS instances in the VPC.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'example.com', - ], + 'schema' => ['description' => 'The specification of the router interface and the corresponding bandwidth. Valid values:'."\n" + ."\n" + .'* **Mini.2**: 2 Mbit/s'."\n" + .'* **Mini.5**: 5 Mbit/s'."\n" + .'* **Small.1**: 10 Mbit/s'."\n" + .'* **Small.2**: 20 Mbit/s'."\n" + .'* **Small.5**: 50 Mbit/s'."\n" + .'* **Middle.1**: 100 Mbit/s'."\n" + .'* **Middle.2**: 200 Mbit/s'."\n" + .'* **Middle.5**: 500 Mbit/s'."\n" + .'* **Large.1**: 1,000 Mbit/s'."\n" + .'* **Large.2**: 2,000 Mbit/s'."\n" + .'* **Large.5**: 5,000 Mbit/s'."\n" + .'* **Xlarge.1**: 10,000 Mbit/s'."\n" + ."\n" + .'> If **Role** is set to **AcceptingSide**, set **Spec** to **Negative**. This indicates that you do not need to specify the specification when you create an acceptor router interface.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'Mini.2', 'title' => ''], ], [ - 'name' => 'DhcpOptionsSetName', + 'name' => 'RouterType', 'in' => 'query', - 'schema' => [ - 'description' => 'The name of the DHCP options set.'."\n" - ."\n" - .'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.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'name', - ], + 'schema' => ['description' => 'The type of router that is associated with the router interface. Valid values:'."\n" + ."\n" + .'* **VRouter**'."\n" + .'* **VBR**'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'VRouter', 'title' => ''], ], [ - 'name' => 'DhcpOptionsSetDescription', + 'name' => 'RouterId', 'in' => 'query', - 'schema' => [ - 'description' => 'Enter a description for the DHCP options set.'."\n" - ."\n" - .'The description must be 2 to 256 characters in length. It must start with a letter and cannot start with `http://` or `https://`. You can also leave the description empty.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'description', - ], + 'schema' => ['description' => 'The ID of the router that is associated with the router interface.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'vbr-m5ebm6g9ptc9mly1c****', 'title' => ''], + ], + [ + 'name' => 'OppositeInterfaceId', + 'in' => 'query', + 'schema' => ['description' => 'The ID of the peer router interface.'."\n", 'type' => 'string', 'required' => false, 'example' => 'ri-2zeo3xzyf38r4urzd****', 'title' => ''], + ], + [ + 'name' => 'OppositeRouterId', + 'in' => 'query', + 'schema' => ['description' => 'The ID of the peer router.'."\n", 'type' => 'string', 'required' => false, 'example' => 'vrt-bp1lhl0taikrteen8****', 'title' => ''], + ], + [ + 'name' => 'OppositeRouterType', + 'in' => 'query', + 'schema' => ['description' => 'The type of router that is associated with the peer router interface. Valid values:'."\n" + ."\n" + .'* **VRouter**'."\n" + .'* **VBR**'."\n", 'type' => 'string', 'required' => false, 'example' => 'VRouter', 'default' => 'VRouter', 'title' => ''], + ], + [ + 'name' => 'OppositeInterfaceOwnerId', + 'in' => 'query', + 'schema' => ['description' => 'The ID of the Alibaba Cloud account to which the peer router interface belongs.'."\n", 'type' => 'string', 'required' => false, 'example' => '253460731706911258', 'title' => ''], + ], + [ + 'name' => 'HealthCheckSourceIp', + 'in' => 'query', + 'schema' => ['description' => 'The source IP address that is used to perform health checks. The source IP address must be an idle IP address of the local virtual private cloud (VPC).'."\n" + ."\n" + .'> You can set this parameter when an Express Connect circuit is used.'."\n", 'type' => 'string', 'required' => false, 'example' => '192.168.0.6', 'title' => ''], + ], + [ + 'name' => 'HealthCheckTargetIp', + 'in' => 'query', + 'schema' => ['description' => 'The destination IP address that is used to perform health checks.'."\n" + ."\n" + .'> This parameter is required if you specify **HealthCheckSourceIp**'."\n", 'type' => 'string', 'required' => false, 'example' => '192.168.0.8', 'title' => ''], + ], + [ + 'name' => 'AccessPointId', + 'in' => 'query', + 'schema' => ['description' => 'The ID of the access point to which the VBR belongs.'."\n" + ."\n" + .'You can call the [DescribeAccessPoints](~~36062~~) operation to obtain the IDs of access points.'."\n" + ."\n" + .'> This parameter is required if the VBR is connected to an Express Connect circuit.'."\n", 'type' => 'string', 'required' => false, 'example' => 'ap-cn-hangzhou-yh-ts-A', 'title' => ''], + ], + [ + 'name' => 'OppositeAccessPointId', + 'in' => 'query', + 'schema' => ['description' => 'The ID of the access point to which the peer belongs.'."\n" + ."\n" + .'> This parameter is required if the peer router interface is associated with a VBR. The specified value cannot be changed after the router interface is created.'."\n", 'type' => 'string', 'required' => false, 'example' => 'ap-cn-shanghai-nt-aligroup-C', 'title' => ''], + ], + [ + 'name' => 'Description', + 'in' => 'query', + 'schema' => ['description' => 'The description of the router interface.'."\n" + ."\n" + .'The description must be 2 to 256 characters in length. It must start with a letter but cannot start with `http://` or `https://`.'."\n", 'type' => 'string', 'required' => false, 'example' => 'abcabc', 'title' => ''], + ], + [ + 'name' => 'Name', + 'in' => 'query', + 'schema' => ['description' => 'The name of the router interface.'."\n" + ."\n" + .'The name must be 2 to 128 characters in length, and can contain letters, digits, periods (.), underscores (\\_), and hyphens (-).'."\n", 'type' => 'string', 'required' => false, 'example' => 'abc', 'title' => ''], + ], + [ + 'name' => 'Period', + 'in' => 'query', + 'schema' => ['description' => 'The subscription duration. Valid values:'."\n" + ."\n" + .'* Valid values when PricingCycle is set to Month: **1 to 9**.'."\n" + .'* Valid values when PricingCycle is set to Year: **1 to 3**.'."\n" + ."\n" + .'> This parameter is required if **InstanceChargeType** is set to **PrePaid**.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '3', 'title' => ''], + ], + [ + 'name' => 'InstanceChargeType', + 'in' => 'query', + 'schema' => ['description' => 'The billing method of the router interface. Valid values:'."\n" + ."\n" + .'* **PrePaid**: subscription'."\n" + .'* **PostPaid**: pay-as-you-go'."\n", 'type' => 'string', 'required' => false, 'example' => 'PrePaid', 'title' => ''], + ], + [ + 'name' => 'AutoPay', + 'in' => 'query', + 'schema' => ['description' => 'Specifies whether to enable automatic payment. Valid values:'."\n" + ."\n" + .'* **false** (default): The automatic payment is disabled. If you select this option, you must go to the Order Center to complete the payment after an order is generated.'."\n" + .'* **true**: The automatic payment is enabled. Payments are automatically complete after an order is generated.'."\n" + ."\n" + .'> This parameter is required if **InstanceChargeType** is set to **PrePaid**.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], + ], + [ + 'name' => 'PricingCycle', + 'in' => 'query', + 'schema' => ['description' => 'The billing cycle of the subscription. Valid values:'."\n" + ."\n" + .'* **Month** (default)'."\n" + .'* **Year**'."\n" + ."\n" + .'> This parameter is required if **InstanceChargeType** is set to **PrePaid**.'."\n", 'type' => 'string', 'required' => false, 'example' => 'Month', 'title' => ''], ], [ 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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.'."\n" - ."\n" - .'> If you do not set this parameter, **ClientToken** is set to the value of **RequestId**. The value of **RequestId** for each API request may be different.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '0c593ea1-3bea-11e9-b96b-88e9fe637760', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'You can use the client to generate the token, but you must make sure that the token is unique among different requests.'."\n" + ."\n" + .'> 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.'."\n", 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-426655440000', 'title' => ''], ], [ - 'name' => 'DryRun', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to perform a dry run. Valid values:'."\n" - ."\n" - .'**true**: performs a dry run. The system checks the required parameters, request format, and 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.'."\n" - ."\n" - .'**false** (default): performs a dry run and sends the request. If the request passes the dry run, a 2xx HTTP status code is returned and the operation is performed.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'You can use the client to generate the token, but you must make sure that the token is unique among different requests.'."\n" + ."\n" + .'> 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.'."\n", 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-426655440000', 'title' => ''], ], [ - 'name' => 'LeaseTime', + 'name' => 'FastLinkMode', 'in' => 'query', - 'schema' => [ - 'description' => 'The lease time of the IPv4 addresses for the DHCP options set.'."\n" - ."\n" - .'* If you use hours as the unit, valid values are **24h to 1176h** and **87600h to 175200h**. Default value: **87600h**.'."\n" - .'* If you use days as the unit, valid values are **1d to 49d** and **3650d to 7300d**. Default value: **3650d**.'."\n" - ."\n" - .'> If you specify a value, you must also specify the unit.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '3650d', - ], + 'allowEmptyValue' => true, + 'schema' => ['description' => 'Specifies whether the VBR that is created in the Fast Link mode is uplinked to the router interface. The Fast Link mode helps automatically connect router interfaces that are created for the VBR and its peer VPC. Valid values:'."\n" + ."\n" + .'* **true**'."\n" + .'* **false**'."\n" + ."\n" + .'> '."\n" + ."\n" + .'* This parameter takes effect only if **RouterType** is set to **VBR** and **OppositeRouterType** is set to **VRouter**.'."\n" + ."\n" + .'* If **FastLinkMode** is set to **true**, **Role** must be set to **InitiatingSide**. In this case, **AccessPointId**, **OppositeRouterType**, **OpppsiteRouterId**, and **OppositeInterfaceOwnerId** are required.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false', 'default' => 'false', 'title' => ''], ], [ - 'name' => 'Ipv6LeaseTime', + 'name' => 'AutoRenew', + 'in' => 'query', + 'schema' => ['description' => 'Specifies whether to enable auto-renewal. Valid values:'."\n" + ."\n" + .'* **false** (default)'."\n" + .'* **true**'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false', 'default' => 'false', 'title' => ''], + ], + [ + 'name' => 'ResourceGroupId', 'in' => 'query', + 'schema' => ['description' => 'The ID of the resource group.'."\n" + ."\n" + .'For more information about resource group, see [What is Resource Management?](~~94475~~)'."\n", 'type' => 'string', 'required' => false, 'example' => 'rg-acfmxazb4ph6aiy****', 'title' => ''], + ], + [ + 'name' => 'Tags', + 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => 'The lease time of the IPv6 addresses for the DHCP options set.'."\n" - ."\n" - .'* If you use hours as the unit, valid values are **24h to 1176h** and **87600h to 175200h**. Default value: **87600h**.'."\n" - .'* If you use days as the unit, valid values are **1d to 49d** and **3650d to 7300d**. Default value: **3650d**.'."\n" - ."\n" - .'> If you specify a value, you must also specify the unit.'."\n", - 'type' => 'string', + 'description' => 'The tag to add to the resource.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => 'The tag key to add to the resource. You must enter at least one tag key. You can specify up to 20 tag keys. The tag key cannot be an empty string.'."\n" + ."\n" + .'A tag key can be at most 128 characters in length. It cannot start with `aliyun` or `acs:`, and cannot contain `http://` or `https://`.'."\n", 'type' => 'string', 'required' => false, 'example' => 'FinanceDept', 'title' => ''], + 'Value' => ['description' => 'The tag value to add to the resource. You can specify up to 20 tag values. The tag value can be an empty string.'."\n" + ."\n" + .'The tag value can be up to 128 characters in length and cannot start with `acs:` or `aliyun`. It cannot contain `http://` or `https://`.'."\n", 'type' => 'string', 'required' => false, 'example' => 'FinanceJoshua', 'title' => ''], + ], + 'required' => false, + 'title' => '', + 'example' => '', + ], 'required' => false, - 'example' => '3650d', + 'maxItems' => 20, + 'title' => '', + 'example' => '', ], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => '', + 'description' => 'The request ID.'."\n", 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => '0ED8D006-F706-4D23-88ED-E11ED28DCAC0', - ], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '079874CD-AEC1-43E6-AC03-ADD96B6E4907', 'title' => ''], + 'OrderId' => ['description' => 'The order number. This parameter is returned if InstanceChargeType is set to PrePaid.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '20210101123456', 'title' => ''], + 'RouterInterfaceId' => ['description' => 'The ID of the router interface.'."\n", 'type' => 'string', 'example' => 'ri-2ze7fbuohm****', 'title' => ''], ], + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidDhcpOptionsSetId.NotFound', - 'errorMessage' => 'The specified dhcpOptionsSetId does not exist.', - ], - [ - 'errorCode' => 'IncorrectStatus.DhcpOptionsSet', - 'errorMessage' => 'The DhcpOptionsSet status does not support this operation.', - ], - [ - 'errorCode' => 'IllegalParam.DomainNameServers', - 'errorMessage' => 'The specified DomainNameServers is invalid.', - ], - [ - 'errorCode' => 'IllegalParam.DomainName', - 'errorMessage' => 'The specified DomainName is invalid.', - ], - [ - 'errorCode' => 'IllegalParam.DhcpOptionsSetName', - 'errorMessage' => 'The specified DhcpOptionsSetName is invalid.', - ], - [ - 'errorCode' => 'IllegalParam.DhcpOptionsSetDescription', - 'errorMessage' => 'The specified DhcpOptionsSetDescription is invalid.', - ], - [ - 'errorCode' => 'OperationUnsupported.DhcpLeaseTime', - 'errorMessage' => 'The DhcpOptionsSet of this region does not support custom LeaseTime.', - ], - [ - 'errorCode' => 'OperationUnsupported.DhcpOptionsSet', - 'errorMessage' => 'The DHCP options set feature in this region is not supported.', - ], - [ - 'errorCode' => 'OperationDenied.ModifyDefaultDhcpOptionsSet', - 'errorMessage' => 'The default DHCP options set is not allowed to be modified.', - ], - [ - 'errorCode' => 'InvalidRegionId.NotFound', - 'errorMessage' => 'The specified RegionId does not exist.', - ], + ['errorCode' => 'InvalidPrice.NotFound', 'errorMessage' => 'Pricing plan result not found.', 'description' => 'The Price parameter is set to an invalid value.'], + ['errorCode' => 'InvalidAliuid', 'errorMessage' => 'Invalid Aliuid.', 'description' => 'The Aliuid parameter is set to an invalid value.'], + ['errorCode' => 'InvalidRole.ValueNotSupported', 'errorMessage' => 'The specified Role is not valid.', 'description' => ''], + ['errorCode' => 'InvalidSpec.ValudNotSupported', 'errorMessage' => 'The specified Spec is not supported.', 'description' => ''], + ['errorCode' => 'InvalidRouterType.ValueNotSupported', 'errorMessage' => 'The specified RouterType is not valid.', 'description' => ''], + ['errorCode' => 'InvalidName.Malformed', 'errorMessage' => 'The specified "Name" is not valid.', 'description' => ''], + ['errorCode' => 'Forbidden.BillsOutstanding', 'errorMessage' => 'You cannot create more RouterInterface because you have bills outstanding.', 'description' => ''], + ['errorCode' => 'LimitationExceed.InterfaceNumberOnRouter', 'errorMessage' => 'Total number of RouterInterfaces on a Router exceeded.', 'description' => ''], + ['errorCode' => 'Forbidden.NotInRouterInterfaceCreateWhitelist', 'errorMessage' => 'Not in router interface create whitelist.', 'description' => ''], + ['errorCode' => 'RI_CREATE_ONE_LIMIT_BY_SYNC', 'errorMessage' => 'Create ri only one limit by sync.', 'description' => ''], + ['errorCode' => 'InvalidAccessPoint.ValueNotAllowed', 'errorMessage' => 'The non-vbr router interface cannot have access point configured.', 'description' => ''], + ['errorCode' => 'InvalidParam.NotFound', 'errorMessage' => 'Parameter must not be null,uid, bid,regionNo, remoteRegionNo, routerId or accessPointId', 'description' => 'The parameter value cannot be null.'], + ['errorCode' => 'InvalidAccessPoint.NotMatch', 'errorMessage' => 'The accessPoint id is not matched', 'description' => ''], + ['errorCode' => 'InvalidAccessPoint.NotExist', 'errorMessage' => 'The accessPoint not exit', 'description' => ''], + ['errorCode' => 'INVAID_VBR_STATUS', 'errorMessage' => 'VBR status must be active', 'description' => ''], + ['errorCode' => 'IncorrectStatus.CenStatus', 'errorMessage' => 'Cen status must not be middle status.', 'description' => 'Check the status of the CEN instance.'], + ['errorCode' => 'Forbidden.AcceptRoleNotSupportPrePay', 'errorMessage' => 'Acception side ri not support chargetype for prepaid.', 'description' => 'The subscription billing method is not supported.'], + ['errorCode' => 'InvalidRouterInterfaceSpec.Malformed', 'errorMessage' => 'Specified RouterInterface spec is not valid.', 'description' => 'The RouterInterface Spec parameter is set to an invalid value.'], + ['errorCode' => 'VpcSubnet.NotFound', 'errorMessage' => 'Vpc subnet not exist.', 'description' => 'The VPC subnet does not exist.'], + ['errorCode' => 'IllegalParam.HealthcheckIp', 'errorMessage' => 'Healthcheck ip cannot equal with instance ip.', 'description' => 'The IP address configured for health checks cannot be the same as the IP address of the instance.'], + ['errorCode' => 'OperationFailed.HcForInvalidRiType', 'errorMessage' => 'Healthchecksourceip and healthchecktargetip is only valid for vr ri that is connected to vbr.', 'description' => 'The IP address configured for health checks is invalid.'], + ['errorCode' => 'OperationFailed.SyncOrderToSub', 'errorMessage' => 'SyncOrderToSub error.', 'description' => 'The operation failed.'], + ['errorCode' => 'IllegalParam.CrossBorderBandwidth', 'errorMessage' => 'CrossBorder bandwidth error.', 'description' => 'The inter-region bandwidth plan is invalid.'], + ['errorCode' => 'IllegalParam.VRouterType', 'errorMessage' => 'The VRouterType is not supported.', 'description' => 'The VRouterType parameter is set to an invalid value.'], + ['errorCode' => 'IllegalParam.Spec', 'errorMessage' => 'The spec is illegal.', 'description' => 'The spec parameter is set to an invalid value.'], + ['errorCode' => 'Forbidden.CrossBorder', 'errorMessage' => 'User not authorized to create cross border routerInterface.', 'description' => 'You do not have the permissions to create a cross-border router interface.'], + ['errorCode' => 'InvalidRouterId.NotFound', 'errorMessage' => 'Param is not valid,this user does not have this router or aliuid bid regionNo and routerId must have something wrong.', 'description' => 'The RouterId parameter is set to an invalid value.'], + ['errorCode' => 'InvalidCommodity.NotFound', 'errorMessage' => 'Commodity is not exist.', 'description' => 'The Commodity parameter is set to an invalid value.'], + ['errorCode' => 'InvalidRouterInterfaceChargeType.Malformed', 'errorMessage' => 'Specified RouterInterface ChargeType is not valid.', 'description' => 'The RouterInterface ChargeType parameter is set to an invalid value.'], + ['errorCode' => 'IllegalParam.RegionId', 'errorMessage' => 'The specified regionId is illegal.', 'description' => 'The regionId parameter is set to an invalid value.'], + ['errorCode' => 'PAY.MAYI_WITHHOLDING_AGREEMENT_ILLEGAL', 'errorMessage' => 'User withhoding argeement is illegal.', 'description' => ''], + ['errorCode' => 'QuotaExceeded', 'errorMessage' => 'RiPerUser quota exceeded', 'description' => ''], + ['errorCode' => 'OperationFailed.PconnTrafficNotEnable', 'errorMessage' => 'The operation is failed because of PconnTrafficNotEnable.', 'description' => 'Billing for outbound data transfer is disabled.'], + ['errorCode' => 'InvalidRegionId.NotFound', 'errorMessage' => 'The regionId provided does not exist in ec region list.', 'description' => ''], + ['errorCode' => 'ResourceNotInResourceGroup', 'errorMessage' => 'The specified resource is not in the specified ResourceGroup.', 'description' => 'The specified resource does not belong to the resource group.'], + ['errorCode' => 'HaveConnectionBetweenRouters', 'errorMessage' => 'Have connection between routers', 'description' => 'A connection is established between the two routers.'], + ['errorCode' => 'InvalidDescription.Malformed', 'errorMessage' => 'The specified "Description" is not valid.', 'description' => 'The description can be 2 to 256 characters in length and cannot start with http:// and https.'], + ['errorCode' => 'InvalidBandwidth.NotEnough', 'errorMessage' => 'Bandwidth not enough.', 'description' => 'The bandwidth plan has insufficient bandwidth.'], + ['errorCode' => 'ForbiddenAction', 'errorMessage' => 'The user does not support this action.', 'description' => 'You do not have the required permissions.'], + ['errorCode' => 'OperationFailed.NotSupportIPv6', 'errorMessage' => 'Router interface not support IPv6.', 'description' => 'The router interface does not support IPv6.'], + ['errorCode' => 'InvalidParam.AvailableZoneId', 'errorMessage' => 'The specified AvailableZoneId did not retrieve the corresponding cluster IP address.', 'description' => 'The specified AvailableZoneId does not obtain the corresponding cluster IP address.'], + ['errorCode' => 'OperationFailed.NoAvailableAmount', 'errorMessage' => 'The available amount of your account is less than 0, please recharge before attempting to purchase.', 'description' => 'Your account balance is negative. Top up your account before you can make a purchase.'], + ['errorCode' => 'OperationFailed.OperationLocked', 'errorMessage' => 'Operation failed because OperationLocked.', 'description' => 'The operation failed because the instance is locked due to O&M.'], + ['errorCode' => 'OperationFailed.InvalidEcGrant', 'errorMessage' => 'The VBR have no grant to create EC.', 'description' => 'The VBR instance is not grant by the VPC instance. Please try again after grant.'], + ['errorCode' => 'OperationFailed.CannotConnectOtherOwnerInstance', 'errorMessage' => 'Can not connect with other owner VPC or CEN.', 'description' => 'Failed to bind the current resource to another account\'s VPC or CEN. Check whether you have the relevant permissions and try again.'], + ['errorCode' => 'InvalidParams.NotNull', 'errorMessage' => 'params must not null.', 'description' => 'The parameter is required.'], + ], + 404 => [ + ['errorCode' => 'InvalidRegionId.NotFound', 'errorMessage' => 'The regionId provided does not exist in our records.', 'description' => 'The RegionId parameter is set to an invalid value. Specify a valid value and try again.'], + ['errorCode' => 'InvalidRouterId.NotFound', 'errorMessage' => 'The specified RouterId does not exist in our recored.', 'description' => ''], + ['errorCode' => 'InvalidRouterId.AttacedToCEN', 'errorMessage' => 'Can not create ri when attaced to CEN.', 'description' => 'You cannot attach the router interface to the CEN instance.'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"0ED8D006-F706-4D23-88ED-E11ED28DCAC0\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 0ED8D006-F706-4D23-88ED-E11ED28DCAC0\\n","errorExample":""}]', - 'title' => 'UpdateDhcpOptionsSetAttribute', + 'title' => 'CreateRouterInterface', + 'description' => 'When you call this operation, take note of the following limits:'."\n" + ."\n" + .'* You can create only one pair of interfaces to be connected between two routers.'."\n" + .'* You can create a maximum of five router interfaces for a router.'."\n" + .'* If your Alibaba Cloud account has a router interface with overdue payments, you cannot create new router interfaces.'."\n" + .'* Each destination CIDR block of route entries in the same route table must be unique.'."\n" + .'* A virtual border router (VBR) can serve only as a requester. The VBR must be in the Activated state.'."\n" + .'* You can call this operation to create subscription and pay-as-you-go router interfaces.'."\n", 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2025-03-19T10:32:29.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-06-28T02:56:12.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-05-08T02:53:52.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-04-17T09:28:16.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-12-22T03:57:04.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-12-21T05:47:23.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-09-11T08:51:34.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-07-20T11:21:55.000Z', 'description' => 'Error codes changed, Request parameters changed'], + ['createdAt' => '2023-05-18T06:22:07.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2022-12-05T07:58:08.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2022-09-14T08:06:40.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2022-09-14T08:06:40.000Z', 'description' => 'Error codes changed'], + ], + 'ramActions' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"079874CD-AEC1-43E6-AC03-ADD96B6E4907\\",\\n \\"OrderId\\": 20210101123456,\\n \\"RouterInterfaceId\\": \\"ri-2ze7fbuohm****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 079874CD-AEC1-43E6-AC03-ADD96B6E4907\\n 202008594930117\\n ri-2ze7fbuohm****\\n","errorExample":""}]', ], - 'GetDhcpOptionsSet' => [ - 'summary' => 'Queries a DHCP options set.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'CreateSnatEntry' => [ + 'summary' => 'Adds an SNAT entry to an SNAT table.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', - 'deprecated' => false, + 'operationType' => 'readAndWrite', 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'create', 'riskType' => 'none', 'chargeType' => 'free', + 'abilityTreeCode' => '37638', + 'abilityTreeNodes' => ['FEATUREvpcK3NXU2'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', 'schema' => [ - 'description' => 'The region ID of the DHCP options set that you want to query.'."\n" + 'description' => 'The region ID of the NAT gateway.'."\n" ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.', + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'* ap-northeast-2-pop'."\n" + ."\n" + .' '."\n" + ."\n" + .' :'."\n" + ."\n" + .' '."\n" + ."\n" + .' ap-northeast-2-pop'."\n" + ."\n" + .' '."\n" + ."\n" + .' .'."\n", + 'enumValueTitles' => ['ap-northeast-2-pop' => 'ap-northeast-2-pop'], 'type' => 'string', 'required' => true, 'docRequired' => true, - 'enumValueTitles' => [ - 'ap-southeast-1' => 'ap-southeast-1', - ], 'example' => 'cn-hangzhou', + 'title' => '', ], ], [ - 'name' => 'DhcpOptionsSetId', + 'name' => 'SnatTableId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the DHCP options set.', - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'dopt-o6w0df4epg9zo8isy****', - ], + 'schema' => ['description' => 'The ID of the SNAT table.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'stb-bp190wu8io1vgev****', 'title' => ''], + ], + [ + 'name' => 'SourceVSwitchId', + 'in' => 'query', + 'schema' => ['description' => 'The ID of the vSwitch.'."\n" + ."\n" + .'* When you add an SNAT entry to an Internet NAT gateway, this parameter specifies that ECS instances in the vSwitch can use the SNAT entry to access the Internet. If you select multiple elastic IP addresses (EIPs) to create an SNAT address pool, connections are hashed to these EIPs. Network traffic may not be evenly distributed to the EIPs because the amount of traffic that passes through each connection varies. We recommend that you associate these EIPs with the same EIP bandwidth plan to prevent service interruptions due to the bandwidth limits on individual EIPs.'."\n" + .'* When you add an SNAT entry to a VPC NAT gateway, this parameter specifies that ECS instances in the vSwitch can use the SNAT entry to access external networks.'."\n", 'type' => 'string', 'required' => false, 'example' => 'vsw-bp1nhx2s9ui5o****', 'title' => ''], + ], + [ + 'name' => 'SourceCIDR', + 'in' => 'query', + 'schema' => ['description' => 'You can specify the CIDR block of a VPC, a vSwitch, or an ECS instance or enter a custom CIDR block.'."\n" + ."\n" + .'You can specify an SNAT entry in the following ways:'."\n" + ."\n" + .'* You can specify the CIDR block of the VPC where the NAT gateway is deployed. Then, all ECS instances in the VPC can access the Internet or external networks by using SNAT.'."\n" + .'* You can specify the CIDR block of a vSwitch, for example, 192.168.1.0/24. Then, the ECS instances in the vSwitch can access the Internet or external networks by using SNAT.'."\n" + .'* You can specify the IP address of an ECS instance, for example, 192.168.1.1/32. Then, the ECS instance can access the Internet or external networks by using SNAT.'."\n" + .'* You can specify a custom CIDR block. Then, all ECS instances within the specified CIDR block can access the Internet or external networks by using SNAT.'."\n" + ."\n" + .'When you add an SNAT entry to an Internet NAT gateway, if **SnatIp** is set to an EIP, the ECS instance uses the specified EIP to access the Internet.'."\n" + ."\n" + .'If **SnatIp** is set to multiple EIPs, the ECS instance randomly selects an EIP specified in the **SnatIp** parameter to access the Internet.'."\n" + ."\n" + .'You cannot specify this parameter and **SourceVSwtichId** at the same time. If **SourceVSwitchId** is specified, you cannot specify **SourceCIDR**. If **SourceCIDR** is specified, you cannot specify **SourceVSwitchId**.'."\n", 'type' => 'string', 'required' => false, 'example' => '10.1.1.0/24', 'title' => ''], + ], + [ + 'name' => 'SnatIp', + 'in' => 'query', + 'schema' => ['description' => '* The EIPs in the SNAT entry when you add an SNAT entry to an Internet NAT gateway. Separate EIPs with commas (,).'."\n" + ."\n" + .'> If you specify multiple EIPs in the SNAT IP address pool, the service connection is allocated to multiple EIPs by using the hashing algorithm. The traffic of each EIP may be different. Therefore, we recommend that you associate the EIPs with an Internet Shared Bandwidth instance to prevent service interruptions caused by bandwidth exhaustion.'."\n" + ."\n" + .'* When you add SNAT entries for a VPC NAT gateway, this parameter specifies the NAT IP addresses in the SNAT entry. Separate multiple NAT IP addresses with commas (,).'."\n", 'type' => 'string', 'required' => false, 'docRequired' => false, 'example' => '47.98.XX.XX', 'title' => ''], + ], + [ + 'name' => 'SnatEntryName', + 'in' => 'query', + 'schema' => ['description' => 'The name of the SNAT entry.'."\n" + ."\n" + .'The name must be 2 to 128 characters in length. It must start with a letter but cannot start with `http://` or `https://`.'."\n", 'type' => 'string', 'required' => false, 'example' => 'SnatEntry-1', 'title' => ''], + ], + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'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.'."\n" + ."\n" + .'**'."\n" + ."\n" + .'**Description** 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.'."\n", 'type' => 'string', 'required' => false, 'example' => '02fb3da4-130e-11e9-8e44****', 'title' => ''], + ], + [ + 'name' => 'EipAffinity', + 'in' => 'query', + 'allowEmptyValue' => true, + 'schema' => ['description' => 'Specifies whether to enable EIP affinity. Valid values:'."\n" + ."\n" + .'* **0**: no'."\n" + .'* **1**: yes'."\n" + ."\n" + .'**'."\n" + ."\n" + .'**Description** After you enable EIP affinity, if multiple EIPs are associated with an SNAT entry, each client uses one EIP to access the Internet. If EIP affinity is disabled, each client uses a random EIP to access the Internet.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1', 'title' => ''], + ], + [ + 'name' => 'NetworkInterfaceId', + 'in' => 'query', + 'allowEmptyValue' => true, + 'schema' => ['description' => 'Elastic Network Interface ID. '."\n" + .'> The IPv4 address set of the elastic network interface will be used as the SNAT address.', 'type' => 'string', 'required' => false, 'example' => 'eni-gw8g131ef2dnbu3k****', 'title' => ''], + ], + [ + 'name' => 'DryRun', + 'in' => 'query', + 'allowEmptyValue' => false, + 'schema' => ['description' => 'Indicates whether to only precheck this request. Values:'."\n" + .'- **true**: Sends a precheck request and does not create an SNAT entry. The precheck includes verifying if the AccessKey is valid, checking the RAM user\'s authorization, and ensuring that all required parameters are filled out. If the precheck fails, the corresponding error is returned. If the precheck passes, the error code `DryRunOperation` is returned.'."\n" + .'- **false** (default): Sends a normal request. After passing the precheck, it returns a 2xx HTTP status code and creates an SNAT entry.', 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => 'The description of the DHCP options set.', + 'description' => 'The ID of the SNAT entry.'."\n", 'type' => 'object', 'properties' => [ - 'DhcpOptionsSetDescription' => [ - 'description' => 'The description of the DHCP options set.'."\n", - 'type' => 'string', - 'example' => 'test', - ], - 'Status' => [ - 'description' => 'The status of the DHCP options set. Valid values:'."\n" - ."\n" - .'* **Available**: available'."\n" - .'* **InUse**: in use'."\n" - .'* **Deleted**: deleted'."\n" - .'* **Pending**: being configured', - 'type' => 'string', - 'example' => 'Available', - ], - 'RequestId' => [ - 'description' => 'The ID of the request.', - 'type' => 'string', - 'example' => '0ED8D006-F706-4D23-88ED-E11ED28DCAC0', - ], - 'DhcpOptionsSetId' => [ - 'description' => 'The ID of the DHCP options set.', - 'type' => 'string', - 'example' => 'dopt-o6w0df4epg9zo8isy****', - ], - 'DhcpOptionsSetName' => [ - 'description' => 'The name of the DHCP options set.', - 'type' => 'string', - 'example' => 'test', - ], - 'OwnerId' => [ - 'description' => 'The ID of the Alibaba Cloud account to which the DHCP options set belongs.', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '283117732402483989', - ], - 'DhcpOptions' => [ - 'description' => 'The configuration information about the DHCP options set.', - 'type' => 'object', - 'properties' => [ - 'DomainNameServers' => [ - 'description' => 'The IP address of the DNS server.', - 'type' => 'string', - 'example' => '192.XX.XX.123', - ], - 'DomainName' => [ - 'description' => 'The suffix of the hostname.', - 'type' => 'string', - 'example' => 'example.com', - ], - 'LeaseTime' => [ - 'description' => 'The lease time of the IPv4 addresses for the DHCP options set.'."\n" - ."\n" - .'* If you use hours as the unit, valid values are **24h to 1176h** and **87600h to 175200h**. Default value: **87600h**.'."\n" - ."\n" - .'* If you use days as the unit, valid values are **1d to 49d** and **3650d to 7300d**. Default value: **3650d**.'."\n" - ."\n", - 'type' => 'string', - 'example' => '3650d', - ], - 'Ipv6LeaseTime' => [ - 'description' => 'The lease time of the IPv6 addresses for the DHCP options set.'."\n" - .' '."\n" - .'* If you use hours as the unit, Valid values are **24h to 1176h** and **87600h to 175200h**. Default value: **87600h**.'."\n" - .'* If you use days as the unit, Valid values are **1d to 49d** and **3650d to 7300d**. Default value: **3650d**.', - 'type' => 'string', - 'example' => '3650d', - ], - ], - ], - 'AssociateVpcs' => [ - 'description' => 'The information about the virtual private cloud (VPC) that is associated with the DHCP options set.', - 'type' => 'array', - 'items' => [ - 'description' => 'The tag list.'."\n", - 'type' => 'object', - 'properties' => [ - 'AssociateStatus' => [ - 'description' => 'The status of the VPC that is associated with the DHCP options set. Valid values:'."\n" - .' '."\n" - .'* **InUse**: in use'."\n" - .'* **Pending**: being configured', - 'type' => 'string', - 'example' => 'InUse', - ], - 'VpcId' => [ - 'description' => 'The ID of the VPC that is associated with the DHCP options set.'."\n", - 'type' => 'string', - 'example' => 'vpc-eb3b54r6otues4tjj****', - ], - ], - ], - ], - 'ResourceGroupId' => [ - 'description' => 'The ID of the resource group.', - 'type' => 'string', - 'example' => 'rg-acfmxazb4ph****', - ], - 'Tags' => [ - 'description' => 'The tag list.', - 'type' => 'array', - 'items' => [ - 'description' => 'The tag list.', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => 'The tag key.', - 'type' => 'string', - 'example' => 'FinanceDept', - ], - 'Value' => [ - 'description' => 'The tag value.', - 'type' => 'string', - 'example' => 'FinanceJoshua', - ], - ], - ], - ], - 'CreationTime' => [ - 'description' => 'create time', - 'type' => 'string', - 'example' => '2025-08-21 ***', - ], + 'SnatEntryId' => ['description' => 'The ID of the SNAT entry.'."\n", 'type' => 'string', 'example' => 'snat-kmd6nv8fy****', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '2315DEB7-5E92-423A-91F7-4C1EC9AD****', 'title' => ''], ], + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidRegionId.NotFound', - 'errorMessage' => 'The specified RegionId does not exist.', - ], + ['errorCode' => 'UnsupportedFeature.PrivateLinkEnabled', 'errorMessage' => 'The feature of PrivateLinkEnabled is not supported.', 'description' => ''], + ['errorCode' => 'InvalidSourceCIDR.Malformed', 'errorMessage' => 'SourceCIDR is illegal.', 'description' => ''], + ['errorCode' => 'NOT_ALLOW_USE_SOURCECIDR_OUTSIDEVPC', 'errorMessage' => 'The User not in sourcecidr_unlimited_outsidevpc white list. Cannot use SourceCidr outside VpcCidr.', 'description' => ''], + ['errorCode' => 'NOT_ALLOW_USE_SOURCECIDR_AUTODEFINE', 'errorMessage' => 'The User not in sourcecidr_unlimited_insidevpc white list. Cannot use SourceCidr auto defined.', 'description' => ''], + ['errorCode' => 'NOT_ALLOW_USE_SOURCECIDR_CONTAINSZERO', 'errorMessage' => 'The User not in sourcecidr_unlimited_outsidevpc_containszero white list. Cannot use SourceCidr outside VpcCidr.', 'description' => ''], + ['errorCode' => 'Forbidden.IpHasBeenUsedInDnat', 'errorMessage' => 'The snat ip can\'t be used. Because it has been used in dnat', 'description' => ''], + ['errorCode' => 'Forbidden.SourceVSwitchId.IncludeHaVip', 'errorMessage' => 'There is some HaVips under specified VSwitch', 'description' => 'The specified vSwitch is associated with HAVIPs.'], + ['errorCode' => 'InvalidSnatIp.Malformed', 'errorMessage' => 'The specified SnatIp is not a valid IP address.', 'description' => ''], + ['errorCode' => 'SNAT_IP_POOL_COUNT_TOO_MANY', 'errorMessage' => 'The Snat pool ip too many.', 'description' => ''], + ['errorCode' => 'Forbidden.SnatEntryCountLimited', 'errorMessage' => 'SNAT entry in the specified SNAT table reach its limit.', 'description' => 'The number of SNAT entries has reached the upper limit.'], + ['errorCode' => 'NOT_ALLOW_USE_SOURCECIDR', 'errorMessage' => 'The User not in nat_scope_unlimited white list. Cannot use SourceCidr param.', 'description' => ''], + ['errorCode' => 'INVALID_PARAMETER', 'errorMessage' => 'The parameter invalid.', 'description' => ''], + ['errorCode' => 'Forbidden.SourceVSwitchId.Duplicated', 'errorMessage' => 'The specified SourceCIDRis duplicated.', 'description' => ''], + ['errorCode' => 'Forbidden.IpUsedInForwardTable', 'errorMessage' => 'The specified SnatIp already used in forward table', 'description' => ''], + ['errorCode' => 'Forbindden', 'errorMessage' => 'The specified Instance already bind eip', 'description' => ''], + ['errorCode' => 'EIP_NOT_SUPPORT_SNAT_POOL', 'errorMessage' => 'The Eip cannot support snat pool', 'description' => ''], + ['errorCode' => 'EIP_NOT_IN_GATEWAY', 'errorMessage' => 'The Eip not in nat gateway', 'description' => ''], + ['errorCode' => 'OperationUnsupported.CidrConflict', 'errorMessage' => 'The specified CIDR block conflicts with an existing SNAT entry.', 'description' => 'The specified CIDR block conflicts with those in existing SNAT entries.'], + ['errorCode' => 'InvalidNatGatewayId.NotFound', 'errorMessage' => 'The NatGateway instance not exist.', 'description' => ''], + ['errorCode' => 'InvalidParameter.Name.Malformed', 'errorMessage' => 'The specified Name is not valid.', 'description' => ''], + ['errorCode' => 'InvalidParameter.SnatIp', 'errorMessage' => 'Ip semgment must be subnet cidr.', 'description' => ''], + ['errorCode' => 'QuotaExceeded.SnatIp', 'errorMessage' => 'Public ip number exceeds quota.', 'description' => ''], + ['errorCode' => 'OperationUnsupported.EipInBinding', 'errorMessage' => 'Create snat entry with eip in associating status is unsupported.', 'description' => 'You cannot use an associated EIP when you create an SNAT entry.'], + ['errorCode' => 'OperationFailed.VSwitchNotInVpc', 'errorMessage' => 'The specified vswitch and natgateway are not in the same vpc.', 'description' => ''], + ['errorCode' => 'QuotaExceeded.SnatEntry', 'errorMessage' => 'SNAT entry in the specified SNAT table reach it?s limit.', 'description' => ''], + ['errorCode' => 'IncorrectStatus.NATGW', 'errorMessage' => 'NATGW status is invalid.', 'description' => 'The NAT gateway is in an invalid state.'], + ['errorCode' => 'IncorrectStatus.VSwitch', 'errorMessage' => 'The specified vSwitch status is invalid.', 'description' => 'The virtual switch status is abnormal.'], + ['errorCode' => 'MissingParam.SnatIp', 'errorMessage' => 'The input parameter SnatIp that is mandatory for processing this request is not supplied.', 'description' => 'You need to specify the SnatIp parameter when creating a Snat rule for public network NAT or private network NAT.'], + ['errorCode' => 'MissingParam.NetworkInterfaceId', 'errorMessage' => 'The input parameter NetworkInterfaceId that is mandatory for processing this request is not supplied.', 'description' => 'You need to specify NetworkInterfaceId parameters when creating a Snat rule for NAT with the private network link service enabled.'], + ['errorCode' => 'ParamExclusive.SnatIpAndNetworkInterfaceId', 'errorMessage' => 'SnatIp and NetworkInterfaceId is mutually exclusive when create a snat entry for nat.', 'description' => 'When you create an SNAT rule for a NAT Gateway instance, you cannot specify the SnatIp parameter and the NetworkInterfaceId parameter at the same time.'], + ['errorCode' => 'IllegalParam.NetworkInterfaceId', 'errorMessage' => 'The param of NetworkInterfaceId is illegal.', 'description' => 'Invalid NetworkInterfaceId value.'], + ['errorCode' => 'OperationUnsupported.EipNatBWPCheck', 'errorMessage' => 'The EIP is not associated with a NAT service plan.', 'description' => 'The EIP is not associated with a NAT service plan.'], + ['errorCode' => 'OperationUnsupported.EipNatGWCheck', 'errorMessage' => 'The operation failed because the EIP is not bound to this NAT Gateway.', 'description' => 'The operation failed because the EIP is not bound to this NAT Gateway.'], + ['errorCode' => 'OperationFailed.SnatIpPoolCbwpRules', 'errorMessage' => 'The operation failed because the SNAT rule IPs are added to multi bandwidth packages.', 'description' => 'The operation failed because the SNAT rule IP address pool was added to multiple bandwidth packages.'], + ['errorCode' => 'IncorrectStatus.SnatEntry', 'errorMessage' => 'The SNAT rule status is invalid. Please try again later.', 'description' => 'The SNAT rule is in the intermediate state, or the status is abnormal. Please try again later.'], + ['errorCode' => 'IncorrectStatus.NatIp', 'errorMessage' => 'NatIp status is invalid, please try again later.', 'description' => 'NatIp is in intermediate state, please try again later.'], + ['errorCode' => 'OperationUnsupported.EipNatIpCheck', 'errorMessage' => 'The operation failed because the EIP is not bound to this NAT gateway.', 'description' => 'The operation failed because the EIP is not bound to this NAT gateway.'], + ['errorCode' => 'OperationFailed.SnatIpPoolBwpRules', 'errorMessage' => 'The operation failed because the IP in Snat entryl was added to multiple NAT bandwidth packets.', 'description' => 'The operation failed because the IP in the SNAT rule IP address pool was added to multiple NAT bandwidth packets.'], + ['errorCode' => 'OperationFailed.SnatIpsCheck', 'errorMessage' => 'The operation fails because some IPs address in the SNAT entry are not added to common bandwidth packet.', 'description' => 'The operation fails because the IP address in the Snat rule IP address pool is not added to the shared bandwidth packet.'], + ], + 404 => [ + ['errorCode' => 'InvalidRegionId.NotFound', 'errorMessage' => 'The specified RegionId does not exist in our records.', 'description' => ''], + ['errorCode' => 'InvalidSnatTableId.NotFound', 'errorMessage' => 'Specified SNAT table does not exist.', 'description' => ''], + ['errorCode' => 'InvalidVSwitchId.NotFound', 'errorMessage' => 'The specified virtual switch does not exists.', 'description' => ''], + ['errorCode' => 'InvalidSnatIp.NotFound', 'errorMessage' => 'Specified SnatIp does not found on the NAT Gateway', 'description' => ''], + ['errorCode' => 'ResourceNotFound.NatGateway', 'errorMessage' => 'The NatGateway instance not exist.', 'description' => 'The NAT gateway does not exist.'], + ['errorCode' => 'ResourceNotFound.NatIp', 'errorMessage' => 'The NatIp instance not exist.', 'description' => ''], + ['errorCode' => 'ResourceNotFound.VSwitch', 'errorMessage' => 'The specified resource of %s is not found.', 'description' => 'The specified vSwitch does not exist, please check your input is correct'], + ], + 500 => [ + ['errorCode' => 'DefaultValidate.Error', 'errorMessage' => 'validte fail.', 'description' => ''], + ['errorCode' => 'OperationFailed.CrateSnatEntryTimeOut', 'errorMessage' => 'Operation failed because create snatEntry timeout.', 'description' => ''], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"DhcpOptionsSetDescription\\": \\"test\\",\\n \\"Status\\": \\"Available\\",\\n \\"RequestId\\": \\"0ED8D006-F706-4D23-88ED-E11ED28DCAC0\\",\\n \\"DhcpOptionsSetId\\": \\"dopt-o6w0df4epg9zo8isy****\\",\\n \\"DhcpOptionsSetName\\": \\"test\\",\\n \\"OwnerId\\": 283117732402484000,\\n \\"DhcpOptions\\": {\\n \\"DomainNameServers\\": \\"192.XX.XX.123\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"LeaseTime\\": \\"3650d\\",\\n \\"Ipv6LeaseTime\\": \\"3650d\\"\\n },\\n \\"AssociateVpcs\\": [\\n {\\n \\"AssociateStatus\\": \\"InUse\\",\\n \\"VpcId\\": \\"vpc-eb3b54r6otues4tjj****\\"\\n }\\n ],\\n \\"ResourceGroupId\\": \\"rg-acfmxazb4ph****\\",\\n \\"Tags\\": [\\n {\\n \\"Key\\": \\"FinanceDept\\",\\n \\"Value\\": \\"FinanceJoshua\\"\\n }\\n ],\\n \\"CreationTime\\": \\"2025-08-21 ***\\"\\n}","errorExample":""},{"type":"xml","example":"\\n test\\n Available\\n 0ED8D006-F706-4D23-88ED-E11ED28DCAC0\\n dopt-o6w0df4epg9zo8isy****\\n test\\n 283117732402484000\\n \\n 192.XX.XX.123\\n example.com\\n 3650d\\n 3650d\\n \\n \\n InUse\\n vpc-eb3b54r6otues4tjj****\\n \\n rg-acfmxazb4ph****\\n \\n FinanceDept\\n FinanceJoshua\\n \\n","errorExample":""}]', - 'title' => 'GetDhcpOptionsSet', + 'title' => 'CreateSnatEntry', + 'description' => 'You can call this operation to add SNAT entries to Internet NAT gateways and Virtual Private Cloud (VPC) NAT gateways. In this topic, a **NAT** gateway refers to both gateway types.'."\n" + ."\n" + .'Before you call this operation, take note of the following limits:'."\n" + ."\n" + .'* **CreateSnatEntry** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call the [DescribeSnatTableEntries](~~42677~~) operation to query the status of the task.'."\n" + ."\n" + .' * If the SNAT entry is in the **Pending** state, the system is adding the SNAT entry. You can only query the status of the SNAT entry, and cannot perform other operations.'."\n" + .' * If the SNAT entry is in the **Available** state, the SNAT entry is added.'."\n" + ."\n" + .'* You cannot repeatedly call the **CreateSnatEntry** operation to add an SNAT entry to an SNAT table within the specified period of time.'."\n" + ."\n" + .'* The vSwitch and Elastic Compute Service (ECS) instance specified in an SNAT entry must be created in the VPC where the NAT gateway is deployed.'."\n" + ."\n" + .'* Each vSwitch or ECS instance can be specified in only one SNAT entry.'."\n" + ."\n" + .'* If a high-availability virtual IP address (HAVIP) exists in a vSwitch, you cannot create SNAT entries.'."\n", 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - 'translator' => 'machine', + 'changeSet' => [ + ['createdAt' => '2024-12-03T02:23:00.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2024-08-09T10:10:00.000Z', 'description' => 'Error codes changed, Request parameters changed'], + ['createdAt' => '2024-01-18T07:07:57.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-09-18T03:27:52.000Z', 'description' => 'Error codes changed, Response parameters changed'], + ['createdAt' => '2023-03-01T06:45:55.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2022-11-07T11:48:28.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2022-07-22T06:28:14.000Z', 'description' => 'Request parameters changed'], + ], + 'ramActions' => [], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"SnatEntryId\\": \\"snat-kmd6nv8fy****\\",\\n \\"RequestId\\": \\"2315DEB7-5E92-423A-91F7-4C1EC9AD****\\"\\n}","type":"json"}]', + 'translator' => 'manual', ], - 'ListDhcpOptionsSets' => [ - 'summary' => 'Queries Dynamic Host Configuration Protocol (DHCP) options sets.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'CreateSslVpnClientCert' => [ + 'summary' => 'Creates an SSL-VPN client certificate by calling the CreateSslVpnClientCert operation.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'readAndWrite', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'get', - 'riskType' => 'none', - 'chargeType' => 'free', - ], + 'systemTags' => ['operationType' => 'create', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'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 and cannot exceed 64 characters in length.'."\n" + ."\n" + .'> If you do not specify this parameter, the system automatically uses the **RequestId** of the API request as the **ClientToken**. The **RequestId** may be different for each API request.', 'type' => 'string', 'required' => false, 'example' => '02fb3da4-130e-11e9-8e44-0016e04115b', 'title' => ''], + ], [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the DHCP options sets that you want to query.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.', - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The region ID of the VPN gateway. '."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the region ID.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'NextToken', + 'name' => 'SslVpnServerId', 'in' => 'query', - 'schema' => [ - 'description' => 'The pagination token that is used in the next request to retrieve a new page of results. Valid values:'."\n" - ."\n" - .'* You do not need to specify this parameter for the first request.'."\n" - ."\n" - .'* You must specify the token that is obtained from the previous query as the value of the **NextToken** parameter.', - 'type' => 'string', - 'required' => false, - 'docRequired' => false, - 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', - ], + 'schema' => ['description' => 'The ID of the SSL-VPN server.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'vss-m5et0q3iy1qex328w****', 'title' => ''], ], [ - 'name' => 'MaxResults', + 'name' => 'Name', 'in' => 'query', + 'schema' => ['description' => 'The name of the client certificate.'."\n" + ."\n" + .'The name must be 1 to 100 characters in length and cannot start with `http://` or `https://`.', 'type' => 'string', 'required' => false, 'example' => 'SslVpnClientCert1', 'title' => ''], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => 'The number of entries per page. Valid values: **1** to **100**. Default value: **10**.', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '100', - 'minimum' => '1', - 'example' => '10', - 'default' => '10', + 'description' => 'The response parameters.', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '606998F0-B94D-48FE-8316-ACA81BB230DA', 'title' => ''], + 'Name' => ['description' => 'The name of the SSL-VPN client certificate.', 'type' => 'string', 'example' => 'SslVpnClientCert', 'title' => ''], + 'SslVpnClientCertId' => ['description' => 'The ID of the SSL-VPN client certificate.', 'type' => 'string', 'example' => 'vsc-m5euof6s5jy8vs5kd****', 'title' => ''], + ], + 'title' => '', + 'example' => '', ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'Resource.QuotaFull', 'errorMessage' => 'The quota of resource is full', 'description' => ''], + ['errorCode' => 'VpnGateway.Configuring', 'errorMessage' => 'The specified service is configuring.', 'description' => ''], + ['errorCode' => 'VpnGateway.FinancialLocked', 'errorMessage' => 'The specified service is financial locked.', 'description' => ''], + ['errorCode' => 'InvalidName', 'errorMessage' => 'The name is not valid', 'description' => ''], + ['errorCode' => 'SslVpnClientCreateTimes.ReachLimits', 'errorMessage' => 'The number of client cert creation operations reaches the upper limit.', 'description' => ''], + ['errorCode' => 'CreateSslCertsQuotaFull.QuotaFull', 'errorMessage' => 'Create the number of SSL certificates that exceed the quota limit.', 'description' => 'Create the number of SSL certificates that exceed the quota limit.'], + ], + 403 => [ + ['errorCode' => 'Forbbiden.SubUser', 'errorMessage' => 'User not authorized to operate on the specified resource as your account is created by another user.', 'description' => ''], + ['errorCode' => 'Forbidden', 'errorMessage' => 'User not authorized to operate on the specified resource.', 'description' => 'You do not have the permissions to manage the specified resource. Apply for the permissions and try again.'], + ], [ - 'name' => 'DomainName', - 'in' => 'query', - 'schema' => [ - 'description' => 'The root domain. For example, you can set the value to example.com.'."\n" - ."\n" - .'After a DHCP options set is associated with a virtual private cloud (VPC), the root domain in the DHCP options set is automatically synchronized with the ECS instances in the VPC.', - 'type' => 'string', - 'required' => false, - 'enumValueTitles' => [ - 'example.com' => 'example.com', + ['errorCode' => 'InvalidSslVpnServerId.NotFound', 'errorMessage' => 'The specified SSL VPN server id does not exist.', 'description' => ''], + ['errorCode' => 'InvalidRegionId.NotFound', 'errorMessage' => 'The specified region is not found during access authentication.', 'description' => 'The specified area is not found during authentication.'], + ], + ], + 'staticInfo' => ['returnType' => 'asynchronous', 'callback' => 'Vpc::2016-04-28::DescribeVpnGateway', 'callbackInterval' => 1000, 'maxCallbackTimes' => 10], + 'title' => 'Create an SSL-VPN client certificate', + 'description' => 'Before you create an SSL-VPN client certificate, make sure that an SSL-VPN server has been created for the VPN gateway instance. For more information, see [CreateSslVpnServer](~~2794075~~).', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2024-01-04T07:17:11.000Z', 'description' => 'Error codes changed'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CreateSslVpnClientCert'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], + ], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'vpc:CreateSslVpnClientCert', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'SslVpnClientCert', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:sslvpnclientcert/*'], + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'SslVpnServer', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:sslvpnserver/{#SslVpnServerId}'], ], - 'example' => 'example.com', ], ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"606998F0-B94D-48FE-8316-ACA81BB230DA\\",\\n \\"Name\\": \\"SslVpnClientCert\\",\\n \\"SslVpnClientCertId\\": \\"vsc-m5euof6s5jy8vs5kd****\\"\\n}","type":"json"}]', + ], + 'CreateSslVpnServer' => [ + 'summary' => 'Creates an SSL server.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'DhcpOptionsSetName', - 'in' => 'query', + 'AK' => [], + ], + ], + 'operationType' => 'readAndWrite', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'create', 'riskType' => 'none', 'chargeType' => 'free'], + 'parameters' => [ + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'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.'."\n" + ."\n" + .'> If you do not specify this parameter, the system automatically uses the **RequestId** of the API request as the **ClientToken**. The **RequestId** may be different for each API request.', 'type' => 'string', 'required' => false, 'example' => '02fb3da4-130e-11e9-8e44-0016e04115b', 'title' => ''], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => ['description' => 'The region ID of the VPN gateway.'."\n" + ."\n" + .'You can call [DescribeRegions](~~36063~~) to query the most recent region list.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-shanghai', 'title' => ''], + ], + [ + 'name' => 'VpnGatewayId', + 'in' => 'query', + 'schema' => ['description' => 'The ID of the VPN gateway.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'vpn-bp1hgim8by0kc9nga****', 'title' => ''], + ], + [ + 'name' => 'Name', + 'in' => 'query', + 'schema' => ['description' => 'The name of the SSL server.'."\n" + ."\n" + .'The name must be 1 to 100 characters in length and cannot start with `http://` or `https://`.', 'type' => 'string', 'required' => false, 'example' => 'sslvpnname', 'title' => ''], + ], + [ + 'name' => 'ClientIpPool', + 'in' => 'query', + 'schema' => ['description' => 'The client CIDR block.'."\n" + ."\n" + .'The client CIDR block is used to allocate IP addresses to virtual network interface controllers (NICs) of clients. It does not refer to the existing internal network CIDR block of the client.'."\n" + ."\n" + .'When a client accesses the local network through an SSL-VPN connection, the VPN gateway allocates an IP address from the specified client CIDR block to the client. The client uses the allocated IP address to access cloud resources.'."\n" + ."\n" + .'When you specify the client CIDR block, make sure that the number of IP addresses in the client CIDR block is at least four times the number of SSL-VPN connections supported by the VPN gateway.'."\n" + ."\n" + .'
'."\n" + .'Click to view the reason'."\n" + ."\n" + .'For example, if you specify 192.168.0.0/24 as the client CIDR block, the system first divides a subnet with a 30-bit subnet mask from the 192.168.0.0/24 CIDR block, such as 192.168.0.4/30, and then allocates one IP address from 192.168.0.4/30 to the client. The remaining three IP addresses are used by the system to ensure network communication. In this case, one client consumes four IP addresses. Therefore, to ensure that all clients can be allocated IP addresses, make sure that the number of IP addresses in the client CIDR block is at least four times the number of SSL-VPN connections supported by the VPN gateway.'."\n" + .'
'."\n" + ."\n" + .'
'."\n" + .'Click to view unsupported CIDR blocks'."\n" + ."\n" + .'- 100.64.0.0 to 100.127.255.255'."\n" + .'- 127.0.0.0 to 127.255.255.255'."\n" + .'- 169.254.0.0 to 169.254.255.255'."\n" + .'- 224.0.0.0 to 239.255.255.255'."\n" + .'- 255.0.0.0 to 255.255.255.255'."\n" + .'
'."\n" + ."\n" + .'
'."\n" + .'Click to view recommended client CIDR blocks for each number of SSL-VPN connections'."\n" + ."\n" + .'- If the number of SSL-VPN connections is 5, the subnet mask of the client CIDR block must be 27 bits or less. Example: 10.0.0.0/27 or 10.0.0.0/26.'."\n" + .'- If the number of SSL-VPN connections is 10, the subnet mask of the client CIDR block must be 26 bits or less. Example: 10.0.0.0/26 or 10.0.0.0/25.'."\n" + .'- If the number of SSL-VPN connections is 20, the subnet mask of the client CIDR block must be 25 bits or less. Example: 10.0.0.0/25 or 10.0.0.0/24.'."\n" + .'- If the number of SSL-VPN connections is 50, the subnet mask of the client CIDR block must be 24 bits or less. Example: 10.0.0.0/24 or 10.0.0.0/23.'."\n" + .'- If the number of SSL-VPN connections is 100, the subnet mask of the client CIDR block must be 23 bits or less. Example: 10.0.0.0/23 or 10.0.0.0/22.'."\n" + .'- If the number of SSL-VPN connections is 200, the subnet mask of the client CIDR block must be 22 bits or less. Example: 10.0.0.0/22 or 10.0.0.0/21.'."\n" + .'- If the number of SSL-VPN connections is 500, the subnet mask of the client CIDR block must be 21 bits or less. Example: 10.0.0.0/21 or 10.0.0.0/20.'."\n" + .'- If the number of SSL-VPN connections is 1000, the subnet mask of the client CIDR block must be 20 bits or less. Example: 10.0.0.0/20 or 10.0.0.0/19.'."\n" + ."\n" + .'
'."\n" + ."\n" + .'> - The subnet mask of the client CIDR block must be 16 to 29 bits.'."\n" + .'> - Make sure that the client CIDR block does not overlap with the local CIDR block, the virtual private cloud (VPC) CIDR block, or any routing CIDR block associated with the client terminal.'."\n" + .'> - When you specify the client CIDR block, use 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16, or their subnets. If you want to specify a public CIDR block as the client CIDR block, set the public CIDR block as a user CIDR block of the VPC to ensure that the VPC can access the public CIDR block. For more information about user CIDR blocks, see [VPC FAQ](~~185311~~).'."\n" + .'> - After the SSL server is created, the system automatically adds the routing of the client CIDR block to the route table of the VPC instance. Do not manually add the routing of the client CIDR block to the route table of the VPC instance. Otherwise, SSL-VPN connection traffic may be abnormal.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '192.168.1.0/24', 'title' => ''], + ], + [ + 'name' => 'LocalSubnet', + 'in' => 'query', + 'schema' => ['description' => 'The local CIDR block.'."\n" + ."\n" + .'The local CIDR block is the CIDR block that the client needs to access through the SSL-VPN connection.'."\n" + ."\n" + .'The local CIDR block can be the CIDR block of a VPC, the CIDR block of a vSwitch, the CIDR block of an on-premises data center that is connected to a VPC through an Express Connect circuit, or the CIDR block of a cloud service such as Object Storage Service (OSS).'."\n" + ."\n" + .'The subnet mask of the local CIDR block must be 8 to 32 bits. The following CIDR blocks cannot be specified as the local CIDR block:'."\n" + ."\n" + .'- 127.0.0.0 to 127.255.255.255'."\n" + .'- 169.254.0.0 to 169.254.255.255'."\n" + .'- 224.0.0.0 to 239.255.255.255'."\n" + .'- 255.0.0.0 to 255.255.255.255.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '10.0.0.0/8', 'title' => ''], + ], + [ + 'name' => 'Proto', + 'in' => 'query', + 'schema' => ['description' => 'The protocol used by the SSL server. Valid values:'."\n" + ."\n" + .'- **TCP** (default): TCP protocol.'."\n" + .'- **UDP**: UDP protocol.', 'type' => 'string', 'required' => false, 'example' => 'UDP', 'title' => ''], + ], + [ + 'name' => 'Cipher', + 'in' => 'query', + 'schema' => ['description' => 'The encryption algorithm used by the SSL-VPN connection.'."\n" + ."\n" + .'- If the client uses Tunnelblick or OpenVPN 2.4.0 or later, the SSL server and the client dynamically negotiate the encryption algorithm and preferentially use the encryption algorithm with the highest security level that is supported by both parties. The encryption algorithm that you specify for the SSL server does not take effect.'."\n" + ."\n" + .'- If the client uses OpenVPN earlier than 2.4.0, the SSL server and the client use the encryption algorithm that you specify for the SSL server. The SSL server supports the following encryption algorithms:'."\n" + ."\n" + .' - **AES-128-CBC** (default): AES-128-CBC algorithm.'."\n" + ."\n" + .' - **AES-192-CBC**: AES-192-CBC algorithm.'."\n" + ."\n" + .' - **AES-256-CBC**: AES-256-CBC algorithm.'."\n" + ."\n" + .' - **none**: no encryption algorithm is used.', 'type' => 'string', 'required' => false, 'example' => 'AES-128-CBC', 'title' => ''], + ], + [ + 'name' => 'Port', + 'in' => 'query', + 'schema' => ['description' => 'The port used by the SSL server. Valid values: **1** to **65535**. Default value: **1194**.'."\n" + ."\n" + .'The following ports are not supported: **22**, **2222**, **22222**, **9000**, **9001**, **9002**, **7505**, **80**, **443**, **53**, **68**, **123**, **4510**, **4560**, **500**, or **4500**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1194', 'title' => ''], + ], + [ + 'name' => 'Compress', + 'in' => 'query', + 'schema' => ['description' => 'Specifies whether to compress communication data. Valid values:'."\n" + ."\n" + .'- **true**: compresses communication data.'."\n" + ."\n" + .'- **false** (default): does not compress communication data.', 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], + ], + [ + 'name' => 'EnableMultiFactorAuth', + 'in' => 'query', + 'schema' => ['description' => 'Specifies whether to enable two-factor authentication. If you enable two-factor authentication, you must also configure `IDaaSInstanceId`, `IDaaSRegionId`, and `IDaaSApplicationId`. Valid values:'."\n" + ."\n" + .'- **true**: enabled.'."\n" + ."\n" + .'- **false** (default): disabled.'."\n" + ."\n" + .'> - If you use two-factor authentication for the first time, complete [authorization](https://ram.console.aliyun.com/role/authorization?request=%7B%22Services%22%3A%5B%7B%22Service%22%3A%22VPN%22%2C%22Roles%22%3A%5B%7B%22RoleName%22%3A%22AliyunVpnAccessingIdaasRole%22%2C%22TemplateId%22%3A%22IdaasRole%22%7D%5D%7D%5D%2C%22ReturnUrl%22%3A%22https%3A%2F%2Fvpc.console.aliyun.com%2Fsslvpn%2Fcn-shanghai%2Fvpn-servers%22%7D) before creating the SSL server.'."\n" + .'> - When you create an SSL server in the UAE (Dubai) region, bind an IDaaS EIAM 2.0 instance in the Singapore region to reduce cross-region latency.'."\n" + .'> - IDaaS EIAM 1.0 instances are no longer available for purchase. If your Alibaba Cloud account has IDaaS EIAM 1.0 instances, you can still bind IDaaS EIAM 1.0 instances after enabling two-factor authentication. If your Alibaba Cloud account does not have IDaaS EIAM 1.0 instances, you can bind only IDaaS EIAM 2.0 instances after enabling two-factor authentication.', 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], + ], + [ + 'name' => 'IDaaSInstanceId', + 'in' => 'query', + 'schema' => ['description' => 'The ID of the IDaaS EIAM instance.', 'type' => 'string', 'required' => false, 'example' => 'idaas-cn-hangzhou-p****', 'title' => ''], + ], + [ + 'name' => 'IDaaSRegionId', + 'in' => 'query', + 'schema' => ['description' => 'The region ID of the IDaaS EIAM instance.', 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou', 'title' => ''], + ], + [ + 'name' => 'IDaaSApplicationId', + 'in' => 'query', + 'schema' => ['description' => 'The ID of the IDaaS application.'."\n" + ."\n" + .'- If you bind an IDaaS EIAM 2.0 instance, enter the IDaaS application ID.'."\n" + .'- If you bind an IDaaS EIAM 1.0 instance, you do not need to enter the IDaaS application ID.', 'type' => 'string', 'required' => false, 'example' => 'app_my6g4qmvnwxzj2f****', 'title' => ''], + ], + [ + 'name' => 'DryRun', + 'in' => 'query', + 'schema' => ['description' => 'Specifies whether to perform a dry run. Valid values:'."\n" + ."\n" + .'* **true**: performs a dry run without performing the actual request. The system checks the required parameters, request syntax, and 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.'."\n" + ."\n" + .'* **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.', 'type' => 'boolean', 'required' => false, 'title' => '', 'example' => ''], + ], + [ + 'name' => 'DnsServers', + 'in' => 'query', + 'schema' => ['type' => 'string', 'description' => '', 'title' => '', 'example' => ''], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => 'The name of the DHCP options set.'."\n" - ."\n" - .'The name must be 1 to 128 characters in length and can contain digits, underscores (\\_), and hyphens (-). It must start with a letter.'."\n" - ."\n" - .'Valid values:'."\n" - ."\n" - .' '."\n" - .'* tf-testAccVpcDhcpOptionsSets-1585169790614573448'."\n" - .' '."\n" - .' '."\n" - .' '."\n" - .' :'."\n" - .' '."\n" - .' '."\n" - .' '."\n" - .' tf-testAccVpcDhcpOptionsSets-1585169790614573448'."\n" - .' '."\n" - .' '."\n" - .' '."\n" - .' .', - 'type' => 'string', - 'required' => false, - 'enumValueTitles' => [ - 'tf-testAccVpcDhcpOptionsSets-1585169790614573448' => 'tf-testAccVpcDhcpOptionsSets-1585169790614573448', + 'type' => 'object', + 'properties' => [ + 'SslVpnServerId' => ['description' => 'The ID of the SSL server.', 'type' => 'string', 'example' => 'vss-bp18q7hzj6largv4v****', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'E98A9651-7098-40C7-8F85-C818D1EBBA85', 'title' => ''], + 'Name' => ['description' => 'The name of the SSL server.', 'type' => 'string', 'example' => 'test', 'title' => ''], ], - 'example' => 'test', + 'description' => '', + 'title' => '', + 'example' => '', ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'Resource.QuotaFull', 'errorMessage' => 'The quota of resource is full', 'description' => ''], + ['errorCode' => 'InvalidName', 'errorMessage' => 'The name is not valid', 'description' => ''], + ['errorCode' => 'VpnGateway.Configuring', 'errorMessage' => 'The specified service is configuring.', 'description' => ''], + ['errorCode' => 'VpnGateway.FinancialLocked', 'errorMessage' => 'The specified service is financial locked.', 'description' => ''], + ['errorCode' => 'SslVpnServer.AlreadyExist', 'errorMessage' => 'The SSL VPN server of specified vpn gateway already exists.', 'description' => 'The specified SSL server already exists on the VPN gateway.'], + ['errorCode' => 'VpnRouteEntry.Conflict', 'errorMessage' => 'The specified route entry has conflict.', 'description' => 'Route conflicts exist.'], + ['errorCode' => 'IpConflict', 'errorMessage' => 'Client IP pool conflict with local IP range.', 'description' => 'The client IP pool conflicts with the local IP range.'], + ['errorCode' => 'SslVpnServer.AddRouteError', 'errorMessage' => 'Add route error whose destination is client IP pool, please check vpc route entry and relevant quota.', 'description' => 'The system failed to add the route that points to the client CIDR block. View the VPC route and quota.'], + ['errorCode' => 'ClientIpPool.NetmaskInvalid', 'errorMessage' => 'The netmask length of client IP pool must be greater than or equal to 16 and less than or equal to 29.', 'description' => 'The subnet mask of the client IP pool must range from 16 to 29.'], + ['errorCode' => 'ClientIpPool.SubnetInvalid', 'errorMessage' => 'The specified client IP pool cannot be used.', 'description' => 'The client CIDR block is unavailable.'], + ['errorCode' => 'MissingParameter.IDaaSInstanceId', 'errorMessage' => 'The input parameter IDaaSInstanceId is mandatory when enable multi-factor authentication.', 'description' => 'You must set the IDaaSInstanceId parameter when you enable two-factor authentication.'], + ['errorCode' => 'OperationFailed.NoRamPermission', 'errorMessage' => 'Vpn Service has no permission to operate your IDaaS instances.', 'description' => 'The VPN service does not have the permissions to manage your IDaaS instance.'], + ['errorCode' => 'OperationUnsupported.NotSupportMultiFactorAuth', 'errorMessage' => 'Current version of the VPN does not support multi-factor authentication.', 'description' => ''], + ['errorCode' => 'QuotaExceeded.VpnRouteEntry', 'errorMessage' => 'The number of route entries to the VPN gateway in the VPC routing table has reached the quota limit.', 'description' => 'The number of route entries to the VPN gateway in the VPC routing table has reached the quota limit.'], + ['errorCode' => 'SystemBusy', 'errorMessage' => 'The system is busy. Please try again later.', 'description' => ''], + ['errorCode' => 'SslVpnServerPort.Illegal', 'errorMessage' => 'The server port is not in the range of [1-65535].', 'description' => 'The port of the SSL-VPN server must be from 1 to 65535.'], + ['errorCode' => 'EnableHaCheck.SslVpnServerClientCidrContainsVpcRouteDest', 'errorMessage' => 'Ssl vpn client cidr contains vpc route prefix. The vpc route prefix is %s.', 'description' => 'The prefix %s in the VPC route table falls within the CIDR block of the SSL client.'], + ['errorCode' => 'VpnGateway.SslVpnDisabled', 'errorMessage' => 'The VPN gateway has not enabled SSL VPN.', 'description' => 'The SSL-VPN feature is disabled for the VPN gateway.'], + ['errorCode' => 'IllegalParam.LocalSubnet', 'errorMessage' => 'The specified "LocalSubnet" (%s) is invalid.', 'description' => 'The specified "LocalSubnet" (%s) is invalid.'], + ['errorCode' => 'IllegalParam.IDaaSApplicationId', 'errorMessage' => 'The specified IDaaS application Id is not illegal, the application instance needs to be created based on the dedicated SSL VPN template.', 'description' => 'The specified IDaaS application instance ID is invalid. The application instance must be created based on the dedicated SSL VPN template.'], + ['errorCode' => 'SslVpnIDaaS2.NotSupport', 'errorMessage' => 'Current version of the VPN does not support IDaaS2.0.', 'description' => 'The current version of the VPN instance does not support IDaaS2.0.'], + ['errorCode' => 'MissingParam.IDaaSApplicationId', 'errorMessage' => 'The input parameter IDaaSApplicationId is mandatory when enable multi-factor authentication.', 'description' => 'Enter the IDaaSApplicationId parameters when starting two-factor authentication.'], + ['errorCode' => 'MissingParam.IDaaSRegionId', 'errorMessage' => 'The input parameter IDaaSRegionId is mandatory when enable multi-factor authentication.', 'description' => 'Enter the IDaaSRegionId parameters when starting two-factor authentication.'], + ['errorCode' => 'DryRunOperation', 'errorMessage' => 'Request validation has been passed with DryRun flag set.', 'description' => 'The request passed the dry run.'], + ], + 403 => [ + ['errorCode' => 'Forbbiden.SubUser', 'errorMessage' => 'User not authorized to operate on the specified resource as your account is created by another user.', 'description' => ''], + ['errorCode' => 'Forbidden', 'errorMessage' => 'User not authorized to operate on the specified resource.', 'description' => 'You do not have the permissions to manage the specified resource. Apply for the permissions and try again.'], + ], [ - 'name' => 'DhcpOptionsSetId', + ['errorCode' => 'InvalidRegionId.NotFound', 'errorMessage' => 'The specified region is not found during access authentication.', 'description' => 'The specified area is not found during authentication.'], + ['errorCode' => 'InvalidVpnGatewayInstanceId.NotFound', 'errorMessage' => 'The specified vpn gateway instance id does not exist.', 'description' => ''], + ['errorCode' => 'InvalidIDaaSInstanceId.NotFound', 'errorMessage' => 'The specified IDaaS instance ID does not exist.', 'description' => 'The specified IDaaS instance does not exist.'], + ['errorCode' => 'InvalidIDaaSApplicationId.NotFound', 'errorMessage' => 'The specified IDaaS application Id does not exist.', 'description' => 'The ID of the specified IDaaS application instance does not exist.'], + ], + ], + 'staticInfo' => ['returnType' => 'asynchronous', 'callback' => 'Vpc::2016-04-28::DescribeVpnGateway', 'callbackInterval' => 2000, 'maxCallbackTimes' => 60], + 'title' => 'Create an SSL server', + 'description' => '- **CreateSslVpnServer** is an asynchronous operation. After you send a request, the system returns an instance ID but the SSL server has not been created yet. The creation task is still running in the background. You can call [DescribeVpnGateway](~~2794055~~) to query the status of the VPN gateway instance to determine the creation status of the SSL server:'."\n" + .' - If the VPN gateway instance is in the **updating** state, the SSL server is being created.'."\n" + .' - If the VPN gateway instance is in the **active** state, the SSL server is created.'."\n" + .'- **CreateSslVpnServer** does not support concurrent creation of SSL servers under the same VPN gateway.'."\n" + ."\n" + .'### Before you begin'."\n" + .'- You have created a VPN gateway with the SSL-VPN feature enabled. For more information, see [CreateVpnGateway](~~2794049~~).'."\n" + .'- If you want to enable two-factor authentication for the SSL server, make sure that the VPN gateway instance supports this feature. You may need to upgrade the VPN gateway instance. For more information, see [SSL-VPN two-factor authentication supports IDaaS EIAM 2.0](~~2785320~~).', + 'changeSet' => [ + ['createdAt' => '2025-05-23T06:50:35.000Z', 'description' => 'Error codes changed, Request parameters changed'], + ['createdAt' => '2024-05-10T02:03:16.000Z', 'description' => 'Error codes changed, Request parameters changed'], + ['createdAt' => '2023-10-19T08:26:51.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-05-30T06:58:57.000Z', 'description' => 'Error codes changed'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '100', 'countWindow' => 3600, 'regionId' => '*', 'api' => 'CreateSslVpnServer'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], + ], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'vpc:CreateSslVpnServer', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'SslVpnServer', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:sslvpnserver/*'], + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VpnGateway', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vpngateway/{#VpnGatewayId}'], + ], + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"SslVpnServerId\\": \\"vss-bp18q7hzj6largv4v****\\",\\n \\"RequestId\\": \\"E98A9651-7098-40C7-8F85-C818D1EBBA85\\",\\n \\"Name\\": \\"test\\"\\n}","type":"json"}]', + ], + 'CreateTrafficMirrorFilter' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'readAndWrite', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'create', 'riskType' => 'none', 'chargeType' => 'paid', 'autoTest' => true, 'tenantRelevance' => 'publicInformation'], + 'parameters' => [ + [ + 'name' => 'TrafficMirrorFilterDescription', + 'in' => 'query', + 'schema' => ['description' => 'The description of the traffic mirror filter.'."\n" + ."\n" + .'The description must be 1 to 256 characters in length and cannot start with `http://` or `https://`.', 'type' => 'string', 'required' => false, 'example' => 'this is a filter.', 'title' => ''], + ], + [ + 'name' => 'TrafficMirrorFilterName', + 'in' => 'query', + 'schema' => ['description' => 'The name of the traffic mirror filter.'."\n" + ."\n" + .'The name must be 1 to 128 characters in length and cannot start with `http://` or `https://`.', 'type' => 'string', 'required' => false, 'example' => 'abc', 'title' => ''], + ], + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'You can use the client to generate the token, but you must make sure that the token is unique among different requests. The ClientToken value can contain only ASCII characters.'."\n" + ."\n" + .'> If you do not specify this parameter, the system uses the value of **RequestId** as the value of **ClientToken**. The value of **RequestId** is different for each API request.', 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-426655440000', 'title' => ''], + ], + [ + 'name' => 'DryRun', + 'in' => 'query', + 'schema' => ['description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values:'."\n" + ."\n" + .'- **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 error code `DryRunOperation` is returned.'."\n" + ."\n" + .'- **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 filter is created.', 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], + ], + [ + 'name' => 'IngressRules', 'in' => 'query', 'style' => 'repeatList', 'schema' => [ - 'description' => 'The ID of the DHCP options set. You can specify at most 20 IDs.', + 'description' => 'The information about the inbound rules.', 'type' => 'array', 'items' => [ - 'description' => 'The ID of the DHCP options set. You can specify at most 20 IDs.', - 'type' => 'string', + 'description' => 'The information about the inbound rules.', + 'type' => 'object', + 'properties' => [ + 'Action' => ['description' => 'The collection policy of the inbound rule. Valid values:'."\n" + ."\n" + .'- **accept**: collects network traffic.'."\n" + .'- **drop**: does not collect network traffic.', 'type' => 'string', 'docRequired' => true, 'required' => true, 'example' => 'accept', 'title' => ''], + 'SourceCidrBlock' => ['description' => 'The source CIDR block of the inbound rule.', 'type' => 'string', 'required' => false, 'example' => '10.0.0.0/24', 'title' => ''], + 'Protocol' => ['description' => 'The protocol type of the network traffic to be mirrored for the inbound rule. Valid values:'."\n" + ."\n" + .'- **ALL**: all protocols.'."\n" + .'- **ICMP**: Internet Control Message Protocol.'."\n" + .'- **TCP**: Transmission Control Protocol.'."\n" + .'- **UDP**: User Datagram Protocol.', 'type' => 'string', 'docRequired' => true, 'required' => true, 'example' => 'TCP', 'title' => ''], + 'IpVersion' => ['description' => 'The IP version of the instance. Valid values:'."\n" + ."\n" + .'- **IPv4**: IPv4.'."\n" + .'- **IPv6**: IPv6.', 'type' => 'string', 'docRequired' => true, 'required' => true, 'example' => 'IPv4', 'title' => ''], + 'DestinationPortRange' => ['description' => 'The destination port range of the inbound rule. Valid values for port numbers: **1** to **65535**. Separate the start port and end port with a forward slash (/). Format: **1/200** or **80/80**.'."\n" + ."\n" + .'> If **IngressRules.N.Protocol** is set to **ALL** or **ICMP**, this parameter does not need to be set, which indicates that all ports are available.'."\n", 'type' => 'string', 'required' => false, 'example' => '80/120', 'title' => ''], + 'Priority' => ['description' => 'The priority of the inbound rule. A smaller value indicates a higher priority.'."\n" + .'The maximum value of **N** is **10**, which indicates that a filter can have up to 10 inbound rules.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1', 'title' => ''], + 'DestinationCidrBlock' => ['description' => 'The destination CIDR block of the inbound rule.', 'type' => 'string', 'required' => false, 'example' => '10.0.0.0/24', 'title' => ''], + 'SourcePortRange' => ['description' => 'The source port range of the inbound rule. Valid values for port numbers: **1** to **65535**. Separate the start port and end port with a forward slash (/). Format: **1/200** or **80/80**.'."\n" + ."\n" + .'> If **IngressRules.N.Protocol** is set to **ALL** or **ICMP**, this parameter does not need to be set, which indicates that all ports are available.', 'type' => 'string', 'required' => false, 'example' => '80/120', 'title' => ''], + ], 'required' => false, - 'example' => 'dopt-o6w0df4epg9zo8isy****', + 'title' => '', + 'example' => '', ], 'required' => false, - 'example' => 'dopt-o6w0df4epg9zo8isy****', - 'maxItems' => 20, + 'maxItems' => 10, + 'title' => '', + 'example' => '', ], ], [ - 'name' => 'ResourceGroupId', + 'name' => 'EgressRules', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => 'The ID of the resource group to which the DHCP options set belongs.', - 'type' => 'string', + 'description' => 'The information about the outbound rules.', + 'type' => 'array', + 'items' => [ + 'description' => 'The information about the outbound rules.', + 'type' => 'object', + 'properties' => [ + 'Action' => ['description' => 'The collection policy of the outbound rule. Valid values:'."\n" + ."\n" + .'- **accept**: collects network traffic.'."\n" + .'- **drop**: does not collect network traffic.', 'type' => 'string', 'docRequired' => true, 'required' => true, 'example' => 'accept', 'title' => ''], + 'SourceCidrBlock' => ['description' => 'The source CIDR block of the outbound rule.', 'type' => 'string', 'required' => false, 'example' => '10.0.0.0/24', 'title' => ''], + 'Protocol' => ['description' => 'The protocol type of the network traffic to be mirrored for the outbound rule. Valid values:'."\n" + ."\n" + .'- **ALL**: all protocols.'."\n" + .'- **ICMP**: Internet Control Message Protocol.'."\n" + .'- **TCP**: Transmission Control Protocol.'."\n" + .'- **UDP**: User Datagram Protocol.', 'type' => 'string', 'docRequired' => true, 'required' => true, 'example' => 'TCP', 'title' => ''], + 'IpVersion' => ['description' => 'The IP version of the instance. Valid values:'."\n" + ."\n" + .'- **IPv4**: IPv4.'."\n" + .'- **IPv6**: IPv6.', 'type' => 'string', 'docRequired' => true, 'required' => true, 'example' => 'IPv4', 'title' => ''], + 'DestinationPortRange' => ['description' => 'The destination port range of the outbound rule. Valid values for port numbers: **1** to **65535**. Separate the start port and end port with a forward slash (/). Format: **1/200** or **80/80**. The value **-1/-1** cannot be set independently and indicates that all ports are available.'."\n" + ."\n" + .'> If **EgressRules.N.Protocol** is set to **ALL** or **ICMP**, this parameter does not need to be set, which indicates that all ports are available.', 'type' => 'string', 'required' => false, 'example' => '22/40', 'title' => ''], + 'Priority' => ['description' => 'The priority of the outbound rule. A smaller value indicates a higher priority.'."\n" + .'The maximum value of **N** is **10**, which indicates that a filter can have up to 10 outbound rules.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1', 'title' => ''], + 'DestinationCidrBlock' => ['description' => 'The destination CIDR block of the outbound rule.', 'type' => 'string', 'required' => false, 'example' => '10.0.0.0/24', 'title' => ''], + 'SourcePortRange' => ['description' => 'The source port range of the outbound rule. Valid values for port numbers: **1** to **65535**. Separate the start port and end port with a forward slash (/). Format: **1/200** or **80/80**. The value **-1/-1** cannot be set independently and indicates that all ports are available.'."\n" + ."\n" + .'> If **EgressRules.N.Protocol** is set to **ALL** or **ICMP**, this parameter does not need to be set, which indicates that all ports are available.', 'type' => 'string', 'required' => false, 'example' => '22/40', 'title' => ''], + ], + 'required' => false, + 'title' => '', + 'example' => '', + ], 'required' => false, - 'example' => 'rg-acfmxazb4ph****', + 'maxItems' => 10, + 'title' => '', + 'example' => '', ], ], [ - 'name' => 'Tags', + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => ['description' => 'The region ID of the traffic mirror.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the region ID. For more information about the regions that support traffic mirroring, see [Traffic Mirroring overview](~~207513~~).', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hongkong', 'title' => ''], + ], + [ + 'name' => 'ResourceGroupId', + 'in' => 'query', + 'schema' => ['description' => 'The ID of the resource group to which the traffic mirror belongs.', 'type' => 'string', 'required' => false, 'example' => 'rg-bp67acfmxazb4ph****', 'title' => ''], + ], + [ + 'name' => 'Tag', 'in' => 'query', 'style' => 'repeatList', 'schema' => [ - 'description' => 'The tag list.', + 'description' => 'The tags of the resource.', 'type' => 'array', 'items' => [ - 'description' => 'The tag list.', + 'description' => 'The tag.', 'type' => 'object', 'properties' => [ - 'Key' => [ - 'description' => 'The tag key. You can specify up to 20 tag keys. The tag key cannot be an empty string.'."\n" - ."\n" - .'The tag key can be up to 64 characters in length and can contain digits, periods (.), underscores (\\_), and hyphens (-). The tag key must start with a letter but cannot start with `aliyun` or `acs:`. The tag key cannot contain `http://` or `https://`.', - 'type' => 'string', - 'required' => false, - 'example' => 'FinanceDept', - ], - 'Value' => [ - 'description' => 'The tag value. You can specify at most 20 tag values. The tag value can be an empty string.'."\n" - ."\n" - .'The tag value can be up to 128 characters in length and can contain digits, periods (.), underscores (\\_), and hyphens (-). The tag value must start with a letter but cannot start with `aliyun` or `acs:`. The tag value cannot contain `http://` or `https://`.', - 'type' => 'string', - 'required' => false, - 'example' => 'FinanceJoshua', - ], + 'Key' => ['description' => 'The tag key of the resource. You can specify up to 20 tag keys. The tag key cannot be an empty string.'."\n" + ."\n" + .'The tag key can be up to 128 characters in length and cannot start with `aliyun` or `acs:`. It cannot contain `http://` or `https://`.', 'type' => 'string', 'required' => false, 'example' => 'FinanceDept', 'title' => ''], + 'Value' => ['description' => 'The tag value of the resource. You can specify up to 20 tag values. The tag value can be an empty string.'."\n" + ."\n" + .'The tag value can be up to 128 characters in length and cannot start with `aliyun` or `acs:`. It cannot contain `http://` or `https://`.', 'type' => 'string', 'required' => false, 'example' => 'FinanceJoshua', 'title' => ''], ], 'required' => false, + 'title' => '', + 'example' => '', ], 'required' => false, - 'maxItems' => 10, + 'maxItems' => 21, + 'title' => '', + 'example' => '', ], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => 'The pagination token used in the next request to retrieve a new page of results. Valid values:'."\n" - ."\n" - .'* If **NextToken** is empty, there is no next page.'."\n" - .'* If a value of **NextToken** is returned, it indicates the token that is used for the next query.', + 'description' => 'The instance ID of the traffic mirror filter.', 'type' => 'object', 'properties' => [ - 'NextToken' => [ - 'description' => 'A pagination token. It can be used in the next request to retrieve a new page of results. Valid values:'."\n" - ."\n" - .'* If **NextToken** is empty, no next page exists.'."\n" - .'* If a value is returned for **NextToken**, the value is used to retrieve a new page of results.', - 'type' => 'string', - 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd********', - ], - 'RequestId' => [ - 'description' => 'The request ID.', - 'type' => 'string', - 'example' => '0ED8D006-F706-4D23-88ED-E11ED28DCAC0', - ], - 'DhcpOptionsSets' => [ - 'description' => 'The list of the DHCP options sets.', - 'type' => 'array', - 'items' => [ - 'description' => 'The list of the DHCP options sets.', - 'type' => 'object', - 'properties' => [ - 'DhcpOptionsSetDescription' => [ - 'description' => 'The description of the DHCP options set.', - 'type' => 'string', - 'example' => 'test', - ], - 'Status' => [ - 'description' => 'The status of the DHCP options set. Valid values:'."\n" - ."\n" - .'* **Available**'."\n" - .'* **InUse**'."\n" - .'* **Pending**'."\n" - .'* **Deleted**', - 'type' => 'string', - 'example' => 'Available', - ], - 'DhcpOptionsSetId' => [ - 'description' => 'The ID of the DHCP options set.', - 'type' => 'string', - 'example' => 'dopt-o6w0df4epg9zo8isy****', - ], - 'DhcpOptionsSetName' => [ - 'description' => 'The name of the DHCP options set.', - 'type' => 'string', - 'example' => 'test', - ], - 'AssociateVpcCount' => [ - 'description' => 'The number of VPCs with which the DHCP options set is associated.', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '2', - ], - 'OwnerId' => [ - 'description' => 'The ID of the Alibaba Cloud account to which the DHCP options set belongs.', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '253460731706911258', - ], - 'DhcpOptions' => [ - 'description' => 'The details of DHCP options.', - 'type' => 'object', - 'properties' => [ - 'DomainNameServers' => [ - 'description' => 'The IP address of the DNS server.', - 'type' => 'string', - 'example' => '192.168.XX.XX', - ], - 'DomainName' => [ - 'description' => 'The suffix of the hostname.', - 'type' => 'string', - 'example' => 'example.com', - ], - 'LeaseTime' => [ - 'description' => 'The lease time of the IPv4 addresses for the DHCP options set.'."\n" - ."\n" - .'* If you use hours as the unit, valid values are **24h to 1176h** and **87600h to 175200h**. Default value: **87600h**.'."\n" - .'* If you use days as the unit, valid values are **1d to 49d** and **3650d to 7300d**. Default value: **3650d**.', - 'type' => 'string', - 'example' => '3650d', - ], - 'Ipv6LeaseTime' => [ - 'description' => 'The lease time of the IPv6 DHCP options set.'."\n" - ."\n" - .'* If you use hours as the unit, Unit: h. Valid values are **24h to 1176h** and **87600h to 175200h**. Default value: **24h**.'."\n" - ."\n" - .'* If you use days as the unit, Unit: d. Valid values are **1d to 49d** and **3650d to 7300d**. Default value: **1d**.', - 'type' => 'string', - 'example' => '3650d', - ], - ], - ], - 'ResourceGroupId' => [ - 'description' => 'The ID of the resource group to which the DHCP options set belongs.', - 'type' => 'string', - 'example' => 'rg-acfmxazb4ph****', - ], - 'Tags' => [ - 'description' => 'The tag list.', - 'type' => 'array', - 'items' => [ - 'description' => 'The tag list.', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => 'The key of tag N added to the resource.', - 'type' => 'string', - 'example' => 'FinanceDept', - ], - 'Value' => [ - 'description' => 'The value of tag N added to the resource.', - 'type' => 'string', - 'example' => 'FinanceJoshua', - ], - ], - ], - ], - 'CreationTime' => [ - 'description' => 'The creation time of the DHCP options sets.', - 'type' => 'string', - 'example' => '2025-08-21 ***', - ], - ], - ], - ], - 'TotalCount' => [ - 'description' => 'The number of entries.', - 'type' => 'string', - 'example' => '10', - ], + 'TrafficMirrorFilterId' => ['description' => 'The instance ID of the traffic mirror filter.', 'type' => 'string', 'example' => 'tmf-j6cmls82xnc86vtpe****', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '28DB147D-217B-43E8-9E94-A3F6837DDC8A', 'title' => ''], + 'ResourceGroupId' => ['description' => 'The ID of the resource group to which the traffic mirror belongs.', 'type' => 'string', 'example' => 'rg-bp67acfmxazb4ph****', 'title' => ''], ], + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'IllegalParam.NextToken', - 'errorMessage' => 'The specified NextToken is invalid.', - ], - [ - 'errorCode' => 'InvalidRegionId.NotFound', - 'errorMessage' => 'The specified RegionId does not exist.', - ], + ['errorCode' => 'UnsupportedFeature.IpVersion', 'errorMessage' => 'The ipversion type is not supported.', 'description' => ''], + ['errorCode' => 'IncorrectBusinessStatus.TrafficMirror', 'errorMessage' => 'The business status of traffic mirror is incorrect.', 'description' => 'Traffic mirroring is in an invalid state.'], + ['errorCode' => 'OptInRequired.TrafficMirror', 'errorMessage' => 'You need to subscribe to the traffic mirror service first.', 'description' => 'Traffic mirroring is disabled.'], + ['errorCode' => 'QuotaExceeded.TrafficMirrorFilter', 'errorMessage' => 'The maximum number of traffic image filters is exceeded.', 'description' => 'The number of filters has reached the upper limit.'], + ['errorCode' => 'DuplicatedParam.Priority', 'errorMessage' => 'The specified priority conflicts with the existing priority.', 'description' => 'The specified priority is the same as an existing one.'], + ['errorCode' => 'UnsupportedRegion', 'errorMessage' => 'The feature is not supported in current region.', 'description' => 'The feature is not supported in the current region.'], + ['errorCode' => 'IllegalParamFormat.SrcCidrBlock', 'errorMessage' => 'The format of the specified source CIDR block is invalid.', 'description' => 'The error message returned because the format of the source CIDR block is invalid.'], + ['errorCode' => 'IllegalParamFormat.DstCidrBlock', 'errorMessage' => 'The format of the specified dst CIDR block is invalid.', 'description' => 'The format of the destination CIDR block is invalid.'], + ['errorCode' => 'IllegalParam.DestinationCidrBlock', 'errorMessage' => 'The param of DestinationCidrBlock %s is illegal.', 'description' => ''], + ['errorCode' => 'IllegalParam.SourceCidrBlock', 'errorMessage' => 'The param of SourceCidrBlock %s is illegal.', 'description' => ''], + ['errorCode' => 'IllegalParam.Protocol', 'errorMessage' => 'The specified Protocol %s is invalid.', 'description' => ''], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"NextToken\\": \\"FFmyTO70tTpLG6I3FmYAXGKPd********\\",\\n \\"RequestId\\": \\"0ED8D006-F706-4D23-88ED-E11ED28DCAC0\\",\\n \\"DhcpOptionsSets\\": [\\n {\\n \\"DhcpOptionsSetDescription\\": \\"test\\",\\n \\"Status\\": \\"Available\\",\\n \\"DhcpOptionsSetId\\": \\"dopt-o6w0df4epg9zo8isy****\\",\\n \\"DhcpOptionsSetName\\": \\"test\\",\\n \\"AssociateVpcCount\\": 2,\\n \\"OwnerId\\": 253460731706911260,\\n \\"DhcpOptions\\": {\\n \\"DomainNameServers\\": \\"192.168.XX.XX\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"LeaseTime\\": \\"3650d\\",\\n \\"Ipv6LeaseTime\\": \\"3650d\\"\\n },\\n \\"ResourceGroupId\\": \\"rg-acfmxazb4ph****\\",\\n \\"Tags\\": [\\n {\\n \\"Key\\": \\"FinanceDept\\",\\n \\"Value\\": \\"FinanceJoshua\\"\\n }\\n ],\\n \\"CreationTime\\": \\"2025-08-21 ***\\"\\n }\\n ],\\n \\"TotalCount\\": \\"10\\"\\n}","errorExample":""},{"type":"xml","example":"\\n FFmyTO70tTpLG6I3FmYAXGKPd********\\n 0ED8D006-F706-4D23-88ED-E11ED28DCAC0\\n \\n test\\n Available\\n dopt-o6w0df4epg9zo8isy****\\n test\\n 2\\n 253460731706911260\\n \\n 192.168.XX.XX\\n example.com\\n 3650d\\n 3650d\\n \\n rg-acfmxazb4ph****\\n \\n FinanceDept\\n FinanceJoshua\\n \\n \\n 10\\n","errorExample":""}]', - 'title' => 'ListDhcpOptionsSets', + 'title' => 'CreateTrafficMirrorFilter', + 'summary' => 'Calls the CreateTrafficMirrorFilter operation to create a traffic mirror filter.', + 'description' => 'The **CreateTrafficMirrorFilter** operation is an asynchronous operation. After you send the request, the system returns an instance ID but the traffic mirror filter is not yet created. The creation task is still running in the background. You can call [ListTrafficMirrorFilters](~~261353~~) to query the status of the traffic mirror filter:'."\n" + .'- If the traffic mirror filter is in the **Creating** state, the traffic mirror filter is being created.'."\n" + .'- If the traffic mirror filter is in the **Created** state, the traffic mirror filter is created.', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'OpenFlowLogService' => [ - 'summary' => 'Enables the flow log feature.', - 'methods' => [ - 'post', - 'get', + 'changeSet' => [ + ['createdAt' => '2025-04-25T09:57:13.000Z', 'description' => 'Error codes changed, Request parameters changed'], + ['createdAt' => '2023-08-30T06:17:00.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-07-05T05:51:50.000Z', 'description' => 'Error codes changed, Request parameters changed, Response parameters changed'], + ['createdAt' => '2022-07-21T09:47:24.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2022-07-11T03:25:00.000Z', 'description' => 'Request parameters changed'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '600', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CreateTrafficMirrorFilter'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'vpc:CreateTrafficMirrorFilter', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'TrafficMirrorFilter', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:trafficmirrorfilter/*'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"TrafficMirrorFilterId\\": \\"tmf-j6cmls82xnc86vtpe****\\",\\n \\"RequestId\\": \\"28DB147D-217B-43E8-9E94-A3F6837DDC8A\\",\\n \\"ResourceGroupId\\": \\"rg-bp67acfmxazb4ph****\\"\\n}","type":"json"}]', + ], + 'CreateTrafficMirrorFilterRules' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -16801,51 +13585,122 @@ ], 'operationType' => 'readAndWrite', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'create', - 'riskType' => 'none', - 'chargeType' => 'free', - ], + 'systemTags' => ['operationType' => 'create', 'riskType' => 'none', 'chargeType' => 'paid'], 'parameters' => [ + [ + 'name' => 'TrafficMirrorFilterId', + 'in' => 'query', + 'schema' => ['description' => 'The ID of the filter.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'tmf-j6cmls82xnc86vtpe****', 'title' => ''], + ], [ 'name' => 'ClientToken', 'in' => 'query', + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'You can use the client to generate the value, but you must make sure that it is unique among different requests. The client token can contain only ASCII characters.'."\n" + ."\n" + .'> If you do not set this parameter, the system uses **RequestId** as **ClientToken**. **RequestId** may be different for each API request.'."\n", 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-426655440000', 'title' => ''], + ], + [ + 'name' => 'DryRun', + 'in' => 'query', + 'schema' => ['description' => 'Specifies whether to check the request without performing the operation. Valid values:'."\n" + ."\n" + .'* **true**: checks the request without performing the operation. The system checks the required parameters, request format, and limits. If the request fails the precheck, an error message is returned. If the request passes the precheck, the `DryRunOperation` error code is returned.'."\n" + .'* **false** (default): sends the request. After the request passes the check, the operation is performed.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], + ], + [ + 'name' => 'IngressRules', + 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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.'."\n" - ."\n" - .'> If you do not set this parameter, the system automatically set **ClientToken** to the value of **RequestId**. The value of **RequestId** for each API request is different.'."\n", - 'type' => 'string', + 'description' => 'The information about the inbound rules.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The information about the inbound rule.'."\n", + 'type' => 'object', + 'properties' => [ + 'Action' => ['description' => 'The policy of the inbound rule. Valid values:'."\n" + ."\n" + .'* **accept**: collects network traffic.'."\n" + .'* **drop**: drops network traffic.'."\n", 'type' => 'string', 'required' => false, 'docRequired' => true, 'example' => 'accept', 'title' => ''], + 'SourceCidrBlock' => ['description' => 'The source CIDR block of the inbound traffic.'."\n", 'type' => 'string', 'required' => false, 'example' => '10.0.0.0/24', 'title' => ''], + 'Protocol' => ['description' => 'The protocol that is used by the inbound traffic to be mirrored. Valid values:'."\n" + ."\n" + .'* **ALL**: all protocols'."\n" + .'* **ICMP**: Internet Control Message Protocol.'."\n" + .'* **TCP**: Transmission Control Protocol.'."\n" + .'* **UDP**: User Datagram Protocol.'."\n", 'type' => 'string', 'required' => false, 'docRequired' => true, 'example' => 'TCP', 'title' => ''], + 'IpVersion' => ['description' => 'The IP version of the instance. The following value may be returned:'."\n" + ."\n" + .'* **IPv4**: IPv4'."\n" + .'* **IPv6**: IPv6'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'IPv4', 'title' => ''], + 'DestinationPortRange' => ['description' => 'The destination port range of the inbound traffic. Valid value: **1** to **65535**. Separate the first and the last port with a forward slash (/). For example, **1/200** or **80/80**.'."\n" + ."\n" + .'> If the **IngressRules.N.Protocol** parameter is set to **ALL** or **ICMP**, you do not need to set this parameter. In this case, all ports are available.'."\n", 'type' => 'string', 'required' => false, 'example' => '80/120', 'title' => ''], + 'Priority' => ['description' => 'The priority of the inbound rule. A smaller value indicates a higher priority. The maximum value of **N** is **10**. You can configure up to 10 inbound rules for a filter.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1', 'title' => ''], + 'DestinationCidrBlock' => ['description' => 'The destination CIDR block of the inbound traffic.'."\n", 'type' => 'string', 'required' => false, 'example' => '10.0.0.0/24', 'title' => ''], + 'SourcePortRange' => ['description' => 'The source port range of the inbound traffic. Valid value: **1** to **65535**. Separate the first and last port with a forward slash (/). For example **1/200** and **80/80**. You cannot set this parameter to \\*\\*-1/-1\\*\\*, which indicates all ports.'."\n" + ."\n" + .'> If the **IngressRules.N.Protocol** parameter is set to **ALL** or **ICMP**, you do not need to set this parameter. In this case, all ports are available.'."\n", 'type' => 'string', 'required' => false, 'example' => '80/120', 'title' => ''], + ], + 'required' => false, + 'title' => '', + ], 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-426655440000', + 'maxItems' => 10, + 'title' => '', ], ], [ - 'name' => 'RegionId', + 'name' => 'EgressRules', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => 'The region ID of the flow log.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', + 'description' => 'The information about the outbound rule.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The information about the outbound rule.'."\n", + 'type' => 'object', + 'properties' => [ + 'Action' => ['description' => 'The collection policy of the outbound rule. Valid values:'."\n" + ."\n" + .'* **accept**: accepts network traffic.'."\n" + .'* **drop**: drops network traffic.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'accept', 'title' => ''], + 'SourceCidrBlock' => ['description' => 'The source CIDR block of the outbound traffic.'."\n", 'type' => 'string', 'required' => false, 'example' => '10.0.0.0/24', 'title' => ''], + 'Protocol' => ['description' => 'The protocol that is used by the outbound traffic to be mirrored. Valid values:'."\n" + ."\n" + .'* **ALL**: all protocols'."\n" + .'* **ICMP**: Internet Control Message Protocol.'."\n" + .'* **TCP**: Transmission Control Protocol.'."\n" + .'* **UDP**: User Datagram Protocol.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'TCP', 'title' => ''], + 'IpVersion' => ['description' => 'The IP version of the instance. Valid values:'."\n" + ."\n" + .'* **IPv4**: IPv4'."\n" + .'* **IPv6**: IPv6'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'IPv4', 'title' => ''], + 'DestinationPortRange' => ['description' => 'The destination port range of the outbound traffic. Valid value: **1** to **65535**. Separate the first and last port with a forward slash (/). For example **1/200** and **80/80**. You cannot set this parameter to \\*\\*-1/-1\\*\\*, which indicates all ports.'."\n" + ."\n" + .'> If **EgressRules.N.Protocol** is set to **ALL** or **ICMP**, you do not need to set this parameter. In this case, all ports are available.'."\n", 'type' => 'string', 'required' => false, 'example' => '22/40', 'title' => ''], + 'Priority' => ['description' => 'The priority of the outbound rule. A smaller value indicates a higher priority. The maximum value of **N** is **10**. You can configure up to 10 outbound rules for a filter.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1', 'title' => ''], + 'DestinationCidrBlock' => ['description' => 'The destination CIDR block of the outbound traffic.'."\n", 'type' => 'string', 'required' => false, 'example' => '10.0.0.0/24', 'title' => ''], + 'SourcePortRange' => ['description' => 'The source port range of the outbound traffic. Valid value: **1** to **65535**. Separate the first and last port with a forward slash (/). For example **1/200** and **80/80**. You cannot set this parameter to \\*\\*-1/-1\\*\\*, which indicates all ports.'."\n" + ."\n" + .'> If **EgressRules.N.Protocol** is set to **ALL** or **ICMP**, you do not need to set this parameter. In this case, all ports are available.'."\n", 'type' => 'string', 'required' => false, 'example' => '22/40', 'title' => ''], + ], + 'required' => false, + 'title' => '', + ], + 'required' => false, + 'maxItems' => 10, + 'title' => '', ], ], [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the flow log.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The ID of the region to which the mirrored traffic belongs.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list. For more information about regions that support traffic mirror, see [Overview of traffic mirror](~~207513~~).', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hongkong', 'title' => ''], ], ], 'responses' => [ @@ -16854,71 +13709,78 @@ 'description' => '', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => '28CF47AB-B6C0-5FA2-80C7-2B28826A92CB', - ], - 'Code' => [ - 'description' => 'The HTTP status code.'."\n", - 'type' => 'string', - 'example' => '200', + 'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => '07F272E2-6AD5-433A-8207-A607C76F1676', 'title' => ''], + 'IngressRules' => [ + 'description' => 'The list of inbound rules.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'InstanceId' => ['description' => 'The ID of the inbound rule.'."\n", 'type' => 'string', 'example' => 'tmr-j6c6rtallo51ouzv3****', 'title' => ''], + ], + 'title' => '', + ], + 'title' => '', ], - 'Message' => [ - 'description' => 'The information returned after the flow log feature is enabled.'."\n", - 'type' => 'string', - 'example' => 'successful', + 'EgressRules' => [ + 'description' => 'The list of outbound rules.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'InstanceId' => ['description' => 'The ID of the outbound rule.'."\n", 'type' => 'string', 'example' => 'tmr-j6cok23ugp53eeib5****', 'title' => ''], + ], + 'title' => '', + ], + 'title' => '', ], ], + 'title' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'OperationFailed.ExceedPurchaseLimit', - 'errorMessage' => 'You have reached the limit of purchase quantity.', - ], - [ - 'errorCode' => 'Forbidden.RAM', - 'errorMessage' => 'User not authorized to operate on the specified resource, or this API doesn\'t support RAM.', - ], - [ - 'errorCode' => 'OperationFailed.AliGroupUserCanNotBuyInnerCommodity', - 'errorMessage' => 'Vpc_flowlog_public has no group cloud product label, and users within the group are not allowed to purchase.', - ], - [ - 'errorCode' => 'OperationFailed.QuotaNotEnough', - 'errorMessage' => 'Your quota is insufficient. Please contact your channel partner to increase your quota', - ], - [ - 'errorCode' => 'Order.NoRealNameAuthentication', - 'errorMessage' => 'Real-name verification has not been completed for the account.', - ], - [ - 'errorCode' => 'OperationFailed.BasicInfoUncompleted', - 'errorMessage' => 'You have not completed your basic personal information, please complete the information and try again.', + ['errorCode' => 'ResourceNotFound.TrafficMirrorFilter', 'errorMessage' => 'The specified resource of traffic mirror filter is not found.', 'description' => 'The specified filter does not exist.'], + ['errorCode' => 'IncorrectStatus.TrafficMirrorFilter', 'errorMessage' => 'The status of traffic mirror filter is incorrect.', 'description' => 'The filter is in an invalid state.'], + ['errorCode' => 'IncorrectStatus.TrafficMirrorSession', 'errorMessage' => 'The status of traffic mirror session is incorrect.', 'description' => ''], + ['errorCode' => 'QuotaExceeded.TrafficMirrorRulesPerFilter', 'errorMessage' => 'The quota of the number of traffic mirror rules per filter is exceeded.', 'description' => 'The number of rules associated with the filter has reached the upper limit.'], + ['errorCode' => 'DuplicatedParam.Priority', 'errorMessage' => 'The specified priority conflicts with the existing priority.', 'description' => 'The specified priority is the same as an existing one.'], + ['errorCode' => 'UnsupportedRegion', 'errorMessage' => 'The feature is not supported in current region.', 'description' => 'The feature is not supported in the current region.'], + ['errorCode' => 'IllegalParam.CidrBlock', 'errorMessage' => 'The specified CidrBlock is illegal.', 'description' => 'The operation failed because CidrBlock is set to an invalid value.'], + ['errorCode' => 'IllegalParam.SourceCidrBlock', 'errorMessage' => 'The param of SourceCidrBlock %s is illegal.', 'description' => ''], + ['errorCode' => 'IllegalParam.DestinationCidrBlock', 'errorMessage' => 'The param of DestinationCidrBlock %s is illegal.', 'description' => ''], + ['errorCode' => 'IllegalParam.Protocol', 'errorMessage' => 'The specified Protocol %s is invalid.', 'description' => ''], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"07F272E2-6AD5-433A-8207-A607C76F1676\\",\\n \\"IngressRules\\": [\\n {\\n \\"InstanceId\\": \\"tmr-j6c6rtallo51ouzv3****\\"\\n }\\n ],\\n \\"EgressRules\\": [\\n {\\n \\"InstanceId\\": \\"tmr-j6cok23ugp53eeib5****\\"\\n }\\n ]\\n}","type":"json"}]', + 'title' => 'CreateTrafficMirrorFilterRules', + 'summary' => 'Creates an inbound or outbound rule for traffic mirror.', + 'changeSet' => [ + ['createdAt' => '2025-04-25T09:57:13.000Z', 'description' => 'Error codes changed, Request parameters changed'], + ['createdAt' => '2023-07-20T03:51:36.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2022-07-21T09:47:24.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2022-07-11T03:25:00.000Z', 'description' => 'Request parameters changed'], + ], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'vpc:CreateTrafficMirrorFilterRules', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'TrafficMirrorFilter', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:trafficmirrorfilter/{#TrafficMirrorFilterId}'], + ], ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"28CF47AB-B6C0-5FA2-80C7-2B28826A92CB\\",\\n \\"Code\\": \\"200\\",\\n \\"Message\\": \\"successful\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 28CF47AB-B6C0-5FA2-80C7-2B28826A92CB\\n 200\\n successful\\n","errorExample":""}]', - 'title' => 'OpenFlowLogService', - 'description' => '* You cannot repeatedly call the **OpenFlowLogService** operation within the specified period of time by using an Alibaba Cloud account.'."\n" - .'* You can call the [GetFlowLogServiceStatus](~~449624~~) operation to query the status of the flow log feature.', ], - 'CreateFlowLog' => [ - 'summary' => 'Creates a flow log.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'CreateTrafficMirrorSession' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -16926,196 +13788,138 @@ ], 'operationType' => 'readAndWrite', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'create', - 'riskType' => 'none', - 'chargeType' => 'paid', - ], + 'systemTags' => ['operationType' => 'create', 'riskType' => 'none', 'chargeType' => 'paid'], 'parameters' => [ [ - 'name' => 'RegionId', + 'name' => 'TrafficMirrorSessionDescription', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region where you want to create the flow log. You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cn-qingdao', - ], + 'schema' => ['description' => 'The description of the traffic mirror session.'."\n" + ."\n" + .'The description must be 1 to 256 characters in length and cannot start with `http://` or `https://`.'."\n", 'type' => 'string', 'required' => false, 'example' => 'This is a trafficmirrorsession.', 'title' => ''], ], [ - 'name' => 'FlowLogName', + 'name' => 'TrafficMirrorSessionName', 'in' => 'query', - 'schema' => [ - 'description' => 'The name of the flow log.'."\n" - ."\n" - .'The name must be 1 to 128 characters in length and cannot start with `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'myFlowlog', - ], + 'schema' => ['description' => 'The name of the traffic mirror session.'."\n" + ."\n" + .'The name must be 1 to 128 characters in length, and cannot start with `http://` or `https://`.'."\n", 'type' => 'string', 'required' => false, 'example' => 'test', 'title' => ''], ], [ - 'name' => 'Description', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The description of the flow log.'."\n" - ."\n" - .'The description must be 1 to 256 characters in length and cannot start with `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'This is my Flowlog.', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'You can use the client to generate the value, but you must ensure that the value is unique among all requests. The client token can contain only ASCII characters.'."\n" + ."\n" + .'> If you do not set this parameter, the system uses **RequestId** as **ClientToken**. **RequestId** might be different for each API request.'."\n", 'type' => 'string', 'required' => false, 'example' => '0c593ea1-3bea-11e9-b96b-88e9fe63****', 'title' => ''], ], [ - 'name' => 'ResourceType', + 'name' => 'DryRun', 'in' => 'query', - 'schema' => [ - 'description' => 'The type of the resource whose traffic you want to capture. Valid values:'."\n" - ."\n" - .'* **NetworkInterface**: elastic network interface (ENI)'."\n" - .'* **VSwitch**: all ENIs in a vSwitch'."\n" - .'* **VPC**: all ENIs in a virtual private cloud (VPC)'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'NetworkInterface', - ], + 'schema' => ['description' => 'Specifies whether to perform a dry run. Valid values:'."\n" + ."\n" + .'* **true**: performs a dry run. The system checks the required parameters, request format, and 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.'."\n" + .'* **false** (default): performs a dry run and sends the request. If the request passes the dry run, the operation is performed.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], ], [ - 'name' => 'ResourceId', + 'name' => 'TrafficMirrorTargetId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the resource whose traffic you want to capture.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'eni-askldfas****', - ], + 'schema' => ['description' => 'The ID of the traffic mirror destination. You can specify only an elastic network interface (ENI) or a Server Load Balancer (SLB) instance as a traffic mirror destination.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'eni-j6c8znm5l1yt4sox****', 'title' => ''], ], [ - 'name' => 'TrafficType', + 'name' => 'TrafficMirrorTargetType', 'in' => 'query', - 'schema' => [ - 'description' => 'The type of traffic that you want to capture. Valid values:'."\n" - ."\n" - .'* **All**: all traffic'."\n" - .'* **Allow**: traffic that is allowed'."\n" - .'* **Drop**: traffic that is rejected'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'All', - ], + 'schema' => ['description' => 'The type of the traffic mirror destination. Valid values:'."\n" + ."\n" + .'* **NetworkInterface**: an ENI'."\n" + .'* **SLB**: an SLB instance'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'NetworkInterface', 'title' => ''], ], [ - 'name' => 'ProjectName', + 'name' => 'TrafficMirrorFilterId', 'in' => 'query', - 'schema' => [ - 'description' => 'The name of the project that stores the captured traffic data.'."\n" - ."\n" - .'* The name can contain only lowercase letters, digits, and hyphens (-).'."\n" - .'* The name must start and end with a lowercase letter or a digit.'."\n" - .'* The name must be 3 to 63 characters in length.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'FlowLogProject', - ], + 'schema' => ['description' => 'The ID of the filter.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'tmf-j6cmls82xnc86vtpe****', 'title' => ''], ], [ - 'name' => 'LogStoreName', + 'name' => 'VirtualNetworkId', 'in' => 'query', - 'schema' => [ - 'description' => 'The name of the Logstore that stores the captured traffic data.'."\n" - ."\n" - .'* The name can contain only lowercase letters, digits, hyphens (-), and underscores (\\_).'."\n" - .'* The name must start and end with a lowercase letter or a digit.'."\n" - .'* The name must be 3 to 63 characters in length.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'FlowLogStore', - ], + 'schema' => ['description' => 'The VXLAN network identifier (VNI). Valid values: **0** to **16777215**.'."\n" + ."\n" + .'You can use VNIs to identify mirrored traffic from different sessions at the traffic mirror destination. You can specify a custom VNI or use a random VNI allocated by the system. If you want the system to randomly allocate a VNI, do not enter a value.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1', 'title' => ''], ], [ - 'name' => 'AggregationInterval', + 'name' => 'Priority', 'in' => 'query', - 'schema' => [ - 'description' => 'The sampling interval of the flow log. Unit: seconds. Valid values: **1**, **5**, and **10** (default).'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '10', - ], + 'schema' => ['description' => 'The priority of the traffic mirror session. Valid values: **1** to **32766**.'."\n" + ."\n" + .'A smaller value indicates a higher priority. You cannot specify identical priorities for traffic mirror sessions that are created in the same region by using the same account.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => true, 'docRequired' => true, 'maximum' => '32766', 'minimum' => '1', 'example' => '1', 'title' => ''], ], [ - 'name' => 'TrafficPath', + 'name' => 'Enabled', 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => 'The scope of the traffic that you want to capture. Valid values:'."\n" - ."\n" - .'* **all**: all traffic.'."\n" - .'* **internetGateway**: Internet traffic.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The scope of the traffic that you want to capture. Valid values:'."\n" - ."\n" - .'* **all** (default): all traffic.'."\n" - ."\n" - .'> By default, this parameter is unavailable. To use this parameter, [submit a ticket](https://workorder-intl.console.aliyun.com/?spm=5176.11182188.console-base-top.dworkorder.18ae4882n3v6ZW#/ticket/createIndex).'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'all', - ], - 'required' => false, - 'maxItems' => 20, - ], + 'schema' => ['description' => 'Specifies whether to enable the traffic mirror session. Valid values:'."\n" + ."\n" + .'* **false** (default): does not enable the traffic mirror session.'."\n" + .'* **true**: enables the traffic mirror session.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], ], [ - 'name' => 'ResourceGroupId', + 'name' => 'PacketLength', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the resource group.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'rg-acfmxazdjdhd****', - ], + 'schema' => ['description' => 'The maximum transmission unit.'."\n" + ."\n" + .'Valid values: **64 to 9600**. Default value: **1500**.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1500', 'title' => ''], ], [ - 'name' => 'Tag', + 'name' => 'TrafficMirrorSourceIds', 'in' => 'query', 'style' => 'repeatList', 'schema' => [ - 'description' => 'The tag of the resource.'."\n", + 'description' => 'The ID of the traffic mirror source. You can specify only an elastic network interface (ENI) as the traffic mirror source. The default value of **N** is **1**, which indicates that you can add only one traffic mirror source to a traffic mirror session.'."\n", 'type' => 'array', - 'items' => [ - 'description' => '', + 'items' => ['description' => 'The ID of the traffic mirror source. You can specify only an ENI as the traffic mirror source. The default value of **N** is **1**, which means that you can add only one traffic mirror source to a traffic mirror session.'."\n", 'type' => 'string', 'required' => false, 'example' => 'eni-j6c2fp57q8rr47rp****', 'title' => ''], + 'required' => true, + 'docRequired' => true, + 'example' => 'eni-j6c2fp57q8rr47rp****', + 'maxLength' => 128, + 'maxItems' => 30, + 'title' => '', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => ['description' => 'The ID of the region to which the traffic mirror session belongs. You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list. For more information about regions that support traffic mirror, see [Overview of traffic mirror](~~207513~~).', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hongkong', 'title' => ''], + ], + [ + 'name' => 'ResourceGroupId', + 'in' => 'query', + 'schema' => ['description' => 'The ID of the resource group to which the mirrored traffic belongs.'."\n", 'type' => 'string', 'required' => false, 'example' => 'rg-bp67acfmxazb4ph****', 'title' => ''], + ], + [ + 'name' => 'Tag', + 'in' => 'query', + 'style' => 'repeatList', + 'schema' => [ + 'description' => 'The tag of the resource.', + 'type' => 'array', + 'items' => [ + 'description' => 'The tag of the resource.', 'type' => 'object', 'properties' => [ - 'Key' => [ - 'description' => 'The key of tag N to add to the resource. You can specify up to 20 tag keys. The tag key cannot be an empty string.'."\n" - ."\n" - .'The tag key can be at most 128 characters in length. It cannot start with `aliyun` or `acs:`, and cannot contain `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'FinanceDept', - ], - 'Value' => [ - 'description' => '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.'."\n" - ."\n" - .'The tag value can be up to 128 characters in length and cannot contain `http://` or `https://`. The tag value cannot start with `aliyun` or `acs:`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'FinanceJoshua', - ], + 'Key' => ['description' => 'The tag key. You can specify at most 20 tag keys. The tag key cannot be an empty string.'."\n" + ."\n" + .'The tag key can be up to 128 characters in length. It cannot start with `aliyun` or `acs:`, and cannot contain `http://` or `https://`.'."\n", 'type' => 'string', 'required' => false, 'example' => 'FinanceDept', 'title' => ''], + 'Value' => ['description' => 'The tag value. You can specify at most 20 tag values. The tag value can be an empty string.'."\n" + ."\n" + .'The tag value can be up to 128 characters in length. It cannot start with `aliyun` or `acs:`, and cannot contain `http://` or `https://`.'."\n", 'type' => 'string', 'required' => false, 'example' => 'FinanceJoshua', 'title' => ''], ], 'required' => false, + 'title' => '', + 'example' => '', ], 'required' => false, 'maxItems' => 21, - ], - ], - [ - 'name' => 'IpVersion', - 'in' => 'query', - 'schema' => [ - 'type' => 'string', + 'title' => '', + 'example' => '', ], ], ], @@ -17125,343 +13929,285 @@ 'description' => '', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B457', - ], - 'Success' => [ - 'description' => 'Indicates whether the operation is successful. Valid values:'."\n" - ."\n" - .'* **true**: yes'."\n" - .'* **false**: no'."\n", - 'type' => 'string', - 'example' => 'true', - ], - 'FlowLogId' => [ - 'description' => 'The ID of the flow log.'."\n", - 'type' => 'string', - 'example' => 'fl-m5e8vhz2t21sel1nq****', - ], - 'ResourceGroupId' => [ - 'description' => 'The ID of the resource group.'."\n", - 'type' => 'string', - 'example' => 'rg-acfmxazdjdhd****', - ], + 'TrafficMirrorSessionId' => ['description' => 'The ID of the traffic mirror session.'."\n", 'type' => 'string', 'example' => 'tms-j6ce5di4w7nvigfjz****', 'title' => ''], + 'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => '0ED8D006-F706-4D23-88ED-E11ED28DCAC0', 'title' => ''], + 'ResourceGroupId' => ['description' => 'The ID of the resource group to which the mirrored traffic belongs.'."\n", 'type' => 'string', 'example' => 'rg-bp67acfmxazb4ph****', 'title' => ''], ], + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'IncorrectBusinessStatus.FlowLog', - 'errorMessage' => 'The business status of flowLog is incorrect.', - ], - [ - 'errorCode' => 'OptInRequired.FlowLog', - 'errorMessage' => 'You are not authorized to use the requested service of flowLog. Ensure that you have subscribed to the service you are trying to use.', - ], - [ - 'errorCode' => 'OperationUnsupported.AdvancedFeature', - 'errorMessage' => 'Advanced features of the vpc is unsupported.', - ], - [ - 'errorCode' => 'InvalidInstanceId', - 'errorMessage' => 'vswitch does not exist.', - ], - [ - 'errorCode' => 'ProjectOrLogstoreNotExist', - 'errorMessage' => 'The specified project or logstore does not exist.', - ], - [ - 'errorCode' => 'SourceProjectNotExist', - 'errorMessage' => 'The Source Project or logstore does not exist.', - ], - [ - 'errorCode' => 'Unauthorized', - 'errorMessage' => 'This api does not support sub user or role.', - ], - [ - 'errorCode' => 'OperationUnsupported.action', - 'errorMessage' => 'This action is not support.', - ], - [ - 'errorCode' => 'ParameterInvalid', - 'errorMessage' => 'Invalid parameter.', - ], - [ - 'errorCode' => 'RuleExist', - 'errorMessage' => 'The rule has already existed.', - ], - [ - 'errorCode' => 'InvalidHdMonitorStatus', - 'errorMessage' => 'Current instance status is not valid for this action.', - ], - [ - 'errorCode' => 'QuotaExceeded.FlowlogCount', - 'errorMessage' => 'This user has reached the maximum instance number of flowlog.', - ], - [ - 'errorCode' => 'InvalidResourceId.NotFound', - 'errorMessage' => 'This resourceId already has flowlog instance existed.', - ], - [ - 'errorCode' => 'INVALID_PARAMETER', - 'errorMessage' => 'The parameter invalid.', - ], - [ - 'errorCode' => 'MissingParameter', - 'errorMessage' => 'Missing mandatory parameter', - ], - [ - 'errorCode' => 'InvalidRegionId.NotFound', - 'errorMessage' => 'The RegionId provided does not exist in our records.', - ], - [ - 'errorCode' => 'InvalidResourceType.NotFound', - 'errorMessage' => 'Resource type no the same.', - ], - [ - 'errorCode' => 'OperationUnsupported.ResourceType', - 'errorMessage' => 'This resource type is not supported.', - ], - [ - 'errorCode' => 'IllegalParam.AggregationInterval', - 'errorMessage' => 'The param of aggregationInterval is illegal.', - ], - [ - 'errorCode' => 'UnsupportedFeature.UserDefinedTrafficPath', - 'errorMessage' => 'The feature of UserDefinedTrafficPath is not supported.', - ], - [ - 'errorCode' => 'IllegalParam.TrafficPath', - 'errorMessage' => 'The param of trafficPath is illegal.', - ], - [ - 'errorCode' => 'DuplicatedParam.TrafficPath', - 'errorMessage' => 'The param of trafficPath is duplicated.', - ], - [ - 'errorCode' => 'IllegalParam.ResourceGroupId', - 'errorMessage' => 'Invalid ResourceGroupld value.', - ], - [ - 'errorCode' => 'OperationDenied.OperateShareResource', - 'errorMessage' => 'The operation is not allowed because of OperateShareResource.', - ], - [ - 'errorCode' => 'UnsupportedFeature.IpVersion', - 'errorMessage' => 'The ipversion type is not supported.', - ], - [ - 'errorCode' => 'UnsupportedFeature.VpcAdvancedFeature', - 'errorMessage' => 'The VPC does not support some advanced features.', - ], - [ - 'errorCode' => 'OperationFailed.EniTypeNotSupport', - 'errorMessage' => 'Operation failed because the ENI type is not supported.', - ], - [ - 'errorCode' => 'IllegalParam.IpVersion', - 'errorMessage' => 'The parameter of IpVersion is illegal.', - ], - [ - 'errorCode' => 'OperationDenied.NisTrafficAnalyzerAggregationIntervalMismatch', - 'errorMessage' => 'The sampling interval of the FlowLog is greater than the sampling interval of the NIS Traffic Analyzer.', - ], - [ - 'errorCode' => 'OperationDenied.NisTrafficAnalyzerNotFound', - 'errorMessage' => 'The specified NIS Traffic Analyzer does not exist.', - ], - [ - 'errorCode' => 'OperationDenied.NisTrafficAnalyzerNotActive', - 'errorMessage' => 'The specified NIS Traffic Analyzer is not enabled.', - ], - [ - 'errorCode' => 'OperationFailed.InternalError', - 'errorMessage' => 'The request processing has failed due to some unknown error.', - ], - [ - 'errorCode' => 'MissingParam.TrafficAnalyzerIdOrLogProjectOrLogStore', - 'errorMessage' => 'TrafficAnalyzerId and ProjectName and LogStoreName parameters are not passed in.', - ], - [ - 'errorCode' => 'OperationDenied.AllTrafficPathOfManagedExist', - 'errorMessage' => 'The resource you specified has created a flow log instance that collects the traffic of all scenarios. You cannot create a flow log instance that collects only some scenarios.', - ], - [ - 'errorCode' => 'UnsupportedFeature.UserDefinedTrafficPathIpv6', - 'errorMessage' => 'Dual-stack flow log instances do not support custom trafficPath.', - ], + ['errorCode' => 'IncorrectBusinessStatus.TrafficMirror', 'errorMessage' => 'The business status of traffic mirror is incorrect.', 'description' => 'Traffic mirroring is in an invalid state.'], + ['errorCode' => 'OptInRequired.TrafficMirror', 'errorMessage' => 'You need to subscribe to the traffic mirror service first.', 'description' => 'Traffic mirroring is disabled.'], + ['errorCode' => 'DuplicatedParam.SourceInstanceIds', 'errorMessage' => 'The parameter of source instance IDs contains duplicate values.', 'description' => 'Duplicate values are set for TrafficMirrorSourceIds.N.'], + ['errorCode' => 'OperationDenied.DuplicateRole', 'errorMessage' => 'The network interface must not be the source and the target of traffic mirror sessions at the same time.', 'description' => ''], + ['errorCode' => 'ResourceNotFound.NetworkInterface', 'errorMessage' => 'The specified resource of %s is not found.', 'description' => 'The error message returned because NetworkInterface is set to an invalid value.'], + ['errorCode' => 'ResourceNotFound.EcsInstance', 'errorMessage' => 'The specified resource of ECS instance is not found.', 'description' => ''], + ['errorCode' => 'ResourceNotFound.Slb', 'errorMessage' => 'The specified resource of SLB is not found.', 'description' => ''], + ['errorCode' => 'OperationDenied.SlbNotInVpc', 'errorMessage' => 'The specified SLB is not in any VPC.', 'description' => ''], + ['errorCode' => 'ResourceNotFound.TrafficMirrorFilter', 'errorMessage' => 'The specified resource of traffic mirror filter is not found.', 'description' => 'The specified filter does not exist.'], + ['errorCode' => 'IncorrectStatus.TrafficMirrorFilter', 'errorMessage' => 'The status of traffic mirror filter is incorrect.', 'description' => 'The filter is in an invalid state.'], + ['errorCode' => 'OperationDenied.EcsNotSupportTrafficMirror', 'errorMessage' => 'The ECS instance does not support traffic mirroring.', 'description' => ''], + ['errorCode' => 'QuotaExceeded.SessionNum', 'errorMessage' => 'The quota of the number of traffic mirror sessions is exceeded.', 'description' => 'The number of traffic mirror sessions has reached the upper limit.'], + ['errorCode' => 'QuotaExceeded.FilterRelatedSession', 'errorMessage' => 'The quota of the number of traffic mirror sessions related to one filter is exceeded.', 'description' => 'The number of traffic mirror sessions associated with the filter has reached the upper limit.'], + ['errorCode' => 'QuotaExceeded.SourceNumPerSession', 'errorMessage' => 'The quota of the number of traffic mirror sources per session is exceeded.', 'description' => 'The number of traffic mirror sources associated with a traffic mirror session has reached the upper limit.'], + ['errorCode' => 'QuotaExceeded.NetworkInterfaceRelatedSession', 'errorMessage' => 'The quota of the number of traffic mirror sessions related to one network interface is exceeded.', 'description' => 'The number of traffic mirror sessions associated with an ENI has reached the upper limit.'], + ['errorCode' => 'QuotaExceeded.SlbRelatedSession', 'errorMessage' => 'The quota of the number of traffic mirror sessions related to one SLB is exceeded.', 'description' => 'The number of traffic mirror sessions associated with an SLB instance has reached the upper limit.'], + ['errorCode' => 'UnsupportedRegion', 'errorMessage' => 'The feature is not supported in current region.', 'description' => 'The feature is not supported in the current region.'], + ['errorCode' => 'InvalidLoadBalancerId.NotFound', 'errorMessage' => 'The specified resource of load balancer is not found.', 'description' => 'The SLB instance does not exist.'], + ['errorCode' => 'OperationDenied.FreeNetworkInterface', 'errorMessage' => 'The network interface is not attached to any ECS instance.', 'description' => 'The ENI is not associated with an ECS instance.'], + ['errorCode' => 'OperationDenied.ClassicSLB', 'errorMessage' => 'The operation is not allowed because of ClassicSLB.', 'description' => 'The error message returned because you cannot perform the operation on a CLB instance.'], + ['errorCode' => 'ResourceNotFound.TargetInstance', 'errorMessage' => 'The specified target instance for traffic mirroring is not found.', 'description' => 'The specified traffic mirror destination does not exist.'], + ['errorCode' => 'QuotaExceeded.SourceNumPerTarget', 'errorMessage' => 'The maximum number of traffic mirror sources for a target is exceeded.', 'description' => 'The number of traffic mirror sources associated with the image exceeds the upper limit.'], + ['errorCode' => 'IncorrectStatus.NetworkInterface', 'errorMessage' => 'The status of network interface is incorrect.', 'description' => 'The status of the ENI is invalid.'], + ['errorCode' => 'OperationFailed.NotSupportBizType', 'errorMessage' => 'The specified instance type does not support the operation.', 'description' => 'The specified instance type does not support the operation.'], + ['errorCode' => 'IllegalParam.Priority', 'errorMessage' => 'The specified Priority is illegal or the same as other mirroring sessions.', 'description' => 'The specified Priority is illegal or identical to another mirroring session'], + ['errorCode' => 'OperationDenied.UnsupportedTargetType', 'errorMessage' => 'Traffic mirror target must be SLB if traffic mirror sources contain nat gateway network interface.', 'description' => 'When a NAT gateway NIC exists in the traffic mirroring source, the traffic mirroring purpose must be SLB type.'], + ['errorCode' => 'OperationDenied.TargetTypeNotSupportGatewayLoadBalancerEndpoint', 'errorMessage' => 'Operation denied because of target type can not be GatewayLoadBalancerEndpoint.', 'description' => 'Gateway-based load balancing endpoints are not supported as traffic mirrors mu d'], + ['errorCode' => 'OperationDenied.TargetTypeNotSupportBondEni', 'errorMessage' => 'Operation denied because of target type can not be Bond Network Interface.', 'description' => 'Operation denied because of target type can not be Bond Network Interface.'], + ['errorCode' => 'OperationDenied.InvalidTargetBondEniType', 'errorMessage' => 'The traffic mirroring target does not support the entered bond ENI type.', 'description' => 'The traffic mirroring target does not support the entered bond ENI type.'], + ['errorCode' => 'OperationDenied.InvalidSourceBondEniType', 'errorMessage' => 'The traffic mirroring source does not support the entered bond ENI type.', 'description' => 'The traffic mirroring source does not support the entered bond ENI type.'], + ['errorCode' => 'OperationDenied.TargetTypeNotSupportTrafficMirrorFullPacket', 'errorMessage' => 'The traffic mirror session target type does not support the feature of mirroring source full packet.', 'description' => 'The traffic mirror session target type does not support the feature of mirroring source full packet'], + ['errorCode' => 'OperationDenied.TrafficMirrorSessionSourceFullPacketNotSupport', 'errorMessage' => 'The traffic mirror session does not support the feature of mirroring source full packet.', 'description' => 'Traffic mirror currently does not support source full packet mirroring. TrafficMirrorSourceTruncateMode can only be set to 0, which is the default mode.'], + ['errorCode' => 'QuotaExceeded.SessionNumPerTarget', 'errorMessage' => 'The quota of the number of traffic mirror sessions per target is exceeded.', 'description' => ''], + ['errorCode' => 'OperationDenied.NotSupportBondEniAsTrafficMirrorSource', 'errorMessage' => 'The operation is not allowed because bond eni cannot be the source of traffic mirror.', 'description' => 'Bond eni is not allowed to be the source of traffic mirror.'], + ['errorCode' => 'IncorrectStatus.TrafficMirrorSessionTarget', 'errorMessage' => 'The status of the target of the traffic mirror session is incorrect.', 'description' => 'The status of the intent of the traffic mirroring session is incorrect.'], + ], + 404 => [ + ['errorCode' => 'ResourceNotFound.GatewayLoadBalancerEndpoint', 'errorMessage' => 'GatewayLoadBalancerEndpoint instance not found.', 'description' => 'GatewayLoadBalancerEndpoint instance not found.'], ], ], - 'staticInfo' => [ - 'returnType' => 'asynchronous', - 'callback' => 'Vpc::2016-04-28::DescribeFlowLogs', - 'callbackInterval' => 3000, - 'maxCallbackTimes' => 10, - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B457\\",\\n \\"Success\\": \\"true\\",\\n \\"FlowLogId\\": \\"fl-m5e8vhz2t21sel1nq****\\",\\n \\"ResourceGroupId\\": \\"rg-acfmxazdjdhd****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 54B48E3D-DF70-471B-AA93-08E683A1B457\\n true\\n fl-m5e8vhz2t21sel1nq****\\n rg-acfmxazdjdhd****\\n","errorExample":""}]', - 'title' => 'CreateFlowLog', - 'description' => '**CreateFlowLog** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call the [DescribeFlowLogs](~~87923~~) operation to query the status of the flow log.'."\n" - ."\n" - .'* If the flow log is in the **Activating** state, the flow log is being created.'."\n" - .'* If the flow log is in the **Active** state, the flow log is created and started.'."\n", + 'title' => 'CreateTrafficMirrorSession', + 'summary' => 'Creates a traffic mirror session.', + 'description' => '**CreateTrafficMirrorSession**接口属于异步接口,即系统返回一个实例ID,但该镜像会话尚未创建成功,系统后台的创建任务仍在进行。您可以调用[ListTrafficMirrorSessions](~~261367~~)查询镜像会话的创建状态:'."\n" + .'- 当镜像会话处于**Creating**状态时,表示镜像会话正在创建中。'."\n" + .'- 当镜像会话处于**Created**状态时,表示镜像会话创建完成。', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2025-05-09T07:44:49.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2025-02-08T09:45:32.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-09-11T02:36:44.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-01-15T05:37:08.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-09-26T07:21:14.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-09-21T07:06:31.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-09-14T05:43:10.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-08-30T03:22:02.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-07-10T02:02:24.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2023-06-25T06:28:07.000Z', 'description' => 'Error codes changed, Request parameters changed'], + ['createdAt' => '2023-04-14T10:13:04.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-03-16T08:04:23.000Z', 'description' => 'Request parameters changed, Response parameters changed'], + ], + 'ramActions' => [], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"TrafficMirrorSessionId\\": \\"tms-j6ce5di4w7nvigfjz****\\",\\n \\"RequestId\\": \\"0ED8D006-F706-4D23-88ED-E11ED28DCAC0\\",\\n \\"ResourceGroupId\\": \\"rg-bp67acfmxazb4ph****\\"\\n}","type":"json"}]', + 'translator' => 'manual', ], - 'DeleteFlowLog' => [ - 'summary' => 'Deletes a flow log.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'CreateVSwitch' => [ + 'summary' => 'Creates a vSwitch.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'delete', - 'riskType' => 'none', - 'chargeType' => 'paid', - ], + 'operationType' => 'readAndWrite', + 'systemTags' => ['operationType' => 'create', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ - 'name' => 'RegionId', + 'name' => 'Tag', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => 'The region ID of the flow log. You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cn-qingdao', + 'description' => 'The tag of the resource.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => 'The tag key. You can specify at most 20 tag keys. The tag key cannot be an empty string.'."\n" + ."\n" + .'The tag key can be at most 128 characters in length. It cannot start with `aliyun` or `acs:`, and cannot contain `http://` or `https://`.'."\n", 'type' => 'string', 'required' => false, 'example' => 'FinanceJoshua', 'title' => ''], + 'Value' => ['description' => 'The tag value. You can specify at most 20 tag values. The tag value can be an empty string.'."\n" + ."\n" + .'The tag value can be up to 128 characters in length, but cannot contain `http://` or `https://`. The tag value cannot start with `aliyun` or `acs:`.'."\n", 'type' => 'string', 'required' => false, 'example' => 'FinanceDept', 'title' => ''], + ], + 'required' => false, + 'title' => '', + 'example' => '', + ], + 'required' => false, + 'maxItems' => 21, + 'title' => '', + 'example' => '', ], ], [ - 'name' => 'FlowLogId', + 'name' => 'ZoneId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the flow log.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'fl-m5e8vhz2t21sel1nq****', - ], + 'schema' => ['description' => 'The zone ID of the vSwitch.'."\n" + ."\n" + .'You can call the [DescribeZones](~~36064~~) operation to query the most recent zone list.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou-b', 'title' => ''], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => ['description' => 'The region ID of the vSwitch.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou', 'title' => ''], + ], + [ + 'name' => 'CidrBlock', + 'in' => 'query', + 'schema' => ['description' => 'The CIDR block of the vSwitch. Take note of the following limits:'."\n" + ."\n" + .'* The subnet mask of the CIDR block must be 16 to 29 bits in length.'."\n" + .'* The CIDR block of the vSwitch must fall within the CIDR block of the VPC to which the vSwitch belongs.'."\n" + .'* The CIDR block of a vSwitch cannot be the same as the destination CIDR block in a route entry of the VPC. However, it can be a subset of the destination CIDR block.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '172.16.0.0/24', 'title' => ''], + ], + [ + 'name' => 'Ipv6CidrBlock', + 'in' => 'query', + 'schema' => ['description' => 'The last eight bits of the IPv6 CIDR block of the vSwitch. Valid values: **0** to **255**.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '12', 'title' => ''], + ], + [ + 'name' => 'VpcId', + 'in' => 'query', + 'schema' => ['description' => 'The ID of the VPC where you want to create the vSwitch.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'vpc-257gqcdfvx6n****', 'title' => ''], + ], + [ + 'name' => 'VSwitchName', + 'in' => 'query', + 'schema' => ['description' => 'The name of the vSwitch.'."\n" + ."\n" + .'The name must be 1 to 128 characters in length, and cannot start with `http://` or `https://`.'."\n", 'type' => 'string', 'required' => false, 'example' => 'vSwitch-1', 'title' => ''], + ], + [ + 'name' => 'Description', + 'in' => 'query', + 'schema' => ['description' => 'The description of the vSwitch.'."\n" + ."\n" + .'The description must be 1 to 256 characters in length and cannot start with `http://` or `https://`.'."\n", 'type' => 'string', 'required' => false, 'example' => 'vSwitch', 'title' => ''], + ], + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'You can use the client to generate the value, but you must make sure that it is unique among all requests. The token can contain only ASCII characters.'."\n" + ."\n" + .'> If you do not specify this parameter, **ClientToken** is set to the value of **RequestId**. The value of **RequestId** may be different for each API request.'."\n", 'type' => 'string', 'required' => false, 'example' => '0c593ea1-3bea-11e9-b96b-88e9fe63****', 'title' => ''], + ], + [ + 'name' => 'VpcIpv6CidrBlock', + 'in' => 'query', + 'schema' => ['description' => 'The IPv6 CIDR block of the VPC.'."\n", 'type' => 'string', 'required' => false, 'example' => '2408:XXXX:0:6a::/56', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'description' => 'The returned data.'."\n", 'type' => 'object', 'properties' => [ - 'Success' => [ - 'description' => 'Indicates whether the operation is successful. Valid values:'."\n" - ."\n" - .'* **true**: yes'."\n" - .'* **false**: no'."\n", - 'type' => 'string', - 'example' => 'true', - ], - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => 'F7DDDC17-FA06-4AC2-8F35-59D2470FCFC1', - ], + 'VSwitchId' => ['description' => 'The ID of the vSwitch.'."\n", 'type' => 'string', 'example' => 'vsw-25navfgbue4g****', 'title' => ''], + 'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => '0ED8D006-F706-4D23-88ED-E11ED28DCAC0', 'title' => ''], ], + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidInstanceId', - 'errorMessage' => 'Instance does not exist.', - ], - [ - 'errorCode' => 'ProjectOrLogstoreNotExist', - 'errorMessage' => 'The specified project or logstore does not exist.', - ], - [ - 'errorCode' => 'SourceProjectNotExist', - 'errorMessage' => 'The Source Project or logstore does not exist.', - ], - [ - 'errorCode' => 'Unauthorized', - 'errorMessage' => 'This api does not support sub user or role.', - ], - [ - 'errorCode' => 'ParameterInvalid', - 'errorMessage' => 'Invalid parameter.', - ], - [ - 'errorCode' => 'InvalidStatus', - 'errorMessage' => 'The specfied instance\'s status is invalid.', - ], - [ - 'errorCode' => 'InvalidHdMonitorStatus', - 'errorMessage' => 'Current instance status is not valid for this action.', - ], - [ - 'errorCode' => 'FlowLogNumberOverLimit', - 'errorMessage' => 'This user has reached the maximum instance number of flowlog.', - ], - [ - 'errorCode' => 'InvalidRegionId.NotFound', - 'errorMessage' => 'The RegionId provided does not exist in our records.', - ], - [ - 'errorCode' => 'InvalidInstanceId.NotFound', - 'errorMessage' => 'The specfied instance is not existed.', - ], - [ - 'errorCode' => 'IncorrectStatus.flowlog', - 'errorMessage' => 'Invalid flowlog status.', - ], - [ - 'errorCode' => 'InvalidResourceId.NotFound', - 'errorMessage' => 'Resource id is empty.', - ], - [ - 'errorCode' => 'Forbidden.OperateManagedFlowLog', - 'errorMessage' => 'Authentication is failed for operate managed flowlog.', - ], + ['errorCode' => 'OperationFailed.ResourceConflict', 'errorMessage' => 'vpc only support one cloud box.', 'description' => ''], + ['errorCode' => 'OperationFailed.IdempotentTokenProcessing', 'errorMessage' => 'Action is processing.', 'description' => ''], + ['errorCode' => 'InvalidDescription.Malformed', 'errorMessage' => 'Invalid description.', 'description' => ''], + ['errorCode' => 'InvalidVSwitchName.Malformed', 'errorMessage' => 'Specified virtual switch name is not valid.', 'description' => 'The format of the specified vSwitch name is invalid. Specify the name in the valid format.'], + ['errorCode' => 'InvalidVSwitchDiscription.Malformed', 'errorMessage' => 'Specified virtual switch description is not valid.', 'description' => ''], + ['errorCode' => 'Abs.Vpc.InvalidDescription.Malformed', 'errorMessage' => 'Specified virtual switch name is not valid.', 'description' => ''], + ['errorCode' => 'MissingParam.vpcId', 'errorMessage' => 'The parameter vpcId is mandatory.', 'description' => 'The vpcId parameter is required.'], + ['errorCode' => 'ResourceNotAvailable', 'errorMessage' => 'Resource you requested is not available in this region or zone.', 'description' => ''], + ['errorCode' => 'InvalidParameter', 'errorMessage' => 'Specified CIDR block is not valid in VPC.', 'description' => ''], + ['errorCode' => 'InvalidCidrBlock.Overlapped', 'errorMessage' => 'Specified CIDR block overlapped with other subnets.', 'description' => ''], + ['errorCode' => 'QuotaExceeded.VSwitch', 'errorMessage' => 'Virtual switch quota exceeded.', 'description' => 'The number of vSwitches has reached the upper limit. Reduce the number of vSwitches and try again later.'], + ['errorCode' => 'IncorrectRouteEntryStatus', 'errorMessage' => 'Some route entry status blocked this operation.', 'description' => ''], + ['errorCode' => 'IncorrectVSwitchStatus', 'errorMessage' => 'Some virtual switch is modifying within the same VPC.', 'description' => 'Multiple vSwitches are in the Modifying state in the same VPC. Try again later.'], + ['errorCode' => 'InvalidCirdrBlock.MaskLength', 'errorMessage' => 'Specified CIDR block is not valid .', 'description' => 'Invalid CIDR block.'], + ['errorCode' => 'IncorrectVpcStatus', 'errorMessage' => 'Current VPC status does not support this operation.', 'description' => ''], + ['errorCode' => 'CreateVSwitch.IncorrectStatus.cbnStatus', 'errorMessage' => 'Current CBN status does not support this operation.', 'description' => 'You cannot create a vSwitch when the CEN instance is in the current state.'], + ['errorCode' => 'InvalidCidrBlock.Malformed', 'errorMessage' => 'Specified CIDR block is not valid.', 'description' => ''], + ['errorCode' => 'MissingParameter', 'errorMessage' => 'Miss mandatory parameter.', 'description' => ''], + ['errorCode' => 'TaskConflict', 'errorMessage' => 'The operation is too frequent, TaskConflict.', 'description' => 'The system is unavailable. Try again later.'], + ['errorCode' => 'VPC.SWITCH.RULE.QUOTA.NOT.EXISTS', 'errorMessage' => 'vSwitch quota rule not exists.', 'description' => ''], + ['errorCode' => 'Forbidden.VpcNotFound', 'errorMessage' => 'Specified VPC can not found.', 'description' => 'The specified VPC does not exist.'], + ['errorCode' => 'RouteConflict.AlreadyExist', 'errorMessage' => 'Route conflict exists in routing table.', 'description' => 'Route conflicts exist in the route table.'], + ['errorCode' => 'OperationFailed.CidrAcross', 'errorMessage' => 'Classic link instance cidr must not across.', 'description' => ''], + ['errorCode' => 'Duplicated.ClientToken', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'OperationFailed.Ipv6CidrBlockExisted', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'IllegalParam.Ipv6CidrBlock', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'OperationFailed.VpcIpv6Disabled', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'IncorrectStatus.cbnStatus', 'errorMessage' => 'Current CBN status does not support this operation.', 'description' => 'The status of the CEN instance is invalid.'], + ['errorCode' => 'OperationFailed.NotifyCenCreate', 'errorMessage' => 'Failed to notify cen when create vswitch.', 'description' => ''], + ['errorCode' => 'OperationFailed.DistibuteLock', 'errorMessage' => 'Distibute lock fail.', 'description' => 'The operation is locked by another request;'], + ['errorCode' => 'UnsupportedFeature.CloudBoxIpv6', 'errorMessage' => 'The IPv6 feature is not supported by cloud box.', 'description' => 'You cannot create an IPv6 address for a CloudBox instance.'], + ['errorCode' => 'OperationDenied.VpcPeerExist', 'errorMessage' => 'The operation is not allowed because the VPC peer exists.', 'description' => 'The operation failed because VPC peering connections exist.'], + ['errorCode' => 'OperationDenied.CenAttached', 'errorMessage' => 'The operation is not allowed because the VPC is attached to CEN.', 'description' => 'The operation is not allowed because the VPC is attached to a CEN instance.'], + ['errorCode' => 'OperationDenied.NatgwExist', 'errorMessage' => 'The operation is not allowed because the NAT gateway exists in VPC.', 'description' => 'The operation is not allowed because NAT gateways exist in the VPC.'], + ['errorCode' => 'MissingParam.Ipv6CidrBlock', 'errorMessage' => 'The parameter Ipv6CidrBlock is mandatory.', 'description' => 'The Ipv6CidrBlock parameter is required.'], + ['errorCode' => 'IllegalParam.VpcIpv6CidrBlock', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'OperationDenied.OtherSubnetCreating', 'errorMessage' => 'The operation is not allowed because the other VSwitch is creating.', 'description' => ''], + ['errorCode' => 'OperationDenied.VpcPeerExists', 'errorMessage' => 'The operation is not allowed because the VpcPeer exists.', 'description' => 'The VPC has a VPC peering connection.'], + ['errorCode' => 'IllegalParam.CidrBlock', 'errorMessage' => 'The param of CidrBlock [%s] is illegal.', 'description' => 'The CidrBlock parameter is set to an invalid value.'], + ['errorCode' => 'InvalidStatus.RouteEntry', 'errorMessage' => 'RouteEntry status error.', 'description' => ''], + ['errorCode' => 'InvalidZoneId.NotFound', 'errorMessage' => 'Specified zone does not exist.', 'description' => ''], + ['errorCode' => 'OperationDenied.ZoneIsDisabled', 'errorMessage' => 'The specified zone is disabled. You cannot create a vSwitch in a disabled zone.', 'description' => 'The specified zone is disabled. You cannot create a vSwitch in a disabled zone.'], + ], + 404 => [ + ['errorCode' => 'Invalid.NotExist', 'errorMessage' => 'witch mask rule not exists.', 'description' => ''], + ['errorCode' => 'InvalidVpcId.NotFound', 'errorMessage' => 'Specified VPC does not exist.', 'description' => ''], ], ], - 'staticInfo' => [ - 'returnType' => 'asynchronous', - 'callback' => 'Vpc::2016-04-28::DescribeFlowLogs', - 'callbackInterval' => 3000, - 'maxCallbackTimes' => 10, - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Success\\": \\"true\\",\\n \\"RequestId\\": \\"F7DDDC17-FA06-4AC2-8F35-59D2470FCFC1\\"\\n}","errorExample":""},{"type":"xml","example":"\\n true\\n F7DDDC17-FA06-4AC2-8F35-59D2470FCFC1\\n","errorExample":""}]', - 'title' => 'DeleteFlowLog', - 'description' => '* The **DeleteFlowLog** operation is asynchronous. After you send the request, the system returns a request ID. However, the operation is still being performed in the system background. You can call the [DescribeFlowLogs](~~87923~~) operation to query the status of a flow log:'."\n" + 'title' => 'CreateVSwitch', + 'description' => 'When you call this operation, take note of the following limits:'."\n" ."\n" - .' * If the flow log is in the **Deleting** state, the flow log is being deleted.'."\n" - .' * If you cannot query the flow log, the flow log is deleted.'."\n" + .'* You can create at most 150 vSwitches in a virtual private cloud (VPC).'."\n" ."\n" - .'* You cannot repeatedly call the **DeleteFlowLog** operation to delete a flow log within the specified period of time.', + .'* The first IP address and last three IP addresses of each vSwitch CIDR block are reserved. For example, if the CIDR block of a vSwitch is 192.168.1.0/24, the IP addresses 192.168.1.0, 192.168.1.253, 192.168.1.254, and 192.168.1.255 are reserved.'."\n" + ."\n" + .'* The number of instances in a vSwitch cannot exceed the remaining capacity of the VPC. The remaining capacity is the difference between 15,000 and the current number of instances.'."\n" + ."\n" + .'* Each instance can belong to only one vSwitch.'."\n" + ."\n" + .'* vSwitches do not support multicast or broadcast.'."\n" + ."\n" + .'* After you create a vSwitch, you cannot modify its CIDR block.'."\n" + ."\n" + .'* **CreateVSwitch** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call [DescribeVSwitchAttributes](~~94567~~) to query the status of the task.'."\n" + ."\n" + .' * If the vSwitch is in the **Pending** state, the vSwitch is being configured.'."\n" + .' * If the vSwitch is in the **Available** state, the vSwitch is available.'."\n" + ."\n" + .'* You cannot repeatedly call the **CreateVSwitch** operation to create a vSwitch in a VPC within the specified period of time.'."\n", 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'ModifyFlowLogAttribute' => [ - 'summary' => 'Modifies the name and description of a flow log.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [ + ['createdAt' => '2024-01-17T10:03:48.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-07-05T05:51:47.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2021-11-17T09:56:46.000Z', 'description' => 'Error codes changed'], ], + 'ramActions' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"VSwitchId\\": \\"vsw-25navfgbue4g****\\",\\n \\"RequestId\\": \\"0ED8D006-F706-4D23-88ED-E11ED28DCAC0\\"\\n}","errorExample":""},{"type":"xml","example":"\\n vsw-25navfgbue4g****\\n 0ED8D006-F706-4D23-88ED-E11ED28DCAC0\\n","errorExample":""}]', + ], + 'CreateVSwitchCidrReservation' => [ + 'summary' => 'Creates a reserved CIDR block for a vSwitch.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -17469,222 +14215,191 @@ ], 'operationType' => 'readAndWrite', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'update', - 'riskType' => 'none', - 'chargeType' => 'free', - ], + 'systemTags' => ['operationType' => 'create', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ - 'name' => 'RegionId', + 'name' => 'Tag', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => 'The ID of the region where the flow log is created.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cn-qingdao', + 'description' => 'Resource tags'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => '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.'."\n" + ."\n" + .'The tag key can be up to 128 characters in length. It cannot start with aliyun or acs:, and cannot contain http:// or https://.'."\n", 'type' => 'string', 'required' => false, 'example' => 'FinanceDept', 'title' => ''], + 'Value' => ['description' => '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.'."\n" + ."\n" + .'The tag value can be up to 128 characters in length and cannot start with acs: or aliyun. It cannot contain http:// or https://.'."\n", 'type' => 'string', 'required' => false, 'example' => 'FinanceJoshua', 'title' => ''], + ], + 'required' => false, + 'title' => '', + 'example' => '', + ], + 'required' => false, + 'maxItems' => 21, + 'title' => '', + 'example' => '', ], ], [ - 'name' => 'FlowLogId', + 'name' => 'VSwitchId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the flow log.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'fl-m5e8vhz2t21sel1nq****', - ], + 'schema' => ['description' => 'The ID of the vSwitch to which the reserved CIDR block belongs.'."\n", 'type' => 'string', 'required' => true, 'example' => 'vsw-25navfgbue4g****', 'title' => ''], ], [ - 'name' => 'FlowLogName', + 'name' => 'VSwitchCidrReservationName', 'in' => 'query', - 'schema' => [ - 'description' => 'The new name of the flow log.'."\n" - ."\n" - .'The name must be 1 to 128 characters in length and cannot start with `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'myFlowlog', - ], + 'schema' => ['description' => 'The name of the reserved CIDR block.'."\n" + ."\n" + .'The name must be 2 to 128 characters in length and can contain digits, underscores (\\_), and hyphens (-). It must start with a letter.'."\n", 'type' => 'string', 'required' => false, 'example' => 'ReservationName', 'title' => ''], ], [ - 'name' => 'Description', + 'name' => 'VSwitchCidrReservationDescription', 'in' => 'query', - 'schema' => [ - 'description' => 'The new description of the flow log.'."\n" - ."\n" - .'The description must be 1 to 256 characters in length and cannot start with `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'This is my Flowlog.', - ], + 'schema' => ['description' => 'The description of the reserved CIDR block. This parameter is empty by default.'."\n" + ."\n" + .'The description must be 2 to 256 characters in length. It must start with a letter and cannot start with `http://` or `https://`.'."\n", 'type' => 'string', 'required' => false, 'example' => 'ReservationDescription', 'title' => ''], ], [ - 'name' => 'AggregationInterval', + 'name' => 'IpVersion', 'in' => 'query', - 'schema' => [ - 'description' => 'The new sampling interval of the flow log. Unit: minutes. Valid values: **1**, **5**, and **10**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', - ], + 'schema' => ['description' => 'The IP version of the reserved CIDR block. Valid values:'."\n" + ."\n" + .'* **IPv4** (default)'."\n" + .'* **IPv6**'."\n", 'type' => 'string', 'required' => false, 'example' => 'IPv4', 'title' => ''], ], [ - 'name' => 'IpVersion', + 'name' => 'VSwitchCidrReservationMask', 'in' => 'query', - 'schema' => [ - 'description' => 'The version of the IP address. Valid values:'."\n" - ."\n" - .'* **IPV4**: the IPv4 address.'."\n" - .'* **DualStack**: includes IPv4 and IPv6 address', - 'type' => 'string', - 'required' => false, - 'example' => 'IPv4', - ], + 'schema' => ['description' => 'The subnet mask of the reserved CIDR block.'."\n" + ."\n" + .'* When **IpVersion** is set to **IPv4**, the subnet mask length of the CIDR block must be greater than the IPv4 subnet mask length of the vSwitch and cannot be greater than 28.'."\n" + .'* When **IpVersion** is set to **IPv6**, the subnet mask length of the CIDR block must be greater than the IPv6 subnet mask length of the vSwitch and cannot be greater than 80.'."\n" + ."\n" + .'> You must specify one of **VSwitchCidrReservationMask** and **VSwitchCidrReservationCidr**.'."\n", 'type' => 'string', 'required' => false, 'example' => '28', 'title' => ''], + ], + [ + 'name' => 'VSwitchCidrReservationCidr', + 'in' => 'query', + 'schema' => ['description' => 'The reserved CIDR block of the vSwitch.'."\n" + ."\n" + .'* When **IpVersion** is set to **IPv4**, the reserved CIDR block must be a proper subset of the IPv4 CIDR block of the vSwitch and the subnet mask length of the reserved CIDR block cannot be greater than 28.'."\n" + .'* When **IpVersion** is set to **IPv6**, the reserved CIDR block must be a proper subset of the IPv6 CIDR block of the vSwitch and the subnet mask length of the reserved CIDR block cannot be greater than 80.'."\n" + ."\n" + .'> You must specify one of **VSwitchCidrReservationMask** and **VSwitchCidrReservationCidr**.'."\n", 'type' => 'string', 'required' => false, 'example' => '192.168.1.64/28', 'title' => ''], + ], + [ + 'name' => 'VSwitchCidrReservationType', + 'in' => 'query', + 'schema' => ['description' => 'The type of reserved CIDR block. Set the value to **prefix**.'."\n" + ."\n" + .'> When a user or a cloud service allocates a CIDR block to an elastic network interface (ENI), the CIDR block must be allocated from the reserved CIDR block. If the reserved CIDR block is exhausted, an error is returned.'."\n", 'type' => 'string', 'required' => false, 'example' => 'prefix', 'title' => ''], + ], + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'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.'."\n" + ."\n" + .'> 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.'."\n", 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-426655440000', 'title' => ''], + ], + [ + 'name' => 'DryRun', + 'in' => 'query', + 'schema' => ['description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values:'."\n" + ."\n" + .'* **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.'."\n" + .'* **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.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => ['description' => 'The ID of the region where the vSwitch is deployed.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => '', + 'description' => 'The ID of the reserved CIDR block.'."\n", 'type' => 'object', 'properties' => [ - 'Success' => [ - 'description' => 'Indicates whether the call is successful. Valid values:'."\n" - ."\n" - .'* **true**: yes'."\n" - .'* **false**: no'."\n", - 'type' => 'string', - 'example' => 'true', - ], - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => 'F7DDDC17-FA06-4AC2-8F35-59D2470FCFC1', - ], + 'VSwitchCidrReservationId' => ['description' => 'The ID of the reserved CIDR block.'."\n", 'type' => 'string', 'example' => 'vcr-bp1m12saqteraw3rp****', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B45', 'title' => ''], ], + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'IncorrectBusinessStatus.FlowLog', - 'errorMessage' => 'The business status of flowLog is incorrect.', - ], - [ - 'errorCode' => 'InvalidInstanceId', - 'errorMessage' => 'Instance does not exist.', - ], - [ - 'errorCode' => 'ProjectOrLogstoreNotExist', - 'errorMessage' => 'The specified project or logstore does not exist.', - ], - [ - 'errorCode' => 'SourceProjectNotExist', - 'errorMessage' => 'The Source Project or logstore does not exist.', - ], - [ - 'errorCode' => 'Unauthorized', - 'errorMessage' => 'This api does not support sub user or role.', - ], - [ - 'errorCode' => 'InvalidInstanceId.NotFound', - 'errorMessage' => 'The specfied instance is not existed.', - ], - [ - 'errorCode' => 'RuleExist', - 'errorMessage' => 'The rule has already existed.', - ], - [ - 'errorCode' => 'InvalidHdMonitorStatus', - 'errorMessage' => 'Current instance status is not valid for this action.', - ], - [ - 'errorCode' => 'FlowLogNumberOverLimit', - 'errorMessage' => 'This user has reached the maximum instance number of flowlog.', - ], - [ - 'errorCode' => 'InvalidTrafficType.NotFound', - 'errorMessage' => 'Invalid traffic type.', - ], - [ - 'errorCode' => 'IncorrectStatus.flowlog', - 'errorMessage' => 'Invalid flowlog status.', - ], - [ - 'errorCode' => 'InvalidName.Malformed', - 'errorMessage' => 'The specified name is not valid.', - ], - [ - 'errorCode' => 'IllegalParam.AggregationInterval', - 'errorMessage' => 'The param of aggregationInterval is illegal.', - ], - [ - 'errorCode' => 'Forbidden.OperateManagedFlowLog', - 'errorMessage' => 'Authentication is failed for operate managed flowlog.', - ], - [ - 'errorCode' => 'UnsupportedFeature.IpVersion', - 'errorMessage' => 'The ipversion type is not supported.', - ], - [ - 'errorCode' => 'IllegalParam.IpVersion', - 'errorMessage' => 'The parameter of IpVersion is illegal.', - ], - [ - 'errorCode' => 'OperationDenied.NisTrafficAnalyzerAggregationIntervalMismatch', - 'errorMessage' => 'The sampling interval of the FlowLog is greater than the sampling interval of the NIS Traffic Analyzer.', - ], - [ - 'errorCode' => 'OperationDenied.NisTrafficAnalyzerNotActive', - 'errorMessage' => 'The specified NIS Traffic Analyzer is not enabled.', - ], - [ - 'errorCode' => 'OperationDenied.NisTrafficAnalyzerNotFound', - 'errorMessage' => 'The specified NIS Traffic Analyzer does not exist.', - ], - [ - 'errorCode' => 'OperationFailed.InternalError', - 'errorMessage' => 'The request processing has failed due to some unknown error.', - ], - [ - 'errorCode' => 'OperationDenied.InvalidInstanceDeliverScope', - 'errorMessage' => 'When modifying the delivery purpose of the FlowLog instance or starting and stopping NIS traffic analysis, you specify the type of delivery that is not allowed.', - ], - ], - ], - 'staticInfo' => [ - 'returnType' => 'asynchronous', - 'callback' => 'Vpc::2016-04-28::DescribeFlowLogs', - 'callbackInterval' => 3000, - 'maxCallbackTimes' => 10, - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Success\\": \\"true\\",\\n \\"RequestId\\": \\"F7DDDC17-FA06-4AC2-8F35-59D2470FCFC1\\"\\n}","errorExample":""},{"type":"xml","example":"\\n true\\n F7DDDC17-FA06-4AC2-8F35-59D2470FCFC1\\n","errorExample":""}]', - 'title' => 'ModifyFlowLogAttribute', - 'description' => '* **ModifyFlowLogAttribute** is an asynchronous operation. After you send a request, the system returns a request ID and runs the task in the background. You can call the [DescribeFlowLogs](~~87923~~) operation to query the status of a flow log:'."\n" + ['errorCode' => 'IllegalParamFormat', 'errorMessage' => 'IllegalParamFormat', 'description' => 'The parameter format is invalid.'], + ['errorCode' => 'IllegalParamFormat.VSwitchCidrReservationCidr', 'errorMessage' => 'The param format of VSwitchCidrReservationCidr is illegal.', 'description' => 'The VSwitchCidrReservationCidr value is invalid.'], + ['errorCode' => 'ResourceNotFound.VSwitch', 'errorMessage' => 'The specified resource of VSwitch is not found.', 'description' => 'The specified vSwitch does not exist.'], + ['errorCode' => 'UnsupportedFeature.ReservedType', 'errorMessage' => 'The specified ReservedType is not supported.', 'description' => 'The ReservedType value is invalid.'], + ['errorCode' => 'UnsupportedFeature.VSwitchIpv6', 'errorMessage' => 'The ipv6 feature of switch is not supported.', 'description' => 'IPv6 is not enabled for the specified vSwitch.'], + ['errorCode' => 'OperationFailed.VSwitchCidrReservationCidr', 'errorMessage' => 'The specified VSwitchCidrReservationCidr conflicts with existed cidr reservation or vswitch cidr.', 'description' => 'The VSwitchCidrReservationCidr value conflicts with an existing VSwitchCidrReservation value.'], + ['errorCode' => 'MissingParam.CidrReservationMaskOrCidrReservationCidr', 'errorMessage' => 'Either VSwitchCidrReservationMask or VSwitchCidrReservationCidr should be specified.', 'description' => 'You cannot leave both the VSwitchCidrReservationMask and VSwitchCidrReservationCidr parameters empty. Set a value and try again.'], + ['errorCode' => 'UnsupportedRegion', 'errorMessage' => 'UnsupportedRegion', 'description' => 'The error message returned because the current region does not support this feature.'], + ['errorCode' => 'UnsupportedFeature.VpcAdvancedFeature', 'errorMessage' => 'UnsupportedFeature.VpcAdvancedFeature', 'description' => 'The error message returned because the VPC where the specified vSwitch is deployed does not support advanced VPC features. Specify another vSwitch and try again.'], + ['errorCode' => 'QuotaExceeded.CidrReservationCount', 'errorMessage' => 'The quota of VSwitchCidrReservation is exceeded.', 'description' => 'The VSwitchCidrReservation value exceeds the upper limit.'], + ['errorCode' => 'Conflict.CidrReservationMaskAndCidrReservationCidr', 'errorMessage' => 'The specified VSwitchCidrReservationMask and VSwitchCidrReservationCidr is conflict.', 'description' => 'The VSwitchCidrReservationMask value conflicts with the VSwitchCidrReservationCidr value. Adjust the values and try again.'], + ['errorCode' => 'OperationFailed.CidrNotEnoughInVSwitch', 'errorMessage' => 'No enough cidr to allocate in this vswitch.', 'description' => 'The specified vSwitch does not have sufficient CIDR blocks.'], + ['errorCode' => 'OperationFailed.SystemReservedIpContained', 'errorMessage' => 'The specified VSwitchCidrReservationCidr cannot contain system reserved IP addresses.', 'description' => 'VSwitchCidrReservationCidr cannot contain a reserved IP address.'], + ['errorCode' => 'OperationFailed.AlreadyUsedIpContained', 'errorMessage' => 'The specified VSwitchCidrReservationCidr cannot contain already used IP addresses.', 'description' => 'The reserved CIDR block cannot contain used IP addresses.'], + ['errorCode' => 'IncorrectStatus.VSWITCH', 'errorMessage' => 'The status of the specified VSwitch is invalid.', 'description' => 'The status of the specified VSwitch is invalid.'], + ['errorCode' => 'IllegalParam.VSwitchCidrReservationMask', 'errorMessage' => 'The specified VSwitchCidrReservationMask must be at least 2 bits greater than the vSwitch mask.', 'description' => 'The specified VSwitchCidrReservationMask must be at least 2 bits greater than the vSwitch mask.'], + ['errorCode' => 'QuotaExceeded.VSwitchCidrReservationMask', 'errorMessage' => 'The operation is failed because of %s. The mask of the reserved subnet cidr exceeds the current default mask of IP Prefix, %s/%s.', 'description' => 'The operation failed because of the quota %s. The mask of the reserved CIDR block exceeds the default mask of the current IP Prefix, %s/%s.'], + ], + ], + 'staticInfo' => ['returnType' => 'asynchronous', 'callback' => 'Vpc::2016-04-28::ListVSwitchCidrReservations', 'callbackInterval' => 3, 'maxCallbackTimes' => 10], + 'title' => 'CreateVSwitchCidrReservation', + 'description' => '## [](#)Description'."\n" ."\n" - .' * If the flow log is in the **Modifying** state, the flow log is being modified.'."\n" - .' * If the flow log is in the **Active** or **Inactive** state, the flow log is modified.'."\n" + .'Take note of the following items:'."\n" ."\n" - .'* You cannot repeatedly call the **ModifyFlowLogAttribute** operation to modify a flow log within the specified period of time.', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'ActiveFlowLog' => [ - 'summary' => 'Enables a flow log. After the flow log is enabled, traffic information about a resource is captured.', - 'methods' => [ - 'post', - 'get', + .'* You can create at most 10 reserved IPv4 CIDR blocks and 10 reserved IPv6 CIDR blocks for each vSwitch in a virtual private cloud (VPC).'."\n" + ."\n" + .'* After you create a reserved CIDR block for a vSwitch, the CIDR block cannot contain the IP address of the subnet gateway of the VPC to which the vSwitch belongs.'."\n" + ."\n" + .'* **CreateVSwitchCidrReservation** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call [ListVSwitchCidrReservations](~~610155~~) to query the status of the task:'."\n" + ."\n" + .' * If the vSwitch is in the **Assigning** state, the reserved CIDR block is being created.'."\n" + .' * If the vSwitch is in the **Assigned** state, the reserved CIDR block is created.'."\n" + ."\n" + .'* When you create a reserved IPv4 CIDR block for a vSwitch, the first IP address and the last three IP addresses of the vSwitch are reserved by the system. The four IP addresses will not be allocated.'."\n" + ."\n" + .'* When you create a reserved IPv6 CIDR block for a vSwitch, the first IP address and the last nine IP addresses of the vSwitch are reserved by the system. The 10 IP addresses will not be allocated. For example, if you create a reserved IPv4 CIDR block for a vSwitch whose CIDR block is 192.168.1.0/24, the reserved CIDR block cannot contain the following IP addresses: 192.168.1.0, 192.168.1.253, 192.168.1.254, and 192.168.1.255.'."\n", + 'changeSet' => [ + ['createdAt' => '2025-05-07T02:32:57.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-11-27T03:27:10.000Z', 'description' => 'Error codes changed'], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'vpc:CreateVSwitchCidrReservation', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VSwitchCidrReservation', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vswitchcidrreservation/*'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"VSwitchCidrReservationId\\": \\"vcr-bp1m12saqteraw3rp****\\",\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B45\\"\\n}","type":"json"}]', + ], + 'CreateVbrHa' => [ + 'summary' => 'Creates a VBR failover group by calling the CreateVbrHa operation.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -17692,31 +14407,52 @@ ], 'operationType' => 'readAndWrite', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'update', - 'riskType' => 'none', - 'chargeType' => 'paid', - ], + 'systemTags' => ['operationType' => 'create', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ - 'name' => 'RegionId', + 'name' => 'Description', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region where you want to create the flow log. You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cn-qingdao', - ], + 'schema' => ['description' => 'The description of the VBR failover group.'."\n" + ."\n" + .'The description must be 2 to 256 characters in length and must start with a letter or a Chinese character. It cannot start with `http://` or `https://`.', 'type' => 'string', 'required' => false, 'example' => 'VBRHa', 'title' => ''], ], [ - 'name' => 'FlowLogId', + 'name' => 'Name', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the flow log.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'fl-m5e8vhz2t21sel1nq****', - ], + 'schema' => ['description' => 'The name of the VBR failover group.', 'type' => 'string', 'required' => false, 'example' => 'VBRHa', 'title' => ''], + ], + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'You can use the client to generate the token, but you must make sure that the token is unique among different requests. The ClientToken value can contain only ASCII characters.'."\n" + ."\n" + .'> If you do not specify this parameter, the system automatically uses the **RequestId** as the **ClientToken**. The **RequestId** may be different for each API request.', 'type' => 'string', 'required' => false, 'example' => 'CBCE910E-D396-4944-8****', 'title' => ''], + ], + [ + 'name' => 'DryRun', + 'in' => 'query', + 'schema' => ['description' => 'Specifies whether to perform a dry run. Valid values:'."\n" + ."\n" + .'- **true**: performs a dry run. The system checks the required parameters, request syntax, and instance status. If the check fails, the corresponding error is returned. If the check succeeds, `DRYRUN.SUCCESS` is returned.'."\n" + ."\n" + .'- **false** (default): sends the request. After the request passes the check, the instance is started.', 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], + ], + [ + 'name' => 'VbrId', + 'in' => 'query', + 'schema' => ['description' => 'The instance ID of the VBR.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'vbr-bp1jcg5cmxjbl9xgc****', 'title' => ''], + ], + [ + 'name' => 'PeerVbrId', + 'in' => 'query', + 'schema' => ['description' => 'The instance ID of the other VBR in the VBR failover group.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'vbr-bp12mw1f8k3jgygk9****', 'title' => ''], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => ['description' => 'The region ID of the VBR.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], ], 'responses' => [ @@ -17724,103 +14460,64 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Success' => [ - 'description' => 'Indicates whether the operation is successful. Valid values:'."\n" - ."\n" - .'* **true**: yes'."\n" - .'* **false**: no'."\n", - 'type' => 'string', - 'example' => 'true', - ], - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => 'F7DDDC17-FA06-4AC2-8F35-59D2470FCFC1', - ], + 'VbrHaId' => ['description' => 'The instance ID of the VBR failover group.', 'type' => 'string', 'example' => 'vbrha-sa1sxheuxtd98****', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '4EC47282-1B74-4534-BD0E-403F3EE64CAF', 'title' => ''], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'IncorrectBusinessStatus.FlowLog', - 'errorMessage' => 'The business status of flowLog is incorrect.', - ], - [ - 'errorCode' => 'InvalidInstanceId', - 'errorMessage' => 'Instance does not exist.', - ], - [ - 'errorCode' => 'InvalidStatus', - 'errorMessage' => 'Current instance status is not valid for this action.', - ], - [ - 'errorCode' => 'InvalidRegionId.NotFound', - 'errorMessage' => 'The RegionId provided does not exist in our records.', - ], - [ - 'errorCode' => 'InvalidInstanceId.NotFound', - 'errorMessage' => 'The specfied instance is not existed.', - ], - [ - 'errorCode' => 'IncorrectStatus.flowlog', - 'errorMessage' => 'Invalid flowlog status.', - ], - [ - 'errorCode' => 'Forbidden.OperateManagedFlowLog', - 'errorMessage' => 'Authentication is failed for operate managed flowlog.', - ], - [ - 'errorCode' => 'OperationDenied.FlowLogDeliverFailed', - 'errorMessage' => 'The operation is not allowed due to an invalid delivery address.', - ], - [ - 'errorCode' => 'OperationDenied.NisTrafficAnalyzerAggregationIntervalMismatch', - 'errorMessage' => 'The sampling interval of the FlowLog is greater than the sampling interval of the NIS Traffic Analyzer.', - ], - [ - 'errorCode' => 'OperationDenied.NisTrafficAnalyzerNotActive', - 'errorMessage' => 'The specified NIS Traffic Analyzer is not enabled.', - ], - [ - 'errorCode' => 'OperationDenied.NisTrafficAnalyzerNotFound', - 'errorMessage' => 'The specified NIS Traffic Analyzer does not exist.', - ], - [ - 'errorCode' => 'OperationFailed.InternalError', - 'errorMessage' => 'The request processing has failed due to some unknown error.', - ], + ['errorCode' => 'OperationFailed.VbrCenNotConsistent', 'errorMessage' => 'The VBR and the peer VBR are attached to different CENs.', 'description' => ''], + ['errorCode' => 'OperationFailed.VbrAliUidNotConsistent', 'errorMessage' => 'The VBR and the peer VBR belong to different AliUids.', 'description' => ''], + ['errorCode' => 'OperationFailed.VbrAccessDeviceSame', 'errorMessage' => 'The VBR and the peer VBR are in the same device.', 'description' => ''], + ['errorCode' => 'OperationFailed.VbrBandWidthExceed', 'errorMessage' => 'The VBR bandwidth exceeds the limit.', 'description' => ''], + ['errorCode' => 'OperationFailed.VbrInUsedByOtherHa', 'errorMessage' => 'The VBR is used by another VBR HA.', 'description' => ''], + ['errorCode' => 'OperationFailed.VbrBgpPeerNotEnableBfd', 'errorMessage' => 'The VBR BGP has not enabled BFD.', 'description' => ''], + ['errorCode' => 'OperationFailed.VbrCenNotRelation', 'errorMessage' => 'The VBR is not attached to any CEN.', 'description' => ''], + ['errorCode' => 'OperationFailed.BgpGroupLocalAsnMustSameEachOther', 'errorMessage' => 'VBR bgpGroup local asn must same each other.', 'description' => 'The BGP group AS numbers of the VBRs in the switching group must be consistent with each other.'], + ['errorCode' => 'IllegalParam.BgpGroupLocalAsn', 'errorMessage' => 'Vbr bgp group local asn must same with ecr asn.', 'description' => 'The Alibaba Cloud BGP AS number of the BGP group must be the same as that of the ECR.'], + ], + 404 => [ + ['errorCode' => 'ResourceNotFound.Vbr', 'errorMessage' => 'The VBR resource is not found.', 'description' => ''], ], ], - 'staticInfo' => [ - 'returnType' => 'asynchronous', - 'callback' => 'Vpc::2016-04-28::DescribeFlowLogs', - 'callbackInterval' => 3000, - 'maxCallbackTimes' => 10, - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Success\\": \\"true\\",\\n \\"RequestId\\": \\"F7DDDC17-FA06-4AC2-8F35-59D2470FCFC1\\"\\n}","errorExample":""},{"type":"xml","example":"\\n true\\n F7DDDC17-FA06-4AC2-8F35-59D2470FCFC1\\n","errorExample":""}]', - 'title' => 'ActiveFlowLog', - 'description' => '* The **ActiveFlowLog** operation is asynchronous. After you send the request, the system returns a request ID. However, the operation is still being performed in the system background. You can call the [DescribeFlowLogs](~~87923~~) operation to query the status of a flow log:'."\n" - ."\n" - .' * If the flow log is in the **Activating** state, the flow log is being started.'."\n" - .' * If the flow log is in the **Active** state, the flow log is started.'."\n" - ."\n" - .'* You cannot repeatedly call the **ActiveFlowLog** operation to start a flow log within the specified period of time.', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'Create a VBR failover group', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DeactiveFlowLog' => [ - 'summary' => 'Disables a flow log. After a flow log is disabled, the system no longer captures the traffic information about a resource.', - 'methods' => [ - 'post', - 'get', + 'changeSet' => [ + ['createdAt' => '2024-07-29T02:44:51.000Z', 'description' => 'Error codes changed'], ], - 'schemes' => [ - 'http', - 'https', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CreateVbrHa'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], + ], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'vpc:CreateVbrHa', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VirtualBorderRouter', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:virtualborderrouter/{#VbrId}'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"VbrHaId\\": \\"vbrha-sa1sxheuxtd98****\\",\\n \\"RequestId\\": \\"4EC47282-1B74-4534-BD0E-403F3EE64CAF\\"\\n}","type":"json"}]', + ], + 'CreateVcoRouteEntry' => [ + 'summary' => 'Adds a destination-based route for an IPsec-VPN connection.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -17828,119 +14525,149 @@ ], 'operationType' => 'readAndWrite', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'update', - 'riskType' => 'none', - 'chargeType' => 'paid', - ], + 'systemTags' => ['operationType' => 'create', 'riskType' => 'high', 'chargeType' => 'free'], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region where you want to create the flow log. You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cn-qingdao', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'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.'."\n" + ."\n" + .'> 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.'."\n", 'type' => 'string', 'required' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'FlowLogId', + 'name' => 'VpnConnectionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the flow log.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'fl-m5e8vhz2t21sel1nq****', - ], + 'schema' => ['description' => 'The response parameters.'."\n", 'type' => 'string', 'required' => true, 'example' => 'vco-p0w2jpkhi2eeop6q6****', 'title' => ''], + ], + [ + 'name' => 'RouteDest', + 'in' => 'query', + 'schema' => ['description' => 'The ID of the IPsec-VPN connection.'."\n", 'type' => 'string', 'required' => true, 'example' => '192.168.10.0/24', 'title' => ''], + ], + [ + 'name' => 'Weight', + 'in' => 'query', + 'schema' => ['description' => 'The destination CIDR block of the destination-based route.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '100', 'title' => ''], + ], + [ + 'name' => 'NextHop', + 'in' => 'query', + 'schema' => ['description' => 'The next hop of the destination-based route.'."\n", 'type' => 'string', 'required' => true, 'example' => 'vco-p0w2jpkhi2eeop6q6****', 'title' => ''], + ], + [ + 'name' => 'Description', + 'in' => 'query', + 'schema' => ['description' => 'The weight of the destination-based route. Valid values:'."\n" + ."\n" + .'* **0**: a low priority.'."\n" + .'* **100**: a high priority.'."\n", 'type' => 'string', 'required' => false, 'example' => 'desctest', 'title' => ''], + ], + [ + 'name' => 'OverlayMode', + 'in' => 'query', + 'schema' => ['description' => 'The tunneling protocol.'."\n" + ."\n" + .'The value is set to **Ipsec**, which indicates the IPsec tunneling protocol.'."\n", 'type' => 'string', 'required' => false, 'example' => 'Ipsec', 'title' => ''], + ], + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => ['description' => 'The status of the destination-based route.'."\n" + ."\n" + .'Only **published** is returned, which indicates that the current route is published to the transit router.'."\n", 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-4266****', 'title' => ''], + ], + [ + 'name' => 'DryRun', + 'in' => 'query', + 'schema' => ['description' => 'Specifies whether to only precheck the request. Valid values:'."\n" + ."\n" + .'* **true**: prechecks the request without performing the operation. The system prechecks the required parameters, request syntax, and limits. If the request fails to pass the precheck, an error message is returned. If the request passes the precheck, the `DryRunOperation` error code is returned.'."\n" + .'* **false** (default): sends the request. After the request passes the precheck, a 2xx HTTP status code is returned and the operation is performed.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'title' => 'PlainResponse4OpenApi', + 'description' => 'The timestamp when the destination-based route was created. Unit: milliseconds.'."\n" + ."\n" + .'This value is a UNIX timestamp representing the number of milliseconds that have elapsed since January 1, 1970, 00:00:00 UTC.'."\n", 'type' => 'object', 'properties' => [ - 'Success' => [ - 'description' => 'Indicates whether the operation is successful. Valid values:'."\n" - ."\n" - .'* **true**: yes'."\n" - .'* **false**: no'."\n", - 'type' => 'string', - 'example' => 'true', - ], - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => 'F7DDDC17-FA06-4AC2-8F35-59D2470FCFC1', - ], + 'VpnConnectionId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => 'vco-p0w2jpkhi2eeop6q6****', 'title' => ''], + 'RouteDest' => ['description' => 'The description of the destination-based route.'."\n", 'type' => 'string', 'example' => '192.168.10.0/24', 'title' => ''], + 'NextHop' => ['type' => 'string', 'description' => 'The next hop of the destination-based route entry. ', 'example' => 'vco-p0w2jpkhi2eeop6q6****', 'title' => ''], + 'Weight' => ['type' => 'integer', 'description' => 'The weight of the destination-based route entry. '."\n" + ."\n" + .'- **0**: indicates low priority. '."\n" + .'- **100**: indicates high priority. ', 'format' => 'int32', 'example' => '100', 'title' => ''], + 'OverlayMode' => ['type' => 'string', 'description' => 'The tunnel protocol. '."\n" + ."\n" + .'Valid value: **Ipsec**, which indicates the IPsec tunnel protocol. ', 'example' => 'Ipsec', 'title' => ''], + 'State' => ['type' => 'string', 'description' => 'The publish status of the destination-based route entry. '."\n" + ."\n" + .'Valid value: **published**, which indicates that the route entry has been published to the transit router instance. ', 'example' => 'published', 'title' => ''], + 'CreateTime' => ['type' => 'integer', 'description' => 'The UNIX timestamp when the destination-based route entry was created. Unit: milliseconds. '."\n" + ."\n" + .'The timestamp follows the Unix time format, which represents the total number of milliseconds elapsed since 00:00:00 UTC on January 1, 1970, until the destination-based route entry was created. ', 'format' => 'int64', 'example' => '1658387202664', 'title' => ''], + 'RequestId' => ['type' => 'string', 'description' => 'The request ID. ', 'example' => 'CFC4D13B-E680-3985-95B1-87AA155481DF', 'title' => ''], + 'Description' => ['type' => 'string', 'description' => 'The description of the destination-based route entry. ', 'example' => 'desctest', 'title' => ''], ], + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'IncorrectBusinessStatus.FlowLog', - 'errorMessage' => 'The business status of flowLog is incorrect.', - ], - [ - 'errorCode' => 'InvalidInstanceId', - 'errorMessage' => 'Instance does not exist.', - ], - [ - 'errorCode' => 'InvalidStatus', - 'errorMessage' => 'Current instance status is not valid for this action.', - ], - [ - 'errorCode' => 'FlowLogNumberOverLimit', - 'errorMessage' => 'This user has reached the maximum instance number of flowlog.', - ], - [ - 'errorCode' => 'InvalidRegionId.NotFound', - 'errorMessage' => 'The RegionId provided does not exist in our records.', - ], - [ - 'errorCode' => 'InvalidInstanceId.NotFound', - 'errorMessage' => 'The specfied instance is not existed.', - ], - [ - 'errorCode' => 'IncorrectStatus.flowlog', - 'errorMessage' => 'Invalid flowlog status.', - ], - [ - 'errorCode' => 'Forbidden.OperateManagedFlowLog', - 'errorMessage' => 'Authentication is failed for operate managed flowlog.', - ], + ['errorCode' => 'Resource.QuotaFull', 'errorMessage' => 'The quota of resource is full', 'description' => ''], + ['errorCode' => 'VpnConnection.Configuring', 'errorMessage' => 'The specified service is configuring.', 'description' => 'The service is being configured. Try again later.'], + ['errorCode' => 'VpnConnection.FinancialLocked', 'errorMessage' => 'The specified service is financial locked.', 'description' => 'The error message returned because the service is locked due to overdue payments.'], + ['errorCode' => 'VpnRouteEntry.AlreadyExists', 'errorMessage' => 'The specified route entry is already exist.', 'description' => 'The route already exists.'], + ['errorCode' => 'VpnRouteEntry.Conflict', 'errorMessage' => 'The specified route entry has conflict.', 'description' => 'Route conflicts exist.'], + ['errorCode' => 'VpnRouteEntry.ConflictSSL', 'errorMessage' => 'The specified route entry has conflict with SSL client.', 'description' => 'The route conflicts with the SSL client.'], + ['errorCode' => 'VpnRouteEntry.BackupRoute', 'errorMessage' => 'Validate backup route entry failed.', 'description' => 'Active/standby routes failed authentication.'], + ['errorCode' => 'InvalidNextHop.NotFound', 'errorMessage' => 'The specified NextHop does not exist.', 'description' => 'The specified next hop does not exist.'], + ['errorCode' => 'IllegalParam.RouteDest', 'errorMessage' => 'The specified RouteDest is invalid', 'description' => 'The destination address is invalid.'], + ['errorCode' => 'OperationFailed.InvalidCidrBlock', 'errorMessage' => 'Operation failed because the specified network block is invalid.', 'description' => 'The CIDR block is invalid.'], + ['errorCode' => 'QuotaExceeded.VpnRouteEntry', 'errorMessage' => 'The number of route entries to the VPN gateway in the VPC routing table has reached the quota limit.', 'description' => 'The number of route entries to the VPN gateway in the VPC routing table has reached the quota limit.'], + ['errorCode' => 'TaskConflict', 'errorMessage' => 'The operation is too frequent, please wait a moment and try again.', 'description' => 'Your requests are too frequent. Try again later.'], + ['errorCode' => 'Resource.PbrRouteQuotaFull', 'errorMessage' => 'The quota of Policy-based route is full.', 'description' => 'Policy routing quota exceeded'], + ['errorCode' => 'CreatePbrRoutesQuotaFull.QuotaFull', 'errorMessage' => 'The number of policy routes exceeds the quota limit.', 'description' => 'The number of policy routes exceeds the quota limit.'], + ['errorCode' => 'CreateDbrRoutesQuotaFull.QuotaFull', 'errorMessage' => 'The number of created destination routes exceeds the quota limit.', 'description' => 'The number of created destination routes exceeds the quota limit.'], + ['errorCode' => 'DryRunOperation', 'errorMessage' => 'Request validation has been passed with DryRun flag set.', 'description' => 'The request passed the dry run.'], + ], + 403 => [ + ['errorCode' => 'Forbbiden.SubUser', 'errorMessage' => 'User not authorized to operate on the specified resource.', 'description' => 'The error message returned because you do not have the permissions to manage the resource.'], + ['errorCode' => 'Forbidden', 'errorMessage' => 'User not authorized to operate on the specified resource.', 'description' => 'You do not have the permissions to manage the specified resource. Apply for the permissions and try again.'], + ], + [ + ['errorCode' => 'InvalidVpnConnectionInstanceId.NotFound', 'errorMessage' => 'The specified vpn connection instance id does not exist.', 'description' => 'The specified vpn connection instance id does not exist.'], ], ], - 'staticInfo' => [ - 'returnType' => 'asynchronous', - 'callback' => 'Vpc::2016-04-28::DescribeFlowLogs', - 'callbackInterval' => 3000, - 'maxCallbackTimes' => 10, - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Success\\": \\"true\\",\\n \\"RequestId\\": \\"F7DDDC17-FA06-4AC2-8F35-59D2470FCFC1\\"\\n}","errorExample":""},{"type":"xml","example":"\\n true\\n F7DDDC17-FA06-4AC2-8F35-59D2470FCFC1\\n","errorExample":""}]', - 'title' => 'DeactiveFlowLog', - 'description' => '* The **DeactiveFlowLog** operation is asynchronous. After you send the request, the system returns a request ID. However, the operation is still being performed in the system background. You can call the [DescribeFlowLogs](~~87923~~) operation to query the status of a flow log:'."\n" - ."\n" - .' * If the flow log is in the **Deactivating** state, the flow log is being disabled.'."\n" - .' * If the flow log is in the **Inactive** state, the flow log is disabled.'."\n" - ."\n" - .'* You cannot repeatedly call the **DeactiveFlowLog** operation to disable a flow log within the specified period of time.', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', + 'staticInfo' => ['returnType' => 'asynchronous', 'callback' => 'Vpc::2016-04-28::DescribeVpnConnection', 'callbackInterval' => 1000, 'maxCallbackTimes' => 10], + 'title' => 'CreateVcoRouteEntry', + 'description' => '- The IPsec-VPN connection must be attached to a transit router instance. For more information, see [CreateTransitRouterVpnAttachment](~~468249~~). '."\n" + .'- You cannot add a destination-based route with a destination CIDR block of 0.0.0.0/0. '."\n" + .'- Do not add destination-based routes with a destination CIDR block of 100.64.0.0/10, any subnet within 100.64.0.0/10, or any CIDR block that includes 100.64.0.0/10. Such route entries may cause the console to fail to display the status of the IPsec-VPN connection or cause IPsec tunnel negotiation to fail. '."\n" + .'- The **CreateVcoRouteEntry** API is asynchronous. The system immediately returns an instance ID, but the destination-based route entry is not yet created successfully. The creation task continues in the background. You can invoke [DescribeVpnConnection](~~53046~~) to query the creation status of the destination-based route entry: '."\n" + .' - If the IPsec-VPN connection is in the **updating** state, the destination-based route entry is being created. '."\n" + .' - If the IPsec-VPN connection is in the **attached** state, the destination-based route entry has been created successfully. '."\n" + .'- The **CreateVcoRouteEntry** API does not support concurrent creation of destination-based route entries under the same IPsec-VPN connection. ', + 'changeSet' => [ + ['createdAt' => '2025-05-23T06:50:35.000Z', 'description' => 'Error codes changed, Request parameters changed'], + ['createdAt' => '2024-01-04T07:17:09.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2022-12-16T10:11:31.000Z', 'description' => 'Error codes changed'], + ], + 'ramActions' => [], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"VpnConnectionId\\": \\"vco-p0w2jpkhi2eeop6q6****\\",\\n \\"RouteDest\\": \\"192.168.10.0/24\\",\\n \\"NextHop\\": \\"vco-p0w2jpkhi2eeop6q6****\\",\\n \\"Weight\\": 100,\\n \\"OverlayMode\\": \\"Ipsec\\",\\n \\"State\\": \\"published\\",\\n \\"CreateTime\\": 1658387202664,\\n \\"RequestId\\": \\"CFC4D13B-E680-3985-95B1-87AA155481DF\\",\\n \\"Description\\": \\"desctest\\"\\n}","type":"json"}]', + 'translator' => 'machine', ], - 'GetFlowLogServiceStatus' => [ - 'summary' => 'Queries the status of a flow log.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'CreateVirtualBorderRouter' => [ + 'summary' => 'Creates a virtual border router (VBR).', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -17948,272 +14675,364 @@ ], 'operationType' => 'readAndWrite', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'get', - 'riskType' => 'none', - 'chargeType' => 'free', - ], + 'systemTags' => ['operationType' => 'create', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => ['description' => 'The region ID of the Express Connect circuit.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-shanghai', 'title' => ''], + ], + [ + 'name' => 'PhysicalConnectionId', + 'in' => 'query', + 'schema' => ['description' => 'The ID of the Express Connect circuit.'."\n" + ."\n" + .'You can create a VBR for a dedicated connection or a hosted connection.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'pc-2zextbehcx****', 'title' => ''], + ], + [ + 'name' => 'VbrOwnerId', + 'in' => 'query', + 'schema' => ['description' => 'The account ID of the VBR owner.'."\n" + ."\n" + .'The default value is the ID of the current Alibaba Cloud account.'."\n", 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '168811111****', 'title' => ''], + ], + [ + 'name' => 'VlanId', + 'in' => 'query', + 'schema' => ['description' => 'The VLAN ID of the VBR. Valid values: **0 to 2999**.'."\n" + ."\n" + .'> Only the owner of the Express Connect circuit can set this parameter. The VLAN IDs of two VBRs of the same the Express Connect circuit must be different.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => true, 'docRequired' => true, 'example' => '0', 'title' => ''], + ], + [ + 'name' => 'CircuitCode', + 'in' => 'query', + 'schema' => ['description' => 'The circuit code of the Express Connect circuit. The circuit code is provided by the connectivity provider.'."\n" + ."\n" + .'> Only the owner of the Express Connect circuit can set this parameter.'."\n", 'type' => 'string', 'required' => false, 'example' => 'longtel001', 'title' => ''], + ], + [ + 'name' => 'LocalGatewayIp', + 'in' => 'query', + 'schema' => ['description' => 'The IP address of the VBR. Only the owner of the VBR can set or modify this parameter.'."\n" + ."\n" + .'When you create a VBR for the owner of the Express Connect circuit, this parameter is required.'."\n", 'type' => 'string', 'required' => false, 'docRequired' => true, 'example' => '192.168.XX.XX', 'title' => ''], + ], + [ + 'name' => 'PeerGatewayIp', + 'in' => 'query', + 'schema' => ['description' => 'The IP address of the gateway device in the data center. Only the owner of the VBR can set or modify this parameter.'."\n" + ."\n" + .'When you create a VBR for the owner of the Express Connect circuit, this parameter is required.'."\n", 'type' => 'string', 'required' => false, 'docRequired' => true, 'example' => '116.62.XX.XX', 'title' => ''], + ], + [ + 'name' => 'PeeringSubnetMask', + 'in' => 'query', + 'schema' => ['description' => 'The subnet mask of the IP addresses of the VBR and the gateway device in the data center.'."\n" + ."\n" + .'The two IP addresses must fall within the same subnet.'."\n", 'type' => 'string', 'required' => false, 'docRequired' => true, 'example' => '255.255.255.252', 'title' => ''], + ], + [ + 'name' => 'Description', + 'in' => 'query', + 'schema' => ['description' => 'The description of the VBR.'."\n" + ."\n" + .'The description must be 2 to 256 characters in length. The description must start with a letter but cannot start with `http://` or `https://`.'."\n", 'type' => 'string', 'required' => false, 'example' => 'desc', 'title' => ''], + ], + [ + 'name' => 'Name', + 'in' => 'query', + 'schema' => ['description' => 'The name of the VBR.'."\n" + ."\n" + .'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.'."\n", 'type' => 'string', 'required' => false, 'example' => 'test', 'title' => ''], + ], [ 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'You can use the client to generate the value, but you must make sure that it is unique among different requests. The client token can contain only ASCII characters.'."\n" - ."\n" - .'> If you do not set this parameter, the system automatically uses **RequestId** as **ClientToken**. The value of **RequestId** in each API request may be different.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-426655440000', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'You can use the client to generate the value, but you must make sure that it is unique among different requests.'."\n" + ."\n" + .'> If you do not set this parameter, the system automatically sets **ClientToken** to the value of **RequestId**. The value of **RequestId** may be different for each API request.'."\n", 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-426655440000', 'title' => ''], ], [ - 'name' => 'RegionId', + 'name' => 'LocalIpv6GatewayIp', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the flow log.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The IPv6 address of the VBR. Only the owner of the VBR can set or modify this parameter.'."\n" + ."\n" + .'When you create a VBR for the owner of the Express Connect circuit, this parameter is required.'."\n", 'type' => 'string', 'required' => false, 'docRequired' => false, 'example' => '2001:XXXX:3c4d:0015:0000:0000:0000:1a2b', 'title' => ''], ], [ - 'name' => 'RegionId', + 'name' => 'PeerIpv6GatewayIp', + 'in' => 'query', + 'schema' => ['description' => 'The IPv6 address of the gateway device in the data center. Only the owner of the VBR can set or modify this parameter.'."\n" + ."\n" + .'When you create a VBR for the owner of the Express Connect circuit, this parameter is required.'."\n", 'type' => 'string', 'required' => false, 'docRequired' => false, 'example' => '2001:XXXX:4:4:4:4:4:4', 'title' => ''], + ], + [ + 'name' => 'PeeringIpv6SubnetMask', + 'in' => 'query', + 'schema' => ['description' => 'The subnet mask of the IPv6 addresses of the VBR and the gateway device in the data center.'."\n" + ."\n" + .'The two IPv6 addresses must fall within the same subnet.'."\n", 'type' => 'string', 'required' => false, 'docRequired' => false, 'example' => '2408:4004:cc:400::/56', 'title' => ''], + ], + [ + 'name' => 'EnableIpv6', 'in' => 'query', + 'schema' => ['description' => 'Specifies whether to enable IPv6. Valid values:'."\n" + ."\n" + .'* **true**: enables IPv6.'."\n" + .'* **false** (default): disables IPv6.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'true', 'title' => ''], + ], + [ + 'name' => 'Bandwidth', + 'in' => 'query', + 'schema' => ['description' => 'The bandwidth of the VBR. Unit: Mbit/s.'."\n" + ."\n" + .'* When you create a VBR for a dedicated connection, valid values are **50**, **100**, **200**, **300**, **400**, **500**, **1000**, **2048**, **5120**, **8192**, **10240**, **20480**, **40960**, **50120**, **61440**, and **102400**.'."\n" + .'* You do not need to set this parameter when you create a VBR for a hosted connection. The bandwidth is already configured when the hosted connection is created.'."\n", 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '100', 'title' => ''], + ], + [ + 'name' => 'ResourceGroupId', + 'in' => 'query', + 'schema' => ['description' => 'The resource group ID.'."\n" + ."\n" + .'For more information about resource group, see [What is Resource Management?](~~94475~~)'."\n", 'type' => 'string', 'required' => false, 'example' => 'rg-acfmxazb4ph6aiy****', 'title' => ''], + ], + [ + 'name' => 'Tags', + 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => 'The region ID of the flow log.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', + 'description' => 'The tags.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The information about the tags.', + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => 'The tag key. You must enter at least one tag key. You can specify up to 20 tag keys. The tag key cannot be an empty string.'."\n" + ."\n" + .'A tag key can be at most 128 characters in length. It cannot start with `aliyun` or `acs:`, and cannot contain `http://` or `https://`.'."\n", 'type' => 'string', 'required' => false, 'example' => 'FinanceDept', 'title' => ''], + 'Value' => ['description' => 'The tag value. You can specify at most 20 tag values. The tag value can be an empty string.'."\n" + ."\n" + .'The tag value can be up to 128 characters in length and cannot contain `http://` or `https://`. The tag value cannot start with `aliyun` or `acs:`.'."\n", 'type' => 'string', 'required' => false, 'example' => 'FinanceJoshua', 'title' => ''], + ], + 'required' => false, + 'title' => '', + 'example' => '', + ], + 'required' => false, + 'maxItems' => 20, + 'title' => '', + 'example' => '', ], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'description' => 'The returned data.'."\n", 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => '54B48E3D-DF70-471B-AA93-06F83A1B457', - ], - 'Enabled' => [ - 'description' => 'Indicates whether the flow log feature is enabled. Valid values:'."\n" - ."\n" - .'* **true**: yes'."\n" - .'* **false**: no You can call the [OpenFlowLogService](~~449637~~) operation to enable the flow log feature.'."\n", - 'type' => 'boolean', - 'example' => 'true', - ], + 'VbrId' => ['description' => 'The ID of the VBR.'."\n", 'type' => 'string', 'example' => 'vbr-bp1jcg5cmxjbl9xgc****', 'title' => ''], + 'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => '4EC47282-1B74-4534-BD0E-403F3EE64CAF', 'title' => ''], ], + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ + 400 => [ + ['errorCode' => 'OperationFailed.PconnAllocateVlan0', 'errorMessage' => 'Vlan 0 Vbr cannot share the physical connection with another Vbr.', 'description' => 'The operation failed because VLAN 0 is set to a VBR associated with the Express Connect circuit and you cannot set VLAN 0 to other VBRs.'], + ['errorCode' => 'IllegalParam.IpAddress', 'errorMessage' => 'The specified IpAddress (%s) is illegal.', 'description' => 'The IpAddress parameter is set to an invalid value.'], + ['errorCode' => 'IllegalParam.CidrBlock', 'errorMessage' => 'The specified CidrBlock (%s) is illegal.', 'description' => 'The CidrBlock parameter is set to an invalid value.'], + ['errorCode' => 'InvalidPhysicalConnectionId.NotFound', 'errorMessage' => 'The specified PhysicalConnectionId is not found.', 'description' => 'The specified Express Connect circuit ID does not exist.'], + ['errorCode' => 'InvalidVlanId.Used', 'errorMessage' => 'The specified VlanId has been used.', 'description' => ''], + ['errorCode' => 'MissingParameter', 'errorMessage' => 'The input parameter \'PhysicalConnectionId\' that is mandatory for processing this request is not supplied.', 'description' => ''], + ['errorCode' => 'InvalidPhysicalConnectionId.NotEnabled', 'errorMessage' => 'The specified PhysicalConnectionId is not in Enabled state.', 'description' => ''], + ['errorCode' => 'InvalidVlanId.Malformed', 'errorMessage' => 'The specified VlanId is not valid.', 'description' => ''], + ['errorCode' => 'InvalidCircuitCode.Malformed', 'errorMessage' => 'The specified CircuitCode is not valid.', 'description' => ''], + ['errorCode' => 'InvalidLocalGatewayIp.Malformed', 'errorMessage' => 'The specified LocalGatewayIp is not valid.', 'description' => ''], + ['errorCode' => 'InvalidPeeringSubnetMask.Malformed', 'errorMessage' => 'The specified PeeringSubnetMask is not valid.', 'description' => 'PeeringSubnetMask is set to an invalid value.'], + ['errorCode' => 'InvalidName.Malformed', 'errorMessage' => 'The specified ?Name? is not valid.', 'description' => ''], + ['errorCode' => 'InvalidDescription.Malformed', 'errorMessage' => 'The specifid ?Description? is not valid.', 'description' => 'The error message returned because the specified resource description is invalid. The description must be 2 to 256 characters in length and cannot start with http:// or https://.'], + ['errorCode' => 'QuotaExceeded.vbrPerpConn', 'errorMessage' => 'Virtual boarder router per PhysicalConnection quota exceed.', 'description' => ''], + ['errorCode' => 'QuotaExceeded.freevbr', 'errorMessage' => 'Free virtual boarder router quota exceed.', 'description' => ''], + ['errorCode' => 'InvalidIp.NotSameSubnet', 'errorMessage' => 'Local gateway ip and peer gateway ip are not in the same subnet.', 'description' => 'The IP addresses of the local gateway and the peer gateway do not fall within the same subnet.'], + ['errorCode' => 'TaskConflict', 'errorMessage' => 'The operation is too frequent, please wait a moment and try again.', 'description' => 'Your requests are too frequent. Try again later.'], + ['errorCode' => 'QuotaExceeded.CrossUserVBRPerUser', 'errorMessage' => 'Cross virtual boarder router per user quota exceed.', 'description' => 'The upper limit is reached.'], + ['errorCode' => 'OperationFailed.VlanIdInUse', 'errorMessage' => 'Operation failed because vlanId is in use.', 'description' => 'The VLAN ID is already used.'], + ['errorCode' => 'QuotaExceeded.SameAccountVBRPerPconn', 'errorMessage' => 'Same account virtual boarder router per physicalConnection quota exceed.', 'description' => 'The number of VBRs exceeds the upper limit.'], + ['errorCode' => 'QuotaExceeded.VbrPerPconnPortSpec', 'errorMessage' => 'Quota exceed for current port spec', 'description' => 'The upper limit is reached.'], + ['errorCode' => 'QuotaExceeded.VbrPerAccessDevice', 'errorMessage' => 'Virtual boarder router per access device quota exceed.', 'description' => 'The number of devices exceeds the upper limit.'], + ['errorCode' => 'OperationUnsupported.IPV6ForThisRegion', 'errorMessage' => 'This Region do not support IPV6.', 'description' => 'The region does not support IPv6.'], + ['errorCode' => 'VbrBandwidthExceed', 'errorMessage' => 'VBR bandwidth exceed for this physical connection.', 'description' => 'The bandwidth of the VBR exceeds the upper limit supported by the Express Connect circuit.'], + ['errorCode' => 'OperationFailed.PconnExistVlan0Vbr', 'errorMessage' => 'The physical connection has VLAN 0 VBR. You cannot create another VBR.', 'description' => 'You cannot create other VBRs for this Express Connect circuit because a VBR with VLAN 0 is already created for this Express Connect circuit.'], + ['errorCode' => 'OperationFailed.Vlan0VbrUnSharePconn', 'errorMessage' => 'VLAN 0 VBR cannot share the physical connection with another VBR.', 'description' => 'You cannot create a VBR with VLAN 0 for this Express Connect circuit because another VBR with VLAN 0 is already created for this Express Connect circuit.'], + ['errorCode' => 'OperationFailed.PconnTrafficNotEnable', 'errorMessage' => 'The operation is failed because of PconnTrafficNotEnable.', 'description' => 'Billing for outbound data transfer is disabled.'], + ['errorCode' => 'ResourceNotEnough.Bandwidth', 'errorMessage' => 'The specified resource of Bandwidth is not enough.', 'description' => 'The specified resource of Bandwidth is insufficient.'], + ['errorCode' => 'OperationUnsupported.VirtualBorderRouterEnableIPv6', 'errorMessage' => 'The operation failed. The device or region does not support IPv6 functions.', 'description' => 'The operation failed because the device or region does not support IPv6.'], + ['errorCode' => 'IllegalParam.OwnerAliUid', 'errorMessage' => 'The param of VbrOwnerId is illegal.', 'description' => 'The UID of the resource owner is invalid.'], + ['errorCode' => 'Forbidden.OwnerAliUid', 'errorMessage' => 'RAM account or Partner account is forbidden to be OwnerAliUid.', 'description' => 'You must set VbrOwnerId to the ID of a RAM user or a partner account. You cannot use the VBR owner account.'], + ['errorCode' => 'OperationDenied.VPconn', 'errorMessage' => 'Vpconn is forbidden to create vbr for another account.', 'description' => 'You cannot create a VBR for another account.'], + ['errorCode' => 'OperationFailed.NotConsistentWithVpconn', 'errorMessage' => 'VBR bandwidth is not consistent with vpconn', 'description' => 'The bandwidth value of the VBR is not the same as the bandwidth value of the hosted connection to which the VBR belongs.'], + ['errorCode' => 'IllegalParam.Bandwidth', 'errorMessage' => 'The param of bandwidth is illegal.', 'description' => 'The Bandwidth parameter is set to an invalid value.'], + ['errorCode' => 'OperationFailed.VirtualPhysicalConnectionExistVBR', 'errorMessage' => 'The virtual physical connect has already created another VBR.', 'description' => 'You cannot create another VBR for the hosted connection because a VBR is already created.'], + ['errorCode' => 'ResourceNotInResourceGroup', 'errorMessage' => 'The specified resource is not in the specified ResourceGroup.', 'description' => 'The specified resource does not belong to the resource group.'], + ['errorCode' => 'IncorrectStatus.VirtualPhysicalConnection', 'errorMessage' => 'The status of PhysicalConnection [%s] is incorrect.', 'description' => 'The status of the shared Express Connect circuit [%s] is invalid.'], + ['errorCode' => 'EcAssociatedQoSPconnNotAllowCreateCrossAccountVbr', 'errorMessage' => 'The specified Pconn associated with Qos is not allowed to create cross account VBR.Please contact the business manager.', 'description' => 'Shared physical lines bound with QoS policies do not allow cross-account virtual border routers to be created. Contact the business manager.'], + ['errorCode' => 'OperationFailed.VbrBandWidthMust0InVlan0Vbr', 'errorMessage' => 'The operation is failed because of VbrBandWidthMust0InVlan0Vbr.', 'description' => 'Operation failed, speed limit configuration is not allowed.'], + ['errorCode' => 'OperationDenied.PhysicalConnectionNotSupportMPBGPAndMPBGP-v6', 'errorMessage' => 'The operation is not allowed because this physical connection not support MPBGP and MPBGP-v6.', 'description' => 'The operation is not allowed because the current physical port does not support advanced capabilities such as MPBGP and MPBGP-v6.'], + ], 403 => [ - [ - 'errorCode' => 'Forbbiden', - 'errorMessage' => 'User not authorized to operate on the specified resource.', - ], + ['errorCode' => 'Forbidden.LocalGatewayIpNotAllowedByCaller', 'errorMessage' => 'The caller is not allowed to specify the LocalGatewayIp parameter.', 'description' => ''], + ['errorCode' => 'Forbidden.PeerGatewayIpNotAllowedByCaller', 'errorMessage' => 'The caller is not allowed to specify the PeerGatewayIp parameter.', 'description' => ''], + ['errorCode' => 'Forbidden.PeeringSubnetMaskNotAllowedByCaller', 'errorMessage' => 'The caller is not allowed to specify the PeeringSubnetMask parameter.', 'description' => ''], + ['errorCode' => 'Forbidden.NameNotAllowedByCaller', 'errorMessage' => 'The caller is not allowed to specify the Name parameter.', 'description' => ''], + ['errorCode' => 'Forbidden.DescriptionNotAllowedByCaller', 'errorMessage' => 'The caller is not allowed to specify the Description parameter.', 'description' => ''], + ], + [ + ['errorCode' => 'InvalidRegionId.NotFound', 'errorMessage' => 'The specified RegionId is not found.', 'description' => 'The specified region ID is invalid. Check whether the service is available in the specified region.'], + ['errorCode' => 'InvalidVbrOwnerId.NotFound', 'errorMessage' => 'The specified VbrOwnerId is not valid.', 'description' => ''], + ['errorCode' => 'CROSS_BID.FORBIDDEN', 'errorMessage' => 'Create VBR across bid is illegal', 'description' => 'You are not allowed to create a VBR for another Alibaba Cloud account.'], + ['errorCode' => 'OperationFailed.AccessDeviceDisabled', 'errorMessage' => 'Access device is disabled and can not create vbr.', 'description' => 'You cannot create a VBR because the access device is disabled.'], + ], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', 'description' => 'An internal error occurred.'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'staticInfo' => ['returnType' => 'synchronous'], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-06F83A1B457\\",\\n \\"Enabled\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n 54B48E3D-DF70-471B-AA93-06F83A1B457\\n true\\n","errorExample":""}]', - 'title' => 'GetFlowLogServiceStatus', + 'title' => 'CreateVirtualBorderRouter', + 'description' => 'After you create a VBR, the VBR is in the **active** state.'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2024-11-12T08:03:53.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-02-01T03:33:17.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-07-24T11:57:52.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-07-20T11:21:57.000Z', 'description' => 'Error codes changed, Request parameters changed'], + ['createdAt' => '2022-12-07T08:23:09.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2022-12-05T08:06:02.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2021-07-30T09:21:18.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2021-07-30T09:21:18.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2021-07-30T09:21:18.000Z', 'description' => 'Error codes changed'], + ], + 'ramActions' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"VbrId\\": \\"vbr-bp1jcg5cmxjbl9xgc****\\",\\n \\"RequestId\\": \\"4EC47282-1B74-4534-BD0E-403F3EE64CAF\\"\\n}","errorExample":""},{"type":"xml","example":"\\n vbr-bp1jcg5cmxjbl9xgc****\\n 4EC47282-1B74-4534-BD0E-403F3EE64CAF\\n","errorExample":""}]', ], - 'DescribeFlowLogs' => [ - 'summary' => 'Query flow logs.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'CreateVirtualPhysicalConnection' => [ + 'summary' => 'Invokes the CreateVirtualPhysicalConnection operation to create shared Express Connect circuits.', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'write', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'get', - ], + 'systemTags' => ['operationType' => 'create', 'riskType' => 'none', 'chargeType' => 'free', 'autoTest' => true, 'tenantRelevance' => 'tenant'], 'parameters' => [ [ - 'name' => 'RegionId', + 'name' => 'OrderMode', 'in' => 'query', 'schema' => [ - 'description' => 'The region ID of the flow log.'."\n" + 'title' => '', + 'description' => 'The payer of the shared Express Connect circuits. Valid values:'."\n" ."\n" - .'You can obtain the region ID by calling the [DescribeRegions](~~36063~~) interface.', + .'- **PayByPhysicalConnectionOwner**: The partner pays.'."\n" + .'- **PayByVirtualPhysicalConnectionOwner**: The tenant pays.', 'type' => 'string', 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], - ], - [ - 'name' => 'FlowLogName', - 'in' => 'query', - 'schema' => [ - 'description' => 'The name of the flow log.'."\n" - ."\n" - .'The name must be 1 to 128 characters long and cannot start with `http://` or `https://`.', - 'type' => 'string', - 'required' => false, - 'example' => 'myFlowlog', - ], - ], - [ - 'name' => 'FlowLogId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the flow log.', - 'type' => 'string', - 'required' => false, - 'example' => 'fl-bp1f6qqhsrc2c12ta****', - ], - ], - [ - 'name' => 'Description', - 'in' => 'query', - 'schema' => [ - 'description' => 'The description of the flow log.'."\n" - ."\n" - .'The description must be 1 to 256 characters long and cannot start with `http://` or `https://`.', - 'type' => 'string', - 'required' => false, - 'example' => 'This is my Flowlog.', + 'example' => 'PayByVirtualPhysicalConnectionOwner', + 'enum' => ['PayByVirtualPhysicalConnectionOwner', 'PayByPhysicalConnectionOwner'], ], ], [ - 'name' => 'ResourceType', + 'name' => 'VlanId', 'in' => 'query', - 'schema' => [ - 'description' => 'The resource type of the traffic to capture. Values:'."\n" - .'- **NetworkInterface**: Elastic Network Interface (ENI).'."\n" - .'- **VSwitch**: All ENIs within a VSwitch.'."\n" - .'- **VPC**: All ENIs within a VPC.', - 'type' => 'string', - 'required' => false, - 'example' => 'NetworkInterface', - ], + 'schema' => ['title' => '', 'description' => 'The VLAN ID of the shared Express Connect circuits. Valid values: **0** to **2999**.'."\n" + ."\n" + .'- If the VLAN ID is set to **0**, the physical switch port of the Virtual Border Router (VBR) uses Layer 3 routing interface mode instead of VLAN mode. In Layer 3 routing interface mode, each Express Connect circuit corresponds to one VBR.'."\n" + .'- If the VLAN ID is set to a value from **1** to **2999**, the physical switch port of the VBR uses VLAN-based Layer 3 subinterface mode. In Layer 3 subinterface mode, each VLAN ID corresponds to one VBR. In this case, the Express Connect circuit of the VBR can connect to VPCs under multiple accounts. VBRs in different VLANs have Layer 2 network isolation and cannot communicate with each other.', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '4'], ], [ - 'name' => 'ResourceId', + 'name' => 'Spec', 'in' => 'query', - 'schema' => [ - 'description' => 'The resource ID of the traffic to capture.', - 'type' => 'string', - 'required' => false, - 'example' => 'eni-askldfas****', - ], + 'schema' => ['title' => '', 'description' => 'The bandwidth value of the shared Express Connect circuits.'."\n" + ."\n" + .'Valid values: **50M**, **100M**, **200M**, **300M**, **400M**, **500M**, **1G**, **2G**, **5G**, **8G**, and **10G**.'."\n" + ."\n" + .''."\n" + .'> The bandwidth values **2G**, **5G**, **8G**, and **10G** are not available by default. To use these values, contact your account manager.'."\n" + ."\n" + .''."\n" + .'> The bandwidth values **2G**, **5G**, **8G**, and **10G** are not available by default. To use these values, contact your account manager.'."\n" + ."\n" + .'Unit: **M** indicates Mbit/s. **G** indicates Gbit/s.', 'type' => 'string', 'required' => true, 'example' => '50M'], ], [ - 'name' => 'TrafficType', + 'name' => 'VpconnAliUid', 'in' => 'query', - 'schema' => [ - 'description' => 'The type of traffic to collect. Values:'."\n" - .'- **All**: All traffic.'."\n" - .'- **Allow**: Traffic allowed by access control.'."\n" - .'- **Drop**: Traffic denied by access control.', - 'type' => 'string', - 'required' => false, - 'example' => 'All', - ], + 'schema' => ['title' => '', 'description' => 'The Alibaba Cloud account ID of the tenant.', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '1210123456123456'], ], [ - 'name' => 'ProjectName', + 'name' => 'PhysicalConnectionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The Project that manages the captured traffic.', - 'type' => 'string', - 'required' => false, - 'example' => 'FlowLogProject', - ], + 'schema' => ['title' => '', 'description' => 'The ID of the Express Connect circuit associated with the shared Express Connect circuits.', 'type' => 'string', 'required' => true, 'example' => 'pc-bp1ciz7ekd2grn1as****'], ], [ - 'name' => 'LogStoreName', + 'name' => 'Name', 'in' => 'query', - 'schema' => [ - 'description' => 'The Logstore that stores the captured traffic.', - 'type' => 'string', - 'required' => false, - 'example' => 'FlowLogStore', - ], + 'schema' => ['title' => '', 'description' => 'The name of the shared Express Connect circuits.'."\n" + ."\n" + .'The name must be 2 to 128 characters in length and must start with a letter or a Chinese character. It can contain digits, underscores (\\_), and hyphens (-) but cannot start with `http://` or `https://`.', 'type' => 'string', 'example' => 'nametest', 'required' => false], ], [ - 'name' => 'Status', + 'name' => 'Token', 'in' => 'query', - 'schema' => [ - 'description' => 'The status of the flow log. Values:'."\n" - .'- **Active**: The flow log is in an active state.'."\n" - .'- **Activating**: The flow log is being created.'."\n" - .'- **Inactive**: The flow log is in an inactive state.', - 'type' => 'string', - 'required' => false, - 'example' => 'Active', - ], + 'schema' => ['title' => '', 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'Generate a parameter value from your client to ensure uniqueness across different requests. ClientToken supports only ASCII characters.'."\n" + ."\n" + .'> If you do not specify this parameter, the system uses the **RequestId** of the API request as the **ClientToken**. The **RequestId** may be different for each API request.', 'type' => 'string', 'required' => false, 'example' => 'CBCE910E-D396-4944-8****'], ], [ - 'name' => 'PageNumber', + 'name' => 'DryRun', 'in' => 'query', - 'schema' => [ - 'description' => 'The page number, with a default value of **1**.', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', - 'default' => '1', - ], + 'schema' => ['title' => '', 'description' => 'Specifies whether to perform a dry run. Valid values:'."\n" + ."\n" + .'- **true**: performs a dry run without creating the shared Express Connect circuits. The system checks the required parameters, request format, and instance status. If the check fails, the corresponding error is returned. If the check succeeds, `DRYRUN.SUCCESS` is returned.'."\n" + .'- **false** (default): sends a Normal request. After the request passes the check, the shared Express Connect circuits are created.', 'type' => 'boolean', 'required' => false, 'example' => 'false'], ], [ - 'name' => 'PageSize', + 'name' => 'Description', 'in' => 'query', - 'schema' => [ - 'description' => 'The number of items per page in a paginated query, with a maximum value of **50** and a default value of **20**.', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '20', - 'default' => '20', - ], + 'schema' => ['title' => '', 'description' => 'The description of the shared Express Connect circuits.'."\n" + ."\n" + .'The description must be 2 to 256 characters in length and must start with a letter or a Chinese character. It cannot start with `http://` or `https://`.', 'type' => 'string', 'example' => 'desctest', 'required' => false], ], [ - 'name' => 'VpcId', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the VPC for which you want to view the flow log.', - 'type' => 'string', - 'required' => false, - 'example' => 'vpc-bp1nwd16gvo1wgs****', - ], + 'schema' => ['description' => 'The region ID of the shared Express Connect circuits.'."\n" + ."\n" + .'You can invoke the [DescribeRegions](~~36063~~) operation to query the region ID.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ 'name' => 'ResourceGroupId', 'in' => 'query', - 'schema' => [ - 'description' => 'The resource group ID of the flow log.', - 'type' => 'string', - 'required' => false, - 'example' => 'rg-bp67acfmxazb4ph****', - ], + 'schema' => ['description' => 'The ID of the resource group to which the shared Express Connect circuits belong.', 'type' => 'string', 'required' => false, 'example' => 'rg-aekzjty2chzuqky', 'title' => ''], ], [ - 'name' => 'Tags', + 'name' => 'Tag', 'in' => 'query', 'style' => 'repeatList', 'schema' => [ @@ -18223,292 +15042,110 @@ 'description' => 'The list of tags.', 'type' => 'object', 'properties' => [ - 'Key' => [ - 'description' => '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.'."\n" - ."\n" - .'A tag key can have up to 128 characters and cannot start with `aliyun` or `acs:`. It also cannot contain `http://` or `https://`.', - 'type' => 'string', - 'required' => false, - 'example' => 'FinanceDept', - ], - 'Value' => [ - 'description' => '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.'."\n" - ."\n" - .'A tag value can have up to 128 characters and cannot start with `aliyun` or `acs:`. It also cannot contain `http://` or `https://`.', - 'type' => 'string', - 'required' => false, - 'example' => 'FinanceJoshua', - ], + 'Key' => ['description' => 'The tag key of the resource. You can specify up to 20 tag keys. The tag key cannot be an empty string.'."\n" + ."\n" + .'The tag key can be up to 64 characters in length and can contain digits, periods (.), underscores (\\_), and hyphens (-). It cannot start with `aliyun` or `acs:` and cannot contain `http://` or `https://`.', 'type' => 'string', 'required' => false, 'example' => 'FinanceDept', 'title' => ''], + 'Value' => ['description' => 'The tag value of the resource. You can specify up to 20 tag values. The tag value can be an empty string.'."\n" + ."\n" + .'The tag value can be up to 128 characters in length and can contain digits, periods (.), underscores (\\_), and hyphens (-). It cannot start with `aliyun` or `acs:` and cannot contain `http://` or `https://`.', 'type' => 'string', 'required' => false, 'example' => 'FinanceJoshua', 'title' => ''], ], 'required' => false, + 'title' => '', + 'example' => '', ], 'required' => false, - 'maxItems' => 10, + 'maxItems' => 20, + 'title' => '', + 'example' => '', ], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => 'Detailed information about the flow logs.', + 'title' => '', + 'description' => 'The request ID.', 'type' => 'object', 'properties' => [ - 'PageSize' => [ - 'description' => 'The number of items per page in a paginated query.', - 'type' => 'string', - 'example' => '20', - ], - 'PageNumber' => [ - 'description' => 'The page number.', - 'type' => 'string', - 'example' => '1', - ], - 'RequestId' => [ - 'description' => 'The request ID.', - 'type' => 'string', - 'example' => 'F7DDDC17-FA06-4AC2-8F35-59D2470FCFC1', - ], - 'TotalCount' => [ - 'description' => 'The number of entries in the queried flow log list.', - 'type' => 'string', - 'example' => '1', - ], - 'Success' => [ - 'description' => 'Indicates whether the call was successful. Values:'."\n" - .'- **true**: The call was successful.'."\n" - .'- **false**: The call failed.', - 'type' => 'string', - 'example' => 'true', - ], - 'FlowLogs' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'FlowLog' => [ - 'description' => 'List of flow logs.', - 'type' => 'array', - 'items' => [ - 'description' => 'List of flow logs.', - 'type' => 'object', - 'properties' => [ - 'Status' => [ - 'description' => 'The status of the flow log. Values:'."\n" - .'- **Active**: The flow log is in an active state.'."\n" - ."\n" - .'- **Activating**: The flow log is being created.'."\n" - ."\n" - .'- **Inactive**: The flow log is in an inactive state.', - 'type' => 'string', - 'example' => 'Active', - ], - 'CreationTime' => [ - 'description' => 'The creation time of the flow log.', - 'type' => 'string', - 'example' => '2022-01-21T03:08:50Z', - ], - 'FlowLogName' => [ - 'description' => 'The name of the flow log.', - 'type' => 'string', - 'example' => 'myFlowlog', - ], - 'TrafficType' => [ - 'description' => 'The type of traffic captured by the flow log. Values:'."\n" - ."\n" - .'- **All**: All traffic.'."\n" - .'- **Allow**: Traffic allowed by access control.'."\n" - .'- **Drop**: Traffic denied by access control.', - 'type' => 'string', - 'example' => 'All', - ], - 'ResourceType' => [ - 'description' => 'The resource type of the traffic captured by the flow log:'."\n" - ."\n" - .'- **NetworkInterface**: Elastic network interface.'."\n" - .'- **VSwitch**: All elastic network interfaces within a VSwitch.'."\n" - .'- **VPC**: All elastic network interfaces within a VPC.', - 'type' => 'string', - 'example' => 'NetworkInterface', - ], - 'Description' => [ - 'description' => 'The description of the flow log.', - 'type' => 'string', - 'example' => 'Description', - ], - 'ProjectName' => [ - 'description' => 'The Project that manages the captured traffic.', - 'type' => 'string', - 'example' => 'FlowLogProject', - ], - 'LogStoreName' => [ - 'description' => 'The Logstore where the captured traffic is stored.', - 'type' => 'string', - 'example' => 'FlowLogStore', - ], - 'ResourceId' => [ - 'description' => 'The resource ID of the traffic captured by the flow log.', - 'type' => 'string', - 'example' => 'eni-askldfas****', - ], - 'RegionId' => [ - 'description' => 'The region ID to which the flow log belongs.', - 'type' => 'string', - 'example' => 'cn-hangzhou', - ], - 'FlowLogId' => [ - 'description' => 'The ID of the flow log.', - 'type' => 'string', - 'example' => 'fl-bp1f6qqhsrc2c12ta****', - ], - 'BusinessStatus' => [ - 'description' => 'The business status. Values:'."\n" - ."\n" - .'- **Normal**: Normal status.'."\n" - .'- **FinancialLocked**: Locked due to unpaid bills.', - 'type' => 'string', - 'example' => 'Normal', - ], - 'AggregationInterval' => [ - 'description' => 'The sampling interval of the flow log. Unit: minutes.', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'TrafficPath' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'TrafficPathList' => [ - 'description' => 'The path of the captured traffic. Values:'."\n" - ."\n" - .'- **all**: Indicates full collection.'."\n" - .'- **internetGateway**: Indicates public network traffic collection.', - 'type' => 'array', - 'items' => [ - 'description' => 'The path of the collected traffic. Values:'."\n" - .'- **all** (default): indicates full collection. '."\n" - .'- **internetGateway**: indicates public network traffic collection.', - 'type' => 'string', - 'example' => 'all', - ], - ], - ], - ], - 'ServiceType' => [ - 'description' => 'The hosting type of the cloud service.'."\n" - .'- It can be empty, indicating that the flow log was created by the user. '."\n" - .'- When not empty, the only supported value is: **sls**, indicating that the flow log was created through the Log Service console.'."\n" - .'> 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.', - 'type' => 'string', - 'example' => 'sls', - ], - 'ResourceGroupId' => [ - 'description' => 'The ID of the resource group to which the flow log belongs.', - 'type' => 'string', - 'example' => 'rg-bp67acfmxazb4ph****', - ], - 'Tags' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'Tag' => [ - 'description' => 'List of tags', - 'type' => 'array', - 'items' => [ - 'description' => 'List of tags', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => 'Tag key.', - 'type' => 'string', - 'example' => 'FinanceDept', - ], - 'Value' => [ - 'description' => 'Tag value.', - 'type' => 'string', - 'example' => 'FinanceJoshua', - ], - ], - ], - ], - ], - ], - 'FlowLogDeliverStatus' => [ - 'description' => 'The delivery status of the flow log, with values:'."\n" - .'- **SUCCESS**: Delivery succeeded. '."\n" - .'- **FAILED**: Delivery failed.', - 'type' => 'string', - 'example' => 'FAILED', - ], - 'FlowLogDeliverErrorMessage' => [ - 'description' => 'When log delivery fails, you can troubleshoot based on the error messages. Possible error messages include:'."\n" - .'- **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. '."\n" - .'- **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. '."\n" - .'- **UnknownError**: An internal error has occurred. Please try again later.', - 'type' => 'string', - 'example' => 'UnavaliableTarget', - ], - 'IpVersion' => [ - 'description' => 'The type of IP address for collecting flow log traffic.', - 'type' => 'string', - 'example' => 'IPv4', - ], - ], - ], - ], - ], - ], + 'RequestId' => ['title' => '', 'description' => 'The request ID.', 'type' => 'string', 'example' => 'CD14EA74-E9C3-59A9-942A-DFEC7E12818D'], + 'VirtualPhysicalConnection' => ['title' => '', 'description' => 'The instance ID of the shared Express Connect circuits.', 'type' => 'string', 'example' => 'pc-bp1mrgfbtmc9brre7****'], ], + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidInstanceId', - 'errorMessage' => 'Instance does not exist.', - ], - [ - 'errorCode' => 'ProjectOrLogstoreNotExist', - 'errorMessage' => 'The specified project or logstore does not exist.', - ], - [ - 'errorCode' => 'SourceProjectNotExist', - 'errorMessage' => 'The Source Project or logstore does not exist.', - ], - [ - 'errorCode' => 'Unauthorized', - 'errorMessage' => 'This api does not support sub user or role.', - ], - [ - 'errorCode' => 'ParameterInvalid', - 'errorMessage' => 'Invalid parameter.', - ], - [ - 'errorCode' => 'InvalidRegionId.NotFound', - 'errorMessage' => 'The RegionId provided does not exist in our records.', - ], - ], - ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"PageSize\\": \\"20\\",\\n \\"PageNumber\\": \\"1\\",\\n \\"RequestId\\": \\"F7DDDC17-FA06-4AC2-8F35-59D2470FCFC1\\",\\n \\"TotalCount\\": \\"1\\",\\n \\"Success\\": \\"true\\",\\n \\"FlowLogs\\": {\\n \\"FlowLog\\": [\\n {\\n \\"Status\\": \\"Active\\",\\n \\"CreationTime\\": \\"2022-01-21T03:08:50Z\\",\\n \\"FlowLogName\\": \\"myFlowlog\\",\\n \\"TrafficType\\": \\"All\\",\\n \\"ResourceType\\": \\"NetworkInterface\\",\\n \\"Description\\": \\"Description\\",\\n \\"ProjectName\\": \\"FlowLogProject\\",\\n \\"LogStoreName\\": \\"FlowLogStore\\",\\n \\"ResourceId\\": \\"eni-askldfas****\\",\\n \\"RegionId\\": \\"cn-hangzhou\\",\\n \\"FlowLogId\\": \\"fl-bp1f6qqhsrc2c12ta****\\",\\n \\"BusinessStatus\\": \\"Normal\\",\\n \\"AggregationInterval\\": 10,\\n \\"TrafficPath\\": {\\n \\"TrafficPathList\\": [\\n \\"all\\"\\n ]\\n },\\n \\"ServiceType\\": \\"sls\\",\\n \\"ResourceGroupId\\": \\"rg-bp67acfmxazb4ph****\\",\\n \\"Tags\\": {\\n \\"Tag\\": [\\n {\\n \\"Key\\": \\"FinanceDept\\",\\n \\"Value\\": \\"FinanceJoshua\\"\\n }\\n ]\\n },\\n \\"FlowLogDeliverStatus\\": \\"FAILED\\",\\n \\"FlowLogDeliverErrorMessage\\": \\"UnavaliableTarget\\",\\n \\"IpVersion\\": \\"IPv4\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 20\\n 1\\n F7DDDC17-FA06-4AC2-8F35-59D2470FCFC1\\n 1\\n true\\n \\n Active\\n 2022-01-21T03:08:50Z\\n myFlowlog\\n All\\n NetworkInterface\\n Description\\n FlowLogProject\\n FlowLogStore\\n eni-askldfas****\\n cn-hangzhou\\n fl-bp1f6qqhsrc2c12ta****\\n Normal\\n 10\\n all\\n sls\\n rg-bp67acfmxazb4ph****\\n \\n FinanceDept\\n FinanceJoshua\\n \\n FAILED\\n UnavaliableTarget\\n \\n","errorExample":""}]', - 'title' => 'Query Flow Logs', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - 'translator' => 'machine', + ['errorCode' => 'OperationFailed.VbrBindedPconn', 'errorMessage' => 'The operation is failed because of VbrBindedPconn.', 'description' => 'A hosted connection is created for the VBR.'], + ['errorCode' => 'IllegalParam.Bandwidth', 'errorMessage' => 'The param of Bandwidth [%s] is illegal.', 'description' => 'The specified bandwidth value is invalid.'], + ['errorCode' => 'ResourceNotFound.PhysicalConnectionId', 'errorMessage' => 'The specified PhysicalConnectionId [%s] is not found.', 'description' => 'PhysicalConnectionId is set to an invalid value.'], + ['errorCode' => 'OperationFailed.VPconnCreated', 'errorMessage' => 'The operation is failed because of VPconnCreated.', 'description' => 'You cannot create an Express Connect circuit.'], + ['errorCode' => 'MissingParam.Spec', 'errorMessage' => 'The param of Spec is missing.', 'description' => 'The Spec parameter is not set.'], + ['errorCode' => 'IllegalParam.Spec', 'errorMessage' => 'The param of Spec is illegal.', 'description' => 'The Spec parameter is set to an invalid value.'], + ['errorCode' => 'IllegalParam.VlanId', 'errorMessage' => 'The param of VlanId is illegal.', 'description' => 'The VlanId parameter is set to an invalid value.'], + ['errorCode' => 'VLAN_ID_HAS_BEEN_USED_IN_PHYSICAL_CONNECTION', 'errorMessage' => 'vlan id has been used in physical connection', 'description' => ''], + ['errorCode' => 'InvalidPhysicalConnectionId.NotFound', 'errorMessage' => 'The specified PhysicalConnectionId is not found.', 'description' => 'The specified Express Connect circuit ID does not exist.'], + ['errorCode' => 'MissingParameter', 'errorMessage' => 'The input parameter \'PhysicalConnectionId\' that is mandatory for processing this request is not supplied.', 'description' => ''], + ['errorCode' => 'InvalidPhysicalConnectionId.NotEnabled', 'errorMessage' => 'The specified PhysicalConnectionId is not in Enabled state.', 'description' => ''], + ['errorCode' => 'OperationFailed.PconnAllocateVlan0', 'errorMessage' => 'The operation is failed because of PconnAllocatedResource.', 'description' => ''], + ['errorCode' => 'InvalidVlanId.Malformed', 'errorMessage' => 'The specified VlanId is not valid.', 'description' => ''], + ['errorCode' => 'InvalidName.Malformed', 'errorMessage' => 'The specified Name is not valid.', 'description' => 'The Name parameter is set to an invalid value.'], + ['errorCode' => 'ResourceNotEnough.Bandwidth', 'errorMessage' => 'The specified resource of Bandwidth is not enough.', 'description' => 'The specified resource of Bandwidth is insufficient.'], + ['errorCode' => 'IllegalParam.VpconnAliUid', 'errorMessage' => 'The specified AliUid of Vpconn is illegal.', 'description' => 'The AliUid parameter of the Express Connect circuit is set to an invalid value.'], + ['errorCode' => 'IllegalParam.OrderMode', 'errorMessage' => 'The param of OrderMode is illegal.', 'description' => 'The OrderMode parameter is set to an invalid value.'], + ['errorCode' => 'Forbidden.VpconnAliUid', 'errorMessage' => 'Vpconn UID is forbidden to belong to a RAM account or partner account.', 'description' => 'The UID of a shared port cannot be the UID of a RAM user or a partner account.'], + ['errorCode' => 'QuotaExceeded.VPCONN', 'errorMessage' => 'The quota of VPCONN_COUNT_PER_PCONN is exceeded', 'description' => 'The number of shared ports created for an Express Connect circuit exceeds the upper limit.'], + ['errorCode' => 'OperationDenied.CreateVpconn', 'errorMessage' => 'You are not allowed to create virtual physical connection. Please contact your CBM.', 'description' => 'If you do not have permission to create a shared line, please contact the business manager.'], + ['errorCode' => 'InvalidDescription.Malformed', 'errorMessage' => 'The specified Description is not valid.', 'description' => 'Parameter Description value is illegal'], + ['errorCode' => 'EcAssociatedQoSPconnNotAllowCreateVpconn', 'errorMessage' => 'The specified Pconn associated with Qos is not allowed to create Vpconn.Please contact the business manager.', 'description' => 'Exclusive physical lines bound with QoS policies are not allowed to create shared physical lines. Please contact the business manager.'], + ['errorCode' => 'IllegalParam.ResourceGroupId', 'errorMessage' => 'Invalid ResourceGroupld value.', 'description' => 'The specified resource group is invalid or does not exist.'], + ['errorCode' => 'Forbidden.VpconnCrossBid', 'errorMessage' => 'Not allow to create across bid virtual physical connection.', 'description' => ''], + ['errorCode' => 'IncorrectStatus.PhysicalConnection', 'errorMessage' => 'Invalid physical connection status.', 'description' => 'The Express Connect circuit is in an invalid state.'], + ['errorCode' => 'OperationDenied.PhysicalConnectionNotSupportMPBGPAndMPBGP-v6', 'errorMessage' => 'The operation is not allowed because this physical connection not support MPBGP and MPBGP-v6.', 'description' => 'The operation is not allowed because the current physical port does not support advanced capabilities such as MPBGP and MPBGP-v6.'], + ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'Create a shared express connect circuit', + 'description' => 'Before calling this operation, familiarize yourself with the creation process and environment requirements for shared Express Connect circuits. For more information, see [Overview of shared Express Connect circuits](~~146571~~) and [Partner operation guide](~~155987~~).', + 'changeSet' => [ + ['createdAt' => '2024-05-08T02:53:52.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-02-01T03:33:17.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-12-21T05:47:23.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-03-14T12:05:06.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2022-12-22T07:46:11.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2022-12-15T01:36:50.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2022-12-05T08:06:02.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2022-12-02T02:38:40.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2021-11-17T09:56:46.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2021-11-17T09:56:46.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2021-09-27T03:23:37.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2021-09-27T03:23:37.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2021-09-27T03:23:37.000Z', 'description' => 'OpenAPI offline'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CreateVirtualPhysicalConnection'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], + ], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'vpc:CreateVirtualPhysicalConnection', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'PhysicalConnection', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:physicalconnection/{#physicalconnectionId}'], + ], + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"CD14EA74-E9C3-59A9-942A-DFEC7E12818D\\",\\n \\"VirtualPhysicalConnection\\": \\"pc-bp1mrgfbtmc9brre7****\\"\\n}","type":"json"}]', ], - 'AssociateNetworkAcl' => [ - 'summary' => 'Associates a network access control list (ACL) with a vSwitch.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'CreateVpc' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -18517,230 +15154,288 @@ 'operationType' => 'readAndWrite', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'update', + 'operationType' => 'create', 'riskType' => 'none', 'chargeType' => 'free', + 'abilityTreeCode' => '37646', + 'abilityTreeNodes' => ['FEATUREvpcK3NXU2'], ], 'parameters' => [ [ - 'name' => 'Resource', + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => ['description' => 'The region ID of the VPC.'."\n" + ."\n" + .'You can call [DescribeRegions](~~36063~~) to query the most recent region list.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], + ], + [ + 'name' => 'CidrBlock', + 'in' => 'query', + 'schema' => ['description' => 'The CIDR block of the VPC.'."\n" + ."\n" + .'- We recommend that you use an IPv4 address specified in RFC 1918 as the primary IPv4 CIDR block of the virtual private cloud (VPC). The subnet mask must be 16 to 28 bits in length. Examples: 10.0.0.0/16, 172.16.0.0/16, and 192.168.0.0/16.'."\n" + .'- You can also use a custom CIDR block other than 100.64.0.0/10, 224.0.0.0/4, 127.0.0.0/8, 169.254.0.0/16, or their subnets as the primary IPv4 CIDR block of the virtual private cloud (VPC).', 'type' => 'string', 'required' => false, 'default' => '172.16.0.0/12', 'example' => '172.16.0.0/12', 'title' => ''], + ], + [ + 'name' => 'Ipv6CidrBlock', + 'in' => 'query', + 'schema' => ['description' => 'The IPv6 CIDR block of the VPC. When you enable IPv6 for the VPC, the system will assign an IPv6 CIDR block. To specify an IPv6 CIDR block, you must first invoke [AllocateVpcIpv6Cidr](~~448916~~) to reserve the IPv6 CIDR block, and then pass it in.', 'type' => 'string', 'required' => false, 'example' => '2408:XXXX:0:6a::/56', 'title' => ''], + ], + [ + 'name' => 'VpcName', + 'in' => 'query', + 'schema' => ['description' => 'The name of the VPC.'."\n" + ."\n" + .'The name must be 1 to 128 characters in length and cannot start with `http://` or `https://`.', 'type' => 'string', 'required' => false, 'example' => 'abc', 'title' => ''], + ], + [ + 'name' => 'EnableIpv6', + 'in' => 'query', + 'schema' => ['description' => 'Specifies whether to enable IPv6. Valid values:'."\n" + ."\n" + .'- **false** (default): disabled.'."\n" + .'- **true**: enabled.', 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], + ], + [ + 'name' => 'Description', + 'in' => 'query', + 'schema' => ['description' => 'The description of the VPC.'."\n" + ."\n" + .'The description must be 1 to 256 characters in length and cannot start with `http://` or `https://`.', 'type' => 'string', 'required' => false, 'example' => 'This is my first Vpc', 'title' => ''], + ], + [ + 'name' => 'ResourceGroupId', + 'in' => 'query', + 'schema' => ['description' => 'The resource group ID.'."\n" + ."\n" + .'For more information about resource groups, see [What is a resource group?](~~2381067~~).', 'type' => 'string', 'required' => false, 'example' => 'rg-acfmxazb4ph6aiy****', 'title' => ''], + ], + [ + 'name' => 'Tag', 'in' => 'query', 'style' => 'repeatList', 'schema' => [ - 'description' => 'The information about the associated resources.'."\n", + 'description' => 'The tags of the resource.', 'type' => 'array', 'items' => [ - 'description' => '', + 'description' => 'The tag.', 'type' => 'object', 'properties' => [ - 'ResourceType' => [ - 'description' => 'The type of resource with which you want to associate the network ACL. Set the value to **VSwitch**.'."\n" - ."\n" - .'Valid values of **N**: **0** to **29**. You can associate a network ACL with up to 30 vSwitches.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'VSwitch', - ], - 'ResourceId' => [ - 'description' => 'The ID of the associated resource.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'vsw-bp1de348lntdw****', - ], + 'Key' => ['description' => 'The tag key of the resource. You can specify up to 20 tag keys. The tag key cannot be an empty string.'."\n" + ."\n" + .'The tag key can be up to 128 characters in length and cannot start with `aliyun` or `acs:`. It cannot contain `http://` or `https://`.', 'type' => 'string', 'required' => false, 'example' => 'FinanceDept', 'title' => ''], + 'Value' => ['description' => 'The tag value of the resource. You can specify up to 20 tag values. The tag value can be an empty string.'."\n" + ."\n" + .'The tag value can be up to 128 characters in length and cannot start with `aliyun` or `acs:`. It cannot contain `http://` or `https://`.', 'type' => 'string', 'required' => false, 'example' => 'FinanceJoshua', 'title' => ''], ], 'required' => false, + 'title' => '', + 'example' => '', ], 'required' => false, - 'maxItems' => 100, + 'maxItems' => 21, + 'title' => '', + 'example' => '', ], ], [ - 'name' => 'NetworkAclId', + 'name' => 'DryRun', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the network ACL.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'nacl-a2do9e413e0sp****', - ], + 'schema' => ['description' => 'Specifies whether to perform a dry run. Valid values:'."\n" + .'- **true**: performs a dry run without creating the VPC. The system checks the required parameters, request format, 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.'."\n" + .'- **false** (default): performs a Normal request and sends the request. If the request passes the dry run, an HTTP 2xx status code is returned and the system proceeds to create a VPC.', 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], ], [ - 'name' => 'RegionId', + 'name' => 'UserCidr', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the network ACL. You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The user CIDR block. Separate multiple CIDR blocks with commas (,). You can specify up to three CIDR blocks.'."\n" + ."\n" + .'For more information about user CIDR blocks, see the `What is a user CIDR block?` section in [virtual private cloud (VPC) FAQ](~~185311~~).', 'type' => 'string', 'required' => false, 'example' => '192.168.0.0/12', 'title' => ''], ], [ 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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.'."\n" - ."\n" - .'> 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.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-426655440000', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'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.'."\n" + ."\n" + .'> If you do not specify this parameter, the system automatically uses the **RequestId** of the API request as the **ClientToken**. The **RequestId** may be different for each API request.', 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-426655440000', 'title' => ''], ], [ - 'name' => 'DryRun', + 'name' => 'Ipv6Isp', 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to perform only a dry run, without performing the actual request.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], + 'schema' => ['description' => 'The type of the IPv6 CIDR block of the VPC. Valid values:'."\n" + ."\n" + .'- **BGP** (default): Alibaba Cloud BGP IPv6.'."\n" + .'- **ChinaMobile**: China Mobile (single ISP).'."\n" + .'- **ChinaUnicom**: China Unicom (single ISP).'."\n" + .'- **ChinaTelecom**: China Telecom (single ISP).'."\n" + ."\n" + .'> If your account is included in the China Telecom single-ISP bandwidth whitelist, you can set this parameter to **ChinaTelecom** (China Telecom), **ChinaUnicom** (China Unicom), or **ChinaMobile** (China Mobile).', 'type' => 'string', 'required' => false, 'example' => 'BGP', 'title' => ''], ], [ - 'name' => 'RegionId', + 'name' => 'Ipv4IpamPoolId', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the network ACL. You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The instance ID of the IPv4 IPAM pool instance.', 'type' => 'string', 'required' => false, 'example' => 'ipam-pool-sycmt3p2a9v63i****', 'title' => ''], + ], + [ + 'name' => 'Ipv4CidrMask', + 'in' => 'query', + 'schema' => ['description' => 'The subnet mask used to allocate a CIDR block from the IPAM pool to the VPC.'."\n" + ."\n" + .'> When you create a VPC by specifying an IPAM pool, you must specify at least one of CidrBlock or Ipv4CidrMask.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '12', 'title' => ''], + ], + [ + 'name' => 'EnableDnsHostname', + 'in' => 'query', + 'schema' => ['description' => 'Specifies whether to enable the DNS hostname feature. Valid values:'."\n" + ."\n" + .'- **false** (default): disabled.'."\n" + .'- **true**: enabled.', 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], + ], + [ + 'name' => 'Ipv6IpamPoolId', + 'in' => 'query', + 'schema' => ['description' => 'The instance ID of the IPv6 IPAM pool instance.', 'type' => 'string', 'required' => false, 'example' => 'ipam-pool-bp1aq51kkfh477z03****', 'title' => ''], + ], + [ + 'name' => 'Ipv6CidrMask', + 'in' => 'query', + 'schema' => ['description' => 'The subnet mask used to allocate an IPv6 CIDR block from the IPAM pool to the VPC.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '56', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'description' => 'The ID of the created VPC.', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '4CF20CC7-D1FC-425B-A15B-DF7C8E2131A7', - ], + 'VpcId' => ['description' => 'The ID of the created VPC.', 'type' => 'string', 'example' => 'vpc-bp15zckdt37pq72zv****', 'title' => ''], + 'VRouterId' => ['description' => 'The ID of the vRouter that is automatically created after the VPC is created.', 'type' => 'string', 'example' => 'vrt-bp1lhl0taikrteen8****', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '0ED8D006-F706-4D23-88ED-E11ED28DCAC0', 'title' => ''], + 'RouteTableId' => ['description' => 'The ID of the route table that is automatically created after the VPC is created.', 'type' => 'string', 'example' => 'vtb-bp145q7glnuzdv****', 'title' => ''], + 'ResourceGroupId' => ['description' => 'The resource group ID.', 'type' => 'string', 'example' => 'rg-acfmxazb4ph6aiy****', 'title' => ''], ], - 'description' => '', + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'ParameterMissing.AliUid', - 'errorMessage' => 'ParameterMissing.AliUid', - ], - [ - 'errorCode' => 'ParameterMissing.Bid', - 'errorMessage' => 'ParameterMissing.Bid', - ], - [ - 'errorCode' => 'ParameterMissing.RegionId', - 'errorMessage' => 'ParameterMissing.RegionId', - ], - [ - 'errorCode' => 'ParameterEmpty.RegionId', - 'errorMessage' => 'ParameterEmpty.RegionId', - ], - [ - 'errorCode' => 'ParameterMissing.NetworkAclId', - 'errorMessage' => 'ParameterMissing.NetworkAclId', - ], - [ - 'errorCode' => 'ParameterEmpty.NetworkAclId', - 'errorMessage' => 'ParameterEmpty.NetworkAclId', - ], - [ - 'errorCode' => 'ParameterMissing.Resources', - 'errorMessage' => 'ParameterMissing.Resources', - ], - [ - 'errorCode' => 'ParameterEmpty.Resources', - 'errorMessage' => 'ParameterEmpty.Resources', - ], - [ - 'errorCode' => 'InvalidNetworkAcl.NotFound', - 'errorMessage' => 'The special Network Acl is not found.', - ], - [ - 'errorCode' => 'NetworkStatus.Modifying', - 'errorMessage' => 'The special Network Acl is in modifying.', - ], - [ - 'errorCode' => 'ResourceStatus.Error', - 'errorMessage' => 'The binding instance is in middle status.', - ], - [ - 'errorCode' => 'InvalidResource.NotFound', - 'errorMessage' => 'The binding instance is not found.', - ], - [ - 'errorCode' => 'InvalidResource.VpcError', - 'errorMessage' => 'The network acl and resource not in same vpc.', - ], - [ - 'errorCode' => 'InvalidResource.BindingExist', - 'errorMessage' => 'The binding instance has been binded.', - ], - [ - 'errorCode' => 'NotSupport.NetworkAcl', - 'errorMessage' => 'Network acl is not support now.', - ], - [ - 'errorCode' => 'ParameterIllegal.ResourceType', - 'errorMessage' => 'The specified resource type is illegal.', - ], - [ - 'errorCode' => 'MissingParam.Resource', - 'errorMessage' => 'Missing parameter Resource.', - ], - [ - 'errorCode' => 'OperationDenied.NetworkAclAttachmentInMiddleStatus', - 'errorMessage' => 'The network ACL is being bound to or unbound from the switch.', - ], + ['errorCode' => 'TOKEN_PROCESSING', 'errorMessage' => 'Action is processing.', 'description' => ''], + ['errorCode' => 'InvokeError', 'errorMessage' => 'instance quota rule invoke error.', 'description' => 'Failed to get rule data, please wait zai shi'], + ['errorCode' => 'InvalidParameter', 'errorMessage' => 'Specified CIDR block is not valid', 'description' => ''], + ['errorCode' => 'ResourceNotAvailable', 'errorMessage' => 'Resource you requested is not available in this region or zone.', 'description' => ''], + ['errorCode' => 'InvalidVpcName.Malformed', 'errorMessage' => 'Specified VPC name is not valid.', 'description' => ''], + ['errorCode' => 'InvalidVpcDiscription.Malformed', 'errorMessage' => 'Specified VPC description is not valid.', 'description' => ''], + ['errorCode' => 'QuotaExceeded.Vpc', 'errorMessage' => 'VPC quota exceeded.', 'description' => 'The number of VPCs in this account has reached the upper limit.'], + ['errorCode' => 'ResourceNotAvailable.Vpc', 'errorMessage' => 'Resource you requested is not available in this region or zone.', 'description' => ''], + ['errorCode' => 'InvalidUserCidr.Quota', 'errorMessage' => 'Specified UserCidr number is greater than 3.', 'description' => ''], + ['errorCode' => 'InvalidUserCidr.Malformed', 'errorMessage' => 'Specified UserCidr overlapping in of 100.64.0.0/10.', 'description' => 'The user CIDR block that you specify overlaps with 100.64.0.0/10.'], + ['errorCode' => 'InvalidResourceGroupId', 'errorMessage' => 'The specified ResourceGroupId does not exist.', 'description' => 'The specified resource group ID does not exist.'], + ['errorCode' => 'IllegalParam.Ipv6CidrBlock', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'OperationFailed.IPv6CidrNotReserved', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'MissingParam.EnableIpv6', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'OperationUnsupported.Ipv6Feature', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'System.ServiceBusy', 'errorMessage' => 'System is busy, please try later.', 'description' => ''], + ['errorCode' => 'IllegalParam.UserCidr', 'errorMessage' => 'UserCidr is not a valid or strict address.', 'description' => 'UserCidr is illegal.'], + ['errorCode' => 'OperationUnsupported.ResourceGroupId', 'errorMessage' => 'ResourceGroup is not supported in this region.', 'description' => 'The operation is not supported. Resource group IDs are not supported in Alibaba Finance Cloud.'], + ['errorCode' => 'IllegalParam.EnableIpv6', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'InvalidIpv6CidrBlock.Malformed', 'errorMessage' => 'Specified Ipv6CidrBlock is not valid.', 'description' => ''], + ['errorCode' => 'UnsupportedFeature.Ipv6Isp', 'errorMessage' => 'The Ipv6Isp feature is not supported.', 'description' => 'The specified IPv6 ISP is not supported.'], + ['errorCode' => 'ResourceNotEnough.Ipv6Cidr', 'errorMessage' => 'The specified resource of Ipv6Cidr is not enough.', 'description' => 'IPv6 addresses are insufficient.'], + ['errorCode' => 'UnsupportedFeature.IPAM', 'errorMessage' => 'VPCs cannot be created by using IPAM.', 'description' => 'You cannot use IPAM to create a VPC.'], + ['errorCode' => 'IllegalParam.Ipv4CidrMask', 'errorMessage' => 'The specified Ipv4CidrMask is illegal.', 'description' => 'Invalid Ipv4CidrMask.'], + ['errorCode' => 'IllegalParam.IpamPool', 'errorMessage' => 'The specified IPAM pool cannot be empty.', 'description' => 'The IPAM pool cannot be empty.'], + ['errorCode' => 'OperationDenied.RequestRegionInvalid', 'errorMessage' => 'The operation is not allowed because the request is not invoked in the region of the IPAM pool.', 'description' => 'The operation is not allowed because the request is not invoked in the region of the IPAM pool.'], + ['errorCode' => 'OperationDenied.IpamPoolNotInRegion', 'errorMessage' => 'The operation is not allowed because the IPAM pool not in specific region does not support creating VPC or associating CIDR for VPC.', 'description' => 'The operation is not allowed because the IPAM pool not in specific region does not support creating VPC or associating CIDR for VPC.'], + ['errorCode' => 'MissingParam.CidrOrCidrMask', 'errorMessage' => 'The CIDR or CIDR Mask must be input.', 'description' => 'The CIDR or CIDR Mask must be input.'], + ['errorCode' => 'OperationDenied.CidrInExcludeCidrs', 'errorMessage' => 'The operation is not allowed because the input CIDR is within the illegal CIDRs.', 'description' => 'The operation is not allowed because the input CIDR is within the illegal CIDRs.'."\n"], + ['errorCode' => 'OperationDenied.AvailableCidrInsufficient', 'errorMessage' => 'The operation is not allowed because available CIDR is insufficient.', 'description' => 'The operation is not allowed because available CIDR is insufficient.'], + ['errorCode' => 'UnsupportedFeature.Ipam', 'errorMessage' => 'IPAM is not supported in this region.', 'description' => 'The IPAM feature is not supported in this region.'], + ['errorCode' => 'OperationDenied.CidrUnavailableInPool', 'errorMessage' => 'The operation is not allowed because the CIDR is unavailable in the IPAM pool.', 'description' => 'The operation is not allowed because the CIDR is unavailable in the IPAM pool.'], + ['errorCode' => 'IllegalParam.CidrBlockMask', 'errorMessage' => 'The param of CidrBlock Mask [%s] is illegal.', 'description' => 'The subnet mask of the CIDR block is invalid.'], + ['errorCode' => 'UnsupportedFeature.VpcDnsHostname', 'errorMessage' => 'The feature of vpc dns hostname is unsupported.', 'description' => 'The VPC private domain name function does not take effect in the current region.'], + ['errorCode' => 'OperationDenied.MaskOfCidrIsNotAllowed', 'errorMessage' => 'The input mask or mask of the input CIDR is not allowed.', 'description' => 'The input mask or mask of the input CIDR is not allowed.'], + ['errorCode' => 'IllegalParam.Ipv6Isp', 'errorMessage' => 'The specified Ipv6Isp is illegal.', 'description' => 'The specified Ipv6Isp is illegal.'], + ['errorCode' => 'IllegalParam.CidrMask', 'errorMessage' => 'The input CIDR mask is illegal.', 'description' => 'The input CIDR mask is illegal.'], + ['errorCode' => 'InvalidRegionId.NotFound', 'errorMessage' => 'Specified value of "regionId" is not supported.', 'description' => ''], + ['errorCode' => 'UnsupportedFeature.DhcpOptionsSet', 'errorMessage' => 'The feature of dhcp options set is unsupported.', 'description' => 'The DHCP Options Set function does not take effect in the current region.'], + ['errorCode' => 'OperationDenied.CidrMaskTooLarge', 'errorMessage' => 'The operation is denied because the CIDR mask %s is larger than the allocationMaxNetmask %s of the pool.', 'description' => 'The operation is denied because the CIDR mask %s is larger than the allocationMaxNetmask %s of the pool.'], + ['errorCode' => 'OperationDenied.CidrMaskTooSmall', 'errorMessage' => 'The operation is denied because the CIDR mask %s is less than the allocationMinNetmask %s of the pool.', 'description' => 'The operation is denied because the CIDR mask %s is less than the allocationMinNetmask %s of the pool.'], + ['errorCode' => 'Mismatch.ParamIpv6IspAndIpamPoolIpv6Isp', 'errorMessage' => 'The specified IPv6 ISP %s does not match the IPAM pool\'s IPv6 ISP %s.', 'description' => 'The specified IPv6 ISP does not match the IPv6 ISP configured in the IPAM pool.'], + ], + 403 => [ + ['errorCode' => 'Forbidden', 'errorMessage' => 'User not authorized to operate on the specified resource.', 'description' => 'You do not have the permissions to manage the specified resource. Apply for the permissions and try again.'], + ], + [ + ['errorCode' => 'ResourceNotFound.IpamPool', 'errorMessage' => 'The dependent IPAM pool is not found.', 'description' => 'The dependent IPAM pool is not found.'], ], 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'The request processing has failed due to some unknown error.', - ], + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error.', 'description' => ''], ], ], - 'staticInfo' => [ - 'returnType' => 'asynchronous', - 'callback' => 'Vpc::2016-04-28::DescribeNetworkAcls', - 'callbackInterval' => 3000, - 'maxCallbackTimes' => 10, - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"4CF20CC7-D1FC-425B-A15B-DF7C8E2131A7\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 4CF20CC7-D1FC-425B-A15B-DF7C8E2131A7\\n","errorExample":""}]', - 'title' => 'AssociateNetworkAcl', - 'description' => '## [](#)Description'."\n" + 'title' => 'Create a VPC', + 'summary' => 'Creates a virtual private cloud (VPC).', + 'description' => 'When you call this operation to create a VPC, take note of the following items:'."\n" ."\n" - .'* **AssociateNetworkAcl** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call the [DescribeNetworkAclAttributes](~~116542~~) operation to query the status of the task.'."\n" + .'- A VPC can have only one primary IPv4 CIDR block. You can add IPv4 secondary CIDR blocks to expand the address space.'."\n" ."\n" - .' * If the network ACL is in the **BINDING** state, the network ACL is being associated.'."\n" - .' * If the network ACL is in the **BINDED** state, the network ACL is associated.'."\n" + .'- After a VPC is created, you can expand or shrink the original IPv4 CIDR block. If IP addresses within the current CIDR block are already in use and fall outside the target CIDR block, the modification fails.'."\n" ."\n" - .'* You cannot repeatedly call the **AssociateNetworkAcl** operation to associate a network ACL within the specified period of time.'."\n", + .'- Each VPC supports up to 300,000 private network IP addresses for cloud resources. This quota cannot be upgraded.'."\n" + .' '."\n" + .'- After a VPC is created, a vRouter and a route table are automatically created.'."\n" + .' '."\n" + .'- Each VPC supports up to three user CIDR blocks. If user CIDR blocks overlap, the CIDR block with the shorter mask takes effect. For example, if both 10.0.0.0/16 and 10.0.0.0/24 are specified, 10.0.0.0/16 takes effect.'."\n" + ."\n" + .'- **CreateVpc** is an asynchronous operation. After you invoke a request, the system returns an instance ID but the VPC is not yet created. The node for creating the VPC runs in the background. You can invoke [DescribeVpcAttribute](~~94565~~) to query the creation status of the VPC:'."\n" + .' - If the VPC is in the **Creating** state, the VPC is being created.'."\n" + .' - If the VPC is in the **Created** state, the VPC is created.'."\n" + .'- **CreateVpc** supports concurrent creation of non-default VPCs in the same region, subject to [quota](~~27750~~) limits.', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'CreateNetworkAcl' => [ - 'summary' => 'Creates a network ACL.', - 'methods' => [ - 'post', - 'get', + 'changeSet' => [ + ['createdAt' => '2025-01-16T03:36:40.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-12-18T11:29:07.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-10-10T06:15:00.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2024-08-27T02:00:39.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2024-05-21T03:43:17.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-04-25T12:15:52.000Z', 'description' => 'Error codes changed, Request parameters changed'], + ['createdAt' => '2023-07-05T05:51:44.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2023-06-13T02:40:57.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-04-26T02:51:16.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-04-13T11:16:21.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2022-09-27T06:29:01.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2022-06-23T11:09:56.000Z', 'description' => 'Error codes changed'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CreateVpc'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'vpc:CreateVpc', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VPC', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vpc/*'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"VpcId\\": \\"vpc-bp15zckdt37pq72zv****\\",\\n \\"VRouterId\\": \\"vrt-bp1lhl0taikrteen8****\\",\\n \\"RequestId\\": \\"0ED8D006-F706-4D23-88ED-E11ED28DCAC0\\",\\n \\"RouteTableId\\": \\"vtb-bp145q7glnuzdv****\\",\\n \\"ResourceGroupId\\": \\"rg-acfmxazb4ph6aiy****\\"\\n}","type":"json"}]', + ], + 'CreateVpcGatewayEndpoint' => [ + 'summary' => 'Creates a gateway endpoint.', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -18748,82 +15443,64 @@ ], 'operationType' => 'readAndWrite', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'create', - 'riskType' => 'none', - 'chargeType' => 'free', - ], + 'systemTags' => ['operationType' => 'create', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ 'name' => 'VpcId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the virtual private cloud (VPC) to which the network ACL belongs.'."\n" - ."\n" - .'If the VPC contains Elastic Compute Service (ECS) instances of the following instance families, you must upgrade the ECS instances or release the ECS instances. Otherwise, you cannot create a network ACL for the VPC.'."\n" - ."\n" - .'ecs.c1, ecs.c2, ecs.c4, ecs.c5, ecs.ce4, ecs.cm4, ecs.d1, ecs.e3, ecs.e4, ecs.ga1, ecs.gn4, ecs.gn5, ecs.i1, ecs.m1, ecs.m2, ecs.mn4, ecs.n1, ecs.n2, ecs.n4, ecs.s1, ecs.s2, ecs.s3, ecs.se1, ecs.sn1, ecs.sn2, ecs.t1, and ecs.xn4.'."\n" - ."\n" - .'* For more information about how to upgrade an ECS instance, see [Upgrade subscription instances](~~25438~~) and [Change the specifications of pay-as-you-go instances](~~60051~~).'."\n" - .'* For more information about how to release an ECS instance, see [Release an ECS instance](~~25442~~).'."\n" - ."\n" - .'> If the VPC contains an ECS instance that does not support network ACLs, upgrade the ECS instance.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'vpc-dsfd34356vdf****', - ], + 'schema' => ['title' => '', 'description' => 'The ID of the virtual private cloud (VPC) where you want to create the gateway endpoint.'."\n" + ."\n" + .'The VPC and gateway endpoint must be deployed in the same region.'."\n", 'type' => 'string', 'required' => true, 'example' => 'vpc-bp1gsk7h12ew7oegk****'], ], [ - 'name' => 'NetworkAclName', + 'name' => 'ServiceName', 'in' => 'query', - 'schema' => [ - 'description' => 'The name of the network ACL.'."\n" - ."\n" - .'The name must be 1 to 128 characters in length, and cannot start with `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'acl-1', - ], + 'schema' => ['title' => '', 'description' => 'The name of the endpoint service.'."\n", 'type' => 'string', 'required' => true, 'example' => 'com.aliyun.cn-hangzhou.oss'], ], [ - 'name' => 'Description', + 'name' => 'PolicyDocument', 'in' => 'query', - 'schema' => [ - 'description' => 'The description of the network ACL.'."\n" - ."\n" - .'The description must be 1 to 256 characters in length, and cannot start with `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'This is my NetworkAcl.', - ], + 'schema' => ['title' => '', 'description' => 'The access policy for the cloud service.'."\n" + ."\n" + .'For more information about the syntax and structure of the access policy, see [Policy syntax and structure](~~93739~~).'."\n", 'type' => 'string', 'required' => false, 'example' => '{ "Version" : "1", "Statement" : [ { "Effect" : "Allow", "Resource" : [ "*" ], "Action" : [ "*" ], "Principal" : [ "*" ] } ] }'], + ], + [ + 'name' => 'EndpointName', + 'in' => 'query', + 'schema' => ['title' => '', 'description' => 'The name of the gateway endpoint.'."\n" + ."\n" + .'The name must be 1 to 128 characters in length.'."\n", 'type' => 'string', 'required' => false, 'example' => 'test'], + ], + [ + 'name' => 'EndpointDescription', + 'in' => 'query', + 'schema' => ['title' => '', 'description' => 'The description of the gateway endpoint.'."\n" + ."\n" + .'The description must be 1 to 255 characters in length.'."\n", 'type' => 'string', 'required' => false, 'example' => 'test'], ], [ 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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.'."\n" - ."\n" - .'> 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.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '0c593ea1-3bea-11e9-b96b-88e9fe637760', - ], + 'schema' => ['title' => '', 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'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.'."\n" + ."\n" + .'> '."\n" + ."\n" + .'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.'."\n", 'type' => 'string', 'required' => false, 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3FF3898'], ], [ 'name' => 'DryRun', 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values:'."\n" - ."\n" - .'* **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.'."\n" - .'* **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.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['title' => '', 'description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values:'."\n" + ."\n" + .'* **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.'."\n" + .'* **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.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false'], + ], + [ + 'name' => 'ResourceGroupId', + 'in' => 'query', + 'schema' => ['description' => 'The ID of the resource group to which the gateway endpoint belongs.'."\n", 'type' => 'string', 'required' => false, 'example' => 'rg-acfmxazb4ph****', 'title' => ''], ], [ 'name' => 'Tag', @@ -18836,350 +15513,94 @@ 'description' => '', 'type' => 'object', 'properties' => [ - 'Key' => [ - 'description' => 'The key of tag N to add to the resource. You can specify up to 20 tag keys. The tag key cannot be an empty string.'."\n" - ."\n" - .'The tag key can be up to 128 characters in length. It cannot start with `aliyun` or `acs:`, and cannot contain `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'FinanceDept', - ], - 'Value' => [ - 'description' => '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.'."\n" - ."\n" - .'The tag value can be up to 128 characters in length and cannot contain `http://` or `https://`. The tag value cannot start with `aliyun` or `acs:`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'FinanceJoshua', - ], + 'Key' => ['description' => 'The key of tag N to add to the resource. You can specify up to 20 tag keys. The tag key cannot be an empty string.'."\n" + ."\n" + .'The tag key can be up to 128 characters in length. It cannot start with `aliyun` or `acs:`, and cannot contain `http://` or `https://`.'."\n", 'type' => 'string', 'required' => false, 'example' => 'FinanceDept', 'title' => ''], + 'Value' => ['description' => 'The value of tag N to add to the resource. You can specify up to 20 tag values. The tag value can be an empty string.'."\n" + ."\n" + .'The tag value can be up to 128 characters in length and cannot contain `http://` or `https://`. The tag value cannot start with `aliyun` or `acs:`.'."\n", 'type' => 'string', 'required' => false, 'example' => 'FinanceJoshua', 'title' => ''], ], 'required' => false, + 'title' => '', + 'example' => '', ], 'required' => false, 'maxItems' => 21, + 'title' => '', + 'example' => '', ], ], [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the network ACL.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['title' => '', 'description' => 'The region ID of the gateway endpoint.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'example' => 'cn-hangzhou'], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'title' => 'Schema of Response', 'description' => '', 'type' => 'object', 'properties' => [ - 'NetworkAclId' => [ - 'description' => 'The ID of the network ACL.'."\n", - 'type' => 'string', - 'example' => 'nacl-a2do9e413e0spzasx****', - ], - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '0ED8D006-F706-4D23-88ED-E11ED28DCAC0', - ], - 'NetworkAclAttribute' => [ - 'description' => 'The attributes of the network ACL.'."\n", - 'type' => 'object', - 'properties' => [ - 'Status' => [ - 'description' => 'The status of the network ACL. Valid values:'."\n" - ."\n" - .'* **Available**'."\n" - .'* **Modifying**'."\n", - 'type' => 'string', - 'example' => 'Modifying', - ], - 'VpcId' => [ - 'description' => 'The ID of the VPC to which the network ACL belongs.'."\n", - 'type' => 'string', - 'example' => 'vpc-a2d33rfpl72k5xsscd****', - ], - 'CreationTime' => [ - 'description' => 'The time when the network ACL was created.'."\n", - 'type' => 'string', - 'example' => '2021-12-25 11:33:27', - ], - 'Description' => [ - 'description' => 'The description of the network ACL.'."\n", - 'type' => 'string', - 'example' => 'This is my NetworkAcl.', - ], - 'NetworkAclName' => [ - 'description' => 'The name of the network ACL.'."\n", - 'type' => 'string', - 'example' => 'acl-1 ', - ], - 'NetworkAclId' => [ - 'description' => 'The ID of the network ACL.'."\n", - 'type' => 'string', - 'example' => 'nacl-a2do9e413e0spdefr****', - ], - 'RegionId' => [ - 'description' => 'The region ID of the network ACL.'."\n", - 'type' => 'string', - 'example' => 'cn-hangzhou ', - ], - 'IngressAclEntries' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'IngressAclEntry' => [ - 'description' => 'The inbound rules.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'NetworkAclEntryId' => [ - 'description' => 'The ID of the inbound rule.'."\n", - 'type' => 'string', - 'example' => 'nae-a2dk86arlydmexscd****', - ], - 'NetworkAclEntryName' => [ - 'description' => 'The name of the inbound rule.'."\n", - 'type' => 'string', - 'example' => 'acl-3 ', - ], - 'Policy' => [ - 'description' => 'The action to be performed on network traffic that matches the rule. Valid values:'."\n" - ."\n" - .'* **accept**'."\n" - .'* **drop**'."\n", - 'type' => 'string', - 'example' => 'accept', - ], - 'Description' => [ - 'description' => 'The description of the inbound rule.'."\n", - 'type' => 'string', - 'example' => 'This is IngressAclEntries. ', - ], - 'SourceCidrIp' => [ - 'description' => 'The source CIDR block.'."\n", - 'type' => 'string', - 'example' => '10.0.0.0/24 ', - ], - 'Protocol' => [ - 'description' => 'The protocol. Valid values:'."\n" - ."\n" - .'* **icmp**'."\n" - .'* **gre**'."\n" - .'* **tcp**'."\n" - .'* **udp**'."\n" - .'* **all**'."\n", - 'type' => 'string', - 'example' => 'all', - ], - 'Port' => [ - 'description' => 'The destination port range of the inbound traffic.'."\n" - ."\n" - .'* If the **protocol** of the inbound rule is set to **all**, **icmp**, or **gre**, the port range is -1/-1, which specifies all ports.'."\n" - .'* If the **protocol** of the inbound rule is set to **tcp** or **udp**, set the port range in the following format: **1/200** or **80/80**, which specifies port 1 to port 200 or port 80. Valid ports: **1** to **65535**.'."\n", - 'type' => 'string', - 'example' => '-1/-1', - ], - ], - ], - ], - ], - ], - 'EgressAclEntries' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'EgressAclEntry' => [ - 'description' => 'The outbound rules.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'NetworkAclEntryId' => [ - 'description' => 'The ID of the outbound rule.'."\n", - 'type' => 'string', - 'example' => 'nae-a2d447uw4tillxsdc****', - ], - 'NetworkAclEntryName' => [ - 'description' => 'The name of the outbound rule.'."\n", - 'type' => 'string', - 'example' => 'acl-2', - ], - 'Policy' => [ - 'description' => 'The action to be performed on network traffic that matches the rule. Valid values:'."\n" - ."\n" - .'* **accept**'."\n" - .'* **drop**'."\n", - 'type' => 'string', - 'example' => 'accept', - ], - 'Description' => [ - 'description' => 'The description of the outbound rule.'."\n", - 'type' => 'string', - 'example' => 'This is EgressAclEntries.', - ], - 'Protocol' => [ - 'description' => 'The protocol. Valid values:'."\n" - ."\n" - .'* **icmp**'."\n" - .'* **gre**'."\n" - .'* **tcp**'."\n" - .'* **udp**'."\n" - .'* **all**'."\n", - 'type' => 'string', - 'example' => 'all', - ], - 'DestinationCidrIp' => [ - 'description' => 'The destination CIDR block.'."\n", - 'type' => 'string', - 'example' => '10.0.0.0/24', - ], - 'Port' => [ - 'description' => 'The destination port range of the outbound traffic.'."\n" - ."\n" - .'* If the **protocol** of the outbound rule is set to **all**, **icmp**, or **gre**, the port range is -1/-1, which specified all ports.'."\n" - .'* If the **protocol** of the outbound rule is set to **tcp** or **udp**, set the port range in the following format: **1/200** or **80/80**, which specifies port 1 to port 200 or port 80. Valid values for a port: **1** to **65535**.'."\n", - 'type' => 'string', - 'example' => '-1/-1 ', - ], - ], - ], - ], - ], - ], - 'Resources' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'Resource' => [ - 'description' => 'The information about the associated resources.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'Status' => [ - 'description' => 'The association status of the resource. Valid values:'."\n" - ."\n" - .'* **BINDED**'."\n" - .'* **BINDING**'."\n" - .'* **UNBINDING**'."\n", - 'type' => 'string', - 'example' => 'BINDED', - ], - 'ResourceType' => [ - 'description' => 'The type of resource with which you want to associate the network ACL.'."\n", - 'type' => 'string', - 'example' => 'VSwitch', - ], - 'ResourceId' => [ - 'description' => 'The ID of the associated resource.'."\n", - 'type' => 'string', - 'example' => 'vsw-bp1de348lntdwgthy****', - ], - ], - ], - ], - ], - ], - ], - ], + 'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '62CFC815-E08A-5CF4-92D1-54273EC9E406'], + 'EndpointId' => ['description' => 'The ID of the gateway endpoint.'."\n", 'type' => 'string', 'example' => 'vpce-bp1w1dmdqjpwul0v3****', 'title' => ''], + 'ServiceName' => ['description' => 'The name of the endpoint service.'."\n", 'type' => 'string', 'example' => 'com.aliyun.cn-hangzhou.oss', 'title' => ''], + 'EndpointName' => ['description' => 'The name of the gateway endpoint.'."\n", 'type' => 'string', 'example' => 'test', 'title' => ''], + 'CreationTime' => ['description' => 'The time when the gateway endpoint was created. The time follows the ISO 8601 standard in the YYYY-MM-DDThh:mm:ssZ format. The time is displayed in UTC.'."\n", 'type' => 'string', 'example' => '2021-08-27T01:58:37Z', 'title' => ''], + 'ResourceGroupId' => ['description' => 'The ID of the resource group to which the gateway endpoint belongs.'."\n", 'type' => 'string', 'example' => 'rg-acfmxazb4ph****', 'title' => ''], ], + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'ParameterMissing.AliUid', - 'errorMessage' => 'ParameterMissing.AliUid', - ], - [ - 'errorCode' => 'ParameterMissing.Bid', - 'errorMessage' => 'ParameterMissing.Bid', - ], - [ - 'errorCode' => 'ParameterMissing.RegionId', - 'errorMessage' => 'ParameterMissing.RegionId', - ], - [ - 'errorCode' => 'ParameterEmpty.RegionId', - 'errorMessage' => 'ParameterEmpty.RegionId', - ], - [ - 'errorCode' => 'ParameterMissing.VpcId', - 'errorMessage' => 'ParameterMissing.VpcId', - ], - [ - 'errorCode' => 'ParameterLengthIllegal.Name', - 'errorMessage' => 'ParameterLengthIllegal.Name', - ], - [ - 'errorCode' => 'ParameterIllegal.Name', - 'errorMessage' => 'ParameterIllegal.Name', - ], - [ - 'errorCode' => 'ParameterLengthIllegal.Description', - 'errorMessage' => 'ParameterLengthIllegal.Description', - ], - [ - 'errorCode' => 'ParameterIllegal.Description', - 'errorMessage' => 'ParameterIllegal.Description', - ], - [ - 'errorCode' => 'ParameterEmpty.VpcId', - 'errorMessage' => 'ParameterEmpty.VpcId', - ], - [ - 'errorCode' => 'InvalidVpcId.NotFound', - 'errorMessage' => 'The vpc is not exist.', - ], - [ - 'errorCode' => 'QuotaExceed.NetworkAcl', - 'errorMessage' => 'Network acl is over limit.', - ], - [ - 'errorCode' => 'NotSupport.NetworkAcl', - 'errorMessage' => 'Network acl is not support now.', - ], - [ - 'errorCode' => 'IllegalParamFormat.%s', - 'errorMessage' => 'The param format of %s is illegal.', - ], - ], - ], - 'staticInfo' => [ - 'returnType' => 'asynchronous', - 'callback' => 'Vpc::2016-04-28::DescribeNetworkAcls', - 'callbackInterval' => 3000, - 'maxCallbackTimes' => 10, - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"NetworkAclId\\": \\"nacl-a2do9e413e0spzasx****\\",\\n \\"RequestId\\": \\"0ED8D006-F706-4D23-88ED-E11ED28DCAC0\\",\\n \\"NetworkAclAttribute\\": {\\n \\"Status\\": \\"Modifying\\",\\n \\"VpcId\\": \\"vpc-a2d33rfpl72k5xsscd****\\",\\n \\"CreationTime\\": \\"2021-12-25 11:33:27\\",\\n \\"Description\\": \\"This is my NetworkAcl.\\",\\n \\"NetworkAclName\\": \\"acl-1\\\\t\\",\\n \\"NetworkAclId\\": \\"nacl-a2do9e413e0spdefr****\\",\\n \\"RegionId\\": \\"cn-hangzhou\\\\t\\",\\n \\"IngressAclEntries\\": {\\n \\"IngressAclEntry\\": [\\n {\\n \\"NetworkAclEntryId\\": \\"nae-a2dk86arlydmexscd****\\",\\n \\"NetworkAclEntryName\\": \\"acl-3\\\\t\\",\\n \\"Policy\\": \\"accept\\",\\n \\"Description\\": \\"This is IngressAclEntries.\\\\t\\",\\n \\"SourceCidrIp\\": \\"10.0.0.0/24\\\\t\\",\\n \\"Protocol\\": \\"all\\",\\n \\"Port\\": \\"-1/-1\\"\\n }\\n ]\\n },\\n \\"EgressAclEntries\\": {\\n \\"EgressAclEntry\\": [\\n {\\n \\"NetworkAclEntryId\\": \\"nae-a2d447uw4tillxsdc****\\",\\n \\"NetworkAclEntryName\\": \\"acl-2\\",\\n \\"Policy\\": \\"accept\\",\\n \\"Description\\": \\"This is EgressAclEntries.\\",\\n \\"Protocol\\": \\"all\\",\\n \\"DestinationCidrIp\\": \\"10.0.0.0/24\\",\\n \\"Port\\": \\"-1/-1\\\\t\\"\\n }\\n ]\\n },\\n \\"Resources\\": {\\n \\"Resource\\": [\\n {\\n \\"Status\\": \\"BINDED\\",\\n \\"ResourceType\\": \\"VSwitch\\",\\n \\"ResourceId\\": \\"vsw-bp1de348lntdwgthy****\\"\\n }\\n ]\\n }\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n nacl-a2do9e413e0spzasx****\\n 0ED8D006-F706-4D23-88ED-E11ED28DCAC0\\n \\n Modifying\\n vpc-a2d33rfpl72k5xsscd****\\n 2021-12-25 11:33:27\\n This is my NetworkAcl.\\n acl-1\\t\\n nacl-a2do9e413e0spdefr****\\n cn-hangzhou\\t\\n \\n nae-a2dk86arlydmexscd****\\n acl-3\\t\\n accept\\n This is IngressAclEntries.\\t\\n 10.0.0.0/24\\t\\n all\\n -1/-1\\n \\n \\n nae-a2d447uw4tillxsdc****\\n acl-2\\n accept\\n This is EgressAclEntries.\\n all\\n 10.0.0.0/24\\n -1/-1\\t\\n \\n \\n BINDED\\n VSwitch\\n vsw-bp1de348lntdwgthy****\\n \\n \\n","errorExample":""}]', - 'title' => 'CreateNetworkAcl', + ['errorCode' => 'OperationFailed.ConcurrentOperation', 'errorMessage' => 'The operation is failed because of concurrent operation.', 'description' => ''], + ['errorCode' => 'IdempotentParameterMismatch', 'errorMessage' => 'The request uses the same client token as a previous, but non-identical request. Do not reuse a client token with different requests, unless the requests are identical.', 'description' => ''], + ['errorCode' => 'IllegalParam.PolicyDocument', 'errorMessage' => 'The param of PolicyDocument is illegal.', 'description' => ''], + ['errorCode' => 'IllegalParam.GatewayEndpointName', 'errorMessage' => 'The param of GatewayEndpointName is illegal.', 'description' => ''], + ['errorCode' => 'IllegalParam.GatewayEndpointDescription', 'errorMessage' => 'The param of GatewayEndpointDescription is illegal.', 'description' => ''], + ['errorCode' => 'ResourceAlreadyExist.GatewayEndpoint', 'errorMessage' => 'The specified resource gateway endpoint is already exist.', 'description' => ''], + ['errorCode' => 'ResourceNotFound.ServiceName', 'errorMessage' => 'The specified resource service name is not found.', 'description' => ''], + ['errorCode' => 'ResourceNotFound.VpcId', 'errorMessage' => 'The specified resource vpc is not found.', 'description' => ''], + ['errorCode' => 'Forbidden.OperateShareResource', 'errorMessage' => 'The operation is failed because of shared vpc.', 'description' => ''], + ['errorCode' => 'IncorrectStatus.Vpc', 'errorMessage' => 'The status of vpc [%s] is incorrect.', 'description' => ''], + ['errorCode' => 'IncorrectStatus.CenStatus', 'errorMessage' => 'The status of vpc cenStatus [%s] is incorrect.', 'description' => ''], + ['errorCode' => 'OperationFailed.VpcIpv6Disabled', 'errorMessage' => 'The operation is failed because of VpcIpv6Disabled.', 'description' => ''], + ['errorCode' => 'UnsupportedFeature.GatewayEndpoint', 'errorMessage' => 'The feature of gatewayEndpoint is not supported for %s.', 'description' => ''], + ['errorCode' => 'SystemBusy', 'errorMessage' => 'System is busy, please try again later.', 'description' => ''], + ['errorCode' => 'Forbbiden', 'errorMessage' => 'User not authorized to operate on the specified resource.', 'description' => ''], + ['errorCode' => 'OperationDenied.PolicyDocument', 'errorMessage' => 'The gatewayEndpoint does not support policy.', 'description' => ''], + ['errorCode' => 'MissingParam.PolicyDocument', 'errorMessage' => 'The param of PolicyDocument is missing.', 'description' => ''], + ['errorCode' => 'OperationDenied.NotAuthorized', 'errorMessage' => 'User not authorized to operate on the specified resource.', 'description' => ''], + ['errorCode' => 'InvalidPolicy.WrongFormat', 'errorMessage' => 'Invalid input policy format.', 'description' => 'The format of the policy information is invalid.'], + ], + ], + 'staticInfo' => ['returnType' => 'asynchronous', 'callback' => 'Vpc::2016-04-28::ListVpcGatewayEndpoints', 'callbackInterval' => 3000, 'maxCallbackTimes' => 10], + 'title' => 'CreateVpcGatewayEndpoint', + 'description' => '* **CreateVpcGatewayEndpoint** is an asynchronous operation. After a request is sent, the system returns an **EndpointId** and runs the task in the background. You can call the [ListVpcGatewayEndpoints](~~448682~~) operation to query the status of the task.'."\n" + ."\n" + .' * If the gateway endpoint is in the **Creating** state, the gateway endpoint is being created.'."\n" + .' * If the gateway endpoint is in the **Created** state, the gateway endpoint is created.'."\n" + ."\n" + .'* You cannot repeatedly call the **CreateVpcGatewayEndpoint** operation for the same endpoint service within the specified period of time.', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'CopyNetworkAclEntries' => [ - 'summary' => 'Copies rules of a network access control list (ACL).', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [ + ['createdAt' => '2023-07-05T05:51:47.000Z', 'description' => 'Request parameters changed, Response parameters changed'], + ['createdAt' => '2023-05-29T06:12:36.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-03-23T02:20:38.000Z', 'description' => 'Request parameters changed, Response parameters changed, Response parameters changed'], ], + 'ramActions' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"62CFC815-E08A-5CF4-92D1-54273EC9E406\\",\\n \\"EndpointId\\": \\"vpce-bp1w1dmdqjpwul0v3****\\",\\n \\"ServiceName\\": \\"com.aliyun.cn-hangzhou.oss\\",\\n \\"EndpointName\\": \\"test\\",\\n \\"CreationTime\\": \\"2021-08-27T01:58:37Z\\",\\n \\"ResourceGroupId\\": \\"rg-acfmxazb4ph****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 62CFC815-E08A-5CF4-92D1-54273EC9E406\\n vpce-bp1w1dmdqjpwul0v3****\\n com.aliyun.cn-hangzhou.oss\\n test\\n 2021-08-27T01:58:37Z\\n rg-acfmxazb4ph****\\n","errorExample":""}]', + ], + 'CreateVpcPrefixList' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -19187,179 +15608,146 @@ ], 'operationType' => 'readAndWrite', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'update', - 'riskType' => 'none', - 'chargeType' => 'free', - ], + 'systemTags' => ['operationType' => 'create', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ - 'name' => 'RegionId', + 'name' => 'PrefixListName', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the network ACL. You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The name of the prefix list.'."\n" + ."\n" + .'The name must be 1 to 128 characters in length, and cannot start with `http://` or `https://`.'."\n", 'type' => 'string', 'required' => false, 'example' => 'name'], ], [ - 'name' => 'NetworkAclId', + 'name' => 'PrefixListDescription', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the network ACL.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'nacl-a2do9e413e0spxxxxxxxx', - ], + 'schema' => ['description' => 'The description of the prefix list.'."\n" + ."\n" + .'The description must be 1 to 256 characters in length and cannot start with `http://` or `https://`.'."\n", 'type' => 'string', 'required' => false, 'example' => 'description'], ], [ - 'name' => 'SourceNetworkAclId', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the network ACL whose rules you want to copy.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'nacl-ghuo9ehg3e0spxxxxxxxx', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'You can use the client to generate the value, but you must make sure that it is unique among all requests. ClientToken can contain only ASCII characters.'."\n" + ."\n" + .'> If you do not specify this parameter, **ClientToken** is set to the value of **RequestId**. The value of **RequestId** for each API request may be different.'."\n", 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-426655440000'], ], [ - 'name' => 'ClientToken', + 'name' => 'DryRun', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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.'."\n" - ."\n" - .'> 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.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '123', - ], + 'schema' => ['description' => 'Specifies whether to perform a dry run. Valid values:'."\n" + ."\n" + .'* **true**: performs a dry run. The system checks the required parameters, request syntax, and 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.'."\n" + .'* **false** (default): performs a dry run and sends the request. If the request passes the dry run, a 2xx HTTP status code is returned and the operation is performed.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false'], ], [ - 'name' => 'DryRun', + 'name' => 'MaxEntries', + 'in' => 'query', + 'schema' => ['description' => 'The maximum number of CIDR blocks that you can specify in the prefix list. Default value: 50.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '50'], + ], + [ + 'name' => 'PrefixListEntries', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values:'."\n" - ."\n" - .'* **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.'."\n" - .'* **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.'."\n", - 'type' => 'boolean', + 'description' => 'The CIDR block information specified in the prefix list.', + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'Cidr' => ['description' => 'The CIDR block specified in the prefix list.'."\n", 'type' => 'string', 'required' => false, 'example' => '192.168.0.0/16'], + 'Description' => ['description' => 'The description of the CIDR block specified in the prefix list.'."\n" + ."\n" + .'The description must be 1 to 256 characters in length and cannot start with `http://` or `https://`.'."\n", 'type' => 'string', 'required' => false, 'example' => 'CIDR'], + ], + 'required' => false, + ], 'required' => false, - 'example' => 'false', + 'maxItems' => 50, ], ], + [ + 'name' => 'ResourceGroupId', + 'in' => 'query', + 'schema' => ['description' => 'The ID of the resource group to which the prefix list belongs.'."\n", 'type' => 'string', 'required' => false, 'example' => 'rg-bp67acfmxazb4ph****'], + ], [ 'name' => 'RegionId', 'in' => 'query', + 'schema' => ['description' => 'The ID of the region where you want to create the prefix list.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou'], + ], + [ + 'name' => 'IpVersion', + 'in' => 'query', + 'schema' => ['description' => 'The IP version. Valid values:'."\n" + ."\n" + .'* **IPv4** (default)'."\n" + .'* **IPv6**'."\n", 'type' => 'string', 'required' => false, 'example' => 'IPv4'], + ], + [ + 'name' => 'Tag', + 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => 'The region ID of the network ACL. You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', + 'description' => 'The tag list.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => 'The key of tag N. You can specify up to 20 tag keys. The tag key cannot be an empty string.'."\n" + ."\n" + .'The tag key can be up to 128 characters in length. It cannot start with `aliyun` or `acs:`, and cannot contain `http://` or `https://`.'."\n", 'type' => 'string', 'required' => false, 'example' => 'FinanceDept'], + 'Value' => ['description' => 'The value of tag N. You can specify at most 20 tag values. The tag value can be an empty string.'."\n" + ."\n" + .'The tag value can be up to 128 characters in length and cannot contain `http://` or `https://`. The tag value cannot start with `aliyun` or `acs:`.'."\n", 'type' => 'string', 'required' => false, 'example' => 'FinanceJoshua'], + ], + 'required' => false, + ], + 'required' => false, + 'maxItems' => 21, ], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'description' => '', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '6608E72F-F276-440F-ABEF-419971CEC4D1', - ], + 'PrefixListId' => ['description' => 'The ID of the prefix list.'."\n", 'type' => 'string', 'example' => 'pl-0b700s2ee3***'], + 'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B45'], + 'ResourceGroupId' => ['description' => 'The ID of the resource group to which the prefix list belongs.'."\n", 'type' => 'string', 'example' => 'rg-bp67acfmxazb4ph****'], ], - 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'ParameterMissing.AliUid', - 'errorMessage' => 'ParameterMissing.AliUid', - ], - [ - 'errorCode' => 'ParameterMissing.Bid', - 'errorMessage' => 'ParameterMissing.Bid', - ], - [ - 'errorCode' => 'ParameterMissing.RegionId', - 'errorMessage' => 'ParameterMissing.RegionId', - ], - [ - 'errorCode' => 'ParameterEmpty.RegionId', - 'errorMessage' => 'ParameterEmpty.RegionId', - ], - [ - 'errorCode' => 'ParameterMissing.NetworkAclId', - 'errorMessage' => 'ParameterMissing.NetworkAclId', - ], - [ - 'errorCode' => 'ParameterEmpty.NetworkAclId', - 'errorMessage' => 'ParameterEmpty.NetworkAclId', - ], - [ - 'errorCode' => 'ParameterMissing.SourceNetworkAclId', - 'errorMessage' => 'ParameterMissing.SourceNetworkAclId', - ], - [ - 'errorCode' => 'ParameterEmpty.SourceNetworkAclId', - 'errorMessage' => 'ParameterEmpty.SourceNetworkAclId', - ], - [ - 'errorCode' => 'InvalidNetworkAcl.NotFound', - 'errorMessage' => 'The special Network Acl is not found.', - ], - [ - 'errorCode' => 'InvalidSourceNetworkAcl.NotFound', - 'errorMessage' => 'The special source network Acl is not found.', - ], - ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'The request processing has failed due to some unknown error.', - ], + ['errorCode' => 'UnsupportedFeature.IpVersion', 'errorMessage' => 'The ipversion type is not supported.', 'description' => ''], + ['errorCode' => 'QuotaExceeded.PrefixListCidrCount', 'errorMessage' => 'The quota of prefixListMaxEntry count is exceeded.', 'description' => 'The value of entryCount exceeds the upper limit.'], + ['errorCode' => 'OperationFailed.CidrCountExceedMaxCount', 'errorMessage' => 'The operation is failed because of cidrCountExceedMaxCount.', 'description' => ''], + ['errorCode' => 'IllegalParam.CidrBlock', 'errorMessage' => 'The param of cidrBlock is illegal.', 'description' => 'The error message returned because the value of the cidrBlock parameter is invalid.'], + ['errorCode' => 'IllegalParam.CidrName', 'errorMessage' => 'The param of cidrName is illegal.', 'description' => ''], + ['errorCode' => 'DuplicatedParam.CidrBlock', 'errorMessage' => 'The param of cidrBlock is duplicated.', 'description' => 'The error message returned because a duplicate CIDR block is specified.'], + ['errorCode' => 'QuotaExceeded.PrefixListCount', 'errorMessage' => 'The quota of prefixList count is exceeded.', 'description' => 'The value of prefixList exceeds the upper limit.'], ], ], - 'staticInfo' => [ - 'returnType' => 'asynchronous', - 'callback' => 'Vpc::2016-04-28::DescribeNetworkAcls', - 'callbackInterval' => 3000, - 'maxCallbackTimes' => 10, - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"6608E72F-F276-440F-ABEF-419971CEC4D1\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 6608E72F-F276-440F-ABEF-419971CEC4D1\\n","errorExample":""}]', - 'title' => 'CopyNetworkAclEntries', - 'description' => '## [](#)Description'."\n" - ."\n" - .'* **CopyNetworkAclEntries** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call the [DescribeNetworkAclAttributes](~~116542~~) operation to query the status of the task.'."\n" - ."\n" - .' * If the network ACL is in the **Modifying** state, the rules of the network ACL are being copied.'."\n" - .' * If the network ACL is in the **Available** state, the rules of the network ACL are copied.'."\n" - ."\n" - .'* You cannot repeatedly call the **CopyNetworkAclEntries** operation within the specified period of time.'."\n", - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', + 'staticInfo' => ['returnType' => 'asynchronous', 'callback' => 'Vpc::2016-04-28::ListPrefixLists', 'callbackInterval' => 3000, 'maxCallbackTimes' => 10], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"PrefixListId\\": \\"pl-0b700s2ee3***\\",\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B45\\",\\n \\"ResourceGroupId\\": \\"rg-bp67acfmxazb4ph****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n pl-0b700s2ee3***\\n 54B48E3D-DF70-471B-AA93-08E683A1B45\\n rg-bp67acfmxazb4ph****\\n","errorExample":""}]', + 'title' => 'CreateVpcPrefixList', + 'summary' => 'Creates a prefix list.', + 'description' => 'You cannot repeatedly call the **CreateVpcPrefixList** operation within the specified period of time.'."\n", + 'changeSet' => [], + 'ramActions' => [], ], - 'DeleteNetworkAcl' => [ - 'summary' => 'Deletes a network access control list (ACL).', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'CreateVpconnFromVbr' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -19367,168 +15755,103 @@ ], 'operationType' => 'write', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'delete', - 'riskType' => 'none', - 'chargeType' => 'free', - ], + 'systemTags' => ['operationType' => 'create'], 'parameters' => [ [ - 'name' => 'NetworkAclId', + 'name' => 'OrderMode', 'in' => 'query', 'schema' => [ - 'description' => 'The ID of the network ACL.'."\n", + 'title' => '', + 'description' => 'The payer for the shared Express Connect circuit. Valid values:'."\n" + ."\n" + .'* **PayByPhysicalConnectionOwner**: the owner of the shared Express Connect circuit'."\n" + .'* **PayByVirtualPhysicalConnectionOwner**: the owner of the hosted connection'."\n", 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'nacl-bp1lhl0taikrbgnh****', + 'required' => false, + 'example' => 'PayByVirtualPhysicalConnectionOwner', + 'enum' => ['PayByVirtualPhysicalConnectionOwner', 'PayByPhysicalConnectionOwner'], ], ], [ - 'name' => 'RegionId', + 'name' => 'VbrId', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the network ACL.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['title' => '', 'description' => 'The ID of the associated VBR.'."\n", 'type' => 'string', 'required' => true, 'example' => 'vbr-bp136flp1mf8mlq6r****'], ], [ - 'name' => 'ClientToken', + 'name' => 'Token', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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.'."\n" - ."\n" - .'> 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.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '223e4867-e89b-12d3-a456-426655440000', - ], + 'schema' => ['title' => '', 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'You can use the client to generate the value, but you must ensure that it is unique among different requests. The token can contain only ASCII characters and cannot exceed 64 characters in length.'."\n", 'type' => 'string', 'required' => false, 'example' => 'CBCE910E-D396-4944-8****'], ], [ 'name' => 'DryRun', 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values:'."\n" - ."\n" - .'**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.'."\n" - ."\n" - .'**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.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['title' => 'DryRun', 'description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values:'."\n" + ."\n" + .'* **true**: performs only a dry run. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and instance status. If the request fails the dry run, an error message is returned. If the request passes the dry run, the system returns the ID of the request.'."\n" + .'* **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.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false'], ], [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the network ACL.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The region ID of the hosted connection.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'The response parameters.'."\n", 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '4B48E3D-DF70-471B-AA83-089E83A1B45', - ], + 'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '5356F028-0F5C-56FC-8574-897D24379041'], + 'VirtualPhysicalConnection' => ['title' => '', 'description' => 'The ID of the hosted connection.'."\n", 'type' => 'string', 'example' => 'pc-bp1mrgfbtmc9brre7****'], ], - 'description' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'ParameterMissing.AliUid', - 'errorMessage' => 'ParameterMissing.AliUid', - ], - [ - 'errorCode' => 'ParameterMissing.Bid', - 'errorMessage' => 'ParameterMissing.Bid', - ], - [ - 'errorCode' => 'ParameterMissing.RegionId', - 'errorMessage' => 'ParameterMissing.RegionId', - ], - [ - 'errorCode' => 'ParameterEmpty.RegionId', - 'errorMessage' => 'ParameterEmpty.RegionId', - ], - [ - 'errorCode' => 'ParameterMissing.NetworkAclId', - 'errorMessage' => 'ParameterMissing.NetworkAclId', - ], - [ - 'errorCode' => 'ParameterEmpty.NetworkAclId', - 'errorMessage' => 'ParameterEmpty.NetworkAclId', - ], - [ - 'errorCode' => 'InvalidNetworkAcl.NotFound', - 'errorMessage' => 'The special Network Acl is not found.', - ], - [ - 'errorCode' => 'NetworkStatus.Modifying', - 'errorMessage' => 'The special Network Acl is in modifying.', - ], - [ - 'errorCode' => 'NotSupport.NetworkAcl', - 'errorMessage' => 'Network acl is not support now.', - ], - [ - 'errorCode' => 'OperationDenied.NetworkAclAttachmentInMiddleStatus', - 'errorMessage' => 'The network ACL is being bound to or unbound from the switch.', - ], - ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'The request processing has failed due to some unknown error.', - ], + ['errorCode' => 'OperationFailed.TargetUserPconnTrafficNotEnable', 'errorMessage' => 'The operation failed because of TargetUserPconnTrafficNotEnable.', 'description' => 'The operation failed because the user does not have outbound traffic enabled.'], + ['errorCode' => 'ResourceNotEnough.Bandwidth', 'errorMessage' => 'The specified resource of Bandwidth is not enough.', 'description' => 'The specified resource of Bandwidth is insufficient.'], + ['errorCode' => 'OperationFailed.VbrBindedPconn', 'errorMessage' => 'The operation is failed because of VbrBindedPconn.', 'description' => 'A hosted connection is created for the VBR.'], + ['errorCode' => 'IllegalParam.Bandwidth', 'errorMessage' => 'The param of Bandwidth [%s] is illegal.', 'description' => 'The specified bandwidth value is invalid.'], + ['errorCode' => 'IncorrectStatus.VbrId', 'errorMessage' => 'The status of %s is incorrect.', 'description' => 'The status of the VBR is invalid.'], + ['errorCode' => 'ResourceNotFound.PhysicalConnectionId', 'errorMessage' => 'PhysicalConnection is not found.', 'description' => 'PhysicalConnectionId is set to an invalid value.'], + ['errorCode' => 'OperationFailed.VPconnCreated', 'errorMessage' => 'The operation is failed because of VPconnCreated.', 'description' => 'You cannot create an Express Connect circuit.'], + ['errorCode' => 'OperationFailed.BandwidthOrVlanIdEmpty', 'errorMessage' => 'The operation is failed because of BandwidthOrVlanIdEmpty.', 'description' => ''], + ['errorCode' => 'ResourceNotFound.VirtualBorderRouter', 'errorMessage' => 'The specified resource of %s is not found.', 'description' => 'Virtual Border Router does not exist'], ], ], - 'staticInfo' => [ - 'returnType' => 'asynchronous', - 'callback' => 'Vpc::2016-04-28::DescribeNetworkAcls', - 'callbackInterval' => 3000, - 'maxCallbackTimes' => 10, - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"4B48E3D-DF70-471B-AA83-089E83A1B45\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 4B48E3D-DF70-471B-AA83-089E83A1B45\\n","errorExample":""}]', - 'title' => 'DeleteNetworkAcl', - 'description' => '## [](#)Description'."\n" + 'title' => 'CreateVpconnFromVbr', + 'summary' => 'Adds a shared port to a hosted connection.', + 'description' => 'If an Express Connect partner has created a virtual border router (VBR) for a tenant before, the Express Connect partner can push the Express Connect circuit that is associated with the VBR to the tenant account by adding a shared port for the tenant account. The service of the tenant is not interrupted in this process.'."\n" ."\n" - .'You cannot repeatedly call the **DeleteNetworkAcl** operation within the specified period of time.'."\n", - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'UnassociateNetworkAcl' => [ - 'summary' => 'Disassociates a network access control list (ACL) from a vSwitch.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + .'Preparations:'."\n" + ."\n" + .'Before the Express Connect partner performs the operation, the Express Connect partner must notify the tenant and request the tenant to enable outbound data transfer billing. For more information, see [Enable outbound data transfer billing](~~274385~~).'."\n" + ."\n" + .'What to do next:'."\n" + ."\n" + .'1. After the Express Connect partner performs the operation, a shared port is added for the tenant account. The tenant must call the [ConfirmPhysicalConnection](~~324198~~) operation to accept the shared port.'."\n" + .'2. Then, the Express Connect partner must call the [AttachVbrToVpconn](~~324191~~) operation to associate the VBR with the newly added shared port that belongs to the tenant account.'."\n", + 'changeSet' => [ + ['createdAt' => '2024-06-28T02:56:12.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2021-09-27T03:23:37.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2021-09-27T03:23:37.000Z', 'description' => 'OpenAPI offline'], + ['createdAt' => '2021-09-27T03:23:37.000Z', 'description' => 'Error codes changed'], ], + 'ramActions' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"5356F028-0F5C-56FC-8574-897D24379041\\",\\n \\"VirtualPhysicalConnection\\": \\"pc-bp1mrgfbtmc9brre7****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 5356F028-0F5C-56FC-8574-897D24379041\\n pc-bp1mrgfbtmc9brre7****\\n","errorExample":""}]', + ], + 'CreateVpnAttachment' => [ + 'summary' => 'Invoke the CreateVpnAttachment API to create an IPsec-VPN connection for attaching a transit router instance. ', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -19536,3699 +15859,2259 @@ ], 'operationType' => 'readAndWrite', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'update', - 'riskType' => 'none', - 'chargeType' => 'free', - ], + 'systemTags' => ['operationType' => 'create', 'riskType' => 'high', 'chargeType' => 'paid'], 'parameters' => [ [ - 'name' => 'Resource', + 'name' => 'RegionId', 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => 'The information about the associated resource.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'ResourceType' => [ - 'description' => 'The type of the resource from which you want to disassociate the network ACL. Set the value to **VSwitch**.'."\n" - ."\n" - .'Valid values of **N**: 0 to 29. You can disassociate a network ACL from at most 30 resources at a time.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'VSwitch', - ], - 'ResourceId' => [ - 'description' => 'The ID of the resource from which you want to disassociate the network ACL.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'vsw-bp1de348lntdw****', - ], - ], - 'required' => false, - ], - 'required' => false, - 'maxItems' => 100, - ], + 'schema' => ['description' => 'The region ID of the IPsec-VPN connection.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'NetworkAclId', + 'name' => 'Name', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the network ACL that you want to disassociate from a resource.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'nacl-a2do9e413e0sp****', - ], + 'schema' => ['description' => 'The name of the IPsec-VPN connection.'."\n" + ."\n" + .'The name must be 1 to 100 characters in length and cannot start with `http://` or `https://`.', 'type' => 'string', 'required' => false, 'example' => 'nametest', 'title' => ''], ], [ - 'name' => 'RegionId', + 'name' => 'CustomerGatewayId', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the network ACL.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The customer gateway ID.'."\n" + ."\n" + .'> This parameter is required only when you create a single-tunnel IPsec-VPN connection.'."\n", 'type' => 'string', 'required' => false, 'example' => 'cgw-p0w2jemrcj5u61un8****', 'title' => ''], ], [ - 'name' => 'ClientToken', + 'name' => 'NetworkType', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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 and cannot exceed 64 characters in length.'."\n" - ."\n" - .'> 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.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-426655440000', - ], + 'schema' => ['title' => 'public/private', 'description' => 'The network type of the IPsec-VPN connection. Valid values:'."\n" + ."\n" + .'* **public** (default)'."\n" + .'* **private**'."\n", 'type' => 'string', 'required' => false, 'example' => 'public'], ], [ - 'name' => 'DryRun', + 'name' => 'LocalSubnet', 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values:'."\n" - ."\n" - .'**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.'."\n" - ."\n" - .'**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.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['title' => '', 'description' => 'The CIDR block on the VPC side. The CIDR block is used in Phase 2 negotiations.'."\n" + ."\n" + .'Separate multiple CIDR blocks with commas (,). Example: 192.168.1.0/24,192.168.2.0/24.'."\n" + ."\n" + .'The following routing modes are supported:'."\n" + ."\n" + .'* If you set **LocalSubnet** and **RemoteSubnet** to 0.0.0.0/0, the routing mode of the IPsec-VPN connection is set to Destination Routing Mode.'."\n" + .'* If you set **LocalSubnet** and **RemoteSubnet** to specific CIDR blocks, the routing mode of the IPsec-VPN connection is set to Protected Data Flows.'."\n", 'type' => 'string', 'required' => true, 'example' => '10.1.1.0/24,10.1.2.0/24'], ], [ - 'name' => 'RegionId', + 'name' => 'RemoteSubnet', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the network ACL.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The CIDR block on the data center side. This CIDR block is used in Phase 2 negotiations.'."\n" + ."\n" + .'Separate multiple CIDR blocks with commas (,). Example: 192.168.3.0/24,192.168.4.0/24.'."\n" + ."\n" + .'The following routing modes are supported:'."\n" + ."\n" + .'* If you set **LocalSubnet** and **RemoteSubnet** to 0.0.0.0/0, the routing mode of the IPsec-VPN connection is set to Destination Routing Mode.'."\n" + .'* If you set **LocalSubnet** and **RemoteSubnet** to specific CIDR blocks, the routing mode of the IPsec-VPN connection is set to Protected Data Flows.'."\n", 'type' => 'string', 'required' => true, 'example' => '10.1.3.0/24,10.1.4.0/24', 'title' => ''], ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => 'AD024BAA-2D91-48FD-810B-8FB7489B6EE6', - ], - ], - ], + [ + 'name' => 'EffectImmediately', + 'in' => 'query', + 'schema' => ['title' => '', 'description' => 'Specifies whether to immediately start IPsec negotiations after the configuration takes effect. Valid values:'."\n" + ."\n" + .'* **true**: immediately starts IPsec negotiations after the configuration is complete.'."\n" + .'* **false** (default): starts IPsec negotiations when inbound traffic is received.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false'], ], - ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'ParameterMissing.AliUid', - 'errorMessage' => 'ParameterMissing.AliUid', - ], - [ - 'errorCode' => 'ParameterMissing.Bid', - 'errorMessage' => 'ParameterMissing.Bid', - ], - [ - 'errorCode' => 'ParameterMissing.RegionId', - 'errorMessage' => 'ParameterMissing.RegionId', - ], - [ - 'errorCode' => 'ParameterEmpty.RegionId', - 'errorMessage' => 'ParameterEmpty.RegionId', - ], - [ - 'errorCode' => 'ParameterMissing.NetworkAclId', - 'errorMessage' => 'ParameterMissing.NetworkAclId', - ], - [ - 'errorCode' => 'ParameterEmpty.NetworkAclId', - 'errorMessage' => 'ParameterEmpty.NetworkAclId', - ], - [ - 'errorCode' => 'ParameterMissing.Resources', - 'errorMessage' => 'ParameterMissing.Resources', - ], - [ - 'errorCode' => 'ParameterEmpty.Resources', - 'errorMessage' => 'ParameterEmpty.Resources', - ], - [ - 'errorCode' => 'InvalidNetworkAcl.NotFound', - 'errorMessage' => 'The special Network Acl is not found.', - ], - [ - 'errorCode' => 'NetworkStatus.Modifying', - 'errorMessage' => 'The special Network Acl is in modifying.', - ], - [ - 'errorCode' => 'ResourceStatus.Error', - 'errorMessage' => 'The binding instance is in middle status.', - ], - [ - 'errorCode' => 'InvalidResource.NotFound', - 'errorMessage' => 'The binding instance is not found.', - ], - [ - 'errorCode' => 'InvalidResource.VpcError', - 'errorMessage' => 'The network acl and resource not in same vpc.', - ], - [ - 'errorCode' => 'InvalidResource.NotBinding', - 'errorMessage' => 'The resource has not been binded.', - ], - [ - 'errorCode' => 'NotSupport.NetworkAcl', - 'errorMessage' => 'Network acl is not support now.', - ], - [ - 'errorCode' => 'Mismatch.NetworkAclAndVSwitch', - 'errorMessage' => 'The specified network ACL and vSwitch are not matched.', - ], - [ - 'errorCode' => 'MissingParam.Resource', - 'errorMessage' => 'Missing parameter Resource.', - ], - [ - 'errorCode' => 'OperationDenied.NetworkAclAttachmentInMiddleStatus', - 'errorMessage' => 'The network ACL is being bound to or unbound from the switch.', - ], - ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'The request processing has failed due to some unknown error.', - ], - ], - ], - 'staticInfo' => [ - 'returnType' => 'asynchronous', - 'callback' => 'Vpc::2016-04-28::DescribeNetworkAcls', - 'callbackInterval' => 3000, - 'maxCallbackTimes' => 10, - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"AD024BAA-2D91-48FD-810B-8FB7489B6EE6\\"\\n}","errorExample":""},{"type":"xml","example":"\\n AD024BAA-2D91-48FD-810B-8FB7489B6EE6\\n","errorExample":""}]', - 'title' => 'UnassociateNetworkAcl', - 'description' => '## [](#)Description'."\n" - ."\n" - .'* **UnassociateNetworkAcl** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call the [DescribeNetworkAclAttributes](~~116542~~) operation to query the status of the task.'."\n" - ."\n" - .' * If the network ACL is in the **UNBINDING** state, the network ACL is being disassociated from the vSwitch.'."\n" - .' * If the network ACL is in the **UNBINDED** state, the network ACL is disassociated from the vSwitch.'."\n" - ."\n" - .'* You cannot repeatedly call the **UnassociateNetworkAcl** operation to disassociate a network ACL from a vSwitch within the specified period of time.'."\n", - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'ModifyNetworkAclAttributes' => [ - 'summary' => 'Modifies the attributes of a network access control list (ACL).', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ [ - 'AK' => [], + 'name' => 'IkeConfig', + 'in' => 'query', + 'schema' => ['description' => 'This parameter is supported if you create an IPsec-VPN connection in single-tunnel mode.'."\n" + ."\n" + .'The configurations of Phase 1 negotiations:'."\n" + ."\n" + .'* **IkeConfig.Psk**: the pre-shared key that is used for identity authentication between the VPN gateway and the on-premises data center.'."\n" + ."\n" + .' * The key cannot contain space characters. The key must be 1 to 100 characters in length, and can contain digits, letters, and the following special characters: ``~!`@#$%^&*()_-+={}[]|;:\',.<>/?``'."\n" + .' * If you do not specify a pre-shared key, the system randomly generates a 16-bit string as the pre-shared key. You can call the [DescribeVpnConnection](~~2526951~~) operation to query the pre-shared key that is automatically generated by the system.'."\n" + ."\n" + .' > The pre-shared key of the IPsec-VPN connection must be the same as the authentication key of the on-premises data center. Otherwise, connections between the on-premises data center and the VPN gateway cannot be established.'."\n" + ."\n" + .'* **IkeConfig.IkeVersion**: the version of the Internet Key Exchange (IKE) protocol. Valid values: **ikev1** and **ikev2**. Default value: **ikev1**.'."\n" + ."\n" + .'* **IkeConfig.IkeMode**: the negotiation mode. Valid values: **main** and **aggressive**. Default value: **main**.'."\n" + ."\n" + .'* **IkeConfig.IkeEncAlg:** the encryption algorithm that is used in Phase 1 negotiations. Valid values: **aes**, **aes192**, **aes256**, **des**, and **3des**. Default value: **aes**.'."\n" + ."\n" + .'* **IkeConfig.IkeAuthAlg**: the authentication algorithm that is used in Phase 1 negotiations. Valid values: **md5**, **sha1**, **sha256**, **sha384**, and **sha512**. Default value: **md5**.'."\n" + ."\n" + .'* **IkeConfig.IkePfs**: the Diffie-Hellman key exchange algorithm that is used in Phase 1 negotiations. Valid values: **group1**, **group2**, **group5**, and **group14**. Default value: **group2**.'."\n" + ."\n" + .'* **IkeConfig.IkeLifetime**: the SA lifetime as a result of Phase 1 negotiations. Unit: seconds. Valid values: **0** to **86400**. Default value: **86400**.'."\n" + ."\n" + .'* **IkeConfig.LocalId**: the identifier on the Alibaba Cloud side. The identifier cannot exceed 100 characters in length and cannot contain space characters. This parameter is empty by default.'."\n" + ."\n" + .'* **IkeConfig.RemoteId**: the identifier on the data center side. The identifier cannot exceed 100 characters in length and cannot contain space characters. The default value is the IP address of the customer gateway.', 'type' => 'string', 'required' => false, 'example' => '{"Psk":"1234****","IkeVersion":"ikev1","IkeMode":"main","IkeEncAlg":"aes","IkeAuthAlg":"sha1","IkePfs":"group2","IkeLifetime":86400,"LocalId":"47.XX.XX.1","RemoteId":"47.XX.XX.2"}', 'title' => ''], ], - ], - 'operationType' => 'readAndWrite', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'update', - 'riskType' => 'none', - 'chargeType' => 'free', - ], - 'parameters' => [ [ - 'name' => 'NetworkAclId', + 'name' => 'IpsecConfig', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the network ACL.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'acl-bp1lhl0taikrxxxxxxxx', - ], + 'schema' => ['description' => 'This parameter is supported if you create an IPsec-VPN connection in single-tunnel mode.'."\n" + ."\n" + .'The configurations of Phase 2 negotiations:'."\n" + ."\n" + .'* **IpsecConfig.IpsecEncAlg**: the encryption algorithm that is used in Phase 2 negotiations. Valid values: **aes**, **aes192**, **aes256**, **des**, and **3des**. Default value: **aes**.'."\n" + .'* **IpsecConfig. IpsecAuthAlg**: the authentication algorithm that is used in Phase 2 negotiations. Valid values: **md5**, **sha1**, **sha256**, **sha384**, and **sha512**. Default value: **md5**.'."\n" + .'* **IpsecConfig. IpsecPfs**: The Diffie-Hellman key exchange algorithm used in the second phase negotiation. Valid values: **disabled**, **group1**, **group2**, **group5**, and **group14**. Default value: **group2**.'."\n" + .'* **IkeConfig.IkeLifetime**: the SA lifetime determined by Phase 2 negotiations. Unit: seconds. Valid values: **0** to **86400**. Default value: **86400**.'."\n", 'type' => 'string', 'required' => false, 'example' => '{"IpsecEncAlg":"aes","IpsecAuthAlg":"sha1","IpsecPfs":"group2","IpsecLifetime":86400}', 'title' => ''], ], [ - 'name' => 'NetworkAclName', + 'name' => 'BgpConfig', 'in' => 'query', - 'schema' => [ - 'description' => 'The name of the network ACL.'."\n" - ."\n" - .'The name must be 1 to 128 characters in length, and cannot start with `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'acl-1', - ], + 'schema' => ['description' => 'This parameter is supported when you create an IPsec-VPN connection in single-tunnel mode.'."\n" + ."\n" + .'BGP configuration:'."\n" + ."\n" + .'* **BgpConfig.EnableBgp**: specifies whether to enable BGP. Valid values: **true** and **false** (default).'."\n" + ."\n" + .'* **BgpConfig.LocalAsn**: the ASN on the Alibaba Cloud side. Valid values: **1** to **4294967295**. Default value: **45104**.'."\n" + ."\n" + .' You can enter a value in two segments separated by a period (.). Each segment is 16 bits in length. Enter the number in each segment in decimal format.'."\n" + ."\n" + .' For example, if you enter 123.456, the ASN is 8061384. The ASN is calculated by using the following formula: 123 × 65536 + 456 = 8061384.'."\n" + ."\n" + .'* **BgpConfig.TunnelCidr**: The CIDR block of the IPsec tunnel. The CIDR block must fall into 169.254.0.0/16 and the mask of the CIDR block must be 30 bits in length. The CIDR block cannot be 169.254.0.0/30, 169.254.1.0/30, 169.254.2.0/30, 169.254.3.0/30, 169.254.4.0/30, 169.254.5.0/30, 169.254.6.0/30, or 169.254.169.252/30.'."\n" + ."\n" + .'* **LocalBgpIp**: the BGP address on the Alibaba Cloud side. It must be an IP address that falls within the CIDR block of the IPsec tunnel.'."\n" + ."\n" + .'> - Before you add BGP configurations, we recommend that you learn about how BGP works and the limits. For more information, see [Configure BGP dynamic routing](~~445767~~).'."\n" + .'> - We recommend that you use a private ASN to establish BGP connections to Alibaba Cloud. Refer to the relevant documentation for the private ASN range.', 'type' => 'string', 'required' => false, 'example' => '{"EnableBgp":"true","LocalAsn":"45104","TunnelCidr":"169.254.11.0/30","LocalBgpIp":"169.254.11.1"}', 'title' => ''], ], [ - 'name' => 'Description', + 'name' => 'HealthCheckConfig', 'in' => 'query', - 'schema' => [ - 'description' => 'The description of the network ACL.'."\n" - ."\n" - .'The description must be 1 to 256 characters in length, and cannot start with `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'This is my NetworkAcl.', - ], + 'schema' => ['description' => 'This parameter is supported if you create an IPsec-VPN connection in single-tunnel mode.'."\n" + ."\n" + .'The health check configurations:'."\n" + ."\n" + .'* **HealthCheckConfig.enable**: indicates whether the health check is enabled. Valid values: **true** and **false** (default).'."\n" + ."\n" + .'* **HealthCheckConfig.dip**: the destination IP address configured for health checks. Enter the IP address of the on-premises data center that the VPC can access through the IPsec connection.'."\n" + ."\n" + .'* **HealthCheckConfig.sip**: the source IP address configured for health checks. Enter the IP address of the VPC that the on-premises data center can access through the IPsec connection.'."\n" + ."\n" + .'* **HealthCheckConfig.interval**: the time interval of health check retries. Unit: seconds. Default value: **3**.'."\n" + ."\n" + .'* **HealthCheckConfig.retry**: the maximum number of health check retries. Default value: **3**.'."\n" + ."\n" + .'* **HealthCheckConfig.Policy**: specifies whether to withdraw published routes when health checks fail. Valid values:'."\n" + ."\n" + .' * **revoke_route** (default): withdraws published routes.'."\n" + .' * **reserve_route**: does not withdraw published routes.'."\n", 'type' => 'string', 'required' => false, 'example' => '{"enable":"true","dip":"192.168.1.1","sip":"10.1.1.1","interval":"3","retry":"3","Policy": "revoke_route"}', 'title' => ''], ], [ - 'name' => 'RegionId', + 'name' => 'AutoConfigRoute', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the network ACL.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'Specifies whether to automatically configure routes. Valid values:'."\n" + ."\n" + .'* **true** (default)'."\n" + .'* **false**'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'true', 'title' => ''], ], [ - 'name' => 'ClientToken', + 'name' => 'EnableDpd', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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.'."\n" - ."\n" - .'> 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.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-426655440000', - ], + 'schema' => ['description' => 'This parameter is supported if you create an IPsec-VPN connection in single-tunnel mode.'."\n" + ."\n" + .'Specifies whether to enable DPD. Valid values: Valid values:'."\n" + ."\n" + .'* **true** (default): enables DPD. The initiator of the IPsec-VPN connection sends DPD packets to check the existence and availability of the peer. If no feedback is received from the peer within the specified period of time, the connection fails. In this case, ISAKMP SA and IPsec SA are deleted along with the security tunnel.'."\n" + .'* **false**: disables DPD. The initiator of the IPsec-VPN connection does not send DPD packets.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'true', 'title' => ''], ], [ - 'name' => 'DryRun', + 'name' => 'EnableNatTraversal', 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values:'."\n" - ."\n" - .'* **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.'."\n" - .'* **false**: 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.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['description' => 'This parameter is supported if you create an IPsec-VPN connection in single-tunnel mode.'."\n" + ."\n" + .'Specifies whether to enable NAT traversal. Valid values:'."\n" + ."\n" + .'* **true** (default): enables NAT traversal. After NAT traversal is enabled, the initiator does not check the UDP ports during IKE negotiations and can automatically discover NAT gateway devices along the IPsec-VPN tunnel.'."\n" + .'* **false**: disables NAT traversal.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'true', 'title' => ''], ], [ - 'name' => 'RegionId', + 'name' => 'RemoteCaCert', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the network ACL.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], - ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.', - 'type' => 'string', - 'example' => '8F76C3E4-B39F-465D-B8B3-50BAF03CA833', - ], - ], - ], - ], - ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'ParameterMissing.AliUid', - 'errorMessage' => 'ParameterMissing.AliUid', - ], - [ - 'errorCode' => 'ParameterMissing.Bid', - 'errorMessage' => 'ParameterMissing.Bid', - ], - [ - 'errorCode' => 'ParameterMissing.RegionId', - 'errorMessage' => 'ParameterMissing.RegionId', - ], - [ - 'errorCode' => 'ParameterEmpty.RegionId', - 'errorMessage' => 'ParameterEmpty.RegionId', - ], - [ - 'errorCode' => 'ParameterMissing.NetworkAclId', - 'errorMessage' => 'ParameterMissing.NetworkAclId', - ], - [ - 'errorCode' => 'ParameterEmpty.NetworkAclId', - 'errorMessage' => 'ParameterEmpty.NetworkAclId', - ], - [ - 'errorCode' => 'ParameterLengthIllegal.Name', - 'errorMessage' => 'ParameterLengthIllegal.Name', - ], - [ - 'errorCode' => 'ParameterIllegal.Name', - 'errorMessage' => 'ParameterIllegal.Name', - ], - [ - 'errorCode' => 'ParameterLengthIllegal.Description', - 'errorMessage' => 'ParameterLengthIllegal.Description', - ], - [ - 'errorCode' => 'ParameterIllegal.Description', - 'errorMessage' => 'ParameterIllegal.Description', - ], - [ - 'errorCode' => 'InvalidNetworkAcl.NotFound', - 'errorMessage' => 'The special Network Acl is not found.', - ], - [ - 'errorCode' => 'NotSupport.NetworkAcl', - 'errorMessage' => 'Network acl is not support now.', - ], - [ - 'errorCode' => 'IllegalParamFormat.%s', - 'errorMessage' => 'The param format of %s is illegal.', - ], + 'schema' => ['type' => 'string', 'required' => false, 'description' => 'The peer CA certificate when a ShangMi (SM) VPN gateway is used to create the IPsec-VPN connection.'."\n", 'example' => '-----BEGIN CERTIFICATE----- MIIB7zCCAZW**** -----END CERTIFICATE-----', 'title' => ''], ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'The request processing has failed due to some unknown error.', - ], - ], - ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"8F76C3E4-B39F-465D-B8B3-50BAF03CA833\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 8F76C3E4-B39F-465D-B8B3-50BAF03CA833\\n","errorExample":""}]', - 'title' => 'ModifyNetworkAclAttributes', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'UpdateNetworkAclEntries' => [ - 'summary' => 'Updates the rules of a network access control list (ACL).', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ [ - 'AK' => [], + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'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.'."\n" + ."\n" + .'> 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.'."\n", 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-4266****', 'title' => ''], ], - ], - 'operationType' => 'readAndWrite', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'update', - 'riskType' => 'none', - 'chargeType' => 'free', - ], - 'parameters' => [ [ - 'name' => 'IngressAclEntries', + 'name' => 'Tags', 'in' => 'query', 'style' => 'repeatList', 'schema' => [ - 'description' => 'The information about the inbound rule.'."\n", + 'description' => 'The tag value.'."\n" + ."\n" + .'The tag value can be an empty string and cannot exceed 128 characters in length. It cannot start with `aliyun` or `acs:`, and cannot contain `http://` or `https://`.'."\n" + ."\n" + .'Each tag key corresponds to one tag value. You can specify up to 20 tag values in each call.'."\n", 'type' => 'array', 'items' => [ - 'description' => '', + 'description' => 'Tag information.', 'type' => 'object', 'properties' => [ - 'NetworkAclEntryId' => [ - 'description' => 'The ID of the inbound rule.'."\n" - ."\n" - .'Valid values of **N**: **0** to **99**. You can specify at most 100 inbound rules.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'nae-2zepn32de59j8m4****', - ], - 'EntryType' => [ - 'description' => 'The type of the rule. Set the value to **custom**, which specifies custom rules.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'custom', - ], - 'NetworkAclEntryName' => [ - 'description' => 'The name of the inbound rule.'."\n" - ."\n" - .'The name must be 1 to 128 characters in length and cannot start with `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'acl-3', - ], - 'Policy' => [ - 'description' => 'The action to be performed on network traffic that matches the rule. Valid values:'."\n" - ."\n" - .'* **accept**'."\n" - .'* **drop**'."\n", - 'type' => 'string', - 'required' => false, - 'enumValueTitles' => [ - 'drop' => 'drop', - 'accept' => 'accept', - ], - 'example' => 'accept', - ], - 'SourceCidrIp' => [ - 'description' => 'The source CIDR block.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '10.0.0.0/24', - ], - 'IpVersion' => [ - 'description' => 'The IP version. Valid values:'."\n" - ."\n" - .'* **IPv4** (default)'."\n" - .'* **IPv6**'."\n", - 'type' => 'string', - 'required' => false, - 'enumValueTitles' => [ - 'IPv6' => 'IPv6', - 'IPv4' => 'IPv4', - ], - 'example' => 'IPv4', - ], - 'Description' => [ - 'description' => 'The description of the inbound rule.'."\n" - ."\n" - .'The description must be 1 to 256 characters in length, and cannot start with `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'This is IngressAclEntries.', - ], - 'Protocol' => [ - 'description' => 'The protocol. Valid values:'."\n" - ."\n" - .'* **icmp**'."\n" - .'* **gre**'."\n" - .'* **tcp**'."\n" - .'* **udp**'."\n" - .'* **all**'."\n", - 'type' => 'string', - 'required' => false, - 'enumValueTitles' => [ - 'all' => 'all', - 'tcp' => 'tcp', - 'udp' => 'udp', - 'gre' => 'gre', - 'icmp' => 'icmp', - 'icmpv6' => 'icmpv6', - ], - 'example' => 'all', - ], - 'Port' => [ - 'description' => 'The source port range of the inbound rule.'."\n" - ."\n" - .'* If the **protocol** of the inbound rule is set to **all**, **icmp**, or **gre**, the port range is -1/-1, which specifies all ports.'."\n" - .'* If the **protocol** of the inbound rule is set to **tcp** or **udp**, set the port range in the following format: **1/200** or **80/80**, which specifies port 1 to port 200 or port 80. Valid ports: **1** to **65535**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '-1/-1', - ], + 'Key' => ['description' => 'The tag key. The tag key cannot be an empty string.'."\n" + ."\n" + .'It can be at most 64 characters in length, and cannot contain `http://` or `https://`. It cannot start with `aliyun` or `acs:`.'."\n" + ."\n" + .'You can specify at most 20 tag keys in each call.'."\n", 'type' => 'string', 'required' => false, 'example' => 'TagKey', 'title' => ''], + 'Value' => ['description' => 'The tag value.'."\n" + ."\n" + .'The tag value can be an empty string and cannot exceed 128 characters in length. It cannot start with `aliyun` or `acs:`, and cannot contain `http://` or `https://`.'."\n" + ."\n" + .'Each tag key corresponds to one tag value. You can specify at most 20 tag values in each call.'."\n", 'type' => 'string', 'required' => false, 'example' => 'TagValue', 'title' => ''], ], 'required' => false, + 'title' => '', + 'example' => '', ], 'required' => false, - 'maxItems' => 1000, + 'maxItems' => 21, + 'title' => '', + 'example' => '', ], ], [ - 'name' => 'EgressAclEntries', + 'name' => 'ResourceGroupId', 'in' => 'query', - 'style' => 'repeatList', + 'schema' => ['description' => 'The ID of the resource group to which the IPsec-VPN connection belongs.'."\n" + ."\n" + .'* You can call the [ListResourceGroups](~~158855~~) operation to query resource group IDs.'."\n" + .'* If you do not specify a resource group ID, the IPsec-VPN connection belongs to the default resource group.'."\n", 'type' => 'string', 'required' => false, 'example' => 'rg-acfmzs372yg****', 'title' => ''], + ], + [ + 'name' => 'TunnelOptionsSpecification', + 'in' => 'formData', + 'allowEmptyValue' => true, + 'style' => 'flat', 'schema' => [ - 'description' => 'The information about the outbound rules.'."\n", + 'description' => 'The tunnel configurations.'."\n" + ."\n" + .'* You can specify parameters in the **TunnelOptionsSpecification** array when you create an IPsec-VPN connection in dual tunnel mode.'."\n" + .'* When you create a IPsec-VPN connection in dual-tunnel mode, you must add both tunnels to IPsec-VPN connection to ensure that the IPsec-VPN connection has connection redundancy. Each IPsec-VPN connection supports only two tunnels.'."\n", 'type' => 'array', 'items' => [ - 'description' => '', + 'description' => 'The tunnel configuration.'."\n", 'type' => 'object', 'properties' => [ - 'NetworkAclEntryId' => [ - 'description' => 'The ID of the outbound rule.'."\n" - ."\n" - .'Valid values of **N**: **0** to **99**. You can specify at most 100 outbound rules.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'nae-2zecs97e0brcge46****', - ], - 'EntryType' => [ - 'description' => 'The type of the rule. Set the value to **custom**, which specifies custom rules.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'custom', - ], - 'NetworkAclEntryName' => [ - 'description' => 'The name of the outbound rule.'."\n" - ."\n" - .'The name must be 1 to 128 characters in length and cannot start with `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'acl-2', - ], - 'Policy' => [ - 'description' => 'The action to be performed on network traffic that matches the rule. Valid values:'."\n" + 'CustomerGatewayId' => ['description' => 'The ID of the customer gateway that is associated with the tunnel.'."\n" + ."\n" + .'> This parameter is required when you create a dual-tunnel IPsec-VPN connection.'."\n", 'type' => 'string', 'required' => false, 'example' => 'cgw-p0w2jemrcj5u61un8****', 'title' => ''], + 'EnableDpd' => ['description' => 'Specifies whether to enable the DPD feature for the tunnel. Valid values:'."\n" + ."\n" + .'* **true** (default): enables DPD. The initiator of the IPsec-VPN connection sends DPD packets to check the existence and availability of the peer. If no feedback is received from the peer within the specified period of time, the connection fails. In this case, ISAKMP SA and IPsec SA are deleted along with the security tunnel.'."\n" + .'* **false**: disables DPD. The initiator of the IPsec-VPN connection does not send DPD packets.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'true', 'title' => ''], + 'EnableNatTraversal' => ['description' => 'Specifies whether to enable NAT traversal for the tunnel. Valid values:'."\n" + ."\n" + .'* **true** (default): enables NAT traversal. After NAT traversal is enabled, the initiator does not check the UDP ports during IKE negotiations and can automatically discover NAT gateway devices along the IPsec-VPN tunnel.'."\n" + .'* **false**: disables NAT traversal.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'true', 'title' => ''], + 'TunnelIndex' => ['description' => 'The order in which the tunnel was created.'."\n" + ."\n" + .'* **1**: Tunnel 1.'."\n" + .'* **2**: Tunnel 2.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1', 'title' => ''], + 'TunnelBgpConfig' => [ + 'description' => 'The BGP configurations of the tunnel.'."\n" ."\n" - .'* **accept**'."\n" - .'* **drop**'."\n", - 'type' => 'string', - 'required' => false, - 'enumValueTitles' => [ - 'drop' => 'drop', - 'accept' => 'accept', + .'> If you enable BGP for an IPsec-VPN connection, you must set **EnableTunnelsBgp** parameter to **true**.'."\n", + 'type' => 'object', + 'properties' => [ + 'LocalAsn' => ['description' => 'The ANS of the tunnel on the Alibaba Cloud side. Valid values: **1** to **4294967295**. Default value: **45104**.'."\n" + ."\n" + .'> We recommend that you use a private ASN to establish BGP connections to Alibaba Cloud. Refer to the relevant documentation for the private ASN range.'."\n", 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '65530', 'title' => ''], + 'LocalBgpIp' => ['description' => 'The BGP IP address of the tunnel on the Alibaba Cloud side. The address is an IP address that falls within the BGP CIDR block.'."\n", 'type' => 'string', 'required' => false, 'example' => '169.254.10.1', 'title' => ''], + 'TunnelCidr' => ['description' => 'The BGP CIDR block of the tunnel. The CIDR block must fall into 169.254.0.0/16 and the mask of the CIDR block must be 30 bits in length. The CIDR block cannot be 169.254.0.0/30, 169.254.1.0/30, 169.254.2.0/30, 169.254.3.0/30, 169.254.4.0/30, 169.254.5.0/30, 169.254.6.0/30, or 169.254.169.252/30.'."\n" + ."\n" + .'> The two tunnels of an IPsec-VPN connection must use different CIDR blocks.'."\n", 'type' => 'string', 'required' => false, 'example' => '169.254.10.0/30', 'title' => ''], ], - 'example' => 'accept', - ], - 'Description' => [ - 'description' => 'The description of the outbound rule.'."\n" - ."\n" - .'The description must be 1 to 256 characters in length, and cannot start with `http://` or `https://`.'."\n", - 'type' => 'string', 'required' => false, - 'example' => 'This is EgressAclEntries.', + 'title' => '', + 'example' => '', ], - 'Protocol' => [ - 'description' => 'The protocol. Valid values:'."\n" - ."\n" - .'* **icmp**'."\n" - .'* **gre**'."\n" - .'* **tcp**'."\n" - .'* **udp**'."\n" - .'* **all**'."\n", - 'type' => 'string', - 'required' => false, - 'enumValueTitles' => [ - 'all' => 'all', - 'tcp' => 'tcp', - 'udp' => 'udp', - 'gre' => 'gre', - 'icmp' => 'icmp', - 'icmpv6' => 'icmpv6', + 'TunnelIkeConfig' => [ + 'description' => 'The configurations of Phase 1 negotiations.'."\n", + 'type' => 'object', + 'properties' => [ + 'IkeAuthAlg' => ['description' => 'The authentication algorithm that is used in Phase 1 negotiations. Valid values: **md5**, **sha1**, **sha256**, **sha384**, and **sha512**. Default value: **sha1**.'."\n", 'type' => 'string', 'required' => false, 'example' => 'sha1', 'title' => ''], + 'IkeEncAlg' => ['description' => 'The encryption algorithm that is used in Phase 1 negotiations. Valid values: **aes**, **aes192**, **aes256**, **des**, and **3des**. Default value: **aes**.'."\n", 'type' => 'string', 'required' => false, 'example' => 'aes', 'title' => ''], + 'IkeLifetime' => ['description' => 'The SA lifetime as a result of Phase 1 negotiations. Unit: seconds.'."\n" + ."\n" + .'Valid values: **0** to **86400**. Default value: **86400**.'."\n", 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '86400', 'title' => ''], + 'IkeMode' => ['description' => 'The negotiation mode of IKE. Valid values: **main** and **aggressive**. Default value: **main**.'."\n" + ."\n" + .'* **main:** This mode offers higher security during negotiations.'."\n" + .'* **aggressive**: This mode is faster with a higher success rate.'."\n", 'type' => 'string', 'required' => false, 'example' => 'main', 'title' => ''], + 'IkePfs' => ['description' => 'The Diffie-Hellman key exchange algorithm that is used in Phase 1 negotiations. Default value: **group2**.\\'."\n" + .'Valid values: **group1**, **group2**, **group5**, and **group14**.'."\n", 'type' => 'string', 'required' => false, 'example' => 'group2', 'title' => ''], + 'IkeVersion' => ['description' => 'The version of the IKE protocol. Valid values: **ikev1** and **ikev2**. Default value: **ikev2**.'."\n" + ."\n" + .'Compared with IKEv1, IKEv2 simplifies the SA negotiation process and provides better support for scenarios with multiple CIDR blocks.'."\n", 'type' => 'string', 'required' => false, 'example' => 'ikev2', 'title' => ''], + 'LocalId' => ['description' => 'The identifier of the tunnel on the Alibaba Cloud side, which is used in Phase 1 negotiations. The identifier cannot exceed 100 characters in length and cannot contain spaces. The default value is the IP address of the tunnel.'."\n" + ."\n" + .'**LocalId** supports fully qualified domain names (FQDNs). If you use an FQDN, we recommend that you set the negotiation mode to **aggressive**.'."\n", 'type' => 'string', 'required' => false, 'example' => '47.XX.XX.1', 'title' => ''], + 'Psk' => ['description' => 'The pre-shared key that is used for identity authentication between the tunnel and the tunnel peer.'."\n" + ."\n" + .'* The key cannot contain spaces. The key must be 1 to 100 characters in length, and can contain digits, letters, and the following special characters: ``~!\\`@#$%^&*()_-+={}[]|;:\',.<>/?``'."\n" + .'* If you do not specify a pre-shared key, the system randomly generates a 16-bit string as the pre-shared key. You can call the [DescribeVpnAttachments](~~2526939~~) operation to query the pre-shared key that is automatically generated by the system.'."\n" + ."\n" + .'> The tunnel and the tunnel peer must use the same pre-shared key. Otherwise, the tunnel cannot be established.'."\n", 'type' => 'string', 'required' => false, 'example' => '123456****', 'title' => ''], + 'RemoteId' => ['description' => 'The identifier of the tunnel peer, which is used in Phase 1 negotiations. The identifier cannot exceed 100 characters in length and cannot contain spaces. The default value is the IP address of the customer gateway that is associated with the tunnel.'."\n" + ."\n" + .'**RemoteId** supports FQDNs. If you use an FQDN, we recommend that you set the negotiation mode to **aggressive**.'."\n", 'type' => 'string', 'required' => false, 'example' => '47.XX.XX.2', 'title' => ''], ], - 'example' => 'all', - ], - 'DestinationCidrIp' => [ - 'description' => 'The destination CIDR block.'."\n", - 'type' => 'string', 'required' => false, - 'example' => '10.0.0.0/24', + 'title' => '', + 'example' => '', ], - 'IpVersion' => [ - 'description' => 'The IP version. Valid values:'."\n" - ."\n" - .'* **IPv4** (default)'."\n" - .'* **IPv6**', - 'type' => 'string', - 'required' => false, - 'enumValueTitles' => [ - 'IPv6' => 'IPv6', - 'IPv4' => 'IPv4', + 'TunnelIpsecConfig' => [ + 'description' => 'The configurations of Phase 2 negotiations.'."\n", + 'type' => 'object', + 'properties' => [ + 'IpsecAuthAlg' => ['description' => 'The authentication algorithm that is used in Phase 2 negotiations.'."\n" + ."\n" + .'Valid values: **md5**, **sha1**, **sha256**, **sha384**, and **sha512**. Default value: **sha1**.'."\n", 'type' => 'string', 'required' => false, 'example' => 'sha1', 'title' => ''], + 'IpsecEncAlg' => ['description' => 'The encryption algorithm that is used in Phase 2 negotiations. Valid values: **aes**, **aes192**, **aes256**, **des**, and **3des**. Default value: **aes**.'."\n", 'type' => 'string', 'required' => false, 'example' => 'aes', 'title' => ''], + 'IpsecLifetime' => ['description' => 'The SA lifetime as a result of Phase 2 negotiations. Unit: seconds.'."\n" + ."\n" + .'Valid values: **0** to **86400**. Default value: **86400**.'."\n", 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '86400', 'title' => ''], + 'IpsecPfs' => ['description' => 'The Diffie-Hellman key exchange algorithm that is used in Phase 2 negotiations. Default value: **group2**.'."\n" + ."\n" + .'Valid values: **disabled**, **group1**, **group2**, **group5**, and **group14**.'."\n", 'type' => 'string', 'required' => false, 'example' => 'group2', 'title' => ''], ], - 'example' => 'IPv4', - ], - 'Port' => [ - 'description' => 'The destination port range of the outbound traffic.'."\n" - ."\n" - .'* If the **protocol** of the outbound rule is set to **all**, **icmp**, or **gre**, the port range is -1/-1, which specified all ports.'."\n" - .'* If the **protocol** of the outbound rule is set to **tcp** or **udp**, set the port range in the following format: **1/200** or **80/80**, which specifies port 1 to port 200 or port 80. Valid values for a port: **1** to **65535**.'."\n", - 'type' => 'string', 'required' => false, - 'example' => '-1/-1', + 'title' => '', + 'example' => '', ], ], 'required' => false, + 'title' => '', + 'example' => '', ], 'required' => false, - 'maxItems' => 1000, - ], - ], - [ - 'name' => 'UpdateIngressAclEntries', - 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to update inbound rules. Valid values:'."\n" - ."\n" - .'* **true**'."\n" - .'* **false** (default)'."\n" - ."\n" - .'> This parameter cannot be used to add inbound rules to ACLs. If you want to add more inbound rules to ACLs, you must specify both the existing rule and the rule that you want to add when you call this API operation. If you specify only the rule that you want to add, it overwrites the existing rule.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], - ], - [ - 'name' => 'UpdateEgressAclEntries', - 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to update outbound rules. Valid values:'."\n" - ."\n" - .'* **true**'."\n" - .'* **false** (default)'."\n" - ."\n" - .'> This parameter cannot be used to add outbound rules to ACLs. If you want to add more outbound rules to ACLs, specify both the existing rule and the rule that you want to add when you call this API operation. If you specify only the rule that you want to add, it overwrites the existing rule.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], - ], - [ - 'name' => 'NetworkAclId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the network ACL.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'nacl-bp1lhl0taikrzxsc****', - ], - ], - [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the network ACL.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', + 'title' => '', + 'example' => '', ], ], [ - 'name' => 'ClientToken', + 'name' => 'EnableTunnelsBgp', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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.'."\n" - ."\n" - .'> 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.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-426655440000', - ], + 'allowEmptyValue' => true, + 'schema' => ['description' => 'This parameter is available if you create an IPsec-VPN connection in dual-tunnel mode.'."\n" + ."\n" + .'Specifies whether to enable the BGP feature for the tunnel. Valid values: **true** and **false**. Default value: false.'."\n" + ."\n" + .'> Before you add BGP configurations, we recommend that you learn about how BGP works and the limits. For more information, see [Configure BGP dynamic routing](~~445767~~)'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], ], [ 'name' => 'DryRun', 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values:'."\n" - ."\n" - .'* **true**: performs a dry run. The system checks the request for potential issues, including the AccessKey pair, the permissions of the RAM user, and the required parameters. 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.'."\n" - .'* **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.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], + 'schema' => ['description' => 'Specifies whether to perform a dry run of the request. Valid values:'."\n" + ."\n" + .'- **true**: Sends a dry run request without creating the IPsec-VPN connection. The system checks whether required parameters are specified, whether the request format is valid, and whether business limits are met. If the check fails, an error is returned. If the check passes, the error code `DryRunOperation` is returned.'."\n" + .'- **false** (default): Sends a normal request. If the check passes, the IPsec-VPN connection is created immediately.', 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], ], [ - 'name' => 'RegionId', + 'name' => 'TunnelBandwidth', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the network ACL.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['title' => 'Specifies the bandwidth specification for a single VPN tunnel. Valid values:'."\n" + .'Standard (Default Value): medium, default bandwidth 1 Gbps'."\n" + .'Large: large, default bandwidth 3 Gbps', 'type' => 'string', 'description' => 'Specifies the bandwidth specification for a single VPN tunnel. Valid values:'."\n" + .'Standard (Default Value): medium, with a default bandwidth of 1 Gbps'."\n" + .'Large: large, with a default bandwidth of 3 Gbps', 'required' => false, 'example' => 'Standard'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => '', + 'description' => 'The returned data.'."\n", 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '1170A5A0-E760-4331-9133-A7D38D973215', - ], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '88187252-0E26-3C4D-9D1D-32A04454EBBA', 'title' => ''], + 'VpnConnectionId' => ['description' => 'The ID of the IPsec-VPN connection.'."\n", 'type' => 'string', 'example' => 'vco-p0wb09rama8qwwgfn****', 'title' => ''], + 'Name' => ['description' => 'The name of the IPsec-VPN connection.'."\n", 'type' => 'string', 'example' => 'nametest', 'title' => ''], + 'CreateTime' => ['description' => 'The timestamp generated when the IPsec-VPN connection was established. Unit: milliseconds.'."\n" + ."\n" + .'This value is a UNIX timestamp representing the number of milliseconds that have elapsed since the epoch time January 1, 1970, 00:00:00 UTC.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '1658201810000', 'title' => ''], + 'Code' => ['description' => 'The status code returned by the current operation. **200** indicates that the operation is successful.'."\n", 'type' => 'string', 'example' => '200', 'title' => ''], + 'Message' => ['description' => 'The information returned by the current operation.'."\n", 'type' => 'string', 'example' => 'successful', 'title' => ''], + 'Success' => ['description' => 'Indicates whether the current operation is successful.'."\n" + ."\n" + .'* **true**'."\n" + .'* **false**'."\n", 'type' => 'boolean', 'example' => 'true', 'title' => ''], ], + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'ParameterMissing.AliUid', - 'errorMessage' => 'ParameterMissing.AliUid', - ], - [ - 'errorCode' => 'ParameterMissing.Bid', - 'errorMessage' => 'ParameterMissing.Bid', - ], - [ - 'errorCode' => 'ParameterMissing.RegionId', - 'errorMessage' => 'ParameterMissing.RegionId', - ], - [ - 'errorCode' => 'ParameterEmpty.RegionId', - 'errorMessage' => 'ParameterEmpty.RegionId', - ], - [ - 'errorCode' => 'ParameterMissing.NetworkAclId', - 'errorMessage' => 'ParameterMissing.NetworkAclId', - ], - [ - 'errorCode' => 'ParameterEmpty.NetworkAclId', - 'errorMessage' => 'ParameterEmpty.NetworkAclId', - ], - [ - 'errorCode' => 'ParameterMissing.Port', - 'errorMessage' => 'ParameterMissing.Port', - ], - [ - 'errorCode' => 'ParameterIllegal.Port', - 'errorMessage' => 'ParameterIllegal.Port', - ], - [ - 'errorCode' => 'ParameterIllegal.Policy', - 'errorMessage' => 'ParameterIllegal.Policy', - ], - [ - 'errorCode' => 'ParameterMissing.Policy', - 'errorMessage' => 'ParameterMissing.Policy', - ], - [ - 'errorCode' => 'ParameterIllegal.Protocol', - 'errorMessage' => 'ParameterIllegal.Protocol', - ], - [ - 'errorCode' => 'ParameterMissing.Protocol', - 'errorMessage' => 'ParameterMissing.Protocol', - ], - [ - 'errorCode' => 'ParameterLengthIllegal.Name', - 'errorMessage' => 'ParameterLengthIllegal.Name', - ], - [ - 'errorCode' => 'ParameterIllegal.Name', - 'errorMessage' => 'ParameterIllegal.Name', - ], - [ - 'errorCode' => 'ParameterLengthIllegal.Description', - 'errorMessage' => 'ParameterLengthIllegal.Description', - ], - [ - 'errorCode' => 'ParameterIllegal.Description', - 'errorMessage' => 'ParameterIllegal.Description', - ], - [ - 'errorCode' => 'ParameterIllegal.SourceCidrIp', - 'errorMessage' => 'ParameterIllegal.SourceCidrIp', - ], - [ - 'errorCode' => 'ParameterMissing.SourceCidrIp', - 'errorMessage' => 'ParameterMissing.SourceCidrIp', - ], - [ - 'errorCode' => 'ParameterIllegal.DestinationCidrIp', - 'errorMessage' => 'ParameterIllegal.DestinationCidrIp', - ], - [ - 'errorCode' => 'ParameterMissing.DestinationCidrIp', - 'errorMessage' => 'ParameterMissing.DestinationCidrIp', - ], - [ - 'errorCode' => 'QuotaExceed.NetworkAclEntry', - 'errorMessage' => 'Network acl entry is over limit.', - ], - [ - 'errorCode' => 'InvalidNetworkAcl.NotFound', - 'errorMessage' => 'The special Network Acl is not found.', - ], - [ - 'errorCode' => 'NetworkStatus.Modifying', - 'errorMessage' => 'The special Network Acl is in modifying.', - ], - [ - 'errorCode' => 'ResourceStatus.Error', - 'errorMessage' => 'The binding instance is in middle status.', - ], - [ - 'errorCode' => 'NotSupport.NetworkAcl', - 'errorMessage' => 'Network acl is not support now.', - ], - [ - 'errorCode' => 'IllegalParam.IngressAclEntryId', - 'errorMessage' => 'The specified IngressAclEntryId is invalid.', - ], - [ - 'errorCode' => 'IllegalParam.EgressAclEntryId', - 'errorMessage' => 'The specified EgressAclEntryId is invalid.', - ], - [ - 'errorCode' => 'OperationDenied.VpcIpv6NotEnabled', - 'errorMessage' => 'IPv6 has not been enabled for the VPC.', - ], - [ - 'errorCode' => 'IllegalParam.SourceCidrIp', - 'errorMessage' => 'Param SourceCidrIp is illegal.', - ], - [ - 'errorCode' => 'IllegalParam.Policy', - 'errorMessage' => 'Param Policy illegal.', - ], - [ - 'errorCode' => 'IllegalParam.Protocol', - 'errorMessage' => 'Param Protocol illegal.', - ], - [ - 'errorCode' => 'IllegalParam.DestinationCidrIp', - 'errorMessage' => 'Param DestinationCidrIp illegal.', - ], - [ - 'errorCode' => 'IllegalParam.IpVersion', - 'errorMessage' => 'Param IpVersion illegal.', - ], - [ - 'errorCode' => 'IllegalParam.PortRange', - 'errorMessage' => 'The specified port range is invalid.', - ], - [ - 'errorCode' => 'ResourceNotFound.PrefixList', - 'errorMessage' => 'The specified resource of prefixList is not found.', - ], - [ - 'errorCode' => 'OperationDenied.IpVersionInconsistencyWithPrefixList', - 'errorMessage' => 'The ip version of the prefix list %s you passed in is inconsistent with the actual ip version of the prefix list.', - ], - [ - 'errorCode' => 'OperationDenied.SystemPrefixList', - 'errorMessage' => 'The operation is not allowed because of SystemPrefixList.', - ], - [ - 'errorCode' => 'IncorrectStatus.PrefixList', - 'errorMessage' => 'The status of prefixList is incorrect.', - ], - [ - 'errorCode' => 'UnsupportedRegion.PrefixListEntry', - 'errorMessage' => 'The feature of prefixList entry is not supported in this region.', - ], - [ - 'errorCode' => 'OperationDenied.NetworkAclAttachmentInMiddleStatus', - 'errorMessage' => 'The network ACL is being bound to or unbound from the switch.', - ], + ['errorCode' => 'Resource.QuotaFull', 'errorMessage' => 'The quota of resource is full', 'description' => ''], + ['errorCode' => 'InvalidVpnConnection.AlreadyExists', 'errorMessage' => 'Vpn connection already exists.', 'description' => ''], + ['errorCode' => 'VpnRouteEntry.AlreadyExists', 'errorMessage' => 'The specified route entry is already exist.', 'description' => 'The route already exists.'], + ['errorCode' => 'VpnRouteEntry.Conflict', 'errorMessage' => 'The specified route entry has conflict.', 'description' => 'Route conflicts exist.'], + ['errorCode' => 'NotSupportVpnConnectionParameter.IpsecPfs', 'errorMessage' => 'The specified vpn connection ipsec Ipsec Pfs is not support.', 'description' => 'The PFS parameter set for the IPsec-VPN connection is not supported.'], + ['errorCode' => 'NotSupportVpnConnectionParameter.IpsecAuthAlg', 'errorMessage' => 'The specified vpn connection ipsec Auth Alg is not support.', 'description' => 'The authentication algorithm specified for the IPsec-VPN connection is not supported.'], + ['errorCode' => 'VpnRouteEntry.BackupRoute', 'errorMessage' => 'Validate backup route entry failed.', 'description' => 'Active/standby routes failed authentication.'], + ['errorCode' => 'VpnRouteEntry.InvalidWeight', 'errorMessage' => 'Invalid route entry weight value.', 'description' => 'The weight specified for the route is invalid.'], + ['errorCode' => 'InvalidParameter.VpnConnectionName', 'errorMessage' => 'The specified vpn connection name is invalid.', 'description' => 'The VPN connection name does not meet the requirements.'], + ['errorCode' => 'QuotaExceeded.PolicyBasedRoute', 'errorMessage' => 'The maximum number of policy-based routes is exceeded. Existing routes: %s. Routes to be created: %s. Maximum routes: %s.', 'description' => 'The quota of policy-based routes is reached. Existing routes: %s. Routes to be created: %s. Quota: %s.'], + ['errorCode' => 'MissingParameter.TunnelCidr', 'errorMessage' => 'The parameter TunnelCidr is mandatory when BGP is enabled.', 'description' => 'You must specify the tunnel CIDR block when you enable BGP.'], + ['errorCode' => 'OperationUnsupported.EnableBgp', 'errorMessage' => 'Current region does not support enable BGP.', 'description' => 'The error message returned because the current region does not support BGP.'], + ['errorCode' => 'MissingParam.CustomerGatewayAsn', 'errorMessage' => 'Asn of customer gateway is mandatory when BGP is enabled.', 'description' => 'The ASN of the customer gateway cannot be empty when you enable BGP.'], + ['errorCode' => 'IllegalParam.LocalAsn', 'errorMessage' => 'The specified LocalAsn is invalid.', 'description' => 'The local ASN is invalid.'], + ['errorCode' => 'InvalidParameter.BgpConfig', 'errorMessage' => 'The specified BgpConfig is invalid.', 'description' => 'The error message returned because the BGP configuration is invalid.'], + ['errorCode' => 'IllegalParam.EnableBgp', 'errorMessage' => 'VPN connection must enable BGP when VPN gateway has enabled BGP.', 'description' => 'The error message returned because the VPN connection must use BGP if BGP is enabled for the VPN gateway.'], + ['errorCode' => 'IllegalParam.TunnelCidr', 'errorMessage' => 'The specified TunnelCidr is invalid.', 'description' => 'The TunnelCidr parameter is set to an invalid value.'], + ['errorCode' => 'InvalidLocalBgpIp.Malformed', 'errorMessage' => 'The specified LocalBgpIp is malformed.', 'description' => 'The local BGP IP address is in an abnormal state.'], + ['errorCode' => 'IllegalParam.LocalBgpIp', 'errorMessage' => 'The specified LocalBgpIp is invalid.', 'description' => 'The local BGP IP address is invalid.'], + ['errorCode' => 'IllegalParam.LocalSubnet', 'errorMessage' => 'The specified "LocalSubnet" (%s) is invalid.', 'description' => 'The specified "LocalSubnet" (%s) is invalid.'], + ['errorCode' => 'IllegalParam.RemoteSubnet', 'errorMessage' => 'The specified "RemoteSubnet" (%s) is invalid.', 'description' => 'The specified "RemoteSubnet" (%s) is invalid.'], + ['errorCode' => 'OperationFailed.MissCertificate', 'errorMessage' => 'The VPN connecton has not associated any certificates.', 'description' => 'The error message returned because the VPN gateway is not associated with a certificate.'], + ['errorCode' => 'MissingParam.RemoteId', 'errorMessage' => 'The remote ID is mandatory when creating national standard VPN connection.', 'description' => 'The error message returned because the peer ID is not specified. You must specify the peer ID when you create a VPN connection encrypted by SM.'], + ['errorCode' => 'CustomerGateway.ConflictRouteEntry', 'errorMessage' => 'The specified customer gateway has conflict with route entry.', 'description' => 'The customer gateway conflicts with the current routes.'], + ['errorCode' => 'VpnTask.CONFLICT', 'errorMessage' => 'Vpn task has conflict.', 'description' => 'The VPN operation conflicts. Try again later.'], + ['errorCode' => 'Forbidden.TagKey.Duplicated', 'errorMessage' => 'The specified tag key already exists.', 'description' => 'The tag resources are duplicate.'], + ['errorCode' => 'OperationFailed.NoAvailableAmount', 'errorMessage' => 'The available amount of your account is less than 0, please recharge before attempting to purchase.', 'description' => 'Your account balance is negative. Top up your account before you can make a purchase.'], + ['errorCode' => 'SizeLimitExceeded.TagNum', 'errorMessage' => 'The maximum number of tags is exceeded.', 'description' => 'The number of tags has reached the upper limit.'], + ['errorCode' => 'InvalidParameter.TagValue', 'errorMessage' => 'The specified parameter TagValue is invalid.', 'description' => 'The error message returned because the specified tag value is invalid.'], + ['errorCode' => 'InvalidParameter.TagKey', 'errorMessage' => 'The specified parameter TagKey is invalid.', 'description' => 'The error message returned because the specified tag key is invalid.'], + ['errorCode' => 'Duplicated.TagKey', 'errorMessage' => 'The specified parameter TagKey is duplicated.', 'description' => 'The error message returned because the specified tag key already exists.'], + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', 'description' => ''], + ['errorCode' => 'InvalidTunnelCidr.Malformed', 'errorMessage' => 'The specified TunnelCidr is malformed.', 'description' => 'The specified tunnel CIDR block is invalid.'], + ['errorCode' => 'CustomerGateway.ConflictVpnIp', 'errorMessage' => 'The customer gateway associated with the IPSec connection should not have the same IP address as the VPN gateway.', 'description' => 'The customer gateway and VPN gateway of an IPsec-VPN connection cannot use the same IP address.'], + ['errorCode' => 'MissingParameter.TunnelOptionsSpecification', 'errorMessage' => 'The required parameters are missing when creating a tunnel for dual-tunnel VPN.', 'description' => 'The required parameters are missing when creating a tunnel for dual-tunnel VPN.'], + ['errorCode' => 'CreateDbrRoutesQuotaFull.QuotaFull', 'errorMessage' => 'The number of created destination routes exceeds the quota limit.', 'description' => 'The number of created destination routes exceeds the quota limit.'], + ['errorCode' => 'DryRunOperation', 'errorMessage' => 'Request validation has been passed with DryRun flag set.', 'description' => 'The request passed the dry run.'], + ['errorCode' => 'VpnConnection.InvalidCreateTunnelOptions', 'errorMessage' => 'The master and slave tunnels must be created at the same time.', 'description' => 'The primary and secondary tunnels must be created at the same time.'], + ['errorCode' => 'OperationUnsupported.LargeTunnelBandwidth', 'errorMessage' => 'Large tunnelBandwidth VpnAttachment is unsupported.', 'description' => 'Large tunnelBandwidth VpnAttachment is unsupported.'], + ['errorCode' => 'IllegalParam.TunnelBandwidth', 'errorMessage' => 'TunnelBandwidth is illegal.', 'description' => 'TunnelBandwidth is illegal.'], + ['errorCode' => 'EncAlgInvalid.DesIncompatible', 'errorMessage' => 'Des/3des in IkeEncAlg and IpsecEncAlg does not support multi algorithm.', 'description' => 'Des/3des in IkeEncAlg and IpsecEncAlg does not support multi algorithm.'], + ['errorCode' => 'OperationFailed.OpenCdtServiceFirst', 'errorMessage' => 'The operation is failed because of %s.', 'description' => 'The billing method requires CDT billing enabled. Enable CDT billing and try again.'], + ['errorCode' => 'IkeVersionInvalid.GcmIncompatible', 'errorMessage' => 'Ikev1 does not support IkeEncAlg of gcm16.', 'description' => 'Ikev1 does not support IkeEncAlg of gcm16.'], ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'The request processing has failed due to some unknown error.', - ], + 403 => [ + ['errorCode' => 'Forbbiden.SubUser', 'errorMessage' => 'User not authorized to operate on the specified resource as your account is created by another user.', 'description' => ''], + ['errorCode' => 'Forbidden', 'errorMessage' => 'User not authorized to operate on the specified resource.', 'description' => 'You do not have the permissions to manage the specified resource. Apply for the permissions and try again.'], + ], + [ + ['errorCode' => 'InvalidCustomerGatewayInstanceId.NotFound', 'errorMessage' => 'The specified customer gateway instance id does not exist.', 'description' => 'The specified customer gateway does not exist. Check whether the ID of the customer gateway is correct.'], ], ], - 'staticInfo' => [ - 'returnType' => 'asynchronous', - 'callback' => 'Vpc::2016-04-28::DescribeNetworkAcls', - 'callbackInterval' => 3000, - 'maxCallbackTimes' => 10, - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"1170A5A0-E760-4331-9133-A7D38D973215\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 1170A5A0-E760-4331-9133-A7D38D973215\\n","errorExample":""}]', - 'title' => 'UpdateNetworkAclEntries', - 'description' => '* **UpdateNetworkAclEntries** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call the [DescribeNetworkAclAttributes](~~116542~~) operation to query the status of a network ACL:'."\n" + 'staticInfo' => ['returnType' => 'asynchronous', 'callback' => 'Vpc::2016-04-28::DescribeVpnConnection', 'callbackInterval' => 2000, 'maxCallbackTimes' => 10], + 'title' => 'Create an IPsec-VPN Connection ', + 'description' => '>'."\n" ."\n" - .' * If the network ACL is in the **Modifying** state, the rules of the network ACL are being updated.'."\n" - .' * If the network ACL is in the **Available** state, the rules of the network ACL are updated.'."\n" + .'- In the scenario of attaching a transit router, IPsec-VPN connections have been upgraded to dual-tunnel mode. When creating an IPsec-VPN connection, in addition to required parameters, you can configure only the following request parameters related to dual-tunnel mode: **ClientToken**, **Name**, **NetworkType**, **EffectImmediately**, **Tags** array, **ResourceGroupId**, **TunnelOptionsSpecification** array, and **EnableTunnelsBgp**. For more information, see [Dual-Tunnel IPsec-VPN Connection Description for Attaching Transit Router Scenario](~~2853535~~).'."\n" ."\n" - .'* You cannot repeatedly call the **UpdateNetworkAclEntries** operation to update the rules of a network ACL within the specified period of time.'."\n", - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', + .'- By default, an IPsec-VPN connection created by invoking the `CreateVpnAttachment` API is not attached to any resource. You can later attach it to a transit router instance by invoking the [CreateTransitRouterVpnAttachment](~~443993~~) API. After the attachment, the system assigns a gateway IP address to the IPsec-VPN connection. You can call the [DescribeVpnConnection](~~2526951~~) API to view this information.'."\n" + ."\n" + .'>'."\n" + ."\n" + .'### Prerequisites'."\n" + .'Before creating an IPsec-VPN connection, ensure that you have already created a customer gateway in the same Region where the IPsec-VPN connection will be created. For more information, see [CreateCustomerGateway](~~120368~~).'."\n" + ."\n" + .'If you need to add Border Gateway Protocol (BGP) configuration to the IPsec-VPN connection, ensure that an autonomous system number has been added to the customer gateway. ', + 'changeSet' => [ + ['createdAt' => '2025-05-23T06:50:35.000Z', 'description' => 'Error codes changed, Request parameters changed'], + ['createdAt' => '2024-11-28T10:47:51.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2024-11-25T02:24:17.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2024-10-24T11:19:59.000Z', 'description' => 'Error codes changed, Request parameters changed'], + ['createdAt' => '2024-05-10T02:03:15.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-10-19T07:04:02.000Z', 'description' => 'Error codes changed, Request parameters changed'], + ['createdAt' => '2023-08-09T02:17:22.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2023-01-09T10:06:05.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2022-12-27T12:19:50.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2022-12-08T09:38:28.000Z', 'description' => 'Error codes changed'], + ], + 'ramActions' => [], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"88187252-0E26-3C4D-9D1D-32A04454EBBA\\",\\n \\"VpnConnectionId\\": \\"vco-p0wb09rama8qwwgfn****\\",\\n \\"Name\\": \\"nametest\\",\\n \\"CreateTime\\": 1658201810000,\\n \\"Code\\": \\"200\\",\\n \\"Message\\": \\"successful\\",\\n \\"Success\\": true\\n}","type":"json"}]', + 'translator' => 'machine', ], - 'DescribeNetworkAclAttributes' => [ - 'summary' => 'Queries network access control lists (ACLs).', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'CreateVpnConnection' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'readAndWrite', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'get', - 'riskType' => 'none', - 'chargeType' => 'free', - ], + 'systemTags' => ['operationType' => 'create', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ - 'name' => 'NetworkAclId', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the network ACL.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'nacl-a2do9e413e0spzasx****', - ], + 'schema' => ['description' => 'The ID of the region where the IPsec-VPN connection is created. You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-shanghai', 'title' => ''], ], [ - 'name' => 'RegionId', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the network ACL.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'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.'."\n" + ."\n" + .'> 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.'."\n", 'type' => 'string', 'required' => false, 'example' => '02fb3da4-130e-11e9-8e44-001****', 'title' => ''], ], [ - 'name' => 'RegionId', + 'name' => 'CustomerGatewayId', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the network ACL.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'When you create an IPsec-VPN connection in single-tunnel mode, this parameter is required.'."\n" + ."\n" + .'The ID of the customer gateway.'."\n", 'type' => 'string', 'required' => false, 'docRequired' => false, 'example' => 'cgw-p0w2jemrcj5u61un8****', 'title' => ''], ], [ - 'name' => 'ClientToken', + 'name' => 'VpnGatewayId', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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.'."\n" - ."\n" - .'> 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.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-426655440000', - ], + 'schema' => ['description' => 'The ID of the VPN gateway.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'vpn-bp1q8bgx4xnkm****', 'title' => ''], ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => 'F5905F9C-0161-4E72-9CB1-1F3F3CF6268A', - ], - 'NetworkAclAttribute' => [ - 'description' => 'The details of the network ACLs.'."\n", - 'type' => 'object', - 'properties' => [ - 'Status' => [ - 'description' => 'The association status of the resource. Valid values:'."\n" - ."\n" - .'* **Available**'."\n" - .'* **Modifying**'."\n", - 'type' => 'string', - 'example' => 'Available', - ], - 'VpcId' => [ - 'description' => 'The ID of the VPC to which the network ACL belongs.'."\n", - 'type' => 'string', - 'example' => 'vpc-a2d33rfpl72k5defr****', - ], - 'CreationTime' => [ - 'description' => 'The time when the network ACL was created.'."\n", - 'type' => 'string', - 'example' => '2021-12-25 11:33:27', - ], - 'Description' => [ - 'description' => 'The description of the network ACL.'."\n", - 'type' => 'string', - 'example' => 'This is my NetworkAcl.', - ], - 'NetworkAclName' => [ - 'description' => 'The name of the network ACL.'."\n", - 'type' => 'string', - 'example' => 'acl-1', - ], - 'NetworkAclId' => [ - 'description' => 'The ID of the network ACL.'."\n", - 'type' => 'string', - 'example' => 'nacl-a2do9e413e0spnhmj****', - ], - 'OwnerId' => [ - 'description' => 'The ID of the Alibaba Cloud account to which the network ACL belongs.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '253460731706911258', - ], - 'RegionId' => [ - 'description' => 'The region ID of the network ACL.'."\n", - 'type' => 'string', - 'example' => 'cn-hangzhou', - ], - 'IngressAclEntries' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'IngressAclEntry' => [ - 'description' => 'The information about the inbound rules of the network ACL.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'NetworkAclEntryId' => [ - 'description' => 'The ID of the inbound rule.'."\n", - 'type' => 'string', - 'example' => 'nae-a2dk86arlydmevfbg****', - ], - 'EntryType' => [ - 'description' => 'The type of the inbound rule.'."\n" - ."\n" - .'- **custom**'."\n" - ."\n" - .'- **system**', - 'type' => 'string', - 'example' => 'custom', - ], - 'NetworkAclEntryName' => [ - 'description' => 'The name of the inbound rule.'."\n", - 'type' => 'string', - 'example' => 'acl-3', - ], - 'Policy' => [ - 'description' => 'The action to be performed on network traffic that matches the rule. Valid values:'."\n" - ."\n" - .'* **accept**'."\n" - .'* **drop**'."\n", - 'type' => 'string', - 'example' => 'accept', - ], - 'Description' => [ - 'description' => 'The description of the inbound rule.'."\n", - 'type' => 'string', - 'example' => 'This is IngressAclEntries.', - ], - 'SourceCidrIp' => [ - 'description' => 'The source CIDR block.'."\n", - 'type' => 'string', - 'example' => '10.0.0.0/24', - ], - 'IpVersion' => [ - 'description' => 'The IP version. Valid values:'."\n" - ."\n" - .'* **IPv4**'."\n" - .'* **IPv6**'."\n", - 'type' => 'string', - 'example' => 'IPv4', - ], - 'Protocol' => [ - 'description' => 'The protocol type. Valid values:'."\n" - ."\n" - .'* **icmp**'."\n" - .'* **gre**'."\n" - .'* **tcp**'."\n" - .'* **udp**'."\n" - .'* **all**'."\n", - 'type' => 'string', - 'example' => 'all', - ], - 'Port' => [ - 'description' => 'The destination port range of the inbound traffic.'."\n" - ."\n" - .'* If the **protocol** of the inbound rule is set to **all**, **icmp**, or **gre**, the port range is -1/-1, which specifies all ports.'."\n" - .'* If the **protocol** of the inbound rule is set to **tcp** or **udp**, set the port range in the following format: **1/200** or **80/80**, which specifies port 1 to port 200 or port 80. Valid ports: **1** to **65535**.'."\n", - 'type' => 'string', - 'example' => '-1/-1', - ], - ], - ], - ], - ], - ], - 'EgressAclEntries' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'EgressAclEntry' => [ - 'description' => 'The information about the outbound rules of the network ACL.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'NetworkAclEntryId' => [ - 'description' => 'The ID of the outbound rule.'."\n", - 'type' => 'string', - 'example' => 'nae-a2d447uw4tillxdcv****', - ], - 'EntryType' => [ - 'description' => 'The type of the inbound rule.'."\n" - ."\n" - .'- **custom**'."\n" - ."\n" - .'- **system**', - 'type' => 'string', - 'example' => 'custom', - ], - 'NetworkAclEntryName' => [ - 'description' => 'The name of the outbound rule.'."\n", - 'type' => 'string', - 'example' => 'acl-2', - ], - 'Policy' => [ - 'description' => 'The action to be performed on network traffic that matches the rule. Valid values:'."\n" - ."\n" - .'* **accept**'."\n" - .'* **drop**'."\n", - 'type' => 'string', - 'example' => 'accept', - ], - 'Description' => [ - 'description' => 'The description of the outbound rule.'."\n", - 'type' => 'string', - 'example' => 'This is EgressAclEntries.', - ], - 'Protocol' => [ - 'description' => 'The protocol type. Valid values:'."\n" - ."\n" - .'* **icmp**'."\n" - .'* **gre**'."\n" - .'* **tcp**'."\n" - .'* **udp**'."\n" - .'* **all**'."\n", - 'type' => 'string', - 'example' => 'all', - ], - 'DestinationCidrIp' => [ - 'description' => 'The destination CIDR block.'."\n", - 'type' => 'string', - 'example' => '10.0.0.0/24', - ], - 'IpVersion' => [ - 'description' => 'The IP version. Valid values:'."\n" - ."\n" - .'* **IPv4**'."\n" - .'* **IPv6**'."\n", - 'type' => 'string', - 'example' => 'IPv4', - ], - 'Port' => [ - 'description' => 'The destination port range of the outbound traffic.'."\n" - ."\n" - .'* If the **protocol** of the outbound rule is set to **all**, **icmp**, or **gre**, the port range is -1/-1, which specified all ports.'."\n" - .'* If the **protocol** of the outbound rule is set to **tcp** or **udp**, set the port range in the following format: **1/200** or **80/80**, which specifies port 1 to port 200 or port 80. Valid values for a port: **1** to **65535**.'."\n", - 'type' => 'string', - 'example' => '-1/-1', - ], - ], - ], - ], - ], - ], - 'Resources' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'Resource' => [ - 'description' => 'The resources that are associated with the network ACL.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'Status' => [ - 'description' => 'The association status of the resource. Valid values:'."\n" - ."\n" - .'* **BINDED**'."\n" - .'* **BINDING**'."\n" - .'* **UNBINDING**'."\n", - 'type' => 'string', - 'example' => 'BINDED', - ], - 'ResourceType' => [ - 'description' => 'The type of resource with which you want to associate the network ACL. The value is set to **VSwitch**.'."\n", - 'type' => 'string', - 'example' => 'VSwitch', - ], - 'ResourceId' => [ - 'description' => 'The ID of the associated resource.'."\n", - 'type' => 'string', - 'example' => 'vsw-bp1de348lntdwxscd****', - ], - ], - ], - ], - ], - ], - 'Tags' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'Tag' => [ - 'description' => 'The information about the tags.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => 'The key of tag N added to the resource.'."\n", - 'type' => 'string', - 'example' => 'FinanceDept', - ], - 'Value' => [ - 'description' => 'The value of tag N added to the resource.'."\n", - 'type' => 'string', - 'example' => 'FinanceJoshua', - ], - ], - ], - ], - ], - ], - ], - ], - ], - ], + [ + 'name' => 'Name', + 'in' => 'query', + 'schema' => ['description' => 'The name of the IPsec-VPN connection.'."\n" + ."\n" + .'The name must be 1 to 100 characters in length and cannot start with `http://` or `https://`.'."\n", 'type' => 'string', 'required' => false, 'example' => 'IPsec', 'title' => ''], ], - ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'ParameterMissing.AliUid', - 'errorMessage' => 'ParameterMissing.AliUid', - ], - [ - 'errorCode' => 'ParameterMissing.Bid', - 'errorMessage' => 'ParameterMissing.Bid', - ], - [ - 'errorCode' => 'ParameterMissing.RegionId', - 'errorMessage' => 'ParameterMissing.RegionId', - ], - [ - 'errorCode' => 'ParameterEmpty.RegionId', - 'errorMessage' => 'ParameterEmpty.RegionId', - ], - [ - 'errorCode' => 'ParameterMissing.NetworkAclId', - 'errorMessage' => 'ParameterMissing.NetworkAclId', - ], - [ - 'errorCode' => 'ParameterEmpty.NetworkAclId', - 'errorMessage' => 'ParameterEmpty.NetworkAclId', - ], - [ - 'errorCode' => 'InvalidNetworkAcl.NotFound', - 'errorMessage' => 'The special Network Acl is not found.', - ], - [ - 'errorCode' => 'NotSupport.NetworkAcl', - 'errorMessage' => 'Network acl is not support now.', - ], + [ + 'name' => 'LocalSubnet', + 'in' => 'query', + 'schema' => ['description' => 'The CIDR block of the virtual private cloud (VPC) that needs to communicate with the on-premises database. The CIDR block is used in Phase 2 negotiations.'."\n" + ."\n" + .'Separate multiple CIDR blocks with commas (,). Example: 192.168.1.0/24,192.168.2.0/24.'."\n" + ."\n" + .'The following routing modes are supported:'."\n" + ."\n" + .'* If you set **LocalSubnet** and **RemoteSubnet** to 0.0.0.0/0, the routing mode of the IPsec-VPN connection is set to Destination Routing Mode.'."\n" + .'* If you set **LocalSubnet** and **RemoteSubnet** to specific CIDR blocks, the routing mode of the IPsec-VPN connection is set to Protected Data Flows.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '10.10.1.0/24,10.10.2.0/24', 'title' => ''], ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'The request processing has failed due to some unknown error.', - ], + [ + 'name' => 'RemoteSubnet', + 'in' => 'query', + 'schema' => ['description' => 'The CIDR block of the on-premises database that needs to communicate with the VPC. The CIDR block is used in Phase 2 negotiations.'."\n" + ."\n" + .'Separate multiple CIDR blocks with commas (,). Example: 192.168.3.0/24,192.168.4.0/24.'."\n" + ."\n" + .'The following routing modes are supported:'."\n" + ."\n" + .'* If you set **LocalSubnet** and **RemoteSubnet** to 0.0.0.0/0, the routing mode of the IPsec-VPN connection is set to Destination Routing Mode.'."\n" + .'* If you set **LocalSubnet** and **RemoteSubnet** to specific CIDR blocks, the routing mode of the IPsec-VPN connection is set to Protected Data Flows.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '10.10.3.0/24,10.10.4.0/24', 'title' => ''], ], - ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"F5905F9C-0161-4E72-9CB1-1F3F3CF6268A\\",\\n \\"NetworkAclAttribute\\": {\\n \\"Status\\": \\"Available\\",\\n \\"VpcId\\": \\"vpc-a2d33rfpl72k5defr****\\",\\n \\"CreationTime\\": \\"2021-12-25 11:33:27\\",\\n \\"Description\\": \\"This is my NetworkAcl.\\",\\n \\"NetworkAclName\\": \\"acl-1\\",\\n \\"NetworkAclId\\": \\"nacl-a2do9e413e0spnhmj****\\",\\n \\"OwnerId\\": 0,\\n \\"RegionId\\": \\"cn-hangzhou\\",\\n \\"IngressAclEntries\\": {\\n \\"IngressAclEntry\\": [\\n {\\n \\"NetworkAclEntryId\\": \\"nae-a2dk86arlydmevfbg****\\",\\n \\"EntryType\\": \\"custom\\",\\n \\"NetworkAclEntryName\\": \\"acl-3\\",\\n \\"Policy\\": \\"accept\\",\\n \\"Description\\": \\"This is IngressAclEntries.\\",\\n \\"SourceCidrIp\\": \\"10.0.0.0/24\\",\\n \\"IpVersion\\": \\"IPv4\\",\\n \\"Protocol\\": \\"all\\",\\n \\"Port\\": \\"-1/-1\\"\\n }\\n ]\\n },\\n \\"EgressAclEntries\\": {\\n \\"EgressAclEntry\\": [\\n {\\n \\"NetworkAclEntryId\\": \\"nae-a2d447uw4tillxdcv****\\",\\n \\"EntryType\\": \\"custom\\",\\n \\"NetworkAclEntryName\\": \\"acl-2\\",\\n \\"Policy\\": \\"accept\\",\\n \\"Description\\": \\"This is EgressAclEntries.\\",\\n \\"Protocol\\": \\"all\\",\\n \\"DestinationCidrIp\\": \\"10.0.0.0/24\\",\\n \\"IpVersion\\": \\"IPv4\\",\\n \\"Port\\": \\"-1/-1\\"\\n }\\n ]\\n },\\n \\"Resources\\": {\\n \\"Resource\\": [\\n {\\n \\"Status\\": \\"BINDED\\",\\n \\"ResourceType\\": \\"VSwitch\\",\\n \\"ResourceId\\": \\"vsw-bp1de348lntdwxscd****\\"\\n }\\n ]\\n },\\n \\"Tags\\": {\\n \\"Tag\\": [\\n {\\n \\"Key\\": \\"FinanceDept\\",\\n \\"Value\\": \\"FinanceJoshua\\"\\n }\\n ]\\n }\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n F5905F9C-0161-4E72-9CB1-1F3F3CF6268A\\n \\n Available\\n vpc-a2d33rfpl72k5defr****\\n 2021-12-25 11:33:27\\n This is my NetworkAcl.\\n acl-1\\n nacl-a2do9e413e0spnhmj****\\n 253460731706911260\\n cn-hangzhou\\n \\n nae-a2dk86arlydmevfbg****\\n acl-3\\n accept\\n This is IngressAclEntries.\\n 10.0.0.0/24\\n all\\n -1/-1\\n \\n \\n nae-a2d447uw4tillxdcv****\\n acl-2\\n accept\\n This is EgressAclEntries.\\n all\\n 10.0.0.0/24\\n -1/-1\\n \\n \\n BINDED\\n VSwitch\\n vsw-bp1de348lntdwxscd****\\n \\n \\n FinanceDept\\n FinanceJoshua\\n \\n \\n","errorExample":""}]', - 'title' => 'DescribeNetworkAclAttributes', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'DescribeNetworkAcls' => [ - 'summary' => 'Queries network ACLs.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ [ - 'AK' => [], + 'name' => 'EffectImmediately', + 'in' => 'query', + 'schema' => ['description' => 'Specifies whether to immediately start IPsec negotiations. Valid values:'."\n" + ."\n" + .'* **true**: immediately starts IPsec negotiations.'."\n" + .'* **false** (default): starts IPsec negotiations when inbound traffic is detected.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false', 'default' => 'false', 'title' => ''], ], - ], - 'operationType' => 'read', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'list', - 'riskType' => 'none', - 'chargeType' => 'free', - ], - 'parameters' => [ [ - 'name' => 'NetworkAclId', + 'name' => 'IkeConfig', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the network ACL.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'nacl-bp1lhl0taikrbgnh****', - ], + 'schema' => ['description' => 'This parameter is supported if you create an IPsec-VPN connection in single-tunnel mode.'."\n" + ."\n" + .'The configurations of Phase 1 negotiations:'."\n" + ."\n" + .'* **IkeConfig.Psk**: the pre-shared key that is used for identity authentication between the VPN gateway and the on-premises data center.'."\n" + ."\n" + .' * The key cannot contain spaces. The key must be 1 to 100 characters in length, and can contain digits, letters, and the following special characters: ``~!\\`@#$%^&*()_-+={}[]|;:\',.<>/?``'."\n" + ."\n" + .' * If you do not specify a pre-shared key, the system randomly generates a 16-bit string as the pre-shared key. You can call the [DescribeVpnConnection](~~2526951~~) operation to query the pre-shared key that is automatically generated by the system.'."\n" + ."\n" + .' > The pre-shared key of the IPsec-VPN connection must be the same as the authentication key of the on-premises data center. Otherwise, connections between the on-premises data center and the VPN gateway cannot be established.'."\n" + ."\n" + .'* **IkeConfig.IkeVersion**: the version of the Internet Key Exchange (IKE) protocol. Valid values: **ikev1** and **ikev2**. Default value: **ikev1**.'."\n" + ."\n" + .' Compared with IKEv1, IKEv2 simplifies the security association (SA) negotiation process and provides better support for scenarios with multiple CIDR blocks.'."\n" + ."\n" + .'* **IkeConfig.IkeMode**: the negotiation mode of IKE. Valid values: **main** and **aggressive**. Default value: **main**.'."\n" + ."\n" + .' * **main:** This mode offers higher security during negotiations.'."\n" + .' * **aggressive:** This mode is faster and has a higher success rate.'."\n" + ."\n" + .'* **IkeConfig.IkeEncAlg**: the encryption algorithm that is used in Phase 1 negotiations.'."\n" + ."\n" + .' Valid values: **aes**, **aes192**, **aes256**, **des**, and **3des**. Default value: **aes**.'."\n" + ."\n" + .'* **IkeConfig.IkeAuthAlg**: the authentication algorithm that is used in Phase 1 negotiations.'."\n" + ."\n" + .' Valid values: **md5**, **sha1**, **sha256**, **sha384**, and **sha512**. Default value: **md5**.'."\n" + ."\n" + .'* **IkeConfig.IkePfs**: the Diffie-Hellman key exchange algorithm that is used in Phase 1 negotiations. Valid values: **group1**, **group2**, **group5**, and **group14**. Default value: **group2**.'."\n" + ."\n" + .'* **IkeConfig.IkeLifetime**: the SA lifetime as a result of Phase 1 negotiations. Unit: seconds Valid values: **0** to **86400**. Default value: **86400**.'."\n" + ."\n" + .'* **IkeConfig.LocalId**: the identifier of the VPN gateway. It can be up to 100 characters in length and cannot contain space characters. The default value is the IP address of the VPN gateway.'."\n" + ."\n" + .'* **IkeConfig.RemoteId**: the identifier of the customer gateway. It can be up to 100 characters in length and cannot contain space characters. The default value is the IP address of the customer gateway.', 'type' => 'string', 'required' => false, 'example' => '{"Psk":"1234****","IkeVersion":"ikev1","IkeMode":"main","IkeEncAlg":"aes","IkeAuthAlg":"sha1","IkePfs":"group2","IkeLifetime":86400,"LocalId":"47.XX.XX.1","RemoteId":"47.XX.XX.2"}', 'title' => ''], ], [ - 'name' => 'NetworkAclName', + 'name' => 'IpsecConfig', 'in' => 'query', - 'schema' => [ - 'description' => 'The name of the network ACL.'."\n" - ."\n" - .'The name must be 1 to 128 characters in length, and cannot start with `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'acl-1', - ], + 'schema' => ['description' => 'This parameter is available if you create an IPsec-VPN connection in single-tunnel mode.'."\n" + ."\n" + .'The configurations of Phase 2 negotiations:'."\n" + ."\n" + .'* **IpsecConfig.IpsecEncAlg**: the encryption algorithm that is used in Phase 2 negotiations.'."\n" + ."\n" + .' Valid values: **aes**, **aes192**, **aes256**, **des**, and **3des**. Default value: **aes**.'."\n" + ."\n" + .'* **IpsecConfig. IpsecAuthAlg**: the authentication algorithm that is used in Phase 2 negotiations.'."\n" + ."\n" + .' Valid values: **md5**, **sha1**, **sha256**, **sha384**, and **sha512**. Default value: **md5**.'."\n" + ."\n" + .'* **IpsecConfig. IpsecPfs**: the DH key exchange algorithm that is used in Phase 2 negotiations. Valid values: **disabled**, **group1**, **group2**, **group5**, and **group14**. Default value: **group2**.'."\n" + ."\n" + .'* **IpsecConfig. IpsecLifetime**: the SA lifetime that is determined by Phase 2 negotiations. Unit: seconds. Valid values: **0** to **86400**. Default value: **86400**.'."\n", 'type' => 'string', 'required' => false, 'example' => '{"IpsecEncAlg":"aes","IpsecAuthAlg":"sha1","IpsecPfs":"group2","IpsecLifetime":86400}', 'title' => ''], ], [ - 'name' => 'VpcId', + 'name' => 'HealthCheckConfig', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the VPC to which the network ACL belongs.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'vpc-m5ebpc2xh64mqm27e****', - ], + 'schema' => ['description' => 'This parameter is available if you create an IPsec-VPN connection in single-tunnel mode.'."\n" + ."\n" + .'The health check configuration:'."\n" + ."\n" + .'* **HealthCheckConfig.enable**: specifies whether to enable health checks. Valid values: **true** and **false**. Default value: false.'."\n" + .'* **HealthCheckConfig.dip**: the destination IP address configured for health checks.'."\n" + .'* **HealthCheckConfig.sip:** the source IP address that is used for health checks.'."\n" + .'* **HealthCheckConfig.interval**: the time interval of health check retries. Unit: seconds. Default value: **3**.'."\n" + .'* **HealthCheckConfig.retry**: the maximum number of health check retries. Default value: **3**.'."\n", 'type' => 'string', 'required' => false, 'example' => '{"enable":"true","dip":"192.168.10.1","sip":"10.10.1.1","interval":"3","retry":"3"}', 'title' => ''], ], [ - 'name' => 'ResourceType', + 'name' => 'AutoConfigRoute', 'in' => 'query', - 'schema' => [ - 'description' => 'The type of the associated instance. Set the value to **VSwitch**.'."\n" - ."\n" - .'This parameter is valid only if **ResourceType** and **ResourceId** are both specified.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'VSwitch', - ], + 'schema' => ['description' => 'Specifies whether to automatically configure routes. Valid values:'."\n" + ."\n" + .'* **true** (default)'."\n" + .'* **false**'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'true', 'title' => ''], ], [ - 'name' => 'ResourceId', + 'name' => 'EnableDpd', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the associated instance.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'vsw-bp1de348lntdwnhbg****', - ], + 'schema' => ['description' => 'This parameter is available if you create an IPsec-VPN connection in single-tunnel mode.'."\n" + ."\n" + .'Specifies whether to enable the dead peer detection (DPD) feature. Valid values:'."\n" + ."\n" + .'* **true** (default) The initiator of the IPsec-VPN connection sends DPD packets to verify the existence and availability of the peer. If no feedback is received from the peer within a specified period of time, the connection fails. ISAKMP SAs and IPsec SAs are deleted. The IPsec tunnel is also deleted.'."\n" + .'* **false**'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'true', 'title' => ''], ], [ - 'name' => 'PageNumber', + 'name' => 'EnableNatTraversal', 'in' => 'query', - 'schema' => [ - 'description' => 'The page number. Default value: **1**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', - ], + 'schema' => ['description' => 'This parameter is available if you create an IPsec-VPN connection in single-tunnel mode.'."\n" + ."\n" + .'Specifies whether to enable NAT traversal. Valid values:'."\n" + ."\n" + .'* **true** (default) After NAT traversal is enabled, the initiator does not check the UDP ports during IKE negotiations and can automatically discover NAT gateway devices along the VPN tunnel.'."\n" + .'* **false**'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'true', 'title' => ''], ], [ - 'name' => 'PageSize', + 'name' => 'BgpConfig', 'in' => 'query', - 'schema' => [ - 'description' => 'The number of entries per page. Maximum value: **50**. Default value: **10**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '10', - ], + 'schema' => ['description' => 'This parameter is supported if you create an IPsec-VPN connection in single-tunnel mode.'."\n" + ."\n" + .'BGP configuration:'."\n" + ."\n" + .'* **BgpConfig.EnableBgp**: specifies whether to enable BGP. Valid values: **true** and **false** (default).'."\n" + ."\n" + .'* **BgpConfig.LocalAsn:** the autonomous system number (ASN) on the Alibaba Cloud side. Valid values: **1** to **4294967295**. Default value: **45104**.'."\n" + ."\n" + .' You can enter a value in two segments separated by a period (.). Each segment is 16 bits in length. Enter the number in each segment in decimal format.'."\n" + ."\n" + .' For example, if you enter 123.456, the ASN is 8061384. The ASN is calculated by using the following formula: 123 × 65536 + 456 = 8061384.'."\n" + ."\n" + .'* **BgpConfig.TunnelCidr**: The CIDR block of the IPsec tunnel. The CIDR block must fall within 169.254.0.0/16 and the mask of the CIDR block must be 30 bits in length. The CIDR block cannot be 169.254.0.0/30, 169.254.1.0/30, 169.254.2.0/30, 169.254.3.0/30, 169.254.4.0/30, 169.254.5.0/30, 169.254.6.0/30, or 169.254.169.252/30.'."\n" + ."\n" + .' > The CIDR block of the IPsec tunnel for each IPsec-VPN connection on a VPN gateway must be unique.'."\n" + ."\n" + .'* **LocalBgpIp**: the BGP address on the Alibaba Cloud side. It must be an IP address that falls within the CIDR block of the IPsec tunnel.'."\n" + ."\n" + .'> - Before you add BGP configurations, we recommend that you learn about how BGP works and the limits. For more information, see [Configure BGP dynamic routing](~~2638220~~).'."\n" + .'> - We recommend that you use a private ASN to establish BGP connections to Alibaba Cloud. Refer to the relevant documentation for the private ASN range.', 'type' => 'string', 'required' => false, 'example' => '{"EnableBgp":"true","LocalAsn":"45104","TunnelCidr":"169.254.11.0/30","LocalBgpIp":"169.254.11.1"}', 'title' => ''], ], [ - 'name' => 'RegionId', + 'name' => 'RemoteCaCertificate', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the network ACL.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'This parameter is available if you create an IPsec-VPN connection in single-tunnel mode.'."\n" + ."\n" + .'The certificate authority (CA) certificate. If the VPN gateway is of the ShangMi (SM) type, you need to configure a CA certificate for the peer gateway device.'."\n" + ."\n" + .'* If an SM VPN gateway is used to create the IPsec-VPN connection, this parameter is required.'."\n" + .'* If a standard VPN gateway is used to create the IPsec-VPN connection, leave this parameter empty.'."\n", 'type' => 'string', 'required' => false, 'example' => '-----BEGIN CERTIFICATE----- MIIB7zCCAZW**** -----END CERTIFICATE-----', 'title' => ''], ], [ 'name' => 'Tags', 'in' => 'query', 'style' => 'repeatList', 'schema' => [ - 'description' => 'The tag list.'."\n", + 'description' => 'The tag value.'."\n" + ."\n" + .'The tag value can be an empty string and cannot exceed 128 characters in length. It cannot start with `aliyun` or `acs:`, and cannot contain `http://` or `https://`.'."\n" + ."\n" + .'Each tag key corresponds to one tag value. You can specify up to 20 tag values in each call.', 'type' => 'array', 'items' => [ - 'description' => '', + 'description' => 'The tag value.', 'type' => 'object', 'properties' => [ - 'Key' => [ - 'description' => 'The key of tag N to add to the resource. You can specify up to 20 tag keys. The tag key cannot be an empty string.'."\n" - ."\n" - .'The tag key can be up to 128 characters in length. It cannot start with `aliyun` or `acs:`, and cannot contain `http://` or `https://`.'."\n", - 'type' => 'string', + 'Key' => ['description' => 'The tag key. The tag key cannot be an empty string.'."\n" + ."\n" + .'It can be at most 64 characters in length, and cannot contain `http://` or `https://`. It cannot start with `aliyun` or `acs:`.'."\n" + ."\n" + .'You can specify at most 20 tag keys in each call.'."\n", 'type' => 'string', 'required' => false, 'example' => 'TagKey', 'title' => ''], + 'Value' => ['description' => 'The tag value.'."\n" + ."\n" + .'The tag value can be an empty string and cannot exceed 128 characters in length. It cannot start with `aliyun` or `acs:`, and cannot contain `http://` or `https://`.'."\n" + ."\n" + .'Each tag key corresponds to one tag value. You can specify at most 20 tag values in each call.'."\n", 'type' => 'string', 'required' => false, 'example' => 'TagValue', 'title' => ''], + ], + 'required' => false, + 'title' => '', + 'example' => '', + ], + 'required' => false, + 'maxItems' => 21, + 'title' => '', + 'example' => '', + ], + ], + [ + 'name' => 'TunnelOptionsSpecification', + 'in' => 'formData', + 'allowEmptyValue' => true, + 'style' => 'flat', + 'schema' => [ + 'description' => 'The tunnel configurations.'."\n" + ."\n" + .'* You can specify parameters in the **TunnelOptionsSpecification** array when you create an IPsec-VPN connection in dual tunnel mode.'."\n" + .'* When you create an IPsec-VPN connection in dual tunnel mode, you must add configurations of the active and standby tunnels for the IPsec-VPN connection. Each IPsec-VPN connection supports only one active tunnel and one standby tunnel.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The tunnel configuration.'."\n", + 'type' => 'object', + 'properties' => [ + 'CustomerGatewayId' => ['description' => 'The ID of the customer gateway that is associated with the tunnel.'."\n" + ."\n" + .'> - This parameter is required when you create an IPsec-VPN connection in dual-tunnel mode.'."\n" + .'> - You can specify parameters in the **TunnelOptionsSpecification** array when you create an IPsec-VPN connection in dual tunnel mode.'."\n" + .'> - When you create an IPsec-VPN connection in dual tunnel mode, you must add configurations of the active and standby tunnels for the IPsec-VPN connection. Each IPsec-VPN connection supports only one active tunnel and one standby tunnel.', 'type' => 'string', 'required' => false, 'example' => 'cgw-p0wy363lucf1uyae8****', 'title' => ''], + 'EnableDpd' => ['description' => 'Specifies whether to enable the Dead Peer Detection (DPD) feature for the tunnel. Valid values:'."\n" + ."\n" + .'* **true** (default): enables DPD. The initiator of the IPsec-VPN connection sends DPD packets to check the existence and availability of the peer. If no feedback is received from the peer within the specified period of time, the connection fails. In this case, ISAKMP SA and IPsec SA are deleted. The security tunnel is also deleted.'."\n" + .'* **false**: disables DPD. The initiator of the IPsec-VPN connection does not send DPD packets.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'true', 'title' => ''], + 'EnableNatTraversal' => ['description' => 'Specifies whether to enable NAT traversal for the tunnel. Valid values:'."\n" + ."\n" + .'* **true** (default): enables NAT traversal. After NAT traversal is enabled, the initiator does not check the UDP ports during IKE negotiations and can automatically discover NAT gateway devices along the IPsec-VPN tunnel.'."\n" + .'* **false**: disables NAT traversal.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'true', 'title' => ''], + 'RemoteCaCertificate' => ['description' => 'If the VPN gateway uses an SM certificate, you need to configure the CA certificate used by the IPsec peer.'."\n" + ."\n" + .'* If the VPN gateway uses an SM certificate, this parameter is required.'."\n" + .'* If the VPN gateway does not use an SM certificate, leave this parameter empty.'."\n", 'type' => 'string', 'required' => false, 'example' => '-----BEGIN CERTIFICATE----- MIIB7zCCAZW**** -----END CERTIFICATE-----', 'title' => ''], + 'Role' => ['description' => 'The role of the tunnel. Valid values:'."\n" + ."\n" + .'* **master**: The tunnel is an active tunnel.'."\n" + .'* **slave**: The tunnel is a standby tunnel.'."\n", 'type' => 'string', 'required' => false, 'example' => 'master', 'title' => ''], + 'TunnelBgpConfig' => [ + 'description' => 'The Border Gateway Protocol (BGP) configurations of the tunnel.'."\n", + 'type' => 'object', + 'properties' => [ + 'LocalAsn' => ['description' => 'The autonomous system number (ASN) of the tunnel on the Alibaba Cloud side. Valid values: **1** to **4294967295**. Default value: **45104**.'."\n" + ."\n" + .'> - If you set **EnableTunnelsBgp** to **true**, you must set this parameter.'."\n" + .'> - Before you add BGP configurations, we recommend that you learn about how BGP dynamic routing works and the limits. For more information, see [Configure BGP dynamic routing](~~2638220~~).'."\n" + .'> - We recommend that you use a private ASN to establish BGP connections to Alibaba Cloud. For information about the range of private ASNs, see the relevant documentation.', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '65530', 'title' => ''], + 'LocalBgpIp' => ['description' => 'The BGP IP address of the tunnel on the Alibaba Cloud side. The address is an IP address that falls within the BGP CIDR block.'."\n", 'type' => 'string', 'required' => false, 'example' => '169.254.10.1', 'title' => ''], + 'TunnelCidr' => ['description' => 'The BGP CIDR block of the tunnel. The CIDR block must fall within 169.254.0.0/16 and the mask of the CIDR block must be 30 bits in length. The CIDR block cannot be 169.254.0.0/30, 169.254.1.0/30, 169.254.2.0/30, 169.254.3.0/30, 169.254.4.0/30, 169.254.5.0/30, 169.254.6.0/30, or 169.254.169.252/30.'."\n" + ."\n" + .'> The BGP CIDR block of each tunnel must be unique on a VPN gateway.'."\n", 'type' => 'string', 'required' => false, 'example' => '169.254.10.0/30', 'title' => ''], + ], 'required' => false, - 'example' => 'FinanceDept', + 'title' => '', + 'example' => '', ], - 'Value' => [ - 'description' => '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.'."\n" - ."\n" - .'The tag value can be up to 128 characters in length and cannot contain `http://` or `https://`. The tag value cannot start with `aliyun` or `acs:`.'."\n", - 'type' => 'string', + 'TunnelIkeConfig' => [ + 'description' => 'The configurations of Phase 1 negotiations.'."\n", + 'type' => 'object', + 'properties' => [ + 'IkeAuthAlg' => ['description' => 'The authentication algorithm that is used in Phase 1 negotiations.'."\n" + ."\n" + .'Valid values: **md5**, **sha1**, **sha256**, **sha384**, and **sha512**. Default value: **md5**.'."\n", 'type' => 'string', 'required' => false, 'example' => 'md5', 'title' => ''], + 'IkeEncAlg' => ['description' => 'The encryption algorithm that is used in Phase 1 negotiations.'."\n" + ."\n" + .'Valid values: **aes**, **aes192**, **aes256**, **des**, and **3des**. Default value: **aes**.'."\n", 'type' => 'string', 'required' => false, 'example' => 'aes', 'title' => ''], + 'IkeLifetime' => ['description' => 'The SA lifetime as a result of Phase 1 negotiations. Unit: seconds'."\n" + ."\n" + .'Valid values: **0** to **86400**. Default value: **86400**.'."\n", 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '86400', 'title' => ''], + 'IkeMode' => ['description' => 'The negotiation mode of IKE. Valid values: **main** and **aggressive**. Default value: **main**.'."\n" + ."\n" + .'* **main:** This mode offers higher security during negotiations.'."\n" + .'* **aggressive:** This mode is faster and has a higher success rate.'."\n", 'type' => 'string', 'required' => false, 'example' => 'main', 'title' => ''], + 'IkePfs' => ['description' => 'The Diffie-Hellman key exchange algorithm that is used in Phase 1 negotiations. Default value: **group2**.\\'."\n" + .'Valid values: **group1**, **group2**, **group5**, and **group14**.'."\n", 'type' => 'string', 'required' => false, 'example' => 'group2', 'title' => ''], + 'IkeVersion' => ['description' => 'The version of the IKE protocol. Valid values: **ikev1** and **ikev2**. Default value: **ikev1**.'."\n" + ."\n" + .'Compared with IKEv1, IKEv2 simplifies the SA negotiation process and provides better support for scenarios with multiple CIDR blocks.'."\n", 'type' => 'string', 'required' => false, 'example' => 'ikev1', 'title' => ''], + 'LocalId' => ['description' => 'The identifier of the tunnel on the Alibaba Cloud side, which is used in Phase 1 negotiations. The identifier cannot exceed 100 characters in length and cannot contain space characters. The default value is the IP address of the tunnel.'."\n" + ."\n" + .'**LocalId** supports fully qualified domain names (FQDNs). If you use an FQDN, we recommend that you set the negotiation mode to **aggressive**.'."\n", 'type' => 'string', 'required' => false, 'example' => '47.21.XX.XX', 'title' => ''], + 'Psk' => ['description' => 'The pre-shared key that is used for identity authentication between the tunnel and the tunnel peer.'."\n" + ."\n" + .'* The key cannot contain spaces. The key must be 1 to 100 characters in length, and can contain digits, letters, and the following special characters: ``~!\\`@#$%^&*()_-+={}[]|;:\',.<>/?``'."\n" + .'* If you do not specify a pre-shared key, the system randomly generates a 16-bit string as the pre-shared key. You can call the [DescribeVpnConnection](~~2526951~~) operation to query the pre-shared key that is automatically generated by the system.'."\n" + ."\n" + .'> The tunnel and the tunnel peer must use the same pre-shared key. Otherwise, the tunnel cannot be established.'."\n", 'type' => 'string', 'required' => false, 'example' => '123456****', 'title' => ''], + 'RemoteId' => ['description' => 'The identifier of the tunnel peer, which is used in Phase 1 negotiations. The identifier cannot exceed 100 characters in length and cannot contain space characters. The default value is the IP address of the customer gateway that is associated with the tunnel.'."\n" + ."\n" + .'**RemoteId** supports FQDNs. If you use an FQDN, we recommend that you set the negotiation mode to **aggressive**.'."\n", 'type' => 'string', 'required' => false, 'example' => '47.42.XX.XX', 'title' => ''], + ], + 'required' => false, + 'title' => '', + 'example' => '', + ], + 'TunnelIpsecConfig' => [ + 'description' => 'The configurations of Phase 2 negotiations.'."\n", + 'type' => 'object', + 'properties' => [ + 'IpsecAuthAlg' => ['description' => 'The authentication algorithm that is used in Phase 2 negotiations.'."\n" + ."\n" + .'Valid values: **md5**, **sha1**, **sha256**, **sha384**, and **sha512**. Default value: **md5**.'."\n", 'type' => 'string', 'required' => false, 'example' => 'md5', 'title' => ''], + 'IpsecEncAlg' => ['description' => 'The encryption algorithm that is used in Phase 2 negotiations.'."\n" + ."\n" + .'Valid values: **aes**, **aes192**, **aes256**, **des**, and **3des**. Default value: **aes**.'."\n", 'type' => 'string', 'required' => false, 'example' => 'aes', 'title' => ''], + 'IpsecLifetime' => ['description' => 'The SA lifetime as a result of Phase 2 negotiations. Unit: seconds'."\n" + ."\n" + .'Valid values: **0** to **86400**. Default value: **86400**.'."\n", 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '86400', 'title' => ''], + 'IpsecPfs' => ['description' => 'The Diffie-Hellman key exchange algorithm that is used in Phase 2 negotiations. Default value: **group2**.'."\n" + ."\n" + .'Valid values: **disabled**, **group1**, **group2**, **group5**, and **group14**.'."\n", 'type' => 'string', 'required' => false, 'example' => 'group2', 'title' => ''], + ], 'required' => false, - 'example' => 'FinanceJoshua', + 'title' => '', + 'example' => '', ], ], 'required' => false, + 'title' => '', + 'example' => '', ], 'required' => false, - 'maxItems' => 21, + 'title' => '', + 'example' => '', ], ], [ - 'name' => 'RegionId', + 'name' => 'EnableTunnelsBgp', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the network ACL.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], + 'allowEmptyValue' => true, + 'schema' => ['description' => 'This parameter is available if you create an IPsec-VPN connection in dual-tunnel mode.'."\n" + ."\n" + .'Specifies whether to enable the BGP feature for the tunnel. Valid values: **true** and **false**. Default value: false.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'true', 'title' => ''], ], [ - 'name' => 'ClientToken', + 'name' => 'DryRun', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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.'."\n" - ."\n" - .'> 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.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-426655440000', - ], + 'schema' => ['description' => 'Specifies whether to perform a dry run of the request. Valid values:'."\n" + ."\n" + .'- **true**: Sends a dry run request without creating the IPsec connection. The system checks whether required parameters are specified, whether the request format is valid, and whether the request complies with service limits. If the check fails, an error is returned. If the check passes, the error code `DryRunOperation` is returned.'."\n" + .'- **false** (default): Sends a normal request. If the check passes, the IPsec connection is created immediately.', 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => '', + 'description' => 'The returned data.'."\n", 'type' => 'object', 'properties' => [ - 'PageSize' => [ - 'description' => 'The number of entries per page.'."\n", - 'type' => 'string', - 'example' => '10', - ], - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => 'F7DDDC17-FA06-4AC2-8F35-59D2470FCFC1', - ], - 'PageNumber' => [ - 'description' => 'The page number.'."\n", - 'type' => 'string', - 'example' => '1', - ], - 'TotalCount' => [ - 'description' => 'The number of entries returned.'."\n", - 'type' => 'string', - 'example' => '2', - ], - 'NetworkAcls' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'NetworkAcl' => [ - 'description' => 'The details of the network ACLs.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'Status' => [ - 'description' => 'The status of the network ACL. Valid values:'."\n" - ."\n" - .'* **Available**'."\n" - .'* **Modifying**'."\n", - 'type' => 'string', - 'example' => 'Available', - ], - 'VpcId' => [ - 'description' => 'The ID of the associated VPC.'."\n", - 'type' => 'string', - 'example' => 'vpc-m5ebpc2xh64mqm27e****', - ], - 'CreationTime' => [ - 'description' => 'The time when the network ACL was created.'."\n", - 'type' => 'string', - 'example' => '2021-12-25 11:44:17', - ], - 'Description' => [ - 'description' => 'The description of the network ACL.'."\n", - 'type' => 'string', - 'example' => 'This is my NetworkAcl.', - ], - 'NetworkAclName' => [ - 'description' => 'The name of the network ACL.'."\n", - 'type' => 'string', - 'example' => 'acl-1', - ], - 'NetworkAclId' => [ - 'description' => 'The ID of the network ACL.'."\n", - 'type' => 'string', - 'example' => 'nacl-a2do9e413e0spxscd****', - ], - 'OwnerId' => [ - 'description' => 'The ID of the Alibaba Cloud account to which the network ACL belongs.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '253460731706911258', - ], - 'RegionId' => [ - 'description' => 'The region ID of the network ACL.'."\n", - 'type' => 'string', - 'example' => 'cn-hangzhou', - ], - 'IngressAclEntries' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'IngressAclEntry' => [ - 'description' => 'The configurations of the inbound rules.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'NetworkAclEntryId' => [ - 'description' => 'The ID of the inbound rule.'."\n", - 'type' => 'string', - 'example' => 'nae-a2dk86arlydmezasw****', - ], - 'EntryType' => [ - 'description' => 'The type of the inbound rule.'."\n" - ."\n" - .'- **custom**'."\n" - ."\n" - .'- **system**', - 'type' => 'string', - 'example' => 'custom', - ], - 'NetworkAclEntryName' => [ - 'description' => 'The name of the inbound rule.'."\n", - 'type' => 'string', - 'example' => 'acl-3 ', - ], - 'Policy' => [ - 'description' => 'The action to be performed on network traffic that matches the rule. Valid values:'."\n" - ."\n" - .'* **accept**'."\n" - .'* **drop**'."\n", - 'type' => 'string', - 'example' => 'accept', - ], - 'Description' => [ - 'description' => 'The description of the inbound rule.'."\n", - 'type' => 'string', - 'example' => 'This is IngressAclEntries.', - ], - 'SourceCidrIp' => [ - 'description' => 'The source CIDR block.'."\n", - 'type' => 'string', - 'example' => '10.0.0.0/24 ', - ], - 'IpVersion' => [ - 'description' => 'The IP version. '."\n" - ."\n" - .'* **IPv4**'."\n" - .'* **IPv6**', - 'type' => 'string', - 'example' => 'IPv4', - ], - 'Protocol' => [ - 'description' => 'The protocol. Valid values:'."\n" - ."\n" - .'* **icmp**'."\n" - .'* **gre**'."\n" - .'* **tcp**'."\n" - .'* **udp**'."\n" - .'* **all**'."\n", - 'type' => 'string', - 'example' => 'all', - ], - 'Port' => [ - 'description' => 'The destination port range of the inbound traffic.'."\n" - ."\n" - .'* If the **protocol** of the inbound rule is set to **all**, **icmp**, or **gre**, the port range is -1/-1, which specifies all ports.'."\n" - .'* If the **protocol** of the inbound rule is set to **tcp** or **udp**, set the port range in the following format: **1/200** or **80/80**, which specifies port 1 to port 200 or port 80. Valid ports: **1** to **65535**.'."\n", - 'type' => 'string', - 'example' => '-1/-1 ', - ], - ], - ], - ], - ], - ], - 'EgressAclEntries' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'EgressAclEntry' => [ - 'description' => 'The outbound rules.'."\n", - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'NetworkAclEntryId' => [ - 'description' => 'The ID of the outbound rule.'."\n", - 'type' => 'string', - 'example' => 'nae-a2d447uw4tillfvgb****', - ], - 'EntryType' => [ - 'description' => 'The type of the inbound rule.'."\n" - ."\n" - .'- **custom**'."\n" - ."\n" - .'- **system**', - 'type' => 'string', - 'example' => 'custom', - ], - 'NetworkAclEntryName' => [ - 'description' => 'The name of the outbound rule.'."\n", - 'type' => 'string', - 'example' => 'acl-2 ', - ], - 'Policy' => [ - 'description' => 'The action to be performed on network traffic that matches the rule. Valid values:'."\n" - ."\n" - .'* **accept**'."\n" - .'* **drop**'."\n", - 'type' => 'string', - 'example' => 'accept', - ], - 'Description' => [ - 'description' => 'The description of the outbound rule.'."\n", - 'type' => 'string', - 'example' => 'This is EgressAclEntries.', - ], - 'Protocol' => [ - 'description' => 'The protocol. Valid values:'."\n" - ."\n" - .'* **icmp**'."\n" - .'* **gre**'."\n" - .'* **tcp**'."\n" - .'* **udp**'."\n" - .'* **all**'."\n", - 'type' => 'string', - 'example' => 'all', - ], - 'DestinationCidrIp' => [ - 'description' => 'The destination CIDR block.'."\n", - 'type' => 'string', - 'example' => '10.0.0.0/24 ', - ], - 'IpVersion' => [ - 'description' => 'The IP version. '."\n" - ."\n" - .'* **IPv4**'."\n" - .'* **IPv6**', - 'type' => 'string', - 'example' => 'IPV4', - ], - 'Port' => [ - 'description' => 'The destination port range of the outbound traffic.'."\n" - ."\n" - .'* If the **protocol** of the outbound rule is set to **all**, **icmp**, or **gre**, the port range is -1/-1, which specified all ports.'."\n" - .'* If the **protocol** of the outbound rule is set to **tcp** or **udp**, set the port range in the following format: **1/200** or **80/80**, which specifies port 1 to port 200 or port 80. Valid values for a port: **1** to **65535**.'."\n", - 'type' => 'string', - 'example' => '-1/-1 ', - ], - ], - ], - ], - ], - ], - 'Resources' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'Resource' => [ - 'description' => 'The resources that are associated with the network ACL.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'Status' => [ - 'description' => 'The association status of the resource. Valid values:'."\n" - ."\n" - .'* **BINDED**'."\n" - .'* **BINDING**'."\n" - .'* **UNBINDING**'."\n", - 'type' => 'string', - 'example' => 'BINDED', - ], - 'ResourceType' => [ - 'description' => 'The type of resource with which you want to associate the network ACL.'."\n", - 'type' => 'string', - 'example' => 'VSwitch', - ], - 'ResourceId' => [ - 'description' => 'The ID of the associated resource.'."\n", - 'type' => 'string', - 'example' => 'vsw-bp1de348lntdwcdf****', - ], - ], - ], - ], - ], - ], - 'Tags' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'Tag' => [ - 'description' => 'The information about the tags.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => 'The key of tag N added to the resource.'."\n", - 'type' => 'string', - 'example' => 'FinanceDept', - ], - 'Value' => [ - 'description' => 'The value of tag N added to the resource.'."\n", - 'type' => 'string', - 'example' => 'FinanceJoshua', - ], - ], - ], - ], - ], - ], - ], - ], - ], - ], - ], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '082AD562-B8DB-4BB2-861F-DA1FCA01FD76', 'title' => ''], + 'VpnConnectionId' => ['description' => 'The ID of the IPsec-VPN connection.'."\n", 'type' => 'string', 'example' => 'vco-bp15oes1py4i6****', 'title' => ''], + 'Name' => ['description' => 'The name of the IPsec-VPN connection.'."\n", 'type' => 'string', 'example' => 'test', 'title' => ''], + 'CreateTime' => ['description' => 'The timestamp generated when the IPsec-VPN connection was established. Unit: milliseconds.'."\n" + ."\n" + .'This value is a UNIX timestamp representing the number of milliseconds that have elapsed since the epoch time January 1, 1970, 00:00:00 UTC.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '1544666102000', 'title' => ''], ], + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'ParameterMissing.AliUid', - 'errorMessage' => 'ParameterMissing.AliUid', - ], - [ - 'errorCode' => 'ParameterMissing.Bid', - 'errorMessage' => 'ParameterMissing.Bid', - ], - [ - 'errorCode' => 'ParameterMissing.RegionId', - 'errorMessage' => 'ParameterMissing.RegionId', - ], - [ - 'errorCode' => 'ParameterEmpty.RegionId', - 'errorMessage' => 'ParameterEmpty.RegionId', - ], - [ - 'errorCode' => 'NotSupport.NetworkAcl', - 'errorMessage' => 'Network acl is not support now.', - ], + ['errorCode' => 'Resource.QuotaFull', 'errorMessage' => 'The quota of resource is full', 'description' => ''], + ['errorCode' => 'InvalidVpnConnection.AlreadyExists', 'errorMessage' => 'Vpn connection already exists.', 'description' => ''], + ['errorCode' => 'VpnGateway.Configuring', 'errorMessage' => 'The specified service is configuring.', 'description' => ''], + ['errorCode' => 'VpnGateway.FinancialLocked', 'errorMessage' => 'The specified service is financial locked.', 'description' => ''], + ['errorCode' => 'VpnGateway.IpsecVpnDisabled', 'errorMessage' => 'The vpn gateway does not enable IPSec VPN.', 'description' => 'The IPsec-VPN feature is not enabled for the VPN gateway.'], + ['errorCode' => 'VpnRouteEntry.AlreadyExists', 'errorMessage' => 'The specified route entry is already exist.', 'description' => 'The route already exists.'], + ['errorCode' => 'VpnRouteEntry.Conflict', 'errorMessage' => 'The specified route entry has conflict.', 'description' => 'Route conflicts exist.'], + ['errorCode' => 'NotSupportVpnConnectionParameter.IpsecPfs', 'errorMessage' => 'The specified vpn connection ipsec Ipsec Pfs is not support.', 'description' => 'The PFS parameter set for the IPsec-VPN connection is not supported.'], + ['errorCode' => 'NotSupportVpnConnectionParameter.IpsecAuthAlg', 'errorMessage' => 'The specified vpn connection ipsec Auth Alg is not support.', 'description' => 'The authentication algorithm specified for the IPsec-VPN connection is not supported.'], + ['errorCode' => 'VpnRouteEntry.ConflictSSL', 'errorMessage' => 'The specified route entry has conflict with SSL client.', 'description' => 'The route conflicts with the SSL client.'], + ['errorCode' => 'VpnRouteEntry.BackupRoute', 'errorMessage' => 'Validate backup route entry failed.', 'description' => 'Active/standby routes failed authentication.'], + ['errorCode' => 'VpnRouteEntry.InvalidWeight', 'errorMessage' => 'Invalid route entry weight value.', 'description' => 'The weight specified for the route is invalid.'], + ['errorCode' => 'InvalidParameter.VpnConnectionName', 'errorMessage' => 'The specified vpn connection name is invalid.', 'description' => 'The VPN connection name does not meet the requirements.'], + ['errorCode' => 'OperationUnsupported.SetDPD', 'errorMessage' => 'Current version of the VPN does not support setting DPD.', 'description' => 'The VPN gateway version does not support DPD.'], + ['errorCode' => 'OperationUnsupported.SetNatTraversal', 'errorMessage' => 'Current version of the VPN does not support setting NAT traversal.', 'description' => 'The VPN gateway version does not support NAT traversal.'], + ['errorCode' => 'QuotaExceeded.PolicyBasedRoute', 'errorMessage' => 'The maximum number of policy-based routes is exceeded. Existing routes: %s. Routes to be created: %s. Maximum routes: %s.', 'description' => 'The quota of policy-based routes is reached. Existing routes: %s. Routes to be created: %s. Quota: %s.'], + ['errorCode' => 'MissingParameter.TunnelCidr', 'errorMessage' => 'The parameter TunnelCidr is mandatory when BGP is enabled.', 'description' => 'You must specify the tunnel CIDR block when you enable BGP.'], + ['errorCode' => 'OperationUnsupported.EnableBgp', 'errorMessage' => 'Current version of the VPN does not support enable BGP.', 'description' => 'The current version of the VPN gateway does not support BGP.'], + ['errorCode' => 'MissingParam.CustomerGatewayAsn', 'errorMessage' => 'Asn of customer gateway is mandatory when BGP is enabled.', 'description' => 'The ASN of the customer gateway cannot be empty when you enable BGP.'], + ['errorCode' => 'IllegalParam.LocalAsn', 'errorMessage' => 'The specified LocalAsn is invalid.', 'description' => 'The local ASN is invalid.'], + ['errorCode' => 'IllegalParam.BgpConfig', 'errorMessage' => 'The specified BgpConfig is invalid.', 'description' => 'The BGP configuration is invalid.'], + ['errorCode' => 'IllegalParam.EnableBgp', 'errorMessage' => 'VPN connection must enable BGP when VPN gateway has enabled BGP.', 'description' => 'The error message returned because the VPN connection must use BGP if BGP is enabled for the VPN gateway.'], + ['errorCode' => 'IllegalParam.TunnelCidr', 'errorMessage' => 'The specified TunnelCidr is invalid.', 'description' => 'The TunnelCidr parameter is set to an invalid value.'], + ['errorCode' => 'InvalidLocalBgpIp.Malformed', 'errorMessage' => 'The specified LocalBgpIp is malformed.', 'description' => 'The local BGP IP address is in an abnormal state.'], + ['errorCode' => 'IllegalParam.LocalBgpIp', 'errorMessage' => 'The specified LocalBgpIp is invalid.', 'description' => 'The local BGP IP address is invalid.'], + ['errorCode' => 'IllegalParam.LocalSubnet', 'errorMessage' => 'The specified "LocalSubnet" (%s) is invalid.', 'description' => 'The specified "LocalSubnet" (%s) is invalid.'], + ['errorCode' => 'IllegalParam.RemoteSubnet', 'errorMessage' => 'The specified "RemoteSubnet" (%s) is invalid.', 'description' => 'The specified "RemoteSubnet" (%s) is invalid.'], + ['errorCode' => 'OperationFailed.MissCertificate', 'errorMessage' => 'The VPN gateway has not associated any certificates.', 'description' => 'The error message returned because the VPN gateway is not associated with a certificate.'], + ['errorCode' => 'MissingParam.RemoteId', 'errorMessage' => 'The remote ID is mandatory when creating national standard VPN connection.', 'description' => 'The error message returned because the peer ID is not specified. You must specify the peer ID when you create a VPN connection encrypted by SM.'], + ['errorCode' => 'OperationFailed.CenLevelNotSupport', 'errorMessage' => 'When the VPC to which the VPN gateway belongs is attached to a FULL-mode CEN, the VPN gateway cannot enable BGP.', 'description' => 'When the VPC to which the VPN gateway belongs is attached to a FULL-mode CEN, the VPN gateway cannot enable BGP.'], + ['errorCode' => 'CustomerGateway.ConflictRouteEntry', 'errorMessage' => 'The specified customer gateway has conflict with route entry.', 'description' => 'The customer gateway conflicts with the current routes.'], + ['errorCode' => 'VpnTask.CONFLICT', 'errorMessage' => 'Vpn task has conflict.', 'description' => 'The VPN operation conflicts. Try again later.'], + ['errorCode' => 'Forbidden.TagKey.Duplicated', 'errorMessage' => 'The specified tag key already exists.', 'description' => 'The tag resources are duplicate.'], + ['errorCode' => 'SizeLimitExceeded.TagNum', 'errorMessage' => 'The maximum number of tags is exceeded.', 'description' => 'The number of tags has reached the upper limit.'], + ['errorCode' => 'InvalidParameter.TagValue', 'errorMessage' => 'The specified parameter TagValue is invalid.', 'description' => 'The error message returned because the specified tag value is invalid.'], + ['errorCode' => 'InvalidParameter.TagKey', 'errorMessage' => 'The specified parameter TagKey is invalid.', 'description' => 'The error message returned because the specified tag key is invalid.'], + ['errorCode' => 'Duplicated.TagKey', 'errorMessage' => 'The specified parameter TagKey is duplicated.', 'description' => 'The error message returned because the specified tag key already exists.'], + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', 'description' => ''], + ['errorCode' => 'InvalidTunnelCidr.Malformed', 'errorMessage' => 'The specified TunnelCidr is malformed.', 'description' => 'The specified tunnel CIDR block is invalid.'], + ['errorCode' => 'VpnConnectionParamInvalid.SameVpnAndCgwDifferentIkeConfigs', 'errorMessage' => 'IPSec connections associated with the same user gateway and VPN gateway should have the same pre-shared key and IKE configuration.', 'description' => 'The pre-shared key and IKE parameters must be the same for IPsec-VPN connections that are associated with the same VPN gateway and customer gateway.'], + ['errorCode' => 'VpnConnectionParamInvalid.SameVpnAndCgwTrafficSelectorOverlap', 'errorMessage' => 'Traffic selectors of IPSec connections associated with the same user gateway and VPN gateway should not overlap.', 'description' => 'The protected data flows of IPsec-VPN connections that are associated with the same VPN gateway and customer gateway cannot overlap.'], + ['errorCode' => 'CustomerGateway.ConflictVpnIp', 'errorMessage' => 'The customer gateway associated with the IPSec connection should not have the same IP address as the VPN gateway.', 'description' => 'The customer gateway and VPN gateway of an IPsec-VPN connection cannot use the same IP address.'], + ['errorCode' => 'VpnGateway.IPsecServerAndVpnConnectionConflict', 'errorMessage' => 'The IPSec connection and IPSec server cannot be configured on the same VPN gateway at the same time.', 'description' => 'You cannot configure an IPsec server and an IPsec-VPN connection at the same time for one VPN gateway.'], + ['errorCode' => 'InvalidSslVpnServerCertId.NotFound', 'errorMessage' => 'The parameter is incorrect. The corresponding SSL VPN server certificate cannot be found.', 'description' => 'The parameter is incorrect. The corresponding SSL VPN server certificate cannot be found.'], + ['errorCode' => 'MissingParameter.TunnelOptionsSpecification', 'errorMessage' => 'The required parameters are missing when creating a tunnel for dual-tunnel VPN.', 'description' => 'The required parameters are missing when creating a tunnel for dual-tunnel VPN.'], + ['errorCode' => 'CreateDbrRoutesQuotaFull.QuotaFull', 'errorMessage' => 'The number of created destination routes exceeds the quota limit.', 'description' => 'The number of created destination routes exceeds the quota limit.'], + ['errorCode' => 'CreatePbrRoutesQuotaFull.QuotaFull', 'errorMessage' => 'The number of policy routes exceeds the quota limit.', 'description' => 'The number of policy routes exceeds the quota limit.'], + ['errorCode' => 'CreateVpnConnectionsQuotaFull.QuotaFull', 'errorMessage' => 'The number of VPN connections exceeds the quota limit.', 'description' => 'The number of VPN connections exceeds the quota limit.'], + ['errorCode' => 'DryRunOperation', 'errorMessage' => 'Request validation has been passed with DryRun flag set.', 'description' => 'The request passed the dry run.'], + ['errorCode' => 'OperationFailed.OpenCdtServiceFirst', 'errorMessage' => 'The operation is failed because of %s.', 'description' => 'The billing method requires CDT billing enabled. Enable CDT billing and try again.'], + ['errorCode' => 'EncAlgInvalid.DesIncompatible', 'errorMessage' => 'Des/3des in IkeEncAlg and IpsecEncAlg does not support multi algorithm.', 'description' => 'Des/3des in IkeEncAlg and IpsecEncAlg does not support multi algorithm.'], + ['errorCode' => 'IkeVersionInvalid.GcmIncompatible', 'errorMessage' => 'Ikev1 does not support IkeEncAlg of gcm16.', 'description' => 'Ikev1 does not support IkeEncAlg of gcm16.'], ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'The request processing has failed due to some unknown error.', - ], + 403 => [ + ['errorCode' => 'Forbbiden.SubUser', 'errorMessage' => 'User not authorized to operate on the specified resource as your account is created by another user.', 'description' => ''], + ['errorCode' => 'Forbidden', 'errorMessage' => 'User not authorized to operate on the specified resource.', 'description' => 'You do not have the permissions to manage the specified resource. Apply for the permissions and try again.'], + ], + [ + ['errorCode' => 'InvalidCustomerGatewayInstanceId.NotFound', 'errorMessage' => 'The specified customer gateway instance id does not exist.', 'description' => 'The specified customer gateway does not exist. Check whether the ID of the customer gateway is correct.'], + ['errorCode' => 'InvalidVpnGatewayInstanceId.NotFound', 'errorMessage' => 'The specified vpn gateway instance id does not exist.', 'description' => ''], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"PageSize\\": \\"10\\",\\n \\"RequestId\\": \\"F7DDDC17-FA06-4AC2-8F35-59D2470FCFC1\\",\\n \\"PageNumber\\": \\"1\\",\\n \\"TotalCount\\": \\"2\\",\\n \\"NetworkAcls\\": {\\n \\"NetworkAcl\\": [\\n {\\n \\"Status\\": \\"Available\\",\\n \\"VpcId\\": \\"vpc-m5ebpc2xh64mqm27e****\\",\\n \\"CreationTime\\": \\"2021-12-25 11:44:17\\",\\n \\"Description\\": \\"This is my NetworkAcl.\\",\\n \\"NetworkAclName\\": \\"acl-1\\",\\n \\"NetworkAclId\\": \\"nacl-a2do9e413e0spxscd****\\",\\n \\"OwnerId\\": 253460731706911260,\\n \\"RegionId\\": \\"cn-hangzhou\\",\\n \\"IngressAclEntries\\": {\\n \\"IngressAclEntry\\": [\\n {\\n \\"NetworkAclEntryId\\": \\"nae-a2dk86arlydmezasw****\\",\\n \\"EntryType\\": \\"custom\\",\\n \\"NetworkAclEntryName\\": \\"acl-3\\\\t\\",\\n \\"Policy\\": \\"accept\\",\\n \\"Description\\": \\"This is IngressAclEntries.\\",\\n \\"SourceCidrIp\\": \\"10.0.0.0/24\\\\t\\",\\n \\"IpVersion\\": \\"IPv4\\",\\n \\"Protocol\\": \\"all\\",\\n \\"Port\\": \\"-1/-1\\\\t\\"\\n }\\n ]\\n },\\n \\"EgressAclEntries\\": {\\n \\"EgressAclEntry\\": [\\n {\\n \\"NetworkAclEntryId\\": \\"nae-a2d447uw4tillfvgb****\\",\\n \\"EntryType\\": \\"custom\\",\\n \\"NetworkAclEntryName\\": \\"acl-2\\\\t\\",\\n \\"Policy\\": \\"accept\\",\\n \\"Description\\": \\"This is EgressAclEntries.\\",\\n \\"Protocol\\": \\"all\\",\\n \\"DestinationCidrIp\\": \\"10.0.0.0/24\\\\t\\",\\n \\"IpVersion\\": \\"IPv4\\",\\n \\"Port\\": \\"-1/-1\\\\t\\"\\n }\\n ]\\n },\\n \\"Resources\\": {\\n \\"Resource\\": [\\n {\\n \\"Status\\": \\"BINDED\\",\\n \\"ResourceType\\": \\"VSwitch\\",\\n \\"ResourceId\\": \\"vsw-bp1de348lntdwcdf****\\"\\n }\\n ]\\n },\\n \\"Tags\\": {\\n \\"Tag\\": [\\n {\\n \\"Key\\": \\"FinanceDept\\",\\n \\"Value\\": \\"FinanceJoshua\\"\\n }\\n ]\\n }\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 10\\n F7DDDC17-FA06-4AC2-8F35-59D2470FCFC1\\n 1\\n 2\\n \\n Available\\n vpc-m5ebpc2xh64mqm27e****\\n 2021-12-25 11:44:17\\n This is my NetworkAcl.\\n acl-1\\n nacl-a2do9e413e0spxscd****\\n 253460731706911260\\n cn-hangzhou\\n \\n nae-a2dk86arlydmezasw****\\n acl-3\\t\\n accept\\n This is IngressAclEntries.\\n 10.0.0.0/24\\t\\n all\\n -1/-1\\t\\n \\n \\n nae-a2d447uw4tillfvgb****\\n acl-2\\t\\n accept\\n This is EgressAclEntries.\\n all\\n 10.0.0.0/24\\t\\n -1/-1\\t\\n \\n \\n BINDED\\n VSwitch\\n vsw-bp1de348lntdwcdf****\\n \\n \\n FinanceDept\\n FinanceJoshua\\n \\n \\n","errorExample":""}]', - 'title' => 'DescribeNetworkAcls', + 'staticInfo' => ['returnType' => 'asynchronous', 'callback' => 'Vpc::2016-04-28::DescribeVpnGateway', 'callbackInterval' => 2000, 'maxCallbackTimes' => 60], + 'title' => 'Create an IPsec-VPN connection ', + 'summary' => 'Invoke the CreateVpnConnection API to create an IPsec-VPN connection. ', + 'description' => '- If the VPN Gateway instance supports creating IPsec-VPN connections in dual-tunnel mode, when you invoke the `CreateVpnConnection` API, in addition to required parameters, you can also configure the following request parameters: '."\n" + ."\n" + .' **ClientToken**, **Name**, **EffectImmediately**, **AutoConfigRoute**, **Tags** array, **TunnelOptionsSpecification** array, and **EnableTunnelsBgp**. '."\n" + ."\n" + .' For information about regions and zones that support creating IPsec-VPN connections in dual-tunnel mode, see [Upgrade IPsec-VPN connections to dual-tunnel mode](~~2358946~~). '."\n" + .'- If the VPN Gateway instance only supports creating IPsec-VPN connections in single-tunnel mode, when you invoke the `CreateVpnConnection` API, in addition to required parameters, you can also configure the following request parameters: '."\n" + ."\n" + .' **ClientToken**, **CustomerGatewayId**, **Name**, **EffectImmediately**, **IkeConfig**, **IpsecConfig**, **HealthCheckConfig**, **AutoConfigRoute**, **EnableDpd**, **EnableNatTraversal**, **BgpConfig**, **RemoteCaCertificate**, and **Tags** array. '."\n" + ."\n" + .'- The **CreateVpnConnection** API is asynchronous. This means that the system returns an instance ID immediately, but the IPsec-VPN connection has not yet been successfully created, and the creation task continues in the background. You can call [DescribeVpnGateway](~~73720~~) to query the status of the VPN Gateway instance and determine the creation status of the IPsec-VPN connection: '."\n" + .' - If the VPN Gateway instance is in the **updating** status, the IPsec-VPN connection is being created. '."\n" + .' - If the VPN Gateway instance is in the **active** status, the IPsec-VPN connection has been successfully created. '."\n" + ."\n" + .'- The **CreateVpnConnection** API does not support concurrent creation of IPsec-VPN connections under the same VPN Gateway. ', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2025-05-23T06:50:36.000Z', 'description' => 'Error codes changed, Request parameters changed'], + ['createdAt' => '2024-01-04T07:17:10.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-08-21T12:20:02.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-08-02T07:08:08.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-06-30T12:44:26.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2023-06-13T09:30:08.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2023-05-04T09:18:36.000Z', 'description' => 'Request parameters changed, Response parameters changed'], + ['createdAt' => '2022-12-27T12:19:51.000Z', 'description' => 'Error codes changed, Response parameters changed'], + ['createdAt' => '2022-12-08T09:38:29.000Z', 'description' => 'Error codes changed'], + ], + 'ramActions' => [], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"082AD562-B8DB-4BB2-861F-DA1FCA01FD76\\",\\n \\"VpnConnectionId\\": \\"vco-bp15oes1py4i6****\\",\\n \\"Name\\": \\"test\\",\\n \\"CreateTime\\": 1544666102000\\n}","type":"json"}]', + 'translator' => 'machine', ], - 'CreateHaVip' => [ - 'summary' => 'Creates a high-availability virtual IP address (HaVip).', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'CreateVpnGateway' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'readAndWrite', - 'systemTags' => [ - 'operationType' => 'create', - 'riskType' => 'none', - 'chargeType' => 'free', - ], + 'deprecated' => false, + 'systemTags' => ['operationType' => 'create', 'riskType' => 'high', 'chargeType' => 'paid'], 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => ['description' => 'The region ID of the VPN gateway. You can call the [DescribeRegions](~~36063~~) operation to query the region ID.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], + ], [ 'name' => 'Name', 'in' => 'query', - 'schema' => [ - 'description' => 'The name of the HaVip.'."\n" - ."\n" - .'The name must be 1 to 128 characters in length, and cannot start with `http://` or `https://`.', - 'type' => 'string', - 'required' => false, - 'example' => 'test', - ], + 'schema' => ['description' => 'The name of the VPN gateway. The default value is the ID of the VPN gateway.'."\n" + ."\n" + .'The name must be 2 to 100 characters in length. It cannot start with `http://` or `https://`. It must start with an uppercase or lowercase letter and can contain uppercase and lowercase letters, digits, underscores (\\_), hyphens (-), and periods (.). Other special characters are not supported.', 'type' => 'string', 'required' => false, 'example' => 'MYVPN', 'title' => ''], ], [ - 'name' => 'ClientToken', + 'name' => 'VpcId', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'You can use the client to generate the value, but you must make sure that the value is unique among all requests. The token can contain only ASCII characters.'."\n" - ."\n" - .'> If you do not specify this parameter, **ClientToken** is set to the value of **RequestId**. The value of **RequestId** for each API request may be different.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '0c593ea1-3bea-11e9-b96b-88e9fe637760', - ], + 'schema' => ['description' => 'The ID of the VPC-connected instance to which the VPN gateway belongs.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'vpc-bp1ub1yt9cvakoelj****', 'title' => ''], ], [ - 'name' => 'RegionId', + 'name' => 'InstanceChargeType', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the HaVip. You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.', - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The billing method of the VPN gateway. Set the value to **PREPAY**, which specifies the subscription billing method.'."\n" + .'The billing method of the VPN gateway. Set the value to **POSTPAY**, which specifies the pay-as-you-go billing method.'."\n" + .'The billing method of the VPN gateway. Set the value to **POSTPAY**, which specifies the pay-as-you-go billing method.'."\n" + ."\n" + .'This parameter is required when you create a VPN gateway.', 'type' => 'string', 'required' => false, 'default' => 'POSTPAY', 'example' => '中国站示例值:PREPAY,国际站示例值:POSTPAY', 'title' => ''], ], [ - 'name' => 'VSwitchId', + 'name' => 'Period', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the vSwitch to which the HaVip belongs.', - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'vsw-asdfjlnaue4g****', - ], + 'schema' => ['description' => 'The subscription duration. Unit: months. Valid values: **1** to **9**, **12**, **24**, and **36**.'."\n" + ."\n" + .''."\n" + .'> This parameter is required if **InstanceChargeType** is set to **PREPAY**..', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1', 'title' => ''], ], [ - 'name' => 'IpAddress', + 'name' => 'AutoPay', 'in' => 'query', - 'schema' => [ - 'description' => 'The IP address of the HaVip.'."\n" - ."\n" - .'The specified IP address must be an idle IP address that falls within the CIDR block of the vSwitch. If this parameter is not set, an idle IP address from the CIDR block of the vSwitch is randomly assigned to the HaVip.', - 'type' => 'string', - 'required' => false, - 'example' => '192.XX.XX.10', - ], + 'schema' => ['description' => 'Specifies whether to automatically pay the bill for the VPN gateway. Valid values:'."\n" + ."\n" + .'- **true**: automatically pays the bill for the VPN gateway.'."\n" + ."\n" + .'- **false** (default): does not automatically pay the bill for the VPN gateway.'."\n" + ."\n" + .'> To successfully create a VPN gateway instance, enable automatic payment. If you disable automatic payment, you must manually pay the bill to create the VPN gateway instance.', 'type' => 'boolean', 'required' => false, 'default' => 'false', 'example' => 'false', 'title' => ''], ], [ - 'name' => 'Description', + 'name' => 'Bandwidth', 'in' => 'query', - 'schema' => [ - 'description' => 'The description of the HaVip.'."\n" - ."\n" - .'The description must be 1 to 255 characters in length and cannot start with `http://` or `https://`.', - 'type' => 'string', - 'required' => false, - 'example' => 'This is my HaVip.', - ], + 'schema' => ['description' => 'The bandwidth specification of the VPN gateway. Unit: Mbit/s.'."\n" + ."\n" + .'- If you want to create a public VPN gateway, valid values are **5**, **10**, **20**, **50**, **100**, **200**, **500**, and **1000**.'."\n" + .'- If you want to create a private VPN gateway, valid values are **200** and **1000**.'."\n" + .'- If you want to create a public VPN gateway, valid values are **10**, **100**, **200**, **500**, and **1000**.'."\n" + .'- If you want to create a private VPN gateway, valid values are **200** and **1000**.'."\n" + ."\n" + .'>The maximum bandwidth specification supported by VPN gateways in some regions is 500 Mbit/s. For more information, see [VPN gateway limits](~~65290~~).', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'docRequired' => true, 'example' => '5', 'title' => ''], ], [ - 'name' => 'ResourceGroupId', + 'name' => 'EnableIpsec', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the resource group to which the HaVip belongs.', - 'type' => 'string', - 'required' => false, - 'example' => 'rg-acfmxazb4ph6aiy****', - ], + 'schema' => ['description' => 'Specifies whether to enable the IPsec-VPN feature. Valid values:'."\n" + ."\n" + .'- **true** (default): enables the IPsec-VPN feature.'."\n" + ."\n" + .'- **false**: disables the IPsec-VPN feature.', 'type' => 'boolean', 'required' => false, 'default' => 'true', 'example' => 'true', 'title' => ''], ], [ - 'name' => 'Tag', + 'name' => 'EnableSsl', 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => 'The tag of the resource.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => 'The key of tag N to add to the resource. You can specify up to 20 tag keys. The tag key cannot be an empty string.'."\n" - ."\n" - .'The tag key can be up to 128 characters in length. It cannot start with `aliyun` or `acs:`, and cannot contain `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'FinanceDept', - ], - 'Value' => [ - 'description' => 'The value of tag N to add to the resource. You can specify up to 20 tag values. The tag value can be an empty string.'."\n" - ."\n" - .'The tag value can be up to 128 characters in length, but cannot contain `http://` or `https://`. The tag value cannot start with `aliyun` or `acs:`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'FinanceJoshua', - ], - ], - 'required' => false, - ], - 'required' => false, - 'maxItems' => 21, - ], + 'schema' => ['description' => 'Specifies whether to enable the SSL-VPN feature. Valid values:'."\n" + ."\n" + .'- **true**: enables the SSL-VPN feature.'."\n" + ."\n" + .'- **false** (default): disables the SSL-VPN feature.', 'type' => 'boolean', 'required' => false, 'default' => 'false', 'example' => 'false', 'title' => ''], + ], + [ + 'name' => 'SslConnections', + 'in' => 'query', + 'schema' => ['description' => 'The maximum number of clients that can be simultaneously connected. Valid values: **5** (default), **10**, **20**, **50**, **100**, **200**, **500**, and **1000**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '5', 'title' => ''], + ], + [ + 'name' => 'VSwitchId', + 'in' => 'query', + 'schema' => ['description' => 'The vSwitch associated with the VPN gateway instance. '."\n" + ."\n" + .'- In regions that support dual-tunnel IPsec-VPN connections, this parameter is required. You must specify a vSwitch and also specify the **DisasterRecoveryVSwitchId** parameter.'."\n" + .'- In regions that support only single-tunnel IPsec-VPN connections, if you do not specify a vSwitch, the system automatically selects a vSwitch from the VPC.', 'type' => 'string', 'required' => false, 'example' => 'vsw-bp1j5miw2bae9s2vt****', 'title' => ''], + ], + [ + 'name' => 'VpnType', + 'in' => 'query', + 'schema' => ['description' => 'The type of the VPN gateway. Valid values:'."\n" + .'- **Normal** (default): standard.'."\n" + .'- **NationalStandard**: Chinese SM-based..', 'type' => 'string', 'required' => false, 'example' => 'Normal', 'title' => ''], + ], + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'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.'."\n" + ."\n" + .'> If you do not specify this parameter, the system automatically uses the **RequestId** of the API request as the **ClientToken**. The **RequestId** may be different for each API request.', 'type' => 'string', 'required' => false, 'example' => '02fb3da4****', 'title' => ''], + ], + [ + 'name' => 'NetworkType', + 'in' => 'query', + 'schema' => ['description' => 'The network type of the VPN gateway. Valid values:'."\n" + ."\n" + .'- **public** (default): public VPN gateway.'."\n" + .'- **private**: private VPN gateway.', 'type' => 'string', 'required' => false, 'example' => 'public', 'title' => ''], + ], + [ + 'name' => 'DisasterRecoveryVSwitchId', + 'in' => 'query', + 'allowEmptyValue' => true, + 'schema' => ['description' => 'The second vSwitch associated with the VPN VPC-connected instance.'."\n" + ."\n" + .'- If the current region supports dual-tunnel IPsec-VPN connections, this parameter is required.'."\n" + .'- You must specify two vSwitches in different zones within the VPC associated with the VPN VPC-connected instance to implement zone-level disaster recovery for IPsec-VPN connections.'."\n" + .'- For regions that support only one zone, zone-level disaster recovery is not supported. Specify two different vSwitches in the same zone to achieve high availability for IPsec-VPN connections. You can also specify the same vSwitch.'."\n" + ."\n" + .'For information about the regions and zones that support dual-tunnel IPsec-VPN connections, see [Upgrade an IPsec-VPN connection to dual-tunnel mode](~~2358946~~).', 'type' => 'string', 'required' => false, 'example' => 'vsw-p0wiz7obm0tbimu4r****', 'title' => ''], + ], + [ + 'name' => 'ResourceGroupId', + 'in' => 'query', + 'schema' => ['description' => 'The ID of the resource group to which the VPN gateway belongs.'."\n" + ."\n" + .'- You can call the [ListResourceGroups](~~158855~~) operation to query resource group IDs.'."\n" + .'- If you do not specify a resource group ID, the VPN gateway belongs to the default resource group after it is created.'."\n" + .'- After the VPN gateway is created, if you create SSL servers, SSL client certificates, IPsec servers, or IPsec-VPN connections (when the IPsec-VPN connection is associated with the VPN gateway) under the VPN gateway, these resources belong to the same resource group as the VPN gateway. The resource group of these resources cannot be modified.'."\n" + ."\n" + .' If you change the resource group of the VPN gateway, the resource group of the preceding resources is also changed.', 'type' => 'string', 'required' => false, 'example' => 'rg-acfmzs372yg****', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => 'The returned information.'."\n", + 'description' => 'The response parameters.', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => 'C44F62BE-9CE7-4277-B117-69243F3988BF', - ], - 'IpAddress' => [ - 'description' => 'The IP address of the HaVip.', - 'type' => 'string', - 'example' => '192.XX.XX.10', - ], - 'HaVipId' => [ - 'description' => 'The ID of the HaVip.', - 'type' => 'string', - 'example' => 'havip-2zeo05qre24nhrqpy****', - ], + 'VpnGatewayId' => ['description' => 'The instance ID of the VPN gateway.', 'type' => 'string', 'example' => 'vpn-uf68lxhgr7ftbqr3p****', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'EB2C156A-41F8-49CC-A756-D55AFC8BFD69', 'title' => ''], + 'Name' => ['description' => 'The name of the VPN gateway.', 'type' => 'string', 'example' => 'MYVPN', 'title' => ''], + 'OrderId' => ['description' => 'The order ID.'."\n" + ."\n" + .'If you did not enable automatic payment for the VPN gateway bill, go to [Expenses and Costs](https://usercenter2.aliyun.com/home) to complete the payment.'."\n" + .'If you did not enable automatic payment for the VPN gateway bill, go to [Expenses and Costs](https://usercenter2-intl.aliyun.com/billing/#/account/overview) to complete the payment..', 'type' => 'integer', 'format' => 'int64', 'example' => '208240895400460', 'title' => ''], ], + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidDescription.Malformed', - 'errorMessage' => 'The specified Description is wrongly formed.', - ], - [ - 'errorCode' => 'InvalidIPAddress.OutOfRange', - 'errorMessage' => 'The specified IPAddress is out of VSwitch CIDR.', - ], - [ - 'errorCode' => 'InvalidIPAddress.NotAvailable', - 'errorMessage' => 'The specified IPAddress is not available because it is a system reserved IPAddress.', - ], - [ - 'errorCode' => 'InvalidIPAddress.AlreadyUsed', - 'errorMessage' => 'The specified IPAddress is already used by other resource.', - ], - [ - 'errorCode' => 'InvalidIPAddress.Malformed', - 'errorMessage' => 'The specified IPAddress is not a valid or strict address.', - ], - [ - 'errorCode' => 'Abs.Vpc.InvalidName.Malformed', - 'errorMessage' => 'The specified Name is not valid.', - ], - [ - 'errorCode' => 'InvalidIPAddress.OutOfVswCIDR', - 'errorMessage' => 'The specified IPAddress is out of VSwitch CIDR.', - ], - [ - 'errorCode' => 'InvalidIPAddress.AlreadyInUse', - 'errorMessage' => 'The specified IPAddress is already used by other resource.', - ], - [ - 'errorCode' => 'UnsupportedFeature.CloudBoxHaVip', - 'errorMessage' => 'The HAVIP feature is not supported in cloud box.', - ], - [ - 'errorCode' => 'CountLimitExceed.HaVipInVpc', - 'errorMessage' => 'Specified Vpc exceeds the quota of max number of ha-vip count.', - ], - [ - 'errorCode' => 'Forbidden.HaVip', - 'errorMessage' => 'No permissions to perform operations on HAVIPs. Please apply for privilege--vpc_privilege_allow_buy_havip_instance.', - ], - [ - 'errorCode' => 'OperationDenied.InvalidIpReservedByVSwitch', - 'errorMessage' => 'The specified ip address is the reserved address of the switch.', - ], - [ - 'errorCode' => 'InvalidRegionId.NotFound', - 'errorMessage' => 'Specified value of "regionId" is not supported.', - ], - [ - 'errorCode' => 'IllegalParam.ResourceGroupId', - 'errorMessage' => 'Invalid ResourceGroupld value.', - ], - [ - 'errorCode' => 'IncorrectStatus.VSwitch', - 'errorMessage' => 'The specified vSwitch status is invalid.', - ], + ['errorCode' => 'InvalidVpcId.NotFound', 'errorMessage' => 'The specified VPC id does not exist in our records.', 'description' => ''], + ['errorCode' => 'InvalidName', 'errorMessage' => 'The specified value of Name not supported.', 'description' => ''], + ['errorCode' => 'InvalidSpec.NotFound', 'errorMessage' => 'The specified Spec does not exist in our records.', 'description' => ''], + ['errorCode' => 'InvalidPeriod', 'errorMessage' => 'The specified period is not valid', 'description' => ''], + ['errorCode' => 'ChargeType.NotSupport', 'errorMessage' => 'The specified charge type is not support.', 'description' => ''], + ['errorCode' => 'InventoryNotEnough', 'errorMessage' => 'The inventory is not enough.', 'description' => ''], + ['errorCode' => 'UnnecessarySslConnection', 'errorMessage' => 'The SSL connection is unnecessary for ssl vpn disabled.', 'description' => ''], + ['errorCode' => 'InvalidVpnEnable', 'errorMessage' => 'Either IPsec or SSL VPN must be set enable.', 'description' => ''], + ['errorCode' => 'Resource.QuotaFull', 'errorMessage' => 'The quota of resource is full', 'description' => ''], + ['errorCode' => 'InvalidVSwitchId.NotFound', 'errorMessage' => 'The specified vswitchId is not found.', 'description' => ''], + ['errorCode' => 'OperationFailed.InventoryNotEnough', 'errorMessage' => 'No enough available resource. Try another vswitch with different available zone.', 'description' => ''], + ['errorCode' => 'Forbidden.OperateShareResource', 'errorMessage' => 'Operating shared resources is forbidden.', 'description' => ''], + ['errorCode' => 'OperationFailed.IpNotEnough', 'errorMessage' => 'Operation failed because private ip address of the virtual switch is not enough.', 'description' => ''], + ['errorCode' => 'Forbidden.NoSLRPermission', 'errorMessage' => 'User not authorized to create service linked role.', 'description' => ''], + ['errorCode' => 'OperationFailed.VSwitchConflict', 'errorMessage' => 'The vswitch can\'t create vpn. Try another vswitch.', 'description' => ''], + ['errorCode' => 'OperationFailed.AzNotSupport', 'errorMessage' => 'Current available zone can\'t create vpn. Try another vswitch with different available zone.', 'description' => ''], + ['errorCode' => 'OperationFailed.NetworkTypeNotMatch', 'errorMessage' => 'Create NationalStandard vpn with private networkType is unsupported.', 'description' => ''], + ['errorCode' => 'OperationFailed.SslNotSupport', 'errorMessage' => 'Enable ssl vpn with private networkType is unsupported.', 'description' => 'You cannot enable the SSL feature for a private VPN gateway.'], + ['errorCode' => 'Forbidden.TagKey.Duplicated', 'errorMessage' => 'The specified tag key already exists.', 'description' => 'The tag resources are duplicate.'], + ['errorCode' => 'SizeLimitExceeded.TagNum', 'errorMessage' => 'The maximum number of tags is exceeded.', 'description' => 'The number of tags has reached the upper limit.'], + ['errorCode' => 'InvalidParameter.TagValue', 'errorMessage' => 'The specified parameter TagValue is invalid.', 'description' => 'The error message returned because the specified tag value is invalid.'], + ['errorCode' => 'InvalidParameter.TagKey', 'errorMessage' => 'The specified parameter TagKey is invalid.', 'description' => 'The error message returned because the specified tag key is invalid.'], + ['errorCode' => 'Duplicated.TagKey', 'errorMessage' => 'The specified parameter TagKey is duplicated.', 'description' => 'The error message returned because the specified tag key already exists.'], + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', 'description' => ''], + ['errorCode' => 'InvalidVSwitchId.SecondVswitchNotSupport', 'errorMessage' => 'The available zone of vswitch2 not supported.', 'description' => 'The zone of the secondary vSwitch does not support the feature.'], + ['errorCode' => 'InvalidVSwitchId.FirstVswitchNotSupport', 'errorMessage' => 'The available zone of vswitch1 not supported.', 'description' => 'The zone where the primary vSwitch is located is not supported.'], + ['errorCode' => 'InvalidVSwitchId.VswitchIdShouldDifferent', 'errorMessage' => 'The VSwitch ids should be different.', 'description' => 'The primary zone cannot be the same as the secondary zone.'], + ['errorCode' => 'InvalidVSwitchId.FirstVswitchIpNotEnough', 'errorMessage' => 'The ip of vswitch1 not enough.', 'description' => 'Insufficient number of available IPs in primary vSwitch.'], + ['errorCode' => 'InvalidVSwitchId.SecondVswitchIpNotEnough', 'errorMessage' => 'The ip of vswitch2 not enough.', 'description' => 'Insufficient IP addresses are available in the standby vSwitch.'], + ['errorCode' => 'InvalidVSwitchId.ZoneIdShouldDifferent', 'errorMessage' => 'Two vSwitches should belong to different Availability Zones.', 'description' => 'When you create a dual-tunnel VPN gateway, the two vSwitches that you specify must belong to different zones.'], ], - 403 => [ - [ - 'errorCode' => 'CountLimitExceed.HaVipInVpc', - 'errorMessage' => 'Specified Vpc exceeds the quota of max number of ha-vip count.', - ], - [ - 'errorCode' => 'QuotaExceeded.HaVip', - 'errorMessage' => 'Living HaVip quota exceeded.', - ], + 404 => [ + ['errorCode' => 'InvalidRegionId.NotFound', 'errorMessage' => 'The specified region is not found during access authentication.', 'description' => 'The specified area is not found during authentication.'], + ], + ], + 'staticInfo' => ['returnType' => 'asynchronous', 'callback' => 'Vpc::2016-04-28::DescribeVpnGateway', 'callbackInterval' => 6000, 'maxCallbackTimes' => 100], + 'title' => 'Create a VPN gateway', + 'summary' => 'Creates a VPN gateway by calling the CreateVpnGateway operation.', + 'description' => '- Before you create a VPN gateway, we recommend that you familiarize yourself with the limits of VPN gateways. For more information, see [VPN gateway limits](~~65290~~).'."\n" + .'- VPN gateway instances in some regions support only dual-tunnel IPsec-VPN connections by default. When you call the `CreateVpnGateway` operation to create a VPN gateway instance in these regions, you must specify the **VSwitchId** and **DisasterRecoveryVSwitchId** parameters in addition to the required parameters. For information about the regions and zones that support dual-tunnel IPsec-VPN connections, see [Upgrade an IPsec-VPN connection to dual-tunnel mode](~~2358946~~).'."\n" + .'- **CreateVpnGateway** is an asynchronous operation. After you send a request, the system returns an instance ID but the VPN gateway is not yet created. The creation task is still running in the background. You can call [DescribeVpnGateway](~~73720~~) to query the creation status of the VPN gateway:'."\n" + .' '."\n" + .' - If the VPN gateway is in the **provisioning** state, the VPN gateway is being created.'."\n" + .' - If the VPN gateway is in the **active** state, the VPN gateway is created.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2024-06-18T11:59:44.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-01-04T07:17:10.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-10-19T07:04:01.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2023-06-30T12:44:27.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2023-05-04T09:18:36.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2022-12-27T12:19:51.000Z', 'description' => 'Error codes changed, Response parameters changed'], + ['createdAt' => '2022-12-05T09:52:16.000Z', 'description' => 'Error codes changed'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '60', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CreateVpnGateway'], ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], + ], + 'ramActions' => [ [ - [ - 'errorCode' => 'InvalidVSwitchId.NotFound', - 'errorMessage' => 'The specified VSwitch does not exist in the specified region.', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'vpc:CreateVpnGateway', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VpnGateway', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vpngateway/*'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"C44F62BE-9CE7-4277-B117-69243F3988BF\\",\\n \\"IpAddress\\": \\"192.XX.XX.10\\",\\n \\"HaVipId\\": \\"havip-2zeo05qre24nhrqpy****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n C44F62BE-9CE7-4277-B117-69243F3988BF\\n 192.XX.XX.10\\n havip-2zeo05qre24nhrqpy****\\n","errorExample":""}]', - 'title' => 'CreateHaVip', - 'description' => '**CreateHaVip** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call the [DescribeHaVips](~~114611~~) operation to query the status of the task:'."\n" - ."\n" - .'* If the HaVip is in the **Creating** state, the HaVip is being created.'."\n" - .'* If the HaVip is in the **Available** state, the HaVip is created.', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"VpnGatewayId\\": \\"vpn-uf68lxhgr7ftbqr3p****\\",\\n \\"RequestId\\": \\"EB2C156A-41F8-49CC-A756-D55AFC8BFD69\\",\\n \\"Name\\": \\"MYVPN\\",\\n \\"OrderId\\": 208240895400460\\n}","type":"json"}]', ], - 'AssociateHaVip' => [ - 'summary' => 'Associates a high-availability virtual IP address (HaVip) with an Elastic Compute Service (ECS) instance or an elastic network interface (ENI).', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'CreateVpnPbrRouteEntry' => [ + 'summary' => 'Creates a policy-based route for a VPN gateway.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'readAndWrite', - 'systemTags' => [ - 'operationType' => 'create', - ], + 'deprecated' => false, + 'systemTags' => ['operationType' => 'create', 'riskType' => 'high', 'chargeType' => 'free'], 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => ['description' => 'Specifies whether to advertise the policy-based route to a virtual private cloud (VPC) route table. Valid values:'."\n" + ."\n" + .'* **true**: The route is advertised to the VPC system route table, but not to a VPC custom route table.'."\n" + ."\n" + .' You can manually add the route the a VPC custom route table. For more information, see [CreateRouteEntry](~~448722~~).'."\n" + ."\n" + .'* **false**: Do not advertise the route to the route table.'."\n" + ."\n" + .' You must manually add a policy-based route that points to the VPN gateway in the VPC custom and system route table. Otherwise, the VPC cannot access resources in the CIDR block through an IPsec-VPN connection.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], + ], [ 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'You can use the client to generate the value, but you must make sure that it is unique among different requests. The client token can contain only ASCII characters.'."\n" - ."\n" - .'> If you do not set this parameter, the system uses **RequestId** as **ClientToken**. The value of **RequestId** in each API request may be different.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '0c593ea1-3bea-11e9-b96b-88e9fe63****', - ], + 'schema' => ['description' => 'The description of the policy-based route.'."\n" + ."\n" + .'The description must be 1 to 100 characters in length, and cannot start with http:// or https://.'."\n", 'type' => 'string', 'required' => false, 'example' => 'd7d24a21-f4ba-4454-9173-b3****', 'title' => ''], ], [ - 'name' => 'RegionId', + 'name' => 'VpnGatewayId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region to which the HaVip belongs.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.', - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-shanghai', - ], + 'schema' => ['description' => 'The tunneling protocol. Set the value to **Ipsec**.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'vpn-bp1a3kqjiiq9legfx****', 'title' => ''], ], [ - 'name' => 'HaVipId', + 'name' => 'RouteSource', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the HaVip.', - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'havip-2zeo05qre24nhrqpy****', - ], + 'schema' => ['description' => 'The priority of the policy-based route. Valid values: **1** to **100**. Default value: **10**.'."\n" + ."\n" + .'A smaller value indicates a higher priority.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '192.168.1.0/24', 'title' => ''], ], [ - 'name' => 'InstanceId', + 'name' => 'RouteDest', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the ECS instance to be associated with the HaVip.', - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'i-faf344422ffsfad****', - ], + 'schema' => ['description' => 'The response parameters.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '10.0.0.0/24', 'title' => ''], ], [ - 'name' => 'InstanceType', + 'name' => 'NextHop', 'in' => 'query', - 'schema' => [ - 'description' => 'The type of the instance to be associated with the HaVip. Valid values:'."\n" - ."\n" - .'* **EcsInstance**: an ECS instance'."\n" - .'* **NetworkInterface**: an ENI. If you want to associate the HaVip with an ENI, this parameter is required.', - 'type' => 'string', - 'required' => false, - 'example' => 'EcsInstance', - ], + 'schema' => ['description' => 'The next hop of the policy-based route.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'vco-bp15oes1py4i66rmd****', 'title' => ''], + ], + [ + 'name' => 'Weight', + 'in' => 'query', + 'schema' => ['description' => 'The weight of the policy-based route. Valid values:'."\n" + ."\n" + .'* **100**: The IPsec-VPN connection associated with the policy-based route serves as an active connection.'."\n" + .'* **0**: The IPsec-VPN connection associated with the policy-based route serves as a standby connection.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => true, 'docRequired' => true, 'example' => '0', 'title' => ''], + ], + [ + 'name' => 'PublishVpc', + 'in' => 'query', + 'schema' => ['description' => 'The destination CIDR block of the policy-based route.'."\n", 'type' => 'boolean', 'required' => true, 'docRequired' => true, 'example' => 'true', 'title' => ''], + ], + [ + 'name' => 'Description', + 'in' => 'query', + 'schema' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'required' => false, 'example' => 'desctest', 'title' => ''], + ], + [ + 'name' => 'OverlayMode', + 'in' => 'query', + 'schema' => ['description' => 'The description of the policy-based route.'."\n", 'type' => 'string', 'required' => false, 'example' => 'Ipsec', 'title' => ''], + ], + [ + 'name' => 'Priority', + 'in' => 'query', + 'schema' => ['description' => 'The status of the policy-based route. Valid values:'."\n" + ."\n" + .'* **published**: advertised to the VPC route table.'."\n" + .'* **normal**: not advertised to the VPC route table.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '10', 'title' => ''], + ], + [ + 'name' => 'DryRun', + 'in' => 'query', + 'schema' => ['description' => 'Specifies whether to only precheck the request. Valid values:'."\n" + ."\n" + .'* **true**: prechecks the request without performing the operation. The system prechecks the required parameters, request syntax, and limits. If the request fails to pass the precheck, an error message is returned. If the request passes the precheck, the `DryRunOperation` error code is returned.'."\n" + .'* **false** (default): sends the request. After the request passes the precheck, a 2xx HTTP status code is returned and the operation is performed.', 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], ], ], 'responses' => [ 200 => [ - 'headers' => [], 'schema' => [ + 'description' => 'The time when the policy-based route was created.'."\n" + ."\n" + .'This value is a UNIX timestamp representing the number of milliseconds that have elapsed since January 1, 1970, 00:00:00 UTC.'."\n", 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => 'C44F62BE-9CE7-4277-B117-69243F3988BF', - ], + 'NextHop' => ['description' => 'The tunneling protocol. The value is **Ipsec**.'."\n", 'type' => 'string', 'example' => 'vco-bp15oes1py4i66rmd****', 'title' => ''], + 'Weight' => ['description' => 'The source CIDR block of the policy-based route.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '0', 'title' => ''], + 'RouteDest' => ['description' => 'The VPN gateway ID.'."\n", 'type' => 'string', 'example' => '10.0.0.0/24', 'title' => ''], + 'RequestId' => ['description' => 'The priority of the policy-based route.'."\n", 'type' => 'string', 'example' => '5BE01CD7-5A50-472D-AC14-CA181C5C03BE', 'title' => ''], + 'Description' => ['description' => 'The description of the route.', 'type' => 'string', 'example' => 'desctest', 'title' => ''], + 'State' => ['description' => 'The status of the policy-based route.'."\n" + ."\n" + .'* **published**: advertised to the VPC route table.'."\n" + .'* **normal**: not advertised to the VPC route table.', 'type' => 'string', 'example' => 'normal', 'title' => ''], + 'CreateTime' => ['description' => 'The timestamp generated when the policy-based route was created. Unit: milliseconds.'."\n" + ."\n" + .'This value is a UNIX timestamp representing the number of milliseconds that have elapsed since the epoch time January 1, 1970, 00:00:00 UTC.', 'type' => 'integer', 'format' => 'int64', 'example' => '1492747187000', 'title' => ''], + 'OverlayMode' => ['description' => 'The tunneling protocol. The value is set to **Ipsec**, which indicates the IPsec tunneling protocol.'."\n", 'type' => 'string', 'example' => 'Ipsec', 'title' => ''], + 'RouteSource' => ['description' => 'The source CIDR block of the policy-based route.'."\n", 'type' => 'string', 'example' => '192.168.1.0/24', 'title' => ''], + 'VpnInstanceId' => ['description' => 'The ID of the VPN gateway.'."\n", 'type' => 'string', 'example' => 'vpn-bp1cmw7jh1nfe43m9****', 'title' => ''], + 'Priority' => ['description' => 'The priority of the policy-based route.', 'type' => 'integer', 'format' => 'int32', 'example' => '10', 'title' => ''], ], + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'OperationUnsupported.BindOnFreeNetworkInterface', - 'errorMessage' => 'The network interface must be attached to an ECS instance.', - ], - [ - 'errorCode' => 'OperationUnsupported.BindMultipleType', - 'errorMessage' => 'You cannot bind HaVip to multiple instance types.', - ], - [ - 'errorCode' => 'OperationUnsupported.BindOnMultipleVswitch', - 'errorMessage' => 'The bound instance and HaVip must be on the same vSwitch.', - ], - [ - 'errorCode' => 'InvalidVip.Status', - 'errorMessage' => 'vip invalid status', - ], - [ - 'errorCode' => 'IncorrectHaVipStatus', - 'errorMessage' => 'HaVip can be operated by this action only when it\'s status is Available or InUse.', - ], - [ - 'errorCode' => 'IncorrectInstanceStatus', - 'errorMessage' => 'ECS instance can be operated by this action only when it?s status is Running or Stopped.', - ], - [ - 'errorCode' => 'CountLimitExceed.HaVipOnInstance', - 'errorMessage' => 'The amount of HaVip associated with the specified Instance reach its limits.', - ], - [ - 'errorCode' => 'CountLimitExceeded.HaVipOnECSInstance', - 'errorMessage' => 'The amount of Instance associated with the specified HaVip reach its limits.', - ], - [ - 'errorCode' => 'OperationFailed.DistibuteLock', - 'errorMessage' => 'Distibute lock fail.', - ], - [ - 'errorCode' => 'InvalidNetworkInterfaceId.NotFound', - 'errorMessage' => 'The network interface is not found.', - ], - [ - 'errorCode' => 'OperationFailed.QueryNetworkInterfaceInfo', - 'errorMessage' => 'Failed to query network interface information.', - ], - [ - 'errorCode' => 'IllegalParam.InstanceType', - 'errorMessage' => 'The specified instance type is invalid. Only ECS instances and network interface are allowed.', - ], - [ - 'errorCode' => 'OperationUnsupported.BindOnSameEcs', - 'errorMessage' => 'You cannot bind two network interfaces on the same ECS instance.', - ], - [ - 'errorCode' => 'OperationUnsupported.HavipBindType', - 'errorMessage' => 'You cannot bind HAVIP to network interface in the specified region.', - ], - [ - 'errorCode' => 'InvalidInstance.NotExist', - 'errorMessage' => 'InvalidInstance.NotExist : The specified Instance does not exist in the specified region. i-bp136w25mhx503ptilrh\\r\\nRequestId : A961CC27-D797-4E16-B1B3-19B9ECBA1495', - ], - [ - 'errorCode' => 'OperationDenied.BindOnSameEcs', - 'errorMessage' => 'The operation is not allowed because networkinterface bind on same instance.', - ], - [ - 'errorCode' => 'Forbidden.HaVip', - 'errorMessage' => 'No permissions to perform operations on HAVIPs. Please apply for privilege--vpc_privilege_allow_buy_havip_instance.', - ], - [ - 'errorCode' => 'InvalidInstanceId.NotFound', - 'errorMessage' => 'The specified Instance does not exist in the specified region.', - ], - [ - 'errorCode' => 'ResourceNotFound.EcsInstance', - 'errorMessage' => 'The specified resource of ECS instance is not found.', - ], - [ - 'errorCode' => 'InvalidStatus.NotAllow', - 'errorMessage' => 'Bind instance status invalid', - ], - [ - 'errorCode' => 'InvalidHaVip.Exist', - 'errorMessage' => 'haVip already bind exist.', - ], - [ - 'errorCode' => 'InvalidRegionId.NotFound', - 'errorMessage' => 'The RegionId provided does not exist in our records.', - ], - [ - 'errorCode' => 'QuotaExceeded.HaVipBindInstance', - 'errorMessage' => 'The amount of instance associated with the specified haVip reach its limits.', - ], + ['errorCode' => 'Resource.QuotaFull', 'errorMessage' => 'The quota of resource is full', 'description' => ''], + ['errorCode' => 'VpnGateway.FinancialLocked', 'errorMessage' => 'The specified service is financial locked.', 'description' => ''], + ['errorCode' => 'VpnRouteEntry.AlreadyExists', 'errorMessage' => 'The specified route entry is already exist.', 'description' => 'The route already exists.'], + ['errorCode' => 'VpnRouteEntry.Conflict', 'errorMessage' => 'The specified route entry has conflict.', 'description' => 'Route conflicts exist.'], + ['errorCode' => 'VpnRouteEntry.ConflictSSL', 'errorMessage' => 'The specified route entry has conflict with SSL client.', 'description' => 'The route conflicts with the SSL client.'], + ['errorCode' => 'VpnRouteEntry.BackupRoute', 'errorMessage' => 'Validate backup route entry failed.', 'description' => 'Active/standby routes failed authentication.'], + ['errorCode' => 'VpnRouteEntry.InvalidWeight', 'errorMessage' => 'Invalid route entry weight value.', 'description' => 'The weight specified for the route is invalid.'], + ['errorCode' => 'InvalidNextHop.NotFound', 'errorMessage' => 'The specified NextHop does not exist.', 'description' => 'The specified next hop does not exist.'], + ['errorCode' => 'IllegalParam.RouteDest', 'errorMessage' => 'The specified RouteDest is invalid', 'description' => 'The destination address is invalid.'], + ['errorCode' => 'OperationFailed.RouteConflict', 'errorMessage' => 'Operation failed because there is already a route in VPC route table to another VPN on the same network block.', 'description' => 'Operation failed because there is already a route in VPC route table to another VPN on the same network block.'], + ['errorCode' => 'OperationFailed.InvalidCidrBlock', 'errorMessage' => 'Operation failed because the specified network block is invalid.', 'description' => 'The CIDR block is invalid.'], + ['errorCode' => 'QuotaExceeded.VpnRouteEntry', 'errorMessage' => 'The number of route entries to the VPN gateway in the VPC routing table has reached the quota limit.', 'description' => 'The number of route entries to the VPN gateway in the VPC routing table has reached the quota limit.'], + ['errorCode' => 'VpnPbrRouteEntryPriority.NotSupport', 'errorMessage' => 'Current version of the VPN does not support setting custom pbr route entry priority.', 'description' => 'The VPN gateway of the current version does not allow you to set route priorities.'], + ['errorCode' => 'TaskConflict', 'errorMessage' => 'The operation is too frequent, please wait a moment and try again.', 'description' => 'Your requests are too frequent. Try again later.'], + ['errorCode' => 'VpnTask.CONFLICT', 'errorMessage' => 'Vpn task has conflict.', 'description' => 'The VPN operation conflicts. Try again later.'], + ['errorCode' => 'VpnGateway.Configuring', 'errorMessage' => 'The specified service is configuring.', 'description' => ''], + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', 'description' => ''], + ['errorCode' => 'VpnRouteEntry.SrcDestWeightConflict', 'errorMessage' => 'The VPN gateway does not support Policy-based routing with the same source CIDR, destination CIDR and weight.', 'description' => 'VPN Gateway does not support policy-based routes that have the same source CIDR block, destination CIDR block, and weight.'], + ['errorCode' => 'VpnRouteEntry.SamePriorityPbrRoutePrefixOverlap', 'errorMessage' => 'The source CIDR and destination CIDR of Policy-based routes with the same priority cannot overlap.', 'description' => 'VPN Gateway does not support policy-based routes that have the same priority and overlapping source CIDR blocks and destination CIDR blocks.'], + ['errorCode' => 'VpnRouteEntry.SrcDestConflict', 'errorMessage' => 'The VPN gateway does not support Policy-based routing with the same source CIDR and destination CIDR.', 'description' => 'The source CIDR block and destination CIDR block of a policy-based route for a dual-tunnel VPN gateway cannot be the same.'], + ['errorCode' => 'CreatePbrRoutesQuotaFull.QuotaFull', 'errorMessage' => 'The number of policy routes exceeds the quota limit.', 'description' => 'The number of policy routes exceeds the quota limit.'], + ['errorCode' => 'InvalidCidrBlock.Malformed', 'errorMessage' => 'Specified CIDR block is not valid.', 'description' => ''], + ['errorCode' => 'DryRunOperation', 'errorMessage' => 'Request validation has been passed with DryRun flag set.', 'description' => 'The request passed the dry run.'], + ['errorCode' => 'VpnPbrRouteEntry.NotSupport', 'errorMessage' => 'Current version of the VPN does not support pbr route entry.', 'description' => 'Current version of the VPN does not support pbr route entry.'], ], - 404 => [ - [ - 'errorCode' => 'InvalidHaVipId.NotFound', - 'errorMessage' => 'The specified HaVip does not exist in the specified region.', - ], - [ - 'errorCode' => 'InvalidInstanceId.NotFound', - 'errorMessage' => 'The specified Instance does not exist in the specified region.', - ], + 403 => [ + ['errorCode' => 'Forbbiden.SubUser', 'errorMessage' => 'User not authorized to operate on the specified resource as your account is created by another user.', 'description' => ''], + ['errorCode' => 'Forbidden', 'errorMessage' => 'User not authorized to operate on the specified resource.', 'description' => 'You do not have the permissions to manage the specified resource. Apply for the permissions and try again.'], + ], + [ + ['errorCode' => 'InvalidVpnGatewayInstanceId.NotFound', 'errorMessage' => 'The specified vpn gateway instance id does not exist.', 'description' => ''], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"C44F62BE-9CE7-4277-B117-69243F3988BF\\"\\n}","errorExample":""},{"type":"xml","example":"\\n C44F62BE-9CE7-4277-B117-69243F3988BF\\n","errorExample":""}]', - 'title' => 'AssociateHaVip', - 'description' => 'When you call this operation, take note of the following limits:'."\n" - ."\n" - .'* An HaVip immediately takes effect after it is associated. You do not need to restart the ECS instance. However, you must associate the HaVip with the ENI of the ECS instance.'."\n" - ."\n" - .'* The HaVip and ECS instance must belong to the same vSwitch.'."\n" - ."\n" - .'* You can associate an HaVip with at most two ECS instances.'."\n" - ."\n" - .'* The ECS instance must be in the **Running** or **Stopped** state.'."\n" - ."\n" - .'* The HaVip must be in the **Available** or **InUse** state.'."\n" - ."\n" - .'* The **AssociateHaVip** operation is asynchronous. After you send the request, the system returns a request ID. However, the operation is still being performed in the system background. You can call the [DescribeHaVips](~~114611~~) operation to query the status of an HaVip:'."\n" - ."\n" - .' * If the HaVip is in the **Associating** state, the HaVip is being associated.'."\n" - .' * If the HaVip is in the **InUse** state, the HaVip is associated.'."\n" + 'staticInfo' => ['returnType' => 'asynchronous', 'callback' => 'Vpc::2016-04-28::DescribeVpnGateway', 'callbackInterval' => 1000, 'maxCallbackTimes' => 10], + 'title' => 'CreateVpnPbrRouteEntry', + 'description' => '### 前提条件'."\n" + .'- 创建策略路由前,请确保您已经创建了IPsec连接。具体操作,请参见[CreateVpnConnection](~~120391~~)。'."\n" + .'- 创建策略路由前,建议您先了解策略路由的使用限制、匹配规则等信息。更多信息,请参见[使用策略路由](~~110777~~)。'."\n" ."\n" - .'* You cannot repeatedly call the **AssociateHaVip** operation to associate an HaVip within the specified period of time.', + .'### 使用限制'."\n" + .'- 不支持添加目标网段为0.0.0.0/0的策略路由。'."\n" + .'- 请勿添加目标网段为100.64.0.0/10、100.64.0.0/10下的子网段或者包含100.64.0.0/10网段的策略路由,该类策略路由会导致控制台无法显示IPsec连接的状态或者导致IPsec连接协商失败。'."\n" + .'- **CreateVpnPbrRouteEntry**接口属于异步接口,即系统先返回策略路由的信息,但该策略路由尚未创建成功,系统后台的创建任务仍在进行。您可以调用[DescribeVpnGateway](~~73720~~)接口查询VPN网关实例状态,来确定策略路由的创建状态:'."\n" + .' - 当VPN网关实例处于**updating**状态时,表示策略路由正在创建中。'."\n" + .' - 当VPN网关实例处于**active**状态时,表示策略路由创建成功。'."\n" + .'- **CreateVpnPbrRouteEntry**接口不支持在同一个VPN网关实例下并发创建策略路由。', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2025-05-23T06:50:36.000Z', 'description' => 'Error codes changed, Request parameters changed'], + ['createdAt' => '2024-05-10T02:03:15.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-01-04T07:17:09.000Z', 'description' => 'Error codes changed, Response parameters changed'], + ['createdAt' => '2023-08-02T07:08:11.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2022-12-16T10:11:31.000Z', 'description' => 'Error codes changed'], + ], + 'ramActions' => [], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"NextHop\\": \\"vco-bp15oes1py4i66rmd****\\",\\n \\"Weight\\": 0,\\n \\"RouteDest\\": \\"10.0.0.0/24\\",\\n \\"RequestId\\": \\"5BE01CD7-5A50-472D-AC14-CA181C5C03BE\\",\\n \\"Description\\": \\"desctest\\",\\n \\"State\\": \\"normal\\",\\n \\"CreateTime\\": 1492747187000,\\n \\"OverlayMode\\": \\"Ipsec\\",\\n \\"RouteSource\\": \\"192.168.1.0/24\\",\\n \\"VpnInstanceId\\": \\"vpn-bp1cmw7jh1nfe43m9****\\",\\n \\"Priority\\": 10\\n}","type":"json"}]', + 'translator' => 'manual', ], - 'DeleteHaVip' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'CreateVpnRouteEntry' => [ + 'summary' => 'Creates a destination route for a VPN gateway instance. After the destination route is created, the VPN gateway instance matches the destination IP address of traffic against destination routes and forwards the traffic based on the matched destination route.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', - 'systemTags' => [ - 'operationType' => 'delete', - ], + 'operationType' => 'readAndWrite', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'create', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => ['description' => 'The region ID of the VPN gateway instance.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the region ID.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], + ], [ 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'You can use the client to generate the value, but you must make sure that it is unique among different requests. The client token can contain only ASCII characters.'."\n" - ."\n" - .'> If you do not set this parameter, the system uses **RequestId** as **ClientToken**. The value of **RequestId** in each API request may be different.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '0c593ea1-3bea-11e9-b96b-88e9fe637760', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'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.'."\n" + ."\n" + .'> If you do not specify this parameter, the system automatically uses the **RequestId** of the API request as the **ClientToken**. The **RequestId** may be different for each API request.', 'type' => 'string', 'required' => false, 'example' => 'd7d24a21-f4ba-4454-9173-b3828dae****', 'title' => ''], ], [ - 'name' => 'RegionId', + 'name' => 'VpnGatewayId', 'in' => 'query', - 'schema' => [ - 'description' => 'The region where the HaVip resides. Call the [DescribeRegions](~~36063~~) operation to query the region list.', - 'type' => 'string', - 'required' => true, - 'example' => 'cn-shanghai', - ], + 'schema' => ['description' => 'The instance ID of the VPN gateway.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'vpn-bp1a3kqjiiq9legfx****', 'title' => ''], ], [ - 'name' => 'HaVipId', + 'name' => 'RouteDest', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the HaVip that you want to delete.', - 'type' => 'string', - 'required' => true, - 'example' => 'havip-2zeo05qre24nhrqpy****', - ], + 'schema' => ['description' => 'The destination CIDR block of the destination route.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '10.0.0.0/24', 'title' => ''], + ], + [ + 'name' => 'NextHop', + 'in' => 'query', + 'schema' => ['description' => 'The next hop of the destination route.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'vco-bp15oes1py4i66rmd****', 'title' => ''], + ], + [ + 'name' => 'Weight', + 'in' => 'query', + 'schema' => ['description' => 'The weight of the destination routing entry.'."\n" + ."\n" + .'When you use the same VPN gateway instance to establish active/standby IPsec-VPN connections, you can specify the active and standby links by configuring the weight of the destination routing entry. A destination routing entry with a weight of 100 is the active link by default, and a destination routing entry with a weight of 0 is the standby link by default.'."\n" + ."\n" + .'You can configure health checks for the IPsec-VPN connection to automatically detect the connectivity of the link. If the active link is unavailable, the system automatically switches traffic to the standby link, ensuring high availability of the cloud connection. For more information, see [CreateVpnConnection](~~120391~~).'."\n" + ."\n" + .'- **100**: The IPsec-VPN connection associated with the destination route serves as the active link.'."\n" + .'- **0**: The IPsec-VPN connection associated with the destination route serves as the standby link.'."\n" + ."\n" + .'> - When you specify active and standby links, the active and standby destination routes must have the same destination CIDR block, different next hops, and different weights.'."\n" + .'> - For VPN gateway instances that support dual-tunnel pattern IPsec-VPN connections, you do not need to configure this parameter. A dual-tunnel pattern IPsec-VPN connection contains two tunnels that automatically form active/standby links. You do not need to specify active/standby links by configuring this parameter. If you configure this parameter, the parameter settings do not take effect.', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'docRequired' => true, 'example' => '0', 'title' => ''], + ], + [ + 'name' => 'PublishVpc', + 'in' => 'query', + 'schema' => ['description' => 'Specifies whether to publish the destination route to the VPC. Valid values:'."\n" + ."\n" + .'- **true**: Publishes the destination route to the VPC. The system publishes the route only to the VPC system route table, not to VPC custom route tables.'."\n" + ."\n" + .' If you want the custom route table to contain this route, manually add the route. For more information, see [CreateRouteEntry](~~448722~~).'."\n" + .'- **false**: Does not publish the destination route to the VPC.'."\n" + ."\n" + .' You must manually add a destination route with the next hop pointing to the VPN gateway instance in both the VPC system route table and custom route tables. Otherwise, the VPC cannot access resources in the destination CIDR block through the IPsec-VPN connection.', 'type' => 'boolean', 'required' => true, 'docRequired' => true, 'example' => 'true', 'title' => ''], + ], + [ + 'name' => 'Description', + 'in' => 'query', + 'schema' => ['description' => 'The description of the destination route.'."\n" + ."\n" + .'The description must be **1** to **100** characters in length and cannot start with `http://` or `https://`.', 'type' => 'string', 'required' => false, 'example' => 'mytest', 'title' => ''], + ], + [ + 'name' => 'OverlayMode', + 'in' => 'query', + 'schema' => ['description' => 'The tunneling protocol. Set the value to **Ipsec** (IPsec tunneling protocol).', 'type' => 'string', 'required' => false, 'example' => 'Ipsec', 'title' => ''], + ], + [ + 'name' => 'DryRun', + 'in' => 'query', + 'schema' => ['description' => 'Specifies whether to perform a dry run, without performing the actual request. Valid values:'."\n" + .'- **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.'."\n" + .'- **false** (default): performs a dry run and performs the actual request. If the request passes the dry run, an HTTP 2xx status code is returned and the operation is performed.', 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], ], ], 'responses' => [ 200 => [ - 'headers' => [], 'schema' => [ + 'description' => 'The response parameters.', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => 'C44F62BE-9CE7-4277-B117-69243F3988BF', - ], + 'NextHop' => ['description' => 'The next hop of the destination route.', 'type' => 'string', 'example' => 'vco-bp15oes1py4i66rmd****', 'title' => ''], + 'Weight' => ['description' => 'The weight of the destination route. Valid values:'."\n" + ."\n" + .'- **100**: The destination route has a high priority.'."\n" + .'- **0**: The destination route has a low priority.', 'type' => 'integer', 'format' => 'int32', 'example' => '0', 'title' => ''], + 'RouteDest' => ['description' => 'The destination CIDR block of the destination route.', 'type' => 'string', 'example' => '10.0.0.0/24', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '5BE01CD7-5A50-472D-AC14-CA181C5C03BE', 'title' => ''], + 'Description' => ['description' => 'The description of the destination route.', 'type' => 'string', 'example' => 'mytest', 'title' => ''], + 'State' => ['description' => 'The publish status of the destination route.'."\n" + ."\n" + .'- **published**: The destination route has been published to the route table of the VPC.'."\n" + ."\n" + .'- **normal**: The destination route has not been published to the route table of the VPC.', 'type' => 'string', 'example' => 'published', 'title' => ''], + 'CreateTime' => ['description' => 'The timestamp when the destination route was created. Unit: milliseconds.'."\n" + ."\n" + .'The timestamp follows the UNIX timestamp format, which represents the total number of milliseconds that have elapsed since January 1, 1970, 00:00:00 UTC.', 'type' => 'integer', 'format' => 'int64', 'example' => '1492747187000', 'title' => ''], + 'OverlayMode' => ['description' => 'The tunneling protocol. Set the value to **Ipsec** (IPsec tunneling protocol).', 'type' => 'string', 'example' => 'Ipsec', 'title' => ''], + 'VpnInstanceId' => ['description' => 'The instance ID of the VPN gateway.', 'type' => 'string', 'example' => 'vpn-bp1a3kqjiiq9legfx****', 'title' => ''], ], + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'IncorrectStatus', - 'errorMessage' => 'HaVip can be deleted only when it is status is Available.', - ], - [ - 'errorCode' => 'DependencyViolation.HaVipReferedByRouteEntry', - 'errorMessage' => 'HaVip cannot be deleted when it is refered by a route table entry as next hop.', - ], - [ - 'errorCode' => 'DependencyViolation.HaVipAssociatedWithEIP', - 'errorMessage' => 'HaVip cannot be deleted when it is associated with EIP.', - ], - [ - 'errorCode' => 'IncorrectHaVipStatus', - 'errorMessage' => 'HaVip?s status is invalid.', - ], - [ - 'errorCode' => 'Forbidden.HaVip', - 'errorMessage' => 'No permissions to perform operations on HAVIPs. Please apply for privilege--vpc_privilege_allow_buy_havip_instance.', - ], - [ - 'errorCode' => 'InvalidRegionId.NotFound', - 'errorMessage' => 'The RegionId provided does not exist in our records.', - ], + ['errorCode' => 'Resource.QuotaFull', 'errorMessage' => 'The quota of resource is full', 'description' => ''], + ['errorCode' => 'VpnGateway.Configuring', 'errorMessage' => 'The specified service is configuring.', 'description' => ''], + ['errorCode' => 'VpnGateway.FinancialLocked', 'errorMessage' => 'The specified service is financial locked.', 'description' => ''], + ['errorCode' => 'VpnRouteEntry.AlreadyExists', 'errorMessage' => 'The specified route entry is already exist.', 'description' => 'The route already exists.'], + ['errorCode' => 'VpnRouteEntry.Conflict', 'errorMessage' => 'The specified route entry has conflict.', 'description' => 'Route conflicts exist.'], + ['errorCode' => 'VpnRouteEntry.ConflictSSL', 'errorMessage' => 'The specified route entry has conflict with SSL client.', 'description' => 'The route conflicts with the SSL client.'], + ['errorCode' => 'VpnRouteEntry.BackupRoute', 'errorMessage' => 'Validate backup route entry failed.', 'description' => 'Active/standby routes failed authentication.'], + ['errorCode' => 'VpnRouteEntry.InvalidWeight', 'errorMessage' => 'Invalid route entry weight value.', 'description' => 'The weight specified for the route is invalid.'], + ['errorCode' => 'InvalidNextHop.NotFound', 'errorMessage' => 'The specified NextHop does not exist.', 'description' => 'The specified next hop does not exist.'], + ['errorCode' => 'IllegalParam.RouteDest', 'errorMessage' => 'The specified RouteDest is invalid', 'description' => 'The destination address is invalid.'], + ['errorCode' => 'OperationFailed.RouteConflict', 'errorMessage' => 'Operation failed because there is already a route in VPC route table to another VPN on the same network block.', 'description' => 'Operation failed because there is already a route in VPC route table to another VPN on the same network block.'], + ['errorCode' => 'OperationFailed.InvalidCidrBlock', 'errorMessage' => 'Operation failed because the specified network block is invalid.', 'description' => 'The CIDR block is invalid.'], + ['errorCode' => 'QuotaExceeded.VpnRouteEntry', 'errorMessage' => 'The number of route entries to the VPN gateway in the VPC routing table has reached the quota limit.', 'description' => 'The number of route entries to the VPN gateway in the VPC routing table has reached the quota limit.'], + ['errorCode' => 'TaskConflict', 'errorMessage' => 'The operation is too frequent, please wait a moment and try again.', 'description' => 'Your requests are too frequent. Try again later.'], + ['errorCode' => 'VpnTask.CONFLICT', 'errorMessage' => 'Vpn task has conflict.', 'description' => 'The VPN operation conflicts. Try again later.'], + ['errorCode' => 'IncorrectVpcStatus', 'errorMessage' => 'Current VPC status does not support this operation.', 'description' => ''], + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', 'description' => ''], + ['errorCode' => 'InvalidCidrBlock.Malformed', 'errorMessage' => 'Specified CIDR block is not valid.', 'description' => ''], + ['errorCode' => 'DryRunOperation', 'errorMessage' => 'Request validation has been passed with DryRun flag set.', 'description' => 'The request passed the dry run.'], ], - 404 => [ - [ - 'errorCode' => 'InvalidHaVipId.NotFound', - 'errorMessage' => 'The specified HaVip does not exist in the specified region.', - ], + 403 => [ + ['errorCode' => 'Forbbiden.SubUser', 'errorMessage' => 'User not authorized to operate on the specified resource as your account is created by another user.', 'description' => ''], + ['errorCode' => 'Forbidden', 'errorMessage' => 'User not authorized to operate on the specified resource.', 'description' => 'You do not have the permissions to manage the specified resource. Apply for the permissions and try again.'], + ], + [ + ['errorCode' => 'InvalidVpnGatewayInstanceId.NotFound', 'errorMessage' => 'The specified vpn gateway instance id does not exist.', 'description' => ''], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"C44F62BE-9CE7-4277-B117-69243F3988BF\\"\\n}","errorExample":""},{"type":"xml","example":" \\r\\nC44F62BE-9CE7-4277-B117-69243F3988BF \\r\\n","errorExample":""}]', - 'title' => 'DeleteHaVip', - 'summary' => 'Deletes a high-availability virtual IP address (HaVip).', - 'description' => 'When you call this operation, take note of the following rules:'."\n" - ."\n" - .'* The HaVip must be in the available state before it can be deleted.'."\n" + 'staticInfo' => ['returnType' => 'asynchronous', 'callback' => 'Vpc::2016-04-28::DescribeVpnGateway', 'callbackInterval' => 1000, 'maxCallbackTimes' => 30], + 'title' => 'Create a destination route', + 'description' => '### Before you begin'."\n" ."\n" - .'* Make sure that no routes are destined for the HaVip.'."\n" + .'- Before you create a destination route, make sure that you have created an IPsec-VPN connection. For more information, see [CreateVpnConnection](~~2526947~~).'."\n" + .'- Before you create a destination route, we recommend that you understand the matching rules of destination routes. For more information, see [Configure destination routes](~~112476~~).'."\n" ."\n" - .'* Make sure that no elastic IP addresses (EIPs) are associated with the HaVip.'."\n" + .'### Limits'."\n" ."\n" - .'* **DeleteHaVip** is an asynchronous operation. After a request is sent, the system returns a request ID while deleting the HaVip in the background. Call the [DescribeHaVips](~~114611~~) operation to query the status of an HaVip:'."\n" - ."\n" - .' * The **Deleting** state indicates the HaVip is being deleted.'."\n" - .' * If no HaVip is found, the HaVip is deleted.'."\n" - ."\n" - .'* You cannot repeatedly call the **DeleteHaVip** operation to delete the same HaVip.', + .'- Destination routes with a destination CIDR block of 0.0.0.0/0 are not supported.'."\n" + .'- Do not add destination routes with a destination CIDR block of 100.64.0.0/10, a subnet of 100.64.0.0/10, or a CIDR block that contains 100.64.0.0/10. Such routing entries may cause the console to fail to display the status of IPsec-VPN connections or cause IPsec-VPN connection negotiation to be failed.'."\n" + .'- The **CreateVpnRouteEntry** operation is asynchronous. After you invoke this operation, the system returns the destination route configuration, but the destination route has not been created yet. The background creation node is still in progress. You can invoke [DescribeVpnGateway](~~73720~~) to query the creation status of the destination route:'."\n" + .' - If the VPN gateway instance is in the **updating** state, the destination route is being created.'."\n" + .' - If the VPN gateway instance is in the **active** state, the destination route has been created.'."\n" + .'- The **CreateVpnRouteEntry** operation does not support concurrent creation of destination routes for the same VPN gateway.', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'UnassociateHaVip' => [ - 'methods' => [ - 'post', - 'get', + 'changeSet' => [ + ['createdAt' => '2025-05-23T06:50:36.000Z', 'description' => 'Error codes changed, Request parameters changed, Response parameters changed'], + ['createdAt' => '2024-05-10T02:03:15.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-01-06T06:24:22.000Z', 'description' => 'Error codes changed, Response parameters changed'], + ['createdAt' => '2022-12-13T03:56:53.000Z', 'description' => 'Error codes changed'], ], - 'schemes' => [ - 'http', - 'https', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '60', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CreateVpnRouteEntry'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], + ], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'vpc:CreateVpnRouteEntry', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VpnGateway', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vpngateway/{#VpnGatewayId}'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"NextHop\\": \\"vco-bp15oes1py4i66rmd****\\",\\n \\"Weight\\": 0,\\n \\"RouteDest\\": \\"10.0.0.0/24\\",\\n \\"RequestId\\": \\"5BE01CD7-5A50-472D-AC14-CA181C5C03BE\\",\\n \\"Description\\": \\"mytest\\",\\n \\"State\\": \\"published\\",\\n \\"CreateTime\\": 1492747187000,\\n \\"OverlayMode\\": \\"Ipsec\\",\\n \\"VpnInstanceId\\": \\"vpn-bp1a3kqjiiq9legfx****\\"\\n}","type":"json"}]', + ], + 'DeactivateRouterInterface' => [ + 'summary' => 'Deactivates a router interface.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', - 'systemTags' => [ - 'operationType' => 'delete', - ], + 'systemTags' => ['operationType' => 'update'], 'parameters' => [ - [ - 'name' => 'ClientToken', - 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request. 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 and cannot exceed 64 characters in length.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '0c593ea1-3bea-11e9-b96b-88e9fe63****', - ], - ], [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the HAVIP.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-shanghai', - ], + 'schema' => ['description' => 'The ID of the region where the router interface is deployed.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'HaVipId', + 'name' => 'RouterInterfaceId', 'in' => 'query', + 'schema' => ['description' => 'The ID of the router interface.'."\n", 'type' => 'string', 'required' => true, 'example' => 'ri-2zeo3xzyf38r4urz****', 'title' => ''], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => 'The ID of the HAVIP that you want to disassociate.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'havip-2zeo05qre24nhrqpy****', + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => 'BE7EB53A-99AB-4DA8-AEDE-75FA90D046A6', 'title' => ''], + ], + 'title' => '', + 'example' => '', ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'IncorrectRIStatus', 'errorMessage' => 'RouterInterface can be operated by this action only when it\'s status is Active.', 'description' => 'You can perform this operation only when the router interface is in the Active state.'], + ['errorCode' => 'Forbidden.FinancialLocked', 'errorMessage' => 'This RouterInterface is financiel locked because of bills outstanding.', 'description' => ''], + ['errorCode' => 'Forbbiden.InvaildOwner', 'errorMessage' => 'The RouterInterface owener error', 'description' => 'The information about the router owner is invalid.'], + ['errorCode' => 'OperationFailed.OperationLocked', 'errorMessage' => 'Operation failed because OperationLocked.', 'description' => 'The operation failed because the instance is locked due to O&M.'], + ], + 404 => [ + ['errorCode' => 'InvalidRegionId.NotFound', 'errorMessage' => 'The RegionId provided does not exist in our records.', 'description' => ''], + ['errorCode' => 'InvalidRouterInterfaceId.NotFound', 'errorMessage' => 'The specified RouterInterfaceId does not exist in our record.', 'description' => ''], + ], + ], + 'title' => 'DeactivateRouterInterface', + 'changeSet' => [ + ['createdAt' => '2024-04-19T07:23:36.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-07-21T03:54:45.000Z', 'description' => 'Error codes changed'], + ], + 'ramActions' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"BE7EB53A-99AB-4DA8-AEDE-75FA90D046A6\\"\\n}","errorExample":""},{"type":"xml","example":"\\n BE7EB53A-99AB-4DA8-AEDE-75FA90D046A6\\n","errorExample":""}]', + ], + 'DeactiveFlowLog' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'InstanceId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the ECS instance or ENI from which you want to disassociate the HAVIP.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'i-faf344422ffsfad****', - ], + 'AK' => [], ], + ], + 'operationType' => 'readAndWrite', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'paid'], + 'parameters' => [ [ - 'name' => 'Force', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to forcefully disassociate the HAVIP from the ECS instance or ENI. Valid values:'."\n" - ."\n" - .'* **True**'."\n" - .'* **False** (default)'."\n" - ."\n" - .'> If you set the value to **False**, you cannot disassociate the HAVIP from the primary instance.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'True', - ], + 'schema' => ['description' => 'The ID of the region where you want to create the flow log. You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'example' => 'cn-qingdao'], ], [ - 'name' => 'InstanceType', + 'name' => 'FlowLogId', 'in' => 'query', - 'schema' => [ - 'description' => 'The type of the instance from which you want to disassociate the HAVIP. Valid values:'."\n" - ."\n" - .'* **EcsInstance**: an ECS instance'."\n" - .'* **NetworkInterface**: an ENI'."\n" - ."\n" - .'> If you want to disassociate the HAVIP from an ENI, this parameter is required.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'EcsInstance', - ], + 'schema' => ['description' => 'The ID of the flow log.'."\n", 'type' => 'string', 'required' => true, 'example' => 'fl-m5e8vhz2t21sel1nq****'], ], ], 'responses' => [ 200 => [ - 'headers' => [], 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => 'C44F62BE-9CE7-4277-B117-69243F3988BF', - ], + 'Success' => ['description' => 'Indicates whether the operation is successful. Valid values:'."\n" + ."\n" + .'* **true**: yes'."\n" + .'* **false**: no'."\n", 'type' => 'string', 'example' => 'true'], + 'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => 'F7DDDC17-FA06-4AC2-8F35-59D2470FCFC1'], ], - 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'IncorrectHaVipStatus', - 'errorMessage' => 'HaVip can be operated by this action only when it\'s status is InUse.', - ], - [ - 'errorCode' => 'IncorrectInstanceStatus', - 'errorMessage' => 'ECS instance can be operated by this action only when it\'s status is Running or Stopped.', - ], - [ - 'errorCode' => 'ResourceNotAssociated', - 'errorMessage' => 'The HaVip and ECS instance are not associated.', - ], - [ - 'errorCode' => 'Forbidden.UnassociateMaster', - 'errorMessage' => 'Unassociating a master instance is not allowed unless the parameter Force is True.', - ], - [ - 'errorCode' => 'HA.VIP.NOT.ASSOCIATED.WITH.INSTANCE', - 'errorMessage' => 'ha vip not associated with instance.', - ], - [ - 'errorCode' => 'OperationFailed.DistibuteLock', - 'errorMessage' => 'Distibute lock fail.', - ], - [ - 'errorCode' => 'OperationFailed.QueryNetworkInterfaceInfo', - 'errorMessage' => 'Failed to query network interface information.', - ], - [ - 'errorCode' => 'IllegalParam.InstanceType', - 'errorMessage' => 'The specified instance type is invalid. Only ECS instances and network interface are allowed.', - ], - [ - 'errorCode' => 'InvalidNetworkInterfaceId.NotFound', - 'errorMessage' => 'The network interface is not found.', - ], - [ - 'errorCode' => 'ResourceNotFound.Instance', - 'errorMessage' => 'The specified binding resource is not found.', - ], - [ - 'errorCode' => 'Forbidden.HaVip', - 'errorMessage' => 'No permissions to perform operations on HAVIPs. Please apply for privilege--vpc_privilege_allow_buy_havip_instance.', - ], - [ - 'errorCode' => 'InvalidRegionId.NotFound', - 'errorMessage' => 'The RegionId provided does not exist in our records.', - ], - ], - 404 => [ - [ - 'errorCode' => 'InvalidHaVipId.NotFound', - 'errorMessage' => 'The specified HaVip does not exist in the specified region.', - ], - [ - 'errorCode' => 'InvalidInstanceId.NotFound', - 'errorMessage' => 'The specified Instance does not exist in the specified region.', - ], - ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'The request processing has failed due to some unknown error.', - ], + ['errorCode' => 'IncorrectBusinessStatus.FlowLog', 'errorMessage' => 'The business status of flowLog is incorrect.', 'description' => 'The error message returned because you cannot create flow logs in the current business state.'], + ['errorCode' => 'InvalidInstanceId', 'errorMessage' => 'Instance does not exist.', 'description' => 'The error message returned because the specified instance does not exist.'], + ['errorCode' => 'InvalidStatus', 'errorMessage' => 'Current instance status is not valid for this action.', 'description' => ''], + ['errorCode' => 'FlowLogNumberOverLimit', 'errorMessage' => 'This user has reached the maximum instance number of flowlog.', 'description' => ''], + ['errorCode' => 'InvalidRegionId.NotFound', 'errorMessage' => 'The RegionId provided does not exist in our records.', 'description' => ''], + ['errorCode' => 'InvalidInstanceId.NotFound', 'errorMessage' => 'The specfied instance is not existed.', 'description' => ''], + ['errorCode' => 'IncorrectStatus.flowlog', 'errorMessage' => 'Invalid flowlog status.', 'description' => 'The flow log cannot be disabled because it is in an invalid state.'], + ['errorCode' => 'Forbidden.OperateManagedFlowLog', 'errorMessage' => 'Authentication is failed for operate managed flowlog.', 'description' => 'Authentication failed when operating the managed flow log.'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"C44F62BE-9CE7-4277-B117-69243F3988BF\\"\\n}","errorExample":""},{"type":"xml","example":"\\n C44F62BE-9CE7-4277-B117-69243F3988BF\\n","errorExample":""}]', - 'title' => 'UnassociateHaVip', - 'summary' => 'Disassociates a high-availability virtual IP address (HaVip) from an Elastic Compute Service (ECS) in a virtual private cloud (VPC) or from an elastic network interface (ENI).', - 'description' => '## [](#)'."\n" - ."\n" - .'When you call this operation, take note of the following limits:'."\n" - ."\n" - .'* The ECS instance must be in the **Running** or **Stopped** state.'."\n" - ."\n" - .'* The HaVip must be in the **Available** or **InUse** state.'."\n" - ."\n" - .'* **UnassociateHaVip** is an asynchronous operation. After a request is sent, the system returns a request ID and an instance ID and runs the task in the background. You can call the [DescribeHaVips](~~114611~~) operation to query the status of an HaVip:'."\n" + 'staticInfo' => ['returnType' => 'asynchronous', 'callback' => 'Vpc::2016-04-28::DescribeFlowLogs', 'callbackInterval' => 3000, 'maxCallbackTimes' => 10], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Success\\": \\"true\\",\\n \\"RequestId\\": \\"F7DDDC17-FA06-4AC2-8F35-59D2470FCFC1\\"\\n}","errorExample":""},{"type":"xml","example":"\\n true\\n F7DDDC17-FA06-4AC2-8F35-59D2470FCFC1\\n","errorExample":""}]', + 'title' => 'DeactiveFlowLog', + 'summary' => 'Disables a flow log. After a flow log is disabled, the system no longer captures the traffic information about a resource.', + 'description' => '* The **DeactiveFlowLog** operation is asynchronous. After you send the request, the system returns a request ID. However, the operation is still being performed in the system background. You can call the [DescribeFlowLogs](~~87923~~) operation to query the status of a flow log:'."\n" ."\n" - .' * If the HaVip is in the **Unassociating** state, the HaVip is being disassociated.'."\n" - .' * If the HaVip is in the **Inuse** or **Available** state, the HaVip is disassociated.'."\n" + .' * If the flow log is in the **Deactivating** state, the flow log is being disabled.'."\n" + .' * If the flow log is in the **Inactive** state, the flow log is disabled.'."\n" ."\n" - .'* You cannot repeatedly call the **UnassociateHaVip** operation to disassociate an HaVip within the specified period of time.', + .'* You cannot repeatedly call the **DeactiveFlowLog** operation to disable a flow log within the specified period of time.', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'ModifyHaVipAttribute' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [ + ['createdAt' => '2022-12-16T05:09:24.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2021-11-17T07:53:33.000Z', 'description' => 'Error codes changed'], ], + 'ramActions' => [], + ], + 'DeleteBgpGroup' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', - 'systemTags' => [ - 'operationType' => 'update', - ], + 'deprecated' => false, + 'systemTags' => ['operationType' => 'delete', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ - [ - 'name' => 'ClientToken', - 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'You can use the client to generate the value, but you must make sure that it is unique among all requests. ClientToken can contain only ASCII characters.'."\n" - ."\n" - .'> If you do not specify this parameter, **ClientToken** is set to the value of **RequestId**. The value of **RequestId** for each API request may be different.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '02fb3da4-130e-11e9-8e44-0016e0****', - ], - ], [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region to which the HaVip belongs.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.', - 'type' => 'string', - 'required' => true, - 'example' => 'cn-shanghai', - ], - ], - [ - 'name' => 'HaVipId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the HaVip.', - 'type' => 'string', - 'required' => true, - 'example' => 'havip-2zeo05qre24nhrqp****', - ], + 'schema' => ['description' => 'The region ID of the BGP group.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'Description', + 'name' => 'BgpGroupId', 'in' => 'query', - 'schema' => [ - 'description' => 'The description of the HaVip.'."\n" - ."\n" - .'The description must be 1 to 255 characters in length and cannot start with `http://` or `https://`.', - 'type' => 'string', - 'required' => false, - 'example' => 'This is my HaVip.', - ], + 'schema' => ['description' => 'The ID of the BGP group.'."\n", 'type' => 'string', 'required' => true, 'example' => 'bgpg-bp1k25cyp26cllath****', 'title' => ''], ], [ - 'name' => 'Name', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The name of the HaVip.'."\n" - ."\n" - .'The name must be 1 to 128 characters in length, and cannot start with `http://` or `https://`.', - 'type' => 'string', - 'required' => false, - 'example' => 'test', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'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.'."\n" + ."\n" + .'> 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.'."\n", 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-426655440000', 'title' => ''], ], ], 'responses' => [ 200 => [ - 'headers' => [], 'schema' => [ - 'description' => '', + 'description' => 'The request ID.'."\n", 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => 'C44F62BE-9CE7-4277-B117-69243F3988BF', - ], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B45', 'title' => ''], ], + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'IncorrectStatus', - 'errorMessage' => 'HaVip can be deleted only when it\'s status is Available or InUse.', - ], - [ - 'errorCode' => 'InvalidDescription.Malformed', - 'errorMessage' => 'The specified Description is wrongly formed.', - ], - [ - 'errorCode' => 'Abs.Vpc.InvalidName.Malformed', - 'errorMessage' => 'The specified Name is not valid.', - ], - [ - 'errorCode' => 'Forbidden.HaVip', - 'errorMessage' => 'No permissions to perform operations on HAVIPs. Please apply for privilege--vpc_privilege_allow_buy_havip_instance.', - ], - [ - 'errorCode' => 'InvalidRegionId.NotFound', - 'errorMessage' => 'The RegionId provided does not exist in our records.', - ], + ['errorCode' => 'QuotaExceeded.Bgp', 'errorMessage' => 'bgp peer count per vbr quota exceed.', 'description' => 'The number of BGP peers in the VBR has reached the upper limit.'], + ['errorCode' => 'QuotaExceeded.Nqa', 'errorMessage' => 'nqa count per vbr quota exceed.', 'description' => ''], + ['errorCode' => 'QuotaExceeded.BgpNetwork', 'errorMessage' => 'bgp network count per vbr quota exceed.', 'description' => ''], + ['errorCode' => 'InvalidPeerIpAddress', 'errorMessage' => 'multi pconn peer ip can not be null.', 'description' => ''], + ['errorCode' => 'InvalidVbrNetwork', 'errorMessage' => 'vbr netowrk not exists', 'description' => ''], + ['errorCode' => 'InvalidBgpGroup', 'errorMessage' => 'bgp group not exists', 'description' => ''], + ['errorCode' => 'InvalidBgpName.Malformed', 'errorMessage' => 'Specified Bgp Group name is not valid.', 'description' => ''], + ['errorCode' => 'InvalidBgpDiscription.Malformed', 'errorMessage' => 'Specified Bgp Group description is not valid.', 'description' => ''], + ['errorCode' => 'InvalidBgpAuthkey.Malformed', 'errorMessage' => 'Specified Bgp Group authkey is not valid.', 'description' => ''], + ['errorCode' => 'InvalidIP.Malformed', 'errorMessage' => 'Ip malformed.', 'description' => ''], + ['errorCode' => 'InvalidPeerAsn.Malformed', 'errorMessage' => 'invalid peer asn cannot equals aliyun asn:45104', 'description' => ''], + ['errorCode' => 'InvalidParams.NotNull', 'errorMessage' => 'invalid peer asn cannot equals aliyun asn:45104', 'description' => ''], + ['errorCode' => 'InvalidParams.NotFound', 'errorMessage' => 'instance not found', 'description' => ''], + ['errorCode' => 'InvalidParams.AlreadyExists', 'errorMessage' => 'bgp network already exists', 'description' => 'The BGP network already exists.'], + ['errorCode' => 'InvalidStatus.CannotOperate', 'errorMessage' => 'invalid status cannot operate', 'description' => ''], + ['errorCode' => 'InvalidParams.PeerIpAddressMustPointOut', 'errorMessage' => 'vbr has 0 or more than 1 subif ,point out peerIpAddress.', 'description' => 'You must set the PeerIpAddress parameter.'], + ['errorCode' => 'InvalidParams.PeerIpAddressInUse', 'errorMessage' => 'peer ip address in use ,cannot create bgp peer.', 'description' => 'The peer IP address is being used. Therefore, you cannot use it to create a BGP peer.'], + ['errorCode' => 'OperationDenied.VbrAttachEcrInMiddleStatus', 'errorMessage' => 'The operation is not allowed because of VBR attach or detach ECR in middle status.', 'description' => 'The current operation cannot be performed because the VBR is in the process of loading or unloading the leased line gateway. Please wait a moment and try again.'], + ['errorCode' => 'OperationFailed.ResourceLockedBySystem', 'errorMessage' => 'The specified resource is locked by system.', 'description' => 'The operating resource is locked by the system and cannot be operated temporarily.'], ], 404 => [ - [ - 'errorCode' => 'InvalidHaVipId.NotFound', - 'errorMessage' => 'The specified HaVip does not exist in the specified region.', - ], + ['errorCode' => 'InvalidRegionId.NotFound', 'errorMessage' => 'Specified value of "regionId" is not supported.', 'description' => ''], + ['errorCode' => 'DependencyViolation.BgpPeer', 'errorMessage' => 'Specified object has dependent resources bgp peer.', 'description' => 'A dependent BGP peer exists.'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"C44F62BE-9CE7-4277-B117-69243F3988BF\\"\\n}","errorExample":""},{"type":"xml","example":"\\n C44F62BE-9CE7-4277-B117-69243F3988BF\\n","errorExample":""}]', - 'title' => 'ModifyHaVipAttribute', - 'summary' => 'Modifies the name and description of a high-availability virtual IP address (HaVip).', - 'description' => 'You cannot repeatedly call the **ModifyHaVipAttribute** operation to modify the name and description of an HaVip within the specified periods of time.', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'DescribeHaVips' => [ - 'summary' => 'Queries HaVips in a region.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'title' => 'DeleteBgpGroup', + 'summary' => 'Deletes a Border Gateway Protocol (BGP) group.', + 'changeSet' => [ + ['createdAt' => '2024-06-19T02:32:26.000Z', 'description' => 'Error codes changed'], ], + 'ramActions' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B45\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 54B48E3D-DF70-471B-AA93-08E683A1B45\\n","errorExample":""}]', + 'operationType' => 'readAndWrite', + ], + 'DeleteBgpNetwork' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'get', - ], + 'systemTags' => ['operationType' => 'delete'], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the HaVip.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.', - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The region ID of the BGP group.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'PageNumber', + 'name' => 'DstCidrBlock', 'in' => 'query', - 'schema' => [ - 'description' => 'The number of the returned page. Default value: **1**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'minimum' => '1', - 'example' => '1', - 'default' => '1', - ], + 'schema' => ['description' => 'The CIDR block of the virtual private cloud (VPC) or vSwitch that you want to connect to a data center.'."\n", 'type' => 'string', 'required' => true, 'example' => '10.110.192.12/32', 'title' => ''], ], [ - 'name' => 'PageSize', + 'name' => 'RouterId', 'in' => 'query', - 'schema' => [ - 'description' => 'The number of entries per page. Maximum value: **50**. Default value: **10**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '50', - 'minimum' => '1', - 'example' => '10', - 'default' => '10', - ], + 'schema' => ['description' => 'The ID of the VBR.'."\n", 'type' => 'string', 'required' => true, 'example' => 'vrt-bp1lhl0taikrteen8****', 'title' => ''], ], [ - 'name' => 'Filter', + 'name' => 'ClientToken', 'in' => 'query', - 'style' => 'repeatList', + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'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.'."\n" + ."\n" + .'> 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.'."\n", 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-426655440000', 'title' => ''], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => 'The details of the filter condition.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => 'The filter keys. You can specify at most five filter keys. Valid values of **N**: **1 to 5**. The following filter keys are supported:'."\n" - ."\n" - .'* **VpcId**: virtual private cloud (VPC) ID'."\n" - .'* **VSwitchId**: vSwitch ID'."\n" - .'* **Status**: HaVip status'."\n" - .'* **HaVipId**: HaVip ID'."\n" - .'* **HaVipAddress**: HaVip IP address'."\n" - ."\n" - .'You can specify multiple values for each filter key. The logical operator among multiple values is OR. If one value is matched, the filter key is matched.'."\n" - ."\n" - .'The logical operator among multiple filter keys is AND. HaVips can be queried only if all filter keys are matched.', - 'type' => 'string', - 'required' => false, - 'example' => 'HaVipId', - ], - 'Value' => [ - 'description' => 'The value of the filter key. Valid values of **N**: **1 to 5**.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The filter values for filter keys. You can specify multiple filter values for one key. The logical operator between filter values is OR. If one filter value is matched, the filter key is matched.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'Active', - ], - 'required' => false, - 'example' => 'havip-bp19o63nequs01i8d****', - 'maxItems' => 10, - ], - ], - 'required' => false, + 'description' => 'The request ID.'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B45', 'title' => ''], ], - 'required' => false, - 'maxItems' => 6, + 'title' => '', + 'example' => '', ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'QuotaExceeded.Bgp', 'errorMessage' => 'bgp peer count per vbr quota exceed.', 'description' => 'The number of BGP peers in the VBR has reached the upper limit.'], + ['errorCode' => 'QuotaExceeded.Nqa', 'errorMessage' => 'nqa count per vbr quota exceed.', 'description' => ''], + ['errorCode' => 'QuotaExceeded.BgpNetwork', 'errorMessage' => 'bgp network count per vbr quota exceed.', 'description' => ''], + ['errorCode' => 'InvalidPeerIpAddress', 'errorMessage' => 'multi pconn peer ip can not be null.', 'description' => ''], + ['errorCode' => 'InvalidVbrNetwork', 'errorMessage' => 'vbr netowrk not exists', 'description' => ''], + ['errorCode' => 'InvalidBgpGroup', 'errorMessage' => 'bgp group not exists', 'description' => ''], + ['errorCode' => 'InvalidBgpName.Malformed', 'errorMessage' => 'Specified Bgp Group name is not valid.', 'description' => ''], + ['errorCode' => 'InvalidBgpDiscription.Malformed', 'errorMessage' => 'Specified Bgp Group description is not valid.', 'description' => ''], + ['errorCode' => 'InvalidBgpAuthkey.Malformed', 'errorMessage' => 'Specified Bgp Group authkey is not valid.', 'description' => ''], + ['errorCode' => 'InvalidIP.Malformed', 'errorMessage' => 'Ip malformed.', 'description' => ''], + ['errorCode' => 'InvalidPeerAsn.Malformed', 'errorMessage' => 'invalid peer asn cannot equals aliyun asn:45104', 'description' => ''], + ['errorCode' => 'InvalidParams.NotNull', 'errorMessage' => 'invalid peer asn cannot equals aliyun asn:45104', 'description' => ''], + ['errorCode' => 'InvalidParams.NotFound', 'errorMessage' => 'instance not found', 'description' => ''], + ['errorCode' => 'InvalidParams.AlreadyExists', 'errorMessage' => 'bgp network already exists', 'description' => 'The BGP network already exists.'], + ['errorCode' => 'InvalidStatus.CannotOperate', 'errorMessage' => 'invalid status cannot operate', 'description' => ''], + ['errorCode' => 'InvalidParams.PeerIpAddressMustPointOut', 'errorMessage' => 'vbr has 0 or more than 1 subif ,point out peerIpAddress.', 'description' => 'You must set the PeerIpAddress parameter.'], + ['errorCode' => 'InvalidParams.PeerIpAddressInUse', 'errorMessage' => 'peer ip address in use ,cannot create bgp peer.', 'description' => 'The peer IP address is being used. Therefore, you cannot use it to create a BGP peer.'], + ], + 404 => [ + ['errorCode' => 'InvalidRegionId.NotFound', 'errorMessage' => 'Specified value of "regionId" is not supported.', 'description' => ''], + ], + ], + 'title' => 'DeleteBgpNetwork', + 'summary' => 'Deletes an advertised Border Gateway Protocol (BGP) network.', + 'changeSet' => [], + 'ramActions' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B45\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 54B48E3D-DF70-471B-AA93-08E683A1B45\\n","errorExample":""}]', + ], + 'DeleteBgpPeer' => [ + 'summary' => 'Calls DeleteBgpPeer to delete a specified BGP peer.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'readAndWrite', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'delete', 'riskType' => 'none', 'chargeType' => 'free'], + 'parameters' => [ [ - 'name' => 'ResourceGroupId', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the resource group to which the HaVip belongs.', - 'type' => 'string', - 'required' => false, - 'example' => 'rg-bp67acfmxazb4ph****', - ], + 'schema' => ['description' => 'The region where the BGP group is located.'."\n" + ."\n" + .'You can obtain the region ID by calling the [DescribeRegions](~~36063~~) API.', 'type' => 'string', 'required' => true, 'example' => 'cn-shanghai', 'title' => ''], ], [ - 'name' => 'Tags', + 'name' => 'BgpPeerId', 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => 'The tag list.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => 'The key of tag N to add to the resource. You can specify up to 20 tag keys. The tag key cannot be an empty string.'."\n" - ."\n" - .'The tag key can be up to 128 characters in length. It cannot start with `aliyun` or `acs:`, and cannot contain `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'FinanceDept', - ], - 'Value' => [ - 'description' => '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.'."\n" - ."\n" - .'The tag value can be up to 128 characters in length and cannot contain `http://` or `https://`. The tag value cannot start with `aliyun` or `acs:`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'FinanceJoshua', - ], - ], - 'required' => false, - ], - 'required' => false, - 'maxItems' => 10, - ], + 'schema' => ['description' => 'The ID of the BGP peer.', 'type' => 'string', 'required' => true, 'example' => 'bgp-wz977wcrmb69a********', 'title' => ''], + ], + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'Generate a parameter value from your client to ensure uniqueness across different requests. ClientToken only supports ASCII characters.'."\n" + ."\n" + .'> If you do not specify this parameter, the system automatically uses the **RequestId** of the API request as the **ClientToken**. The **RequestId** may vary for each API request.', 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-426655440000', 'title' => ''], ], ], 'responses' => [ 200 => [ - 'headers' => [], 'schema' => [ - 'description' => 'The number of entries per page.'."\n", + 'description' => 'The request ID.', 'type' => 'object', 'properties' => [ - 'PageSize' => [ - 'description' => 'The number of entries per page.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '33E480C5-B46F-4CA5-B6FD-D77C746E86AB', - ], - 'PageNumber' => [ - 'description' => 'The page number.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'TotalCount' => [ - 'description' => 'The number of entries returned.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'HaVips' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'HaVip' => [ - 'description' => 'The details about the HaVip.', - 'type' => 'array', - 'items' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'VpcId' => [ - 'description' => 'The ID of the VPC to which the HaVip belongs.', - 'type' => 'string', - 'example' => 'vpc-bp1kcm36tevkpms97****', - ], - 'Status' => [ - 'description' => 'The status of the HaVip. Valid values:'."\n" - ."\n" - .'* **Creating**: The server group is being created.'."\n" - .'* **Available**: The FULLNAT entry is available.'."\n" - .'* **Deleting**', - 'type' => 'string', - 'example' => 'Available', - ], - 'HaVipId' => [ - 'description' => 'The ID of the HaVip.', - 'type' => 'string', - 'example' => 'havip-bp149uyvut73dpld****', - ], - 'AssociatedInstanceType' => [ - 'description' => 'The type of the instance with which the HaVip is associated. Valid values:'."\n" - ."\n" - .'* **EcsInstance**: Elastic Compute Service (ECS) instance'."\n" - .'* **NetworkInterface**: elastic network interface (ENI)', - 'type' => 'string', - 'example' => 'EcsInstance', - ], - 'CreateTime' => [ - 'description' => 'The time when the HaVip was created.', - 'type' => 'string', - 'example' => '2021-07-03T14:25:26Z', - ], - 'ChargeType' => [ - 'description' => 'The parameter is invalid. No value is returned.'."\n", - 'type' => 'string', - 'example' => 'none', - ], - 'RegionId' => [ - 'description' => 'The ID of the region to which the HaVip belongs.', - 'type' => 'string', - 'example' => 'cn-hangzhou', - ], - 'VSwitchId' => [ - 'description' => 'The ID of the vSwitch to which the HaVip belongs.', - 'type' => 'string', - 'example' => 'vsw-bp1pkt1fba8e824ez****', - ], - 'IpAddress' => [ - 'description' => 'The private IP address of the HaVip.', - 'type' => 'string', - 'example' => '192.168.24.5', - ], - 'Description' => [ - 'description' => 'The description of the HaVip.', - 'type' => 'string', - 'example' => 'My HaVip', - ], - 'MasterInstanceId' => [ - 'description' => 'The ID of the active instance that is associated with the HaVip.', - 'type' => 'string', - 'example' => 'i-bp145q7glnuzdvz****', - ], - 'Name' => [ - 'description' => 'The name of the HaVip.', - 'type' => 'string', - 'example' => 'test', - ], - 'AssociatedEipAddresses' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'associatedEipAddresse' => [ - 'description' => 'The list of EIPs associated with the HaVip.', - 'type' => 'array', - 'items' => [ - 'description' => 'The EIP that is associated with the HaVip.', - 'type' => 'string', - 'example' => '121.12.XX.XX', - ], - ], - ], - ], - 'AssociatedInstances' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'associatedInstance' => [ - 'description' => 'The information about the instance associated with the HaVip.', - 'type' => 'array', - 'items' => [ - 'description' => 'The ID of the instance with which the HaVip is associated.', - 'type' => 'string', - 'example' => 'i-bp145q7glnuzdvzu21****', - ], - ], - ], - ], - 'ResourceGroupId' => [ - 'description' => 'The ID of the resource group to which the HaVip belongs.', - 'type' => 'string', - 'example' => 'rg-bp67acfmxazb4ph****', - ], - 'Tags' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'Tag' => [ - 'description' => 'The tag list.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => 'The key of tag N added to the resource.'."\n", - 'type' => 'string', - 'example' => 'FinanceDept', - ], - 'Value' => [ - 'description' => 'The value of tag N added to the resource.'."\n", - 'type' => 'string', - 'example' => 'FinanceJoshua', - ], - ], - ], - ], - ], - ], - ], - ], - ], - ], - ], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '611CB80C-B6A9-43DB-9E38-0B0AC3D9B58F', 'title' => ''], ], + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'Forbidden.HaVip', - 'errorMessage' => 'No permissions to perform operations on HAVIPs. Please apply for privilege--vpc_privilege_allow_buy_havip_instance.', - ], - [ - 'errorCode' => 'InvalidRegionId.NotFound', - 'errorMessage' => 'The RegionId provided does not exist in our records.', - ], - [ - 'errorCode' => 'InvalidFilterKey.ValueNotSupported', - 'errorMessage' => 'Specified filter key is not supported: Filter.X.key', - ], + ['errorCode' => 'QuotaExceeded.Bgp', 'errorMessage' => 'bgp peer count per vbr quota exceed.', 'description' => 'The number of BGP peers in the VBR has reached the upper limit.'], + ['errorCode' => 'QuotaExceeded.Nqa', 'errorMessage' => 'nqa count per vbr quota exceed.', 'description' => ''], + ['errorCode' => 'QuotaExceeded.BgpNetwork', 'errorMessage' => 'bgp network count per vbr quota exceed.', 'description' => ''], + ['errorCode' => 'InvalidPeerIpAddress', 'errorMessage' => 'multi pconn peer ip can not be null.', 'description' => ''], + ['errorCode' => 'InvalidVbrNetwork', 'errorMessage' => 'vbr netowrk not exists', 'description' => ''], + ['errorCode' => 'InvalidBgpGroup', 'errorMessage' => 'bgp group not exists', 'description' => ''], + ['errorCode' => 'InvalidBgpName.Malformed', 'errorMessage' => 'Specified Bgp Group name is not valid.', 'description' => ''], + ['errorCode' => 'InvalidBgpDiscription.Malformed', 'errorMessage' => 'Specified Bgp Group description is not valid.', 'description' => ''], + ['errorCode' => 'InvalidBgpAuthkey.Malformed', 'errorMessage' => 'Specified Bgp Group authkey is not valid.', 'description' => ''], + ['errorCode' => 'InvalidIP.Malformed', 'errorMessage' => 'Ip malformed.', 'description' => ''], + ['errorCode' => 'InvalidPeerAsn.Malformed', 'errorMessage' => 'invalid peer asn cannot equals aliyun asn:45104', 'description' => ''], + ['errorCode' => 'InvalidParams.NotNull', 'errorMessage' => 'invalid peer asn cannot equals aliyun asn:45104', 'description' => ''], + ['errorCode' => 'InvalidParams.NotFound', 'errorMessage' => 'instance not found', 'description' => ''], + ['errorCode' => 'InvalidParams.AlreadyExists', 'errorMessage' => 'bgp network already exists', 'description' => 'The BGP network already exists.'], + ['errorCode' => 'InvalidStatus.CannotOperate', 'errorMessage' => 'invalid status cannot operate', 'description' => ''], + ['errorCode' => 'InvalidParams.PeerIpAddressMustPointOut', 'errorMessage' => 'vbr has 0 or more than 1 subif ,point out peerIpAddress.', 'description' => 'You must set the PeerIpAddress parameter.'], + ['errorCode' => 'InvalidParams.PeerIpAddressInUse', 'errorMessage' => 'peer ip address in use ,cannot create bgp peer.', 'description' => 'The peer IP address is being used. Therefore, you cannot use it to create a BGP peer.'], + ['errorCode' => 'InvalidBgpPeer.NotFound', 'errorMessage' => 'Bgp peer not found.', 'description' => ''], + ['errorCode' => 'IncorrectStatus.BgpPeer', 'errorMessage' => 'Invalid BgpPeer status cannot operate.', 'description' => 'The status of the BGP peer does not support this operation.'], + ['errorCode' => 'OperationFailed.ResourceLockedBySystem', 'errorMessage' => 'The specified resource is locked by system.', 'description' => 'The operating resource is locked by the system and cannot be operated temporarily.'], + ], + 404 => [ + ['errorCode' => 'InvalidRegionId.NotFound', 'errorMessage' => 'Specified value of "regionId" is not supported.', 'description' => ''], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"PageSize\\": 10,\\n \\"RequestId\\": \\"33E480C5-B46F-4CA5-B6FD-D77C746E86AB\\",\\n \\"PageNumber\\": 1,\\n \\"TotalCount\\": 1,\\n \\"HaVips\\": {\\n \\"HaVip\\": [\\n {\\n \\"VpcId\\": \\"vpc-bp1kcm36tevkpms97****\\",\\n \\"Status\\": \\"Available\\",\\n \\"HaVipId\\": \\"havip-bp149uyvut73dpld****\\",\\n \\"AssociatedInstanceType\\": \\"EcsInstance\\",\\n \\"CreateTime\\": \\"2021-07-03T14:25:26Z\\",\\n \\"ChargeType\\": \\"none\\",\\n \\"RegionId\\": \\"cn-hangzhou\\",\\n \\"VSwitchId\\": \\"vsw-bp1pkt1fba8e824ez****\\",\\n \\"IpAddress\\": \\"192.168.24.5\\",\\n \\"Description\\": \\"My HaVip\\",\\n \\"MasterInstanceId\\": \\"i-bp145q7glnuzdvz****\\",\\n \\"Name\\": \\"test\\",\\n \\"AssociatedEipAddresses\\": {\\n \\"associatedEipAddresse\\": [\\n \\"121.12.XX.XX\\"\\n ]\\n },\\n \\"AssociatedInstances\\": {\\n \\"associatedInstance\\": [\\n \\"i-bp145q7glnuzdvzu21****\\"\\n ]\\n },\\n \\"ResourceGroupId\\": \\"rg-bp67acfmxazb4ph****\\",\\n \\"Tags\\": {\\n \\"Tag\\": [\\n {\\n \\"Key\\": \\"FinanceDept\\",\\n \\"Value\\": \\"FinanceJoshua\\"\\n }\\n ]\\n }\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 10\\n 33E480C5-B46F-4CA5-B6FD-D77C746E86AB\\n 1\\n 1\\n \\n vpc-bp1kcm36tevkpms97****\\n Available\\n havip-bp149uyvut73dpld****\\n EcsInstance\\n 2021-07-03T14:25:26Z\\n none\\n cn-hangzhou\\n vsw-bp1pkt1fba8e824ez****\\n 192.168.24.5\\n My HaVip\\n i-bp145q7glnuzdvz****\\n test\\n 121.12.XX.XX\\n i-bp145q7glnuzdvzu21****\\n rg-bp67acfmxazb4ph****\\n \\n FinanceDept\\n FinanceJoshua\\n \\n \\n","errorExample":""}]', - 'title' => 'DescribeHaVips', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'CreateTrafficMirrorFilterRules' => [ - 'summary' => 'Creates an inbound or outbound rule for traffic mirror.', - 'methods' => [ - 'post', - 'get', + 'title' => 'Delete a specified BGP peer', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DeleteBgpPeer'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'vpc:DeleteBgpPeer', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VirtualBorderRouter', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:virtualborderrouter/{#VirtualBorderRouterId}'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"611CB80C-B6A9-43DB-9E38-0B0AC3D9B58F\\"\\n}","type":"json"}]', + ], + 'DeleteCommonBandwidthPackage' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'write', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'create', - 'riskType' => 'none', - 'chargeType' => 'paid', - ], + 'systemTags' => ['operationType' => 'delete', 'riskType' => 'none', 'chargeType' => 'free', 'autoTest' => true, 'tenantRelevance' => 'tenant'], 'parameters' => [ [ - 'name' => 'TrafficMirrorFilterId', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the filter.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'tmf-j6cmls82xnc86vtpe****', - ], + 'schema' => ['description' => 'The ID of the region where the Internet Shared Bandwidth instance is created.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'ClientToken', + 'name' => 'Force', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'You can use the client to generate the value, but you must make sure that it is unique among different requests. The client token can contain only ASCII characters.'."\n" - ."\n" - .'> If you do not set this parameter, the system uses **RequestId** as **ClientToken**. **RequestId** may be different for each API request.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-426655440000', - ], + 'schema' => ['description' => 'Specifies whether to forcefully delete the Internet Shared Bandwidth instance. Valid values:'."\n" + ."\n" + .'* **false** (default): deletes the Internet Shared Bandwidth instance only when no EIPs are associated with the Internet Shared Bandwidth instance.'."\n" + .'* **true**: disassociates all EIPs from the Internet Shared Bandwidth instance and deletes the Internet Shared Bandwidth instance.'."\n", 'type' => 'string', 'required' => false, 'example' => 'false', 'title' => ''], ], [ - 'name' => 'DryRun', + 'name' => 'BandwidthPackageId', 'in' => 'query', + 'schema' => ['description' => 'The ID of the Internet Shared Bandwidth instance.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cbwp-2ze2ic1xd2qeqk145pn4u', 'title' => ''], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => 'Specifies whether to check the request without performing the operation. Valid values:'."\n" - ."\n" - .'* **true**: checks the request without performing the operation. The system checks the required parameters, request format, and limits. If the request fails the precheck, an error message is returned. If the request passes the precheck, the `DryRunOperation` error code is returned.'."\n" - .'* **false** (default): sends the request. After the request passes the check, the operation is performed.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', + 'description' => 'The response parameters.'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => 'B400EF57-60E3-4D61-B8FB-7FA8F72DF5A6', 'title' => ''], + ], + 'title' => '', + 'example' => '', ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'MissingParam.%s', 'errorMessage' => 'The param of %s is missing.', 'description' => 'The required parameter is not set.'], + ['errorCode' => 'DependencyViolation.Ips', 'errorMessage' => 'The specified BandwidthPackageId has dependent resource ips.', 'description' => ''], + ['errorCode' => 'ForbiddenAction.PrePaid', 'errorMessage' => 'The specified BandwidthPackageId is PrePaid.', 'description' => ''], + ['errorCode' => 'OperationFailed.BandwidthPackageNotEmpty', 'errorMessage' => 'Eip bandwidth package not empty.', 'description' => 'The EIP bandwidth plan cannot be deleted because EIPs are associated with the EIP bandwidth plan.'], + ['errorCode' => 'InvalidOperation.DeletionProtection', 'errorMessage' => 'The instance cannnot delete because of deletion protecion.', 'description' => ''], + ['errorCode' => 'OperationUnsupported.Release95Instance', 'errorMessage' => 'Releasing instances that payBy95 or payByOld95 is unsupported.', 'description' => ''], + ['errorCode' => 'OperationFailed.AddIpTaskInProcessing', 'errorMessage' => 'Operation failed because add ip to common bandwidth task in processing.', 'description' => 'You cannot delete the resource because EIPs are being associated with the EIP bandwidth plan.'], + ], + 404 => [ + ['errorCode' => 'InvalidRegionId.NotFound', 'errorMessage' => 'The specified RegionId does not exist in our records.', 'description' => ''], + ['errorCode' => 'InvalidBandwidthPackageId.NotFound', 'errorMessage' => 'The specified BandwidthPackageId does not exist in our records.', 'description' => ''], + ], + ], + 'staticInfo' => ['returnType' => 'asynchronous', 'callback' => 'Vpc::2016-04-28::DescribeCommonBandwidthPackages', 'callbackInterval' => 3, 'maxCallbackTimes' => 10], + 'title' => 'DeleteCommonBandwidthPackage', + 'summary' => 'Deletes an Internet Shared Bandwidth instance.', + 'description' => 'You cannot repeatedly call the **DeleteCommonBandwidthPackage** operation to delete an Internet Shared Bandwidth instance within the specified period of time.'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2023-07-24T02:52:25.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2022-07-12T11:39:11.000Z', 'description' => 'Error codes changed'], + ], + 'ramActions' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"B400EF57-60E3-4D61-B8FB-7FA8F72DF5A6\\"\\n}","errorExample":""},{"type":"xml","example":"\\n B400EF57-60E3-4D61-B8FB-7FA8F72DF5A6\\n","errorExample":""}]', + ], + 'DeleteCustomerGateway' => [ + 'summary' => 'Calls the DeleteCustomerGateway operation to delete a specified customer gateway.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'IngressRules', + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'delete', 'riskType' => 'none', 'chargeType' => 'free'], + 'parameters' => [ + [ + 'name' => 'RegionId', 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => 'The information about the inbound rules.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The information about the inbound rule.'."\n", - 'type' => 'object', - 'properties' => [ - 'Action' => [ - 'description' => 'The policy of the inbound rule. Valid values:'."\n" - ."\n" - .'* **accept**: collects network traffic.'."\n" - .'* **drop**: drops network traffic.'."\n", - 'type' => 'string', - 'required' => false, - 'docRequired' => true, - 'example' => 'accept', - ], - 'SourceCidrBlock' => [ - 'description' => 'The source CIDR block of the inbound traffic.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '10.0.0.0/24', - ], - 'Protocol' => [ - 'description' => 'The protocol that is used by the inbound traffic to be mirrored. Valid values:'."\n" - ."\n" - .'* **ALL**: all protocols'."\n" - .'* **ICMP**: Internet Control Message Protocol.'."\n" - .'* **TCP**: Transmission Control Protocol.'."\n" - .'* **UDP**: User Datagram Protocol.'."\n", - 'type' => 'string', - 'required' => false, - 'docRequired' => true, - 'example' => 'TCP', - ], - 'IpVersion' => [ - 'description' => 'The IP version of the instance. The following value may be returned:'."\n" - ."\n" - .'* **IPv4**: IPv4'."\n" - .'* **IPv6**: IPv6'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'IPv4', - ], - 'DestinationPortRange' => [ - 'description' => 'The destination port range of the inbound traffic. Valid value: **1** to **65535**. Separate the first and the last port with a forward slash (/). For example, **1/200** or **80/80**.'."\n" - ."\n" - .'> If the **IngressRules.N.Protocol** parameter is set to **ALL** or **ICMP**, you do not need to set this parameter. In this case, all ports are available.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '80/120', - ], - 'Priority' => [ - 'description' => 'The priority of the inbound rule. A smaller value indicates a higher priority. The maximum value of **N** is **10**. You can configure up to 10 inbound rules for a filter.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', - ], - 'DestinationCidrBlock' => [ - 'description' => 'The destination CIDR block of the inbound traffic.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '10.0.0.0/24', - ], - 'SourcePortRange' => [ - 'description' => 'The source port range of the inbound traffic. Valid value: **1** to **65535**. Separate the first and last port with a forward slash (/). For example **1/200** and **80/80**. You cannot set this parameter to \\*\\*-1/-1\\*\\*, which indicates all ports.'."\n" - ."\n" - .'> If the **IngressRules.N.Protocol** parameter is set to **ALL** or **ICMP**, you do not need to set this parameter. In this case, all ports are available.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '80/120', - ], - ], - 'required' => false, - ], - 'required' => false, - 'maxItems' => 10, - ], + 'schema' => ['description' => 'The region ID of the customer gateway. You can obtain the region ID by calling the [DescribeRegions](~~36063~~) operation.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-shanghai', 'title' => ''], ], [ - 'name' => 'EgressRules', + 'name' => 'ClientToken', 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => 'The information about the outbound rule.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The information about the outbound rule.'."\n", - 'type' => 'object', - 'properties' => [ - 'Action' => [ - 'description' => 'The collection policy of the outbound rule. Valid values:'."\n" - ."\n" - .'* **accept**: accepts network traffic.'."\n" - .'* **drop**: drops network traffic.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'accept', - ], - 'SourceCidrBlock' => [ - 'description' => 'The source CIDR block of the outbound traffic.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '10.0.0.0/24', - ], - 'Protocol' => [ - 'description' => 'The protocol that is used by the outbound traffic to be mirrored. Valid values:'."\n" - ."\n" - .'* **ALL**: all protocols'."\n" - .'* **ICMP**: Internet Control Message Protocol.'."\n" - .'* **TCP**: Transmission Control Protocol.'."\n" - .'* **UDP**: User Datagram Protocol.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'TCP', - ], - 'IpVersion' => [ - 'description' => 'The IP version of the instance. Valid values:'."\n" - ."\n" - .'* **IPv4**: IPv4'."\n" - .'* **IPv6**: IPv6'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'IPv4', - ], - 'DestinationPortRange' => [ - 'description' => 'The destination port range of the outbound traffic. Valid value: **1** to **65535**. Separate the first and last port with a forward slash (/). For example **1/200** and **80/80**. You cannot set this parameter to \\*\\*-1/-1\\*\\*, which indicates all ports.'."\n" - ."\n" - .'> If **EgressRules.N.Protocol** is set to **ALL** or **ICMP**, you do not need to set this parameter. In this case, all ports are available.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '22/40', - ], - 'Priority' => [ - 'description' => 'The priority of the outbound rule. A smaller value indicates a higher priority. The maximum value of **N** is **10**. You can configure up to 10 outbound rules for a filter.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', - ], - 'DestinationCidrBlock' => [ - 'description' => 'The destination CIDR block of the outbound traffic.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '10.0.0.0/24', - ], - 'SourcePortRange' => [ - 'description' => 'The source port range of the outbound traffic. Valid value: **1** to **65535**. Separate the first and last port with a forward slash (/). For example **1/200** and **80/80**. You cannot set this parameter to \\*\\*-1/-1\\*\\*, which indicates all ports.'."\n" - ."\n" - .'> If **EgressRules.N.Protocol** is set to **ALL** or **ICMP**, you do not need to set this parameter. In this case, all ports are available.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '22/40', - ], - ], - 'required' => false, - ], - 'required' => false, - 'maxItems' => 10, - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'The client generates this parameter value, which must be unique among different requests. The maximum length is 64 ASCII characters.'."\n" + ."\n" + .'> If you do not specify this parameter, the system uses the **RequestId** of the API request as the **ClientToken**. The **RequestId** may be different for each API request.', 'type' => 'string', 'required' => false, 'example' => '02fb3da4-130e-11e9-8e44-0016e04****', 'title' => ''], ], [ - 'name' => 'RegionId', + 'name' => 'CustomerGatewayId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region to which the mirrored traffic belongs.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list. For more information about regions that support traffic mirror, see [Overview of traffic mirror](~~207513~~).', - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hongkong', - ], + 'schema' => ['description' => 'The ID of the customer gateway instance.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cgw-bp1pvpl9r9adju6l5****', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => '', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => '07F272E2-6AD5-433A-8207-A607C76F1676', - ], - 'IngressRules' => [ - 'description' => 'The list of inbound rules.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'InstanceId' => [ - 'description' => 'The ID of the inbound rule.'."\n", - 'type' => 'string', - 'example' => 'tmr-j6c6rtallo51ouzv3****', - ], - ], - ], - ], - 'EgressRules' => [ - 'description' => 'The list of outbound rules.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'InstanceId' => [ - 'description' => 'The ID of the outbound rule.'."\n", - 'type' => 'string', - 'example' => 'tmr-j6cok23ugp53eeib5****', - ], - ], - ], - ], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '606998F0-B94D-48FE-8316-ACA81BB230DA', 'title' => ''], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'ResourceNotFound.TrafficMirrorFilter', - 'errorMessage' => 'The specified resource of traffic mirror filter is not found.', - ], - [ - 'errorCode' => 'IncorrectStatus.TrafficMirrorFilter', - 'errorMessage' => 'The status of traffic mirror filter is incorrect.', - ], - [ - 'errorCode' => 'IncorrectStatus.TrafficMirrorSession', - 'errorMessage' => 'The status of traffic mirror session is incorrect.', - ], - [ - 'errorCode' => 'QuotaExceeded.TrafficMirrorRulesPerFilter', - 'errorMessage' => 'The quota of the number of traffic mirror rules per filter is exceeded.', - ], - [ - 'errorCode' => 'DuplicatedParam.Priority', - 'errorMessage' => 'The specified priority conflicts with the existing priority.', - ], - [ - 'errorCode' => 'UnsupportedRegion', - 'errorMessage' => 'The feature is not supported in current region.', - ], - [ - 'errorCode' => 'IllegalParam.CidrBlock', - 'errorMessage' => 'The specified CidrBlock is illegal.', - ], - [ - 'errorCode' => 'IllegalParam.SourceCidrBlock', - 'errorMessage' => 'The param of SourceCidrBlock %s is illegal.', - ], - [ - 'errorCode' => 'IllegalParam.DestinationCidrBlock', - 'errorMessage' => 'The param of DestinationCidrBlock %s is illegal.', - ], - [ - 'errorCode' => 'IllegalParam.Protocol', - 'errorMessage' => 'The specified Protocol %s is invalid.', - ], + ['errorCode' => 'DependencyViolation.VpnConnection', 'errorMessage' => 'There are vpn connections on specified customer gateway not deleted.', 'description' => 'The error message returned because VPN connections to the specified customer gateway are not deleted.'], + ['errorCode' => 'VpnGateway.task.conflict', 'errorMessage' => 'The VPN is in the configuration state, please wait a while before operating.', 'description' => 'The VPN is in the configuration state, please wait a while before operating.'], + ], + 403 => [ + ['errorCode' => 'Forbbiden.SubUser', 'errorMessage' => 'User not authorized to operate on the specified resource as your account is created by another user.', 'description' => ''], + ['errorCode' => 'Forbidden', 'errorMessage' => 'User not authorized to operate on the specified resource.', 'description' => 'You do not have the permissions to manage the specified resource. Apply for the permissions and try again.'], + ], + [ + ['errorCode' => 'InvalidCustomerGatewayInstanceId.NotFound', 'errorMessage' => 'The specified customer gateway instance id does not exist.', 'description' => 'The specified customer gateway does not exist. Check whether the ID of the customer gateway is correct.'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"07F272E2-6AD5-433A-8207-A607C76F1676\\",\\n \\"IngressRules\\": [\\n {\\n \\"InstanceId\\": \\"tmr-j6c6rtallo51ouzv3****\\"\\n }\\n ],\\n \\"EgressRules\\": [\\n {\\n \\"InstanceId\\": \\"tmr-j6cok23ugp53eeib5****\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\n 07F272E2-6AD5-433A-8207-A607C76F1676\\n \\n tmr-j6c6rtallo51ouzv3****\\n \\n \\n tmr-j6cok23ugp53eeib5****\\n \\n","errorExample":""}]', - 'title' => 'CreateTrafficMirrorFilterRules', - 'description' => '* **CreateTrafficMirrorFilterRules** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call [ListTrafficMirrorFilters](~~261353~~) to query the status of the task.'."\n" - ."\n" - .' * If the inbound or outbound rule is in the **Creating** state, the rule is being created.'."\n" - .' * If the inbound or outbound rule is in the **Created** state, the rule is created.'."\n" - ."\n" - .'* You cannot call **CreateTrafficMirrorFilterRules** within the specified period of time.'."\n", + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'Delete a specified customer gateway', + 'description' => 'Before deleting a customer gateway, make sure that the customer gateway is not associated with any IPsec connections. To delete IPsec connections, see [DeleteVpnAttachment](~~2526938~~) or [DeleteVpnConnection](~~2526948~~).', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DeleteTrafficMirrorFilterRules' => [ - 'summary' => 'Deletes an inbound or outbound rule of a filter for traffic mirror.', - 'methods' => [ - 'post', - 'get', + 'changeSet' => [ + ['createdAt' => '2024-01-04T07:17:11.000Z', 'description' => 'Error codes changed'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DeleteCustomerGateway'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'vpc:DeleteCustomerGateway', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'CustomerGateway', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:customergateway/{#CustomerGatewayId}'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"606998F0-B94D-48FE-8316-ACA81BB230DA\\"\\n}","type":"json"}]', + ], + 'DeleteDhcpOptionsSet' => [ + 'summary' => 'Deletes a DHCP options set.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'write', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'delete', - 'riskType' => 'none', - 'chargeType' => 'free', - ], + 'systemTags' => ['operationType' => 'delete', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ - 'name' => 'TrafficMirrorFilterId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the filter.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'tmf-j6cmls82xnc86vtpe****', - ], - ], - [ - 'name' => 'ClientToken', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'You can use the client to generate the value, but you must make sure that it is unique among different requests. The client token can contain only ASCII characters.'."\n" - ."\n" - .'> If you do not set this parameter, the system uses **RequestId** as **ClientToken**. **RequestId** may be different for each API request.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '0c593ea1-3bea-11e9-b96b-88e9fe63****', - ], + 'schema' => ['description' => 'The region of the DHCP options set to be deleted. You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'DryRun', + 'name' => 'DhcpOptionsSetId', 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to check the request without performing the operation. Valid values:'."\n" - ."\n" - .'* **true**: checks the API request without performing the operation. The system checks the required parameters, request format, and limits. If the request fails the check, an error message is returned. If the request passes the check, the `DryRunOperation` error code is returned.'."\n" - .'* **false** (default): sends the request. After the request passes the check, the operation is performed.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['description' => 'The ID of the DHCP options set to be deleted.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'dopt-o6w0df4epg9zo8isy****', 'title' => ''], ], [ - 'name' => 'TrafficMirrorFilterRuleIds', + 'name' => 'ClientToken', 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => 'The ID of the inbound or outbound rule.', - 'type' => 'array', - 'items' => [ - 'description' => 'The ID of the inbound or outbound rule.', - 'type' => 'string', - 'required' => false, - 'example' => 'tmr-j6cbmubn323k7jlq3****', - ], - 'required' => true, - 'example' => 'tmr-j6cbmubn323k7jlq3****', - 'maxLength' => 128, - 'maxItems' => 100, - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'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.'."\n" + ."\n" + .'> 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.'."\n", 'type' => 'string', 'required' => false, 'example' => '0c593ea1-3bea-11e9-b96b-88e9fe637760', 'title' => ''], ], [ - 'name' => 'RegionId', + 'name' => 'DryRun', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region to which the mirrored traffic belongs. You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list. For more information about regions that support traffic mirror, see [Overview of traffic mirror](~~207513~~).', - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hongkong', - ], + 'schema' => ['description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values:'."\n" + ."\n" + .'**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.'."\n" + ."\n" + .'**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.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => 'The response parameters.'."\n", 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => 'BD8A3F71-00C5-4655-8F55-11F3976C3274', - ], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '0ED8D006-F706-4D23-88ED-E11ED28DCAC0', 'title' => ''], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'ResourceNotFound.TrafficMirrorRule', - 'errorMessage' => 'The specified resource of traffic mirror rule is not found.', - ], - [ - 'errorCode' => 'IncorrectStatus.TrafficMirrorRule', - 'errorMessage' => 'The status of traffic mirror rule is incorrect.', - ], - [ - 'errorCode' => 'IncorrectStatus.TrafficMirrorFilter', - 'errorMessage' => 'The status of traffic mirror filter is incorrect.', - ], - [ - 'errorCode' => 'ResourceNotFound.TrafficMirrorFilter', - 'errorMessage' => 'The specified resource of traffic mirror filter is not found.', - ], - [ - 'errorCode' => 'IncorrectStatus.TrafficMirrorSession', - 'errorMessage' => 'The status of traffic mirror session is incorrect.', - ], + ['errorCode' => 'IncorrectStatus.DhcpOptionsSet', 'errorMessage' => 'The DhcpOptionsSet status does not support this operation.', 'description' => 'The DHCP options set that is associated with the VPC is being configured. As a result, the DHCP options set does not support this operation. You can perform the operation after the status of the DHCP options set is stable.'], + ['errorCode' => 'OperationUnsupported.DhcpOptionsSet', 'errorMessage' => 'The DHCP options set feature in this region is not supported.', 'description' => 'The current region does not support the DHCP options sets feature.'], + ['errorCode' => 'DependencyViolation.VpcAttachment', 'errorMessage' => 'DhcpOptionsSet cannot be deleted when it is attached to VPC.', 'description' => 'The DHCP options set is associated with a VPC and cannot be deleted.'], + ['errorCode' => 'InvalidDhcpOptionsSetId.NotFound', 'errorMessage' => 'The specified dhcpOptionsSetId does not exist.', 'description' => 'The DHCP options set does not exist. Check whether the parameter is set to a valid value.'], + ['errorCode' => 'MissingParam.DhcpOptionsSetId', 'errorMessage' => 'Missing parameter DhcpOptionsSetId.', 'description' => 'Missing parameter DhcpOptionsSetId'], + ['errorCode' => 'InvalidRegionId.NotFound', 'errorMessage' => 'The specified RegionId does not exist.', 'description' => 'The specified region does not exist.'], ], ], - 'staticInfo' => [ - 'returnType' => 'asynchronous', - 'callback' => 'Vpc::2016-04-28::ListTrafficMirrorFilters', - 'callbackInterval' => 3000, - 'maxCallbackTimes' => 10, - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"BD8A3F71-00C5-4655-8F55-11F3976C3274\\"\\n}","errorExample":""},{"type":"xml","example":"\\r\\nBD8A3F71-00C5-4655-8F55-11F3976C3274\\r\\n","errorExample":""}]', - 'title' => 'DeleteTrafficMirrorFilterRules', - 'description' => '* **DeleteTrafficMirrorFilterRules** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call [ListTrafficMirrorFilters](~~261353~~) to query the status of the task.'."\n" + 'title' => 'DeleteDhcpOptionsSet', + 'description' => '## [](#)Description'."\n" + ."\n" + .'* **DeleteDhcpOptionsSet** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call the [GetDhcpOptionsSet](~~189208~~) operation to query the status of the task.'."\n" ."\n" - .' * If the inbound or outbound rule is in the **Deleting** state, the rule is being deleted.'."\n" - .' * If you cannot query the rule, the rule is deleted.'."\n" + .' * If the DHCP options set is in the **Deleting** state, the DHCP options set is being deleted.'."\n" + .' * If you cannot query the DHCP options set, the DHCP options set is deleted.'."\n" ."\n" - .'* You cannot repeatedly call **DeleteTrafficMirrorFilterRules** within the specified period of time.'."\n", + .'* You cannot repeatedly call the **DeleteDhcpOptionsSet** operation to delete a DHCP options set within the specified period of time.'."\n", 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"0ED8D006-F706-4D23-88ED-E11ED28DCAC0\\"\\n}","errorExample":""},{"type":"xml","example":"\\r\\n 8B2F5262-6B57-43F2-97C4-971425462DFE\\r\\n","errorExample":""}]', ], - 'UpdateTrafficMirrorFilterRuleAttribute' => [ - 'summary' => 'Modifies the configuration of an inbound or outbound rule for traffic mirror.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DeleteEnhancedVpnGateway' => [ + 'summary' => 'Deletes a specified enhanced VPN gateway.', + 'path' => '', + 'methods' => ['post', 'get'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], @@ -23236,145 +18119,118 @@ ], 'operationType' => 'readAndWrite', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'update', - 'riskType' => 'none', - 'chargeType' => 'free', - ], + 'systemTags' => ['operationType' => 'delete', 'riskType' => 'high', 'chargeType' => 'free', 'tenantRelevance' => 'tenant'], 'parameters' => [ [ - 'name' => 'TrafficMirrorFilterRuleId', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the inbound or outbound rule.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'tmr-j6c89rzmtd3hhdugq****', - ], + 'schema' => ['description' => 'The ID of the region where the enhanced VPN gateway is deployed.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to obtain the region ID.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'You can use the client to generate the value, but you must make sure that it is unique among different requests. The client token can contain only ASCII characters.'."\n" - ."\n" - .'> If you do not set this parameter, the system uses **RequestId** as **ClientToken**. **RequestId** may be different for each API request.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '0c593ea1-3bea-11e9-b96b-88e9fe637760', - ], + 'schema' => ['description' => 'The client token used to ensure the idempotence of the request.
You can generate this token by using your client, but you must ensure that it is unique for each request. The token can contain only ASCII characters and must not exceed 64 characters in length.
'."\n" + ."\n" + .'> 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.', 'type' => 'string', 'required' => false, 'example' => '02fb3da4-130e-11e9-8e44-0016e04115b', 'title' => ''], ], [ - 'name' => 'DryRun', + 'name' => 'VpnGatewayId', 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to check the request without performing the operation. Valid values:'."\n" - ."\n" - .'* **true**: only checks the API request. The configuration of the inbound or outbound rule is not modified. The system checks the required parameters, request syntax, and limits. If the request fails to pass the check, an error message is returned. If the request passes the precheck, the `DryRunOperation` error code is returned.'."\n" - .'* **false**: sends the request. This is the default value. If the request passes the check, a 2xx HTTP status code is returned and the configuration of the inbound or outbound rule is modified.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['description' => 'The ID of the enhanced VPN gateway.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'vpn-bp1q8bgx4xnkm2ogj****', 'title' => ''], ], - [ - 'name' => 'Priority', - 'in' => 'query', + ], + 'responses' => [ + 200 => [ + 'headers' => [], 'schema' => [ - 'description' => 'The new priority of the inbound or outbound rule. A smaller value indicates a higher priority.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', + 'description' => 'The response object.', + 'title' => 'Schema of Response', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'E9A8AABE-A84B-4AF2-A68A-8E2EA190E7AE', 'title' => ''], + ], + 'example' => '', ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'VpnGateway.Configuring', 'errorMessage' => 'The specified service is configuring.', 'description' => ''], + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', 'description' => ''], + ['errorCode' => 'TaskConflict', 'errorMessage' => 'The eip operate too frequent, TaskConflict.', 'description' => 'Operations are too frequent and tasks conflict with each other.'], + ['errorCode' => 'InvalidVpnGatewayInstanceId.NotFound', 'errorMessage' => 'The specified vpn gateway instance id does not exist.', 'description' => 'The specified VPN gateway does not exist. Check whether the specified VPN gateway is valid.'], + ['errorCode' => 'VpnDependencyViolation.VpnConnection', 'errorMessage' => 'There are vpn connections on specified vpn gateway not deleted.', 'description' => 'The error message returned because VPN connections to the specified vpn gateway are not deleted.'], + ], + 403 => [ + ['errorCode' => 'Forbidden.SubUser', 'errorMessage' => 'User not authorized to operate on the specified resource as your account is created by another user.', 'description' => 'The error message returned because you are unauthorized to perform this operation on the specified resource. Acquire the required permissions and try again.'], + ['errorCode' => 'Forbidden', 'errorMessage' => 'User not authorized to operate on the specified resource.', 'description' => 'You do not have the permissions to manage the specified resource. Apply for the permissions and try again.'], + ['errorCode' => 'ForbiddenRelease', 'errorMessage' => 'Forbidden to release a prepaid instance within validity period', 'description' => ''], + ], [ - 'name' => 'Protocol', - 'in' => 'query', - 'schema' => [ - 'description' => 'The new protocol that is used by the traffic to be mirrored by the inbound or outbound rule. Valid values:'."\n" - ."\n" - .'* **ALL**: all protocols'."\n" - .'* **ICMP**: Internet Control Message Protocol (ICMP)'."\n" - .'* **TCP**: TCP'."\n" - .'* **UDP**: User Datagram Protocol (UDP)'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'ICMP', - ], + ['errorCode' => 'InvalidVpnGatewayInstanceId.NotFound', 'errorMessage' => 'The specified vpn gateway instance id does not exist.', 'description' => ''], ], + ], + 'staticInfo' => ['returnType' => 'asynchronous', 'callback' => 'Vpc::2016-04-28::DescribeVpnGateway', 'callbackInterval' => 6000, 'maxCallbackTimes' => 100], + 'title' => 'Delete a specified enhanced VPN Gateway', + 'description' => '> You cannot delete an enhanced VPN gateway that has an existing IPsec connection.', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], + ], + 'ramActions' => [ [ - 'name' => 'RuleAction', - 'in' => 'query', - 'schema' => [ - 'description' => 'The new action of the inbound or outbound rule. Valid values:'."\n" - ."\n" - .'* **accept**: accepts network traffic.'."\n" - .'* **drop**: drops network traffic.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'accept', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'vpc:DeleteEnhancedVpnGateway', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VpnGateway', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vpngateway/{#VpnGatewayId}'], + ], ], ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"E9A8AABE-A84B-4AF2-A68A-8E2EA190E7AE\\"\\n}","type":"json"}]', + ], + 'DeleteExpressConnect' => [ + 'summary' => 'Deletes an Express Connect instance, including the requester VPC and accepter VPC.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'DestinationCidrBlock', - 'in' => 'query', - 'schema' => [ - 'description' => 'The new destination CIDR block of the inbound or outbound traffic.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '10.0.0.0/24', - ], + 'AK' => [], ], + ], + 'systemTags' => ['operationType' => 'delete'], + 'parameters' => [ [ - 'name' => 'SourceCidrBlock', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The new source CIDR block of the inbound or outbound traffic.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '0.0.0.0/0', - ], + 'schema' => ['description' => 'The region ID of the Express Connect instance. You can call [DescribeRegions](~~36063~~) to obtain the region ID.', 'type' => 'string', 'required' => true, 'example' => 'cn-shanghai', 'title' => ''], ], [ - 'name' => 'DestinationPortRange', + 'name' => 'RouterInterfaceId', 'in' => 'query', - 'schema' => [ - 'description' => 'The new destination port range of the inbound or outbound traffic.'."\n" - ."\n" - .'> If you set **Protocol** to **ICMP**, you cannot change the port range.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '-1/-1', - ], + 'schema' => ['description' => 'The instance ID of the Express Connect instance.', 'type' => 'string', 'required' => true, 'example' => 'ri-119mfjz****', 'title' => ''], ], [ - 'name' => 'SourcePortRange', + 'name' => 'Force', 'in' => 'query', - 'schema' => [ - 'description' => 'The new source port range of the inbound or outbound traffic.'."\n" - ."\n" - .'> If you set **Protocol** to **ICMP**, you cannot change the port range.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '22/40', - ], + 'schema' => ['description' => 'Specifies whether to force delete associated routes.'."\n" + ."\n" + .'- **true**: Force deletes the routes.'."\n" + ."\n" + .'- **false**: Does not delete the routes.', 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], ], [ - 'name' => 'RegionId', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region to which the mirrored traffic belongs.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list. For more information about regions that support traffic mirroring, see [Overview of traffic mirroring](~~207513~~).'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hongkong', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'The token is generated by the client and must be unique across different requests. The token can be up to 64 ASCII characters in length.', 'type' => 'string', 'required' => false, 'example' => '02fb3da4-130e-11e9-8e44-00****', 'title' => ''], ], ], 'responses' => [ @@ -23382,511 +18238,299 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => '02EB8585-D4DC-4E29-A0F4-7C588C82863C', - ], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '980960B0-2969-40BF-8542-EBB34FD358AB', 'title' => ''], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'ResourceNotFound.TrafficMirrorRule', - 'errorMessage' => 'The specified resource of traffic mirror rule is not found.', - ], - [ - 'errorCode' => 'IncorrectStatus.TrafficMirrorRule', - 'errorMessage' => 'The status of traffic mirror rule is incorrect.', - ], - [ - 'errorCode' => 'DuplicatedParam.Priority', - 'errorMessage' => 'The specified priority conflicts with the existing priority.', - ], - [ - 'errorCode' => 'IllegalParam.Protocol', - 'errorMessage' => 'The specified Protocol is invalid.', - ], - [ - 'errorCode' => 'IllegalParam.SourceCidrBlock', - 'errorMessage' => 'The param of SourceCidrBlock is illegal.', - ], - [ - 'errorCode' => 'IllegalParam.DestinationCidrBlock', - 'errorMessage' => 'The param of DestinationCidrBlock is illegal.', - ], + ['errorCode' => 'IncorrectStatus.RouterInterface', 'errorMessage' => 'This openeration would not be allowed because the status of this RouterInterface is not correct.', 'description' => 'The instance cannot be deleted in the current state. Wait until the status of the instance changes and try again.'], + ['errorCode' => 'DependencyViolation.RouterInterfaceReferedByRouteEntry', 'errorMessage' => 'RouterInterface cannot be deleted when it is refered by a route table entry as next hop.', 'description' => 'The router interface is referenced as a next hop by a route entry and cannot be deleted. Delete the route entry before you can delete the router interface.'], + ['errorCode' => 'InvalidRouterInterfaceChargeType.Malformed', 'errorMessage' => 'The prepaid routerinterface can not delete.', 'description' => ''], + ['errorCode' => 'InvalidRouterInterfaceOppositeChargeType.Malformed', 'errorMessage' => 'Opposite routerinterface is prepaid and can not delete.', 'description' => ''], + ['errorCode' => 'IncorrectStatus.Vpc', 'errorMessage' => 'Vpc incorrect status.', 'description' => 'VPC is not in steady state.'], + ['errorCode' => 'OperationFailed.OperationLocked', 'errorMessage' => 'Operation failed because OperationLocked.', 'description' => 'The operation failed because the instance is locked due to O&M.'], + ], + 404 => [ + ['errorCode' => 'InvalidRegionId.NotFound', 'errorMessage' => 'The RegionId provided does not exist in our records.', 'description' => ''], + ['errorCode' => 'InvalidInstanceId.NotFound', 'errorMessage' => 'The InstanceId provided does not exist in our records.', 'description' => ''], + ['errorCode' => 'InvalidRouterInterfaceId.NotFound', 'errorMessage' => 'The routerInterface is not exist.', 'description' => ''], + ['errorCode' => 'IncorrectStatus.VSwitchOrRouteEntry', 'errorMessage' => 'vpc has no stable subnet or route entry.', 'description' => ''], + ['errorCode' => 'DependencyViolation.ClassicLinkEcsRouteEntry', 'errorMessage' => 'RouterInterface cannot be deleted when it is used by cross account classicLink.', 'description' => ''], + ], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => 'Internal system error.', 'description' => 'Internal system error.'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"02EB8585-D4DC-4E29-A0F4-7C588C82863C\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 02EB8585-D4DC-4E29-A0F4-7C588C82863C\\n","errorExample":""}]', - 'title' => 'UpdateTrafficMirrorFilterRuleAttribute', - 'description' => '* The **UpdateTrafficMirrorFilterRuleAttribute** operation is asynchronous. After you send the request, the system returns a request ID. However, the operation is still being performed in the system background. You can call the [ListTrafficMirrorFilters](~~261353~~) operation to query the status of an inbound or outbound rule:'."\n" - ."\n" - .' * If the rule is in the **Modifying** state, the rule is being modified.'."\n" - .' * If the rule is in the **Created** state, the rule is modified.'."\n" - ."\n" - .'* You cannot repeatedly call the **UpdateTrafficMirrorFilterRuleAttribute** operation to modify an inbound or outbound rule within the specified period of time.', + 'title' => 'Delete an express connect instance', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'CreateTrafficMirrorFilter' => [ - 'summary' => 'Creates a filter for traffic mirror.', - 'methods' => [ - 'post', - 'get', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DeleteExpressConnect'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'vpc:DeleteRouterInterface', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'RouterInterface', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:routerinterface/{#RouterInterfaceId}'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"980960B0-2969-40BF-8542-EBB34FD358AB\\"\\n}","type":"json"}]', + ], + 'DeleteExpressConnectTrafficQos' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'write', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'create', - 'riskType' => 'none', - 'chargeType' => 'paid', - 'autoTest' => true, - 'tenantRelevance' => 'publicInformation', - ], + 'systemTags' => ['operationType' => 'delete', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ - 'name' => 'TrafficMirrorFilterDescription', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The description of the filter.'."\n" - ."\n" - .'The description must be 1 to 256 characters in length and cannot start with `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'this is a filter.', - ], + 'schema' => ['description' => 'The region ID of the QoS policy.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the region ID.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-shanghai'."\n", 'title' => ''], ], [ - 'name' => 'TrafficMirrorFilterName', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The name of the filter.'."\n" - ."\n" - .'The name must be 1 to 128 characters in length, and cannot start with `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'abc', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'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.'."\n" + ."\n" + .'> If you do not specify this parameter, the system automatically uses the **RequestId** of the API request as the **ClientToken**. The **RequestId** of each API request may be different.', 'type' => 'string', 'required' => false, 'docRequired' => true, 'example' => '123e4567-e89b-12d3-a456-426655440000', 'title' => ''], ], [ 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'You can use the client to generate the value, but you must ensure that the value is unique among all requests. The client token can contain only ASCII characters.'."\n" - ."\n" - .'> If you do not set this parameter, the system uses **RequestId** as **ClientToken**. **RequestId** may be different for each API request.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-426655440000', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'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.'."\n" + ."\n" + .'> If you do not specify this parameter, the system automatically uses the **RequestId** of the API request as the **ClientToken**. The **RequestId** of each API request may be different.', 'type' => 'string', 'required' => false, 'docRequired' => true, 'example' => '123e4567-e89b-12d3-a456-426655440000', 'title' => ''], ], [ - 'name' => 'DryRun', + 'name' => 'QosId', 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to perform a dry run. Valid values:'."\n" - ."\n" - .'* **true**: performs a dry run. The system checks the required parameters, request syntax, and 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.'."\n" - .'* **false**: performs a dry run and sends the request. If the request passes the dry run, a 2xx HTTP status code is returned and the operation is performed. This is the default value.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['title' => '', 'description' => 'The QoS policy ID.', 'type' => 'string', 'required' => true, 'example' => 'qos-2giu0a6vd5x0mv****'."\n"], ], - [ - 'name' => 'IngressRules', - 'in' => 'query', - 'style' => 'repeatList', + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => 'The information about inbound rules.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The information about inbound rules.'."\n", - 'type' => 'object', - 'properties' => [ - 'Action' => [ - 'description' => 'The collection policy of the inbound rule. Valid values:'."\n" - ."\n" - .'* **accept**: collects the network traffic.'."\n" - .'* **drop**: does not collect the network traffic.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'accept', - ], - 'SourceCidrBlock' => [ - 'description' => 'The source CIDR block of the inbound traffic.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '10.0.0.0/24', - ], - 'Protocol' => [ - 'description' => 'The type of the protocol is used by the inbound traffic that you want to mirror. Valid values:'."\n" - ."\n" - .'* **ALL**: all protocols'."\n" - .'* **ICMP**: Internet Control Message Protocol.'."\n" - .'* **TCP**: Transmission Control Protocol.'."\n" - .'* **UDP**: User Datagram Protocol.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'TCP', - ], - 'IpVersion' => [ - 'description' => 'The IP version of the instance. The following value may be returned:'."\n" - ."\n" - .'* **IPv4**'."\n" - .'* **IPv6**'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'IPv4', - ], - 'DestinationPortRange' => [ - 'description' => 'The destination port range of the inbound traffic. Valid value: **1** to **65535**. Separate the first port and last port with a forward slash (/). For example, **1/200** or **80/80**.'."\n" - ."\n" - .'> If you set **IngressRules.N.Protocol** to **ALL** or **ICMP**, you do not need to set this parameter. In this case, all ports are available.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '80/120', - ], - 'Priority' => [ - 'description' => 'The priority of the inbound rule. A smaller value indicates a higher priority. The maximum value of **N** is **10**. You can configure up to 10 inbound rules for a filter.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', - ], - 'DestinationCidrBlock' => [ - 'description' => 'The destination CIDR block of the inbound traffic.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '10.0.0.0/24', - ], - 'SourcePortRange' => [ - 'description' => 'The source port range of the inbound traffic. Valid value: **1** to **65535**. Separate the first port and last port with a forward slash (/). For example, **1/200** or **80/80**.'."\n" - ."\n" - .'> If **IngressRules.N.Protocol** is set to **ALL** or **ICMP**, you do not need to specify this parameter. This indicates that all ports are available.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '80/120', - ], - ], - 'required' => false, + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '606998F0-B94D-48FE-8316-ACA81BB230DA', 'title' => ''], ], - 'required' => false, - 'maxItems' => 10, + 'description' => '', + 'title' => '', + 'example' => '', ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'IllegalParam.%s', 'errorMessage' => 'The param of %s is illegal.', 'description' => 'The parameter is invalid.'], + ['errorCode' => 'IncorrectStatus.Qos', 'errorMessage' => 'The status of QoS is incorrect.', 'description' => 'The status of the QoS policy is abnormal and the operation cannot be performed. Try again later.'], + ['errorCode' => 'EcQoSConflict', 'errorMessage' => 'The specified QoS is conflict with other QoS.', 'description' => 'The current QoS configuration conflicts with other configurations. Please try again later.'], + ['errorCode' => 'EcQoSWithPconnNotSupportDelete', 'errorMessage' => 'The Qos policy associated with Pconn cannot be deleted. Please disassociate it first.', 'description' => 'Your current QoS policy has been associated with a physical connection and cannot be deleted directly. Please disassociate it and try again.'], + ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'Delete an Express Connect traffic QoS policy', + 'summary' => 'Calls the DeleteExpressConnectTrafficQos operation to delete an Express Connect traffic QoS policy.', + 'description' => 'A QoS policy that is associated with an Express Connect circuit cannot be directly deleted. You must disassociate it first.', + 'changeSet' => [ + ['createdAt' => '2024-03-29T08:01:41.000Z', 'description' => 'Request parameters changed'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DeleteExpressConnectTrafficQos'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], + ], + 'ramActions' => [ [ - 'name' => 'EgressRules', - 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => 'The information about the outbound rules.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The information about the outbound rules.'."\n", - 'type' => 'object', - 'properties' => [ - 'Action' => [ - 'description' => 'The collection policy of the outbound rule. Valid values:'."\n" - ."\n" - .'* **accept**: collects the network traffic.'."\n" - .'* **drop**: does not collect the network traffic.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'accept', - ], - 'SourceCidrBlock' => [ - 'description' => 'The source CIDR block of the outbound traffic.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '10.0.0.0/24', - ], - 'Protocol' => [ - 'description' => 'The type of the protocol that is used by the outbound traffic that you want to mirror. Valid values:'."\n" - ."\n" - .'* **ALL**: all protocols'."\n" - .'* **ICMP**: Internet Control Message Protocol.'."\n" - .'* **TCP**: Transmission Control Protocol.'."\n" - .'* **UDP**: User Datagram Protocol.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'TCP', - ], - 'IpVersion' => [ - 'description' => 'The IP version of the instance. The following value may be returned:'."\n" - ."\n" - .'* **IPv4**: IPv4'."\n" - .'* **IPv6**: IPv6'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'IPv4', - ], - 'DestinationPortRange' => [ - 'description' => 'The destination port range of the outbound traffic. Valid values for a port: **1** to **65535**. Separate the first port and the last port with a forward slash (/). Examples: **1/200** and **80/80**. You cannot set this parameter to only -1/-1, which specifies all ports.'."\n" - ."\n" - .'> If **EgressRules.N.Protocol** is set to **ALL** or **ICMP**, you do not need to specify this parameter. This indicates that all ports are available.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '22/40', - ], - 'Priority' => [ - 'description' => 'The priority of the outbound rule. A smaller value indicates a higher priority. The maximum value of **N** is **10**. You can configure up to 10 outbound rules for a filter.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', - ], - 'DestinationCidrBlock' => [ - 'description' => 'The destination CIDR block of the outbound traffic.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '10.0.0.0/24', - ], - 'SourcePortRange' => [ - 'description' => 'The source port range of the outbound traffic. Valid values: **1** to **65535**. Separate the first port and the last port with a forward slash (/). Examples: **1/200** and **80/80**. You cannot set this parameter to only -1/-1, which specifies all ports.'."\n" - ."\n" - .'> If **EgressRules.N.Protocol** is set to **ALL** or **ICMP**, you do not need to specify this parameter. This indicates that all ports are available.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '22/40', - ], - ], - 'required' => false, + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'vpc:DeleteExpressConnectTrafficQos', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'All Resource', 'arn' => '*'], ], - 'required' => false, - 'maxItems' => 10, ], ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"606998F0-B94D-48FE-8316-ACA81BB230DA\\"\\n}","type":"json"}]', + ], + 'DeleteExpressConnectTrafficQosQueue' => [ + 'summary' => 'Invokes the DeleteExpressConnectTrafficQosQueue operation to delete a QoS queue for Express Connect.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'delete', 'riskType' => 'none', 'chargeType' => 'free'], + 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region to which the mirrored traffic belongs.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list. For more information about regions that support traffic mirror, see [Overview of traffic mirror](~~207513~~).', - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hongkong', - ], + 'schema' => ['description' => 'The region ID of the QoS policy.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the region ID.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-shanghai', 'title' => ''], ], [ - 'name' => 'ResourceGroupId', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the resource group to which the mirrored traffic belongs.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'rg-bp67acfmxazb4ph****', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'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.'."\n" + ."\n" + .'> If you do not specify this parameter, the system automatically uses the **RequestId** of the API request as the **ClientToken**. The **RequestId** of each API request may be different.', 'type' => 'string', 'required' => false, 'docRequired' => true, 'example' => '0c593ea1-3bea-11e9-b96b-88e9fe637760', 'title' => ''], ], [ - 'name' => 'Tag', + 'name' => 'ClientToken', 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => 'The tag of the resource.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The tag of the resource.', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => 'The tag key. You can specify at most 20 tag keys. The tag key cannot be an empty string.'."\n" - ."\n" - .'The tag key can be up to 128 characters in length. The tag key cannot start with `aliyun` or `acs:`, and cannot contain `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'FinanceDept', - ], - 'Value' => [ - 'description' => 'The tag value. You can specify at most 20 tag values. The tag value can be an empty string.'."\n" - ."\n" - .'The tag value can be up to 128 characters in length. It cannot start with `aliyun` or `acs:`, and cannot contain `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'FinanceJoshua', - ], - ], - 'required' => false, - ], - 'required' => false, - 'maxItems' => 21, - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'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.'."\n" + ."\n" + .'> If you do not specify this parameter, the system automatically uses the **RequestId** of the API request as the **ClientToken**. The **RequestId** of each API request may be different.', 'type' => 'string', 'required' => false, 'docRequired' => true, 'example' => '0c593ea1-3bea-11e9-b96b-88e9fe637760', 'title' => ''], + ], + [ + 'name' => 'QosId', + 'in' => 'query', + 'schema' => ['title' => '', 'description' => 'The QoS policy ID.', 'type' => 'string', 'required' => true, 'example' => 'qos-2giu0a6vd5x0mv****'], + ], + [ + 'name' => 'QueueId', + 'in' => 'query', + 'schema' => ['description' => 'The QoS queue ID.', 'type' => 'string', 'required' => true, 'example' => 'qos-queue-9nyx2u7n71s2rc****', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => '', 'type' => 'object', 'properties' => [ - 'TrafficMirrorFilterId' => [ - 'description' => 'The ID of the filter.'."\n", - 'type' => 'string', - 'example' => 'tmf-j6cmls82xnc86vtpe****', - ], - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => '28DB147D-217B-43E8-9E94-A3F6837DDC8A', - ], - 'ResourceGroupId' => [ - 'description' => 'The ID of the resource group to which the mirrored traffic belongs.'."\n", - 'type' => 'string', - 'example' => 'rg-bp67acfmxazb4ph****', - ], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '9B9300FE-11E2-4E3B-949C-BED3B44DD26D', 'title' => ''], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'UnsupportedFeature.IpVersion', - 'errorMessage' => 'The ipversion type is not supported.', - ], - [ - 'errorCode' => 'IncorrectBusinessStatus.TrafficMirror', - 'errorMessage' => 'The business status of traffic mirror is incorrect.', - ], - [ - 'errorCode' => 'OptInRequired.TrafficMirror', - 'errorMessage' => 'You need to subscribe to the traffic mirror service first.', - ], - [ - 'errorCode' => 'QuotaExceeded.TrafficMirrorFilter', - 'errorMessage' => 'The maximum number of traffic image filters is exceeded.', - ], - [ - 'errorCode' => 'DuplicatedParam.Priority', - 'errorMessage' => 'The specified priority conflicts with the existing priority.', - ], - [ - 'errorCode' => 'UnsupportedRegion', - 'errorMessage' => 'The feature is not supported in current region.', - ], - [ - 'errorCode' => 'IllegalParamFormat.SrcCidrBlock', - 'errorMessage' => 'The format of the specified source CIDR block is invalid.', - ], - [ - 'errorCode' => 'IllegalParamFormat.DstCidrBlock', - 'errorMessage' => 'The format of the specified dst CIDR block is invalid.', - ], - [ - 'errorCode' => 'IllegalParam.DestinationCidrBlock', - 'errorMessage' => 'The param of DestinationCidrBlock %s is illegal.', - ], - [ - 'errorCode' => 'IllegalParam.SourceCidrBlock', - 'errorMessage' => 'The param of SourceCidrBlock %s is illegal.', - ], - [ - 'errorCode' => 'IllegalParam.Protocol', - 'errorMessage' => 'The specified Protocol %s is invalid.', - ], + ['errorCode' => 'IllegalParam.%s', 'errorMessage' => 'The param of %s is illegal.', 'description' => 'The parameter is invalid.'], + ['errorCode' => 'IncorrectStatus.Qos', 'errorMessage' => 'The status of QoS is incorrect.', 'description' => 'The status of the QoS policy is abnormal and the operation cannot be performed. Try again later.'], + ['errorCode' => 'EcQoSConflict', 'errorMessage' => 'The specified QoS is conflict with other QoS.', 'description' => 'The current QoS configuration conflicts with other configurations. Please try again later.'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"TrafficMirrorFilterId\\": \\"tmf-j6cmls82xnc86vtpe****\\",\\n \\"RequestId\\": \\"28DB147D-217B-43E8-9E94-A3F6837DDC8A\\",\\n \\"ResourceGroupId\\": \\"rg-bp67acfmxazb4ph****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n tmf-j6cmls82xnc86vtpe****\\n 28DB147D-217B-43E8-9E94-A3F6837DDC8A\\n rg-bp67acfmxazb4ph****\\n","errorExample":""}]', - 'title' => 'CreateTrafficMirrorFilter', - 'description' => '**CreateTrafficMirrorFilter** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call the [ListTrafficMirrorFilters](~~261353~~) operation to query the status of the task.'."\n" - ."\n" - .'* If the filter is in the **Creating** state, the filter is being created.'."\n" - .'* If the filter is in the **Created** state, the filter is created.'."\n", - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'DeleteTrafficMirrorFilter' => [ - 'summary' => 'Deletes a filter of traffic mirror.', - 'methods' => [ - 'post', - 'get', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'Delete an express connect qoS queue', + 'changeSet' => [ + ['createdAt' => '2024-03-29T08:01:41.000Z', 'description' => 'Request parameters changed'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DeleteExpressConnectTrafficQosQueue'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'vpc:DeleteExpressConnectTrafficQosQueue', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"9B9300FE-11E2-4E3B-949C-BED3B44DD26D\\"\\n}","type":"json"}]', + ], + 'DeleteExpressConnectTrafficQosRule' => [ + 'summary' => 'Deletes a QoS rule for Express Connect.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'write', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'delete', - ], + 'systemTags' => ['operationType' => 'delete', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ - 'name' => 'TrafficMirrorFilterId', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the filter.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'tmf-j6cmls82xnc86vtpe****', - ], + 'schema' => ['description' => 'The region ID of the QoS policy.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the region ID.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-shanghai', 'title' => ''], ], [ 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'You can use the client to generate the value, but you must make sure that it is unique among different requests. The client token can contain only ASCII characters.'."\n" - ."\n" - .'> If you do not set this parameter, the system uses **RequestId** as **ClientToken**. **RequestId** may be different for each API request.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '0c593ea1-3bea-11e9-b96b-88e9fe63****', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'You can use the client to generate the token, but you must make sure that the token is unique among different requests. The **ClientToken** value can contain only ASCII characters.'."\n" + ."\n" + .'> If you do not specify this parameter, the system uses the **RequestId** of the API request as the **ClientToken**. The **RequestId** may be different for each API request.', 'type' => 'string', 'required' => false, 'docRequired' => true, 'example' => '02fb3da4-130e-11e9-8e44-00****', 'title' => ''], ], [ - 'name' => 'DryRun', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to check the request without performing the operation. Valid values:'."\n" - ."\n" - .'* **true**: checks the request without performing the operation. The system checks the required parameters, request format, and limits. If the request fails the check, an error message is returned. If the request passes the check, the `DryRunOperation` error code is returned.'."\n" - .'* **false** (default): sends the request. After the request passes the check, the operation is performed.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'You can use the client to generate the token, but you must make sure that the token is unique among different requests. The **ClientToken** value can contain only ASCII characters.'."\n" + ."\n" + .'> If you do not specify this parameter, the system uses the **RequestId** of the API request as the **ClientToken**. The **RequestId** may be different for each API request.', 'type' => 'string', 'required' => false, 'docRequired' => true, 'example' => '02fb3da4-130e-11e9-8e44-00****', 'title' => ''], ], [ - 'name' => 'RegionId', + 'name' => 'QosId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region to which the mirrored traffic belongs. You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list. For more information about regions that support traffic mirror, see [Overview of traffic mirror](~~207513~~).', - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hongkong', - ], + 'schema' => ['title' => '', 'description' => 'The QoS policy ID.', 'type' => 'string', 'required' => true, 'example' => 'qos-2giu0a6vd5x0mv****'], + ], + [ + 'name' => 'QueueId', + 'in' => 'query', + 'schema' => ['title' => '', 'description' => 'The QoS queue ID.', 'type' => 'string', 'required' => true, 'example' => 'qos-queue-9nyx2u7n71s2rc****'], + ], + [ + 'name' => 'RuleId', + 'in' => 'query', + 'schema' => ['description' => 'The QoS rule ID.', 'type' => 'string', 'required' => true, 'example' => 'qos-rule-iugg0l9x27f2no****', 'title' => ''], ], ], 'responses' => [ @@ -23894,2148 +18538,1257 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => '07F272E2-6AD5-433A-8207-A607C76F1676', - ], + 'RequestId' => ['title' => '', 'description' => 'The request ID.', 'type' => 'string', 'example' => 'C44F62BE-9CE7-4277-B117-69243F3988BF'], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'ResourceNotFound.TrafficMirrorFilter', - 'errorMessage' => 'The specified resource of traffic mirror filter is not found.', - ], - [ - 'errorCode' => 'IncorrectStatus.TrafficMirrorFilter', - 'errorMessage' => 'The status of traffic mirror filter is incorrect.', - ], - [ - 'errorCode' => 'IncorrectStatus.TrafficMirrorRule', - 'errorMessage' => 'The status of traffic mirror rule is incorrect.', - ], - [ - 'errorCode' => 'DependencyViolation.TrafficMirrorSession', - 'errorMessage' => 'Some traffic mirror sessions depend on the specified resource.', - ], + ['errorCode' => 'IllegalParam.%s', 'errorMessage' => 'The param of %s is illegal.', 'description' => 'The parameter is invalid.'], + ['errorCode' => 'IncorrectStatus.Qos', 'errorMessage' => 'The status of QoS is incorrect.', 'description' => 'The status of the QoS policy is abnormal and the operation cannot be performed. Try again later.'], + ['errorCode' => 'EcQoSConflict', 'errorMessage' => 'The specified QoS is conflict with other QoS.', 'description' => 'The current QoS configuration conflicts with other configurations. Please try again later.'], ], ], - 'staticInfo' => [ - 'returnType' => 'asynchronous', - 'callback' => 'Vpc::2016-04-28::ListTrafficMirrorFilters', - 'callbackInterval' => 3000, - 'maxCallbackTimes' => 10, - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"07F272E2-6AD5-433A-8207-A607C76F1676\\"\\n}","errorExample":""},{"type":"xml","example":"\\r\\n07F272E2-6AD5-433A-8207-A607C76F1676\\r\\n","errorExample":""}]', - 'title' => 'DeleteTrafficMirrorFilter', - 'description' => '* The **DeleteTrafficMirrorFilter** operation is asynchronous. After you send the request, the system returns a request ID. However, the operation is still being performed in the system background. You can call the [ListTrafficMirrorFilters](~~261353~~) operation to query the status of a filter:'."\n" - ."\n" - .' * If the filter is in the **Deleting** state, the filter is being deleted.'."\n" - .' * If you cannot query the filter, the filter is deleted.'."\n" - ."\n" - .'* You cannot repeatedly call the **DeleteTrafficMirrorFilter** operation to delete a filter within the specified period of time.', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'UpdateTrafficMirrorFilterAttribute' => [ - 'summary' => 'Modifies the configuration of a filter for traffic mirror.', - 'methods' => [ - 'post', - 'get', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'Delete an express connect qoS rule', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DeleteExpressConnectTrafficQosRule'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'vpc:DeleteExpressConnectTrafficQosRule', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"C44F62BE-9CE7-4277-B117-69243F3988BF\\"\\n}","type":"json"}]', + ], + 'DeleteFailoverTestJob' => [ + 'summary' => 'Deletes a failover test.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'readAndWrite', - 'systemTags' => [ - 'operationType' => 'update', - 'riskType' => 'none', - 'chargeType' => 'free', - ], + 'deprecated' => false, + 'systemTags' => ['operationType' => 'delete', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ - 'name' => 'TrafficMirrorFilterId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the filter.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'tmf-j6cmls82xnc86vtpe****', - ], - ], - [ - 'name' => 'TrafficMirrorFilterDescription', - 'in' => 'query', - 'schema' => [ - 'description' => 'The description of the filter.'."\n" - ."\n" - .'The description must be 1 to 256 characters in length and cannot start with `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'This is a new filter.', - ], - ], - [ - 'name' => 'TrafficMirrorFilterName', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The name of the filter.'."\n" - ."\n" - .'The name must be 1 to 128 characters in length and cannot start with `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'test', - ], + 'schema' => ['description' => 'The region ID of the failover test.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => false, 'docRequired' => true, 'example' => 'ch-hangzhou', 'title' => ''], ], [ 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'You can use the client to generate the value, but you must make sure that it is unique among different requests. The token can contain only ASCII characters.'."\n" - ."\n" - .'> If you do not specify this parameter, the system uses **RequestId** as **ClientToken**. **RequestId** may be different for each API request.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '0c593ea1-3bea-11e9-b96b-88e9fe637760', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'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.'."\n" + ."\n" + .'> 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.'."\n", 'type' => 'string', 'required' => false, 'docRequired' => true, 'example' => '123e4567-e89b-12d3-a456-426655440000'."\n", 'title' => ''], ], [ - 'name' => 'DryRun', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to check the request without performing the operation. Valid values:'."\n" - ."\n" - .'* **true**: checks the request without performing the operation. The system checks the required parameters, request syntax, and limits. If the request fails the check, an error message is returned. If the request passes the check, the `DryRunOperation` error code is returned.'."\n" - .'* **false** (default): sends the request. If the request passes the check, a 2xx HTTP status code is returned and the operation is performed.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'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.'."\n" + ."\n" + .'> 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.'."\n", 'type' => 'string', 'required' => false, 'docRequired' => true, 'example' => '123e4567-e89b-12d3-a456-426655440000'."\n", 'title' => ''], ], [ - 'name' => 'RegionId', + 'name' => 'JobId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region to which the mirrored traffic belongs.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list. For more information about regions that support traffic mirror, see [Overview of traffic mirror](~~207513~~).', - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hongkong', - ], + 'schema' => ['title' => '', 'description' => 'The ID of the failover test.'."\n", 'type' => 'string', 'required' => true, 'example' => 'ftj-bp1yh6mvi13aq3g8w****'], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'description' => '', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => '5816D35F-94D5-48CE-838F-2327C8EE8D49', - ], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => 'C44F62BE-9CE7-4277-B117-69243F3988BF'."\n", 'title' => ''], ], + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'ResourceNotFound.TrafficMirrorFilter', - 'errorMessage' => 'The specified resource of traffic mirror filter is not found.', - ], - [ - 'errorCode' => 'IncorrectStatus.TrafficMirrorFilter', - 'errorMessage' => 'The status of traffic mirror filter is incorrect.', - ], + ['errorCode' => 'IllegalParam.JobId', 'errorMessage' => 'The specified parameter JobId is illegal.', 'description' => 'The entered failover test job ID is invalid.'], + ['errorCode' => 'IncorrectStatus.OnlyForInitOrStopped', 'errorMessage' => 'Only failover test job in the status of init or stopped can be deleted.', 'description' => 'Only failover test job in the status of init or stopped can be deleted.'], + ['errorCode' => 'EcFailoverTestJobConflict', 'errorMessage' => 'The current failover test job task is in operation, please try again later.', 'description' => 'The current failover test job task is in operation, please try again later.'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'DeleteFailoverTestJob', + 'description' => 'You can delete only failover tests that are in the **Pending** or **Complete** state.'."\n", + 'changeSet' => [ + ['createdAt' => '2024-07-19T02:56:58.000Z', 'description' => 'Error codes changed'], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"5816D35F-94D5-48CE-838F-2327C8EE8D49\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 5816D35F-94D5-48CE-838F-2327C8EE8D49\\n","errorExample":""}]', - 'title' => 'UpdateTrafficMirrorFilterAttribute', - 'description' => 'You cannot repeatedly call the **UpdateTrafficMirrorFilterAttribute** operation to modify the configuration of a filter for traffic mirror within the specified period of time.', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', + 'ramActions' => [], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"C44F62BE-9CE7-4277-B117-69243F3988BF\\\\n\\"\\n}","type":"json"}]', ], - 'ListTrafficMirrorFilters' => [ - 'summary' => 'Queries filters for traffic mirror.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DeleteFlowLog' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'write', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'list', - 'riskType' => 'none', - 'chargeType' => 'free', - ], + 'systemTags' => ['operationType' => 'delete', 'riskType' => 'none', 'chargeType' => 'paid'], 'parameters' => [ [ - 'name' => 'TrafficMirrorFilterName', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The name of the filter.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'abc', - ], + 'schema' => ['description' => 'The region ID of the flow log. You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'example' => 'cn-qingdao'], ], [ - 'name' => 'MaxResults', + 'name' => 'FlowLogId', 'in' => 'query', - 'schema' => [ - 'description' => 'The maximum number of entries to return.'."\n" - ."\n" - .'Valid values: **1** to **100**. Default value: **10**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '10', - ], + 'schema' => ['description' => 'The ID of the flow log.'."\n", 'type' => 'string', 'required' => true, 'example' => 'fl-m5e8vhz2t21sel1nq****'], ], - [ - 'name' => 'NextToken', - 'in' => 'query', + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => 'The pagination token that is used in the next request to retrieve a new page of results. Valid values:'."\n" - ."\n" - .'* You do not need to specify this parameter for the first request.'."\n" - .'* You must specify the token that is obtained from the previous query as the value of NextToken.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', + 'type' => 'object', + 'properties' => [ + 'Success' => ['description' => 'Indicates whether the operation is successful. Valid values:'."\n" + ."\n" + .'* **true**: yes'."\n" + .'* **false**: no'."\n", 'type' => 'string', 'example' => 'true'], + 'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => 'F7DDDC17-FA06-4AC2-8F35-59D2470FCFC1'], + ], ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InvalidInstanceId', 'errorMessage' => 'Instance does not exist.', 'description' => 'The error message returned because the specified instance does not exist.'], + ['errorCode' => 'ProjectOrLogstoreNotExist', 'errorMessage' => 'The specified project or logstore does not exist.', 'description' => 'The error message returned because the specified project or Logstore does not exist.'], + ['errorCode' => 'SourceProjectNotExist', 'errorMessage' => 'The Source Project or logstore does not exist.', 'description' => 'The error message returned because the source project or Logstore does not exist.'], + ['errorCode' => 'Unauthorized', 'errorMessage' => 'This api does not support sub user or role.', 'description' => 'The error message returned because you cannot call this operation as a RAM user.'], + ['errorCode' => 'ParameterInvalid', 'errorMessage' => 'Invalid parameter.', 'description' => 'The error message returned because a parameter is invalid.'], + ['errorCode' => 'InvalidStatus', 'errorMessage' => 'The specfied instance\'s status is invalid.', 'description' => ''], + ['errorCode' => 'InvalidHdMonitorStatus', 'errorMessage' => 'Current instance status is not valid for this action.', 'description' => ''], + ['errorCode' => 'FlowLogNumberOverLimit', 'errorMessage' => 'This user has reached the maximum instance number of flowlog.', 'description' => ''], + ['errorCode' => 'InvalidRegionId.NotFound', 'errorMessage' => 'The RegionId provided does not exist in our records.', 'description' => ''], + ['errorCode' => 'InvalidInstanceId.NotFound', 'errorMessage' => 'The specfied instance is not existed.', 'description' => ''], + ['errorCode' => 'IncorrectStatus.flowlog', 'errorMessage' => 'Invalid flowlog status.', 'description' => 'The flow log cannot be disabled because it is in an invalid state.'], + ['errorCode' => 'InvalidResourceId.NotFound', 'errorMessage' => 'Resource id is empty.', 'description' => ''], + ['errorCode' => 'Forbidden.OperateManagedFlowLog', 'errorMessage' => 'Authentication is failed for operate managed flowlog.', 'description' => 'Authentication failed when operating the managed flow log.'], + ], + ], + 'staticInfo' => ['returnType' => 'asynchronous', 'callback' => 'Vpc::2016-04-28::DescribeFlowLogs', 'callbackInterval' => 3000, 'maxCallbackTimes' => 10], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Success\\": \\"true\\",\\n \\"RequestId\\": \\"F7DDDC17-FA06-4AC2-8F35-59D2470FCFC1\\"\\n}","errorExample":""},{"type":"xml","example":"\\n true\\n F7DDDC17-FA06-4AC2-8F35-59D2470FCFC1\\n","errorExample":""}]', + 'title' => 'DeleteFlowLog', + 'summary' => 'Deletes a flow log.', + 'description' => '* The **DeleteFlowLog** operation is asynchronous. After you send the request, the system returns a request ID. However, the operation is still being performed in the system background. You can call the [DescribeFlowLogs](~~87923~~) operation to query the status of a flow log:'."\n" + ."\n" + .' * If the flow log is in the **Deleting** state, the flow log is being deleted.'."\n" + .' * If you cannot query the flow log, the flow log is deleted.'."\n" + ."\n" + .'* You cannot repeatedly call the **DeleteFlowLog** operation to delete a flow log within the specified period of time.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [], + ], + 'DeleteForwardEntry' => [ + 'summary' => 'Deletes a DNAT entry.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'TrafficMirrorFilterIds', - 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => 'The ID of the traffic mirror filter. The maximum value of **N** is **100**, which specifies that you can query up to 100 filters at a time.', - 'type' => 'array', - 'items' => [ - 'description' => 'The ID of the traffic mirror filter. The maximum value of **N** is **100**, which specifies that you can query up to 100 filters at a time.', - 'type' => 'string', - 'required' => false, - 'example' => 'tmf-j6cmls82xnc86vtpe****', - ], - 'required' => false, - 'example' => 'tmf-j6cmls82xnc86vtpe****', - 'maxLength' => 128, - 'maxItems' => 100, - ], + 'AK' => [], ], + ], + 'operationType' => 'write', + 'systemTags' => ['operationType' => 'delete', 'riskType' => 'none', 'chargeType' => 'free'], + 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region to which the mirrored traffic belongs.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list. For more information about regions that support traffic mirror, see [Overview of traffic mirror](~~207513~~).', - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hongkong', - ], + 'schema' => ['description' => 'The region ID of the NAT gateway.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'ResourceGroupId', + 'name' => 'ForwardTableId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the resource group to which the mirrored traffic belongs.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'rg-bp67acfmxazb4ph****', - ], + 'schema' => ['description' => 'The ID of the DNAT table to which the DNAT entry belongs.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'ftb-8vbx8xu2lqj9qb334****', 'title' => ''], ], [ - 'name' => 'Tags', + 'name' => 'ForwardEntryId', 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => 'The tag list.', - 'type' => 'array', - 'items' => [ - 'description' => 'The tag list.', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => 'The tag key. You can specify at most 20 tag keys. The tag key cannot be an empty string.'."\n" - ."\n" - .'The tag key can be up to 128 characters in length. It cannot start with `aliyun` or `acs:`, and cannot contain `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'FinanceDept', - ], - 'Value' => [ - 'description' => 'The tag value. You can specify at most 20 tag values. The tag value can be an empty string.'."\n" - ."\n" - .'The tag value can be up to 128 characters in length. It cannot start with `aliyun` or `acs:`, and cannot contain `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'FinanceJoshua', - ], - ], - 'required' => false, - ], - 'required' => false, - 'maxItems' => 10, - ], + 'schema' => ['description' => 'The ID of the DNAT entry to be deleted.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'fwd-8vbn3bc8roygjp0gy****', 'title' => ''], + ], + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'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.'."\n" + ."\n" + .'> 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.'."\n", 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-426655440000', 'title' => ''], ], ], 'responses' => [ 200 => [ + 'headers' => [], 'schema' => [ + 'description' => 'The request ID.'."\n", 'type' => 'object', 'properties' => [ - 'NextToken' => [ - 'description' => 'A pagination token. It can be used in the next request to retrieve a new page of results. Valid values:'."\n" - ."\n" - .'* If **NextToken** is empty, no next page exists.'."\n" - .'* If a value is returned for **NextToken**, the value is the token that is used for the next query.'."\n", - 'type' => 'string', - 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', - ], - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '739CA01C-92EB-4C69-BCC0-280149C6F41E', - ], - 'TotalCount' => [ - 'description' => 'The number of entries returned.'."\n", - 'type' => 'string', - 'example' => '1', - ], - 'MaxResults' => [ - 'description' => 'The maximum number of entries returned.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '20', - ], - 'Count' => [ - 'description' => 'The number of entries returned.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '5', - ], - 'TrafficMirrorFilters' => [ - 'description' => 'The information about the filters.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'TrafficMirrorFilterStatus' => [ - 'description' => 'The status of the filter. Valid values:'."\n" - ."\n" - .'* **Creating**'."\n" - .'* **Created**'."\n" - .'* **Modifying**'."\n" - .'* **Deleting**'."\n", - 'type' => 'string', - 'example' => 'Created', - ], - 'TrafficMirrorFilterDescription' => [ - 'description' => 'The description of the filter.'."\n", - 'type' => 'string', - 'example' => 'This is a filter.', - ], - 'TrafficMirrorFilterId' => [ - 'description' => 'The ID of the filter.'."\n", - 'type' => 'string', - 'example' => 'tmf-j6cmls82xnc86vtpe****', - ], - 'TrafficMirrorFilterName' => [ - 'description' => 'The filter name.'."\n", - 'type' => 'string', - 'example' => 'abc', - ], - 'IngressRules' => [ - 'description' => 'The information about the inbound rules.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'TrafficMirrorFilterRuleStatus' => [ - 'description' => 'The status of the inbound rule. Valid values:'."\n" - ."\n" - .'* **Creating**'."\n" - .'* **Created**'."\n" - .'* **Modifying**'."\n" - .'* **Deleting**'."\n", - 'type' => 'string', - 'example' => 'Created', - ], - 'Action' => [ - 'description' => 'The action of the inbound rule. Valid values:'."\n" - ."\n" - .'* **accept**'."\n" - .'* **drop**'."\n", - 'type' => 'string', - 'example' => 'accept', - ], - 'SourceCidrBlock' => [ - 'description' => 'The source CIDR block of the inbound traffic.'."\n", - 'type' => 'string', - 'example' => '0.0.0.0/0', - ], - 'TrafficDirection' => [ - 'description' => 'The direction of the network traffic. Valid values:'."\n" - ."\n" - .'* **egress**'."\n" - .'* **ingress**'."\n", - 'type' => 'string', - 'example' => 'ingress', - ], - 'Protocol' => [ - 'description' => 'The protocol that is used by the inbound traffic to be mirrored. Valid values:'."\n" - ."\n" - .'* **ALL**'."\n" - .'* **ICMP**'."\n" - .'* **TCP**'."\n" - .'* **UDP**'."\n", - 'type' => 'string', - 'example' => 'ALL', - ], - 'IpVersion' => [ - 'description' => 'The version of IP protocol.', - 'type' => 'string', - 'example' => 'IPv4', - ], - 'DestinationPortRange' => [ - 'description' => 'The destination port range of the inbound traffic.'."\n", - 'type' => 'string', - 'example' => '-1/-1', - ], - 'TrafficMirrorFilterRuleId' => [ - 'description' => 'The ID of the inbound rule.'."\n", - 'type' => 'string', - 'example' => 'tmr-j6cezu8e68rnpepet****', - ], - 'DestinationCidrBlock' => [ - 'description' => 'The destination CIDR block of the inbound traffic.'."\n", - 'type' => 'string', - 'example' => '0.0.0.0/0', - ], - 'Priority' => [ - 'description' => 'The priority of the inbound rule. A smaller value indicates a higher priority.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'TrafficMirrorFilterId' => [ - 'description' => 'The ID of the filter associated with the inbound rule.'."\n", - 'type' => 'string', - 'example' => 'tmf-j6cmls82xnc86vtpe****', - ], - 'SourcePortRange' => [ - 'description' => 'The destination port range of the inbound traffic.'."\n", - 'type' => 'string', - 'example' => '-1/-1', - ], - ], - ], - ], - 'EgressRules' => [ - 'description' => 'The information about the outbound rules.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'TrafficMirrorFilterRuleStatus' => [ - 'description' => 'The status of the outbound rule. Valid values:'."\n" - ."\n" - .'* **Creating**'."\n" - .'* **Created**'."\n" - .'* **Modifying**'."\n" - .'* **Deleting**'."\n", - 'type' => 'string', - 'example' => 'Created', - ], - 'Action' => [ - 'description' => 'The action of the outbound rule. Valid values:'."\n" - ."\n" - .'* **accept**'."\n" - .'* **drop**'."\n", - 'type' => 'string', - 'example' => 'accept', - ], - 'SourceCidrBlock' => [ - 'description' => 'The source CIDR block of the outbound traffic.'."\n", - 'type' => 'string', - 'example' => '10.0.0.0/24', - ], - 'TrafficDirection' => [ - 'description' => 'The direction of the network traffic. Valid values:'."\n" - ."\n" - .'* **egress**'."\n" - .'* **ingress**'."\n", - 'type' => 'string', - 'example' => 'egress', - ], - 'Protocol' => [ - 'description' => 'The protocol that is used by the outbound traffic to be mirrored. Valid values:'."\n" - ."\n" - .'* **ALL**'."\n" - .'* **ICMP**'."\n" - .'* **TCP**'."\n" - .'* **UDP**'."\n", - 'type' => 'string', - 'example' => 'TCP', - ], - 'IpVersion' => [ - 'description' => 'The version of IP protocol.', - 'type' => 'string', - 'example' => 'IPv4', - ], - 'DestinationPortRange' => [ - 'description' => 'The destination port range of the outbound traffic.'."\n", - 'type' => 'string', - 'example' => '22/40', - ], - 'TrafficMirrorFilterRuleId' => [ - 'description' => 'The ID of the outbound rule.'."\n", - 'type' => 'string', - 'example' => 'tmr-j6c89rzmtd3hhdugq****', - ], - 'DestinationCidrBlock' => [ - 'description' => 'The destination CIDR block of the outbound traffic.'."\n", - 'type' => 'string', - 'example' => '10.0.0.0/24', - ], - 'Priority' => [ - 'description' => 'The priority of the outbound rule. A smaller value indicates a higher priority.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'TrafficMirrorFilterId' => [ - 'description' => 'The ID of the filter associated with the outbound rule.'."\n", - 'type' => 'string', - 'example' => 'tmf-j6cmls82xnc86vtpe****', - ], - 'SourcePortRange' => [ - 'description' => 'The source port range of the outbound traffic.'."\n", - 'type' => 'string', - 'example' => '22/40', - ], - ], - ], - ], - 'ResourceGroupId' => [ - 'description' => 'The ID of the resource group to which the traffic mirror session belongs.'."\n", - 'type' => 'string', - 'example' => 'rg-bp67acfmxazb4ph****', - ], - 'Tags' => [ - 'description' => 'The tag list.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => 'The tag key.'."\n", - 'type' => 'string', - 'example' => 'FinanceDept', - ], - 'Value' => [ - 'description' => 'The tag value.'."\n", - 'type' => 'string', - 'example' => 'FinanceJoshua', - ], - ], - ], - ], - 'CreationTime' => [ - 'description' => 'The time when the filter is created.', - 'type' => 'string', - 'example' => '2023-09-05T15:26Z', - ], - ], - ], - ], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '0ED8D006-F706-4D23-88ED-E11ED28DCAC0', 'title' => ''], ], - 'description' => '', + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'IllegalParam.NextToken', - 'errorMessage' => 'The specified NextToken is invalid.', - ], + ['errorCode' => 'IncorretForwardEntryStatus', 'errorMessage' => 'Some Forward entry status blocked this operation..', 'description' => ''], + ['errorCode' => 'MissingParameter', 'errorMessage' => 'Missing mandatory parameter', 'description' => ''], + ['errorCode' => 'IncorrectStatus.NATGW', 'errorMessage' => 'The status of the specified NAT gateway is abnormal.', 'description' => 'The status of the specified NAT gateway is abnormal.'], + ['errorCode' => 'IncorrectStatus.ForwardEntry', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => 'The DNAT entry to be deleted is in an invalid state.'], + ], + 404 => [ + ['errorCode' => 'InvalidRegionId.NotFound', 'errorMessage' => 'The specified RegionId does not exist in our records.', 'description' => ''], + ['errorCode' => 'InvalidForwardEntryId.NotFound', 'errorMessage' => 'Specified forward entry ID does not exist', 'description' => ''], + ['errorCode' => 'InvalidForwardTableId.NotFound', 'errorMessage' => 'Specified forward table does not exist.', 'description' => ''], + ['errorCode' => 'ResourceNotFound.ForwardEntry', 'errorMessage' => 'The specified resource of %s is not found.', 'description' => 'The specified %s resource does not exist.'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"NextToken\\": \\"FFmyTO70tTpLG6I3FmYAXGKPd****\\",\\n \\"RequestId\\": \\"739CA01C-92EB-4C69-BCC0-280149C6F41E\\",\\n \\"TotalCount\\": \\"1\\",\\n \\"MaxResults\\": 20,\\n \\"Count\\": 5,\\n \\"TrafficMirrorFilters\\": [\\n {\\n \\"TrafficMirrorFilterStatus\\": \\"Created\\",\\n \\"TrafficMirrorFilterDescription\\": \\"This is a filter.\\",\\n \\"TrafficMirrorFilterId\\": \\"tmf-j6cmls82xnc86vtpe****\\",\\n \\"TrafficMirrorFilterName\\": \\"abc\\",\\n \\"IngressRules\\": [\\n {\\n \\"TrafficMirrorFilterRuleStatus\\": \\"Created\\",\\n \\"Action\\": \\"accept\\",\\n \\"SourceCidrBlock\\": \\"0.0.0.0/0\\",\\n \\"TrafficDirection\\": \\"ingress\\",\\n \\"Protocol\\": \\"ALL\\",\\n \\"IpVersion\\": \\"IPv4\\",\\n \\"DestinationPortRange\\": \\"-1/-1\\",\\n \\"TrafficMirrorFilterRuleId\\": \\"tmr-j6cezu8e68rnpepet****\\",\\n \\"DestinationCidrBlock\\": \\"0.0.0.0/0\\",\\n \\"Priority\\": 1,\\n \\"TrafficMirrorFilterId\\": \\"tmf-j6cmls82xnc86vtpe****\\",\\n \\"SourcePortRange\\": \\"-1/-1\\"\\n }\\n ],\\n \\"EgressRules\\": [\\n {\\n \\"TrafficMirrorFilterRuleStatus\\": \\"Created\\",\\n \\"Action\\": \\"accept\\",\\n \\"SourceCidrBlock\\": \\"10.0.0.0/24\\",\\n \\"TrafficDirection\\": \\"egress\\",\\n \\"Protocol\\": \\"TCP\\",\\n \\"IpVersion\\": \\"IPv4\\",\\n \\"DestinationPortRange\\": \\"22/40\\",\\n \\"TrafficMirrorFilterRuleId\\": \\"tmr-j6c89rzmtd3hhdugq****\\",\\n \\"DestinationCidrBlock\\": \\"10.0.0.0/24\\",\\n \\"Priority\\": 1,\\n \\"TrafficMirrorFilterId\\": \\"tmf-j6cmls82xnc86vtpe****\\",\\n \\"SourcePortRange\\": \\"22/40\\"\\n }\\n ],\\n \\"ResourceGroupId\\": \\"rg-bp67acfmxazb4ph****\\",\\n \\"Tags\\": [\\n {\\n \\"Key\\": \\"FinanceDept\\",\\n \\"Value\\": \\"FinanceJoshua\\"\\n }\\n ],\\n \\"CreationTime\\": \\"2023-09-05T15:26Z\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\n FFmyTO70tTpLG6I3FmYAXGKPd****\\n 739CA01C-92EB-4C69-BCC0-280149C6F41E\\n 1\\n 20\\n 5\\n \\n Created\\n This is a filter.\\n tmf-j6cmls82xnc86vtpe****\\n abc\\n \\n Created\\n accept\\n 0.0.0.0/0\\n ingress\\n ALL\\n -1/-1\\n tmr-j6cezu8e68rnpepet****\\n 0.0.0.0/0\\n 1\\n tmf-j6cmls82xnc86vtpe****\\n -1/-1\\n \\n \\n Created\\n accept\\n 10.0.0.0/24\\n egress\\n TCP\\n 22/40\\n tmr-j6c89rzmtd3hhdugq****\\n 10.0.0.0/24\\n 1\\n tmf-j6cmls82xnc86vtpe****\\n 22/40\\n \\n rg-bp67acfmxazb4ph****\\n \\n FinanceDept\\n FinanceJoshua\\n \\n 2023-09-05T15:26Z\\n \\n","errorExample":""}]', - 'title' => 'ListTrafficMirrorFilters', + 'title' => 'DeleteForwardEntry', + 'description' => '## [](#)Description'."\n" + ."\n" + .'* **DeleteForwardEntry** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call the [DescribeForwardTableEntries](~~36053~~) operation to query the status of the task.'."\n" + ."\n" + .' * If the DNAT entry is in the **Deleting** state, the system is deleting the DNAT entry. In this case, you can only query the status of the DNAT entry, but cannot perform other operations.'."\n" + .' * If the DNAT entry cannot be found, it is deleted.'."\n" + ."\n" + .'> If a DNAT table has DNAT entries in the **Pending** state, you cannot delete the DNAT entries.'."\n" + ."\n" + .'* You cannot repeatedly call the **DeleteForwardEntry** operation to delete a DNAT entry within the specified period of time.'."\n", 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'AddSourcesToTrafficMirrorSession' => [ - 'summary' => 'Adds a traffic mirror source to a traffic mirror session.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [ + ['createdAt' => '2023-03-01T06:45:55.000Z', 'description' => 'Response parameters changed'], ], + 'ramActions' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"0ED8D006-F706-4D23-88ED-E11ED28DCAC0\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 0ED8D006-F706-4D23-88ED-E11ED28DCAC0\\n","errorExample":""}]', + ], + 'DeleteFullNatEntry' => [ + 'methods' => ['post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', - 'systemTags' => [ - 'operationType' => 'update', - 'riskType' => 'none', - 'chargeType' => 'free', - ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'delete', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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.'."\n" - ."\n" - .'> 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.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '0c593ea1-3bea-11e9-b96b-88e9fe63****', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'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.'."\n" + ."\n" + .'> 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.'."\n", 'type' => 'string', 'required' => false, 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3FF3898', 'title' => ''], ], [ - 'name' => 'DryRun', + 'name' => 'FullNatTableId', 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values:'."\n" - ."\n" - .'* **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 dry run, an error message is returned. If the request passes the dry run, the `DryRunOperation` error code is returned.'."\n" - .'* **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.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['title' => '', 'description' => 'The ID of the FULLNAT table to which the FULLNAT entry to be deleted belongs.'."\n", 'type' => 'string', 'required' => true, 'example' => 'fulltb-gw88z7hhlv43rmb26****'], ], [ - 'name' => 'TrafficMirrorSessionId', + 'name' => 'FullNatEntryId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the traffic mirror session.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'tms-j6cla50buc44ap8tu****', - ], + 'schema' => ['title' => '', 'description' => 'The ID of the FULLNAT entry that you want to delete.'."\n", 'type' => 'string', 'required' => true, 'example' => 'fullnat-gw8fz23jezpbblf1j****'], ], [ - 'name' => 'TrafficMirrorSourceIds', + 'name' => 'DryRun', 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => 'The ID of the traffic mirror source. You can specify only an elastic network interface (ENI) as the traffic mirror source. The default value of **N** is **1**, which indicates that you can add only one traffic mirror source to a traffic mirror session.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The ID of the traffic mirror source. You can specify only an elastic network interface (ENI) as the traffic mirror source. The default value of **N** is **1**, which indicates that you can add only one traffic mirror source to a traffic mirror session.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'eni-j6c8znm5l1yt4sox****', - ], - 'required' => true, - 'docRequired' => true, - 'example' => 'eni-j6ccmrl8z3xkvxgw****', - 'maxLength' => 128, - 'maxItems' => 30, - ], + 'schema' => ['description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values:'."\n" + ."\n" + .'* **true**: performs 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, the related error message is returned. If the request passes the dry run, the DryRunOperation error code is returned.'."\n" + .'* **false**: 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.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], ], [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region to which the traffic mirror session belongs.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n" - ."\n" - .'For more information about regions that support traffic mirror, see [Overview of traffic mirror](~~207513~~).', - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hongkong', - ], + 'schema' => ['description' => 'The region ID of the VPC NAT gateway to which the FULLNAT entry to be deleted belongs.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent list of regions.'."\n", 'type' => 'string', 'required' => true, 'example' => 'eu-central-1', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'Schema of Response'."\n", 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '87F70089-5B38-41A8-BAD8-0B55E2F8DC57', - ], + 'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '2BCC426F-A9F2-3F03-99D2-1E0D647236DB'], ], - 'description' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'IncorrectBusinessStatus.TrafficMirror', - 'errorMessage' => 'The business status of traffic mirror is incorrect.', - ], - [ - 'errorCode' => 'OptInRequired.TrafficMirror', - 'errorMessage' => 'You need to subscribe to the traffic mirror service first.', - ], - [ - 'errorCode' => 'DuplicatedParam.SourceInstanceIds', - 'errorMessage' => 'The parameter of source instance IDs contains duplicate values.', - ], - [ - 'errorCode' => 'ResourceNotFound.TrafficMirrorSession', - 'errorMessage' => 'The specified resource of traffic mirror session is not found.', - ], - [ - 'errorCode' => 'IncorrectStatus.TrafficMirrorSession', - 'errorMessage' => 'The status of traffic mirror session is incorrect.', - ], - [ - 'errorCode' => 'ResourceAlreadyAssociated.TrafficMirrorSource', - 'errorMessage' => 'The specified traffic mirror source and session are already associated.', - ], - [ - 'errorCode' => 'ResourceNotFound.NetworkInterface', - 'errorMessage' => 'The specified resource of %s is not found.', - ], - [ - 'errorCode' => 'ResourceNotFound.EcsInstance', - 'errorMessage' => 'The specified resource of ECS instance is not found.', - ], - [ - 'errorCode' => 'OperationDenied.EcsNotSupportTrafficMirror', - 'errorMessage' => 'The ECS instance does not support traffic mirroring.', - ], - [ - 'errorCode' => 'OperationDenied.DuplicateRole', - 'errorMessage' => 'The network interface must not be the source and the target of traffic mirror sessions at the same time.', - ], - [ - 'errorCode' => 'QuotaExceeded.NetworkInterfaceRelatedSession', - 'errorMessage' => 'The quota of the number of traffic mirror sessions related to one network interface is exceeded.', - ], - [ - 'errorCode' => 'OperationDenied.FreeNetworkInterface', - 'errorMessage' => 'The network interface is not attached to any ECS instance.', - ], - [ - 'errorCode' => 'QuotaExceeded.SourceNumPerSession', - 'errorMessage' => 'The quota of the number of traffic mirror sources per session is exceeded.', - ], - [ - 'errorCode' => 'QuotaExceeded.SourceNumPerTarget', - 'errorMessage' => 'The maximum number of traffic mirror sources for a target is exceeded.', - ], - [ - 'errorCode' => 'OperationUnsupported.BondingNetworkInterface', - 'errorMessage' => 'The specified traffic mirror source is bonding eni without slave.', - ], - [ - 'errorCode' => 'OperationDenied.UnsupportedTargetType', - 'errorMessage' => 'Traffic mirror target must be SLB if traffic mirror sources contain nat gateway network interface.', - ], - [ - 'errorCode' => 'OperationDenied.InvalidSourceBondEniType', - 'errorMessage' => 'The traffic mirroring source does not support the entered bond ENI type.', - ], + ['errorCode' => 'ResourceNotFound.FullNatEntry', 'errorMessage' => 'The specified resource of %s is not found.', 'description' => 'The specified FullNatEntry parameter is not found.'], + ['errorCode' => 'IncorrectStatus.FullNatEntry', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => 'The status of FullNatEntry is incorrect.'], + ['errorCode' => 'ResourceNotFound.FullNatTableId', 'errorMessage' => 'The specified resource of %s is not found.', 'description' => ''], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"87F70089-5B38-41A8-BAD8-0B55E2F8DC57\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 87F70089-5B38-41A8-BAD8-0B55E2F8DC57\\n","errorExample":""}]', - 'title' => 'AddSourcesToTrafficMirrorSession', - 'description' => '* **AddSourcesToTrafficMirrorSession** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call the [ListTrafficMirrorSessions](~~261367~~) operation to query the status of the task.'."\n" + 'title' => 'DeleteFullNatEntry', + 'summary' => 'Deletes a FULLNAT entry.', + 'description' => '## [](#)Description'."\n" ."\n" - .' * If the traffic mirror session is in the **Modifying** state, the traffic mirror source is being added to the traffic mirror session.'."\n" - .' * If the traffic mirror session is in the **Created** state, the traffic mirror source is added to the traffic mirror session.'."\n" + .'**DeleteFullNatEntry** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call the [ListFullNatEntries](~~348779~~) operation to query the status of a FULLNAT entry.'."\n" ."\n" - .'* You cannot repeatedly call the **AddSourcesToTrafficMirrorSession** operation to add a traffic mirror source to a traffic mirror session within the specified period of time.', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'CreateTrafficMirrorSession' => [ - 'summary' => 'Creates a traffic mirror session.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + .'* If the FULLNAT entry is in the **Deleting** state, the system is deleting the FULLNAT entry. In this case, you can query the status of the FULLNAT entry, but cannot perform other operations.'."\n" + .'* If the FULLNAT entry cannot be found, the FULLNAT entry is deleted.'."\n" + ."\n" + .'You cannot repeatedly call the **DeleteFullNatEntry** operation to delete a FULLNAT entry within the specified period of time.'."\n", + 'changeSet' => [ + ['createdAt' => '2025-03-25T16:26:00.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2023-01-04T09:37:44.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2022-12-13T10:55:47.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2021-10-15T06:08:26.000Z', 'description' => 'Request parameters changed'], ], + 'ramActions' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"2BCC426F-A9F2-3F03-99D2-1E0D647236DB\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 2BCC426F-A9F2-3F03-99D2-1E0D647236DB\\n","errorExample":""}]', + ], + 'DeleteGlobalAccelerationInstance' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'create', - 'riskType' => 'none', - 'chargeType' => 'paid', - ], + 'systemTags' => ['operationType' => 'delete'], 'parameters' => [ [ - 'name' => 'TrafficMirrorSessionDescription', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The description of the traffic mirror session.'."\n" - ."\n" - .'The description must be 1 to 256 characters in length and cannot start with `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'This is a trafficmirrorsession.', - ], + 'schema' => ['description' => 'The region ID of the GA instance.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'example' => 'cn-hangzhou'], ], [ - 'name' => 'TrafficMirrorSessionName', + 'name' => 'GlobalAccelerationInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => 'The name of the traffic mirror session.'."\n" - ."\n" - .'The name must be 1 to 128 characters in length, and cannot start with `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'test', - ], + 'schema' => ['description' => 'The ID of the GA instance.'."\n", 'type' => 'string', 'required' => true, 'example' => 'ga-asdfsl22s****'], ], - [ - 'name' => 'ClientToken', - 'in' => 'query', + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'You can use the client to generate the value, but you must ensure that the value is unique among all requests. The client token can contain only ASCII characters.'."\n" - ."\n" - .'> If you do not set this parameter, the system uses **RequestId** as **ClientToken**. **RequestId** might be different for each API request.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '0c593ea1-3bea-11e9-b96b-88e9fe63****', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => 'E6E63B2A-9820-44A8-A359-9BB2DAEE6424'], + ], ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'IncorrectGlobalAccelerationInstanceIdStatus', 'errorMessage' => 'Current GlobalAccelerationInstance status does not support this operation.', 'description' => ''], + ['errorCode' => 'InvalidGlobalAccelerationInstanceId.NotFound', 'errorMessage' => 'The specified GlobalAccelerationInstanceId is not found.', 'description' => ''], + ['errorCode' => 'Forbidden.GlobalAccelerationInstanceChargeTypeIsPrepaid', 'errorMessage' => 'It\'s forbidden to release a prepaid GlobalAccelerationInstance', 'description' => ''], + ['errorCode' => 'DependencyViolation.Ips', 'errorMessage' => 'The specified BandwidthPackageId has dependent resource ips.', 'description' => ''], + ['errorCode' => 'IncorrectStatus', 'errorMessage' => 'This openeration would be allowed only when status of this RouterInterface is Idle/Inactive.', 'description' => ''], + ], + 404 => [ + ['errorCode' => 'InvalidRegionId.NotFound', 'errorMessage' => 'The specified region is not supported.', 'description' => ''], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"E6E63B2A-9820-44A8-A359-9BB2DAEE6424\\"\\n}","errorExample":"\\n\\n BD5BCEE8-F62C-40C2-9AC3-89XXXXXXXXX\\n"},{"type":"xml","example":"\\n\\n E6E63B2A-9820-44A8-A359-9BB2DAEE6424\\n","errorExample":"{\\n \\"RequestId\\": \\"E6E63B2A-9820-44A8-A359-9BB2DAEE6424\\"\\n}"}]', + 'title' => 'DeleteGlobalAccelerationInstance', + 'summary' => 'Deletes a GA instance.', + 'description' => 'When you call this operation, take note of the following items:'."\n" + ."\n" + .'* You can delete only pay-as-you-go instances.'."\n" + .'* Before you can delete a dedicated instance, disassociate the backend server from the instance first.'."\n" + .'* Before you can delete a shared instance, disassociate the elastic IP address (EIP) from the instance first.'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [], + ], + 'DeleteHaVip' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'DryRun', - 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to perform a dry run. Valid values:'."\n" - ."\n" - .'* **true**: performs a dry run. The system checks the required parameters, request format, and 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.'."\n" - .'* **false** (default): performs a dry run and sends the request. If the request passes the dry run, the operation is performed.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'AK' => [], ], + ], + 'operationType' => 'write', + 'systemTags' => ['operationType' => 'delete'], + 'parameters' => [ [ - 'name' => 'TrafficMirrorTargetId', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the traffic mirror destination. You can specify only an elastic network interface (ENI) or a Server Load Balancer (SLB) instance as a traffic mirror destination.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'eni-j6c8znm5l1yt4sox****', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'You can use the client to generate the token, but you must make sure that the token is unique among different requests. The ClientToken value can contain only ASCII characters.'."\n" + ."\n" + .'> If you do not specify this parameter, the system uses the **RequestId** of the API request as the **ClientToken**. The **RequestId** may differ for each API request.', 'type' => 'string', 'required' => false, 'example' => '0c593ea1-3bea-11e9-b96b-88e9fe637760', 'title' => ''], ], [ - 'name' => 'TrafficMirrorTargetType', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The type of the traffic mirror destination. Valid values:'."\n" - ."\n" - .'* **NetworkInterface**: an ENI'."\n" - .'* **SLB**: an SLB instance'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'NetworkInterface', - ], + 'schema' => ['description' => 'The region ID of the HaVip. You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.', 'type' => 'string', 'required' => true, 'example' => 'cn-shanghai', 'title' => ''], ], [ - 'name' => 'TrafficMirrorFilterId', + 'name' => 'HaVipId', 'in' => 'query', + 'schema' => ['description' => 'The ID of the HaVip that you want to delete.', 'type' => 'string', 'required' => true, 'example' => 'havip-2zeo05qre24nhrqpy****', 'title' => ''], + ], + ], + 'responses' => [ + 200 => [ + 'headers' => [], 'schema' => [ - 'description' => 'The ID of the filter.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'tmf-j6cmls82xnc86vtpe****', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'C44F62BE-9CE7-4277-B117-69243F3988BF', 'title' => ''], + ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'IncorrectStatus', 'errorMessage' => 'HaVip can be deleted only when it is status is Available.', 'description' => 'Failed to delete the HAVIP. You can delete the HAVIP only when its status is available.'], + ['errorCode' => 'DependencyViolation.HaVipReferedByRouteEntry', 'errorMessage' => 'HaVip cannot be deleted when it is refered by a route table entry as next hop.', 'description' => ''], + ['errorCode' => 'DependencyViolation.HaVipAssociatedWithEIP', 'errorMessage' => 'HaVip cannot be deleted when it is associated with EIP.', 'description' => ''], + ['errorCode' => 'IncorrectHaVipStatus', 'errorMessage' => 'HaVip?s status is invalid.', 'description' => ''], + ['errorCode' => 'Forbidden.HaVip', 'errorMessage' => 'No permissions to perform operations on HAVIPs. Please apply for privilege--vpc_privilege_allow_buy_havip_instance.', 'description' => 'The error message returned because you do not have the permissions to manage the HAVIP. Go to the Quota Center page to acquire the permissions.'], + ['errorCode' => 'InvalidRegionId.NotFound', 'errorMessage' => 'The RegionId provided does not exist in our records.', 'description' => ''], + ], + 404 => [ + ['errorCode' => 'InvalidHaVipId.NotFound', 'errorMessage' => 'The specified HaVip does not exist in the specified region.', 'description' => 'The specified HAVIP does not exist in the specified region. Check whether the specified region is correct.'], + ], + ], + 'title' => 'Delete a high-availability virtual IP address (HaVip)', + 'summary' => 'Deletes a high-availability virtual IP address (HaVip).', + 'description' => 'Before you begin:'."\n" + ."\n" + .'- The HaVip must be in the available state before it can be deleted.'."\n" + ."\n" + .'- Make sure that no routes point to the HaVip that you want to delete.'."\n" + ."\n" + .'- Make sure that the HaVip that you want to delete is not associated with any elastic IP address (EIP).'."\n" + ."\n" + .'- The **DeleteHaVip** operation is asynchronous. After you send a request, the system returns a request ID. However, the HaVip is not yet deleted. The deletion task runs in the background. You can call [DescribeHaVips](~~114611~~) to query the deletion status of the HaVip:'."\n" + .' - If the HaVip is in the **Deleting** state, the HaVip is being deleted.'."\n" + .' - If the specified HaVip cannot be found, the HaVip is deleted.'."\n" + .'- The **DeleteHaVip** operation does not support concurrent deletion of the same HaVip.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2023-01-11T06:07:05.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-01-10T15:26:10.000Z', 'description' => 'Error codes changed, Response parameters changed'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DeleteHaVip'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], + ], + 'ramActions' => [ [ - 'name' => 'VirtualNetworkId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The VXLAN network identifier (VNI). Valid values: **0** to **16777215**.'."\n" - ."\n" - .'You can use VNIs to identify mirrored traffic from different sessions at the traffic mirror destination. You can specify a custom VNI or use a random VNI allocated by the system. If you want the system to randomly allocate a VNI, do not enter a value.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'vpc:DeleteHaVip', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'HaVip', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:havip/{#HaVipId}'], + ], ], ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"C44F62BE-9CE7-4277-B117-69243F3988BF\\"\\n}","type":"json"}]', + ], + 'DeleteIPv6Translator' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'Priority', - 'in' => 'query', - 'schema' => [ - 'description' => 'The priority of the traffic mirror session. Valid values: **1** to **32766**.'."\n" - ."\n" - .'A smaller value indicates a higher priority. You cannot specify identical priorities for traffic mirror sessions that are created in the same region by using the same account.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'docRequired' => true, - 'maximum' => '32766', - 'minimum' => '1', - 'example' => '1', - ], + 'AK' => [], ], + ], + 'operationType' => 'readAndWrite', + 'systemTags' => ['operationType' => 'delete'], + 'parameters' => [ [ - 'name' => 'Enabled', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to enable the traffic mirror session. Valid values:'."\n" - ."\n" - .'* **false** (default): does not enable the traffic mirror session.'."\n" - .'* **true**: enables the traffic mirror session.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'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.'."\n", 'type' => 'string', 'required' => false, 'example' => 'ClientToken', 'title' => ''], ], [ - 'name' => 'PacketLength', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The maximum transmission unit.'."\n" - ."\n" - .'Valid values: **64 to 9600**. Default value: **1500**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1500', - ], + 'schema' => ['description' => 'The region ID of the IPv6 Translation Service instance.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'TrafficMirrorSourceIds', + 'name' => 'Ipv6TranslatorId', 'in' => 'query', - 'style' => 'repeatList', + 'schema' => ['description' => 'The ID of the IPv6 Translation Service instance.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'ipv6trans-bp1i8ahxut1ie****', 'title' => ''], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => 'The ID of the traffic mirror source. You can specify only an elastic network interface (ENI) as the traffic mirror source. The default value of **N** is **1**, which indicates that you can add only one traffic mirror source to a traffic mirror session.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The ID of the traffic mirror source. You can specify only an ENI as the traffic mirror source. The default value of **N** is **1**, which means that you can add only one traffic mirror source to a traffic mirror session.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'eni-j6c2fp57q8rr47rp****', + 'description' => 'The returned data.'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B45', 'title' => ''], ], - 'required' => true, - 'docRequired' => true, - 'example' => 'eni-j6c2fp57q8rr47rp****', - 'maxLength' => 128, - 'maxItems' => 30, + 'title' => '', + 'example' => '', ], ], - [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region to which the traffic mirror session belongs. You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list. For more information about regions that support traffic mirror, see [Overview of traffic mirror](~~207513~~).', - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hongkong', + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'IPv6Translator.Configuring', 'errorMessage' => 'The specified ipv6 translator is configuring.', 'description' => ''], + ['errorCode' => 'Nat64Gateway.Configuring', 'errorMessage' => 'The specified IPv6 translator is configuring.', 'description' => ''], + ], + 403 => [ + ['errorCode' => 'Forbbiden.SubUser', 'errorMessage' => 'User not authorized to operate on the specified resource as your account is created by another user.', 'description' => ''], + ['errorCode' => 'Forbidden', 'errorMessage' => 'User not authorized to operate on the specified resource.', 'description' => 'You do not have the permissions to manage the specified resource. Apply for the permissions and try again.'], + ['errorCode' => 'ForbiddenRelease', 'errorMessage' => 'Forbidden to release a prepaid instance within validity period', 'description' => ''], + ], + [ + ['errorCode' => 'InvalidIPv6TranslatorId.NotFound', 'errorMessage' => 'The specified ipv6 translator instance id does not exist.', 'description' => ''], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B45\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 54B48E3D-DF70-471B-AA93-08E683A1B45\\n","errorExample":""}]', + 'title' => 'DeleteIPv6Translator', + 'summary' => 'Deletes an IPv6 Translation Service instance.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'vpc:DeleteIPv6Translator', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'Ipv6Translator', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:ipv6trans/{#Ipv6TranslatorId}'], + ], ], ], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DeleteIPv6Translator'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], + ], + ], + 'DeleteIPv6TranslatorAclList' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'ResourceGroupId', + 'AK' => [], + ], + ], + 'operationType' => 'readAndWrite', + 'deprecated' => true, + 'systemTags' => ['operationType' => 'delete'], + 'parameters' => [ + [ + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the resource group to which the mirrored traffic belongs.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'rg-bp67acfmxazb4ph****', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'You can use the client to generate the token, but you must make sure that the token is unique among all requests. The token can contain only ASCII characters.'."\n", 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-426655440000', 'title' => ''], ], [ - 'name' => 'Tag', + 'name' => 'RegionId', 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => 'The tag of the resource.', - 'type' => 'array', - 'items' => [ - 'description' => 'The tag of the resource.', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => 'The tag key. You can specify at most 20 tag keys. The tag key cannot be an empty string.'."\n" - ."\n" - .'The tag key can be up to 128 characters in length. It cannot start with `aliyun` or `acs:`, and cannot contain `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'FinanceDept', - ], - 'Value' => [ - 'description' => 'The tag value. You can specify at most 20 tag values. The tag value can be an empty string.'."\n" - ."\n" - .'The tag value can be up to 128 characters in length. It cannot start with `aliyun` or `acs:`, and cannot contain `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'FinanceJoshua', - ], - ], - 'required' => false, - ], - 'required' => false, - 'maxItems' => 21, - ], + 'schema' => ['description' => 'The region of the IPv6 translation service instance.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], + ], + [ + 'name' => 'AclId', + 'in' => 'query', + 'schema' => ['description' => 'The ID of the ACL that you want to delete.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'ipv6transacl-bp1de2****', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => '', + 'description' => 'The returned data.'."\n", 'type' => 'object', 'properties' => [ - 'TrafficMirrorSessionId' => [ - 'description' => 'The ID of the traffic mirror session.'."\n", - 'type' => 'string', - 'example' => 'tms-j6ce5di4w7nvigfjz****', - ], - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => '0ED8D006-F706-4D23-88ED-E11ED28DCAC0', - ], - 'ResourceGroupId' => [ - 'description' => 'The ID of the resource group to which the mirrored traffic belongs.'."\n", - 'type' => 'string', - 'example' => 'rg-bp67acfmxazb4ph****', - ], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B45', 'title' => ''], ], + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'IncorrectBusinessStatus.TrafficMirror', - 'errorMessage' => 'The business status of traffic mirror is incorrect.', - ], - [ - 'errorCode' => 'OptInRequired.TrafficMirror', - 'errorMessage' => 'You need to subscribe to the traffic mirror service first.', - ], - [ - 'errorCode' => 'DuplicatedParam.SourceInstanceIds', - 'errorMessage' => 'The parameter of source instance IDs contains duplicate values.', - ], - [ - 'errorCode' => 'OperationDenied.DuplicateRole', - 'errorMessage' => 'The network interface must not be the source and the target of traffic mirror sessions at the same time.', - ], - [ - 'errorCode' => 'ResourceNotFound.NetworkInterface', - 'errorMessage' => 'The specified resource of %s is not found.', - ], - [ - 'errorCode' => 'ResourceNotFound.EcsInstance', - 'errorMessage' => 'The specified resource of ECS instance is not found.', - ], - [ - 'errorCode' => 'ResourceNotFound.Slb', - 'errorMessage' => 'The specified resource of SLB is not found.', - ], - [ - 'errorCode' => 'OperationDenied.SlbNotInVpc', - 'errorMessage' => 'The specified SLB is not in any VPC.', - ], - [ - 'errorCode' => 'ResourceNotFound.TrafficMirrorFilter', - 'errorMessage' => 'The specified resource of traffic mirror filter is not found.', - ], - [ - 'errorCode' => 'IncorrectStatus.TrafficMirrorFilter', - 'errorMessage' => 'The status of traffic mirror filter is incorrect.', - ], - [ - 'errorCode' => 'OperationDenied.EcsNotSupportTrafficMirror', - 'errorMessage' => 'The ECS instance does not support traffic mirroring.', - ], - [ - 'errorCode' => 'QuotaExceeded.SessionNum', - 'errorMessage' => 'The quota of the number of traffic mirror sessions is exceeded.', - ], - [ - 'errorCode' => 'QuotaExceeded.FilterRelatedSession', - 'errorMessage' => 'The quota of the number of traffic mirror sessions related to one filter is exceeded.', - ], - [ - 'errorCode' => 'QuotaExceeded.SourceNumPerSession', - 'errorMessage' => 'The quota of the number of traffic mirror sources per session is exceeded.', - ], - [ - 'errorCode' => 'QuotaExceeded.NetworkInterfaceRelatedSession', - 'errorMessage' => 'The quota of the number of traffic mirror sessions related to one network interface is exceeded.', - ], - [ - 'errorCode' => 'QuotaExceeded.SlbRelatedSession', - 'errorMessage' => 'The quota of the number of traffic mirror sessions related to one SLB is exceeded.', - ], - [ - 'errorCode' => 'UnsupportedRegion', - 'errorMessage' => 'The feature is not supported in current region.', - ], - [ - 'errorCode' => 'InvalidLoadBalancerId.NotFound', - 'errorMessage' => 'The specified resource of load balancer is not found.', - ], - [ - 'errorCode' => 'OperationDenied.FreeNetworkInterface', - 'errorMessage' => 'The network interface is not attached to any ECS instance.', - ], - [ - 'errorCode' => 'OperationDenied.ClassicSLB', - 'errorMessage' => 'The operation is not allowed because of ClassicSLB.', - ], - [ - 'errorCode' => 'ResourceNotFound.TargetInstance', - 'errorMessage' => 'The specified target instance for traffic mirroring is not found.', - ], - [ - 'errorCode' => 'QuotaExceeded.SourceNumPerTarget', - 'errorMessage' => 'The maximum number of traffic mirror sources for a target is exceeded.', - ], - [ - 'errorCode' => 'IncorrectStatus.NetworkInterface', - 'errorMessage' => 'The status of network interface is incorrect.', - ], - [ - 'errorCode' => 'OperationFailed.NotSupportBizType', - 'errorMessage' => 'The specified instance type does not support the operation.', - ], - [ - 'errorCode' => 'IllegalParam.Priority', - 'errorMessage' => 'The specified Priority is illegal or the same as other mirroring sessions.', - ], - [ - 'errorCode' => 'OperationDenied.UnsupportedTargetType', - 'errorMessage' => 'Traffic mirror target must be SLB if traffic mirror sources contain nat gateway network interface.', - ], - [ - 'errorCode' => 'OperationDenied.TargetTypeNotSupportGatewayLoadBalancerEndpoint', - 'errorMessage' => 'Operation denied because of target type can not be GatewayLoadBalancerEndpoint.', - ], - [ - 'errorCode' => 'OperationDenied.TargetTypeNotSupportBondEni', - 'errorMessage' => 'Operation denied because of target type can not be Bond Network Interface.', - ], - [ - 'errorCode' => 'OperationDenied.InvalidTargetBondEniType', - 'errorMessage' => 'The traffic mirroring target does not support the entered bond ENI type.', - ], - [ - 'errorCode' => 'OperationDenied.InvalidSourceBondEniType', - 'errorMessage' => 'The traffic mirroring source does not support the entered bond ENI type.', - ], - [ - 'errorCode' => 'OperationDenied.TargetTypeNotSupportTrafficMirrorFullPacket', - 'errorMessage' => 'The traffic mirror session target type does not support the feature of mirroring source full packet.', - ], - [ - 'errorCode' => 'OperationDenied.TrafficMirrorSessionSourceFullPacketNotSupport', - 'errorMessage' => 'The traffic mirror session does not support the feature of mirroring source full packet.', - ], - [ - 'errorCode' => 'QuotaExceeded.SessionNumPerTarget', - 'errorMessage' => 'The quota of the number of traffic mirror sessions per target is exceeded.', - ], - [ - 'errorCode' => 'OperationDenied.NotSupportBondEniAsTrafficMirrorSource', - 'errorMessage' => 'The operation is not allowed because bond eni cannot be the source of traffic mirror.', - ], - [ - 'errorCode' => 'IncorrectStatus.TrafficMirrorSessionTarget', - 'errorMessage' => 'The status of the target of the traffic mirror session is incorrect.', - ], + ['errorCode' => 'InvalidIPv6TranslatorACLId.NotFound', 'errorMessage' => 'The specified ipv6 translator acl instance id does not exist.', 'description' => ''], + ['errorCode' => 'InvalidIPv6TranslatorACL.Used', 'errorMessage' => 'The specified ipv6 translator acl is be used.', 'description' => ''], ], - 404 => [ - [ - 'errorCode' => 'ResourceNotFound.GatewayLoadBalancerEndpoint', - 'errorMessage' => 'GatewayLoadBalancerEndpoint instance not found.', - ], + 403 => [ + ['errorCode' => 'Forbbiden.SubUser', 'errorMessage' => 'User not authorized to operate on the specified resource as your account is created by another user.', 'description' => ''], + ['errorCode' => 'Forbidden', 'errorMessage' => 'User not authorized to operate on the specified resource.', 'description' => 'You do not have the permissions to manage the specified resource. Apply for the permissions and try again.'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"TrafficMirrorSessionId\\": \\"tms-j6ce5di4w7nvigfjz****\\",\\n \\"RequestId\\": \\"0ED8D006-F706-4D23-88ED-E11ED28DCAC0\\",\\n \\"ResourceGroupId\\": \\"rg-bp67acfmxazb4ph****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n tms-j6ce5di4w7nvigfjz****\\n 0ED8D006-F706-4D23-88ED-E11ED28DCAC0\\n rg-bp67acfmxazb4ph****\\n","errorExample":""}]', - 'title' => 'CreateTrafficMirrorSession', - 'description' => '**CreateTrafficMirrorSession** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call [ListTrafficMirrorSessions](~~261367~~) to query the status of the task.'."\n" - ."\n" - .'* If the traffic mirror session is in the **Creating** state, it is being created.'."\n" - .'* If the traffic mirror session is in the **Created** state, it is created.'."\n", + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B45\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 54B48E3D-DF70-471B-AA93-08E683A1B45\\n","errorExample":""}]', + 'title' => 'DeleteIPv6TranslatorAclList', + 'summary' => 'Deletes an access control list (ACL). You can delete an ACL only when the ACL is not associated with IPv6 translation mappings.', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DeleteTrafficMirrorSession' => [ - 'summary' => 'Deletes a traffic mirror session.', - 'methods' => [ - 'post', - 'get', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'vpc:DeleteIPv6TranslatorAclList', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'Ipv6Translator', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:ipv6trans/{#Ipv6TranslatorId}'], + ], + ], + ], ], - 'schemes' => [ - 'http', - 'https', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DeleteIPv6TranslatorAclList'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], ], + ], + 'DeleteIPv6TranslatorEntry' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'readAndWrite', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'delete', - 'riskType' => 'none', - 'chargeType' => 'free', - ], + 'deprecated' => true, + 'systemTags' => ['operationType' => 'delete'], 'parameters' => [ [ 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'You can use the client to generate the value, but you must make sure that it is unique among all requests. ClientToken can contain only ASCII characters.'."\n" - ."\n" - .'> If you do not specify this parameter, **ClientToken** is set to the value of **RequestId**. The value of **RequestId** for each API request may be different.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '0c593ea1-3bea-11e9-b96b-88e9fe63****', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'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.'."\n", 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-426655440000', 'title' => ''], ], [ - 'name' => 'DryRun', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to to perform a dry run. Valid values:'."\n" - ."\n" - .'* **true**: performs a dry run. The system checks the required parameters, request format, and 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.'."\n" - .'* **false** (default): performs a dry run and sends the request. If the request passes the dry run, the operation is performed.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['description' => 'The region of the IPv6 Translation Service instance. You can call the **DescribeRegions** operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'TrafficMirrorSessionId', + 'name' => 'Ipv6TranslatorEntryId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the traffic mirror session.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'tms-j6cla50buc44ap8tu****', - ], + 'schema' => ['description' => 'The ID of the IPv6 mapping entry to be deleted.'."\n", 'type' => 'string', 'required' => false, 'example' => 'ipv6transentry-bp1g8bhrde****', 'title' => ''], ], [ - 'name' => 'RegionId', + 'name' => 'Ipv6TranslatorId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region to which the traffic mirror session belongs. You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list. For more information about regions that support traffic mirror, see [Overview of traffic mirror](~~207513~~).', - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hongkong', - ], + 'schema' => ['description' => 'The ID of the IPv6 Translation Service instance.'."\n" + ."\n" + .'> If you do not specify **Ipv6TranslatorEntryId**, all mapping entries in the specified instance are deleted.'."\n", 'type' => 'string', 'required' => false, 'example' => 'ipv6trans-bp1858ys****', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => '', + 'description' => 'The returned data.'."\n", 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => '0ED8D006-F706-4D23-88ED-E11ED28DCAC0', - ], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '8B2F5262-6B57-43F2-xxxxx', 'title' => ''], ], + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'ResourceNotFound.TrafficMirrorSession', - 'errorMessage' => 'The specified resource of traffic mirror session is not found.', - ], - [ - 'errorCode' => 'IncorrectStatus.TrafficMirrorSession', - 'errorMessage' => 'The status of traffic mirror session is incorrect.', - ], - [ - 'errorCode' => 'IncorrectStatus.TrafficMirrorFilter', - 'errorMessage' => 'The status of traffic mirror filter is incorrect.', - ], + ['errorCode' => 'InvalidIPv6TranslatorId.NotFound', 'errorMessage' => 'The specified ipv6 translator gateway instance id does not exist.', 'description' => ''], + ['errorCode' => 'InvalidIPv6TranslatorEntryId.NotFound', 'errorMessage' => 'The specified ipv6 translator entry id does not exist.', 'description' => ''], + ['errorCode' => 'IPv6Translator.Configuring', 'errorMessage' => 'The specified ipv6 translator is configuring.', 'description' => ''], + ['errorCode' => 'IPv6Translator.FinancialLocked', 'errorMessage' => 'The specified ipv6 translator is financial locked.', 'description' => ''], + ['errorCode' => 'InvalidIPv6TranslatorId.CoexistWithEntryId', 'errorMessage' => 'The entry id and instance id can not be specified together', 'description' => ''], + ['errorCode' => 'MissingEntryOrInstanceId', 'errorMessage' => 'The entry or instance id is not supplied', 'description' => ''], + ], + 403 => [ + ['errorCode' => 'Forbbiden.SubUser', 'errorMessage' => 'User not authorized to operate on the specified resource as your account is created by another user.', 'description' => ''], + ['errorCode' => 'Forbidden', 'errorMessage' => 'User not authorized to operate on the specified resource.', 'description' => 'You do not have the permissions to manage the specified resource. Apply for the permissions and try again.'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"0ED8D006-F706-4D23-88ED-E11ED28DCAC0\\"\\n}","errorExample":""},{"type":"xml","example":"\\r\\n0ED8D006-F706-4D23-88ED-E11ED28DCAC0\\r\\n","errorExample":""}]', - 'title' => 'DeleteTrafficMirrorSession', - 'description' => '* **DeleteTrafficMirrorSession** is an asynchronous operation. After you send the request, the system returns a request ID and runs the task in the background. You can call the [ListTrafficMirrorSessions](~~261367~~) operation to query the status of a traffic mirror session.'."\n" - ."\n" - .' * If the traffic mirror session is in the **Deleting** state, the traffic mirror session is being deleted.'."\n" - .' * If you cannot query the traffic mirror session, the traffic mirror session is deleted.'."\n" - ."\n" - .'* You cannot repeatedly call the **DeleteTrafficMirrorSession** operation to delete a traffic mirror session within the specified period of time.', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"8B2F5262-6B57-43F2-xxxxx\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 8B2F5262-6B57-43F2-xxxxx\\n","errorExample":""}]', + 'title' => 'DeleteIPv6TranslatorEntry', + 'summary' => 'Deletes an IPv6 mapping entry.', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'UpdateTrafficMirrorSessionAttribute' => [ - 'summary' => 'Modifies the configuration of a traffic mirror session.', - 'methods' => [ - 'post', - 'get', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'vpc:DeleteIPv6TranslatorEntry', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], ], - 'schemes' => [ - 'http', - 'https', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DeleteIPv6TranslatorEntry'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], ], + ], + 'DeleteIpsecServer' => [ + 'summary' => 'Deletes an IPsec server.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', - 'systemTags' => [ - 'operationType' => 'update', - 'riskType' => 'none', - 'chargeType' => 'free', - ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'delete', 'riskType' => 'none', 'chargeType' => 'free', 'autoTest' => true, 'tenantRelevance' => 'tenant'], 'parameters' => [ [ - 'name' => 'TrafficMirrorSessionDescription', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The new description of the traffic mirror session.'."\n" - ."\n" - .'The description must be 1 to 256 characters in length and cannot start with `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'This is a new session.', - ], + 'schema' => ['description' => 'The ID of the region where the IPsec server is created.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'TrafficMirrorSessionName', + 'name' => 'IpsecServerId', 'in' => 'query', - 'schema' => [ - 'description' => 'The new name of the traffic mirror session.'."\n" - ."\n" - .'The name must be 1 to 128 characters in length, and cannot start with `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'abc', - ], + 'schema' => ['description' => 'The ID of the IPsec server.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'iss-bp1jougp8cfsbo8y9****', 'title' => ''], ], [ 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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.'."\n" - ."\n" - .'> 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.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '0c593ea1-3bea-11e9-b96b-88e9fe63****', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'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.'."\n" + ."\n" + .'> 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.'."\n", 'type' => 'string', 'required' => false, 'example' => '02fb3da4-130e-11e9-8e44-00****', 'title' => ''], ], [ 'name' => 'DryRun', 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to perform a dry run. Valid values:'."\n" - ."\n" - .'* **true**: performs 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.'."\n" - .'* **false**: sends the request. If the request passes the check, a 2xx HTTP status code is returned and the operation is performed. This is the default value.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values:'."\n" + ."\n" + .'* **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.'."\n" + .'* **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.'."\n", 'type' => 'string', 'required' => false, 'example' => 'false', 'title' => ''], ], - [ - 'name' => 'TrafficMirrorSessionId', - 'in' => 'query', + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => 'The ID of the traffic mirror session.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'tms-j6cla50buc44ap8tu****', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '0ED8D006-F706-4D23-88ED-E11ED28DCAC0', 'title' => ''], + ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'VpnGateway.Configuring', 'errorMessage' => 'The specified service is configuring.', 'description' => ''], + ], + 403 => [ + ['errorCode' => 'Forbidden', 'errorMessage' => 'User not authorized to operate on the specified resource.', 'description' => 'You do not have the permissions to manage the specified resource. Apply for the permissions and try again.'], + ], [ - 'name' => 'TrafficMirrorTargetId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the traffic mirror destination.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'eni-j6c2fp57q8rr47rp*****', - ], + ['errorCode' => 'InvalidIpsecServerId.NotFound', 'errorMessage' => 'The specified IPsec server ID (%s) does not exist.', 'description' => ''], + ], + 409 => [ + ['errorCode' => 'OperationConflict', 'errorMessage' => 'The operation against this instance is too frequent, please try again later.', 'description' => 'Operations are too frequently performed on the instance. Try again later.'], ], + ], + 'staticInfo' => ['returnType' => 'asynchronous', 'callback' => 'Vpc::2016-04-28::DescribeVpnGateway', 'callbackInterval' => 1000, 'maxCallbackTimes' => 30], + 'title' => 'DeleteIpsecServer', + 'description' => '* **DeleteIpsecServer** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call [DescribeVpnGateway](~~2794055~~) to query the status of the task.'."\n" + ."\n" + .' * If the VPN gateway is in the **updating** state, the IPsec server is being deleted.'."\n" + .' * If the VPN gateway is in the **active** state, the IPsec server is deleted.'."\n" + ."\n" + .'* You cannot call **DeleteIpsecServer** within the specified period of time.'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"0ED8D006-F706-4D23-88ED-E11ED28DCAC0\\"\\n}","errorExample":""},{"type":"xml","example":"\\r\\n0ED8D006-F706-4D23-88ED-E11ED28DCAC0\\r\\n","errorExample":""}]', + ], + 'DeleteIpv4Gateway' => [ + 'summary' => 'Deletes an IPv4 gateway.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'TrafficMirrorTargetType', - 'in' => 'query', - 'schema' => [ - 'description' => 'The new type of the traffic mirror destination. Valid values:'."\n" - ."\n" - .'* **NetworkInterface**: an elastic network interface (ENI)'."\n" - .'* **SLB**: an internal-facing Server Load Balancer (SLB) instance'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'NetworkInterface', - ], + 'AK' => [], ], + ], + 'operationType' => 'readAndWrite', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'delete', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '38044', + 'abilityTreeNodes' => ['FEATUREvpcTEV4TQ'], + ], + 'parameters' => [ [ - 'name' => 'TrafficMirrorFilterId', + 'name' => 'Ipv4GatewayId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the traffic mirror filter.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'tmf-j6cmls82xnc86vtpe****', - ], + 'schema' => ['description' => 'The ID of the IPv4 gateway that you want to delete.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'ipv4gw-5tsnc6s4ogsedtp3k****', 'title' => ''], ], [ - 'name' => 'VirtualNetworkId', + 'name' => 'InternetMode', 'in' => 'query', 'schema' => [ - 'description' => 'The VXLAN network identifier (VNI) that is used to distinguish different mirrored traffic. Valid values: **0** to **16777215**.'."\n" - ."\n" - .'You can use VNIs to identify mirrored traffic from different sessions at the traffic mirror destination. If you do not specify a VNI, the system randomly allocates a VNI. If you want the system to randomly allocate a VNI, ignore this parameter.'."\n", - 'type' => 'integer', - 'format' => 'int32', + 'description' => 'Select the public network mode of the VPC after deleting the IPv4 gateway. The values are:'."\n" + .'- **private**: Default value, after deleting the IPv4 gateway, the VPC will become a pure private VPC without public network access capability. '."\n" + .'- **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.', + 'type' => 'string', 'required' => false, - 'example' => '10', + 'docRequired' => false, + 'enumValueTitles' => ['private' => 'private', 'public' => 'public'], + 'example' => 'public', + 'title' => '', ], ], [ - 'name' => 'Priority', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The new priority of the traffic mirror session. Valid values: **1** to **32766**.'."\n" - ."\n" - .'A smaller value indicates a higher priority. You cannot specify identical priorities for traffic mirror sessions that are created in the same region by using the same account.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '2', - ], + 'schema' => ['description' => 'The region ID of the IPv4 gateway that you want to delete.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'ap-southeast-6', 'title' => ''], ], [ - 'name' => 'PacketLength', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The maximum transmission unit (MTU).'."\n" - ."\n" - .'Valid values: **64 to 9600**. Default value: **1500**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1500', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'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.'."\n" + ."\n" + .'> 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.'."\n", 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-426655440000', 'title' => ''], ], [ - 'name' => 'Enabled', + 'name' => 'DryRun', 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to enable the traffic mirror session. Valid values:'."\n" - ."\n" - .'* **false** (default)'."\n" - .'* **true**'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['description' => 'Specifies whether to perform a dry run, without performing the actual request. Valid values:'."\n" + ."\n" + .'* **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.'."\n" + .'* **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.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], ], [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the traffic mirror session. You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list. For more information about the regions that support traffic mirror, see [Overview of traffic mirror](~~207513~~).', - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hongkong', - ], + 'schema' => ['description' => 'The region ID of the IPv4 gateway that you want to delete.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'ap-southeast-6', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => '', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '64DCAF03-E2C7-479A-ACEA-38B79876B006', - ], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '21133AC0-0636-521B-A400-253818691A56', 'title' => ''], ], + 'description' => '', + 'title' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'IncorrectBusinessStatus.TrafficMirror', - 'errorMessage' => 'The business status of traffic mirror is incorrect.', - ], - [ - 'errorCode' => 'OptInRequired.TrafficMirror', - 'errorMessage' => 'You need to subscribe to the traffic mirror service first.', - ], - [ - 'errorCode' => 'DuplicatedParam.Priority', - 'errorMessage' => 'The specified priority conflicts with the existing priority.', - ], - [ - 'errorCode' => 'ResourceNotFound.TrafficMirrorSession', - 'errorMessage' => 'The specified resource of traffic mirror session is not found.', - ], - [ - 'errorCode' => 'IncorrectStatus.TrafficMirrorSession', - 'errorMessage' => 'The status of traffic mirror session is incorrect.', - ], - [ - 'errorCode' => 'ResourceNotFound.TrafficMirrorFilter', - 'errorMessage' => 'The specified resource of traffic mirror filter is not found.', - ], - [ - 'errorCode' => 'IncorrectStatus.TrafficMirrorFilter', - 'errorMessage' => 'The status of traffic mirror filter is incorrect.', - ], - [ - 'errorCode' => 'QuotaExceeded.FilterRelatedSession', - 'errorMessage' => 'The quota of the number of traffic mirror sessions related to one filter is exceeded.', - ], - [ - 'errorCode' => 'ResourceNotFound.NetworkInterface', - 'errorMessage' => 'The specified resource of network interface is not found.', - ], - [ - 'errorCode' => 'ResourceNotFound.EcsInstance', - 'errorMessage' => 'The specified resource of ECS instance is not found.', - ], - [ - 'errorCode' => 'ResourceNotFound.Slb', - 'errorMessage' => 'The specified resource of SLB is not found.', - ], - [ - 'errorCode' => 'OperationDenied.SlbNotInVpc', - 'errorMessage' => 'The specified SLB is not in any VPC.', - ], - [ - 'errorCode' => 'QuotaExceeded.NetworkInterfaceRelatedSession', - 'errorMessage' => 'The quota of the number of traffic mirror sessions related to one network interface is exceeded.', - ], - [ - 'errorCode' => 'QuotaExceeded.SlbRelatedSession', - 'errorMessage' => 'The quota of the number of traffic mirror sessions related to one SLB is exceeded.', - ], - [ - 'errorCode' => 'OperationDenied.EcsNotSupportTrafficMirror', - 'errorMessage' => 'The ECS instance does not support traffic mirroring.', - ], - [ - 'errorCode' => 'OperationDenied.DuplicateRole', - 'errorMessage' => 'The network interface must not be the source and the target of traffic mirror sessions at the same time.', - ], - [ - 'errorCode' => 'InvalidLoadBalancerId.NotFound', - 'errorMessage' => 'The specified resource of load balancer is not found.', - ], - [ - 'errorCode' => 'OperationDenied.FreeNetworkInterface', - 'errorMessage' => 'The network interface is not attached to any ECS instance.', - ], - [ - 'errorCode' => 'OperationDenied.ClassicSLB', - 'errorMessage' => 'The operation is not allowed because of ClassicSLB.', - ], - [ - 'errorCode' => 'QuotaExceeded.SourceNumPerTarget', - 'errorMessage' => 'The maximum number of traffic mirror sources for a target is exceeded.', - ], - [ - 'errorCode' => 'OperationFailed.NotSupportBizType', - 'errorMessage' => 'The specified instance type does not support the operation.', - ], - [ - 'errorCode' => 'OperationDenied.UnsupportedTargetType', - 'errorMessage' => 'Traffic mirror target must be SLB if traffic mirror sources contain nat gateway network interface.', - ], - [ - 'errorCode' => 'OperationDenied.TargetTypeNotSupportBondEni', - 'errorMessage' => 'Operation denied because of target type can not be Bond Network Interface.', - ], - [ - 'errorCode' => 'OperationDenied.TargetTypeNotSupportGatewayLoadBalancerEndpoint', - 'errorMessage' => 'Operation denied because of target type can not be GatewayLoadBalancerEndpoint.', - ], - [ - 'errorCode' => 'OperationDenied.InvalidTargetBondEniType', - 'errorMessage' => 'The traffic mirroring target does not support the entered bond ENI type.', - ], - [ - 'errorCode' => 'OperationDenied.TargetTypeNotSupportTrafficMirrorFullPacket', - 'errorMessage' => 'The traffic mirror session target type does not support the feature of mirroring source full packet.', - ], - [ - 'errorCode' => 'OperationDenied.TrafficMirrorSessionSourceFullPacketNotSupport', - 'errorMessage' => 'The traffic mirror session does not support the feature of mirroring source full packet.', - ], - ], - 404 => [ - [ - 'errorCode' => 'ResourceNotFound.GatewayLoadBalancerEndpoint', - 'errorMessage' => 'GatewayLoadBalancerEndpoint instance not found.', - ], - ], - 500 => [ - [ - 'errorCode' => 'OperationFailed.GetEniInfo', - 'errorMessage' => 'The back-end service failed to query the NIC information.', - ], + ['errorCode' => 'ResourceNotFound.Ipv4Gateway', 'errorMessage' => 'The specified resource ipv4Gateway is not found.', 'description' => 'The IPv4 gateway is not found and cannot be deleted.'], + ['errorCode' => 'IncorrectStatus.Ipv4Gateway', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => 'The IPv4 gateway is in an invalid state. Try again later.'], + ['errorCode' => 'OperationDenied.RouteEntryExist', 'errorMessage' => 'The operation is not allowed because of existing routeEntry point to ipv4Gateway.', 'description' => 'You cannot delete the IPv4 gateway because routes that point to the IPv4 gateway exist.'], + ['errorCode' => 'OperationDenied.GatewayAlreadyAssociated', 'errorMessage' => 'The operation is not allowed because of the specified resource %s is already associated.', 'description' => 'The operation is not allowed because the IPv4 gateway is in the Associated state.'], + ['errorCode' => 'OperationFailed.Ipv4GatewayUsedByEipBindIpAddress', 'errorMessage' => 'Failed to delete the IPv4 gateway because the EIP associated with a private IP address requires the IPv4 gateway to implement outbound Internet access.', 'description' => 'The EIP is associated with a private IP address and this feature requires an IPv4 gateway. Therefore, you cannot delete the IPv4 gateway.'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"64DCAF03-E2C7-479A-ACEA-38B79876B006\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 64DCAF03-E2C7-479A-ACEA-38B79876B006\\n","errorExample":""}]', - 'title' => 'UpdateTrafficMirrorSessionAttribute', - 'description' => '## Usage notes'."\n" + 'staticInfo' => ['returnType' => 'asynchronous', 'callback' => 'Vpc::2016-04-28::GetIpv4GatewayAttribute', 'callbackInterval' => 3, 'maxCallbackTimes' => 10], + 'title' => 'DeleteIpv4Gateway', + 'description' => '### [](#)Description'."\n" ."\n" - .'* **UpdateTrafficMirrorSessionAttribute** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call the [ListTrafficMirrorSessions](~~261367~~) operation to query the status of the task.'."\n" + .'* Before you delete an IPv4 gateway, make sure that no route tables are associated with the IPv4 gateway.'."\n" ."\n" - .' * If the traffic mirror session is in the **Modifying** state, the configuration of the traffic mirror session is being modified.'."\n" - .' * If the traffic mirror session is in the **Created** state, the configuration of the traffic mirror session is modified.'."\n" + .'* **DeleteIpv4Gateway** is an asynchronous operation. After a request is sent, the system returns a **request ID** and runs the task in the background. You can call the [GetIpv4GatewayAttribute](~~407670~~) operation to query the status of the task.'."\n" ."\n" - .'* You cannot repeatedly call the **UpdateTrafficMirrorSessionAttribute** operation within a specific period of time.'."\n", - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'ListTrafficMirrorSessions' => [ - 'summary' => 'Queries the details of a traffic mirror session.', - 'methods' => [ - 'post', - 'get', + .' * If the IPv4 gateway is in the **Deleting** state, the IPv4 gateway is being deleted.'."\n" + .' * If the IPv4 gateway cannot be queried, the IPv4 gateway is deleted.'."\n" + ."\n" + .'* After you call the **DeleteIpv4Gateway** operation to delete an IPv4 gateway, you cannot call the operation again to delete the IPv4 gateway until the deletion task is complete.'."\n", + 'changeSet' => [ + ['createdAt' => '2024-06-14T06:24:09.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2023-04-13T10:09:34.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2021-11-02T02:19:49.000Z', 'description' => 'OpenAPI offline'], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'vpc:DeleteIpv4Gateway', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'Ipv4Gateway', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:ipv4gateway/{#ipv4gatewayId}'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"21133AC0-0636-521B-A400-253818691A56\\"\\n}","type":"json"}]', + ], + 'DeleteIpv6EgressOnlyRule' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'readAndWrite', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'list', + 'operationType' => 'delete', 'riskType' => 'none', 'chargeType' => 'free', + 'abilityTreeCode' => '37991', + 'abilityTreeNodes' => ['FEATUREvpc3GHR3P'], + 'autoTest' => true, + 'tenantRelevance' => 'publicInformation', ], 'parameters' => [ [ - 'name' => 'TrafficMirrorSessionName', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The name of the traffic mirror session.'."\n" - ."\n" - .'The name must be 1 to 128 characters in length, and cannot start with `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'abc', - ], + 'schema' => ['description' => 'The region ID of the IPv6 gateway. You can call the [DescribeRegions](~~36063~~) operation to query the region ID.', 'type' => 'string', 'required' => true, 'example' => 'cn-huhehaote', 'title' => ''], ], [ - 'name' => 'MaxResults', + 'name' => 'Ipv6EgressOnlyRuleId', 'in' => 'query', - 'schema' => [ - 'description' => 'The maximum number of entries to return. Valid values: **1** to **100**. Default value: **10**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '10', - ], + 'schema' => ['description' => 'The ID of the IPv6 egress-only rule that you want to delete.', 'type' => 'string', 'required' => true, 'example' => 'ipv6py-hp3w98rmlbqp0xxxxxxxx', 'title' => ''], ], [ - 'name' => 'NextToken', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The token that is used for the next query. Valid values:'."\n" - ."\n" - .'* If this is your first query and no next queries are to be sent, ignore this parameter.'."\n" - .'* If a next query is to be sent, set the value to the value of NextToken that is returned from the last call.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'You can use the client to generate the token, but you must make sure that the token is unique among different requests. The ClientToken value can contain only ASCII characters.'."\n" + ."\n" + .'> If you do not specify this parameter, the system uses the **RequestId** of the API request as the **ClientToken**. The **RequestId** may be different for each API request.', 'type' => 'string', 'required' => false, 'example' => '123456', 'title' => ''], ], [ - 'name' => 'TrafficMirrorSourceId', + 'name' => 'DryRun', 'in' => 'query', + 'schema' => ['type' => 'boolean', 'description' => '', 'title' => '', 'example' => ''], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => 'The ID of the traffic mirror source. You can specify only an elastic network interface (ENI) as the mirror source.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'eni-j6c8znm5l1yt4sox*****', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '9DFEDBEE-E5AB-49E8-A2DC-CC114C67AF75', 'title' => ''], + ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'IncorrectStatus.EgressOnlyRule', 'errorMessage' => 'The status of the specified IPv6EgressOnlyRule is incorrect.', 'description' => 'The specified IPv6EgressOnlyRule is not in steady state.'."\n"], + ], + 404 => [ + ['errorCode' => 'ResourceNotFound.Ipv6EgressOnlyRule', 'errorMessage' => 'The specified resource of IPv6 Gateway Rule is not found.', 'description' => 'The specified IPv6 egress-only rule instance does not exist.'], + ], + ], + 'staticInfo' => ['returnType' => 'asynchronous', 'callback' => 'Vpc::2016-04-28::DescribeIpv6EgressOnlyRules', 'callbackInterval' => 3000, 'maxCallbackTimes' => 10], + 'title' => 'Delete an iPv6 egress-only rule', + 'summary' => 'Deletes an IPv6 egress-only rule.', + 'description' => '- **DeleteIpv6EgressOnlyRule** is an asynchronous operation. After you send a request, the system returns a request ID, but the IPv6 egress-only rule is not yet deleted. The deletion task continues to run in the background. You can call the [DescribeIpv6EgressOnlyRules](~~102208~~) operation to query the deletion status of the IPv6 egress-only rule:'."\n" + .' - If the IPv6 egress-only rule is in the **Deleting** state, the rule is being deleted.'."\n" + .' - If the specified IPv6 egress-only rule cannot be found, the rule has been deleted.'."\n" + .'- **DeleteIpv6EgressOnlyRule** does not support concurrent deletion of the same IPv6 egress-only rule.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2025-02-10T11:21:39.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-10-13T03:44:54.000Z', 'description' => 'Error codes changed'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DeleteIpv6EgressOnlyRule'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], + ], + 'ramActions' => [ [ - 'name' => 'TrafficMirrorTargetId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the traffic mirror destination. You can specify only an ENI or a Server Load Balancer (SLB) instance as a traffic mirror destination.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'eni-j6c2fp57q8rr47rp****', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'vpc:DeleteIpv6EgressOnlyRule', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'Ipv6Gateway', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:ipv6gateway/{#Ipv6GatewayId}'], + ], ], ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"9DFEDBEE-E5AB-49E8-A2DC-CC114C67AF75\\"\\n}","type":"json"}]', + ], + 'DeleteIpv6Gateway' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'TrafficMirrorFilterId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the traffic mirror filter.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'tmf-j6cmls82xnc86vtpe****', - ], + 'AK' => [], ], + ], + 'operationType' => 'readAndWrite', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'delete', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '37992', + 'abilityTreeNodes' => ['FEATUREvpcGGHSBJ'], + 'autoTest' => true, + 'tenantRelevance' => 'publicInformation', + ], + 'parameters' => [ [ - 'name' => 'VirtualNetworkId', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The VXLAN network identifier (VNI) that is used to distinguish different mirrored traffic. Valid values: **0** to **16777215**. You can use VNIs to identify mirrored traffic from different sessions at the traffic mirror destination. You can specify a custom VNI or use a random VNI that is allocated by the system. If you want the system to randomly allocate a VNI, ignore this parameter.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '10', - ], + 'schema' => ['description' => 'The region ID of the IPv6 gateway. You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.', 'type' => 'string', 'required' => true, 'example' => 'cn-huhehaote', 'title' => ''], ], [ - 'name' => 'Priority', + 'name' => 'Ipv6GatewayId', 'in' => 'query', - 'schema' => [ - 'description' => 'The priority of the traffic mirror session. Valid values: **1** to **32766**.'."\n" - ."\n" - .'A smaller value indicates a higher priority. You cannot specify identical priorities for traffic mirror sessions that are created in the same region by using the same account.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', - ], + 'schema' => ['description' => 'The instance ID of the IPv6 gateway that you want to delete.', 'type' => 'string', 'required' => true, 'example' => 'ipv6gw-hp3y0l3ln89j8****', 'title' => ''], ], [ - 'name' => 'Enabled', + 'name' => 'DryRun', 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to enable the traffic mirror session. Valid values:'."\n" - ."\n" - .'* **false**: does not enable the traffic mirror session.'."\n" - .'* **true**: enables the traffic mirror session.', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values:'."\n" + ."\n" + .'- **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.'."\n" + ."\n" + .'- **false** (default): performs a dry run and performs the actual request. If the request passes the dry run, the IPv6 gateway is deleted.', 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], ], [ - 'name' => 'TrafficMirrorSessionIds', + 'name' => 'ClientToken', 'in' => 'query', - 'style' => 'repeatList', + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'You can use the client to generate the token, but you must make sure that the token is unique among different requests. The ClientToken value can contain only ASCII characters.'."\n" + ."\n" + .'> If you do not specify this parameter, the system automatically uses the **RequestId** of the API request as the **ClientToken**. The **RequestId** may be different for each API request.', 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-426655440000', 'title' => ''], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => 'The IDs of the traffic mirror session. The maximum value of N is 100, which indicates that you can query up to 100 traffic mirror sessions at a time.', - 'type' => 'array', - 'items' => [ - 'description' => 'The ID of the traffic mirror session. The maximum value of **N** is **100**, which indicates that you can query up to 100 traffic mirror sessions at a time.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'tms-j6cla50buc44ap8tu****', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'E9A8AABE-A84B-4AF2-A68A-8E2EA190E7AE', 'title' => ''], ], - 'required' => false, - 'example' => 'tms-j6cla50buc44ap8tu****', - 'maxLength' => 128, - 'maxItems' => 100, - ], - ], - [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region to which the traffic mirror session belongs. You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list. For more information about regions that support traffic mirror, see [Overview of traffic mirror](~~207513~~).', - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hongkong', - ], - ], - [ - 'name' => 'ResourceGroupId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the resource group to which the mirrored traffic belongs.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'rg-bp67acfmxazb4ph****', - ], - ], - [ - 'name' => 'Tags', - 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => 'The tags of the resource.', - 'type' => 'array', - 'items' => [ - 'description' => 'The tag of the resource.', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => 'The tag key. You can specify at most 20 tag keys. The tag key cannot be an empty string.'."\n" - ."\n" - .'The key cannot exceed 64 characters in length, and can contain digits, periods (.), underscores (\\_), and hyphens (-). The key must start with a letter but cannot start with `aliyun` or `acs:`. The key cannot contain `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'FinanceDept', - ], - 'Value' => [ - 'description' => 'The tag value. You can specify at most 20 tag values. The tag value can be an empty string.'."\n" - ."\n" - .'The tag value cannot exceed 128 characters in length, and can contain digits, periods (.), underscores (\\_), and hyphens (-). It must start with a letter but cannot start with `aliyun` or `acs:`. It cannot contain `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'FinanceJoshua', - ], - ], - 'required' => false, - ], - 'required' => false, - 'maxItems' => 10, - ], - ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ 'description' => '', - 'type' => 'object', - 'properties' => [ - 'NextToken' => [ - 'description' => 'The token that is used for the next query. Valid values:'."\n" - ."\n" - .'* If no value is returned for **NextToken**, no next queries are sent.'."\n" - .'* If a value of **NextToken** is returned, the value is the token that is used for the subsequent query.'."\n", - 'type' => 'string', - 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', - ], - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => '739CA01C-92EB-4C69-BCC0-280149C6F41E', - ], - 'TotalCount' => [ - 'description' => 'The total number of entries returned.'."\n", - 'type' => 'string', - 'example' => '1', - ], - 'TrafficMirrorSessions' => [ - 'description' => 'The details about the traffic mirror session.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'TrafficMirrorTargetId' => [ - 'description' => 'The ID of the traffic mirror destination.'."\n", - 'type' => 'string', - 'example' => 'eni-j6c2fp57q8rr47rp****', - ], - 'TrafficMirrorSessionId' => [ - 'description' => 'The ID of the traffic mirror session.'."\n", - 'type' => 'string', - 'example' => 'tms-j6cla50buc44ap8tu****', - ], - 'Priority' => [ - 'description' => 'The priority of the traffic mirror session.'."\n" - ."\n" - .'A smaller value indicates a higher priority.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'TrafficMirrorTargetType' => [ - 'description' => 'The type of the traffic mirror destination. Valid values:'."\n" - ."\n" - .'* **NetworkInterface**: an elastic network interface (ENI)'."\n" - .'* **SLB**: an internal-facing Server Load Balancer (SLB) instance'."\n", - 'type' => 'string', - 'example' => 'NetworkInterface', - ], - 'PacketLength' => [ - 'description' => 'The maximum transmission unit.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1500', - ], - 'TrafficMirrorSessionDescription' => [ - 'description' => 'The description of the traffic mirror session.'."\n", - 'type' => 'string', - 'example' => 'This is a session.', - ], - 'TrafficMirrorSessionStatus' => [ - 'description' => 'The status of the traffic mirror session. Valid values:'."\n" - ."\n" - .'* **Creating**'."\n" - .'* **Created**'."\n" - .'* **Modifying**'."\n" - .'* **Deleting**'."\n", - 'type' => 'string', - 'example' => 'Created', - ], - 'Enabled' => [ - 'description' => 'Indicates whether the traffic mirror session was enabled.'."\n" - ."\n" - .'* **false** '."\n" - .'* **true**', - 'type' => 'boolean', - 'example' => 'false', - ], - 'TrafficMirrorSessionBusinessStatus' => [ - 'description' => 'The status of the traffic mirror session.'."\n" - ."\n" - .'* **Normal**'."\n" - .'* **FinancialLocked**'."\n", - 'type' => 'string', - 'example' => 'Normal', - ], - 'VirtualNetworkId' => [ - 'description' => 'You can specify VNIs to distinguish different mirrored traffic.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'TrafficMirrorFilterId' => [ - 'description' => 'The ID of the filter.'."\n", - 'type' => 'string', - 'example' => 'tmf-j6cmls82xnc86vtpe****', - ], - 'TrafficMirrorSessionName' => [ - 'description' => 'The name of the traffic mirror session.'."\n", - 'type' => 'string', - 'example' => 'abc', - ], - 'TrafficMirrorSourceIds' => [ - 'description' => 'The ID of the traffic mirror source.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The ID of the traffic mirror source.'."\n", - 'type' => 'string', - 'example' => 'eni-j6c8znm5l1yt4sox****', - ], - ], - 'ResourceGroupId' => [ - 'description' => 'The ID of the resource group to which the traffic mirror session belongs.'."\n", - 'type' => 'string', - 'example' => 'rg-bp67acfmxazb4ph****', - ], - 'Tags' => [ - 'description' => 'The tag list.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => 'The tag key.'."\n", - 'type' => 'string', - 'example' => 'FinanceDept', - ], - 'Value' => [ - 'description' => 'The tag value.'."\n", - 'type' => 'string', - 'example' => 'FinanceJoshua', - ], - ], - ], - ], - 'CreationTime' => [ - 'description' => 'The time when the session is created.', - 'type' => 'string', - 'example' => '2023-09-05T15:26Z', - ], - ], - ], - ], - ], + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'IllegalParam.NextToken', - 'errorMessage' => 'The specified NextToken is invalid.', - ], - ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"NextToken\\": \\"FFmyTO70tTpLG6I3FmYAXGKPd****\\",\\n \\"RequestId\\": \\"739CA01C-92EB-4C69-BCC0-280149C6F41E\\",\\n \\"TotalCount\\": \\"1\\",\\n \\"TrafficMirrorSessions\\": [\\n {\\n \\"TrafficMirrorTargetId\\": \\"eni-j6c2fp57q8rr47rp****\\",\\n \\"TrafficMirrorSessionId\\": \\"tms-j6cla50buc44ap8tu****\\",\\n \\"Priority\\": 1,\\n \\"TrafficMirrorTargetType\\": \\"NetworkInterface\\",\\n \\"PacketLength\\": 1500,\\n \\"TrafficMirrorSessionDescription\\": \\"This is a session.\\",\\n \\"TrafficMirrorSessionStatus\\": \\"Created\\",\\n \\"Enabled\\": false,\\n \\"TrafficMirrorSessionBusinessStatus\\": \\"Normal\\",\\n \\"VirtualNetworkId\\": 10,\\n \\"TrafficMirrorFilterId\\": \\"tmf-j6cmls82xnc86vtpe****\\",\\n \\"TrafficMirrorSessionName\\": \\"abc\\",\\n \\"TrafficMirrorSourceIds\\": [\\n \\"eni-j6c8znm5l1yt4sox****\\"\\n ],\\n \\"ResourceGroupId\\": \\"rg-bp67acfmxazb4ph****\\",\\n \\"Tags\\": [\\n {\\n \\"Key\\": \\"FinanceDept\\",\\n \\"Value\\": \\"FinanceJoshua\\"\\n }\\n ],\\n \\"CreationTime\\": \\"2023-09-05T15:26Z\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\n FFmyTO70tTpLG6I3FmYAXGKPd****\\n 739CA01C-92EB-4C69-BCC0-280149C6F41E\\n 1\\n \\n eni-j6c2fp57q8rr47rp****\\n tms-j6cla50buc44ap8tu****\\n 1\\n NetworkInterface\\n 1500\\n This is a session.\\n Created\\n false\\n Normal\\n 10\\n tmf-j6cmls82xnc86vtpe****\\n abc\\n eni-j6c8znm5l1yt4sox****\\n rg-bp67acfmxazb4ph****\\n \\n FinanceDept\\n FinanceJoshua\\n \\n 2023-09-05T15:26Z\\n \\n","errorExample":""}]', - 'title' => 'ListTrafficMirrorSessions', + ['errorCode' => 'DependencyViolation.GatewayRouteTableRelation', 'errorMessage' => 'The specified resource of %s depends on %s, so the operation cannot be completed.', 'description' => 'The specified resource is dependent on other resources and the current operation is not allowed.'], + ['errorCode' => 'IncorrectStatus.Ipv6Gateway', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => 'The IPv6 gateway is in an unstable state. Try again later.'], + ['errorCode' => 'DependencyViolation.EgressRules', 'errorMessage' => 'The specified resource of %s depends on %s, so the operation cannot be completed.', 'description' => 'The specified resource is dependent on other resources and the current operation is not allowed.'], + ['errorCode' => 'DependencyViolation.Ipv6InternetBandwidth', 'errorMessage' => 'The specified resource of %s depends on %s, so the operation cannot be completed.', 'description' => 'The specified resource is dependent on other resources and the current operation is not allowed.'], + ['errorCode' => 'OperationFailed.RouteEntryUnstable', 'errorMessage' => 'The operation is failed because of route entry related to it is unstable, please try later.', 'description' => 'Because the routing entry associated with the instance is unstable, please try again later'], + ['errorCode' => 'Forbidden.OperateShareResource', 'errorMessage' => 'You cannot operate shared resources.', 'description' => 'Shared resources do not support this operation.'], + ['errorCode' => 'DependencyViolation.SharedIpv6InternetBandwidth', 'errorMessage' => 'The IPv6 gateway [%s] has IPv6 address [%s] that enabled internet from share user [%s], please delete it and try again later.', 'description' => 'The IPv6 gateway [%s] has IPv6 address [%s] that enabled internet from share user [%s], please delete it and try again later.'], + ['errorCode' => 'IncorrectStatus.Vpc', 'errorMessage' => 'Vpc incorrect status.', 'description' => 'VPC is not in steady state.'], + ['errorCode' => 'InvalidRegionId.NotFound', 'errorMessage' => 'The specified RegionId does not exist in our records.', 'description' => 'The specified region ID does not exist.'], + ], + ], + 'title' => 'Delete an iPv6 gateway', + 'summary' => 'Deletes an IPv6 gateway.', + 'description' => 'Before you delete an IPv6 gateway, delete the IPv6 egress-only rules first. For more information, see [DeleteIpv6EgressOnlyRule](~~102201~~).'."\n" + ."\n" + .'- The **DeleteIpv6Gateway** operation is asynchronous. After a request is sent, the system returns a request ID. However, the IPv6 gateway is not yet deleted. The deletion task is still running in the background. You can call [DescribeIpv6GatewayAttribute](~~102226~~) to query the deletion status of the IPv6 gateway:'."\n" + .' - If the IPv6 gateway is in the **Deleting** state, the IPv6 gateway is being deleted.'."\n" + .' - If the specified IPv6 gateway cannot be found, the IPv6 gateway is deleted.'."\n" + .'- The **DeleteIpv6Gateway** operation does not support concurrent deletion of the same IPv6 gateway.', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'RemoveSourcesFromTrafficMirrorSession' => [ - 'summary' => 'Deletes a traffic mirror source from a traffic mirror session.', - 'methods' => [ - 'post', - 'get', + 'changeSet' => [ + ['createdAt' => '2025-05-12T10:23:36.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2025-04-14T06:08:17.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-07-24T09:40:24.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2023-10-10T04:48:56.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-08-09T01:56:33.000Z', 'description' => 'Error codes changed'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DeleteIpv6Gateway'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'vpc:DeleteIpv6Gateway', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'Ipv6Gateway', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:ipv6gateway/{#Ipv6GatewayId}'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"E9A8AABE-A84B-4AF2-A68A-8E2EA190E7AE\\"\\n}","type":"json"}]', + ], + 'DeleteIpv6InternetBandwidth' => [ + 'summary' => 'Deletes the Internet bandwidth of an IPv6 address by calling the DeleteIpv6InternetBandwidth operation.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'readAndWrite', - 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'update', + 'operationType' => 'delete', 'riskType' => 'none', 'chargeType' => 'paid', + 'abilityTreeCode' => '37993', + 'abilityTreeNodes' => ['FEATUREvpc3GHR3P'], + 'autoTest' => true, + 'tenantRelevance' => 'publicInformation', ], 'parameters' => [ [ - 'name' => 'ClientToken', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'You can use the client to generate the value, but you must make sure that the value is unique among different requests. The token can contain only ASCII characters and cannot exceed 64 characters in length.'."\n" - ."\n" - .'> If you do not set this parameter, the system uses **RequestId** as **ClientToken**. **RequestId** may be different for each API request.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '0c593ea1-3bea-11e9-b96b-88e9fe63****', - ], + 'schema' => ['description' => 'The region ID of the IPv6 gateway.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the region ID.', 'type' => 'string', 'required' => true, 'example' => 'cn-huhehaote', 'title' => ''], ], [ - 'name' => 'DryRun', + 'name' => 'Ipv6AddressId', 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to check the request without performing the operation. Valid values:'."\n" - ."\n" - .'* **true**: checks the request without performing the operation. The system checks the required parameters, request format, and limits. If the request fails the check, an error message is returned. If the request passes the check, the `DryRunOperation` error code is returned.'."\n" - .'* **false** (default): sends the request. After the request passes the check, the operation is performed.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['description' => 'The ID of the IPv6 address.'."\n" + ."\n" + .'> You must specify either **Ipv6AddressId** or **Ipv6InternetBandwidthId**.', 'type' => 'string', 'required' => false, 'example' => 'ipv6-2zen5j4axcp5l5qyy****', 'title' => ''], ], [ - 'name' => 'TrafficMirrorSessionId', + 'name' => 'Ipv6InternetBandwidthId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the traffic mirror session from which you want to delete a traffic mirror source.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'tms-j6cla50buc44ap8tu****', - ], + 'schema' => ['description' => 'The Internet bandwidth instance ID of the IPv6 address.', 'type' => 'string', 'required' => false, 'example' => 'ipv6bw-uf6hcyzu65v98v3du****', 'title' => ''], ], [ - 'name' => 'TrafficMirrorSourceIds', + 'name' => 'RegionId', 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => 'The ID of the traffic mirror source to be deleted. Maximum value of N: 10.', - 'type' => 'array', - 'items' => [ - 'description' => 'The ID of the traffic mirror source to be deleted. Maximum value of **N**: **10**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'eni-j6c8znm5l1yt4sox****', - ], - 'required' => true, - 'example' => 'eni-j6c8znm5l1yt4sox****', - 'maxLength' => 128, - 'maxItems' => 30, - ], + 'schema' => ['description' => 'The region ID of the IPv6 gateway.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the region ID.', 'type' => 'string', 'required' => true, 'example' => 'cn-huhehaote', 'title' => ''], ], [ - 'name' => 'RegionId', + 'name' => 'DryRun', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region to which the traffic mirror session belongs. You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list. For more information about regions that support traffic mirror, see [Overview of traffic mirror](~~207513~~).', - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hongkong', - ], + 'schema' => ['description' => 'Specifies whether to perform a dry run. Valid values:'."\n" + ."\n" + .'- **true**: performs a dry run without actually deleting the Internet bandwidth. The system checks whether the required parameters are specified, whether the request format is valid, and whether business restrictions are met. If the check fails, the corresponding error message is returned. If the check passes, `DryRunOperation` is returned.'."\n" + ."\n" + .'- **false** (default): performs a dry run and sends the request. If the check passes, the Internet bandwidth is deleted.', 'type' => 'boolean', 'required' => false, 'example' => 'true', 'title' => ''], + ], + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request. You can use the client to generate the token, but you must make sure that the token is unique among different requests. The ClientToken value can contain only ASCII characters.'."\n" + .'> If you do not specify this parameter, the system uses the RequestId of the API request as the ClientToken. The RequestId may be different for each API request.'."\n" + .'> -.', 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-426655440000', 'title' => ''], ], ], 'responses' => [ @@ -26043,328 +19796,298 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => 'A33B2C6A-89D1-4DEA-A807-A6E8CC552484', - ], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'E07E0FE6-5C21-405F-AF82-7613AA81EF92', 'title' => ''], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'IncorrectBusinessStatus.TrafficMirror', - 'errorMessage' => 'The business status of traffic mirror is incorrect.', - ], - [ - 'errorCode' => 'OptInRequired.TrafficMirror', - 'errorMessage' => 'You need to subscribe to the traffic mirror service first.', - ], - [ - 'errorCode' => 'DuplicatedParam.SourceInstanceIds', - 'errorMessage' => 'The parameter of source instance IDs contains duplicate values.', - ], - [ - 'errorCode' => 'ResourceNotFound.TrafficMirrorSession', - 'errorMessage' => 'The specified resource of traffic mirror session is not found.', - ], - [ - 'errorCode' => 'IncorrectStatus.TrafficMirrorSession', - 'errorMessage' => 'The status of traffic mirror session is incorrect.', - ], - [ - 'errorCode' => 'ResourceNotAssociated.TrafficMirrorSource', - 'errorMessage' => 'The specified traffic mirror source and session are not associated.', - ], - [ - 'errorCode' => 'ResourceNotFound.NetworkInterface', - 'errorMessage' => 'The specified resource of network interface is not found.', - ], - [ - 'errorCode' => 'ResourceNotFound.EcsInstance', - 'errorMessage' => 'The specified resource of ECS instance is not found.', - ], + ['errorCode' => 'BothEmptyParam.Ipv6AddressIdAndIpv6InternetBandwidthId', 'errorMessage' => 'Either Ipv6AddressId or Ipv6InternetBandwidthId should be specified.', 'description' => 'Input Ipv6AddressId and Ipv6InternetBandwidthId cannot be empty at the same time'], + ['errorCode' => 'IncorrectStatus.Ipv6Instance', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => 'The IPv6 address is in an unstable state. Try again later.'], + ], + 404 => [ + ['errorCode' => 'OperationFailed.ServiceManaged', 'errorMessage' => 'Operation is forbidden because this instance belongs to Service manager.', 'description' => 'A managed instance does not support this operation.'], ], ], - 'staticInfo' => [ - 'returnType' => 'asynchronous', - 'callback' => 'Vpc::2016-04-28::ListTrafficMirrorSessions', - 'callbackInterval' => 3000, - 'maxCallbackTimes' => 10, - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"A33B2C6A-89D1-4DEA-A807-A6E8CC552484\\"\\n}","errorExample":""},{"type":"xml","example":"\\r\\nA33B2C6A-89D1-4DEA-A807-A6E8CC552484\\r\\n","errorExample":""}]', - 'title' => 'RemoveSourcesFromTrafficMirrorSession', - 'description' => '* **RemoveSourcesFromTrafficMirrorSession** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call the [ListTrafficMirrorSessions](~~261367~~) operation to query the status of the task.'."\n" - ."\n" - .' * If the traffic mirror session is in the **Modifying** state, the traffic mirror source is being deleted.'."\n" - .' * If the traffic mirror session is in the **Created** state, the traffic mirror source is deleted.'."\n" - ."\n" - .'* You cannot repeatedly call **RemoveSourcesFromTrafficMirrorSession** within the specified period of time.'."\n", + 'staticInfo' => ['returnType' => 'asynchronous', 'callback' => 'Vpc::2016-04-28::DescribeIpv6Addresses', 'callbackInterval' => 3000, 'maxCallbackTimes' => 10], + 'title' => 'Delete internet bandwidth', + 'description' => 'The **DeleteIpv6InternetBandwidth** operation does not support concurrent deletion of the same Internet bandwidth.', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'OpenTrafficMirrorService' => [ - 'summary' => 'Enables traffic mirror.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [ + ['createdAt' => '2024-07-24T09:40:23.000Z', 'description' => 'Error codes changed, Request parameters changed'], ], - 'security' => [ - [ - 'AK' => [], - ], - [ - 'APP' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DeleteIpv6InternetBandwidth'], ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], + ], + 'ramActions' => [ [ - 'PrivateKey' => [], + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'vpc:DeleteIpv6InternetBandwidth', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'Ipv6InternetBandwidth', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:ipv6bandwidth/{#Ipv6InternetBandwidthId}'], + ], + ], ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"E07E0FE6-5C21-405F-AF82-7613AA81EF92\\"\\n}","type":"json"}]', + ], + 'DeleteNatGateway' => [ + 'summary' => 'Deletes a specified Internet NAT gateway.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'BearerToken' => [], + 'AK' => [], ], ], - 'operationType' => 'readAndWrite', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'create', - 'riskType' => 'none', - 'chargeType' => 'free', - 'autoTest' => false, - 'notSupportAutoTestReason' => '服务开通接口,不可重入', - 'tenantRelevance' => 'publicInformation', - ], + 'operationType' => 'write', + 'systemTags' => ['operationType' => 'delete', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ - 'name' => 'ClientToken', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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.'."\n" - ."\n" - .'> 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.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-426655442222', - ], + 'schema' => ['description' => 'The region ID of the NAT gateway.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'RegionId', + 'name' => 'NatGatewayId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region to which the mirrored traffic belongs.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => false, - 'docRequired' => false, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The ID of the NAT gateway that you want to delete.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'ngw-bp1uewa15k4iy5770****', 'title' => ''], ], [ - 'name' => 'RegionId', + 'name' => 'Force', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region to which the mirrored traffic belongs.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => false, - 'docRequired' => false, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'Specifies whether to forcefully delete the NAT gateway. Valid values:'."\n" + ."\n" + .'* **true** If you set the value to **true**:'."\n" + ."\n" + .' * If the NAT gateway has SNAT entries, the system automatically deletes them.'."\n" + .' * If the NAT gateway has DNAT entries, the system automatically deletes them.'."\n" + .' * If the NAT gateway is associated with an elastic IP address (EIP), the system automatically disassociates the EIP from the NAT gateway.'."\n" + .' * If the NAT gateway is associated with a NAT bandwidth plan, the system automatically disassociates the NAT bandwidth plan.'."\n" + ."\n" + .'* **false**(default): no If you set the value to **false**:'."\n" + ."\n" + .' * If the NAT gateway is associated with a NAT bandwidth plan, disassociate the NAT bandwidth plan first.'."\n" + .' * If the NAT gateway has SNAT entries, delete them first.'."\n" + .' * If the NAT gateway has DNAT entries, delete them first.'."\n" + .' * If the NAT gateway is associated with an EIP, disassociate the EIP from the NAT gateway first.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => 'The returned data.'."\n", + 'description' => 'The request ID.'."\n", 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '4FCCF008-4C13-4231-BE77-D5203801A9E2', - ], - 'Code' => [ - 'description' => 'The error code.'."\n", - 'type' => 'string', - 'example' => '200', - ], - 'Message' => [ - 'description' => 'The information returned after traffic mirror is enabled.', - 'type' => 'string', - 'example' => 'successful', - ], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '0ED8D006-F706-4D23-88ED-E11ED28DCAC0', 'title' => ''], ], + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'OperationFailed.ExceedPurchaseLimit', - 'errorMessage' => 'You have reached the limit of purchase quantity.', - ], - [ - 'errorCode' => 'Forbidden.RAM', - 'errorMessage' => 'User not authorized to operate on the specified resource', - ], - [ - 'errorCode' => 'OperationFailed.AliGroupUserCanNotBuyInnerCommodity', - 'errorMessage' => 'Vpc_flowlog_public has no group cloud product label, and users within the group are not allowed to purchase.', - ], - [ - 'errorCode' => 'OperationFailed.QuotaNotEnough', - 'errorMessage' => 'Your quota is insufficient. Please contact your channel partner to increase your quota', - ], - [ - 'errorCode' => 'Order.NoRealNameAuthentication', - 'errorMessage' => 'Real-name verification has not been completed for the account.', - ], - [ - 'errorCode' => 'OperationFailed.BasicInfoUncompleted', - 'errorMessage' => 'You have not completed your basic personal information, please complete the information and try again.', - ], - [ - 'errorCode' => 'OperationDenied.TrafficMirrorServiceOpened', - 'errorMessage' => 'The operation is not allowed because the traffic mirror service has been opened.', - ], + ['errorCode' => 'DependencyViolation.VpcEndpointService', 'errorMessage' => 'The specified resource of %s depends on %s, so the operation cannot be completed.', 'description' => 'You cannot perform the operation because the NAT gateway is associated with an endpoint service.'], + ['errorCode' => 'DependencyViolation.FullNatEntry', 'errorMessage' => 'The specified resource of %s depends on %s, so the operation cannot be completed.', 'description' => ''], + ['errorCode' => 'DependencyViolation.RouterEntry', 'errorMessage' => 'The specified resource of %s depends on %s, so the operation cannot be completed.', 'description' => 'You cannot perform the operation because the NAT gateway is associated with a route entry.'], + ['errorCode' => 'DependencyViolation.BandwidthPackages', 'errorMessage' => 'There are BandwidthPackages on specified NatGateway not deleted.', 'description' => ''], + ['errorCode' => 'DependencyViolation.EIPS', 'errorMessage' => 'There are Eips on specified NatGateway, please unbind it first.', 'description' => 'An EIP is associated with the NAT gateway. Disassociate the EIP from the NAT gateway first.'], + ['errorCode' => 'Forbidden.PrePaidNatGateway', 'errorMessage' => 'The specified NatGateway is PrePaid.', 'description' => ''], + ['errorCode' => 'InvalidOperation.DeletionProtection', 'errorMessage' => 'The instance cannnot delete because of deletion protecion.', 'description' => ''], + ['errorCode' => 'DependencyViolation.SnatEntry', 'errorMessage' => 'The specified resource of %s depends on %s, so the operation cannot be completed.', 'description' => 'The SnatEntry associated with NatIp or Ipv4Prefix cannot be deleted. Delete the dependent Snat and delete it again.'], + ['errorCode' => 'IncorrectStatus.SnatEntry', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => ''], + ['errorCode' => 'DependencyViolation.ForwardEntry', 'errorMessage' => 'The specified resource of %s depends on %s, so the operation cannot be completed.', 'description' => ''], + ['errorCode' => 'IncorrectStatus.ForwardEntry', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => 'The DNAT entry to be deleted is in an invalid state.'], + ['errorCode' => 'DependencyViolation.NatIp', 'errorMessage' => 'The specified resource of %s depends on %s, so the operation cannot be completed.', 'description' => 'You cannot perform the operation because the NAT gateway is associated with a NAT IP address.'], + ['errorCode' => 'IncorrectStatus.NatIp', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => 'The status of NatIp is incorrect.'], + ['errorCode' => 'DependencyViolation.NatIpCidr', 'errorMessage' => 'The specified resource of %s depends on %s, so the operation cannot be completed.', 'description' => 'You cannot perform the operation because the NAT gateway is associated with a NAT CIDR block.'], + ['errorCode' => 'IncorrectStatus.NatGateway', 'errorMessage' => 'The NatGateway instance is being deleted and needs to wait until the process is complete.', 'description' => 'The NAT Gateway instance is being deleted and cannot be repeatedly deleted. You need to wait for the deletion process to complete.'], + ['errorCode' => 'IncorrectStatus.RouterEntry', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => 'The state of the RouterEntry is incorrect.'], + ['errorCode' => 'IncorrectStatus.VSwitch', 'errorMessage' => 'The specified vSwitch status is invalid.', 'description' => 'The virtual switch status is abnormal.'], + ], + 404 => [ + ['errorCode' => 'INSTANCE_NOT_EXISTS', 'errorMessage' => 'Instance not exists.', 'description' => ''], + ['errorCode' => 'InvalidRegionId.NotFound', 'errorMessage' => 'The specified RegionId does not exist in our records.', 'description' => ''], + ['errorCode' => 'InvalidNatGatewayId.NotFound', 'errorMessage' => 'The specified NatGatewayId does not exist in our records.', 'description' => ''], + ['errorCode' => 'ResourceNotFound.NatGateway', 'errorMessage' => 'The specified resource of %s is not found.', 'description' => ''], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"4FCCF008-4C13-4231-BE77-D5203801A9E2\\",\\n \\"Code\\": \\"200\\",\\n \\"Message\\": \\"successful\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 4FCCF008-4C13-4231-BE77-D5203801A9E2\\n 200\\n successful\\n","errorExample":""}]', - 'title' => 'OpenTrafficMirrorService', - 'description' => '## [](#)Usage notes'."\n" + 'title' => 'DeleteNatGateway', + 'description' => '## [](#)Description'."\n" + ."\n" + .'* **DeleteNatGateway** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call the [DescribeNatGateways](~~36054~~) to query the status of the task.'."\n" + ."\n" + .' * If a NAT gateway is in the **Deleting** state, the NAT gateway is being deleted. In this case, you can query the NAT gateway but you cannot perform other operations.'."\n" + ."\n" + .' * If the NAT gateway cannot be found, the NAT gateway is deleted.'."\n" + ."\n" + .' After you delete a NAT gateway, you cannot restore the NAT gateway. Proceed with caution.'."\n" ."\n" - .'You can enable traffic mirror for different regions. You cannot repeatedly call the **OpenTrafficMirrorService** operation to enable traffic mirror for one region within the specified period of time.', + .'* You cannot repeatedly call the **DeleteNatGateway** operation to delete a NAT gateway within the specified period of time.'."\n", 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'GetTrafficMirrorServiceStatus' => [ - 'summary' => 'Queries the status of the traffic mirror feature.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [ + ['createdAt' => '2024-01-18T07:07:57.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-12-20T02:00:22.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2021-07-09T06:24:03.000Z', 'description' => 'Error codes changed'], ], + 'ramActions' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"0ED8D006-F706-4D23-88ED-E11ED28DCAC0\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 0ED8D006-F706-4D23-88ED-E11ED28DCAC0\\n","errorExample":""}]', + ], + 'DeleteNatIp' => [ + 'summary' => 'Deletes a NAT IP address.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'write', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'get', - 'riskType' => 'none', - 'chargeType' => 'free', - ], + 'systemTags' => ['operationType' => 'delete', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ - 'name' => 'ClientToken', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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.'."\n" - ."\n" - .'> 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.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-426655440000', - ], + 'schema' => ['description' => 'The region ID of the NAT gateway to which the NAT IP address belongs.'."\n" + ."\n" + .'You can call [DescribeRegions](~~448570~~) to query the region ID.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-qingdao', 'title' => ''], ], [ - 'name' => 'RegionId', + 'name' => 'NatIpId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region to which the mirrored traffic belongs.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => false, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], + 'allowEmptyValue' => false, + 'schema' => ['description' => 'The instance ID of the NAT IP address that you want to delete.', 'type' => 'string', 'required' => false, 'docRequired' => true, 'example' => 'vpcnatip-gw8y7q3cpk3fggs87****', 'title' => ''], + ], + [ + 'name' => 'NatGatewayId', + 'in' => 'query', + 'schema' => ['description' => 'The instance ID of the NAT gateway to which the IP prefix belongs. This parameter is required when you delete an IP prefix.', 'type' => 'string', 'required' => false, 'example' => 'ngw-gw8v16wgvtq26vh59****', 'title' => ''], + ], + [ + 'name' => 'Ipv4Prefix', + 'in' => 'query', + 'schema' => ['description' => 'The IP prefix to delete.', 'type' => 'string', 'required' => false, 'example' => '192.168.0.0/28', 'title' => ''], + ], + [ + 'name' => 'DryRun', + 'in' => 'query', + 'schema' => ['description' => 'Specifies whether to perform a dry run. Valid values:'."\n" + ."\n" + .'- **true**: performs a dry run without deleting the NAT IP address. The system checks the AccessKey pair, the authorization of the Resource Access Management (RAM) user, and the required parameters. If the check fails, the corresponding error is returned. If the check succeeds, the error code `DryRunOperation` is returned.'."\n" + ."\n" + .'- **false** (default): sends a Normal request. If the check succeeds, a 2xx HTTP status code is returned and the NAT IP address is deleted.', 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], + ], + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'You can use the client to generate the token, but you must make sure that the token is unique among different requests. The ClientToken value can contain only ASCII characters.'."\n" + ."\n" + .'> If you do not specify this parameter, the system uses the **RequestId** of the API request as the **ClientToken**. The **RequestId** may differ for each API request.', 'type' => 'string', 'required' => false, 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3FF3898', 'title' => ''], ], [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region to which the mirrored traffic belongs.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => false, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The region ID of the NAT gateway to which the NAT IP address belongs.'."\n" + ."\n" + .'You can call [DescribeRegions](~~448570~~) to query the region ID.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-qingdao', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => 'The returned data.'."\n", 'type' => 'object', 'properties' => [ - 'Enabled' => [ - 'description' => 'Indicates whether the traffic mirror feature is enabled. Valid values:'."\n" - ."\n" - .'* **true**'."\n" - .'* **false**', - 'type' => 'boolean', - 'example' => 'true', - ], - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '37626066-2C6C-4B62-ADD3-498920C409C5', - ], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'E9AD97A0-5338-43F8-8A80-5E274CCBA11B', 'title' => ''], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ - 403 => [ - [ - 'errorCode' => 'Forbbiden', - 'errorMessage' => 'User not authorized to operate on the specified resource.', - ], + 400 => [ + ['errorCode' => 'IncorrectStatus.NatIp', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => 'The status of NatIp is incorrect.'], + ['errorCode' => 'OperationFailed.DefaultNatIp', 'errorMessage' => 'The operation is failed because of default NatIP can not be deleted.', 'description' => 'You cannot delete the default NAT IP address.'], + ['errorCode' => 'DependencyViolation.NatIp', 'errorMessage' => 'The specified resource of %s depends on %s, so the operation cannot be completed.', 'description' => 'You cannot perform the operation because the NAT gateway is associated with a NAT IP address.'], + ['errorCode' => 'IncorrectStatus.NatGateway', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => ''], + ['errorCode' => 'DependencyViolation.FullNatEntry', 'errorMessage' => 'The fullnat entry depends on this nat ip,so the operation cannot be completed.', 'description' => 'The operation failed because the FULLNAT entry depends on the NAT IP.'], + ['errorCode' => 'IllegalParam.NatIp', 'errorMessage' => 'The param of %s is illegal.', 'description' => 'The parameter NatIp is illegal.'], + ['errorCode' => 'Mismatch.Ipv4PrefixAndNatIpCidr', 'errorMessage' => 'The %s and %s are mismatched.', 'description' => ''], + ['errorCode' => 'Mismatch.Ipv4PrefixAndCidrReservations', 'errorMessage' => 'The %s and %s are mismatched.', 'description' => 'The reserved network segments of the Ipv4Prefix and VSwitch do not match.'], + ['errorCode' => 'IllegalParam.Ipv4Prefix', 'errorMessage' => 'The param of %s is illegal.', 'description' => 'The parameter Ipv4Prefix is illegal.'], + ['errorCode' => 'DependencyViolation.%s', 'errorMessage' => 'The specified resource of [%s] depends on [%s], so the operation cannot be completed.', 'description' => 'The specified resource of [%s] depends on [%s], so the operation cannot be completed.'], + ['errorCode' => 'DependencyViolation.SnatEntry', 'errorMessage' => 'The specified resource of %s depends on %s, so the operation cannot be completed.', 'description' => 'The SnatEntry associated with NatIp or Ipv4Prefix cannot be deleted. Delete the dependent Snat and delete it again.'], + ['errorCode' => 'DependencyViolation.Ipv4Prefix', 'errorMessage' => 'The specified resource of %s depends on %s, so the operation cannot be completed.', 'description' => 'NatIp belongs to Ipv4Prefix and cannot be deleted separately. Please delete the Ipv4Prefix directly.'], + ], + 404 => [ + ['errorCode' => 'InvalidRegionId.NotFound', 'errorMessage' => 'The specified RegionId does not exist in our records.', 'description' => ''], + ['errorCode' => 'ResourceNotFound.NatIp', 'errorMessage' => 'The specified resource of %s is not found.', 'description' => ''], + ['errorCode' => 'ResourceNotFound.NatGateway', 'errorMessage' => 'The specified resource of %s is not found.', 'description' => ''], + ['errorCode' => 'ResourceNotFound.NatIpCidr', 'errorMessage' => 'The specified resource of %s is not found.', 'description' => ''], + ['errorCode' => 'ResourceNotFound.%s', 'errorMessage' => 'The specified resource of %s is not found.', 'description' => 'The specified resource of %s is not found.'], + ['errorCode' => 'ResourceNotFound.Ipv4Prefix', 'errorMessage' => 'The specified resource of %s is not found.', 'description' => 'Resource Ipv4Prefix not found, please check that the Ipv4Prefix exists.'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Enabled\\": true,\\n \\"RequestId\\": \\"37626066-2C6C-4B62-ADD3-498920C409C5\\"\\n}","errorExample":""},{"type":"xml","example":"\\n true\\n 37626066-2C6C-4B62-ADD3-498920C409C5\\n","errorExample":""}]', - 'title' => 'GetTrafficMirrorServiceStatus', + 'title' => 'Delete a NAT IP address', + 'description' => '**DeleteNatIp** is an asynchronous operation. After you send a request, the system returns a request ID, but the NAT IP address is not yet deleted. The deletion task continues to run in the background. You can call [ListNatIps](~~2522486~~) to query the deletion status of the NAT IP address:'."\n" + ."\n" + .'- If the NAT IP address is in the **Deleting** state, the NAT IP address is being deleted. In this state, you can only perform query operations.'."\n" + ."\n" + .'- If the NAT IP address cannot be found, the NAT IP address is deleted.', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'SwitchActiveRouteTarget' => [ - 'summary' => 'Performs primary and secondary switchover for the route target group.', - 'description' => 'Switch Active and Standby For RouteTargetGroup.', - 'path' => '/', - 'methods' => [ - 'post', + 'changeSet' => [ + ['createdAt' => '2025-03-25T16:26:00.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2024-01-18T07:07:56.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-03-01T06:45:53.000Z', 'description' => 'Response parameters changed'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DeleteNatIp'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], ], - 'schemes' => [ - 'https', + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'vpc:DeleteNatIp', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'NatGateway', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:natgateway/{#NatGatewayId}'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"E9AD97A0-5338-43F8-8A80-5E274CCBA11B\\"\\n}","type":"json"}]', + ], + 'DeleteNatIpCidr' => [ + 'summary' => 'Deletes a NAT CIDR block by calling the DeleteNatIpCidr operation.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -26372,128 +20095,112 @@ ], 'operationType' => 'write', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'update', - 'riskType' => 'none', - 'chargeType' => 'free', - 'autoTest' => true, - 'tenantRelevance' => 'tenant', - ], + 'systemTags' => ['operationType' => 'delete', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ - 'name' => 'RouteTargetGroupId', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The instance ID of the RouteTargetGroup.', - 'type' => 'string', - 'required' => true, - 'example' => 'rtg-xxxx', - ], + 'schema' => ['description' => 'The region ID of the NAT gateway to which the NAT CIDR block to be deleted belongs.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the region ID.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'eu-central-1', 'title' => ''], ], [ - 'name' => 'RegionId', + 'name' => 'NatIpCidr', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID where the RouteTargetGroup is located.'."\n" - ."\n" - .'You can obtain the region ID by calling the [DescribeRegions](~~36063~~) API.', - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The NAT CIDR block to be deleted.'."\n" + ."\n" + .'- Before you delete a NAT CIDR block, delete all NAT IP addresses in the CIDR block.'."\n" + .'- The default NAT CIDR block cannot be deleted.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '172.16.0.0/24', 'title' => ''], + ], + [ + 'name' => 'DryRun', + 'in' => 'query', + 'schema' => ['description' => 'Specifies whether to perform a dry run. Valid values:'."\n" + ."\n" + .'- **true**: performs a dry run. The NAT CIDR block is not deleted. The system checks whether your AccessKey pair is valid, whether Resource Access Management (RAM) user authorization is granted, and whether the required parameters are specified. If the check fails, the corresponding error is returned. If the check succeeds, the `DryRunOperation` error code is returned.'."\n" + ."\n" + .'- **false** (default): sends a Normal request. If the check succeeds, a 2xx HTTP status code is returned and the NAT CIDR block is deleted.', 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], ], [ 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'Client token, used to ensure the idempotence of the request. Generate a unique value for this parameter from your client to ensure that it is unique across different requests. The ClientToken only supports ASCII characters. Note: If you do not specify this, the system will automatically use the RequestId of the API request as the ClientToken identifier. The RequestId may differ for each API request.', - 'type' => 'string', - 'required' => false, - 'example' => '0c593ea1-3bea-11e9-b96b-88e9fe6****', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'You can use the client to generate the value, but you must make sure that the value is unique among different requests. The ClientToken value can contain only ASCII characters.'."\n" + ."\n" + .'> If you do not specify this parameter, the system uses the **RequestId** as the **ClientToken**. The **RequestId** of each API request may be different.', 'type' => 'string', 'required' => false, 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3FF3898', 'title' => ''], ], [ - 'name' => 'Tag', + 'name' => 'NatGatewayId', 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => 'Resource tags.', - 'type' => 'array', - 'items' => [ - 'description' => 'List of resource tags.', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => 'The key of the resource tag. Up to 20 tag keys are supported. If you need to pass this value, you cannot input an empty string.'."\n" - ."\n" - .'Each tag key can have up to 128 characters and cannot start with `aliyun` or `acs:`. It also cannot contain `http://` or `https://`.', - 'type' => 'string', - 'required' => false, - 'example' => 'FinanceDept', - ], - 'Value' => [ - 'description' => 'The value of the resource tag. Up to 20 tag values are supported. If you need to pass this value, you can input an empty string. A maximum of 128 characters is allowed. The value cannot start with `aliyun` or `acs:`, and it must not contain `http://` or `https://`.', - 'type' => 'string', - 'required' => false, - 'example' => 'FinanceJoshua', - ], - ], - 'required' => false, - ], - 'required' => false, - 'maxItems' => 21, - ], + 'schema' => ['description' => 'The instance ID of the NAT gateway to which the NAT CIDR block to be deleted belongs.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'ngw-gw8v16wgvtq26vh59****', 'title' => ''], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => ['description' => 'The region ID of the NAT gateway to which the NAT CIDR block to be deleted belongs.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the region ID.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'eu-central-1', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'Request ID.', - 'type' => 'string', - 'example' => 'C1221A1F-2ACD-4592-8F27-474E02883159', - ], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '7021BEB1-210F-48A9-AB82-BE9A9110BB89', 'title' => ''], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'ResourceNotFound.RouteTargetGroup', - 'errorMessage' => 'The specified resource of %s is not found.', - ], - [ - 'errorCode' => 'IncorrectStatus.RouteTargetGroup', - 'errorMessage' => 'The status of %s [%s] is incorrect.', - ], - [ - 'errorCode' => 'OperationDenied.SwitchToAbnormalMember', - 'errorMessage' => 'The operation is not allowed because of the inability to switch the RouteTargetMember when the disabled member is in an unhealthy state.', - ], + ['errorCode' => 'ResourceNotFound.NatIpCidr', 'errorMessage' => 'The specified resource of %s is not found.', 'description' => 'The specified %s resource does not exist.'], + ['errorCode' => 'OperationFailed.DefaultNatIpCidr', 'errorMessage' => 'The operation is failed because of default NatIPCidr can not be deleted.', 'description' => 'The operation failed because you cannot delete the default CIDR block.'], + ['errorCode' => 'DependencyViolation.NatIp', 'errorMessage' => 'The specified resource of %s depends on %s, so the operation cannot be completed.', 'description' => 'You cannot perform the operation because the NAT gateway is associated with a NAT IP address.'], + ['errorCode' => 'IncorrectStatus.NatGateway', 'errorMessage' => '%The status of %s [%s] is incorrect.', 'description' => 'The NAT gateway is in an invalid state.'], + ], + 404 => [ + ['errorCode' => 'InvalidRegionId.NotFound', 'errorMessage' => 'The specified RegionId does not exist in our records.', 'description' => ''], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'title' => 'Delete a NAT CIDR block', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2025-03-25T16:25:59.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2023-03-01T06:45:53.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2022-11-07T11:48:28.000Z', 'description' => 'Error codes changed'], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"C1221A1F-2ACD-4592-8F27-474E02883159\\"\\n}","type":"json"}]', - 'title' => 'SwitchActiveRouteTarget', - 'translator' => 'machine', - ], - 'UpdateRouteTargetGroup' => [ - 'summary' => 'Updates the information about a routing target group instance, including the name, description, and members that are not enabled.', - 'path' => '', - 'methods' => [ - 'post', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DeleteNatIpCidr'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], ], - 'schemes' => [ - 'https', + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'vpc:DeleteNatIpCidr', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'NatGateway', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:natgateway/{#NatGatewayId}'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"7021BEB1-210F-48A9-AB82-BE9A9110BB89\\"\\n}","type":"json"}]', + ], + 'DeleteNetworkAcl' => [ + 'summary' => 'Deletes a network access control list (ACL).', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -26501,844 +20208,799 @@ ], 'operationType' => 'write', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'update', - 'riskType' => 'none', - 'chargeType' => 'free', - 'autoTest' => true, - 'tenantRelevance' => 'tenant', - ], + 'systemTags' => ['operationType' => 'delete', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ - 'name' => 'RouteTargetGroupId', + 'name' => 'NetworkAclId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the route target group instance.', - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'rtg-xxx', - ], + 'schema' => ['description' => 'The ID of the network ACL.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'nacl-bp1lhl0taikrbgnh****', 'title' => ''], ], [ - 'name' => 'RouteTargetGroupName', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The name of the route target group.'."\n" - ."\n" - .'The name length should be between 1 and 128 characters, and cannot start with http:// or https://.', - 'type' => 'string', - 'required' => false, - 'docRequired' => false, - 'example' => 'myRouteTargetGroupName', - ], + 'schema' => ['description' => 'The region ID of the network ACL.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'RouteTargetGroupDescription', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'Description of the route target group. '."\n" - ."\n" - .'The description length should be between 1 to 256 characters and must not start with http:// or https://.', - 'type' => 'string', - 'required' => false, - 'docRequired' => false, - 'example' => 'myRouteTargetGroupDescription', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'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.'."\n" + ."\n" + .'> 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.'."\n", 'type' => 'string', 'required' => false, 'example' => '223e4867-e89b-12d3-a456-426655440000', 'title' => ''], ], [ - 'name' => 'RouteTargetMemberList', + 'name' => 'DryRun', 'in' => 'query', - 'style' => 'repeatList', + 'schema' => ['description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values:'."\n" + ."\n" + .'**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.'."\n" + ."\n" + .'**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.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => ['description' => 'The region ID of the network ACL.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => 'List of members in the route target group.'."\n" - .'Under the primary-standby mode, there are the following restrictions on the members of the route target group:'."\n" - .'1. The number of members in the route target group must be 2. '."\n" - .'2. The members of the route target group must belong to different availability zones.', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'MemberId' => [ - 'description' => 'ID of the route target group member instance.', - 'type' => 'string', - 'required' => false, - 'example' => 'ep-xxxx', - ], - 'MemberType' => [ - 'description' => 'The member type of the route target group. '."\n" - ."\n" - .'Currently supported types: - **GatewayLoadBalancerEndpoint** '."\n" - ."\n" - .'In active-standby mode, all members of the route target group must be of the same type.', - 'type' => 'string', - 'required' => false, - 'example' => 'GatewayLoadBalancerEndpoint', - ], - 'Weight' => [ - 'description' => 'The weight value of the route target group member. Values:'."\n" - .'- 100: indicates the member is the primary instance. '."\n" - .'- 0: indicates the member is the backup instance.'."\n" - .'The weight value can only be set during creation and cannot be modified.', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '100', - ], - ], - 'required' => false, + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '4B48E3D-DF70-471B-AA83-089E83A1B45', 'title' => ''], ], - 'required' => false, - 'maxItems' => 16, + 'description' => '', + 'title' => '', + 'example' => '', ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'ParameterMissing.AliUid', 'errorMessage' => 'ParameterMissing.AliUid', 'description' => ''], + ['errorCode' => 'ParameterMissing.Bid', 'errorMessage' => 'ParameterMissing.Bid', 'description' => ''], + ['errorCode' => 'ParameterMissing.RegionId', 'errorMessage' => 'ParameterMissing.RegionId', 'description' => ''], + ['errorCode' => 'ParameterEmpty.RegionId', 'errorMessage' => 'ParameterEmpty.RegionId', 'description' => ''], + ['errorCode' => 'ParameterMissing.NetworkAclId', 'errorMessage' => 'ParameterMissing.NetworkAclId', 'description' => ''], + ['errorCode' => 'ParameterEmpty.NetworkAclId', 'errorMessage' => 'ParameterEmpty.NetworkAclId', 'description' => ''], + ['errorCode' => 'InvalidNetworkAcl.NotFound', 'errorMessage' => 'The special Network Acl is not found.', 'description' => 'The network ACL is not found.'], + ['errorCode' => 'NetworkStatus.Modifying', 'errorMessage' => 'The special Network Acl is in modifying.', 'description' => 'The network ACL is being modified.'], + ['errorCode' => 'NotSupport.NetworkAcl', 'errorMessage' => 'Network acl is not support now.', 'description' => ''], + ['errorCode' => 'OperationDenied.NetworkAclAttachmentInMiddleStatus', 'errorMessage' => 'The network ACL is being bound to or unbound from the switch.', 'description' => 'The network ACL is being bound to or unbound from the switch.'], + ], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error.', 'description' => ''], + ], + ], + 'staticInfo' => ['returnType' => 'asynchronous', 'callback' => 'Vpc::2016-04-28::DescribeNetworkAcls', 'callbackInterval' => 3000, 'maxCallbackTimes' => 10], + 'title' => 'DeleteNetworkAcl', + 'description' => '## [](#)Description'."\n" + ."\n" + .'You cannot repeatedly call the **DeleteNetworkAcl** operation within the specified period of time.'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2023-11-24T05:37:30.000Z', 'description' => 'Request parameters changed'], + ], + 'ramActions' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"4B48E3D-DF70-471B-AA83-089E83A1B45\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 4B48E3D-DF70-471B-AA83-089E83A1B45\\n","errorExample":""}]', + ], + 'DeletePhysicalConnection' => [ + 'summary' => 'Calls the DeletePhysicalConnection operation to delete an Express Connect circuit.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'delete', 'riskType' => 'high', 'chargeType' => 'free'], + 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region to which the route target group instance belongs. You can obtain the region ID by calling the [DescribeRegions](~~36063~~) interface.', - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The region ID of the Express Connect circuit. '."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query region IDs.', 'type' => 'string', 'required' => true, 'example' => 'cn-shanghai', 'title' => ''], + ], + [ + 'name' => 'PhysicalConnectionId', + 'in' => 'query', + 'schema' => ['description' => 'The instance ID of the Express Connect circuit instance.', 'type' => 'string', 'required' => true, 'example' => 'pc-119mfjzm7*********', 'title' => ''], ], [ 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'Client Token, used to ensure the idempotence of requests. Generate a unique value for this parameter from your client for each request. ClientToken supports only ASCII characters. Note that if you do not specify this, the system will automatically use the RequestId of the API request as the ClientToken identifier. The RequestId may differ for each API request.', - 'type' => 'string', - 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-426655440000', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'The client generates the value. The value must be unique among different requests and cannot exceed 64 ASCII characters in length.', 'type' => 'string', 'required' => false, 'example' => '02fb3da4-130e-11e9-8e44-0016e04115b', 'title' => ''], ], ], 'responses' => [ 200 => [ + 'headers' => [], 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => 'Request ID.', - 'type' => 'string', - 'example' => '0ED8D006-F706-4D23-88ED-E11ED28DCAC', - ], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '0ED8D006-F706-4D23-88ED-E11ED28DCAC0', 'title' => ''], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'ResourceNotFound.RouteTargetGroup', - 'errorMessage' => 'The specified resource of %s is not found.', - ], - [ - 'errorCode' => 'IncorrectStatus.RouteTargetGroup', - 'errorMessage' => 'The status of %s [%s] is incorrect.', - ], - [ - 'errorCode' => 'Mismatch.GroupVpcIdAndInstanceVpcId', - 'errorMessage' => 'The RouteTargetGroup VPC %s and the RouteTargetConfig VPC %s are mismatched.', - ], - [ - 'errorCode' => 'OperationDenied.UpdateMemberType', - 'errorMessage' => 'The operation is not allowed because of the inability to update memberType.', - ], - [ - 'errorCode' => 'OperationDenied.MemberWithSameAz', - 'errorMessage' => 'The operation is not allowed because of all members being in the same availability zone.', - ], - [ - 'errorCode' => 'OperationDenied.UpdateEnableRouteTargetMember', - 'errorMessage' => 'The operation is not allowed because of the inability to update the RouteTargetMember when it is in the enabled state.', - ], + ['errorCode' => 'InvalidPhysicalConnectionId.NotMatched', 'errorMessage' => 'instance id not matched.', 'description' => ''], + ['errorCode' => 'Forbidden.VBRExists', 'errorMessage' => 'physical connection owner\'s vbr still exists.', 'description' => ''], + ['errorCode' => 'Forbidden.AssociateToVBR', 'errorMessage' => 'The physical connection still associate to VBR.', 'description' => ''], + ['errorCode' => 'OperationDenied.NeedVpconnOwner', 'errorMessage' => 'The operation is denied.', 'description' => 'The deletion failed. Only the owner of a shared port can delete it.'], + ['errorCode' => 'OperationDenied.NeedPconnOwner', 'errorMessage' => 'The operation is denied.', 'description' => 'The deletion failed. Only the owner of a physical port can delete it.'], + ['errorCode' => 'Forbidden.NotInAllowDeleteStatus', 'errorMessage' => 'Only physical connection in the Cancelled, Rejected, Terminated, Allocated, or AllocationFailed states can be deleted.', 'description' => 'Only physical connection in the Cancelled, Rejected, Terminated, Allocated, or AllocationFailed states can be deleted.'], + ['errorCode' => 'ResourceAlreadyAssociated.PconnQos', 'errorMessage' => 'The specified resource of PconnQos is already associated.', 'description' => 'The physical line has been bound to another QoS policy.'], + ['errorCode' => 'ResourceNotFound.PhysicalConnectionId', 'errorMessage' => 'PhysicalConnection is not found.', 'description' => 'PhysicalConnectionId is set to an invalid value.'], + ['errorCode' => 'OperationDenied.NeedVpconnOwnerOrPconnOwner', 'errorMessage' => 'The deletion failed. Only the owner of virtual physical connection or physical connection can delete it.', 'description' => 'The deletion failed. Only the owner of virtual physical connection or physical connection can delete it.'], + ['errorCode' => 'OperationDenied.ExistVbrInPhysicalConnection', 'errorMessage' => 'It cannot be deleted when VBR exists.', 'description' => 'When a virtual border router exists under a physical port, it cannot be deleted.'], + ['errorCode' => 'OperationDenied.MacsecAttached', 'errorMessage' => 'The operation is not allowed because of MacsecAttached.', 'description' => 'The current operation is rejected because there is still a MACSec key binding on the physical connection.'], ], 404 => [ - [ - 'errorCode' => 'ResourceNotFound.GatewayLoadBalancerEndpoint', - 'errorMessage' => 'GatewayLoadBalancerEndpoint instance not found.', - ], + ['errorCode' => 'InvalidPhysicalConnectionId.NotFound', 'errorMessage' => 'The PhysicalConnectionId provided does not exist in our records.', 'description' => ''], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'Delete an express connect circuit', + 'description' => 'You can delete only Express Connect circuits that are in the **Allocated**, **Confirmed**, **Rejected**, **Canceled**, **AllocationFailed**, or **Terminated** state.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2024-06-13T08:13:13.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-02-01T03:33:17.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-11-28T02:17:51.000Z', 'description' => 'Error codes changed'], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"0ED8D006-F706-4D23-88ED-E11ED28DCAC\\"\\n}","type":"json"}]', - 'title' => 'UpdateRouteTargetGroup', - 'description' => '- The **UpdateRouteTargetGroup** interface is an asynchronous API, meaning the system will return a request ID, but the route target group has not yet been fully updated, and the system\'s background update task is still in progress. You can call ListRouteTargetGroup to query the update status of the route target group:'."\n" - .' - When the route target group is in the **Updating** state, it indicates that the route target group is being created.'."\n" - .' - When the route target group is in the **Available**, **Unavailable**, **Switched**, or **Abnormal** state, it indicates that the route target group has completed its update.', - 'translator' => 'machine', - ], - 'ListRouteTargetGroups' => [ - 'summary' => 'Queries the list of route target groups.', - 'path' => '', - 'methods' => [ - 'get', - 'post', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DeletePhysicalConnection'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], ], - 'schemes' => [ - 'https', + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'vpc:DeletePhysicalConnection', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'PhysicalConnection', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:physicalconnection/{#PhysicalConnectionId}'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"0ED8D006-F706-4D23-88ED-E11ED28DCAC0\\"\\n}","type":"json"}]', + ], + 'DeletePublicIpAddressPool' => [ + 'summary' => 'Deletes an IP address pool.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'readAndWrite', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'list', - 'riskType' => 'none', - 'chargeType' => 'free', - 'autoTest' => true, - 'tenantRelevance' => 'tenant', - ], + 'systemTags' => ['operationType' => 'delete', 'riskType' => 'none', 'chargeType' => 'free', 'autoTest' => true, 'tenantRelevance' => 'tenant'], 'parameters' => [ [ - 'name' => 'VpcId', + 'name' => 'PublicIpAddressPoolId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the VPC to which the route target group belongs.', - 'type' => 'string', - 'required' => false, - 'docRequired' => false, - 'example' => 'vpc-xxxx', - ], + 'schema' => ['description' => 'The ID of the IP address pool.'."\n", 'type' => 'string', 'required' => true, 'example' => 'pippool-6wetvn6fumkgycssx****', 'title' => ''], ], [ - 'name' => 'RouteTargetGroupIds', + 'name' => 'ClientToken', 'in' => 'query', - 'style' => 'repeatList', + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'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.'."\n", 'type' => 'string', 'required' => false, 'example' => '0c593ea1-3bea-11e9-b96b-88e9fe60000', 'title' => ''], + ], + [ + 'name' => 'DryRun', + 'in' => 'query', + 'schema' => ['description' => 'Specifies whether to perform a dry run, without performing the actual request. Valid values:'."\n" + ."\n" + .'* **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.'."\n" + .'* **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.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => ['description' => 'The ID of the region where you want to create the IP address pool.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-chengdu', 'title' => ''], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => 'List of route target group instance IDs.'."\n" - ."\n" - .'Up to 50 instance IDs can be queried at a time.', - 'type' => 'array', - 'items' => [ - 'description' => 'Route target group instance ID.', - 'type' => 'string', - 'required' => false, - 'example' => 'rtg-xxxx', + 'description' => 'The response parameters.'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '4EC47282-1B74-4534-BD0E-403F3EE64CAF', 'title' => ''], ], - 'required' => false, - 'maxItems' => 200, + 'title' => '', + 'example' => '', ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'IncorrectStatus.PublicIpAddressPool', 'errorMessage' => 'The status of PublicIpAddressPool [%s] is incorrect.', 'description' => ''], + ['errorCode' => 'ResourceInUse.PublicIpAddressPool', 'errorMessage' => 'The specified resource of PublicIpAddressPool [%s] is in use.', 'description' => ''], + ['errorCode' => 'OperationFailed.ResourceIsShared', 'errorMessage' => 'The operation is failed because of PublicIpAddressPool is shared with other users.', 'description' => 'The public IP address pool is shared with another user and cannot be deleted.'], + ['errorCode' => 'OperationDenied.OperateSharedResource', 'errorMessage' => 'The operation is not allowed because of the PublicIpAddressPool is a shared resource.', 'description' => 'The public IP address pool is a shared resource and cannot be modified.'], + ['errorCode' => 'ResourceNotFound.PublicIpAddressPool', 'errorMessage' => 'The specified resource of PublicIpAddressPool [%s] is not found.', 'description' => 'The specified public IP address pool does not exist.'], + ], + ], + 'staticInfo' => ['returnType' => 'asynchronous', 'callback' => 'Vpc::2016-04-28::ListPublicIpAddressPools', 'callbackInterval' => 3000, 'maxCallbackTimes' => 10], + 'title' => 'DeletePublicIpAddressPool', + 'description' => 'Before you call this operation, take note of the following items:'."\n" + ."\n" + .'* Before you delete an IP address pool, make sure that no IP address in the pool is being used.'."\n" + ."\n" + .'* **DeletePublicIpAddressPool** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call the [ListPublicIpAddressPools](~~429433~~) operation to query the status of the task.'."\n" + ."\n" + .' * If the IP address pool is in the **Deleting** state, the IP address pool is being deleted. In this state. you can only query the IP address pool and cannot perform other operations.'."\n" + .' * If you cannot query the IP address pool, the IP address pool is deleted.'."\n" + ."\n" + .'* You cannot repeatedly call the **DeletePublicIpAddressPool** operation to delete an IP address pool within the specified period of time.'."\n", + 'changeSet' => [ + ['createdAt' => '2024-06-26T03:40:59.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2022-11-24T13:02:53.000Z', 'description' => 'Error codes changed'], + ], + 'ramActions' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"4EC47282-1B74-4534-BD0E-403F3EE64CAF\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 4EC47282-1B74-4534-BD0E-403F3EE64CAF\\n","errorExample":""}]', + ], + 'DeletePublicIpAddressPoolCidrBlock' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'MemberId', + 'AK' => [], + ], + ], + 'operationType' => 'readAndWrite', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'delete', 'riskType' => 'none', 'chargeType' => 'free', 'autoTest' => true, 'tenantRelevance' => 'tenant'], + 'parameters' => [ + [ + 'name' => 'PublicIpAddressPoolId', 'in' => 'query', - 'schema' => [ - 'description' => 'Route target group member instance ID.'."\n" - .'Filters the route target groups that contain the specified member instance ID.', - 'type' => 'string', - 'required' => false, - 'docRequired' => false, - 'example' => 'ep-xxxx', - ], + 'schema' => ['description' => 'The instance ID of the IPAM pool.', 'type' => 'string', 'required' => true, 'example' => 'pippool-6wetvn6fumkgycssx****', 'title' => ''], ], [ - 'name' => 'MaxResults', + 'name' => 'CidrBlock', 'in' => 'query', - 'schema' => [ - 'description' => 'Page size, with a range of **1** to **50**. Default value: **50**.', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '100', - 'minimum' => '0', - 'example' => '50', - 'default' => '50', - ], + 'schema' => ['description' => 'The CIDR block.', 'type' => 'string', 'required' => true, 'example' => '47.0.XX.XX/24', 'title' => ''], ], [ - 'name' => 'NextToken', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'Token for the next query. Value: If it is the first query or there is no next query, this field does not need to be filled. If there is a next query, the value should be the NextToken returned from the previous API call.', - 'type' => 'string', - 'required' => false, - 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotency of the request.'."\n" + ."\n" + .'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.', 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-426655440000', 'title' => ''], + ], + [ + 'name' => 'DryRun', + 'in' => 'query', + 'schema' => ['description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values:'."\n" + .'- **true**: performs only a dry run. The CIDR block is not deleted. The system checks the required parameters, request format, 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.'."\n" + .'- **false** (default): performs a dry run and performs the actual request. If the request passes the dry run, an HTTP 2xx status code is returned and the operation is performed.', 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], ], [ 'name' => 'RegionId', 'in' => 'query', + 'schema' => ['description' => 'The region ID of the IP address pool from which you want to delete the CIDR block.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-chengdu', 'title' => ''], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => 'The region ID of the VPC to which the route target group belongs. You can obtain the region ID by calling the DescribeRegions interface.', - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', + 'description' => 'The response struct.', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '4EC47282-1B74-4534-BD0E-403F3EE64CAF', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'IllegalParam.CidrBlock', 'errorMessage' => 'The param of CidrBlock [%s] is illegal.', 'description' => 'The CidrBlock parameter is set to an invalid value.'], + ['errorCode' => 'IllegalParam.CidrBlockMask', 'errorMessage' => 'The param of CidrBlock Mask [%s] is illegal.', 'description' => 'The subnet mask of the CIDR block is invalid.'], + ['errorCode' => 'IncorrectStatus.PublicIpAddressPool', 'errorMessage' => 'The status of PublicIpAddressPool [%s] is incorrect.', 'description' => ''], + ['errorCode' => 'ResourceNotFound.PublicIpAddressPool', 'errorMessage' => 'The specified resource of PublicIpAddressPool [%s] is not found.', 'description' => 'The specified public IP address pool does not exist.'], + ['errorCode' => 'ResourceNotFound.CidrBlock', 'errorMessage' => 'The specified resource of CidrBlock [%s] is not found.', 'description' => ''], + ['errorCode' => 'IncorrectStatus.CidrBlock', 'errorMessage' => 'The status of CidrBlock [%s] is incorrect.', 'description' => ''], + ['errorCode' => 'ResourceInUse.CidrBlock', 'errorMessage' => 'The specified resource of CidrBlock [%s] is in use.', 'description' => ''], + ['errorCode' => 'OperationDenied.OperateSharedResource', 'errorMessage' => 'The operation is not allowed because of the PublicIpAddressPool is a shared resource.', 'description' => 'The public IP address pool is a shared resource and cannot be modified.'], + ['errorCode' => 'MissingParam.PublicIpAddressPoolId', 'errorMessage' => 'The parameter PublicIpAddressPoolId is missing.', 'description' => 'The parameter PublicIpAddressPoolId is missing.'], + ['errorCode' => 'MissingParam.CidrBlockOrCidrMask', 'errorMessage' => 'CidrBlock or CidrMask is not specified.', 'description' => 'The system failed to add the CIDR block to the address pool because the CIDR block or the subnet mask is not specified.'], + ], + ], + 'staticInfo' => ['returnType' => 'asynchronous', 'callback' => 'Vpc::2016-04-28::ListPublicIpAddressPoolCidrBlocks', 'callbackInterval' => 3000, 'maxCallbackTimes' => 10], + 'title' => 'Delete a CIDR block from an IP address pool', + 'summary' => 'Deletes a CIDR block from an IP address pool by calling the DeletePublicIpAddressPoolCidrBlock operation.', + 'description' => 'Before you call this operation, take note of the following items:'."\n" + .'- Before you delete a CIDR block, make sure that the CIDR block is not in use.'."\n" + .'- **DeletePublicIpAddressPoolCidrBlock** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the deletion task in the background. You can call [ListPublicIpAddressPoolCidrBlocks](~~429436~~) to query the status of the CIDR block in the IP address pool. '."\n" + .' - If the CIDR block is in the **Deleting** state, the CIDR block is being deleted. In this state, you can only perform query operations.'."\n" + .' - If the CIDR block cannot be found, the CIDR block is deleted.'."\n" + .'- **DeletePublicIpAddressPoolCidrBlock** does not support concurrent deletion of the same CIDR block.', + 'changeSet' => [ + ['createdAt' => '2025-05-26T11:37:09.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2022-11-24T13:02:53.000Z', 'description' => 'Error codes changed'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DeletePublicIpAddressPoolCidrBlock'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], + ], + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'vpc:DeletePublicIpAddressPoolCidrBlock', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'PublicIpAddressPool', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:publicipaddresspool/{#PublicIpAddressPoolId}'], + ], ], ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"4EC47282-1B74-4534-BD0E-403F3EE64CAF\\"\\n}","type":"json"}]', + ], + 'DeleteRouteEntries' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'ResourceGroupId', + 'AK' => [], + ], + ], + 'operationType' => 'readAndWrite', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'delete', 'riskType' => 'none', 'chargeType' => 'free', 'tenantRelevance' => 'publicInformation'], + 'parameters' => [ + [ + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'Resource group ID. For more information about resource groups, see What is a Resource Group?', - 'type' => 'string', - 'required' => false, - 'example' => 'rg-acfmxazdjdhd****', - ], + 'schema' => ['description' => 'The region ID of the route table.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'ClientToken', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'Client token used to ensure idempotence of the request. Generate a unique parameter value from your client to ensure uniqueness across different requests. ClientToken only supports ASCII characters. Note: If you do not specify this, the system will automatically use the RequestId of the API request as the ClientToken identifier. The RequestId is different for each API request.', - 'type' => 'string', - 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-426655440000', - ], + 'schema' => ['description' => 'The region ID of the route table.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'Tag', + 'name' => 'RouteEntries', 'in' => 'query', 'style' => 'repeatList', 'schema' => [ - 'description' => 'List of tags.', + 'description' => 'The information about the routes that you want to delete.'."\n", 'type' => 'array', 'items' => [ - 'description' => 'Resource tag.', + 'description' => '', 'type' => 'object', 'properties' => [ - 'Key' => [ - 'description' => 'Resource tag key. Up to 20 tag keys are supported. If you need to pass this value, you cannot input an empty string.'."\n" - ."\n" - .'A tag key can have up to 128 characters and cannot start with `aliyun` or `acs:`. It cannot contain `http://` or `https://`.', - 'type' => 'string', - 'required' => false, - 'example' => 'FinanceJoshua', - ], - 'Value' => [ - 'description' => 'Resource tag value. Up to 20 tag values are supported. If you need to pass this value, you can input an empty string.'."\n" - ."\n" - .'A tag value can have up to 128 characters and cannot start with `aliyun` or `acs:`. It cannot contain `http://` or `https://`.', - 'type' => 'string', - 'required' => false, - 'example' => 'FinanceJoshua', - ], + 'RouteTableId' => ['description' => 'The ID of the route table to which the routes to be deleted belongs. You can specify up to 50 route table IDs.'."\n", 'type' => 'string', 'required' => true, 'example' => 'vtb-2ze3jgygk9bmsj23s****', 'title' => ''], + 'RouteEntryId' => ['description' => 'The ID of the route that you want to delete. You can specify up to 50 route IDs.'."\n" + ."\n" + .'> If **RouteEntryId** is not specified, **DstCidrBlock** and **NextHop** are required.'."\n", 'type' => 'string', 'required' => false, 'example' => 'rte-bp1mnnr2al0naomnpv****', 'title' => ''], + 'DstCidrBlock' => ['description' => 'The destination CIDR block of the route that you want to delete. IPv4 and IPv6 CIDR blocks are supported. You can specify up to 50 destination CIDR blocks.'."\n" + ."\n" + .'> If **RouteEntryId** is not specified, **DstCidrBlock** and **NextHop** are required.'."\n", 'type' => 'string', 'required' => false, 'example' => '47.100.XX.XX/24', 'title' => ''], + 'NextHop' => ['description' => 'The ID of the next hop that you want to delete. You can specify up to 50 next hop IDs.'."\n" + ."\n" + .'> If **RouteEntryId** is not specified, **DstCidrBlock** and **NextHop** are required.'."\n", 'type' => 'string', 'required' => false, 'example' => 'i-j6c2fp57q8rr4jlu****', 'title' => ''], ], 'required' => false, + 'title' => '', + 'example' => '', ], 'required' => false, - 'maxItems' => 21, + 'maxItems' => 200, + 'title' => '', + 'example' => '', ], ], + [ + 'name' => 'DryRun', + 'in' => 'query', + 'schema' => ['description' => 'Specifies whether to perform a dry run, without performing the actual request. Valid values:'."\n" + ."\n" + .'* **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.'."\n" + .'* **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.'."\n", 'type' => 'boolean', 'required' => false, 'title' => '', 'example' => ''], + ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'Schema of Response', + 'description' => 'The returned data.'."\n", 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => 'ID of the request', - 'type' => 'string', - 'example' => 'DE77A7F3-3B74-41C0-A5BC-CAFD188C28B6', - ], - 'NextToken' => [ - 'description' => 'Token for the next query. Value: If NextToken is empty, it indicates there is no next query. If NextToken has a return value, it indicates the token for the next query.', - 'type' => 'string', - 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', - ], - 'TotalCount' => [ - 'description' => 'Number of items in the list.', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'RouteTargetGroups' => [ - 'description' => 'List of route target groups.', + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '0ED8D006-F706-4D23-88ED-E11ED28DCAC0', 'title' => ''], + 'SuccessCount' => ['description' => 'The number of route entries that were deleted.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '2', 'title' => ''], + 'FailedCount' => ['description' => 'The number of route entries that failed to be deleted.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '2', 'title' => ''], + 'FailedRouteEntries' => [ + 'description' => 'The information about the route entry that failed to be deleted.'."\n", 'type' => 'array', 'items' => [ + 'description' => '', 'type' => 'object', 'properties' => [ - 'Status' => [ - 'description' => 'Status of the route target group. Values:'."\n" - ."\n" - .'- **Recovering**: Active-Standby rollback in progress'."\n" - .'- **Switched**: Active-Standby switched'."\n" - .'- **Available**: Available'."\n" - .'- **Abnormal**: Standby instance abnormal'."\n" - .'- **Pending**: Creating'."\n" - .'- **Switching**: Active-Standby switching in progress'."\n" - .'- **Deleting**: Deleting'."\n" - .'- **Unavailable**: Both primary and standby instances are abnormal', - 'type' => 'string', - 'enumValueTitles' => [ - 'Recovering' => 'Recovering', - 'Switched' => 'Switched', - 'Available' => 'Available', - 'Abnormal' => 'Abnormal', - 'Pending' => 'Pending', - 'Switching' => 'Switching', - 'Deleting' => 'Deleting', - 'Unavailable' => 'Unavailable', - ], - 'example' => 'Available', - ], - 'RouteTargetGroupDescription' => [ - 'description' => 'Description of the route target group.', - 'type' => 'string', - 'example' => 'myRouteTargetGroupDescription', - ], - 'RouteTargetMemberList' => [ - 'description' => 'The list of route target group members.', - 'type' => 'array', - 'items' => [ - 'description' => 'The list of route target group members.', - 'type' => 'object', - 'properties' => [ - 'MemberId' => [ - 'description' => 'The ID of the route target group member instance.', - 'type' => 'string', - 'example' => 'ep-xxxx', - ], - 'EnableStatus' => [ - 'description' => 'The enable status of the route target group member. Values:'."\n" - ."\n" - .'- **Enable**: Enabled.'."\n" - .'- **Disable**: Disabled.'."\n" - ."\n" - .'Only disabled route target group members can be modified to other instances. Enabled route target group members cannot be modified.', - 'type' => 'string', - 'enumValueTitles' => [ - 'Enable' => 'Enable', - 'Disable' => 'Disable', - ], - 'example' => 'Enable', - ], - 'MemberType' => [ - 'description' => 'The type of the route target group member.'."\n" - ."\n" - .'Currently supported types:'."\n" - ."\n" - .'- **GatewayLoadBalancerEndpoint**', - 'type' => 'string', - 'enumValueTitles' => [ - 'GatewayLoadBalancerEndpoint' => 'GatewayLoadBalancerEndpoint', - ], - 'example' => 'GatewayLoadBalancerEndpoint', - ], - 'HealthCheckStatus' => [ - 'description' => 'The health check status of the route target group member. Values:'."\n" - ."\n" - .'- **Normal**: Normal'."\n" - .'- **Abnormal**: Abnormal', - 'type' => 'string', - 'enumValueTitles' => [ - 'Normal' => 'Normal', - 'Abnormal' => 'Abnormal', - ], - 'example' => 'Normal', - ], - 'Weight' => [ - 'description' => 'The weight value of the route target group member. Values:'."\n" - ."\n" - .'- **100**: Indicates that the member is the primary instance.'."\n" - .'- **0**: Indicates that the member is the backup instance.'."\n" - ."\n" - .'The weight value can only be set during creation and cannot be modified.', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '100', - ], - ], - ], - ], - 'VpcId' => [ - 'description' => 'The ID of the VPC to which the route target group belongs.', - 'type' => 'string', - 'example' => 'vpc-uf60y8uzhsvbhmuh3l654', - ], - 'RouteTargetGroupId' => [ - 'description' => 'The ID of the route target group instance.', - 'type' => 'string', - 'example' => 'rtg-xxxx', - ], - 'ConfigMode' => [ - 'description' => 'The configuration mode of the route target group. Supported modes are as follows:'."\n" - ."\n" - .'- **Active-Standby**: Active-standby mode.', - 'type' => 'string', - 'enumValueTitles' => [ - 'Active-Standby' => 'Active-Standby', - ], - 'example' => 'Active-Standby', - ], - 'RegionId' => [ - 'description' => 'The region ID of the VPC to which the route target group belongs.'."\n" - ."\n" - .'You can obtain the region ID by calling the [DescribeRegions](~~36063~~) interface.', - 'type' => 'string', - 'example' => 'cn-hangzhou', - ], - 'Tags' => [ - 'description' => 'The tag values. A maximum of 20 tag values are supported. If you need to pass this value, you can input an empty string.'."\n" - ."\n" - .'A maximum of 128 characters are supported. The value cannot start with `aliyun` or `acs:` and cannot contain `http://` or `https://`.', - 'type' => 'array', - 'items' => [ - 'description' => 'The tags.', - 'type' => 'object', - 'properties' => [ - 'Value' => [ - 'description' => 'The value of the resource tag. Up to 20 tag values are supported. If you need to pass this value, you can input an empty string. A maximum of 128 characters is allowed. The value cannot start with `aliyun` or `acs:`, and it must not contain `http://` or `https://`.', - 'type' => 'string', - 'example' => '8', - ], - 'Key' => [ - 'description' => 'The key of the resource tag.', - 'type' => 'string', - 'example' => 'image/upload/cbbec42e0be33abb27babefcbe0397f0', - ], - ], - ], - ], - 'RouteTargetGroupName' => [ - 'description' => 'The name of the route target group.', - 'type' => 'string', - 'example' => 'myRouteTargetGroupName', - ], - 'ResourceGroupId' => [ - 'description' => 'The ID of the resource group to which the route target group belongs.', - 'type' => 'string', - 'example' => 'rg-acfm3swh6ta56ri', - ], - 'CreateTime' => [ - 'description' => 'The time when the route target group was created.', - 'type' => 'string', - 'example' => '2025-12-30T06:40:50Z', - ], + 'RouteEntryId' => ['description' => 'The ID of the route entry that failed to be deleted.'."\n", 'type' => 'string', 'example' => 'rte-bp1mnnr2al0naomnpv****', 'title' => ''], + 'DstCidrBlock' => ['description' => 'The destination CIDR block of the route entry that failed to be deleted. IPv4 and IPv6 CIDR blocks are supported.'."\n", 'type' => 'string', 'example' => '47.100.XX.XX/24', 'title' => ''], + 'NextHop' => ['description' => 'The ID of the next hop that failed to be deleted.'."\n", 'type' => 'string', 'example' => 'i-j6c2fp57q8rr4jlu****', 'title' => ''], + 'FailedCode' => ['description' => 'The error code.'."\n", 'type' => 'string', 'example' => 'VPC_ROUTER_ENTRY_NOT_EXIST', 'title' => ''], + 'FailedMessage' => ['description' => 'The error message.'."\n", 'type' => 'string', 'example' => 'vRouterEntry not exists', 'title' => ''], ], + 'title' => '', + 'example' => '', ], - ], - 'MaxResults' => [ - 'description' => 'The page size.', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '50', + 'title' => '', + 'example' => '', ], ], + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'IllegalParam.NextToken', - 'errorMessage' => 'The specified NextToken is invalid.', - ], + ['errorCode' => 'DryRunOperation', 'errorMessage' => 'Request validation has been passed with DryRun flag set.', 'description' => 'The request passed the dry run.'], + ['errorCode' => 'TaskConflict', 'errorMessage' => 'The operation is too frequent. Please wait a moment and try again.', 'description' => 'The system is unavailable. Try again later.'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"DE77A7F3-3B74-41C0-A5BC-CAFD188C28B6\\",\\n \\"NextToken\\": \\"FFmyTO70tTpLG6I3FmYAXGKPd****\\",\\n \\"TotalCount\\": 1,\\n \\"RouteTargetGroups\\": [\\n {\\n \\"Status\\": \\"Available\\",\\n \\"RouteTargetGroupDescription\\": \\"myRouteTargetGroupDescription\\",\\n \\"RouteTargetMemberList\\": [\\n {\\n \\"MemberId\\": \\"ep-xxxx\\",\\n \\"EnableStatus\\": \\"Enable\\",\\n \\"MemberType\\": \\"GatewayLoadBalancerEndpoint\\",\\n \\"HealthCheckStatus\\": \\"Normal\\",\\n \\"Weight\\": 100\\n }\\n ],\\n \\"VpcId\\": \\"vpc-uf60y8uzhsvbhmuh3l654\\",\\n \\"RouteTargetGroupId\\": \\"rtg-xxxx\\",\\n \\"ConfigMode\\": \\"Active-Standby\\",\\n \\"RegionId\\": \\"cn-hangzhou\\",\\n \\"Tags\\": [\\n {\\n \\"Value\\": \\"8\\",\\n \\"Key\\": \\"image/upload/cbbec42e0be33abb27babefcbe0397f0\\"\\n }\\n ],\\n \\"RouteTargetGroupName\\": \\"myRouteTargetGroupName\\",\\n \\"ResourceGroupId\\": \\"rg-acfm3swh6ta56ri\\",\\n \\"CreateTime\\": \\"2025-12-30T06:40:50Z\\"\\n }\\n ],\\n \\"MaxResults\\": 50\\n}","type":"json"}]', - 'title' => 'ListRouteTargetGroups', - 'description' => 'Lists the route target groups.', - 'translator' => 'machine', + 'staticInfo' => ['returnType' => 'asynchronous', 'callback' => 'Vpc::2016-04-28::DescribeRouteEntryList', 'callbackInterval' => 3, 'maxCallbackTimes' => 10], + 'title' => 'DeleteRouteEntries', + 'summary' => 'Deletes multiple custom route entries at a time.', + 'description' => '调用本接口删除路由条目时,请注意: '."\n" + ."\n" + .'- 只有处于**Available**状态的路由条目可以被删除。 '."\n" + ."\n" + .'- 路由表所在的VPC正在进行创建或删除交换机或路由条目时,无法删除路由条目。 '."\n" + .'- **DeleteRouteEntries**接口属于异步接口,即系统会返回一个请求ID,但该路由条目尚未删除成功,系统后台的删除任务仍在进行。您可以调用[DescribeRouteEntryList](~~138148~~)查询路由条目的删除状态:'."\n" + .' - 当路由条目处于**Deleting**状态时,表示路由条目正在删除中。'."\n" + .' - 当查询不到指定的路由条目时,表示路由条目删除成功。'."\n" + .'- **DeleteRouteEntries**接口不支持在同一个VPC中并发批量删除路由表中的路由条目。', + 'changeSet' => [ + ['createdAt' => '2025-05-19T01:45:15.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2025-03-20T01:35:46.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2025-02-10T06:07:08.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2023-08-07T02:21:18.000Z', 'description' => 'Response parameters changed'], + ], + 'ramActions' => [], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"0ED8D006-F706-4D23-88ED-E11ED28DCAC0\\",\\n \\"SuccessCount\\": 2,\\n \\"FailedCount\\": 2,\\n \\"FailedRouteEntries\\": [\\n {\\n \\"RouteEntryId\\": \\"rte-bp1mnnr2al0naomnpv****\\",\\n \\"DstCidrBlock\\": \\"47.100.XX.XX/24\\",\\n \\"NextHop\\": \\"i-j6c2fp57q8rr4jlu****\\",\\n \\"FailedCode\\": \\"VPC_ROUTER_ENTRY_NOT_EXIST\\",\\n \\"FailedMessage\\": \\"vRouterEntry not exists\\"\\n }\\n ]\\n}","type":"json"}]', + 'translator' => 'manual', ], - 'GetRouteTargetGroup' => [ - 'summary' => 'Gets the information of a route target group.', - 'description' => 'Get the information of the route target group instance.', - 'path' => '/', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'https', - ], + 'DeleteRouteEntry' => [ + 'summary' => 'Calls the DeleteRouteEntry operation to delete a route from the route table of a vRouter or Virtual Border Router (VBR).', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'write', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'delete', 'riskType' => 'none', 'chargeType' => 'free', - 'autoTest' => true, - 'tenantRelevance' => 'tenant', + 'abilityTreeCode' => '37680', + 'abilityTreeNodes' => ['FEATUREvpcJSBF65'], ], 'parameters' => [ [ - 'name' => 'RouteTargetGroupId', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'ID of the route target group member instance.', - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'rtg-xxxx', - ], + 'schema' => ['description' => 'The ID of the region where the route table resides.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the region ID.', 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'RegionId', + 'name' => 'RouteTableId', 'in' => 'query', - 'schema' => [ - 'description' => 'ID of the region to which the route target group belongs. You can obtain the region ID by calling the DescribeRegions interface.', - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The ID of the route table that contains the route. '."\n" + .'> If the **RouteEntryId** parameter is not specified, the **DestinationCidrBlock** and **RouteTableId** parameters are required. Configure the **NextHopId** or **NextHopList** parameter as needed.', 'type' => 'string', 'required' => false, 'example' => 'vtb-2ze3jgygk9bmsj23s****', 'title' => ''], ], [ - 'name' => 'ClientToken', + 'name' => 'RouteEntryId', 'in' => 'query', - 'schema' => [ - 'description' => 'Client token, used to ensure idempotence of the request.'."\n" - ."\n" - .'Generate a parameter value from your client and ensure that it is unique across different requests. ClientToken only supports ASCII characters.'."\n" - ."\n" - .'> If you do not specify this, the system automatically uses the **RequestId** of the API request as the **ClientToken** identifier. The **RequestId** may be different for each API request.', - 'type' => 'string', - 'required' => false, - 'example' => '02fb3da4-130e-11e9-8e44-0016e04115b', - ], + 'schema' => ['description' => 'The ID of the route that you want to delete. This parameter is mutually exclusive with the DestinationCidrBlock parameter.'."\n" + .'> If the **DestinationCidrBlock** parameter is not specified, the **RouteEntryId** parameter is required.', 'type' => 'string', 'required' => false, 'docRequired' => false, 'example' => 'rte-bp1mnnr2al0naomnpv****', 'title' => ''], ], [ - 'name' => 'Tag', + 'name' => 'DestinationCidrBlock', + 'in' => 'query', + 'schema' => ['description' => 'The destination CIDR block of the route. IPv4 CIDR blocks, IPv6 CIDR blocks, prefix list CIDR blocks, and prefix list instance IDs are supported. This parameter is mutually exclusive with the RouteEntryId parameter.'."\n" + .'> If the **RouteEntryId** parameter is not specified, the **DestinationCidrBlock** and **RouteTableId** parameters are required. Configure the **NextHopId** or **NextHopList** parameter as needed.', 'type' => 'string', 'required' => false, 'example' => '47.100.XX.XX/16', 'title' => ''], + ], + [ + 'name' => 'NextHopId', + 'in' => 'query', + 'schema' => ['description' => 'The ID of the next hop instance.'."\n" + ."\n" + .'- To delete a non-ECMP route, specify **NextHopId**. Do not specify **NextHopList**.'."\n" + .'- To delete an ECMP route, specify **NextHopList**. Do not specify **NextHopId**.', 'type' => 'string', 'required' => false, 'example' => 'ri-2zeo3xzyf38r4urzd****', 'title' => ''], + ], + [ + 'name' => 'NextHopList', 'in' => 'query', 'style' => 'repeatList', 'schema' => [ - 'description' => 'Tag information.', + 'description' => 'The information about the next hop instances of the ECMP route. A maximum of 16 next hop instances are supported.', 'type' => 'array', 'items' => [ - 'description' => 'Collection of resource tags.', + 'description' => 'The information about the next hop instances of the ECMP route. A maximum of 16 next hop instances are supported.', 'type' => 'object', 'properties' => [ - 'Key' => [ - 'description' => 'Resource tag key. Up to 20 tag keys are supported. If you need to pass this value, you cannot input an empty string.'."\n" - ."\n" - .'A tag key can have up to 128 characters and cannot start with `aliyun` or `acs:`. It cannot contain `http://` or `https://`.', - 'type' => 'string', - 'required' => false, - 'example' => 'FinanceDept', - ], - 'Value' => [ - 'description' => 'Resource tag value. Up to 20 tag values are supported. If you need to pass this value, you can input an empty string.'."\n" - ."\n" - .'A tag value can have up to 128 characters and cannot start with `aliyun` or `acs:`. It cannot contain `http://` or `https://`.', - 'type' => 'string', - 'required' => false, - 'example' => 'FinanceJoshua', - ], + 'NextHopId' => ['description' => 'The ID of the next hop instance of the ECMP route. A maximum of 16 next hop instances are supported.', 'type' => 'string', 'required' => false, 'example' => 'ri-2zeo3xzyf38r43cd****', 'title' => ''], + 'NextHopType' => ['description' => 'The type of the next hop of the ECMP route. Set the value to **RouterInterface** (router interface). A maximum of 16 next hop instances are supported.', 'type' => 'string', 'required' => false, 'example' => 'RouterInterface', 'title' => ''], ], 'required' => false, + 'title' => '', + 'example' => '', ], 'required' => false, - 'maxItems' => 21, + 'maxItems' => 8, + 'title' => '', + 'example' => '', ], ], + [ + 'name' => 'DryRun', + 'in' => 'query', + 'schema' => ['description' => 'Specifies whether to perform a dry run. Valid values:'."\n" + ."\n" + .'**true**: performs a dry run without deleting the route. The system checks the AccessKey pair, the authorization of the Resource Access Management (RAM) user, and the required parameters. If the check fails, the corresponding error is returned. If the check succeeds, the error code `DryRunOperation` is returned.'."\n" + ."\n" + .'**false** (default): sends a normal request. After the check succeeds, a 2xx HTTP status code is returned and the route is deleted.', 'type' => 'boolean', 'required' => false, 'title' => '', 'example' => ''], + ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'Schema of Response', + 'description' => 'The response parameters.', 'type' => 'object', 'properties' => [ - 'RouteTargetGroupId' => [ - 'description' => 'ID of the route target group instance.', - 'type' => 'string', - 'example' => 'rtg-xxxx', - ], - 'RouteTargetGroupName' => [ - 'description' => 'Name of the route target group.', - 'type' => 'string', - 'example' => 'myRouteTargetGroupName', - ], - 'RouteTargetGroupDescription' => [ - 'description' => 'Description of the route target group.', - 'type' => 'string', - 'example' => 'myRouteTargetGroupDescription', - ], - 'VpcId' => [ - 'description' => 'ID of the VPC to which the route target group belongs.', - 'type' => 'string', - 'example' => 'vpc-xxxx', - ], - 'ConfigMode' => [ - 'description' => 'Configuration mode of the route target group. Supported modes are as follows:'."\n" - ."\n" - .'- **Active-Standby**: Active-standby mode.', - 'type' => 'string', - 'enumValueTitles' => [ - 'Active-Standby' => 'Active-Standby', - ], - 'example' => 'Active-Standby', - ], - 'Status' => [ - 'description' => 'The status of the route target group. Values:'."\n" - .'- **Recovering**: In the process of switching back to the primary '."\n" - .'- **Switched**: The primary and secondary have been switched '."\n" - .'- **Available**: Available '."\n" - .'- **Abnormal**: Secondary instance is abnormal '."\n" - .'- **Pending**: In the process of being created '."\n" - .'- **Switching**: In the process of switching between primary and secondary '."\n" - .'- **Deleting**: In the process of being deleted '."\n" - .'- **Unavailable**: Both primary and secondary instances are abnormal', - 'type' => 'string', - 'enumValueTitles' => [ - 'Recovering' => 'Recovering', - 'Switched' => 'Switched', - 'Available' => 'Available', - 'Abnormal' => 'Abnormal', - 'Pending' => 'Pending', - 'Switching' => 'Switching', - 'Deleting' => 'Deleting', - 'Unavailable' => 'Unavailable', - ], - 'example' => 'Available', - ], - 'RouteTargetMemberList' => [ - 'description' => 'List of members in the route target group.', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'MemberId' => [ - 'description' => 'ID of the route target group member instance.', - 'type' => 'string', - 'example' => 'ep-xxxx', - ], - 'MemberType' => [ - 'description' => 'Type of the route target group member.'."\n" - ."\n" - .'Currently supported types:'."\n" - ."\n" - .'- **GatewayLoadBalancerEndpoint**', - 'type' => 'string', - 'enumValueTitles' => [ - 'GatewayLoadBalancerEndpoint' => 'GatewayLoadBalancerEndpoint', - ], - 'example' => 'GatewayLoadBalancerEndpoint', - ], - 'Weight' => [ - 'description' => 'Weight value of the route target group member. Values:'."\n" - ."\n" - .'- **100**: Indicates the member is the primary instance.'."\n" - .'- **0**: Indicates the member is the standby instance.'."\n" - ."\n" - .'The weight value can only be set during creation and cannot be modified.', - 'type' => 'integer', - 'format' => 'int32', - 'enumValueTitles' => [ - '0', - 100 => '100', - ], - 'example' => '100', - ], - 'HealthCheckStatus' => [ - 'description' => 'Route target group member health check status. Values:'."\n" - .'- **Normal**: Normal '."\n" - .'- **Abnormal**: Abnormal', - 'type' => 'string', - 'enumValueTitles' => [ - 'Normal' => 'Normal', - 'Abnormal' => 'Abnormal', - ], - 'example' => 'Normal', - ], - 'EnableStatus' => [ - 'description' => 'The enable status of the route target group member. Values:'."\n" - ."\n" - .'- **Enable**: Enabled.'."\n" - .'- **Disable**: Disabled.'."\n" - ."\n" - .'Only disabled route target group members can be modified to other instances. Enabled route target group members cannot be modified.', - 'type' => 'string', - 'enumValueTitles' => [ - 'Enable' => 'Enable', - 'Disable' => 'Disable', - ], - 'example' => 'Enable', - ], - ], - ], - ], - 'Tags' => [ - 'description' => 'Tags of the route target group.', - 'type' => 'array', - 'items' => [ - 'description' => 'Resource tags.', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => 'Tag key.', - 'type' => 'string', - 'example' => 'FinanceDept', - ], - 'Value' => [ - 'description' => 'Tag value.', - 'type' => 'string', - 'example' => 'FinanceJoshua', - ], - ], - ], - ], - 'RegionId' => [ - 'description' => 'The region ID of the VPC to which the route target group belongs. You can obtain the region ID by calling the DescribeRegions interface.', - 'type' => 'string', - 'example' => 'cn-qingdao', - ], - 'RequestId' => [ - 'description' => 'The request ID.', - 'type' => 'string', - 'example' => '1AE05898-06E5-4782-xxxxx', - ], - 'ResourceGroupId' => [ - 'description' => 'The ID of the resource group to which the route target group belongs.', - 'type' => 'string', - 'example' => 'rg-acfmxazdjdhd****', - ], - 'CreateTime' => [ - 'description' => 'The time when the route target group was created.', - 'type' => 'string', - 'example' => '2025-12-30T06:40:50Z', - ], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '0ED8D006-F706-4D23-88ED-E11ED28DCAC0', 'title' => ''], ], + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'ResourceNotFound.RouteTargetGroup', - 'errorMessage' => 'The specified resource of %s is not found.', + ['errorCode' => 'MissingParameter', 'errorMessage' => 'Miss mandatory parameter.', 'description' => ''], + ['errorCode' => 'IncorrcetRouteEntryStatus', 'errorMessage' => 'Some route entry status blocked this operation.', 'description' => ''], + ['errorCode' => 'InvalidCidrBlock.Malformed', 'errorMessage' => 'Specified CIDR block is not valid.', 'description' => ''], + ['errorCode' => 'OperationDenied', 'errorMessage' => 'Specified operation is denied as route entry type is system.', 'description' => ''], + ['errorCode' => 'InvalidRouteEntry.NotFound', 'errorMessage' => 'Route entry not exists.', 'description' => ''], + ['errorCode' => 'InvalidVRouter.NotFound', 'errorMessage' => 'vRouter not exists.', 'description' => ''], + ['errorCode' => 'IncorrectRouteEntryStatus', 'errorMessage' => 'Some route entry status blocked this operation.', 'description' => ''], + ['errorCode' => 'Forbbiden', 'errorMessage' => 'Specified RouteEntry cannot allowed delete by openApi.', 'description' => ''], + ['errorCode' => 'InvalidNextHop', 'errorMessage' => 'Specified nexthop and nexthop list cannot both null.', 'description' => ''], + ['errorCode' => 'InvalidRouteEntry', 'errorMessage' => 'Specified routeEntry not exist.', 'description' => ''], + ['errorCode' => 'Forbidden.VRouterNotFound', 'errorMessage' => 'pecified virtual switch is not found during access authentication.', 'description' => ''], + ['errorCode' => 'TaskConflict', 'errorMessage' => 'The operation is too frequent, TaskConflict.', 'description' => 'The system is unavailable. Try again later.'], + ['errorCode' => 'InvalidRouteEntryId.NotFound', 'errorMessage' => 'Specified RouteEntryId does not exist.', 'description' => 'The specified route is not found.'], + ['errorCode' => 'IncorrectVpcStatus', 'errorMessage' => 'Current VPC status does not support this operation.', 'description' => ''], + ['errorCode' => 'InvalidVpnInstanceId.NotFound', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'ParamExclusive.RouteEntryIdAndRouteTableIdOrDestCidrBlock', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'InvalidNextHopList.Size', 'errorMessage' => 'Nexthop list size should be between 2 and 16', 'description' => ''], + ['errorCode' => 'ParamExclusive.NextHopIdAndList', 'errorMessage' => 'NextHopId and NextHopList cannot both be not null.', 'description' => ''], + ['errorCode' => 'OperationFailed.DeleteMultiScopeEntry', 'errorMessage' => 'Multi or ecmp scope must delete with force.', 'description' => ''], + ['errorCode' => 'OperationFailed.DistibuteLock', 'errorMessage' => 'Distibute lock fail.', 'description' => 'The operation is locked by another request;'], + ['errorCode' => 'OperationDenied.DeleteManagedRouteEntry', 'errorMessage' => 'The operation is not allowed because of route entry is managed.', 'description' => 'You cannot delete hosted routes.'], + ['errorCode' => 'OperationDenied.RouteTableTypeNotPermitted', 'errorMessage' => 'The operation is not allowed because the type of route table is not permitted.', 'description' => 'You cannot create routes for route tables of the specified type.'], + ['errorCode' => 'IncorrectStatus.VpcRouteEntry', 'errorMessage' => 'The status of the specified routeEntry is invalid.', 'description' => 'The status of the VPC route entry is invalid.'], + ['errorCode' => 'OperationDenied.NextHopNotChanged', 'errorMessage' => 'The operation is not allowed because of NextHopNotChanged.', 'description' => 'The operation is not allowed because the next hop is not changed.'], + ['errorCode' => 'OperationDenied.DeleteGatewayEndpointRoute', 'errorMessage' => 'The operation is not allowed to delete route entry pointing gateway endpoint..', 'description' => 'You cannot delete a route that points to a gateway endpoint.'], + ['errorCode' => 'IncorrectStatus.PrefixList', 'errorMessage' => 'The status of prefixList is incorrect.', 'description' => 'The prefix list is in an unstable state.'], + ['errorCode' => 'InvalidCidrBlock', 'errorMessage' => 'Specified CIDR block is not valid.', 'description' => 'Possible reasons for error reporting:'."\n" + .'1. You are not in the whitelist of the 10.0.0.0/8 CIDR block and cannot use this CIDR block.'."\n" + .'2. The target CIDR block of the added custom route cannot belong to the CIDR block of all vSwitches under the same VPC.'."\n" + .'3. Because 100.64.0.0/10 is a cloud service address, you cannot add this CIDR block to point to the IDC under the cloud.'."\n" + .'4. Except for 100.64.0.0/10, the detailed route network segments such as 100.64.0.0/11 and 100.96.0.0/11 cannot be used in the IDC under the cloud.'], + ['errorCode' => 'OperationDenied.VbrAttachEcrInMiddleStatus', 'errorMessage' => 'The operation is not allowed because of VBR attach or detach ECR in middle status.', 'description' => 'The current operation cannot be performed because the VBR is in the process of loading or unloading the leased line gateway. Please wait a moment and try again.'], + ['errorCode' => 'UnsupportedFeature.NextHopType', 'errorMessage' => 'The operation is not allowed because the NextHopType of specified RouteEntry is modified from Local type.', 'description' => 'The operation is not allowed because the next hop type of the route is modified from the Local type.'], + ['errorCode' => 'ResourceNotFound.PrefixList', 'errorMessage' => 'The specified resource of prefixList is not found.', 'description' => 'The prefix list does not exist.'], + ], + 404 => [ + ['errorCode' => 'InvalidRouteTableId.NotFound', 'errorMessage' => 'Specified route table does not exist.', 'description' => ''], + ['errorCode' => 'InvalidVpcId.NotFound', 'errorMessage' => 'Specified value of VpcId is not found in our record.', 'description' => 'The VPC does not exist. Check whether the specified VPC is valid.'], + ['errorCode' => 'ResourceNotFound.GatewayLoadBalancerEndpoint', 'errorMessage' => 'GatewayLoadBalancerEndpoint instance not found.', 'description' => 'GatewayLoadBalancerEndpoint instance not found.'], + ], + 500 => [ + ['errorCode' => 'Vpc.Error', 'errorMessage' => 'error code 500,Internal server error.', 'description' => ''], + ['errorCode' => 'Internal.Error', 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', 'description' => ''], + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', 'description' => 'An internal error occurred.'], + ], + ], + 'title' => 'Delete a custom route entry', + 'description' => 'When you call this operation to delete a route, take note of the following items:'."\n" + ."\n" + .'- Only routes in the **Available** state can be deleted.'."\n" + ."\n" + .'- A route cannot be deleted if the VPC that contains the route table is creating or deleting a vSwitch or route.'."\n" + ."\n" + .'- To delete a route from the route table of a VBR, call the [DescribeRouteEntryList](~~138148~~) operation to query the **NextHopId** of the route that you want to delete, and then call this operation to delete the route.'."\n" + ."\n" + .'- The **DeleteRouteEntry** operation is asynchronous. After you send a request, the system returns a request ID, but the route has not been deleted yet. The deletion task runs in the background. You can call [DescribeRouteEntryList](~~138148~~) to query the deletion status of the route:'."\n" + .' - If the route is in the **Deleting** state, the route is being deleted.'."\n" + .' - If the specified route cannot be found, the route is deleted.'."\n" + .'- The **DeleteRouteEntry** operation does not support concurrent deletion of routes from the route table within the same VPC or VBR.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2025-05-19T01:45:15.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2025-04-18T02:32:51.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2025-03-20T11:03:13.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2025-01-14T01:32:53.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-10-28T06:54:01.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-06-19T02:32:26.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-06-05T07:30:37.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-06-03T08:54:39.000Z', 'description' => 'Request parameters changed, Response parameters changed'], + ['createdAt' => '2023-09-06T11:27:53.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-08-15T09:20:44.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-08-03T07:35:13.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-07-20T13:04:54.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-05-08T08:37:27.000Z', 'description' => 'Error codes changed'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DeleteRouteEntry'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], + ], + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'vpc:DeleteRouteEntry', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'RouteTable', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:routetable/{#RouteTableId}'], + ], ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"0ED8D006-F706-4D23-88ED-E11ED28DCAC0\\"\\n}","type":"json"}]', + ], + 'DeleteRouteTable' => [ + 'summary' => 'Deletes a custom route table.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'delete', 'riskType' => 'none', 'chargeType' => 'free', 'autoTest' => true, 'tenantRelevance' => 'publicInformation'], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => ['description' => 'The region ID of the virtual private cloud (VPC) to which the custom route table belongs.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'example' => 'cn-hangzhou', 'title' => ''], + ], + [ + 'name' => 'RouteTableId', + 'in' => 'query', + 'schema' => ['description' => 'The ID of the custom route table.'."\n", 'type' => 'string', 'required' => true, 'example' => 'vtb-bp145q7glnuzdvzu2****', 'title' => ''], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => ['description' => 'The region ID of the virtual private cloud (VPC) to which the custom route table belongs.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'example' => 'cn-hangzhou', 'title' => ''], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => 'DC668356-BCB4-42FD-9BC3-FA2B2E04B634', 'title' => ''], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'OperationDenied.GatewayAssociated', 'errorMessage' => 'You cannot delete the specified route table because it still associates with gateway.', 'description' => 'You cannot delete the route table because it is associated with a gateway.'], + ['errorCode' => 'MissingParam.RouteTableId', 'errorMessage' => 'The param of RouteTableId is missing.', 'description' => ''], + ['errorCode' => 'IncorrectRouteTableType', 'errorMessage' => 'Route table can be deleted by this action only when it\'s type is custom.', 'description' => ''], + ['errorCode' => 'IncorrectVSwitchStatus', 'errorMessage' => 'The current virtual switch status does not support this operation.', 'description' => 'The error message returned because the vSwitch is in the Pending state and cannot be deleted.'], + ['errorCode' => 'IncorrectRouteTableStatus.RouteEntryExist', 'errorMessage' => 'You cannot delete the specified route table because it still has custom route entry.', 'description' => 'You cannot delete the route table because custom routes exist in the route table.'], + ['errorCode' => 'IncorrectStatus.cbnStatus', 'errorMessage' => 'Current CBN status does not support this operation.', 'description' => 'The status of the CEN instance is invalid.'], + ['errorCode' => 'InvalidRegionId.NotFound', 'errorMessage' => 'Specified value of RegionId is not supported.', 'description' => ''], + ['errorCode' => 'InvalidParameter.Action', 'errorMessage' => 'This vpc feature is not supported in this region', 'description' => ''], + ['errorCode' => 'IncorrectRouteTableStatus', 'errorMessage' => 'The current status of the route table does not support this operation.', 'description' => 'You cannot delete the route table in the current state.'], + ['errorCode' => 'DependencyViolation.RouteEntry', 'errorMessage' => 'Vpc route table has route entry.', 'description' => ''], + ], + ], + 'staticInfo' => ['returnType' => 'asynchronous', 'callback' => 'Vpc::2016-04-28::DeleteRouteTable', 'callbackInterval' => 3000, 'maxCallbackTimes' => 10], + 'title' => 'DeleteRouteTable', + 'description' => '## [](#)Description'."\n" + ."\n" + .'* **DeleteRouteTable** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call the [DescribeRouteTableList](~~87602~~) operation to query the status of the task.'."\n" + ."\n" + .' * If the custom route table is in the **Deleting** state, the custom route table is being deleted.'."\n" + .' * If you cannot query the custom route table, the custom route table is deleted.'."\n" + ."\n" + .'* You cannot repeatedly call the **DeleteRouteTable** operation to delete a custom route table within the specified period of time.'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2022-01-13T08:50:30.000Z', 'description' => 'Error codes changed'], + ], + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'vpc:DeleteRouteTable', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'RouteTable', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:routetable/{#RouteTableId}'], + ], + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"DC668356-BCB4-42FD-9BC3-FA2B2E04B634\\"\\n}","errorExample":"{\\n \\"RequestId\\": \\"62172DD5-6BAC-45DF-8D44-xxxxxxxx\\"\\n}"},{"type":"xml","example":"\\n\\n 62172DD5-6BAC-45DF-8D44-xxxxxxx\\n","errorExample":"\\n\\n 62172DD5-6BAC-45DF-8D44-xxxxxxx\\n"}]', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DeleteRouteTable'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RouteTargetGroupId\\": \\"rtg-xxxx\\",\\n \\"RouteTargetGroupName\\": \\"myRouteTargetGroupName\\",\\n \\"RouteTargetGroupDescription\\": \\"myRouteTargetGroupDescription\\",\\n \\"VpcId\\": \\"vpc-xxxx\\",\\n \\"ConfigMode\\": \\"Active-Standby\\",\\n \\"Status\\": \\"Available\\",\\n \\"RouteTargetMemberList\\": [\\n {\\n \\"MemberId\\": \\"ep-xxxx\\",\\n \\"MemberType\\": \\"GatewayLoadBalancerEndpoint\\",\\n \\"Weight\\": 100,\\n \\"HealthCheckStatus\\": \\"Normal\\",\\n \\"EnableStatus\\": \\"Enable\\"\\n }\\n ],\\n \\"Tags\\": [\\n {\\n \\"Key\\": \\"FinanceDept\\",\\n \\"Value\\": \\"FinanceJoshua\\"\\n }\\n ],\\n \\"RegionId\\": \\"cn-qingdao\\",\\n \\"RequestId\\": \\"1AE05898-06E5-4782-xxxxx\\",\\n \\"ResourceGroupId\\": \\"rg-acfmxazdjdhd****\\",\\n \\"CreateTime\\": \\"2025-12-30T06:40:50Z\\"\\n}","type":"json"}]', - 'title' => 'GetRouteTargetGroup', - 'translator' => 'machine', ], 'DeleteRouteTargetGroup' => [ - 'summary' => 'Deletes a route target group.', 'path' => '', - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'https', - ], + 'methods' => ['post'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], @@ -27346,136 +21008,115 @@ ], 'operationType' => 'write', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'delete', - 'riskType' => 'none', - 'chargeType' => 'free', - ], + 'systemTags' => ['operationType' => 'delete', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ 'name' => 'RouteTargetGroupId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the route target group instance.', - 'type' => 'string', - 'required' => true, - 'example' => 'rtg-xxxx', - ], + 'schema' => ['description' => 'The routing target group instance ID.', 'type' => 'string', 'required' => true, 'example' => 'rtg-xxxx', 'title' => ''], ], [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the resource group to be modified.'."\n" - ."\n" - .'You can obtain the region ID by calling the [DescribeRegions](~~36063~~) interface.', - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The ID of the region where the resource group resides.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the region ID.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'Client token used to ensure idempotence of the request.'."\n" - ."\n" - .'This value should be generated by the client and must be unique across different requests, with a maximum length of 64 ASCII characters.'."\n" - ."\n" - .'> If you do not specify this, the system automatically uses the **RequestId** from the API request as the **ClientToken** identifier. The **RequestId** for each API request may differ.', - 'type' => 'string', - 'required' => false, - 'example' => 'd7d24a21-f4ba-4454-9173-b3****', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'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 and cannot exceed 64 characters in length.'."\n" + ."\n" + .'> If you do not specify this parameter, the system automatically uses the **RequestId** of the API request as the **ClientToken**. The **RequestId** may differ for each API request.', 'type' => 'string', 'required' => false, 'example' => 'd7d24a21-f4ba-4454-9173-b3****', 'title' => ''], ], [ 'name' => 'Tag', 'in' => 'query', 'style' => 'repeatList', 'schema' => [ - 'description' => 'Tags of the resource.', + 'description' => 'The tags of the resource.', 'type' => 'array', 'items' => [ - 'description' => 'List of tags.', + 'description' => 'The tag list.', 'type' => 'object', 'properties' => [ - 'Key' => [ - 'description' => 'Tag key of the resource. Supports up to 20 tag keys. If you need to pass this value, you cannot input an empty string.'."\n" - ."\n" - .'A tag key supports a maximum of 128 characters and cannot start with `aliyun` or `acs:`. It also cannot contain `http://` or `https://`.', - 'type' => 'string', - 'required' => false, - 'example' => 'FinanceDept', - ], - 'Value' => [ - 'description' => 'Tag value of the resource. Supports up to 20 tag values. If you need to pass this value, you can input an empty string.'."\n" - ."\n" - .'Supports a maximum of 128 characters and cannot start with `aliyun` or `acs:`. It also cannot contain `http://` or `https://`.', - 'type' => 'string', - 'required' => false, - 'example' => 'FinanceJoshua', - ], + 'Key' => ['description' => 'The tag key of the resource. You can specify up to 20 tag keys. The tag key cannot be an empty string.'."\n" + ."\n" + .'The tag key can be up to 128 characters in length. It cannot start with `aliyun` or `acs:` and cannot contain `http://` or `https://`.', 'type' => 'string', 'required' => false, 'example' => 'FinanceDept', 'title' => ''], + 'Value' => ['description' => 'The tag value of the resource. You can specify up to 20 tag values. The tag value can be an empty string.'."\n" + ."\n" + .'The tag value can be up to 128 characters in length. It cannot start with `aliyun` or `acs:` and cannot contain `http://` or `https://`.', 'type' => 'string', 'required' => false, 'example' => 'FinanceJoshua', 'title' => ''], ], 'required' => false, + 'title' => '', + 'example' => '', ], 'required' => false, 'maxItems' => 21, + 'title' => '', + 'example' => '', ], ], + [ + 'name' => 'ForceDelete', + 'in' => 'query', + 'schema' => ['type' => 'boolean', 'description' => '', 'title' => '', 'example' => ''], + ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'Schema of Response', + 'title' => '', 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => 'ID of the request', - 'type' => 'string', - 'example' => '4EC47282-1B74-4534-BD0E-403F3EE64CAF', - ], + 'RequestId' => ['title' => '', 'description' => 'Id of the request', 'type' => 'string', 'example' => '4EC47282-1B74-4534-BD0E-403F3EE64CAF'], ], + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'ResourceNotFound.RouteTargetGroup', - 'errorMessage' => 'The specified resource of %s is not found.', - ], - [ - 'errorCode' => 'IncorrectStatus.RouteTargetGroup', - 'errorMessage' => 'The status of %s [%s] is incorrect.', - ], - [ - 'errorCode' => 'DependencyViolation.RouteEntry', - 'errorMessage' => 'RouteEntry %s depends on the resource %s.', - ], + ['errorCode' => 'ResourceNotFound.RouteTargetGroup', 'errorMessage' => 'The specified resource of %s is not found.', 'description' => 'The specified resource% s does not exist.'], + ['errorCode' => 'IncorrectStatus.RouteTargetGroup', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => 'The current state of the RouteTargetGroup prohibits the operation.'], + ['errorCode' => 'DependencyViolation.RouteEntry', 'errorMessage' => 'RouteEntry %s depends on the resource %s.', 'description' => 'The current resource is still relied upon by the routing entry.'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'Delete a route target group', + 'summary' => 'Deletes a route target group instance.', + 'description' => '- **DeleteRouteTargetGroup** is an asynchronous operation. After you send a request, the system returns a request ID, but the route target group is not yet deleted. The deletion task continues to run in the background. You can call ListRouteTargetGroup to query the deletion status of the route target group:'."\n" + .' - If the route target group is in the **Deleting** state, the route target group is being deleted.'."\n" + .' - If the specified route target group cannot be found, the route target group is deleted.', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DeleteRouteTargetGroup'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], + ], + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'vpc:DeleteRouteTargetGroup', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], ], 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"4EC47282-1B74-4534-BD0E-403F3EE64CAF\\"\\n}","type":"json"}]', - 'title' => 'DeleteRouteTargetGroup', - 'description' => '- The **DeleteRouteTargetGroup** interface is an asynchronous API, meaning the system will return a request ID, but the route target group has not yet been successfully deleted as the deletion task is still in progress in the background. You can call ListRouteTargetGroup to query the deletion status of the route target group:'."\n" - .' - When the route target group is in the **Deleting** state, it indicates that the route target group is being deleted.'."\n" - .' - If you cannot find the specified route target group, it means the route target group has been successfully deleted.', - 'translator' => 'machine', ], - 'CreateRouteTargetGroup' => [ - 'summary' => 'Creates a route target group instance.', - 'path' => '', - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'https', - ], + 'DeleteRouterInterface' => [ + 'summary' => 'Deletes a router interface.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -27483,582 +21124,472 @@ ], 'operationType' => 'write', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'create', - 'riskType' => 'none', - 'chargeType' => 'free', - ], + 'systemTags' => ['operationType' => 'delete', 'riskType' => 'high', 'chargeType' => 'paid'], 'parameters' => [ [ - 'name' => 'VpcId', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the VPC to which the route target group belongs.', - 'type' => 'string', - 'required' => true, - 'docRequired' => false, - 'example' => 'vpc-xxxx', - ], + 'schema' => ['description' => 'The ID of the region where the router interface is deployed.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'example' => 'cn-shanghai', 'title' => ''], ], [ - 'name' => 'RouteTargetGroupName', + 'name' => 'RouterInterfaceId', 'in' => 'query', - 'schema' => [ - 'description' => 'The name of the route target group.'."\n" - ."\n" - .'The name length must be between 1 and 128 characters, and cannot start with http:// or https://.', - 'type' => 'string', - 'required' => false, - 'docRequired' => false, - 'example' => 'myRouteTargetGroupName', - ], + 'schema' => ['description' => 'The ID of the router interface.'."\n", 'type' => 'string', 'required' => true, 'example' => 'ri-2zeo3xzyf38r4urz****', 'title' => ''], ], [ - 'name' => 'RouteTargetGroupDescription', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The description of the route target group.'."\n" - ."\n" - .'The description length must be between 1 and 256 characters, and cannot start with http:// or https://.', - 'type' => 'string', - 'required' => false, - 'docRequired' => false, - 'example' => 'myRouteTargetGroupDescription', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'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.'."\n" + ."\n" + .'> 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.'."\n", 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-426655440000', 'title' => ''], ], - [ - 'name' => 'RouteTargetMemberList', - 'in' => 'query', - 'style' => 'repeatList', + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => 'The member list of the route target group.'."\n" - ."\n" - .'In Active-Standby mode, the following restrictions apply to the members of the route target group:'."\n" - ."\n" - .'1. The number of route target group members must be 2.'."\n" - .'2. The route target group members must belong to different availability zones.', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'MemberId' => [ - 'description' => 'The instance ID of the route target group member.', - 'type' => 'string', - 'required' => true, - 'example' => 'ep-xxxx', - ], - 'MemberType' => [ - 'description' => 'The type of the route target group member.'."\n" - ."\n" - .'Currently supported types:'."\n" - ."\n" - .'- **GatewayLoadBalancerEndpoint**'."\n" - ."\n" - .'In Active-Standby mode, all members of the route target group must have the same type.', - 'type' => 'string', - 'required' => true, - 'example' => 'GatewayLoadBalancerEndpoint', - ], - 'Weight' => [ - 'description' => 'The weight value of the route target group member. Values:'."\n" - ."\n" - .'- **100**: Indicates the member is a primary instance.'."\n" - .'- **0**: Indicates the member is a standby instance.'."\n" - ."\n" - .'The weight value can only be set during creation and cannot be modified.', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'example' => '100', - ], - ], - 'required' => true, + 'description' => 'The request ID.'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B45', 'title' => ''], ], - 'required' => true, - 'docRequired' => true, - 'maxItems' => 16, + 'title' => '', + 'example' => '', ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InvalidInstance.StatusError', 'errorMessage' => 'The router instance status error.', 'description' => 'The status of the instance is invalid.'], + ['errorCode' => 'OperationFailed.OperationLocked', 'errorMessage' => 'Operation failed because OperationLocked.', 'description' => 'The operation failed because the instance is locked due to O&M.'], + ['errorCode' => 'RouterInterfaceReferredByRouteEntry', 'errorMessage' => 'Router interface referred by route entry.', 'description' => 'There is a route to the router interface that cannot be deleted'], + ['errorCode' => 'ReferredByRouteEntry.RouterInterface', 'errorMessage' => 'Router interface referred by route entry.', 'description' => 'The router interface is referenced by a route entry.'], + ['errorCode' => 'InvalidRouteTable.NotFound', 'errorMessage' => 'The specified routetable does not exist.', 'description' => 'The route table is not found.'], + ['errorCode' => 'Forbbiden.InvaildOwner', 'errorMessage' => 'Incorrect RouterInterface owner.', 'description' => 'The router does not belong to your account.'], + ], + ], + 'title' => 'DeleteRouterInterface', + 'description' => 'When you call this operation, take note of the following limits:'."\n" + ."\n" + .'* You can delete only a router interface that is in the **Idle** or **Inactive** state.'."\n" + .'* Before you delete a router interface, you must delete all custom route entries destined for the router interface.'."\n", + 'changeSet' => [ + ['createdAt' => '2025-03-19T10:32:29.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-03-25T02:41:07.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-12-21T05:47:23.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-07-24T11:57:52.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2022-11-28T02:51:05.000Z', 'description' => 'Error codes changed'], + ], + 'ramActions' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B45\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 54B48E3D-DF70-471B-AA93-08E683A1B45\\n","errorExample":""}]', + ], + 'DeleteSnatEntry' => [ + 'summary' => 'Deletes an SNAT entry.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'ConfigMode', - 'in' => 'query', - 'schema' => [ - 'description' => 'The configuration mode of the route target group. Supported modes:'."\n" - ."\n" - .'- **Active-Standby**: Active-Standby mode.', - 'type' => 'string', - 'required' => true, - 'example' => 'Active-Standby', - ], + 'AK' => [], ], + ], + 'operationType' => 'write', + 'systemTags' => ['operationType' => 'delete', 'riskType' => 'none', 'chargeType' => 'free'], + 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID to which the route target group belongs. You can obtain the region ID by calling the DescribeRegions interface.', - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The region ID of the NAT gateway.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'ResourceGroupId', + 'name' => 'SnatTableId', 'in' => 'query', - 'schema' => [ - 'description' => 'The resource group ID.'."\n" - ."\n" - .'For more information about resource groups, see [What is a Resource Group](~~2381067~~).', - 'type' => 'string', - 'required' => false, - 'example' => 'rg-acfmxazffggds****', - ], + 'schema' => ['description' => 'The ID of the SNAT table to which the SNAT entry belongs.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'stb-bp190wu8io1vgev80****', 'title' => ''], ], [ - 'name' => 'ClientToken', + 'name' => 'SnatEntryId', 'in' => 'query', - 'schema' => [ - 'description' => 'Client token used to ensure the idempotence of the request. Generate a parameter value from your client to ensure that it is unique across different requests. ClientToken supports only ASCII characters. Note: If you do not specify this, the system automatically uses the RequestId of the API request as the ClientToken identifier. Each API request has a different RequestId.', - 'type' => 'string', - 'required' => false, - 'example' => '0c593ea1-3bea-11e9-b96b-88e9fe6****', - ], + 'schema' => ['description' => 'The ID of the SNAT entry that you want to delete.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'snat-bp1vcgcf8tm0plqcg****', 'title' => ''], ], [ - 'name' => 'Tag', + 'name' => 'ClientToken', 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => 'The tags of the resource.', - 'type' => 'array', - 'items' => [ - 'description' => 'The tags of the resource.', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => 'The tag key of the resource. Up to 20 tag keys are supported. If you need to pass this value, you cannot input an empty string.'."\n" - ."\n" - .'A tag key can have up to 128 characters and cannot start with `aliyun` or `acs:`. It cannot contain `http://` or `https://`.', - 'type' => 'string', - 'required' => false, - 'example' => 'FinanceDept', - ], - 'Value' => [ - 'description' => 'The tag value of the resource. Up to 20 tag values are supported. If you need to pass this value, you can input an empty string.'."\n" - ."\n" - .'A tag value can have up to 128 characters and cannot start with `aliyun` or `acs:`. It cannot contain `http://` or `https://`.', - 'type' => 'string', - 'required' => false, - 'example' => 'FinanceJoshua', - ], - ], - 'required' => false, - ], - 'required' => false, - 'maxItems' => 21, - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'You can use the client to generate the value, but you must make sure that it is unique among different requests. The client token can contain only ASCII characters.'."\n" + ."\n" + .'> If you do not set this parameter, the system automatically uses **RequestId** as **ClientToken**. **RequestId** may be different for each API request.'."\n", 'type' => 'string', 'required' => false, 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3FF3898', 'title' => ''], ], ], 'responses' => [ 200 => [ + 'headers' => [], 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => 'ID of the request.', - 'type' => 'string', - 'example' => '8AA5CE21-2E6A-4530-BDF5-F055849476E6', - ], - 'RouteTargetGroupId' => [ - 'description' => 'The ID of the route target group instance.', - 'type' => 'string', - 'example' => 'rtg-xxxx', - ], + 'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => '0ED8D006-F706-4D23-88ED-E11ED28DCAC0', 'title' => ''], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'UnsupportedFeature.RouteTargetGroup', - 'errorMessage' => 'The feature of RouteTargetGroup is not supported.', - ], - [ - 'errorCode' => 'Mismatch.GroupVpcIdAndInstanceVpcId', - 'errorMessage' => 'The RouteTargetGroup VPC %s and the RouteTargetConfig VPC %s are mismatched.', - ], - [ - 'errorCode' => 'OperationDenied.MemberWithSameAz', - 'errorMessage' => 'The operation is not allowed because of all members being in the same availability zone.', - ], - [ - 'errorCode' => 'InvalidVpcId.NotFound', - 'errorMessage' => 'Specified value of VpcId is not found in our record.', - ], - [ - 'errorCode' => 'ResourceNotFound.GatewayLoadBalancerEndpoint', - 'errorMessage' => 'GatewayLoadBalancerEndpoint instance %s not found.', - ], - [ - 'errorCode' => 'QuotaExceeded.RouteTargetGroup', - 'errorMessage' => 'The quota of %s is exceeded, usage %s/%s.', - ], + ['errorCode' => 'IncorretSnatEntryStatus', 'errorMessage' => 'Some Snat entry status blocked this operation..', 'description' => ''], + ['errorCode' => 'IncorrectStatus.SnatEntry', 'errorMessage' => 'The Specified SnatEntry is not stable status, can not operation', 'description' => 'The specified SNAT entries are not in a stable state and cannot be operated.'], + ], + 404 => [ + ['errorCode' => 'InvalidRegionId.NotFound', 'errorMessage' => 'The specified RegionId does not exist in our records.', 'description' => ''], + ['errorCode' => 'InvalidSnatEntryId.NotFound', 'errorMessage' => 'Specified Snat entry ID does not exist', 'description' => ''], + ['errorCode' => 'InvalidSnatTableId.NotFound', 'errorMessage' => 'Specified SNAT table does not exist.', 'description' => ''], + ['errorCode' => 'ResourceNotFound.SnatEntry', 'errorMessage' => 'Specified SNAT entry does not exist.', 'description' => 'The specified SNAT entry does not exist.'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"8AA5CE21-2E6A-4530-BDF5-F055849476E6\\",\\n \\"RouteTargetGroupId\\": \\"rtg-xxxx\\"\\n}","type":"json"}]', - 'title' => 'CreateRouteTargetGroup', - 'description' => '- The **CreateRouteTargetGroup** interface is an asynchronous interface, meaning the system will return an instance ID, but the route target group instance has not yet been fully created, and the system\'s background creation task is still in progress. You can call **ListRouteTargetGroup** to query the creation status of the route target group:'."\n" - .' - When the route target group is in the **Pending** state, it indicates that the route target group is being created.'."\n" - .' - When the route target group is in the **Available**, **Unavailable**, **Switched**, or **Abnormal** state, it indicates that the route target group has been created.'."\n" - ."\n" - .'- **Active-Standby Mode**: When creating a route target group, you need to configure primary and standby instances that are located in different availability zones and have the same type.'."\n" + 'title' => 'DeleteSnatEntry', + 'description' => 'DeleteSnatEntry is an asynchronous operation. After you make a request, the ID of the request is returned but the specified SNAT entry is not deleted. The system deletes the SNAT entry in the background. You can call the [DescribeSnatTableEntries](~~42677~~) operation to query the status of SNAT entries.'."\n" ."\n" - .'- **Primary Instance**: The weight is 100. Under normal circumstances, it carries all traffic and takes effect when the health check is normal.'."\n" + .'* If the SNAT entries are in the **Deleting** state, the system is deleting the SNAT entries. In this case, you can only query the status of the SNAT entries, and cannot perform other operations.'."\n" + .'* If no SNAT entry is returned in the response, the SNAT entry is deleted.'."\n" ."\n" - .'- **Standby Instance**: The weight is 0. It takes over the traffic after the primary instance fails, serving as a disaster recovery backup.', - 'translator' => 'machine', - ], - 'AllocateEipAddress' => [ - 'summary' => 'Applies for an elastic IP address (EIP).', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + .'If some SNAT entries are in the **Pending** state, you cannot delete these SNAT entries.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2023-03-01T06:45:54.000Z', 'description' => 'Response parameters changed'], ], + 'ramActions' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"0ED8D006-F706-4D23-88ED-E11ED28DCAC0\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 0ED8D006-F706-4D23-88ED-E11ED28DCAC0\\n","errorExample":""}]', + ], + 'DeleteSslVpnClientCert' => [ + 'summary' => 'Deletes an SSL-VPN client certificate.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'write', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'create', - 'riskType' => 'none', - 'chargeType' => 'paid', - 'autoTest' => true, - 'tenantRelevance' => 'tenant', - ], + 'systemTags' => ['operationType' => 'delete', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region to which the EIP belongs.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the region ID.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The region ID of the SSL-VPN client certificate. '."\n" + ."\n" + .'You can call [DescribeRegions](~~36063~~) to query the most recent region list.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'Bandwidth', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The maximum bandwidth of the EIP. Unit: Mbit/s.'."\n" - ."\n" - .'* Valid values when **InstanceChargeType** is set to **PostPaid** and **InternetChargeType** is set to **PayByBandwidth**: **1** to **500**.****'."\n" - .'* Valid values when **InstanceChargeType** is set to **PostPaid** and **InternetChargeType** is set to **PayByTraffic**: **1** to **200**.****'."\n" - .'* Valid values when **InstanceChargeType** is set to **PrePaid**: **1** to **1000**.****'."\n" - ."\n" - .'Default value: **5**. Unit: Mbit/s.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '5', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'You can use the client to generate the token, but you must make sure that the token is unique among different requests. The ClientToken value can contain only ASCII characters.'."\n" + ."\n" + .'> If you do not specify this parameter, the system automatically uses the **RequestId** value as the **ClientToken** value. The **RequestId** value is different for each API request.', 'type' => 'string', 'required' => false, 'example' => '02fb3da4-130e-11e9-8e44-0016e04115b', 'title' => ''], ], [ - 'name' => 'Period', + 'name' => 'SslVpnClientCertId', 'in' => 'query', + 'schema' => ['description' => 'The ID of the SSL-VPN client certificate.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'vsc-bp1n8wcf134yl0osr****', 'title' => ''], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => 'The subscription duration of the EIP.'."\n" - ."\n" - .'Valid values when **PricingCycle** is set to **Month**: **1** to **9**.****'."\n" - ."\n" - .'Valid values when **PricingCycle** is set to **Year**: **1** to **5**.****'."\n" - ."\n" - .'This parameter must be specified when **InstanceChargeType** is set to **PrePaid**. This parameter is optional when **InstanceChargeType** is set to **PostPaid**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '606998F0-B94D-48FE-8316-ACA81BB230DA', 'title' => ''], + ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'VpnGateway.Configuring', 'errorMessage' => 'The specified service is configuring.', 'description' => ''], + ], + 403 => [ + ['errorCode' => 'Forbbiden.SubUser', 'errorMessage' => 'User not authorized to operate on the specified resource as your account is created by another user.', 'description' => ''], + ['errorCode' => 'Forbidden', 'errorMessage' => 'User not authorized to operate on the specified resource.', 'description' => 'You do not have the permissions to manage the specified resource. Apply for the permissions and try again.'], + ], [ - 'name' => 'ISP', - 'in' => 'query', - 'schema' => [ - 'description' => 'The line type. Valid values:'."\n" - ."\n" - .'* **BGP** (default): BGP (Multi-ISP) All regions support BGP (Multi-ISP) EIPs.'."\n" - .'* **BGP_PRO**: BGP (Multi-ISP) Pro Only the following regions support BGP (Multi-ISP) Pro lines: China (Hong Kong), Singapore, Japan (Tokyo), Malaysia (Kuala Lumpur), Philippines (Manila), Indonesia (Jakarta), and Thailand (Bangkok).'."\n" - ."\n" - .'For more information about BGP (Multi-ISP) and BGP (Multi-ISP) Pro, see the "Line types" section of [What is EIP?](~~32321~~)'."\n" - ."\n" - .'* If you are allowed to use single-ISP bandwidth, you can also choose one of the following values:'."\n" - ."\n" - .' * **ChinaTelecom**'."\n" - .' * **ChinaUnicom**'."\n" - .' * **ChinaMobile**'."\n" - .' * **ChinaTelecom_L2**'."\n" - .' * **ChinaUnicom_L2**'."\n" - .' * **ChinaMobile_L2**'."\n" - ."\n" - .'* If your services are deployed in China East 1 Finance, this parameter is required and you must set the value to **BGP_FinanceCloud**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'BGP', - ], + ['errorCode' => 'InvalidRegionId.NotFound', 'errorMessage' => 'The specified region is not found during access authentication.', 'description' => 'The specified area is not found during authentication.'], + ['errorCode' => 'InvalidSslVpnClientCertId.NotFound', 'errorMessage' => 'The specified SSL VPN client cert id does not exist.', 'description' => ''], + ], + ], + 'staticInfo' => ['returnType' => 'asynchronous', 'callback' => 'Vpc::2016-04-28::DescribeVpnGateway', 'callbackInterval' => 1000, 'maxCallbackTimes' => 30], + 'title' => 'Delete an SSL-VPN client certificate', + 'description' => '- Deleting an SSL-VPN client certificate disconnects all clients under the SSL server from their SSL-VPN connections. If clients need to continue using SSL-VPN connections, they must re-initiate the SSL-VPN connections.'."\n" + ."\n" + .' For example, if SSL-VPN client certificate 1 and SSL-VPN client certificate 2 are created under an SSL server, deleting SSL-VPN client certificate 1 disconnects all clients associated with both SSL-VPN client certificate 1 and SSL-VPN client certificate 2.'."\n" + ."\n" + .' - If clients associated with SSL-VPN client certificate 1 need to continue using SSL-VPN connections, they must install another certificate and then re-initiate the SSL-VPN connections.'."\n" + ."\n" + .' - If clients associated with SSL-VPN client certificate 2 need to continue using SSL-VPN connections, they only need to re-initiate the SSL-VPN connections.'."\n" + .'- The **DeleteSslVpnClientCert** operation is asynchronous. After a request is sent, the system returns a request ID. However, the SSL-VPN client certificate is not immediately deleted. The deletion task runs in the background. You can call [DescribeVpnGateway](~~2794055~~) to query the status of the VPN gateway instance associated with the SSL server to check the deletion status of the SSL-VPN client certificate:'."\n" + .' - If the VPN gateway instance is in the **updating** state, the SSL-VPN client certificate is being deleted.'."\n" + .' - If the VPN gateway instance is in the **active** state, the SSL-VPN client certificate is deleted.'."\n" + .'- The **DeleteSslVpnClientCert** operation does not support concurrent deletion of SSL-VPN client certificates under the same VPN gateway instance.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DeleteSslVpnClientCert'], ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], + ], + 'ramActions' => [ [ - 'name' => 'ActivityId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The promotion code. This parameter is not required.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '123456', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'vpc:DeleteSslVpnClientCert', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'SslVpnClientCert', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:sslvpnclientcert/{#SslVpnClientCertId}'], + ], ], ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"606998F0-B94D-48FE-8316-ACA81BB230DA\\"\\n}","type":"json"}]', + ], + 'DeleteSslVpnServer' => [ + 'summary' => 'Deletes an SSL server.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'Netmode', - 'in' => 'query', - 'schema' => [ - 'description' => 'The network type. Default value: **public**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'public', - ], + 'AK' => [], ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'delete', 'riskType' => 'none', 'chargeType' => 'free'], + 'parameters' => [ [ - 'name' => 'AutoPay', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to enable automatic payment. Valid values:'."\n" - ."\n" - .'* **false** (default): The automatic payment is disabled. If you select this option, you must go to the Order Center to complete the payment after an order is generated.'."\n" - .'* **true**: The automatic payment is enabled. Payments are automatically complete after an order is generated.'."\n" - ."\n" - .'If **InstanceChargeType** is set to **PrePaid**, this parameter is required. If **InstanceChargeType** is set to **PostPaid**, this parameter is not required.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['description' => 'The region ID of the SSL server.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'PricingCycle', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The billing cycle of the subscription EIP. Valid values:'."\n" - ."\n" - .'* **Month** (default)'."\n" - .'* **Year**'."\n" - ."\n" - .'If **InstanceChargeType** is set to **PrePaid**, this parameter is required. If **InstanceChargeType** is set to **PostPaid**, this parameter is not required.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'Month', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'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.'."\n" + ."\n" + .'> 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.'."\n", 'type' => 'string', 'required' => false, 'example' => '02fb3da4-130e-11e9-8e44-0016e04115b', 'title' => ''], ], [ - 'name' => 'InstanceChargeType', + 'name' => 'SslVpnServerId', 'in' => 'query', - 'schema' => [ - 'description' => 'The billing method of the EIP. Valid values:'."\n" - ."\n" - .'* **PrePaid**: subscription'."\n" - .'* **PostPaid** (default): pay-as-you-go'."\n" - ."\n" - .'If **InstanceChargeType** is set to **PrePaid**, set **InternetChargeType** to **PayByBandwidth**. If **InstanceChargeType** is set to **PostPaid**, set **InternetChargeType** to **PayByBandwidth** or **PayByTraffic**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'PostPaid', - ], + 'schema' => ['description' => 'The ID of the SSL server.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'vss-bp18q7hzj6largv4v****', 'title' => ''], ], - [ - 'name' => 'InternetChargeType', - 'in' => 'query', + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => 'The metering method of the EIP. Valid values:'."\n" - ."\n" - .'* **PayByBandwidth** (default): pay-by-bandwidth'."\n" - .'* **PayByTraffic**: pay-by-data-transfer'."\n" - ."\n" - .'When **InstanceChargeType** is set to **PrePaid**, set **InternetChargeType** to **PayByBandwidth**.'."\n" - ."\n" - .'When **InstanceChargeType** is set to **PostPaid**, set **InternetChargeType** to **PayByBandwidth** or **PayByTraffic**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'PayByTraffic', - 'default' => 'PayByBandwidth', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '606998F0-B94D-48FE-8316-ACA81BB230DA', 'title' => ''], + ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'VpnGateway.Configuring', 'errorMessage' => 'The specified service is configuring.', 'description' => ''], + ['errorCode' => 'VpnGateway.FinancialLocked', 'errorMessage' => 'The specified service is financial locked.', 'description' => ''], + ], + 403 => [ + ['errorCode' => 'Forbbiden.SubUser', 'errorMessage' => 'User not authorized to operate on the specified resource as your account is created by another user.', 'description' => ''], + ['errorCode' => 'Forbidden', 'errorMessage' => 'User not authorized to operate on the specified resource.', 'description' => 'You do not have the permissions to manage the specified resource. Apply for the permissions and try again.'], + ], [ - 'name' => 'ResourceGroupId', + ['errorCode' => 'InvalidRegionId.NotFound', 'errorMessage' => 'The specified region is not found during access authentication.', 'description' => 'The specified area is not found during authentication.'], + ['errorCode' => 'InvalidSslVpnServerId.NotFound', 'errorMessage' => 'The specified SSL VPN server id does not exist.', 'description' => ''], + ], + ], + 'staticInfo' => ['returnType' => 'asynchronous', 'callback' => 'Vpc::2016-04-28::DescribeVpnGateway', 'callbackInterval' => 1000, 'maxCallbackTimes' => 30], + 'title' => 'DeleteSslVpnServer', + 'description' => '* **DeleteSslVpnServer** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call the [DescribeVpnGateway](~~2794055~~) operation to query the status of the task.'."\n" + ."\n" + .' * If the VPN gateway is in the **updating** state, the SSL server is being deleted.'."\n" + .' * If the VPN gateway is in the **active** state, the SSL server is deleted.'."\n" + ."\n" + .'* You cannot repeatedly call the **DeleteSslVpnServer** operation to delete an SSL server from the same VPN gateway within the specified period of time.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"606998F0-B94D-48FE-8316-ACA81BB230DA\\"\\n}","errorExample":"{\\n \\"RequestId\\":\\"606998F0-B94D-48FE-8316-ACA81BB230DA\\"\\n}"},{"type":"xml","example":"\\n\\n 606998F0-B94D-48FE-8316-ACA81BB230DA\\n","errorExample":"\\n\\n 606998F0-B94D-48FE-8316-ACA81BB230DA\\n"}]', + ], + 'DeleteTrafficMirrorFilter' => [ + 'summary' => 'Invokes the DeleteTrafficMirrorFilter operation to delete a traffic mirror filter.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'readAndWrite', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'delete'], + 'parameters' => [ + [ + 'name' => 'TrafficMirrorFilterId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the resource group.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'rg-acfmxazffggds****', - ], + 'schema' => ['description' => 'The instance ID of the traffic mirror filter.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'tmf-j6cmls82xnc86vtpe****', 'title' => ''], ], [ 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'You can use the client to generate a token, but you must make sure that the token is unique among different requests. The **client token** can contain only ASCII characters.'."\n" - ."\n" - .'> If you do not specify this parameter, the system automatically uses the value of **RequestId** as the **client token**. The value of **RequestId** is different for each API request.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '0c593ea1-3bea-11e9-b96b-88e9fe637760', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'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.'."\n" + ."\n" + .'> If you do not specify this parameter, the system automatically uses the **RequestId** as the **ClientToken**. The **RequestId** may differ for each API request.', 'type' => 'string', 'required' => false, 'example' => '0c593ea1-3bea-11e9-b96b-88e9fe63****', 'title' => ''], ], [ - 'name' => 'Name', + 'name' => 'DryRun', 'in' => 'query', - 'schema' => [ - 'description' => 'The EIP name.'."\n" - ."\n" - .'The name must be 1 to 128 characters in length and start with a letter, and can contain letters, digits, periods (.), underscores (\\_), and hyphens (-).'."\n" - ."\n" - .'> You cannot specify this parameter if you create a subscription EIP.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'EIP1', - ], + 'schema' => ['description' => 'Specifies whether to perform a dry run. Valid values:'."\n" + ."\n" + .'- **true**: performs a dry run. The system checks the required parameters, request format, and 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.'."\n" + .'- **false** (default): sends the request. If the request passes the check, the traffic mirror filter is deleted.', 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], ], [ - 'name' => 'Description', + 'name' => 'RegionId', 'in' => 'query', + 'schema' => ['description' => 'The region ID of the traffic mirror. You can call [DescribeRegions](~~36063~~) to query the most recent region list. For more information about the regions that support traffic mirroring, see [Overview of traffic mirroring](~~207513~~).', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hongkong', 'title' => ''], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => 'The description of the EIP.'."\n" - ."\n" - .'The description must be 2 to 256 characters in length. The description must start with a letter but cannot start with `http://` or `https://`.'."\n" - ."\n" - .'> You cannot specify this parameter if you create a subscription EIP.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'test', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '07F272E2-6AD5-433A-8207-A607C76F1676', 'title' => ''], + ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'ResourceNotFound.TrafficMirrorFilter', 'errorMessage' => 'The specified resource of traffic mirror filter is not found.', 'description' => 'The specified filter does not exist.'], + ['errorCode' => 'IncorrectStatus.TrafficMirrorFilter', 'errorMessage' => 'The status of traffic mirror filter is incorrect.', 'description' => 'The filter is in an invalid state.'], + ['errorCode' => 'IncorrectStatus.TrafficMirrorRule', 'errorMessage' => 'The status of traffic mirror rule is incorrect.', 'description' => 'The filter rule is in an invalid state.'], + ['errorCode' => 'DependencyViolation.TrafficMirrorSession', 'errorMessage' => 'Some traffic mirror sessions depend on the specified resource.', 'description' => 'The traffic mirror session depends on the current resource.'], + ], + ], + 'staticInfo' => ['returnType' => 'asynchronous', 'callback' => 'Vpc::2016-04-28::ListTrafficMirrorFilters', 'callbackInterval' => 3000, 'maxCallbackTimes' => 10], + 'title' => 'Delete a traffic mirror filter', + 'description' => '- **DeleteTrafficMirrorFilter** is an asynchronous operation. After you send a request, the system returns a request ID, but the traffic mirror filter is not yet deleted. The deletion task runs in the background. You can call [ListTrafficMirrorFilters](~~261353~~) to query the deletion status of the traffic mirror filter:'."\n" + .' - If the traffic mirror filter is in the **Deleting** state, the traffic mirror filter is being deleted.'."\n" + .' - If the specified traffic mirror filter cannot be found, the traffic mirror filter is deleted.'."\n" + .'- **DeleteTrafficMirrorFilter** does not support concurrent deletion of the same traffic mirror filter.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '600', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DeleteTrafficMirrorFilter'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], + ], + 'ramActions' => [ [ - 'name' => 'SecurityProtectionTypes', - 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => 'The editions of Anti-DDoS.'."\n" - ."\n" - .'* If you do not specify this parameter, Anti-DDoS Origin Basic is used.'."\n" - .'* If you set the parameter to **AntiDDoS_Enhanced**, Anti-DDoS Pro/Premium is used.'."\n" - ."\n" - .'You can specify up to 10 editions of Anti-DDoS.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The edition of Anti-DDoS.'."\n" - ."\n" - .'* If you do not specify this parameter, Anti-DDoS Origin Basic is used.'."\n" - .'* If you set the parameter to **AntiDDoS_Enhanced**, Anti-DDoS Pro/Premium is used.'."\n" - ."\n" - .'You can specify up to 10 editions of Anti-DDoS.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'AntiDDoS_Enhanced', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'vpc:DeleteTrafficMirrorFilter', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'TrafficMirrorFilter', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:trafficmirrorfilter/{#TrafficMirrorFilterId}'], ], - 'required' => false, - 'example' => 'AntiDDoS_Enhanced', - 'maxItems' => 10, ], ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"07F272E2-6AD5-433A-8207-A607C76F1676\\"\\n}","type":"json"}]', + ], + 'DeleteTrafficMirrorFilterRules' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'PublicIpAddressPoolId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the IP address pool.'."\n" - ."\n" - .'The EIP is allocated from the IP address pool.'."\n" - ."\n" - .'By default, the IP address pool feature is unavailable. To use the IP address pool, apply for the privilege in the Quota Center console. For more information, see the "Request a quota increase in the Quota Center console" section in [Manage EIP quotas](~~108213~~).'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'pippool-2vc0kxcedhquybdsz****', - ], + 'AK' => [], ], + ], + 'operationType' => 'readAndWrite', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'delete', 'riskType' => 'none', 'chargeType' => 'free'], + 'parameters' => [ [ - 'name' => 'Zone', + 'name' => 'TrafficMirrorFilterId', 'in' => 'query', - 'schema' => [ - 'description' => 'The zone of the EIP.'."\n" - ."\n" - .'When the service type of the IP address pool specified by **PublicIpAddressPoolId** is CloudBox, the default value is the zone of the IP address pool.'."\n" - ."\n" - .'For more information, see [ListPublicIpAddressPools](~~429433~~).'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou-a', - ], + 'schema' => ['description' => 'The ID of the filter.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'tmf-j6cmls82xnc86vtpe****', 'title' => ''], ], [ - 'name' => 'IpAddress', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The IP address of the EIP that you want to request.'."\n" - ."\n" - .'Specify **IpAddress** or **InstanceId**. If you leave both parameters empty, the system randomly allocates an EIP.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '192.0.XX.XX', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'You can use the client to generate the value, but you must make sure that it is unique among different requests. The client token can contain only ASCII characters.'."\n" + ."\n" + .'> If you do not set this parameter, the system uses **RequestId** as **ClientToken**. **RequestId** may be different for each API request.'."\n", 'type' => 'string', 'required' => false, 'example' => '0c593ea1-3bea-11e9-b96b-88e9fe63****', 'title' => ''], ], [ - 'name' => 'InstanceId', + 'name' => 'DryRun', 'in' => 'query', - 'schema' => [ - 'description' => 'The EIP ID.'."\n" - ."\n" - .'Specify **IpAddress** or **InstanceId**. If you leave both parameters empty, the system randomly allocates an EIP.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'eip-25877c70gddh****', - ], + 'schema' => ['description' => 'Specifies whether to check the request without performing the operation. Valid values:'."\n" + ."\n" + .'* **true**: checks the API request without performing the operation. The system checks the required parameters, request format, and limits. If the request fails the check, an error message is returned. If the request passes the check, the `DryRunOperation` error code is returned.'."\n" + .'* **false** (default): sends the request. After the request passes the check, the operation is performed.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], ], [ - 'name' => 'Tag', + 'name' => 'TrafficMirrorFilterRuleIds', 'in' => 'query', 'style' => 'repeatList', 'schema' => [ + 'description' => 'The ID of the inbound or outbound rule.', 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'type' => 'string', - ], - 'Value' => [ - 'type' => 'string', - ], - ], - ], - 'required' => false, - 'maxItems' => 21, + 'items' => ['description' => 'The ID of the inbound or outbound rule.', 'type' => 'string', 'required' => false, 'example' => 'tmr-j6cbmubn323k7jlq3****', 'title' => ''], + 'required' => true, + 'example' => 'tmr-j6cbmubn323k7jlq3****', + 'maxLength' => 128, + 'maxItems' => 100, + 'title' => '', ], ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => ['description' => 'The ID of the region to which the mirrored traffic belongs. You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list. For more information about regions that support traffic mirror, see [Overview of traffic mirror](~~207513~~).', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hongkong', 'title' => ''], + ], ], 'responses' => [ 200 => [ @@ -28066,984 +21597,431 @@ 'description' => 'The response parameters.'."\n", 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '4EC47282-1B74-4534-BD0E-403F3EE64CAF', - ], - 'OrderId' => [ - 'description' => 'The order ID. This parameter is returned only when **InstanceChargeType** is set to **PrePaid**.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '10', - ], - 'ResourceGroupId' => [ - 'description' => 'The ID of the resource group. This parameter is returned only when **InstanceChargeType** is set to **PostPaid**.'."\n", - 'type' => 'string', - 'example' => 'rg-acfmxazfdgdg****', - ], - 'EipAddress' => [ - 'description' => 'The EIP that is allocated. This parameter is returned only when **InstanceChargeType** is set to **PostPaid**.'."\n", - 'type' => 'string', - 'example' => '192.0.XX.XX', - ], - 'AllocationId' => [ - 'description' => 'The EIP ID.'."\n", - 'type' => 'string', - 'example' => 'eip-25877c70gddh****', - ], + 'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => 'BD8A3F71-00C5-4655-8F55-11F3976C3274', 'title' => ''], ], + 'title' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'COMMODITY_NO_EXIST', - 'errorMessage' => 'commodity is not exist', - ], - [ - 'errorCode' => 'QuotaExceeded.Eip', - 'errorMessage' => 'Elastic IP address quota exceeded', - ], - [ - 'errorCode' => 'InvalidParameter', - 'errorMessage' => 'Specified value of "InternetChargeType" is not valid', - ], - [ - 'errorCode' => 'InsufficientBalance', - 'errorMessage' => 'Your account does not have enough balance.', - ], - [ - 'errorCode' => 'ReserveIpFail', - 'errorMessage' => 'Reserve eip failed.', - ], - [ - 'errorCode' => 'InvalidRegion.NotSupport', - 'errorMessage' => 'The specified region does not support.', - ], - [ - 'errorCode' => 'InvalidBandwidth.Malformed', - 'errorMessage' => 'The specified Bandwidth is invalid.', - ], - [ - 'errorCode' => 'INSTANCE_TYPE_NOT_SUPPORT', - 'errorMessage' => 'The instance type is invalid.', - ], - [ - 'errorCode' => 'QueryParameter.Illegal', - 'errorMessage' => 'query parameter illegal', - ], - [ - 'errorCode' => 'TokenVerfiy.Failed', - 'errorMessage' => 'token verify failed.', - ], - [ - 'errorCode' => 'OrderFailed', - 'errorMessage' => 'The Account failed to create order.', - ], - [ - 'errorCode' => 'QuotaExceeded.LargeSpecEip', - 'errorMessage' => 'Elastic IP address with large spec quota exceeded.', - ], - [ - 'errorCode' => 'InvalidResourceGroupId', - 'errorMessage' => 'The specified ResourceGroupId does not exist.', - ], - [ - 'errorCode' => 'PAYFOR.CREDIT_PAY_INSUFFICIENT_BALANCE', - 'errorMessage' => 'Your account does not have enough balance.', - ], - [ - 'errorCode' => 'SYSTEM.SALE_VALIDATE_UNEXPECTED_ERROR', - 'errorMessage' => 'You have arrears and do not meet the purchase conditions.', - ], - [ - 'errorCode' => 'Trade_Sync_Create_Sub_ERROR', - 'errorMessage' => 'SyncOrderToSub error.', - ], - [ - 'errorCode' => 'InvalidComponent.EipBandwidthMax', - 'errorMessage' => 'The eip_bandwidth_max component is invalid.', - ], - [ - 'errorCode' => 'OperationFailed.RiskControl', - 'errorMessage' => 'Risk control check failed.', - ], - [ - 'errorCode' => 'OperationFailed.SaleValidate', - 'errorMessage' => 'Validate sale condition with subArticle failed.', - ], - [ - 'errorCode' => 'IllegalParam.OrderParamComponent', - 'errorMessage' => 'Product order param has invalid component.', - ], - [ - 'errorCode' => 'OperationFailed.SaleExpression', - 'errorMessage' => 'Get the sales expression exception attached to the item.', - ], - [ - 'errorCode' => 'OperationFailed.CompleteUserInfo', - 'errorMessage' => 'Complete user info failed.', - ], - [ - 'errorCode' => 'OperationFailed.QueryPrice', - 'errorMessage' => 'Query price failed when create order.', - ], - [ - 'errorCode' => 'OperationFailed.InsufficientEIP', - 'errorMessage' => 'Eip resource is not enough.', - ], - [ - 'errorCode' => 'OperationFailed.InvokeInnerApi', - 'errorMessage' => 'Failed to invoke inner api.', - ], - [ - 'errorCode' => 'OperationFailed.AccountMoneyInvalid', - 'errorMessage' => 'Account money is invalid.', - ], - [ - 'errorCode' => 'OperationFailed.QueryCredtiInfo', - 'errorMessage' => 'Failed to query credit info.', - ], - [ - 'errorCode' => 'FrequentPurchase.EIP', - 'errorMessage' => 'eip frequent purchase', - ], - [ - 'errorCode' => 'OperationFailed.QueryUserLabel', - 'errorMessage' => 'Failed to query user label info.', - ], - [ - 'errorCode' => 'PAY.INSUFFICIENT_BALANCE', - 'errorMessage' => 'Your account does not have enough balance.', - ], - [ - 'errorCode' => 'PAY.MAYI_WITHHOLDING_AGREEMENT_ILLEGAL', - 'errorMessage' => 'User withhoding argeement is illegal.', - ], - [ - 'errorCode' => 'OrderError.EIP', - 'errorMessage' => 'FThe Account failed to create order.', - ], - [ - 'errorCode' => 'IellgalParameter.OwnerAccount', - 'errorMessage' => 'The specified parameter OwnerAccount is not valid.', - ], - [ - 'errorCode' => 'ResourceNotFound.PublicIpAddressPool', - 'errorMessage' => 'The specified resource of PublicIpAddressPool is not found.', - ], - [ - 'errorCode' => 'ResourceNotEnough.PublicIpAddressPool', - 'errorMessage' => 'The specified resource of PublicIpAddressPool is not enough.', - ], - [ - 'errorCode' => 'Mismatch.IpAndPublicIpAddressPool', - 'errorMessage' => 'The Ip and PublicIpAddressPool are mismatched.', - ], - [ - 'errorCode' => 'CreditPayInsufficientBalance', - 'errorMessage' => 'The balance is insufficient, please contact your channel partner to increase the balance', - ], - [ - 'errorCode' => 'OperationDenied.NotOpenDdosOriginProtectService', - 'errorMessage' => 'The operation is not allowed because of you do not open Ddos Origin Protection Service', - ], - [ - 'errorCode' => 'IncorrectStatus.PublicIpAddressPool', - 'errorMessage' => 'The status of PublicIpAddressPool is incorrect.', - ], - [ - 'errorCode' => 'IllegalParam.Isp', - 'errorMessage' => 'The param of %s is illegal.', - ], - [ - 'errorCode' => 'AccountMoneyValidateError', - 'errorMessage' => 'The available amount of the account is insufficient.', - ], - [ - 'errorCode' => 'OrderFailed.ConcurrentOperate', - 'errorMessage' => 'Failed to create the order due to concurrent operations.', - ], - [ - 'errorCode' => 'OperationFailed.BasicInfoUncompleted', - 'errorMessage' => 'Your information is incomplete. Complete your information before the operation.', - ], - [ - 'errorCode' => 'OperationFailed.QuotaNotEnough', - 'errorMessage' => 'Your quota is insufficient. Please contact your channel partner to increase your quota', - ], - [ - 'errorCode' => 'ExclusiveParam.ZoneAndPublicIpAddressPoolId', - 'errorMessage' => 'The Zone and PublicIpAddressPoolId parameters are mutually exclusive.', - ], - [ - 'errorCode' => 'IllegalParam.Zone', - 'errorMessage' => 'The specified zone is invalid.', - ], - [ - 'errorCode' => 'OperationFailed.AllocateUnfamiliarIp', - 'errorMessage' => 'The operation failed because only IP addresses used within the last seven days can be allocated.', - ], - [ - 'errorCode' => 'Ip.Allocated', - 'errorMessage' => 'The reserve ip has been allocated.', - ], - [ - 'errorCode' => 'IncorrectStatus.Ip', - 'errorMessage' => 'The status of ip is incorrect.', - ], - [ - 'errorCode' => 'UnsupportedFeature.AllocateEipAddressWithZone', - 'errorMessage' => 'The feature of AllocateEipAddressWithZone is not supported.', - ], - [ - 'errorCode' => 'ResourceNotFound.Ip', - 'errorMessage' => 'The specified ip is not found.', - ], - [ - 'errorCode' => 'OperationFailed.CreditPayInsufficientBalance', - 'errorMessage' => 'Your account does not have enough balance.', - ], - [ - 'errorCode' => 'OperationFailed.ResourceNotEnough', - 'errorMessage' => 'The resources you have applied for are insufficient.', - ], - [ - 'errorCode' => 'IllegalParam.Bandwidth', - 'errorMessage' => 'The param of bandwidth is illegal.', - ], - [ - 'errorCode' => 'OperationFailed.IpIsLocked', - 'errorMessage' => 'The operation is failed because of ip is locked.', - ], - [ - 'errorCode' => 'Mismatch.EipSecurityProtectionTypeAndPoolSecurityProtectionType', - 'errorMessage' => 'The EipSecurityProtectionType and PoolSecurityProtectionType are mismatched.', - ], - [ - 'errorCode' => 'IllegalParam.SecurityProtectionTypes', - 'errorMessage' => 'The param of securityProtectionTypes is illegal.', - ], - [ - 'errorCode' => 'IllegalParam.ServiceLocation', - 'errorMessage' => 'The param of serviceLocation is illegal.', - ], - [ - 'errorCode' => 'UnsupportedFeature.Isp', - 'errorMessage' => 'The feature of Isp is not supported.', - ], - [ - 'errorCode' => 'ExclusiveParam.ZoneAndIpAddress', - 'errorMessage' => 'The specified param Zone and IpAddress or InstanceId are mutually exclusive.', - ], - [ - 'errorCode' => 'InvalidDescription.Malformed', - 'errorMessage' => 'The Description is illeagl.', - ], - [ - 'errorCode' => 'InvalidName.Malformed', - 'errorMessage' => 'The attribute name is illegal.', - ], - [ - 'errorCode' => 'OperationFailed.UpgradeCdtServiceFirst', - 'errorMessage' => 'The operation is failed because of cdt is not upgraded.', - ], - ], - 403 => [ - [ - 'errorCode' => 'Forbidden', - 'errorMessage' => 'User not authorized to operate on the specified resource.', - ], + ['errorCode' => 'ResourceNotFound.TrafficMirrorRule', 'errorMessage' => 'The specified resource of traffic mirror rule is not found.', 'description' => ''], + ['errorCode' => 'IncorrectStatus.TrafficMirrorRule', 'errorMessage' => 'The status of traffic mirror rule is incorrect.', 'description' => 'The filter rule is in an invalid state.'], + ['errorCode' => 'IncorrectStatus.TrafficMirrorFilter', 'errorMessage' => 'The status of traffic mirror filter is incorrect.', 'description' => 'The filter is in an invalid state.'], + ['errorCode' => 'ResourceNotFound.TrafficMirrorFilter', 'errorMessage' => 'The specified resource of traffic mirror filter is not found.', 'description' => 'The specified filter does not exist.'], + ['errorCode' => 'IncorrectStatus.TrafficMirrorSession', 'errorMessage' => 'The status of traffic mirror session is incorrect.', 'description' => ''], ], + ], + 'staticInfo' => ['returnType' => 'asynchronous', 'callback' => 'Vpc::2016-04-28::ListTrafficMirrorFilters', 'callbackInterval' => 3000, 'maxCallbackTimes' => 10], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"BD8A3F71-00C5-4655-8F55-11F3976C3274\\"\\n}","type":"json"}]', + 'title' => 'DeleteTrafficMirrorFilterRules', + 'summary' => 'Deletes an inbound or outbound rule of a filter for traffic mirror.', + 'changeSet' => [ + ['createdAt' => '2025-04-09T06:24:28.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-09-22T05:43:35.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2022-12-07T06:35:21.000Z', 'description' => 'Error codes changed'], + ], + 'ramActions' => [ [ - [ - 'errorCode' => 'InvalidRegionId.NotFound', - 'errorMessage' => 'Specified value of "RegionId" is not supported.', - ], - [ - 'errorCode' => 'FUWU_BIZ_COMMODITY_VERIFY_FAIL', - 'errorMessage' => '????????, ????????PD.', - ], - ], - 409 => [ - [ - 'errorCode' => 'OperationConflict', - 'errorMessage' => 'Request was denied due to conflict with a previous request.', - ], - ], - 500 => [ - [ - 'errorCode' => 'OrderError.EIP', - 'errorMessage' => 'The Account failed to create order.', - ], - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', - ], - [ - 'errorCode' => 'OperationFailed.SystemBusy', - 'errorMessage' => 'Operation failed because system is busy.', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'vpc:DeleteTrafficMirrorFilterRules', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'TrafficMirrorFilter', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:trafficmirrorfilter/{#TrafficMirrorFilterId}'], + ], ], ], ], - 'staticInfo' => [ - 'returnType' => 'asynchronous', - 'callback' => 'Vpc::2016-04-28::DescribeEipAddresses', - 'callbackInterval' => 3000, - 'maxCallbackTimes' => 10, - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"4EC47282-1B74-4534-BD0E-403F3EE64CAF\\",\\n \\"OrderId\\": 10,\\n \\"ResourceGroupId\\": \\"rg-acfmxazfdgdg****\\",\\n \\"EipAddress\\": \\"192.0.XX.XX\\",\\n \\"AllocationId\\": \\"eip-25877c70gddh****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 4EC47282-1B74-4534-BD0E-403F3EE64CAF\\n 10\\n rg-acfmxazfdgdg****\\n 192.0.XX.XX\\n eip-25877c70gddh****\\n","errorExample":""}]', - 'title' => 'AllocateEipAddress', - 'description' => 'Before you call this operation, make sure that you are familiar with the billing methods and pricing of EIPs. For more information, see [Billing overview](~~122035~~).'."\n" - ."\n" - .'After you call this operation, the system randomly allocates an EIP that is in the **Available** state in the specified region. EIPs support only the ICMP, TCP, and UDP transport layer protocols. The IGMP and SCTP protocols are not supported.'."\n", - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', ], - 'AllocateEipAddressPro' => [ - 'summary' => 'Requests a specified elastic IP address (EIP).', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DeleteTrafficMirrorSession' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'readAndWrite', - 'systemTags' => [ - 'operationType' => 'create', - 'riskType' => 'none', - 'chargeType' => 'paid', - ], + 'deprecated' => false, + 'systemTags' => ['operationType' => 'delete', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ - 'name' => 'RegionId', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region to which the EIP belongs.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the region ID.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'You can use the client to generate the value, but you must make sure that it is unique among all requests. ClientToken can contain only ASCII characters.'."\n" + ."\n" + .'> If you do not specify this parameter, **ClientToken** is set to the value of **RequestId**. The value of **RequestId** for each API request may be different.'."\n", 'type' => 'string', 'required' => false, 'example' => '0c593ea1-3bea-11e9-b96b-88e9fe63****', 'title' => ''], ], [ - 'name' => 'IpAddress', + 'name' => 'DryRun', 'in' => 'query', - 'schema' => [ - 'description' => 'The IP address of the EIP.'."\n" - ."\n" - .'Specify **IpAddress** or **InstanceId**. If you leave both parameters empty, the system randomly allocates an EIP.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '192.0.XX.XX', - ], + 'schema' => ['description' => 'Specifies whether to to perform a dry run. Valid values:'."\n" + ."\n" + .'* **true**: performs a dry run. The system checks the required parameters, request format, and 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.'."\n" + .'* **false** (default): performs a dry run and sends the request. If the request passes the dry run, the operation is performed.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], ], [ - 'name' => 'InstanceId', + 'name' => 'TrafficMirrorSessionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The EIP ID.'."\n" - ."\n" - .'Specify **IpAddress** or **InstanceId**. If you leave both parameters empty, the system randomly allocates an EIP.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'eip-25877c70gddh****', - ], + 'schema' => ['description' => 'The ID of the traffic mirror session.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'tms-j6cla50buc44ap8tu****', 'title' => ''], ], [ - 'name' => 'Bandwidth', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The maximum bandwidth of the specified EIP. Unit: Mbit/s.'."\n" - ."\n" - .'* When **InstanceChargeType** is set to **PostPaid** and **InternetChargeType** is set to **PayByBandwidth**, valid values for **Bandwidth** are **1** to **500**.'."\n" - .'* When **InstanceChargeType** is set to **PostPaid** and **InternetChargeType** is set to **PayByTraffic**, valid values for **Bandwidth** are **1** to **200**.'."\n" - .'* When **InstanceChargeType** is set to **PrePaid**, valid values for **Bandwidth** are **1** to **1000**.'."\n" - ."\n" - .'Default value: **5** Mbit /s.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '5', - ], + 'schema' => ['description' => 'The ID of the region to which the traffic mirror session belongs. You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list. For more information about regions that support traffic mirror, see [Overview of traffic mirror](~~207513~~).', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hongkong', 'title' => ''], ], - [ - 'name' => 'Period', - 'in' => 'query', + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => 'The subscription duration.'."\n" - ."\n" - .'* Valid values when **PricingCycle** is set to **Month**: **1 to 9**.****'."\n" - .'* Valid values when **PricingCycle** is set to **Year**: **1 to 3**.****'."\n" - ."\n" - .'This parameter is required if **InstanceChargeType** is set to **PrePaid**.'."\n" - ."\n" - .'Leave this parameter empty if **InstanceChargeType** is set to **PostPaid**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => '0ED8D006-F706-4D23-88ED-E11ED28DCAC0', 'title' => ''], + ], + 'title' => '', ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'ResourceNotFound.TrafficMirrorSession', 'errorMessage' => 'The specified resource of traffic mirror session is not found.', 'description' => ''], + ['errorCode' => 'IncorrectStatus.TrafficMirrorSession', 'errorMessage' => 'The status of traffic mirror session is incorrect.', 'description' => ''], + ['errorCode' => 'IncorrectStatus.TrafficMirrorFilter', 'errorMessage' => 'The status of traffic mirror filter is incorrect.', 'description' => 'The filter is in an invalid state.'], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"0ED8D006-F706-4D23-88ED-E11ED28DCAC0\\"\\n}","type":"json"}]', + 'title' => 'DeleteTrafficMirrorSession', + 'summary' => 'Deletes a traffic mirror session.', + 'changeSet' => [ + ['createdAt' => '2022-12-07T06:35:21.000Z', 'description' => 'Error codes changed'], + ], + 'ramActions' => [ [ - 'name' => 'ISP', - 'in' => 'query', - 'schema' => [ - 'description' => 'The line type. Valid values:'."\n" - ."\n" - .'* **BGP** (default): BGP (Multi-ISP) line The BGP (Multi-ISP) line is supported in all regions.'."\n" - .'* **BGP_PRO**: BGP (Multi-ISP) Pro line The BGP (Multi-ISP) Pro line is supported in the China (Hong Kong), Singapore, Malaysia (Kuala Lumpur), Philippines (Manila), Indonesia (Jakarta), and Thailand (Bangkok) regions.'."\n" - ."\n" - .'For more information about the BGP (Multi-ISP) line and BGP (Multi-ISP) Pro line, see the "Line types" section of [What is EIP?](~~32321~~)'."\n" - ."\n" - .'* If you are allowed to use single-ISP bandwidth, you can also choose one of the following values:'."\n" - ."\n" - .' * **ChinaTelecom**'."\n" - .' * **ChinaUnicom**'."\n" - .' * **ChinaMobile**'."\n" - .' * **ChinaTelecom_L2**'."\n" - .' * **ChinaUnicom_L2**'."\n" - .' * **ChinaMobile_L2**'."\n" - ."\n" - .'* If your services are deployed in China East 1 Finance, this parameter is required and you must set the parameter to **BGP_FinanceCloud**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'BGP', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'vpc:DeleteTrafficMirrorSession', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'TrafficMirrorSession', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:trafficmirrorsession/{#TrafficMirrorSessionId}'], + ], ], ], + ], + ], + 'DeleteVSwitch' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'Netmode', - 'in' => 'query', - 'schema' => [ - 'description' => 'The network type. By default, this value is set to **public**, which specifies the public network type.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'public', - ], + 'AK' => [], ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'delete', + 'riskType' => 'high', + 'chargeType' => 'free', + 'abilityTreeCode' => '37697', + 'abilityTreeNodes' => ['FEATUREvpc1WY1RZ'], + ], + 'parameters' => [ [ - 'name' => 'AutoPay', + 'name' => 'VSwitchId', 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to enable automatic payment. Default value: true. Valid values:'."\n" - ."\n" - .'* **false**: Automatic payment is disabled. After an order is generated, you must go to the Order Center to complete the payment.'."\n" - .'* **true**: Automatic payment is enabled. After an order is generated, the payment is automatically completed.'."\n" - ."\n" - .'This parameter is required if **InstanceChargeType** is set to **PrePaid**. This parameter is optional if **InstanceChargeType** is set to **PostPaid**.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], + 'schema' => ['description' => 'The ID of the VSwitch to delete.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'vsw-asdfjlna****', 'title' => ''], ], [ - 'name' => 'PricingCycle', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The billing cycle of the subscription EIP. Valid values:'."\n" - ."\n" - .'* **Month** (default)'."\n" - .'* **Year**'."\n" - ."\n" - .'This parameter is required if **InstanceChargeType** is set to **PrePaid**. This parameter is optional if **InstanceChargeType** is set to **PostPaid**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'Month', - ], + 'schema' => ['description' => 'The region ID of the VSwitch to delete.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query region IDs.', 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'InstanceChargeType', + 'name' => 'DryRun', 'in' => 'query', + 'schema' => ['description' => 'Specifies whether to perform a dry run. Valid values:'."\n" + .'- **true**: Sends a check request without deleting the VSwitch. The check items include whether required parameters are specified, the request format, and service limits. If the check fails, the corresponding error is returned. If the check succeeds, the error code `DryRunOperation` is returned.'."\n" + .'- **false** (default): Sends a normal request. After the check succeeds, an HTTP 2xx status code is returned and the VSwitch is directly deleted.', 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => 'The billing method of the EIP. Valid values:'."\n" - ."\n" - .'* **PrePaid**: subscription'."\n" - .'* **PostPaid** (default): pay-as-you-go'."\n" - ."\n" - .'Set the value of **InternetChargeType** to **PayByBandwidth** if **InstanceChargeType** is set to **PrePaid**.'."\n" - ."\n" - .'Valid values when **InstanceChargeType** is set to **PostPaid**: **PayByBandwidth** or **PayByTraffic**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'PostPaid', + 'description' => 'The response parameters.', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '0ED8D006-F706-4D23-88ED-E11ED28DCAC0', 'title' => ''], + ], + 'title' => '', + 'example' => '', ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'OperationDenied.OtherSubnetProcessing', 'errorMessage' => 'other subnet is processing.', 'description' => 'You cannot delete the vSwitch because other subnets are being managed.'], + ['errorCode' => 'IncorrectVSwitchStatus', 'errorMessage' => 'vpc subnet is in middle status.', 'description' => ''], + ['errorCode' => 'DependencyViolation', 'errorMessage' => 'Resources deployed in the vSwitch have not been deleted.', 'description' => 'Failed to delete the vSwitch because resources attached to the vSwitch are not released.'], + ['errorCode' => 'IncorrectRouteEntryStatus', 'errorMessage' => 'Some route entry status blocked this operation.', 'description' => ''], + ['errorCode' => 'DependencyViolation.HaVip', 'errorMessage' => 'VSwitch cannot be deleted when there are some HaVip dependent with it.', 'description' => 'The vSwitch is associated with an HAVIP and the vSwitch cannot be deleted.'], + ['errorCode' => 'DependencyViolation.RouteTable', 'errorMessage' => 'VSwitch cannot be deleted when associated with route table', 'description' => ''], + ['errorCode' => 'MissingParameter', 'errorMessage' => 'Miss mandatory parameter.', 'description' => ''], + ['errorCode' => 'TaskConflict', 'errorMessage' => 'The operation is too frequent, TaskConflict.', 'description' => 'The system is unavailable. Try again later.'], + ['errorCode' => 'DependencyViolation.SNAT', 'errorMessage' => 'The vswitch cannot be deleted when used by snat.', 'description' => 'You cannot delete a vSwitch when SNAT is used.'], + ['errorCode' => 'DeleteVSwitch.IncorrectStatus.cbnStatus', 'errorMessage' => 'Current CBN status does not support this operation.', 'description' => 'You cannot delete the vSwitch when the CEN instance is in the current state.'], + ['errorCode' => 'AttrMismatching.NaclAndBindInstance', 'errorMessage' => 'The network acl and resource not in same vpc.', 'description' => ''], + ['errorCode' => 'InvalidResource.NotBinding', 'errorMessage' => 'The resource has not been binded.', 'description' => ''], + ['errorCode' => 'DependencyViolation.SnatEntry', 'errorMessage' => 'VSwitch cannot be deleted when snat entry exist.', 'description' => ''], + ['errorCode' => 'DependencyViolation.NetworkAcl', 'errorMessage' => 'VSwitch cannot be deleted when network acl exist.', 'description' => 'You cannot delete the vSwitch because a network ACL exists in the vSwitch.'], + ['errorCode' => 'DependencyViolation.EnhancedNatgw', 'errorMessage' => 'VSwitch cannot be deleted when natgw exist.', 'description' => 'You cannot delete the vSwitch because a NAT gateway exists in the vSwitch.'], + ['errorCode' => 'DependencyViolation.ResourceShare', 'errorMessage' => 'VSwitch cannot be deleted when resource share exist.', 'description' => ''], + ['errorCode' => 'OperationFailed.SystemBusy', 'errorMessage' => 'Operation failed because system is busy.', 'description' => 'The error message returned because the system is busy. Try again later.'], + ['errorCode' => 'DependencyViolation.MulticastDomain', 'errorMessage' => 'VSwitch cannot be deleted when associated with multicast domain.', 'description' => 'The vSwitch is added to a multicast domain and cannot be deleted.'], + ['errorCode' => 'DependencyViolation.VSwitchCidrReservation', 'errorMessage' => 'VSwitch cannot be deleted when vswitch cidr reservation exist.', 'description' => 'The error message returned because a CIDR block is reserved for the vSwitch and the vSwitch cannot be deleted.'], + ['errorCode' => 'DependencyViolation.CloudService', 'errorMessage' => 'VSwitch cannot be deleted when uesd by cloud service.', 'description' => 'The error message returned because the vSwitch is being used by a cloud service and cannot be deleted. Check the use scenario of the cloud service.'], + ['errorCode' => 'InvalidVSwitchId.NotFound', 'errorMessage' => 'VSwitch not exist.', 'description' => ''], + ['errorCode' => 'OperationFailed.Ipv6InstanceExist', 'errorMessage' => 'Operation failed because vswitch has ipv6 instance.', 'description' => 'IPv6 instances exist in the vSwitch.'], + ['errorCode' => 'DependencyViolation.Ipv6Address', 'errorMessage' => 'The specified resource of %s depends on %s, so the operation cannot be completed.', 'description' => 'The specified resource is dependent on other resources and the current operation is not allowed.'], + ['errorCode' => 'DependencyViolation.%s', 'errorMessage' => 'The specified resource of [%s] depends on [%s], so the operation cannot be completed.', 'description' => 'The specified resource of [%s] depends on [%s], so the operation cannot be completed.'], + ['errorCode' => 'Forbidden.RegionNotFound', 'errorMessage' => 'Specified instance is not found during access authentication.', 'description' => 'The error message returned because the region is not supported.'], + ['errorCode' => 'IncorrectStatus', 'errorMessage' => 'Vswtich status not stable.', 'description' => ''], + ['errorCode' => 'DependencyViolation.RouterInterface', 'errorMessage' => 'Specified object has dependent resources RouterInterface.', 'description' => ''], + ['errorCode' => 'InvalidRegionId.NotFound', 'errorMessage' => 'The specified region is not found.', 'description' => 'The specified region does not exist.'], + ], + 404 => [ + ['errorCode' => 'IncorrectVSwitchId', 'errorMessage' => 'Specified vSwtich instance is not found during access authentication.', 'description' => 'The vSwitch is not found during the permission verification progress.'], + ['errorCode' => 'InvalidVSwitchId.NotFound', 'errorMessage' => 'VSwitch not exist.', 'description' => ''], + ], + ], + 'title' => 'DeleteVSwitch', + 'summary' => 'Deletes a VSwitch.', + 'description' => 'When you call this operation to delete a VSwitch, take note of the following items:'."\n" + ."\n" + .'- Before you delete a VSwitch, you must release or migrate all resources in the VPC, including VSwitches, cloud product instances, router interfaces, and HaVip resources.'."\n" + ."\n" + .'- Only VSwitches in the **Available** state can be deleted.'."\n" + ."\n" + .'- A VSwitch cannot be deleted if the VPC to which it belongs is creating or deleting a VSwitch or route entry.'."\n" + ."\n" + .'- The **DeleteVSwitch** operation is asynchronous. After you send a request, the system returns a request ID, but the VSwitch is not yet deleted. The deletion task is still running in the background. You can call [DescribeVSwitchAttributes](~~94567~~) to query the deletion status of the VSwitch:'."\n" + .' - If the VSwitch is in the **Pending** state, the VSwitch is being deleted.'."\n" + .' - If the specified VSwitch cannot be found, the VSwitch is deleted.'."\n" + ."\n" + .'- The **DeleteVSwitch** operation does not support concurrent deletion of the same VSwitch.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2025-04-01T11:44:58.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2025-02-14T03:41:59.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2025-02-10T11:21:39.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2023-12-14T07:39:32.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-10-10T04:48:56.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-09-21T07:57:20.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-06-25T12:18:33.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-06-09T08:58:31.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-03-17T03:07:31.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-01-05T08:05:12.000Z', 'description' => 'Error codes changed, Response parameters changed'], + ['createdAt' => '2021-08-08T06:01:48.000Z', 'description' => 'Error codes changed'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DeleteVSwitch'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], + ], + 'ramActions' => [ [ - 'name' => 'InternetChargeType', - 'in' => 'query', - 'schema' => [ - 'description' => 'The metering method of the EIP. Valid values:'."\n" - ."\n" - .'* **PayByBandwidth** (default): pay-by-bandwidth.'."\n" - .'* **PayByTraffic**: pay-by-data-transfer.'."\n" - ."\n" - .'If **InstanceChargeType** is set to **PrePaid**, you must set **InternetChargeType** to **PayByBandwidth**.'."\n" - ."\n" - .'If **InstanceChargeType** is set to **PostPaid**, **InternetChargeType** can be set to **PayByBandwidth** or **PayByTraffic**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'PayByBandwidth', - 'default' => 'PayByBandwidth', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'vpc:DeleteVSwitch', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VSwitch', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vswitch/{#VSwitchId}'], + ], ], ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"0ED8D006-F706-4D23-88ED-E11ED28DCAC0\\"\\n}","type":"json"}]', + ], + 'DeleteVSwitchCidrReservation' => [ + 'summary' => 'Deletes a reserved CIDR block of a vSwitch.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'ResourceGroupId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the resource group to which the EIP belongs.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'rg-resourcegroup****', - ], + 'AK' => [], ], + ], + 'operationType' => 'readAndWrite', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'delete', 'riskType' => 'none', 'chargeType' => 'free'], + 'parameters' => [ [ - 'name' => 'Tag', + 'name' => 'VSwitchCidrReservationId', 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => '', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => '', - 'type' => 'string', - 'required' => false, - 'example' => 'FinanceDept', - ], - 'Value' => [ - 'description' => '', - 'type' => 'string', - 'required' => false, - 'example' => 'FinanceJoshua', - ], - ], - 'required' => false, - ], - 'required' => false, - 'maxItems' => 21, - ], + 'schema' => ['description' => 'The ID of the reserved CIDR block.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'vcr-bp1m12saqteraw3rp****', 'title' => ''], ], [ - 'name' => 'ClientToken', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'You can use the client to generate a token, but you must make sure that the token is unique among different requests. The token can contain only ASCII characters.'."\n" - ."\n" - .'> 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.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '0c593ea1-3bea-11e9-b96b-88e9fe6****', - ], + 'schema' => ['description' => 'The ID of the region where the vSwitch is deployed.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'SecurityProtectionTypes', + 'name' => 'DryRun', 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => 'The editions of Anti-DDoS.'."\n" - ."\n" - .'* If you do not specify this parameter, Anti-DDoS Origin Basic is used.'."\n" - .'* If you set the parameter to **AntiDDoS_Enhanced**, Anti-DDoS Pro/Premium is used.'."\n" - ."\n" - .'You can configure Anti-DDoS editions for up to 10 EIPs.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The edition of Anti-DDoS.'."\n" - ."\n" - .'* If you do not specify this parameter, Anti-DDoS Origin Basic is used.'."\n" - .'* If you set the parameter to **AntiDDoS_Enhanced**, Anti-DDoS Pro/Premium is used.'."\n" - ."\n" - .'You can configure Anti-DDoS editions for up to 10 EIPs.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'AntiDDoS_Enhanced', - ], - 'required' => false, - 'maxItems' => 10, - ], + 'schema' => ['description' => 'Specifies whether to perform a dry run. Valid values:'."\n" + ."\n" + .'**true**: performs a dry run. The system checks the required parameters, request format, and 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.'."\n" + ."\n" + .'**false** (default): sends the request directly without performing a dry run. If the request passes the dry run, a 2xx HTTP status code is returned and the operation is performed.', 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], ], [ - 'name' => 'PublicIpAddressPoolId', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the IP address pool.'."\n" - ."\n" - .'The EIP is allocated from the IP address pool.'."\n" - ."\n" - .'By default, the IP address pool feature is unavailable. If you need to use this feature, contact your account manager.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'pippool-2vc0kxcedhquybdsz****', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'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.'."\n" + ."\n" + .'> 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.'."\n", 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-426655440000', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => 'The response parameters.'."\n", + 'description' => 'The response body.', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '4EC47282-1B74-4534-BD0E-403F3EE64CAF', - ], - 'OrderId' => [ - 'description' => 'The order ID.'."\n" - ."\n" - .'This parameter is returned when InstanceChargeType is set to PrePaid. If AutoPay is set to false, you must manually complete the payment in the [Order Center](https://usercenter2-intl.aliyun.com/order/list).'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '20190000', - ], - 'ResourceGroupId' => [ - 'description' => 'The ID of the resource group. This parameter is returned only when **InstanceChargeType** is set to **PostPaid**.'."\n", - 'type' => 'string', - 'example' => 'rg-resourcegroup****', - ], - 'EipAddress' => [ - 'description' => 'The IP address that is allocated to the EIP. This parameter is returned only when **InstanceChargeType** is set to **PostPaid**.'."\n", - 'type' => 'string', - 'example' => '192.0.XX.XX', - ], - 'AllocationId' => [ - 'description' => 'The EIP ID.'."\n", - 'type' => 'string', - 'example' => 'eip-25877c70gddh****', - ], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B45', 'title' => ''], ], + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'FrequentPurchase.EIP', - 'errorMessage' => 'eip frequent purchase', - ], - [ - 'errorCode' => 'COMMODITY_NO_EXIST', - 'errorMessage' => 'commodity is not exist', - ], - [ - 'errorCode' => 'QuotaExceeded.Eip', - 'errorMessage' => 'Elastic IP address quota exceeded', - ], - [ - 'errorCode' => 'InvalidParameter', - 'errorMessage' => 'Specified value of "InternetChargeType" is not valid', - ], - [ - 'errorCode' => 'InsufficientBalance', - 'errorMessage' => 'Your account does not have enough balance.', - ], - [ - 'errorCode' => 'ReserveIpFail', - 'errorMessage' => 'Reserve eip failed.', - ], - [ - 'errorCode' => 'InvalidRegion.NotSupport', - 'errorMessage' => 'The specified region does not support.', - ], - [ - 'errorCode' => 'InvalidBandwidth.Malformed', - 'errorMessage' => 'The specified Bandwidth is invalid.', - ], - [ - 'errorCode' => 'INSTANCE_TYPE_NOT_SUPPORT', - 'errorMessage' => 'The instance type is invalid.', - ], - [ - 'errorCode' => 'QueryParameter.Illegal', - 'errorMessage' => 'query parameter illegal', - ], - [ - 'errorCode' => 'SYSTEM.UNKNOWN.ERROR', - 'errorMessage' => 'The Account failed to create order.', - ], - [ - 'errorCode' => 'TokenVerfiy.Failed', - 'errorMessage' => 'token verify failed.', - ], - [ - 'errorCode' => 'OrderFailed', - 'errorMessage' => 'The Account failed to create order.', - ], - [ - 'errorCode' => 'QuotaExceeded.LargeSpecEip', - 'errorMessage' => 'Elastic IP address with large spec quota exceeded.', - ], - [ - 'errorCode' => 'InvalidResourceGroupId', - 'errorMessage' => 'The specified ResourceGroupId does not exist.', - ], - [ - 'errorCode' => 'Invalid.Reserve.Ip', - 'errorMessage' => 'The reserve ip is invalid.', - ], - [ - 'errorCode' => 'Ip.Allocated', - 'errorMessage' => 'The reserve ip has been allocated.', - ], - [ - 'errorCode' => 'Ip.Keeped', - 'errorMessage' => 'The reserve ip been keeped in an hour.', - ], - [ - 'errorCode' => 'OperationFailed.AllocateUnfamiliarIp', - 'errorMessage' => 'The operation failed because only IP addresses used within the last seven days can be allocated.', - ], - [ - 'errorCode' => 'INVALID_INSTANCE_STATUS', - 'errorMessage' => 'The instance status is invalid.', - ], - [ - 'errorCode' => 'OperationFailed.InstanceNotExist', - 'errorMessage' => 'Eip instanceId does not exist.', - ], - [ - 'errorCode' => 'InvalidStatus.ValueNotSupported', - 'errorMessage' => 'The specified status is not supported.', - ], - [ - 'errorCode' => 'OperationFailed.RiskControl', - 'errorMessage' => 'Risk control check failed.', - ], - [ - 'errorCode' => 'OrderError.EIP', - 'errorMessage' => 'The Account failed to create order.', - ], - [ - 'errorCode' => 'ResourceNotEnough.PublicIpAddressPool', - 'errorMessage' => 'The specified resource of PublicIpAddressPool is not enough.', - ], - [ - 'errorCode' => 'Mismatch.IpAndPublicIpAddressPool', - 'errorMessage' => 'The Ip and PublicIpAddressPool are mismatched.', - ], - [ - 'errorCode' => 'ResourceNotFound.PublicIpAddressPool', - 'errorMessage' => 'The specified resource of PublicIpAddressPool is not found.', - ], - [ - 'errorCode' => 'ResourceNotFound.Ip', - 'errorMessage' => 'The specified ip is not found.', - ], - [ - 'errorCode' => 'OperationDenied.IpBelongToOtherUser', - 'errorMessage' => 'The operation is not allowed because of ip belong to other user.', - ], - [ - 'errorCode' => 'IncorrectStatus.Ip', - 'errorMessage' => 'The status of ip is incorrect.', - ], - [ - 'errorCode' => 'OperationFailed.IpIsLocked', - 'errorMessage' => 'The operation is failed because of ip is locked.', - ], - [ - 'errorCode' => 'Mismatch.IpAndIsp', - 'errorMessage' => 'The specified IP address does not match the ISP.', - ], - [ - 'errorCode' => 'IncorrectStatus.PublicIpAddressPool', - 'errorMessage' => 'The status of PublicIpAddressPool is incorrect.', - ], - [ - 'errorCode' => 'IllegalParam.IpAddress', - 'errorMessage' => 'The specified IpAddress (%s) is illegal.', - ], - [ - 'errorCode' => 'OperationFailed.ResourceNotEnough', - 'errorMessage' => 'The resources you have applied for are insufficient.', - ], - [ - 'errorCode' => 'Mismatch.EipSecurityProtectionTypeAndPoolSecurityProtectionType', - 'errorMessage' => 'The EipSecurityProtectionType and PoolSecurityProtectionType are mismatched.', - ], - [ - 'errorCode' => 'IllegalParam.Isp', - 'errorMessage' => 'The param of Isp [%s] is illegal.', - ], - ], - 403 => [ - [ - 'errorCode' => 'Forbidden', - 'errorMessage' => 'User not authorized to operate on the specified resource.', - ], - ], - [ - [ - 'errorCode' => 'InvalidRegionId.NotFound', - 'errorMessage' => 'Specified value of "RegionId" is not supported.', - ], - [ - 'errorCode' => 'FUWU_BIZ_COMMODITY_VERIFY_FAIL', - 'errorMessage' => '????????, ????????PD.', - ], + ['errorCode' => 'DependencyViolation.IpPrefix', 'errorMessage' => 'DependencyViolation.IpPrefix', 'description' => 'The error message returned because a prefix list is assigned to the resource. Delete the prefix list and try again.'], + ['errorCode' => 'IncorrectStatus.CidrReservation', 'errorMessage' => 'The status of the CIDR reservation is incorrect.', 'description' => 'The status of the reserved CIDR block does not support this operation. Try again later.'], + ['errorCode' => 'ResourceNotFound.CidrReservation', 'errorMessage' => 'reserve segment not exist.', 'description' => 'The network segment does not exist.'], ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', - ], + 404 => [ + ['errorCode' => 'ResourceNotFound.CidrReservation', 'errorMessage' => 'ResourceNotFound.CidrReservation', 'description' => ''], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"4EC47282-1B74-4534-BD0E-403F3EE64CAF\\",\\n \\"OrderId\\": 20190000,\\n \\"ResourceGroupId\\": \\"rg-resourcegroup****\\",\\n \\"EipAddress\\": \\"192.0.XX.XX\\",\\n \\"AllocationId\\": \\"eip-25877c70gddh****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 4EC47282-1B74-4534-BD0E-403F3EE64CAF\\n 20190000\\n rg-resourcegroup****\\n 192.0.XX.XX\\n eip-25877c70gddh****\\n","errorExample":""}]', - 'title' => 'AllocateEipAddressPro', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', + 'staticInfo' => ['returnType' => 'asynchronous', 'callback' => 'Vpc::2016-04-28::ListVSwitchCidrReservations', 'callbackInterval' => 3, 'maxCallbackTimes' => 10], + 'title' => 'DeleteVSwitchCidrReservation', + 'description' => '- 在您调用该接口删除交换机预留网段前,请确保从该预留网段给弹性网卡ENI(Elastic Network Interface)分配的前缀网段均已删除。如有请先调用[UnassignPrivateIpAddresses](~~85919~~)或[UnassignIpv6Addresses](~~98611~~)接口释放弹性网卡的IPv4或者IPv6地址。'."\n" + .'- **DeleteVSwitchCidrReservation**接口属于异步接口,即系统会返回一个实例ID,但该交换机预留网段尚未删除成功,系统后台任务仍在进行中。您可以调用'."\n" + .'[ListVSwitchCidrReservations](~~610155~~)查询交换机预留网段的删除状态:'."\n" + .' - 当交换机预留网段处于**Releasing**状态时,表示交换机预留网段正在释放中。'."\n" + .' - 当交换机预留网段处于**Released**状态时,表示交换机预留网段已释放。', + 'changeSet' => [ + ['createdAt' => '2024-07-24T09:40:24.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2024-06-24T03:22:13.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-04-11T06:37:18.000Z', 'description' => 'Error codes changed'], + ], + 'ramActions' => [], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B45\\"\\n}","type":"json"}]', ], - 'ReleaseEipAddress' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DeleteVbrHa' => [ + 'summary' => 'Deletes a VBR failover group.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'readAndWrite', - 'systemTags' => [ - 'operationType' => 'update', - ], + 'deprecated' => false, + 'systemTags' => ['operationType' => 'delete', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ - 'name' => 'RegionId', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region to which the EIP belongs. You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'You can use the client to generate the token, but you must make sure that the token is unique among different requests. The ClientToken value can contain only ASCII characters.'."\n" + ."\n" + .'> If you do not specify this parameter, the system automatically uses the **RequestId** of the API request as the **ClientToken**. The **RequestId** of each API request is different.', 'type' => 'string', 'required' => false, 'example' => 'CBCE910E-D396-4944-8****', 'title' => ''], ], [ - 'name' => 'AllocationId', + 'name' => 'InstanceId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the EIP that you want to release.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'eip-2zeerraiwb7uj6i0d****', - ], + 'schema' => ['description' => 'The instance ID of the VBR failover group.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'vbrha-sa1******', 'title' => ''], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => ['description' => 'The region ID of the VBR.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => 'The response parameters.'."\n", 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '748C38F6-9A3D-482E-83FB-DB6C39C68AEA', - ], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '4EC47282-1B74-4534-BD0E-403F3EE64CAF', 'title' => ''], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'IncorrectEipStatus', - 'errorMessage' => 'Current elastic IP status does not support this operation.', - ], - [ - 'errorCode' => 'Forbidden.ChargeTypeIsPrepaid', - 'errorMessage' => 'It\'s forbidden to release a prepaid EIP', - ], - [ - 'errorCode' => 'TaskConflict.AssociateGlobalAccelerationInstance', - 'errorMessage' => 'Operate too frequent.', - ], - [ - 'errorCode' => 'InvalidOperation.DeletionProtection', - 'errorMessage' => 'The instance cannnot delete because of deletion protecion.', - ], - [ - 'errorCode' => 'Forbidden.ReleaseSegmentEip', - 'errorMessage' => 'Release single segment eip is forbidden.', - ], - [ - 'errorCode' => 'Forbidden', - 'errorMessage' => 'The eip instance owner error', - ], - [ - 'errorCode' => 'Mismatch.%sAnd%s', - 'errorMessage' => 'The %s and %s are mismatched.', - ], + ['errorCode' => 'IllegalParam.%s', 'errorMessage' => 'The param of %s is illegal.', 'description' => 'The parameter is invalid.'], ], 404 => [ - [ - 'errorCode' => 'InvalidAllocationId.NotFound', - 'errorMessage' => 'Specified allocation ID is not found.', - ], - [ - 'errorCode' => 'Forbidden.RegionNotFound', - 'errorMessage' => 'Specified region is not found during access authentication.', - ], - ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'The request processing has failed due to some unknown error.', - ], + ['errorCode' => 'ResourceNotFound.VbrHa', 'errorMessage' => 'The VBR HA resource is not found.', 'description' => ''], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"748C38F6-9A3D-482E-83FB-DB6C39C68AEA\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 748C38F6-9A3D-482E-83FB-DB6C39C68AEA\\n","errorExample":""}]', - 'title' => 'ReleaseEipAddress', - 'summary' => 'Releases an elastic IP address (EIP).', - 'description' => 'Before you call this operation, take note of the following items:'."\n" - ."\n" - .'* Before you release an EIP, make sure that the EIP meets the following requirements:'."\n" - ."\n" - .' * You can release only an EIP that is in the **Available** state.'."\n" - .' * You can release only a pay-as-you-go EIP. You cannot release a subscription EIP.'."\n" - ."\n" - .'* **ReleaseEipAddress** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call the [DescribeEipAddresses](~~120193~~) operation to query the status of the task:'."\n" - ."\n" - .' * If the EIP is in the **Releasing** state, the EIP is being released. In this state, you can only query the EIP and cannot perform other operations.'."\n" - .' * If you cannot query the EIP, the EIP is released.'."\n" - ."\n" - .'* You cannot repeatedly call the **ReleaseEipAddress** operation to release an EIP within the specified period of time.'."\n", + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'Delete a VBR failover group', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'ModifyEipAddressAttribute' => [ - 'summary' => 'Modifies the name, description, and maximum bandwidth of an elastic IP address (EIP).', - 'methods' => [ - 'post', - 'get', + 'changeSet' => [ + ['createdAt' => '2024-02-27T03:21:22.000Z', 'description' => 'Error codes changed'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DeleteVbrHa'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'vpc:DeleteVbrHa', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VirtualBorderRouter', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:virtualborderrouter/{#VbrId}'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"4EC47282-1B74-4534-BD0E-403F3EE64CAF\\"\\n}","type":"json"}]', + ], + 'DeleteVcoRouteEntry' => [ + 'summary' => 'Calls the DeleteVcoRouteEntry operation to delete a destination route entry from an IPsec connection.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -29051,4050 +22029,2163 @@ ], 'operationType' => 'readAndWrite', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'update', - ], + 'systemTags' => ['operationType' => 'delete', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ - 'name' => 'AllocationId', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the pay-as-you-go EIP.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'eip-2zeerraiwb7uj6i0d****', - ], + 'schema' => ['description' => 'The region ID of the IPsec connection.'."\n" + ."\n" + .'You can call [DescribeRegions](~~36063~~) to query region IDs.', 'type' => 'string', 'required' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'Bandwidth', + 'name' => 'VpnConnectionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The new maximum bandwidth of the EIP. Valid values:'."\n" - ."\n" - .'* **1** to **200** if the metering method is pay-by-data-transfer. Unit: Mbit/s.'."\n" - .'* **1** to **500** if the metering method is pay-by-bandwidth. Unit: Mbit/s.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '100', - ], + 'schema' => ['description' => 'The ID of the IPsec connection.', 'type' => 'string', 'required' => true, 'example' => 'vco-p0w5112fgnl2ihlmf****', 'title' => ''], ], [ - 'name' => 'RegionId', + 'name' => 'RouteDest', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the EIP.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The destination CIDR block of the destination route entry to be deleted.', 'type' => 'string', 'required' => true, 'example' => '192.168.10.0/24', 'title' => ''], ], [ - 'name' => 'Name', + 'name' => 'Weight', 'in' => 'query', - 'schema' => [ - 'description' => 'The new name of the EIP.'."\n" - ."\n" - .'The name must be 1 to 128 characters in length, and can contain digits, periods (.), underscores (\\_), and hyphens (-).'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'Test123', - ], + 'schema' => ['description' => 'The weight of the destination route entry to be deleted. Valid values:'."\n" + ."\n" + .'- **0**: low priority.'."\n" + .'- **100**: high priority.', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '100', 'title' => ''], ], [ - 'name' => 'Description', + 'name' => 'NextHop', 'in' => 'query', - 'schema' => [ - 'description' => 'The new description of the EIP.'."\n" - ."\n" - .'The description must be 2 to 256 characters in length and start with a letter. The description cannot start with `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'abc', - ], + 'schema' => ['description' => 'The next hop of the destination route entry to be deleted.', 'type' => 'string', 'required' => true, 'example' => 'vco-p0w5112fgnl2ihlmf****', 'title' => ''], + ], + [ + 'name' => 'OverlayMode', + 'in' => 'query', + 'schema' => ['description' => 'The tunneling protocol. Set the value to **Ipsec** (default), which specifies the IPsec tunneling protocol.', 'type' => 'string', 'required' => false, 'example' => 'Ipsec', 'title' => ''], + ], + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'You can use the client to generate the token, but you must make sure that the token is unique among different requests. The ClientToken value can contain only ASCII characters.'."\n" + ."\n" + .'> If you do not specify this parameter, the system automatically uses the **RequestId** value as the **ClientToken** value. The **RequestId** value is different for each API request.', 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-4266****', 'title' => ''], ], ], 'responses' => [ 200 => [ - 'headers' => [], 'schema' => [ - 'description' => 'The response parameters.'."\n", + 'title' => '', + 'description' => 'The response parameters.', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '0ED8D006-F706-4D23-88ED-E11ED28DCAC0', - ], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '9208DDD8-0930-3CE6-AF7F-732B4E67B3DD', 'title' => ''], ], + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'OrderError.EIP', - 'errorMessage' => 'The Account failed to create order.', - ], - [ - 'errorCode' => 'InsufficientBalance.Eip', - 'errorMessage' => 'Your account does not have enough balance.', - ], - [ - 'errorCode' => 'InvalidParameter', - 'errorMessage' => 'Specified value of "Bandwidth" is not supported.', - ], - [ - 'errorCode' => 'Forbidden.ChargeTypeIsPrepaid', - 'errorMessage' => 'It?s forbidden to change prepaid EIP?s bandwidth by API. It can be changed on Aliyun web console.', - ], - [ - 'errorCode' => 'IncorrectEipStatus', - 'errorMessage' => 'Current elastic IP status does not support this operation.', - ], - [ - 'errorCode' => 'InvalidBandwidth.OutOfMaxTrafficBindedOnNatgw', - 'errorMessage' => 'The bandwidth is out of max traffic binded on natgw.', - ], - [ - 'errorCode' => 'QuotaExceeded.LargeSpecEip', - 'errorMessage' => 'Elastic IP address with large spec quota exceeded.', - ], - [ - 'errorCode' => 'InvalidEipAddressName.Malformed', - 'errorMessage' => 'The specified Name is not valid.', - ], - [ - 'errorCode' => 'ResourceQueryError', - 'errorMessage' => 'The specified resource is queried error.', - ], - [ - 'errorCode' => 'InvalidDescription.Malformed', - 'errorMessage' => 'Invalid description.', - ], - [ - 'errorCode' => 'SYSTEM.UNKNOWN.ERROR', - 'errorMessage' => 'The Account failed to create order.', - ], - [ - 'errorCode' => 'Abs.InvalidBandwidth.Malformed', - 'errorMessage' => 'Specified value of Bandwidth is not supported.', - ], - [ - 'errorCode' => 'InvalidEIPStatus.BizDisabled', - 'errorMessage' => 'The EIP has been locked.', - ], - [ - 'errorCode' => 'OperationFailed.SaleValidate', - 'errorMessage' => 'Validate sale condition with subArticle failed.', - ], - [ - 'errorCode' => 'OperationFailed.SyncOrderToSub', - 'errorMessage' => 'SyncOrderToSub error.', - ], - [ - 'errorCode' => 'COMMODITY.INVALID_COMPONENT', - 'errorMessage' => 'The instance component is invalid.', - ], - [ - 'errorCode' => 'OperationFailed.CompleteUserInfo', - 'errorMessage' => 'Complete user info failed.', - ], - [ - 'errorCode' => 'OperationFailed.ConcurrentRequest', - 'errorMessage' => 'Operation failed because concurrent request.', - ], - [ - 'errorCode' => 'IncorrectStatus.ResourceStatus', - 'errorMessage' => 'Resource status is abnormal for renew.', - ], - [ - 'errorCode' => 'Forbidden.FinancialLocked', - 'errorMessage' => 'The ip business status is invalid.', - ], - [ - 'errorCode' => 'MissingParam.InstanceId', - 'errorMessage' => 'The parameter InstanceId is mandatory.', - ], + ['errorCode' => 'Resource.QuotaFull', 'errorMessage' => 'The quota of resource is full', 'description' => ''], + ['errorCode' => 'VpnConnection.Configuring', 'errorMessage' => 'The specified service is configuring.', 'description' => 'The service is being configured. Try again later.'], + ['errorCode' => 'VpnConnection.FinancialLocked', 'errorMessage' => 'The specified service is financial locked.', 'description' => 'The error message returned because the service is locked due to overdue payments.'], + ['errorCode' => 'VpnRouteEntry.AlreadyExists', 'errorMessage' => 'The specified route entry is already exist.', 'description' => 'The route already exists.'], + ['errorCode' => 'VpnRouteEntry.Conflict', 'errorMessage' => 'The specified route entry has conflict.', 'description' => 'Route conflicts exist.'], + ['errorCode' => 'InvalidRouteEntry.NotFound', 'errorMessage' => 'The specified route entry does not exist.', 'description' => 'The error message returned because the specified route does not exist.'], + ['errorCode' => 'TaskConflict', 'errorMessage' => 'The operation is too frequent, please wait a moment and try again.', 'description' => 'Your requests are too frequent. Try again later.'], ], - 404 => [ - [ - 'errorCode' => 'InvalidAllocationId.NotFound', - 'errorMessage' => 'Specified allocation id is not found.', - ], - [ - 'errorCode' => 'Forbidden.InCommonBandwidthPackage', - 'errorMessage' => 'Specified allocation ID in common bandwidth package.', - ], - [ - 'errorCode' => 'Forbidden.RegionNotFound', - 'errorMessage' => 'Specified region is not found during access authentication.', - ], + 403 => [ + ['errorCode' => 'Forbbiden.SubUser', 'errorMessage' => 'User not authorized to operate on the specified resource as your account is created by another user.', 'description' => ''], + ['errorCode' => 'Forbidden', 'errorMessage' => 'User not authorized to operate on the specified resource.', 'description' => 'You do not have the permissions to manage the specified resource. Apply for the permissions and try again.'], ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'The request processing has failed due to some unknown error.', - ], - [ - 'errorCode' => 'OrderError.EIP', - 'errorMessage' => 'The Account failed to create order.', - ], + [ + ['errorCode' => 'InvalidVpnConnectionInstanceId.NotFound', 'errorMessage' => 'The specified vpn connection instance id does not exist.', 'description' => 'The specified vpn connection instance id does not exist.'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"0ED8D006-F706-4D23-88ED-E11ED28DCAC0\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 0ED8D006-F706-4D23-88ED-E11ED28DCAC0\\n","errorExample":""}]', - 'title' => 'ModifyEipAddressAttribute', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'DescribeEipAddresses' => [ - 'summary' => 'Queries elastic IP addresses (EIPs) created in a region.', - 'methods' => [ - 'post', - 'get', + 'staticInfo' => ['returnType' => 'asynchronous', 'callback' => 'Vpc::2016-04-28::DescribeVpnConnection', 'callbackInterval' => 1000, 'maxCallbackTimes' => 30], + 'title' => 'Delete a destination route entry from an IPsec connection', + 'description' => '- The **DeleteVcoRouteEntry** operation is asynchronous. After you send a request, the system returns a request ID, but the destination route entry is not immediately deleted. The deletion task runs in the background. You can call [DescribeVpnConnection](~~53046~~) to query the deletion status of the destination route entry:'."\n" + .' - If the IPsec connection is in the **updating** state, the destination route entry is being deleted.'."\n" + .' - If the IPsec connection is in the **attached** state, the destination route entry is deleted.'."\n" + .'- The **DeleteVcoRouteEntry** operation does not support concurrent deletion of destination route entries from the same IPsec connection.', + 'changeSet' => [ + ['createdAt' => '2022-12-13T03:56:52.000Z', 'description' => 'Error codes changed'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '60', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DeleteVcoRouteEntry'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'vpc:DeleteVcoRouteEntry', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VpnConnections', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vpnconnection/{#VpnConnectionId}'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"9208DDD8-0930-3CE6-AF7F-732B4E67B3DD\\"\\n}","type":"json"}]', + ], + 'DeleteVirtualBorderRouter' => [ + 'summary' => 'Deletes a virtual border router (VBR).', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', - 'systemTags' => [ - 'operationType' => 'list', - 'riskType' => 'none', - 'chargeType' => 'free', - ], + 'deprecated' => false, + 'systemTags' => ['operationType' => 'delete'], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the EIP.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the region ID.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The region ID of the VBR. You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-shanghai', 'title' => ''], ], [ - 'name' => 'IncludeReservationData', + 'name' => 'VbrId', 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to return information about pending orders. Valid values:'."\n" - ."\n" - .'* **false** (default)'."\n" - .'* **true**'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['description' => 'The ID of the VBR.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'vbr-bp12mw1f8k3jgygk9****', 'title' => ''], ], [ - 'name' => 'Status', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The state of the EIP. Valid values:'."\n" - ."\n" - .'* **Associating**'."\n" - .'* **Unassociating**'."\n" - .'* **InUse**'."\n" - .'* **Available**'."\n" - .'* **Releasing**'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'Available', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'You can use the client to generate the value, but you must make sure that it is unique among different requests. The token can contain only ASCII characters and cannot exceed 64 characters in length.'."\n", 'type' => 'string', 'required' => false, 'example' => '02fb3da4-130e-11e9-8e44-0016e04115b', 'title' => ''], ], - [ - 'name' => 'EipAddress', - 'in' => 'query', + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => 'The EIP that you want to query.'."\n" - ."\n" - .'You can specify up to 50 EIPs. Separate multiple EIPs with commas (,).'."\n" - ."\n" - .'> If both **EipAddress** and **AllocationId** are specified, you can specify up to 50 EIPs for **EipAddress**, and specify up to 50 EIP IDs for **AllocationId**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '47.75.XX.XX', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '0ED8D006-F706-4D23-88ED-E11ED28DCAC0', 'title' => ''], + ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InvalidOperation.RouterInterfaceNotDeleted', 'errorMessage' => 'The specified VirutalBorderRouter still has routerInterface.', 'description' => ''], + ['errorCode' => 'InvalidOperation.OperationNotAllowedInState', 'errorMessage' => 'The specified VirutalBorderRouter is in invalid state.', 'description' => ''], + ['errorCode' => 'InvalidStatus.NotAllowed', 'errorMessage' => 'The virtual border has been associated by physicalConnection.', 'description' => ''], + ['errorCode' => 'DependencyViolation.RouterInterfaceReferedByRouteEntry', 'errorMessage' => 'The specified VirutalBorderRouter is refered by routeEntry.', 'description' => 'The VBR is already used.'], + ['errorCode' => 'DependencyViolation.BgpGroup', 'errorMessage' => 'bgp group exists, cannot delete vbr.', 'description' => 'The VBR is associated with a BGP group and cannot be deleted.'], + ['errorCode' => 'DependencyViolation.Nqa', 'errorMessage' => 'nqa exists, cannot delete vbr.', 'description' => 'You cannot delete the VBR because nqa exists.'], + ['errorCode' => 'DependencyViolation.BgpNetwork', 'errorMessage' => 'bgp network exists, cannot delete vbr.', 'description' => 'You cannot delete the VBR because the VBR has advertised BGP CIDR blocks.'], + ['errorCode' => 'OperationUnsupported.VBRAttachedCen', 'errorMessage' => 'Operation failed because the VBR is attached to CEN.', 'description' => ''], + ['errorCode' => 'InvalidStatus.vbrAttatchToEcr', 'errorMessage' => 'Invalid virtual border router ecr status.', 'description' => 'VBR and ECR are bound, please unbind first'], + ], + 403 => [ + ['errorCode' => 'Forbidden.OperationDeleteNotAllowedByUser', 'errorMessage' => 'The caller is not allowed to delete the specified VirtualBorderRouter.', 'description' => 'The caller is not allowed to delete the specified VirtualBorderRouter.'], + ['errorCode' => 'Forbidden.MultiVlanRi', 'errorMessage' => 'Multiple vlan router interfaces are found.', 'description' => ''], + ['errorCode' => 'Forbidden.NoRiFound', 'errorMessage' => 'No vlan router interfaces are found.', 'description' => ''], + ], [ - 'name' => 'AllocationId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the EIP that you want to query.'."\n" - ."\n" - .'You can specify up to 50 EIP IDs. Separate multiple IDs with commas (,).'."\n" - ."\n" - .'> If both **EipAddress** and **AllocationId** are specified, you can specify up to 50 EIP IDs for **AllocationId**, and specify up to 50 EIPs for **EipAddress**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'eip-2zeerraiwb7ujxscd****', - ], + ['errorCode' => 'InvalidRegionId.NotFound', 'errorMessage' => 'The RegionId provided does not exist in our records.', 'description' => ''], + ['errorCode' => 'InvalidVbrId.NotFound', 'errorMessage' => 'The specified VirutalBorderRouter does not exist in our records.', 'description' => ''], ], + ], + 'title' => 'DeleteVirtualBorderRouter', + 'description' => 'Before you call this operation, take note of the following limits:'."\n" + ."\n" + .'* Before you delete a VBR, you must delete all router interfaces of the VBR.'."\n" + .'* You can delete only a VBR in the **unconfirmed**, **active**, or **terminated** state.'."\n" + .'* The owner of an Express Connect circuit can delete a VBR that belongs to another account only if the VBR is in the **unconfirmed** state.'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2024-05-08T02:53:52.000Z', 'description' => 'Error codes changed'], + ], + 'ramActions' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"0ED8D006-F706-4D23-88ED-E11ED28DCAC0\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 0ED8D006-F706-4D23-88ED-E11ED28DCAC0\\n","errorExample":"\\n\\n 0ED8D006-F706-4D23-88ED-E11ED28DCAC0\\n"}]', + ], + 'DeleteVpc' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'SegmentInstanceId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the contiguous EIP group.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'eipsg-t4nr90yik5oy38xdy****', - ], + 'AK' => [], ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'delete', 'riskType' => 'none', 'chargeType' => 'free', 'tenantRelevance' => 'publicInformation'], + 'parameters' => [ [ - 'name' => 'ResourceGroupId', + 'name' => 'VpcId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the resource group to which the EIP belongs.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'rg-acfmxazb4pcdvf****', - ], + 'schema' => ['description' => 'The ID of the VPC to be deleted.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'vpc-bp1m7v25emi1h5mtc****', 'title' => ''], ], [ - 'name' => 'PageNumber', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The page number. Default value: **1**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'minimum' => '1', - 'example' => '10', - 'default' => '1', - ], + 'schema' => ['description' => 'The region ID of the VPC to be deleted.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query region IDs.', 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'PageSize', + 'name' => 'ForceDelete', 'in' => 'query', - 'schema' => [ - 'description' => 'The number of entries per page. Valid values: 1 to **100**. Default value: **10**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '100', - 'minimum' => '1', - 'example' => '10', - 'default' => '10', - ], + 'schema' => ['description' => 'Specifies whether to forcefully delete the VPC. Valid values:'."\n" + ."\n" + .'- **true**: forcefully deletes the VPC.'."\n" + .'- **false** (default): does not forcefully delete the VPC.'."\n" + ."\n" + .'The VPC can be forcefully deleted only when the following resources exist in the VPC:'."\n" + .'- The VPC contains only an IPv4 gateway and routes pointing to the IPv4 gateway.'."\n" + .'- The VPC contains only an IPv6 gateway and routes pointing to the IPv6 gateway.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], ], [ - 'name' => 'ISP', + 'name' => 'DryRun', 'in' => 'query', - 'schema' => [ - 'description' => 'The line type. Valid values:'."\n" - ."\n" - .'* **BGP** (default): Border Gateway Protocol (BGP) (Multi-ISP) lines. All regions support BGP (Multi-ISP) EIPs.'."\n" - .'* **BGP_PRO**: BGP (Multi-ISP) Pro lines. Only the following regions support BGP (Multi-ISP) Pro lines: China (Hong Kong), Singapore, Japan (Tokyo), Malaysia (Kuala Lumpur), Philippines (Manila), Indonesia (Jakarta), and Thailand (Bangkok).'."\n" - ."\n" - .'For more information about BGP (Multi-ISP) and BGP (Multi-ISP) Pro, see the [Line types](~~32321~~) section of the "What is EIP?" topic.'."\n" - ."\n" - .'If you are allowed to use single-ISP bandwidth, you can also use one of the following values:'."\n" - ."\n" - .'* **ChinaTelecom**'."\n" - .'* **ChinaUnicom**'."\n" - .'* **ChinaMobile**'."\n" - .'* **ChinaTelecom_L2**'."\n" - .'* **ChinaUnicom_L2**'."\n" - .'* **ChinaMobile_L2**'."\n" - ."\n" - .'If your services are deployed in China East 1 Finance, this parameter is required and you must set the value to **BGP_FinanceCloud**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'BGP', - ], + 'schema' => ['description' => 'Specifies whether to perform a dry run. Valid values:'."\n" + .'- **true**: performs a dry run without actually deleting the VPC. The system checks whether the required parameters are set, the request format is valid, and business restrictions are met. If the check fails, the corresponding error is returned. If the check succeeds, the error code `DryRunOperation` is returned.'."\n" + .'- **false** (default): performs a dry run and sends the request. If the check succeeds, an HTTP 2xx status code is returned, and the VPC is directly deleted.', 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], ], [ - 'name' => 'Filter.1.Key', + 'name' => 'ClientToken', 'in' => 'query', + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'You can use the client to generate the token, but you must make sure that the token is unique among different requests. The ClientToken value can contain only ASCII characters.'."\n" + ."\n" + .'> If you do not specify this parameter, the system uses the **RequestId** of the API request as the **ClientToken**. The **RequestId** may be different for each API request.', 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-426655440000', 'title' => ''], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => 'The filter key used to query resources. Set the value to **CreationStartTime**, which specifies the time when the system started to create the resource.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'CreationStartTime', + 'description' => 'The request ID.', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '0ED8D006-F706-4D23-88ED-E11ED28DCAC0', 'title' => ''], + ], + 'title' => '', + 'example' => '', ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'IncorrectStatus.VpcDhcpStatus', 'errorMessage' => 'The DhcpOptionsSet status of vpc does not support this operation.', 'description' => 'You cannot delete the VPC when the DHCP options set of the VPC is in the current state.'], + ['errorCode' => 'DependencyViolation.GatewayEndpoint', 'errorMessage' => 'The VPC contains endpoints and cannot be deleted.', 'description' => 'The VPC contains endpoints and cannot be deleted. Delete the endpoints in the VPC and then delete the VPC.'], + ['errorCode' => 'IncorrectVpcStatus', 'errorMessage' => 'Current VPC status does not support this operation.', 'description' => ''], + ['errorCode' => 'DependencyViolation.RouteEntry', 'errorMessage' => 'Specified object has dependent resources', 'description' => 'The VPC cannot be deleted because custom routes exist in the VPC.'], + ['errorCode' => 'DependencyViolation.Instance', 'errorMessage' => 'Specified object has dependent resources', 'description' => ''], + ['errorCode' => 'DependencyViolation.VSwitch', 'errorMessage' => 'Specified object has dependent resources', 'description' => 'vSwitches exist in the VPC and the VPC cannot be deleted. Delete the vSwitches and try again.'], + ['errorCode' => 'DependencyViolation.RouteInterface', 'errorMessage' => 'Specified object has dependent route interface .', 'description' => ''], + ['errorCode' => 'DependencyViolation.Tunnel', 'errorMessage' => 'Specified object has dependent tunnel.', 'description' => ''], + ['errorCode' => 'DependencyViolation.NatGateway', 'errorMessage' => 'Specified object has dependent resources NatGateway.', 'description' => 'NAT gateways exist in the VPC and the VPC cannot be deleted. Delete the NAT gateways and try again.'], + ['errorCode' => 'DependencyViolation.RouterInterface', 'errorMessage' => 'Specified object has dependent resources RouterInterface.', 'description' => ''], + ['errorCode' => 'DependencyViolation.SecurityGroup', 'errorMessage' => 'Specified object has dependent resources SecurityGroup.', 'description' => 'Security groups exist in the VPC and the VPC cannot be deleted. Delete the security groups and try again.'], + ['errorCode' => 'Forbidden.VpcNotFound', 'errorMessage' => 'Specified VPC can not found.', 'description' => 'The specified VPC does not exist.'], + ['errorCode' => 'Forbbiden', 'errorMessage' => 'Active custom route in vpc.', 'description' => ''], + ['errorCode' => 'TaskConflict', 'errorMessage' => 'The eip operate too frequent, TaskConflict.', 'description' => 'Operations are too frequent and tasks conflict with each other.'], + ['errorCode' => 'InvalidAction', 'errorMessage' => 'The VPC has been connected to the classic network ECS. Please cancel the connection before proceeding.', 'description' => ''], + ['errorCode' => 'IncorrectStatus.cbnStatus', 'errorMessage' => 'Current CBN status does not support this operation.', 'description' => 'The status of the CEN instance is invalid.'], + ['errorCode' => 'DependencyViolation.RouteTable', 'errorMessage' => 'Specified object has dependent custom routeTable.', 'description' => ''], + ['errorCode' => 'DependencyViolation.NetworkAcl', 'errorMessage' => 'Specified object has dependent resources network acl.', 'description' => 'The specified object is associated with a network ACL.'], + ['errorCode' => 'DependencyViolation.ClassicLinkInstance', 'errorMessage' => 'Specified object has active classicLink instance.', 'description' => ''], + ['errorCode' => 'System.ServiceBusy', 'errorMessage' => 'System is busy, please try later.', 'description' => ''], + ['errorCode' => 'DependencyViolation.DhcpOptionsSet', 'errorMessage' => 'The VPC cannot be deleted when it is associated with dhcpOptionsSet.', 'description' => 'The VPC cannot be deleted when it is associated with dhcpOptionsSet.'], + ['errorCode' => 'InvalidRegionId.NotFound', 'errorMessage' => 'The specified region is not found.', 'description' => 'The specified region does not exist.'], + ['errorCode' => 'DependencyViolation.CustomRouteTable', 'errorMessage' => 'CustomRouteTable already exists.', 'description' => ''], + ['errorCode' => 'DependencyViolation.Ipv4Gateway', 'errorMessage' => 'The VPC cannot be deleted when it has ipv4Gateway.', 'description' => 'The VPC cannot be deleted because an IPv4 gateway exists in the VPC.'], + ['errorCode' => 'DependencyViolation.GatewayRouteTable', 'errorMessage' => 'Specified object has dependent resources gatewayRouteTable.', 'description' => ''], + ['errorCode' => 'OperationDenied.VpcPeerExists', 'errorMessage' => 'The operation is not allowed because the VpcPeer exists.', 'description' => 'The VPC has a VPC peering connection.'], + ['errorCode' => 'DependencyViolation.AppAccess', 'errorMessage' => 'Specified object has dependent resources app access.', 'description' => 'The VPC has a reverse access and cannot be deleted.'], + ['errorCode' => 'DependencyViolation.OppositeRouterInterface', 'errorMessage' => 'Failed to delete the VPC because it has peer router interfaces.', 'description' => 'The VPC failed to be deleted because a peer router interface exists in the VPC.'], + ['errorCode' => 'DependencyViolation.TransitRouter', 'errorMessage' => 'Specified object has attached to Transit Router.', 'description' => 'The specified resource is dependent on other resources and the current operation is not allowed.'], + ['errorCode' => 'DependencyViolation.Ipv6Gateway', 'errorMessage' => 'The VPC contains IPv6Gateway and cannot be deleted.', 'description' => ''], + ['errorCode' => 'DependencyViolation.CloudServiceResource', 'errorMessage' => 'The VPC contains CloudServiceResource and cannot be deleted.', 'description' => ''], + ['errorCode' => 'IncorrectStatus.VpcDnsHostnameStatus', 'errorMessage' => 'The DnsHostname status of vpc does not support this operation.', 'description' => 'The private domain name status of the current VPC does not support this operation.'], + ['errorCode' => 'OperationDenied.AttachedToECR', 'errorMessage' => 'The operation is not allowed because the VPC is attached to ECR %s.', 'description' => 'The operation is not allowed because the VPC is attached to ECR %s.'], + ], + 403 => [ + ['errorCode' => 'OperationDenied', 'errorMessage' => 'The operation is not supported in this status.', 'description' => ''], + ], [ - 'name' => 'Filter.2.Key', - 'in' => 'query', - 'schema' => [ - 'description' => 'The filter key used to query resources. Set the value to **CreationEndTime**, which specifies the time when the system finished creating the resource.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'CreationEndTime', - ], + ['errorCode' => 'InvalidVpcId.NotFound', 'errorMessage' => 'Specified VPC does not exist.', 'description' => ''], + ], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error.', 'description' => ''], + ], + ], + 'title' => 'Delete a VPC', + 'summary' => 'Calls the DeleteVpc operation to delete a Virtual Private Cloud (VPC).', + 'description' => 'When calling this operation to delete a VPC, note the following:'."\n" + ."\n" + .'- Before deleting a VPC, you must release or migrate all resources in the VPC, including vSwitches, cloud product instances, and high-availability virtual IP addresses (HAVIPs).'."\n" + .' '."\n" + .'- Only VPCs in the **Available** state can be deleted.'."\n" + ."\n" + .'- The **DeleteVpc** operation is asynchronous. After a request is sent, a request ID is returned, but the VPC is not immediately deleted. The deletion task continues in the background. You can call the [DescribeVpcAttribute](~~94565~~) operation to query the deletion status of the VPC:'."\n" + .' - When the VPC is in the **Deleting** state, the VPC is being deleted.'."\n" + .' - When the specified VPC cannot be found, the VPC is deleted.'."\n" + .'- The **DeleteVpc** operation does not support concurrent deletion of the same VPC.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2025-02-25T05:58:14.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-10-28T06:54:02.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-09-29T10:47:23.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-07-24T09:40:23.000Z', 'description' => 'Request parameters changed, Response parameters changed'], + ['createdAt' => '2024-01-24T02:44:03.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-09-25T07:38:52.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-06-16T01:50:49.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-03-07T09:48:07.000Z', 'description' => 'Request parameters changed, Response parameters changed'], + ['createdAt' => '2022-01-21T04:19:22.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2022-01-21T04:19:22.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2022-01-21T04:19:22.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2021-08-06T06:43:53.000Z', 'description' => 'Error codes changed'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DeleteVpc'], ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], + ], + 'ramActions' => [ [ - 'name' => 'Filter.1.Value', - 'in' => 'query', - 'schema' => [ - 'description' => 'The filter value used to query resources. Specify the time in the ISO 8601 standard in the `YYYY-MM-DDThh:mmZ` format. The time must be in Coordinated Universal Time (UTC).'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '2023-01-01T01:00Z', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'vpc:DeleteVpc', + 'authLevel' => 'resource', + 'actionConditions' => [ + ['conditionKey' => 'vpc:tag', 'validationType' => 'always'], + ], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VPC', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vpc/{#VpcId}'], + ], ], ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"0ED8D006-F706-4D23-88ED-E11ED28DCAC0\\"\\n}","type":"json"}]', + ], + 'DeleteVpcGatewayEndpoint' => [ + 'summary' => 'Deletes a gateway endpoint.', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'Filter.2.Value', - 'in' => 'query', - 'schema' => [ - 'description' => 'The filter value used to query resources. Specify the time in the ISO 8601 standard in the `YYYY-MM-DDThh:mmZ` format. The time must be in UTC.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '2023-01-06T02:00Z', - ], + 'AK' => [], ], + ], + 'operationType' => 'readAndWrite', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'delete'], + 'parameters' => [ [ - 'name' => 'LockReason', + 'name' => 'EndpointId', 'in' => 'query', - 'schema' => [ - 'description' => 'The reason why the EIP is locked. Valid values:'."\n" - ."\n" - .'* **financial**: The EIP is locked due to overdue payments.'."\n" - .'* **security**: The EIP is locked for security reasons.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'financial', - ], + 'schema' => ['title' => '', 'description' => 'The endpoint instance ID of the gateway endpoint.', 'type' => 'string', 'required' => true, 'example' => 'vpce-bp1w1dmdqjpwul0v3****'], ], [ - 'name' => 'AssociatedInstanceType', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The type of the cloud resource with which you want to associate the EIP. Valid values:'."\n" - ."\n" - .'* **EcsInstance** (default): an Elastic Compute Service (ECS) instance in a virtual private cloud (VPC).'."\n" - .'* **SlbInstance**: a CLB instance in a VPC.'."\n" - .'* **Nat**: a NAT gateway.'."\n" - .'* **HaVip**: an HAVIP.'."\n" - .'* **NetworkInterface**: a secondary ENI.'."\n" - .'* **IpAddress**: an IP address.'."\n" - ."\n" - .'> Each ECS instance, CLB instance, HAVIP, and IP address can be associated with only one EIP. A NAT gateway can be associated with multiple EIPs. The number of EIPs that you can associate with a secondary ENI depends on the association mode. For more information, see [Associate EIPs with and disassociate EIPs from cloud resources](~~72125~~).'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'EcsInstance', - ], + 'schema' => ['title' => '', 'description' => 'The client token that is used to ensure the idempotence of the request. You can use the client to generate the token, but you must make sure that the token is unique among different requests. **ClientToken** can contain only ASCII characters and cannot exceed 64 characters in length.'."\n" + ."\n" + .'> If you do not specify this parameter, the system automatically uses the **RequestId** of the API request as the **ClientToken**. The **RequestId** may be different for each API request.', 'type' => 'string', 'required' => false, 'example' => '0c593ea1-3bea-11e9-b96b-88e9fe637760'], ], [ - 'name' => 'AssociatedInstanceId', + 'name' => 'DryRun', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the instance associated with the EIP.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'i-2zebb08phyccdvf****', - ], + 'schema' => ['title' => '', 'description' => 'Specifies whether to perform a dry run. Valid values:'."\n" + ."\n" + .'- **true**: performs a dry run without deleting the gateway endpoint. The system checks the AccessKey pair, the authorization of the Resource Access Management (RAM) user, and the required parameters. If the check fails, the corresponding error is returned. If the check succeeds, the `DryRunOperation` error code is returned.'."\n" + ."\n" + .'- **false** (default): sends a Normal request, and the gateway endpoint is deleted after the check succeeds. A 2xx HTTP status code is returned.', 'type' => 'boolean', 'required' => false, 'example' => 'false'], ], [ - 'name' => 'ChargeType', + 'name' => 'RegionId', 'in' => 'query', + 'schema' => ['title' => '', 'description' => 'The region ID of the gateway endpoint.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.', 'type' => 'string', 'required' => true, 'example' => 'cn-hangzhou'], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => 'The billing method of the EIP. Valid values:'."\n" - ."\n" - .'* **PostPaid**: pay-as-you-go.'."\n" - .'* **PrePaid**: subscription.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'PostPaid', + 'title' => '', + 'description' => 'Schema of Response', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['title' => '', 'description' => 'The request ID.', 'type' => 'string', 'example' => 'A1122D0F-7B3B-5445-BB19-17F27F97FE1C'], + ], + 'example' => '', ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'OperationFailed.ConcurrentOperation', 'errorMessage' => 'The operation is failed because of concurrent operation.', 'description' => ''], + ['errorCode' => 'IdempotentParameterMismatch', 'errorMessage' => 'The request uses the same client token as a previous, but non-identical request. Do not reuse a client token with different requests, unless the requests are identical.', 'description' => ''], + ['errorCode' => 'ResourceNotFound.GatewayEndpoint', 'errorMessage' => 'The specified resource gateway endpoint is not found.', 'description' => 'The error message returned because the specified gateway endpoint does not exist.'], + ['errorCode' => 'IncorrectStatus.GatewayEndpoint', 'errorMessage' => 'The status of GatewayEndpoint [%s] is incorrect.', 'description' => ''], + ['errorCode' => 'DependencyViolation.Association', 'errorMessage' => 'The specified resource of [%s] depends on [%s], so the operation cannot be completed.', 'description' => 'The resource of the operation has dependencies. Please disassociate them first.'], + ['errorCode' => 'Forbbiden', 'errorMessage' => 'User not authorized to operate on the specified resource.', 'description' => ''], + ['errorCode' => 'InvalidRegionId.NotFound', 'errorMessage' => 'The regionId provided does not exist in our records.', 'description' => 'The RegionId parameter is set to an invalid value. Specify a valid value and try again.'], + ], + ], + 'staticInfo' => ['returnType' => 'asynchronous', 'callback' => 'Vpc::2016-04-28::ListVpcGatewayEndpoints', 'callbackInterval' => 3000, 'maxCallbackTimes' => 10], + 'title' => 'Delete a gateway endpoint', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '600', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DeleteVpcGatewayEndpoint'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], + ], + 'ramActions' => [ [ - 'name' => 'DryRun', - 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values:'."\n" - ."\n" - .'* **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.'."\n" - .'* **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.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'vpc:DeleteVpcGatewayEndpoint', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'GatewayEndpoint', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:gatewayendpoint/{#GatewayEndpointId}'], + ], ], ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"A1122D0F-7B3B-5445-BB19-17F27F97FE1C\\"\\n}","type":"json"}]', + ], + 'DeleteVpcPrefixList' => [ + 'summary' => 'Deletes a prefix list.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'EipName', - 'in' => 'query', - 'schema' => [ - 'description' => 'The name of the EIP.'."\n" - ."\n" - .'The name must be 1 to 128 characters in length, and can contain letters, digits, underscores (\\_), and hyphens (-). The name must start with a letter.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'EIP-01', - ], + 'AK' => [], ], + ], + 'operationType' => 'readAndWrite', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'delete', 'riskType' => 'none', 'chargeType' => 'free'], + 'parameters' => [ [ - 'name' => 'Tag', + 'name' => 'PrefixListId', 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => 'The tags used to filter EIPs.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The tags.'."\n", - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => 'The key of the tag. You can specify up to 20 tag keys. The tag key cannot be an empty string.'."\n" - ."\n" - .'The tag key can be up to 128 characters in length and cannot contain `http://` or `https://`. The tag key cannot start with `acs:` or `aliyun`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'FinanceDept', - ], - 'Value' => [ - 'description' => 'The value of the tag. You can specify up to 20 tag values. The tag value can be an empty string.'."\n" - ."\n" - .'The tag value can be up to 128 characters in length and cannot contain `http://` or `https://`. The tag value cannot start with `acs:` or `aliyun`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'FinanceJoshua', - ], - ], - 'required' => false, - ], - 'required' => false, - 'maxItems' => 20, - ], + 'schema' => ['description' => 'The ID of the prefix list that you want to delete.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'pl-0b78hw45f****', 'title' => ''], ], [ - 'name' => 'SecurityProtectionEnabled', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'title' => '是否开启安全防护', - 'description' => 'Specifies whether to activate Anti-DDoS Pro/Premium. Valid values:'."\n" - ."\n" - .'* **false**'."\n" - .'* **true**'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'You can use the client to generate the value, but you must make sure that it is unique among different requests. The client token can contain only ASCII characters.'."\n" + ."\n" + .'> If you do not set this parameter, the system uses **RequestId** as **ClientToken**. **RequestId** may be different for each API request.'."\n", 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-426655440000', 'title' => ''], ], [ - 'name' => 'PublicIpAddressPoolId', + 'name' => 'DryRun', 'in' => 'query', - 'schema' => [ - 'description' => 'The IP address pool to which the EIP that you want to query belongs.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'pippool-2vc0kxcedhquybdsz****', - ], + 'schema' => ['description' => 'Specifies whether to check the request without performing the operation. Valid values:'."\n" + ."\n" + .'* **true**: checks the request without performing the operation. The system checks the required parameters, request syntax, and limits. If the request fails to pass the check, an error message is returned. If the request passes the check, the `DryRunOperation` error code is returned.'."\n" + .'* **false** (default): sends the request. If the request passes the check, a 2xx HTTP status code is returned and the operation is performed.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], ], [ - 'name' => 'ServiceManaged', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'Indicates whether the instance is managed. Valid values:'."\n" - ."\n" - .'* **true**: yes'."\n" - .'* **false**: no.'."\n" - ."\n" - .'If you do not specify this parameter, all instances are queried.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['description' => 'The region ID of the prefix list.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => 'The response parameters.'."\n", 'type' => 'object', 'properties' => [ - 'PageSize' => [ - 'description' => 'The number of entries per page.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '4EC47282-1B74-4534-BD0E-403F3EE64CAF', - ], - 'PageNumber' => [ - 'description' => 'The page number.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'TotalCount' => [ - 'description' => 'The total number of entries returned.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'EipAddresses' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'EipAddress' => [ - 'description' => 'Details of the EIPs.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The details of the EIP.'."\n", - 'type' => 'object', - 'properties' => [ - 'ReservationActiveTime' => [ - 'description' => 'The time when the renewal took effect. The time follows the ISO 8601 standard in the `YYYY-MM-DDThh:mm:ssZ` format.'."\n", - 'type' => 'string', - 'example' => '2021-05-23T16:00:00Z', - ], - 'Status' => [ - 'description' => 'The status of the EIP. Valid values:'."\n" - ."\n" - .'* **Associating**'."\n" - .'* **Unassociating**'."\n" - .'* **InUse**'."\n" - .'* **Available**'."\n" - .'* **Releasing**'."\n", - 'type' => 'string', - 'example' => 'Available', - ], - 'ReservationOrderType' => [ - 'description' => 'The type of the renewal order. Valid values:'."\n" - ."\n" - .'* **RENEWCHANGE**: renewal with an upgrade or a downgrade.'."\n" - .'* **TEMP_UPGRADE**: temporary upgrade.'."\n" - .'* **UPGRADE**: upgrade.'."\n", - 'type' => 'string', - 'example' => 'RENEWCHANGE', - ], - 'AllocationTime' => [ - 'description' => 'The time when the EIP was created. The time follows the ISO 8601 standard in the `YYYY-MM-DDThh:mm:ssZ` format.'."\n", - 'type' => 'string', - 'example' => '2021-04-23T01:37:38Z', - ], - 'Netmode' => [ - 'description' => 'The network type. Only **public** may be returned.'."\n", - 'type' => 'string', - 'example' => 'public', - ], - 'ChargeType' => [ - 'description' => 'The billing method of the EIP. Valid values:'."\n" - ."\n" - .'* **PostPaid**: pay-as-you-go.'."\n" - .'* **PrePaid**: subscription.'."\n", - 'type' => 'string', - 'example' => 'PostPaid', - ], - 'Description' => [ - 'description' => 'The description of the EIP.'."\n", - 'type' => 'string', - 'example' => 'abc', - ], - 'Mode' => [ - 'description' => 'The association mode. Valid values:'."\n" - .'- **NAT**: NAT mode'."\n" - .'- **MULTI_BINDED**: multi-EIP-to-ENI mode'."\n" - .'- **BINDED**: cut-through mode', - 'type' => 'string', - 'example' => 'NAT', - ], - 'SegmentInstanceId' => [ - 'description' => 'The ID of the contiguous EIP group.'."\n" - ."\n" - .'This value is returned only when you query contiguous EIPs.'."\n", - 'type' => 'string', - 'example' => 'eipsg-t4nr90yik5oy38xd****', - ], - 'ReservationInternetChargeType' => [ - 'description' => 'The metering method that is used after the renewal takes effect. Valid values:'."\n" - ."\n" - .'* **PayByBandwidth**'."\n" - .'* **PayByTraffic**'."\n", - 'type' => 'string', - 'example' => 'PayByBandwidth', - ], - 'BandwidthPackageId' => [ - 'description' => 'The ID of the Internet Shared Bandwidth instance.'."\n", - 'type' => 'string', - 'example' => 'cbwp-bp1ego3i4j07ccdvf****', - ], - 'IpAddress' => [ - 'description' => 'The EIP.'."\n", - 'type' => 'string', - 'example' => '47.75.XX.XX', - ], - 'Bandwidth' => [ - 'description' => 'The maximum bandwidth of the EIP. Unit: Mbit/s.'."\n", - 'type' => 'string', - 'example' => '5', - ], - 'ReservationBandwidth' => [ - 'description' => 'The maximum bandwidth after the renewal takes effect. Unit: Mbit/s.'."\n", - 'type' => 'string', - 'example' => '12', - ], - 'EipBandwidth' => [ - 'description' => 'The maximum bandwidth of the EIP when it is not associated with an Internet Shared Bandwidth instance. Unit: Mbit/s.'."\n", - 'type' => 'string', - 'example' => '101', - ], - 'Name' => [ - 'description' => 'The name of the EIP.'."\n", - 'type' => 'string', - 'example' => 'EIP-01', - ], - 'PrivateIpAddress' => [ - 'description' => 'The private IP address of the secondary ENI with which the EIP is associated.', - 'type' => 'string', - 'example' => '192.168.XX.XX', - ], - 'InstanceRegionId' => [ - 'description' => 'The region ID of the associated instance.'."\n", - 'type' => 'string', - 'example' => ' cn-hangzhou', - ], - 'DeletionProtection' => [ - 'description' => 'Indicates whether deletion protection is enabled. Valid values:'."\n" - ."\n" - .'* **true**'."\n" - .'* **false**'."\n", - 'type' => 'boolean', - 'example' => 'true', - ], - 'InstanceId' => [ - 'description' => 'The ID of the associated instance.'."\n", - 'type' => 'string', - 'example' => 'i-bp15zckdt37cdvf****', - ], - 'SecondLimited' => [ - 'description' => 'Indicates whether level-2 throttling is configured. Valid values:'."\n" - ."\n" - .'* **true**'."\n" - .'* **false**'."\n", - 'type' => 'boolean', - 'example' => 'false', - ], - 'InstanceType' => [ - 'description' => 'The type of the associated instance. Valid values:'."\n" - ."\n" - .'* **EcsInstance**: an ECS instance in a VPC.'."\n" - .'* **SlbInstance**: a CLB instance in a VPC.'."\n" - .'* **Nat**: a NAT gateway.'."\n" - .'* **HaVip**: an HAVIP.'."\n" - .'* **NetworkInterface**: a secondary ENI.'."\n" - .'* **IpAddress**: an IP address.'."\n", - 'type' => 'string', - 'example' => 'EcsInstance', - ], - 'HDMonitorStatus' => [ - 'description' => 'Indicates whether fine-grained monitoring is enabled for the EIP. Valid values:'."\n" - ."\n" - .'* **false**'."\n" - .'* **true**'."\n", - 'type' => 'string', - 'example' => 'false', - ], - 'RegionId' => [ - 'description' => 'The region ID of the EIP.'."\n", - 'type' => 'string', - 'example' => 'cn-hangzhou', - ], - 'BandwidthPackageBandwidth' => [ - 'description' => 'The maximum bandwidth of the Internet Shared Bandwidth instance with which the EIP is associated. Unit: Mbit/s.'."\n", - 'type' => 'string', - 'example' => '50', - ], - 'ServiceManaged' => [ - 'description' => 'Indicates whether the instance is managed. Valid values:'."\n" - ."\n" - .'* **1**: yes'."\n" - .'* **0**: no'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '0', - ], - 'ExpiredTime' => [ - 'description' => 'The time when the EIP expires. The time follows the ISO 8601 standard in the `YYYY-MM-DDThh:mm:ssZ` format.'."\n", - 'type' => 'string', - 'example' => '2021-05-23T02:00:00Z', - ], - 'ResourceGroupId' => [ - 'description' => 'The resource group ID.'."\n", - 'type' => 'string', - 'example' => 'rg-acfmxazcdxs****', - ], - 'AllocationId' => [ - 'description' => 'The ID of the EIP.'."\n", - 'type' => 'string', - 'example' => 'eip-2zeerraiwb7ujcdvf****', - ], - 'InternetChargeType' => [ - 'description' => 'The metering method of the EIP. Valid values:'."\n" - ."\n" - .'* **PayByBandwidth**'."\n" - .'* **PayByTraffic**'."\n", - 'type' => 'string', - 'example' => 'PayByBandwidth', - ], - 'BusinessStatus' => [ - 'description' => 'The service status of the EIP. Valid values:'."\n" - ."\n" - .'* **Normal**'."\n" - .'* **OperationLock**'."\n" - .'* **Unactivated**'."\n", - 'type' => 'string', - 'example' => 'Normal', - ], - 'BandwidthPackageType' => [ - 'description' => 'The type of the bandwidth. Only **CommonBandwidthPackage** may be returned, which indicates Internet Shared Bandwidth.'."\n", - 'type' => 'string', - 'example' => 'CommonBandwidthPackage', - ], - 'HasReservationData' => [ - 'description' => 'Indicates whether renewal data is included. Valid values:'."\n" - ."\n" - .'* **false**'."\n" - .'* **true** A value of **true** is returned only when **IncludeReservationData** is set to **true** and some orders have not taken effect.'."\n", - 'type' => 'string', - 'example' => 'false', - ], - 'ISP' => [ - 'description' => 'The line type. Valid values:'."\n" - ."\n" - .'* **BGP**: BGP (Multi-ISP). The BGP (Multi-ISP) line is supported in all regions.'."\n" - .'* **BGP_PRO**: BGP (Multi-ISP) Pro lines. BGP (Multi-ISP) Pro line is supported only in the China (Hong Kong), Singapore, Japan (Tokyo), Malaysia (Kuala Lumpur), Philippines (Manila), Indonesia (Jakarta), and Thailand (Bangkok) regions.'."\n" - ."\n" - .'For more information about BGP (Multi-ISP) and BGP (Multi-ISP) Pro, see the [Line types](~~32321~~) section of the "What is EIP?" topic.'."\n" - ."\n" - .'If you are allowed to use single-ISP bandwidth, one of the following values may be returned:'."\n" - ."\n" - .'* **ChinaTelecom**'."\n" - .'* **ChinaUnicom**'."\n" - .'* **ChinaMobile**'."\n" - .'* **ChinaTelecom_L2**'."\n" - .'* **ChinaUnicom_L2**'."\n" - .'* **ChinaMobile_L2**'."\n" - ."\n" - .'If your services are deployed in China East 1 Finance, **BGP_FinanceCloud** is returned.'."\n", - 'type' => 'string', - 'example' => 'BGP', - ], - 'OperationLocks' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'LockReason' => [ - 'description' => 'The details about the locked EIP.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The details about the locked EIP.'."\n", - 'type' => 'object', - 'properties' => [ - 'LockReason' => [ - 'description' => 'The reason why the EIP is locked. Valid values:'."\n" - ."\n" - .'* **financial**: The EIP is locked due to overdue payments.'."\n" - .'* **security**: The instance is locked for security purposes.'."\n" - .'* **sharedPool**: The shared IP address pool is locked due to overdue payments.'."\n", - 'type' => 'string', - 'example' => 'financial', - ], - ], - ], - ], - ], - ], - 'Tags' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'Tag' => [ - 'description' => 'The tags of the EIP.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The tags.'."\n", - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => 'The tag key of the EIP.'."\n", - 'type' => 'string', - 'example' => 'KeyTest', - ], - 'Value' => [ - 'description' => 'The tag value of the EIP.'."\n", - 'type' => 'string', - 'example' => 'ValueTest', - ], - ], - 'example' => '"Tag": [ { "Value": "000", "Key": "yyy" }, { "Value": "111","Key": "kkk" }', - ], - ], - ], - ], - 'SecurityProtectionTypes' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'SecurityProtectionType' => [ - 'description' => 'The edition of Anti-DDoS.'."\n" - ."\n" - .'* If an empty value is returned, it indicates that Anti-DDoS Origin Basic is used.'."\n" - .'* If **AntiDDoS_Enhanced** is returned, it indicates that Anti-DDoS Pro/Premium is used.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The edition of Anti-DDoS.'."\n" - ."\n" - .'* If an empty value is returned, it indicates that Anti-DDoS Origin Basic is used.'."\n" - .'* If **AntiDDoS_Enhanced** is returned, it indicates that Anti-DDoS Pro/Premium is used.'."\n", - 'type' => 'string', - 'example' => 'AntiDDoS_Enhanced', - ], - ], - ], - ], - 'PublicIpAddressPoolId' => [ - 'description' => 'The ID of the IP address pool to which the EIP belongs.'."\n", - 'type' => 'string', - 'example' => 'pippool-2vc0kxcedhquybdsz****', - ], - 'VpcId' => [ - 'description' => 'The ID of the VPC in which an IPv4 gateway is created and that is deployed in the same region as the EIP.'."\n" - ."\n" - .'When you associate an EIP with an IP address, the system can enable the IP address to access the Internet based on VPC route configurations.'."\n" - ."\n" - .'> This parameter is returned if the value of **InstanceType** is **IpAddress**. In this case, the EIP is associated with an IP address.'."\n", - 'type' => 'string', - 'example' => 'vpc-bp15zckdt37pq72zv****', - ], - 'Zone' => [ - 'description' => 'The zone of the EIP.'."\n" - ."\n" - .'This parameter is returned only when the service type is CloudBox.'."\n", - 'type' => 'string', - 'example' => 'cn-hangzhou-a', - ], - 'BizType' => [ - 'description' => 'The service type. Valid values:'."\n" - ."\n" - .'* **CloudBox** Only cloud box users can select this type.'."\n" - .'* **Default** (default)'."\n", - 'type' => 'string', - 'example' => 'CloudBox', - ], - 'ServiceID' => [ - 'description' => 'The ID of the service provider to which the managed instance belongs.'."\n" - .'> This is only valid when the ServiceManaged parameter is set to True.', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '197*************', - ], - ], - ], - ], - ], - ], + 'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => '64B48E3D-DF70-471B-AA93-08E683A1B45', 'title' => ''], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidIAssociatedInstanceType.ValueNotSupported', - 'errorMessage' => 'The specified value of AssociatedInstanceType is not supported.', - ], - [ - 'errorCode' => 'InvalidChargeType.ValueNotSupported', - 'errorMessage' => 'The specified ChargeType is not supported.', - ], - [ - 'errorCode' => 'InvalidAliuid', - 'errorMessage' => 'User Id is not valid.', - ], - [ - 'errorCode' => 'InvalidResourceGroupId', - 'errorMessage' => 'The specified ResourceGroupId does not exist.', - ], - [ - 'errorCode' => 'InstanceType.Invalid', - 'errorMessage' => 'InstanceType is not null', - ], - [ - 'errorCode' => 'InstanceIdLength.Exceed', - 'errorMessage' => 'InstanceId length is exceed', - ], - [ - 'errorCode' => 'InvalidTagKey', - 'errorMessage' => 'The tag keys are not valid.', - ], - [ - 'errorCode' => 'InvalidTagValue', - 'errorMessage' => 'The tag values are not valid.', - ], - [ - 'errorCode' => 'OperationUnsupported.ResourceGroupId', - 'errorMessage' => 'ResourceGroup is not supported in this region.', - ], - [ - 'errorCode' => 'IellgalParameter.OwnerAccount', - 'errorMessage' => 'The specified parameter OwnerAccount is not valid.', - ], + ['errorCode' => 'ResourceNotFound.PrefixList ', 'errorMessage' => 'The specified resource of prefixList is not found.', 'description' => ''], + ['errorCode' => 'IncorrectStatus.SystemPrefixList', 'errorMessage' => 'This is not allowed to operate system prefixList.', 'description' => ''], + ['errorCode' => 'OperationDenied.DeleteShareResource', 'errorMessage' => 'This is not allowed to delete shared prefixList.', 'description' => ''], + ['errorCode' => 'IncorrectStatus.PrefixList', 'errorMessage' => 'The status of prefixList is incorrect.', 'description' => 'The prefix list is in an unstable state.'], + ['errorCode' => 'DependencyViolation.PrefixListRelation', 'errorMessage' => 'The specified resource of prefixList depends on prefixList relation, so the operation cannot be completed.', 'description' => ''], + ['errorCode' => 'DependencyViolation.ShareResource', 'errorMessage' => 'The specified resource of prefixList depends on share resource, so the operation cannot be completed.', 'description' => ''], ], - 404 => [ - [ - 'errorCode' => 'InvalidFilterValue', - 'errorMessage' => 'The specified FilterValue is not supported.', - ], - [ - 'errorCode' => 'Forbidden.RegionNotFound', - 'errorMessage' => 'Specified region is not found during access authentication.', - ], - [ - 'errorCode' => 'InvalidFilterKey.NotFound', - 'errorMessage' => 'The specified Filterkey is not supported.', - ], - [ - 'errorCode' => 'InvalidLockReason.NotFound', - 'errorMessage' => 'The specified LockReason is not found', + ], + 'staticInfo' => ['returnType' => 'asynchronous', 'callback' => 'Vpc::2016-04-28::ListPrefixLists', 'callbackInterval' => 3000, 'maxCallbackTimes' => 10], + 'title' => 'DeleteVpcPrefixList', + 'description' => 'You cannot repeatedly call the **DeleteDhcpOptionsSet** operation to delete a prefix list within the specified period of time.', + 'changeSet' => [ + ['createdAt' => '2022-07-18T12:44:59.000Z', 'description' => 'OpenAPI offline'], + ], + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'vpc:DeleteVpcPrefixList', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'PrefixList', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:prefixlist/{#PrefixListId}'], + ], ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '600', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DeleteVpcPrefixList'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"PageSize\\": 10,\\n \\"RequestId\\": \\"4EC47282-1B74-4534-BD0E-403F3EE64CAF\\",\\n \\"PageNumber\\": 10,\\n \\"TotalCount\\": 1,\\n \\"EipAddresses\\": {\\n \\"EipAddress\\": [\\n {\\n \\"ReservationActiveTime\\": \\"2021-05-23T16:00:00Z\\",\\n \\"Status\\": \\"Available\\",\\n \\"ReservationOrderType\\": \\"RENEWCHANGE\\",\\n \\"AllocationTime\\": \\"2021-04-23T01:37:38Z\\",\\n \\"Netmode\\": \\"public\\",\\n \\"ChargeType\\": \\"PostPaid\\",\\n \\"Description\\": \\"abc\\",\\n \\"Mode\\": \\"NAT\\",\\n \\"SegmentInstanceId\\": \\"eipsg-t4nr90yik5oy38xd****\\",\\n \\"ReservationInternetChargeType\\": \\"PayByBandwidth\\",\\n \\"BandwidthPackageId\\": \\"cbwp-bp1ego3i4j07ccdvf****\\",\\n \\"IpAddress\\": \\"47.75.XX.XX\\",\\n \\"Bandwidth\\": \\"5\\",\\n \\"ReservationBandwidth\\": \\"12\\",\\n \\"EipBandwidth\\": \\"101\\",\\n \\"Name\\": \\"EIP-01\\",\\n \\"PrivateIpAddress\\": \\"192.168.XX.XX\\",\\n \\"InstanceRegionId\\": \\" cn-hangzhou\\",\\n \\"DeletionProtection\\": true,\\n \\"InstanceId\\": \\"i-bp15zckdt37cdvf****\\",\\n \\"SecondLimited\\": false,\\n \\"InstanceType\\": \\"EcsInstance\\",\\n \\"HDMonitorStatus\\": \\"false\\",\\n \\"RegionId\\": \\"cn-hangzhou\\",\\n \\"BandwidthPackageBandwidth\\": \\"50\\",\\n \\"ServiceManaged\\": 0,\\n \\"ExpiredTime\\": \\"2021-05-23T02:00:00Z\\",\\n \\"ResourceGroupId\\": \\"rg-acfmxazcdxs****\\",\\n \\"AllocationId\\": \\"eip-2zeerraiwb7ujcdvf****\\",\\n \\"InternetChargeType\\": \\"PayByBandwidth\\",\\n \\"BusinessStatus\\": \\"Normal\\",\\n \\"BandwidthPackageType\\": \\"CommonBandwidthPackage\\",\\n \\"HasReservationData\\": \\"false\\",\\n \\"ISP\\": \\"BGP\\",\\n \\"OperationLocks\\": {\\n \\"LockReason\\": [\\n {\\n \\"LockReason\\": \\"financial\\"\\n }\\n ]\\n },\\n \\"Tags\\": {\\n \\"Tag\\": [\\n {\\n \\"Key\\": \\"KeyTest\\",\\n \\"Value\\": \\"ValueTest\\"\\n }\\n ]\\n },\\n \\"SecurityProtectionTypes\\": {\\n \\"SecurityProtectionType\\": [\\n \\"AntiDDoS_Enhanced\\"\\n ]\\n },\\n \\"PublicIpAddressPoolId\\": \\"pippool-2vc0kxcedhquybdsz****\\",\\n \\"VpcId\\": \\"vpc-bp15zckdt37pq72zv****\\",\\n \\"Zone\\": \\"ap-southeast-1-lzdvn-cb\\",\\n \\"BizType\\": \\"CloudBox\\",\\n \\"ServiceID\\": 0\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 10\\n 4EC47282-1B74-4534-BD0E-403F3EE64CAF\\n 10\\n 1\\n \\n 2021-05-23T16:00:00Z\\n Available\\n RENEWCHANGE\\n 2021-04-23T01:37:38Z\\n public\\n PostPaid\\n abc\\n eipsg-t4nr90yik5oy38xd****\\n PayByBandwidth\\n cbwp-bp1ego3i4j07ccdvf****\\n 47.75.XX.XX\\n 5\\n 12\\n 101\\n EIP-01\\n cn-hangzhou\\n true\\n i-bp15zckdt37cdvf****\\n false\\n EcsInstance\\n false\\n cn-hangzhou\\n 50\\n 0\\n 2021-05-23T02:00:00Z\\n rg-acfmxazcdxs****\\n eip-2zeerraiwb7ujcdvf****\\n PayByBandwidth\\n Normal\\n CommonBandwidthPackage\\n false\\n BGP\\n \\n financial\\n \\n \\n KeyTest\\n ValueTest\\n \\n AntiDDoS_Enhanced\\n pippool-2vc0kxcedhquybdsz****\\n vpc-bp15zckdt37pq72zv****\\n ap-southeast-1-lzdvn-cb\\n CloudBox\\n \\n","errorExample":""}]', - 'title' => 'DescribeEipAddresses', - 'description' => 'You can call this operation to query information about EIPs in a region, including maximum bandwidth, billing methods, and associated instances.'."\n", - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"64B48E3D-DF70-471B-AA93-08E683A1B45\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 64B48E3D-DF70-471B-AA93-08E683A1B45\\n","errorExample":""}]', ], - 'DescribeEipGatewayInfo' => [ - 'summary' => 'Queries the gateway and subnet mask of an elastic IP address (EIP).', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DeleteVpnAttachment' => [ + 'summary' => 'Calls the DeleteVpnAttachment operation to delete an IPsec-VPN connection.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', - 'systemTags' => [ - 'operationType' => 'list', - 'riskType' => 'none', - 'chargeType' => 'free', - ], + 'operationType' => 'readAndWrite', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'delete', 'riskType' => 'high', 'chargeType' => 'paid'], 'parameters' => [ [ - 'name' => 'InstanceId', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the secondary ENI that is associated with the EIP.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'eni-bp1d66qjxb3qoin3****', - ], + 'schema' => ['description' => 'The region ID of the IPsec-VPN connection.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the region ID.', 'type' => 'string', 'required' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'RegionId', + 'name' => 'VpnConnectionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The region to which the EIP that you want to query belongs. You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cn-zhangjiakou', - ], + 'schema' => ['description' => 'The ID of the IPsec-VPN connection.', 'type' => 'string', 'required' => true, 'example' => 'vco-p0w7gtr14m09r9lkr****', 'title' => ''], ], [ - 'name' => 'RegionId', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The region to which the EIP that you want to query belongs. You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cn-zhangjiakou', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'You can use the client to generate the token, but you must make sure that the token is unique among different requests. The ClientToken value can contain only ASCII characters.'."\n" + ."\n" + .'> If you do not specify this parameter, the system automatically uses the **RequestId** value as the **ClientToken** value. The **RequestId** value is different for each API request.', 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-4266****', 'title' => ''], ], ], 'responses' => [ 200 => [ + 'headers' => [], 'schema' => [ - 'description' => 'The response parameters.'."\n", + 'title' => '', + 'description' => 'The response parameters.', 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => 'The status code of the operation.'."\n", - 'type' => 'string', - 'example' => '200', - ], - 'Message' => [ - 'description' => 'The result of the operation.'."\n", - 'type' => 'string', - 'example' => 'successful', - ], - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => 'C0FD0EED-F90D-4479-803D-DD62335357E5 ', - ], - 'EipInfos' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'EipInfo' => [ - 'description' => 'The detailed information about the EIP.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'Ip' => [ - 'description' => 'The IP address of the EIP.'."\n", - 'type' => 'string', - 'example' => '47.XX.XX.236', - ], - 'IpGw' => [ - 'description' => 'The IP address of the gateway that is associated with the EIP.'."\n", - 'type' => 'string', - 'example' => '47.XX.XX.1', - ], - 'IpMask' => [ - 'description' => 'The subnet mask of the EIP.'."\n", - 'type' => 'string', - 'example' => '255.255.255.0', - ], - ], - ], - ], - ], - ], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '29440C49-398F-3D06-BA8B-E3CD13F3246D', 'title' => ''], + 'Code' => ['description' => 'The status code returned by the current task. A value of **200** indicates that the task is successful.', 'type' => 'string', 'example' => '200', 'title' => ''], + 'Success' => ['description' => 'Indicates whether the current task is successfully executed.'."\n" + ."\n" + .'- **true**: The task is successfully executed.'."\n" + .'- **false**: The task failed to be executed.', 'type' => 'boolean', 'example' => 'true', 'title' => ''], + 'Message' => ['description' => 'The message returned by the current task.', 'type' => 'string', 'example' => 'successful', 'title' => ''], ], + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'Instance.NotExist', - 'errorMessage' => 'The instance is not exist.', - ], - [ - 'errorCode' => 'InvalidNetworkInterface.NotFound', - 'errorMessage' => 'The specified network interface is not exist.', - ], + ['errorCode' => 'VpnConnection.Configuring', 'errorMessage' => 'The specified service is configuring.', 'description' => 'The service is being configured. Try again later.'], + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', 'description' => ''], + ['errorCode' => 'Vco.StatusNotSupport', 'errorMessage' => 'The current VCO status does not support operations such as modification and deletion.', 'description' => 'The current VCO status does not support operations such as modification and deletion.'], + ['errorCode' => 'CrossAccountAuthorizedVco.NotAllowDelete', 'errorMessage' => 'Current vpn connection is cross account authorized to cen, should delete cross account authorization first.', 'description' => 'the current vpn connection instance is cross-account authorized to the cen of another account. you need to cancel the cross-account authorization before deleting the instance.'], ], 403 => [ - [ - 'errorCode' => 'Forbidden', - 'errorMessage' => 'User not authorized to operate on the specified resource.', - ], + ['errorCode' => 'Forbbiden.SubUser', 'errorMessage' => 'User not authorized to operate on the specified resource as your account is created by another user. ', 'description' => ''], + ['errorCode' => 'Forbidden ', 'errorMessage' => 'User not authorized to operate on the specified resource. ', 'description' => ''], + ], + [ + ['errorCode' => 'InvalidVpnConnectionInstanceId.NotFound ', 'errorMessage' => 'The specified vpn connection instance id does not exist. ', 'description' => ''], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"200\\",\\n \\"Message\\": \\"successful\\",\\n \\"RequestId\\": \\"C0FD0EED-F90D-4479-803D-DD62335357E5\\\\t\\",\\n \\"EipInfos\\": {\\n \\"EipInfo\\": [\\n {\\n \\"Ip\\": \\"47.XX.XX.236\\",\\n \\"IpGw\\": \\"47.XX.XX.1\\",\\n \\"IpMask\\": \\"255.255.255.0\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 200\\n successful\\n C0FD0EED-F90D-4479-803D-DD62335357E5\\t\\n \\n 47.XX.XX.236\\n 47.XX.XX.1\\n 255.255.255.0\\n \\n","errorExample":""}]', - 'title' => 'DescribeEipGatewayInfo', - 'description' => 'You can query only EIPs that are associated with secondary elastic network interfaces (ENIs) in multi-EIP-to-ENI mode.'."\n", - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'AllocateEipSegmentAddress' => [ - 'summary' => 'Applies for contiguous elastic IP addresses (EIPs).', - 'methods' => [ - 'post', - 'get', + 'staticInfo' => ['returnType' => 'asynchronous', 'callback' => 'Vpc::2016-04-28::DescribeVpnConnection', 'callbackInterval' => 1000, 'maxCallbackTimes' => 30], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], ], - 'schemes' => [ - 'http', - 'https', + 'title' => 'Delete an IPsec-VPN connection', + 'description' => '- If the IPsec-VPN connection is associated with a transit router instance, disassociate the IPsec-VPN connection from the transit router instance before you delete the IPsec-VPN connection. For more information, see [DeleteTransitRouterVpnAttachment](~~468251~~).'."\n" + .'- If the IPsec-VPN connection is not associated with any resource, you can call the `DeleteVpnAttachment` operation to directly delete the IPsec-VPN connection.', + 'changeSet' => [ + ['createdAt' => '2024-10-24T11:19:58.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-01-04T07:17:10.000Z', 'description' => 'Error codes changed'], ], - 'security' => [ - [ - 'AK' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '60', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DeleteVpnAttachment'], ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], ], - 'operationType' => 'readAndWrite', - 'deprecated' => true, - 'systemTags' => [ - 'operationType' => 'create', - ], - 'parameters' => [ + 'ramActions' => [ [ - 'name' => 'ClientToken', - 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'You can use the client to generate a token, but you must make sure that the token is unique among different requests. **ClientToken** can contain only ASCII characters.'."\n" - ."\n" - .'> 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.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '02fb3da4-130e-11e9-8e44-001****', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'vpc:DeleteVpnAttachment', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VpnConnections', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vpnconnection/{#VpnConnectionId}'], + ], ], ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"29440C49-398F-3D06-BA8B-E3CD13F3246D\\",\\n \\"Code\\": \\"200\\",\\n \\"Success\\": true,\\n \\"Message\\": \\"successful\\"\\n}","type":"json"}]', + ], + 'DeleteVpnConnection' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'Bandwidth', - 'in' => 'query', - 'schema' => [ - 'description' => 'The maximum bandwidth of the contiguous EIP group. Unit: Mbit/s.'."\n" - ."\n" - .'* Valid values when **InstanceChargeType** is set to **PostPaid** and **InternetChargeType** is set to **PayByBandwidth**: **1** to **500**.****'."\n" - .'* Valid values when **InstanceChargeType** is set to **PostPaid** and **InternetChargeType** is set to **PayByTraffic**: **1** to **200**.****'."\n" - .'* Valid values when **InstanceChargeType** is set to **PrePaid**: **1** to **1000**.****'."\n" - ."\n" - .'Default value: **5**. Unit: Mbit/s.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '5', - ], + 'AK' => [], ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'delete', 'riskType' => 'high', 'chargeType' => 'paid'], + 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region in which the contiguous EIP group resides.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the region ID.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], - ], - [ - 'name' => 'EipMask', - 'in' => 'query', - 'schema' => [ - 'description' => 'The subnet mask of the contiguous EIP group. Valid values:'."\n" - ."\n" - .'* **28**: applies for 16 contiguous EIPs in each call.'."\n" - .'* **27**: applies for 32 contiguous EIPs in each call.'."\n" - .'* **26**: applies for 64 contiguous EIPs in each call.'."\n" - .'* **25**: applies for 128 contiguous EIPs in each call.'."\n" - .'* **24**: applies for 256 contiguous EIPs in each call.'."\n" - ."\n" - .'> Some IP address are reserved for specific purposes. Therefore, the actual number of the contiguous EIPs may be one, three, or four less than the expected number.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => '28', - ], - ], - [ - 'name' => 'Netmode', - 'in' => 'query', - 'schema' => [ - 'description' => 'The network type. Set the value to **public**, which specifies the public network type.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'public', - ], - ], - [ - 'name' => 'InternetChargeType', - 'in' => 'query', - 'schema' => [ - 'description' => 'The metering method of contiguous EIPs. Valid values:'."\n" - ."\n" - .'* **PayByBandwidth** (default)'."\n" - .'* **PayByTraffic**'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'PayByBandwidth', - 'default' => 'PayByBandwidth', - ], - ], - [ - 'name' => 'ResourceGroupId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The resource group ID.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'rg-bp67acfmxazb4ph****', - ], + 'schema' => ['description' => 'The ID of the region where the IPsec-VPN connection is created.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'Isp', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The line type. Valid values:'."\n" - ."\n" - .'* **BGP** (default): BGP (Multi-ISP) line The BGP (Multi-ISP) line is supported in all regions.'."\n" - .'* **BGP_PRO**: BGP (Multi-ISP) Pro line BGP (Multi-ISP) Pro line is supported only in the China (Hong Kong), Singapore, Japan (Tokyo), Malaysia (Kuala Lumpur), Philippines (Manila), Indonesia (Jakarta), and Thailand (Bangkok) regions.'."\n" - ."\n" - .'For more information about the BGP (Multi-ISP) line and BGP (Multi-ISP) Pro line, see [EIP line types](~~32321~~).'."\n" - ."\n" - .'If you are allowed to use single-ISP bandwidth, you can also use one of the following values:'."\n" - ."\n" - .'* **ChinaTelecom**'."\n" - .'* **ChinaUnicom**'."\n" - .'* **ChinaMobile**'."\n" - .'* **ChinaTelecom_L2**'."\n" - .'* **ChinaUnicom_L2**'."\n" - .'* **ChinaMobile_L2**'."\n" - ."\n" - .'If your services are deployed in China East 1 Finance, this parameter is required and you must set the parameter to **BGP_FinanceCloud**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'BGP', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'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.'."\n" + ."\n" + .'> 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.'."\n", 'type' => 'string', 'required' => false, 'example' => '02fb3da4-130e-11e9-8e44-0016e04115b', 'title' => ''], ], [ - 'name' => 'Zone', + 'name' => 'VpnConnectionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The zone of the contiguous EIP group.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou-a', - ], + 'schema' => ['description' => 'The ID of the IPsec-VPN connection.'."\n", 'type' => 'string', 'required' => true, 'example' => 'vco-bp1bbi27hojx80nck****', 'title' => ''], ], ], 'responses' => [ 200 => [ + 'headers' => [], 'schema' => [ - 'description' => 'The response parameters.'."\n", 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => 'F7A6301A-64BA-41EC-8284-8F4838C15D1F ', - ], - 'EipSegmentInstanceId' => [ - 'description' => 'The ID of the contiguous EIP group.'."\n", - 'type' => 'string', - 'example' => 'eipsg-2zett8ba055tbsxme****', - ], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '606998F0-B94D-48FE-8316-ACA81BB230DA', 'title' => ''], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'COMMODITY_NO_EXIST', - 'errorMessage' => 'commodity is not exist', - ], - [ - 'errorCode' => 'QuotaExceeded.Eip', - 'errorMessage' => 'Elastic IP address quota exceeded', - ], - [ - 'errorCode' => 'InvalidParameter', - 'errorMessage' => 'Specified value of "InternetChargeType" is not valid', - ], - [ - 'errorCode' => 'InsufficientBalance', - 'errorMessage' => 'Your account does not have enough balance.', - ], - [ - 'errorCode' => 'ReserveIpFail', - 'errorMessage' => 'Reserve eip failed.', - ], - [ - 'errorCode' => 'InvalidRegion.NotSupport', - 'errorMessage' => 'The specified region does not support.', - ], - [ - 'errorCode' => 'InvalidBandwidth.Malformed', - 'errorMessage' => 'The specified Bandwidth is invalid.', - ], - [ - 'errorCode' => 'INSTANCE_TYPE_NOT_SUPPORT', - 'errorMessage' => 'The instance type is invalid.', - ], - [ - 'errorCode' => 'QueryParameter.Illegal', - 'errorMessage' => 'query parameter illegal', - ], - [ - 'errorCode' => 'TokenVerfiy.Failed', - 'errorMessage' => 'token verify failed.', - ], - [ - 'errorCode' => 'OrderFailed', - 'errorMessage' => 'The Account failed to create order.', - ], - [ - 'errorCode' => 'QuotaExceeded.LargeSpecEip', - 'errorMessage' => 'Elastic IP address with large spec quota exceeded.', - ], - [ - 'errorCode' => 'InvalidResourceGroupId', - 'errorMessage' => 'The specified ResourceGroupId does not exist.', - ], - [ - 'errorCode' => 'PAYFOR.CREDIT_PAY_INSUFFICIENT_BALANCE', - 'errorMessage' => 'Your account does not have enough balance.', - ], - [ - 'errorCode' => 'SYSTEM.SALE_VALIDATE_UNEXPECTED_ERROR', - 'errorMessage' => 'You have arrears and do not meet the purchase conditions.', - ], - [ - 'errorCode' => 'Trade_Sync_Create_Sub_ERROR', - 'errorMessage' => 'SyncOrderToSub error.', - ], - [ - 'errorCode' => 'InvalidComponent.EipBandwidthMax', - 'errorMessage' => 'The eip_bandwidth_max component is invalid.', - ], - [ - 'errorCode' => 'OperationFailed.RiskControl', - 'errorMessage' => 'Risk control check failed.', - ], - [ - 'errorCode' => 'OperationFailed.SaleValidate', - 'errorMessage' => 'Validate sale condition with subArticle failed.', - ], - [ - 'errorCode' => 'IllegalParam.OrderParamComponent', - 'errorMessage' => 'Product order param has invalid component.', - ], - [ - 'errorCode' => 'OperationFailed.SaleExpression', - 'errorMessage' => 'Get the sales expression exception attached to the item.', - ], - [ - 'errorCode' => 'OperationFailed.CompleteUserInfo', - 'errorMessage' => 'Complete user info failed.', - ], - [ - 'errorCode' => 'OperationFailed.QueryPrice', - 'errorMessage' => 'Query price failed when create order.', - ], - [ - 'errorCode' => 'OperationFailed.InsufficientEIP', - 'errorMessage' => 'Eip resource is not enough.', - ], - [ - 'errorCode' => 'OperationFailed.InvokeInnerApi', - 'errorMessage' => 'Failed to invoke inner api.', - ], - [ - 'errorCode' => 'OperationFailed.AccountMoneyInvalid', - 'errorMessage' => 'Account money is invalid.', - ], - [ - 'errorCode' => 'OperationFailed.QueryCredtiInfo', - 'errorMessage' => 'Failed to query credit info.', - ], - [ - 'errorCode' => 'FrequentPurchase.EIP', - 'errorMessage' => 'eip frequent purchase', - ], - [ - 'errorCode' => 'OperationFailed.QueryUserLabel', - 'errorMessage' => 'Failed to query user label info.', - ], - [ - 'errorCode' => 'PAY.INSUFFICIENT_BALANCE', - 'errorMessage' => 'Your account does not have enough balance.', - ], - [ - 'errorCode' => 'ORDER.QUANTITY_INVALID', - 'errorMessage' => 'User quota has exceeded the limit.', - ], - [ - 'errorCode' => 'PAY.MAYI_WITHHOLDING_AGREEMENT_ILLEGAL', - 'errorMessage' => 'User withhoding argeement is illegal.', - ], - [ - 'errorCode' => 'OperationFailed.ChargeTypeInvalid', - 'errorMessage' => 'Operation failed because hybrid netmode do not support PayByTraffic.', - ], - [ - 'errorCode' => 'IllegalParam.EipMask', - 'errorMessage' => 'EipMask is illegal.', - ], - [ - 'errorCode' => 'IllegalParam.Name', - 'errorMessage' => 'Name is illegal.', - ], - [ - 'errorCode' => 'IllegalParam.Description', - 'errorMessage' => 'Description is illegal.', - ], - [ - 'errorCode' => 'InstanceExist.EipSegment', - 'errorMessage' => 'The eipSegment instance already exists.', - ], - [ - 'errorCode' => 'OperationFailed.QuotaExceed', - 'errorMessage' => 'Operation failed because over threshold bandwidth quota exceed.', - ], - [ - 'errorCode' => 'OperationFailed.FrequentPurchase', - 'errorMessage' => 'Operation failed because eip frequent purchase.', - ], - [ - 'errorCode' => 'OperationFailed.AllocateEipSegment', - 'errorMessage' => 'Operation failed because eip segment is out of stock.', - ], - [ - 'errorCode' => 'OperationFailed.CreateOrderFailed', - 'errorMessage' => 'Operation failed because create order failed.', - ], - [ - 'errorCode' => 'MissingParam.Bandwidth', - 'errorMessage' => 'The parameter Bandwidth is mandatory when allocate hybrid EipSegment.', - ], - [ - 'errorCode' => 'OperationFailed.EipQuotaExceed', - 'errorMessage' => 'Operation failed because eip quota exceed.', - ], - [ - 'errorCode' => 'OrderError.EIP', - 'errorMessage' => 'The Account failed to create order.', - ], - [ - 'errorCode' => 'OperationConflict', - 'errorMessage' => 'Request was denied due to conflict with a previous request.', - ], - [ - 'errorCode' => 'Forbidden', - 'errorMessage' => 'User not authorized to operate on the specified resource.', - ], - [ - 'errorCode' => 'UnsupportedFeature.AllocateEipAddressWithZone', - 'errorMessage' => 'The feature of AllocateEipAddressWithZone is not supported.', - ], - [ - 'errorCode' => 'IllegalParam.Zone', - 'errorMessage' => 'The specified zone is invalid.', - ], - [ - 'errorCode' => 'Forbidden.AllocateEipSegmentAddress', - 'errorMessage' => 'Authentication is failed for allocating eip segment address.', - ], + ['errorCode' => 'VpnGateway.Configuring', 'errorMessage' => 'The specified service is configuring.', 'description' => ''], + ['errorCode' => 'VpnTask.CONFLICT', 'errorMessage' => 'Vpn task has conflict.', 'description' => 'The VPN operation conflicts. Try again later.'], + ['errorCode' => 'VpnGateway.FinancialLocked', 'errorMessage' => 'The specified service is financial locked.', 'description' => ''], + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', 'description' => ''], + ['errorCode' => 'InvalidVpnGatewayInstanceId.NotFound', 'errorMessage' => 'The specified vpn gateway instance id does not exist.', 'description' => 'The specified VPN gateway does not exist. Check whether the specified VPN gateway is valid.'], ], - 404 => [ - [ - 'errorCode' => 'InvalidRegionId.NotFound', - 'errorMessage' => 'Specified value of "RegionId" is not supported.', - ], - [ - 'errorCode' => 'FUWU_BIZ_COMMODITY_VERIFY_FAIL', - 'errorMessage' => '????????, ????????PD.', - ], + 403 => [ + ['errorCode' => 'Forbbiden.SubUser', 'errorMessage' => 'User not authorized to operate on the specified resource as your account is created by another user.', 'description' => ''], + ['errorCode' => 'Forbidden', 'errorMessage' => 'User not authorized to operate on the specified resource.', 'description' => 'You do not have the permissions to manage the specified resource. Apply for the permissions and try again.'], ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', - ], - [ - 'errorCode' => 'OrderError.EIP', - 'errorMessage' => 'The Account failed to create order.', - ], + [ + ['errorCode' => 'InvalidVpnConnectionInstanceId.NotFound', 'errorMessage' => 'The specified vpn connection instance id does not exist.', 'description' => 'The specified vpn connection instance id does not exist.'], ], ], - 'staticInfo' => [ - 'noSubstitutionReason' => '无替代API,历史原因导致该API被标记为弃用。', - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"F7A6301A-64BA-41EC-8284-8F4838C15D1F\\",\\n \\"EipSegmentInstanceId\\": \\"eipsg-2zett8ba055tbsxme****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n F7A6301A-64BA-41EC-8284-8F4838C15D1F\\t\\n eipsg-2zett8ba055tbsxme****\\n","errorExample":""}]', - 'title' => 'AllocateEipSegmentAddress', - 'description' => '**AllocateEipSegmentAddress** is an asynchronous operation. After a request is sent, the system returns the ID of a contiguous EIP group and runs the task in the background. You can call the [DescribeEipSegment](~~156063~~) operation to query the status of the task.'."\n" + 'staticInfo' => ['returnType' => 'asynchronous', 'callback' => 'Vpc::2016-04-28::DescribeVpnConnection', 'callbackInterval' => 3000, 'maxCallbackTimes' => 200], + 'title' => 'DeleteVpnConnection', + 'summary' => 'Deletes an IPsec-VPN connection.', + 'description' => '* **DeleteVpnConnection** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call the [DescribeVpnGateway](~~73720~~) operation to query the status of a VPN gateway.'."\n" + ."\n" + .' * If a VPN gateway is in the **updating** state, the IPsec-VPN connection is being deleted.'."\n" + .' * If a VPN gateway is in the **active** state, the IPsec-VPN connection has been deleted.'."\n" + ."\n" + .'* You cannot call the **DeleteVpnConnection** operation to delete multiple IPsec-VPN connections for a VPN gateway at a time.'."\n" ."\n" - .'* If the contiguous EIP group is in the **Allocating** state, the EIPs are being allocated. In this case, you can only perform the query operation and cannot perform other operations.'."\n" - .'* If the contiguous EIP group is in the **Allocated** state, the EIPs are allocated.'."\n", + .'> After an IPsec-VPN connection between a data center and Alibaba Cloud is deleted, the connection between the data center and Alibaba Cloud is closed.'."\n", 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeEipSegment' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [ + ['createdAt' => '2024-01-04T07:17:10.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-01-06T06:24:22.000Z', 'description' => 'Error codes changed, Response parameters changed'], + ['createdAt' => '2022-12-08T09:38:28.000Z', 'description' => 'Error codes changed'], ], + 'ramActions' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"606998F0-B94D-48FE-8316-ACA81BB230DA\\"\\n}","errorExample":"{\\n \\"RequestId\\":\\"606998F0-B94D-48FE-8316-ACA81BB230DA\\"\\n}"},{"type":"xml","example":"\\n\\n 606998F0-B94D-48FE-8316-ACA81BB230DA\\n","errorExample":"\\n\\n 606998F0-B94D-48FE-8316-ACA81BB230DA\\n"}]', + ], + 'DeleteVpnGateway' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', - 'systemTags' => [ - 'operationType' => 'get', - ], + 'operationType' => 'readAndWrite', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'delete', 'riskType' => 'high', 'chargeType' => 'free'], 'parameters' => [ - [ - 'name' => 'ClientToken', - 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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.'."\n" - ."\n" - .'> 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.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '02fb3da4-130e-11e9-8e44-001sdfg', - ], - ], [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region to which the contiguous EIP group belongs. You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cn-hangzhou', - ], - ], - [ - 'name' => 'SegmentInstanceId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the contiguous EIP group that you want to query.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'eipsg-2zett8ba055tbsxme****', - ], + 'schema' => ['description' => 'The region ID of the VPN gateway.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'PageNumber', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The page number. Default value: **1**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'minimum' => '1', - 'example' => '1', - 'default' => '1', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'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 and cannot exceed 64 characters in length.'."\n" + ."\n" + .'> 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.'."\n", 'type' => 'string', 'required' => false, 'example' => '02fb3da4-130e-11e9-8e44-0016e04115b', 'title' => ''], ], [ - 'name' => 'PageSize', + 'name' => 'VpnGatewayId', 'in' => 'query', - 'schema' => [ - 'description' => 'The number of entries per page. Maximum value: **50**. Default value: **10**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '50', - 'minimum' => '1', - 'example' => '10', - 'default' => '10', - ], + 'schema' => ['description' => 'The ID of the VPN gateway.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'vpn-bp1q8bgx4xnkm2ogj****', 'title' => ''], ], ], 'responses' => [ 200 => [ 'headers' => [], 'schema' => [ - 'description' => 'The response parameters.'."\n", 'type' => 'object', 'properties' => [ - 'PageSize' => [ - 'description' => 'The number of entries per page.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => 'F7A6301A-64BA-41EC-8284-8F4838C15D1F', - ], - 'PageNumber' => [ - 'description' => 'The page number.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'TotalCount' => [ - 'description' => 'The total number of entries returned.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'EipSegments' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'EipSegment' => [ - 'description' => 'The details of the contiguous EIP group.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'CreationTime' => [ - 'description' => 'The time when the contiguous EIP group was created. The time follows the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time is displayed in UTC.'."\n", - 'type' => 'string', - 'example' => '2020-03-06T12:30:07Z', - ], - 'Status' => [ - 'description' => 'The status of the contiguous EIP group. Valid values:'."\n" - ."\n" - .'* **Allocating**'."\n" - .'* **Allocated**'."\n" - .'* **Releasing**'."\n", - 'type' => 'string', - 'example' => 'Allocated', - ], - 'Descritpion' => [ - 'description' => 'The description of the contiguous EIP group.'."\n", - 'type' => 'string', - 'example' => 'MyEipSegment', - ], - 'InstanceId' => [ - 'description' => 'The ID of the contiguous EIP group.'."\n", - 'type' => 'string', - 'example' => 'eipsg-2zett8ba055tbsxme****', - ], - 'IpCount' => [ - 'description' => 'The number of EIPs in the contiguous EIP group.'."\n", - 'type' => 'string', - 'example' => '16', - ], - 'Name' => [ - 'description' => 'The name of the contiguous EIP group.'."\n", - 'type' => 'string', - 'example' => 'MyEipSegment', - ], - 'Segment' => [ - 'description' => 'The CIDR block and mask of the contiguous EIP group.'."\n", - 'type' => 'string', - 'example' => '161.xx.xx.32/28', - ], - 'RegionId' => [ - 'description' => 'The ID of the region to which the contiguous EIP group belongs.'."\n", - 'type' => 'string', - 'example' => 'cn-hangzhou', - ], - 'Zone' => [ - 'description' => 'The zone of the contiguous EIP group.'."\n", - 'type' => 'string', - 'example' => 'cn-hangzhou-a', - ], - ], - ], - ], - ], - ], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '>0ED8D006-F706-4D23-88ED-E11ED28DCAC0', 'title' => ''], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'OperationFailed.QueryDbError', - 'errorMessage' => 'Operation failed because query db error.', - ], + ['errorCode' => 'DependencyViolation.VpnConnection', 'errorMessage' => 'There are vpn connections on specified customer gateway not deleted.', 'description' => 'The error message returned because VPN connections to the specified customer gateway are not deleted.'], + ['errorCode' => 'DependencyViolation.SslVpnServer', 'errorMessage' => 'There is SSL VPN server on specified vpn gateway not deleted.', 'description' => 'The error message returned because SSL-VPN connections to the specified customer gateway are not deleted.'], + ['errorCode' => 'VpnGateway.Configuring', 'errorMessage' => 'The specified service is configuring.', 'description' => ''], + ['errorCode' => 'DependencyViolation.GreTunnel', 'errorMessage' => 'There is Gre tunnel on specified vpn gateway not deleted.', 'description' => 'The error message returned because GRE tunnels are not deleted on the VPN gateway.'], + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', 'description' => ''], + ['errorCode' => 'TaskConflict', 'errorMessage' => 'The eip operate too frequent, TaskConflict.', 'description' => 'Operations are too frequent and tasks conflict with each other.'], + ['errorCode' => 'InvalidVpnGatewayInstanceId.NotFound', 'errorMessage' => 'The specified vpn gateway instance id does not exist.', 'description' => 'The specified VPN gateway does not exist. Check whether the specified VPN gateway is valid.'], + ['errorCode' => 'DependencyViolation.IpsecServer', 'errorMessage' => 'the resource cannot be deleted because the resource has an ipsec server dependency.', 'description' => 'the resource cannot be deleted because the resource has an ipsec server dependency.'], + ], + 403 => [ + ['errorCode' => 'Forbidden.SubUser', 'errorMessage' => 'User not authorized to operate on the specified resource as your account is created by another user.', 'description' => 'The error message returned because you are unauthorized to perform this operation on the specified resource. Acquire the required permissions and try again.'], + ['errorCode' => 'Forbidden', 'errorMessage' => 'User not authorized to operate on the specified resource.', 'description' => 'You do not have the permissions to manage the specified resource. Apply for the permissions and try again.'], + ['errorCode' => 'ForbiddenRelease', 'errorMessage' => 'Forbidden to release a prepaid instance within validity period', 'description' => ''], + ], + [ + ['errorCode' => 'InvalidVpnGatewayInstanceId.NotFound', 'errorMessage' => 'The specified vpn gateway instance id does not exist.', 'description' => ''], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"PageSize\\": 10,\\n \\"RequestId\\": \\"F7A6301A-64BA-41EC-8284-8F4838C15D1F\\",\\n \\"PageNumber\\": 1,\\n \\"TotalCount\\": 10,\\n \\"EipSegments\\": {\\n \\"EipSegment\\": [\\n {\\n \\"CreationTime\\": \\"2020-03-06T12:30:07Z\\",\\n \\"Status\\": \\"Allocated\\",\\n \\"Descritpion\\": \\"MyEipSegment\\",\\n \\"InstanceId\\": \\"eipsg-2zett8ba055tbsxme****\\",\\n \\"IpCount\\": \\"16\\",\\n \\"Name\\": \\"MyEipSegment\\",\\n \\"Segment\\": \\"161.xx.xx.32/28\\",\\n \\"RegionId\\": \\"cn-hangzhou\\",\\n \\"Zone\\": \\"cn-hangzhou-a\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 10\\n F7A6301A-64BA-41EC-8284-8F4838C15D1F\\n 1\\n 10\\n \\n 2020-03-06T12:30:07Z\\n Allocated\\n MyEipSegment\\n eipsg-2zett8ba055tbsxme****\\n 16\\n MyEipSegment\\n 161.xx.xx.32/28\\n cn-hangzhou\\n \\n","errorExample":""}]', - 'title' => 'DescribeEipSegment', - 'summary' => 'Queries contiguous elastic IP address (EIP) groups.', + 'staticInfo' => ['returnType' => 'asynchronous', 'callback' => 'Vpc::2016-04-28::DescribeVpnGateway', 'callbackInterval' => 6000, 'maxCallbackTimes' => 100], + 'title' => 'DeleteVpnGateway', + 'summary' => 'Deletes a VPN gateway.', + 'description' => '> You cannot delete a VPN gateway associated with existing IPsec-VPN connections.'."\n", 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'ReleaseEipSegmentAddress' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [ + ['createdAt' => '2024-01-04T07:17:11.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2022-12-27T03:28:32.000Z', 'description' => 'Error codes changed'], ], + 'ramActions' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\">0ED8D006-F706-4D23-88ED-E11ED28DCAC0\\"\\n}","errorExample":"{ \\n \\"RequestId\\": \\"0ED8D006-F706-4D23-88ED-E11ED28DCAC0\\"\\n}"},{"type":"xml","example":"\\n\\n 0ED8D006-F706-4D23-88ED-E11ED28DCAC0\\n","errorExample":"\\n\\n 0ED8D006-F706-4D23-88ED-E11ED28DCAC0\\n"}]', + ], + 'DeleteVpnPbrRouteEntry' => [ + 'summary' => 'Deletes a policy-based route by calling the DeleteVpnPbrRouteEntry operation.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'readAndWrite', - 'systemTags' => [ - 'operationType' => 'delete', - ], + 'systemTags' => ['operationType' => 'delete', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the contiguous EIPs. You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The region ID of the VPN gateway instance. You can call the [DescribeRegions](~~36063~~) operation to query the region ID.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'SegmentInstanceId', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the contiguous EIP group to be released.'."\n" - ."\n" - .'The system releases all EIPs in the group.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'eipsg-2zett8ba055tbsxme****', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'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.'."\n" + ."\n" + .'> If you do not specify this parameter, the system automatically uses the **RequestId** of the API request as the **ClientToken**. The **RequestId** may be different for each API request.', 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-4266****', 'title' => ''], ], [ - 'name' => 'ClientToken', + 'name' => 'VpnGatewayId', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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.'."\n" - ."\n" - .'> 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.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '02fb3da4-130e-11e9-8e44-001sdfg', - ], - ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'description' => 'The response parameters.'."\n", - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => 'F7A6301A-64BA-41EC-8284-8F4838C15D1F', - ], - ], - ], - ], - ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'IncorrectEipStatus', - 'errorMessage' => 'Current elastic IP status does not support this operation.', - ], - [ - 'errorCode' => 'Forbidden.ChargeTypeIsPrepaid', - 'errorMessage' => 'It\'s forbidden to release a prepaid EIP', - ], - [ - 'errorCode' => 'Forbidden', - 'errorMessage' => 'The eip instance owener error', - ], - [ - 'errorCode' => 'TaskConflict.AssociateGlobalAccelerationInstance', - 'errorMessage' => 'Operate too frequent.', - ], - [ - 'errorCode' => 'InvalidOperation.DeletionProtection', - 'errorMessage' => 'The instance cannnot delete because of deletion protecion.', - ], - [ - 'errorCode' => 'OperationFailed.InstanceNotExist', - 'errorMessage' => 'Operation failed because eip segment instance not exist.', - ], - [ - 'errorCode' => 'OperationFailed.EipNumInconsistent', - 'errorMessage' => 'Operation failed because the number of eip is inconsistent.', - ], - [ - 'errorCode' => 'OperationFailed.EipStatusInvalid', - 'errorMessage' => 'Operation failed because eip instance status invalid.', - ], - [ - 'errorCode' => 'OperationFailed.EipInBwp', - 'errorMessage' => 'Operation failed because eip instance has been added to the bandwidth package.', - ], - [ - 'errorCode' => 'Forbidden.EipInBwp', - 'errorMessage' => 'The EIP has been associated with an EIP bandwidth plan.', - ], - ], - 404 => [ - [ - 'errorCode' => 'InvalidAllocationId.NotFound', - 'errorMessage' => 'Specified allocation ID is not found.', - ], - [ - 'errorCode' => 'Forbidden.RegionNotFound', - 'errorMessage' => 'Specified region is not found during access authentication.', - ], - ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'The request processing has failed due to some unknown error.', - ], + 'schema' => ['description' => 'The instance ID of the VPN gateway.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'vpn-bp1a3kqjiiq9legfx****', 'title' => ''], ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"F7A6301A-64BA-41EC-8284-8F4838C15D1F\\"\\n}","errorExample":""},{"type":"xml","example":"\\n F7A6301A-64BA-41EC-8284-8F4838C15D1F\\n","errorExample":""}]', - 'title' => 'ReleaseEipSegmentAddress', - 'summary' => 'Releases contiguous elastic IP addresses (EIPs).', - 'description' => '* After you call the **ReleaseEipSegmentAddress** operation, all EIPs in the specified group are released.'."\n" - ."\n" - .'* **ReleaseEipSegmentAddress** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call the [DescribeEipSegment](~~156063~~) operation to query the status of the task.'."\n" - ."\n" - .' * If the group is in the **Releasing** state, EIPs in the group are being released. In this state, you can only query the group and cannot perform other operations.'."\n" - .' * If you cannot query the group of contiguous EIPs, the contiguous EIPs are released.'."\n" - ."\n" - .'* You cannot repeatedly call the **ReleaseEipSegmentAddress** operation to release a group of contiguous EIPs within the specified period of time.'."\n", - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'ModifyEipForwardMode' => [ - 'summary' => 'Modifies the EIP forwarding mode.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ [ - 'AK' => [], + 'name' => 'RouteSource', + 'in' => 'query', + 'schema' => ['description' => 'The source CIDR block of the policy-based route.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '192.168.1.0/24', 'title' => ''], ], - ], - 'operationType' => 'readAndWrite', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'update', - 'riskType' => 'none', - 'chargeType' => 'free', - 'autoTest' => true, - 'tenantRelevance' => 'tenant', - ], - 'parameters' => [ [ - 'name' => 'RegionId', + 'name' => 'RouteDest', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region to which the EIP belongs. You can call the DescribeRegions operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The destination CIDR block of the policy-based route.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '10.0.0.0/24', 'title' => ''], ], [ - 'name' => 'InstanceId', + 'name' => 'NextHop', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the EIP whose attributes you want to modify.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'eip-j5ebhbw3br92fy****', - ], + 'schema' => ['description' => 'The next hop of the policy-based route.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'vco-bp15oes1py4i66rmd****', 'title' => ''], ], [ - 'name' => 'Mode', + 'name' => 'Weight', 'in' => 'query', - 'schema' => [ - 'description' => 'The association mode. Valid values:'."\n" - ."\n" - .'* **NAT** (default): the standard NAT mode.'."\n" - .'* **MULTI_BINDED**: the multi-EIP-to-ENI mode.'."\n" - .'* **BINDED**: the cut-through mode.'."\n" - ."\n" - .'> This parameter is required only if **InstanceType** is set to **NetworkInterface**.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'BINDED', - ], + 'schema' => ['description' => 'The weight of the policy-based route.'."\n" + ."\n" + .'You can call the [DescribeVpnPbrRouteEntries](~~2526959~~) operation to query the weight of the policy-based route.', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'docRequired' => true, 'example' => '0', 'title' => ''], ], [ - 'name' => 'RegionId', + 'name' => 'OverlayMode', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region to which the EIP belongs. You can call the DescribeRegions operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The tunneling protocol. Set the value to **Ipsec** (IPsec tunneling protocol).', 'type' => 'string', 'required' => false, 'example' => 'Ipsec', 'title' => ''], ], [ - 'name' => 'ClientToken', + 'name' => 'Priority', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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.'."\n" - ."\n" - .'> If you do not specify this parameter, the system automatically uses the **request ID** as the **client token**. The **RequestId** may be different for each request.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '02fb3da4-130e-11e9-8e44-0016e04115b', - ], + 'schema' => ['description' => 'The policy priority of the policy-based route.'."\n" + ."\n" + .'- If no policy priority was previously configured for the policy-based route, you do not need to specify this parameter.'."\n" + .'- If a policy priority was previously configured for the policy-based route, this parameter is optional.'."\n" + ."\n" + .' If you specify this parameter, set it to the previously configured policy priority. If you set it to a different value, the operation fails.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '10', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'description' => 'The response parameters.', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '62C6A6A5-1534-53D9-AB1E-C9307A147ED5', - ], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '5BE01CD7-5A50-472D-AC14-CA181C5C03BE', 'title' => ''], ], - 'description' => '', + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'Region.NotSupport', - 'errorMessage' => 'Region not support.', - ], - [ - 'errorCode' => 'Instance.ModeError', - 'errorMessage' => 'eip instance mode error.', - ], - [ - 'errorCode' => 'Instance.StatusError', - 'errorMessage' => 'eip status error.', - ], - [ - 'errorCode' => 'ENI.BindEcs', - 'errorMessage' => 'eni bind ecs.', - ], - [ - 'errorCode' => 'Forbidden.PrePaidBindedEip', - 'errorMessage' => 'prepaid eip cannot be direct.', - ], - [ - 'errorCode' => 'BindInstance.NotSupport', - 'errorMessage' => 'eip can only change mode when it is allocated or bind eni.', - ], - [ - 'errorCode' => 'IncorrectStatus.EipInstance', - 'errorMessage' => 'Eip instance\'s status is invalid.', - ], + ['errorCode' => 'Resource.QuotaFull', 'errorMessage' => 'The quota of resource is full', 'description' => ''], + ['errorCode' => 'VpnGateway.Configuring', 'errorMessage' => 'The specified service is configuring.', 'description' => ''], + ['errorCode' => 'VpnGateway.FinancialLocked', 'errorMessage' => 'The specified service is financial locked.', 'description' => ''], + ['errorCode' => 'VpnRouteEntry.AlreadyExists', 'errorMessage' => 'The specified route entry is already exist.', 'description' => 'The route already exists.'], + ['errorCode' => 'VpnRouteEntry.Conflict', 'errorMessage' => 'The specified route entry has conflict.', 'description' => 'Route conflicts exist.'], + ['errorCode' => 'VpnRouteEntry.Configuring', 'errorMessage' => 'The specified route entry is configuring.', 'description' => 'The error message returned because the specified route is being configured.'], + ['errorCode' => 'InvalidRouteEntry.NotFound', 'errorMessage' => 'The specified route entry does not exist.', 'description' => 'The error message returned because the specified route does not exist.'], + ['errorCode' => 'TaskConflict', 'errorMessage' => 'The operation is too frequent, please wait a moment and try again.', 'description' => 'Your requests are too frequent. Try again later.'], + ['errorCode' => 'VpnTask.CONFLICT', 'errorMessage' => 'Vpn task has conflict.', 'description' => 'The VPN operation conflicts. Try again later.'], + ['errorCode' => 'VpnPbrRouteEntry.NotSupport', 'errorMessage' => 'Current version of the VPN does not support pbr route entry.', 'description' => 'Current version of the VPN does not support pbr route entry.'], ], 403 => [ - [ - 'errorCode' => 'Forbidden', - 'errorMessage' => 'User not authorized to operate on the specified resource.', - ], + ['errorCode' => 'Forbbiden.SubUser', 'errorMessage' => 'User not authorized to operate on the specified resource as your account is created by another user.', 'description' => ''], + ['errorCode' => 'Forbidden', 'errorMessage' => 'User not authorized to operate on the specified resource.', 'description' => 'You do not have the permissions to manage the specified resource. Apply for the permissions and try again.'], ], [ - [ - 'errorCode' => 'Instance.NotFound', - 'errorMessage' => 'eip instance not found.', - ], - [ - 'errorCode' => 'ENI.NotFound', - 'errorMessage' => 'eni not found.', - ], + ['errorCode' => 'InvalidVpnGatewayInstanceId.NotFound', 'errorMessage' => 'The specified vpn gateway instance id does not exist.', 'description' => ''], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'staticInfo' => ['returnType' => 'asynchronous', 'callback' => 'Vpc::2016-04-28::DescribeVpnGateway', 'callbackInterval' => 1000, 'maxCallbackTimes' => 30], + 'title' => 'Delete a policy-based route', + 'description' => '- **DeleteVpnPbrRouteEntry** is an asynchronous operation. After you send a request, the system returns a request ID, but the policy-based routing is not yet deleted. The deletion node continues to run in the background. You can invoke the [DescribeVpnGateway](~~73720~~) operation to query the instance status of the VPN gateway to determine the deletion status of the policy-based routing:'."\n" + .' - If the VPN gateway instance is in the **updating** state, the policy-based routing is being deleted.'."\n" + .' - If the VPN gateway instance is in the **active** state, the policy-based routing is deleted.'."\n" + .'- **DeleteVpnPbrRouteEntry** does not support concurrent deletion of policy-based routing for the same VPN gateway instance.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2022-12-13T03:56:52.000Z', 'description' => 'Error codes changed'], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"62C6A6A5-1534-53D9-AB1E-C9307A147ED5\\"\\n}","type":"json"}]', - 'title' => 'ModifyEipForwardMode', - ], - 'AssociateEipAddress' => [ - 'summary' => 'Associates an elastic IP address (EIP) with an instance in the same region.', - 'methods' => [ - 'post', - 'get', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '60', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DeleteVpnPbrRouteEntry'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'vpc:DeleteVpnPbrRouteEntry', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VpnGateway', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vpngateway/{#VpnGatewayId}'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"5BE01CD7-5A50-472D-AC14-CA181C5C03BE\\"\\n}","type":"json"}]', + ], + 'DeleteVpnRouteEntry' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'readAndWrite', - 'systemTags' => [ - 'operationType' => 'update', - 'riskType' => 'none', - 'chargeType' => 'paid', - ], + 'deprecated' => false, + 'systemTags' => ['operationType' => 'delete', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region to which the EIP belongs.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the region ID.'."\n", - 'type' => 'string', - 'required' => false, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], - ], - [ - 'name' => 'AllocationId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the EIP that you want to associate with an instance.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'eip-2zeerraiwb7ujsxdc****', - ], - ], - [ - 'name' => 'InstanceId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the instance with which you want to associate the EIP.'."\n" - ."\n" - .'You can enter the ID of a NAT gateway, CLB instance, ECS instance, secondary ENI, HAVIP, or IP address.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'i-2zebb08phyczzawe****', - ], + 'schema' => ['description' => 'The ID of the region where the VPN gateway is created. You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou ', 'title' => ''], ], [ - 'name' => 'InstanceType', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The type of the instance with which you want to associate the EIP. Valid values:'."\n" - ."\n" - .'* **Nat**: NAT gateway'."\n" - .'* **SlbInstance**: CLB instance'."\n" - .'* **EcsInstance** (default): ECS instance'."\n" - .'* **NetworkInterface**: secondary ENI'."\n" - .'* **HaVip**: HAVIP'."\n" - .'* **IpAddress**: IP address'."\n" - ."\n" - .'> The default value is **EcsInstance**. If the instance with which you want to associate the EIP is not an ECS instance, this parameter is required.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'EcsInstance', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'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.'."\n" + ."\n" + .'> 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.'."\n", 'type' => 'string', 'required' => false, 'example' => 'd7d24a21-f4ba-4454-9173-b3828dae492b ', 'title' => ''], ], [ - 'name' => 'InstanceRegionId', + 'name' => 'VpnGatewayId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region in which the instance with which you want to associate the EIP resides.'."\n" - ."\n" - .'> This parameter is required only when the EIP is added to a shared Global Accelerator (GA) instance.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The ID of the VPN gateway.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'vpn-bp1a3kqjiiq9legfx****', 'title' => ''], ], [ - 'name' => 'PrivateIpAddress', + 'name' => 'RouteDest', 'in' => 'query', - 'schema' => [ - 'description' => 'The IP address in the CIDR block of the vSwitch.'."\n" - ."\n" - .'If you leave this parameter empty, the system allocates a private IP address based on the VPC ID and vSwitch ID.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '192.168.XX.XX', - ], + 'schema' => ['description' => 'The destination CIDR block of the destination-based route.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '10.0.0.0/24 ', 'title' => ''], ], [ - 'name' => 'Mode', + 'name' => 'NextHop', 'in' => 'query', - 'schema' => [ - 'description' => 'The association mode. Valid values:'."\n" - ."\n" - .'* **NAT** (default): NAT mode'."\n" - .'* **MULTI_BINDED**: multi-EIP-to-ENI mode'."\n" - .'* **BINDED**: cut-network interface controller mode'."\n" - ."\n" - .'> This parameter is required only when **InstanceType** is set to **NetworkInterface**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'NAT', - ], + 'schema' => ['description' => 'The next hop of the destination-based route.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'vco-bp15oes1py4i66rmd****', 'title' => ''], ], [ - 'name' => 'VpcId', + 'name' => 'Weight', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the VPC in which an IPv4 gateway is created. The VPC and the EIP must be in the same region.'."\n" - ."\n" - .'When you associate an EIP with an IP address, the system can enable the IP address to access the Internet based on VPC route configurations.'."\n" - ."\n" - .'> This parameter is required if **InstanceType** is set to **IpAddress**, which indicates that the EIP is to be associated with an IP address.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'vpc-257gqcdfvx6n****', - ], + 'schema' => ['description' => 'The weight of the destination-based route. Valid values:'."\n" + ."\n" + .'* **0**: a low priority'."\n" + .'* **100**: a high priority'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => true, 'docRequired' => true, 'example' => '0', 'title' => ''], ], [ - 'name' => 'ClientToken', + 'name' => 'OverlayMode', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'You can use the client to generate a token, but you must make sure that the token is unique among different requests. The token can contain only ASCII characters.'."\n" - ."\n" - .'> 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.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '0c593ea1-3bea-11e9-b96b-88e9fe63****', - ], + 'schema' => ['description' => 'The tunneling protocol. Set the value to **Ipsec**.'."\n", 'type' => 'string', 'required' => false, 'example' => 'Ipsec', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => 'The response parameters.'."\n", 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '0ED8D006-F706-4D23-88ED-E11ED28DCAC0', - ], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '5BE01CD7-5A50-472D-AC14-CA181C5C03BE ', 'title' => ''], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidAssociation.Duplicated', - 'errorMessage' => 'Specified instance already is associated.', - ], - [ - 'errorCode' => 'OperationDenied', - 'errorMessage' => 'Specified instance is not in VPC.', - ], - [ - 'errorCode' => 'InvalidParameter.Mismatch', - 'errorMessage' => 'Specified elastic IP address and ECS instance are not in the same region.', - ], - [ - 'errorCode' => 'IncorrectEipStatus', - 'errorMessage' => 'Current elastic IP status does not support this operation', - ], - [ - 'errorCode' => 'IncorrectInstanceStatus', - 'errorMessage' => 'Current instance status does not support this operation.', - ], - [ - 'errorCode' => 'InvalidInstanceType.ValueNotSupported', - 'errorMessage' => 'The specified value of InstanceType is not supported.', - ], - [ - 'errorCode' => 'IncorrectHaVipStatus', - 'errorMessage' => 'HaVip can be operated by this action only when it\'s status is Available or InUse.', - ], - [ - 'errorCode' => 'InvalidParameter', - 'errorMessage' => 'The specified parameter is not valid.', - ], - [ - 'errorCode' => 'TaskConflict', - 'errorMessage' => 'The eip operate too frequent, TaskConflict.', - ], - [ - 'errorCode' => 'InvalidBindingStatus', - 'errorMessage' => 'The eip binding status invalid.', - ], - [ - 'errorCode' => 'BIND_INSTANCE_HAVE_PORTMAP_OR_BIND_EIP', - 'errorMessage' => 'The instance may have portMap or already bind eip.', - ], - [ - 'errorCode' => 'EIP_CAN_NOT_ASSOCIATE_WITH_PUBLIC_IP', - 'errorMessage' => 'instance already bind natpublicip,cannot bind eip.', - ], - [ - 'errorCode' => 'BIND_INSTANCE_OWENER_ERROR', - 'errorMessage' => 'Cannot operate the eip.', - ], - [ - 'errorCode' => 'NATGATEWAY_FINANCIALLOCKED', - 'errorMessage' => 'The NatGateway has expire, cannot do bind operation.', - ], - [ - 'errorCode' => 'InvalidParameter.InstanceTypeNotSupport', - 'errorMessage' => 'The specified instance type is not support.', - ], - [ - 'errorCode' => 'QuotaExceeded.NumberOfTrafficEip', - 'errorMessage' => 'The number of traffic eip on natgw exceed limitation.', - ], - [ - 'errorCode' => 'QuotaExceeded.NumberOfEip', - 'errorMessage' => 'Binded eip Quota exceed on this NatGw.', - ], - [ - 'errorCode' => 'Forbidden.EipCanNotBindGatgw', - 'errorMessage' => 'Eip can not bind on natgw.', - ], - [ - 'errorCode' => 'InvalidAction.Denied', - 'errorMessage' => 'Action is denied due to unfinished Eip configuration modification.', - ], - [ - 'errorCode' => 'InstanceType.NotSupport', - 'errorMessage' => 'The instance type is invalid.', - ], - [ - 'errorCode' => 'InvalidParams.NotFound', - 'errorMessage' => 'instance not found', - ], - [ - 'errorCode' => 'BindInstance.NotSupported', - 'errorMessage' => 'bind instance type %s is not supported.', - ], - [ - 'errorCode' => 'Forbidden.InstanceBandwidthNotZero', - 'errorMessage' => 'Eip can not bind with instance when it\'s bandwidth is not zero.', - ], - [ - 'errorCode' => 'INSTANCE_TYPE_NOT_SUPPORT', - 'errorMessage' => 'The instance type is invalid.', - ], - [ - 'errorCode' => 'ServerRegion.Invalid', - 'errorMessage' => 'Eip bind remote server region invalid.', - ], - [ - 'errorCode' => 'Eni.Attached', - 'errorMessage' => 'The eni should be detached from ecs when associating with direct eip.', - ], - [ - 'errorCode' => 'Eni.HasSubIp', - 'errorMessage' => 'Eni has sub ip can not bind direct eip.', - ], - [ - 'errorCode' => 'Invalid.DirectEip.BindType', - 'errorMessage' => 'The direct eip can be only associated with eni.', - ], - [ - 'errorCode' => 'InvalidStatus.EcsStatusNotSupport', - 'errorMessage' => 'The special instance status is not support operate', - ], - [ - 'errorCode' => 'Invalid.Function.NotSupported', - 'errorMessage' => 'Multi-IP function is under test, the region or uid is not supported.', - ], - [ - 'errorCode' => 'InvalidStatus.EniStatusNotSupport', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'InvalidParameter.EniInstanceId', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'InvalidNexthop.DirectEni', - 'errorMessage' => 'The direct Eni cannot be nexthop.', - ], - [ - 'errorCode' => 'Mode.Conflict', - 'errorMessage' => 'The eni can bind only one mode of eip.', - ], - [ - 'errorCode' => 'Mode.NotSupport', - 'errorMessage' => 'The user cannot use multi direct eip.', - ], - [ - 'errorCode' => 'QuotaExceed.MultiBindedEip', - 'errorMessage' => 'The number of multi binded eip is over limit.', - ], - [ - 'errorCode' => 'InvalidEIPStatus.BizDisabled', - 'errorMessage' => 'The EIP has been locked.', - ], - [ - 'errorCode' => 'OperationFailed.EniSubIp', - 'errorMessage' => 'Eni has sub ip can not bind direct eip.', - ], - [ - 'errorCode' => 'InvalidEip.EipQuotaExceeded', - 'errorMessage' => 'The specified eni assigned eip is more than privateIp.', - ], - [ - 'errorCode' => 'OperationFailed.QueryCommodityInfo', - 'errorMessage' => 'Operation failed because quey commodity info error.', - ], - [ - 'errorCode' => 'OperationUnsupported.MultiIp', - 'errorMessage' => 'Multi ip function is not support.', - ], - [ - 'errorCode' => 'InvalidNicOrVm.NotFound', - 'errorMessage' => 'Bind nic or vm not exist.', - ], - [ - 'errorCode' => 'OperationUnsupported.EipBindModel', - 'errorMessage' => 'The instance type of ecs does not support MULTI_BINDED model Eip.', - ], - [ - 'errorCode' => 'IncorrectStatus.NatGateway', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'EipBindRemote.BackendRegionMustBeSingle', - 'errorMessage' => 'eip bind remote instance, backend region must be single', - ], - [ - 'errorCode' => 'InvalidParameter.BindingInstanceRegion', - 'errorMessage' => 'The specified BindingInstanceRegion is not supported.', - ], - [ - 'errorCode' => 'OperationFailed.HavipBoundPortmap', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'IllegalParam.Mode', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'InvalidStatus.NotAllow', - 'errorMessage' => 'Bind instance status invalid', - ], - [ - 'errorCode' => 'InvalidInstance.NotExist', - 'errorMessage' => 'Bind instance data not exist', - ], - [ - 'errorCode' => 'InvalidBandwidthPackageId.NotFound', - 'errorMessage' => 'The specified BandwidthPackageId not exist.', - ], - [ - 'errorCode' => 'ResourceQueryError', - 'errorMessage' => 'The specified resource is queried error.', - ], - [ - 'errorCode' => 'InvalidStatus.InstanceHasBandWidth', - 'errorMessage' => 'The specified instance bandwidth invalid.', - ], - [ - 'errorCode' => 'OperationDenied.CloudBoxResourceExist', - 'errorMessage' => 'The operation is not allowed because there are resources related to the cloud box in VPC.', - ], - [ - 'errorCode' => 'OperationDenied.CloudBoxVSwitchExist', - 'errorMessage' => 'The operation is not allowed because a cloud box type vSwitch exists in VPC.', - ], - [ - 'errorCode' => 'OperationDenied.NoAvailablePrivateIp', - 'errorMessage' => 'The operation is failed because of vSwitch has not availalbe private ip', - ], - [ - 'errorCode' => 'UnsupportedRegion', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'ResourceAlreadyAssociated.IpAddress', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'OperationFailed.Ipv4GatewayNotOpenedInVpc', - 'errorMessage' => 'The operation is failed because Ipv4Gateway is not opened in Vpc.', - ], - [ - 'errorCode' => 'OperationFailed.Ipv4GatewayNotActivatedInVpc', - 'errorMessage' => 'The operation is failed because Ipv4Gateway is not activated in Vpc.', - ], - [ - 'errorCode' => 'OperationDenied.L2EipBindIpAddress', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'Forbidden', - 'errorMessage' => 'The eip instance owner error', - ], - [ - 'errorCode' => 'Forbidden.FinancialLocked', - 'errorMessage' => 'The ip business status is invalid.', - ], - [ - 'errorCode' => 'UnsupportedFeature.EipBindIpAddress', - 'errorMessage' => 'The feature of EipBindIpAddress is not supported.', - ], - [ - 'errorCode' => 'OperationFailed.InstanceNotExist', - 'errorMessage' => 'The ECS instance does not exist, or is not a VPC VM.', - ], - [ - 'errorCode' => 'OperationDenied.Ipv4GatewayExist', - 'errorMessage' => 'The operation is not allowed because of Ipv4GatewayExist.', - ], - [ - 'errorCode' => 'OperationFailed.EipBindModeConflict', - 'errorMessage' => 'Eips can not bind Eni with NAT mode and MULTI_BINDED mode at the same time.', - ], - [ - 'errorCode' => 'OperationFailed.EcsMigrating', - 'errorMessage' => 'The operation is failed because of ECS is migrating.', - ], - [ - 'errorCode' => 'OperationFailed.IpPrefixConflict', - 'errorMessage' => 'The operation failed due to the IP prefix of the ENI.', - ], - [ - 'errorCode' => 'UnsupportedFeature.EipBindPrefixIp', - 'errorMessage' => 'The feature of EipBindPrefixIp is not supported.', - ], - [ - 'errorCode' => 'OperationDenied.UnsupportedEipBindMode', - 'errorMessage' => 'The operation is not supported for the NAT gateway due to its EIP binding mode.', - ], - [ - 'errorCode' => 'OperationDenied.Unauthorized', - 'errorMessage' => 'The operation is not allowed because the user is not in the whitelist.', - ], - [ - 'errorCode' => 'OperationFailed.SystemBusy', - 'errorMessage' => 'Operation failed because system is busy.', - ], - [ - 'errorCode' => 'OperationFailed.PrivateIpAddressNotExist', - 'errorMessage' => 'The operation failed because the PrivateIpAddress is not found.', - ], - [ - 'errorCode' => 'IllegalParamFormat.%s', - 'errorMessage' => 'The param format of %s is illegal.', - ], - [ - 'errorCode' => 'MissingParam.InstanceId', - 'errorMessage' => 'The param of InstanceId can\'t be null or empty.', - ], - [ - 'errorCode' => 'InvalidEniType.SlaveEni', - 'errorMessage' => 'The eni type cannot be slave eni.', - ], - [ - 'errorCode' => 'IllegalParam.PrivateIpAddress', - 'errorMessage' => 'The specified PrivateIpAddress is illegal.', - ], + ['errorCode' => 'Resource.QuotaFull', 'errorMessage' => 'The quota of resource is full', 'description' => ''], + ['errorCode' => 'VpnGateway.Configuring', 'errorMessage' => 'The specified service is configuring.', 'description' => ''], + ['errorCode' => 'VpnGateway.FinancialLocked', 'errorMessage' => 'The specified service is financial locked.', 'description' => ''], + ['errorCode' => 'VpnRouteEntry.AlreadyExists', 'errorMessage' => 'The specified route entry is already exist.', 'description' => 'The route already exists.'], + ['errorCode' => 'VpnRouteEntry.Conflict', 'errorMessage' => 'The specified route entry has conflict.', 'description' => 'Route conflicts exist.'], + ['errorCode' => 'VpnRouteEntry.Configuring', 'errorMessage' => 'The specified route entry is configuring.', 'description' => 'The error message returned because the specified route is being configured.'], + ['errorCode' => 'InvalidRouteEntry.NotFound', 'errorMessage' => 'The specified route entry does not exist.', 'description' => 'The error message returned because the specified route does not exist.'], + ['errorCode' => 'VpnTask.CONFLICT', 'errorMessage' => 'Vpn task has conflict.', 'description' => 'The VPN operation conflicts. Try again later.'], + ['errorCode' => 'TaskConflict', 'errorMessage' => 'The operation is too frequent, please wait a moment and try again.', 'description' => 'Your requests are too frequent. Try again later.'], ], - 404 => [ - [ - 'errorCode' => 'InvalidAllocationId.NotFound', - 'errorMessage' => 'Specified allocation ID is not found.', - ], - [ - 'errorCode' => 'InvalidInstanId.NotFound', - 'errorMessage' => 'Specified instance does not exist.', - ], - [ - 'errorCode' => 'InvalidRegionId.NotFound', - 'errorMessage' => 'Specified value of InstanceRegionId is not supported.', - ], - [ - 'errorCode' => 'Forbidden.RegionNotFound', - 'errorMessage' => 'Specified instance is not found during access authentication.', - ], - [ - 'errorCode' => 'OperationDenied.VpcIpv4GatewayEnabled', - 'errorMessage' => 'The operation is not allowed because of the VPC of the NAT gateway has opened IPv4 Gateway.', - ], + 403 => [ + ['errorCode' => 'Forbbiden.SubUser', 'errorMessage' => 'User not authorized to operate on the specified resource as your account is created by another user.', 'description' => ''], + ['errorCode' => 'Forbidden', 'errorMessage' => 'User not authorized to operate on the specified resource.', 'description' => 'You do not have the permissions to manage the specified resource. Apply for the permissions and try again.'], ], - 503 => [ - [ - 'errorCode' => 'ServiceUnavailable', - 'errorMessage' => 'The request has failed due to a temporary failure of the server.', - ], + [ + ['errorCode' => 'InvalidVpnGatewayInstanceId.NotFound', 'errorMessage' => 'The specified vpn gateway instance id does not exist.', 'description' => ''], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"0ED8D006-F706-4D23-88ED-E11ED28DCAC0\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 0ED8D006-F706-4D23-88ED-E11ED28DCAC0\\n","errorExample":""}]', - 'title' => 'AssociateEipAddress', - 'description' => '* You can associate an EIP with an Elastic Compute Service (ECS) instance, a Classic Load Balancer (CLB) instance, a secondary elastic network interface (ENI), a NAT gateway, or a high-availability virtual IP address (HAVIP) in the same region. The ECS instance and CLB instance must be deployed in a virtual private cloud (VPC).'."\n" - ."\n" - .'* **AssociateEipAddress** is an asynchronous operation. After you send a request, the system returns a request ID and runs the task in the background. You can call the [DescribeEipAddresses](~~120193~~) operation to query the status of the task.'."\n" + 'staticInfo' => ['returnType' => 'asynchronous', 'callback' => 'Vpc::2016-04-28::DescribeVpnGateway', 'callbackInterval' => 1000, 'maxCallbackTimes' => 30], + 'title' => 'DeleteVpnRouteEntry', + 'summary' => 'Deletes a destination-based route from a VPN gateway.', + 'description' => '* **DeleteVpnRouteEntry** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call [DescribeVpnGateway](~~73720~~) to query the status of the task.'."\n" ."\n" - .' * If the EIP is in the **Associating** state, the EIP is being associated. In this state, you can only query the EIP and cannot perform other operations.'."\n" - .' * If the EIP is in the **InUse** state, the EIP is associated.'."\n" + .' * If a VPN gateway is in the **updating** state, the destination-based route is being deleted.'."\n" + .' * If the VPN gateway is in the **active** state, the destination-based route is deleted.'."\n" ."\n" - .'* You cannot call the **AssociateEipAddress** operation to associate an EIP with multiple instances at a time.'."\n", + .'* You cannot repeatedly call **DeleteVpnRouteEntry** to delete a destination-based route from a VPN gateway within the specified period of time.'."\n", 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'AssociateEipAddressBatch' => [ - 'summary' => 'Associates multiple elastic IP addresses (EIPs) with an instance in the same region.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [ + ['createdAt' => '2022-12-13T03:56:53.000Z', 'description' => 'Error codes changed'], ], + 'ramActions' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"5BE01CD7-5A50-472D-AC14-CA181C5C03BE\\\\t\\"\\n}","errorExample":""},{"type":"xml","example":"\\r\\n 5BE01CD7-5A50-472D-AC14-CA181C5C03BE\\r\\n","errorExample":""}]', + ], + 'DeletionProtection' => [ + 'summary' => 'Enables or disables deletion protection for an instance.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'write', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'update', - 'riskType' => 'none', - 'chargeType' => 'free', - ], + 'systemTags' => ['operationType' => 'delete'], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region to which the EIPs belong. You can call the [DescribeRegions](~~36063~~) operation to query the region ID.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The region ID of the instance for which you want to enable or disable deletion protection. You can call [DescribeRegions](~~36063~~) to query the most recent region list.', 'type' => 'string', 'required' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'BindedInstanceId', + 'name' => 'ProtectionEnable', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the instance with which you want to associate the EIPs.'."\n" - ."\n" - .'The instance can be a NAT gateway or a secondary ENI.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'ngw-hp3akk9irtd69jad****', - ], + 'schema' => ['description' => 'Specifies whether to enable deletion protection. Valid values:'."\n" + ."\n" + .'- **true**: enables deletion protection.'."\n" + ."\n" + .'- **false**: disables deletion protection.', 'type' => 'boolean', 'required' => true, 'example' => 'true', 'title' => ''], ], [ - 'name' => 'BindedInstanceType', + 'name' => 'Type', 'in' => 'query', - 'schema' => [ - 'description' => 'The type of the instance with which you want to associate the EIPs. Valid values:'."\n" - ."\n" - .'* **Nat**: NAT gateway'."\n" - .'* **NetworkInterface**: secondary ENI'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'Nat', - ], + 'schema' => ['description' => 'The type of the instance for which you want to enable or disable deletion protection. Valid values:'."\n" + ."\n" + .'- **EIP**: elastic IP address (EIP).'."\n" + ."\n" + .'- **CBWP**: Internet Shared Bandwidth.'."\n" + ."\n" + .'- **NATGW**: NAT gateway.', 'type' => 'string', 'required' => true, 'example' => 'EIP', 'title' => ''], ], [ - 'name' => 'Mode', + 'name' => 'InstanceId', 'in' => 'query', - 'schema' => [ - 'description' => 'The association mode. Set the value to **MULTI_BINDED**, which specifies the Multi-EIP-to-ENI mode.'."\n" - ."\n" - .'This parameter is required only when **BindedInstanceType** is set to **NetworkInterface**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'MULTI_BINDED', - ], + 'schema' => ['description' => 'The ID of the instance for which you want to set deletion protection in Settings.', 'type' => 'string', 'required' => true, 'example' => 'eip-uf6id7gvguruxe41v****', 'title' => ''], ], [ - 'name' => 'InstanceIds', + 'name' => 'ClientToken', 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => 'The EIPs to be associated with the instance.'."\n" - ."\n" - .'You must enter at least one EIP. You can enter up to 50 EIPs.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The IDs of the EIPs to be associated with the instance.'."\n" - ."\n" - .'You must enter at least one ID. You can enter up to 50 IDs.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'eip-2zeerraiwb7ujsxdc**** ', - ], - 'required' => true, - 'maxItems' => 50, - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'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.'."\n" + ."\n" + .'> If you do not specify this parameter, the system automatically uses the **RequestId** of the API request as the **ClientToken**. The **RequestId** may differ for each API request.', 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-426655440000 ', 'title' => ''], ], [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region to which the EIPs belong. You can call the [DescribeRegions](~~36063~~) operation to query the region ID.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], - ], - [ - 'name' => 'ClientToken', - 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'You can use the client to generate a token, but you must make sure that the token is unique among different requests. The token can contain only ASCII characters.'."\n" - ."\n" - .'> 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.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '02fb3da4-130e-11e9-8e44-0016e04115b', - ], + 'schema' => ['description' => 'The region ID of the instance for which you want to enable or disable deletion protection. You can call [DescribeRegions](~~36063~~) to query the most recent region list.', 'type' => 'string', 'required' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => 'The response parameters.'."\n", 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B45', - ], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'BAAEF103-96C4-4454-9210-066F2405F511', 'title' => ''], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidAssociation.Duplicated', - 'errorMessage' => 'Specified instance already is associated.', - ], - [ - 'errorCode' => 'OperationDenied', - 'errorMessage' => 'Specified instance is not in VPC.', - ], - [ - 'errorCode' => 'InvalidParameter.Mismatch', - 'errorMessage' => 'Specified elastic IP address and ECS instance are not in the same region.', - ], - [ - 'errorCode' => 'IncorrectEipStatus', - 'errorMessage' => 'Current elastic IP status does not support this operation', - ], - [ - 'errorCode' => 'IncorrectInstanceStatus', - 'errorMessage' => 'Current instance status does not support this operation.', - ], - [ - 'errorCode' => 'InvalidInstanceType.ValueNotSupported', - 'errorMessage' => 'The specified value of InstanceType is not supported.', - ], - [ - 'errorCode' => 'IncorrectHaVipStatus', - 'errorMessage' => 'HaVip can be operated by this action only when it\'s status is Available or InUse.', - ], - [ - 'errorCode' => 'InvalidParameter', - 'errorMessage' => 'The specified parameter is not valid.', - ], - [ - 'errorCode' => 'Forbidden', - 'errorMessage' => 'The eip instance owener error', - ], - [ - 'errorCode' => 'TaskConflict', - 'errorMessage' => 'The eip operate too frequent, TaskConflict.', - ], - [ - 'errorCode' => 'InvalidBindingStatus', - 'errorMessage' => 'The eip binding status invalid.', - ], - [ - 'errorCode' => 'BIND_INSTANCE_HAVE_PORTMAP_OR_BIND_EIP', - 'errorMessage' => 'The instance may have portMap or already bind eip.', - ], - [ - 'errorCode' => 'EIP_CAN_NOT_ASSOCIATE_WITH_PUBLIC_IP', - 'errorMessage' => 'instance already bind natpublicip,cannot bind eip.', - ], - [ - 'errorCode' => 'BIND_INSTANCE_OWENER_ERROR', - 'errorMessage' => 'Cannot operate the eip.', - ], - [ - 'errorCode' => 'NATGATEWAY_FINANCIALLOCKED', - 'errorMessage' => 'The NatGateway has expire, cannot do bind operation.', - ], - [ - 'errorCode' => 'InvalidParameter.InstanceTypeNotSupport', - 'errorMessage' => 'The specified instance type is not support.', - ], - [ - 'errorCode' => 'QuotaExceeded.NumberOfTrafficEip', - 'errorMessage' => 'The number of traffic eip on natgw exceed limitation.', - ], - [ - 'errorCode' => 'QuotaExceeded.NumberOfEip', - 'errorMessage' => 'Binded eip Quota exceed on this NatGw.', - ], - [ - 'errorCode' => 'InvalidEipBandwidth.OutOfMaxValue', - 'errorMessage' => 'The Eip Bandwidth is invalid.', - ], - [ - 'errorCode' => 'Forbidden.EipCanNotBindGatgw', - 'errorMessage' => 'Eip can not bind on natgw.', - ], - [ - 'errorCode' => 'InvalidAction.Denied', - 'errorMessage' => 'Action is denied due to unfinished Eip configuration modification.', - ], - [ - 'errorCode' => 'InstanceType.NotSupport', - 'errorMessage' => 'The instance type is invalid.', - ], - [ - 'errorCode' => 'InvalidParams.NotFound', - 'errorMessage' => 'instance not found', - ], - [ - 'errorCode' => 'BindInstance.NotSupported', - 'errorMessage' => 'bind instance type %s is not supported.', - ], - [ - 'errorCode' => 'Forbidden.InstanceBandwidthNotZero', - 'errorMessage' => 'Eip can not bind with instance when it\'s bandwidth is not zero.', - ], - [ - 'errorCode' => 'INSTANCE_TYPE_NOT_SUPPORT', - 'errorMessage' => 'The instance type is invalid.', - ], - [ - 'errorCode' => 'ServerRegion.Invalid', - 'errorMessage' => 'Eip bind remote server region invalid.', - ], - [ - 'errorCode' => 'Eni.Attached', - 'errorMessage' => 'The eni should be detached from ecs when associating with direct eip.', - ], - [ - 'errorCode' => 'Invalid.DirectEip.BindType', - 'errorMessage' => 'The direct eip can be only associated with eni.', - ], - [ - 'errorCode' => 'Invalid.Function.NotSupported', - 'errorMessage' => 'Multi-IP function is under test, the region or uid is not supported.', - ], - [ - 'errorCode' => 'InvalidStatus.EniStatusNotSupport', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'InvalidParameter.EniInstanceId', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => '%s', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'EipBatchBind.TypeNotSupport', - 'errorMessage' => 'eip batch bind type not support', - ], - [ - 'errorCode' => 'OperationFailed.RegionNotMatch', - 'errorMessage' => 'The specified eip is not in this region', - ], - [ - 'errorCode' => 'InvalidEIPStatus.BizDisabled', - 'errorMessage' => 'The EIP has been locked.', - ], - [ - 'errorCode' => 'Forbidden.FinancialLocked', - 'errorMessage' => 'The ip business status is invalid.', - ], - [ - 'errorCode' => 'OperationDenied.Unauthorized', - 'errorMessage' => 'The operation is not allowed because the user is not in the whitelist.', - ], - [ - 'errorCode' => 'OperationDenied.UnsupportedEipBindMode', - 'errorMessage' => 'The operation is not supported for the NAT gateway due to its EIP binding mode.', - ], - [ - 'errorCode' => 'OperationDenied.Ipv4GatewayExist', - 'errorMessage' => 'The operation is not allowed because of Ipv4GatewayExist.', - ], + ['errorCode' => 'DeletionProtection.ResourceNotExist', 'errorMessage' => 'The resource is not exist.', 'description' => 'The resource does not exist.'], + ['errorCode' => 'DeletionProtection.PrePaidNotSupport', 'errorMessage' => 'The prepaid resource is not support.', 'description' => 'Subscription resources are not supported.'], + ['errorCode' => 'DeletionProtection.TypeNotSupport', 'errorMessage' => 'The resource is not support.', 'description' => 'This type of resource is not supported.'], + ['errorCode' => 'DeletionProtection.AlreadyEnabled', 'errorMessage' => 'The resource deletion protection is already enabled.', 'description' => 'Deletion protection is enabled.'], + ['errorCode' => 'DeletionProtection.OwnerError', 'errorMessage' => 'The resource owner error.', 'description' => 'The operation is not allowed because the resource does not belong to you.'], ], 404 => [ - [ - 'errorCode' => 'InvalidAllocationId.NotFound', - 'errorMessage' => 'Specified allocation ID is not found.', - ], - [ - 'errorCode' => 'InvalidInstanId.NotFound', - 'errorMessage' => 'Specified instance does not exist.', - ], - [ - 'errorCode' => 'InvalidRegionId.NotFound', - 'errorMessage' => 'Specified value of InstanceRegionId is not supported.', - ], - [ - 'errorCode' => 'Forbidden.RegionNotFound', - 'errorMessage' => 'Specified instance is not found during access authentication.', - ], - [ - 'errorCode' => 'OperationDenied.VpcIpv4GatewayEnabled', - 'errorMessage' => 'The operation is not allowed because of the VPC of the NAT gateway has opened IPv4 Gateway.', - ], + ['errorCode' => 'InvalidAllocationId.NotFound', 'errorMessage' => 'Specified allocation ID is not found', 'description' => 'The specified EIP does not exist. Check whether the specified value is valid.'], + ['errorCode' => 'DeletionProtection.NotExist', 'errorMessage' => 'The resource deletion protection is not found', 'description' => 'Deletion protection is disabled.'], ], ], - 'staticInfo' => [ - 'returnType' => 'asynchronous', - 'callback' => 'Vpc::2016-04-28::DescribeEipAddresses', - 'callbackInterval' => 3000, - 'maxCallbackTimes' => 10, - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B45\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 54B48E3D-DF70-471B-AA93-08E683A1B45\\n","errorExample":""}]', - 'title' => 'AssociateEipAddressBatch', - 'description' => '* You can call the **AssociateEipAddressBatch** operation to associate EIPs with an instance in the same region. The instance must be a NAT gateway or a secondary elastic network interface (ENI). For more information about how to associate EIPs with other instances, see [AssociateEipAddress](~~120195~~).'."\n" - ."\n" - .'* **AssociateEipAddressBatch** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call the [DescribeEipAddresses](~~120193~~) operation to query the status of the task.'."\n" + 'title' => 'Instance deletion protection', + 'description' => '## Operation description'."\n" ."\n" - .' * If the EIP is in the **Associating** state, the EIP is being associated. You can only query the EIP and cannot perform other operations.'."\n" - .' * If the EIP is in the **InUse** state, the EIP is associated.'."\n" - ."\n" - .'* You cannot call the **AssociateEipAddressBatch** operation to associate an EIP with multiple instances at a time.'."\n", - ], - 'UnassociateEipAddress' => [ - 'summary' => 'Disassociates an elastic IP address (EIP) from a cloud resource.', - 'methods' => [ - 'post', - 'get', + .'After you enable deletion protection for an instance, you cannot delete the instance. To delete the instance, disable deletion protection first.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2025-02-08T07:52:06.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2023-05-23T02:31:26.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2021-11-22T01:44:16.000Z', 'description' => 'Request parameters changed'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DeletionProtection'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'vpc:DeletionProtection', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'Address', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:eip/{#AllocationId}'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"BAAEF103-96C4-4454-9210-066F2405F511\\"\\n}","type":"json"}]', + ], + 'Describe95Traffic' => [ + 'summary' => 'Call the Describe95Traffic operation to query 95th percentile traffic data for Internet Shared Bandwidth billed based on the enhanced 95th percentile method.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', - 'systemTags' => [ - 'operationType' => 'delete', - ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ - [ - 'name' => 'Force', - 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to disassociate the EIP from a NAT gateway if a DNAT or SNAT entry is added to the NAT gateway. Valid values:'."\n" - ."\n" - .'* **false** (default)'."\n" - .'* **true**'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], - ], [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region to which the EIP belongs. You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The region ID of the resource.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to obtain the region ID.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'AllocationId', + 'name' => 'ResourceType', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the EIP that you want to disassociate.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'eip-2zeerraiwb7uj6i0d****', - ], + 'schema' => ['description' => 'The resource type. Only **cbwp** is supported, which represents Internet Shared Bandwidth.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cbwp', 'title' => ''], ], [ 'name' => 'InstanceId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the instance from which you want to disassociate the EIP.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'i-hp3akk9irtd69jad****', - ], + 'schema' => ['description' => 'The resource ID.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cbwp-wz9j19xrwf78fvz7*****', 'title' => ''], ], [ - 'name' => 'InstanceType', + 'name' => 'Day', 'in' => 'query', - 'schema' => [ - 'description' => 'The type of instance from which you want to disassociate the EIP. Valid values:'."\n" - ."\n" - .'* **EcsInstance** (default): an Elastic Compute Service (ECS) instance in a virtual private cloud (VPC)'."\n" - .'* **SlbInstance**: a Server Load Balancer (SLB) instance in a VPC'."\n" - .'* **NetworkInterface**: a secondary elastic network interface (ENI) in a VPC'."\n" - .'* **Nat**: a NAT gateway'."\n" - .'* **HaVip**: a high-availability virtual IP address (HAVIP)'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'EcsInstance', - ], + 'schema' => ['description' => 'The date to query, in UTC+8. Format: YYYY-MM-DD.'."\n" + ."\n" + .'> You can query only data from last month or earlier.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '2022-10-22', 'title' => ''], ], - [ - 'name' => 'PrivateIpAddress', - 'in' => 'query', + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => 'The private IP address of the ECS instance or the secondary ENI from which you want to disassociate the EIP.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '192.XX.XX.2', - ], - ], - [ - 'name' => 'ClientToken', - 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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.'."\n" - ."\n" - .'> 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.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '02fb3da4-130e-11**** ', - ], - ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'description' => 'The response parameters.'."\n", + 'description' => 'The list of returned information.', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '0ED8D006-F706-4D23-88ED-E11ED28DCAC0', + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '0ED8D006-F706-4D23-88ED-E11ED28DCAC0', 'title' => ''], + 'Traffic95Summary' => [ + 'description' => 'The bandwidth statistics for Internet Shared Bandwidth billed by enhanced 95th percentile.', + 'type' => 'object', + 'properties' => [ + 'InternetChargeType' => ['description' => 'The billing method of the Internet Shared Bandwidth instance on the queried date. Valid values:'."\n" + ."\n" + .'- **PayBy95**: pay-by-enhanced-95th-percentile'."\n" + ."\n" + .'- **PayByBandwidth**: pay-by-bandwidth'."\n" + ."\n" + .'- **PayByDominantTraffic**: pay-by-dominant-traffic', 'type' => 'string', 'example' => 'PayBy95', 'title' => ''], + 'InstanceId' => ['description' => 'The resource ID.', 'type' => 'string', 'example' => 'cbwp-wz9j19xrwf78fvz7*****'."\n", 'title' => ''], + 'Bandwidth' => ['description' => 'The peak bandwidth of the Internet Shared Bandwidth instance on the queried date. Unit: Mbps.', 'type' => 'integer', 'format' => 'int64', 'example' => '20000.0', 'title' => ''], + 'FifthPeakBandwidth' => ['description' => 'The daily peak bandwidth. Unit: Mbps.'."\n" + ."\n" + .''."\n" + ."\n" + .'For more information, see [Daily peak bandwidth](~~89729~~).'."\n" + ."\n" + .'', 'type' => 'string', 'example' => '1064.244837773641', 'title' => ''], + 'MinimumConsumeBandwidth' => ['description' => 'The minimum bandwidth commitment of the Internet Shared Bandwidth instance on the queried date. Unit: Mbps.', 'type' => 'string', 'example' => '0.0', 'title' => ''], + 'Traffic95DetailList' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Traffic95Detail' => [ + 'description' => 'The list of average bandwidth values per 5 minutes for inbound and outbound directions on the queried date.', + 'type' => 'array', + 'items' => [ + 'description' => 'The average bandwidth per 5-minute interval for inbound and outbound directions on the queried date, sampled at 5-minute granularity.', + 'type' => 'object', + 'properties' => [ + 'Time' => ['description' => 'The timestamp (as a string).', 'type' => 'string', 'example' => '2024-01-01T00:00:00Z', 'title' => ''], + 'BillBandwidth' => ['description' => 'The bandwidth value at the sampling point. This is the higher of the inbound or outbound bandwidth during the time interval. Unit: Mbps.', 'type' => 'string', 'example' => '118.5090322113037', 'title' => ''], + 'OutBandwidth' => ['description' => 'The outbound bandwidth. Unit: Mbps.', 'type' => 'string', 'example' => '96.41217480977376', 'title' => ''], + 'InBandwidth' => ['description' => 'The inbound bandwidth. Unit: Mbps.', 'type' => 'string', 'example' => '118.5090322113037', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + ], + 'title' => '', + 'example' => '', ], ], + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'IncorrectEipStatus', - 'errorMessage' => 'Current elastic IP status does not support this operation.', - ], - [ - 'errorCode' => 'InvalidInstanceId.NotFound', - 'errorMessage' => 'Specified instance does not exist.', - ], - [ - 'errorCode' => 'IncorrectInstanceStatus', - 'errorMessage' => 'The current status of instance does not support this operation.', - ], - [ - 'errorCode' => 'InvalidInstanceType.ValueNotSupported', - 'errorMessage' => 'The specified value of InstanceType is not supported.', - ], - [ - 'errorCode' => 'IncorrectHaVipStatus', - 'errorMessage' => 'This operation is denied because satus of the specified HaVip is neither Available nor InUse.', - ], - [ - 'errorCode' => 'OperationDenied', - 'errorMessage' => 'Eip of default vpc not allow this operation', - ], - [ - 'errorCode' => 'InvalidParameter', - 'errorMessage' => 'The specified parameter is not valid.', - ], - [ - 'errorCode' => 'TaskConflict', - 'errorMessage' => 'The eip operate too frequent, TaskConflict.', - ], - [ - 'errorCode' => 'InvalidBindingStatus', - 'errorMessage' => 'The eip binding status invalid.', - ], - [ - 'errorCode' => 'Forbidden.FinancialLocked', - 'errorMessage' => 'The ip business status is invalid.', - ], - [ - 'errorCode' => 'InvalidIpStatus.HasBeenUsedBySnatTable', - 'errorMessage' => 'The removed ip address has been used by snat table.', - ], - [ - 'errorCode' => 'InvalidIpStatus.HasBeenUsedByForwardEntry', - 'errorMessage' => 'The specified address has been used by forwardTable.', - ], - [ - 'errorCode' => 'Eni.Attached', - 'errorMessage' => 'The eni should be detached from ecs when associating with direct eip.', - ], - [ - 'errorCode' => 'InvalidEIPStatus.BizDisabled', - 'errorMessage' => 'The EIP has been locked.', - ], - [ - 'errorCode' => 'InvalidStatus.EcsStatusNotSupport', - 'errorMessage' => 'The special instance status Pending is not support operate', - ], - [ - 'errorCode' => 'InvalidStatus.EniStatusNotSupport', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'InvalidStatus.SnatOrDnat', - 'errorMessage' => 'Operation failed because snat or dnat in unstable status.', - ], - [ - 'errorCode' => 'DependencyViolation.SnatEntry', - 'errorMessage' => 'The specified eip is in ip pool.', - ], - [ - 'errorCode' => '%s', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'InvalidStatus.NotAllow', - 'errorMessage' => 'Bind instance status invalid', - ], - [ - 'errorCode' => 'Forbidden', - 'errorMessage' => 'The eip instance owener error', - ], - [ - 'errorCode' => 'InvalidLoadBalancerId.NotFound', - 'errorMessage' => 'LoadBalancerId does not exist.', - ], - [ - 'errorCode' => 'OperationFailed.SystemBusy', - 'errorMessage' => 'Operation failed because system is busy.', - ], + ['errorCode' => 'InvalidInstance.NotFound', 'errorMessage' => 'The specified Instance does not exist in the specified region.', 'description' => ''], + ['errorCode' => 'IllegalParam.Day', 'errorMessage' => 'The specified parameter day is illegal.', 'description' => 'The specified input parameter Day is invalid.'], + ['errorCode' => 'IllegalParam.ResourceType', 'errorMessage' => 'Invalid Resource Type value.', 'description' => 'The ResourceType parameter is not supported or set to an invalid value.'], + ['errorCode' => 'OperationDenied.QueryCdt95Instance', 'errorMessage' => 'The operation is not allowed because of QueryCdt95Instance.', 'description' => 'The error message returned because you cannot query an EIP bandwidth plan connected to CDT.'], + ['errorCode' => 'OperationUnsupported.QueryCurrentMonthTraffic', 'errorMessage' => 'The operation is not allowed because current month traffic query is not supported under 95 billing mode.', 'description' => 'Querying the current month traffic data in the 95 billing mode is not supported.'], ], 404 => [ - [ - 'errorCode' => 'InvalidAllocationId.NotFound', - 'errorMessage' => 'Specified allocation ID is not found', - ], - [ - 'errorCode' => 'InvalidBindInstance.NotFound', - 'errorMessage' => 'The specified bind instance does not exist.', - ], - [ - 'errorCode' => 'Forbidden.RegionNotFound', - 'errorMessage' => 'Specified region is not found during access authentication.', - ], + ['errorCode' => 'InvalidRegionId.NotFound', 'errorMessage' => 'The specified RegionId does not exist in our records.', 'description' => ''], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"0ED8D006-F706-4D23-88ED-E11ED28DCAC0\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 0ED8D006-F706-4D23-88ED-E11ED28DCAC0\\n","errorExample":""}]', - 'title' => 'UnassociateEipAddress', - 'description' => '* **UnassociateEipAddress** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call the [DescribeEipAddresses](~~120193~~) operation to query the status of the task.'."\n" - ."\n" - .' * If the EIP is in the **Unassociating** state, the EIP is being disassociated. In this state, you can only query the EIP and cannot perform other operations.'."\n" - .' * If the EIP is in the **Available** state, the EIP is disassociated.'."\n" - ."\n" - .'* You cannot repeatedly call the **UnassociateEipAddress** operation within the specified period of time.'."\n", - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'CreatePublicIpAddressPool' => [ - 'summary' => 'Creates an IP address pool.', - 'methods' => [ - 'post', - 'get', + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"0ED8D006-F706-4D23-88ED-E11ED28DCAC0\\",\\n \\"Traffic95Summary\\": {\\n \\"InternetChargeType\\": \\"PayBy95\\",\\n \\"InstanceId\\": \\"cbwp-wz9j19xrwf78fvz7*****\\\\n\\",\\n \\"Bandwidth\\": 20000,\\n \\"FifthPeakBandwidth\\": \\"1064.244837773641\\",\\n \\"MinimumConsumeBandwidth\\": \\"0.0\\",\\n \\"Traffic95DetailList\\": {\\n \\"Traffic95Detail\\": [\\n {\\n \\"Time\\": \\"2024-01-01T00:00:00Z\\",\\n \\"BillBandwidth\\": \\"118.5090322113037\\",\\n \\"OutBandwidth\\": \\"96.41217480977376\\",\\n \\"InBandwidth\\": \\"118.5090322113037\\"\\n }\\n ]\\n }\\n }\\n}","type":"json"}]', + 'title' => 'Describe95Traffic', + 'changeSet' => [ + ['createdAt' => '2024-08-19T02:26:04.000Z', 'description' => 'Error codes changed'], ], - 'schemes' => [ - 'http', - 'https', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '180', 'countWindow' => 60, 'regionId' => '*', 'api' => 'Describe95Traffic'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'vpc:Describe95Traffic', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'BandwidthPackage', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:combandwidthpackage/{#BandwidthPackageId}'], + ], + ], + ], ], + ], + 'DescribeAccessPoints' => [ + 'summary' => 'Call the DescribeAccessPoints operation to query Express Connect access points in a specified region.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'read', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'create', - 'riskType' => 'none', - 'chargeType' => 'paid', - 'autoTest' => true, - 'tenantRelevance' => 'publicInformation', - ], + 'systemTags' => ['operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', 'tenantRelevance' => 'publicInformation'], 'parameters' => [ [ - 'name' => 'Isp', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The line type. Valid values:'."\n" - ."\n" - .'* **BGP** (default)'."\n" - .'* **BGP_PRO**'."\n" - ."\n" - .'For more information about BGP (Multi-ISP) lines and BGP (Multi-ISP) Pro lines, see the "Line types" section in the [What is EIP?](~~32321~~) topic.'."\n" - ."\n" - .'* If you are allowed to use single-ISP bandwidth, you can also use one of the following values:'."\n" - ."\n" - .' * **ChinaTelecom**'."\n" - .' * **ChinaUnicom**'."\n" - .' * **ChinaMobile**'."\n" - .' * **ChinaTelecom_L2**'."\n" - .' * **ChinaUnicom_L2**'."\n" - .' * **ChinaMobile_L2**'."\n" - ."\n" - .'* If your services are deployed in China East 1 Finance, this parameter is required and you must set the value to **BGP_FinanceCloud**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'BGP', - ], + 'schema' => ['description' => 'The ID of the region where the access point is located.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~448570~~) operation to obtain the region ID.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'Name', + 'name' => 'PageNumber', 'in' => 'query', - 'schema' => [ - 'description' => 'The name of the IP address pool.'."\n" - ."\n" - .'The name must be 0 to 128 characters in length and cannot start with `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'AddressPoolName', - ], + 'schema' => ['description' => 'The page number. Default value: **1**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'minimum' => '1', 'default' => '1', 'example' => '1', 'title' => ''], ], [ - 'name' => 'Description', + 'name' => 'PageSize', 'in' => 'query', - 'schema' => [ - 'description' => 'The description of the IP address pool.'."\n" - ."\n" - .'The description must be 0 to 256 characters in length and cannot start with `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'AddressPoolDescription', - ], + 'schema' => ['description' => 'The number of entries per page. Maximum value: **50**. Default value: **10**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '50', 'minimum' => '1', 'default' => '10', 'example' => '10', 'title' => ''], ], [ - 'name' => 'ClientToken', + 'name' => 'AcceptLanguage', 'in' => 'query', + 'schema' => ['description' => 'The language of the response. Valid values:'."\n" + ."\n" + .'- **zh-CN**: Chinese.'."\n" + ."\n" + .'- **en-US** (default): English.', 'type' => 'string', 'required' => false, 'example' => 'zh-CN', 'title' => ''], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'You can use the client to generate a value, and you must make sure that each request has a unique token value. The client token can contain only ASCII characters.'."\n" - ."\n" - .'> If you do not specify this parameter, the system automatically uses the value of **RequestId** as the value of **ClientToken**. The value of **RequestId** for each API request is different.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '02fb3da4-130e-11****', + 'description' => 'The request ID.', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '3E85D803-C7CF-4BCD-9CFE-6DBA1DFFA027', 'title' => ''], + 'PageNumber' => ['description' => 'The page number. Default: **1**.', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''], + 'PageSize' => ['description' => 'The number of entries per page. Maximum: **50**. Default: **10**.', 'type' => 'integer', 'format' => 'int32', 'example' => '10', 'title' => ''], + 'TotalCount' => ['description' => 'The total number of entries.', 'type' => 'integer', 'format' => 'int32', 'example' => '5', 'title' => ''], + 'AccessPointSet' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'AccessPointType' => [ + 'description' => 'The list of access points.', + 'type' => 'array', + 'items' => [ + 'description' => 'The details of an access point.', + 'type' => 'object', + 'properties' => [ + 'Status' => ['description' => 'The status of the access point.'."\n" + ."\n" + .'- **recommended**: The access point is operating normally.'."\n" + ."\n" + .'- **hot**: The access point is under heavy load but operating normally.'."\n" + ."\n" + .'- **full**: The access point is fully occupied and cannot accept new connections.'."\n" + ."\n" + .'- **disabled**: The access point is unavailable.', 'type' => 'string', 'example' => 'recommended', 'title' => ''], + 'Type' => ['description' => 'The network type to which the access point provides access. Default: **VPC**.', 'type' => 'string', 'example' => 'VPC', 'title' => ''], + 'HostOperator' => ['description' => 'The carrier of the access point.', 'type' => 'string', 'example' => '中国电信', 'title' => ''], + 'Description' => ['description' => 'The description of the access point.', 'type' => 'string', 'example' => '接入点描述信息', 'title' => ''], + 'AttachedRegionNo' => ['description' => 'The region ID of the access point.', 'type' => 'string', 'example' => 'cn-hangzhou', 'title' => ''], + 'Name' => ['description' => 'The name of the access point.', 'type' => 'string', 'example' => '杭州-余杭-C', 'title' => ''], + 'AccessPointId' => ['description' => 'The access point ID.', 'type' => 'string', 'example' => 'ap-cn-hangzhou-****', 'title' => ''], + 'Location' => ['description' => 'The location of the access point.', 'type' => 'string', 'example' => '杭州', 'title' => ''], + 'AccessPointFeatureModels' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'AccessPointFeatureModel' => [ + 'description' => 'A list of features of the access point.', + 'type' => 'array', + 'items' => [ + 'description' => 'A feature of the access point.', + 'type' => 'object', + 'properties' => [ + 'FeatureValue' => ['description' => 'The value of the feature.', 'type' => 'string', 'example' => 'true', 'title' => ''], + 'FeatureKey' => ['description' => 'The key of the feature.', 'type' => 'string', 'example' => 'AP_Support_VbrBandwidthLimit', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + ], + 'description' => 'A list of features of the access point.', + 'title' => '', + 'example' => '', + ], + ], + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + ], + 'description' => 'The list of access points.', + 'title' => '', + 'example' => '', + ], + ], + 'title' => '', + 'example' => '', ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InvalidAccessPointType.NotSupport', 'errorMessage' => 'Invalid access point type.', 'description' => ''], + ], + 404 => [ + ['errorCode' => 'InvalidRegionId.NotFound', 'errorMessage' => 'The RegionId provided does not exist in our records.', 'description' => ''], + ['errorCode' => 'InvalidRegionId.NotSupport', 'errorMessage' => 'The RegionId provided does not support in our records.', 'description' => ''], + ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'DescribeAccessPoints', + 'changeSet' => [ + ['createdAt' => '2023-05-18T06:25:10.000Z', 'description' => 'Request parameters changed'], + ], + 'ramActions' => [], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"3E85D803-C7CF-4BCD-9CFE-6DBA1DFFA027\\",\\n \\"PageNumber\\": 1,\\n \\"PageSize\\": 10,\\n \\"TotalCount\\": 5,\\n \\"AccessPointSet\\": {\\n \\"AccessPointType\\": [\\n {\\n \\"Status\\": \\"recommended\\",\\n \\"Type\\": \\"VPC\\",\\n \\"HostOperator\\": \\"中国电信\\",\\n \\"Description\\": \\"接入点描述信息\\",\\n \\"AttachedRegionNo\\": \\"cn-hangzhou\\",\\n \\"Name\\": \\"杭州-余杭-C\\",\\n \\"AccessPointId\\": \\"ap-cn-hangzhou-****\\",\\n \\"Location\\": \\"杭州\\",\\n \\"AccessPointFeatureModels\\": {\\n \\"AccessPointFeatureModel\\": [\\n {\\n \\"FeatureValue\\": \\"true\\",\\n \\"FeatureKey\\": \\"AP_Support_VbrBandwidthLimit\\"\\n }\\n ]\\n }\\n }\\n ]\\n }\\n}","type":"json"}]', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DescribeAccessPoints'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], + ], + ], + 'DescribeBgpGroups' => [ + 'summary' => 'Queries Border Gateway Protocol (BGP) groups in a region.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'DryRun', - 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to precheck only this request. Valid values:'."\n" - ."\n" - .'* **true**: prechecks the request without creating an IP address pool. The system checks the required parameters, request format, and service limits. If the request fails to pass the precheck, an error code is returned. If the request passes the precheck, the `DryRunOperation` error code is returned.'."\n" - .'* **false**: sends the request. This is the default value. If the request passes the precheck, a 2xx HTTP status code is returned and the IP address pool is created.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'AK' => [], ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free'], + 'parameters' => [ [ - 'name' => 'ResourceGroupId', + 'name' => 'RouterId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the resource group to which the IP address pool belongs.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'rg-acfmxazb4pcdvf****', - ], + 'schema' => ['description' => 'The ID of the virtual border router (VBR) that is associated with the BGP group.'."\n", 'type' => 'string', 'required' => false, 'example' => 'vbr-bp1ctxy813985gkuk****', 'title' => ''], ], [ - 'name' => 'RegionId', + 'name' => 'BgpGroupId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region where you want to create the IP address pool.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-chengdu', - ], + 'schema' => ['description' => 'The ID of the BGP group.'."\n", 'type' => 'string', 'required' => false, 'example' => 'bgpg-bp1k25cyp26cllath****', 'title' => ''], ], [ - 'name' => 'BizType', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The service type of the IP address pool. Valid values:'."\n" - ."\n" - .'* **CloudBox** Only cloud box users can select this type.'."\n" - .'* **Default**: This is the default value.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'Default', - ], + 'schema' => ['description' => 'The ID of the region in which the VBR is deployed.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to obtain the region ID.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-shanghai', 'title' => ''], ], [ - 'name' => 'Zones', + 'name' => 'IsDefault', 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => 'The zone of the IP address pool. If you set **BizType** to **CloudBox**, this parameter is required.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The zone of the IP address pool. If you set **BizType** to **CloudBox**, this parameter is required. You can specify only one zone.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'ap-southeast-1-lzdvn-cb', - ], - 'required' => false, - 'maxItems' => 10, - ], + 'schema' => ['description' => 'Specifies whether the BGP group is the default one. Valid values:'."\n" + ."\n" + .'* **false**'."\n" + .'* **true**'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], ], [ - 'name' => 'Tag', + 'name' => 'PageNumber', 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => 'The tag of the resource.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => 'The tag key of the resource. You can specify up to 20 tag keys. The tag key cannot be an empty string.'."\n" - ."\n" - .'A tag key can be up to 128 characters in length. It cannot start with `aliyun` or `acs:`, and cannot contain `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'FinanceDept', - ], - 'Value' => [ - 'description' => 'The tag value of the resource. You can specify up to 20 tag values. The tag value can be an empty string.'."\n" - ."\n" - .'The tag value can be up to 128 characters in length. It cannot start with `aliyun` or `acs:`, and cannot contain `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'FinanceJoshua', - ], - ], - 'required' => false, - ], - 'required' => false, - 'maxItems' => 21, - ], + 'schema' => ['description' => 'The page number. Default value: **1**.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'minimum' => '1', 'example' => '1', 'default' => '1', 'title' => ''], ], [ - 'name' => 'SecurityProtectionTypes', + 'name' => 'PageSize', 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => 'The editions of Anti-DDoS.'."\n" - .'- If you do not specify this parameter, Anti-DDoS Origin Basic is used.'."\n" - .'- If you set the parameter to AntiDDoS_Enhanced, Anti-DDoS Pro/Premium is used.', - 'type' => 'array', - 'items' => [ - 'description' => 'The editions of Anti-DDoS.'."\n" - .'- If you do not specify this parameter, Anti-DDoS Origin Basic is used.'."\n" - .'- If you set the parameter to AntiDDoS_Enhanced, Anti-DDoS Pro/Premium is used.', - 'type' => 'string', - 'required' => false, - 'example' => 'AntiDDoS_Enhanced', - ], - 'required' => false, - 'maxItems' => 100, - ], + 'schema' => ['description' => 'The number of entries per page. The maximum value is **50**. Default value: **10**.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '50', 'minimum' => '1', 'example' => '10', 'default' => '10', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => 'The returned data.'."\n", 'type' => 'object', 'properties' => [ - 'PulbicIpAddressPoolId' => [ - 'description' => 'The ID of the IP address pool.'."\n", - 'type' => 'string', - 'deprecated' => true, - 'example' => 'pippool-6wetvn6fumkgycssx****', - ], - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '4EC47282-1B74-4534-BD0E-403F3EE64CAF', - ], - 'ResourceGroupId' => [ - 'description' => 'The ID of the resource group to which the IP address pool belongs.'."\n", - 'type' => 'string', - 'example' => 'rg-acfmxazb4pcdvf****', - ], - 'PublicIpAddressPoolId' => [ - 'description' => 'The ID of the IP address pool.'."\n", - 'type' => 'string', - 'example' => 'pippool-6wetvn6fumkgycssx****', + 'PageSize' => ['description' => 'The number of entries per page.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '10', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '1D0971B2-A35A-42C1-A44C-E91360C36C0B', 'title' => ''], + 'PageNumber' => ['description' => 'The page number.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''], + 'TotalCount' => ['description' => 'The number of entries returned.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''], + 'BgpGroups' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'BgpGroup' => [ + 'description' => 'The detailed information about the BGP group.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Status' => ['description' => 'The status of the BGP group.'."\n", 'type' => 'string', 'example' => 'Available', 'title' => ''], + 'BgpGroupId' => ['description' => 'The ID of the BGP group.'."\n", 'type' => 'string', 'example' => 'bgpg-bp1k25cyp26cllath****', 'title' => ''], + 'RouterId' => ['description' => 'The ID of the VBR.'."\n", 'type' => 'string', 'example' => 'vbr-bp1ctxy813985gkuk****', 'title' => ''], + 'PeerAsn' => ['description' => 'The autonomous system number (ASN) of the on-premises device in the data center.'."\n", 'type' => 'string', 'example' => '1****', 'title' => ''], + 'LocalAsn' => ['description' => 'The ASN of the device on the Alibaba Cloud side.'."\n", 'type' => 'string', 'example' => '45104', 'title' => ''], + 'RegionId' => ['description' => 'The ID of the region to which the BGP group belongs.'."\n", 'type' => 'string', 'example' => 'cn-shanghai', 'title' => ''], + 'Hold' => ['description' => 'The hold time to receive BGP messages. Unit: seconds.'."\n" + ."\n" + .'> If no message is received within the hold time, the BGP peer is considered disconnected.'."\n", 'type' => 'string', 'example' => '30', 'title' => ''], + 'IpVersion' => ['description' => 'The IP version of the BGP group. Valid values:'."\n" + ."\n" + .'* **ipv4**: IPv4'."\n" + .'* **ipv6**: IPv6. IPv6 is supported only if the VBR of the BGP group has IPv6 enabled.'."\n", 'type' => 'string', 'example' => 'IPv4', 'title' => ''], + 'Description' => ['description' => 'The description of the BGP group.'."\n", 'type' => 'string', 'example' => 'BGP组描述。', 'title' => ''], + 'Keepalive' => ['description' => 'The keepalive time. Unit: seconds.'."\n", 'type' => 'string', 'example' => '10', 'title' => ''], + 'IsFake' => ['description' => 'Indicates whether the ASN is fake. Valid values:'."\n" + ."\n" + .'* **false**'."\n" + .'* **true**'."\n", 'type' => 'string', 'example' => 'true', 'title' => ''], + 'RouteLimit' => ['description' => 'The maximum number of route entries for BGP dynamic route learning.'."\n", 'type' => 'string', 'example' => '99', 'title' => ''], + 'Name' => ['description' => 'The name of the BGP group.'."\n", 'type' => 'string', 'example' => 'name', 'title' => ''], + 'AuthKey' => ['description' => 'The key used by the BGP group.'."\n", 'type' => 'string', 'example' => '!PWZ****', 'title' => ''], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'IllegalParam.Isp', - 'errorMessage' => 'The param of Isp [%s] is illegal.', - ], - [ - 'errorCode' => 'IllegalParam.Name', - 'errorMessage' => 'The param of Name [%s] is illegal.', - ], - [ - 'errorCode' => 'IllegalParam.Description', - 'errorMessage' => 'The param of Description [%s] is illegal.', - ], - [ - 'errorCode' => 'Forbidden.CreatePublicIpAddressPool', - 'errorMessage' => 'Authentication is failed for creating public ip address pool.', - ], - [ - 'errorCode' => 'QuotaExceeded.PublicIpAddressPool', - 'errorMessage' => 'The quota of PublicIpAddressPool is exceeded.', - ], - [ - 'errorCode' => 'MissingParam.Zones', - 'errorMessage' => 'The Zones parameter is required.', - ], - [ - 'errorCode' => 'UnsupportedRegion', - 'errorMessage' => 'The feature is not supported in current region.', - ], - [ - 'errorCode' => 'IllegalParam.Zones', - 'errorMessage' => 'The values of Zones [%s] are invalid.', - ], - [ - 'errorCode' => 'IllegalParamSize.Zones', - 'errorMessage' => 'An invalid number of zones is specified.', - ], - [ - 'errorCode' => 'UnsupportedFeature.Isp', - 'errorMessage' => 'The feature of Isp is not supported.', - ], - [ - 'errorCode' => 'OperationDenied.ISPNotSupportDdosEnhanced', - 'errorMessage' => 'The operation is not allowed because of DdosEnhanced is not supported by current isp.', - ], - [ - 'errorCode' => 'IllegalParam.SecurityProtectionTypes', - 'errorMessage' => 'The param of securityProtectionTypes is illegal.', - ], - [ - 'errorCode' => 'IncorrectBusinessStatus.PublicIpAddressPool', - 'errorMessage' => 'The business status of publicIpAddressPool is incorrect.', - ], - [ - 'errorCode' => 'OptInRequired.PublicIpAddressPool', - 'errorMessage' => 'You are not authorized to use the requested service of publicIpAddressPool. Ensure that you have subscribed to the service you are trying to use.', - ], + ['errorCode' => 'IellgalParameter.OwnerAccount', 'errorMessage' => 'The specified parameter OwnerAccount is not valid.', 'description' => 'The specified parameter OwnerAccount is illegal.'], + ], + 404 => [ + ['errorCode' => 'InvalidRegionId.NotFound', 'errorMessage' => 'The specified RegionId does not exist in our records.', 'description' => ''], + ], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error.', 'description' => ''], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"PulbicIpAddressPoolId\\": \\"pippool-6wetvn6fumkgycssx****\\",\\n \\"RequestId\\": \\"4EC47282-1B74-4534-BD0E-403F3EE64CAF\\",\\n \\"ResourceGroupId\\": \\"rg-acfmxazb4pcdvf****\\",\\n \\"PublicIpAddressPoolId\\": \\"pippool-6wetvn6fumkgycssx****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n pippool-6wetvn6fumkgycssx****\\n 4EC47282-1B74-4534-BD0E-403F3EE64CAF\\n rg-acfmxazb4pcdvf****\\n pippool-6wetvn6fumkgycssx****\\n","errorExample":""}]', - 'title' => 'CreatePublicIpAddressPool', - 'description' => 'By default, the IP address pool feature is unavailable. You can apply for the privilege to use the **IP address pool feature** in the Quota Center console. For more information, see the "Request a quota increase in the Quota Center console" section in the [Manage EIP quotas](~~108213~~) topic.'."\n", + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'DescribeBgpGroups', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"PageSize\\": 10,\\n \\"RequestId\\": \\"1D0971B2-A35A-42C1-A44C-E91360C36C0B\\",\\n \\"PageNumber\\": 1,\\n \\"TotalCount\\": 1,\\n \\"BgpGroups\\": {\\n \\"BgpGroup\\": [\\n {\\n \\"Status\\": \\"Available\\",\\n \\"BgpGroupId\\": \\"bgpg-bp1k25cyp26cllath****\\",\\n \\"RouterId\\": \\"vbr-bp1ctxy813985gkuk****\\",\\n \\"PeerAsn\\": \\"1****\\",\\n \\"LocalAsn\\": \\"45104\\",\\n \\"RegionId\\": \\"cn-shanghai\\",\\n \\"Hold\\": \\"30\\",\\n \\"IpVersion\\": \\"IPv4\\",\\n \\"Description\\": \\"BGP组描述。\\",\\n \\"Keepalive\\": \\"10\\",\\n \\"IsFake\\": \\"true\\",\\n \\"RouteLimit\\": \\"99\\",\\n \\"Name\\": \\"name\\",\\n \\"AuthKey\\": \\"!PWZ****\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"","errorExample":""}]', ], - 'OpenPublicIpAddressPoolService' => [ - 'summary' => 'Enables the IP address pool feature.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DescribeBgpNetworks' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'read', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'create', - 'riskType' => 'none', - 'chargeType' => 'free', - 'autoTest' => false, - 'tenantRelevance' => 'publicInformation', - ], + 'systemTags' => ['operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ - 'name' => 'ClientToken', + 'name' => 'RouterId', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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.'."\n" - ."\n" - .'> 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.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-426655442455', - ], + 'schema' => ['description' => 'The ID of the VBR.'."\n", 'type' => 'string', 'required' => false, 'example' => 'vbr-bp1ctxy813985gkuk****', 'title' => ''], ], [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region.'."\n" - .'Call [DescribeRegion](https://www.alibabacloud.com/help/en/vpc/developer-reference/api-vpc-2016-04-28-describeregions?spm=a2c63.p38356.0.i2) to get the region ID.', - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The region ID of the BGP group.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'RegionId', + 'name' => 'PageNumber', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region.'."\n" - .'Call [DescribeRegion](https://www.alibabacloud.com/help/en/vpc/developer-reference/api-vpc-2016-04-28-describeregions?spm=a2c63.p38356.0.i2) to get the region ID.', - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The number of the returned page. Default value: **1**.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'minimum' => '1', 'example' => '1', 'default' => '1', 'title' => ''], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => ['description' => 'The number of entries per page. The maximum value is **50**. Default value: **10**.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '50', 'minimum' => '1', 'example' => '10', 'default' => '10', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'description' => 'The number of entries per page.'."\n", 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '28CF47AB-B6C0-5FA2-80C7-2B37726A92CB', - ], - 'Code' => [ - 'description' => 'The error code.', - 'type' => 'string', - 'example' => '200', - ], - 'Message' => [ - 'description' => 'The response messages.'."\n", - 'type' => 'string', - 'example' => 'successful', + 'PageSize' => ['description' => 'The number of entries per page.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '10', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '6F513A15-669F-419D-B511-08A85292059B', 'title' => ''], + 'PageNumber' => ['description' => 'The page number.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''], + 'TotalCount' => ['description' => 'The total number of advertised BGP networks.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '2', 'title' => ''], + 'BgpNetworks' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'BgpNetwork' => [ + 'description' => 'BGP networks.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'BGP networks.'."\n", + 'type' => 'object', + 'properties' => [ + 'Status' => ['description' => 'The status of the advertised BGP network.'."\n", 'type' => 'string', 'example' => 'Enabled', 'title' => ''], + 'VpcId' => ['description' => 'The ID of the virtual private cloud (VPC) in which the master instance resides.'."\n", 'type' => 'string', 'example' => 'vpc-bp1qpo0kug3a2*****', 'title' => ''], + 'DstCidrBlock' => ['description' => 'The CIDR block of the advertised BGP network.'."\n", 'type' => 'string', 'example' => '10.1.XX.XX/24', 'title' => ''], + 'RouterId' => ['description' => 'The ID of the VBR.'."\n", 'type' => 'string', 'example' => 'vbr-bp1ctxy813985gkuk****', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'OperationFailed.ExceedPurchaseLimit', - 'errorMessage' => 'You have reached the limit of purchase quantity.', - ], - [ - 'errorCode' => 'Forbidden.RAM', - 'errorMessage' => 'User not authorized to operate on the specified resource', - ], - [ - 'errorCode' => 'OperationFailed.QuotaNotEnough', - 'errorMessage' => 'Your quota is insufficient. Please contact your channel partner to increase your quota', - ], - [ - 'errorCode' => 'Order.NoRealNameAuthentication', - 'errorMessage' => 'Real-name verification has not been completed for the account.', - ], - [ - 'errorCode' => 'OperationFailed.BasicInfoUncompleted', - 'errorMessage' => 'You have not completed your basic personal information, please complete the information and try again.', - ], - [ - 'errorCode' => 'Forbidden.OpenPublicIpAddressPool', - 'errorMessage' => 'Authentication is failed for opening public ip address pool. Please apply for permission at the quota center.', - ], + 404 => [ + ['errorCode' => 'InvalidRegionId.NotFound', 'errorMessage' => 'The specified RegionId does not exist in our records.', 'description' => ''], + ], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error.', 'description' => ''], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"28CF47AB-B6C0-5FA2-80C7-2B37726A92CB\\",\\n \\"Code\\": \\"200\\",\\n \\"Message\\": \\"successful\\"\\n}","type":"json"}]', - 'title' => 'OpenPublicIpAddressPoolService', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'DescribeBgpNetworks', + 'summary' => 'Queries advertised Border Gateway Protocol (BGP) networks.', + 'changeSet' => [], + 'ramActions' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"PageSize\\": 10,\\n \\"RequestId\\": \\"6F513A15-669F-419D-B511-08A85292059B\\",\\n \\"PageNumber\\": 1,\\n \\"TotalCount\\": 2,\\n \\"BgpNetworks\\": {\\n \\"BgpNetwork\\": [\\n {\\n \\"Status\\": \\"Enabled\\",\\n \\"VpcId\\": \\"vpc-bp1qpo0kug3a2*****\\",\\n \\"DstCidrBlock\\": \\"10.1.XX.XX/24\\",\\n \\"RouterId\\": \\"vbr-bp1ctxy813985gkuk****\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 10\\n 6F513A15-669F-419D-B511-08A85292059B\\n 1\\n 2\\n \\n Enabled\\n vpc-bp1qpo0kug3a2*****\\n 10.1.XX.XX/24\\n vrt-bp1lhl0taikrteen8****\\n \\n","errorExample":""}]', ], - 'AddPublicIpAddressPoolCidrBlock' => [ - 'summary' => 'Adds a CIDR block to an IP address pool.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DescribeBgpPeers' => [ + 'summary' => 'Queries Border Gateway Protocol (BGP) peers in a region.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'read', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'create', - 'riskType' => 'none', - 'chargeType' => 'free', - 'autoTest' => true, - 'tenantRelevance' => 'tenant', - ], + 'systemTags' => ['operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ - 'name' => 'PublicIpAddressPoolId', + 'name' => 'RouterId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the IP address pool.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'pippool-6wetvn6fumkgycssx****', - ], + 'schema' => ['description' => 'The ID of the virtual border router (VBR) that is associated with the BGP peer that you want to query.'."\n", 'type' => 'string', 'required' => false, 'example' => 'vbr-2zecmmvg5gvu8i4te****', 'title' => ''], ], [ - 'name' => 'CidrBlock', + 'name' => 'BgpPeerId', 'in' => 'query', - 'allowEmptyValue' => false, - 'schema' => [ - 'description' => 'The CIDR block.'."\n" - ."\n" - .'> You can specify only one of **CidrBlock** and **CidrMask**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '47.0.XX.XX/24', - ], + 'schema' => ['description' => 'The ID of the BGP peer that you want to query.'."\n", 'type' => 'string', 'required' => false, 'example' => 'bgp-2ze3un0ft1jd1xd****', 'title' => ''], ], [ - 'name' => 'ClientToken', + 'name' => 'BgpGroupId', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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.'."\n" - ."\n" - .'> 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.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '02fb3da4-130e-11****', - ], + 'schema' => ['description' => 'The ID of the BGP group to which the BGP peer that you want to query belongs.'."\n", 'type' => 'string', 'required' => false, 'example' => 'bgpg-2zev8h2wo414sfh****', 'title' => ''], ], [ - 'name' => 'DryRun', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to perform a dry run, without performing the actual request. Valid values:'."\n" - ."\n" - .'* **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.'."\n" - .'* **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.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['description' => 'The region ID of the BGP group to which the BGP peer that you want to query belongs.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to obtain the region ID.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-shanghai', 'title' => ''], ], [ - 'name' => 'RegionId', + 'name' => 'IsDefault', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the IP address pool to which you want to add the CIDR block.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-chengdu', - ], + 'schema' => ['description' => 'Specifies whether the BGP group is the default group. Valid values:'."\n" + ."\n" + .'* **true**'."\n" + .'* **false**'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], ], [ - 'name' => 'CidrMask', + 'name' => 'PageNumber', 'in' => 'query', - 'allowEmptyValue' => false, - 'schema' => [ - 'description' => 'The subnet mask of the CIDR block. After you enter the subnet mask, the system automatically allocates IP addresses.'."\n" - ."\n" - .'Valid values: **24** to **28**.'."\n" - ."\n" - .'> You can specify only one of **CidrBlock** and **CidrMask**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '24', - ], + 'schema' => ['description' => 'The page number. Default value: **1**.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'minimum' => '1', 'example' => '1', 'default' => '1', 'title' => ''], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => ['description' => 'The number of entries per page. Valid values: **1 to 50**. Default value: **10**.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '50', 'minimum' => '1', 'example' => '10', 'default' => '10', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => 'The response parameters.'."\n", + 'description' => 'The information about the BGP peer.'."\n", 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '4EC47282-1B74-4534-BD0E-403F3EE64CAF', - ], - 'CidrBlock' => [ - 'description' => 'The CIDR block.'."\n", - 'type' => 'string', - 'example' => '47.0.XX.XX/28', + 'PageSize' => ['description' => 'The number of entries per page.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '10', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => 'DE77A7F3-3B74-41C0-A5BC-CAFD188C28B6', 'title' => ''], + 'PageNumber' => ['description' => 'The page number.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''], + 'TotalCount' => ['description' => 'The number of entries returned.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '10', 'title' => ''], + 'BgpPeers' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'BgpPeer' => [ + 'description' => 'The information about the BGP peer.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'Status' => ['description' => 'The status of the BGP peer. Valid values:'."\n" + ."\n" + .'* **Pending**'."\n" + .'* **Available**'."\n" + .'* **Modifying**'."\n" + .'* **Deleting**'."\n" + .'* **Deleted**'."\n", 'type' => 'string', 'example' => 'Available', 'title' => ''], + 'PeerIpAddress' => ['description' => 'The IP address of the BGP peer.'."\n", 'type' => 'string', 'example' => '116.62.XX.XX', 'title' => ''], + 'RouterId' => ['description' => 'The Router ID.'."\n", 'type' => 'string', 'example' => 'vbr-2zecmmvg5gvu8i4te****', 'title' => ''], + 'BgpGroupId' => ['description' => 'The ID of the BGP group.'."\n", 'type' => 'string', 'example' => 'bgpg-2zev8h2wo414sfh****', 'title' => ''], + 'BgpStatus' => ['description' => 'The status of the BGP connection. Valid values:'."\n" + ."\n" + .'* **Idle**: The BGP connection is not used.'."\n" + .'* **Connect**: The BGP connection is used.'."\n" + .'* **Active**: The BGP connection is available.'."\n" + .'* **Established**: The BGP connection is established.'."\n" + .'* **Down**: The BGP connection is unavailable.'."\n", 'type' => 'string', 'example' => 'Connect', 'title' => ''], + 'BfdMultiHop' => ['description' => 'The Bidirectional Forwarding Detection (BFD) hop count.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '3', 'title' => ''], + 'PeerAsn' => ['description' => 'The autonomous system number (ASN)of the BGP peer.'."\n", 'type' => 'string', 'example' => '65515', 'title' => ''], + 'LocalAsn' => ['description' => 'The ASN of the device on the Alibaba Cloud side.'."\n", 'type' => 'string', 'example' => '45104', 'title' => ''], + 'RegionId' => ['description' => 'The ID of the region to which the BGP group belongs.'."\n", 'type' => 'string', 'example' => 'cn-shanghai', 'title' => ''], + 'BgpPeerId' => ['description' => 'The ID of the BGP peer.'."\n", 'type' => 'string', 'example' => 'bgp-2ze3un0ft1jd1xd****', 'title' => ''], + 'EnableBfd' => ['description' => 'Indicates whether BFD is enabled. Valid values:'."\n" + ."\n" + .'* **true**'."\n" + .'* **false**'."\n", 'type' => 'boolean', 'example' => 'true', 'title' => ''], + 'Hold' => ['description' => 'The hold time.'."\n", 'type' => 'string', 'example' => '30', 'title' => ''], + 'IpVersion' => ['description' => 'The version of the IP address.'."\n", 'type' => 'string', 'example' => 'ipv4', 'title' => ''], + 'Keepalive' => ['description' => 'The Keepalive interval.'."\n", 'type' => 'string', 'example' => '10', 'title' => ''], + 'Description' => ['description' => 'The description of the BGP group.'."\n", 'type' => 'string', 'example' => 'test', 'title' => ''], + 'RouteLimit' => ['description' => 'The maximum number of routes.'."\n", 'type' => 'string', 'example' => '110', 'title' => ''], + 'IsFake' => ['description' => 'Indicates whether a fake autonomous system number (ASN) is used. Valid values:'."\n" + ."\n" + .'* **true**'."\n" + .'* **false**'."\n", 'type' => 'boolean', 'example' => 'true', 'title' => ''], + 'AuthKey' => ['description' => 'The authentication key of the BGP group.'."\n", 'type' => 'string', 'example' => '!PWZ****', 'title' => ''], + 'Name' => ['description' => 'The name of the BGP peer.'."\n", 'type' => 'string', 'example' => 'test', 'title' => ''], + 'AdvertisedRouteCount' => ['description' => 'The number of advertised routes.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '0', 'title' => ''], + 'ReceivedRouteCount' => ['description' => 'The number of received routes.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '0', 'title' => ''], + 'GmtModified' => ['description' => 'The time when the BGP peer is modified.'."\n", 'type' => 'string', 'format' => 'iso8601', 'example' => '2022-05-20T07:29:08Z', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], - ], + 'title' => '', + 'example' => '', + ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'IllegalParam.CidrBlock', - 'errorMessage' => 'The param of CidrBlock [%s] is illegal.', - ], - [ - 'errorCode' => 'IllegalParam.CidrBlockMask', - 'errorMessage' => 'The param of CidrBlock Mask [%s] is illegal.', - ], - [ - 'errorCode' => 'IncorrectStatus.PublicIpAddressPool', - 'errorMessage' => 'The status of PublicIpAddressPool [%s] is incorrect.', - ], - [ - 'errorCode' => 'OperationDenied.CidrBlockBelongToOtherUser', - 'errorMessage' => 'The operation is not allowed because of CidrBlock belong to other user.', - ], - [ - 'errorCode' => 'ResourceNotFound.PublicIpAddressPool', - 'errorMessage' => 'The specified resource ofPublicIpAddressPool [%s] is not found.', - ], - [ - 'errorCode' => 'QuotaExceeded.PoolIpQuantity', - 'errorMessage' => 'The quota of PoolIpQuantity is exceeded.', - ], - [ - 'errorCode' => 'OperationDenied.OperateSharedResource', - 'errorMessage' => 'The operation is not allowed because of the PublicIpAddressPool is a shared resource.', - ], - [ - 'errorCode' => 'MissingParam.CidrBlockOrCidrMask', - 'errorMessage' => 'CidrBlock or CidrMask is not specified.', - ], - [ - 'errorCode' => 'DuplicatedParam.CidrBlockAndCidrMask', - 'errorMessage' => 'CidrBlock and CidrMask cannot be specified at the same time.', - ], - [ - 'errorCode' => 'Forbidden.FinancialLocked', - 'errorMessage' => 'The instance is locked due to outstanding payments.', - ], - [ - 'errorCode' => 'ResourceNotEnough.CidrBlock', - 'errorMessage' => 'The specified resource is not enough.', - ], - [ - 'errorCode' => 'MissingParam.PublicIpAddressPoolId', - 'errorMessage' => 'The parameter PublicIpAddressPoolId is missing.', - ], - [ - 'errorCode' => 'OperationFailed.ResourceNotEnough', - 'errorMessage' => 'Insufficient resources.', - ], + ['errorCode' => 'ServiceUnavailable', 'errorMessage' => 'The request has failed due to a temporary failure of the server.', 'description' => 'The request failed due to a temporary server error.'], + ], + 404 => [ + ['errorCode' => 'InvalidRegionId.NotFound', 'errorMessage' => 'The specified RegionId does not exist in our records.', 'description' => ''], + ], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error.', 'description' => ''], ], ], - 'staticInfo' => [ - 'returnType' => 'asynchronous', - 'callback' => 'Vpc::2016-04-28::ListPublicIpAddressPoolCidrBlocks', - 'callbackInterval' => 3000, - 'maxCallbackTimes' => 3, + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'DescribeBgpPeers', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2024-05-08T02:53:52.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2021-11-17T06:33:02.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2021-11-17T06:33:02.000Z', 'description' => 'Response parameters changed'], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"4EC47282-1B74-4534-BD0E-403F3EE64CAF\\",\\n \\"CidrBlock\\": \\"47.0.XX.XX/28\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 4EC47282-1B74-4534-BD0E-403F3EE64CAF\\n","errorExample":""}]', - 'title' => 'AddPublicIpAddressPoolCidrBlock', - 'description' => 'Before you call this operation, take note of the following limits:'."\n" - ."\n" - .'* The CIDR block and the IP address pool must belong to the same region.'."\n" - ."\n" - .'* The CIDR block and the IP address pool must use the same line type.'."\n" - ."\n" - .'* **AddPublicIpAddressPoolCidrBlock** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call the [ListPublicIpAddressPoolCidrBlocks](~~429436~~) operation to query the status of the task.'."\n" - ."\n" - .' * If the CIDR block is in the **Modifying** state, the CIDR block is being added. In this state, you can only query the CIDR block and cannot perform other operations.'."\n" - .' * If the CIDR block is in the **Created** state, the CIDR block is added.'."\n" - ."\n" - .'* You cannot repeatedly call the **AddPublicIpAddressPoolCidrBlock** operation to add a CIDR block to an IP address pool within the specified period of time.'."\n", + 'ramActions' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"PageSize\\": 10,\\n \\"RequestId\\": \\"DE77A7F3-3B74-41C0-A5BC-CAFD188C28B6\\",\\n \\"PageNumber\\": 1,\\n \\"TotalCount\\": 10,\\n \\"BgpPeers\\": {\\n \\"BgpPeer\\": [\\n {\\n \\"Status\\": \\"Available\\",\\n \\"PeerIpAddress\\": \\"116.62.XX.XX\\",\\n \\"RouterId\\": \\"vbr-2zecmmvg5gvu8i4te****\\",\\n \\"BgpGroupId\\": \\"bgpg-2zev8h2wo414sfh****\\",\\n \\"BgpStatus\\": \\"Connect\\",\\n \\"BfdMultiHop\\": 3,\\n \\"PeerAsn\\": \\"65515\\",\\n \\"LocalAsn\\": \\"45104\\",\\n \\"RegionId\\": \\"cn-shanghai\\",\\n \\"BgpPeerId\\": \\"bgp-2ze3un0ft1jd1xd****\\",\\n \\"EnableBfd\\": true,\\n \\"Hold\\": \\"30\\",\\n \\"IpVersion\\": \\"ipv4\\",\\n \\"Keepalive\\": \\"10\\",\\n \\"Description\\": \\"test\\",\\n \\"RouteLimit\\": \\"110\\",\\n \\"IsFake\\": true,\\n \\"AuthKey\\": \\"!PWZ****\\",\\n \\"Name\\": \\"test\\",\\n \\"AdvertisedRouteCount\\": 0,\\n \\"ReceivedRouteCount\\": 0,\\n \\"GmtModified\\": \\"2022-05-20T07:29:08Z\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 10\\n DE77A7F3-3B74-41C0-A5BC-CAFD188C28B6\\n 1\\n 10\\n \\n Available\\n 116.62.XX.XX\\n vbr-2zecmmvg5gvu8i4te****\\n bgpg-2zev8h2wo414sfh****\\n Connect\\n 3\\n 65515\\n 45104\\n cn-shanghai\\n bgp-2ze3un0ft1jd1xd****\\n true\\n 30\\n ipv4\\n 10\\n test\\n 110\\n true\\n !PWZ****\\n test\\n 0\\n 0\\n 2022-05-20T07:29:08Z\\n \\n","errorExample":""}]', ], - 'TransformEipSegmentToPublicIpAddressPool' => [ - 'summary' => 'Migrate a contiguous EIP group to an IP address pool.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DescribeCommonBandwidthPackages' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'read', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'create', - 'riskType' => 'none', - 'chargeType' => 'free', - 'autoTest' => true, - 'tenantRelevance' => 'tenant', - ], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ - 'name' => 'InstanceId', + 'name' => 'IncludeReservationData', 'in' => 'query', - 'allowEmptyValue' => false, - 'schema' => [ - 'description' => 'The ID of the contiguous EIP group to be migrated.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'eipsg-2zett8ba055tbsxme****', - ], + 'schema' => ['description' => 'Specifies whether to return the information about pending orders. Valid values:'."\n" + ."\n" + .'* **false** (default)'."\n" + .'* **true**'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], ], [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region to which the contiguous EIP group belongs. You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The ID of the region where the Internet Shared Bandwidth instance resides.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the region ID.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], + ], + [ + 'name' => 'BandwidthPackageId', + 'in' => 'query', + 'schema' => ['description' => 'The ID of the Internet Shared Bandwidth instance.'."\n", 'type' => 'string', 'required' => false, 'example' => 'cbwp-2ze2ic1xd2qeqk145****', 'title' => ''], + ], + [ + 'name' => 'ResourceGroupId', + 'in' => 'query', + 'schema' => ['description' => 'The ID of the resource group.'."\n", 'type' => 'string', 'required' => false, 'example' => 'rg-acfmxazb4ph****', 'title' => ''], ], [ 'name' => 'Name', 'in' => 'query', - 'allowEmptyValue' => false, - 'schema' => [ - 'description' => 'The name of the IP address pool.'."\n" - ."\n" - .'The name must be 0 to 128 characters in length and cannot start with `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'AddressPoolName', - ], + 'schema' => ['description' => 'The name of the Internet Shared Bandwidth instance.'."\n", 'type' => 'string', 'required' => false, 'example' => 'test123', 'title' => ''], ], [ - 'name' => 'Description', + 'name' => 'PageNumber', 'in' => 'query', - 'schema' => [ - 'description' => 'The description of the IP address pool.'."\n" - ."\n" - .'The description must be 0 to 256 characters in length and cannot start with `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'AddressPoolDescription', - ], + 'schema' => ['description' => 'The page number. Default value: **1**.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'minimum' => '1', 'example' => '1', 'default' => '1', 'title' => ''], ], [ - 'name' => 'ResourceGroupId', + 'name' => 'PageSize', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the resource group to which the address pool belongs.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'rg-acfmxazb4pcdvf****', - ], + 'schema' => ['description' => 'The number of entries per page. Valid values: **1 to 50**. Default value: **10**.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '50', 'minimum' => '1', 'example' => '10', 'default' => '10', 'title' => ''], ], [ - 'name' => 'ClientToken', + 'name' => 'DryRun', + 'in' => 'query', + 'schema' => ['description' => 'Specifies whether to perform a dry run, without performing the actual request. Valid values:'."\n" + ."\n" + .'* **true**: performs only a dry run. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and instance status. 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.'."\n" + .'* **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.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], + ], + [ + 'name' => 'Tag', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'You can use the client to generate the token, but you must make sure that the token is unique among all requests. The token can contain only ASCII characters.'."\n" - ."\n" - .'> If you do not specify this parameter, the system automatically uses the **request ID** as the **client token**. The **request ID** is different for each request.'."\n", - 'type' => 'string', + 'description' => 'The tags to add to the Internet Shared Bandwidth instance.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => 'The tag key to add to the Internet Shared Bandwidth instance. You can specify up to 20 tag keys. The tag key cannot be an empty string.'."\n" + ."\n" + .'The tag key can be up to 128 characters in length. It cannot start with `aliyun` or `acs:`, and cannot contain `http://` or `https://`.'."\n", 'type' => 'string', 'required' => false, 'example' => 'KeyTest', 'title' => ''], + 'Value' => ['description' => 'The tag value to add to the Internet Shared Bandwidth instance. You can specify up to 20 tag values. The tag value can be an empty string.'."\n" + ."\n" + .'The tag value can be up to 128 characters in length. It cannot start with `aliyun` or `acs:`, and cannot contain `http://` or `https://`.'."\n", 'type' => 'string', 'required' => false, 'example' => 'ValueTest', 'title' => ''], + ], + 'required' => false, + 'title' => '', + 'example' => '', + ], 'required' => false, - 'example' => '02fb3da4-130e-11****', + 'maxItems' => 20, + 'title' => '', + 'example' => '', ], ], + [ + 'name' => 'SecurityProtectionEnabled', + 'in' => 'query', + 'schema' => ['title' => '', 'description' => 'Specifies whether to enable Anti-DDoS Pro/Premium. Valid values:'."\n" + ."\n" + .'* **false** (default)'."\n" + .'* **true**'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false'], + ], ], 'responses' => [ 200 => [ 'schema' => [ + 'description' => 'The response parameters.'."\n", 'type' => 'object', 'properties' => [ - 'PublicIpAddressPoolId' => [ - 'description' => 'The ID of the IP address pool.'."\n", - 'type' => 'string', - 'example' => 'pippool-6wetvn6fumkgycssx****', - ], - 'ResourceGroupId' => [ - 'description' => 'The ID of the resource group to which the IP address pool belongs.'."\n", - 'type' => 'string', - 'example' => 'rg-acfmxazb4pcdvf****', - ], - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '4EC47282-1B74-4534-BD0E-403F3EE64CAF', + 'PageSize' => ['description' => 'The number of entries per page.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '10', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '20E6FD1C-7321-4DAD-BDFD-EC8769E4AA33', 'title' => ''], + 'PageNumber' => ['description' => 'The page number.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''], + 'TotalCount' => ['description' => 'The total number of entries returned.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''], + 'CommonBandwidthPackages' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'CommonBandwidthPackage' => [ + 'description' => 'The details of the Internet Shared Bandwidth instance.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'ReservationActiveTime' => ['description' => 'The time when the renewal took effect. The time is displayed in the `YYYY-MM-DDThh:mm:ssZ` format.'."\n", 'type' => 'string', 'example' => '2018-08-30T16:00:00Z', 'title' => ''], + 'Status' => ['description' => 'The status of the Internet Shared Bandwidth instance. Valid values:'."\n" + ."\n" + .'* **Available**: The Internet Shared Bandwidth instance is available.'."\n" + .'* **Modifying**: The Internet Shared Bandwidth instance is being modified.'."\n", 'type' => 'string', 'example' => 'Available', 'title' => ''], + 'CreationTime' => ['description' => 'The time when the Internet Shared Bandwidth instance was created. The time is displayed in the `YYYY-MM-DDThh:mm:ssZ` format.'."\n", 'type' => 'string', 'example' => '2017-06-28T06:39:20Z', 'title' => ''], + 'ReservationOrderType' => ['description' => 'The renewal method. Valid values:'."\n" + ."\n" + .'* **RENEWCHANGE**: renewal with a specification change'."\n" + .'* **TEMP_UPGRADE**: renewal with a temporary upgrade'."\n" + .'* **UPGRADE**: renewal with an upgrade'."\n", 'type' => 'string', 'example' => 'RENEWCHANGE', 'title' => ''], + 'DeletionProtection' => ['description' => 'Indicates whether deletion protection is enabled. Valid values:'."\n" + ."\n" + .'* **true**'."\n" + .'* **false**'."\n", 'type' => 'boolean', 'example' => 'true', 'title' => ''], + 'ReservationInternetChargeType' => ['description' => 'The metering method after the configurations are changed. Valid value:'."\n" + ."\n" + .'**PayByTraffic**'."\n", 'type' => 'string', 'example' => 'PayByBandwidth', 'title' => ''], + 'Ratio' => ['description' => 'The percentage of the minimum bandwidth commitment. Only **20** is returned.'."\n" + ."\n" + .'> This parameter is supported only on the Alibaba Cloud China site.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '20', 'title' => ''], + 'InstanceChargeType' => ['description' => 'The billing method of the Internet Shared Bandwidth instance. Valid value:'."\n" + ."\n" + .'**PostPaid**: pay-as-you-go'."\n", 'type' => 'string', 'example' => 'PostPaid', 'title' => ''], + 'RegionId' => ['description' => 'The ID of the region where the Internet Shared Bandwidth instance resides.'."\n", 'type' => 'string', 'example' => 'cn-hangzhou', 'title' => ''], + 'BandwidthPackageId' => ['description' => 'The ID of the Internet Shared Bandwidth instance.'."\n", 'type' => 'string', 'example' => 'cbwp-bp1t3sm1ffzmshdki****', 'title' => ''], + 'ServiceManaged' => ['description' => 'Indicates whether the resource is created by the service account. Valid values:'."\n" + ."\n" + .'* **0**: The resource is not created by the service account.'."\n" + .'* **1**: The resource is created by the service account.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''], + 'Bandwidth' => ['description' => 'The maximum bandwidth of the Internet Shared Bandwidth instance. Unit: Mbit/s.'."\n", 'type' => 'string', 'example' => '20', 'title' => ''], + 'Description' => ['description' => 'The description of the Internet Shared Bandwidth instance.'."\n", 'type' => 'string', 'example' => 'none', 'title' => ''], + 'ExpiredTime' => ['description' => 'The time when the Internet Shared Bandwidth instance expired. The time is displayed in the `YYYY-MM-DDThh:mm:ssZ` format.'."\n", 'type' => 'string', 'example' => '2019-01-15T03:08:37Z', 'title' => ''], + 'ReservationBandwidth' => ['description' => 'The new maximum bandwidth after the configurations are changed. Unit: Mbit/s.'."\n", 'type' => 'string', 'example' => '1000', 'title' => ''], + 'ResourceGroupId' => ['description' => 'The ID of the resource group.'."\n", 'type' => 'string', 'example' => 'rg-acfmxazb4ph****', 'title' => ''], + 'InternetChargeType' => ['description' => 'The metering method of the Internet Shared Bandwidth instance. Valid value:'."\n" + ."\n" + .'**PayByTraffic**'."\n", 'type' => 'string', 'example' => 'PayByBandwidth', 'title' => ''], + 'BusinessStatus' => ['description' => 'The service status of the Internet Shared Bandwidth instance. Valid values:'."\n" + ."\n" + .'* **Normal**: The Internet Shared Bandwidth instance runs as expected.'."\n" + .'* **FinancialLocked**: An overdue payment occurs in the Internet Shared Bandwidth instance'."\n" + .'* **Unactivated**: The Internet Shared Bandwidth instance is not activated.'."\n", 'type' => 'string', 'example' => 'Normal', 'title' => ''], + 'Name' => ['description' => 'The name of the Internet Shared Bandwidth instance.'."\n", 'type' => 'string', 'example' => 'abc', 'title' => ''], + 'ISP' => ['description' => 'The line type. Valid values:'."\n" + ."\n" + .'* **BGP**: BGP (Multi-ISP) line The BGP (Multi-ISP) line is supported in all regions.'."\n" + .'* **BGP_PRO**: BGP (Multi-ISP) Pro line The BGP (Multi-ISP) Pro line is supported in the China (Hong Kong), Singapore (Singapore), Japan (Tokyo), Philippines (Manila), Malaysia (Kuala Lumpur), Indonesia (Jakarta), and Thailand (Bangkok) regions.'."\n" + ."\n" + .'If you are allowed to use single-ISP bandwidth, one of the following values is returned:'."\n" + ."\n" + .'* **ChinaTelecom**'."\n" + .'* **ChinaUnicom**'."\n" + .'* **ChinaMobile**'."\n" + .'* **ChinaTelecom_L2**'."\n" + .'* **ChinaUnicom_L2**'."\n" + .'* **ChinaMobile_L2**'."\n" + ."\n" + .'If your services are deployed in China East 1 Finance, **BGP_FinanceCloud** is returned.'."\n", 'type' => 'string', 'example' => 'BGP', 'title' => ''], + 'HasReservationData' => ['description' => 'Indicates whether the information about pending orders is returned. Valid values:'."\n" + ."\n" + .'* **false**'."\n" + .'* **true**'."\n", 'type' => 'string', 'example' => 'false', 'title' => ''], + 'PublicIpAddresses' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'PublicIpAddresse' => [ + 'description' => 'The elastic IP addresses (EIPs) that are associated with the Internet Shared Bandwidth instance.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'IpAddress' => ['description' => 'The public IP address.'."\n", 'type' => 'string', 'example' => '47.95.XX.XX', 'title' => ''], + 'AllocationId' => ['description' => 'The ID of the EIP.'."\n", 'type' => 'string', 'example' => 'eip-bp13e9i2qst4g6jzi****', 'title' => ''], + 'BandwidthPackageIpRelationStatus' => ['description' => 'Indicates whether the EIP is associated with the Internet Shared Bandwidth instance. Valid values:'."\n" + ."\n" + .'* **BINDED**'."\n" + .'* **BINDING**'."\n", 'type' => 'string', 'example' => 'BINDED', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'SecurityProtectionTypes' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'SecurityProtectionType' => [ + 'description' => 'The editions of Anti-DDoS.'."\n" + ."\n" + .'* If this parameter is empty, Anti-DDoS Origin Basic is enabled.'."\n" + .'* If **AntiDDoS_Enhanced** is returned, Anti-DDoS Pro/Premium is enabled.'."\n", + 'type' => 'array', + 'items' => ['description' => 'The edition of Anti-DDoS.'."\n" + ."\n" + .'* If this parameter is empty, Anti-DDoS Origin Basic is enabled.'."\n" + .'* If **AntiDDoS_Enhanced** is returned, Anti-DDoS Pro/Premium is enabled.'."\n", 'type' => 'string', 'example' => 'AntiDDoS_Enhanced', 'title' => ''], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'Tags' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Tag' => [ + 'description' => 'The tag that is added to the Internet Shared Bandwidth instance.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => 'The tag key that is added to the Internet Shared Bandwidth instance.'."\n", 'type' => 'string', 'example' => 'KeyTest', 'title' => ''], + 'Value' => ['description' => 'The tag value that is added to the Internet Shared Bandwidth instance.'."\n", 'type' => 'string', 'example' => 'ValueTest', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'BizType' => ['description' => 'The service type of the Internet Shared Bandwidth instance. Valid values:'."\n" + ."\n" + .'* **CloudBox** The cloud box. Only cloud box users can select this type.'."\n" + .'* **Default** (default): The general service type.'."\n", 'type' => 'string', 'example' => 'CloudBox', 'title' => ''], + 'Zone' => ['description' => 'The zone of the Internet Shared Bandwidth instance. This parameter is returned only when BizType is set to CloudBox. If BizType is set to Default, an empty value is returned.'."\n", 'type' => 'string', 'example' => 'ap-southeast-1-lzdvn-cb', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], - 'description' => '', + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'Forbidden.RAM', - 'errorMessage' => 'User not authorized to operate on the specified resource', - ], - [ - 'errorCode' => 'IllegalParam.Name', - 'errorMessage' => 'The param of Name [%s] is illegal.', - ], - [ - 'errorCode' => 'IllegalParam.Description', - 'errorMessage' => 'The param of Description [%s] is illegal.', - ], - [ - 'errorCode' => 'Forbidden.CreatePublicIpAddressPool', - 'errorMessage' => 'Authentication is failed for creating public ip address pool.', - ], - [ - 'errorCode' => 'QuotaExceeded.PublicIpAddressPool', - 'errorMessage' => 'The quota of PublicIpAddressPool is exceeded.', - ], - [ - 'errorCode' => 'UnsupportedRegion', - 'errorMessage' => 'The feature is not supported in current region.', - ], - [ - 'errorCode' => 'IncorrectBusinessStatus.PublicIpAddressPool', - 'errorMessage' => 'The business status of publicIpAddressPool is incorrect.', - ], - [ - 'errorCode' => 'OptInRequired.PublicIpAddressPool', - 'errorMessage' => 'You are not authorized to use the requested service of publicIpAddressPool. Ensure that you have subscribed to the service you are trying to use.', - ], - [ - 'errorCode' => 'QuotaExceeded.PoolIpQuantity', - 'errorMessage' => 'The quota of PoolIpQuantity is exceeded.', - ], - [ - 'errorCode' => 'ResourceNotFound.EipSegment', - 'errorMessage' => 'The specified resource of Eip Segment is not found.', - ], + ['errorCode' => 'InvalidBandwidthPackageIdNumber.NotSupported', 'errorMessage' => 'The number of BandwidthPackageIds exceeds the limit.', 'description' => 'The number of BandwidthPackageIds exceeds the limit.'], + ['errorCode' => 'InvalidResourceGroupId', 'errorMessage' => 'The specified ResourceGroupId does not exist.', 'description' => 'The specified resource group ID does not exist.'], + ['errorCode' => 'OperationUnsupported.ResourceGroupId', 'errorMessage' => 'ResourceGroup is not supported in this region.', 'description' => ''], + ], + 404 => [ + ['errorCode' => 'InvalidRegionId.NotFound', 'errorMessage' => 'The specified RegionId does not exist in our records.', 'description' => ''], ], ], - 'staticInfo' => [ - 'returnType' => 'asynchronous', - 'callback' => 'Vpc::2016-04-28::ListPublicIpAddressPools', - 'callbackInterval' => 3000, - 'maxCallbackTimes' => 10, + 'title' => 'DescribeCommonBandwidthPackages', + 'summary' => 'Queries a list of Internet Shared Bandwidth instances in a region.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2023-08-08T02:41:57.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2023-06-12T09:53:45.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2023-05-17T09:49:58.000Z', 'description' => 'Response parameters changed'], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"PublicIpAddressPoolId\\": \\"pippool-6wetvn6fumkgycssx****\\",\\n \\"ResourceGroupId\\": \\"rg-acfmxazb4pcdvf****\\",\\n \\"RequestId\\": \\"4EC47282-1B74-4534-BD0E-403F3EE64CAF\\"\\n}","type":"json"}]', - 'title' => 'TransformEipSegmentToPublicIpAddressPool', + 'ramActions' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"PageSize\\": 10,\\n \\"RequestId\\": \\"20E6FD1C-7321-4DAD-BDFD-EC8769E4AA33\\",\\n \\"PageNumber\\": 1,\\n \\"TotalCount\\": 1,\\n \\"CommonBandwidthPackages\\": {\\n \\"CommonBandwidthPackage\\": [\\n {\\n \\"ReservationActiveTime\\": \\"2018-08-30T16:00:00Z\\",\\n \\"Status\\": \\"Available\\",\\n \\"CreationTime\\": \\"2017-06-28T06:39:20Z\\",\\n \\"ReservationOrderType\\": \\"RENEWCHANGE\\",\\n \\"DeletionProtection\\": true,\\n \\"ReservationInternetChargeType\\": \\"PayByBandwidth\\",\\n \\"Ratio\\": 20,\\n \\"InstanceChargeType\\": \\"PostPaid\\",\\n \\"RegionId\\": \\"cn-hangzhou\\",\\n \\"BandwidthPackageId\\": \\"cbwp-bp1t3sm1ffzmshdki****\\",\\n \\"ServiceManaged\\": 1,\\n \\"Bandwidth\\": \\"20\\",\\n \\"Description\\": \\"none\\",\\n \\"ExpiredTime\\": \\"2019-01-15T03:08:37Z\\",\\n \\"ReservationBandwidth\\": \\"1000\\",\\n \\"ResourceGroupId\\": \\"rg-acfmxazb4ph****\\",\\n \\"InternetChargeType\\": \\"PayByBandwidth\\",\\n \\"BusinessStatus\\": \\"Normal\\",\\n \\"Name\\": \\"abc\\",\\n \\"ISP\\": \\"BGP\\",\\n \\"HasReservationData\\": \\"false\\",\\n \\"PublicIpAddresses\\": {\\n \\"PublicIpAddresse\\": [\\n {\\n \\"IpAddress\\": \\"47.95.XX.XX\\",\\n \\"AllocationId\\": \\"eip-bp13e9i2qst4g6jzi****\\",\\n \\"BandwidthPackageIpRelationStatus\\": \\"BINDED\\"\\n }\\n ]\\n },\\n \\"SecurityProtectionTypes\\": {\\n \\"SecurityProtectionType\\": [\\n \\"AntiDDoS_Enhanced\\"\\n ]\\n },\\n \\"Tags\\": {\\n \\"Tag\\": [\\n {\\n \\"Key\\": \\"KeyTest\\",\\n \\"Value\\": \\"ValueTest\\"\\n }\\n ]\\n },\\n \\"BizType\\": \\"CloudBox\\",\\n \\"Zone\\": \\"ap-southeast-1-lzdvn-cb\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 10\\n 20E6FD1C-7321-4DAD-BDFD-EC8769E4AA33\\n 1\\n 1\\n \\n 2018-08-30T16:00:00Z\\n Available\\n 2017-06-28T06:39:20Z\\n RENEWCHANGE\\n true\\n PayByBandwidth\\n 20\\n PostPaid\\n cn-hangzhou\\n cbwp-bp1t3sm1ffzmshdki****\\n 1\\n 20\\n none\\n 2019-01-15T03:08:37Z\\n 1000\\n rg-acfmxazb4ph****\\n PayByBandwidth\\n Normal\\n abc\\n BGP\\n false\\n \\n 47.95.XX.XX\\n eip-bp13e9i2qst4g6jzi****\\n BINDED\\n \\n AntiDDoS_Enhanced\\n \\n","errorExample":""}]', ], - 'DeletePublicIpAddressPool' => [ - 'summary' => 'Deletes an IP address pool.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DescribeCustomerGateway' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'read', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'delete', - 'riskType' => 'none', - 'chargeType' => 'free', - 'autoTest' => true, - 'tenantRelevance' => 'tenant', - ], + 'systemTags' => ['operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ - 'name' => 'PublicIpAddressPoolId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the IP address pool.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'pippool-6wetvn6fumkgycssx****', - ], - ], - [ - 'name' => 'ClientToken', - 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '0c593ea1-3bea-11e9-b96b-88e9fe60000', - ], - ], - [ - 'name' => 'DryRun', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to perform a dry run, without performing the actual request. Valid values:'."\n" - ."\n" - .'* **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.'."\n" - .'* **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.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['description' => 'The ID of the region where the customer gateway is deployed.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-shanghai', 'title' => ''], ], [ - 'name' => 'RegionId', + 'name' => 'CustomerGatewayId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region where you want to create the IP address pool.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-chengdu', - ], + 'schema' => ['description' => 'The ID of the customer gateway.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cgw-bp1pvpl9r9adju6l5****', 'title' => ''], ], ], 'responses' => [ @@ -33103,563 +24194,605 @@ 'description' => 'The response parameters.'."\n", 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '4EC47282-1B74-4534-BD0E-403F3EE64CAF', + 'Asn' => ['description' => 'The autonomous system number (ASN) of the gateway device in the data center.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '65535', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => 'A0457BC9-6C0F-4437-AB9D-FB2EABC1D6A2', 'title' => ''], + 'IpAddress' => ['description' => 'The IP address of the gateway device in the data center.'."\n", 'type' => 'string', 'example' => '139.32.XX.XX', 'title' => ''], + 'Description' => ['description' => 'The description of the customer gateway.'."\n", 'type' => 'string', 'example' => 'desctest', 'title' => ''], + 'CustomerGatewayId' => ['description' => 'The ID of the customer gateway.'."\n", 'type' => 'string', 'example' => 'cgw-bp1pvpl9r9adju6l5****', 'title' => ''], + 'CreateTime' => ['description' => 'The timestamp generated when the customer gateway was created. Unit: milliseconds.'."\n" + ."\n" + .'This value is a UNIX timestamp representing the number of milliseconds that have elapsed since the epoch time January 1, 1970, 00:00:00 UTC.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '1492747187000', 'title' => ''], + 'Name' => ['description' => 'The name of the customer gateway.'."\n", 'type' => 'string', 'example' => 'nametest', 'title' => ''], + 'AuthKey' => ['description' => 'The authentication key of the Border Gateway Protocol (BGP) routing protocol for the gateway device in the data center.'."\n", 'type' => 'string', 'example' => 'AuthKey****', 'title' => ''], + 'Tags' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Tag' => [ + 'description' => 'The list of tags added to the customer gateway.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => 'The tag key.'."\n", 'type' => 'string', 'example' => 'TagKey', 'title' => ''], + 'Value' => ['description' => 'The tag value.'."\n", 'type' => 'string', 'example' => 'TagValue', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', ], + 'ResourceGroupId' => ['description' => 'The ID of the resource group to which the customer gateway belongs.'."\n" + ."\n" + .'You can call the [ListResourceGroups](~~158855~~) operation to query resource groups.'."\n", 'type' => 'string', 'example' => 'rg-acfmzs372yg****', 'title' => ''], ], + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'IncorrectStatus.PublicIpAddressPool', - 'errorMessage' => 'The status of PublicIpAddressPool [%s] is incorrect.', - ], - [ - 'errorCode' => 'ResourceInUse.PublicIpAddressPool', - 'errorMessage' => 'The specified resource of PublicIpAddressPool [%s] is in use.', - ], - [ - 'errorCode' => 'OperationFailed.ResourceIsShared', - 'errorMessage' => 'The operation is failed because of PublicIpAddressPool is shared with other users.', - ], - [ - 'errorCode' => 'OperationDenied.OperateSharedResource', - 'errorMessage' => 'The operation is not allowed because of the PublicIpAddressPool is a shared resource.', - ], - [ - 'errorCode' => 'ResourceNotFound.PublicIpAddressPool', - 'errorMessage' => 'The specified resource of PublicIpAddressPool [%s] is not found.', - ], + 403 => [ + ['errorCode' => 'Forbidden.SubUser', 'errorMessage' => 'User not authorized to operate on the specified resource as your account is created by another user.', 'description' => 'The error message returned because you are unauthorized to perform this operation on the specified resource. Acquire the required permissions and try again.'], + ['errorCode' => 'Forbidden', 'errorMessage' => 'User not authorized to operate on the specified resource.', 'description' => 'You do not have the permissions to manage the specified resource. Apply for the permissions and try again.'], + ], + [ + ['errorCode' => 'InvalidCustomerGatewayInstanceId.NotFound', 'errorMessage' => 'The specified customer gateway instance id does not exist.', 'description' => 'The specified customer gateway does not exist. Check whether the ID of the customer gateway is correct.'], ], ], - 'staticInfo' => [ - 'returnType' => 'asynchronous', - 'callback' => 'Vpc::2016-04-28::ListPublicIpAddressPools', - 'callbackInterval' => 3000, - 'maxCallbackTimes' => 10, + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'DescribeCustomerGateway', + 'summary' => 'Queries details of a customer gateway.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2023-10-19T07:04:01.000Z', 'description' => 'Response parameters changed, Response parameters changed'], + ['createdAt' => '2022-12-27T12:19:51.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2022-12-27T03:28:33.000Z', 'description' => 'Error codes changed'], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"4EC47282-1B74-4534-BD0E-403F3EE64CAF\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 4EC47282-1B74-4534-BD0E-403F3EE64CAF\\n","errorExample":""}]', - 'title' => 'DeletePublicIpAddressPool', - 'description' => 'Before you call this operation, take note of the following items:'."\n" - ."\n" - .'* Before you delete an IP address pool, make sure that no IP address in the pool is being used.'."\n" - ."\n" - .'* **DeletePublicIpAddressPool** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call the [ListPublicIpAddressPools](~~429433~~) operation to query the status of the task.'."\n" - ."\n" - .' * If the IP address pool is in the **Deleting** state, the IP address pool is being deleted. In this state. you can only query the IP address pool and cannot perform other operations.'."\n" - .' * If you cannot query the IP address pool, the IP address pool is deleted.'."\n" - ."\n" - .'* You cannot repeatedly call the **DeletePublicIpAddressPool** operation to delete an IP address pool within the specified period of time.'."\n", + 'ramActions' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Asn\\": 65535,\\n \\"RequestId\\": \\"A0457BC9-6C0F-4437-AB9D-FB2EABC1D6A2\\",\\n \\"IpAddress\\": \\"139.32.XX.XX\\",\\n \\"Description\\": \\"desctest\\",\\n \\"CustomerGatewayId\\": \\"cgw-bp1pvpl9r9adju6l5****\\",\\n \\"CreateTime\\": 1492747187000,\\n \\"Name\\": \\"nametest\\",\\n \\"AuthKey\\": \\"AuthKey****\\",\\n \\"Tags\\": {\\n \\"Tag\\": [\\n {\\n \\"Key\\": \\"TagKey\\",\\n \\"Value\\": \\"TagValue\\"\\n }\\n ]\\n },\\n \\"ResourceGroupId\\": \\"rg-acfmzs372yg****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 65535\\n A0457BC9-6C0F-4437-AB9D-FB2EABC1D6A2\\n 139.32.XX.XX\\n desctest\\n cgw-bp1pvpl9r9adju6l5****\\n 1492747187000\\n nametest\\n AuthKey****\\n \\n TagKey\\n TagValue\\n \\n","errorExample":""}]', ], - 'DeletePublicIpAddressPoolCidrBlock' => [ - 'summary' => 'Deletes a CIDR block from an IP address pool.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DescribeCustomerGateways' => [ + 'summary' => 'Queries information about customer gateways.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'read', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'delete', - 'riskType' => 'none', - 'chargeType' => 'free', - 'autoTest' => true, - 'tenantRelevance' => 'tenant', - ], + 'systemTags' => ['operationType' => 'list', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ - 'name' => 'PublicIpAddressPoolId', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the IP address pool.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'pippool-6wetvn6fumkgycssx****', - ], + 'schema' => ['description' => 'The region ID of the customer gateway. '."\n" + ."\n" + .'You can call [DescribeRegions](~~36063~~) to query region IDs.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-shanghai', 'title' => ''], ], [ - 'name' => 'CidrBlock', + 'name' => 'CustomerGatewayId', 'in' => 'query', - 'schema' => [ - 'description' => 'The CIDR block.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => '47.0.XX.XX/24', - ], + 'schema' => ['description' => 'The instance ID of the customer gateway. '."\n" + ."\n" + .'> If you do not specify the instance ID of a customer gateway, the system queries information about all customer gateways in the current region by default.', 'type' => 'string', 'required' => false, 'example' => 'cgw-bp1pvpl9r9adju6l5****', 'title' => ''], ], [ - 'name' => 'ClientToken', + 'name' => 'PageNumber', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-426655440000', - ], + 'schema' => ['description' => 'The page number of the list. Default value: **1**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'default' => '1', 'example' => '1', 'title' => ''], ], [ - 'name' => 'DryRun', + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => ['description' => 'The number of entries per page in a paged query. Maximum value: **50**. Default value: **10**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'default' => '10', 'example' => '10', 'title' => ''], + ], + [ + 'name' => 'Tag', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => 'Specifies whether to perform a dry run, without performing the actual request. Valid values:'."\n" - ."\n" - .'* **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.'."\n" - .'* **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.'."\n", - 'type' => 'boolean', + 'description' => 'The list of tags bound to the customer gateway.', + 'type' => 'array', + 'items' => [ + 'description' => 'The tag information.', + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => 'The tag key. If you specify this parameter, the value cannot be an empty string.'."\n" + ."\n" + .'The tag key can be up to 64 characters in length and cannot start with `aliyun` or `acs:`. It cannot contain `http://` or `https://`.'."\n" + ."\n" + .'You can specify up to 20 tag keys at a time.', 'type' => 'string', 'required' => false, 'example' => 'TagKey', 'title' => ''], + 'Value' => ['description' => 'The tag value.'."\n" + ."\n" + .'The tag value can be up to 128 characters in length and can be an empty string. It cannot start with `aliyun` or `acs:` and cannot contain `http://` or `https://`.'."\n" + ."\n" + .'Each tag key corresponds to one tag value. You can specify up to 20 tag values at a time.', 'type' => 'string', 'required' => false, 'example' => 'TagValue', 'title' => ''], + ], + 'required' => false, + 'title' => '', + 'example' => '', + ], 'required' => false, - 'example' => 'false', + 'maxItems' => 20, + 'title' => '', + 'example' => '', ], ], [ - 'name' => 'RegionId', + 'name' => 'ResourceGroupId', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the IP address pool from which you want to delete a CIDR block.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-chengdu', - ], + 'schema' => ['description' => 'The ID of the resource group to which the customer gateway belongs.'."\n" + ."\n" + .'You can call [ListResourceGroups](~~158855~~) to query resource group IDs.', 'type' => 'string', 'required' => false, 'example' => 'rg-acfmzs372yg****', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => 'The response parameters.'."\n", + 'description' => 'The response parameters.', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '4EC47282-1B74-4534-BD0E-403F3EE64CAF', + 'PageSize' => ['description' => 'The number of entries per page in a paging query.', 'type' => 'integer', 'format' => 'int32', 'example' => '10', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'E82612A9-CB90-4D7E-B394-1DB7F6509B29', 'title' => ''], + 'PageNumber' => ['description' => 'The page number of the list.', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''], + 'TotalCount' => ['description' => 'The total number of entries in the list.', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''], + 'CustomerGateways' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'CustomerGateway' => [ + 'description' => 'The list of customer gateways.', + 'type' => 'array', + 'items' => [ + 'description' => 'The information about the customer gateway.', + 'type' => 'object', + 'properties' => [ + 'IpAddress' => ['description' => 'The IP address of the gateway device in the on-premises data center.', 'type' => 'string', 'example' => '139.32.XX.XX', 'title' => ''], + 'Asn' => ['description' => 'The autonomous system number of the gateway device in the on-premises data center.', 'type' => 'integer', 'format' => 'int64', 'example' => '65530', 'title' => ''], + 'Description' => ['description' => 'The description of the customer gateway.', 'type' => 'string', 'example' => 'desctest', 'title' => ''], + 'CustomerGatewayId' => ['description' => 'The instance ID of the customer gateway.', 'type' => 'string', 'example' => 'cgw-bp1pvpl9r9adju6l5****', 'title' => ''], + 'CreateTime' => ['description' => 'The timestamp when the customer gateway was created. Unit: milliseconds.'."\n" + ."\n" + .'The timestamp is in the UNIX format and represents the total number of milliseconds that have elapsed since January 1, 1970, 00:00:00 UTC.', 'type' => 'integer', 'format' => 'int64', 'example' => '1492747187000', 'title' => ''], + 'Name' => ['description' => 'The name of the customer gateway.', 'type' => 'string', 'example' => 'nametest', 'title' => ''], + 'AuthKey' => ['description' => 'The authentication key of the BGP routing protocol for the gateway device in the on-premises data center.', 'type' => 'string', 'example' => 'AuthKey****', 'title' => ''], + 'Tags' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Tag' => [ + 'description' => 'The list of tags bound to the customer gateway.', + 'type' => 'array', + 'items' => [ + 'description' => 'The tag information.', + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => 'The tag key.', 'type' => 'string', 'example' => 'TagKey', 'title' => ''], + 'Value' => ['description' => 'The tag value.', 'type' => 'string', 'example' => 'TagValue', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'ResourceGroupId' => ['description' => 'The ID of the resource group to which the customer gateway belongs.'."\n" + ."\n" + .'You can call [ListResourceGroups](~~158855~~) to query resource group information.', 'type' => 'string', 'example' => 'rg-acfmzs372yg****', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'IllegalParam.CidrBlock', - 'errorMessage' => 'The param of CidrBlock [%s] is illegal.', - ], - [ - 'errorCode' => 'IllegalParam.CidrBlockMask', - 'errorMessage' => 'The param of CidrBlock Mask [%s] is illegal.', - ], - [ - 'errorCode' => 'IncorrectStatus.PublicIpAddressPool', - 'errorMessage' => 'The status of PublicIpAddressPool [%s] is incorrect.', - ], - [ - 'errorCode' => 'ResourceNotFound.PublicIpAddressPool', - 'errorMessage' => 'The specified resource of PublicIpAddressPool [%s] is not found.', - ], - [ - 'errorCode' => 'ResourceNotFound.CidrBlock', - 'errorMessage' => 'The specified resource of CidrBlock [%s] is not found.', - ], - [ - 'errorCode' => 'IncorrectStatus.CidrBlock', - 'errorMessage' => 'The status of CidrBlock [%s] is incorrect.', - ], - [ - 'errorCode' => 'ResourceInUse.CidrBlock', - 'errorMessage' => 'The specified resource of CidrBlock [%s] is in use.', - ], - [ - 'errorCode' => 'OperationDenied.OperateSharedResource', - 'errorMessage' => 'The operation is not allowed because of the PublicIpAddressPool is a shared resource.', - ], - [ - 'errorCode' => 'MissingParam.PublicIpAddressPoolId', - 'errorMessage' => 'The parameter PublicIpAddressPoolId is missing.', - ], - [ - 'errorCode' => 'MissingParam.CidrBlockOrCidrMask', - 'errorMessage' => 'CidrBlock or CidrMask is not specified.', - ], + ['errorCode' => 'Forbidden.TagKey.Duplicated', 'errorMessage' => 'The specified tag key already exists.', 'description' => 'The tag resources are duplicate.'], + ['errorCode' => 'SizeLimitExceeded.TagNum', 'errorMessage' => 'The maximum number of tags is exceeded.', 'description' => 'The number of tags has reached the upper limit.'], + ['errorCode' => 'InvalidParameter.TagValue', 'errorMessage' => 'The specified parameter TagValue is invalid.', 'description' => 'The error message returned because the specified tag value is invalid.'], + ['errorCode' => 'InvalidParameter.TagKey', 'errorMessage' => 'The specified parameter TagKey is invalid.', 'description' => 'The error message returned because the specified tag key is invalid.'], + ['errorCode' => 'Duplicated.TagKey', 'errorMessage' => 'The specified parameter TagKey is duplicated.', 'description' => 'The error message returned because the specified tag key already exists.'], + ], + 403 => [ + ['errorCode' => 'Forbbiden.SubUser', 'errorMessage' => 'User not authorized to operate on the specified resource as your account is created by another user.', 'description' => ''], + ['errorCode' => 'Forbidden', 'errorMessage' => 'User not authorized to operate on the specified resource.', 'description' => 'You do not have the permissions to manage the specified resource. Apply for the permissions and try again.'], ], ], - 'staticInfo' => [ - 'returnType' => 'asynchronous', - 'callback' => 'Vpc::2016-04-28::ListPublicIpAddressPoolCidrBlocks', - 'callbackInterval' => 3000, - 'maxCallbackTimes' => 10, + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'Query created customer gateways', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2023-10-19T07:04:01.000Z', 'description' => 'Request parameters changed, Response parameters changed, Response parameters changed'], + ['createdAt' => '2022-12-27T12:19:50.000Z', 'description' => 'Error codes changed, Response parameters changed'], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"4EC47282-1B74-4534-BD0E-403F3EE64CAF\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 4EC47282-1B74-4534-BD0E-403F3EE64CAF\\n","errorExample":""}]', - 'title' => 'DeletePublicIpAddressPoolCidrBlock', - 'description' => 'Before you call this operation, take note of the following items:'."\n" - ."\n" - .'* Before you delete a CIDR block, make sure that it is not being used.'."\n" - ."\n" - .'* **DeletePublicIpAddressPoolCidrBlock** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call the [ListPublicIpAddressPoolCidrBlocks](~~429436~~) operation to query the status of the task.'."\n" - ."\n" - .' * If the CIDR block is in the **Deleting** state, the CIDR block is being deleted. In this state, you can only query the CIDR block and cannot perform other operations.'."\n" - .' * If you cannot query the CIDR block, the CIDR block is deleted.'."\n" - ."\n" - .'* You cannot repeatedly call the **DeletePublicIpAddressPoolCidrBlock** operation to delete a CIDR block within the specified period of time.'."\n", - ], - 'UpdatePublicIpAddressPoolAttribute' => [ - 'summary' => 'Modifies the attributes of an IP address pool.', - 'methods' => [ - 'post', - 'get', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '600', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DescribeCustomerGateways'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'vpc:DescribeCustomerGateways', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'conditional', 'product' => 'VPC', 'resourceType' => 'CustomerGateway', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:customergateway/*'], + ['validationType' => 'conditional', 'product' => 'VPC', 'resourceType' => 'CustomerGateway', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:customergateway/{#CustomerGatewayId}'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"PageSize\\": 10,\\n \\"RequestId\\": \\"E82612A9-CB90-4D7E-B394-1DB7F6509B29\\",\\n \\"PageNumber\\": 1,\\n \\"TotalCount\\": 1,\\n \\"CustomerGateways\\": {\\n \\"CustomerGateway\\": [\\n {\\n \\"IpAddress\\": \\"139.32.XX.XX\\",\\n \\"Asn\\": 65530,\\n \\"Description\\": \\"desctest\\",\\n \\"CustomerGatewayId\\": \\"cgw-bp1pvpl9r9adju6l5****\\",\\n \\"CreateTime\\": 1492747187000,\\n \\"Name\\": \\"nametest\\",\\n \\"AuthKey\\": \\"AuthKey****\\",\\n \\"Tags\\": {\\n \\"Tag\\": [\\n {\\n \\"Key\\": \\"TagKey\\",\\n \\"Value\\": \\"TagValue\\"\\n }\\n ]\\n },\\n \\"ResourceGroupId\\": \\"rg-acfmzs372yg****\\"\\n }\\n ]\\n }\\n}","type":"json"}]', + ], + 'DescribeEcGrantRelation' => [ + 'summary' => 'Queries whether permissions on a virtual private cloud (VPC) are granted to a virtual border router (VBR).', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'read', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'update', - 'riskType' => 'none', - 'chargeType' => 'free', - 'autoTest' => true, - 'tenantRelevance' => 'tenant', - ], + 'systemTags' => ['operationType' => 'list', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ - 'name' => 'PublicIpAddressPoolId', + 'name' => 'InstanceType', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the IP address pool.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'pippool-6wetvn6fumkgycssx****', - ], + 'schema' => ['description' => 'The type of instance. Valid values:'."\n" + ."\n" + .'* **VBR**: queries the permissions that are granted to a VBR.'."\n" + .'* **VPC**: queries the permissions that are granted from a VPC.'."\n", 'type' => 'string', 'required' => true, 'example' => 'VBR', 'title' => ''], ], [ - 'name' => 'Name', + 'name' => 'InstanceId', 'in' => 'query', - 'schema' => [ - 'description' => 'The name of the IP address pool.'."\n" - ."\n" - .'This parameter is optional. The name must be 1 to 128 characters in length, and can contain digits, periods (.), underscores (\\_), and hyphens (-). The name must start with a letter but cannot start with `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'AddressPoolName', - ], + 'schema' => ['description' => 'The ID of the instance.'."\n" + ."\n" + .'* If you set **InstanceType** to **VBR**, specify a VBR ID.'."\n" + .'* If you set **InstanceType** to **VPC**, specify a VPC ID.'."\n", 'type' => 'string', 'required' => true, 'example' => 'vbr-bp12mw1f8k3jgygk9****', 'title' => ''], ], [ - 'name' => 'Description', + 'name' => 'PageNumber', 'in' => 'query', - 'schema' => [ - 'description' => 'The description of the IP address pool.'."\n" - ."\n" - .'This parameter is optional. If you enter a description, the description must be 2 to 256 characters in length, and cannot start with http:// or https://.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'AddressPoolDescription', - ], + 'schema' => ['description' => 'The page number. Default value: **1**.'."\n", 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '1', 'title' => ''], ], [ - 'name' => 'ClientToken', + 'name' => 'PageSize', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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.'."\n" - ."\n" - .'> 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.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-426655440000', - ], - ], - [ - 'name' => 'DryRun', - 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to perform a dry run, without performing the actual request. Valid values:'."\n" - ."\n" - .'* **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.'."\n" - .'* **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.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['description' => 'The number of entries per page. Maximum value: **50**. Default value: **10**.'."\n", 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '10', 'title' => ''], ], [ - 'name' => 'RegionId', + 'name' => 'VbrRegionNo', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the IP address pool that you want to modify.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-chengdu', - ], + 'schema' => ['description' => 'The ID of the region where the instance is deployed.'."\n" + ."\n" + .'* If **InstanceType** is set to **VBR**, this parameter is required.'."\n" + .'* If **InstanceType** is set to **VPC**, you can ignore this parameter.'."\n", 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => 'The response parameters.'."\n", + 'title' => 'Schema of Response', + 'description' => 'The request ID.'."\n", 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '4EC47282-1B74-4534-BD0E-403F3EE64CAF', + 'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.'."\n", 'type' => 'string', 'example' => 'E6E90F6B-2B41-5AAF-ABEB-236ADBAAD91D'], + 'EcGrantRelations' => [ + 'description' => 'The query results.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'VbrOwnerUid' => ['description' => 'The ID of the Alibaba Cloud account to which the VBR belongs.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '1210123456123456', 'title' => ''], + 'VbrInstanceId' => ['description' => 'The ID of the VBR.'."\n", 'type' => 'string', 'example' => 'vbr-m5ex0xf63xk8s5bob****', 'title' => ''], + 'InstanceId' => ['description' => 'The ID of the VPC.'."\n", 'type' => 'string', 'example' => 'vpc-bp1brjuegjc88v3u9****', 'title' => ''], + 'AliUid' => ['description' => 'The ID of the Alibaba Cloud account to which the VPC belongs.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '1250123456123456', 'title' => ''], + 'RegionNo' => ['description' => 'The ID of the region where the VPC is deployed.'."\n", 'type' => 'string', 'example' => 'cn-hangzhou', 'title' => ''], + 'Status' => ['description' => 'The query result. Valid values:'."\n" + ."\n" + .'* **Created**: The VBR has permissions on the VPC.'."\n" + .'* **Deleted**: The VBR does not have permissions on the VPC.'."\n", 'type' => 'string', 'example' => 'Created', 'title' => ''], + 'InstanceName' => ['description' => 'The name of the VPC.'."\n", 'type' => 'string', 'example' => 'VPCname', 'title' => ''], + 'InstanceRouterId' => ['description' => 'The ID of the vRouter.'."\n", 'type' => 'string', 'example' => 'vrt-bp1i0yzgjd8ra05ec****', 'title' => ''], + 'VbrRegionNo' => ['description' => 'The ID of the region where the VBR is deployed.'."\n", 'type' => 'string', 'example' => 'cn-hangzhou', 'title' => ''], + 'GmtCreate' => ['description' => 'The time when permissions on the VPC were granted to the VBR.'."\n", 'type' => 'string', 'example' => '2022-09-02T11:46Z', 'title' => ''], + 'GrantType' => ['description' => 'The VBRs that have permissions on the VPC. Valid values:'."\n" + ."\n" + .'* **All**: VBRs that reside in the specified region and belong to the specified Alibaba Cloud account all have permissions on the VPC.'."\n" + .'* **Specify**: Only the specified VBR has permissions on the VPC.'."\n", 'type' => 'string', 'example' => 'All', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', ], + 'TotalCount' => ['description' => 'The total number of entries returned.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '10', 'title' => ''], + 'Count' => ['description' => 'The total number of entries returned.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''], + 'Page' => ['description' => 'The page number.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''], + 'PageSize' => ['description' => 'The number of entries per page.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '10', 'title' => ''], ], + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'IllegalParam.Name ', - 'errorMessage' => 'The param of Name [%s] is illegal.', - ], - [ - 'errorCode' => 'IllegalParam.Description', - 'errorMessage' => 'The param of Description [%s] is illegal.', - ], - [ - 'errorCode' => 'ResourceNotFound.PublicIpAddressPool', - 'errorMessage' => 'The specified resource of PublicIpAddressPool [%s] is not found.', - ], - [ - 'errorCode' => 'OperationDenied.OperateSharedResource', - 'errorMessage' => 'The operation is not allowed because of the PublicIpAddressPool is a shared resource.', - ], + ['errorCode' => 'InvalidParam.NotNull', 'errorMessage' => 'The parameter must not be null.', 'description' => ''], + ['errorCode' => 'Parameter.Illegal', 'errorMessage' => 'The parameter is illegal.', 'description' => 'The parameter is invalid.'], + ['errorCode' => 'Instance.StatusError', 'errorMessage' => 'The status of instance error. ', 'description' => ''], + ['errorCode' => 'InvalidRegionId.NotFound', 'errorMessage' => 'The regionId provided does not exist in ec region list.', 'description' => ''], + ], + 404 => [ + ['errorCode' => 'VRouterId.NotFound', 'errorMessage' => 'The VRouter not found.', 'description' => 'The specified vRouter cannot be found.'], + ['errorCode' => 'Instance.NotExist', 'errorMessage' => 'The instance not exist.', 'description' => ''], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'DescribeEcGrantRelation', + 'changeSet' => [ + ['createdAt' => '2024-11-12T08:03:53.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-08-16T02:04:29.000Z', 'description' => 'Response parameters changed'], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"4EC47282-1B74-4534-BD0E-403F3EE64CAF\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 4EC47282-1B74-4534-BD0E-403F3EE64CAF\\n","errorExample":""}]', - 'title' => 'UpdatePublicIpAddressPoolAttribute', - 'description' => 'You cannot repeatedly call the **UpdatePublicIpAddressPoolAttribute** operation to modify the attributes of an IP address pool within the specified period of time.'."\n", + 'ramActions' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"E6E90F6B-2B41-5AAF-ABEB-236ADBAAD91D\\",\\n \\"EcGrantRelations\\": [\\n {\\n \\"VbrOwnerUid\\": 1210123456123456,\\n \\"VbrInstanceId\\": \\"vbr-m5ex0xf63xk8s5bob****\\",\\n \\"InstanceId\\": \\"vpc-bp1brjuegjc88v3u9****\\",\\n \\"AliUid\\": 1250123456123456,\\n \\"RegionNo\\": \\"cn-hangzhou\\",\\n \\"Status\\": \\"Created\\",\\n \\"InstanceName\\": \\"VPCname\\",\\n \\"InstanceRouterId\\": \\"vrt-bp1i0yzgjd8ra05ec****\\",\\n \\"VbrRegionNo\\": \\"cn-hangzhou\\",\\n \\"GmtCreate\\": \\"2022-09-02T11:46Z\\",\\n \\"GrantType\\": \\"All\\"\\n }\\n ],\\n \\"TotalCount\\": 10,\\n \\"Count\\": 1,\\n \\"Page\\": 1,\\n \\"PageSize\\": 10\\n}","errorExample":""},{"type":"xml","example":"\\n E6E90F6B-2B41-5AAF-ABEB-236ADBAAD91D\\n \\n 1210123456123456\\n vbr-m5ex0xf63xk8s5bob****\\n vpc-bp1brjuegjc88v3u9****\\n 1250123456123456\\n cn-hangzhou\\n Created\\n VPCname\\n vrt-bp1i0yzgjd8ra05ec****\\n cn-hangzhou\\n 2022-09-02T11:46Z\\n All\\n \\n 10\\n 1\\n 1\\n 10\\n","errorExample":""}]', ], - 'ListPublicIpAddressPools' => [ - 'summary' => 'Queries available IP address pools.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DescribeEipAddresses' => [ + 'summary' => 'Queries elastic IP addresses (EIPs) created in a region.', + 'methods' => ['post', 'get', 'head'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'read', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'get', - 'riskType' => 'none', - 'chargeType' => 'free', - 'autoTest' => true, - 'tenantRelevance' => 'tenant', - ], + 'systemTags' => ['operationType' => 'list', 'riskType' => 'none', 'chargeType' => 'free', 'autoTest' => true, 'tenantRelevance' => 'tenant'], 'parameters' => [ [ - 'name' => 'PublicIpAddressPoolIds', + 'name' => 'RegionId', 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => 'The IDs of the IP address pool.'."\n" - ."\n" - .'You can enter up to 100 IDs.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The ID of the IP address pool.'."\n" - ."\n" - .'You can enter up to 100 IDs.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'pippool-6wetvn6fumkgycssx****', - ], - 'required' => false, - 'maxItems' => 100, - 'minItems' => 0, - ], + 'schema' => ['description' => 'The region ID of the EIP.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the region ID.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], + ], + [ + 'name' => 'IncludeReservationData', + 'in' => 'query', + 'schema' => ['description' => 'Specifies whether to return information about pending orders. Valid values:'."\n" + ."\n" + .'* **false** (default)'."\n" + .'* **true**'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], ], [ 'name' => 'Status', 'in' => 'query', - 'schema' => [ - 'description' => 'The status of the IP address pool. Valid values:'."\n" - ."\n" - .'* **Created**'."\n" - .'* **Deleting**'."\n" - .'* **Modifying**'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'Created', - ], + 'schema' => ['description' => 'The state of the EIP. Valid values:'."\n" + ."\n" + .'* **Associating**'."\n" + .'* **Unassociating**'."\n" + .'* **InUse**'."\n" + .'* **Available**'."\n" + .'* **Releasing**'."\n", 'type' => 'string', 'required' => false, 'example' => 'Available', 'title' => ''], ], [ - 'name' => 'MaxResults', + 'name' => 'EipAddress', 'in' => 'query', - 'schema' => [ - 'description' => 'The maximum number of entries to return. Valid values: **10** to **100**. Default value: **10**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '10', - ], + 'schema' => ['description' => 'The EIP that you want to query.'."\n" + ."\n" + .'You can specify up to 50 EIPs. Separate multiple EIPs with commas (,).'."\n" + ."\n" + .'> If both **EipAddress** and **AllocationId** are specified, you can specify up to 50 EIPs for **EipAddress**, and specify up to 50 EIP IDs for **AllocationId**.'."\n", 'type' => 'string', 'required' => false, 'example' => '47.75.XX.XX', 'title' => ''], ], [ - 'name' => 'NextToken', + 'name' => 'AllocationId', 'in' => 'query', - 'schema' => [ - 'description' => 'The pagination token that is used in the next request to retrieve a new page of results.'."\n" - ."\n" - .'* You do not need to specify this parameter for the first request.'."\n" - .'* You must specify the token that is obtained from the previous query as the value of NextToken.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', - ], + 'schema' => ['description' => 'The ID of the EIP that you want to query.'."\n" + ."\n" + .'You can specify up to 50 EIP IDs. Separate multiple IDs with commas (,).'."\n" + ."\n" + .'> If both **EipAddress** and **AllocationId** are specified, you can specify up to 50 EIP IDs for **AllocationId**, and specify up to 50 EIPs for **EipAddress**.'."\n", 'type' => 'string', 'required' => false, 'example' => 'eip-2zeerraiwb7ujxscd****', 'title' => ''], ], [ - 'name' => 'Isp', + 'name' => 'SegmentInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => 'The line type. Valid values:'."\n" - ."\n" - .'* **BGP** (default): BGP (Multi-ISP) line'."\n" - .'* **BGP_PRO**: BGP (Multi-ISP) Pro line'."\n" - ."\n" - .'For more information about the BGP (Multi-ISP) line and BGP (Multi-ISP) Pro line, see the "Line types" section of [What is EIP?](~~32321~~)'."\n" - ."\n" - .'If you are allowed to use single-ISP bandwidth, you can also choose one of the following values:'."\n" - ."\n" - .'* **ChinaTelecom**'."\n" - .'* **ChinaUnicom**'."\n" - .'* **ChinaMobile**'."\n" - .'* **ChinaTelecom_L2**'."\n" - .'* **ChinaUnicom_L2**'."\n" - .'* **ChinaMobile_L2**'."\n" - ."\n" - .'If your services are deployed in China East 1 Finance, this parameter is required and you must set the parameter to **BGP_FinanceCloud**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'BGP', - ], + 'schema' => ['description' => 'The ID of the contiguous EIP group.'."\n", 'type' => 'string', 'required' => false, 'example' => 'eipsg-t4nr90yik5oy38xdy****', 'title' => ''], ], [ - 'name' => 'Name', + 'name' => 'ResourceGroupId', 'in' => 'query', - 'schema' => [ - 'description' => 'The name of the IP address pool.'."\n" - ."\n" - .'If you enter a name, the name must be 1 to 128 characters in length and can contain digits, periods (.), underscores (\\_), and hyphens (-). The name must start with a letter but cannot start with `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'AddressPoolName', - ], + 'schema' => ['description' => 'The ID of the resource group to which the EIP belongs.'."\n", 'type' => 'string', 'required' => false, 'example' => 'rg-acfmxazb4pcdvf****', 'title' => ''], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => ['description' => 'The page number. Default value: **1**.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'minimum' => '1', 'default' => '1', 'example' => '10', 'title' => ''], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => ['description' => 'The number of entries per page. Valid values: 1 to **100**. Default value: **10**.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '100', 'minimum' => '1', 'default' => '10', 'example' => '10', 'title' => ''], + ], + [ + 'name' => 'ISP', + 'in' => 'query', + 'schema' => ['description' => 'The line type. Valid values:'."\n" + ."\n" + .'* **BGP** (default): Border Gateway Protocol (BGP) (Multi-ISP) lines. All regions support BGP (Multi-ISP) EIPs.'."\n" + .'* **BGP_PRO**: BGP (Multi-ISP) Pro lines. Only the following regions support BGP (Multi-ISP) Pro lines: China (Hong Kong), Singapore, Japan (Tokyo), Malaysia (Kuala Lumpur), Philippines (Manila), Indonesia (Jakarta), and Thailand (Bangkok).'."\n" + ."\n" + .'For more information about BGP (Multi-ISP) and BGP (Multi-ISP) Pro, see the [Line types](~~32321~~) section of the "What is EIP?" topic.'."\n" + ."\n" + .'If you are allowed to use single-ISP bandwidth, you can also use one of the following values:'."\n" + ."\n" + .'* **ChinaTelecom**'."\n" + .'* **ChinaUnicom**'."\n" + .'* **ChinaMobile**'."\n" + .'* **ChinaTelecom_L2**'."\n" + .'* **ChinaUnicom_L2**'."\n" + .'* **ChinaMobile_L2**'."\n" + ."\n" + .'If your services are deployed in China East 1 Finance, this parameter is required and you must set the value to **BGP_FinanceCloud**.'."\n", 'type' => 'string', 'required' => false, 'example' => 'BGP', 'title' => ''], + ], + [ + 'name' => 'Filter.1.Key', + 'in' => 'query', + 'schema' => ['description' => 'The filter key used to query resources. Set the value to **CreationStartTime**, which specifies the time when the system started to create the resource.'."\n", 'type' => 'string', 'required' => false, 'example' => 'CreationStartTime', 'title' => ''], + ], + [ + 'name' => 'Filter.2.Key', + 'in' => 'query', + 'schema' => ['description' => 'The filter key used to query resources. Set the value to **CreationEndTime**, which specifies the time when the system finished creating the resource.'."\n", 'type' => 'string', 'required' => false, 'example' => 'CreationEndTime', 'title' => ''], + ], + [ + 'name' => 'Filter.1.Value', + 'in' => 'query', + 'schema' => ['description' => 'The filter value used to query resources. Specify the time in the ISO 8601 standard in the `YYYY-MM-DDThh:mmZ` format. The time must be in Coordinated Universal Time (UTC).'."\n", 'type' => 'string', 'required' => false, 'example' => '2023-01-01T01:00Z', 'title' => ''], + ], + [ + 'name' => 'Filter.2.Value', + 'in' => 'query', + 'schema' => ['description' => 'The filter value used to query resources. Specify the time in the ISO 8601 standard in the `YYYY-MM-DDThh:mmZ` format. The time must be in UTC.'."\n", 'type' => 'string', 'required' => false, 'example' => '2023-01-06T02:00Z', 'title' => ''], + ], + [ + 'name' => 'LockReason', + 'in' => 'query', + 'schema' => ['description' => 'The reason why the EIP is locked. Valid values:'."\n" + ."\n" + .'* **financial**: The EIP is locked due to overdue payments.'."\n" + .'* **security**: The EIP is locked for security reasons.'."\n", 'type' => 'string', 'required' => false, 'example' => 'financial', 'title' => ''], + ], + [ + 'name' => 'AssociatedInstanceType', + 'in' => 'query', + 'schema' => ['description' => 'The type of the cloud resource with which you want to associate the EIP. Valid values:'."\n" + ."\n" + .'* **EcsInstance** (default): an Elastic Compute Service (ECS) instance in a virtual private cloud (VPC).'."\n" + .'* **SlbInstance**: a CLB instance in a VPC.'."\n" + .'* **Nat**: a NAT gateway.'."\n" + .'* **HaVip**: an HAVIP.'."\n" + .'* **NetworkInterface**: a secondary ENI.'."\n" + .'* **IpAddress**: an IP address.'."\n" + ."\n" + .'> Each ECS instance, CLB instance, HAVIP, and IP address can be associated with only one EIP. A NAT gateway can be associated with multiple EIPs. The number of EIPs that you can associate with a secondary ENI depends on the association mode. For more information, see [Associate EIPs with and disassociate EIPs from cloud resources](~~72125~~).'."\n", 'type' => 'string', 'required' => false, 'example' => 'EcsInstance', 'title' => ''], + ], + [ + 'name' => 'AssociatedInstanceId', + 'in' => 'query', + 'schema' => ['description' => 'The ID of the instance associated with the EIP.'."\n", 'type' => 'string', 'required' => false, 'example' => 'i-2zebb08phyccdvf****', 'title' => ''], + ], + [ + 'name' => 'ChargeType', + 'in' => 'query', + 'schema' => ['description' => 'The billing method of the EIP. Valid values:'."\n" + ."\n" + .'* **PostPaid**: pay-as-you-go.'."\n" + .'* **PrePaid**: subscription.'."\n", 'type' => 'string', 'required' => false, 'example' => 'PostPaid', 'title' => ''], ], [ 'name' => 'DryRun', 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to perform a dry run, without performing the actual request. Valid values:'."\n" - ."\n" - .'* **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.'."\n" - .'* **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.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values:'."\n" + ."\n" + .'* **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.'."\n" + .'* **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.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], ], [ - 'name' => 'ResourceGroupId', + 'name' => 'EipName', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the resource group to which the IP address pool belongs.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'rg-acfmxazb4pcdvf****', - ], + 'schema' => ['description' => 'The name of the EIP.'."\n" + ."\n" + .'The name must be 1 to 128 characters in length, and can contain letters, digits, underscores (\\_), and hyphens (-). The name must start with a letter.'."\n", 'type' => 'string', 'required' => false, 'example' => 'EIP-01', 'title' => ''], ], [ - 'name' => 'Tags', + 'name' => 'Tag', 'in' => 'query', 'style' => 'repeatList', 'schema' => [ - 'description' => 'The tags to add to the resource.'."\n", + 'description' => 'The tags used to filter EIPs.'."\n", 'type' => 'array', 'items' => [ - 'description' => '', + 'description' => 'The tags.'."\n", 'type' => 'object', 'properties' => [ - 'Key' => [ - 'description' => 'The tag key to add to the resource. You can specify up to 20 tag keys. The tag key cannot be an empty string.'."\n" - ."\n" - .'The tag key can be up to 128 characters in length. It cannot start with `aliyun` or `acs:`, and cannot contain `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'FinanceDept', - ], - 'Value' => [ - 'description' => 'The tag value to add to the resource. You can specify up to 20 tag values. The tag value can be an empty string.'."\n" - ."\n" - .'The tag key can be up to 128 characters in length. It cannot start with `aliyun` or `acs:` and cannot contain `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'FinanceJoshua', - ], + 'Key' => ['description' => 'The key of the tag. You can specify up to 20 tag keys. The tag key cannot be an empty string.'."\n" + ."\n" + .'The tag key can be up to 128 characters in length and cannot contain `http://` or `https://`. The tag key cannot start with `acs:` or `aliyun`.'."\n", 'type' => 'string', 'required' => false, 'example' => 'FinanceDept', 'title' => ''], + 'Value' => ['description' => 'The value of the tag. You can specify up to 20 tag values. The tag value can be an empty string.'."\n" + ."\n" + .'The tag value can be up to 128 characters in length and cannot contain `http://` or `https://`. The tag value cannot start with `acs:` or `aliyun`.'."\n", 'type' => 'string', 'required' => false, 'example' => 'FinanceJoshua', 'title' => ''], ], 'required' => false, + 'title' => '', + 'example' => '', ], 'required' => false, - 'maxItems' => 10, + 'maxItems' => 20, + 'title' => '', + 'example' => '', ], ], [ - 'name' => 'RegionId', + 'name' => 'SecurityProtectionEnabled', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region in which the IP address pool that you want to query resides.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the region ID.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-chengdu', - ], + 'schema' => ['title' => '', 'description' => 'Specifies whether to activate Anti-DDoS Pro/Premium. Valid values:'."\n" + ."\n" + .'* **false**'."\n" + .'* **true**'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false'], ], [ - 'name' => 'SecurityProtectionEnabled', + 'name' => 'PublicIpAddressPoolId', 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to enable Anti-DDoS Pro/Premium. Valid values:'."\n" - ."\n" - .'* **false**'."\n" - .'* **true**'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], + 'schema' => ['description' => 'The IP address pool to which the EIP that you want to query belongs.'."\n", 'type' => 'string', 'required' => false, 'example' => 'pippool-2vc0kxcedhquybdsz****', 'title' => ''], + ], + [ + 'name' => 'ServiceManaged', + 'in' => 'query', + 'schema' => ['description' => 'Indicates whether the instance is managed. Valid values:'."\n" + ."\n" + .'* **true**: yes'."\n" + .'* **false**: no.'."\n" + ."\n" + .'If you do not specify this parameter, all instances are queried.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], ], ], 'responses' => [ @@ -33668,231 +24801,277 @@ 'description' => 'The response parameters.'."\n", 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '4EC47282-1B74-4534-BD0E-403F3EE64CAF', - ], - 'NextToken' => [ - 'description' => 'A pagination token. It can be used in the next request to retrieve a new page of results.'."\n" - ."\n" - .'* If **NextToken** is empty, no next page exists.'."\n" - .'* If a value is returned for **NextToken**, the value is used to retrieve a new page of results.'."\n", - 'type' => 'string', - 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', - ], - 'TotalCount' => [ - 'description' => 'The total number of entries returned.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'PublicIpAddressPoolList' => [ - 'description' => 'The IP address pools.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The structure of the IP address pool.'."\n", - 'type' => 'object', - 'properties' => [ - 'PublicIpAddressPoolId' => [ - 'description' => 'The ID of the IP address pool.'."\n", - 'type' => 'string', - 'example' => 'pippool-6wetvn6fumkgycssx****', - ], - 'RegionId' => [ - 'description' => 'The region ID of the IP address pool.'."\n", - 'type' => 'string', - 'example' => 'cn-chengdu', - ], - 'CreationTime' => [ - 'description' => 'The time when the IP address pool was created. The time is displayed in the `YYYY-MM-DDThh:mm:ssZ` format.'."\n", - 'type' => 'string', - 'example' => '2022-05-10T01:37:38Z', - ], - 'Isp' => [ - 'description' => 'The line type.'."\n" - ."\n" - .'* **BGP**: BGP (Multi-ISP)'."\n" - .'* **BGP_PRO**: BGP (Multi-ISP) Pro'."\n" - ."\n" - .'For more information about BGP (Multi-ISP) and BGP (Multi-ISP) Pro, see [EIP line types](~~32321~~).'."\n" - ."\n" - .'If you are allowed to use single-ISP bandwidth, one of the following values may be returned:'."\n" - ."\n" - .'* **ChinaTelecom**'."\n" - .'* **ChinaUnicom**'."\n" - .'* **ChinaMobile**'."\n" - .'* **ChinaTelecom_L2**'."\n" - .'* **ChinaUnicom_L2**'."\n" - .'* **ChinaMobile_L2**'."\n" - ."\n" - .'If your services are deployed in China East 1 Finance, **BGP_FinanceCloud** is returned.'."\n", - 'type' => 'string', - 'example' => 'BGP', - ], - 'Name' => [ - 'description' => 'The name of the IP address pool.'."\n", - 'type' => 'string', - 'example' => 'AddressPoolName', - ], - 'Status' => [ - 'description' => 'The status of the IP address pool.'."\n" - ."\n" - .'* **Created**'."\n" - .'* **Deleting**'."\n" - .'* **Modifying**'."\n", - 'type' => 'string', - 'example' => 'Created', - ], - 'Description' => [ - 'description' => 'The description of the IP address pool.'."\n", - 'type' => 'string', - 'example' => 'AddressPoolDescription', - ], - 'TotalIpNum' => [ - 'description' => 'The total number of available IP addresses in the public IP address pool.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '100', - ], - 'UsedIpNum' => [ - 'description' => 'The number of used IP addresses in the public IP address pool.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '20', - ], - 'IpAddressRemaining' => [ - 'description' => 'Indicates whether idle IP addresses exist.'."\n" - ."\n" - .'* **true**'."\n" - .'* **false**'."\n", - 'type' => 'boolean', - 'example' => 'true', - ], - 'UserType' => [ - 'description' => 'The user type. Valid values:'."\n" - ."\n" - .'* **admin**: An administrator can delete, modify, and query IP address pools, and can assign elastic IP addresses (EIPs) to the pool.'."\n" - .'* **user**: A user can only assign EIPs to the IP address pool and query the IP address pool, but cannot modify or delete the IP address pool.'."\n", - 'type' => 'string', - 'example' => 'admin', - ], - 'OwnerId' => [ - 'description' => 'The Alibaba Cloud account to which the IP address pool belongs.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '121012345612****', - ], - 'ShareType' => [ - 'description' => 'The sharing type of the IP address pool.'."\n" - ."\n" - .'* If **Shared** is returned, the IP address pool is shared.'."\n" - .'* If an empty value is returned, the IP address pool is not shared.'."\n", - 'type' => 'string', - 'example' => 'Shared', - ], - 'ResourceGroupId' => [ - 'description' => 'The ID of the resource group to which the IP address pool belongs.'."\n", - 'type' => 'string', - 'example' => 'rg-acfmxazb4pcdvf****', - ], - 'Tags' => [ - 'description' => 'The tag list.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => 'The key of tag N.'."\n", - 'type' => 'string', - 'example' => 'FinanceDept', + 'PageSize' => ['description' => 'The number of entries per page.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '10', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '4EC47282-1B74-4534-BD0E-403F3EE64CAF', 'title' => ''], + 'PageNumber' => ['description' => 'The page number.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '10', 'title' => ''], + 'TotalCount' => ['description' => 'The total number of entries returned.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''], + 'EipAddresses' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'EipAddress' => [ + 'description' => 'Details of the EIPs.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The details of the EIP.'."\n", + 'type' => 'object', + 'properties' => [ + 'ReservationActiveTime' => ['description' => 'The time when the renewal took effect. The time follows the ISO 8601 standard in the `YYYY-MM-DDThh:mm:ssZ` format.'."\n", 'type' => 'string', 'example' => '2021-05-23T16:00:00Z', 'title' => ''], + 'Status' => ['description' => 'The status of the EIP. Valid values:'."\n" + ."\n" + .'* **Associating**'."\n" + .'* **Unassociating**'."\n" + .'* **InUse**'."\n" + .'* **Available**'."\n" + .'* **Releasing**'."\n", 'type' => 'string', 'example' => 'Available', 'title' => ''], + 'ReservationOrderType' => ['description' => 'The type of the renewal order. Valid values:'."\n" + ."\n" + .'* **RENEWCHANGE**: renewal with an upgrade or a downgrade.'."\n" + .'* **TEMP_UPGRADE**: temporary upgrade.'."\n" + .'* **UPGRADE**: upgrade.'."\n", 'type' => 'string', 'example' => 'RENEWCHANGE', 'title' => ''], + 'AllocationTime' => ['description' => 'The time when the EIP was created. The time follows the ISO 8601 standard in the `YYYY-MM-DDThh:mm:ssZ` format.'."\n", 'type' => 'string', 'example' => '2021-04-23T01:37:38Z', 'title' => ''], + 'Netmode' => ['description' => 'The network type. Only **public** may be returned.'."\n", 'type' => 'string', 'example' => 'public', 'title' => ''], + 'ChargeType' => ['description' => 'The billing method of the EIP. Valid values:'."\n" + ."\n" + .'* **PostPaid**: pay-as-you-go.'."\n" + .'* **PrePaid**: subscription.'."\n", 'type' => 'string', 'example' => 'PostPaid', 'title' => ''], + 'Description' => ['description' => 'The description of the EIP.'."\n", 'type' => 'string', 'example' => 'abc', 'title' => ''], + 'Mode' => ['description' => 'The association mode. Valid values:'."\n" + .'- **NAT**: NAT mode'."\n" + .'- **MULTI_BINDED**: multi-EIP-to-ENI mode'."\n" + .'- **BINDED**: cut-through mode', 'type' => 'string', 'example' => 'NAT', 'title' => ''], + 'SegmentInstanceId' => ['description' => 'The ID of the contiguous EIP group.'."\n" + ."\n" + .'This value is returned only when you query contiguous EIPs.'."\n", 'type' => 'string', 'example' => 'eipsg-t4nr90yik5oy38xd****', 'title' => ''], + 'ReservationInternetChargeType' => ['description' => 'The metering method that is used after the renewal takes effect. Valid values:'."\n" + ."\n" + .'* **PayByBandwidth**'."\n" + .'* **PayByTraffic**'."\n", 'type' => 'string', 'example' => 'PayByBandwidth', 'title' => ''], + 'BandwidthPackageId' => ['description' => 'The ID of the Internet Shared Bandwidth instance.'."\n", 'type' => 'string', 'example' => 'cbwp-bp1ego3i4j07ccdvf****', 'title' => ''], + 'IpAddress' => ['description' => 'The EIP.'."\n", 'type' => 'string', 'example' => '47.75.XX.XX', 'title' => ''], + 'Bandwidth' => ['description' => 'The maximum bandwidth of the EIP. Unit: Mbit/s.'."\n", 'type' => 'string', 'example' => '5', 'title' => ''], + 'ReservationBandwidth' => ['description' => 'The maximum bandwidth after the renewal takes effect. Unit: Mbit/s.'."\n", 'type' => 'string', 'example' => '12', 'title' => ''], + 'EipBandwidth' => ['description' => 'The maximum bandwidth of the EIP when it is not associated with an Internet Shared Bandwidth instance. Unit: Mbit/s.'."\n", 'type' => 'string', 'example' => '101', 'title' => ''], + 'Name' => ['description' => 'The name of the EIP.'."\n", 'type' => 'string', 'example' => 'EIP-01', 'title' => ''], + 'PrivateIpAddress' => ['description' => 'The private IP address of the secondary ENI with which the EIP is associated.', 'type' => 'string', 'example' => '192.168.XX.XX', 'title' => ''], + 'InstanceRegionId' => ['description' => 'The region ID of the associated instance.'."\n", 'type' => 'string', 'example' => ' cn-hangzhou', 'title' => ''], + 'DeletionProtection' => ['description' => 'Indicates whether deletion protection is enabled. Valid values:'."\n" + ."\n" + .'* **true**'."\n" + .'* **false**'."\n", 'type' => 'boolean', 'example' => 'true', 'title' => ''], + 'InstanceId' => ['description' => 'The ID of the associated instance.'."\n", 'type' => 'string', 'example' => 'i-bp15zckdt37cdvf****', 'title' => ''], + 'SecondLimited' => ['description' => 'Indicates whether level-2 throttling is configured. Valid values:'."\n" + ."\n" + .'* **true**'."\n" + .'* **false**'."\n", 'type' => 'boolean', 'example' => 'false', 'title' => ''], + 'InstanceType' => ['description' => 'The type of the associated instance. Valid values:'."\n" + ."\n" + .'* **EcsInstance**: an ECS instance in a VPC.'."\n" + .'* **SlbInstance**: a CLB instance in a VPC.'."\n" + .'* **Nat**: a NAT gateway.'."\n" + .'* **HaVip**: an HAVIP.'."\n" + .'* **NetworkInterface**: a secondary ENI.'."\n" + .'* **IpAddress**: an IP address.'."\n", 'type' => 'string', 'example' => 'EcsInstance', 'title' => ''], + 'HDMonitorStatus' => ['description' => 'Indicates whether fine-grained monitoring is enabled for the EIP. Valid values:'."\n" + ."\n" + .'* **false**'."\n" + .'* **true**'."\n", 'type' => 'string', 'example' => 'false', 'title' => ''], + 'RegionId' => ['description' => 'The region ID of the EIP.'."\n", 'type' => 'string', 'example' => 'cn-hangzhou', 'title' => ''], + 'BandwidthPackageBandwidth' => ['description' => 'The maximum bandwidth of the Internet Shared Bandwidth instance with which the EIP is associated. Unit: Mbit/s.'."\n", 'type' => 'string', 'example' => '50', 'title' => ''], + 'ServiceManaged' => ['description' => 'Indicates whether the instance is managed. Valid values:'."\n" + ."\n" + .'* **1**: yes'."\n" + .'* **0**: no'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '0', 'title' => ''], + 'ExpiredTime' => ['description' => 'The time when the EIP expires. The time follows the ISO 8601 standard in the `YYYY-MM-DDThh:mm:ssZ` format.'."\n", 'type' => 'string', 'example' => '2021-05-23T02:00:00Z', 'title' => ''], + 'ResourceGroupId' => ['description' => 'The resource group ID.'."\n", 'type' => 'string', 'example' => 'rg-acfmxazcdxs****', 'title' => ''], + 'AllocationId' => ['description' => 'The ID of the EIP.'."\n", 'type' => 'string', 'example' => 'eip-2zeerraiwb7ujcdvf****', 'title' => ''], + 'InternetChargeType' => ['description' => 'The metering method of the EIP. Valid values:'."\n" + ."\n" + .'* **PayByBandwidth**'."\n" + .'* **PayByTraffic**'."\n", 'type' => 'string', 'example' => 'PayByBandwidth', 'title' => ''], + 'BusinessStatus' => ['description' => 'The service status of the EIP. Valid values:'."\n" + ."\n" + .'* **Normal**'."\n" + .'* **OperationLock**'."\n" + .'* **Unactivated**'."\n", 'type' => 'string', 'example' => 'Normal', 'title' => ''], + 'BandwidthPackageType' => ['description' => 'The type of the bandwidth. Only **CommonBandwidthPackage** may be returned, which indicates Internet Shared Bandwidth.'."\n", 'type' => 'string', 'example' => 'CommonBandwidthPackage', 'title' => ''], + 'HasReservationData' => ['description' => 'Indicates whether renewal data is included. Valid values:'."\n" + ."\n" + .'* **false**'."\n" + .'* **true** A value of **true** is returned only when **IncludeReservationData** is set to **true** and some orders have not taken effect.'."\n", 'type' => 'string', 'example' => 'false', 'title' => ''], + 'ISP' => ['description' => 'The line type. Valid values:'."\n" + ."\n" + .'* **BGP**: BGP (Multi-ISP). The BGP (Multi-ISP) line is supported in all regions.'."\n" + .'* **BGP_PRO**: BGP (Multi-ISP) Pro lines. BGP (Multi-ISP) Pro line is supported only in the China (Hong Kong), Singapore, Japan (Tokyo), Malaysia (Kuala Lumpur), Philippines (Manila), Indonesia (Jakarta), and Thailand (Bangkok) regions.'."\n" + ."\n" + .'For more information about BGP (Multi-ISP) and BGP (Multi-ISP) Pro, see the [Line types](~~32321~~) section of the "What is EIP?" topic.'."\n" + ."\n" + .'If you are allowed to use single-ISP bandwidth, one of the following values may be returned:'."\n" + ."\n" + .'* **ChinaTelecom**'."\n" + .'* **ChinaUnicom**'."\n" + .'* **ChinaMobile**'."\n" + .'* **ChinaTelecom_L2**'."\n" + .'* **ChinaUnicom_L2**'."\n" + .'* **ChinaMobile_L2**'."\n" + ."\n" + .'If your services are deployed in China East 1 Finance, **BGP_FinanceCloud** is returned.'."\n", 'type' => 'string', 'example' => 'BGP', 'title' => ''], + 'OperationLocks' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'LockReason' => [ + 'description' => 'The details about the locked EIP.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The details about the locked EIP.'."\n", + 'type' => 'object', + 'properties' => [ + 'LockReason' => ['description' => 'The reason why the EIP is locked. Valid values:'."\n" + ."\n" + .'* **financial**: The EIP is locked due to overdue payments.'."\n" + .'* **security**: The instance is locked for security purposes.'."\n" + .'* **sharedPool**: The shared IP address pool is locked due to overdue payments.'."\n", 'type' => 'string', 'example' => 'financial', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], ], - 'Value' => [ - 'description' => 'The value of tag N.'."\n", - 'type' => 'string', - 'example' => 'FinanceDept', + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'Tags' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Tag' => [ + 'description' => 'The tags of the EIP.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The tags.'."\n", + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => 'The tag key of the EIP.'."\n", 'type' => 'string', 'example' => 'KeyTest', 'title' => ''], + 'Value' => ['description' => 'The tag value of the EIP.'."\n", 'type' => 'string', 'example' => 'ValueTest', 'title' => ''], + ], + 'example' => '"Tag": [ { "Value": "000", "Key": "yyy" }, { "Value": "111","Key": "kkk" }', + 'title' => '', + ], + 'title' => '', + 'example' => '', + ], ], + 'description' => '', + 'title' => '', + 'example' => '', ], - ], - ], - 'BizType' => [ - 'description' => 'The service type of the IP address pool.'."\n" - ."\n" - .'* **CloudBox** Only cloud box users can select this type.'."\n" - .'* **Default** (default)'."\n", - 'type' => 'string', - 'example' => 'CloudBox', - ], - 'Zones' => [ - 'description' => 'The zone of the IP address pool. This parameter is returned only when the service type of the IP address pool is CloudBox.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The zone of the IP address pool. This parameter is returned only when the service type of the IP address pool is CloudBox.'."\n", - 'type' => 'string', - 'example' => 'ap-southeast-1-lzdvn-cb', - ], - ], - 'SecurityProtectionTypes' => [ - 'description' => 'The edition of Anti-DDoS.'."\n" - ."\n" - .'* If you do not set this parameter, Anti-DDoS Origin Basic is used.'."\n" - .'* If the value is set to **AntiDDoS_Enhanced**, Anti-DDoS Pro/Premium is used.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The edition of Anti-DDoS.'."\n" + 'SecurityProtectionTypes' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'SecurityProtectionType' => [ + 'description' => 'The edition of Anti-DDoS.'."\n" + ."\n" + .'* If an empty value is returned, it indicates that Anti-DDoS Origin Basic is used.'."\n" + .'* If **AntiDDoS_Enhanced** is returned, it indicates that Anti-DDoS Pro/Premium is used.'."\n", + 'type' => 'array', + 'items' => ['description' => 'The edition of Anti-DDoS.'."\n" + ."\n" + .'* If an empty value is returned, it indicates that Anti-DDoS Origin Basic is used.'."\n" + .'* If **AntiDDoS_Enhanced** is returned, it indicates that Anti-DDoS Pro/Premium is used.'."\n", 'type' => 'string', 'example' => 'AntiDDoS_Enhanced', 'title' => ''], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'PublicIpAddressPoolId' => ['description' => 'The ID of the IP address pool to which the EIP belongs.'."\n", 'type' => 'string', 'example' => 'pippool-2vc0kxcedhquybdsz****', 'title' => ''], + 'VpcId' => ['description' => 'The ID of the VPC in which an IPv4 gateway is created and that is deployed in the same region as the EIP.'."\n" + ."\n" + .'When you associate an EIP with an IP address, the system can enable the IP address to access the Internet based on VPC route configurations.'."\n" + ."\n" + .'> This parameter is returned if the value of **InstanceType** is **IpAddress**. In this case, the EIP is associated with an IP address.'."\n", 'type' => 'string', 'example' => 'vpc-bp15zckdt37pq72zv****', 'title' => ''], + 'Zone' => ['description' => 'The zone of the EIP.'."\n" ."\n" - .'* If you do not set this parameter, Anti-DDoS Origin Basic is used.'."\n" - .'* If the value is set to **AntiDDoS_Enhanced**, Anti-DDoS Pro/Premium is used.'."\n", - 'type' => 'string', - 'example' => 'AntiDDoS_Enhanced', + .'This parameter is returned only when the service type is CloudBox.'."\n", 'type' => 'string', 'example' => 'ap-southeast-1-lzdvn-cb', 'title' => ''], + 'BizType' => ['description' => 'The service type. Valid values:'."\n" + ."\n" + .'* **CloudBox** Only cloud box users can select this type.'."\n" + .'* **Default** (default)'."\n", 'type' => 'string', 'example' => 'CloudBox', 'title' => ''], + 'ServiceID' => ['description' => 'The ID of the service provider to which the managed instance belongs.'."\n" + .'> This is only valid when the ServiceManaged parameter is set to True.', 'type' => 'integer', 'format' => 'int64', 'example' => '18726XXXXXXX', 'title' => ''], ], + 'title' => '', + 'example' => '', ], - 'BusinessStatus' => [ - 'description' => 'The status of the IP address pool.'."\n" - ."\n" - .'* **Normal**'."\n" - .'* **FinancialLocked**'."\n", - 'type' => 'string', - 'example' => 'Normal', - ], + 'title' => '', + 'example' => '', ], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'IllegalParam.Isp', - 'errorMessage' => 'The param of Isp [%s] is illegal.', - ], - [ - 'errorCode' => 'IllegalParam.NextToken', - 'errorMessage' => 'The specified NextToken is invalid.', - ], + ['errorCode' => 'InvalidIAssociatedInstanceType.ValueNotSupported', 'errorMessage' => 'The specified value of AssociatedInstanceType is not supported.', 'description' => 'The AssociatedInstanceType parameter is set to an invalid value.'], + ['errorCode' => 'InvalidChargeType.ValueNotSupported', 'errorMessage' => 'The specified ChargeType is not supported.', 'description' => ''], + ['errorCode' => 'InvalidAliuid', 'errorMessage' => 'User Id is not valid.', 'description' => ''], + ['errorCode' => 'InvalidResourceGroupId', 'errorMessage' => 'The specified ResourceGroupId does not exist.', 'description' => 'The specified resource group ID does not exist.'], + ['errorCode' => 'InstanceType.Invalid', 'errorMessage' => 'InstanceType is not null', 'description' => ''], + ['errorCode' => 'InstanceIdLength.Exceed', 'errorMessage' => 'InstanceId length is exceed', 'description' => ''], + ['errorCode' => 'InvalidTagKey', 'errorMessage' => 'The tag keys are not valid.', 'description' => 'The tag index is invalid.'], + ['errorCode' => 'InvalidTagValue', 'errorMessage' => 'The tag values are not valid.', 'description' => 'The tag value is invalid.'], + ['errorCode' => 'OperationUnsupported.ResourceGroupId', 'errorMessage' => 'ResourceGroup is not supported in this region.', 'description' => ''], + ['errorCode' => 'IellgalParameter.OwnerAccount', 'errorMessage' => 'The specified parameter OwnerAccount is not valid.', 'description' => 'The specified parameter OwnerAccount is illegal.'], + ], + 404 => [ + ['errorCode' => 'InvalidFilterValue', 'errorMessage' => 'The specified FilterValue is not supported.', 'description' => ''], + ['errorCode' => 'Forbidden.RegionNotFound', 'errorMessage' => 'Specified region is not found during access authentication.', 'description' => ''], + ['errorCode' => 'InvalidFilterKey.NotFound', 'errorMessage' => 'The specified Filterkey is not supported.', 'description' => ''], + ['errorCode' => 'InvalidLockReason.NotFound', 'errorMessage' => 'The specified LockReason is not found', 'description' => ''], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"4EC47282-1B74-4534-BD0E-403F3EE64CAF\\",\\n \\"NextToken\\": \\"FFmyTO70tTpLG6I3FmYAXGKPd****\\",\\n \\"TotalCount\\": 1,\\n \\"PublicIpAddressPoolList\\": [\\n {\\n \\"PublicIpAddressPoolId\\": \\"pippool-6wetvn6fumkgycssx****\\",\\n \\"RegionId\\": \\"cn-chengdu\\",\\n \\"CreationTime\\": \\"2022-05-10T01:37:38Z\\",\\n \\"Isp\\": \\"BGP\\",\\n \\"Name\\": \\"AddressPoolName\\",\\n \\"Status\\": \\"Created\\",\\n \\"Description\\": \\"AddressPoolDescription\\",\\n \\"TotalIpNum\\": 100,\\n \\"UsedIpNum\\": 20,\\n \\"IpAddressRemaining\\": true,\\n \\"UserType\\": \\"admin\\",\\n \\"OwnerId\\": 0,\\n \\"ShareType\\": \\"Shared\\",\\n \\"ResourceGroupId\\": \\"rg-acfmxazb4pcdvf****\\",\\n \\"Tags\\": [\\n {\\n \\"Key\\": \\"FinanceDept\\",\\n \\"Value\\": \\"FinanceDept\\"\\n }\\n ],\\n \\"BizType\\": \\"CloudBox\\",\\n \\"Zones\\": [\\n \\"ap-southeast-1-lzdvn-cb\\"\\n ],\\n \\"SecurityProtectionTypes\\": [\\n \\"AntiDDoS_Enhanced\\"\\n ],\\n \\"BusinessStatus\\": \\"Normal\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\n 4EC47282-1B74-4534-BD0E-403F3EE64CAF\\n FFmyTO70tTpLG6I3FmYAXGKPd****\\n 1\\n \\n pippool-6wetvn6fumkgycssx****\\n cn-chengdu\\n 2022-05-10T01:37:38Z\\n BGP\\n AddressPoolName\\n Created\\n AddressPoolDescription\\n 100\\n 20\\n true\\n false\\n Shared\\n rg-acfmxazb4pcdvf****\\n \\n FinanceDept\\n FinanceDept\\n \\n CloudBox\\n ap-southeast-1-lzdvn-cb\\n \\n","errorExample":""}]', - 'title' => 'ListPublicIpAddressPools', - 'description' => "\n" - ."\n", + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'DescribeEipAddresses', + 'description' => '本接口可以查询指定地域已创建的EIP信息,包括EIP的带宽峰值、计费方式,当前绑定的实例类型等。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2025-02-10T11:25:34.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2024-03-14T06:49:39.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2023-12-07T09:36:34.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2023-08-09T06:30:47.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2023-08-09T01:56:33.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2023-08-08T02:41:57.000Z', 'description' => 'Response parameters changed, Response parameters changed'], + ['createdAt' => '2022-12-02T10:02:22.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2022-11-14T06:28:04.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2022-11-02T10:27:22.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2022-08-31T07:38:00.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2022-02-22T08:39:22.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2022-02-22T08:39:22.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2021-12-08T03:35:04.000Z', 'description' => 'Response parameters changed'], + ], + 'ramActions' => [], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"PageSize\\": 10,\\n \\"RequestId\\": \\"4EC47282-1B74-4534-BD0E-403F3EE64CAF\\",\\n \\"PageNumber\\": 10,\\n \\"TotalCount\\": 1,\\n \\"EipAddresses\\": {\\n \\"EipAddress\\": [\\n {\\n \\"ReservationActiveTime\\": \\"2021-05-23T16:00:00Z\\",\\n \\"Status\\": \\"Available\\",\\n \\"ReservationOrderType\\": \\"RENEWCHANGE\\",\\n \\"AllocationTime\\": \\"2021-04-23T01:37:38Z\\",\\n \\"Netmode\\": \\"public\\",\\n \\"ChargeType\\": \\"PostPaid\\",\\n \\"Description\\": \\"abc\\",\\n \\"Mode\\": \\"NAT\\",\\n \\"SegmentInstanceId\\": \\"eipsg-t4nr90yik5oy38xd****\\",\\n \\"ReservationInternetChargeType\\": \\"PayByBandwidth\\",\\n \\"BandwidthPackageId\\": \\"cbwp-bp1ego3i4j07ccdvf****\\",\\n \\"IpAddress\\": \\"47.75.XX.XX\\",\\n \\"Bandwidth\\": \\"5\\",\\n \\"ReservationBandwidth\\": \\"12\\",\\n \\"EipBandwidth\\": \\"101\\",\\n \\"Name\\": \\"EIP-01\\",\\n \\"PrivateIpAddress\\": \\"192.168.XX.XX\\",\\n \\"InstanceRegionId\\": \\" cn-hangzhou\\",\\n \\"DeletionProtection\\": true,\\n \\"InstanceId\\": \\"i-bp15zckdt37cdvf****\\",\\n \\"SecondLimited\\": false,\\n \\"InstanceType\\": \\"EcsInstance\\",\\n \\"HDMonitorStatus\\": \\"false\\",\\n \\"RegionId\\": \\"cn-hangzhou\\",\\n \\"BandwidthPackageBandwidth\\": \\"50\\",\\n \\"ServiceManaged\\": 0,\\n \\"ExpiredTime\\": \\"2021-05-23T02:00:00Z\\",\\n \\"ResourceGroupId\\": \\"rg-acfmxazcdxs****\\",\\n \\"AllocationId\\": \\"eip-2zeerraiwb7ujcdvf****\\",\\n \\"InternetChargeType\\": \\"PayByBandwidth\\",\\n \\"BusinessStatus\\": \\"Normal\\",\\n \\"BandwidthPackageType\\": \\"CommonBandwidthPackage\\",\\n \\"HasReservationData\\": \\"false\\",\\n \\"ISP\\": \\"BGP\\",\\n \\"OperationLocks\\": {\\n \\"LockReason\\": [\\n {\\n \\"LockReason\\": \\"financial\\"\\n }\\n ]\\n },\\n \\"Tags\\": {\\n \\"Tag\\": [\\n {\\n \\"Key\\": \\"KeyTest\\",\\n \\"Value\\": \\"ValueTest\\"\\n }\\n ]\\n },\\n \\"SecurityProtectionTypes\\": {\\n \\"SecurityProtectionType\\": [\\n \\"AntiDDoS_Enhanced\\"\\n ]\\n },\\n \\"PublicIpAddressPoolId\\": \\"pippool-2vc0kxcedhquybdsz****\\",\\n \\"VpcId\\": \\"vpc-bp15zckdt37pq72zv****\\",\\n \\"Zone\\": \\"ap-southeast-1-lzdvn-cb\\",\\n \\"BizType\\": \\"CloudBox\\",\\n \\"ServiceID\\": 0\\n }\\n ]\\n }\\n}","type":"json"}]', + 'translator' => 'manual', ], - 'ListPublicIpAddressPoolCidrBlocks' => [ - 'summary' => 'Queries CIDR blocks in an IP address pool.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DescribeEipGatewayInfo' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -33900,355 +25079,131 @@ ], 'operationType' => 'read', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'get', - 'riskType' => 'none', - 'chargeType' => 'free', - 'autoTest' => true, - 'tenantRelevance' => 'tenant', - ], + 'systemTags' => ['operationType' => 'list', 'riskType' => 'none', 'chargeType' => 'free', 'autoTest' => true, 'tenantRelevance' => 'tenant'], 'parameters' => [ [ - 'name' => 'PublicIpAddressPoolId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the IP address pool.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'pippool-6wetvn6fumkgycssx****', - ], - ], - [ - 'name' => 'CidrBlock', - 'in' => 'query', - 'schema' => [ - 'description' => 'The CIDR blocks.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '47.0.XX.XX/24', - ], - ], - [ - 'name' => 'MaxResults', - 'in' => 'query', - 'schema' => [ - 'description' => 'The maximum number of entries to return. Valid values: **10** to **100**. Default value: **10**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '10', - ], - ], - [ - 'name' => 'NextToken', + 'name' => 'InstanceId', 'in' => 'query', - 'schema' => [ - 'description' => 'The token that is used for the next query. Valid values:'."\n" - ."\n" - .'* If this is your first query and no next queries are to be sent, ignore this parameter.'."\n" - .'* If a subsequent query is to be sent, set the parameter to the value of NextToken that is returned from the last call.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', - ], + 'schema' => ['description' => 'The ID of the secondary ENI that is associated with the EIP.'."\n", 'type' => 'string', 'required' => true, 'example' => 'eni-bp1d66qjxb3qoin3****', 'title' => ''], ], [ - 'name' => 'DryRun', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to perform a dry run. Valid values:'."\n" - ."\n" - .'* **true**: performs a dry run. The system checks the required parameters, request syntax, and 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.'."\n" - .'* **false** (default): performs a dry run and sends the request. If the request passes the dry run, a 2xx HTTP status code is returned and the operation is performed.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['description' => 'The region to which the EIP that you want to query belongs. You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'example' => 'cn-zhangjiakou', 'title' => ''], ], [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the CIDR blocks.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-chengdu', - ], + 'schema' => ['description' => 'The region to which the EIP that you want to query belongs. You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'example' => 'cn-zhangjiakou', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => '', + 'description' => 'The response parameters.'."\n", 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => '4EC47282-1B74-4534-BD0E-403F3EE64CAF', - ], - 'NextToken' => [ - 'description' => 'The token that is used for the next query. Valid values:'."\n" - ."\n" - .'* If **NextToken** was not returned, it indicates that no additional results exist.'."\n" - .'* If **NextToken** is returned, the value is the token that is used for the next query.'."\n", - 'type' => 'string', - 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', - ], - 'TotalCount' => [ - 'description' => 'The maximum number of entries returned. Valid values: **10** to **100**. Default value: **10**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'PublicIpPoolCidrBlockList' => [ - 'description' => 'The total number of entries returned.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'PublicIpAddressPoolId' => [ - 'description' => 'The information about the CIDR blocks.'."\n", - 'type' => 'string', - 'example' => 'pippool-6wetvn6fumkgycssx****', - ], - 'CidrBlock' => [ - 'description' => 'The ID of the IP address pool.'."\n", - 'type' => 'string', - 'example' => '47.0.XX.XX/24', - ], - 'CreationTime' => [ - 'description' => 'The CIDR blocks.'."\n", - 'type' => 'string', - 'example' => '2022-05-10T01:37:38Z', - ], - 'Status' => [ - 'description' => 'The time when the CIDR block was created. The time is displayed in `YYYY-MM-DDThh:mm:ssZ` format.'."\n", - 'type' => 'string', - 'example' => 'Created', - ], - 'UsedIpNum' => [ - 'description' => 'The status of the CIDR block in the IP address pool. Valid values:'."\n" - ."\n" - .'* **Created**: available'."\n" - .'* **Deleting**: being deleted'."\n" - .'* **Modifying**: being modified'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '20', - ], - 'TotalIpNum' => [ - 'description' => 'The total number of available IP addresses in the CIDR block.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '20', + 'Code' => ['description' => 'The status code of the operation.'."\n", 'type' => 'string', 'example' => '200', 'title' => ''], + 'Message' => ['description' => 'The result of the operation.'."\n", 'type' => 'string', 'example' => 'successful', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => 'C0FD0EED-F90D-4479-803D-DD62335357E5 ', 'title' => ''], + 'EipInfos' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'EipInfo' => [ + 'description' => 'The detailed information about the EIP.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'Ip' => ['description' => 'The IP address of the EIP.'."\n", 'type' => 'string', 'example' => '47.XX.XX.236', 'title' => ''], + 'IpGw' => ['description' => 'The IP address of the gateway that is associated with the EIP.'."\n", 'type' => 'string', 'example' => '47.XX.XX.1', 'title' => ''], + 'IpMask' => ['description' => 'The subnet mask of the EIP.'."\n", 'type' => 'string', 'example' => '255.255.255.0', 'title' => ''], + ], + 'title' => '', + 'example' => '', ], + 'title' => '', + 'example' => '', ], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'IllegalParam.NextToken', - 'errorMessage' => 'The specified NextToken is invalid.', - ], - [ - 'errorCode' => 'MissingParam.PublicIpAddressPoolId', - 'errorMessage' => 'The parameter PublicIpAddressPoolId is missing.', - ], + ['errorCode' => 'Instance.NotExist', 'errorMessage' => 'The instance is not exist.', 'description' => ''], + ['errorCode' => 'InvalidNetworkInterface.NotFound', 'errorMessage' => 'The specified network interface is not exist.', 'description' => ''], ], - ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"4EC47282-1B74-4534-BD0E-403F3EE64CAF\\",\\n \\"NextToken\\": \\"FFmyTO70tTpLG6I3FmYAXGKPd****\\",\\n \\"TotalCount\\": 10,\\n \\"PublicIpPoolCidrBlockList\\": [\\n {\\n \\"PublicIpAddressPoolId\\": \\"pippool-6wetvn6fumkgycssx****\\",\\n \\"CidrBlock\\": \\"47.0.XX.XX/24\\",\\n \\"CreationTime\\": \\"2022-05-10T01:37:38Z\\",\\n \\"Status\\": \\"Created\\",\\n \\"UsedIpNum\\": 20,\\n \\"TotalIpNum\\": 20\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\n 4EC47282-1B74-4534-BD0E-403F3EE64CAF\\n FFmyTO70tTpLG6I3FmYAXGKPd****\\n 10\\n 10\\n \\n pippool-6wetvn6fumkgycssx****\\n 47.0.XX.XX/24\\n 2022-05-10T01:37:38Z\\n Created\\n 20\\n 20\\n \\n","errorExample":""}]', - 'title' => 'ListPublicIpAddressPoolCidrBlocks', - ], - 'GetPublicIpAddressPoolServiceStatus' => [ - 'summary' => 'Queries whether the IP address pool feature is enabled.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], - ], - ], - 'operationType' => 'readAndWrite', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'get', - 'riskType' => 'none', - 'chargeType' => 'free', - 'autoTest' => true, - 'tenantRelevance' => 'tenant', - ], - 'parameters' => [ - [ - 'name' => 'ClientToken', - 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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.'."\n" - ."\n" - .'> 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.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-426655442455', - ], - ], - [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the IP address pool.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], - ], - [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the IP address pool.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], - ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '54B48E3D-DF70-471B-AA93-06F82A1B457', - ], - 'Enabled' => [ - 'description' => 'Indicates whether the IP address pool feature is enabled. Valid values:'."\n" - ."\n" - .'* **true**'."\n" - .'* **false** You can call OpenPublicIpAddressPoolService to enable the IP address pool feature.'."\n", - 'type' => 'boolean', - 'example' => 'true', - ], - ], - 'description' => '', - ], - ], - ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'Forbidden.RAM', - 'errorMessage' => 'The user is not authorized to operate on the specified resource, or the API operation does not support RAM.', - ], + 403 => [ + ['errorCode' => 'Forbidden', 'errorMessage' => 'User not authorized to operate on the specified resource.', 'description' => 'You do not have the permissions to manage the specified resource. Apply for the permissions and try again.'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'DescribeEipGatewayInfo', + 'summary' => 'Queries the gateway and subnet mask of an elastic IP address (EIP).', + 'description' => 'You can query only EIPs that are associated with secondary elastic network interfaces (ENIs) in multi-EIP-to-ENI mode.'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2023-05-15T06:29:29.000Z', 'description' => 'Error codes changed'], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-06F82A1B457\\",\\n \\"Enabled\\": true\\n}","type":"json"}]', - 'title' => 'GetPublicIpAddressPoolServiceStatus', + 'ramActions' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"200\\",\\n \\"Message\\": \\"successful\\",\\n \\"RequestId\\": \\"C0FD0EED-F90D-4479-803D-DD62335357E5\\\\t\\",\\n \\"EipInfos\\": {\\n \\"EipInfo\\": [\\n {\\n \\"Ip\\": \\"47.XX.XX.236\\",\\n \\"IpGw\\": \\"47.XX.XX.1\\",\\n \\"IpMask\\": \\"255.255.255.0\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 200\\n successful\\n C0FD0EED-F90D-4479-803D-DD62335357E5\\t\\n \\n 47.XX.XX.236\\n 47.XX.XX.1\\n 255.255.255.0\\n \\n","errorExample":""}]', ], 'DescribeEipMonitorData' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'summary' => 'Queries the monitoring data of an elastic IP address (EIP). You can query monitoring data within the last 30 days, and obtain up to 400 data points in each request.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'get', - ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', 'autoTest' => true, 'tenantRelevance' => 'tenant'], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region to which the EIP belongs. You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The ID of the region to which the EIP belongs. You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou', 'title' => ''], ], [ 'name' => 'AllocationId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the EIP.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'eip-2zeerraiwb7uj6idcfv****', - ], + 'schema' => ['description' => 'The ID of the EIP.'."\n", 'type' => 'string', 'required' => true, 'example' => 'eip-2zeerraiwb7uj6idcfv****', 'title' => ''], ], [ 'name' => 'StartTime', 'in' => 'query', - 'schema' => [ - 'description' => 'The beginning of the time range to query. The time must be in UTC. Specify the time in the ISO 8601 standard in `YYYY-MM-DDThh:mm:ssZ` format. For example, `2013-01-10T12:00:00Z` specifies 20:00:00 (UTC+8) on January 10, 2013.'."\n" - ."\n" - .'If the value of seconds (ss) is not 00, the start time is automatically rounded up to the next minute.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => '2020-01-05T01:05:05Z', - ], + 'schema' => ['description' => 'The beginning of the time range to query. The time must be in UTC. Specify the time in the ISO 8601 standard in `YYYY-MM-DDThh:mm:ssZ` format. For example, `2013-01-10T12:00:00Z` specifies 20:00:00 (UTC+8) on January 10, 2013.'."\n" + ."\n" + .'If the value of seconds (ss) is not 00, the start time is automatically rounded up to the next minute.'."\n", 'type' => 'string', 'required' => true, 'example' => '2020-01-05T01:05:05Z', 'title' => ''], ], [ 'name' => 'EndTime', 'in' => 'query', - 'schema' => [ - 'description' => 'The end of the time range to query. The time must be in UTC. Specify the time in the ISO 8601 standard in the `YYYY-MM-DDThh:mm:ssZ` format. For example, `2013-01-10T12:00:00Z` specifies 20:00:00 (UTC+8) on January 10, 2013.'."\n" - ."\n" - .'If the value of seconds (ss) is not 00, the end time is automatically rounded up to the next minute.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => '2020-01-05T03:05:10Z', - ], + 'schema' => ['description' => 'The end of the time range to query. The time must be in UTC. Specify the time in the ISO 8601 standard in the `YYYY-MM-DDThh:mm:ssZ` format. For example, `2013-01-10T12:00:00Z` specifies 20:00:00 (UTC+8) on January 10, 2013.'."\n" + ."\n" + .'If the value of seconds (ss) is not 00, the end time is automatically rounded up to the next minute.'."\n", 'type' => 'string', 'required' => true, 'example' => '2020-01-05T03:05:10Z', 'title' => ''], ], [ 'name' => 'Period', 'in' => 'query', - 'schema' => [ - 'description' => 'The duration of each monitoring data entry. Unit: seconds. Valid values: **60** (default), **300**, **900**, and **3600**.'."\n" - ."\n" - .'* If the value of **(EndTime** - **StartTime**)/**Period** is greater than 200, a maximum of 200 monitoring data entries are returned at a time.'."\n" - .'* If the value of (**EndTime** - **StartTime**)/**Period** is less than or equal to 200, only the monitoring data collected between the start time and end time is returned.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '60', - 'default' => '60', - ], + 'schema' => ['description' => 'The duration of each monitoring data entry. Unit: seconds. Valid values: **60** (default), **300**, **900**, and **3600**.'."\n" + ."\n" + .'* If the value of **(EndTime** - **StartTime**)/**Period** is greater than 200, a maximum of 200 monitoring data entries are returned at a time.'."\n" + .'* If the value of (**EndTime** - **StartTime**)/**Period** is less than or equal to 200, only the monitoring data collected between the start time and end time is returned.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '60', 'default' => '60', 'title' => ''], ], ], 'responses' => [ @@ -34257,11 +25212,7 @@ 'description' => 'The response parameters.'."\n", 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => 'C8B26B44-0189-443E-9816-D951F59623A9', - ], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => 'C8B26B44-0189-443E-9816-D951F59623A9', 'title' => ''], 'EipMonitorDatas' => [ 'type' => 'object', 'itemNode' => true, @@ -34273,310 +25224,298 @@ 'description' => '', 'type' => 'object', 'properties' => [ - 'EipTX' => [ - 'description' => 'The outbound traffic. Unit: bytes.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '343', - ], - 'EipPackets' => [ - 'description' => 'The number of packets.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '3434', - ], - 'EipBandwidth' => [ - 'description' => 'The average bandwidth value. This value is equal to **EipFlow**/**Period**. Unit: byte/s. The default value of **Period** is **60**. Unit: seconds.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'TimeStamp' => [ - 'description' => 'The timestamp of the monitoring data. Specify the time in the ISO8601 standard. Example: `2020-01-21T09:50:23Z`.'."\n", - 'type' => 'string', - 'example' => '2020-01-21T09:50:23Z', - ], - 'EipFlow' => [ - 'description' => 'The sum of inbound and outbound traffic.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '465', - ], - 'EipRX' => [ - 'description' => 'The inbound traffic. Unit: bytes.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '122', - ], + 'EipTX' => ['description' => 'The outbound traffic. Unit: bytes.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '343', 'title' => ''], + 'EipPackets' => ['description' => 'The number of packets.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '3434', 'title' => ''], + 'EipBandwidth' => ['description' => 'The average bandwidth value. This value is equal to **EipFlow**/**Period**. Unit: byte/s. The default value of **Period** is **60**. Unit: seconds.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '10', 'title' => ''], + 'TimeStamp' => ['description' => 'The timestamp of the monitoring data. Specify the time in the ISO8601 standard. Example: `2020-01-21T09:50:23Z`.'."\n", 'type' => 'string', 'example' => '2020-01-21T09:50:23Z', 'title' => ''], + 'EipFlow' => ['description' => 'The sum of inbound and outbound traffic.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '465', 'title' => ''], + 'EipRX' => ['description' => 'The inbound traffic. Unit: bytes.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '122', 'title' => ''], ], + 'title' => '', + 'example' => '', ], + 'title' => '', + 'example' => '', ], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParameter.TooMany', - 'errorMessage' => 'monitor parameter too many data required.', - ], - [ - 'errorCode' => 'InvalidStartTime.Malformed', - 'errorMessage' => 'The specified parameter "StartTime" is not valid.', - ], - [ - 'errorCode' => 'InvalidEndTime.Malformed', - 'errorMessage' => 'The specified parameter "EndTime" is not valid.', - ], - [ - 'errorCode' => 'InvalidPeriod.ValueNotSupported', - 'errorMessage' => 'The specified parameter "Period" is not valid.', - ], - [ - 'errorCode' => 'InvalidStartTime.TooEarly', - 'errorMessage' => 'The specified parameter "StartTime" is too early.', - ], - [ - 'errorCode' => 'InvalidAllocationId.NotFound', - 'errorMessage' => 'Specified allocation id is not found.', - ], - [ - 'errorCode' => 'OperationDenied.TooManyDataQueried', - 'errorMessage' => 'Specified operation is denied as too many data to return.', - ], + ['errorCode' => 'InvalidParameter.TooMany', 'errorMessage' => 'monitor parameter too many data required.', 'description' => 'There are multiple invalid input parameters.'], + ['errorCode' => 'InvalidStartTime.Malformed', 'errorMessage' => 'The specified parameter "StartTime" is not valid.', 'description' => ''], + ['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'The specified parameter "EndTime" is not valid.', 'description' => ''], + ['errorCode' => 'InvalidPeriod.ValueNotSupported', 'errorMessage' => 'The specified parameter "Period" is not valid.', 'description' => ''], + ['errorCode' => 'InvalidStartTime.TooEarly', 'errorMessage' => 'The specified parameter "StartTime" is too early.', 'description' => ''], + ['errorCode' => 'InvalidAllocationId.NotFound', 'errorMessage' => 'Specified allocation id is not found.', 'description' => ''], + ['errorCode' => 'OperationDenied.TooManyDataQueried', 'errorMessage' => 'Specified operation is denied as too many data to return.', 'description' => ''], ], 404 => [ - [ - 'errorCode' => 'InvalidIpInstanceId.NotFound', - 'errorMessage' => 'The specified Eip InstanceId does not exist in our records.', - ], - [ - 'errorCode' => 'InvalidInstanceId.NotFound', - 'errorMessage' => 'The InstanceId provided does not exist in our records.', - ], - [ - 'errorCode' => 'Forbidden.RegionNotFound', - 'errorMessage' => 'Specified region is not found during access authentication.', - ], + ['errorCode' => 'InvalidIpInstanceId.NotFound', 'errorMessage' => 'The specified Eip InstanceId does not exist in our records.', 'description' => ''], + ['errorCode' => 'InvalidInstanceId.NotFound', 'errorMessage' => 'The InstanceId provided does not exist in our records.', 'description' => ''], + ['errorCode' => 'Forbidden.RegionNotFound', 'errorMessage' => 'Specified region is not found during access authentication.', 'description' => ''], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"C8B26B44-0189-443E-9816-D951F59623A9\\",\\n \\"EipMonitorDatas\\": {\\n \\"EipMonitorData\\": [\\n {\\n \\"EipTX\\": 343,\\n \\"EipPackets\\": 3434,\\n \\"EipBandwidth\\": 10,\\n \\"TimeStamp\\": \\"2020-01-21T09:50:23Z\\",\\n \\"EipFlow\\": 465,\\n \\"EipRX\\": 122\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n C8B26B44-0189-443E-9816-D951F59623A9\\n \\n 343\\n 3434\\n 10\\n 2020-01-21T09:50:23Z\\n 465\\n 122\\n \\n","errorExample":""}]', + 'staticInfo' => ['returnType' => 'synchronous'], 'title' => 'DescribeEipMonitorData', - 'summary' => 'Queries the monitoring data of an elastic IP address (EIP). You can query monitoring data within the last 30 days, and get up to 400 data points in each request.', 'description' => 'To improve user experience in querying monitoring data, we recommend that you call the DescribeMetricList API operation provided by CloudMonitor to query EIP monitoring data. For more information, see [DescribeMetricList](~~51936~~) and [EIP monitoring data](~~162874~~).'."\n", 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'SetHighDefinitionMonitorLogStatus' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [ + ['createdAt' => '2022-12-02T09:41:32.000Z', 'description' => 'Response parameters changed'], ], + 'ramActions' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"C8B26B44-0189-443E-9816-D951F59623A9\\",\\n \\"EipMonitorDatas\\": {\\n \\"EipMonitorData\\": [\\n {\\n \\"EipTX\\": 343,\\n \\"EipPackets\\": 3434,\\n \\"EipBandwidth\\": 10,\\n \\"TimeStamp\\": \\"2020-01-21T09:50:23Z\\",\\n \\"EipFlow\\": 465,\\n \\"EipRX\\": 122\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n C8B26B44-0189-443E-9816-D951F59623A9\\n \\n 343\\n 3434\\n 10\\n 2020-01-21T09:50:23Z\\n 465\\n 122\\n \\n","errorExample":""}]', + ], + 'DescribeEipSegment' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', - 'systemTags' => [], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', 'autoTest' => true, 'tenantRelevance' => 'tenant'], 'parameters' => [ [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the instance.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cn-hangzhou', - ], - ], - [ - 'name' => 'LogProject', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The name of the Simple Log Service (SLS) project.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'hdmonitor-cn-shenzhen', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'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.'."\n" + ."\n" + .'> If you do not specify this parameter, the system automatically uses the **RequestId** as the **ClientToken**. The **RequestId** may be different for each API request.', 'type' => 'string', 'required' => false, 'example' => '02fb3da4-130e-11e9-8e44-001sdfg', 'title' => ''], ], [ - 'name' => 'LogStore', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The name of the Logstore.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'hdmonitor', - ], + 'schema' => ['description' => 'The region ID of the contiguous EIP group. You can call the [DescribeRegions](~~36063~~) operation to query the region ID.', 'type' => 'string', 'required' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'InstanceId', + 'name' => 'SegmentInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the instance for which you want to configure fine-grained monitoring.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'eip-wz9fi6qboho9fwgx7****', - ], + 'schema' => ['description' => 'The instance ID of the contiguous EIP group to query.'."\n" + ."\n" + .'If you do not specify this parameter, information about all contiguous EIP groups in the specified region is returned.', 'type' => 'string', 'required' => false, 'example' => 'eipsg-2zett8ba055tbsxme****', 'title' => ''], ], [ - 'name' => 'InstanceType', + 'name' => 'PageNumber', 'in' => 'query', - 'schema' => [ - 'description' => 'The instance type. Set the value to **EIP**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'EIP', - 'default' => 'EIP', - ], + 'schema' => ['description' => 'The page number of the list. Default value: **1**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'minimum' => '1', 'default' => '1', 'example' => '1', 'title' => ''], ], [ - 'name' => 'Status', + 'name' => 'PageSize', 'in' => 'query', - 'schema' => [ - 'description' => 'The status of fine-grained monitoring. Valid values:'."\n" - ."\n" - .'* **ON**'."\n" - .'* **OFF**'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'ON', - ], + 'schema' => ['description' => 'The number of entries per page for a paged query. Maximum value: **50**. Default value: **10**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '50', 'minimum' => '1', 'default' => '10', 'example' => '10', 'title' => ''], ], ], 'responses' => [ 200 => [ + 'headers' => [], 'schema' => [ - 'description' => 'The response parameters.'."\n", + 'description' => 'The response parameters.', 'type' => 'object', 'properties' => [ - 'Success' => [ - 'description' => 'Indicates whether the operation is performed. Valid values:'."\n" - ."\n" - .'* **true**'."\n" - .'* **false**'."\n", - 'type' => 'string', - 'example' => 'true', - ], - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B457', + 'PageSize' => ['description' => 'The number of entries per page in a paging query.', 'type' => 'integer', 'format' => 'int32', 'example' => '10', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'F7A6301A-64BA-41EC-8284-8F4838C15D1F', 'title' => ''], + 'PageNumber' => ['description' => 'The page number of the list.', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''], + 'TotalCount' => ['description' => 'The total number of entries returned.', 'type' => 'integer', 'format' => 'int32', 'example' => '10', 'title' => ''], + 'EipSegments' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'EipSegment' => [ + 'description' => 'The details of the contiguous EIP group.', + 'type' => 'array', + 'items' => [ + 'description' => 'The details of the contiguous EIP group.', + 'type' => 'object', + 'properties' => [ + 'CreationTime' => ['description' => 'The time when the contiguous EIP group was created. The time is displayed in ISO 8601 standard in UTC+0. The format is yyyy-MM-ddTHH:mm:ssZ.', 'type' => 'string', 'example' => '2020-03-06T12:30:07Z', 'title' => ''], + 'Status' => ['description' => 'The status of the contiguous EIP group. Valid values:'."\n" + ."\n" + .'- **Allocating**: being allocated.'."\n" + ."\n" + .'- **Allocated**: allocated.'."\n" + ."\n" + .'- **Releasing**: being released.', 'type' => 'string', 'example' => 'Allocated', 'title' => ''], + 'Descritpion' => ['description' => 'The description of the contiguous EIP group.', 'type' => 'string', 'example' => 'MyEipSegment', 'title' => ''], + 'InstanceId' => ['description' => 'The instance ID of the contiguous EIP group.', 'type' => 'string', 'example' => 'eipsg-2zett8ba055tbsxme****', 'title' => ''], + 'IpCount' => ['description' => 'The number of IP addresses in the contiguous EIP group.', 'type' => 'string', 'example' => '16', 'title' => ''], + 'Name' => ['description' => 'The name of the contiguous EIP group.', 'type' => 'string', 'example' => 'MyEipSegment', 'title' => ''], + 'Segment' => ['description' => 'The CIDR block and subnet mask of the contiguous EIP group.', 'type' => 'string', 'example' => '161.xx.xx.32/28', 'title' => ''], + 'RegionId' => ['description' => 'The region ID of the contiguous EIP group.', 'type' => 'string', 'example' => 'cn-hangzhou', 'title' => ''], + 'Zone' => ['description' => 'The zone of the contiguous EIP group.', 'type' => 'string', 'example' => 'cn-hangzhou-a', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], + 'title' => '', + 'example' => '', ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InvalidInstanceId', - 'errorMessage' => 'Instance does not exist.', - ], - [ - 'errorCode' => 'ProjectOrLogstoreNotExist', - 'errorMessage' => 'The specified project or logstore does not exist.', - ], - [ - 'errorCode' => 'SourceProjectNotExist', - 'errorMessage' => 'The Source Project or logstore does not exist.', - ], - [ - 'errorCode' => 'Unauthorized', - 'errorMessage' => 'This api does not support sub user or role.', - ], - [ - 'errorCode' => 'ParameterInvalid', - 'errorMessage' => 'Invalid parameter.', - ], - [ - 'errorCode' => 'InvalidAction.NotSupport', - 'errorMessage' => 'This region does not support this action.', - ], - [ - 'errorCode' => 'RuleExist', - 'errorMessage' => 'The rule has already existed.', - ], - [ - 'errorCode' => 'InvalidHdMonitorStatus', - 'errorMessage' => 'Current instance status is not valid for this action.', - ], - [ - 'errorCode' => 'HdMonitorEipNumberOverLimit', - 'errorMessage' => 'This user has reached the maximum Eip number of high definination.', - ], - [ - 'errorCode' => 'InvalidAllocationId.NotFound', - 'errorMessage' => 'Specified allocation id is not found.', + 'errorCodes' => [], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'Query contiguous EIP groups', + 'summary' => 'Queries information about contiguous Elastic IP Address (EIP) groups.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2023-04-10T05:59:38.000Z', 'description' => 'Response parameters changed, Response parameters changed'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DescribeEipSegment'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'vpc:DescribeEipSegment', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'SegmentAddress', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:eip/*'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Success\\": \\"true\\",\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B457\\"\\n}","errorExample":""},{"type":"xml","example":"\\n true\\n 54B48E3D-DF70-471B-AA93-08E683A1B457\\n","errorExample":""}]', - 'title' => 'SetHighDefinitionMonitorLogStatus', - 'summary' => 'Configures fine-grained monitoring for an elastic IP address (EIP).', - 'description' => 'You cannot repeatedly call **SetHighDefinitionMonitorLogStatus** within a specific period of time.'."\n", + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"PageSize\\": 10,\\n \\"RequestId\\": \\"F7A6301A-64BA-41EC-8284-8F4838C15D1F\\",\\n \\"PageNumber\\": 1,\\n \\"TotalCount\\": 10,\\n \\"EipSegments\\": {\\n \\"EipSegment\\": [\\n {\\n \\"CreationTime\\": \\"2020-03-06T12:30:07Z\\",\\n \\"Status\\": \\"Allocated\\",\\n \\"Descritpion\\": \\"MyEipSegment\\",\\n \\"InstanceId\\": \\"eipsg-2zett8ba055tbsxme****\\",\\n \\"IpCount\\": \\"16\\",\\n \\"Name\\": \\"MyEipSegment\\",\\n \\"Segment\\": \\"161.xx.xx.32/28\\",\\n \\"RegionId\\": \\"cn-hangzhou\\",\\n \\"Zone\\": \\"cn-hangzhou-a\\"\\n }\\n ]\\n }\\n}","type":"json"}]', ], - 'DescribeHighDefinitionMonitorLogAttribute' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DescribeExpressConnectTrafficQos' => [ + 'summary' => 'Queries the quality of service (QoS) policies of Express Connect. The response can be displayed by page.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'read', - 'systemTags' => [ - 'operationType' => 'get', - ], + 'deprecated' => false, + 'systemTags' => ['operationType' => 'list', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', + 'schema' => ['description' => 'The ID of the region in which the QoS policy is created.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-shanghai', 'title' => ''], + ], + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'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.'."\n" + ."\n" + .'> 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.'."\n", 'type' => 'string', 'required' => false, 'docRequired' => true, 'example' => '02fb3da4-130e-11e9-8e44-0016e04115b', 'title' => ''], + ], + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'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.'."\n" + ."\n" + .'> 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.'."\n", 'type' => 'string', 'required' => false, 'docRequired' => true, 'example' => '02fb3da4-130e-11e9-8e44-0016e04115b', 'title' => ''], + ], + [ + 'name' => 'QosIdList', + 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => 'The region ID of the instance.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.', - 'type' => 'string', - 'required' => true, - 'example' => 'cn-hangzhou', + 'title' => '', + 'description' => 'The IDs of QoS policies.', + 'type' => 'array', + 'items' => ['description' => 'The IDs of QoS policies.', 'type' => 'string', 'required' => false, 'example' => 'qos-2giu0a6vd5x0mv****', 'title' => ''], + 'required' => false, + 'maxItems' => 100, + 'example' => '', ], ], [ - 'name' => 'InstanceId', + 'name' => 'QosNameList', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => 'The ID of the instance whose fine-grained monitoring configurations you want to query.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'eip-wz9fi6qboho9fwgx7****', + 'title' => '', + 'description' => 'The names of QoS policies.', + 'type' => 'array', + 'items' => ['description' => 'The names of QoS policies.', 'type' => 'string', 'required' => false, 'example' => 'qos-test', 'title' => ''], + 'required' => false, + 'maxItems' => 100, + 'example' => '', ], ], [ - 'name' => 'InstanceType', + 'name' => 'NextToken', + 'in' => 'query', + 'schema' => ['title' => '', 'description' => 'The pagination token that is used in the next request to retrieve a new page of results.'."\n" + ."\n" + .'- If no value is returned for NetToken, you do not need to specify this parameter.'."\n" + .'- If a value is returned for NextToken, you must specify the token that is obtained from the previous query as the value of **NextToken**.', 'type' => 'string', 'required' => false, 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****'], + ], + [ + 'name' => 'MaxResults', + 'in' => 'query', + 'schema' => ['title' => '', 'description' => 'The maximum number of entries to return. Valid values: **1** to **100**. Default value: **10**.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '20'], + ], + [ + 'name' => 'ResourceGroupId', + 'in' => 'query', + 'schema' => ['description' => 'The resource group ID.'."\n", 'type' => 'string', 'required' => false, 'example' => 'rg-acfmxazfdgdg****', 'title' => ''], + ], + [ + 'name' => 'Tags', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => 'The type of the instance. Set the value to **EIP**.'."\n", - 'type' => 'string', + 'description' => 'The tags of the resource.', + 'type' => 'array', + 'items' => [ + 'description' => 'The tags of the resource.', + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => 'The tag key. You must enter at least one tag key. You can specify up to 20 tag keys. The tag key cannot be an empty string.'."\n" + ."\n" + .'A tag key can be at most 128 characters in length. It cannot start with `aliyun` or `acs:`, and cannot contain `http://` or `https://`.'."\n", 'type' => 'string', 'required' => false, 'example' => 'FinanceDept', 'title' => ''], + 'Value' => ['description' => 'The tag values of the resources. You can specify up to 20 tag values. The tag value can be an empty string.'."\n" + ."\n" + .'The tag value can be up to 128 characters in length, and cannot contain `http://` or `https://`. The tag value cannot start with `aliyun` or `acs:`.'."\n", 'type' => 'string', 'required' => false, 'example' => 'FinanceJoshua', 'title' => ''], + ], + 'required' => false, + 'title' => '', + 'example' => '', + ], 'required' => false, - 'example' => 'EIP', - 'default' => 'EIP', + 'maxItems' => 20, + 'title' => '', + 'example' => '', ], ], ], @@ -34585,89 +25524,166 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'LogProject' => [ - 'description' => 'The name of the project.'."\n", - 'type' => 'string', - 'example' => 'hdmonitor-cn-shenzhen-1658206966225390', - ], - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B457', - ], - 'LogStore' => [ - 'description' => 'The name of the Logstore.'."\n", - 'type' => 'string', - 'example' => 'hdmonitor', - ], - 'Success' => [ - 'description' => 'Indicates whether the operation is performed. Valid values:'."\n" - ."\n" - .'* **true**'."\n" - .'* **false**'."\n", - 'type' => 'string', - 'example' => 'true', - ], - 'InstanceId' => [ - 'description' => 'The ID of the instance whose fine-grained monitoring configurations you want to query.'."\n", - 'type' => 'string', - 'example' => 'eip-wz9fi6qboho9fwgx7****', - ], - 'InstanceType' => [ - 'description' => 'The type of instance for which you want to query fine-grained monitoring. Only **EIP** may be returned.'."\n", - 'type' => 'string', - 'example' => 'EIP', + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '4CF20CC7-D1FC-425B-A15B-DF7C8E2131A7', 'title' => ''], + 'NextToken' => ['description' => 'A pagination token. It can be used in the next request to retrieve a new page of results.'."\n" + ."\n" + .'* If **NextToken** is empty, no next page exists.'."\n" + .'* If a value is returned for **NextToken**, the value can be used in the next request to retrieve a new page of results.'."\n", 'type' => 'string', 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', 'title' => ''], + 'MaxResults' => ['description' => 'The number of entries per page. Valid values: **1 to 100**. Default value: 20.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '20', 'title' => ''], + 'TotalCount' => ['description' => 'The number of returned entries.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '10', 'title' => ''], + 'Count' => ['description' => 'The total number of entries returned.'."\n", 'type' => 'string', 'example' => '1', 'title' => ''], + 'QosList' => [ + 'description' => 'The information about QoS policies.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The information about the QoS policies.'."\n", + 'type' => 'object', + 'properties' => [ + 'QosId' => ['description' => 'The ID of the QoS policy.', 'type' => 'string', 'example' => 'qos-pksbqfmotl5hzq****', 'title' => ''], + 'QosName' => ['description' => 'The name of the QoS policy.'."\n" + ."\n" + .'The name can be up to 128 characters in length and cannot start with `http://` or `https://`.', 'type' => 'string', 'example' => 'qos-test', 'title' => ''], + 'QosDescription' => ['description' => 'The description of the QoS policy.'."\n" + ."\n" + .'The description can be up to 256 characters in length. It cannot start with `http://` or `https://`.', 'type' => 'string', 'example' => 'qos-test', 'title' => ''], + 'Status' => [ + 'description' => 'The state of the QoS policy. Valid values:'."\n" + ."\n" + .'- **Normal**: The QoS policy is available.'."\n" + .'- **Configuring**: The QoS policy is being configured.'."\n" + ."\n" + .' > If a QoS policy is in the Configuring state, you cannot perform most of the operations to create, update, or delete QoS policies, QoS queues, or QoS rules.', + 'type' => 'string', + 'enumValueTitles' => ['Configuring' => 'Configuring', 'Normal' => 'Normal'], + 'example' => 'Normal', + 'title' => '', + ], + 'Progressing' => ['description' => 'The configuration progress of the QoS policy. Valid values: **0** to **100**.', 'type' => 'integer', 'format' => 'int32', 'example' => '100', 'title' => ''], + 'AssociatedInstanceList' => [ + 'description' => 'The information about the instances to which the QoS policy is associated.', + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'InstanceId' => ['description' => 'The ID of the instance to which the QoS policy is associated.', 'type' => 'string', 'example' => 'pc-bp159zj8zujwy3p07****', 'title' => ''], + 'InstanceType' => [ + 'description' => 'The type of the instance to which the QoS policy is associated. Only **PHYSICALCONNECTION** is returned.', + 'type' => 'string', + 'enumValueTitles' => ['PHYSICALCONNECTION' => 'PHYSICALCONNECTION'], + 'example' => 'PHYSICALCONNECTION', + 'title' => '', + ], + 'InstanceStatus' => [ + 'description' => 'The state of the instance to which the QoS policy is associated. Valid values:'."\n" + ."\n" + .'- **Normal**: The instance is available.'."\n" + .'- **Configuring**: The instance is being configured.'."\n" + .'- **Deleting**: The instance is being deleted.', + 'type' => 'string', + 'enumValueTitles' => ['Configuring' => 'Configuring', 'Normal' => 'Normal', 'Deleting' => 'Deleting'], + 'example' => 'Normal', + 'title' => '', + ], + 'InstanceProgressing' => ['description' => 'The configuration progress of the instance to which the QoS policy is associated. Valid values: **0** to **100**.', 'type' => 'integer', 'format' => 'int32', 'example' => '100', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + 'QueueList' => [ + 'description' => 'The information about the QoS queues.', + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'QosId' => ['description' => 'The ID of the QoS policy.', 'type' => 'string', 'example' => 'qos-pksbqfmotl5hzq****', 'title' => ''], + 'QueueId' => ['description' => 'The ID of the QoS queue.', 'type' => 'string', 'example' => 'qos-queue-9nyx2u7n71s2rc****', 'title' => ''], + 'QueueType' => [ + 'description' => 'The type of the QoS queue. Valid values:'."\n" + ."\n" + .'- **High**: high-priority queue.'."\n" + .'- **Medium**: standard queue.'."\n" + .'- **Default**: default queue.'."\n" + ."\n\n" + .'> You cannot create a default queue.', + 'type' => 'string', + 'enumValueTitles' => ['High' => 'High', 'Medium' => 'Medium', 'Default' => 'Default'], + 'example' => 'High', + 'title' => '', + ], + 'BandwidthPercent' => ['description' => 'The percentage of bandwidth allocated to a QoS queue.'."\n" + ."\n" + .'- If QueueType is set to **Medium**, this parameter is required. Valid values: **1** to **100**.'."\n" + .'- If QueueType is set to **Default**, a value of - is returned.', 'type' => 'string', 'example' => '100', 'title' => ''], + 'QueueName' => ['description' => 'The name of the QoS queue.'."\n" + ."\n" + .'The name can be up to **128** characters in length and cannot start with `http://` or `https://`.', 'type' => 'string', 'example' => 'qos-queue-test', 'title' => ''], + 'QueueDescription' => ['description' => 'The description of the QoS queue.'."\n" + ."\n" + .'The description can be up to **256** characters in length. It cannot start with `http://` or `https://`.', 'type' => 'string', 'example' => 'qos-queue-test', 'title' => ''], + 'Status' => ['description' => 'The state of the QoS queue. Valid values:'."\n" + ."\n" + .'- **Normal**: The QoS queue is available.'."\n" + .'- **Configuring**: The QoS queue is being configured.'."\n" + .'- **Deleting**: The QoS queue is being deleted.', 'type' => 'string', 'example' => 'Normal', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + 'ResourceGroupId' => ['description' => 'The ID of the resource group.', 'type' => 'string', 'example' => 'rg-acfmz7vtyl4f***', 'title' => ''], + 'Tags' => [ + 'description' => 'The tag list.', + 'type' => 'array', + 'items' => [ + 'description' => 'The tag list.', + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => 'The tag key.', 'type' => 'string', 'example' => 'FinanceDept', 'title' => ''], + 'Value' => ['description' => 'The tag value.', 'type' => 'string', 'example' => 'FinanceJoshua', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + ], + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', ], ], 'description' => '', + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidInstanceId', - 'errorMessage' => 'Instance does not exist.', - ], - [ - 'errorCode' => 'ProjectNotExist', - 'errorMessage' => 'The Project does not exist.', - ], - [ - 'errorCode' => 'ParameterInvalid', - 'errorMessage' => 'Invalid parameter.', - ], - [ - 'errorCode' => 'InvalidHdMonitorStatus', - 'errorMessage' => 'Current instance status is not valid for this action.', - ], - [ - 'errorCode' => 'InvalidAction.NotSupport', - 'errorMessage' => 'This region does not support this action.', - ], - [ - 'errorCode' => 'InvalidAllocationId.NotFound', - 'errorMessage' => 'Specified allocation id is not found.', - ], + ['errorCode' => 'IllegalParam.%s', 'errorMessage' => 'The param of %s is illegal.', 'description' => 'The parameter is invalid.'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"LogProject\\": \\"hdmonitor-cn-shenzhen-1658206966225390\\",\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B457\\",\\n \\"LogStore\\": \\"hdmonitor\\",\\n \\"Success\\": \\"true\\",\\n \\"InstanceId\\": \\"eip-wz9fi6qboho9fwgx7****\\",\\n \\"InstanceType\\": \\"EIP\\"\\n}","errorExample":""},{"type":"xml","example":"\\n54B48E3D-DF70-471B-AA93-08E683A1B457\\nhdmonitor\\neip-wz9fi6qboho9fwgx7****\\nEIP\\nhdmonitor-cn-shenzhen-1658206966225390\\ntrue\\n","errorExample":""}]', - 'title' => 'DescribeHighDefinitionMonitorLogAttribute', - 'summary' => 'Queries configurations about the fine-grained monitoring feature of an elastic IP address (EIP).', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'DescribePublicIpAddress' => [ - 'summary' => 'Queries the public IP address range of a virtual private cloud (VPC) in a region.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'DescribeExpressConnectTrafficQos', + 'changeSet' => [ + ['createdAt' => '2024-12-18T07:44:11.000Z', 'description' => 'Request parameters changed, Response parameters changed'], ], + 'ramActions' => [], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"4CF20CC7-D1FC-425B-A15B-DF7C8E2131A7\\",\\n \\"NextToken\\": \\"FFmyTO70tTpLG6I3FmYAXGKPd****\\",\\n \\"MaxResults\\": 20,\\n \\"TotalCount\\": 10,\\n \\"Count\\": \\"1\\",\\n \\"QosList\\": [\\n {\\n \\"QosId\\": \\"qos-pksbqfmotl5hzq****\\",\\n \\"QosName\\": \\"qos-test\\",\\n \\"QosDescription\\": \\"qos-test\\",\\n \\"Status\\": \\"Normal\\",\\n \\"Progressing\\": 100,\\n \\"AssociatedInstanceList\\": [\\n {\\n \\"InstanceId\\": \\"pc-bp159zj8zujwy3p07****\\",\\n \\"InstanceType\\": \\"PHYSICALCONNECTION\\",\\n \\"InstanceStatus\\": \\"Normal\\",\\n \\"InstanceProgressing\\": 100\\n }\\n ],\\n \\"QueueList\\": [\\n {\\n \\"QosId\\": \\"qos-pksbqfmotl5hzq****\\",\\n \\"QueueId\\": \\"qos-queue-9nyx2u7n71s2rc****\\",\\n \\"QueueType\\": \\"High\\",\\n \\"BandwidthPercent\\": \\"100\\",\\n \\"QueueName\\": \\"qos-queue-test\\",\\n \\"QueueDescription\\": \\"qos-queue-test\\",\\n \\"Status\\": \\"Normal\\"\\n }\\n ],\\n \\"ResourceGroupId\\": \\"rg-acfmz7vtyl4f***\\",\\n \\"Tags\\": [\\n {\\n \\"Key\\": \\"FinanceDept\\",\\n \\"Value\\": \\"FinanceJoshua\\"\\n }\\n ]\\n }\\n ]\\n}","type":"json"}]', + ], + 'DescribeExpressConnectTrafficQosQueue' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -34675,791 +25691,666 @@ ], 'operationType' => 'read', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'list', - 'riskType' => 'none', - 'chargeType' => 'free', - 'autoTest' => true, - 'tenantRelevance' => 'publicInformation', - ], + 'systemTags' => ['operationType' => 'list', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ - 'name' => 'PageNumber', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The page number. Default value: **1**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', - 'default' => '1', - ], + 'schema' => ['description' => 'The region ID of the QoS policy.'."\n" + ."\n" + .'You can call [DescribeRegions](~~36063~~) to query the region ID.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-shanghai'."\n", 'title' => ''], ], [ - 'name' => 'PageSize', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The number of entries per page.'."\n" - ."\n" - .'Valid values: **1** to **100**. Default value: **100**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '100', - 'default' => '100', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'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.'."\n" + ."\n" + .'>If you do not specify this parameter, the system automatically uses the RequestId value as the ClientToken value. The RequestId value may be different for each API request.', 'type' => 'string', 'required' => false, 'docRequired' => true, 'example' => '0c593ea1-3bea-11e9-b96b-88e9fe63****', 'title' => ''], ], [ - 'name' => 'RegionId', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The region that you want to query. You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'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.'."\n" + ."\n" + .'>If you do not specify this parameter, the system automatically uses the RequestId value as the ClientToken value. The RequestId value may be different for each API request.', 'type' => 'string', 'required' => false, 'docRequired' => true, 'example' => '0c593ea1-3bea-11e9-b96b-88e9fe63****', 'title' => ''], ], [ - 'name' => 'RegionId', + 'name' => 'QueueIdList', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => 'The region that you want to query. You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cn-hangzhou', + 'title' => '', + 'description' => 'The QoS queue IDs.', + 'type' => 'array', + 'items' => ['description' => 'The QoS queue ID.', 'type' => 'string', 'required' => false, 'example' => 'qos-queue-9nyx2u7n71s2rc****', 'title' => ''], + 'required' => false, + 'maxItems' => 100, + 'example' => '', ], ], [ - 'name' => 'IpVersion', + 'name' => 'QueueNameList', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => 'The IP version. Valid values:'."\n" - ."\n" - .'* **IPv4** (default)'."\n" - .'* **IPv6**', - 'type' => 'string', + 'title' => '', + 'description' => 'The QoS queue names.', + 'type' => 'array', + 'items' => ['description' => 'The QoS queue name.', 'type' => 'string', 'required' => false, 'example' => 'qos-queue-test', 'title' => ''], 'required' => false, - 'example' => 'ipv4', + 'maxItems' => 100, + 'example' => '', ], ], + [ + 'name' => 'QosId', + 'in' => 'query', + 'schema' => ['title' => '', 'description' => 'The QoS policy ID.', 'type' => 'string', 'required' => false, 'example' => 'qos-2giu0a6vd5x0mv****'], + ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => 'The response parameters.'."\n", 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B45', - ], - 'Success' => [ - 'description' => 'Indicates whether the call is successful. Valid values:'."\n" - ."\n" - .'* **true**'."\n" - .'* **false**'."\n", - 'type' => 'boolean', - 'example' => 'true', - ], - 'Code' => [ - 'description' => 'The HTTP status codes returned.'."\n", - 'type' => 'string', - 'example' => '200', - ], - 'Message' => [ - 'description' => 'The response messages.'."\n", - 'type' => 'string', - 'example' => 'test', - ], - 'PageSize' => [ - 'description' => 'The number of entries per page.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '100', - ], - 'PageNumber' => [ - 'description' => 'The page number.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'TotalCount' => [ - 'description' => 'The number of returned entries.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'RegionId' => [ - 'description' => 'The ID of the region to which the public IP addresses belong.'."\n", - 'type' => 'string', - 'example' => 'cn-hangzhou', - ], - 'PublicIpAddress' => [ - 'description' => 'The range of the public IP addresses of the VPC in the region.'."\n", + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '606998F0-B94D-48FE-8316-ACA81BB230DA', 'title' => ''], + 'QueueList' => [ + 'description' => 'The list of QoS queues.', 'type' => 'array', 'items' => [ - 'description' => 'The range of the public IP addresses of the VPC in the region.'."\n", - 'type' => 'string', - 'example' => '101.37.XX.XX/24', + 'description' => 'The QoS queue information.', + 'type' => 'object', + 'properties' => [ + 'QosId' => ['description' => 'The QoS policy ID.', 'type' => 'string', 'example' => 'qos-ncfgzxg40zks5n****', 'title' => ''], + 'QueueId' => ['description' => 'The QoS queue ID.', 'type' => 'string', 'example' => 'qos-queue-9nyx2u7n71s2rc****', 'title' => ''], + 'QueueType' => ['description' => 'The type of the QoS queue. Valid values:'."\n" + ."\n" + .'- **High**: high-priority queue.'."\n" + ."\n" + .'- **Medium**: medium-priority queue.'."\n" + ."\n" + .'- **Default**: default-priority queue.'."\n" + ."\n" + .'> The default-priority queue cannot be created.', 'type' => 'string', 'example' => 'High', 'title' => ''], + 'BandwidthPercent' => ['description' => 'The bandwidth percentage of the QoS queue.'."\n" + ."\n" + .'* When the QoS queue type is **Medium**, this field is required. Valid values: **1** to **100**.'."\n" + ."\n" + .'* When the QoS queue type is **Default**, this field is "-".', 'type' => 'string', 'example' => '100', 'title' => ''], + 'QueueName' => ['description' => 'The name of the QoS queue.'."\n" + ."\n" + .'The name must be **0** to **128** characters in length and cannot start with `http://` or `https://`.', 'type' => 'string', 'example' => 'qos-queue-test', 'title' => ''], + 'QueueDescription' => ['description' => 'The description of the QoS queue.'."\n" + ."\n" + .'The description must be **0** to **256** characters in length and cannot start with `http://` or `https://`.', 'type' => 'string', 'example' => 'qos-queue-test', 'title' => ''], + 'RuleList' => [ + 'description' => 'The list of QoS rules.', + 'type' => 'array', + 'items' => [ + 'description' => 'The QoS rule information.', + 'type' => 'object', + 'properties' => [ + 'QosId' => ['description' => 'The QoS policy ID.', 'type' => 'string', 'example' => 'qos-91xz9f8zd7yj8x****', 'title' => ''], + 'QueueId' => ['description' => 'The QoS queue ID.', 'type' => 'string', 'example' => 'qos-queue-iugg0l9x27f2no****', 'title' => ''], + 'Priority' => ['description' => 'The priority of the QoS rule. Valid values: **1** to **9000**. A larger value indicates a higher priority. The priority of each QoS rule must be unique within the same QoS policy.', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''], + 'Protocol' => [ + 'description' => 'The protocol type of the QoS rule. Valid values:'."\n" + ."\n" + .'- **ALL**'."\n" + ."\n" + .'- **ICMP(IPv4)**'."\n" + ."\n" + .'- **ICMPv6(IPv6)**'."\n" + ."\n" + .'- **TCP**'."\n" + ."\n" + .'- **UDP**'."\n" + ."\n" + .'- **GRE**'."\n" + ."\n" + .'- **SSH**'."\n" + ."\n" + .'- **Telnet**'."\n" + ."\n" + .'- **HTTP**'."\n" + ."\n" + .'- **HTTPS**'."\n" + ."\n" + .'- **MS SQL**'."\n" + ."\n" + .'- **Oracle**'."\n" + ."\n" + .'- **MySql**'."\n" + ."\n" + .'- **RDP**'."\n" + ."\n" + .'- **PostgreSQL**'."\n" + ."\n" + .'- **Redis**.', + 'enumValueTitles' => [], + 'type' => 'string', + 'example' => 'ALL', + 'title' => '', + ], + 'SrcCidr' => ['description' => 'The source IPv4 CIDR block that matches the traffic of the QoS rule.'."\n" + ."\n" + .'> You cannot specify this parameter together with **SrcIPv6Cidr** or **DstIPv6Cidr**.', 'type' => 'string', 'example' => '1.1.**.**/24', 'title' => ''], + 'DstCidr' => ['description' => 'The destination IP address IPv4 CIDR block that matches the traffic of the QoS rule.'."\n" + ."\n" + .'> You cannot specify this parameter together with **SrcIPv6Cidr** or **DstIPv6Cidr**.', 'type' => 'string', 'example' => '1.1.**.**/24'."\n", 'title' => ''], + 'SrcIPv6Cidr' => ['description' => 'The source IPv6 CIDR block that matches the traffic of the QoS rule.'."\n" + ."\n" + .'> You cannot specify this parameter together with **SrcCidr** or **DstCidr**.', 'type' => 'string', 'example' => '2001:0db8:1234:****::/64', 'title' => ''], + 'DstIPv6Cidr' => ['description' => 'The destination IP address IPv6 CIDR block that matches the traffic of the QoS rule.'."\n" + ."\n" + .'> You cannot specify this parameter together with **SrcCidr** or **DstCidr**.', 'type' => 'string', 'example' => '2001:0db8:1234:****::/64', 'title' => ''], + 'SrcPortRange' => ['description' => 'The source port range that matches the traffic of the QoS rule. Valid values: **0** to **65535**. A value of -1 indicates that the port does not match. Currently, only a single port number can be specified. The start and end port numbers must be the same.', 'type' => 'string', 'example' => '-1/-1', 'title' => ''], + 'DstPortRange' => ['description' => 'The destination port range that matches the traffic of the QoS rule. Valid values: **0** to **65535**. A value of -1 indicates that the port does not match. Currently, only a single port number can be specified. The start and end port numbers must be the same. The destination port range is fixed for each protocol type. Valid values:'."\n" + ."\n" + .'- **ALL**: -1/-1, not editable.'."\n" + ."\n" + .'- **ICMP(IPv4)**: -1/-1, not editable.'."\n" + ."\n" + .'- **ICMPv6(IPv6)**: -1/-1, not editable.'."\n" + ."\n" + .'- **TCP**: -1/-1, editable.'."\n" + ."\n" + .'- **UDP**: -1/-1, editable.'."\n" + ."\n" + .'- **GRE**: -1/-1, not editable.'."\n" + ."\n" + .'- **SSH**: 22/22, not editable.'."\n" + ."\n" + .'- **Telnet**: 23/23, not editable.'."\n" + ."\n" + .'- **HTTP**: 80/80, not editable.'."\n" + ."\n" + .'- **HTTPS**: 443/443, not editable.'."\n" + ."\n" + .'- **MS SQL**: 1443/1443, not editable.'."\n" + ."\n" + .'- **Oracle**: 1521/1521, not editable.'."\n" + ."\n" + .'- **MySql**: 3306/3306, not editable.'."\n" + ."\n" + .'- **RDP**: 3389/3389, not editable.'."\n" + ."\n" + .'- **PostgreSQL**: 5432/5432, not editable.'."\n" + ."\n" + .'- **Redis**: 6379/6379, not editable.', 'type' => 'string', 'example' => '-1/-1', 'title' => ''], + 'MatchDscp' => ['description' => 'The DSCP value that matches the traffic of the QoS rule. Valid values: **0** to **63**. A value of -1 indicates that the DSCP value does not match.', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''], + 'RemarkingDscp' => ['description' => 'The new DSCP value to remark in the traffic. Valid values: **0** to **63**. A value of -1 indicates that the DSCP value is not modified.', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''], + 'RuleName' => ['description' => 'The name of the QoS rule.'."\n" + ."\n" + .'The name must be **0** to **128** characters in length and cannot start with `http://` or `https://`.', 'type' => 'string', 'example' => 'qos-rule-test', 'title' => ''], + 'RuleDescription' => ['description' => 'The description of the QoS rule.'."\n" + ."\n" + .'The description must be **0** to **256** characters in length and cannot start with `http://` or `https://`.', 'type' => 'string', 'example' => 'qos-rule-test', 'title' => ''], + 'RuleId' => ['description' => 'The QoS rule ID.', 'type' => 'string', 'example' => 'qos-rule-iugg0l9x27f2no****'."\n", 'title' => ''], + 'Status' => ['description' => 'The status of the QoS rule. Valid values:'."\n" + ."\n" + .'- **Normal**: active.'."\n" + ."\n" + .'- **Configuring**: being configured.'."\n" + ."\n" + .'- **Deleting**: being deleted.', 'type' => 'string', 'example' => 'Normal', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + 'Status' => ['description' => 'The status of the QoS queue. Valid values:'."\n" + ."\n" + .'- **Normal**: active.'."\n" + ."\n" + .'- **Configuring**: being configured.'."\n" + ."\n" + .'- **Deleting**: being deleted.', 'type' => 'string', 'example' => 'Normal', 'title' => ''], + ], + 'title' => '', + 'example' => '', ], - 'example' => '110.11.1.0/24', + 'title' => '', + 'example' => '', ], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'IllegalParam.IpVersion', - 'errorMessage' => 'Param IpVersion illegal.', - ], + ['errorCode' => 'IllegalParam.%s', 'errorMessage' => 'The param of %s is illegal.', 'description' => 'The parameter is invalid.'], ], - 403 => [ - [ - 'errorCode' => 'Forbidden', - 'errorMessage' => 'User not authorized to operate on the specified resource.', - ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'Query express connect qoS queues', + 'summary' => 'Queries Express Connect QoS queues by calling DescribeExpressConnectTrafficQosQueue.', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DescribeExpressConnectTrafficQosQueue'], ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'ramActions' => [ + [ + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'vpc:DescribeExpressConnectTrafficQosQueue', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B45\\",\\n \\"Success\\": true,\\n \\"Code\\": \\"200\\",\\n \\"Message\\": \\"test\\",\\n \\"PageSize\\": 100,\\n \\"PageNumber\\": 1,\\n \\"TotalCount\\": 1,\\n \\"RegionId\\": \\"cn-hangzhou\\",\\n \\"PublicIpAddress\\": [\\n \\"101.37.XX.XX/24\\"\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\n 54B48E3D-DF70-471B-AA93-08E683A1B45\\n true\\n 200\\n test\\n 100\\n 1\\n 1\\n cn-hangzhou\\n 101.37.XX.XX/24\\n","errorExample":""}]', - 'title' => 'DescribePublicIpAddress', - 'description' => 'You cannot query the range of public IP addresses of a classic network by calling the **DescribePublicIpAddress** operation.'."\n", - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"606998F0-B94D-48FE-8316-ACA81BB230DA\\",\\n \\"QueueList\\": [\\n {\\n \\"QosId\\": \\"qos-ncfgzxg40zks5n****\\",\\n \\"QueueId\\": \\"qos-queue-9nyx2u7n71s2rc****\\",\\n \\"QueueType\\": \\"High\\",\\n \\"BandwidthPercent\\": \\"100\\",\\n \\"QueueName\\": \\"qos-queue-test\\",\\n \\"QueueDescription\\": \\"qos-queue-test\\",\\n \\"RuleList\\": [\\n {\\n \\"QosId\\": \\"qos-91xz9f8zd7yj8x****\\",\\n \\"QueueId\\": \\"qos-queue-iugg0l9x27f2no****\\",\\n \\"Priority\\": 1,\\n \\"Protocol\\": \\"ALL\\",\\n \\"SrcCidr\\": \\"1.1.**.**/24\\",\\n \\"DstCidr\\": \\"1.1.**.**/24\\\\n\\",\\n \\"SrcIPv6Cidr\\": \\"2001:0db8:1234:****::/64\\",\\n \\"DstIPv6Cidr\\": \\"2001:0db8:1234:****::/64\\",\\n \\"SrcPortRange\\": \\"-1/-1\\",\\n \\"DstPortRange\\": \\"-1/-1\\",\\n \\"MatchDscp\\": 1,\\n \\"RemarkingDscp\\": 1,\\n \\"RuleName\\": \\"qos-rule-test\\",\\n \\"RuleDescription\\": \\"qos-rule-test\\",\\n \\"RuleId\\": \\"qos-rule-iugg0l9x27f2no****\\\\n\\",\\n \\"Status\\": \\"Normal\\"\\n }\\n ],\\n \\"Status\\": \\"Normal\\"\\n }\\n ]\\n}","type":"json"}]', ], - 'CreateCommonBandwidthPackage' => [ - 'summary' => 'Creates an Internet Shared Bandwidth instance.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DescribeExpressConnectTrafficQosRule' => [ + 'summary' => 'Queries quality of service (QoS) rules. Paging parameters are not supported.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'read', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'create', - ], + 'systemTags' => ['operationType' => 'list', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the Internet Shared Bandwidth instance.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], - ], - [ - 'name' => 'Zone', - 'in' => 'query', - 'schema' => [ - 'description' => 'The zone of the Internet Shared Bandwidth instance. This parameter is required if you create an Internet Shared Bandwidth instance for a cloud box.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'ap-southeast-1-lzdvn-cb', - ], - ], - [ - 'name' => 'ISP', - 'in' => 'query', - 'schema' => [ - 'description' => 'The line type. Valid values:'."\n" - ."\n" - .'* **BGP** (default) All regions support BGP (Multi-ISP).'."\n" - .'* **BGP_PRO** BGP (Multi-ISP) Pro lines are available in the China (Hong Kong), Singapore, Japan (Tokyo), Philippines (Manila), Malaysia (Kuala Lumpur), Indonesia (Jakarta), and Thailand (Bangkok) regions.'."\n" - ."\n" - .'If you are allowed to use single-ISP bandwidth, you can also use one of the following values:'."\n" - ."\n" - .'* **ChinaTelecom**'."\n" - .'* **ChinaUnicom**'."\n" - .'* **ChinaMobile**'."\n" - .'* **ChinaTelecom_L2**'."\n" - .'* **ChinaUnicom_L2**'."\n" - .'* **ChinaMobile_L2**'."\n" - ."\n" - .'If your services are deployed in China East 1 Finance, this parameter is required and you must set the value to **BGP_FinanceCloud**.', - 'type' => 'string', - 'required' => false, - 'example' => 'BGP', - ], - ], - [ - 'name' => 'Name', - 'in' => 'query', - 'schema' => [ - 'description' => 'The name of the Internet Shared Bandwidth instance.'."\n" - ."\n" - .'The name must be 0 to 128 characters in length and cannot start with `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'test123', - ], - ], - [ - 'name' => 'Description', - 'in' => 'query', - 'schema' => [ - 'description' => 'The description of the Internet Shared Bandwidth instance.'."\n" - ."\n" - .'The description must be 0 to 256 characters in length and cannot start with `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'abc', - ], + 'schema' => ['description' => 'The region ID of the QoS policy.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-shanghai', 'title' => ''], ], [ 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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.'."\n" - ."\n" - .'> 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.', - 'type' => 'string', - 'required' => false, - 'example' => '02fb3da4-130e-11e9-8e44-001****', - ], - ], - [ - 'name' => 'ResourceGroupId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the resource group.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'rg-acfmxazdjdhd****', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'You can use the client to generate the value, but you must make sure that it is unique among different requests. The client token can contain only ASCII characters.'."\n" + ."\n" + .'> If you do not set this parameter, the system uses **RequestId** as **ClientToken**. **RequestId** may be different for each API request.'."\n", 'type' => 'string', 'required' => false, 'docRequired' => true, 'example' => '123e4567-e89b-12d3-a456-426655440000', 'title' => ''], ], [ - 'name' => 'Bandwidth', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The maximum bandwidth of the Internet Shared Bandwidth instance. Unit: Mbit/s.'."\n" - ."\n" - .'Valid values: **1** to **1000**. Default value: **1**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'docRequired' => true, - 'example' => '1000', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'You can use the client to generate the value, but you must make sure that it is unique among different requests. The client token can contain only ASCII characters.'."\n" + ."\n" + .'> If you do not set this parameter, the system uses **RequestId** as **ClientToken**. **RequestId** may be different for each API request.'."\n", 'type' => 'string', 'required' => false, 'docRequired' => true, 'example' => '123e4567-e89b-12d3-a456-426655440000', 'title' => ''], ], [ - 'name' => 'Ratio', + 'name' => 'RuleIdList', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => 'The percentage of the minimum bandwidth commitment. Set the parameter to **20**.'."\n" - ."\n" - .'> This parameter is available only on the Alibaba Cloud China site.', - 'type' => 'integer', - 'format' => 'int32', + 'title' => '', + 'description' => 'The list of QoS rule IDs.'."\n", + 'type' => 'array', + 'items' => ['description' => 'The ID of the QoS rule.'."\n", 'type' => 'string', 'required' => false, 'example' => 'qos-rule-iugg0l9x27f2no****'."\n", 'title' => ''], 'required' => false, - 'maximum' => '100', - 'minimum' => '0', - 'example' => '20', + 'maxItems' => 100, + 'example' => '', ], ], [ - 'name' => 'InternetChargeType', + 'name' => 'RuleNameList', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => 'The billing method of the Internet Shared Bandwidth instance. Set the value to **PayByTraffic**, which specifies the pay-by-data-transfer billing method.'."\n", - 'type' => 'string', + 'title' => '', + 'description' => 'The list of QoS rule names.'."\n", + 'type' => 'array', + 'items' => ['description' => 'The name of the QoS rule.'."\n", 'type' => 'string', 'required' => false, 'example' => 'qos-rule-test', 'title' => ''], 'required' => false, + 'maxItems' => 100, 'example' => '', - 'default' => 'PayByBandwidth', ], ], [ - 'name' => 'SecurityProtectionTypes', + 'name' => 'QosId', 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => '', - 'type' => 'array', - 'items' => [ - 'description' => 'The edition of Anti-DDoS.'."\n" - ."\n" - .'* If you do not set this parameter, Anti-DDoS Origin Basic is used.'."\n" - .'* If you set the value to **AntiDDoS_Enhanced**, Anti-DDoS Pro/Premium is used.'."\n" - ."\n" - .'Valid values of **N**: **1** to **10**. You can specify only one Anti-DDoS edition. If you specify more than one edition, the operation may fail.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'AntiDDoS_Enhanced', - ], - 'required' => false, - 'example' => 'AntiDDoS_Enhanced', - 'maxItems' => 10, - ], + 'schema' => ['title' => '', 'description' => 'The ID of the QoS policy.'."\n", 'type' => 'string', 'required' => false, 'example' => 'qos-2giu0a6vd5x0mv****'], ], [ - 'name' => 'Tag', + 'name' => 'QueueId', 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'type' => 'string', - ], - 'Value' => [ - 'type' => 'string', - ], - ], - ], - 'required' => false, - 'maxItems' => 21, - ], + 'schema' => ['description' => 'The ID of the QoS queue.'."\n", 'type' => 'string', 'required' => false, 'example' => 'qos-queue-9nyx2u7n71s2rc****', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => '', 'type' => 'object', 'properties' => [ - 'BandwidthPackageId' => [ - 'description' => 'The ID of the Internet Shared Bandwidth instance.'."\n", - 'type' => 'string', - 'example' => 'cbwp-bp1vevu8h3ieh****', - ], - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => 'FF39F653-033E-4CD9-9EDF-3CCA5A71FBC3', - ], - 'ResourceGroupId' => [ - 'description' => 'The ID of the resource group.'."\n", - 'type' => 'string', - 'example' => 'rg-acfmxazdjdhd****', + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '9C7FA9D6-72E0-48A9-A9C3-2DA8569CD5EB', 'title' => ''], + 'RuleList' => [ + 'description' => 'The list of QoS rules.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The information about the QoS rules.', + 'type' => 'object', + 'properties' => [ + 'QosId' => ['description' => 'The ID of the QoS policy.'."\n", 'type' => 'string', 'example' => 'qos-pksbqfmotl5hzq****', 'title' => ''], + 'QueueId' => ['description' => 'The ID of the QoS queue.'."\n", 'type' => 'string', 'example' => 'qos-queue-9nyx2u7n71s2rc****'."\n", 'title' => ''], + 'Priority' => ['description' => 'The priority of the QoS rule. Valid values: **1** to **9000**. A larger value indicates a higher priority. The priority of each QoS rule must be unique in the same QoS policy.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''], + 'Protocol' => [ + 'description' => 'The protocol of the QoS rule. Valid values:'."\n" + ."\n" + .'* **ALL**'."\n" + .'* **ICMP(IPv4)**'."\n" + .'* **ICMPv6(IPv6)**'."\n" + .'* **TCP**'."\n" + .'* **UDP**'."\n" + .'* **GRE**'."\n" + .'* **SSH**'."\n" + .'* **Telnet**'."\n" + .'* **HTTP**'."\n" + .'* **HTTPS**'."\n" + .'* **MS SQL**'."\n" + .'* **Oracle**'."\n" + .'* **MySql**'."\n" + .'* **RDP**'."\n" + .'* **PostgreSQL**'."\n" + .'* **Redis**'."\n", + 'type' => 'string', + 'enumValueTitles' => [], + 'example' => 'ALL', + 'title' => '', + ], + 'SrcCidr' => ['description' => 'The source IPv4 CIDR block that matches the QoS rule traffic.'."\n" + ."\n" + .'> When this parameter is unavailable, specify **SrcIPv6Cidr** or **DstIPv6Cidr**.'."\n", 'type' => 'string', 'example' => '1.1.**.**/24'."\n", 'title' => ''], + 'DstCidr' => ['description' => 'The destination IPv4 CIDR block that matches the QoS rule traffic.'."\n" + ."\n" + .'> When this parameter is unavailable, specify **SrcIPv6Cidr** or **DstIPv6Cidr**.'."\n", 'type' => 'string', 'example' => '1.1.**.**/24'."\n", 'title' => ''], + 'SrcIPv6Cidr' => ['description' => 'The source IPv6 CIDR block that matches the QoS rule traffic.'."\n" + ."\n" + .'> When this parameter is unavailable, specify **SrcCidr** or **DstCidr**.'."\n", 'type' => 'string', 'example' => '2001:0db8:1234:****::/64'."\n", 'title' => ''], + 'DstIPv6Cidr' => ['description' => 'The destination IPv6 CIDR block that matches the QoS rule traffic.'."\n" + ."\n" + .'> When this parameter is unavailable, specify **SrcCidr** or **DstCidr**.'."\n", 'type' => 'string', 'example' => '2001:0db8:1234:****::/64'."\n", 'title' => ''], + 'SrcPortRange' => ['description' => 'The range of source ports that match the QoS rule traffic. Valid values: **0** to **65535**. If the traffic does not match, the value is -1. You can specify only one port. The start port number must be the same as the end port number.'."\n", 'type' => 'string', 'example' => '-1/-1'."\n", 'title' => ''], + 'DstPortRange' => ['description' => 'The range of destination ports that match the QoS rule traffic. Valid values: **0** to **65535**. If the traffic does not match, the value is -1. You can specify only one port. The start port number must be the same as the end port number. Different protocols correspond to different ports. Valid values:'."\n" + ."\n" + .'* **ALL** (uneditable): -1/-1.'."\n" + .'* **ICMP(IPv4)** (uneditable): -1/-1.'."\n" + .'* **ICMPv6(IPv6)** (uneditable): -1/-1.'."\n" + .'* **TCP** (editable): -1/-1.'."\n" + .'* **UDP** (editable): -1/-1.'."\n" + .'* **GRE** (uneditable): -1/-1.'."\n" + .'* **SSH** (uneditable): 22/22.'."\n" + .'* **Telnet** (uneditable): 23/23.'."\n" + .'* **HTTP** (uneditable): 80/80.'."\n" + .'* **HTTPS** (uneditable): 443/443.'."\n" + .'* **MS SQL** (uneditable): 1443/1443.'."\n" + .'* **Oracle** (uneditable): 1521/1521.'."\n" + .'* **MySql** (uneditable): 3306/3306.'."\n" + .'* **RDP** (uneditable): 3389/3389.'."\n" + .'* **PostgreSQL** (uneditable): 5432/5432.'."\n" + .'* **Redis** (uneditable): 6379/6379.'."\n", 'type' => 'string', 'example' => '-1/-1'."\n", 'title' => ''], + 'MatchDscp' => ['description' => 'The DSCP value that matches the QoS rule traffic. Valid values: **0** to **63**. If no value is matched, the value is -1.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''], + 'RemarkingDscp' => ['description' => 'The new DSCP value. Valid values: **0** to **63**. If you do not change the value, set the value to -1.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''], + 'RuleName' => ['description' => 'The name of the QoS rule.'."\n" + ."\n" + .'The name must be 0 to 128 characters in length and cannot start with `http://` or `https://`.'."\n", 'type' => 'string', 'example' => 'qos-rule-test'."\n", 'title' => ''], + 'RuleDescription' => ['description' => 'The description of the QoS rule.'."\n" + ."\n" + .'The description must be 0 to 256 characters in length and cannot start with `http://` or `https://`.'."\n", 'type' => 'string', 'example' => 'qos-rule-test'."\n", 'title' => ''], + 'RuleId' => ['description' => 'The ID of the QoS rule.'."\n", 'type' => 'string', 'example' => 'qos-rule-iugg0l9x27f2noc****', 'title' => ''], + 'Status' => ['description' => 'The status of the QoS rule. Valid values:'."\n" + ."\n" + .'* **Normal**'."\n" + .'* **Configuring**'."\n" + .'* **Deleting**'."\n", 'type' => 'string', 'example' => 'Normal', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', ], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'ResourceNotEnough.Bandwidth', - 'errorMessage' => 'The specified resource of Bandwidth is not enough.', - ], - [ - 'errorCode' => 'MissingParameter', - 'errorMessage' => 'Miss mandatory parameter.', - ], - [ - 'errorCode' => 'InvalidParameter.Name.Malformed', - 'errorMessage' => 'The specified Name is not valid.', - ], - [ - 'errorCode' => 'InvalidParameter.Description.Malformed', - 'errorMessage' => 'The specified Description is not valid.', - ], - [ - 'errorCode' => 'BandwidthPackageOperation.conflict', - 'errorMessage' => 'BandwidthPackage operation conflict, please wait a moment and try again.', - ], - [ - 'errorCode' => 'InvalidParameter.Bandwidth', - 'errorMessage' => 'The specified bandwidth is not valid.', - ], - [ - 'errorCode' => 'BandwidthPackage.QuotaExceeded', - 'errorMessage' => 'Create BandwidthPackage has exceeded quota.', - ], - [ - 'errorCode' => 'IllegalParam.Zone', - 'errorMessage' => 'Zone is illegal.', - ], - [ - 'errorCode' => 'InvalidParameter.InvalidChargeType', - 'errorMessage' => 'The specified chargeType is not valid.', - ], - [ - 'errorCode' => 'InvalidResourceGroupId', - 'errorMessage' => 'The specified ResourceGroupId does not exist.', - ], - [ - 'errorCode' => 'OperationFailed.SaleValidate', - 'errorMessage' => 'Validate sale condition with subArticle failed.', - ], - [ - 'errorCode' => 'OperationFailed.SyncOrderToSub', - 'errorMessage' => 'SyncOrderToSub error.', - ], - [ - 'errorCode' => 'IllegalParam.Ratio', - 'errorMessage' => 'The specified ratio is not valid.', - ], - [ - 'errorCode' => 'OperationUnsupported.InvalidZone', - 'errorMessage' => 'It is not allowed to create CBWP in the specified zone.', - ], - [ - 'errorCode' => 'IllegalParam.AvailableZone', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'MissingParam.NameOrDescription', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'OperationFailed.SystemBusy', - 'errorMessage' => 'Operation failed because system is busy.', - ], - [ - 'errorCode' => 'UnsupportedRegion.CloudBoxInternet', - 'errorMessage' => 'The region does not support cloud box public network.', - ], - [ - 'errorCode' => 'ResourceNotEnough.CommonBandWidthPackage', - 'errorMessage' => 'The specified resource commonBandWidthPackage is not enough.', - ], - ], - 404 => [ - [ - 'errorCode' => 'InvalidRegionId.NotFound', - 'errorMessage' => 'The specified RegionId does not exist in our records.', - ], - [ - 'errorCode' => 'InvalidVpcId.NotFound', - 'errorMessage' => 'Specified value of VpcId is not found in our record.', - ], - [ - 'errorCode' => 'InvalidZoneId.NotFound', - 'errorMessage' => 'Specified value of ZoneId is not exists.', - ], + ['errorCode' => 'IllegalParam.%s', 'errorMessage' => 'The param of %s is illegal.', 'description' => 'The parameter is invalid.'], ], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"BandwidthPackageId\\": \\"cbwp-bp1vevu8h3ieh****\\",\\n \\"RequestId\\": \\"FF39F653-033E-4CD9-9EDF-3CCA5A71FBC3\\",\\n \\"ResourceGroupId\\": \\"rg-acfmxazdjdhd****\\"\\n}","type":"json"}]', - 'title' => 'CreateCommonBandwidthPackage', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'DescribeExpressConnectTrafficQosRule', + 'changeSet' => [], + 'ramActions' => [], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"9C7FA9D6-72E0-48A9-A9C3-2DA8569CD5EB\\",\\n \\"RuleList\\": [\\n {\\n \\"QosId\\": \\"qos-pksbqfmotl5hzq****\\",\\n \\"QueueId\\": \\"qos-queue-9nyx2u7n71s2rc****\\\\n\\",\\n \\"Priority\\": 1,\\n \\"Protocol\\": \\"ALL\\",\\n \\"SrcCidr\\": \\"1.1.**.**/24\\\\n\\",\\n \\"DstCidr\\": \\"1.1.**.**/24\\\\n\\",\\n \\"SrcIPv6Cidr\\": \\"2001:0db8:1234:****::/64\\\\n\\",\\n \\"DstIPv6Cidr\\": \\"2001:0db8:1234:****::/64\\\\n\\",\\n \\"SrcPortRange\\": \\"-1/-1\\\\n\\",\\n \\"DstPortRange\\": \\"-1/-1\\\\n\\",\\n \\"MatchDscp\\": 1,\\n \\"RemarkingDscp\\": 1,\\n \\"RuleName\\": \\"qos-rule-test\\\\n\\",\\n \\"RuleDescription\\": \\"qos-rule-test\\\\n\\",\\n \\"RuleId\\": \\"qos-rule-iugg0l9x27f2noc****\\",\\n \\"Status\\": \\"Normal\\"\\n }\\n ]\\n}","type":"json"}]', ], - 'AddCommonBandwidthPackageIp' => [ - 'summary' => 'Associates an elastic IP address (EIP) with an Internet Shared Bandwidth instance.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DescribeFailoverTestJob' => [ + 'summary' => 'Queries failover tests.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'read', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'create', - 'riskType' => 'none', - 'chargeType' => 'free', - ], + 'systemTags' => ['operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '', - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], - ], - [ - 'name' => 'BandwidthPackageId', - 'in' => 'query', - 'schema' => [ - 'description' => '', - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cbwp-2ze2ic1xd2qeqasdf****', - ], + 'schema' => ['description' => 'The region ID of the failover test.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => false, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'IpInstanceId', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => '', - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'eip-2zeerraiwb7uqwed****', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'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.'."\n" + ."\n" + .'> 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.'."\n", 'type' => 'string', 'required' => false, 'docRequired' => true, 'example' => '123e4567-e89b-12d3-a456-426655440000', 'title' => ''], ], [ - 'name' => 'IpType', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => '', - 'type' => 'string', - 'required' => false, - 'example' => 'EIP', - 'default' => 'EIP', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'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.'."\n" + ."\n" + .'> 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.'."\n", 'type' => 'string', 'required' => false, 'docRequired' => true, 'example' => '123e4567-e89b-12d3-a456-426655440000', 'title' => ''], ], [ - 'name' => 'ClientToken', + 'name' => 'JobId', 'in' => 'query', - 'schema' => [ - 'description' => '', - 'type' => 'string', - 'required' => false, - 'example' => '0c593ea1-3bea-11e9-b96b-88e9fe637760', - ], + 'schema' => ['title' => '', 'description' => 'The ID of the failover test.'."\n", 'type' => 'string', 'required' => true, 'example' => 'ftj-bp1yh6mvi13aq****'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => '', + 'description' => 'The response parameters.'."\n", 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '', - 'type' => 'string', - 'example' => '01FDDD49-C4B7-4D2A-A8E5-A93915C450A6', + 'RequestId' => ['title' => '', 'description' => 'The request ID.'."\n", 'type' => 'string', 'example' => 'C44F62BE-9CE7-4277-B117-69243F3988BF'], + 'FailoverTestJobModel' => [ + 'description' => 'The failover test.'."\n", + 'type' => 'object', + 'properties' => [ + 'JobId' => ['title' => '', 'description' => 'The ID of the failover test.'."\n", 'type' => 'string', 'example' => 'ftj-bp1yh6mvi13aq3g8w****'], + 'Name' => ['title' => '', 'description' => 'The name of the failover test.'."\n" + ."\n" + .'The name must be 0 to 128 characters in length and cannot start with `http://` or `https://`.'."\n", 'type' => 'string', 'example' => 'test'], + 'Description' => ['title' => '', 'description' => 'The description of the failover test.'."\n" + ."\n" + .'The description must be 0 to 256 characters in length and cannot start with `http://` or `https://`.'."\n", 'type' => 'string', 'example' => 'test'], + 'ResourceType' => ['title' => '', 'description' => 'The type of failover test resource. Only **PHYSICALCONNECTION** is returned.'."\n", 'type' => 'string', 'example' => 'PHYSICALCONNECTION'], + 'ResourceId' => [ + 'description' => 'The IDs of failover test resources.'."\n", + 'type' => 'array', + 'items' => ['description' => 'The ID of the resource.'."\n", 'type' => 'string', 'example' => 'pc-hp34pxu31qo36a72u****', 'title' => ''], + 'title' => '', + 'example' => '', + ], + 'JobType' => ['title' => '', 'description' => 'Indicates whether the failover test is performed immediately. Valid values:'."\n" + ."\n" + .'* **StartNow**'."\n" + .'* **StartLater**'."\n", 'type' => 'string', 'example' => 'StartNow'], + 'JobDuration' => ['title' => '', 'description' => 'The duration of the failover test. Unit: minutes. Valid values: **1 to 4320**.'."\n", 'type' => 'string', 'example' => '60'], + 'StartTime' => ['title' => '', 'description' => 'The start time of the failover test. The time follows the ISO 8601 standard in the YYYY-MM-DDThh:mm:ssZ format. The time is displayed in UTC.', 'type' => 'string', 'example' => '2023-11-21T14:00:00Z'."\n"], + 'StopTime' => ['title' => '', 'description' => 'The end time of the failover test. The time follows the ISO 8601 standard in the YYYY-MM-DDThh:mm:ssZ format. The time is displayed in UTC.', 'type' => 'string', 'example' => '2023-11-21T15:00:00Z'."\n"], + 'Status' => ['title' => '', 'description' => 'The status of the failover test. Valid values:'."\n" + ."\n" + .'* **Init**'."\n" + .'* **Starting**'."\n" + .'* **Testing**'."\n" + .'* **Stopping**'."\n" + .'* **Stopped**'."\n", 'type' => 'string', 'example' => 'Init'], + ], + 'title' => '', + 'example' => '', ], ], + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'OperationDenied.SecurityProtectionTypesInconsistent', - 'errorMessage' => 'The operation is not allowed because of SecurityProtectionTypesInconsistent.', - ], - [ - 'errorCode' => 'IpInstanceId.AlreadyInBandwidthPackage', - 'errorMessage' => 'The specified Eip InstanceId already in bandwidthPackage.', - ], - [ - 'errorCode' => 'IpInstanceId.BizStatusInvalid', - 'errorMessage' => 'The specified Eip BizStatus is Disable, Cannot add to bandwidthPackage.', - ], - [ - 'errorCode' => 'IpInstanceId.ChargeType.NotSupport', - 'errorMessage' => 'The specified Eip instance is PrePaid type, Cannot add to BandwidthPackage.', - ], - [ - 'errorCode' => 'BandwidthPackageId.InvalidBizStatus', - 'errorMessage' => 'The specified BandwidthPackageId has been FinancialLocked, Cannot add Ip.', - ], - [ - 'errorCode' => 'IpInstanceId.QuotaExceeded', - 'errorMessage' => 'The specified BandwidthPackageId has too many ip in it. exceed the quota , Cannot add more.', - ], - [ - 'errorCode' => 'EipOperation.TooFrequently', - 'errorMessage' => 'The specified Eip add into bandwidthPackage too frequently. please add later.', - ], - [ - 'errorCode' => 'TaskConflict', - 'errorMessage' => 'The operation is too frequent, TaskConflict.', - ], - [ - 'errorCode' => 'IncorrectStatus.Eip', - 'errorMessage' => 'Eip status error.', - ], - [ - 'errorCode' => 'OperationUnsupported.IpType', - 'errorMessage' => 'Ip type does not support the operation.', - ], - [ - 'errorCode' => 'ParamExclusive.IpInstanceIdAndBandwidthPackageId', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'InvalidBandwidthPackage.NotExist', - 'errorMessage' => 'Eip bandwidth package not exist.', - ], - [ - 'errorCode' => 'OperationFailed.DistibuteLock', - 'errorMessage' => 'Distibute lock fail.', - ], - [ - 'errorCode' => 'OperationFailed.ZoneIdInconsistent', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'AttrMismatching.BandwidthPackageIpVersion', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'InvalidBandwidthPackageId.NotFound', - 'errorMessage' => 'The specified BandwidthPackageId not exist.', - ], - [ - 'errorCode' => 'InvalidInstanceId.NotFound', - 'errorMessage' => 'The InstanceId is not found.', - ], - [ - 'errorCode' => 'InvalidEIPStatus.BizDisabled', - 'errorMessage' => 'The EIP has been locked.', - ], - [ - 'errorCode' => 'Forbidden.FinancialLocked', - 'errorMessage' => 'The ip business status is invalid.', - ], - [ - 'errorCode' => 'Mismatch.CloudBoxCbwpZoneAndEipZone', - 'errorMessage' => 'The CbwpZone and EipZone are mismatched.', - ], - [ - 'errorCode' => 'MissingParam.BandwidthPackageId', - 'errorMessage' => 'The parameter bandwidthPackageId is mandatory.', - ], - ], - 404 => [ - [ - 'errorCode' => 'InvalidRegionId.NotFound', - 'errorMessage' => 'The specified RegionId does not exist in our records.', - ], - [ - 'errorCode' => 'InvalidBandwidthPackageId.NotFound', - 'errorMessage' => 'The specified bandwidthPackageId does not exist in our records.', - ], - [ - 'errorCode' => 'InvalidIpInstanceId.NotFound', - 'errorMessage' => 'The specified Eip InstanceId does not exist in our records.', - ], - [ - 'errorCode' => 'IpInstanceId.InvalidIpInternetChargeType', - 'errorMessage' => 'The hybrid type eip not support add into bandwidthPackage of PayBytraffic type.', - ], - [ - 'errorCode' => 'BandwidthPackageId.InvalidBandwidth', - 'errorMessage' => 'The hybrid type eip can not add into low bandwidth bandwidthPackage.', - ], + ['errorCode' => 'IllegalParam.JobId', 'errorMessage' => 'The specified parameter JobId is illegal.', 'description' => 'The entered failover test job ID is invalid.'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"01FDDD49-C4B7-4D2A-A8E5-A93915C450A6\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 01FDDD49-C4B7-4D2A-A8E5-A93915C450A6\\n","errorExample":""}]', - 'title' => 'AddCommonBandwidthPackageIp', - 'description' => 'Associates an elastic IP address (EIP) with an Internet Shared Bandwidth instance.', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'AddCommonBandwidthPackageIps' => [ - 'summary' => 'Associates multiple elastic IP addresses (EIPs) with an Internet Shared Bandwidth instance.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'DescribeFailoverTestJob', + 'changeSet' => [ + ['createdAt' => '2024-07-19T02:56:58.000Z', 'description' => 'Response parameters changed'], ], + 'ramActions' => [], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"C44F62BE-9CE7-4277-B117-69243F3988BF\\",\\n \\"FailoverTestJobModel\\": {\\n \\"JobId\\": \\"ftj-bp1yh6mvi13aq3g8w****\\",\\n \\"Name\\": \\"test\\",\\n \\"Description\\": \\"test\\",\\n \\"ResourceType\\": \\"PHYSICALCONNECTION\\",\\n \\"ResourceId\\": [\\n \\"pc-hp34pxu31qo36a72u****\\"\\n ],\\n \\"JobType\\": \\"StartNow\\",\\n \\"JobDuration\\": \\"60\\",\\n \\"StartTime\\": \\"2023-11-21T14:00:00Z\\\\n\\",\\n \\"StopTime\\": \\"2023-11-21T15:00:00Z\\\\n\\",\\n \\"Status\\": \\"Init\\"\\n }\\n}","type":"json"}]', + ], + 'DescribeFailoverTestJobs' => [ + 'summary' => 'Queries failover tests for Express Connect.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'read', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'create', - 'riskType' => 'none', - 'chargeType' => 'free', - ], + 'systemTags' => ['operationType' => 'list', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the Internet Shared Bandwidth instance.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~448570~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-shanghai', - ], + 'schema' => ['description' => 'The region where you want to perform the failover test.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => false, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'BandwidthPackageId', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the Internet Shared Bandwidth instance.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cbwp-2ze2ic1xd2qeqasdf****', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'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.'."\n" + ."\n" + .'> 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.'."\n", 'type' => 'string', 'required' => false, 'docRequired' => true, 'example' => '123e4567-e89b-12d3-a456-426655440000', 'title' => ''], ], [ - 'name' => 'IpType', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The IP type. Set the value to **EIP**, which indicates that an EIP is added to the Shared Bandwidth.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'EIP', - 'default' => 'EIP', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'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.'."\n" + ."\n" + .'> 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.'."\n", 'type' => 'string', 'required' => false, 'docRequired' => true, 'example' => '123e4567-e89b-12d3-a456-426655440000', 'title' => ''], ], [ - 'name' => 'ClientToken', + 'name' => 'NextToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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.'."\n" - ."\n" - .'> 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.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-426655440000', - ], + 'schema' => ['title' => '', 'description' => 'The token that is used for the next query. Valid values:'."\n" + ."\n" + .'* If the value of **NextToken** is not returned, it indicates that no next query is to be sent.'."\n" + .'* If a value of **NextToken** is returned, the value is the token that is used for the subsequent query.'."\n", 'type' => 'string', 'required' => false, 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****'], ], [ - 'name' => 'IpInstanceIds', + 'name' => 'MaxResults', + 'in' => 'query', + 'schema' => ['title' => '', 'description' => 'The number of entries per page. Valid values: **1 to 100**. Default value: 20.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '20'], + ], + [ + 'name' => 'Filter', 'in' => 'query', 'style' => 'repeatList', 'schema' => [ - 'description' => 'The list of EIPs that you want to associate with the Internet Shared Bandwidth instance.'."\n" - ."\n" - .'You can specify at most 10 EIP IDs at a time.'."\n", + 'description' => 'The filter information.'."\n", 'type' => 'array', 'items' => [ - 'description' => 'The list of EIPs that you want to associate with the Internet Shared Bandwidth instance.'."\n" - ."\n" - .'You can specify at most 10 EIP IDs at a time.'."\n", - 'type' => 'string', + 'description' => 'The list of filters.'."\n", + 'type' => 'object', + 'properties' => [ + 'Key' => [ + 'title' => '', + 'description' => 'The filter key. Valid values:'."\n" + ."\n" + .'* **JobId**'."\n" + .'* **JobName**'."\n" + .'* **JobStatus**'."\n" + .'* **ResourceId**'."\n" + .'* **ResourceName**'."\n" + .'* **ResourceType**'."\n" + ."\n" + .'> You can specify at most five different filter keys. If you specify ResourceId or ResourceName, you must also specify ResourceType. The logical operator among the filter keys is AND. Results that meet all specified filter keys are returned.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'JobId', + 'enum' => ['JobId', 'JobName', 'JobStatus', 'ResourceId', 'ResourceName', 'ResourceType'], + ], + 'Value' => [ + 'title' => '', + 'description' => 'The value of the filter key.'."\n" + ."\n" + .'> You can specify at most five filter values for each filter key. The logical operator among filter values is OR. If a filter value is matched, the filter key is considered matched.'."\n", + 'type' => 'array', + 'items' => ['description' => 'The value of the filter key.'."\n" + ."\n" + .'> You can specify at most five filter values for each filter key. The logical operator among filter values is OR. If a filter value is matched, the filter key is considered matched.'."\n", 'type' => 'string', 'required' => false, 'example' => 'ftj-bp1yh6mvi13aq3g8w****', 'title' => ''], + 'required' => false, + 'maxItems' => 5, + 'example' => '', + ], + ], 'required' => false, - 'example' => 'eip-2zeerraiwb7uqwed****', + 'title' => '', + 'example' => '', ], - 'required' => true, - 'maxItems' => 10, + 'required' => false, + 'maxItems' => 5, + 'title' => '', + 'example' => '', ], ], ], @@ -35469,494 +26360,636 @@ 'description' => 'The response parameters.'."\n", 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '01FDDD49-C4B7-4D2A-A8E5-A93915C450A6', - ], + 'RequestId' => ['title' => '', 'description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E'], + 'FailoverTestJobList' => [ + 'description' => 'The list of failover tests.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The failover test.'."\n", + 'type' => 'object', + 'properties' => [ + 'JobId' => ['title' => '', 'description' => 'The ID of the failover test.'."\n", 'type' => 'string', 'example' => 'ftj-bp1yh6mvi13aq3g8w****'."\n"], + 'Name' => ['title' => '', 'description' => 'The name of the failover test.'."\n" + ."\n" + .'The name must be 0 to 128 characters in length and cannot start with `http://` or `https://`.'."\n", 'type' => 'string', 'example' => 'test'], + 'Description' => ['title' => '', 'description' => 'The description of the failover test.'."\n" + ."\n" + .'The description must be 0 to 256 characters in length and cannot start with \\*\\*http:// **or** https://\\*\\*.'."\n", 'type' => 'string', 'example' => 'test'], + 'ResourceType' => ['title' => '', 'description' => 'The type of the failover test resource. Only **PHYSICALCONNECTION** is returned.'."\n", 'type' => 'string', 'example' => 'PHYSICALCONNECTION'], + 'ResourceId' => [ + 'title' => '', + 'description' => 'The IDs of the failover test resources.'."\n", + 'type' => 'array', + 'items' => ['description' => 'The resource ID.'."\n", 'type' => 'string', 'example' => 'pc-uf66k4e8pq3r00jfq****', 'title' => ''], + 'example' => '', + ], + 'JobType' => ['title' => '', 'description' => 'Indicates whether the failover test is performed immediately. Valid values:'."\n" + ."\n" + .'* **StartNow**'."\n" + .'* **StartLater**'."\n", 'type' => 'string', 'example' => 'StartNow'], + 'JobDuration' => ['title' => '', 'description' => 'The duration of the failover test. Unit: minutes. Valid values: **1 to 4320**.'."\n", 'type' => 'string', 'example' => '60'], + 'StartTime' => ['title' => '', 'description' => 'The beginning of the fault drill task. The time must be in UTC. Specify the time in the ISO 8601 standard in `YYYY-MM-DDThh:mm:ssZ` format.', 'type' => 'string', 'example' => '2023-11-21T14:00:00Z'], + 'StopTime' => ['title' => '', 'description' => 'The end of the fault drill task. The time must be in UTC. Specify the time in the ISO 8601 standard in `YYYY-MM-DDThh:mm:ssZ` format.', 'type' => 'string', 'example' => '2023-11-21T15:00:00Z'."\n"], + 'Status' => ['title' => '', 'description' => 'The status of the failover test. Valid values:'."\n" + ."\n" + .'* **Init**'."\n" + .'* **Starting**'."\n" + .'* **Testing**'."\n" + .'* **Stopping**'."\n" + .'* **Stopped**'."\n", 'type' => 'string', 'example' => 'Init'], + ], + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + 'NextToken' => ['title' => '', 'description' => 'A pagination token. It can be used in the next request to retrieve a new page of results. Valid values:'."\n" + ."\n" + .'* If no value is returned for **NextToken**, no next queries are sent.'."\n" + .'* If a value is returned for **NextToken**, the value is used to retrieve a new page of results.'."\n", 'type' => 'string', 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****'], + 'MaxResults' => ['title' => '', 'description' => 'The number of entries per page. Valid values: **1 to 100**. Default value: 20.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '20'], + 'TotalCount' => ['title' => '', 'description' => 'The number of entries returned.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '10'], + 'Count' => ['title' => '', 'description' => 'The number of entries on the current page.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '10'], ], + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'OperationDenied.SecurityProtectionTypesInconsistent', - 'errorMessage' => 'The operation is not allowed because of SecurityProtectionTypesInconsistent.', - ], - [ - 'errorCode' => 'InvalidIpInstanceId.NotFound', - 'errorMessage' => 'The specified Eip InstanceId does not exist in our records.', - ], - [ - 'errorCode' => 'EIP_ALREADY_IN_BANDWIDTHPACKAGE', - 'errorMessage' => 'The Eip already in bandwidthPackage.', - ], - [ - 'errorCode' => 'InvalidRegionId.NotFound', - 'errorMessage' => 'The specified RegionId does not exist in our records.', - ], - [ - 'errorCode' => 'InvalidBandwidthPackageId.NotFound', - 'errorMessage' => 'The specified bandwidthPackageId does not exist in our records.', - ], - [ - 'errorCode' => 'IpInstanceId.AlreadyInBandwidthPackage', - 'errorMessage' => 'The specified Eip InstanceId already in bandwidthPackage.', - ], - [ - 'errorCode' => 'IpInstanceId.BizStatusInvalid', - 'errorMessage' => 'The specified Eip BizStatus is Disable, Cannot add to bandwidthPackage.', - ], - [ - 'errorCode' => 'IpInstanceId.ChargeType.NotSupport', - 'errorMessage' => 'The specified Eip instance is PrePaid type, Cannot add to BandwidthPackage.', - ], - [ - 'errorCode' => 'BandwidthPackageId.InvalidBizStatus', - 'errorMessage' => 'The specified BandwidthPackageId has been FinancialLocked, Cannot add Ip.', - ], - [ - 'errorCode' => 'IpInstanceId.QuotaExceeded', - 'errorMessage' => 'The specified BandwidthPackageId has too many ip in it. exceed the quota , Cannot add more.', - ], - [ - 'errorCode' => 'EipOperation.TooFrequently', - 'errorMessage' => 'The specified Eip add into bandwidthPackage too frequently. please add later.', - ], - [ - 'errorCode' => 'IpInstanceId.InvalidIpInternetChargeType', - 'errorMessage' => 'The hybrid type eip not support add into bandwidthPackage of PayBytraffic type.', - ], - [ - 'errorCode' => 'TaskConflict', - 'errorMessage' => 'The operation is too frequent, TaskConflict.', - ], - [ - 'errorCode' => 'IncorrectStatus.Eip', - 'errorMessage' => 'Eip status error.', - ], - [ - 'errorCode' => 'OperationUnsupported.IpType', - 'errorMessage' => 'Ip type does not support the operation.', - ], - [ - 'errorCode' => 'ParamExclusive.IpInstanceIdAndBandwidthPackageId', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'InvalidBandwidthPackage.NotExist', - 'errorMessage' => 'Eip bandwidth package not exist.', - ], - [ - 'errorCode' => 'OperationFailed.DistibuteLock', - 'errorMessage' => 'Distibute lock fail.', - ], - [ - 'errorCode' => 'BandwidthPackageId.InvalidBandwidth', - 'errorMessage' => 'The hybrid type eip can not add into low bandwidth bandwidthPackage.', - ], - [ - 'errorCode' => 'OperationFailed.ZoneIdInconsistent', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'AttrMismatching.BandwidthPackageIpVersion', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'InvalidEIPStatus.BizDisabled', - 'errorMessage' => 'The EIP has been locked.', - ], - [ - 'errorCode' => 'Forbidden.FinancialLocked', - 'errorMessage' => 'The ip business status is invalid.', - ], - [ - 'errorCode' => 'Mismatch.CloudBoxCbwpZoneAndEipZone', - 'errorMessage' => 'The CbwpZone and EipZone are mismatched.', - ], - [ - 'errorCode' => 'InvalidInstanceId.NotFound', - 'errorMessage' => 'The InstanceId is not found.', - ], - [ - 'errorCode' => 'MissingParam.BandwidthPackageId', - 'errorMessage' => 'The parameter bandwidthPackageId is mandatory.', - ], + ['errorCode' => 'IllegalParam.Filter.Key', 'errorMessage' => 'The filter parameter Key is invalid.', 'description' => 'The filter parameter Key is invalid.'], + ['errorCode' => 'IllegalParam.Filter.Value', 'errorMessage' => 'The filter parameter Value is illegal.', 'description' => 'The filter parameter Value is illegal.'], + ['errorCode' => 'SystemQuotaConstraint.Filter.Value', 'errorMessage' => 'The number of values in a key in the filter parameter cannot exceed 5.', 'description' => 'The number of values in a key in the filter parameter cannot exceed 5.'], + ['errorCode' => 'SystemQuotaConstraint.Filter.Key', 'errorMessage' => 'The number of keys in the filter parameter cannot exceed 5.', 'description' => 'The number of keys in the filter parameter cannot exceed 5.'], + ['errorCode' => 'IllegalParam.FilterKey.ResourceType', 'errorMessage' => 'Filter parameters do not support entering only ResourceId or ResourceName without entering ResourceType.', 'description' => 'Filter parameters do not support entering only ResourceId or ResourceName without entering ResourceType.'], + ['errorCode' => 'IllegalParam.JobId', 'errorMessage' => 'The specified parameter JobId is illegal.', 'description' => 'The entered failover test job ID is invalid.'], + ['errorCode' => 'IllegalParam.ResourceType', 'errorMessage' => 'Invalid %s value.', 'description' => 'ResourceType is set to an invalid value.'], + ['errorCode' => 'IncorrectStatus.ResourceId', 'errorMessage' => 'The specified resource status is invalid.', 'description' => 'The resource status corresponding to the entered resource ID is invalid.'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"01FDDD49-C4B7-4D2A-A8E5-A93915C450A6\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 01FDDD49-C4B7-4D2A-A8E5-A93915C450A6\\n","errorExample":""}]', - 'title' => 'AddCommonBandwidthPackageIps', - 'description' => '* When you call this operation to associate EIPs with an Internet Shared Bandwidth instance, make sure that the EIPs meet the following requirements:'."\n" - ."\n" - .' * The EIPs use the pay-as-you-go billing method.'."\n" - .' * The EIP and the Internet Shared Bandwidth instance belong to the same region.'."\n" - .' * The line type of the EIPs is the same as that of the Internet Shared Bandwidth instance.'."\n" - ."\n" - .'* **AddCommonBandwidthPackageIps** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call the [DescribeCommonBandwidthPackages](~~DescribeCommonBandwidthPackages~~) operation to query the status of the task.'."\n" - ."\n" - .' * If the Internet Shared Bandwidth instance is in the **BINDING** state, the EIP is being associated with the Internet Shared Bandwidth instance. In this state, you can only query the Internet Shared Bandwidth instance and cannot perform other operations.'."\n" - .' * If the Internet Shared Bandwidth instance is in the **BINDED** state, the EIP is associated with the Internet Shared Bandwidth instance.'."\n", - ], - 'RemoveCommonBandwidthPackageIp' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'DescribeFailoverTestJobs', + 'changeSet' => [ + ['createdAt' => '2024-07-29T02:44:51.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-07-19T02:56:58.000Z', 'description' => 'Response parameters changed'], ], + 'ramActions' => [], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E\\",\\n \\"FailoverTestJobList\\": [\\n {\\n \\"JobId\\": \\"ftj-bp1yh6mvi13aq3g8w****\\\\n\\",\\n \\"Name\\": \\"test\\",\\n \\"Description\\": \\"test\\",\\n \\"ResourceType\\": \\"PHYSICALCONNECTION\\",\\n \\"ResourceId\\": [\\n \\"pc-uf66k4e8pq3r00jfq****\\"\\n ],\\n \\"JobType\\": \\"StartNow\\",\\n \\"JobDuration\\": \\"60\\",\\n \\"StartTime\\": \\"2023-11-21T14:00:00Z\\",\\n \\"StopTime\\": \\"2023-11-21T15:00:00Z\\\\n\\",\\n \\"Status\\": \\"Init\\"\\n }\\n ],\\n \\"NextToken\\": \\"FFmyTO70tTpLG6I3FmYAXGKPd****\\",\\n \\"MaxResults\\": 20,\\n \\"TotalCount\\": 10,\\n \\"Count\\": 10\\n}","type":"json"}]', + ], + 'DescribeFlowLogs' => [ + 'summary' => 'Query flow logs.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'read', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'delete', - ], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '', - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The region ID of the flow log.'."\n" + ."\n" + .'You can obtain the region ID by calling the [DescribeRegions](~~36063~~) interface.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'BandwidthPackageId', + 'name' => 'FlowLogName', 'in' => 'query', - 'schema' => [ - 'description' => '', - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cbwp-2ze2ic1xd2qeqk145****', - ], + 'schema' => ['description' => 'The name of the flow log.'."\n" + ."\n" + .'The name must be 1 to 128 characters long and cannot start with `http://` or `https://`.', 'type' => 'string', 'required' => false, 'example' => 'myFlowlog', 'title' => ''], ], [ - 'name' => 'IpInstanceId', + 'name' => 'FlowLogId', 'in' => 'query', - 'schema' => [ - 'description' => '', - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'eip-2zeerraiwb7uj6i0d****', - ], + 'schema' => ['description' => 'The ID of the flow log.', 'type' => 'string', 'required' => false, 'example' => 'fl-bp1f6qqhsrc2c12ta****', 'title' => ''], ], [ - 'name' => 'ClientToken', + 'name' => 'Description', + 'in' => 'query', + 'schema' => ['description' => 'The description of the flow log.'."\n" + ."\n" + .'The description must be 1 to 256 characters long and cannot start with `http://` or `https://`.', 'type' => 'string', 'required' => false, 'example' => 'This is my Flowlog.', 'title' => ''], + ], + [ + 'name' => 'ResourceType', + 'in' => 'query', + 'schema' => ['description' => 'The resource type of the traffic to capture. Values:'."\n" + .'- **NetworkInterface**: Elastic Network Interface (ENI).'."\n" + .'- **VSwitch**: All ENIs within a VSwitch.'."\n" + .'- **VPC**: All ENIs within a VPC.', 'type' => 'string', 'required' => false, 'example' => 'NetworkInterface', 'title' => ''], + ], + [ + 'name' => 'ResourceId', + 'in' => 'query', + 'schema' => ['description' => 'The resource ID of the traffic to capture.', 'type' => 'string', 'required' => false, 'example' => 'eni-askldfas****', 'title' => ''], + ], + [ + 'name' => 'TrafficType', + 'in' => 'query', + 'schema' => ['description' => 'The type of traffic to collect. Values:'."\n" + .'- **All**: All traffic.'."\n" + .'- **Allow**: Traffic allowed by access control.'."\n" + .'- **Drop**: Traffic denied by access control.', 'type' => 'string', 'required' => false, 'example' => 'All', 'title' => ''], + ], + [ + 'name' => 'ProjectName', + 'in' => 'query', + 'schema' => ['description' => 'The Project that manages the captured traffic.', 'type' => 'string', 'required' => false, 'example' => 'FlowLogProject', 'title' => ''], + ], + [ + 'name' => 'LogStoreName', + 'in' => 'query', + 'schema' => ['description' => 'The Logstore that stores the captured traffic.', 'type' => 'string', 'required' => false, 'example' => 'FlowLogStore', 'title' => ''], + ], + [ + 'name' => 'Status', + 'in' => 'query', + 'schema' => ['description' => 'The status of the flow log. Values:'."\n" + .'- **Active**: The flow log is in an active state.'."\n" + .'- **Activating**: The flow log is being created.'."\n" + .'- **Inactive**: The flow log is in an inactive state.', 'type' => 'string', 'required' => false, 'example' => 'Active', 'title' => ''], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => ['description' => 'The page number, with a default value of **1**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'default' => '1', 'example' => '1', 'title' => ''], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => ['description' => 'The number of items per page in a paginated query, with a maximum value of **50** and a default value of **20**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'default' => '20', 'example' => '20', 'title' => ''], + ], + [ + 'name' => 'VpcId', + 'in' => 'query', + 'schema' => ['description' => 'The ID of the VPC for which you want to view the flow log.', 'type' => 'string', 'required' => false, 'example' => 'vpc-bp1nwd16gvo1wgs****', 'title' => ''], + ], + [ + 'name' => 'ResourceGroupId', + 'in' => 'query', + 'schema' => ['description' => 'The resource group ID of the flow log.', 'type' => 'string', 'required' => false, 'example' => 'rg-bp67acfmxazb4ph****', 'title' => ''], + ], + [ + 'name' => 'Tags', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => '', - 'type' => 'string', + 'description' => 'The list of tags.', + 'type' => 'array', + 'items' => [ + 'description' => 'The list of tags.', + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => '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.'."\n" + ."\n" + .'A tag key can have up to 128 characters and cannot start with `aliyun` or `acs:`. It also cannot contain `http://` or `https://`.', 'type' => 'string', 'required' => false, 'example' => 'FinanceDept', 'title' => ''], + 'Value' => ['description' => '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.'."\n" + ."\n" + .'A tag value can have up to 128 characters and cannot start with `aliyun` or `acs:`. It also cannot contain `http://` or `https://`.', 'type' => 'string', 'required' => false, 'example' => 'FinanceJoshua', 'title' => ''], + ], + 'required' => false, + 'title' => '', + ], 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-426655440000', + 'maxItems' => 10, + 'title' => '', ], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => '', + 'description' => 'Detailed information about the flow logs.', 'type' => 'object', 'properties' => [ - 'RequestId' => [ + 'PageSize' => ['description' => 'The number of items per page in a paginated query.', 'type' => 'string', 'example' => '20', 'title' => ''], + 'PageNumber' => ['description' => 'The page number.', 'type' => 'string', 'example' => '1', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'F7DDDC17-FA06-4AC2-8F35-59D2470FCFC1', 'title' => ''], + 'TotalCount' => ['description' => 'The number of entries in the queried flow log list.', 'type' => 'string', 'example' => '1', 'title' => ''], + 'Success' => ['description' => 'Indicates whether the call was successful. Values:'."\n" + .'- **true**: The call was successful.'."\n" + .'- **false**: The call failed.', 'type' => 'string', 'example' => 'true', 'title' => ''], + 'FlowLogs' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'FlowLog' => [ + 'description' => 'List of flow logs.', + 'type' => 'array', + 'items' => [ + 'description' => 'List of flow logs.', + 'type' => 'object', + 'properties' => [ + 'Status' => ['description' => 'The status of the flow log. Values:'."\n" + .'- **Active**: The flow log is in an active state.'."\n" + ."\n" + .'- **Activating**: The flow log is being created.'."\n" + ."\n" + .'- **Inactive**: The flow log is in an inactive state.', 'type' => 'string', 'example' => 'Active', 'title' => ''], + 'CreationTime' => ['description' => 'The creation time of the flow log.', 'type' => 'string', 'example' => '2022-01-21T03:08:50Z', 'title' => ''], + 'FlowLogName' => ['description' => 'The name of the flow log.', 'type' => 'string', 'example' => 'myFlowlog', 'title' => ''], + 'TrafficType' => ['description' => 'The type of traffic captured by the flow log. Values:'."\n" + ."\n" + .'- **All**: All traffic.'."\n" + .'- **Allow**: Traffic allowed by access control.'."\n" + .'- **Drop**: Traffic denied by access control.', 'type' => 'string', 'example' => 'All', 'title' => ''], + 'ResourceType' => ['description' => 'The resource type of the traffic captured by the flow log:'."\n" + ."\n" + .'- **NetworkInterface**: Elastic network interface.'."\n" + .'- **VSwitch**: All elastic network interfaces within a VSwitch.'."\n" + .'- **VPC**: All elastic network interfaces within a VPC.', 'type' => 'string', 'example' => 'NetworkInterface', 'title' => ''], + 'Description' => ['description' => 'The description of the flow log.', 'type' => 'string', 'example' => 'Description', 'title' => ''], + 'ProjectName' => ['description' => 'The Project that manages the captured traffic.', 'type' => 'string', 'example' => 'FlowLogProject', 'title' => ''], + 'LogStoreName' => ['description' => 'The Logstore where the captured traffic is stored.', 'type' => 'string', 'example' => 'FlowLogStore', 'title' => ''], + 'ResourceId' => ['description' => 'The resource ID of the traffic captured by the flow log.', 'type' => 'string', 'example' => 'eni-askldfas****', 'title' => ''], + 'RegionId' => ['description' => 'The region ID to which the flow log belongs.', 'type' => 'string', 'example' => 'cn-hangzhou', 'title' => ''], + 'FlowLogId' => ['description' => 'The ID of the flow log.', 'type' => 'string', 'example' => 'fl-bp1f6qqhsrc2c12ta****', 'title' => ''], + 'BusinessStatus' => ['description' => 'The business status. Values:'."\n" + ."\n" + .'- **Normal**: Normal status.'."\n" + .'- **FinancialLocked**: Locked due to unpaid bills.', 'type' => 'string', 'example' => 'Normal', 'title' => ''], + 'AggregationInterval' => ['description' => 'The sampling interval of the flow log. Unit: minutes.', 'type' => 'integer', 'format' => 'int32', 'example' => '10', 'title' => ''], + 'TrafficPath' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'TrafficPathList' => [ + 'description' => 'The path of the captured traffic. Values:'."\n" + ."\n" + .'- **all**: Indicates full collection.'."\n" + .'- **internetGateway**: Indicates public network traffic collection.', + 'type' => 'array', + 'items' => ['description' => 'The path of the collected traffic. Values:'."\n" + .'- **all** (default): indicates full collection. '."\n" + .'- **internetGateway**: indicates public network traffic collection.', 'type' => 'string', 'example' => 'all', 'title' => ''], + 'title' => '', + ], + ], + 'description' => '', + 'title' => '', + ], + 'ServiceType' => ['description' => 'The hosting type of the cloud service.'."\n" + .'- It can be empty, indicating that the flow log was created by the user. '."\n" + .'- When not empty, the only supported value is: **sls**, indicating that the flow log was created through the Log Service console.'."\n" + .'> 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.', 'type' => 'string', 'example' => 'sls', 'title' => ''], + 'ResourceGroupId' => ['description' => 'The ID of the resource group to which the flow log belongs.', 'type' => 'string', 'example' => 'rg-bp67acfmxazb4ph****', 'title' => ''], + 'Tags' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Tag' => [ + 'description' => 'List of tags', + 'type' => 'array', + 'items' => [ + 'description' => 'List of tags', + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => 'Tag key.', 'type' => 'string', 'example' => 'FinanceDept', 'title' => ''], + 'Value' => ['description' => 'Tag value.', 'type' => 'string', 'example' => 'FinanceJoshua', 'title' => ''], + ], + 'title' => '', + ], + 'title' => '', + ], + ], + 'description' => '', + 'title' => '', + ], + 'FlowLogDeliverStatus' => ['description' => 'The delivery status of the flow log, with values:'."\n" + .'- **SUCCESS**: Delivery succeeded. '."\n" + .'- **FAILED**: Delivery failed.', 'type' => 'string', 'example' => 'FAILED', 'title' => ''], + 'FlowLogDeliverErrorMessage' => ['description' => 'When log delivery fails, you can troubleshoot based on the error messages. Possible error messages include:'."\n" + .'- **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. '."\n" + .'- **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. '."\n" + .'- **UnknownError**: An internal error has occurred. Please try again later.', 'type' => 'string', 'example' => 'UnavaliableTarget', 'title' => ''], + 'IpVersion' => ['description' => 'The type of IP address for collecting flow log traffic.', 'type' => 'string', 'example' => 'IPv4', 'title' => ''], + ], + 'title' => '', + ], + 'title' => '', + ], + ], 'description' => '', - 'type' => 'string', - 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B45', + 'title' => '', ], ], + 'title' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'IpInstanceId.NotBandwidthPackage', - 'errorMessage' => 'The specified IpInstanceId does not in bandwidthPackage.', - ], - [ - 'errorCode' => 'DependencyViolation.ip', - 'errorMessage' => 'The specified BandwidthPackageId has eip in it.', - ], - [ - 'errorCode' => 'EIP_BIND_NATGATEWAY', - 'errorMessage' => 'The eip have bind natgateway.', - ], - [ - 'errorCode' => 'IncorrectStatus.Eip', - 'errorMessage' => 'Eip status error.', - ], - [ - 'errorCode' => 'OperationFailed.SnatPoolIp', - 'errorMessage' => 'Multi ip in snat pool cannot remove ip from bandwidth package.', - ], - [ - 'errorCode' => 'DependencyViolation.RouteEntry', - 'errorMessage' => 'vpc route table has route entry.', - ], - [ - 'errorCode' => 'OperationFailed.DistibuteLock', - 'errorMessage' => 'Distibute lock fail.', - ], - [ - 'errorCode' => 'Trade_Sync_Create_Sub_ERROR', - 'errorMessage' => 'SyncOrderToSub error.', - ], - [ - 'errorCode' => 'FAILED_INVOKE_INNER_API', - 'errorMessage' => 'Failed to invoke inner api.', - ], - [ - 'errorCode' => 'InvalidIP.IpInSnatPool', - 'errorMessage' => 'Multi ip in snat pool cannot remove ip from bandwidth package.', - ], - [ - 'errorCode' => 'InvalidInstanceId.NotFound', - 'errorMessage' => 'The specified bandwidthPackageId does not exist in our records.', - ], - [ - 'errorCode' => 'OperationUnsupported.IpNotInCbwp', - 'errorMessage' => 'The specified eip not exist in the commonBandwidthPackage.', - ], - [ - 'errorCode' => 'InvalidIpInstanceId.Malformed', - 'errorMessage' => 'The specified IpInstanceId is invalid.', - ], - [ - 'errorCode' => 'OperationUnsupported.EipBindRemote', - 'errorMessage' => 'Eip bind remote ecs/slb, cannot remove it from bandwidthPackage.', - ], - [ - 'errorCode' => 'InvalidBandwidthPackageId.NotFound', - 'errorMessage' => 'The specified BandwidthPackageId not exist.', - ], - [ - 'errorCode' => 'InvalidEIPStatus.BizDisabled', - 'errorMessage' => 'The EIP has been locked.', - ], - [ - 'errorCode' => 'Forbidden.FinancialLocked', - 'errorMessage' => 'The ip business status is invalid.', - ], - [ - 'errorCode' => 'OperationFailed.SystemBusy', - 'errorMessage' => 'Operation failed because system is busy.', - ], - ], - 404 => [ - [ - 'errorCode' => 'InvalidRegionId.NotFound', - 'errorMessage' => 'The specified RegionId does not exist in our records.', - ], - [ - 'errorCode' => 'InvalidBandwidthPackageId.NotFound', - 'errorMessage' => 'The specified bandwidthPackageId does not exist in our records.', - ], + ['errorCode' => 'InvalidInstanceId', 'errorMessage' => 'Instance does not exist.', 'description' => 'The error message returned because the specified instance does not exist.'], + ['errorCode' => 'ProjectOrLogstoreNotExist', 'errorMessage' => 'The specified project or logstore does not exist.', 'description' => 'The error message returned because the specified project or Logstore does not exist.'], + ['errorCode' => 'SourceProjectNotExist', 'errorMessage' => 'The Source Project or logstore does not exist.', 'description' => 'The error message returned because the source project or Logstore does not exist.'], + ['errorCode' => 'Unauthorized', 'errorMessage' => 'This api does not support sub user or role.', 'description' => 'The error message returned because you cannot call this operation as a RAM user.'], + ['errorCode' => 'ParameterInvalid', 'errorMessage' => 'Invalid parameter.', 'description' => 'The error message returned because a parameter is invalid.'], + ['errorCode' => 'InvalidRegionId.NotFound', 'errorMessage' => 'The RegionId provided does not exist in our records.', 'description' => ''], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B45\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 54B48E3D-DF70-471B-AA93-08E683A1B45\\n","errorExample":""}]', - 'title' => 'RemoveCommonBandwidthPackageIp', - 'summary' => 'Disassociates an EIP from an Internet Shared Bandwidth instance.', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'Query Flow Logs', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DeleteCommonBandwidthPackage' => [ - 'summary' => 'Deletes an Internet Shared Bandwidth instance.', - 'methods' => [ - 'post', - 'get', + 'changeSet' => [ + ['createdAt' => '2025-02-26T11:03:27.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2025-02-21T05:35:50.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2024-09-25T15:16:14.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2023-07-06T01:32:53.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2023-03-06T12:01:51.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2022-10-13T02:16:28.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2022-03-14T05:19:28.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2022-03-14T05:19:28.000Z', 'description' => 'Response parameters changed'], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'vpc:DescribeFlowLogs', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'FlowLog', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:flowlog/*'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"PageSize\\": \\"20\\",\\n \\"PageNumber\\": \\"1\\",\\n \\"RequestId\\": \\"F7DDDC17-FA06-4AC2-8F35-59D2470FCFC1\\",\\n \\"TotalCount\\": \\"1\\",\\n \\"Success\\": \\"true\\",\\n \\"FlowLogs\\": {\\n \\"FlowLog\\": [\\n {\\n \\"Status\\": \\"Active\\",\\n \\"CreationTime\\": \\"2022-01-21T03:08:50Z\\",\\n \\"FlowLogName\\": \\"myFlowlog\\",\\n \\"TrafficType\\": \\"All\\",\\n \\"ResourceType\\": \\"NetworkInterface\\",\\n \\"Description\\": \\"Description\\",\\n \\"ProjectName\\": \\"FlowLogProject\\",\\n \\"LogStoreName\\": \\"FlowLogStore\\",\\n \\"ResourceId\\": \\"eni-askldfas****\\",\\n \\"RegionId\\": \\"cn-hangzhou\\",\\n \\"FlowLogId\\": \\"fl-bp1f6qqhsrc2c12ta****\\",\\n \\"BusinessStatus\\": \\"Normal\\",\\n \\"AggregationInterval\\": 10,\\n \\"TrafficPath\\": {\\n \\"TrafficPathList\\": [\\n \\"all\\"\\n ]\\n },\\n \\"ServiceType\\": \\"sls\\",\\n \\"ResourceGroupId\\": \\"rg-bp67acfmxazb4ph****\\",\\n \\"Tags\\": {\\n \\"Tag\\": [\\n {\\n \\"Key\\": \\"FinanceDept\\",\\n \\"Value\\": \\"FinanceJoshua\\"\\n }\\n ]\\n },\\n \\"FlowLogDeliverStatus\\": \\"FAILED\\",\\n \\"FlowLogDeliverErrorMessage\\": \\"UnavaliableTarget\\",\\n \\"IpVersion\\": \\"IPv4\\"\\n }\\n ]\\n }\\n}","type":"json"}]', + ], + 'DescribeForwardTableEntries' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'delete', - ], + 'operationType' => 'read', + 'systemTags' => ['operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region where the Internet Shared Bandwidth instance is created.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The ID of the region where you want to create the NAT gateway.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'Force', + 'name' => 'ForwardTableId', 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to forcefully delete the Internet Shared Bandwidth instance. Valid values:'."\n" - ."\n" - .'* **false** (default): deletes the Internet Shared Bandwidth instance only when no EIPs are associated with the Internet Shared Bandwidth instance.'."\n" - .'* **true**: disassociates all EIPs from the Internet Shared Bandwidth instance and deletes the Internet Shared Bandwidth instance.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['description' => 'The ID of the DNAT table.'."\n" + ."\n" + .'**'."\n" + ."\n" + .'**Description** You must specify at least one of **ForwardTableId** and **NatGatewayId**.'."\n", 'type' => 'string', 'required' => false, 'example' => 'ftb-bp1mbjubq34hlcqpa****', 'title' => ''], ], [ - 'name' => 'BandwidthPackageId', + 'name' => 'ForwardEntryId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the Internet Shared Bandwidth instance.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cbwp-2ze2ic1xd2qeqk145pn4u', - ], + 'schema' => ['description' => 'The ID of the DNAT entry.'."\n", 'type' => 'string', 'required' => false, 'example' => 'fwd-8vbn3bc8roygjp0gy****', 'title' => ''], + ], + [ + 'name' => 'ExternalIp', + 'in' => 'query', + 'schema' => ['description' => '* The elastic IP addresses (EIPs) that can be accessed over the Internet when you query DNAT entries of Internet NAT gateways.'."\n" + .'* The NAT IP addresses that can be accessed by external networks when you query DNAT entries of Virtual Private Cloud (VPC) NAT gateways.'."\n", 'type' => 'string', 'required' => false, 'example' => '116.28.XX.XX', 'title' => ''], + ], + [ + 'name' => 'ExternalPort', + 'in' => 'query', + 'schema' => ['description' => '* The external port or port range that is used for port forwarding when you query DNAT entries of Internet NAT gateways.'."\n" + ."\n" + .' * Valid values: **1** to **65535**.'."\n" + .' * If you want to query a port range, separate the first port and last port with a forward slash (/), such as `10/20`.'."\n" + .' * If you set **ExternalPort** to a port range, you must also set **InternalPort** to a port range, and the number of ports specified by these parameters must be the same. For example, if you set **ExternalPort** to `10/20`, you can set **InternalPort** to `80/90`.'."\n" + ."\n" + .'* The port that is used when the NAT IP address can be accessed by external networks when you query DNAT entries of VPC NAT gateways. Valid values: **1** to **65535**.'."\n", 'type' => 'string', 'required' => false, 'example' => '8080', 'title' => ''], + ], + [ + 'name' => 'InternalIp', + 'in' => 'query', + 'schema' => ['description' => 'The private IP address.'."\n" + ."\n" + .'* The private IP address of the ECS instance that uses DNAT entries to communicate with the Internet when you query DNAT entries of Internet NAT gateways.'."\n" + .'* The private IP address that uses DNAT entries for communication when you query DNAT entries of VPC NAT gateways.'."\n", 'type' => 'string', 'required' => false, 'example' => '192.168.XX.XX ', 'title' => ''], + ], + [ + 'name' => 'InternalPort', + 'in' => 'query', + 'schema' => ['description' => '* The internal port or port range that is used for port forwarding when you query DNAT entries of Internet NAT gateways. Valid values: **1** to **65535**.'."\n" + .'* The port of the destination ECS instance to be mapped when you query DNAT entries of VPC NAT gateways. Valid values: **1** to **65535**.'."\n", 'type' => 'string', 'required' => false, 'example' => '80', 'title' => ''], + ], + [ + 'name' => 'IpProtocol', + 'in' => 'query', + 'schema' => ['description' => 'The protocol. Valid values:'."\n" + ."\n" + .'* **TCP**'."\n" + .'* **UDP**'."\n" + .'* **Any**'."\n", 'type' => 'string', 'required' => false, 'example' => 'tcp', 'title' => ''], + ], + [ + 'name' => 'ForwardEntryName', + 'in' => 'query', + 'schema' => ['description' => 'The name of the DNAT entry.'."\n" + ."\n" + .'The name must be 2 to 128 characters in length, and can contain digits, periods (.), underscores (\\_), and hyphens (-). It must start with a letter.'."\n", 'type' => 'string', 'required' => false, 'example' => 'ForwardEntry-1', 'title' => ''], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => ['description' => 'The page number. Default value: **1**.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'minimum' => '1', 'example' => '1', 'default' => '1', 'title' => ''], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => ['description' => 'The number of entries per page. Maximum value: **50**. Default value: **10**.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '50', 'minimum' => '1', 'example' => '10', 'default' => '10', 'title' => ''], + ], + [ + 'name' => 'NatGatewayId', + 'in' => 'query', + 'schema' => ['description' => 'The ID of the NAT gateway.'."\n" + ."\n" + .'**'."\n" + ."\n" + .'**Description** You must specify at least one of **ForwardTableId** and **NatGatewayId**.'."\n", 'type' => 'string', 'required' => false, 'example' => 'ngw-bp1uewa15k4iy5770****', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => 'The response parameters.'."\n", 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => 'B400EF57-60E3-4D61-B8FB-7FA8F72DF5A6', + 'PageSize' => ['description' => 'The number of entries per page.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '10', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => 'A6C4A8B1-7561-4509-949C-20DEB40D71E6', 'title' => ''], + 'PageNumber' => ['description' => 'The page number.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''], + 'TotalCount' => ['description' => 'The number of entries returned.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '5', 'title' => ''], + 'ForwardTableEntries' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'ForwardTableEntry' => [ + 'description' => 'The details of DNAT entries.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'Status' => ['description' => 'The status of the DNAT entry. Valid values:'."\n" + ."\n" + .'* **Pending**'."\n" + .'* **Available**'."\n" + .'* **Deleting**'."\n", 'type' => 'string', 'example' => 'Available', 'title' => ''], + 'ForwardEntryId' => ['description' => 'The ID of the DNAT entry.'."\n", 'type' => 'string', 'example' => 'fwd-119smw5tk****', 'title' => ''], + 'InternalIp' => ['description' => 'The private IP address.'."\n" + ."\n" + .'* The private IP address of the ECS instance that uses DNAT entries to communicate with the Internet when you query DNAT entries of Internet NAT gateways.'."\n" + .'* The private IP address that uses DNAT entries when you query DNAT entries of VPC NAT gateways.'."\n", 'type' => 'string', 'example' => '192.168.XX.XX', 'title' => ''], + 'InternalPort' => ['description' => '* The internal port or port range that is used for port forwarding when you query DNAT entries of Internet NAT gateways.'."\n" + .'* The destination ECS instance port to be mapped when you query DNAT entries of VPC NAT gateways.'."\n", 'type' => 'string', 'example' => '25', 'title' => ''], + 'ForwardEntryName' => ['description' => 'The name of the DNAT entry.'."\n", 'type' => 'string', 'example' => 'ForwardEntry-1', 'title' => ''], + 'ForwardTableId' => ['description' => 'The ID of the DNAT table to which the DNAT entry belongs.'."\n", 'type' => 'string', 'example' => 'ftb-11tc6xgmv****', 'title' => ''], + 'IpProtocol' => ['description' => 'The protocol. Valid values:'."\n" + ."\n" + .'* **TCP**'."\n" + .'* **UDP**'."\n" + .'* **Any**'."\n", 'type' => 'string', 'example' => 'tcp', 'title' => ''], + 'ExternalPort' => ['description' => '* The external port or port range that is used for port forwarding when you query DNAT entries of Internet NAT gateways.'."\n" + .'* The port that is used when the NAT IP address can be accessed by external networks when you query DNAT entries of VPC NAT gateways.'."\n", 'type' => 'string', 'example' => '80', 'title' => ''], + 'ExternalIp' => ['description' => '* The EIPs that can be accessed over the Internet when you query DNAT entries of Internet NAT gateways.'."\n" + .'* The NAT IP addresses that can be accessed by external networks when you query DNAT entries of VPC NAT gateways.'."\n", 'type' => 'string', 'example' => '139.79.XX.XX', 'title' => ''], + 'NatGatewayId' => ['description' => 'The ID of the NAT gateway to which the DNAT entry belongs.'."\n", 'type' => 'string', 'example' => 'ngw-bp1uewa15k4iy5770****', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'MissingParam.%s', - 'errorMessage' => 'The param of %s is missing.', - ], - [ - 'errorCode' => 'DependencyViolation.Ips', - 'errorMessage' => 'The specified BandwidthPackageId has dependent resource ips.', - ], - [ - 'errorCode' => 'ForbiddenAction.PrePaid', - 'errorMessage' => 'The specified BandwidthPackageId is PrePaid.', - ], - [ - 'errorCode' => 'OperationFailed.BandwidthPackageNotEmpty', - 'errorMessage' => 'Eip bandwidth package not empty.', - ], - [ - 'errorCode' => 'InvalidOperation.DeletionProtection', - 'errorMessage' => 'The instance cannnot delete because of deletion protecion.', - ], - [ - 'errorCode' => 'OperationUnsupported.Release95Instance', - 'errorMessage' => 'Releasing instances that payBy95 or payByOld95 is unsupported.', - ], - [ - 'errorCode' => 'OperationFailed.AddIpTaskInProcessing', - 'errorMessage' => 'Operation failed because add ip to common bandwidth task in processing.', - ], + ['errorCode' => 'IncorretForwardEntryStatus', 'errorMessage' => 'Some Forward entry status blocked this operation..', 'description' => ''], + ['errorCode' => 'DESCRIBE_FORWARD_PARAM_INVALID', 'errorMessage' => 'ForwardTableId and natGatewayId can not both be null', 'description' => ''], ], 404 => [ - [ - 'errorCode' => 'InvalidRegionId.NotFound', - 'errorMessage' => 'The specified RegionId does not exist in our records.', - ], - [ - 'errorCode' => 'InvalidBandwidthPackageId.NotFound', - 'errorMessage' => 'The specified BandwidthPackageId does not exist in our records.', - ], + ['errorCode' => 'InvalidRegionId.NotFound', 'errorMessage' => 'The specified RegionId does not exist in our records.', 'description' => ''], + ['errorCode' => 'InvalidForwardTableId.NotFound', 'errorMessage' => 'Specified forwardTableId does not exist', 'description' => ''], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"B400EF57-60E3-4D61-B8FB-7FA8F72DF5A6\\"\\n}","errorExample":""},{"type":"xml","example":"\\n B400EF57-60E3-4D61-B8FB-7FA8F72DF5A6\\n","errorExample":""}]', - 'title' => 'DeleteCommonBandwidthPackage', - 'description' => 'You cannot repeatedly call the **DeleteCommonBandwidthPackage** operation to delete an Internet Shared Bandwidth instance within the specified period of time.'."\n", + 'title' => 'DescribeForwardTableEntries', + 'summary' => 'Queries DNAT entries.', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'ModifyCommonBandwidthPackageAttribute' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [ + ['createdAt' => '2023-08-09T03:15:06.000Z', 'description' => 'Response parameters changed, Response parameters changed'], + ['createdAt' => '2023-03-01T06:45:55.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2022-09-19T02:47:18.000Z', 'description' => 'Error codes changed, Request parameters changed'], ], + 'ramActions' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"PageSize\\": 10,\\n \\"RequestId\\": \\"A6C4A8B1-7561-4509-949C-20DEB40D71E6\\",\\n \\"PageNumber\\": 1,\\n \\"TotalCount\\": 5,\\n \\"ForwardTableEntries\\": {\\n \\"ForwardTableEntry\\": [\\n {\\n \\"Status\\": \\"Available\\",\\n \\"ForwardEntryId\\": \\"fwd-119smw5tk****\\",\\n \\"InternalIp\\": \\"192.168.XX.XX\\",\\n \\"InternalPort\\": \\"25\\",\\n \\"ForwardEntryName\\": \\"ForwardEntry-1\\",\\n \\"ForwardTableId\\": \\"ftb-11tc6xgmv****\\",\\n \\"IpProtocol\\": \\"tcp\\",\\n \\"ExternalPort\\": \\"80\\",\\n \\"ExternalIp\\": \\"139.79.XX.XX\\",\\n \\"NatGatewayId\\": \\"ngw-bp1uewa15k4iy5770****\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 10\\n A6C4A8B1-7561-4509-949C-20DEB40D71E6\\n 1\\n 5\\n \\n Available\\n fwd-119smw5tk****\\n 192.168.XX.XX\\n 25\\n ForwardEntry-1\\n ftb-11tc6xgmv****\\n TCP\\n 80\\n 139.79.XX.XX\\n \\n","errorExample":""}]', + ], + 'DescribeGlobalAccelerationInstances' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'update', - ], + 'operationType' => 'read', + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region where the EIP bandwidth plan is created.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The region ID of the GA instance. You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'example' => 'cn-hangzhou'], ], [ - 'name' => 'BandwidthPackageId', + 'name' => 'IncludeReservationData', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the EIP bandwidth plan.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cbwp-2ze2ic1xd2qeqk145****', - ], + 'schema' => ['description' => 'Specifies whether to return information about pending orders. Valid values:'."\n" + ."\n" + .'* **false** (default)'."\n" + .'* **true**'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false'], + ], + [ + 'name' => 'GlobalAccelerationInstanceId', + 'in' => 'query', + 'schema' => ['description' => 'The ID of the GA instance.'."\n", 'type' => 'string', 'required' => false, 'example' => 'ga-234sljmxaz****'], + ], + [ + 'name' => 'IpAddress', + 'in' => 'query', + 'schema' => ['description' => 'The public IP address of the GA instance.'."\n", 'type' => 'string', 'required' => false, 'example' => '12.xx.xx.78'], ], [ 'name' => 'Name', 'in' => 'query', - 'schema' => [ - 'description' => 'The name of the EIP bandwidth plan. The name must be 2 to 128 characters in length and can contain letters, digits, periods (.), underscores (\\_), and hyphens (-). It must start with a letter. It cannot start with `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'test123', - ], + 'schema' => ['description' => 'The name of the GA instance.'."\n", 'type' => 'string', 'required' => false, 'example' => 'GA-1'], ], [ - 'name' => 'Description', + 'name' => 'Status', 'in' => 'query', - 'schema' => [ - 'description' => 'The description of the EIP bandwidth plan. The description must be 2 to 256 characters in length. It must start with a letter but cannot start with `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'test', - ], + 'schema' => ['description' => 'The status of the GA instance. Valid values:'."\n" + ."\n" + .'* **Available**'."\n" + .'* **Inuse**'."\n" + .'* **Associating**'."\n" + .'* **Unassociating**'."\n", 'type' => 'string', 'required' => false, 'example' => 'Available'], + ], + [ + 'name' => 'BandwidthType', + 'in' => 'query', + 'schema' => ['description' => 'The bandwidth type of the GA instance. Valid values:'."\n" + ."\n" + .'* **Sharing**'."\n" + .'* **Exclusive** (default)'."\n", 'type' => 'string', 'required' => false, 'example' => 'Exclusive'], + ], + [ + 'name' => 'ServiceLocation', + 'in' => 'query', + 'schema' => ['description' => 'The region of the backend service. Valid values:'."\n" + ."\n" + .'* **china-mainland**'."\n" + .'* **north-america**'."\n" + .'* **asia-pacific**'."\n" + .'* **europe**'."\n", 'type' => 'string', 'required' => false, 'example' => 'china-mainland'], + ], + [ + 'name' => 'ServerId', + 'in' => 'query', + 'schema' => ['description' => 'The ID of the backend service instance.'."\n", 'type' => 'string', 'required' => false, 'example' => 'i-sxjblddejj9x****'], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => ['description' => 'The number of the page to return. Default value: **1**.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'minimum' => '1', 'example' => '10', 'default' => '1'], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => ['description' => 'The number of entries to return on each page. Maximum value: **100**. Default value: **10**.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '100', 'minimum' => '1', 'example' => '10', 'default' => '10'], ], ], 'responses' => [ @@ -35964,223 +26997,233 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => 'B450CAD8-50BC-4506-ADA7-35C6CE63E96B', + 'PageSize' => ['description' => 'The number of entries returned per page.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '10'], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '6B4EE38D-C75B-4E1F-844E-863A94430676'], + 'PageNumber' => ['description' => 'The page number of the returned page.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'TotalCount' => ['description' => 'The total number of entries returned.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'GlobalAccelerationInstances' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'GlobalAccelerationInstance' => [ + 'description' => 'The details of the GA instances.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'CreationTime' => ['description' => 'The time when the GA instance was created. The time is displayed in UTC.'."\n", 'type' => 'string', 'example' => '2018-07-05T03:39:31Z'], + 'Status' => ['description' => 'The status of the GA instance.'."\n" + ."\n" + .'* **Available**'."\n" + .'* **Inuse**'."\n" + .'* **Associating**'."\n" + .'* **Unassociating**'."\n", 'type' => 'string', 'example' => 'InUse'], + 'BandwidthType' => ['description' => 'The bandwidth type of the GA instance.'."\n" + ."\n" + .'* **Sharing**'."\n" + .'* **Exclusive** (default)'."\n", 'type' => 'string', 'example' => 'Exclusive'], + 'ChargeType' => ['description' => 'The billing method of the GA instance.'."\n", 'type' => 'string', 'example' => 'PrePaid'], + 'GlobalAccelerationInstanceId' => ['description' => 'The ID of the GA instance.'."\n", 'type' => 'string', 'example' => 'ga-bp1x99kj7kl1ziw5x****'], + 'ServiceLocation' => ['description' => 'The service area of the GA instance.'."\n", 'type' => 'string', 'example' => 'china-mainland'], + 'RegionId' => ['description' => 'The region ID of the GA instance.'."\n", 'type' => 'string', 'example' => 'cn-hangzhou'], + 'AccelerationLocation' => ['description' => 'The acceleration area of the GA instance.'."\n", 'type' => 'string', 'example' => 'china-mainland'], + 'IpAddress' => ['description' => 'The public IP address of the dedicated GA instance.'."\n", 'type' => 'string', 'example' => '47.xx.xx.99'], + 'Description' => ['description' => 'The description of the GA instance.'."\n", 'type' => 'string', 'example' => 'apiDescription'], + 'Bandwidth' => ['description' => 'The maximum bandwidth of the GA instance.'."\n", 'type' => 'string', 'example' => '10'], + 'ExpiredTime' => ['description' => 'The time when the instance expires.'."\n", 'type' => 'string', 'example' => '2018-08-05T16:00Z'], + 'InternetChargeType' => ['description' => 'The billing method of the GA instance.'."\n", 'type' => 'string', 'example' => 'PayByBandwidth'], + 'Name' => ['description' => 'The name of the GA instance.'."\n", 'type' => 'string', 'example' => 'instanceName'], + 'BackendServers' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'BackendServer' => [ + 'description' => 'The details about the backend servers of the GA instance.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'ServerIpAddress' => ['description' => 'The IP address of the backend server.'."\n", 'type' => 'string', 'example' => '172.xx.xx.109'], + 'ServerId' => ['description' => 'The ID of the backend server.'."\n", 'type' => 'string', 'example' => 'i-2zeg83zvn5d4ed4y****'], + 'ServerType' => ['description' => 'The type of the backend server.'."\n" + ."\n" + .'* **EcsInstance**: Elastic Compute Service (ECS) instance'."\n" + .'* **SlbInstance**: Server Load Balancer (SLB) instance'."\n", 'type' => 'string', 'example' => 'EcsInstance'], + 'RegionId' => ['description' => 'The region where the backend servers are deployed.'."\n", 'type' => 'string', 'example' => 'cn-beijing'], + ], + ], + ], + ], + ], + 'PublicIpAddresses' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'PublicIpAddress' => [ + 'description' => 'The public IP address.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'IpAddress' => ['description' => 'The public IP address of the GA instance.'."\n", 'type' => 'string', 'example' => '12.xx.xx.78'], + 'AllocationId' => ['description' => 'The ID of the public IP address of the GA instance.'."\n", 'type' => 'string', 'example' => 'eip-bp19yqraac4w3y0jd****'], + ], + ], + ], + ], + ], + ], + ], + ], + ], ], ], - 'description' => 'The response.', ], ], ], 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InvalidParameter.Name.Malformed', - 'errorMessage' => 'The specified Name is not valid.', - ], - [ - 'errorCode' => 'InvalidParameter.Description.Malformed', - 'errorMessage' => 'The specified Description is not valid.', - ], - [ - 'errorCode' => 'InvalidBandwidthPackageId.NotFound', - 'errorMessage' => 'The specified BandwidthPackageId not exist.', - ], - ], 404 => [ - [ - 'errorCode' => 'InvalidRegionId.NotFound', - 'errorMessage' => 'The specified RegionId does not exist in our records.', - ], - [ - 'errorCode' => 'InvalidBandwidthPackageId.NotFound', - 'errorMessage' => 'The specified bandwidthPackageId does not exist in our records.', - ], + ['errorCode' => 'InvalidRegionId.NotFound', 'errorMessage' => 'The specified region is not supported.', 'description' => ''], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"B450CAD8-50BC-4506-ADA7-35C6CE63E96B\\"\\n}","errorExample":"\\n\\n B450CAD8-50BC-4506-ADA7-35C6CE63E96B\\n"},{"type":"xml","example":"\\r\\n\\r\\n B450CAD8-50BC-4506-ADA7-35C6CE63E96B\\r\\n","errorExample":"{\\n \\"RequestId\\":B450CAD8-50BC-4506-ADA7-35C6CE63E96B6\\"\\n}"}]', - 'title' => 'ModifyCommonBandwidthPackageAttribute', - 'summary' => 'Modifies the name and description of an EIP bandwidth plan.', + 'title' => 'DescribeGlobalAccelerationInstances', + 'summary' => 'Queries Global Accelerator (GA) instances.', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'ModifyCommonBandwidthPackageSpec' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'vpc:DescribeGlobalAccelerationInstances', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'GlobalAccelerationInstance', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:globalaccelerationinstance/*'], + ], + ], + ], ], + ], + 'DescribeGrantRulesToCen' => [ + 'summary' => 'Queries cross-account authorization on virtual private clouds (VPCs), virtual border routers (VBRs), and Cloud Connect Network (CCN) instances.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'read', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'update', - ], + 'systemTags' => ['operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the Internet Shared Bandwidth instance.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The region ID of the network instance that you want to query.'."\n", 'type' => 'string', 'required' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'BandwidthPackageId', + 'name' => 'InstanceId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the Internet Shared Bandwidth instance.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cbwp-2ze2ic1xd2qeqk145****', - ], + 'schema' => ['description' => 'The ID of the network instance that you want to query.'."\n", 'type' => 'string', 'required' => true, 'example' => 'vpc-bp18sth14qii3pnvc****', 'title' => ''], ], [ - 'name' => 'Bandwidth', + 'name' => 'InstanceType', 'in' => 'query', - 'schema' => [ - 'description' => 'The maximum bandwidth of the Internet Shared Bandwidth instance. Unit: Mbit/s.'."\n" - ."\n" - .'Valid values: **1** to **1000**.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => '1000', - ], + 'schema' => ['description' => 'The type of the network instance. Valid values:'."\n" + ."\n" + .'* **VPC**'."\n" + .'* **VBR**'."\n" + .'* **CCN**'."\n", 'type' => 'string', 'required' => true, 'example' => 'VPC', 'title' => ''], + ], + [ + 'name' => 'ResourceGroupId', + 'in' => 'query', + 'schema' => ['description' => 'The ID of the resource group to which the network instance belongs.'."\n", 'type' => 'string', 'required' => false, 'example' => 'rg-acfmxazb4p**** ', 'title' => ''], + ], + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'You can use the client to generate the value, but you must make sure that it is unique among all requests. ClientToken can contain only ASCII characters.'."\n" + ."\n" + .'> If you do not specify this parameter, **ClientToken** is set to the value of **RequestId**. The value of **RequestId** for each API request may be different.'."\n", 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-426655440000 ', 'title' => ''], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => ['description' => 'The page number. Minimum value: **1**. Default value: **1**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'minimum' => '1', 'default' => '1', 'example' => '1', 'title' => ''], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => ['description' => 'The number of entries per page. Maximum value: **50**. Minimum value: **1**. Default value: **10**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '50', 'minimum' => '1', 'default' => '10', 'example' => '10', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => 'The response parameters.'."\n", + 'description' => '', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '7F129000-F929-4AF5-BE8D-BAE434C795306', + 'PageSize' => ['description' => 'The number of entries returned per page.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '10', 'title' => ''], + 'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => 'F5BB78C8-5F41-464F-B9FF-5E0A7198BA26', 'title' => ''], + 'PageNumber' => ['description' => 'The page number of the returned page.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''], + 'TotalCount' => ['description' => 'The total number of entries returned.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''], + 'CenGrantRules' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'CbnGrantRule' => [ + 'description' => 'The information about the authorization.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'CenInstanceId' => ['description' => 'The ID of the authorized CEN instance.'."\n", 'type' => 'string', 'example' => 'cen-9gsm1q2yh1prpt****', 'title' => ''], + 'CenOwnerId' => ['description' => 'The UID of the Alibaba Cloud account to which the authorized CEN instance belongs.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '132193271328****', 'title' => ''], + 'CreationTime' => ['description' => 'The time when the instance was created.'."\n", 'type' => 'string', 'example' => '2019-11-15T09:26:36Z', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'ResourceNotEnough.Bandwidth', - 'errorMessage' => 'The specified resource of Bandwidth is not enough.', - ], - [ - 'errorCode' => 'InvalidParameter.Bandwidth', - 'errorMessage' => 'The specified bandwidth is not valid.', - ], - [ - 'errorCode' => 'InvalidBandwidthPackageId.NotFound', - 'errorMessage' => 'The specified BandwidthPackageId not exist.', - ], - [ - 'errorCode' => 'InvalidCommonBandwidthPackageId.NotFound', - 'errorMessage' => 'The specified BandwidthPackageId is not found.', - ], - [ - 'errorCode' => 'IncorrectStatus.ResourceStatus', - 'errorMessage' => 'Resource status is abnormal for renew.', - ], - [ - 'errorCode' => 'SYSTEM.SALE_VALIDATE_UNEXPECTED_ERROR', - 'errorMessage' => 'You have arrears and do not meet the purchase conditions.', - ], - [ - 'errorCode' => 'OperationFailed.SyncOrderToSub', - 'errorMessage' => 'SyncOrderToSub error.', - ], - [ - 'errorCode' => 'OperationFailed.SaleValidate', - 'errorMessage' => 'Validate sale condition with subArticle failed.', - ], - [ - 'errorCode' => 'OperationFailed.QueryCommodityInfo', - 'errorMessage' => 'Operation failed because quey commodity info error.', - ], - [ - 'errorCode' => 'OperationFailed.QueryPrice', - 'errorMessage' => 'Query price failed when create order.', - ], - [ - 'errorCode' => 'Forbidden.ChargeTypeIsPrepaid', - 'errorMessage' => 'It\'s forbidden to change prepaid CBWP\'s bandwidth by API. It can be changed on Aliyun web console.', - ], - [ - 'errorCode' => 'IncorrectStatus.CbwpModifying', - 'errorMessage' => 'Cbwp Modifying status is invalid.', - ], - ], - 404 => [ - [ - 'errorCode' => 'InvalidRegionId.NotFound', - 'errorMessage' => 'The specified RegionId does not exist in our records.', - ], - [ - 'errorCode' => 'InvalidBandwidthPackageId.NotFound', - 'errorMessage' => 'The specified BandwidthPackageId does not exist in our records.', - ], - [ - 'errorCode' => 'InvalidBandwidth.ValueNotSupported', - 'errorMessage' => 'The specified value of Bandwidth not supported.', - ], - [ - 'errorCode' => 'BandwidthPackage.FinancialLocked', - 'errorMessage' => 'The specified BandwidthPackage has been Financial Lock.', - ], - ], - 500 => [ - [ - 'errorCode' => 'OrderError.BandwidthPackage', - 'errorMessage' => 'The Account failed to create order.', - ], + 403 => [ + ['errorCode' => 'Forbbiden', 'errorMessage' => 'User not authorized to operate on the specified resource.', 'description' => 'User not authorized to operate on the specified resource.'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"7F129000-F929-4AF5-BE8D-BAE434C795306\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 7F129000-F929-4AF5-BE8D-BAE434C795306\\n","errorExample":""}]', - 'title' => 'ModifyCommonBandwidthPackageSpec', - 'summary' => 'Modifies the maximum bandwidth of an Internet Shared Bandwidth instance.', - 'description' => 'Before you call this operation, take note of the following items:'."\n" - ."\n" - .'* **ModifyCommonBandwidthPackageSpec** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call the [DescribeCommonBandwidthPackages](~~120309~~) operation to query the status of the task.'."\n" - ."\n" - .' * If the Internet Shared Bandwidth instance is in the **Modifying** state, the maximum bandwidth of the Internet Shared Bandwidth instance is being modified. In this state, you can only query the Internet Shared Bandwidth instance and cannot perform other operations.'."\n" - .' * If the Internet Shared Bandwidth instance is in the **Available** state, the maximum bandwidth of the Internet Shared Bandwidth instance is modified.'."\n" - ."\n" - .'* You cannot repeatedly call the **ModifyCommonBandwidthPackageSpec** operation to modify the maximum bandwidth of an Internet Shared Bandwidth instance within the specified period of time.'."\n", + 'title' => 'DescribeGrantRulesToCen', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeCommonBandwidthPackages' => [ - 'summary' => 'Queries a list of Internet Shared Bandwidth instances in a region.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [ + ['createdAt' => '2024-07-31T02:45:59.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-01-03T06:55:44.000Z', 'description' => 'Request parameters changed, Error codes changed'], ], + 'ramActions' => [], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"PageSize\\": 10,\\n \\"RequestId\\": \\"F5BB78C8-5F41-464F-B9FF-5E0A7198BA26\\",\\n \\"PageNumber\\": 1,\\n \\"TotalCount\\": 1,\\n \\"CenGrantRules\\": {\\n \\"CbnGrantRule\\": [\\n {\\n \\"CenInstanceId\\": \\"cen-9gsm1q2yh1prpt****\\",\\n \\"CenOwnerId\\": 0,\\n \\"CreationTime\\": \\"2019-11-15T09:26:36Z\\"\\n }\\n ]\\n }\\n}","type":"json"}]', + ], + 'DescribeGrantRulesToEcr' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -36188,665 +27231,507 @@ ], 'operationType' => 'read', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'get', - ], + 'systemTags' => ['operationType' => 'list', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ - 'name' => 'IncludeReservationData', + 'name' => 'PageNumber', 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to return the information about pending orders. Valid values:'."\n" - ."\n" - .'* **false** (default)'."\n" - .'* **true**'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['description' => 'The number of the page to return. Default value: 1.'."\n", 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '1', 'title' => ''], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => ['description' => 'The number of entries per page. Maximum value: **50**. Default value: **10**.'."\n", 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '20', 'title' => ''], ], [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region where the Internet Shared Bandwidth instance resides.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the region ID.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The region ID'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the region list.'."\n", 'type' => 'string', 'required' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'BandwidthPackageId', + 'name' => 'InstanceId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the Internet Shared Bandwidth instance.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'cbwp-2ze2ic1xd2qeqk145****', - ], + 'schema' => ['description' => 'The ID of the VBR.'."\n", 'type' => 'string', 'required' => true, 'example' => 'vbr-xxxxxx', 'title' => ''], ], [ 'name' => 'ResourceGroupId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the resource group.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'rg-acfmxazb4ph****', - ], + 'schema' => ['description' => 'The ID of the resource group.'."\n", 'type' => 'string', 'required' => false, 'example' => 'rg-acfmxazdjdhd****', 'title' => ''], ], [ - 'name' => 'Name', + 'name' => 'Tags', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => 'The name of the Internet Shared Bandwidth instance.'."\n", - 'type' => 'string', + 'description' => 'The tag list.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => 'The tag keys. You must specify at least one tag key and at most 20 tag keys. The tag key cannot be an empty string.'."\n" + ."\n" + .'The tag key can be up to 128 characters in length. The tag key cannot start with `aliyun` or `acs:`, and cannot contain `http://` or `https://`.'."\n", 'type' => 'string', 'required' => false, 'example' => 'FinanceDept', 'title' => ''], + 'Value' => ['description' => 'The value of the tag.'."\n", 'type' => 'string', 'required' => false, 'example' => 'FinanceJoshua', 'title' => ''], + ], + 'required' => false, + 'description' => '', + 'title' => '', + 'example' => '', + ], 'required' => false, - 'example' => 'test123', + 'maxItems' => 20, + 'title' => '', + 'example' => '', ], ], - [ - 'name' => 'PageNumber', - 'in' => 'query', + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => 'The page number. Default value: **1**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'minimum' => '1', - 'example' => '1', - 'default' => '1', + 'title' => 'Schema of Response', + 'description' => 'Schema of Response'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['title' => 'Id of the request', 'description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => 'C1CCAB91-6AE6-50E3-AAA3-D0E5A2BC6ADE'], + 'EcrGrantRules' => [ + 'description' => 'The cross-account authorization list of the ECR'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'EcrUid' => ['description' => 'The ECR account ID.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '11111111111', 'title' => ''], + 'CreateTime' => ['description' => 'The authorization time. The time follows the ISO8601 standard and uses UTC time. The format is YYYY-MM-DDThh:mm:ssZ.'."\n", 'type' => 'string', 'example' => '2025-09-15T14:00:00Z', 'title' => ''], + 'EcrInstanceId' => ['description' => 'The ECR account ID.'."\n", 'type' => 'string', 'example' => 'ecr-xxxxxx', 'title' => ''], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + 'TotalCount' => ['description' => 'The total number of entries returned.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '0', 'title' => ''], + 'Count' => ['description' => 'The total number of entries returned.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '0', 'title' => ''], + 'PageNumber' => ['description' => 'The page number. Default value: **1**.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''], + 'PageSize' => ['description' => 'The number of entries on each page. Maximum value: 50. Default value: 10.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '20', 'title' => ''], + ], + 'example' => '', ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InvalidParam.NotNull', 'errorMessage' => 'The parameter must not be null.', 'description' => ''], + ['errorCode' => 'Parameter.Illegal', 'errorMessage' => 'The parameter is illegal.', 'description' => 'The parameter is invalid.'], + ['errorCode' => 'Instance.StatusError', 'errorMessage' => 'The status of instance error. ', 'description' => ''], + ], + 404 => [ + ['errorCode' => 'VRouterId.NotFound', 'errorMessage' => 'The VRouter not found.', 'description' => 'The specified vRouter cannot be found.'], + ['errorCode' => 'Instance.NotExist', 'errorMessage' => 'The instance not exist.', 'description' => ''], + ], + ], + 'title' => 'DescribeGrantRulesToEcr', + 'summary' => 'Queries the cross-account authorization list of an Express Connect Router (ECR).', + 'changeSet' => [], + 'ramActions' => [], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"C1CCAB91-6AE6-50E3-AAA3-D0E5A2BC6ADE\\",\\n \\"EcrGrantRules\\": [\\n {\\n \\"EcrUid\\": 11111111111,\\n \\"CreateTime\\": \\"2025-09-15T14:00:00Z\\",\\n \\"EcrInstanceId\\": \\"ecr-xxxxxx\\"\\n }\\n ],\\n \\"TotalCount\\": 0,\\n \\"Count\\": 0,\\n \\"PageNumber\\": 1,\\n \\"PageSize\\": 20\\n}","type":"json"}]', + 'translator' => 'manual', + ], + 'DescribeHaVips' => [ + 'summary' => 'Queries HaVips in a region.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'PageSize', + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'get'], + 'parameters' => [ + [ + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The number of entries per page. Valid values: **1 to 50**. Default value: **10**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '50', - 'minimum' => '1', - 'example' => '10', - 'default' => '10', - ], + 'schema' => ['description' => 'The region ID of the HaVip.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'DryRun', + 'name' => 'PageNumber', 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to perform a dry run, without performing the actual request. Valid values:'."\n" - ."\n" - .'* **true**: performs only a dry run. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and instance status. 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.'."\n" - .'* **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.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['description' => 'The number of the returned page. Default value: **1**.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'minimum' => '1', 'default' => '1', 'example' => '1', 'title' => ''], ], [ - 'name' => 'Tag', + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => ['description' => 'The number of entries per page. Maximum value: **50**. Default value: **10**.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '50', 'minimum' => '1', 'default' => '10', 'example' => '10', 'title' => ''], + ], + [ + 'name' => 'Filter', 'in' => 'query', 'style' => 'repeatList', 'schema' => [ - 'description' => 'The tags to add to the Internet Shared Bandwidth instance.'."\n", + 'description' => 'The details of the filter condition.'."\n", 'type' => 'array', 'items' => [ 'description' => '', 'type' => 'object', 'properties' => [ - 'Key' => [ - 'description' => 'The tag key to add to the Internet Shared Bandwidth instance. You can specify up to 20 tag keys. The tag key cannot be an empty string.'."\n" - ."\n" - .'The tag key can be up to 128 characters in length. It cannot start with `aliyun` or `acs:`, and cannot contain `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'KeyTest', - ], + 'Key' => ['description' => 'The filter keys. You can specify at most five filter keys. Valid values of **N**: **1 to 5**. The following filter keys are supported:'."\n" + ."\n" + .'* **VpcId**: virtual private cloud (VPC) ID'."\n" + .'* **VSwitchId**: vSwitch ID'."\n" + .'* **Status**: HaVip status'."\n" + .'* **HaVipId**: HaVip ID'."\n" + .'* **HaVipAddress**: HaVip IP address'."\n" + ."\n" + .'You can specify multiple values for each filter key. The logical operator among multiple values is OR. If one value is matched, the filter key is matched.'."\n" + ."\n" + .'The logical operator among multiple filter keys is AND. HaVips can be queried only if all filter keys are matched.', 'type' => 'string', 'required' => false, 'example' => 'HaVipId', 'title' => ''], 'Value' => [ - 'description' => 'The tag value to add to the Internet Shared Bandwidth instance. You can specify up to 20 tag values. The tag value can be an empty string.'."\n" - ."\n" - .'The tag value can be up to 128 characters in length. It cannot start with `aliyun` or `acs:`, and cannot contain `http://` or `https://`.'."\n", - 'type' => 'string', + 'description' => 'The value of the filter key. Valid values of **N**: **1 to 5**.'."\n", + 'type' => 'array', + 'items' => ['description' => 'The filter values for filter keys. You can specify multiple filter values for one key. The logical operator between filter values is OR. If one filter value is matched, the filter key is matched.'."\n", 'type' => 'string', 'required' => false, 'example' => 'Active', 'title' => ''], 'required' => false, - 'example' => 'ValueTest', + 'example' => 'havip-bp19o63nequs01i8d****', + 'maxItems' => 10, + 'title' => '', ], ], 'required' => false, + 'title' => '', + 'example' => '', ], 'required' => false, - 'maxItems' => 20, + 'maxItems' => 6, + 'title' => '', + 'example' => '', ], ], [ - 'name' => 'SecurityProtectionEnabled', + 'name' => 'ResourceGroupId', + 'in' => 'query', + 'schema' => ['description' => 'The ID of the resource group to which the HaVip belongs.', 'type' => 'string', 'required' => false, 'example' => 'rg-bp67acfmxazb4ph****', 'title' => ''], + ], + [ + 'name' => 'Tags', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'title' => '是否开启安全防护', - 'description' => 'Specifies whether to enable Anti-DDoS Pro/Premium. Valid values:'."\n" - ."\n" - .'* **false** (default)'."\n" - .'* **true**'."\n", - 'type' => 'boolean', + 'description' => 'The tag list.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => 'The key of tag N to add to the resource. You can specify up to 20 tag keys. The tag key cannot be an empty string.'."\n" + ."\n" + .'The tag key can be up to 128 characters in length. It cannot start with `aliyun` or `acs:`, and cannot contain `http://` or `https://`.'."\n", 'type' => 'string', 'required' => false, 'example' => 'FinanceDept', 'title' => ''], + 'Value' => ['description' => '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.'."\n" + ."\n" + .'The tag value can be up to 128 characters in length and cannot contain `http://` or `https://`. The tag value cannot start with `aliyun` or `acs:`.'."\n", 'type' => 'string', 'required' => false, 'example' => 'FinanceJoshua', 'title' => ''], + ], + 'required' => false, + 'title' => '', + 'example' => '', + ], 'required' => false, - 'example' => 'false', + 'maxItems' => 10, + 'title' => '', + 'example' => '', ], ], ], 'responses' => [ 200 => [ + 'headers' => [], 'schema' => [ - 'description' => 'The response parameters.'."\n", + 'description' => 'The number of entries per page.'."\n", 'type' => 'object', 'properties' => [ - 'PageSize' => [ - 'description' => 'The number of entries per page.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '20E6FD1C-7321-4DAD-BDFD-EC8769E4AA33', - ], - 'PageNumber' => [ - 'description' => 'The page number.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'TotalCount' => [ - 'description' => 'The total number of entries returned.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'CommonBandwidthPackages' => [ + 'PageSize' => ['description' => 'The number of entries per page.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '10', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '33E480C5-B46F-4CA5-B6FD-D77C746E86AB', 'title' => ''], + 'PageNumber' => ['description' => 'The page number.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''], + 'TotalCount' => ['description' => 'The number of entries returned.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''], + 'HaVips' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ - 'CommonBandwidthPackage' => [ - 'description' => 'The details of the Internet Shared Bandwidth instance.'."\n", + 'HaVip' => [ + 'description' => 'The details about the HaVip.', 'type' => 'array', 'items' => [ 'description' => '', 'type' => 'object', 'properties' => [ - 'ReservationActiveTime' => [ - 'description' => 'The time when the renewal took effect. The time is displayed in the `YYYY-MM-DDThh:mm:ssZ` format.'."\n", - 'type' => 'string', - 'example' => '2018-08-30T16:00:00Z', - ], - 'Status' => [ - 'description' => 'The status of the Internet Shared Bandwidth instance. Valid values:'."\n" - ."\n" - .'* **Available**: The Internet Shared Bandwidth instance is available.'."\n" - .'* **Modifying**: The Internet Shared Bandwidth instance is being modified.'."\n", - 'type' => 'string', - 'example' => 'Available', - ], - 'CreationTime' => [ - 'description' => 'The time when the Internet Shared Bandwidth instance was created. The time is displayed in the `YYYY-MM-DDThh:mm:ssZ` format.'."\n", - 'type' => 'string', - 'example' => '2017-06-28T06:39:20Z', - ], - 'ReservationOrderType' => [ - 'description' => 'The renewal method. Valid values:'."\n" - ."\n" - .'* **RENEWCHANGE**: renewal with a specification change'."\n" - .'* **TEMP_UPGRADE**: renewal with a temporary upgrade'."\n" - .'* **UPGRADE**: renewal with an upgrade'."\n", - 'type' => 'string', - 'example' => 'RENEWCHANGE', - ], - 'DeletionProtection' => [ - 'description' => 'Indicates whether deletion protection is enabled. Valid values:'."\n" - ."\n" - .'* **true**'."\n" - .'* **false**'."\n", - 'type' => 'boolean', - 'example' => 'true', - ], - 'ReservationInternetChargeType' => [ - 'description' => 'The metering method after the configurations are changed. Valid value:'."\n" - ."\n" - .'**PayByTraffic**'."\n", - 'type' => 'string', - 'example' => 'PayByBandwidth', - ], - 'Ratio' => [ - 'description' => 'The percentage of the minimum bandwidth commitment. Only **20** is returned.'."\n" - ."\n" - .'> This parameter is supported only on the Alibaba Cloud China site.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '20', - ], - 'InstanceChargeType' => [ - 'description' => 'The billing method of the Internet Shared Bandwidth instance. Valid value:'."\n" - ."\n" - .'**PostPaid**: pay-as-you-go'."\n", - 'type' => 'string', - 'example' => 'PostPaid', - ], - 'RegionId' => [ - 'description' => 'The ID of the region where the Internet Shared Bandwidth instance resides.'."\n", - 'type' => 'string', - 'example' => 'cn-hangzhou', - ], - 'BandwidthPackageId' => [ - 'description' => 'The ID of the Internet Shared Bandwidth instance.'."\n", - 'type' => 'string', - 'example' => 'cbwp-bp1t3sm1ffzmshdki****', - ], - 'ServiceManaged' => [ - 'description' => 'Indicates whether the resource is created by the service account. Valid values:'."\n" - ."\n" - .'* **0**: The resource is not created by the service account.'."\n" - .'* **1**: The resource is created by the service account.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'Bandwidth' => [ - 'description' => 'The maximum bandwidth of the Internet Shared Bandwidth instance. Unit: Mbit/s.'."\n", - 'type' => 'string', - 'example' => '20', - ], - 'Description' => [ - 'description' => 'The description of the Internet Shared Bandwidth instance.'."\n", - 'type' => 'string', - 'example' => 'none', - ], - 'ExpiredTime' => [ - 'description' => 'The time when the Internet Shared Bandwidth instance expired. The time is displayed in the `YYYY-MM-DDThh:mm:ssZ` format.'."\n", - 'type' => 'string', - 'example' => '2019-01-15T03:08:37Z', - ], - 'ReservationBandwidth' => [ - 'description' => 'The new maximum bandwidth after the configurations are changed. Unit: Mbit/s.'."\n", - 'type' => 'string', - 'example' => '1000', - ], - 'ResourceGroupId' => [ - 'description' => 'The ID of the resource group.'."\n", - 'type' => 'string', - 'example' => 'rg-acfmxazb4ph****', - ], - 'InternetChargeType' => [ - 'description' => 'The metering method of the Internet Shared Bandwidth instance. Valid value:'."\n" - ."\n" - .'**PayByTraffic**'."\n", - 'type' => 'string', - 'example' => 'PayByBandwidth', - ], - 'BusinessStatus' => [ - 'description' => 'The service status of the Internet Shared Bandwidth instance. Valid values:'."\n" - ."\n" - .'* **Normal**: The Internet Shared Bandwidth instance runs as expected.'."\n" - .'* **FinancialLocked**: An overdue payment occurs in the Internet Shared Bandwidth instance'."\n" - .'* **Unactivated**: The Internet Shared Bandwidth instance is not activated.'."\n", - 'type' => 'string', - 'example' => 'Normal', - ], - 'Name' => [ - 'description' => 'The name of the Internet Shared Bandwidth instance.'."\n", - 'type' => 'string', - 'example' => 'abc', - ], - 'ISP' => [ - 'description' => 'The line type. Valid values:'."\n" - ."\n" - .'* **BGP**: BGP (Multi-ISP) line The BGP (Multi-ISP) line is supported in all regions.'."\n" - .'* **BGP_PRO**: BGP (Multi-ISP) Pro line The BGP (Multi-ISP) Pro line is supported in the China (Hong Kong), Singapore (Singapore), Japan (Tokyo), Philippines (Manila), Malaysia (Kuala Lumpur), Indonesia (Jakarta), and Thailand (Bangkok) regions.'."\n" - ."\n" - .'If you are allowed to use single-ISP bandwidth, one of the following values is returned:'."\n" - ."\n" - .'* **ChinaTelecom**'."\n" - .'* **ChinaUnicom**'."\n" - .'* **ChinaMobile**'."\n" - .'* **ChinaTelecom_L2**'."\n" - .'* **ChinaUnicom_L2**'."\n" - .'* **ChinaMobile_L2**'."\n" - ."\n" - .'If your services are deployed in China East 1 Finance, **BGP_FinanceCloud** is returned.'."\n", - 'type' => 'string', - 'example' => 'BGP', - ], - 'HasReservationData' => [ - 'description' => 'Indicates whether the information about pending orders is returned. Valid values:'."\n" - ."\n" - .'* **false**'."\n" - .'* **true**'."\n", - 'type' => 'string', - 'example' => 'false', - ], - 'PublicIpAddresses' => [ + 'VpcId' => ['description' => 'The ID of the VPC to which the HaVip belongs.', 'type' => 'string', 'example' => 'vpc-bp1kcm36tevkpms97****', 'title' => ''], + 'Status' => ['description' => 'The status of the HaVip. Valid values:'."\n" + ."\n" + .'* **Creating**: The server group is being created.'."\n" + .'* **Available**: The FULLNAT entry is available.'."\n" + .'* **Deleting**', 'type' => 'string', 'example' => 'Available', 'title' => ''], + 'HaVipId' => ['description' => 'The ID of the HaVip.', 'type' => 'string', 'example' => 'havip-bp149uyvut73dpld****', 'title' => ''], + 'AssociatedInstanceType' => ['description' => 'The type of the instance with which the HaVip is associated. Valid values:'."\n" + ."\n" + .'* **EcsInstance**: Elastic Compute Service (ECS) instance'."\n" + .'* **NetworkInterface**: elastic network interface (ENI)', 'type' => 'string', 'example' => 'EcsInstance', 'title' => ''], + 'CreateTime' => ['description' => 'The time when the HaVip was created.', 'type' => 'string', 'example' => '2021-07-03T14:25:26Z', 'title' => ''], + 'ChargeType' => ['description' => 'The parameter is invalid. No value is returned.'."\n", 'type' => 'string', 'example' => 'none', 'title' => ''], + 'RegionId' => ['description' => 'The ID of the region to which the HaVip belongs.', 'type' => 'string', 'example' => 'cn-hangzhou', 'title' => ''], + 'VSwitchId' => ['description' => 'The ID of the vSwitch to which the HaVip belongs.', 'type' => 'string', 'example' => 'vsw-bp1pkt1fba8e824ez****', 'title' => ''], + 'IpAddress' => ['description' => 'The private IP address of the HaVip.', 'type' => 'string', 'example' => '192.168.24.5', 'title' => ''], + 'Description' => ['description' => 'The description of the HaVip.', 'type' => 'string', 'example' => 'My HaVip', 'title' => ''], + 'MasterInstanceId' => ['description' => 'The ID of the active instance that is associated with the HaVip.', 'type' => 'string', 'example' => 'i-bp145q7glnuzdvz****', 'title' => ''], + 'Name' => ['description' => 'The name of the HaVip.', 'type' => 'string', 'example' => 'test', 'title' => ''], + 'AssociatedEipAddresses' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ - 'PublicIpAddresse' => [ - 'description' => 'The elastic IP addresses (EIPs) that are associated with the Internet Shared Bandwidth instance.'."\n", + 'associatedEipAddresse' => [ + 'description' => 'The list of EIPs associated with the HaVip.', 'type' => 'array', - 'items' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'IpAddress' => [ - 'description' => 'The public IP address.'."\n", - 'type' => 'string', - 'example' => '47.95.XX.XX', - ], - 'AllocationId' => [ - 'description' => 'The ID of the EIP.'."\n", - 'type' => 'string', - 'example' => 'eip-bp13e9i2qst4g6jzi****', - ], - 'BandwidthPackageIpRelationStatus' => [ - 'description' => 'Indicates whether the EIP is associated with the Internet Shared Bandwidth instance. Valid values:'."\n" - ."\n" - .'* **BINDED**'."\n" - .'* **BINDING**'."\n", - 'type' => 'string', - 'example' => 'BINDED', - ], - ], - ], + 'items' => ['description' => 'The EIP that is associated with the HaVip.', 'type' => 'string', 'example' => '121.12.XX.XX', 'title' => ''], + 'title' => '', + 'example' => '', ], ], + 'description' => '', + 'title' => '', + 'example' => '', ], - 'SecurityProtectionTypes' => [ + 'AssociatedInstances' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ - 'SecurityProtectionType' => [ - 'description' => 'The editions of Anti-DDoS.'."\n" - ."\n" - .'* If this parameter is empty, Anti-DDoS Origin Basic is enabled.'."\n" - .'* If **AntiDDoS_Enhanced** is returned, Anti-DDoS Pro/Premium is enabled.'."\n", + 'associatedInstance' => [ + 'description' => 'The information about the instance associated with the HaVip.', 'type' => 'array', - 'items' => [ - 'description' => 'The edition of Anti-DDoS.'."\n" - ."\n" - .'* If this parameter is empty, Anti-DDoS Origin Basic is enabled.'."\n" - .'* If **AntiDDoS_Enhanced** is returned, Anti-DDoS Pro/Premium is enabled.'."\n", - 'type' => 'string', - 'example' => 'AntiDDoS_Enhanced', - ], + 'items' => ['description' => 'The ID of the instance with which the HaVip is associated.', 'type' => 'string', 'example' => 'i-bp145q7glnuzdvzu21****', 'title' => ''], + 'title' => '', + 'example' => '', ], ], + 'description' => '', + 'title' => '', + 'example' => '', ], + 'ResourceGroupId' => ['description' => 'The ID of the resource group to which the HaVip belongs.', 'type' => 'string', 'example' => 'rg-bp67acfmxazb4ph****', 'title' => ''], 'Tags' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ 'Tag' => [ - 'description' => 'The tag that is added to the Internet Shared Bandwidth instance.'."\n", + 'description' => 'The tag list.'."\n", 'type' => 'array', 'items' => [ 'description' => '', 'type' => 'object', 'properties' => [ - 'Key' => [ - 'description' => 'The tag key that is added to the Internet Shared Bandwidth instance.'."\n", - 'type' => 'string', - 'example' => 'KeyTest', - ], - 'Value' => [ - 'description' => 'The tag value that is added to the Internet Shared Bandwidth instance.'."\n", - 'type' => 'string', - 'example' => 'ValueTest', - ], + 'Key' => ['description' => 'The key of tag N added to the resource.'."\n", 'type' => 'string', 'example' => 'FinanceDept', 'title' => ''], + 'Value' => ['description' => 'The value of tag N added to the resource.'."\n", 'type' => 'string', 'example' => 'FinanceJoshua', 'title' => ''], ], + 'title' => '', + 'example' => '', ], + 'title' => '', + 'example' => '', ], ], - ], - 'BizType' => [ - 'description' => 'The service type of the Internet Shared Bandwidth instance. Valid values:'."\n" - ."\n" - .'* **CloudBox** The cloud box. Only cloud box users can select this type.'."\n" - .'* **Default** (default): The general service type.'."\n", - 'type' => 'string', - 'example' => 'CloudBox', - ], - 'Zone' => [ - 'description' => 'The zone of the Internet Shared Bandwidth instance. This parameter is returned only when BizType is set to CloudBox. If BizType is set to Default, an empty value is returned.'."\n", - 'type' => 'string', - 'example' => 'ap-southeast-1-lzdvn-cb', + 'description' => '', + 'title' => '', + 'example' => '', ], ], + 'title' => '', + 'example' => '', ], + 'title' => '', + 'example' => '', ], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidBandwidthPackageIdNumber.NotSupported', - 'errorMessage' => 'The number of BandwidthPackageIds exceeds the limit.', - ], - [ - 'errorCode' => 'InvalidResourceGroupId', - 'errorMessage' => 'The specified ResourceGroupId does not exist.', - ], - [ - 'errorCode' => 'OperationUnsupported.ResourceGroupId', - 'errorMessage' => 'ResourceGroup is not supported in this region.', - ], - ], - 404 => [ - [ - 'errorCode' => 'InvalidRegionId.NotFound', - 'errorMessage' => 'The specified RegionId does not exist in our records.', - ], + ['errorCode' => 'Forbidden.HaVip', 'errorMessage' => 'No permissions to perform operations on HAVIPs. Please apply for privilege--vpc_privilege_allow_buy_havip_instance.', 'description' => 'The error message returned because you do not have the permissions to manage the HAVIP. Go to the Quota Center page to acquire the permissions.'], + ['errorCode' => 'InvalidRegionId.NotFound', 'errorMessage' => 'The RegionId provided does not exist in our records.', 'description' => ''], + ['errorCode' => 'InvalidFilterKey.ValueNotSupported', 'errorMessage' => 'Specified filter key is not supported: Filter.X.key', 'description' => ''], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"PageSize\\": 10,\\n \\"RequestId\\": \\"20E6FD1C-7321-4DAD-BDFD-EC8769E4AA33\\",\\n \\"PageNumber\\": 1,\\n \\"TotalCount\\": 1,\\n \\"CommonBandwidthPackages\\": {\\n \\"CommonBandwidthPackage\\": [\\n {\\n \\"ReservationActiveTime\\": \\"2018-08-30T16:00:00Z\\",\\n \\"Status\\": \\"Available\\",\\n \\"CreationTime\\": \\"2017-06-28T06:39:20Z\\",\\n \\"ReservationOrderType\\": \\"RENEWCHANGE\\",\\n \\"DeletionProtection\\": true,\\n \\"ReservationInternetChargeType\\": \\"PayByBandwidth\\",\\n \\"Ratio\\": 20,\\n \\"InstanceChargeType\\": \\"PostPaid\\",\\n \\"RegionId\\": \\"cn-hangzhou\\",\\n \\"BandwidthPackageId\\": \\"cbwp-bp1t3sm1ffzmshdki****\\",\\n \\"ServiceManaged\\": 1,\\n \\"Bandwidth\\": \\"20\\",\\n \\"Description\\": \\"none\\",\\n \\"ExpiredTime\\": \\"2019-01-15T03:08:37Z\\",\\n \\"ReservationBandwidth\\": \\"1000\\",\\n \\"ResourceGroupId\\": \\"rg-acfmxazb4ph****\\",\\n \\"InternetChargeType\\": \\"PayByBandwidth\\",\\n \\"BusinessStatus\\": \\"Normal\\",\\n \\"Name\\": \\"abc\\",\\n \\"ISP\\": \\"BGP\\",\\n \\"HasReservationData\\": \\"false\\",\\n \\"PublicIpAddresses\\": {\\n \\"PublicIpAddresse\\": [\\n {\\n \\"IpAddress\\": \\"47.95.XX.XX\\",\\n \\"AllocationId\\": \\"eip-bp13e9i2qst4g6jzi****\\",\\n \\"BandwidthPackageIpRelationStatus\\": \\"BINDED\\"\\n }\\n ]\\n },\\n \\"SecurityProtectionTypes\\": {\\n \\"SecurityProtectionType\\": [\\n \\"AntiDDoS_Enhanced\\"\\n ]\\n },\\n \\"Tags\\": {\\n \\"Tag\\": [\\n {\\n \\"Key\\": \\"KeyTest\\",\\n \\"Value\\": \\"ValueTest\\"\\n }\\n ]\\n },\\n \\"BizType\\": \\"CloudBox\\",\\n \\"Zone\\": \\"ap-southeast-1-lzdvn-cb\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 10\\n 20E6FD1C-7321-4DAD-BDFD-EC8769E4AA33\\n 1\\n 1\\n \\n 2018-08-30T16:00:00Z\\n Available\\n 2017-06-28T06:39:20Z\\n RENEWCHANGE\\n true\\n PayByBandwidth\\n 20\\n PostPaid\\n cn-hangzhou\\n cbwp-bp1t3sm1ffzmshdki****\\n 1\\n 20\\n none\\n 2019-01-15T03:08:37Z\\n 1000\\n rg-acfmxazb4ph****\\n PayByBandwidth\\n Normal\\n abc\\n BGP\\n false\\n \\n 47.95.XX.XX\\n eip-bp13e9i2qst4g6jzi****\\n BINDED\\n \\n AntiDDoS_Enhanced\\n \\n KeyTest\\n ValueTest\\n \\n CloudBox\\n ap-southeast-1-lzdvn-cb\\n \\n","errorExample":""}]', - 'title' => 'DescribeCommonBandwidthPackages', + 'title' => 'DescribeHaVips', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'ModifyCommonBandwidthPackageIpBandwidth' => [ - 'methods' => [ - 'post', - 'get', + 'changeSet' => [ + ['createdAt' => '2023-01-11T06:07:05.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-01-10T15:26:11.000Z', 'description' => 'Error codes changed, Response parameters changed'], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'vpc:DescribeHaVips', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'HaVip', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:havip/*'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"PageSize\\": 10,\\n \\"RequestId\\": \\"33E480C5-B46F-4CA5-B6FD-D77C746E86AB\\",\\n \\"PageNumber\\": 1,\\n \\"TotalCount\\": 1,\\n \\"HaVips\\": {\\n \\"HaVip\\": [\\n {\\n \\"VpcId\\": \\"vpc-bp1kcm36tevkpms97****\\",\\n \\"Status\\": \\"Available\\",\\n \\"HaVipId\\": \\"havip-bp149uyvut73dpld****\\",\\n \\"AssociatedInstanceType\\": \\"EcsInstance\\",\\n \\"CreateTime\\": \\"2021-07-03T14:25:26Z\\",\\n \\"ChargeType\\": \\"none\\",\\n \\"RegionId\\": \\"cn-hangzhou\\",\\n \\"VSwitchId\\": \\"vsw-bp1pkt1fba8e824ez****\\",\\n \\"IpAddress\\": \\"192.168.24.5\\",\\n \\"Description\\": \\"My HaVip\\",\\n \\"MasterInstanceId\\": \\"i-bp145q7glnuzdvz****\\",\\n \\"Name\\": \\"test\\",\\n \\"AssociatedEipAddresses\\": {\\n \\"associatedEipAddresse\\": [\\n \\"121.12.XX.XX\\"\\n ]\\n },\\n \\"AssociatedInstances\\": {\\n \\"associatedInstance\\": [\\n \\"i-bp145q7glnuzdvzu21****\\"\\n ]\\n },\\n \\"ResourceGroupId\\": \\"rg-bp67acfmxazb4ph****\\",\\n \\"Tags\\": {\\n \\"Tag\\": [\\n {\\n \\"Key\\": \\"FinanceDept\\",\\n \\"Value\\": \\"FinanceJoshua\\"\\n }\\n ]\\n }\\n }\\n ]\\n }\\n}","type":"json"}]', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DescribeHaVips'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], + ], + ], + 'DescribeHighDefinitionMonitorLogAttribute' => [ + 'summary' => 'Queries configurations about the fine-grained monitoring feature of an elastic IP address (EIP).', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'update', - ], + 'operationType' => 'read', + 'systemTags' => ['operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', 'autoTest' => true, 'tenantRelevance' => 'tenant'], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the Internet Shared Bandwidth instance. You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], - ], - [ - 'name' => 'BandwidthPackageId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the Internet Shared Bandwidth instance.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cbwp-2zep6hw5d6y8exscd****', - ], + 'schema' => ['description' => 'The region ID of the instance.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.', 'type' => 'string', 'required' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'EipId', + 'name' => 'InstanceId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the EIP that is associated with the Internet Shared Bandwidth instance.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'eip-2zewysoansu0svfbg****', - ], + 'schema' => ['description' => 'The ID of the instance whose fine-grained monitoring configurations you want to query.'."\n", 'type' => 'string', 'required' => true, 'example' => 'eip-wz9fi6qboho9fwgx7****', 'title' => ''], ], [ - 'name' => 'Bandwidth', + 'name' => 'InstanceType', 'in' => 'query', - 'schema' => [ - 'description' => 'The maximum bandwidth for the EIP. This value cannot be larger than the maximum bandwidth of the Internet Shared Bandwidth instance. Unit: Mbit/s.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => '500', - ], + 'schema' => ['description' => 'The type of the instance. Set the value to **EIP**.'."\n", 'type' => 'string', 'required' => false, 'example' => 'EIP', 'default' => 'EIP', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => 'The response parameters.'."\n", 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '63D187BF-A30A-4DD6-B68D-FF182C96D8A2 ', - ], + 'LogProject' => ['description' => 'The name of the project.'."\n", 'type' => 'string', 'example' => 'hdmonitor-cn-shenzhen-1658206966225390', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B457', 'title' => ''], + 'LogStore' => ['description' => 'The name of the Logstore.'."\n", 'type' => 'string', 'example' => 'hdmonitor', 'title' => ''], + 'Success' => ['description' => 'Indicates whether the operation is performed. Valid values:'."\n" + ."\n" + .'* **true**'."\n" + .'* **false**'."\n", 'type' => 'string', 'example' => 'true', 'title' => ''], + 'InstanceId' => ['description' => 'The ID of the instance whose fine-grained monitoring configurations you want to query.'."\n", 'type' => 'string', 'example' => 'eip-wz9fi6qboho9fwgx7****', 'title' => ''], + 'InstanceType' => ['description' => 'The type of instance for which you want to query fine-grained monitoring. Only **EIP** may be returned.'."\n", 'type' => 'string', 'example' => 'EIP', 'title' => ''], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => '%s', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'OperationFailed.DistibuteLock', - 'errorMessage' => 'Distibute lock fail.', - ], - [ - 'errorCode' => 'Forbidden.FinancialLocked', - 'errorMessage' => 'The ip business status is invalid.', - ], - [ - 'errorCode' => 'InvalidEIPStatus.BizDisabled', - 'errorMessage' => 'The EIP has been locked.', - ], - ], - 404 => [ - [ - 'errorCode' => 'InvalidRegionId.NotFound', - 'errorMessage' => 'The specified RegionId does not exist in our records.', - ], - [ - 'errorCode' => '%s', - 'errorMessage' => '%s', - ], + ['errorCode' => 'InvalidInstanceId', 'errorMessage' => 'Instance does not exist.', 'description' => 'The error message returned because the specified instance does not exist.'], + ['errorCode' => 'ProjectNotExist', 'errorMessage' => 'The Project does not exist.', 'description' => ''], + ['errorCode' => 'ParameterInvalid', 'errorMessage' => 'Invalid parameter.', 'description' => 'The error message returned because a parameter is invalid.'], + ['errorCode' => 'InvalidHdMonitorStatus', 'errorMessage' => 'Current instance status is not valid for this action.', 'description' => ''], + ['errorCode' => 'InvalidAction.NotSupport', 'errorMessage' => 'This region does not support this action.', 'description' => ''], + ['errorCode' => 'InvalidAllocationId.NotFound', 'errorMessage' => 'Specified allocation id is not found.', 'description' => ''], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"63D187BF-A30A-4DD6-B68D-FF182C96D8A2\\\\t\\"\\n}","errorExample":""},{"type":"xml","example":"\\r\\n\\t63D187BF-A30A-4DD6-B68D-FF182C96D8A2\\r\\n","errorExample":""}]', - 'title' => 'ModifyCommonBandwidthPackageIpBandwidth', - 'summary' => 'Sets the maximum bandwidth of an EIP that is associated with an Internet Shared Bandwidth instance.', - 'description' => 'You can call the **ModifyCommonBandwidthPackageIpBandwidth** operation to set the maximum bandwidth of an EIP that is associated with an Internet Shared Bandwidth instance. This prevents an EIP from exhausting the bandwidth resources of an Internet Shared Bandwidth instance.'."\n" - ."\n" - .'For example, two EIPs are associated with an Internet Shared Bandwidth instance whose maximum bandwidth is 800 Mbit/s. In this case, you can set the maximum bandwidth of one EIP to 500 Mbit/s and that of the other EIP to 400 Mbit/s. After you set the maximum bandwidth values, the first EIP cannot consume bandwidth higher than 500 Mbit/s. The second EIP cannot consume bandwidth higher than 400 Mbit/s.'."\n" - ."\n" - .'When you call this operation, take note of the following items:'."\n" - ."\n" - .'* This operation is valid only for EIPs that are associated with Elastic Compute Service (ECS) instances. This operation is invalid for EIPs that are associated with Server Load Balancer (SLB) instances, NAT gateways, secondary elastic network interfaces (ENIs), or high-availability virtual IP addresses (HAVIPs).'."\n" - .'* This operation is in public preview. You can call this operation to set the maximum bandwidth of EIPs only if the EIPs are associated with an Internet Shared Bandwidth instance. The feature is not supported in the console.'."\n" - .'* You cannot repeatedly call this operation to set the maximum bandwidth of an EIP within the specified period of time.'."\n", + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'DescribeHighDefinitionMonitorLogAttribute', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'CancelCommonBandwidthPackageIpBandwidth' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [ + ['createdAt' => '2023-06-13T02:40:57.000Z', 'description' => 'Error codes changed'], ], + 'ramActions' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"LogProject\\": \\"hdmonitor-cn-shenzhen-1658206966225390\\",\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B457\\",\\n \\"LogStore\\": \\"hdmonitor\\",\\n \\"Success\\": \\"true\\",\\n \\"InstanceId\\": \\"eip-wz9fi6qboho9fwgx7****\\",\\n \\"InstanceType\\": \\"EIP\\"\\n}","errorExample":""},{"type":"xml","example":"\\n54B48E3D-DF70-471B-AA93-08E683A1B457\\nhdmonitor\\neip-wz9fi6qboho9fwgx7****\\nEIP\\nhdmonitor-cn-shenzhen-1658206966225390\\ntrue\\n","errorExample":""}]', + ], + 'DescribeIPv6TranslatorAclListAttributes' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'update', - ], + 'operationType' => 'read', + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the Internet Shared Bandwidth instance. You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The region of the ACL.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou'], ], [ - 'name' => 'BandwidthPackageId', + 'name' => 'AclId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the Internet Shared Bandwidth instance.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cbwp-bp13d0m4e2qv8xxxxxxxx', - ], + 'schema' => ['description' => 'The ACL ID.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'ipv6transacl-bp1de2****'], ], [ - 'name' => 'EipId', + 'name' => 'PageNumber', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the EIP that is associated with the Internet Shared Bandwidth instance.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'eip-2zewysoansu0sxxxxxxxx', - ], + 'schema' => ['description' => 'The number of the page to return. Default value: **1**.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1', 'default' => '1'], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => ['description' => 'The number of entries to return on each page. Maximum value: **50**. Default value: **10**.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '10', 'default' => '10'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => 'The response parameters.'."\n", + 'description' => 'The returned data.'."\n", 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '63D187BF-A30A-4DD6-B68D-FF182C96D8A2', + 'AclId' => ['description' => 'The ACL ID.'."\n", 'type' => 'string', 'example' => 'ipv6transacl-bp1de2****'], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B45'], + 'PageNumber' => ['description' => 'The page number of the returned page.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'PageSize' => ['description' => 'The number of entries returned per page.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '10'], + 'TotalCount' => ['description' => 'The total number of entries returned.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '20'], + 'AclName' => ['description' => 'The name of the ACL.'."\n", 'type' => 'string', 'example' => 'acl1'], + 'AclEntries' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'AclEntry' => [ + 'description' => 'The ACLs.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The details of the ACL.'."\n", + 'type' => 'object', + 'properties' => [ + 'AclEntryComment' => ['description' => 'The remarks of the ACL entry.'."\n", 'type' => 'string', 'example' => 'client IP'], + 'AclEntryId' => ['description' => 'The ID of the ACL entry.'."\n", 'type' => 'string', 'example' => 'ipv6transaclentry-bp105jrs****'], + 'AclEntryIp' => ['description' => 'The IP address specified in the ACL entry.'."\n", 'type' => 'string', 'example' => '12ab:0:0:XXXX::0102/128'], + ], + ], + ], + ], ], ], ], @@ -36854,455 +27739,278 @@ ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => '%s', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'InvalidEIPStatus.BizDisabled', - 'errorMessage' => 'The EIP has been locked.', - ], - [ - 'errorCode' => 'Forbidden.FinancialLocked', - 'errorMessage' => 'The ip business status is invalid.', - ], + ['errorCode' => 'InvalidIPv6TranslatorAclId.NotFound', 'errorMessage' => 'The specified ipv6 translator acl instance id does not exist.', 'description' => ''], ], - 404 => [ - [ - 'errorCode' => 'InvalidRegionId.NotFound', - 'errorMessage' => 'The specified RegionId does not exist in our records.', - ], - [ - 'errorCode' => '%s', - 'errorMessage' => '%s', - ], + 403 => [ + ['errorCode' => 'Forbbiden.SubUser', 'errorMessage' => 'User not authorized to operate on the specified resource as your account is created by another user.', 'description' => ''], + ['errorCode' => 'Forbidden', 'errorMessage' => 'User not authorized to operate on the specified resource.', 'description' => 'You do not have the permissions to manage the specified resource. Apply for the permissions and try again.'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"63D187BF-A30A-4DD6-B68D-FF182C96D8A2\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 63D187BF-A30A-4DD6-B68D-FF182C96D8A2\\n","errorExample":""}]', - 'title' => 'CancelCommonBandwidthPackageIpBandwidth', - 'summary' => 'Cancels the maximum bandwidth configured for an elastic IP address (EIP) that is associated with an Internet Shared Bandwidth instance.', - 'description' => 'Before you call this operation, take note of the following items:'."\n" - ."\n" - .'* After this operation is performed, the maximum bandwidth of the EIP equals that of the Internet Shared Bandwidth instance.'."\n" - .'* You cannot repeatedly call the **CancelCommonBandwidthPackageIpBandwidth** operation within a specific time period.'."\n", + 'responseDemo' => '[{"type":"json","example":"{\\n \\"AclId\\": \\"ipv6transacl-bp1de2****\\",\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B45\\",\\n \\"PageNumber\\": 1,\\n \\"PageSize\\": 10,\\n \\"TotalCount\\": 20,\\n \\"AclName\\": \\"acl1\\",\\n \\"AclEntries\\": {\\n \\"AclEntry\\": [\\n {\\n \\"AclEntryComment\\": \\"client IP\\",\\n \\"AclEntryId\\": \\"ipv6transaclentry-bp105jrs****\\",\\n \\"AclEntryIp\\": \\"12ab:0:0:XXXX::0102/128\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n ipv6transacl-bp1de2****\\n 54B48E3D-DF70-471B-AA93-08E683A1B45\\n 1\\n 10\\n 20\\n acl1\\n \\n client IP\\n ipv6transaclentry-bp105jrs****\\n 12ab:0:0:XXXX::0102/128\\n \\n","errorExample":""}]', + 'title' => 'DescribeIPv6TranslatorAclListAttributes', + 'summary' => 'Queries the details of an access control list (ACL), including the specified IP addresses and associated IPv6 mapping entries.', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [], ], - 'Describe95Traffic' => [ - 'summary' => 'Queries traffic data of a pay-by-enhanced-95th-percentile Internet Shared Bandwidth instance.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DescribeIPv6TranslatorAclLists' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'read', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'get', - ], + 'deprecated' => true, + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the resource.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The region of the ACL.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'ResourceType', + 'name' => 'AclId', 'in' => 'query', - 'schema' => [ - 'description' => 'The resource type. Set the value to cbwp, which specifies Internet Shared Bandwidth.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cbwp', - ], + 'schema' => ['description' => 'The ID of the ACL.'."\n", 'type' => 'string', 'required' => false, 'example' => 'ipv6transacl-bp1de2****', 'title' => ''], ], [ - 'name' => 'InstanceId', + 'name' => 'PageNumber', 'in' => 'query', - 'schema' => [ - 'description' => 'The resource ID.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cbwp-wz9j19xrwf78fvz7*****', - ], + 'schema' => ['description' => 'The number of the page to return. Default value: **1**.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1', 'default' => '1', 'title' => ''], ], [ - 'name' => 'Day', + 'name' => 'PageSize', 'in' => 'query', - 'schema' => [ - 'description' => 'The date in UTC+8. Format: year-month-day.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => '2022-10-22', - ], + 'schema' => ['description' => 'The number of entries to return on each page. Maximum value: **50**. Default value: **10**.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '10', 'default' => '10', 'title' => ''], + ], + [ + 'name' => 'AclName', + 'in' => 'query', + 'schema' => ['description' => 'The name of the ACL.'."\n", 'type' => 'string', 'required' => false, 'example' => 'acl1', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => '', + 'description' => 'The returned data.'."\n", 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '0ED8D006-F706-4D23-88ED-E11ED28DCAC0', - ], - 'Traffic95Summary' => [ - 'description' => 'The information returned.'."\n", + 'PageSize' => ['description' => 'The number of entries per page.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '10', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B45', 'title' => ''], + 'PageNumber' => ['description' => 'The page number.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''], + 'TotalCount' => ['description' => 'The total number of entries returned.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '20', 'title' => ''], + 'Ipv6TranslatorAcls' => [ 'type' => 'object', + 'itemNode' => true, 'properties' => [ - 'InternetChargeType' => [ - 'description' => 'The metering method of the Internet Shared Bandwidth instance. Valid values:'."\n" - ."\n" - .'* PayBy95: pay-by-enhanced-95th-percentile'."\n" - .'* PayByBandwidth: pay-by-bandwidth'."\n" - .'* PayByDominantTraffic: pay-by-dominant-traffic'."\n", - 'type' => 'string', - 'example' => 'PayBy95', - ], - 'InstanceId' => [ - 'description' => 'The resource ID.'."\n", - 'type' => 'string', - 'example' => 'cbwp-wz9j19xrwf78fvz7*****'."\n", - ], - 'Bandwidth' => [ - 'description' => 'The peak bandwidth of the Internet Shared Bandwidth instance. Unit: Mbit/s.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '20000.0', - ], - 'FifthPeakBandwidth' => [ - 'description' => 'The daily peak bandwidth. Unit: Mbit/s.'."\n" - .' For more information, see [Daily peak bandwidth](~~89729~~).', - 'type' => 'string', - 'example' => '1064.244837773641', - ], - 'MinimumConsumeBandwidth' => [ - 'description' => 'The guaranteed bandwidth of the Internet Shared Bandwidth instance. Unit: Mbit/s.'."\n", - 'type' => 'string', - 'example' => '0.0', - ], - 'Traffic95DetailList' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'Traffic95Detail' => [ - 'description' => 'The average bandwidth every 5 minutes in the inbound and outbound directions.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'Time' => [ - 'description' => 'The statistical time. The value is a string.'."\n", - 'type' => 'string', - 'example' => '2024-01-01T00:00:00Z', - ], - 'BillBandwidth' => [ - 'description' => 'The sampled bandwidth value, which is the larger bandwidth value in the inbound and outbound directions within a sampling interval. Unit: Mbit/s.'."\n", - 'type' => 'string', - 'example' => '118.5090322113037', - ], - 'OutBandwidth' => [ - 'description' => 'The outbound bandwidth. Unit: Mbit/s.'."\n", - 'type' => 'string', - 'example' => '96.41217480977376', - ], - 'InBandwidth' => [ - 'description' => 'The inbound bandwidth. Unit: Mbit/s.'."\n", - 'type' => 'string', - 'example' => '118.5090322113037', - ], - ], - ], + 'IPv6TranslatorAcl' => [ + 'description' => 'The list of network ACLs.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The returned data.'."\n", + 'type' => 'object', + 'properties' => [ + 'AclName' => ['description' => 'The ACL name.'."\n", 'type' => 'string', 'example' => 'acl1', 'title' => ''], + 'AclId' => ['description' => 'The ACL ID.'."\n", 'type' => 'string', 'example' => 'ipv6transacl-bp1de2****', 'title' => ''], ], + 'title' => '', + 'example' => '', ], + 'title' => '', + 'example' => '', ], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidInstance.NotFound', - 'errorMessage' => 'The specified Instance does not exist in the specified region.', - ], - [ - 'errorCode' => 'IllegalParam.Day', - 'errorMessage' => 'The specified parameter day is illegal.', - ], - [ - 'errorCode' => 'IllegalParam.ResourceType', - 'errorMessage' => 'Invalid Resource Type value.', - ], - [ - 'errorCode' => 'OperationDenied.QueryCdt95Instance', - 'errorMessage' => 'The operation is not allowed because of QueryCdt95Instance.', - ], + ['errorCode' => 'InvalidName', 'errorMessage' => 'The specified value of name is not supported.', 'description' => ''], ], - 404 => [ - [ - 'errorCode' => 'InvalidRegionId.NotFound', - 'errorMessage' => 'The specified RegionId does not exist in our records.', - ], + 403 => [ + ['errorCode' => 'Forbbiden.SubUser', 'errorMessage' => 'User not authorized to operate on the specified resource as your account is created by another user.', 'description' => ''], + ['errorCode' => 'Forbidden', 'errorMessage' => 'User not authorized to operate on the specified resource.', 'description' => 'You do not have the permissions to manage the specified resource. Apply for the permissions and try again.'], ], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"0ED8D006-F706-4D23-88ED-E11ED28DCAC0\\",\\n \\"Traffic95Summary\\": {\\n \\"InternetChargeType\\": \\"PayBy95\\",\\n \\"InstanceId\\": \\"cbwp-wz9j19xrwf78fvz7*****\\\\n\\",\\n \\"Bandwidth\\": 20000,\\n \\"FifthPeakBandwidth\\": \\"1064.244837773641\\",\\n \\"MinimumConsumeBandwidth\\": \\"0.0\\",\\n \\"Traffic95DetailList\\": {\\n \\"Traffic95Detail\\": [\\n {\\n \\"Time\\": \\"2024-01-01T00:00:00Z\\",\\n \\"BillBandwidth\\": \\"118.5090322113037\\",\\n \\"OutBandwidth\\": \\"96.41217480977376\\",\\n \\"InBandwidth\\": \\"118.5090322113037\\"\\n }\\n ]\\n }\\n }\\n}","type":"json"}]', - 'title' => 'Describe95Traffic', - ], - 'CreateVirtualPhysicalConnection' => [ - 'summary' => 'Creates a hosted connection over Express Connect circuit.', - 'methods' => [ - 'get', - 'post', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"PageSize\\": 10,\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B45\\",\\n \\"PageNumber\\": 1,\\n \\"TotalCount\\": 20,\\n \\"Ipv6TranslatorAcls\\": {\\n \\"IPv6TranslatorAcl\\": [\\n {\\n \\"AclName\\": \\"acl1\\",\\n \\"AclId\\": \\"ipv6transacl-bp1de2****\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 10\\n 54B48E3D-DF70-471B-AA93-08E683A1B45\\n 1\\n 20\\n \\n acl1\\n ipv6transacl-bp1de2****\\n \\n","errorExample":""}]', + 'title' => 'DescribeIPv6TranslatorAclLists', + 'summary' => 'Queries access control lists (ACLs).', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'vpc:DescribeIPv6TranslatorAclLists', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], ], - 'schemes' => [ - 'http', - 'https', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '3000', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DescribeIPv6TranslatorAclLists'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], ], + ], + 'DescribeIPv6TranslatorEntries' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'create', - 'riskType' => 'none', - 'chargeType' => 'free', - 'autoTest' => true, - 'tenantRelevance' => 'tenant', - ], + 'operationType' => 'readAndWrite', + 'deprecated' => true, + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ - 'name' => 'OrderMode', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'title' => 'vpconn的支付方', - 'description' => 'The payer for the hosted connection. Valid values:'."\n" - ."\n" - .'* **PayByPhysicalConnectionOwner**: The partner pays for the hosted connection.'."\n" - .'* **PayByVirtualPhysicalConnectionOwner**: The tenant pays for the hosted connection.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'PayByVirtualPhysicalConnectionOwner', - 'enum' => [ - 'PayByVirtualPhysicalConnectionOwner', - 'PayByPhysicalConnectionOwner', - ], - ], + 'schema' => ['description' => 'The region of the IPv6 Translation Service instance. You can call the **DescribeRegions** operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou'], ], [ - 'name' => 'VlanId', + 'name' => 'Ipv6TranslatorId', 'in' => 'query', - 'schema' => [ - 'title' => 'vpconn的VlanID', - 'description' => 'The virtual local area network (VLAN) ID of the hosted connection. Valid values: **0** to **2999**.'."\n" - ."\n" - .'* If the VLAN ID is set to **0**, it indicates that the switch port of the virtual border router (VBR) is a Layer 3 router interface instead of a VLAN interface. When a Layer 3 router interface is used, each Express Connect circuit corresponds to a VBR.'."\n" - .'* If the VLAN ID is set to a value from **1** to **2999**, the switch port of the VBR is a Layer 3 VLAN subinterface. When a Layer 3 VLAN subinterface is used, each VLAN ID corresponds to one VBR. In this case, the Express Connect circuit with which the VBR is associated can be used to connect to virtual private clouds (VPCs) that belong to different Alibaba Cloud accounts. VBRs in different VLANs are isolated from each other at Layer 2.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'example' => '4', - ], + 'schema' => ['description' => 'The ID of the IPv6 Translation Service instance.'."\n", 'type' => 'string', 'required' => false, 'docRequired' => true, 'example' => 'ipv6trans-bp1858ysxx****'], ], [ - 'name' => 'Spec', + 'name' => 'Ipv6TranslatorEntryId', 'in' => 'query', - 'schema' => [ - 'title' => 'vpconn规格', - 'description' => 'The bandwidth value of the hosted connection.'."\n" - ."\n" - .'Valid values: **50M**, **100M**, **200M**, **300M**, **400M**, **500M**, **1G**, **2G**, **5G**, **8G**, and **10G**.'."\n" - ."\n" - .'> **2G**, **5G**, **8G**, and **10G** are unavailable by default. If you want to use these bandwidth values, contact your account manager.'."\n" - ."\n" - .'**M** indicates Mbit/s and **G** indicates Gbit/s.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => '50M', - ], + 'schema' => ['description' => 'The ID of the IPv6 mapping entry.'."\n" + ."\n" + .'> If **Ipv6TranslatorId** and **Ipv6TranslatorEntryId** are empty, information about all IPv6 mapping entries is returned. If only **Ipv6TranslatorEntryId** is empty, information about the IPv6 mapping entries of the current IPv6 Translation Service instance is returned.'."\n", 'type' => 'string', 'required' => false, 'example' => 'ipv6transentry-bp1g8bhrde****'], ], [ - 'name' => 'VpconnAliUid', + 'name' => 'EntryName', 'in' => 'query', - 'schema' => [ - 'title' => 'Vpconn拥有者', - 'description' => 'The Alibaba Cloud account ID of the tenant.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'example' => '1210123456123456', - ], + 'schema' => ['description' => 'The name of the IPv6 mapping entry.'."\n", 'type' => 'string', 'required' => false, 'example' => 'entryname'], ], [ - 'name' => 'PhysicalConnectionId', + 'name' => 'AllocateIpv6Addr', 'in' => 'query', - 'schema' => [ - 'title' => 'Vpconn的主Pconn', - 'description' => 'The ID of the Express Connect circuit over which the hosted connection is created.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'pc-bp1ciz7ekd2grn1as****', - ], + 'schema' => ['description' => 'The IPv6 address allocated to the IPv6 Translation Service instance.'."\n", 'type' => 'string', 'required' => false, 'example' => '2400:3200:1600::XX'], ], [ - 'name' => 'Name', + 'name' => 'AllocateIpv6Port', 'in' => 'query', - 'schema' => [ - 'title' => 'Vpconn的name', - 'description' => 'The name of the hosted connection.'."\n" - ."\n" - .'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 but cannot start with `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'nametest', - ], + 'schema' => ['description' => 'The port used by the IPv6 address allocated to the IPv6 Translation Service instance.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '80'], ], [ - 'name' => 'Token', + 'name' => 'BackendIpv4Addr', 'in' => 'query', - 'schema' => [ - 'title' => '幂等Token', - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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.'."\n" - ."\n" - .'> 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.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'CBCE910E-D396-4944-8****', - ], + 'schema' => ['description' => 'The public IPv4 address that needs to provide IPv6 services.'."\n", 'type' => 'string', 'required' => false, 'example' => '47.99.XX.XX'], ], [ - 'name' => 'DryRun', + 'name' => 'BackendIpv4Port', 'in' => 'query', - 'schema' => [ - 'title' => 'DryRun', - 'description' => 'Specifies whether to perform a dry run, without performing the actual request. Default value: 45104. Valid values:'."\n" - ."\n" - .'* **true**: performs a dry run. The system checks the request for potential issues, including required parameters, request syntax, and instance status. If the request fails the dry run, an error code is returned. If the request passes the dry run, `DRYRUN.SUCCESS` is returned.'."\n" - .'* **false**: 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.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['description' => 'The port used by the public IPv4 address that needs to provide IPv6 services.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '80'], ], [ - 'name' => 'Description', + 'name' => 'TransProtocol', 'in' => 'query', - 'schema' => [ - 'title' => 'Vpconn的description', - 'description' => 'The description of the hosted connection.'."\n" - ."\n" - .'The description must be 2 to 256 characters in length. The description must start with a letter but cannot start with `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'desctest', - ], + 'schema' => ['description' => 'The protocol used by the data to be forwarded.'."\n", 'type' => 'string', 'required' => false, 'example' => 'tcp'], ], [ - 'name' => 'RegionId', + 'name' => 'AclStatus', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the hosted connection.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to obtain the region ID.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'Specifies whether to enable access control lists (ACLs). Valid values:'."\n" + ."\n" + .'* **on**'."\n" + .'* **off**'."\n", 'type' => 'string', 'required' => false, 'example' => 'off'], ], [ - 'name' => 'ResourceGroupId', + 'name' => 'AclType', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the resource group to which the hosted connection belongs.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'rg-aekzjty2chzuqky', - ], + 'schema' => ['description' => 'The ACL type. Valid values:'."\n" + ."\n" + .'* **white**: a whitelist. IPv6 addresses in the ACL are allowed to access backend services.'."\n" + .'* **black**: a blacklist. IPv6 addresses in the ACL are not allowed to access backend services.'."\n", 'type' => 'string', 'required' => false, 'example' => 'white'], ], [ - 'name' => 'Tag', + 'name' => 'AclId', 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => 'The tags.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => 'The tag key. You can specify at most 20 tag keys. The tag key cannot be an empty string.'."\n" - ."\n" - .'The key can be up to 64 characters in length and can contain letters, digits, periods (.), underscores (\\_), and hyphens (-). The key must start with a letter but cannot start with `aliyun` or `acs:`. The key cannot contain `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'FinanceDept', - ], - 'Value' => [ - 'description' => 'The tag value. You can specify at most 20 tag values. The tag value can be an empty string.'."\n" - ."\n" - .'The value can be up to 128 characters in length and can contain letters, digits, periods (.), underscores (\\_), and hyphens (-). The value must start with a letter but cannot start with `aliyun` or `acs:`. The value cannot contain `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'FinanceJoshua', - ], - ], - 'required' => false, - ], - 'required' => false, - 'maxItems' => 20, - ], + 'schema' => ['description' => 'The ID of the network ACL.'."\n", 'type' => 'string', 'required' => false, 'example' => 'ipv6transacl-bp1de2****'], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => ['description' => 'The number of the page to return. Default value: 1.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1', 'default' => '1'], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => ['description' => 'The number of entries to return on each page. Maximum value: **50**. Default value: **10**.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '10', 'default' => '10'], + ], + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'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.'."\n", 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-426655440000'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'The request ID.'."\n", + 'description' => 'The returned data.'."\n", 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => 'CD14EA74-E9C3-59A9-942A-DFEC7E12818D', - ], - 'VirtualPhysicalConnection' => [ - 'title' => 'Vpconn的实例ID', - 'description' => 'The ID of the hosted connection.'."\n", - 'type' => 'string', - 'example' => 'pc-bp1mrgfbtmc9brre7****', + 'PageSize' => ['description' => 'The number of entries returned per page.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '10'], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B45'], + 'PageNumber' => ['description' => 'The page number of the returned page.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'TotalCount' => ['description' => 'The number of entries returned.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'Ipv6TranslatorEntries' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Ipv6TranslatorEntry' => [ + 'description' => 'The IPv6 mapping entries that are queried.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The details of the IPv6 mapping entry.'."\n", + 'type' => 'object', + 'properties' => [ + 'AclType' => ['description' => 'The ACL type.'."\n" + ."\n" + .'* **white**: a whitelist. IPv6 addresses in the ACL are allowed to access backend services.'."\n" + .'* **black**: a blacklist. IPv6 addresses in the ACL are not allowed to access backend services.'."\n", 'type' => 'string', 'example' => 'white'], + 'EntryStatus' => ['description' => 'The status of the IPv6 mapping entry.'."\n", 'type' => 'string', 'example' => 'active'], + 'TransProtocol' => ['description' => 'The protocol.'."\n", 'type' => 'string', 'example' => 'tcp'], + 'Ipv6TranslatorId' => ['description' => 'The ID of the IPv6 Translation Service instance to which the IPv6 mapping entry belongs.'."\n", 'type' => 'string', 'example' => 'ipv6trans-bp1858ys****'], + 'EntryDescription' => ['description' => 'The description of the IPv6 mapping entry.'."\n", 'type' => 'string', 'example' => 'description'], + 'Ipv6TranslatorEntryId' => ['description' => 'The ID of the IPv6 mapping entry.'."\n", 'type' => 'string', 'example' => 'ipv6transentry-bp1g8bhrde****'], + 'AllocateIpv6Port' => ['description' => 'The port used by the IPv6 address allocated to the IPv6 Translation Service instance.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '80'], + 'BackendIpv4Addr' => ['description' => 'The public IP address of the backend IPv4 server.'."\n", 'type' => 'string', 'example' => '47.99.XX.XX'], + 'BackendIpv4Port' => ['description' => 'The public IPv4 port used by the IPv4 server that needs to provide IPv6 access.'."\n", 'type' => 'string', 'example' => '80'], + 'RegionId' => ['description' => 'The region of the IPv6 Translation Service instance.'."\n", 'type' => 'string', 'example' => 'cn-hangzhou'], + 'EntryBandwidth' => ['description' => 'The bandwidth specified in the IPv6 mapping entry.'."\n", 'type' => 'string', 'example' => '1'], + 'AclId' => ['description' => 'The ID of the associated ACL.'."\n", 'type' => 'string', 'example' => 'ipv6transacl-bp1de2****'], + 'EntryName' => ['description' => 'The name of the IPv6 mapping entry.'."\n", 'type' => 'string', 'example' => 'name'], + 'AclStatus' => ['description' => 'Indicates whether ACLs are enabled.'."\n", 'type' => 'string', 'example' => 'on'], + 'AllocateIpv6Addr' => ['description' => 'The IPv6 address allocated to the IPv6 Translation Service instance.'."\n", 'type' => 'string', 'example' => '2400:3200:1600::XX'], + ], + ], + ], + ], ], ], ], @@ -37310,251 +28018,165 @@ ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'OperationFailed.VbrBindedPconn', - 'errorMessage' => 'The operation is failed because of VbrBindedPconn.', - ], - [ - 'errorCode' => 'IllegalParam.Bandwidth', - 'errorMessage' => 'The param of Bandwidth [%s] is illegal.', - ], - [ - 'errorCode' => 'ResourceNotFound.PhysicalConnectionId', - 'errorMessage' => 'The specified PhysicalConnectionId [%s] is not found.', - ], - [ - 'errorCode' => 'OperationFailed.VPconnCreated', - 'errorMessage' => 'The operation is failed because of VPconnCreated.', - ], - [ - 'errorCode' => 'MissingParam.Spec', - 'errorMessage' => 'The param of Spec is missing.', - ], - [ - 'errorCode' => 'IllegalParam.Spec', - 'errorMessage' => 'The param of Spec is illegal.', - ], - [ - 'errorCode' => 'IllegalParam.VlanId', - 'errorMessage' => 'The param of VlanId is illegal.', - ], - [ - 'errorCode' => 'VLAN_ID_HAS_BEEN_USED_IN_PHYSICAL_CONNECTION', - 'errorMessage' => 'vlan id has been used in physical connection', - ], - [ - 'errorCode' => 'InvalidPhysicalConnectionId.NotFound', - 'errorMessage' => 'The specified PhysicalConnectionId is not found.', - ], - [ - 'errorCode' => 'MissingParameter', - 'errorMessage' => 'The input parameter \'PhysicalConnectionId\' that is mandatory for processing this request is not supplied.', - ], - [ - 'errorCode' => 'InvalidPhysicalConnectionId.NotEnabled', - 'errorMessage' => 'The specified PhysicalConnectionId is not in Enabled state.', - ], - [ - 'errorCode' => 'OperationFailed.PconnAllocateVlan0', - 'errorMessage' => 'The operation is failed because of PconnAllocatedResource.', - ], - [ - 'errorCode' => 'InvalidVlanId.Malformed', - 'errorMessage' => 'The specified VlanId is not valid.', - ], - [ - 'errorCode' => 'InvalidName.Malformed', - 'errorMessage' => 'The specified Name is not valid.', - ], - [ - 'errorCode' => 'ResourceNotEnough.Bandwidth', - 'errorMessage' => 'The specified resource of Bandwidth is not enough.', - ], - [ - 'errorCode' => 'IllegalParam.VpconnAliUid', - 'errorMessage' => 'The specified AliUid of Vpconn is illegal.', - ], - [ - 'errorCode' => 'IllegalParam.OrderMode', - 'errorMessage' => 'The param of OrderMode is illegal.', - ], - [ - 'errorCode' => 'Forbidden.VpconnAliUid', - 'errorMessage' => 'Vpconn UID is forbidden to belong to a RAM account or partner account.', - ], - [ - 'errorCode' => 'QuotaExceeded.VPCONN', - 'errorMessage' => 'The quota of VPCONN_COUNT_PER_PCONN is exceeded', - ], - [ - 'errorCode' => 'OperationDenied.CreateVpconn', - 'errorMessage' => 'You are not allowed to create virtual physical connection. Please contact your CBM.', - ], - [ - 'errorCode' => 'InvalidDescription.Malformed', - 'errorMessage' => 'The specified Description is not valid.', - ], - [ - 'errorCode' => 'EcAssociatedQoSPconnNotAllowCreateVpconn', - 'errorMessage' => 'The specified Pconn associated with Qos is not allowed to create Vpconn.Please contact the business manager.', - ], - [ - 'errorCode' => 'IllegalParam.ResourceGroupId', - 'errorMessage' => 'Invalid ResourceGroupld value.', - ], - [ - 'errorCode' => 'Forbidden.VpconnCrossBid', - 'errorMessage' => 'Not allow to create across bid virtual physical connection.', - ], - [ - 'errorCode' => 'IncorrectStatus.PhysicalConnection', - 'errorMessage' => 'Invalid physical connection status.', - ], - [ - 'errorCode' => 'OperationDenied.PhysicalConnectionNotSupportMPBGPAndMPBGP-v6', - 'errorMessage' => 'The operation is not allowed because this physical connection not support MPBGP and MPBGP-v6.', - ], + ['errorCode' => 'InvalidName', 'errorMessage' => 'The specified value of name not supported.', 'description' => ''], + ['errorCode' => 'IPv6TranslatorEntry.InvalidPort', 'errorMessage' => 'The specified port is invalid.', 'description' => ''], + ['errorCode' => 'IPv6TranslatorEntry.InvalidProtocol', 'errorMessage' => 'The specified transProtocol is invalid.', 'description' => ''], + ['errorCode' => 'InvalidIpAddress.WrongFormat', 'errorMessage' => 'The specified ip address is invalid.', 'description' => ''], + ['errorCode' => 'IPv6TranslatorEntry.InvalidAclStatus', 'errorMessage' => 'The specified acl status is invalid.', 'description' => ''], + ['errorCode' => 'IPv6TranslatorEntry.InvalidAclType', 'errorMessage' => 'The specified acl type is invalid.', 'description' => ''], + ], + 403 => [ + ['errorCode' => 'Forbbiden.SubUser', 'errorMessage' => 'User not authorized to operate on the specified resource as your account is created by another user.', 'description' => ''], + ['errorCode' => 'Forbidden', 'errorMessage' => 'User not authorized to operate on the specified resource.', 'description' => 'You do not have the permissions to manage the specified resource. Apply for the permissions and try again.'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CD14EA74-E9C3-59A9-942A-DFEC7E12818D\\",\\n \\"VirtualPhysicalConnection\\": \\"pc-bp1mrgfbtmc9brre7****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n CD14EA74-E9C3-59A9-942A-DFEC7E12818D\\n pc-bp1mrgfbtmc9brre7****\\n","errorExample":""}]', - 'title' => 'CreateVirtualPhysicalConnection', - 'description' => '# [](#)Description'."\n" - ."\n" - .'Before you call this operation, we recommend that you learn about the workflow for creating a hosted connection and the environment requirements. For more information, see [Overview of hosted connections](~~146571~~) and [Operations performed by Express Connect partners](~~155987~~).'."\n", + 'responseDemo' => '[{"type":"json","example":"{\\n \\"PageSize\\": 10,\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B45\\",\\n \\"PageNumber\\": 1,\\n \\"TotalCount\\": 1,\\n \\"Ipv6TranslatorEntries\\": {\\n \\"Ipv6TranslatorEntry\\": [\\n {\\n \\"AclType\\": \\"white\\",\\n \\"EntryStatus\\": \\"active\\",\\n \\"TransProtocol\\": \\"tcp\\",\\n \\"Ipv6TranslatorId\\": \\"ipv6trans-bp1858ys****\\",\\n \\"EntryDescription\\": \\"description\\",\\n \\"Ipv6TranslatorEntryId\\": \\"ipv6transentry-bp1g8bhrde****\\",\\n \\"AllocateIpv6Port\\": 80,\\n \\"BackendIpv4Addr\\": \\"47.99.XX.XX\\",\\n \\"BackendIpv4Port\\": \\"80\\",\\n \\"RegionId\\": \\"cn-hangzhou\\",\\n \\"EntryBandwidth\\": \\"1\\",\\n \\"AclId\\": \\"ipv6transacl-bp1de2****\\",\\n \\"EntryName\\": \\"name\\",\\n \\"AclStatus\\": \\"on\\",\\n \\"AllocateIpv6Addr\\": \\"2400:3200:1600::XX\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 10\\n 54B48E3D-DF70-471B-AA93-08E683A1B45\\n 1\\n 1\\n \\n white\\n active\\n tcp\\n ipv6trans-bp1858ys****\\n description\\n ipv6transentry-bp1g8bhrde****\\n 80\\n 47.99.XX.XX\\n 80\\n cn-hangzhou\\n 1\\n ipv6transacl-bp1de2****\\n name\\n on\\n 2400:3200:1600::XX\\n \\n","errorExample":""}]', + 'title' => 'DescribeIPv6TranslatorEntries', + 'summary' => 'Queries IPv6 mapping entries.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [], ], - 'UpdateVirtualPhysicalConnection' => [ - 'summary' => 'Changes the virtual local area network (VLAN) ID of a hosted connection over Express Connect circuit.', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DescribeIPv6Translators' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'update', - 'riskType' => 'none', - 'chargeType' => 'free', - ], + 'operationType' => 'read', + 'deprecated' => true, + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ - 'name' => 'VlanId', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'title' => 'vpconn的VlanID', - 'description' => 'The VLAN ID of the hosted connection over Express Connect circuit. Valid values: **0** to **2999**.'."\n" - ."\n" - .'* If the VLAN ID is set to **0**, it indicates that the switch port of the virtual border router (VBR) is a Layer 3 router interface instead of a VLAN interface. When a Layer 3 router interface is used, each Express Connect circuit corresponds to a VBR.'."\n" - .'* If the VLAN ID is set to a value from **1** to **2999**, the switch port of the VBR is a Layer 3 VLAN subinterface. When a Layer 3 VLAN subinterface is used, each VLAN ID corresponds to one VBR. In this case, the Express Connect circuit with which the VBR is associated can be used to connect to virtual private clouds (VPCs) that belong to different Alibaba Cloud accounts. VBRs in different VLANs are isolated from each other at Layer 2.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'example' => '1', - ], + 'schema' => ['description' => 'The region of the IPv6 Translation Service instance. You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'example' => 'cn-hangzhou'], ], [ - 'name' => 'InstanceId', + 'name' => 'Ipv6TranslatorId', 'in' => 'query', - 'schema' => [ - 'title' => 'Vpconn的实例ID', - 'description' => 'The ID of the hosted connection over Express Connect circuit.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'pc-bp1mrgfbtmc9brre7****', - ], + 'schema' => ['description' => 'The ID of the IPv6 Translation Service instance.'."\n", 'type' => 'string', 'required' => false, 'example' => 'ipv6trans-bp1858ys****'], ], [ - 'name' => 'Token', + 'name' => 'Name', 'in' => 'query', - 'schema' => [ - 'title' => '幂等Token', - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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.'."\n" - ."\n" - .'> 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.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'CBCE910E-D396-4944-8****', - ], + 'schema' => ['description' => 'The name of the IPv6 Translation Service instance.'."\n", 'type' => 'string', 'required' => false, 'example' => 'ipv6_1'], ], [ - 'name' => 'DryRun', + 'name' => 'Spec', 'in' => 'query', - 'schema' => [ - 'title' => 'DryRun', - 'description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values: Valid values:'."\n" - ."\n" - .'* **true**: performs only a dry run. The system checks the request for potential issues, including required parameters, request syntax, and instance status. If the request fails to pass the dry run, an error message is returned. If the request passes the dry run, the system returns the ID of the request.'."\n" - .'* **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.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['description' => 'The specification of the IPv6 Translation Service instance. Set the value to **small**.'."\n", 'type' => 'string', 'required' => false, 'example' => 'small'], ], [ - 'name' => 'ExpectSpec', + 'name' => 'Status', 'in' => 'query', - 'schema' => [ - 'title' => 'ExpectSpec', - 'description' => 'The estimated bandwidth value of the hosted connection. The estimated bandwidth value takes effect only after the payment is completed.'."\n" - ."\n" - .'Valid values: **50M**, **100M**, **200M**, **300M**, **400M**, **500M**, **1G**, **2G**, **5G**, **8G**, and **10G**.'."\n" - ."\n" - .'> **2G**, **5G**, **8G**, and **10G** are unavailable by default. If you want to use these bandwidth values, contact your account manager.'."\n" - ."\n" - .'**M** indicates Mbit/s and **G** indicates Gbit/s.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '50M', - ], + 'schema' => ['description' => 'The status of the IPv6 Translation Service instance. Valid values:'."\n" + ."\n" + .'* **init**'."\n" + .'* **provisioning**'."\n" + .'* **active**'."\n" + .'* **updating**'."\n" + .'* **upgrading**'."\n" + .'* **deleting**'."\n" + .'* **deleted**'."\n", 'type' => 'string', 'required' => false, 'example' => 'active'], ], [ - 'name' => 'RegionId', + 'name' => 'AllocateIpv6Addr', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the hosted connection.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to obtain the region ID.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The IPv6 address allocated to the IPv6 Translation Service instance.'."\n", 'type' => 'string', 'required' => false, 'example' => '2400:3200:1600::XXXX'], + ], + [ + 'name' => 'AllocateIpv4Addr', + 'in' => 'query', + 'schema' => ['description' => 'The IPv4 address allocated to the IPv6 Translation Service instance.'."\n", 'type' => 'string', 'required' => false, 'example' => '47.99.XX.XX'], + ], + [ + 'name' => 'PayType', + 'in' => 'query', + 'schema' => ['description' => 'The billing method of the IPv6 Translation Service instance. Valid values:'."\n" + ."\n" + .'* **Prepay**: subscription'."\n" + .'* **Postpay**: pay-as-you-go'."\n", 'type' => 'string', 'required' => false, 'example' => 'Prepay'], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => ['description' => 'The number of the page to return. Default value: **1**.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1', 'default' => '1'], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => ['description' => 'The number of entries to return on each page. Maximum value: **50**. Default value: **10**.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '10', 'default' => '10'], + ], + [ + 'name' => 'BusinessStatus', + 'in' => 'query', + 'schema' => ['description' => 'The business status of the IPv6 Translation Service instance. Valid values:'."\n" + ."\n" + .'* **Normal**'."\n" + .'* **FinancialLocked**'."\n", 'type' => 'string', 'required' => false, 'example' => 'Normal'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'The response parameters.'."\n", + 'description' => 'The returned data.'."\n", 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '7035627E-1C1D-5BC7-A830-F897A35912D1', - ], - 'Success' => [ - 'title' => '是否修改成功', - 'description' => 'Indicates whether the VLAN ID of the hosted connection is changed. Valid values:'."\n" - ."\n" - .'* **true**'."\n" - .'* **false**'."\n", - 'type' => 'string', - 'example' => 'true', + 'PageSize' => ['description' => 'The number of entries returned per page.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '10'], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B45'], + 'PageNumber' => ['description' => 'The page number of the returned page.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'TotalCount' => ['description' => 'The number of returned entries.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'Ipv6Translators' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Ipv6Translator' => [ + 'description' => 'The list of IPv6 Translation Service instances.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The details of the IPv6 Translation Service instance.'."\n", + 'type' => 'object', + 'properties' => [ + 'Status' => ['description' => 'The status of the IPv6 Translation Service instance.'."\n", 'type' => 'string', 'example' => 'active'], + 'Spec' => ['description' => 'The specification of the IPv6 Translation Service instance.'."\n", 'type' => 'string', 'example' => 'small'], + 'CreateTime' => ['description' => 'The timestamp when the IPv6 Translation Service instance was created.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '1537151540000'], + 'PayType' => ['description' => 'The billing method of the IPv6 Translation Service instance.'."\n" + ."\n" + .'* **Prepay**: subscription'."\n" + .'* **Postpay**: pay-as-you-go'."\n", 'type' => 'string', 'example' => 'Prepay'], + 'Ipv6TranslatorId' => ['description' => 'The ID of the IPv6 Translation Service instance.'."\n", 'type' => 'string', 'example' => 'ipv6trans-bp1858ys*****'], + 'AllocateIpv4Addr' => ['description' => 'The IPv4 address allocated to the IPv6 Translation Service instance.'."\n", 'type' => 'string', 'example' => '47.99.XX.XX'], + 'AvailableBandwidth' => ['description' => 'The bandwidth of the IPv6 Translation Service instance.'."\n", 'type' => 'string', 'example' => '1'], + 'RegionId' => ['description' => 'The region of the IPv6 Translation Service instance.'."\n", 'type' => 'string', 'example' => 'cn-hangzhou'], + 'EndTime' => ['description' => 'The timestamp when IPv6 Translation Service instance expires.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '1539792000000'], + 'Description' => ['description' => 'The description of the IPv6 Translation Service instance.'."\n", 'type' => 'string', 'example' => 'descriptionforinstance'], + 'Bandwidth' => ['description' => 'The bandwidth of the IPv6 Translation Service instance. Unit: Mbit/s.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'BusinessStatus' => ['description' => 'The business status of the IPv6 Translation Service instance. Valid values:'."\n" + ."\n" + .'* **Normal**'."\n" + .'* **FinancialLocked**'."\n", 'type' => 'string', 'example' => 'Normal'], + 'AllocateIpv6Addr' => ['description' => 'The IPv6 address allocated to the IPv6 Translation Service instance.'."\n", 'type' => 'string', 'example' => '2400:3200:1600::XXXX'], + 'Name' => ['description' => 'The name of the IPv6 Translation Service instance.'."\n", 'type' => 'string', 'example' => 'test'], + 'Ipv6TranslatorEntryIds' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Ipv6TranslatorEntryId' => [ + 'description' => 'The IDs of IPv6 mapping entries of the IPv6 Translation Service instance.'."\n", + 'type' => 'array', + 'items' => ['description' => 'The ID of the IPv6 mapping entry.'."\n", 'type' => 'string', 'example' => '["ipv6transentry-bp1kp5ixtm3001vmn****", "ipv6transentry-bp16dg87v006zwrd6****"]'], + ], + ], + ], + ], + ], + ], + ], ], ], ], @@ -37562,61 +28184,29 @@ ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'IllegalParam.VlanId', - 'errorMessage' => 'The param of VlanId is illegal.', - ], - [ - 'errorCode' => 'ResourceNotFound.PhysicalConnectionId', - 'errorMessage' => 'The specified PhysicalConnectionId [%s] is not found.', - ], - [ - 'errorCode' => 'ResourceNotEnough.Bandwidth', - 'errorMessage' => 'The specified resource of Bandwidth is not enough.', - ], - [ - 'errorCode' => 'IllegalParam.Bandwidth', - 'errorMessage' => 'The param of bandwidth is illegal.', - ], - [ - 'errorCode' => 'Forbidden.PhysicalConnection', - 'errorMessage' => 'Only parent physical connection account is allowed to modify the virtual physical connection.', - ], - [ - 'errorCode' => 'OperationFailed.PhysicalConnectionFinancialLocked', - 'errorMessage' => 'Update failed, the physical connection is financial locked.', - ], - [ - 'errorCode' => 'OperationFailed.PhysicalConnectionTerminated', - 'errorMessage' => 'Update failed, the physical connection is terminated.', - ], - [ - 'errorCode' => 'OperationDenied.CreateVpconn', - 'errorMessage' => 'You are not allowed to create virtual physical connection. Please contact your CBM.', - ], - [ - 'errorCode' => 'IncorrectStatus.VBR', - 'errorMessage' => 'The status of VBR is incorrect.', - ], - [ - 'errorCode' => 'IllegalParam.Spec', - 'errorMessage' => 'The param of Spec is illegal.', - ], + ['errorCode' => 'PayType.NotSupport', 'errorMessage' => 'The specified pay type is not support.', 'description' => ''], + ['errorCode' => 'BusinessStatus.NotSupport', 'errorMessage' => 'The specified business status is not supported.', 'description' => ''], + ['errorCode' => 'InvalidIpAddress.WrongFormat', 'errorMessage' => 'The specified ip address is invalid.', 'description' => ''], + ['errorCode' => 'Status.NotSupport', 'errorMessage' => 'The specified value of status is not supported.', 'description' => ''], + ['errorCode' => 'InvalidName', 'errorMessage' => 'The specified value of name is not supported.', 'description' => ''], + ], + 403 => [ + ['errorCode' => 'Forbbiden.SubUser', 'errorMessage' => 'User not authorized to operate on the specified resource as your account is created by another user.', 'description' => ''], + ['errorCode' => 'Forbidden', 'errorMessage' => 'User not authorized to operate on the specified resource.', 'description' => 'You do not have the permissions to manage the specified resource. Apply for the permissions and try again.'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"7035627E-1C1D-5BC7-A830-F897A35912D1\\",\\n \\"Success\\": \\"true\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 7035627E-1C1D-5BC7-A830-F897A35912D1\\n true\\n","errorExample":""}]', - 'title' => 'UpdateVirtualPhysicalConnection', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"PageSize\\": 10,\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B45\\",\\n \\"PageNumber\\": 1,\\n \\"TotalCount\\": 1,\\n \\"Ipv6Translators\\": {\\n \\"Ipv6Translator\\": [\\n {\\n \\"Status\\": \\"active\\",\\n \\"Spec\\": \\"small\\",\\n \\"CreateTime\\": 1537151540000,\\n \\"PayType\\": \\"Prepay\\",\\n \\"Ipv6TranslatorId\\": \\"ipv6trans-bp1858ys*****\\",\\n \\"AllocateIpv4Addr\\": \\"47.99.XX.XX\\",\\n \\"AvailableBandwidth\\": \\"1\\",\\n \\"RegionId\\": \\"cn-hangzhou\\",\\n \\"EndTime\\": 1539792000000,\\n \\"Description\\": \\"descriptionforinstance\\",\\n \\"Bandwidth\\": 1,\\n \\"BusinessStatus\\": \\"Normal\\",\\n \\"AllocateIpv6Addr\\": \\"2400:3200:1600::XXXX\\",\\n \\"Name\\": \\"test\\",\\n \\"Ipv6TranslatorEntryIds\\": {\\n \\"Ipv6TranslatorEntryId\\": [\\n \\"[\\\\\\"ipv6transentry-bp1kp5ixtm3001vmn****\\\\\\", \\\\\\"ipv6transentry-bp16dg87v006zwrd6****\\\\\\"]\\"\\n ]\\n }\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 10\\n 54B48E3D-DF70-471B-AA93-08E683A1B45\\n 1\\n 1\\n \\n active\\n small\\n 1537151540000\\n Prepay\\n ipv6trans-bp1858ys*****\\n 47.99.XX.XX\\n 1\\n cn-hangzhou\\n 1539792000000\\n descriptionforinstance\\n 1\\n Normal\\n 2400:3200:1600::XXXX\\n test\\n [\\"ipv6transentry-bp1kp5ixtm3001vmn****\\", \\"ipv6transentry-bp16dg87v006zwrd6****\\"]\\n \\n","errorExample":""}]', + 'title' => 'DescribeIPv6Translators', + 'summary' => 'Queries IPv6 Translation Service instances.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [], ], - 'ListVirtualPhysicalConnections' => [ - 'summary' => 'Queries hosted connections.', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DescribeIpv6Addresses' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -37628,1949 +28218,1557 @@ 'operationType' => 'list', 'riskType' => 'none', 'chargeType' => 'free', + 'abilityTreeCode' => '37998', + 'abilityTreeNodes' => ['FEATUREvpc3GHR3P'], ], 'parameters' => [ [ - 'name' => 'PhysicalConnectionId', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'title' => 'Vpconn的主Pconn', - 'description' => 'The ID of the Express Connect circuit over which the hosted connections are created.'."\n" - ."\n" - .'Express Connect circuits in this topic refer to Express Connect circuits over which hosted connections are created.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'pc-bp1ciz7ekd2grn1as****', - ], + 'schema' => ['description' => 'The ID of the region in which you want to query IPv6 addresses. You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-huhehaote'], ], [ - 'name' => 'VirtualPhysicalConnectionBusinessStatus', + 'name' => 'Ipv6AddressId', 'in' => 'query', - 'schema' => [ - 'title' => 'Vpconn的商业状态', - 'description' => 'The business status of the hosted connection. Valid values:'."\n" - ."\n" - .'* **Normal**'."\n" - .'* **FinancialLocked**'."\n" - .'* **SecurityLocked**'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'Normal', - ], + 'schema' => ['description' => 'The ID of the IPv6 address that you want to query. You can enter at most 20 IPv6 address IDs in each API request. Separate IPv6 address IDs with commas (,).'."\n", 'type' => 'string', 'required' => false, 'example' => 'ipv6-2zen5j4axcp5l5qyy****'], ], [ - 'name' => 'VirtualPhysicalConnectionIds', + 'name' => 'Ipv6Address', 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'title' => '根据Vpconn的ID列表过滤', - 'description' => 'The information about the hosted connection.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The ID of the hosted connection.'."\n" - ."\n" - .'You can specify multiple hosted connection IDs. Valid values of **N**: **1** to **20**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'pc-bp1mrgfbtmc9brre7****', - ], - 'required' => false, - 'example' => 'pc-xxx', - 'maxItems' => 20, - ], + 'schema' => ['description' => 'The IPv6 address that you want to query.'."\n", 'type' => 'string', 'required' => false, 'example' => '2408:XXXX:153:3921:851c:c435:7b12:1c5f'], ], [ - 'name' => 'IsConfirmed', + 'name' => 'Name', 'in' => 'query', - 'schema' => [ - 'title' => 'Vpconn是否被确认', - 'description' => 'Specifies whether the hosted connection is accepted by the tenant. Valid values:'."\n" - ."\n" - .'* **true**'."\n" - .'* **false**'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], + 'schema' => ['description' => 'The name of the IPv6 address that you want to query.'."\n" + ."\n" + .'The name must be 0 to 128 characters in length and cannot start with `http://` or `https://`.'."\n", 'type' => 'string', 'required' => false, 'example' => 'test'], ], [ - 'name' => 'VirtualPhysicalConnectionStatuses', + 'name' => 'AddressType', 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'title' => 'Vpconn的状态', - 'description' => 'The business status of the hosted connection.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The status of the hosted connection. Valid values:'."\n" - ."\n" - .'* **Confirmed**'."\n" - .'* **UnConfirmed**'."\n" - .'* **Deleted**'."\n" - ."\n" - .'You can specify multiple states. Valid values of **N**: **1** to **20**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'Confirmed', - ], - 'required' => false, - 'example' => 'pc-xxx', - 'maxItems' => 20, - ], + 'schema' => ['description' => 'The type of IP address. Valid values:'."\n" + ."\n" + .'- IPv6Address (default): indicates an IPv6 instance used to query a single IPv6 address.'."\n" + ."\n" + .'- IPv6Prefix: indicates an IPv6 instance used to query prefix CIDR blocks.', 'type' => 'string', 'required' => false, 'example' => 'IPv6Address'], ], [ - 'name' => 'VirtualPhysicalConnectionAliUids', + 'name' => 'AssociatedInstanceId', 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'title' => 'Vpconn的OwnerUid', - 'description' => 'The information about the Alibaba Cloud account that owns the hosted connection.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The Alibaba Cloud account ID of the hosted connection owner.'."\n" - ."\n" - .'You can specify multiple Alibaba Cloud account IDs. Valid values of **N**: **1** to **20**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '253460731706911258', - ], - 'required' => false, - 'example' => '189xxx', - 'maxItems' => 20, - ], + 'schema' => ['description' => 'The ID of the instance that is assigned the IPv6 address.'."\n", 'type' => 'string', 'required' => false, 'example' => 'i-2ze72wuqj4y3jl4f****'], ], [ - 'name' => 'VlanIds', + 'name' => 'AssociatedInstanceType', 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'title' => 'Vpconn的vlanId', - 'description' => 'The VLAN ID of the hosted connection.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The VLAN ID of the hosted connection.'."\n" - ."\n" - .'You can specify multiple VLAN IDs. Valid values of **N**: **1** to **20**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '10', - ], - 'required' => false, - 'example' => 'pc-xxx', - 'maxItems' => 20, - ], + 'schema' => ['description' => 'The type of instance associated with the IPv6 address. Valid values:'."\n" + ."\n" + .'* **EcsInstance**: Elastic Compute Service (ECS) instance in a virtual private cloud (VPC)'."\n" + .'* **NetworkInterface**: secondary elastic network interface (ENI)'."\n", 'type' => 'string', 'required' => false, 'example' => 'EcsInstance'], ], [ - 'name' => 'MaxResults', + 'name' => 'NetworkType', 'in' => 'query', - 'schema' => [ - 'title' => '单次查询最大量', - 'description' => 'The number of entries per page. Valid values: **1** to **100**. Default value: **20**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '20', - ], + 'schema' => ['description' => 'The type of communication supported by the IPv6 address. Valid values:'."\n" + ."\n" + .'* **Private**'."\n" + .'* **Public**'."\n", 'type' => 'string', 'required' => false, 'example' => 'Private'], ], [ - 'name' => 'NextToken', + 'name' => 'VpcId', 'in' => 'query', - 'schema' => [ - 'title' => '单次查询最大量', - 'description' => 'The pagination token that is used in the next request to retrieve a new page of results. Valid values:'."\n" - ."\n" - .'* You do not need to specify this parameter for the first request.'."\n" - .'* You must specify the token that is obtained from the previous query as the value of NextToken.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'dd20****', - ], + 'schema' => ['description' => 'The ID of the VPC to which the IPv6 address belongs.'."\n", 'type' => 'string', 'required' => false, 'example' => 'vpc-bp15zckdt37pq72zv****'], ], [ - 'name' => 'RegionId', + 'name' => 'VSwitchId', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the hosted connection.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-shanghai', - ], + 'schema' => ['description' => 'The ID of the vSwitch to which the IPv6 address belongs.'."\n", 'type' => 'string', 'required' => false, 'example' => 'vsw-25navfgbue4g****'], ], [ - 'name' => 'Tags', + 'name' => 'Ipv6InternetBandwidthId', + 'in' => 'query', + 'schema' => ['description' => 'The ID of the Internet bandwidth that you purchased for the IPv6 address.'."\n", 'type' => 'string', 'required' => false, 'example' => 'ipv6bw-uf6hcyzu65v98v3du****'], + ], + [ + 'name' => 'IncludeReservationData', + 'in' => 'query', + 'schema' => ['description' => 'Specifies whether to return information about pending orders. Valid values:'."\n" + ."\n" + .'* **false** (default)'."\n" + .'* **true**'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false'], + ], + [ + 'name' => 'ResourceGroupId', + 'in' => 'query', + 'schema' => ['description' => 'The ID of the resource group to which the IPv6 gateway belongs.', 'type' => 'string', 'required' => false, 'example' => 'rg-bp67acfmxazb4ph****'], + ], + [ + 'name' => 'Tag', 'in' => 'query', 'style' => 'repeatList', 'schema' => [ - 'description' => 'The tag list.'."\n", + 'description' => 'The tag list.', 'type' => 'array', 'items' => [ - 'description' => '', + 'description' => 'The tag list.', 'type' => 'object', 'properties' => [ - 'Key' => [ - 'description' => '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.'."\n" - ."\n" - .'It can be up to 64 characters in length and can contain digits, periods (.), underscores (\\_), and hyphens (-). It cannot start with `aliyun` or `acs:`, and cannot contain `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'FinanceDept', - ], - 'Value' => [ - 'description' => '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.'."\n" - ."\n" - .'It can be up to 128 characters in length and can contain digits, periods (.), underscores (\\_), and hyphens (-). It cannot start with `aliyun` or `acs:`, and cannot contain `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'FinanceJoshua', - ], + 'Key' => ['description' => 'The key of tag N. You can specify at most 20 tag keys. The tag key cannot be an empty string.'."\n" + ."\n" + .'The tag key can be up to 128 characters in length. It cannot start with aliyun or acs:, and cannot contain http:// or https://.', 'type' => 'string', 'required' => false, 'example' => 'FinanceDept'], + 'Value' => ['description' => 'The value of tag N.'."\n" + ."\n" + .'The tag value can be up to 128 characters in length. It can be an empty string. It cannot start with aliyun or acs:, and cannot contain http:// or https://.'."\n" + ."\n" + .'Each tag key corresponds to one tag value. You can specify at most 20 tag values at a time.', 'type' => 'string', 'required' => false, 'example' => 'yunke'], ], 'required' => false, ], 'required' => false, - 'maxItems' => 5, + 'maxItems' => 21, ], ], [ - 'name' => 'ResourceGroupId', + 'name' => 'PageNumber', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the resource group to which the hosted connection belongs.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'rg-acfmxazb4p**** ', - ], + 'schema' => ['description' => 'The page number. Default value: **1**.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'minimum' => '1', 'example' => '1', 'default' => '1'], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => ['description' => 'The number of entries per page. Maximum value: **50**. Default value: **10**.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '100', 'minimum' => '1', 'example' => '10', 'default' => '10'], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => ['description' => 'The ID of the region in which you want to query IPv6 addresses. You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-huhehaote'], + ], + [ + 'name' => 'ServiceManaged', + 'in' => 'query', + 'schema' => ['description' => 'Indicates whether the instance is managed. Valid values:'."\n" + ."\n" + .'* **true**'."\n" + .'* **false**'."\n" + ."\n" + .'If you do not specify this parameter, all instances are queried.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'The returned data.'."\n", 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '2A55F69E-EE3D-5CBE-8805-734F7D5B46B9', - ], - 'VirtualPhysicalConnections' => [ - 'title' => 'Vpconn', - 'description' => 'The list of hosted connections returned.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'Type' => [ - 'description' => 'The type of Express Connect circuit. Default value: **VPC**.'."\n", - 'type' => 'string', - 'example' => 'VPC', - ], - 'Status' => [ - 'description' => 'The status of the Express Connect circuit. Valid values:'."\n" - ."\n" - .'* **Initial**: The application is under review.'."\n" - .'* **Approved**: The application is approved.'."\n" - .'* **Allocating**: The system is allocating resources.'."\n" - .'* **Allocated**: The Express Connect circuit is under construction.'."\n" - .'* **Confirmed**: The Express Connect circuit is pending for user confirmation.'."\n" - .'* **Enabled**: The Express Connect circuit is enabled.'."\n" - .'* **Rejected**: The application is rejected.'."\n" - .'* **Canceled**: The application is canceled.'."\n" - .'* **Allocation Failed**: The system failed to allocate resources.'."\n" - .'* **Terminated**: The Express Connect circuit is disabled.'."\n", - 'type' => 'string', - 'example' => 'Enabled', - ], - 'CreationTime' => [ - 'description' => 'The time when the Express Connect circuit was created.'."\n", - 'type' => 'string', - 'example' => '2021-06-08T12:20:55', - ], - 'AdLocation' => [ - 'description' => 'The geographical location of the access device.'."\n", - 'type' => 'string', - 'example' => 'Yuhang Economic Development Zone XXX Intersection, Yuhang XX Machine Room, E*** Suite.', - ], - 'PortNumber' => [ - 'description' => 'The ID of the port on the access device.'."\n", - 'type' => 'string', - 'example' => '80', - ], - 'Spec' => [ - 'description' => 'The bandwidth value of the hosted connection.'."\n" - ."\n" - .'**M** indicates Mbit/s and **G** indicates Gbit/s.'."\n", - 'type' => 'string', - 'example' => '50M', - ], - 'ChargeType' => [ - 'description' => 'The billing method of the Express Connect circuit.'."\n" - ."\n" - .'If **Prepaid** is returned, it indicates that the Express Connect circuit is billed on a subscription basis.'."\n", - 'type' => 'string', - 'example' => 'Prepaid', - ], - 'Description' => [ - 'description' => 'The description of the Express Connect circuit.'."\n", - 'type' => 'string', - 'example' => 'desctest', - ], - 'Bandwidth' => [ - 'description' => 'The bandwidth of the Express Connect circuit. Unit: Mbit/s.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '50', - ], - 'EnabledTime' => [ - 'description' => 'The time when the Express Connect circuit is enabled.'."\n", - 'type' => 'string', - 'example' => '2021-10-08T10:44Z', - ], - 'LineOperator' => [ - 'description' => 'The connectivity provider of the Express Connect circuit. Valid values:'."\n" - ."\n" - .'* **CT**: China Telecom.'."\n" - .'* **CU**: China Unicom.'."\n" - .'* **CM**: China Mobile.'."\n" - .'* **CO**: other connectivity providers in the Chinese mainland.'."\n" - .'* **Equinix**: Equinix.'."\n" - .'* **Other**: other connectivity providers outside the Chinese mainland.'."\n", - 'type' => 'string', - 'example' => 'CU', - ], - 'PeerLocation' => [ - 'description' => 'The geographical location of the data center.'."\n", - 'type' => 'string', - 'example' => 'XX Number, XX Road, XX Town, XX District, Hangzhou City, Zhejiang Province.', - ], - 'RedundantPhysicalConnectionId' => [ - 'description' => 'The ID of the redundant Express Connect circuit.'."\n", - 'type' => 'string', - 'example' => 'pc-119mfjzm****', - ], - 'Name' => [ - 'description' => 'The name of the Express Connect circuit.'."\n", - 'type' => 'string', - 'example' => 'nametest', - ], - 'CircuitCode' => [ - 'description' => 'The circuit code of the Express Connect circuit. The circuit code is provided by the connectivity provider.'."\n", - 'type' => 'string', - 'example' => 'longtel001', - ], - 'EndTime' => [ - 'description' => 'The expiration date of the hosted connection.'."\n" - ."\n" - .'The time follows the ISO 8601 standard in the YYYY-MM-DDThh:mm:ssZ format. The time is displayed in UTC.'."\n", - 'type' => 'string', - 'example' => '2021-11-08T16:00:00Z', - ], - 'PortType' => [ - 'description' => 'The port type. Valid values:'."\n" - ."\n" - .'* **100Base-T**: 100 Mbit/s copper Ethernet port'."\n" - .'* **1000Base-T**: 1,000 Mbit/s copper Ethernet port'."\n" - .'* **1000Base-LX**: 1,000 Mbit/s single-mode optical port (10 km)'."\n" - .'* **10GBase-T**: 10,000 Mbit/s copper Ethernet port'."\n" - .'* **10GBase-LR**: 10,000 Mbit/s single-mode optical port (10 km)'."\n" - .'* **40GBase-LR**: 40,000 Mbit/s single-mode optical port'."\n" - .'* **100GBase-LR**: 100,000 Mbit/s single-mode optical port'."\n", - 'type' => 'string', - 'example' => '10GBase-LR', - ], - 'BusinessStatus' => [ - 'description' => 'The status of the Express Connect circuit. Valid values:'."\n" - ."\n" - .'* **Normal**'."\n" - .'* **FinancialLocked**'."\n" - .'* **SecurityLocked**'."\n", - 'type' => 'string', - 'example' => 'Normal', - ], - 'LoaStatus' => [ - 'description' => 'The status of the letter of authorization (LOA). Valid values:'."\n" - ."\n" - .'* **Applying**'."\n" - .'* **Accept**'."\n" - .'* **Available**'."\n" - .'* **Rejected**'."\n" - .'* **Completing**'."\n" - .'* **Complete**'."\n" - .'* **Deleted**'."\n", - 'type' => 'string', - 'example' => 'Available', - ], - 'AccessPointId' => [ - 'description' => 'The ID of the access point that is associated with the Express Connect circuit.'."\n", - 'type' => 'string', - 'example' => 'ap-cn-hangzhou-finance-yh-E', - ], - 'PhysicalConnectionId' => [ - 'description' => 'The ID of the hosted connection.'."\n", - 'type' => 'string', - 'example' => 'pc-bp1mrgfbtmc9brre7****', - ], - 'ProductType' => [ - 'description' => 'The type of the Express Connect circuit. Valid values:'."\n" - ."\n" - .'* **VirtualPhysicalConnection**: shared Express Connect circuit'."\n" - .'* **PhysicalConnection**: dedicated Express Connect circuit'."\n", - 'type' => 'string', - 'example' => 'VirtualPhysicalConnection', - ], - 'ParentPhysicalConnectionId' => [ - 'description' => 'The ID of the Express Connect circuit.'."\n", - 'type' => 'string', - 'example' => 'pc-bp1ciz7ekd2grn1as****', - ], - 'VirtualPhysicalConnectionStatus' => [ - 'description' => 'The status of the hosted connection. Valid values:'."\n" - ."\n" - .'* **Confirmed**'."\n" - .'* **UnConfirmed**'."\n" - .'* **Deleted**'."\n", - 'type' => 'string', - 'example' => 'Confirmed', - ], - 'ParentPhysicalConnectionAliUid' => [ - 'description' => 'The ID of the Alibaba Cloud account to which the Express Connect circuit belongs.'."\n", - 'type' => 'string', - 'example' => '283117732402483989', - ], - 'OrderMode' => [ - 'description' => 'The payer for the shared Express Connect circuit. Valid values:'."\n" - ."\n" - .'* **PayByPhysicalConnectionOwner**: the owner of the shared Express Connect circuit'."\n" - .'* **PayByVirtualPhysicalConnectionOwner**: the owner of the hosted connection'."\n", - 'type' => 'string', - 'example' => 'PayByPhysicalConnectionOwner', - ], - 'AliUid' => [ - 'description' => 'The Alibaba Cloud account ID of the hosted connection owner.'."\n", - 'type' => 'string', - 'example' => '253460731706911258', - ], - 'VlanId' => [ - 'description' => 'The VLAN ID of the hosted connection.'."\n", - 'type' => 'string', - 'example' => '10', - ], - 'ExpectSpec' => [ - 'description' => 'The estimated maximum bandwidth of the shared Express Connect circuit. The estimated bandwidth takes effect after you complete the payment.'."\n" - ."\n" - .'**M** indicates Mbit/s and **G** indicates Gbit/s.'."\n", - 'type' => 'string', - 'example' => '50M', - ], - 'ResourceGroupId' => [ - 'description' => 'The ID of the resource group to which the hosted connection belongs.'."\n", - 'type' => 'string', - 'example' => 'rg-acfm3wmsyuimpma', - ], - 'Tags' => [ - 'description' => 'The tag list.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => 'The key of tag N that is added to the resource. You can specify at most 20 tag keys. The tag key cannot be an empty string.'."\n" + 'PageSize' => ['description' => 'The number of entries returned per page. Maximum value: **50**. Default value: **10**.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '10'], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => 'AA4486A8-B6AE-469E-AB09-820EF8ECFA2B'], + 'PageNumber' => ['description' => 'The page number of the returned page. Default value: **1**.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'TotalCount' => ['description' => 'The number of returned entries.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '2'], + 'Ipv6Addresses' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Ipv6Address' => [ + 'description' => 'The details of the IPv6 address.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'VpcId' => ['description' => 'The ID of the VPC to which the IPv6 address belongs.'."\n", 'type' => 'string', 'example' => 'vpc-bp15zckdt37pq72zv****'], + 'Status' => ['description' => 'The status of the IPv6 address.'."\n" + ."\n" + .'* **Pending**'."\n" + .'* **Available**'."\n", 'type' => 'string', 'example' => 'Available'], + 'Ipv6AddressId' => ['description' => 'The ID of the IPv6 address.'."\n", 'type' => 'string', 'example' => 'ipv6-2zen5j4axcp5l5qyy****'], + 'AllocationTime' => ['description' => 'The time when the IPv6 address was created.'."\n", 'type' => 'string', 'example' => '2020-12-20T14:56:09Z'], + 'Ipv6AddressName' => ['description' => 'The name of the IPv6 address.'."\n", 'type' => 'string', 'example' => 'test'], + 'Ipv6AddressDescription' => ['description' => 'The description of the IPv6 address.'."\n", 'type' => 'string', 'example' => 'test'], + 'AssociatedInstanceType' => ['description' => 'The type of instance associated with the IPv6 address.'."\n", 'type' => 'string', 'example' => 'EcsInstance'], + 'AssociatedInstanceId' => ['description' => 'The ID of the instance associated with the IPv6 address.'."\n", 'type' => 'string', 'example' => 'i-2ze72wuqj4y3jl4f****'], + 'NetworkType' => ['description' => 'The type of connection supported by the IPv6 address. Valid values:'."\n" + ."\n" + .'* **Private**'."\n" + .'* **Public**'."\n", 'type' => 'string', 'example' => 'Private'], + 'Ipv6Address' => ['description' => 'The IPv6 address.'."\n", 'type' => 'string', 'example' => '2408:XXXX:153:3921:851c:c435:7b12:1c5f'], + 'AddressType' => ['description' => 'The type of IPv6 address. Valid values:'."\n" + ."\n" + .'* IPv6Address (default): indicates a single IPv6 IP.'."\n" + .'* IPv6Prefix: indicates IPv6 CIDR.', 'type' => 'string', 'example' => 'IPv6Address'], + 'Ipv6Isp' => ['description' => 'The ISP of the IPv6 address. Valid values:'."\n" + ."\n" + .'* **BGP** (default)'."\n" + .'* **ChinaMobile**'."\n" + .'* **ChinaUnicom**'."\n" + .'* **ChinaTelecom**'."\n", 'type' => 'string', 'example' => 'BGP'], + 'VSwitchId' => ['description' => 'The ID of the vSwitch to which the IPv6 address belongs.'."\n", 'type' => 'string', 'example' => 'vsw-25navfgbue4g****'], + 'Ipv6GatewayId' => ['description' => 'The ID of the IPv6 gateway to which the IPv6 address belongs.'."\n", 'type' => 'string', 'example' => 'ipv6gw-2zewg0l66s73b4k2q****'], + 'RealBandwidth' => ['description' => 'The peak bandwidth of the IPv6 address.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '5'], + 'Ipv6InternetBandwidth' => [ + 'description' => 'The Internet bandwidth of the IPv6 address.'."\n", + 'type' => 'object', + 'properties' => [ + 'InternetChargeType' => ['description' => 'The billing method of the Internet bandwidth of the IPv6 address. Valid values:'."\n" ."\n" - .'It can be up to 64 characters in length and can contain digits, periods (.), underscores (\\_), and hyphens (-). It cannot start with `aliyun` or `acs:`, and cannot contain `http://` or `https://`.'."\n", - 'type' => 'string', - 'example' => 'FinanceDept', - ], - 'Value' => [ - 'description' => 'The value of tag N that is added to the resource. You can specify at most 20 tag values. The tag value can be an empty string.'."\n" + .'* **PayByTraffic**'."\n" + .'* **PayByBandwidth**'."\n", 'type' => 'string', 'example' => 'PayByTraffic'], + 'BusinessStatus' => ['description' => 'The status of the Internet bandwidth of the IPv6 address. Valid values:'."\n" ."\n" - .'It can be up to 128 characters in length and can contain digits, periods (.), underscores (\\_), and hyphens (-). It cannot start with `aliyun` or `acs:`, and cannot contain `http://` or `https://`.'."\n", - 'type' => 'string', - 'example' => 'FinanceJoshua', + .'* **Normal**'."\n" + .'* **FinancialLocked**'."\n" + .'* **SecurityLocked**'."\n", 'type' => 'string', 'example' => 'Normal'], + 'Bandwidth' => ['description' => 'The dedicated Internet bandwidth of the IPv6 address. Unit: Mbit/s.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '5'], + 'Ipv6InternetBandwidthId' => ['description' => 'The Internet bandwidth ID of the IPv6 address.'."\n", 'type' => 'string', 'example' => 'ipv6bw-hp3b35oq1fj50kbv****'], + 'InstanceChargeType' => ['description' => 'The billing method of the Internet bandwidth of the IPv6 address. Valid values:'."\n" + ."\n" + .'Only **PostPaid** may be returned, which indicates the pay-as-you-go billing method.'."\n", 'type' => 'string', 'example' => 'PostPaid'], + 'HasReservationData' => ['description' => 'Indicates whether renewal data is included. Valid values:'."\n" + ."\n" + .'* **false**'."\n" + .'* **true** **true** is returned only when **IncludeReservationData** is set to **true** and some orders have not taken effect.'."\n", 'type' => 'boolean', 'example' => 'false'], + 'ReservationInternetChargeType' => ['description' => 'The metering method that is used after the renewal takes effect.'."\n" + ."\n" + .'* **PayByTraffic**'."\n" + .'* **PayByBandwidth**'."\n", 'type' => 'string', 'example' => 'PayByTraffic'], + 'ReservationOrderType' => ['description' => 'The type of the renewal order. Only **RENEW** may be returned, which indicates that the order is placed for service renewal.'."\n", 'type' => 'string', 'example' => 'RENEW'], + 'ReservationActiveTime' => ['description' => 'The time when the renewal takes effect. The time is displayed in the `YYYY-MM-DDThh:mm:ssZ` format.'."\n", 'type' => 'string', 'example' => '2021-05-23T16:00:00Z'], + 'ReservationBandwidth' => ['description' => 'The maximum bandwidth after the renewal takes effect. Unit: Mbit/s.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '12'], + ], + ], + 'ResourceGroupId' => ['description' => 'The ID of the resource group to which the IPv6 gateway belongs.'."\n", 'type' => 'string', 'example' => 'rg-bp67acfmxazb4ph****'], + 'Tags' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Tag' => [ + 'description' => 'The tag list.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The tag list.', + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => 'The tag key. You can specify up to 20 tag keys. The tag key cannot be an empty string.'."\n" + ."\n" + .'The tag key can be up to 128 characters in length. The tag key cannot start with `aliyun` or `acs:`, and cannot contain `http://` or `https://`.'."\n", 'type' => 'string', 'example' => 'FinanceDept'], + 'Value' => ['description' => 'The tag value.'."\n" + ."\n" + .'The tag value can be up to 128 characters in length. It can be an empty string. It cannot start with `aliyun` or `acs:`, and cannot contain `http://` or `https://`.'."\n" + ."\n" + .'Each tag key corresponds to one tag value. You can specify at most 20 tag values at a time.'."\n", 'type' => 'string', 'example' => 'yunke'], + ], + ], + ], ], ], + 'ServiceManaged' => ['description' => 'Indicates whether the instance is managed. Valid values:'."\n" + ."\n" + .'* **1**: yes'."\n" + .'* **0**: no'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '1'], ], ], ], ], ], - 'NextToken' => [ - 'description' => 'A pagination token. It can be used in the next request to retrieve a new page of results. Valid values:'."\n" - ."\n" - .'* If the value of **NextToken** is not returned, it indicates that no next query is to be sent.'."\n" - .'* If **NextToken** was returned in the previous query, specify the value to obtain the next set of results.'."\n", - 'type' => 'string', - 'example' => 'dd20****', - ], - 'TotalCount' => [ - 'title' => '总数', - 'description' => 'The total number of entries returned.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'Count' => [ - 'title' => '本次查询数量', - 'description' => 'The number of entries returned in this query.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'IllegalParam.Bandwidth', - 'errorMessage' => 'The param of Bandwidth [%s] is illegal.', - ], - [ - 'errorCode' => 'ResourceNotFound.PhysicalConnectionId', - 'errorMessage' => 'The specified PhysicalConnectionId [%s] is not found.', - ], + ['errorCode' => 'IllegalParam.Ipv6Address', 'errorMessage' => 'The param of %s is illegal.', 'description' => 'The IPv6 address is invalid.'], + ['errorCode' => 'IllegalParam.NetworkType', 'errorMessage' => 'The param of %s is illegal.', 'description' => 'Invalid NetworkType value.'], + ['errorCode' => 'IllegalParam.AddressType', 'errorMessage' => 'The specified AddressType is illegal.', 'description' => 'The specified input AddressType is illegal.'], + ['errorCode' => 'IllegalParamSize.AssociatedInstanceId', 'errorMessage' => 'The param size of AssociatedInstanceId is illegal.', 'description' => 'Illegal parameter AssociatedInstanceId length'], + ['errorCode' => 'MissingParam.AssociatedInstanceId', 'errorMessage' => 'The param of AssociatedInstanceId is missing when AssociatedInstanceType is specified.', 'description' => 'Missing parameter AssociatedInstanceId'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"2A55F69E-EE3D-5CBE-8805-734F7D5B46B9\\",\\n \\"VirtualPhysicalConnections\\": [\\n {\\n \\"Type\\": \\"VPC\\",\\n \\"Status\\": \\"Enabled\\",\\n \\"CreationTime\\": \\"2021-06-08T12:20:55\\",\\n \\"AdLocation\\": \\"余杭经济开发区XXX交叉口, 余杭XX机房, E***包间\\",\\n \\"PortNumber\\": \\"80\\",\\n \\"Spec\\": \\"50M\\",\\n \\"ChargeType\\": \\"Prepaid\\",\\n \\"Description\\": \\"desctest\\",\\n \\"Bandwidth\\": 50,\\n \\"EnabledTime\\": \\"2021-10-08T10:44Z\\",\\n \\"LineOperator\\": \\"CU\\",\\n \\"PeerLocation\\": \\"浙江省杭州市XX区XX街道XX号\\",\\n \\"RedundantPhysicalConnectionId\\": \\"pc-119mfjzm****\\",\\n \\"Name\\": \\"nametest\\",\\n \\"CircuitCode\\": \\"longtel001\\",\\n \\"EndTime\\": \\"2021-11-08T16:00:00Z\\",\\n \\"PortType\\": \\"10GBase-LR\\",\\n \\"BusinessStatus\\": \\"Normal\\",\\n \\"LoaStatus\\": \\"Available\\",\\n \\"AccessPointId\\": \\"ap-cn-hangzhou-finance-yh-E\\",\\n \\"PhysicalConnectionId\\": \\"pc-bp1mrgfbtmc9brre7****\\",\\n \\"ProductType\\": \\"VirtualPhysicalConnection\\",\\n \\"ParentPhysicalConnectionId\\": \\"pc-bp1ciz7ekd2grn1as****\\",\\n \\"VirtualPhysicalConnectionStatus\\": \\"Confirmed\\",\\n \\"ParentPhysicalConnectionAliUid\\": \\"18311773240248****\\",\\n \\"OrderMode\\": \\"PayByPhysicalConnectionOwner\\",\\n \\"AliUid\\": \\"15346073170691****\\",\\n \\"VlanId\\": \\"10\\",\\n \\"ExpectSpec\\": \\"50M\\",\\n \\"ResourceGroupId\\": \\"rg-acfm3wmsyui****\\",\\n \\"Tags\\": [\\n {\\n \\"Key\\": \\"FinanceDept\\",\\n \\"Value\\": \\"FinanceJoshua\\"\\n }\\n ]\\n }\\n ],\\n \\"NextToken\\": \\"dd20****\\",\\n \\"TotalCount\\": 1,\\n \\"Count\\": 1\\n}","errorExample":""},{"type":"xml","example":"\\n 2A55F69E-EE3D-5CBE-8805-734F7D5B46B9\\n \\n VPC\\n Enabled\\n 2021-06-08T12:20:55\\n 余杭经济开发区XXX交叉口, 余杭XX机房, E***包间\\n 80\\n 50M\\n Prepaid\\n desctest\\n 50\\n 2021-10-08T10:44Z\\n CU\\n 浙江省杭州市XX区XX街道XX号\\n pc-119mfjzm****\\n nametest\\n longtel001\\n 2021-11-08T16:00:00Z\\n 10GBase-LR\\n Normal\\n Available\\n ap-cn-hangzhou-finance-yh-E\\n pc-bp1mrgfbtmc9brre7****\\n VirtualPhysicalConnection\\n pc-bp1ciz7ekd2grn1as****\\n Confirmed\\n 283117732402483989\\n PayByPhysicalConnectionOwner\\n 253460731706911258\\n 10\\n 50M\\n \\n dd20****\\n 1\\n 1\\n","errorExample":""}]', - 'title' => 'ListVirtualPhysicalConnections', - ], - 'OpenPhysicalConnectionService' => [ - 'summary' => 'Enables billing for outbound data transfer.', - 'methods' => [ - 'get', - 'post', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'DescribeIpv6Addresses', + 'summary' => 'Queries IPv6 addresses in a region.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2025-03-25T06:30:03.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2025-01-22T02:57:54.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-08-08T09:26:08.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-06-28T01:52:07.000Z', 'description' => 'Request parameters changed, Response parameters changed'], + ['createdAt' => '2024-03-14T06:49:39.000Z', 'description' => 'Request parameters changed, Response parameters changed'], + ['createdAt' => '2023-05-29T02:33:52.000Z', 'description' => 'Request parameters changed, Response parameters changed'], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'vpc:DescribeIpv6Addresses', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'Ipv6InternetBandwidth', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vpc/*'], + ], + ], + ], ], + ], + 'DescribeIpv6EgressOnlyRules' => [ + 'summary' => 'Queries IPv6 egress-only rules that you created.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', - 'deprecated' => false, + 'operationType' => 'read', 'systemTags' => [ - 'operationType' => 'create', + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '37999', + 'abilityTreeNodes' => ['FEATUREvpc3GHR3P'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'title' => '地域', - 'description' => 'The ID of the region where the Express Connect circuit is deployed.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The region ID of the IPv6 gateway. You can call the [DescribeRegions](~~36063~~) operation to query the region ID.', 'type' => 'string', 'required' => true, 'example' => 'cn-huhehaote', 'title' => ''], + ], + [ + 'name' => 'Ipv6GatewayId', + 'in' => 'query', + 'schema' => ['description' => 'The ID of the IPv6 gateway.', 'type' => 'string', 'required' => true, 'example' => 'ipv6gw-bp1rhhs9zjlxukc5e****', 'title' => ''], + ], + [ + 'name' => 'Ipv6EgressOnlyRuleId', + 'in' => 'query', + 'schema' => ['description' => 'The ID of the IPv6 egress-only rule to query.', 'type' => 'string', 'required' => false, 'example' => 'ipv6py-bp1rr7fq1md8pbb3k****', 'title' => ''], + ], + [ + 'name' => 'Name', + 'in' => 'query', + 'schema' => ['description' => 'The name of the rule.', 'type' => 'string', 'required' => false, 'example' => 'rulename', 'title' => ''], + ], + [ + 'name' => 'InstanceType', + 'in' => 'query', + 'schema' => ['description' => 'The type of the instance for which you want to configure IPv6 egress-only rules. Valid values:'."\n" + ."\n" + .'- IPv6Address (default): The instance is a single IPv6 address.'."\n" + .'- IPv6Prefix: The instance is an IPv6 CIDR block.', 'type' => 'string', 'required' => false, 'example' => 'Ipv6Address', 'title' => ''], + ], + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => ['description' => 'The ID of the IPv6 address for which the IPv6 egress-only rule is configured.', 'type' => 'string', 'required' => false, 'example' => 'ipv6-bp12uzwhac8tv3xx6****', 'title' => ''], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => ['description' => 'The page number of the list to return. Default value: **1**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'minimum' => '1', 'default' => '1', 'example' => '1', 'title' => ''], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => ['description' => 'The number of entries per page for a paged query. Maximum value: **50**. Default value: **10**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '50', 'minimum' => '1', 'default' => '10', 'example' => '10', 'title' => ''], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => ['description' => 'The region ID of the IPv6 gateway. You can call the [DescribeRegions](~~36063~~) operation to query the region ID.', 'type' => 'string', 'required' => true, 'example' => 'cn-huhehaote', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B45', + 'PageSize' => ['description' => 'The number of entries per page for a paged query. Maximum value: **50**. Default value: **10**.', 'type' => 'integer', 'format' => 'int32', 'example' => '10', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'E16671B7-DEA6-48E0-8E9C-41913DAD44DD', 'title' => ''], + 'PageNumber' => ['description' => 'The page number of the list to return. Default value: **1**.', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''], + 'TotalCount' => ['description' => 'The total number of entries returned.', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''], + 'Ipv6EgressOnlyRules' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Ipv6EgressOnlyRule' => [ + 'description' => 'The details of the IPv6 egress-only rule.', + 'type' => 'array', + 'items' => [ + 'description' => 'The details of the IPv6 egress-only rule.', + 'type' => 'object', + 'properties' => [ + 'Status' => ['description' => 'The status of the IPv6 egress-only rule.', 'type' => 'string', 'example' => 'Available', 'title' => ''], + 'Description' => ['description' => 'The description of the IPv6 egress-only rule.', 'type' => 'string', 'example' => 'ruledescription', 'title' => ''], + 'Ipv6EgressOnlyRuleId' => ['description' => 'The ID of the IPv6 egress-only rule.', 'type' => 'string', 'example' => 'ipv6py-bp1rr7fq1md8pbb3k****', 'title' => ''], + 'InstanceId' => ['description' => 'The ID of the IPv6 address for which the IPv6 egress-only rule is configured.', 'type' => 'string', 'example' => 'ipv6gw-bp1rhhs9zjlxukc5e****', 'title' => ''], + 'InstanceType' => ['description' => 'The type of the instance for which the IPv6 egress-only rule is configured.', 'type' => 'string', 'example' => 'Ipv6Address', 'title' => ''], + 'Name' => ['description' => 'The name of the IPv6 egress-only rule.', 'type' => 'string', 'example' => 'rulename', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'PURCHASE_QUANTITY_LIMIT', - 'errorMessage' => 'Your purchase quantity exceeds the maximum limit.', - ], - [ - 'errorCode' => 'InvalidOperation.OrderOpened', - 'errorMessage' => 'You have already open the service. Go to the console to start using it.', - ], - ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B45\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 54B48E3D-DF70-471B-AA93-08E683A1B45\\n","errorExample":""}]', - 'title' => 'OpenPhysicalConnectionService', + 'title' => 'Query iPv6 egress-only rules', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'CreatePhysicalConnection' => [ - 'summary' => 'Applies for an Express Connect circuit.', - 'methods' => [ - 'post', - 'get', + 'changeSet' => [ + ['createdAt' => '2024-06-28T01:52:07.000Z', 'description' => 'Error codes changed'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DescribeIpv6EgressOnlyRules'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'vpc:DescribeIpv6EgressOnlyRules', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'Ipv6Gateway', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:ipv6gateway/{#Ipv6GatewayId}'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"PageSize\\": 10,\\n \\"RequestId\\": \\"E16671B7-DEA6-48E0-8E9C-41913DAD44DD\\",\\n \\"PageNumber\\": 1,\\n \\"TotalCount\\": 1,\\n \\"Ipv6EgressOnlyRules\\": {\\n \\"Ipv6EgressOnlyRule\\": [\\n {\\n \\"Status\\": \\"Available\\",\\n \\"Description\\": \\"ruledescription\\",\\n \\"Ipv6EgressOnlyRuleId\\": \\"ipv6py-bp1rr7fq1md8pbb3k****\\",\\n \\"InstanceId\\": \\"ipv6gw-bp1rhhs9zjlxukc5e****\\",\\n \\"InstanceType\\": \\"Ipv6Address\\",\\n \\"Name\\": \\"rulename\\"\\n }\\n ]\\n }\\n}","type":"json"}]', + ], + 'DescribeIpv6GatewayAttribute' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'create', - 'riskType' => 'none', - 'chargeType' => 'free', - ], + 'operationType' => 'read', + 'systemTags' => ['operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the Express Connect circuit.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-shanghai', - ], + 'schema' => ['description' => 'The region ID of the IPv6 gateway. You can call the [DescribeRegions](~~36063~~) operation to obtain the region ID.', 'type' => 'string', 'required' => true, 'example' => 'cn-huhehaote', 'title' => ''], ], [ - 'name' => 'AccessPointId', + 'name' => 'Ipv6GatewayId', 'in' => 'query', - 'schema' => [ - 'description' => 'The access point ID of the Express Connect circuit.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'ap-cn-beijing-ft-A', - ], + 'schema' => ['description' => 'The ID of the IPv6 gateway to query.', 'type' => 'string', 'required' => true, 'example' => 'ipv6gw-hp3y0l3ln89j8cdvf****', 'title' => ''], ], - [ - 'name' => 'Type', - 'in' => 'query', + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => 'The type of Express Connect circuit. Default value: **VPC**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'VPC', - 'default' => 'VPC', + 'type' => 'object', + 'properties' => [ + 'VpcId' => ['description' => 'The ID of the VPC to which the IPv6 gateway belongs.', 'type' => 'string', 'example' => 'vpc-123sedrfswd23****', 'title' => ''], + 'Status' => ['description' => 'The status of the IPv6 gateway. Valid values:'."\n" + ."\n" + .'- **Pending**: being configured.'."\n" + ."\n" + .'- **Available**: active.', 'type' => 'string', 'example' => 'Available', 'title' => ''], + 'CreationTime' => ['description' => 'The time when the IPv6 gateway was created.', 'type' => 'string', 'example' => '2018-12-05T09:21:35Z', 'title' => ''], + 'RegionId' => ['description' => 'The region ID of the IPv6 gateway.', 'type' => 'string', 'example' => 'cn-huhehaote', 'title' => ''], + 'InstanceChargeType' => ['description' => 'The billing method of the IPv6 gateway.', 'type' => 'string', 'example' => 'PostPaid', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '0ED8D006-F706-4D23-88ED-E11ED28DCAC', 'title' => ''], + 'Ipv6GatewayId' => ['description' => 'The instance ID of the IPv6 gateway.', 'type' => 'string', 'example' => 'ipv6gw-hp3y0l3ln89j8cdvf****', 'title' => ''], + 'Description' => ['description' => 'The description of the IPv6 gateway.', 'type' => 'string', 'example' => 'test', 'title' => ''], + 'ExpiredTime' => ['description' => 'The expiration time of the IPv6 gateway.', 'type' => 'string', 'example' => '2019-1-05T09:21:35Z', 'title' => ''], + 'BusinessStatus' => ['description' => 'The business status of the IPv6 gateway. Valid values:'."\n" + ."\n" + .'- **Normal**: Normal.'."\n" + ."\n" + .'- **FinancialLocked**: financial lock.'."\n" + ."\n" + .'- **SecurityLocked**: security lock.', 'type' => 'string', 'example' => 'Normal', 'title' => ''], + 'Name' => ['description' => 'The name of the IPv6 gateway.', 'type' => 'string', 'example' => 'test', 'title' => ''], + 'ResourceGroupId' => ['description' => 'The resource group ID.', 'type' => 'string', 'example' => 'rg-acfmxazb4ph6aiy****', 'title' => ''], + 'GatewayRouteTableId' => ['description' => 'The ID of the gateway route table associated with the IPv6 gateway.'."\n" + ."\n\n" + .'> This parameter is displayed only for IPv6 gateways that are associated with a gateway route table.', 'type' => 'string', 'example' => 'vtb-5ts0ohchwkp3dydt2****', 'title' => ''], + 'Tags' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Tag' => [ + 'description' => 'The list of tags.', + 'type' => 'array', + 'items' => [ + 'description' => 'The list of tags.', + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => 'The tag key. You can specify up to 20 tag keys. The tag key cannot be an empty string.'."\n" + ."\n" + .'A tag key can be up to 128 characters in length. It must start with a letter or Chinese character and can contain digits, periods (.), underscores (_), and hyphens (-). It cannot start with `aliyun` or `acs:`, and cannot contain `http://` or `https://`.', 'type' => 'string', 'example' => 'FinanceDept', 'title' => ''], + 'Value' => ['description' => 'The tag value. You can specify up to 20 tag values. The tag value can be an empty string.'."\n" + ."\n" + .'A tag value can be up to 128 characters in length. It must start with a letter or Chinese character and can contain digits, periods (.), underscores (_), and hyphens (-). It cannot start with `aliyun` or `acs:`, and cannot contain `http://` or `https://`.', 'type' => 'string', 'example' => 'FinanceJoshua', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'OwnerId' => ['description' => 'The Alibaba Cloud account ID of the IPv6 gateway owner.'."\n" + ."\n" + .'>This value is of the Long type. Precision loss may occur in certain programming languages. Use this value with caution.>', 'type' => 'integer', 'format' => 'int64', 'example' => '2546073170691****', 'title' => ''], + ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], - [ - 'name' => 'LineOperator', - 'in' => 'query', - 'schema' => [ - 'description' => 'The connectivity provider of the Express Connect circuit. Valid values:'."\n" - ."\n" - .'* **CT**: China Telecom.'."\n" - .'* **CU**: China Unicom.'."\n" - .'* **CM**: China Mobile.'."\n" - .'* **CO**: other connectivity providers in the Chinese mainland.'."\n" - .'* **Equinix**: Equinix.'."\n" - .'* **Other**: other connectivity providers outside the Chinese mainland.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'CT', - ], + ], + 'errorCodes' => [], + 'title' => 'Query details of a specified iPv6 gateway', + 'summary' => 'Queries the details of a specified IPv6 gateway, including the region, VPC, running status, and billing method.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2025-04-17T08:31:24.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2025-04-14T06:08:17.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2024-07-31T02:46:00.000Z', 'description' => 'Error codes changed'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DescribeIpv6GatewayAttribute'], ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], + ], + 'ramActions' => [ [ - 'name' => 'bandwidth', - 'in' => 'query', - 'schema' => [ - 'description' => 'The maximum bandwidth of the hosted connection. Unit: Mbit/s.'."\n" - ."\n" - .'Valid values: **50**, **100**, **200**, **300**, **400**, **500**, **1000**, **2000**, **4000**, **5000**, **8000**, and **10000**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '50', - 'default' => '100', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'vpc:DescribeIpv6GatewayAttribute', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'Ipv6Gateway', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:ipv6gateway/{#Ipv6GatewayId}'], + ], ], ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"VpcId\\": \\"vpc-123sedrfswd23****\\",\\n \\"Status\\": \\"Available\\",\\n \\"CreationTime\\": \\"2018-12-05T09:21:35Z\\",\\n \\"RegionId\\": \\"cn-huhehaote\\",\\n \\"InstanceChargeType\\": \\"PostPaid\\",\\n \\"RequestId\\": \\"0ED8D006-F706-4D23-88ED-E11ED28DCAC\\",\\n \\"Ipv6GatewayId\\": \\"ipv6gw-hp3y0l3ln89j8cdvf****\\",\\n \\"Description\\": \\"test\\",\\n \\"ExpiredTime\\": \\"2019-1-05T09:21:35Z\\",\\n \\"BusinessStatus\\": \\"Normal\\",\\n \\"Name\\": \\"test\\",\\n \\"ResourceGroupId\\": \\"rg-acfmxazb4ph6aiy****\\",\\n \\"GatewayRouteTableId\\": \\"vtb-5ts0ohchwkp3dydt2****\\",\\n \\"Tags\\": {\\n \\"Tag\\": [\\n {\\n \\"Key\\": \\"FinanceDept\\",\\n \\"Value\\": \\"FinanceJoshua\\"\\n }\\n ]\\n },\\n \\"OwnerId\\": 0\\n}","type":"json"}]', + ], + 'DescribeIpv6Gateways' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'PeerLocation', - 'in' => 'query', - 'schema' => [ - 'description' => 'The geographical location of the data center.'."\n", - 'type' => 'string', - 'required' => false, - 'docRequired' => false, - 'example' => 'cn-hangzhou', - ], + 'AK' => [], ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'get'], + 'parameters' => [ [ - 'name' => 'PortType', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The port type. Valid values:'."\n" - ."\n" - .'* **100Base-T**: 100 Mbit/s copper Ethernet port'."\n" - .'* **1000Base-T**: 1,000 Mbit/s copper Ethernet port'."\n" - .'* **1000Base-LX**: 1,000 Mbit/s single-mode optical port (10 km)'."\n" - .'* **10GBase-T**: 10,000 Mbit/s copper Ethernet port'."\n" - .'* **10GBase-LR**: 10,000 Mbit/s single-mode optical port (10 km)'."\n" - .'* **40GBase-LR**: 40,000 Mbit/s single-mode optical port'."\n" - .'* **100GBase-LR**: 100,000 Mbit/s single-mode optical port'."\n" - ."\n" - .'> To use ports 40GBase-LR and 100GBase-LR, you must first contact your account manager.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '1000Base-T', - 'default' => '1000Base-T', - ], + 'schema' => ['description' => 'The region ID of the IPv6 gateway. You can call the [DescribeRegions](~~36063~~) operation to query the region ID.', 'type' => 'string', 'required' => true, 'example' => 'cn-huhehaote', 'title' => ''], ], [ - 'name' => 'RedundantPhysicalConnectionId', + 'name' => 'Ipv6GatewayId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the redundant Express Connect circuit. The redundant Express Connect circuit must be in the **Allocated**, **Confirmed**, or **Enabled** state.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'pc-119mfjzm****', - ], + 'schema' => ['description' => 'The ID of the IPv6 gateway.', 'type' => 'string', 'required' => false, 'example' => 'ipv6gw-hp3rwmtmfhgis****', 'title' => ''], ], [ - 'name' => 'Description', + 'name' => 'VpcId', 'in' => 'query', - 'schema' => [ - 'description' => 'The description of the Express Connect circuit.'."\n" - ."\n" - .'The description must be 2 to 256 characters in length. The description must start with a letter but cannot start with `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'description', - ], + 'schema' => ['description' => 'The ID of the VPC associated with the IPv6 gateway.', 'type' => 'string', 'required' => false, 'example' => 'vpc-123sedrfswd23****', 'title' => ''], ], [ 'name' => 'Name', 'in' => 'query', - 'schema' => [ - 'description' => 'The name of the Express Connect circuit.'."\n" - ."\n" - .'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 but cannot start with `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'test', - ], + 'schema' => ['description' => 'The name of the IPv6 gateway.'."\n" + ."\n" + .'The name must be 2 to 128 characters in length and must start with a letter or a Chinese character. It can contain digits, periods (.), underscores (_), and hyphens (-), but cannot start with `http://` or `https://`.', 'type' => 'string', 'required' => false, 'example' => 'ipv6GW', 'title' => ''], ], [ - 'name' => 'CircuitCode', + 'name' => 'PageNumber', 'in' => 'query', - 'schema' => [ - 'description' => 'The circuit code of the Express Connect circuit. The circuit code is provided by the connectivity provider.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'longtel001', - ], + 'schema' => ['description' => 'The number of the page to return.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'minimum' => '1', 'default' => '1', 'example' => '1', 'title' => ''], ], [ - 'name' => 'ClientToken', + 'name' => 'PageSize', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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.'."\n" - ."\n" - .'> 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.'."\n", - 'type' => 'string', - 'required' => false, - 'docRequired' => true, - 'example' => '123e4567-e89b-12d3-a456-42665544****', - ], + 'schema' => ['description' => 'The number of entries to return on each page.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '100', 'minimum' => '1', 'default' => '10', 'example' => '10', 'title' => ''], ], [ - 'name' => 'ClientToken', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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.'."\n" - ."\n" - .'> 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.'."\n", - 'type' => 'string', - 'required' => false, - 'docRequired' => true, - 'example' => '123e4567-e89b-12d3-a456-42665544****', - ], + 'schema' => ['description' => 'The region ID of the IPv6 gateway. You can call the [DescribeRegions](~~36063~~) operation to query the region ID.', 'type' => 'string', 'required' => true, 'example' => 'cn-huhehaote', 'title' => ''], ], [ 'name' => 'ResourceGroupId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the resource group to which the Express Connect circuit belongs.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'rg-acfmoiyermp****', - ], + 'schema' => ['description' => 'The ID of the resource group to which the IPv6 gateway belongs.', 'type' => 'string', 'required' => false, 'example' => 'rg-bp67acfmxazb4ph****', 'title' => ''], ], [ - 'name' => 'Tag', + 'name' => 'Tags', 'in' => 'query', 'style' => 'repeatList', 'schema' => [ - 'description' => 'The tag list.'."\n", + 'description' => 'The tag list.', 'type' => 'array', 'items' => [ - 'description' => '', + 'description' => 'The tag list.', 'type' => 'object', 'properties' => [ - 'Key' => [ - 'description' => 'The key of tag to add to the resource. You can specify up to 20 tag keys. The tag key cannot be an empty string.'."\n" - ."\n" - .'The tag key can be up to 128 characters in length and cannot contain `http://` or `https://`. The tag key cannot start with `aliyun` or `acs:`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'FinanceDept', - ], - 'Value' => [ - 'description' => 'The tag value to add to the resource. You can specify up to 20 tag values The tag value can be an empty string.'."\n" - ."\n" - .'The tag key can be up to 128 characters in length and cannot contain `http://` or `https://`. The tag key cannot start with `aliyun` or `acs:`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'FinanceJoshua', - ], + 'Key' => ['description' => 'The tag key of the resource. You can specify up to 20 tag keys. The tag key cannot be an empty string.'."\n" + ."\n" + .'The tag key can be up to 128 characters in length, and cannot start with `aliyun` or `acs:`, or contain `http://` or `https://`.', 'type' => 'string', 'required' => false, 'example' => 'FinanceDept', 'title' => ''], + 'Value' => ['description' => 'The tag value of the resource. You can specify up to 20 tag values. The tag value can be an empty string.'."\n" + ."\n" + .'The tag value can be up to 128 characters in length, and cannot start with `aliyun` or `acs:`, or contain `http://` or `https://`.', 'type' => 'string', 'required' => false, 'example' => 'FinanceJoshua', 'title' => ''], ], 'required' => false, + 'title' => '', + 'example' => '', ], 'required' => false, - 'maxItems' => 20, - ], - ], - [ - 'name' => 'DeviceAdvancedCapacity', - 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => 'The advanced features of the device.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The advanced features. Valid values:'."\n" - ."\n" - .'* **SubifRateLimit**: bandwidth throttling based on virtual border routers (VBRs).'."\n" - .'* **DualStack**: IPv6'."\n" - .'* **BFD**: Bidirectional Forwarding Detection (BFD)'."\n" - .'* **CEN**: MP-BGP'."\n" - .'* **CENv6**: MP-BGPv6'."\n", - 'type' => 'string', - 'required' => false, - 'enumValueTitles' => [ - 'BFD' => 'BFD', - 'SubifRateLimit' => 'SubifRateLimit', - 'DualStack' => 'DualStack', - 'CENv6' => 'CENv6', - 'CEN' => 'CEN', - ], - 'example' => 'CENv6', - ], - 'required' => false, - 'maxItems' => 100, + 'maxItems' => 10, + 'title' => '', + 'example' => '', ], ], - [ - 'name' => 'OpticalModuleModel', - 'in' => 'query', + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'title' => '物理专线接入点光模块支持型号,取值:'."\n" - .'1000Base-LX : '."\n" - .'SFP-GE-LR-SM1310,10KM'."\n" - .'SFP-GE-ER-SM1310,40KM'."\n" - .'SFP-GE-ZR-SM1550,80KM '."\n" - .'10GBase-LR : '."\n" - .'SFP-10G-LR-SM1310,10KM'."\n" - .'SFP-10G-ER-SM1550,40KM '."\n" - .'SFP-10G-ZR-SM1550,80KM '."\n" - .'40GBase-LR : '."\n" - .'QSFP-40G-LR4-WDM1300,10KM'."\n" - .'QSFP-40G-ER4-WDM1300,40KM'."\n" - .'QSFP-40G-ZR4-WDM1300,80KM'."\n" - .'100GBase-LR : '."\n" - .'QSFP28-100G-LR4-WDM1300,10KM'."\n" - .'QSFP28-100G-ER4-WDM1300,40KM'."\n" - .'QSFP28-100G-ZR4-WDM1300,80KM', - 'type' => 'string', - ], - ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'description' => 'The returned results.'."\n", + 'description' => 'The response parameters.', 'type' => 'object', 'properties' => [ - 'PhysicalConnectionId' => [ - 'description' => 'The ID of the Express Connect circuit.'."\n", - 'type' => 'string', - 'example' => 'pc-bp1ciz7ekd2grn1as****', - ], - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '8A6A5EC5-6F6C-4906-9689-56ACE58A13E0', + 'PageSize' => ['description' => 'The number of entries to return on each page.', 'type' => 'integer', 'format' => 'int32', 'example' => '10', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'E3A06196-3E7C-490D-8F39-CB4B5A0CE8AD', 'title' => ''], + 'PageNumber' => ['description' => 'The number of the page to return.', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''], + 'TotalCount' => ['description' => 'The total number of entries returned.', 'type' => 'integer', 'format' => 'int32', 'example' => '2', 'title' => ''], + 'Ipv6Gateways' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Ipv6Gateway' => [ + 'description' => 'The details of the IPv6 gateway.', + 'type' => 'array', + 'items' => [ + 'description' => 'The details of the IPv6 gateway.', + 'type' => 'object', + 'properties' => [ + 'CreationTime' => ['description' => 'The time when the IPv6 gateway was created.', 'type' => 'string', 'example' => '2020-12-20T14:51:23Z', 'title' => ''], + 'Status' => ['description' => 'The status of the IPv6 gateway. Valid values:'."\n" + ."\n" + .'- **Pending**: being configured.'."\n" + ."\n" + .'- **Available**: active.', 'type' => 'string', 'example' => 'Available', 'title' => ''], + 'VpcId' => ['description' => 'The ID of the VPC associated with the IPv6 gateway.', 'type' => 'string', 'example' => 'vpc-123sedrfswd23****', 'title' => ''], + 'Description' => ['description' => 'The description of the IPv6 gateway.', 'type' => 'string', 'example' => 'descriptionforIPv6GW', 'title' => ''], + 'Ipv6GatewayId' => ['description' => 'The ID of the IPv6 gateway.', 'type' => 'string', 'example' => 'ipv6gw-hp3rwmtmfhgisipv6gw-hp3rwmtmfhgis****', 'title' => ''], + 'ExpiredTime' => ['description' => 'The expiration time of the IPv6 gateway.', 'type' => 'string', 'example' => '2021-12-20T14:51:23Z', 'title' => ''], + 'BusinessStatus' => ['description' => 'The business status of the IPv6 gateway. Valid values:'."\n" + ."\n" + .'- **Normal**: Normal.'."\n" + ."\n" + .'- **FinancialLocked**: locked due to overdue payment.'."\n" + ."\n" + .'- **SecurityLocked**: locked for security reasons.', 'type' => 'string', 'example' => 'Normal', 'title' => ''], + 'Name' => ['description' => 'The name of the IPv6 gateway.', 'type' => 'string', 'example' => 'ipv6GW', 'title' => ''], + 'InstanceChargeType' => ['description' => 'The billing method of the IPv6 gateway.'."\n" + .' '."\n" + .'The value is **PostPaid**, which indicates pay-as-you-go.', 'type' => 'string', 'example' => 'PostPaid', 'title' => ''], + 'RegionId' => ['description' => 'The region ID of the IPv6 gateway.', 'type' => 'string', 'example' => 'cn-huhehaote', 'title' => ''], + 'ResourceGroupId' => ['description' => 'The resource group ID.', 'type' => 'string', 'example' => 'rg-bp67acfmxazb4ph****', 'title' => ''], + 'Tags' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Tag' => [ + 'description' => 'The tag list.', + 'type' => 'array', + 'items' => [ + 'description' => 'The tag list.', + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => 'The tag key.', 'type' => 'string', 'example' => 'FinanceDept', 'title' => ''], + 'Value' => ['description' => 'The tag value.', 'type' => 'string', 'example' => 'FinanceJoshua', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'OwnerId' => ['description' => 'The Alibaba Cloud account ID to which the IPv6 gateway belongs.'."\n" + ."\n" + .'>This value is of the Long type. Precision loss may occur in certain programming languages. Use this value with caution.>', 'type' => 'integer', 'format' => 'int64', 'example' => '2546073170691****'."\n", 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'Invalid.Status', - 'errorMessage' => 'The device or interface status invalid, or has been used..', - ], - [ - 'errorCode' => 'InvalidType.Malformd', - 'errorMessage' => 'The Type provided was invalid.', - ], - [ - 'errorCode' => 'InvalidPeerLocation.Malformd', - 'errorMessage' => 'The PeerLocation provided was invalid.', - ], - [ - 'errorCode' => 'InvalidLineOperator.Malformd', - 'errorMessage' => 'The LineOperator provided was invalid.', - ], - [ - 'errorCode' => 'InvalidPortType.Malformd', - 'errorMessage' => 'The PortType provided was invalid.', - ], - [ - 'errorCode' => 'InvalidDescription.Malformed', - 'errorMessage' => 'The specifid ?Description? is not valid.', - ], - [ - 'errorCode' => 'InvalidRedundantPhysicalConnectionId.NotFound', - 'errorMessage' => 'The RedundantPhysicalConnectionId does not found.', - ], - [ - 'errorCode' => 'InvalidName.Malformed', - 'errorMessage' => 'The specified ?Name? is not valid.', - ], - [ - 'errorCode' => 'QuotaExceeded.pConnPerAP', - 'errorMessage' => 'Physical connection count per ap quota exceed.', - ], - [ - 'errorCode' => 'InvalidBandwidth', - 'errorMessage' => 'invalid physical connection banwidth.', - ], - [ - 'errorCode' => 'InvalidRedundantPhysicalConnection', - 'errorMessage' => 'redundant physical connection doesn\'t belong to current user.', - ], - [ - 'errorCode' => 'InvalidRedundantPhysicalConnectionStatus', - 'errorMessage' => 'invalid redundant physical connection status.', - ], - [ - 'errorCode' => 'InvalidCircuitCode.Malformed', - 'errorMessage' => 'circuitCode is illegal.', - ], - [ - 'errorCode' => 'QuotaExceeded.freePconnPerAP', - 'errorMessage' => 'free physical connections count excceeded.', - ], - [ - 'errorCode' => 'InvalidPhysicalConnectionOperator.Malformed', - 'errorMessage' => 'Specified PhysicalConnection Operator is not valid.', - ], - [ - 'errorCode' => 'InvalidPhysicalConnectionPortType.Malformed', - 'errorMessage' => 'Specified PhysicalConnection PortType is not valid.', - ], - [ - 'errorCode' => 'InvalidPhysicalConnectionBandwidth.Malformed', - 'errorMessage' => 'Specified PhysicalConnection Bandwidth is not valid.', - ], - [ - 'errorCode' => 'IllegalParam.ClientToken', - 'errorMessage' => 'Token verify failed because client token length too long.', - ], - [ - 'errorCode' => 'InvalidPortType.NotFound', - 'errorMessage' => 'Specified port type is not found.', - ], - [ - 'errorCode' => 'OperationFailed.PconnTrafficNotEnable', - 'errorMessage' => 'The operation is failed because of PconnTrafficNotEnable.', - ], - [ - 'errorCode' => 'InvalidAccessPointId.NotEnabled', - 'errorMessage' => 'Invalid access point status.', - ], - [ - 'errorCode' => 'ResourceNotFound.AccessPointId', - 'errorMessage' => 'The specified resource of access point id is not found.', - ], - ], - 404 => [ - [ - 'errorCode' => 'InvalidPortType.NotFound', - 'errorMessage' => 'There are no resources with the portType.', - ], + 403 => [ + ['errorCode' => 'Forbidden', 'errorMessage' => 'User not authorized to operate on the specified resource.', 'description' => 'You do not have the permissions to manage the specified resource. Apply for the permissions and try again.'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"PhysicalConnectionId\\": \\"pc-bp1ciz7ekd2grn1as****\\",\\n \\"RequestId\\": \\"8A6A5EC5-6F6C-4906-9689-56ACE58A13E0\\"\\n}","errorExample":""},{"type":"xml","example":"\\n pc-bp1ciz7ekd2grn1as****\\n 8A6A5EC5-6F6C-4906-9689-56ACE58A13E0\\n","errorExample":""}]', - 'title' => 'CreatePhysicalConnection', - 'description' => 'You can apply for a dedicated Express Connect circuit for yourself or create a hosted connection for a tenant. After your application is approved, the Express Connect circuit changes to the **Initial** state. You can contact the connectivity provider to start construction.'."\n" - ."\n" - .'When you call this operation, take note of the following limits:'."\n" - ."\n" - .'* If your Alibaba Cloud account has more than five Express Connect circuits that are not in the **Enabled** state, you cannot apply for another Express Connect circuit.'."\n" - .'* If your Alibaba Cloud account has an Express Connect circuit with overdue payments, you cannot apply for another Express Connect circuit.'."\n", + 'title' => 'Query created iPv6 gateways', + 'summary' => 'Queries IPv6 gateways created in a specified region by calling the DescribeIpv6Gateways operation.', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'ApplyPhysicalConnectionLOA' => [ - 'methods' => [ - 'post', - 'get', + 'changeSet' => [ + ['createdAt' => '2025-04-17T08:31:24.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2025-04-14T06:08:17.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2025-02-08T07:52:01.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2024-07-31T02:46:00.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2022-07-29T04:09:38.000Z', 'description' => 'Error codes changed'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DescribeIpv6Gateways'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'vpc:DescribeIpv6Gateways', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'conditional', 'product' => 'VPC', 'resourceType' => 'Ipv6Gateway', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:ipv6gateway/*'], + ['validationType' => 'conditional', 'product' => 'VPC', 'resourceType' => 'Ipv6Gateway', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:ipv6gateway/{#Ipv6GatewayId}'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"PageSize\\": 10,\\n \\"RequestId\\": \\"E3A06196-3E7C-490D-8F39-CB4B5A0CE8AD\\",\\n \\"PageNumber\\": 1,\\n \\"TotalCount\\": 2,\\n \\"Ipv6Gateways\\": {\\n \\"Ipv6Gateway\\": [\\n {\\n \\"CreationTime\\": \\"2020-12-20T14:51:23Z\\",\\n \\"Status\\": \\"Available\\",\\n \\"VpcId\\": \\"vpc-123sedrfswd23****\\",\\n \\"Description\\": \\"descriptionforIPv6GW\\",\\n \\"Ipv6GatewayId\\": \\"ipv6gw-hp3rwmtmfhgisipv6gw-hp3rwmtmfhgis****\\",\\n \\"ExpiredTime\\": \\"2021-12-20T14:51:23Z\\",\\n \\"BusinessStatus\\": \\"Normal\\",\\n \\"Name\\": \\"ipv6GW\\",\\n \\"InstanceChargeType\\": \\"PostPaid\\",\\n \\"RegionId\\": \\"cn-huhehaote\\",\\n \\"ResourceGroupId\\": \\"rg-bp67acfmxazb4ph****\\",\\n \\"Tags\\": {\\n \\"Tag\\": [\\n {\\n \\"Key\\": \\"FinanceDept\\",\\n \\"Value\\": \\"FinanceJoshua\\"\\n }\\n ]\\n },\\n \\"OwnerId\\": 0\\n }\\n ]\\n }\\n}","type":"json"}]', + ], + 'DescribeNatGatewayAssociateNetworkInterfaces' => [ + 'summary' => 'Queries the list of elastic network interfaces (ENIs) associated with a VPC NAT gateway when the VPC NAT gateway is referenced as an EPS resource by PrivateLink. This feature is currently unavailable.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], + 'operationType' => 'read', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'update', - ], + 'systemTags' => ['operationType' => 'list', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ - [ - 'name' => 'ClientToken', - 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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.'."\n" - ."\n" - .'> 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.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-426655440000', - ], - ], - [ - 'name' => 'ClientToken', - 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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.'."\n" - ."\n" - .'> 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.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-426655440000', - ], - ], [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the Express Connect circuit.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], - ], - [ - 'name' => 'Bandwidth', - 'in' => 'query', - 'schema' => [ - 'description' => 'The bandwidth of the Express Connect circuit. Unit: Mbit/s.'."\n" - ."\n" - .'Valid values: **2** to **10240**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '3', - 'default' => '100', - ], - ], - [ - 'name' => 'PeerLocation', - 'in' => 'query', - 'schema' => [ - 'description' => 'The geographic location where the Express Connect circuit is deployed.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The region ID of the NAT gateway.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'InstanceId', + 'name' => 'NatGatewayId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the Express Connect circuit.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'pc-bp1qrb3044eqi****', - ], + 'schema' => ['description' => 'The ID of the NAT gateway to query.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'ngw-bp1uewa15k4iy5770****', 'title' => ''], ], [ - 'name' => 'CompanyName', + 'name' => 'ResourceGroupId', 'in' => 'query', - 'schema' => [ - 'description' => 'The name of the customer company that requires the Express Connect circuit.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'company', - ], + 'schema' => ['description' => 'The resource group ID.', 'type' => 'string', 'required' => false, 'example' => 'rg-acfmxazdjdhd****', 'title' => ''], ], [ - 'name' => 'LineType', + 'name' => 'Tag', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => 'The type of the Express Connect circuit. Valid values:'."\n" - ."\n" - .'* **MSTP**: MSTP line'."\n" - .'* **MPLSVPN**: MPLSVPN line'."\n" - .'* **FIBRE**: fiber line'."\n" - .'* **Other**: other types'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'FIBRE', + 'description' => 'The list of resource tags.', + 'type' => 'array', + 'items' => [ + 'description' => 'The list of tags.', + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => 'The tag key of the instance. You can specify up to 20 tag keys. The tag key cannot be an empty string.'."\n" + ."\n" + .'The tag key can be up to 64 characters in length and cannot start with `aliyun` or `acs:`. It cannot contain `http://` or `https://`.', 'type' => 'string', 'required' => false, 'example' => 'FinanceDept', 'title' => ''], + 'Value' => ['description' => 'The tag key of the instance. You can specify up to 20 tag keys. The tag key cannot be an empty string.'."\n" + ."\n" + .'The tag key can be up to 64 characters in length and cannot start with `aliyun` or `acs:`. It cannot contain `http://` or `https://`.', 'type' => 'string', 'required' => false, 'example' => 'FinanceJoshua', 'title' => ''], + ], + 'required' => false, + 'title' => '', + 'example' => '', + ], + 'required' => false, + 'maxItems' => 21, + 'title' => '', + 'example' => '', ], ], [ - 'name' => 'Si', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The construction company.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'company', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'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.'."\n" + ."\n" + .'> If you do not specify this parameter, the system automatically uses the **RequestId** of the API request as the **ClientToken**. The **RequestId** may be different for each API request.', 'type' => 'string', 'required' => false, 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3FF****', 'title' => ''], ], [ - 'name' => 'ConstructionTime', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The time when construction started. Specify the time in the ISO 8601 standard in the YYYY-MM-DDThh:mm:ssZ format. The time is displayed in UTC.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => '2022-02-28T16:00:00Z', - ], + 'schema' => ['description' => 'The region ID of the NAT gateway.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'PMInfo', + 'name' => 'Filter', 'in' => 'query', - 'style' => 'repeatList', + 'style' => 'flat', 'schema' => [ - 'description' => 'The information about the construction engineer.'."\n", + 'description' => 'The filter information. You can specify key-value pairs to filter the query results.', 'type' => 'array', 'items' => [ - 'description' => '', + 'description' => 'The filter information.', 'type' => 'object', 'properties' => [ - 'PMCertificateNo' => [ - 'description' => 'The ID number of the construction engineer. You can specify the ID number of an ID card or an international passport.'."\n" - ."\n" - .'You can configure information for up to 16 construction engineers.'."\n", - 'type' => 'string', - 'required' => false, - 'docRequired' => true, - 'example' => '5****************9', - ], - 'PMName' => [ - 'description' => 'The name of the construction engineer.'."\n", - 'type' => 'string', - 'required' => false, - 'docRequired' => true, - 'example' => 'Zhangsan', - ], - 'PMCertificateType' => [ - 'description' => 'The type of the identity document of the construction engineer. Valid values:'."\n" - ."\n" - .'* **IDCard**'."\n" - .'* **Passport**'."\n", - 'type' => 'string', - 'required' => false, - 'docRequired' => true, - 'example' => 'IDCard', - ], - 'PMGender' => [ - 'description' => 'The gender of the construction engineer.'."\n", - 'type' => 'string', - 'required' => false, - 'docRequired' => true, - 'example' => 'Male', - ], - 'PMContactInfo' => [ - 'description' => 'The contact information about the construction engineer.'."\n", - 'type' => 'string', - 'required' => false, - 'docRequired' => true, - 'example' => '1390000****', - ], + 'Key' => ['description' => 'The key of the filter. Valid values:'."\n" + ."\n" + .'- ResourceId'."\n" + .'>Set Value to the ID of the EPS resource that you want to query.'."\n" + .'- NetworkInterfaceId'."\n" + .'>Set Value to the ID of the elastic network interface (ENI), which is a network interface controller (NIC), that you want to query.'."\n" + .'- ResourceOwnerId'."\n" + .'>Set Value to the UID of the user to whom the EPS resource belongs for resource ownership query.', 'type' => 'string', 'required' => false, 'example' => 'ResourceId', 'title' => ''], + 'Value' => ['description' => 'The filter value. You can specify multiple values separated by commas (,).', 'type' => 'string', 'required' => false, 'example' => 'ep-8psre8c8936596cd****', 'title' => ''], ], 'required' => false, - 'docRequired' => true, + 'title' => '', + 'example' => '', ], 'required' => false, - 'maxItems' => 16, + 'title' => '', + 'example' => '', ], ], + [ + 'name' => 'NextToken', + 'in' => 'query', + 'schema' => ['description' => 'The pagination token. Valid values:'."\n" + ."\n" + .'- If this is the first query or no subsequent query is required, leave this parameter empty.'."\n" + ."\n" + .'- If a subsequent query is required, set the value to the **NextToken** value returned in the previous API call.', 'type' => 'string', 'required' => false, 'example' => 'caeba0bbb2be03f84eb48b699f0a****', 'title' => ''], + ], + [ + 'name' => 'MaxResults', + 'in' => 'query', + 'schema' => ['description' => 'The number of entries per page for a paged query. Valid values: **1** to **100**. Default value: **20**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '20', 'title' => ''], + ], ], 'responses' => [ 200 => [ - 'headers' => [], 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => 'A47BD386-7FDE-42C4-8D22-C6223D18AA1C', + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '2315DEB7-5E92-423A-91F7-4C1EC9AD****', 'title' => ''], + 'NextToken' => ['description' => 'The pagination token. Valid values:'."\n" + ."\n" + .'- If **NextToken** is empty, no subsequent query exists.'."\n" + ."\n" + .'- If **NextToken** is returned, the value indicates the token for the next query.', 'type' => 'string', 'example' => 'caeba0bbb2be03f84eb48b699f0a****', 'title' => ''], + 'MaxResults' => ['description' => 'The number of entries per page for a paged query. Valid values: **1** to **100**. Default value: **20**.', 'type' => 'integer', 'format' => 'int32', 'example' => '20', 'title' => ''], + 'NatGatewayId' => ['description' => 'The instance ID of the VPC NAT gateway.', 'type' => 'string', 'example' => 'ngw-bp1uewa15k4iy5770****', 'title' => ''], + 'TotalCount' => ['description' => 'The total number of entries returned.', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''], + 'AssociateNetworkInterfaces' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'AssociateNetworkInterface' => [ + 'description' => 'The list of elastic network interfaces (ENIs) associated with the VPC NAT gateway. An ENI is a network interface controller (NIC).', + 'type' => 'array', + 'items' => [ + 'description' => 'The details of the associate with ENI operation. An elastic network interface (ENI) is a network interface controller (NIC).', + 'type' => 'object', + 'properties' => [ + 'NetworkInterfaceId' => ['description' => 'The ID of the elastic network interface (ENI). An ENI is a network interface controller (NIC).', 'type' => 'string', 'example' => 'eni-gw8g131ef2dnbu3k****', 'title' => ''], + 'ResourceId' => ['description' => 'The EPS resource ID.', 'type' => 'string', 'example' => 'ep-8psre8c8936596cd****', 'title' => ''], + 'ResourceType' => ['description' => 'The EPS resource type.', 'type' => 'string', 'example' => 'PrivateLink', 'title' => ''], + 'ResourceOwnerId' => ['description' => 'The UID of the user who has resource ownership of the EPS resource.', 'type' => 'string', 'example' => '138859086900****', 'title' => ''], + 'IPv4Sets' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'IPv4Set' => [ + 'description' => 'The collection of IPv4 addresses of the elastic network interface (ENI). An ENI is a network interface controller (NIC).', + 'type' => 'array', + 'items' => [ + 'description' => 'The IPv4 address information of the elastic network interface (ENI). An ENI is a network interface controller (NIC).', + 'type' => 'object', + 'properties' => [ + 'IPv4Address' => ['description' => 'The private IP address of the elastic network interface (ENI). An ENI is a network interface controller (NIC).', 'type' => 'string', 'example' => '172.17.**.**', 'title' => ''], + 'Primary' => ['description' => 'Indicates whether this is the primary private IP address. Valid values:'."\n" + ."\n" + .'- true: primary private IP address.'."\n" + ."\n" + .'- false: secondary private IP address.', 'type' => 'boolean', 'example' => 'true', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'TunnelIndex' => ['description' => 'The tunnel index ID.', 'type' => 'string', 'example' => '41a5489ea2a0****', 'title' => ''], + 'ResourceVpcId' => ['description' => 'The VPC ID of the EPS resource.', 'type' => 'string', 'example' => 'vpc-bp1di7uewzmtvfuq8****', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', ], + 'Count' => ['description' => 'The number of associated ENIs.', 'type' => 'integer', 'format' => 'int32', 'example' => '0', 'title' => ''], ], 'description' => '', + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'MissingParam.AliUid', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'MissingParam.InstanceId', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'MissingParam.RegionNo', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'MissingParam.PMInfo', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'IllegalParam.LineOperator', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'IllegalParam.LineType', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'IllegalParam.PeerLocation', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'IllegalParam.PmCertificateType', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'IllegalParam.PmCertificateNo', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'IllegalParam.PmContactInfo', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'IllegalParam.PmGender', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'IllegalParam.PmName', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'IllegalParam.Si', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'InvalidConstructionTime.Malformed', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'InvalidInstanceId.NotFound', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'IncorrectStatus.PhysicalConnectionLOA', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'IncorrectStatus.PhysicalConnection', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'IllegalParam.CompanyName', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'OperationFailed.PconnTrafficNotEnable', - 'errorMessage' => 'The operation is failed because of PconnTrafficNotEnable.', - ], - [ - 'errorCode' => 'IllegalParam.Bandwidth', - 'errorMessage' => 'The param of bandwidth is illegal.', - ], + ['errorCode' => 'InstanceNotExist.NatGatewayId', 'errorMessage' => 'The NAT gateway instance is not exist.', 'description' => 'The NAT Gateway instance does not exist.'], + ['errorCode' => 'IllegalParam.ResourceOwnerId', 'errorMessage' => 'The param of resource owner ID is illegal.', 'description' => 'The parameter of resource owner ID is illegal.'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"A47BD386-7FDE-42C4-8D22-C6223D18AA1C\\"\\n}","errorExample":""},{"type":"xml","example":"\\n A47BD386-7FDE-42C4-8D22-C6223D18AA1C\\n","errorExample":""}]', - 'title' => 'ApplyPhysicalConnectionLOA', - 'summary' => 'Applies for a Letter of Authorization (LOA) for an Express Connect circuit.', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'SecondApplyPhysicalConnectionLOA' => [ - 'summary' => 'If your application for a Letter of Authorization (LOA) by calling the ApplyPhysicalConnectionLOA operation is denied, you can call this operation to apply again.', - 'methods' => [ - 'post', - 'get', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'Query elastic network interfaces (ENIs) associated with a VPC NAT gateway', + 'changeSet' => [ + ['createdAt' => '2024-12-30T03:59:17.000Z', 'description' => 'Error codes changed, Response parameters changed'], + ['createdAt' => '2024-10-23T06:17:17.000Z', 'description' => 'Error codes changed, Response parameters changed'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '1200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DescribeNatGatewayAssociateNetworkInterfaces'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'vpc:DescribeNatGatewayAssociateNetworkInterfaces', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'conditional', 'product' => 'VPC', 'resourceType' => 'NatGateway', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:natgateway/{#NatGatewayId}'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"2315DEB7-5E92-423A-91F7-4C1EC9AD****\\",\\n \\"NextToken\\": \\"caeba0bbb2be03f84eb48b699f0a****\\",\\n \\"MaxResults\\": 20,\\n \\"NatGatewayId\\": \\"ngw-bp1uewa15k4iy5770****\\",\\n \\"TotalCount\\": 1,\\n \\"AssociateNetworkInterfaces\\": {\\n \\"AssociateNetworkInterface\\": [\\n {\\n \\"NetworkInterfaceId\\": \\"eni-gw8g131ef2dnbu3k****\\",\\n \\"ResourceId\\": \\"ep-8psre8c8936596cd****\\",\\n \\"ResourceType\\": \\"PrivateLink\\",\\n \\"ResourceOwnerId\\": \\"138859086900****\\",\\n \\"IPv4Sets\\": {\\n \\"IPv4Set\\": [\\n {\\n \\"IPv4Address\\": \\"172.17.**.**\\",\\n \\"Primary\\": true\\n }\\n ]\\n },\\n \\"TunnelIndex\\": \\"41a5489ea2a0****\\",\\n \\"ResourceVpcId\\": \\"vpc-bp1di7uewzmtvfuq8****\\"\\n }\\n ]\\n },\\n \\"Count\\": 0\\n}","type":"json"}]', + ], + 'DescribeNatGateways' => [ + 'summary' => 'Calls DescribeNatGateways to query the detailed information of NAT gateways that meet specified conditions in a specified region in list form.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'none', - 'riskType' => 'none', - 'chargeType' => 'free', - ], + 'operationType' => 'read', + 'systemTags' => ['operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ - 'name' => 'ClientToken', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'You can use the client to generate the token, but you must make sure that the token is unique among different requests.'."\n" - ."\n" - .'> 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.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-426655440000', - ], + 'schema' => ['description' => 'The region ID of the NAT gateway to query.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to obtain the region ID.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'RegionId', + 'name' => 'NatGatewayId', 'in' => 'query', - 'schema' => [ - 'description' => 'The region where the Express Connect circuit is deployed. You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The ID of the NAT gateway to query.', 'type' => 'string', 'required' => false, 'example' => 'ngw-bp1uewa15k4iy5770****', 'title' => ''], ], [ - 'name' => 'Bandwidth', + 'name' => 'VpcId', 'in' => 'query', - 'schema' => [ - 'description' => 'The bandwidth of the Express Connect circuit. Unit: Mbit/s.'."\n" - ."\n" - .'Valid values: **2** to **10240**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '3', - 'default' => '100', - ], + 'schema' => ['description' => 'The ID of the VPC to which the NAT gateway to query belongs.', 'type' => 'string', 'required' => false, 'example' => 'vpc-bp15zckdt37pq72z****', 'title' => ''], ], [ - 'name' => 'PeerLocation', + 'name' => 'Name', 'in' => 'query', - 'schema' => [ - 'description' => 'The geographic location where the Express Connect circuit is deployed.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'XX Number, XX Road, XX Town, XX District, Hangzhou City, Zhejiang Province.', - ], + 'schema' => ['description' => 'The name of the NAT gateway to query.'."\n" + ."\n" + .'The name must be 1 to 128 characters in length and cannot start with `http://` or `https://`.', 'type' => 'string', 'required' => false, 'example' => 'test', 'title' => ''], ], [ - 'name' => 'InstanceId', + 'name' => 'InstanceChargeType', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the Express Connect circuit.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'pc-bp1qrb3044eqi****', - ], + 'schema' => ['description' => 'The billing method of the NAT gateway instance to query. Valid values:'."\n" + ."\n" + .''."\n" + .'- **PostPaid**: pay-as-you-go.'."\n" + .'- **PrePaid**: the legacy subscription billing method. The subscription billing method is no longer available for new purchases.'."\n" + ."\n" + .''."\n" + ."\n" + .'The billing method of the NAT gateway instance to query. Valid value: **PostPaid** (pay-as-you-go).'."\n", 'type' => 'string', 'required' => false, 'example' => 'PostPaid', 'title' => ''], ], [ - 'name' => 'CompanyName', + 'name' => 'Spec', 'in' => 'query', - 'schema' => [ - 'description' => 'The name of the customer company that requires the Express Connect circuit.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'company', - ], + 'schema' => ['description' => 'The specification of the Internet NAT gateway. Only when **InstanceChargeType** is **PrePaid** (legacy subscription Internet NAT gateway), creating a NAT gateway by fixed specification is supported. Valid values:'."\n" + ."\n" + .''."\n" + .'- **Small** (default): small.'."\n" + .'- **Middle**: medium.'."\n" + .'- **Large**: large.'."\n" + ."\n" + .''."\n" + .'The specification of the NAT gateway. Leave this parameter empty.', 'type' => 'string', 'required' => false, 'example' => '中国站示例值:Small,国际站示例值:无需填写', 'title' => ''], ], [ - 'name' => 'LineType', + 'name' => 'NatType', 'in' => 'query', - 'schema' => [ - 'description' => 'The type of Express Connect circuit. Valid values:'."\n" - ."\n" - .'* **MSTP**'."\n" - .'* **MPLSVPN**'."\n" - .'* **FIBRE**'."\n" - .'* **Other**'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'FIBRE', - ], + 'schema' => ['description' => 'The type of the NAT gateway. Valid value: **Enhanced** (enhanced NAT gateway).', 'type' => 'string', 'required' => false, 'example' => 'Enhanced', 'title' => ''], ], [ - 'name' => 'Si', + 'name' => 'ResourceGroupId', 'in' => 'query', - 'schema' => [ - 'description' => 'The construction company.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'company', - ], + 'schema' => ['description' => 'The ID of the resource group to which the NAT gateway to query belongs.', 'type' => 'string', 'required' => false, 'example' => 'rg-bp67acfmxazb4ph****', 'title' => ''], ], [ - 'name' => 'ConstructionTime', + 'name' => 'PageNumber', 'in' => 'query', - 'schema' => [ - 'description' => 'The time when construction started. Specify the time in the ISO 8601 standard in the YYYY-MM-DDThh:mm:ssZ format. The time is displayed in UTC.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => '2022-02-28T16:00:00Z', - ], + 'schema' => ['description' => 'The page number. Default value: **1**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'minimum' => '1', 'default' => '1', 'example' => '10', 'title' => ''], ], [ - 'name' => 'PMInfo', + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => ['description' => 'The number of entries per page for paginated queries. Maximum value: **50**. Default value: **10**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '50', 'minimum' => '1', 'default' => '10', 'example' => '1', 'title' => ''], + ], + [ + 'name' => 'DryRun', + 'in' => 'query', + 'schema' => ['description' => 'Specifies whether to perform a dry run. Valid values:'."\n" + ."\n" + .'- **true**: performs a dry run without querying resource status. The check items include whether the AccessKey pair is valid, whether the RAM user is authorized, and whether required parameters are specified. If the check fails, the corresponding error is returned. If the check succeeds, the error code `DryRunOperation` is returned.'."\n" + ."\n" + .'- **false** (default): performs a normal request. After the check succeeds, a 2xx HTTP status code is returned and the resource status is queried directly.', 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], + ], + [ + 'name' => 'Status', + 'in' => 'query', + 'schema' => ['description' => 'The status of the NAT gateway to query. Valid values:'."\n" + .'- **Creating**: Creating a NAT gateway is an asynchronous operation. The status is **Creating** before the creation is complete.'."\n" + ."\n" + .'- **Available**: The status after the NAT gateway is created. This is a stable status.'."\n" + ."\n" + .'- **Modifying**: Modifying a NAT gateway is an asynchronous operation. The status is **Modifying** during the modification process.'."\n" + ."\n" + .'- **Deleting**: Deleting a NAT gateway is an asynchronous operation. The status is **Deleting** during the deletion process.'."\n" + ."\n" + .'- **Converting**: Converting a standard NAT gateway to an enhanced NAT gateway is an asynchronous operation. The status is **Converting** during the conversion process.', 'type' => 'string', 'required' => false, 'example' => 'Available', 'title' => ''], + ], + [ + 'name' => 'NetworkType', + 'in' => 'query', + 'schema' => ['description' => 'The type of the NAT gateway to query. Valid values:'."\n" + ."\n" + .'- **internet**: Internet NAT gateway.'."\n" + .'- **intranet**: VPC NAT gateway.', 'type' => 'string', 'required' => false, 'example' => 'internet', 'title' => ''], + ], + [ + 'name' => 'Tag', 'in' => 'query', 'style' => 'repeatList', 'schema' => [ - 'description' => 'The information about the construction engineer.'."\n", + 'description' => 'The list of tags.', 'type' => 'array', 'items' => [ - 'description' => '', + 'description' => 'The list of tags.', 'type' => 'object', 'properties' => [ - 'PMCertificateNo' => [ - 'description' => 'The ID number of the construction engineer. You can specify the ID number of an ID card or an international passport.'."\n" - ."\n" - .'You can configure information for up to 16 construction engineers.'."\n", - 'type' => 'string', - 'required' => false, - 'docRequired' => true, - 'example' => '5****************9 '."\n", - ], - 'PMName' => [ - 'description' => 'The name of the construction engineer.'."\n", - 'type' => 'string', - 'required' => false, - 'docRequired' => true, - 'example' => 'Zhangsan', - ], - 'PMCertificateType' => [ - 'description' => 'The type of the identity document of the construction engineer. Valid values:'."\n" - ."\n" - .'* **IDCard**'."\n" - .'* **Passport**'."\n", - 'type' => 'string', - 'required' => false, - 'docRequired' => true, - 'example' => 'IDCard', - ], - 'PMGender' => [ - 'description' => 'The gender of the construction engineer.'."\n", - 'type' => 'string', - 'required' => false, - 'docRequired' => true, - 'example' => 'Male', - ], - 'PMContactInfo' => [ - 'description' => 'The contact information about the construction engineer.'."\n", - 'type' => 'string', - 'required' => false, - 'docRequired' => true, - 'example' => '1390000****', - ], + 'Key' => ['description' => 'The tag key of the NAT gateway instance. You can specify up to 20 tag keys.'."\n" + ."\n" + .'The tag key can be up to 128 characters in length. It cannot start with `aliyun` or `acs:`, and cannot contain `http://` or `https://`.', 'type' => 'string', 'required' => false, 'example' => 'KeyTest', 'title' => ''], + 'Value' => ['description' => 'The tag value of the NAT gateway instance. You can specify up to 20 tag values.'."\n" + ."\n" + .'The tag value can be up to 128 characters in length. It cannot start with `aliyun` or `acs:`, and cannot contain `http://` or `https://`.', 'type' => 'string', 'required' => false, 'example' => 'valueTest', 'title' => ''], ], 'required' => false, - 'docRequired' => true, + 'title' => '', + 'example' => '', ], 'required' => false, - 'maxItems' => 16, - ], - ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => 'A47BD386-7FDE-42C4-8D22-C6223D18AA1C '."\n", - ], - ], - 'description' => '', - ], - ], - ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'OperationFailed.PconnTrafficNotEnable', - 'errorMessage' => 'The operation is failed because of PconnTrafficNotEnable.', - ], - [ - 'errorCode' => 'IllegalParam.Bandwidth', - 'errorMessage' => 'Invalid Bandwidth.', - ], - [ - 'errorCode' => 'IllegalParam.CompanyLocalizedName', - 'errorMessage' => 'Invalid CompanyLocalizedName.', - ], - [ - 'errorCode' => 'IllegalParam.CompanyName', - 'errorMessage' => 'Invalid CompanyName.', - ], - [ - 'errorCode' => 'IllegalParam.LineType', - 'errorMessage' => 'Invalid LineType.', - ], - [ - 'errorCode' => 'IllegalParam.PeerLocation', - 'errorMessage' => 'Invalid PeerLocation.', - ], - [ - 'errorCode' => 'IllegalParam.PmCertificateType', - 'errorMessage' => 'Invalid PmCertificateType.', - ], - [ - 'errorCode' => 'IllegalParam.PmCertificateNo', - 'errorMessage' => 'Invalid PmCertificateNo.', - ], - [ - 'errorCode' => 'IllegalParam.PmContactInfo', - 'errorMessage' => 'Invalid PmContactInfo.', - ], - [ - 'errorCode' => 'IllegalParam.PmGender', - 'errorMessage' => 'Invalid PmGender.', - ], - [ - 'errorCode' => 'IllegalParam.PmName', - 'errorMessage' => 'Invalid PmName.', - ], - [ - 'errorCode' => 'IllegalParam.Si', - 'errorMessage' => 'Invalid Si.', - ], - [ - 'errorCode' => 'InvalidInstanceId.NotFound', - 'errorMessage' => 'InstanceId is not found.', - ], - [ - 'errorCode' => 'IncorrectStatus.PhysicalConnection', - 'errorMessage' => 'Invalid physical connection status.', - ], - [ - 'errorCode' => 'IncorrectStatus.PhysicalConnectionLOA', - 'errorMessage' => 'Invalid Express Connect circuit LOA status.', - ], - [ - 'errorCode' => 'OperationDenied.LOAForVirtualPhysicalConnection', - 'errorMessage' => 'The operation is not allowed because of LOAForVirtualPhysicalConnection.', - ], - [ - 'errorCode' => 'MissingParam.InstanceId', - 'errorMessage' => 'The parameter InstanceId is mandatory.', - ], - [ - 'errorCode' => 'MissingParam.ConstructionTime', - 'errorMessage' => 'The parameter ConstructionTime is mandatory.', - ], - [ - 'errorCode' => 'MissingParam.PMInfo', - 'errorMessage' => 'The parameter PMInfo is mandatory.', + 'maxItems' => 20, + 'title' => '', + 'example' => '', ], ], - ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"A47BD386-7FDE-42C4-8D22-C6223D18AA1C\\\\t\\\\n\\"\\n}","type":"json"}]', - 'title' => 'SecondApplyPhysicalConnectionLOA', - ], - 'CreatePhysicalConnectionSetupOrder' => [ - 'summary' => 'Creates an order for initial installation of an Express Connect circuit.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], - ], - ], - 'operationType' => 'readAndWrite', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'create', - 'riskType' => 'none', - ], - 'parameters' => [ [ - 'name' => 'RegionId', + 'name' => 'ZoneId', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the Express Connect circuit.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-beijing', - ], + 'schema' => ['title' => '', 'description' => 'The ID of the zone where the NAT gateway is deployed.', 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou-b'], ], [ - 'name' => 'AccessPointId', + 'name' => 'AvailabilityMode', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the access point.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'ap-cn-beijing-ft-A', - ], + 'schema' => ['type' => 'string', 'description' => '', 'title' => '', 'example' => ''], ], - [ - 'name' => 'LineOperator', - 'in' => 'query', - 'schema' => [ - 'description' => 'The connectivity provider of the Express Connect circuit. Valid values:'."\n" - ."\n" - .'* **CT**: China Telecom'."\n" - .'* **CU**: China Unicom'."\n" - .'* **CM**: China Mobile'."\n" - .'* **CO**: other connectivity providers in the Chinese mainland'."\n" - .'* **Equinix**: Equinix'."\n" - .'* **Other**: other connectivity providers outside the Chinese mainland'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'CT', - ], - ], - [ - 'name' => 'PortType', - 'in' => 'query', - 'schema' => [ - 'description' => 'The port type of the Express Connect circuit. Valid values:'."\n" - ."\n" - .'* **100Base-T**: 100 Mbit/s copper Ethernet port'."\n" - .'* **1000Base-T** (default): 1,000 Mbit/s copper Ethernet port'."\n" - .'* **1000Base-LX**: 1,000 Mbit/s single-mode optical port (10 km)'."\n" - .'* **10GBase-T**: 10,000 Mbit/s copper Ethernet port'."\n" - .'* **10GBase-LR**: 10,000 Mbit/s single-mode optical port (10 km)'."\n" - .'* **40GBase-LR**: 40,000 Mbit/s single-mode optical port'."\n" - .'* **100GBase-LR**: 100,000 Mbit/s single-mode optical port'."\n" - ."\n" - .'> Whether 40GBase-LR and 100GBase-LR ports can be created depends on resource supplies. For more information, contact your account manager.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '100Base-T', - 'default' => '1000Base-T', - ], - ], - [ - 'name' => 'RedundantPhysicalConnectionId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the redundant physical connection. The redundant physical connection must be in the **Allocated**, **Confirmed**, or **Enabled** state.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'pc-bp10zsv5ntp****', - ], - ], - [ - 'name' => 'AutoPay', - 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to enable automatic payments. Valid values:'."\n" - ."\n" - .'* **false** (default): disables automatic payment.'."\n" - .'* **true**'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], - ], - [ - 'name' => 'ClientToken', - 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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.'."\n" - ."\n" - .'> 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.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '318BB676-0A2B-43A0-9AD8-F1D34E93750F', - ], - ], - [ - 'name' => 'ClientToken', - 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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.'."\n" - ."\n" - .'> 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.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '318BB676-0A2B-43A0-9AD8-F1D34E93750F', - ], - ], - ], - 'responses' => [ - 200 => [ + ], + 'responses' => [ + 200 => [ 'schema' => [ + 'description' => 'The number of entries per page.', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => 'F7A6301A-64BA-41EC-8284-8F4838C15D1F', - ], - 'OrderId' => [ - 'description' => 'The order ID.'."\n", - 'type' => 'string', - 'example' => '202844382740728', - ], - 'PhysicalConnectionId' => [ - 'description' => 'The ID of the Express Connect circuit.'."\n", - 'type' => 'string', - 'example' => 'pc-2zegmc02v7ss4****', + 'PageSize' => ['description' => 'The number of entries per page.', 'type' => 'integer', 'format' => 'int32', 'example' => '10', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '4EC47282-1B74-4534-BD0E-403F3EE64CAF', 'title' => ''], + 'PageNumber' => ['description' => 'The current page number.', 'type' => 'integer', 'format' => 'int32', 'example' => '10', 'title' => ''], + 'TotalCount' => ['description' => 'The total number of entries in the NAT gateway list.', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''], + 'NatGateways' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'NatGateway' => [ + 'description' => 'The detailed information of the NAT gateway.', + 'type' => 'array', + 'items' => [ + 'description' => 'The detailed information of the NAT gateway.', + 'type' => 'object', + 'properties' => [ + 'Status' => ['description' => 'The status of the NAT gateway. Valid values:'."\n" + ."\n" + .'- **Creating**: Creating a NAT gateway is an asynchronous operation. The status is **Creating** before the creation is complete.'."\n" + ."\n" + .'- **Available**: The status after the NAT gateway is created. This is a stable status.'."\n" + ."\n" + .'- **Modifying**: Modifying a NAT gateway is an asynchronous operation. The status is **Modifying** during the modification process.'."\n" + ."\n" + .'- **Deleting**: Deleting a NAT gateway is an asynchronous operation. The status is **Deleting** during the deletion process.'."\n" + ."\n" + .'- **Converting**: Converting a standard NAT gateway to an enhanced NAT gateway is an asynchronous operation. The status is **Converting** during the conversion process.', 'type' => 'string', 'example' => 'Creating', 'title' => ''], + 'CreationTime' => ['description' => 'The creation time of the NAT gateway.', 'type' => 'string', 'example' => '2021-06-08T12:20:20Z', 'title' => ''], + 'VpcId' => ['description' => 'The ID of the VPC to which the NAT gateway belongs.', 'type' => 'string', 'example' => 'vpc-bp15zckdt37pq72z****', 'title' => ''], + 'NatType' => ['description' => 'The type of the NAT gateway. Valid value: **Enhanced** (enhanced NAT gateway).', 'type' => 'string', 'example' => 'Enhanced', 'title' => ''], + 'AutoPay' => ['description' => 'Specifies whether to automatically pay the order. Valid values:'."\n" + ."\n" + .'- **false**: does not automatically pay the order.'."\n" + .'- **true**: automatically pays the order.', 'type' => 'boolean', 'example' => 'false', 'title' => ''], + 'Spec' => ['description' => 'The specification of the Internet NAT gateway. Only when **InstanceChargeType** is **PrePaid** (legacy subscription Internet NAT gateway), creating a NAT gateway by fixed specification is supported. Valid values:'."\n" + ."\n" + .''."\n" + .'- **Small**: small.'."\n" + .'- **Middle**: medium.'."\n" + .'- **Large**: large.'."\n" + ."\n" + .''."\n" + ."\n" + .'The specification of the NAT gateway. The return value of this parameter is empty.'."\n" + ."\n" + .'When **InternetChargeType** is **PayByLcu**, the return value is empty.', 'type' => 'string', 'example' => 'Small', 'title' => ''], + 'DeletionProtection' => ['description' => 'Indicates whether deletion protection is enabled. Valid values:'."\n" + ."\n" + .'- **true**: enabled.'."\n" + ."\n" + .'- **false**: disabled.', 'type' => 'boolean', 'example' => 'true', 'title' => ''], + 'NetworkType' => ['description' => 'The type of the NAT gateway. Valid values:'."\n" + ."\n" + .'- **internet**: Internet NAT gateway.'."\n" + ."\n" + .'- **intranet**: VPC NAT gateway.', 'type' => 'string', 'example' => 'internet', 'title' => ''], + 'SecurityProtectionEnabled' => ['description' => 'Indicates whether the firewall feature is enabled. Valid values:'."\n" + ."\n" + .'- **false**: disabled.'."\n" + ."\n" + .'- **true**: enabled.', 'type' => 'boolean', 'example' => 'false', 'title' => ''], + 'InstanceChargeType' => ['description' => 'The billing method of the NAT gateway instance. Valid values:'."\n" + ."\n" + .''."\n" + .'- **PostPaid**: pay-as-you-go.'."\n" + .'- **PrePaid**: subscription.'."\n" + ."\n" + .''."\n" + ."\n" + .'The billing method of the NAT gateway instance. Valid value: **PostPaid** (pay-as-you-go).'."\n", 'type' => 'string', 'example' => 'PostPaid', 'title' => ''], + 'RegionId' => ['description' => 'The region ID of the NAT gateway.', 'type' => 'string', 'example' => 'cn-hangzhou', 'title' => ''], + 'EcsMetricEnabled' => ['description' => 'Indicates whether the gateway traffic monitoring feature is enabled. Valid values:'."\n" + ."\n" + .'- **true**: enabled.'."\n" + ."\n" + .'- **false**: disabled.'."\n", 'type' => 'boolean', 'example' => 'true', 'title' => ''], + 'IcmpReplyEnabled' => ['description' => 'Indicates whether ICMP proxy reply is enabled. Valid values:'."\n" + ."\n" + .'- **true** (default): enabled.'."\n" + .'- **false**: disabled.', 'type' => 'boolean', 'example' => 'true', 'title' => ''], + 'Description' => ['description' => 'The description of the NAT gateway.', 'type' => 'string', 'example' => 'NAT', 'title' => ''], + 'ExpiredTime' => ['description' => 'The expiration time of the NAT gateway.', 'type' => 'string', 'example' => '2021-08-26T16:00Z', 'title' => ''], + 'ResourceGroupId' => ['description' => 'The resource group ID.', 'type' => 'string', 'example' => 'rg-bp67acfmxazb4ph****', 'title' => ''], + 'NatGatewayId' => ['description' => 'The ID of the NAT gateway.', 'type' => 'string', 'example' => 'ngw-bp1047e2d4z7kf2ki****', 'title' => ''], + 'InternetChargeType' => ['description' => 'The metering method of the NAT gateway. Valid values:'."\n" + ."\n" + .'- **PayBySpec**: pay by fixed specification.'."\n" + ."\n" + .'- **PayByLcu**: pay by capacity unit (CU).', 'type' => 'string', 'example' => 'PayByLcu', 'title' => ''], + 'BusinessStatus' => ['description' => 'The business status of the NAT gateway. Valid values:'."\n" + ."\n" + .'- **Normal**: normal.'."\n" + ."\n" + .'- **FinancialLocked**: locked due to overdue payment.', 'type' => 'string', 'example' => 'Normal', 'title' => ''], + 'Name' => ['description' => 'The name of the NAT gateway instance.', 'type' => 'string', 'example' => 'abc', 'title' => ''], + 'IpLists' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'IpList' => [ + 'description' => 'The list of EIPs associated with the Internet NAT gateway.', + 'type' => 'array', + 'items' => [ + 'description' => 'The IP information list of the NAT gateway.', + 'type' => 'object', + 'properties' => [ + 'UsingStatus' => ['description' => 'The association of the EIP bound to the Internet NAT gateway instance. Valid values:'."\n" + ."\n" + .'- **UsedByForwardTable**: the EIP is used to configure DNAT rules.'."\n" + .'- **UsedBySnatTable**: the EIP is used to configure SNAT rules.'."\n" + .'- **UsedByForwardSnatTable**: the EIP is used to configure both DNAT and SNAT rules.'."\n" + .'- **Idle**: idle. No DNAT or SNAT rules are configured.', 'type' => 'string', 'example' => 'UsedByForwardTable', 'title' => ''], + 'IpAddress' => ['description' => 'The IP address of the EIP bound to the NAT gateway.', 'type' => 'string', 'example' => '116.62.XX.XX', 'title' => ''], + 'SnatEntryEnabled' => ['description' => 'Indicates whether the IP address that is already used for DNAT entries can also be used for SNAT entries. Valid values:'."\n" + ."\n" + .'- **true**: can be used for SNAT entries.'."\n" + ."\n" + .'- **false**: cannot be used for SNAT entries.', 'type' => 'boolean', 'example' => 'false', 'title' => ''], + 'AllocationId' => ['description' => 'The instance ID of the EIP bound to the NAT gateway.', 'type' => 'string', 'example' => 'eip-m5egzuvp3dgixen6****', 'title' => ''], + 'PrivateIpAddress' => ['description' => 'The private IP address of the NAT gateway.', 'type' => 'string', 'example' => '192.168.XX.XX', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'ForwardTableIds' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'ForwardTableId' => [ + 'description' => 'The DNAT table ID of the NAT gateway.', + 'type' => 'array', + 'items' => ['description' => 'The DNAT table ID.', 'type' => 'string', 'example' => 'ftb-uf6gj3mhsg94qsqst****', 'title' => ''], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'SnatTableIds' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'SnatTableId' => [ + 'description' => 'The SNAT table ID of the NAT gateway.', + 'type' => 'array', + 'items' => ['description' => 'The SNAT table ID.', 'type' => 'string', 'example' => 'stb-uf6dalcdu0krz423p****', 'title' => ''], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'FullNatTableIds' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'FullNatTableId' => [ + 'description' => 'The FULLNAT table ID.', + 'type' => 'array', + 'items' => ['description' => 'The FULLNAT table ID.', 'type' => 'string', 'example' => 'fulltb-gw88z7hhlv43rmb26****', 'title' => ''], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'NatGatewayPrivateInfo' => [ + 'description' => 'The private network information of the enhanced Internet NAT gateway.'."\n" + ."\n" + .'> When **NatType** is set to **Normal**, all parameters in this list return empty values.', + 'type' => 'object', + 'properties' => [ + 'VswitchId' => ['description' => 'The ID of the vSwitch to which the NAT gateway belongs.', 'type' => 'string', 'example' => 'vsw-bp1s2laxhdf9ayjbo****', 'title' => ''], + 'EniInstanceId' => ['description' => 'The elastic network interface (ENI) instance ID.', 'type' => 'string', 'example' => 'eni-m5eg4ozy5st8q3q4****', 'title' => ''], + 'MaxBandwidth' => ['description' => 'The maximum bandwidth. Unit: Mbps.', 'type' => 'integer', 'format' => 'int32', 'example' => '5120', 'title' => ''], + 'MaxSessionQuota' => ['description' => 'The number of concurrent connections of the NAT gateway.', 'type' => 'integer', 'format' => 'int32', 'example' => '2000000', 'title' => ''], + 'MaxSessionEstablishRate' => ['description' => 'The rate of new connections of the NAT gateway. Unit: connections per second.', 'type' => 'integer', 'format' => 'int32', 'example' => '100000', 'title' => ''], + 'PrivateIpAddress' => ['description' => 'The private IP address.', 'type' => 'string', 'example' => '192.168.XX.XX', 'title' => ''], + 'IzNo' => ['description' => 'The zone to which the NAT gateway belongs.', 'type' => 'string', 'example' => 'cn-hangzhou-b', 'title' => ''], + 'EniType' => ['description' => 'The binding mode between the ENI and the NAT gateway. Valid values:'."\n" + ."\n" + .'- **indirect**: non-passthrough mode.'."\n" + ."\n" + .'- Empty return value: passthrough mode.', 'type' => 'string', 'example' => 'indirect', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'PrivateLinkEnabled' => ['title' => '', 'description' => 'Indicates whether private link is supported. Valid values:'."\n" + ."\n" + .'- **true**: private link is supported.'."\n" + .'- **false**: private link is not supported.', 'type' => 'boolean', 'example' => 'true'], + 'PrivateLinkMode' => ['title' => '', 'description' => 'The private link service conversion mode. Valid values:'."\n" + ."\n" + .'- **FullNat**: uses FULLNAT mode.'."\n" + .'- **Geneve**: uses Geneve mode.', 'type' => 'string', 'example' => 'FullNat'], + 'EipBindMode' => ['title' => '', 'description' => 'The EIP binding mode of the NAT gateway. Valid values:'."\n" + ."\n" + .'- **MULTI_BINDED**: multi-EIP NIC-visible mode.'."\n" + ."\n" + .'- **NAT**: EIP normal mode, compatible with IPv4 gateway.'."\n" + ."\n" + .'> When the EIP binding mode of the NAT gateway is EIP normal mode, the EIP occupies a private IP address of the vSwitch where the NAT gateway is located. Make sure that sufficient private IP addresses are available in the vSwitch. If no idle private IP addresses are available in the vSwitch, new EIPs cannot be bound. When the EIP binding mode is EIP normal mode, the maximum number of EIPs that can be bound to the NAT gateway is 50.', 'type' => 'string', 'example' => 'MULTI_BINDED'], + 'Tags' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Tag' => [ + 'title' => '', + 'description' => 'The list of tags.', + 'type' => 'array', + 'items' => [ + 'description' => 'The list of tags.', + 'type' => 'object', + 'properties' => [ + 'TagKey' => ['description' => 'The tag key of the instance.', 'type' => 'string', 'example' => 'KeyTest', 'title' => ''], + 'TagValue' => ['description' => 'The tag value of the instance.', 'type' => 'string', 'example' => 'valueTest', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'EnableSessionLog' => ['description' => 'Indicates whether session logging is enabled. Valid values:'."\n" + ."\n" + .'- **true**: session logging is enabled.'."\n" + ."\n" + .'- **false**: session logging is disabled.', 'type' => 'string', 'example' => 'true', 'title' => ''], + 'AccessMode' => [ + 'description' => 'The access mode for reverse access to the VPC NAT gateway.', + 'type' => 'object', + 'properties' => [ + 'ModeValue' => ['description' => 'The access mode. Valid values:'."\n" + ."\n" + .'- **route**: route mode.'."\n" + ."\n" + .'- **tunnel**: tunnel mode.', 'type' => 'string', 'example' => 'route', 'title' => ''], + 'TunnelType' => ['description' => 'The tunnel mode type:'."\n" + ."\n" + .'- **geneve**: Geneve type.', 'type' => 'string', 'example' => 'geneve', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'AvailabilityMode' => ['type' => 'string', 'description' => '', 'title' => '', 'example' => ''], + 'IpPrefixList' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'IpPrefixList' => [ + 'description' => 'The list of NAT IP prefix address ranges.', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'IpPrefix' => ['description' => 'The NAT IP prefix address range.', 'type' => 'string', 'example' => '192.168.0.0/28', 'title' => ''], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + ], + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], - 'description' => '', + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InvalidPrice.NotFound', - 'errorMessage' => 'Pricing plan result not found.', - ], - [ - 'errorCode' => 'QuotaExceeded.PerAccessPoint', - 'errorMessage' => 'Physical connection count per ap quota exceed.', - ], - [ - 'errorCode' => 'InvalidPhysicalConnectionOperator.Malformed', - 'errorMessage' => 'Specified PhysicalConnection Operator is not valid.', - ], - [ - 'errorCode' => 'InvalidPhysicalConnectionPortType.Malformed', - 'errorMessage' => 'Specified PhysicalConnection PortType is not valid.', - ], - [ - 'errorCode' => 'InvalidPortType.NotFound', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'InvalidInstance.NotFound', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'IncorrectStatus.AccessPoint', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'AccessPoint.NotFound', - 'errorMessage' => 'The input access point does not exist or does not have permission to view it.', - ], + 404 => [ + ['errorCode' => 'InvalidRegionId.NotFound', 'errorMessage' => 'The specified RegionId does not exist in our records.', 'description' => ''], + ], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', 'description' => 'An internal error occurred.'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"F7A6301A-64BA-41EC-8284-8F4838C15D1F\\",\\n \\"OrderId\\": \\"202844382740728\\",\\n \\"PhysicalConnectionId\\": \\"pc-2zegmc02v7ss4****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n F7A6301A-64BA-41EC-8284-8F4838C15D1F\\n 202844382740728\\n pc-2zegmc02v7ss4****\\n","errorExample":""}]', - 'title' => 'CreatePhysicalConnectionSetupOrder', - 'requestParamsDescription' => ' ', + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"PageSize\\": 10,\\n \\"RequestId\\": \\"4EC47282-1B74-4534-BD0E-403F3EE64CAF\\",\\n \\"PageNumber\\": 10,\\n \\"TotalCount\\": 1,\\n \\"NatGateways\\": {\\n \\"NatGateway\\": [\\n {\\n \\"Status\\": \\"Creating\\",\\n \\"CreationTime\\": \\"2021-06-08T12:20:20Z\\",\\n \\"VpcId\\": \\"vpc-bp15zckdt37pq72z****\\",\\n \\"NatType\\": \\"Enhanced\\",\\n \\"AutoPay\\": false,\\n \\"Spec\\": \\"Small\\",\\n \\"DeletionProtection\\": true,\\n \\"NetworkType\\": \\"internet\\",\\n \\"SecurityProtectionEnabled\\": false,\\n \\"InstanceChargeType\\": \\"PostPaid\\",\\n \\"RegionId\\": \\"cn-hangzhou\\",\\n \\"EcsMetricEnabled\\": true,\\n \\"IcmpReplyEnabled\\": true,\\n \\"Description\\": \\"NAT\\",\\n \\"ExpiredTime\\": \\"2021-08-26T16:00Z\\",\\n \\"ResourceGroupId\\": \\"rg-bp67acfmxazb4ph****\\",\\n \\"NatGatewayId\\": \\"ngw-bp1047e2d4z7kf2ki****\\",\\n \\"InternetChargeType\\": \\"PayByLcu\\",\\n \\"BusinessStatus\\": \\"Normal\\",\\n \\"Name\\": \\"abc\\",\\n \\"IpLists\\": {\\n \\"IpList\\": [\\n {\\n \\"UsingStatus\\": \\"UsedByForwardTable\\",\\n \\"IpAddress\\": \\"116.62.XX.XX\\",\\n \\"SnatEntryEnabled\\": false,\\n \\"AllocationId\\": \\"eip-m5egzuvp3dgixen6****\\",\\n \\"PrivateIpAddress\\": \\"192.168.XX.XX\\"\\n }\\n ]\\n },\\n \\"ForwardTableIds\\": {\\n \\"ForwardTableId\\": [\\n \\"ftb-uf6gj3mhsg94qsqst****\\"\\n ]\\n },\\n \\"SnatTableIds\\": {\\n \\"SnatTableId\\": [\\n \\"stb-uf6dalcdu0krz423p****\\"\\n ]\\n },\\n \\"FullNatTableIds\\": {\\n \\"FullNatTableId\\": [\\n \\"fulltb-gw88z7hhlv43rmb26****\\"\\n ]\\n },\\n \\"NatGatewayPrivateInfo\\": {\\n \\"VswitchId\\": \\"vsw-bp1s2laxhdf9ayjbo****\\",\\n \\"EniInstanceId\\": \\"eni-m5eg4ozy5st8q3q4****\\",\\n \\"MaxBandwidth\\": 5120,\\n \\"MaxSessionQuota\\": 2000000,\\n \\"MaxSessionEstablishRate\\": 100000,\\n \\"PrivateIpAddress\\": \\"192.168.XX.XX\\",\\n \\"IzNo\\": \\"cn-hangzhou-b\\",\\n \\"EniType\\": \\"indirect\\"\\n },\\n \\"PrivateLinkEnabled\\": true,\\n \\"PrivateLinkMode\\": \\"FullNat\\",\\n \\"EipBindMode\\": \\"MULTI_BINDED\\",\\n \\"Tags\\": {\\n \\"Tag\\": [\\n {\\n \\"TagKey\\": \\"KeyTest\\",\\n \\"TagValue\\": \\"valueTest\\"\\n }\\n ]\\n },\\n \\"EnableSessionLog\\": \\"true\\",\\n \\"AccessMode\\": {\\n \\"ModeValue\\": \\"route\\",\\n \\"TunnelType\\": \\"geneve\\"\\n },\\n \\"AvailabilityMode\\": \\"\\",\\n \\"IpPrefixList\\": {\\n \\"IpPrefixList\\": [\\n {\\n \\"IpPrefix\\": \\"192.168.0.0/28\\"\\n }\\n ]\\n }\\n }\\n ]\\n }\\n}","type":"json"}]', + 'title' => 'Query created NAT gateways', + 'description' => 'This operation supports querying detailed information about Internet NAT gateways or VPC NAT gateways. The term "NAT gateway" used in this document does not distinguish between the two types.', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'CreatePhysicalConnectionOccupancyOrder' => [ - 'summary' => 'Creates an order for resource occupation of an Express Connect circuit.', - 'methods' => [ - 'post', - 'get', + 'changeSet' => [ + ['createdAt' => '2024-10-23T06:17:18.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2024-05-07T06:31:14.000Z', 'description' => 'Response parameters changed, Response parameters changed'], + ['createdAt' => '2023-02-28T22:01:22.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2022-12-16T06:14:15.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2022-09-01T06:05:31.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2022-08-26T07:41:28.000Z', 'description' => 'Request parameters changed, Response parameters changed'], + ['createdAt' => '2021-11-17T06:33:02.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2021-11-17T06:33:02.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2021-10-15T06:08:26.000Z', 'description' => 'Request parameters changed'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '1200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DescribeNatGateways'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'vpc:DescribeNatGateways', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'conditional', 'product' => 'VPC', 'resourceType' => 'NatGateway', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:natgateway/*'], + ['validationType' => 'conditional', 'product' => 'VPC', 'resourceType' => 'NatGateway', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:natgateway/{#NatGatewayId}'], + ], + ], + ], ], + ], + 'DescribeNetworkAclAttributes' => [ + 'summary' => 'Queries the details of a network ACL.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'read', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'create', - 'riskType' => 'none', - 'chargeType' => 'paid', - 'autoTest' => true, - 'tenantRelevance' => 'tenant', - ], + 'systemTags' => ['operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the Express Connect circuit.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cn-hangzhou', - ], - ], - [ - 'name' => 'PhysicalConnectionId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the Express Connect circuit.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'pc-bp1hp0wr072f6****', - ], - ], - [ - 'name' => 'Period', - 'in' => 'query', - 'schema' => [ - 'description' => 'The subscription duration.'."\n" - ."\n" - .'* If **PricingCycle** is set to **Month**, set **Period** to a value from **1 to 9**.'."\n" - .'* If **PricingCycle** is set to **Year**, set **Period** to a value from **1 to 5**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', - ], - ], - [ - 'name' => 'InstanceChargeType', + 'name' => 'NetworkAclId', 'in' => 'query', - 'schema' => [ - 'description' => 'The billing method. Set the value to'."\n" - ."\n" - .'**PrePaid**, which specifies the subscription billing method. If you choose this billing method, make sure that your Alibaba Cloud account supports balance payments or credit payments.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'PrePaid', - ], + 'schema' => ['description' => 'The ID of the network ACL.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'nacl-a2do9e413e0spzasx****', 'title' => ''], ], [ - 'name' => 'AutoPay', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to enable automatic payments. Valid values:'."\n" - ."\n" - .'* **true**: yes Make sure that you have a sufficient balance in your account. Otherwise, your order becomes invalid and is automatically canceled.'."\n" - .'* **false**: disables automatic payment. This is the default value.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['description' => 'The region ID of the network ACL.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the region ID.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'PricingCycle', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The billing cycle of the subscription. Valid values:'."\n" - ."\n" - .'* **Month** (default)'."\n" - .'* **Year**'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'Month', - ], + 'schema' => ['description' => 'The region ID of the network ACL.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the region ID.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'You can use the client to generate the token, but you must make sure that the token is unique among different requests.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'CBCE910E-D396-4944', - ], - ], - [ - 'name' => 'AutoRenew', - 'in' => 'query', - 'schema' => [ - 'type' => 'boolean', - ], - ], - [ - 'name' => 'AutoRenewDuration', - 'in' => 'query', - 'schema' => [ - 'type' => 'integer', - 'format' => 'int32', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'You can use the client to generate the token, but you must make sure that the token is unique among different requests. The ClientToken value can contain only ASCII characters.'."\n" + ."\n" + .'> If you do not specify this parameter, the system uses the **RequestId** of the API request as the **ClientToken**. The **RequestId** may be different for each API request.', 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-426655440000', 'title' => ''], ], ], 'responses' => [ @@ -39578,3129 +29776,2808 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '9B9300FE-11E2-4E3B-949C-BED3B44DD26D', - ], - 'Data' => [ - 'description' => 'The details.'."\n", + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'F5905F9C-0161-4E72-9CB1-1F3F3CF6268A', 'title' => ''], + 'NetworkAclAttribute' => [ + 'description' => 'The details of the network ACL.', 'type' => 'object', 'properties' => [ - 'OrderId' => [ - 'description' => 'The ID of the order that is placed.'."\n", - 'type' => 'string', - 'example' => '50187055895****', + 'Status' => ['description' => 'The status of the associated resource. Valid values:'."\n" + ."\n" + .'- **Available**: available.'."\n" + ."\n" + .'- **Modifying**: being modified.', 'type' => 'string', 'example' => 'Available', 'title' => ''], + 'VpcId' => ['description' => 'The ID of the VPC associated with the network ACL.', 'type' => 'string', 'example' => 'vpc-a2d33rfpl72k5defr****', 'title' => ''], + 'CreationTime' => ['description' => 'The time when the network ACL was created.', 'type' => 'string', 'example' => '2021-12-25 11:33:27', 'title' => ''], + 'Description' => ['description' => 'The description of the network ACL.', 'type' => 'string', 'example' => 'This is my NetworkAcl.', 'title' => ''], + 'NetworkAclName' => ['description' => 'The name of the network ACL.', 'type' => 'string', 'example' => 'acl-1', 'title' => ''], + 'NetworkAclId' => ['description' => 'The ID of the network ACL.', 'type' => 'string', 'example' => 'nacl-a2do9e413e0spnhmj****', 'title' => ''], + 'OwnerId' => ['description' => 'The Alibaba Cloud account ID to which the network ACL belongs.'."\n" + ."\n" + .'>This value is of the Long type. In some programming languages, precision loss may occur. Use this value with caution.>.', 'type' => 'integer', 'format' => 'int64', 'example' => '2546073170691****'."\n", 'title' => ''], + 'RegionId' => ['description' => 'The region ID of the network ACL.', 'type' => 'string', 'example' => 'cn-hangzhou', 'title' => ''], + 'IngressAclEntries' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'IngressAclEntry' => [ + 'description' => 'The inbound rule information of the network ACL.', + 'type' => 'array', + 'items' => [ + 'description' => 'The inbound rule information of the network ACL.', + 'type' => 'object', + 'properties' => [ + 'NetworkAclEntryId' => ['description' => 'The ID of the inbound rule entries.', 'type' => 'string', 'example' => 'nae-a2dk86arlydmevfbg****', 'title' => ''], + 'EntryType' => ['description' => 'The type of the rule. The value is **custom**, which indicates a custom rule.', 'type' => 'string', 'example' => 'custom', 'title' => ''], + 'NetworkAclEntryName' => ['description' => 'The name of the inbound rule entries.', 'type' => 'string', 'example' => 'acl-3', 'title' => ''], + 'Policy' => ['description' => 'The authorization policy. Valid values:'."\n" + ."\n" + .'- **accept**: allows access.'."\n" + ."\n" + .'- **drop**: denies access.', 'type' => 'string', 'example' => 'accept', 'title' => ''], + 'Description' => ['description' => 'The description of the inbound rule.', 'type' => 'string', 'example' => 'This is IngressAclEntries.', 'title' => ''], + 'SourceCidrIp' => ['description' => 'The source CIDR block.', 'type' => 'string', 'example' => '10.0.0.0/24', 'title' => ''], + 'IpVersion' => ['description' => 'The IP version of the instance. Valid values:'."\n" + ."\n" + .'- **IPv4**: IPv4.'."\n" + .'- **IPv6**: IPv6.', 'type' => 'string', 'example' => 'IPv4', 'title' => ''], + 'Protocol' => ['description' => 'The protocol type. Valid values:'."\n" + ."\n" + .'- **icmp**: Internet Control Message Protocol.'."\n" + ."\n" + .'- **gre**: Generic Routing Encapsulation.'."\n" + ."\n" + .'- **tcp**: Transmission Control Protocol.'."\n" + ."\n" + .'- **udp**: User Datagram Protocol.'."\n" + ."\n" + .'- **all**: all protocols.', 'type' => 'string', 'example' => 'all', 'title' => ''], + 'Port' => ['description' => 'The destination port range of the inbound rule.'."\n" + ."\n" + .'- If the **Protocol** (Protocol Type) of the inbound rule is set to **all**, **icmp**, or **gre**, the port range is -1/-1, which indicates all ports.'."\n" + .'- If the **Protocol** (Protocol Type) of the inbound rule is set to **tcp** or **udp**, the port range is **1** to **65535**. The format is **1/200** or **80/80**, which indicates port 1 to port 200 or port 80.', 'type' => 'string', 'example' => '-1/-1', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'EgressAclEntries' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'EgressAclEntry' => [ + 'description' => 'The outbound rule information of the network ACL.', + 'type' => 'array', + 'items' => [ + 'description' => 'The outbound rule information of the network ACL.', + 'type' => 'object', + 'properties' => [ + 'NetworkAclEntryId' => ['description' => 'The ID of the outbound rule entries.', 'type' => 'string', 'example' => 'nae-a2d447uw4tillxdcv****', 'title' => ''], + 'EntryType' => ['description' => 'The type of the rule. The value is **custom**, which indicates a custom rule.', 'type' => 'string', 'example' => 'custom', 'title' => ''], + 'NetworkAclEntryName' => ['description' => 'The name of the outbound rule entries.', 'type' => 'string', 'example' => 'acl-2', 'title' => ''], + 'Policy' => ['description' => 'The authorization policy. Valid values:'."\n" + ."\n" + .'- **accept**: allows access.'."\n" + ."\n" + .'- **drop**: denies access.', 'type' => 'string', 'example' => 'accept', 'title' => ''], + 'Description' => ['description' => 'The description of the outbound rule.', 'type' => 'string', 'example' => 'This is EgressAclEntries.', 'title' => ''], + 'Protocol' => ['description' => 'The protocol type. Valid values:'."\n" + ."\n" + .'- **icmp**: Internet Control Message Protocol.'."\n" + ."\n" + .'- **gre**: Generic Routing Encapsulation.'."\n" + ."\n" + .'- **tcp**: Transmission Control Protocol.'."\n" + ."\n" + .'- **udp**: User Datagram Protocol.'."\n" + ."\n" + .'- **all**: all protocols.', 'type' => 'string', 'example' => 'all', 'title' => ''], + 'DestinationCidrIp' => ['description' => 'The destination CIDR block.', 'type' => 'string', 'example' => '10.0.0.0/24', 'title' => ''], + 'IpVersion' => ['description' => 'The IP version of the instance. Valid values:'."\n" + ."\n" + .'- **IPv4**: IPv4.'."\n" + .'- **IPv6**: IPv6.', 'type' => 'string', 'example' => 'IPv4', 'title' => ''], + 'Port' => ['description' => 'The destination port range of the outbound rule.'."\n" + ."\n" + .'- If the **Protocol** (Protocol Type) of the outbound rule is set to **all**, **icmp**, or **gre**, the port range is -1/-1, which indicates all ports.'."\n" + .'- If the **Protocol** (Protocol Type) of the outbound rule is set to **tcp** or **udp**, the port range is **1** to **65535**. The format is **1/200** or **80/80**, which indicates port 1 to port 200 or port 80.', 'type' => 'string', 'example' => '-1/-1', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'Resources' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Resource' => [ + 'description' => 'The associated resource.', + 'type' => 'array', + 'items' => [ + 'description' => 'The associated resource.', + 'type' => 'object', + 'properties' => [ + 'Status' => ['description' => 'The status of the associated resource. Valid values:'."\n" + ."\n" + .'- **BINDED**: associated.'."\n" + ."\n" + .'- **BINDING**: being associated.'."\n" + ."\n" + .'- **UNBINDING**: being disassociated.', 'type' => 'string', 'example' => 'BINDED', 'title' => ''], + 'ResourceType' => ['description' => 'The type of the associated resource. The value is **VSwitch**, which indicates a vSwitch.', 'type' => 'string', 'example' => 'VSwitch', 'title' => ''], + 'ResourceId' => ['description' => 'The instance ID of the associated resource.', 'type' => 'string', 'example' => 'vsw-bp1de348lntdwxscd****', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'Tags' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Tag' => [ + 'description' => 'The tag list.', + 'type' => 'array', + 'items' => [ + 'description' => 'The tag list.', + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => 'The tag key.', 'type' => 'string', 'example' => 'FinanceDept', 'title' => ''], + 'Value' => ['description' => 'The tag value.', 'type' => 'string', 'example' => 'FinanceJoshua', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], + 'title' => '', + 'example' => '', ], ], 'description' => '', + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'IAbs.InvalidStatus.ValueNotSupported', - 'errorMessage' => 'status is not supported.', - ], - [ - 'errorCode' => 'InvalidPrice.NotFound', - 'errorMessage' => 'Pricing plan result not found.', - ], - [ - 'errorCode' => 'InvalidPhysicalConnectionChargeType.Malformed', - 'errorMessage' => 'Specified Physical Connection ChargeType is not valid.', - ], - [ - 'errorCode' => 'InvalidPhysicalConnectionPeriod.Malformed', - 'errorMessage' => 'Specified Physical Connection Period is not valid.', - ], - [ - 'errorCode' => 'InvalidPhysicalConnectionPricingCycle.Malformed', - 'errorMessage' => 'Specified Physical Connection PricingCycle is not valid.', - ], - [ - 'errorCode' => 'Forbidden.NotAllowedInState', - 'errorMessage' => 'The request does not allow in this state.', - ], - [ - 'errorCode' => 'INSTANCE.STATUS.NOT.ALLOW', - 'errorMessage' => 'Instance status not allow', - ], - [ - 'errorCode' => 'Abs.InstanceNotExist', - 'errorMessage' => 'The specified instance does not exist.', - ], - [ - 'errorCode' => 'IncorrectStatus.PhysicalConnection', - 'errorMessage' => 'Invalid physical connection status.', - ], + ['errorCode' => 'ParameterMissing.AliUid', 'errorMessage' => 'ParameterMissing.AliUid', 'description' => ''], + ['errorCode' => 'ParameterMissing.Bid', 'errorMessage' => 'ParameterMissing.Bid', 'description' => ''], + ['errorCode' => 'ParameterMissing.RegionId', 'errorMessage' => 'ParameterMissing.RegionId', 'description' => ''], + ['errorCode' => 'ParameterEmpty.RegionId', 'errorMessage' => 'ParameterEmpty.RegionId', 'description' => ''], + ['errorCode' => 'ParameterMissing.NetworkAclId', 'errorMessage' => 'ParameterMissing.NetworkAclId', 'description' => ''], + ['errorCode' => 'ParameterEmpty.NetworkAclId', 'errorMessage' => 'ParameterEmpty.NetworkAclId', 'description' => ''], + ['errorCode' => 'InvalidNetworkAcl.NotFound', 'errorMessage' => 'The special Network Acl is not found.', 'description' => 'The network ACL is not found.'], + ['errorCode' => 'NotSupport.NetworkAcl', 'errorMessage' => 'Network acl is not support now.', 'description' => ''], ], - 404 => [ - [ - 'errorCode' => 'InvalidRegionId.NotFound', - 'errorMessage' => 'The RegionId provided does not exist in our records.', - ], - [ - 'errorCode' => 'InvalidPhysicalConnectionId.NotFound', - 'errorMessage' => 'The PhysicalConnectionId provided does not exist in our records.', - ], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error.', 'description' => ''], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'staticInfo' => ['returnType' => 'synchronous'], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"F5905F9C-0161-4E72-9CB1-1F3F3CF6268A\\",\\n \\"NetworkAclAttribute\\": {\\n \\"Status\\": \\"Available\\",\\n \\"VpcId\\": \\"vpc-a2d33rfpl72k5defr****\\",\\n \\"CreationTime\\": \\"2021-12-25 11:33:27\\",\\n \\"Description\\": \\"This is my NetworkAcl.\\",\\n \\"NetworkAclName\\": \\"acl-1\\",\\n \\"NetworkAclId\\": \\"nacl-a2do9e413e0spnhmj****\\",\\n \\"OwnerId\\": 0,\\n \\"RegionId\\": \\"cn-hangzhou\\",\\n \\"IngressAclEntries\\": {\\n \\"IngressAclEntry\\": [\\n {\\n \\"NetworkAclEntryId\\": \\"nae-a2dk86arlydmevfbg****\\",\\n \\"EntryType\\": \\"custom\\",\\n \\"NetworkAclEntryName\\": \\"acl-3\\",\\n \\"Policy\\": \\"accept\\",\\n \\"Description\\": \\"This is IngressAclEntries.\\",\\n \\"SourceCidrIp\\": \\"10.0.0.0/24\\",\\n \\"IpVersion\\": \\"IPv4\\",\\n \\"Protocol\\": \\"all\\",\\n \\"Port\\": \\"-1/-1\\"\\n }\\n ]\\n },\\n \\"EgressAclEntries\\": {\\n \\"EgressAclEntry\\": [\\n {\\n \\"NetworkAclEntryId\\": \\"nae-a2d447uw4tillxdcv****\\",\\n \\"EntryType\\": \\"custom\\",\\n \\"NetworkAclEntryName\\": \\"acl-2\\",\\n \\"Policy\\": \\"accept\\",\\n \\"Description\\": \\"This is EgressAclEntries.\\",\\n \\"Protocol\\": \\"all\\",\\n \\"DestinationCidrIp\\": \\"10.0.0.0/24\\",\\n \\"IpVersion\\": \\"IPv4\\",\\n \\"Port\\": \\"-1/-1\\"\\n }\\n ]\\n },\\n \\"Resources\\": {\\n \\"Resource\\": [\\n {\\n \\"Status\\": \\"BINDED\\",\\n \\"ResourceType\\": \\"VSwitch\\",\\n \\"ResourceId\\": \\"vsw-bp1de348lntdwxscd****\\"\\n }\\n ]\\n },\\n \\"Tags\\": {\\n \\"Tag\\": [\\n {\\n \\"Key\\": \\"FinanceDept\\",\\n \\"Value\\": \\"FinanceJoshua\\"\\n }\\n ]\\n }\\n }\\n}","type":"json"}]', + 'title' => 'Query details of a network ACL', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2023-11-24T05:37:30.000Z', 'description' => 'Response parameters changed, Response parameters changed'], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"9B9300FE-11E2-4E3B-949C-BED3B44DD26D\\",\\n \\"Data\\": {\\n \\"OrderId\\": \\"50187055895****\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 9B9300FE-11E2-4E3B-949C-BED3B44DD26D\\n \\n 50187055895****\\n \\n","errorExample":""}]', - 'title' => 'CreatePhysicalConnectionOccupancyOrder', - 'description' => '> You can call this operation only when the Express Connect circuit is in the **Complete** state.'."\n", - ], - 'CreateHighReliablePhysicalConnection' => [ - 'summary' => 'Creates Express Connect circuits in high reliability mode. This improves the stability of multiple Express Connect circuits and prevents service interruptions caused by single points of failures (SPOFs).', - 'methods' => [ - 'post', - 'get', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DescribeNetworkAclAttributes'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'vpc:DescribeNetworkAclAttributes', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'NetworkAcl', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:networkacl/{#NetworkAclId}'], + ], + ], + ], ], + ], + 'DescribeNetworkAcls' => [ + 'summary' => 'Queries a list of network ACLs by calling the DescribeNetworkAcls operation.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'read', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'create', - 'riskType' => 'none', - 'chargeType' => 'free', - 'tenantRelevance' => 'publicInformation', - ], + 'systemTags' => ['operationType' => 'list', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ - 'name' => 'RegionId', + 'name' => 'NetworkAclId', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the Express Connect circuit.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => false, - 'docRequired' => true, - 'example' => 'cn-shanghai', - ], + 'schema' => ['description' => 'The ID of the network ACL.', 'type' => 'string', 'required' => false, 'example' => 'nacl-bp1lhl0taikrbgnh****', 'title' => ''], ], [ - 'name' => 'ClientToken', + 'name' => 'NetworkAclName', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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.'."\n" - ."\n" - .'> 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.'."\n", - 'type' => 'string', - 'required' => false, - 'docRequired' => true, - 'example' => '123e4567-e89b-12d3-a456-426655440000', - ], + 'schema' => ['description' => 'The name of the network ACL.'."\n" + ."\n" + .'The name must be 1 to 128 characters in length and cannot start with `http://` or `https://`.', 'type' => 'string', 'required' => false, 'example' => 'acl-1', 'title' => ''], ], [ - 'name' => 'ClientToken', + 'name' => 'VpcId', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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.'."\n" - ."\n" - .'> 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.'."\n", - 'type' => 'string', - 'required' => false, - 'docRequired' => true, - 'example' => '123e4567-e89b-12d3-a456-426655440000', - ], + 'schema' => ['description' => 'The ID of the VPC associated with the network ACL.', 'type' => 'string', 'required' => false, 'example' => 'vpc-m5ebpc2xh64mqm27e****', 'title' => ''], ], [ - 'name' => 'ResourceGroupId', + 'name' => 'ResourceType', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the resource group.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'rg-acfmxazb4p****', - ], + 'schema' => ['description' => 'The type of the associated resource. Valid values: **VSwitch**: vSwitch.'."\n" + ."\n" + .'The **ResourceType** and **ResourceId** parameters must be specified together to take effect.', 'type' => 'string', 'required' => false, 'example' => 'VSwitch', 'title' => ''], ], [ - 'name' => 'Tag', + 'name' => 'ResourceId', + 'in' => 'query', + 'schema' => ['description' => 'The ID of the associated resource.', 'type' => 'string', 'required' => false, 'example' => 'vsw-bp1de348lntdwnhbg****', 'title' => ''], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => ['description' => 'The page number of the list. Default value: **1**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1', 'title' => ''], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => ['description' => 'The number of entries per page in a paged query. Maximum value: **50**. Default value: **10**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '10', 'title' => ''], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => ['description' => 'The region ID of the network ACL. '."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the region ID.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], + ], + [ + 'name' => 'Tags', 'in' => 'query', 'style' => 'repeatList', 'schema' => [ 'description' => 'The tags.', 'type' => 'array', 'items' => [ - 'description' => 'The tag.', + 'description' => 'The tags.', 'type' => 'object', 'properties' => [ - 'Key' => [ - 'description' => 'The key of tag N to add to the resource. Valid values of N: 1 to 20. The tag key cannot be an empty string.'."\n" - ."\n" - .'The tag key can be up to 64 characters in length and can contain letters, digits, periods (.), underscores (_), and hyphens (-). It must start with a letter but cannot start with `aliyun` or `acs:`. It cannot contain `http://` or `https://`.', - 'type' => 'string', - 'required' => false, - 'example' => 'FinanceDept', - ], - 'Value' => [ - 'description' => 'The value of tag N to add to the resource. Valid values of N: 1 to 20. The tag value cannot be an empty string.'."\n" - ."\n" - .'The tag value can be up to 128 characters in length and can contain letters, digits, periods (.), underscores (_), and hyphens (-). It must start with a letter but cannot start with `aliyun` or `acs:`. It cannot contain `http://` or `https://`.', - 'type' => 'string', - 'required' => false, - 'example' => 'FinanceJoshua', - ], + 'Key' => ['description' => 'The tag key of the resource. You can specify up to 20 tag keys. The tag key cannot be an empty string.'."\n" + ."\n" + .'A tag key can be up to 128 characters in length and cannot start with `aliyun` or `acs:`. It cannot contain `http://` or `https://`.', 'type' => 'string', 'required' => false, 'example' => 'FinanceDept', 'title' => ''], + 'Value' => ['description' => 'The tag value of the resource. You can specify up to 20 tag values. The tag value can be an empty string.'."\n" + ."\n" + .'The tag value can be up to 128 characters in length and cannot start with `aliyun` or `acs:`. It cannot contain `http://` or `https://`.', 'type' => 'string', 'required' => false, 'example' => 'FinanceJoshua', 'title' => ''], ], 'required' => false, + 'title' => '', + 'example' => '', ], 'required' => false, - 'maxItems' => 20, - ], - ], - [ - 'name' => 'HighReliableType', - 'in' => 'query', - 'schema' => [ - 'description' => 'The high availability mode. Valid values:'."\n" - ."\n" - .'- **MultiApMultiDevice** : This mode supports two access points and two devices, and provides the maximum disaster recovery capability.'."\n" - .'- **MultiApSingleDevice** : This mode supports two access points and one device, and provides robust disaster recovery capability.'."\n" - .'- **SingleApMultiDevice** : This mode supports one access point and two devices, and is recommended for non-critical business test and development.'."\n" - .'- **SingleApMultiConnection** : This mode supports one access point, one device, and multiple physical ports. Only users in the whitelist can use this mode. To use this mode, contact your account manager.', - 'type' => 'string', - 'required' => true, - 'example' => 'MultiApMultiDevice', - ], - ], - [ - 'name' => 'PortType', - 'in' => 'query', - 'schema' => [ - 'description' => 'The port type. Valid values:'."\n" - ."\n" - .'* **100Base-T**: 100 Mbit/s copper Ethernet port'."\n" - .'* **1000Base-T**: 1,000 Mbit/s copper Ethernet port'."\n" - .'* **1000Base-LX**: 1,000 Mbit/s single-mode optical port (10 km)'."\n" - .'* **10GBase-T**: 10,000 Mbit/s copper Ethernet port'."\n" - .'* **10GBase-LR**: 10,000 Mbit/s single-mode optical port (10 km)'."\n" - .'* **40GBase-LR**: 40,000 Mbit/s single-mode optical port'."\n" - .'* **100GBase-LR**: 100,000 Mbit/s single-mode optical port'."\n" - ."\n" - .'> To use ports 40GBase-LR and 100GBase-LR, you must first contact your account manager.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => '1000Base-T', - ], - ], - [ - 'name' => 'DeviceAdvancedCapacity', - 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => 'The advanced features of the device.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The advanced features of the device.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'SubifRateLimit, DualStack', - ], - 'required' => false, - 'maxItems' => 100, - ], - ], - [ - 'name' => 'ApList', - 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => 'The access points.', - 'type' => 'array', - 'items' => [ - 'description' => 'The access points.', - 'type' => 'object', - 'properties' => [ - 'Name' => [ - 'description' => 'The name of the Express Connect circuit.'."\n" - ."\n" - .'The name must be 2 to 128 characters in length, and can contain letters, digits, underscores (_), and hyphens (-). It must start with a letter but cannot start with `http://` or` https://`.', - 'type' => 'string', - 'required' => false, - 'example' => 'test', - ], - 'Description' => [ - 'description' => 'The description of the Express Connect circuit.'."\n" - ."\n" - .'The description must be 2 to 256 characters in length. It must start with a letter but cannot start with `http://` or `https://`.', - 'type' => 'string', - 'required' => false, - 'example' => 'description', - ], - 'RegionId' => [ - 'description' => 'The region ID of the Express Connect circuit.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cn-shanghai', - ], - 'LineOperator' => [ - 'description' => 'The connectivity provider of the Express Connect circuit. Valid values:'."\n" - ."\n" - .'* **CT**: China Telecom.'."\n" - .'* **CU**: China Unicom.'."\n" - .'* **CM**: China Mobile.'."\n" - .'* **CO**: other connectivity providers in the Chinese mainland.'."\n" - .'* **Equinix**: Equinix.'."\n" - .'* **Other**: other connectivity providers outside the Chinese mainland.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'CT', - ], - 'AccessPointId' => [ - 'description' => 'The ID of the access point that is associated with the Express Connect circuit.'."\n" - ."\n" - .'> Two access points must be specified when **HighReliableType** is set to **MultiApMultiDevice** or **MultiApSingleDevice**. One access point must be specified when **HighReliableType** is set to **SingleApMultiDevice** or **SingleApMultiConnection**.', - 'type' => 'string', - 'required' => true, - 'example' => 'ap-cn-beijing-ft-A', - ], - 'PortNum' => [ - 'description' => 'The number of ports. Valid values: 2 to 16. This parameter is required only when **HighReliableType** is set to **SingleApMultiConnection**.', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '2', - ], - 'Type' => [ - 'description' => 'The type of the Express Connect circuit. Default value: **VPC**.', - 'type' => 'string', - 'required' => false, - 'example' => 'VPC', - ], - 'Bandwidth' => [ - 'description' => 'The maximum bandwidth of the hosted connection. Unit: Mbit/s.'."\n" - ."\n" - .'Valid values: 50, 100, 200, 300, 400, 500, 1000, 2000, 4000, 5000, 8000, and 10000.', - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '50', - ], - 'PeerLocation' => [ - 'description' => 'The geographical location of the data center.', - 'type' => 'string', - 'required' => false, - 'example' => 'ram-test', - ], - 'CircuitCode' => [ - 'description' => 'The circuit code of the Express Connect circuit, which is provided by the connectivity provider.', - 'type' => 'string', - 'required' => false, - 'example' => 'longtel001', - ], - 'OpticalModuleModel' => [ - 'title' => '物理专线接入点光模块支持型号,取值:'."\n" - .'1000Base-LX : '."\n" - .'SFP-GE-LR-SM1310,10KM'."\n" - .'SFP-GE-ER-SM1310,40KM'."\n" - .'SFP-GE-ZR-SM1550,80KM '."\n" - .'10GBase-LR : '."\n" - .'SFP-10G-LR-SM1310,10KM'."\n" - .'SFP-10G-ER-SM1550,40KM '."\n" - .'SFP-10G-ZR-SM1550,80KM '."\n" - .'40GBase-LR : '."\n" - .'QSFP-40G-LR4-WDM1300,10KM'."\n" - .'QSFP-40G-ER4-WDM1300,40KM'."\n" - .'QSFP-40G-ZR4-WDM1300,80KM'."\n" - .'100GBase-LR : '."\n" - .'QSFP28-100G-LR4-WDM1300,10KM'."\n" - .'QSFP28-100G-ER4-WDM1300,40KM'."\n" - .'QSFP28-100G-ZR4-WDM1300,80KM', - 'type' => 'string', - ], - ], - 'required' => false, - ], - 'required' => true, - 'maxItems' => 100, + 'maxItems' => 21, + 'title' => '', + 'example' => '', ], ], [ - 'name' => 'DryRun', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to perform a dry run, without performing the actual request. Valid values:'."\n" - ."\n" - .'* **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.'."\n" - .'* **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.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['description' => 'The region ID of the network ACL. '."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the region ID.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'AcceptLanguage', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The language to display the results. Valid values:'."\n" - ."\n" - .'* **zh-CN** (default): Chinese'."\n" - .'* **en-US**: English'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'zh-CN', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'Generate a parameter value from your client to ensure uniqueness across different requests. ClientToken supports only ASCII characters.'."\n" + ."\n" + .'> If you do not specify this parameter, the system uses the **RequestId** of the API request as the **ClientToken**. The **RequestId** may differ for each API request.', 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-426655440000', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => 'The response parameters.', 'type' => 'object', 'properties' => [ - 'PhysicalConnectionList' => [ + 'PageSize' => ['description' => 'The number of entries per page in a paging query.', 'type' => 'string', 'example' => '10', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'F7DDDC17-FA06-4AC2-8F35-59D2470FCFC1', 'title' => ''], + 'PageNumber' => ['description' => 'The page number of the list.', 'type' => 'string', 'example' => '1', 'title' => ''], + 'TotalCount' => ['description' => 'The total number of network ACLs in the list.', 'type' => 'string', 'example' => '2', 'title' => ''], + 'NetworkAcls' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ - 'physicalConnectionList' => [ - 'description' => 'The Express Connect circuits.', + 'NetworkAcl' => [ + 'description' => 'The details of the network ACL.', 'type' => 'array', 'items' => [ - 'description' => 'The Express Connect circuit.', + 'description' => 'The details of the network ACL.', 'type' => 'object', 'properties' => [ - 'InstanceId' => [ - 'description' => 'The ID of the Express Connect circuit.', - 'type' => 'string', - 'example' => 'pc-j5e5qqo616p81ncspbll1', - ], - 'RegionNo' => [ - 'description' => 'The region ID of the Express Connect circuit.', - 'type' => 'string', - 'example' => 'cn-shanghai', + 'Status' => ['description' => 'The status of the network ACL. Valid values:'."\n" + ."\n" + .'- **Available**: available.'."\n" + ."\n" + .'- **Modifying**: being configured.', 'type' => 'string', 'example' => 'Available', 'title' => ''], + 'VpcId' => ['description' => 'The ID of the associated VPC.', 'type' => 'string', 'example' => 'vpc-m5ebpc2xh64mqm27e****', 'title' => ''], + 'CreationTime' => ['description' => 'The time when the network ACL was created.', 'type' => 'string', 'example' => '2021-12-25 11:44:17', 'title' => ''], + 'Description' => ['description' => 'The description of the network ACL.', 'type' => 'string', 'example' => 'This is my NetworkAcl.', 'title' => ''], + 'NetworkAclName' => ['description' => 'The name of the network ACL.', 'type' => 'string', 'example' => 'acl-1', 'title' => ''], + 'NetworkAclId' => ['description' => 'The ID of the network ACL.', 'type' => 'string', 'example' => 'nacl-a2do9e413e0spxscd****', 'title' => ''], + 'OwnerId' => ['description' => 'The Alibaba Cloud account ID to which the network ACL belongs.', 'type' => 'integer', 'format' => 'int64', 'example' => '253460731706911258', 'title' => ''], + 'RegionId' => ['description' => 'The region ID of the network ACL.', 'type' => 'string', 'example' => 'cn-hangzhou', 'title' => ''], + 'IngressAclEntries' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'IngressAclEntry' => [ + 'description' => 'The inbound rule information.', + 'type' => 'array', + 'items' => [ + 'description' => 'The inbound rule information.', + 'type' => 'object', + 'properties' => [ + 'NetworkAclEntryId' => ['description' => 'The ID of the inbound rule entries.', 'type' => 'string', 'example' => 'nae-a2dk86arlydmezasw****', 'title' => ''], + 'EntryType' => ['description' => 'The rule type. The value is **custom**, which indicates a custom rule.', 'type' => 'string', 'example' => 'custom', 'title' => ''], + 'NetworkAclEntryName' => ['description' => 'The name of the inbound rule entries.', 'type' => 'string', 'example' => 'acl-3 ', 'title' => ''], + 'Policy' => ['description' => 'The authorization policy. Valid values:'."\n" + ."\n" + .'- **accept**: allows access.'."\n" + ."\n" + .'- **drop**: denies access.', 'type' => 'string', 'example' => 'accept', 'title' => ''], + 'Description' => ['description' => 'The description of the inbound rule.', 'type' => 'string', 'example' => 'This is IngressAclEntries.', 'title' => ''], + 'SourceCidrIp' => ['description' => 'The source CIDR block.', 'type' => 'string', 'example' => '10.0.0.0/24 ', 'title' => ''], + 'IpVersion' => ['description' => 'The IP version of the instance. Valid values:'."\n" + ."\n" + .'- **IPv4**: IPv4.'."\n" + .'- **IPv6**: IPv6.', 'type' => 'string', 'example' => 'IPv4', 'title' => ''], + 'Protocol' => ['description' => 'The protocol type. Valid values:'."\n" + ."\n" + .'- **icmp**: Internet Control Message Protocol.'."\n" + ."\n" + .'- **gre**: Generic Routing Encapsulation.'."\n" + ."\n" + .'- **tcp**: Transmission Control Protocol.'."\n" + ."\n" + .'- **udp**: User Datagram Protocol.'."\n" + ."\n" + .'- **all**: all protocols.', 'type' => 'string', 'example' => 'all', 'title' => ''], + 'Port' => ['description' => 'The destination port range of the inbound rule entries.'."\n" + ."\n" + .'- If the Protocol Type of the inbound rule entries is set to **all**, **icmp**, or **gre**, the port range is -1/-1, which indicates all ports.'."\n" + .'- If the Protocol Type of the inbound rule entries is set to **tcp** or **udp**, the port range is **1** to **65535**. The format is **1/200** or **80/80**, which indicates port 1 to port 200 or port 80.', 'type' => 'string', 'example' => '-1/-1 ', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', ], - ], - ], - ], - ], - ], - 'RequestId' => [ - 'description' => 'The request ID.', - 'type' => 'string', - 'example' => '0ED8D006-F706-4D23-88ED-E11ED28DCAC0', - ], - 'ErrorInfoList' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'errorInfoList' => [ - 'description' => 'If the request fails the dry run, the following error codes and error messages may be returned:'."\n" - ."\n" - .'- pconn.high.reliable.dryrun.error.disable.outbound.data.transfer.billing. Billing for outbound data transfer is not enabled.'."\n" - .'- pconn.high.reliable.dryrun.error.incompatable.device.capacity. No device in the access point supports advanced features.'."\n" - .'- pconn.high.reliable.dryrun.error.quota.exceeded. The quota is insufficient.'."\n" - .'- pconn.high.reliable.dryrun.error.not.enough.resource. The access point resources are insufficient.', - 'type' => 'array', - 'items' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'ErrorCode' => [ - 'description' => 'Error codes.', - 'type' => 'string', - 'example' => 'pconn.high.reliable.dryrun.error.disable.outbound.data.transfer.billing', + 'EgressAclEntries' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'EgressAclEntry' => [ + 'description' => 'The outbound rule information.', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'NetworkAclEntryId' => ['description' => 'The ID of the outbound rule entries.', 'type' => 'string', 'example' => 'nae-a2d447uw4tillfvgb****', 'title' => ''], + 'EntryType' => ['description' => 'The rule type. The value is **custom**, which indicates a custom rule.', 'type' => 'string', 'example' => 'custom', 'title' => ''], + 'NetworkAclEntryName' => ['description' => 'The name of the outbound rule entries.', 'type' => 'string', 'example' => 'acl-2 ', 'title' => ''], + 'Policy' => ['description' => 'The authorization policy. Valid values:'."\n" + ."\n" + .'- **accept**: allows access.'."\n" + ."\n" + .'- **drop**: denies access.', 'type' => 'string', 'example' => 'accept', 'title' => ''], + 'Description' => ['description' => 'The description of the outbound rule.', 'type' => 'string', 'example' => 'This is EgressAclEntries.', 'title' => ''], + 'Protocol' => ['description' => 'The protocol type. Valid values:'."\n" + ."\n" + .'- **icmp**: Internet Control Message Protocol.'."\n" + ."\n" + .'- **gre**: Generic Routing Encapsulation.'."\n" + ."\n" + .'- **tcp**: Transmission Control Protocol.'."\n" + ."\n" + .'- **udp**: User Datagram Protocol.'."\n" + ."\n" + .'- **all**: all protocols.', 'type' => 'string', 'example' => 'all', 'title' => ''], + 'DestinationCidrIp' => ['description' => 'The destination CIDR block.', 'type' => 'string', 'example' => '10.0.0.0/24 ', 'title' => ''], + 'IpVersion' => ['description' => 'The IP version of the instance. Valid values:'."\n" + ."\n" + .'- **IPv4**: IPv4.'."\n" + .'- **IPv6**: IPv6.', 'type' => 'string', 'example' => 'IPv4', 'title' => ''], + 'Port' => ['description' => 'The destination port range of the outbound rule entries.'."\n" + ."\n" + .'- If the Protocol Type of the outbound rule entries is set to **all**, **icmp**, or **gre**, the port range is -1/-1, which indicates all ports.'."\n" + .'- If the Protocol Type of the outbound rule entries is set to **tcp** or **udp**, the port range is **1** to **65535**. The format is **1/200** or **80/80**, which indicates port 1 to port 200 or port 80.', 'type' => 'string', 'example' => '-1/-1 ', 'title' => ''], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', ], - 'ErrorMessage' => [ - 'description' => 'The returned error message.', - 'type' => 'string', - 'example' => 'pconn.high.reliable.dryrun.error.disable.outbound.data.transfer.billing', + 'Resources' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Resource' => [ + 'description' => 'The associated resource.', + 'type' => 'array', + 'items' => [ + 'description' => 'The associated resource.', + 'type' => 'object', + 'properties' => [ + 'Status' => ['description' => 'The status of the associated resource. Valid values:'."\n" + ."\n" + .'- **BINDED**: associated.'."\n" + ."\n" + .'- **BINDING**: being associated.'."\n" + ."\n" + .'- **UNBINDING**: being disassociated.', 'type' => 'string', 'example' => 'BINDED', 'title' => ''], + 'ResourceType' => ['description' => 'The type of the associated resource.', 'type' => 'string', 'example' => 'VSwitch', 'title' => ''], + 'ResourceId' => ['description' => 'The ID of the associated resource.', 'type' => 'string', 'example' => 'vsw-bp1de348lntdwcdf****', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', ], - 'InstanceId' => [ - 'description' => 'The ID of the Express Connect circuit.', - 'type' => 'string', - 'example' => 'pc-j5e5qqo616p81ncspbll1', + 'Tags' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Tag' => [ + 'description' => 'The tag information.', + 'type' => 'array', + 'items' => [ + 'description' => 'The tag information.', + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => 'The tag key.', 'type' => 'string', 'example' => 'FinanceDept', 'title' => ''], + 'Value' => ['description' => 'The tag value.', 'type' => 'string', 'example' => 'FinanceJoshua', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], + 'title' => '', + 'example' => '', ], + 'title' => '', + 'example' => '', ], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'Invalid.Status', - 'errorMessage' => 'The device or interface status invalid, or has been used..', - ], - [ - 'errorCode' => 'InvalidType.Malformd', - 'errorMessage' => 'The Type provided was invalid.', - ], - [ - 'errorCode' => 'InvalidPeerLocation.Malformd', - 'errorMessage' => 'The PeerLocation provided was invalid.', - ], - [ - 'errorCode' => 'InvalidLineOperator.Malformd', - 'errorMessage' => 'The LineOperator provided was invalid.', - ], - [ - 'errorCode' => 'InvalidPortType.Malformd', - 'errorMessage' => 'The PortType provided was invalid.', - ], - [ - 'errorCode' => 'InvalidDescription.Malformed', - 'errorMessage' => 'The specifid ?Description? is not valid.', - ], - [ - 'errorCode' => 'InvalidRedundantPhysicalConnectionId.NotFound', - 'errorMessage' => 'The RedundantPhysicalConnectionId does not found.', - ], - [ - 'errorCode' => 'InvalidName.Malformed', - 'errorMessage' => 'The specified ?Name? is not valid.', - ], - [ - 'errorCode' => 'QuotaExceeded.pConnPerAP', - 'errorMessage' => 'Physical connection count per ap quota exceed.', - ], - [ - 'errorCode' => 'InvalidBandwidth', - 'errorMessage' => 'invalid physical connection banwidth.', - ], - [ - 'errorCode' => 'InvalidRedundantPhysicalConnection', - 'errorMessage' => 'redundant physical connection doesn\'t belong to current user.', - ], - [ - 'errorCode' => 'InvalidRedundantPhysicalConnectionStatus', - 'errorMessage' => 'invalid redundant physical connection status.', - ], - [ - 'errorCode' => 'InvalidCircuitCode.Malformed', - 'errorMessage' => 'circuitCode is illegal.', - ], - [ - 'errorCode' => 'QuotaExceeded.freePconnPerAP', - 'errorMessage' => 'free physical connections count excceeded.', - ], - [ - 'errorCode' => 'InvalidPhysicalConnectionOperator.Malformed', - 'errorMessage' => 'Specified PhysicalConnection Operator is not valid.', - ], - [ - 'errorCode' => 'InvalidPhysicalConnectionPortType.Malformed', - 'errorMessage' => 'Specified PhysicalConnection PortType is not valid.', - ], - [ - 'errorCode' => 'InvalidPhysicalConnectionBandwidth.Malformed', - 'errorMessage' => 'Specified PhysicalConnection Bandwidth is not valid.', - ], - [ - 'errorCode' => 'IllegalParam.ClientToken', - 'errorMessage' => 'Token verify failed because client token length too long.', - ], - [ - 'errorCode' => 'InvalidPortType.NotFound', - 'errorMessage' => 'Specified port type is not found.', - ], - [ - 'errorCode' => 'OperationFailed.PconnTrafficNotEnable', - 'errorMessage' => 'The operation is failed because of PconnTrafficNotEnable.', - ], - [ - 'errorCode' => 'EcNotSupportRegion', - 'errorMessage' => 'High reliable physical connection is not support in this region.', - ], - [ - 'errorCode' => 'EcFailToGetAp', - 'errorMessage' => 'Fail to get access point details.', - ], - [ - 'errorCode' => 'EcNotEnoughResource', - 'errorMessage' => 'Insufficient access point resources.', - ], - [ - 'errorCode' => 'IllegalParam.UnsupportedAccessPoint', - 'errorMessage' => 'The access point type does not support the creation of a highly reliable physical connection.', - ], - [ - 'errorCode' => 'ResourceNotFound.AccessPointId', - 'errorMessage' => 'The specified resource of access point id is not found.', - ], - [ - 'errorCode' => 'IllegalParam.%s', - 'errorMessage' => 'The param of %s is illegal.', - ], + ['errorCode' => 'ParameterMissing.AliUid', 'errorMessage' => 'ParameterMissing.AliUid', 'description' => ''], + ['errorCode' => 'ParameterMissing.Bid', 'errorMessage' => 'ParameterMissing.Bid', 'description' => ''], + ['errorCode' => 'ParameterMissing.RegionId', 'errorMessage' => 'ParameterMissing.RegionId', 'description' => ''], + ['errorCode' => 'ParameterEmpty.RegionId', 'errorMessage' => 'ParameterEmpty.RegionId', 'description' => ''], + ['errorCode' => 'NotSupport.NetworkAcl', 'errorMessage' => 'Network acl is not support now.', 'description' => ''], ], - 404 => [ - [ - 'errorCode' => 'InvalidPortType.NotFound', - 'errorMessage' => 'There are no resources with the portType.', - ], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error.', 'description' => ''], ], ], - 'staticInfo' => [ - 'returnType' => 'asynchronous', - 'callback' => 'Vpc::2016-04-28::DescribePhysicalConnections', - 'callbackInterval' => 5, - 'maxCallbackTimes' => 100, - ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"PhysicalConnectionList\\": {\\n \\"physicalConnectionList\\": [\\n {\\n \\"InstanceId\\": \\"pc-j5e5qqo616p81ncsp****\\",\\n \\"RegionNo\\": \\"cn-shanghai\\"\\n }\\n ]\\n },\\n \\"RequestId\\": \\"0ED8D006-F706-4D23-88ED-E11ED28DCAC0\\",\\n \\"ErrorInfoList\\": {\\n \\"errorInfoList\\": [\\n {\\n \\"ErrorCode\\": \\"pconn.high.reliable.dryrun.error.disable.outbound.data.transfer.billing\\",\\n \\"ErrorMessage\\": \\"pconn.high.reliable.dryrun.error.disable.outbound.data.transfer.billing\\",\\n \\"InstanceId\\": \\"pc-j5e5qqo616p81ncsp****\\"\\n }\\n ]\\n }\\n}","type":"json"}]', - 'title' => 'CreateHighReliablePhysicalConnection', - ], - 'CreateVpconnFromVbr' => [ - 'summary' => 'Adds a shared port to a hosted connection.', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', + 'staticInfo' => ['returnType' => 'synchronous'], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"PageSize\\": \\"10\\",\\n \\"RequestId\\": \\"F7DDDC17-FA06-4AC2-8F35-59D2470FCFC1\\",\\n \\"PageNumber\\": \\"1\\",\\n \\"TotalCount\\": \\"2\\",\\n \\"NetworkAcls\\": {\\n \\"NetworkAcl\\": [\\n {\\n \\"Status\\": \\"Available\\",\\n \\"VpcId\\": \\"vpc-m5ebpc2xh64mqm27e****\\",\\n \\"CreationTime\\": \\"2021-12-25 11:44:17\\",\\n \\"Description\\": \\"This is my NetworkAcl.\\",\\n \\"NetworkAclName\\": \\"acl-1\\",\\n \\"NetworkAclId\\": \\"nacl-a2do9e413e0spxscd****\\",\\n \\"OwnerId\\": 253460731706911260,\\n \\"RegionId\\": \\"cn-hangzhou\\",\\n \\"IngressAclEntries\\": {\\n \\"IngressAclEntry\\": [\\n {\\n \\"NetworkAclEntryId\\": \\"nae-a2dk86arlydmezasw****\\",\\n \\"EntryType\\": \\"custom\\",\\n \\"NetworkAclEntryName\\": \\"acl-3\\\\t\\",\\n \\"Policy\\": \\"accept\\",\\n \\"Description\\": \\"This is IngressAclEntries.\\",\\n \\"SourceCidrIp\\": \\"10.0.0.0/24\\\\t\\",\\n \\"IpVersion\\": \\"IPv4\\",\\n \\"Protocol\\": \\"all\\",\\n \\"Port\\": \\"-1/-1\\\\t\\"\\n }\\n ]\\n },\\n \\"EgressAclEntries\\": {\\n \\"EgressAclEntry\\": [\\n {\\n \\"NetworkAclEntryId\\": \\"nae-a2d447uw4tillfvgb****\\",\\n \\"EntryType\\": \\"custom\\",\\n \\"NetworkAclEntryName\\": \\"acl-2\\\\t\\",\\n \\"Policy\\": \\"accept\\",\\n \\"Description\\": \\"This is EgressAclEntries.\\",\\n \\"Protocol\\": \\"all\\",\\n \\"DestinationCidrIp\\": \\"10.0.0.0/24\\\\t\\",\\n \\"IpVersion\\": \\"IPv4\\",\\n \\"Port\\": \\"-1/-1\\\\t\\"\\n }\\n ]\\n },\\n \\"Resources\\": {\\n \\"Resource\\": [\\n {\\n \\"Status\\": \\"BINDED\\",\\n \\"ResourceType\\": \\"VSwitch\\",\\n \\"ResourceId\\": \\"vsw-bp1de348lntdwcdf****\\"\\n }\\n ]\\n },\\n \\"Tags\\": {\\n \\"Tag\\": [\\n {\\n \\"Key\\": \\"FinanceDept\\",\\n \\"Value\\": \\"FinanceJoshua\\"\\n }\\n ]\\n }\\n }\\n ]\\n }\\n}","type":"json"}]', + 'title' => 'Query network ACL list', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2023-11-24T05:37:29.000Z', 'description' => 'Request parameters changed, Response parameters changed'], + ['createdAt' => '2023-05-09T07:02:21.000Z', 'description' => 'Response parameters changed'], ], - 'security' => [ - [ - 'AK' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '30', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DescribeNetworkAcls'], ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], ], - 'operationType' => 'write', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'create', - ], - 'parameters' => [ - [ - 'name' => 'OrderMode', - 'in' => 'query', - 'schema' => [ - 'title' => 'vpconn的支付方', - 'description' => 'The payer for the shared Express Connect circuit. Valid values:'."\n" - ."\n" - .'* **PayByPhysicalConnectionOwner**: the owner of the shared Express Connect circuit'."\n" - .'* **PayByVirtualPhysicalConnectionOwner**: the owner of the hosted connection'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'PayByVirtualPhysicalConnectionOwner', - 'enum' => [ - 'PayByVirtualPhysicalConnectionOwner', - 'PayByPhysicalConnectionOwner', - ], - ], - ], - [ - 'name' => 'VbrId', - 'in' => 'query', - 'schema' => [ - 'title' => '跨帐号的VBR', - 'description' => 'The ID of the associated VBR.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'vbr-bp136flp1mf8mlq6r****', - ], - ], - [ - 'name' => 'Token', - 'in' => 'query', - 'schema' => [ - 'title' => '幂等Token', - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'You can use the client to generate the value, but you must ensure that it is unique among different requests. The token can contain only ASCII characters and cannot exceed 64 characters in length.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'CBCE910E-D396-4944-8****', - ], - ], - [ - 'name' => 'DryRun', - 'in' => 'query', - 'schema' => [ - 'title' => 'DryRun', - 'description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values:'."\n" - ."\n" - .'* **true**: performs only a dry run. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and instance status. If the request fails the dry run, an error message is returned. If the request passes the dry run, the system returns the ID of the request.'."\n" - .'* **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.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], - ], + 'ramActions' => [ [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the hosted connection.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], - ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'The response parameters.'."\n", - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '5356F028-0F5C-56FC-8574-897D24379041', - ], - 'VirtualPhysicalConnection' => [ - 'title' => 'Vpconn的实例ID', - 'description' => 'The ID of the hosted connection.'."\n", - 'type' => 'string', - 'example' => 'pc-bp1mrgfbtmc9brre7****', - ], + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'vpc:DescribeNetworkAcls', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'NetworkAcl', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:networkacl/*'], ], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'OperationFailed.TargetUserPconnTrafficNotEnable', - 'errorMessage' => 'The operation failed because of TargetUserPconnTrafficNotEnable.', - ], - [ - 'errorCode' => 'ResourceNotEnough.Bandwidth', - 'errorMessage' => 'The specified resource of Bandwidth is not enough.', - ], - [ - 'errorCode' => 'OperationFailed.VbrBindedPconn', - 'errorMessage' => 'The operation is failed because of VbrBindedPconn.', - ], - [ - 'errorCode' => 'IllegalParam.Bandwidth', - 'errorMessage' => 'The param of Bandwidth [%s] is illegal.', - ], - [ - 'errorCode' => 'IncorrectStatus.VbrId', - 'errorMessage' => 'The status of %s is incorrect.', - ], - [ - 'errorCode' => 'ResourceNotFound.PhysicalConnectionId', - 'errorMessage' => 'PhysicalConnection is not found.', - ], - [ - 'errorCode' => 'OperationFailed.VPconnCreated', - 'errorMessage' => 'The operation is failed because of VPconnCreated.', - ], - [ - 'errorCode' => 'OperationFailed.BandwidthOrVlanIdEmpty', - 'errorMessage' => 'The operation is failed because of BandwidthOrVlanIdEmpty.', - ], - [ - 'errorCode' => 'ResourceNotFound.VirtualBorderRouter', - 'errorMessage' => 'The specified resource of %s is not found.', - ], - ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"5356F028-0F5C-56FC-8574-897D24379041\\",\\n \\"VirtualPhysicalConnection\\": \\"pc-bp1mrgfbtmc9brre7****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 5356F028-0F5C-56FC-8574-897D24379041\\n pc-bp1mrgfbtmc9brre7****\\n","errorExample":""}]', - 'title' => 'CreateVpconnFromVbr', - 'description' => 'If an Express Connect partner has created a virtual border router (VBR) for a tenant before, the Express Connect partner can push the Express Connect circuit that is associated with the VBR to the tenant account by adding a shared port for the tenant account. The service of the tenant is not interrupted in this process.'."\n" - ."\n" - .'Preparations:'."\n" - ."\n" - .'Before the Express Connect partner performs the operation, the Express Connect partner must notify the tenant and request the tenant to enable outbound data transfer billing. For more information, see [Enable outbound data transfer billing](~~274385~~).'."\n" - ."\n" - .'What to do next:'."\n" - ."\n" - .'1. After the Express Connect partner performs the operation, a shared port is added for the tenant account. The tenant must call the [ConfirmPhysicalConnection](~~324198~~) operation to accept the shared port.'."\n" - .'2. Then, the Express Connect partner must call the [AttachVbrToVpconn](~~324191~~) operation to associate the VBR with the newly added shared port that belongs to the tenant account.'."\n", ], - 'DeletePhysicalConnection' => [ - 'summary' => 'Deletes a connection over an Express Connect circuit.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DescribePhysicalConnectionLOA' => [ + 'summary' => 'Use `DescribePhysicalConnectionLOA` to query the LOA for a physical connection.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'read', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'delete', - 'riskType' => 'high', - 'chargeType' => 'free', - ], + 'systemTags' => ['operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the Express Connect circuit.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cn-shanghai', - ], + 'schema' => ['description' => 'The ID of the region where the physical connection is located. You can call the [DescribeRegions](~~36063~~) operation to get a list of available region IDs.', 'type' => 'string', 'required' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'PhysicalConnectionId', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the Express Connect circuit.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'pc-119mfjzm7*********', - ], + 'schema' => ['description' => 'A client token that ensures the idempotence of the request.'."\n" + ."\n" + .'Your client generates this value, which must be unique for each request and have a maximum length of 64 ASCII characters.'."\n" + ."\n" + .'> If you do not specify this parameter, the system automatically uses the **RequestId** of the API request as the **ClientToken**. Each API request has a unique **RequestId**.', 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-426655440000', 'title' => ''], ], [ - 'name' => 'ClientToken', + 'name' => 'InstanceId', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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 and cannot exceed 64 characters in length.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '02fb3da4-130e-11e9-8e44-0016e04115b', - ], + 'schema' => ['description' => 'The ID of the physical connection instance.', 'type' => 'string', 'required' => true, 'example' => 'pc-bp1ca4wca27ex****', 'title' => ''], ], ], 'responses' => [ 200 => [ - 'headers' => [], 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '0ED8D006-F706-4D23-88ED-E11ED28DCAC0', + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '318BB676-0A2B-43A0-9AD8-F1D34E93750F', 'title' => ''], + 'PhysicalConnectionLOAType' => [ + 'description' => 'Information about the physical connection\'s LOA.', + 'type' => 'object', + 'properties' => [ + 'Status' => ['description' => 'The status of the LOA. Valid values:'."\n" + ."\n" + .'- **Applying**: The LOA application is in progress.'."\n" + ."\n" + .'- **Accept**: The LOA application is approved.'."\n" + ."\n" + .'- **Available**: The LOA is available.'."\n" + ."\n" + .'- **Rejected**: The LOA application is rejected.'."\n" + ."\n" + .'- **Completing**: The construction of the physical connection is in progress.'."\n" + ."\n" + .'- **Complete**: The construction of the physical connection is complete.'."\n" + ."\n" + .'- **Deleted**: The LOA is deleted.', 'type' => 'string', 'example' => 'Available', 'title' => ''], + 'LineLabel' => ['description' => 'The line label for the in-building cable at the data center.', 'type' => 'string', 'example' => 'bbb222', 'title' => ''], + 'LineCode' => ['description' => 'The line code assigned by the line service provider.', 'type' => 'string', 'example' => 'aaa111', 'title' => ''], + 'ConstructionTime' => ['description' => 'The time when construction personnel enter the site.', 'type' => 'string', 'example' => '2019-02-26T08:00:00Z', 'title' => ''], + 'SI' => ['description' => 'The system integrator (SI).', 'type' => 'string', 'example' => 'ctcu', 'title' => ''], + 'LoaUrl' => ['description' => 'The URL to download the LOA file.', 'type' => 'string', 'example' => 'http://******', 'title' => ''], + 'CompanyLocalizedName' => ['description' => 'The localized name of the company.', 'type' => 'string', 'example' => 'company', 'title' => ''], + 'InstanceId' => ['description' => 'The instance ID of the physical connection.', 'type' => 'string', 'example' => 'pc-bp1ca4wca27****', 'title' => ''], + 'LineType' => ['description' => 'The line type of the physical connection. Valid values:'."\n" + ."\n" + .'- **MSTP**'."\n" + ."\n" + .'- **MPLSVPN**'."\n" + ."\n" + .'- **FIBRE**'."\n" + ."\n" + .'- **Other**', 'type' => 'string', 'example' => 'FIBRE', 'title' => ''], + 'CompanyName' => ['description' => 'The name of the company that requires the physical connection.', 'type' => 'string', 'example' => 'test1234', 'title' => ''], + 'PMInfo' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'PMInfo' => [ + 'description' => 'A list of construction crew members.', + 'type' => 'array', + 'items' => [ + 'description' => 'The information about a construction crew member.', + 'type' => 'object', + 'properties' => [ + 'PMGender' => ['description' => 'The gender of the construction crew member. Valid values:'."\n" + ."\n" + .'- **Male**: Male.'."\n" + ."\n" + .'- **Female**: Female.', 'type' => 'string', 'example' => 'Male', 'title' => ''], + 'PMCertificateNo' => ['description' => 'The certificate number of the construction crew member.', 'type' => 'string', 'example' => '12345671****', 'title' => ''], + 'PMName' => ['description' => 'The name of the construction crew member.', 'type' => 'string', 'example' => 'name', 'title' => ''], + 'PMCertificateType' => ['description' => 'The certificate type of the construction crew member. Valid values:'."\n" + ."\n" + .'- **IDCard**: ID card.'."\n" + ."\n" + .'- **Passport**: passport.'."\n" + ."\n" + .'- **Other**: Other.', 'type' => 'string', 'example' => 'Other', 'title' => ''], + 'PMContactInfo' => ['description' => 'The contact information of the construction crew member.', 'type' => 'string', 'example' => '18910010****', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + ], + 'description' => 'Information about the construction personnel.', + 'title' => '', + 'example' => '', + ], + 'LineServiceProvider' => ['description' => 'The line service provider. Valid values:'."\n" + ."\n" + .'- **China Telecom**'."\n" + ."\n" + .'- **China Unicom**'."\n" + ."\n" + .'- **China Mobile**'."\n" + ."\n" + .'- **Other**', 'type' => 'string', 'example' => '中国其他', 'title' => ''], + 'LineSPContactInfo' => ['description' => 'The contact information of the line O\\&M personnel.', 'type' => 'string', 'example' => '1388888****', 'title' => ''], + 'Description' => ['description' => 'The description of the LOA.', 'type' => 'string', 'title' => '', 'example' => ''], + ], + 'title' => '', + 'example' => '', ], ], - 'description' => '', + 'description' => 'The data returned.', + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidPhysicalConnectionId.NotMatched', - 'errorMessage' => 'instance id not matched.', - ], - [ - 'errorCode' => 'Forbidden.VBRExists', - 'errorMessage' => 'physical connection owner\'s vbr still exists.', - ], - [ - 'errorCode' => 'Forbidden.AssociateToVBR', - 'errorMessage' => 'The physical connection still associate to VBR.', - ], - [ - 'errorCode' => 'OperationDenied.NeedVpconnOwner', - 'errorMessage' => 'The operation is denied.', - ], - [ - 'errorCode' => 'OperationDenied.NeedPconnOwner', - 'errorMessage' => 'The operation is denied.', - ], - [ - 'errorCode' => 'Forbidden.NotInAllowDeleteStatus', - 'errorMessage' => 'Only physical connection in the Cancelled, Rejected, Terminated, Allocated, or AllocationFailed states can be deleted.', - ], - [ - 'errorCode' => 'ResourceAlreadyAssociated.PconnQos', - 'errorMessage' => 'The specified resource of PconnQos is already associated.', - ], - [ - 'errorCode' => 'ResourceNotFound.PhysicalConnectionId', - 'errorMessage' => 'PhysicalConnection is not found.', - ], - [ - 'errorCode' => 'OperationDenied.NeedVpconnOwnerOrPconnOwner', - 'errorMessage' => 'The deletion failed. Only the owner of virtual physical connection or physical connection can delete it.', - ], - [ - 'errorCode' => 'OperationDenied.ExistVbrInPhysicalConnection', - 'errorMessage' => 'It cannot be deleted when VBR exists.', - ], - ], - 404 => [ - [ - 'errorCode' => 'InvalidPhysicalConnectionId.NotFound', - 'errorMessage' => 'The PhysicalConnectionId provided does not exist in our records.', - ], + ['errorCode' => 'MissingParam.AliUid', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'MissingParam.InstanceId', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'MissingParam.RegionNo', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'InvalidInstanceId.NotFound', 'errorMessage' => '%s', 'description' => ''], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'DescribePhysicalConnectionLOA', + 'changeSet' => [ + ['createdAt' => '2023-09-07T11:50:19.000Z', 'description' => 'Response parameters changed'], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"0ED8D006-F706-4D23-88ED-E11ED28DCAC0\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 0ED8D006-F706-4D23-88ED-E11ED28DCAC0\\n","errorExample":"\\n\\n 0ED8D006-F706-4D23-88ED-E11ED28DCAC0\\n"}]', - 'title' => 'DeletePhysicalConnection', - 'description' => 'You can only delete a connection over an Express Connect circuit that is in the **Allocated**, **Confirmed**, **Rejected**, **Canceled**, **AllocationFailed**, and **Terminated** states.', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', + 'ramActions' => [], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"318BB676-0A2B-43A0-9AD8-F1D34E93750F\\",\\n \\"PhysicalConnectionLOAType\\": {\\n \\"Status\\": \\"Available\\",\\n \\"LineLabel\\": \\"bbb222\\",\\n \\"LineCode\\": \\"aaa111\\",\\n \\"ConstructionTime\\": \\"2019-02-26T08:00:00Z\\",\\n \\"SI\\": \\"ctcu\\",\\n \\"LoaUrl\\": \\"http://******\\",\\n \\"CompanyLocalizedName\\": \\"company\\",\\n \\"InstanceId\\": \\"pc-bp1ca4wca27****\\",\\n \\"LineType\\": \\"FIBRE\\",\\n \\"CompanyName\\": \\"test1234\\",\\n \\"PMInfo\\": {\\n \\"PMInfo\\": [\\n {\\n \\"PMGender\\": \\"Male\\",\\n \\"PMCertificateNo\\": \\"12345671****\\",\\n \\"PMName\\": \\"name\\",\\n \\"PMCertificateType\\": \\"Other\\",\\n \\"PMContactInfo\\": \\"18910010****\\"\\n }\\n ]\\n },\\n \\"LineServiceProvider\\": \\"中国其他\\",\\n \\"LineSPContactInfo\\": \\"1388888****\\",\\n \\"Description\\": \\"\\"\\n }\\n}","type":"json"}]', ], - 'CancelPhysicalConnection' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DescribePhysicalConnections' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], + 'operationType' => 'read', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'update', - ], + 'systemTags' => ['operationType' => 'list', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the Express Connect circuit.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cn-shanghai', - ], + 'schema' => ['description' => 'The region ID of the Express Connect circuit. '."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the region ID.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'PhysicalConnectionId', + 'name' => 'PageNumber', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the Express Connect circuit.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'pc-119mfjzm7****', - ], + 'schema' => ['description' => 'The page number of the list. Default value: **1**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'minimum' => '1', 'default' => '1', 'example' => '1', 'title' => ''], ], [ - 'name' => 'ClientToken', + 'name' => 'PageSize', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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 and cannot exceed 64 characters in length.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '02fb3da4-130e-11e9-8e44-0016e04115b', - ], - ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '4EC47282-1B74-4534-BD0E-403F3EE64CAF', - ], - ], - 'description' => '', - ], - ], - ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'Forbidden.NotAllowedInState', - 'errorMessage' => 'The request does not allow in this state.', - ], + 'schema' => ['description' => 'The number of entries per page in a paged query. Default value: **10**. Valid values: **1** to **50**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '50', 'minimum' => '1', 'default' => '10', 'example' => '10', 'title' => ''], ], - 404 => [ - [ - 'errorCode' => 'InvalidRegionId.NotFound', - 'errorMessage' => 'The RegionId provided does not exist in our records.', - ], - [ - 'errorCode' => 'InvalidPhysicalConnectionId.NotFound', - 'errorMessage' => 'The PhysicalConnectionId provided does not exist in our records.', - ], + [ + 'name' => 'IncludeReservationData', + 'in' => 'query', + 'schema' => ['description' => 'Specifies whether to return data of orders that have not taken effect. Valid values:'."\n" + ."\n" + .'* **true**: Returns data of orders that have not taken effect.'."\n" + ."\n" + .'* **false** (default): Does not return data of orders that have not taken effect.', 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"4EC47282-1B74-4534-BD0E-403F3EE64CAF\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 4EC47282-1B74-4534-BD0E-403F3EE64CAF\\n","errorExample":"{\\n \\"RequestId\\": \\"BE36E95A-F83E-4127-A29E-F2F35D4C999A\\"\\n}"}]', - 'title' => 'CancelPhysicalConnection', - 'summary' => 'Cancels an Express Connect circuit before it is enabled. After you perform this operation, the Express Connect circuit enters the Canceled state.', - 'description' => 'You can cancel only an Express Connect circuit that is in the **Initial**, **Approved**, **Allocated**, or **Confirmed** state.'."\n", - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'ModifyPhysicalConnectionAttribute' => [ - 'summary' => 'Modifies the configurations of an Express Connect circuit.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ [ - 'AK' => [], + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'Generate a parameter value from your client to ensure uniqueness across different requests. ClientToken supports only ASCII characters.', 'type' => 'string', 'required' => false, 'example' => '02fb3da4-130e-11e9-8e44-001', 'title' => ''], ], - ], - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'update', - ], - 'parameters' => [ [ - 'name' => 'RegionId', + 'name' => 'Filter', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => 'The region ID of the Express Connect circuit.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cn-shanghai', - ], - ], - [ - 'name' => 'PhysicalConnectionId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the Express Connect circuit.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'pc-119mfjzm******', - ], - ], - [ - 'name' => 'LineOperator', - 'in' => 'query', - 'schema' => [ - 'description' => 'The connectivity provider of the Express Connect circuit. Valid values:'."\n" - ."\n" - .'* **CT**: China Telecom'."\n" - .'* **CU**: China Unicom'."\n" - .'* **CM**: China Mobile'."\n" - .'* **CO**: other connectivity providers in the Chinese mainland'."\n" - .'* **Equinix**: Equinix'."\n" - .'* **Other**: other connectivity providers outside the Chinese mainland'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'CT', - ], - ], - [ - 'name' => 'bandwidth', - 'in' => 'query', - 'schema' => [ - 'description' => 'The bandwidth value for the connection over the Express Connect circuit. Unit: Mbit/s. Valid values: 2 to 10240.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '5', - ], - ], - [ - 'name' => 'PeerLocation', - 'in' => 'query', - 'schema' => [ - 'description' => 'The geographical location of the data center.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'XX Number, XX Road, XX Town, XX District, Hangzhou City, Zhejiang Province.', - ], - ], - [ - 'name' => 'PortType', - 'in' => 'query', - 'schema' => [ - 'description' => 'The port type of the Express Connect circuit. Valid values:'."\n" - ."\n" - .'* **100Base-T**: 100 Mbit/s copper Ethernet port'."\n" - .'* **1000Base-T** (default): 1,000 Mbit/s copper Ethernet port'."\n" - .'* **1000Base-LX**: 1,000 Mbit/s single-mode optical port (10 kilometers)'."\n" - .'* **10GBase-T**: 10,000 Mbit/s copper Ethernet port'."\n" - .'* **10GBase-LR**: 10,000 Mbit/s single-mode optical port (10 kilometers)'."\n" - .'* **40GBase-LR**: 40,000 Mbit/s single-mode optical port'."\n" - .'* **100GBase-LR**: 100,000 Mbit/s single-mode optical port'."\n" - ."\n" - .'> To use ports 40GBase-LR and 100GBase-LR, you must first contact your account manager.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '1000Base-LX', - ], - ], - [ - 'name' => 'RedundantPhysicalConnectionId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the redundant Express Connect circuit. The redundant Express Connect circuit must be in the **Allocated**, **Confirmed**, or **Enabled** state.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'pc-119mfjzm7', - ], - ], - [ - 'name' => 'Description', - 'in' => 'query', - 'schema' => [ - 'description' => 'The description of the Express Connect circuit.'."\n" - ."\n" - .'The description must be 2 to 256 characters in length. It must start with a letter but cannot start with `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'The description of the Express Connect circuit.', - ], - ], - [ - 'name' => 'Name', - 'in' => 'query', - 'schema' => [ - 'description' => 'The name of the Express Connect circuit.'."\n" - ."\n" - .'The name must be 2 to 128 characters in length and can contain letters, digits, periods (.), underscores (\\_), and hyphens (-). It must start with a letter but cannot start with `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'Name', - ], - ], - [ - 'name' => 'ClientToken', - 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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.'."\n" - ."\n" - .'> 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.'."\n", - 'type' => 'string', + 'description' => 'The list of filter conditions.', + 'type' => 'array', + 'items' => [ + 'description' => 'The filter condition.', + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => 'The filter condition. Valid values:'."\n" + ."\n" + .'- **PhysicalConnectionId**: the Express Connect circuit ID.'."\n" + ."\n" + .'- **AccessPointId**: the access point ID.'."\n" + ."\n" + .'- **Type**: the Express Connect circuit type. This filter condition supports only the value **VPC**.'."\n" + ."\n" + .'- **LineOperator**: the carrier of the Express Connect circuit. This filter condition supports the following values:'."\n" + .' - **CT**: China Telecom.'."\n" + .' - **CU**: China Unicom.'."\n" + .' - **CM**: China Mobile.'."\n" + .' - **CO**: other carriers in China.'."\n" + .' - **Equinix**: Equinix.'."\n" + .' - **Other**: other carriers outside China.'."\n" + ."\n" + .'- **Spec**: the specification of the Express Connect circuit. This filter condition supports the following values:'."\n" + .' - **1G and below**.'."\n" + .' - **10G**.'."\n" + .' - **40G**.'."\n" + .' - **100G**.'."\n" + .'> The **40G** and **100G** specifications are not available by default. Only users who have committed an application to their account manager and received approval can use these values.'."\n" + ."\n" + .'- **Status**: the status of the Express Connect circuit. This filter condition supports the following values:'."\n" + .' - **Initial**: pending application.'."\n" + .' - **Approved**: approved.'."\n" + .' - **Allocating**: allocating resources.'."\n" + .' - **Allocated**: under construction.'."\n" + .' - **Confirmed**: pending user confirmation.'."\n" + .' - **Enabled**: enabled.'."\n" + .' - **Rejected**: application denied.'."\n" + .' - **Canceled**: canceled.'."\n" + .' - **Allocation Failed**: resource allocation failed.'."\n" + .' - **Terminating**: stopping.'."\n" + .' - **Terminated**: stopped.'."\n" + ."\n" + .'- **Name**: the name of the Express Connect circuit.'."\n" + .'- **ProductType**: the circuit type. Valid values:'."\n" + .' - **VirtualPhysicalConnection**: shared Express Connect circuit.'."\n" + .' - **PhysicalConnection**: dedicated Express Connect circuit.'."\n" + ."\n" + .'You can specify up to 5 filter conditions at a time. The filter conditions have an **AND** relationship. Results are returned only when all filter conditions are met.', 'type' => 'string', 'required' => false, 'example' => 'Name', 'title' => ''], + 'Value' => [ + 'description' => 'The list of filter values.', + 'type' => 'array', + 'items' => ['description' => 'The filter value that corresponds to the filter condition.'."\n" + ."\n" + .'Each filter condition supports up to 5 filter values. Multiple filter values have an **OR** relationship. A record is considered to match the filter condition if it matches any of the filter values.', 'type' => 'string', 'required' => false, 'example' => 'nametest', 'title' => ''], + 'required' => false, + 'example' => '1', + 'maxItems' => 5, + 'title' => '', + ], + ], + 'required' => false, + 'title' => '', + 'example' => '', + ], 'required' => false, - 'example' => 'efefe566754h', + 'maxItems' => 5, + 'title' => '', + 'example' => '', ], ], [ - 'name' => 'ClientToken', + 'name' => 'Tags', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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.'."\n" - ."\n" - .'> 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.'."\n", - 'type' => 'string', + 'description' => 'The list of tags.', + 'type' => 'array', + 'items' => [ + 'description' => 'The list of tags.', + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => 'The tag key of the resource. You can specify up to 20 tag keys. The tag key cannot be an empty string.'."\n" + ."\n" + .'The tag key can be up to 64 characters in length and can contain digits, periods (.), underscores (\\_), and hyphens (-). It cannot start with `aliyun` or `acs:` and cannot contain `http://` or `https://`.', 'type' => 'string', 'required' => false, 'example' => 'FinanceDept', 'title' => ''], + 'Value' => ['description' => 'The tag value of the resource. You can specify up to 20 tag values. The tag value can be an empty string.'."\n" + ."\n" + .'The tag value can be up to 128 characters in length and can contain digits, periods (.), underscores (\\_), and hyphens (-). It cannot start with `aliyun` or `acs:` and cannot contain `http://` or `https://`.', 'type' => 'string', 'required' => false, 'example' => 'FinanceJoshua', 'title' => ''], + ], + 'required' => false, + 'title' => '', + 'example' => '', + ], 'required' => false, - 'example' => 'efefe566754h', + 'maxItems' => 5, + 'title' => '', + 'example' => '', ], ], [ - 'name' => 'CircuitCode', + 'name' => 'ResourceGroupId', 'in' => 'query', - 'schema' => [ - 'description' => 'The circuit code of the Express Connect circuit. The circuit code is provided by the connectivity provider.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'longtel001', - ], + 'schema' => ['description' => 'The ID of the resource group to which the Express Connect circuit belongs.', 'type' => 'string', 'required' => false, 'example' => 'rg-aek2yvwibxr****', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'description' => 'The response parameters.', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '013EE132-A109-4247-91B0-099A8FF49AD7', + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '0E6D0EC4-7C91-53E2-9F65-64BF713114B0', 'title' => ''], + 'PageNumber' => ['description' => 'The page number of the list. Default value: **1**.', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''], + 'PageSize' => ['description' => 'The number of entries per page in a paged query. Default value: **10**. Valid values: **1** to **50**.', 'type' => 'integer', 'format' => 'int32', 'example' => '10', 'title' => ''], + 'TotalCount' => ['description' => 'The total number of entries returned.', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''], + 'PhysicalConnectionSet' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'PhysicalConnectionType' => [ + 'description' => 'The list of Express Connect circuits.', + 'type' => 'array', + 'items' => [ + 'description' => 'The details of the Express Connect circuit.', + 'type' => 'object', + 'properties' => [ + 'Type' => ['description' => 'The type of the Express Connect circuit. Valid values: **VPC**.', 'type' => 'string', 'example' => 'VPC', 'title' => ''], + 'Status' => ['description' => 'The status of the Express Connect circuit. Valid values:'."\n" + ."\n" + .'- **Initial**: pending application.'."\n" + ."\n" + .'- **Approved**: approved.'."\n" + ."\n" + .'- **Allocating**: allocating resources.'."\n" + ."\n" + .'- **Allocated**: under construction. '."\n" + ."\n" + .'- **Confirmed**: pending user confirmation. '."\n" + ."\n" + .'- **Enabled**: enabled.'."\n" + ."\n" + .'- **Rejected**: application rejected.'."\n" + ."\n" + .'- **Canceled**: canceled.'."\n" + .' '."\n" + .'- **Allocation Failed**: resource allocation failed.'."\n" + ."\n" + .'- **Terminating**: terminating.'."\n" + ."\n" + .'- **Terminated**: terminated.', 'type' => 'string', 'example' => 'Enabled', 'title' => ''], + 'CreationTime' => ['description' => 'The time when the Express Connect circuit was created.', 'type' => 'string', 'example' => '2021-08-24T07:30:58Z', 'title' => ''], + 'AdLocation' => ['description' => 'The location of the access point where the Express Connect circuit access device is deployed.', 'type' => 'string', 'example' => '浙江省杭州市XX区XX镇XX路10号', 'title' => ''], + 'ReservationActiveTime' => ['description' => 'The effective period of the order that has not taken effect.', 'type' => 'string', 'example' => '2022-02-25T11:01:04Z', 'title' => ''], + 'ReservationOrderType' => ['description' => 'The type of the order that has not taken effect.'."\n" + ."\n" + .'Valid values: **RENEW**, which indicates a renewal order.', 'type' => 'string', 'example' => 'RENEW', 'title' => ''], + 'PortNumber' => ['description' => 'The port number of the Express Connect circuit access device.', 'type' => 'string', 'example' => '1/1/1', 'title' => ''], + 'Spec' => ['description' => 'The specification of the Express Connect circuit.'."\n" + ."\n" + .'Unit: **G** indicates Gbit/s.', 'type' => 'string', 'example' => '10G', 'title' => ''], + 'ChargeType' => ['description' => 'The billing method of the Express Connect circuit.'."\n" + ."\n" + .'Valid values: **Prepaid**, which indicates subscription.', 'type' => 'string', 'example' => 'Prepaid', 'title' => ''], + 'ReservationInternetChargeType' => ['description' => 'The billing type of the order that has not taken effect.'."\n" + ."\n" + .'Valid values: **PayByBandwidth**, which indicates pay-by-bandwidth.', 'type' => 'string', 'example' => 'PayByBandwidth', 'title' => ''], + 'Description' => ['description' => 'The description of the Express Connect circuit.', 'type' => 'string', 'example' => 'desctest', 'title' => ''], + 'Bandwidth' => ['description' => 'The bandwidth of the Express Connect circuit.'."\n" + ."\n" + .'Unit: Mbit/s.', 'type' => 'integer', 'format' => 'int64', 'example' => '10', 'title' => ''], + 'EnabledTime' => ['description' => 'The time when the Express Connect circuit was enabled.', 'type' => 'string', 'example' => '2021-08-24T07:33:18Z', 'title' => ''], + 'LineOperator' => ['description' => 'The carrier that provides the physical line for the Express Connect circuit. Valid values:'."\n" + ."\n" + .'- **CT**: China Telecom.'."\n" + ."\n" + .'- **CU**: China Unicom.'."\n" + ."\n" + .'- **CM**: China Mobile.'."\n" + ."\n" + .'- **CO**: other carriers in China. '."\n" + ."\n" + .'- **Equinix**: Equinix.'."\n" + ."\n" + .'- **Other**: other carriers outside China.', 'type' => 'string', 'example' => 'CT', 'title' => ''], + 'PeerLocation' => ['description' => 'The geographic location of the on-premises data center.', 'type' => 'string', 'example' => '浙江省杭州市XX区XX镇XX路XX号', 'title' => ''], + 'RedundantPhysicalConnectionId' => ['description' => 'The ID of the redundant Express Connect circuit.', 'type' => 'string', 'example' => 'pc-119mfjzm****', 'title' => ''], + 'Name' => ['description' => 'The name of the Express Connect circuit.', 'type' => 'string', 'example' => 'nametest', 'title' => ''], + 'CircuitCode' => ['description' => 'The circuit code provided by the carrier for the Express Connect circuit.', 'type' => 'string', 'example' => 'longtel001', 'title' => ''], + 'EndTime' => ['description' => 'The expiration time of the Express Connect circuit.', 'type' => 'string', 'example' => '2022-04-24T16:00:00Z', 'title' => ''], + 'PortType' => ['description' => 'The port type of the Express Connect circuit access device. Valid values:'."\n" + ."\n" + .'- **100Base-T**: 100M Ethernet port.'."\n" + ."\n" + .'- **1000Base-T**: 1 GE electrical port.'."\n" + ."\n" + .'- **1000Base-LX**: GE single-mode optical port (10 km).'."\n" + ."\n" + .'- **10GBase-T**: 10 GE electrical port.'."\n" + ."\n" + .'- **10GBase-LR**: 10 GE single-mode optical port (10 km).'."\n" + ."\n" + .'- **40GBase-LR**: 40 GE single-mode optical port.'."\n" + ."\n" + .'- **100GBase-LR**: 100 GE single-mode optical port.'."\n" + ."\n" + .'> 40GBase-LR and 100GBase-LR ports are created based on the actual port availability in the backend. Contact your account manager for port availability details.', 'type' => 'string', 'example' => '10GBase-LR', 'title' => ''], + 'BusinessStatus' => ['description' => 'The business status of the Express Connect circuit. Valid values:'."\n" + .' '."\n" + .'- **Normal**: enabled.'."\n" + ."\n" + .'- **FinancialLocked**: locked due to overdue payment. '."\n" + ."\n" + .'- **SecurityLocked**: locked for security reasons.', 'type' => 'string', 'example' => 'Normal', 'title' => ''], + 'LoaStatus' => ['description' => 'The status of the Letter of Authorization (LOA). Valid values:'."\n" + ."\n" + .'- **Applying**: LOA application in progress.'."\n" + ."\n" + .'- **Accept**: LOA application approved.'."\n" + ."\n" + .'- **Available**: LOA available.'."\n" + ."\n" + .'- **Rejected**: LOA application rejected.'."\n" + ."\n" + .'- **Completing**: circuit construction in progress.'."\n" + ."\n" + .'- **Complete**: circuit construction completed.'."\n" + ."\n" + .'- **Deleted**: LOA deleted.', 'type' => 'string', 'example' => 'Available', 'title' => ''], + 'AccessPointId' => ['description' => 'The ID of the access point for the Express Connect circuit.', 'type' => 'string', 'example' => 'ap-cn-hangzhou-finance-yh-E', 'title' => ''], + 'AccessPointType' => ['description' => 'The type of the access point for the Express Connect circuit.', 'type' => 'string', 'example' => 'VPC', 'title' => ''], + 'HasReservationData' => ['description' => 'Indicates whether the response includes data of orders that have not taken effect. Valid values:'."\n" + .'* **true**: The response includes data of orders that have not taken effect.'."\n" + ."\n" + .'* **false**: The response does not include data of orders that have not taken effect.', 'type' => 'string', 'example' => 'false', 'title' => ''], + 'PhysicalConnectionId' => ['description' => 'The instance ID of the Express Connect circuit.', 'type' => 'string', 'example' => 'pc-bp1ciz7ekd2grn1as****', 'title' => ''], + 'ProductType' => ['description' => 'The type of the Express Connect circuit. Valid values:'."\n" + ."\n" + .'- **VirtualPhysicalConnection**: shared Express Connect circuit.'."\n" + .'- **PhysicalConnection**: dedicated Express Connect circuit.', 'type' => 'string', 'example' => 'PhysicalConnection', 'title' => ''], + 'VirtualPhysicalConnectionCount' => ['description' => 'The number of shared Express Connect circuits created under the current Express Connect circuit.', 'type' => 'integer', 'format' => 'int32', 'example' => '0', 'title' => ''], + 'ParentPhysicalConnectionId' => ['description' => 'The instance ID of the Express Connect circuit associated with the shared Express Connect circuits.', 'type' => 'string', 'example' => 'pc-bp1ciz7ekd2grn1as****', 'title' => ''], + 'ParentPhysicalConnectionAliUid' => ['description' => 'The Alibaba Cloud account ID that owns the Express Connect circuit associated with the shared Express Connect circuits.', 'type' => 'integer', 'format' => 'int64', 'example' => '132193271328****', 'title' => ''], + 'VlanId' => ['description' => 'The VLAN ID of the shared Express Connect circuits.', 'type' => 'string', 'example' => '10', 'title' => ''], + 'OrderMode' => ['description' => 'The payer of the shared Express Connect circuits. Valid values:'."\n" + ."\n" + .'- **PayByPhysicalConnectionOwner**: The partner pays.'."\n" + .'- **PayByVirtualPhysicalConnectionOwner**: The tenant pays.', 'type' => 'string', 'example' => 'PayByPhysicalConnectionOwner', 'title' => ''], + 'VpconnStatus' => ['description' => 'The business status of the shared Express Connect circuits. Valid values:'."\n" + ."\n" + .'- **Confirmed**: The shared Express Connect circuits have been accepted.'."\n" + .'- **UnConfirmed**: The shared Express Connect circuits have not been accepted.'."\n" + .'- **Deleted**: The shared Express Connect circuits have been deleted.', 'type' => 'string', 'example' => 'Confirmed', 'title' => ''], + 'ExpectSpec' => ['description' => 'The expected bandwidth of the shared Express Connect circuits. The expected bandwidth takes effect after payment is completed.'."\n" + ."\n" + .'Unit: **M** indicates Mbit/s, **G** indicates Gbit/s.', 'type' => 'string', 'example' => '50M', 'title' => ''], + 'ResourceGroupId' => ['description' => 'The resource group ID.', 'type' => 'string', 'example' => 'rg-acfmwu3k52p****', 'title' => ''], + 'AdDetailLocation' => ['description' => 'The information about the data center and rack.', 'type' => 'string', 'example' => '浙江省杭州市XX区XX镇XX路10号, XX机房, ET135ET135-XX-2包间, JXX机柜, position30', 'title' => ''], + 'Tags' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'tags' => [ + 'description' => 'The list of tags.', + 'type' => 'array', + 'items' => [ + 'description' => 'The list of tags.', + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => 'The tag key of the resource. You can specify up to 20 tag keys. The tag key cannot be an empty string.'."\n" + ."\n" + .'The tag key can be up to 64 characters in length and can contain digits, periods (.), underscores (\\_), and hyphens (-). It cannot start with `aliyun` or `acs:` and cannot contain `http://` or `https://`.', 'type' => 'string', 'example' => 'FinanceDept', 'title' => ''], + 'Value' => ['description' => 'The tag value of the resource. You can specify up to 20 tag values. The tag value can be an empty string.'."\n" + ."\n" + .'The tag value can be up to 128 characters in length and can contain digits, periods (.), underscores (\\_), and hyphens (-). It cannot start with `aliyun` or `acs:` and cannot contain `http://` or `https://`.', 'type' => 'string', 'example' => 'FinanceJoshua', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'QosId' => ['description' => 'The instance ID of the QoS policy.', 'type' => 'string', 'example' => 'qos-bp10s3szn8rgnxuw7****', 'title' => ''], + 'OpticalModuleModel' => ['type' => 'string', 'description' => '', 'title' => '', 'example' => ''], + 'MacsecKeys' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'MacsecKey' => [ + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'CipherSuite' => ['type' => 'string', 'description' => '', 'title' => '', 'example' => ''], + 'Ckn' => ['type' => 'string', 'description' => '', 'title' => '', 'example' => ''], + 'Cak' => ['type' => 'string', 'description' => '', 'title' => '', 'example' => ''], + 'StartOn' => ['type' => 'string', 'description' => '', 'title' => '', 'example' => ''], + 'Status' => ['type' => 'string', 'description' => '', 'title' => '', 'example' => ''], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + ], + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], - 'description' => '', + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidLineOperator.Malformd', - 'errorMessage' => 'The LineOperator provided was invalid.', - ], - [ - 'errorCode' => 'InvalidPeerLocation.Malformd', - 'errorMessage' => 'The PeerLocation provided was invalid.', - ], - [ - 'errorCode' => 'InvalidPortType.Malformd', - 'errorMessage' => 'The PortType provided was invalid.', - ], - [ - 'errorCode' => 'InvalidName.Malformed', - 'errorMessage' => 'The specified ?Name? is not valid.', - ], - [ - 'errorCode' => 'InvalidStatus', - 'errorMessage' => 'invalid physical connection status.', - ], - [ - 'errorCode' => 'InvalidBandwidth', - 'errorMessage' => 'invalid physical connection banwidth.', - ], - [ - 'errorCode' => 'InvalidRedundantPhysicalConnection', - 'errorMessage' => 'redundant physical connection doesn\'t belong to current user.', - ], - [ - 'errorCode' => 'InvalidRedundantPhysicalConnectionStatus', - 'errorMessage' => 'invalid redundant physical connection status.', - ], - [ - 'errorCode' => 'InvalidCircuitCode.Malformed', - 'errorMessage' => 'circuitCode is illegal.', - ], - [ - 'errorCode' => 'InvalidPhysicalConnectionOperator.Malformed', - 'errorMessage' => 'Specified PhysicalConnection Operator is not valid.', - ], - [ - 'errorCode' => 'InvalidPhysicalConnectionBandwidth.Malformed', - 'errorMessage' => 'Specified PhysicalConnection Bandwidth is not valid.', - ], - [ - 'errorCode' => 'InvalidDescription.Malformed', - 'errorMessage' => 'The specified Description is not valid.', - ], - [ - 'errorCode' => 'OperationDenied.VPconn', - 'errorMessage' => 'The operation is not allowed because of VPconn.', - ], + ['errorCode' => 'OperationUnsupported.ResourceGroupId', 'errorMessage' => 'ResourceGroupId in financial region is unsupported.', 'description' => 'The operation is not supported because Alibaba Finance Cloud does not support resource group IDs.'], + ['errorCode' => 'InvalidTagKey.Malformed', 'errorMessage' => 'The specified tag key is invalid.', 'description' => 'Invalid tag key value. Specify a valid tag key value and try again.'], + ['errorCode' => 'OperationFailed.InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error.', 'description' => 'Unknown error. Please retry the operation. The error still exists. Please submit the work order for processing.'], ], 404 => [ - [ - 'errorCode' => 'InvalidRegionId.NotFound', - 'errorMessage' => 'The RegionId provided does not exist in our records.', - ], - [ - 'errorCode' => 'InvalidPhysicalConnectionId.NotFound', - 'errorMessage' => 'The PhysicalConnectionId provided does not exist in our records.', - ], + ['errorCode' => 'InvalidFilterKey.ValueNotSupported', 'errorMessage' => 'Specified filter key is not supported: Filter.X.key', 'description' => 'Filter.X.key is not supported.'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"013EE132-A109-4247-91B0-099A8FF49AD7\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 013EE132-A109-4247-91B0-099A8FF49AD7\\n","errorExample":""}]', - 'title' => 'ModifyPhysicalConnectionAttribute', - 'description' => 'When you call this operation, take note of the following limits:'."\n" - ."\n" - .'* If an Express Connect circuit is in the **Initial**, **Enabled**, or **Rejected** state, you can modify the specifications of the Express Connect circuit and the ID of the redundant circuit.'."\n" - .'* If an Express Connect circuit is in the **Canceled**, **Allocating**, **AllocationFailed**, or **Terminated** state, you cannot modify the specifications of the Express Connect circuit.'."\n" - .'* After you modify the specifications of an Express Connect circuit that is in the **Rejected** state, the Express Connect circuit enters the **Initial** state.'."\n", + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'Query express connect circuits in a specified region', + 'summary' => 'Queries information about Express Connect circuits in a specified region.', + 'description' => 'By default, the system queries information about all Express Connect circuits in the specified region. You can use the filter options provided by the **DescribePhysicalConnections** operation to query information about specific Express Connect circuits. For the supported filter options, see the description of **Key** in the **request parameters** section of this topic.', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'EnablePhysicalConnection' => [ - 'summary' => 'Enables an Express Connect circuit that is in the Confirmed state. After you perform this operation, the Express Connect circuit enters the Enabled state.', - 'methods' => [ - 'post', - 'get', + 'changeSet' => [ + ['createdAt' => '2024-11-12T08:03:53.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-06-13T08:13:13.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-02-01T03:33:17.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2023-08-08T13:15:03.000Z', 'description' => 'Error codes changed, Response parameters changed'], + ['createdAt' => '2023-04-25T07:47:31.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2022-12-02T02:38:40.000Z', 'description' => 'Request parameters changed, Response parameters changed'], + ['createdAt' => '2021-11-17T06:33:01.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2021-09-27T03:23:37.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2021-09-27T03:23:37.000Z', 'description' => 'Response parameters changed'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DescribePhysicalConnections'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'vpc:DescribePhysicalConnections', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'PhysicalConnection', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:physicalconnection/*'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"0E6D0EC4-7C91-53E2-9F65-64BF713114B0\\",\\n \\"PageNumber\\": 1,\\n \\"PageSize\\": 10,\\n \\"TotalCount\\": 1,\\n \\"PhysicalConnectionSet\\": {\\n \\"PhysicalConnectionType\\": [\\n {\\n \\"Type\\": \\"VPC\\",\\n \\"Status\\": \\"Enabled\\",\\n \\"CreationTime\\": \\"2021-08-24T07:30:58Z\\",\\n \\"AdLocation\\": \\"浙江省杭州市XX区XX镇XX路10号\\",\\n \\"ReservationActiveTime\\": \\"2022-02-25T11:01:04Z\\",\\n \\"ReservationOrderType\\": \\"RENEW\\",\\n \\"PortNumber\\": \\"1/1/1\\",\\n \\"Spec\\": \\"10G\\",\\n \\"ChargeType\\": \\"Prepaid\\",\\n \\"ReservationInternetChargeType\\": \\"PayByBandwidth\\",\\n \\"Description\\": \\"desctest\\",\\n \\"Bandwidth\\": 10,\\n \\"EnabledTime\\": \\"2021-08-24T07:33:18Z\\",\\n \\"LineOperator\\": \\"CT\\",\\n \\"PeerLocation\\": \\"浙江省杭州市XX区XX镇XX路XX号\\",\\n \\"RedundantPhysicalConnectionId\\": \\"pc-119mfjzm****\\",\\n \\"Name\\": \\"nametest\\",\\n \\"CircuitCode\\": \\"longtel001\\",\\n \\"EndTime\\": \\"2022-04-24T16:00:00Z\\",\\n \\"PortType\\": \\"10GBase-LR\\",\\n \\"BusinessStatus\\": \\"Normal\\",\\n \\"LoaStatus\\": \\"Available\\",\\n \\"AccessPointId\\": \\"ap-cn-hangzhou-finance-yh-E\\",\\n \\"AccessPointType\\": \\"VPC\\",\\n \\"HasReservationData\\": \\"false\\",\\n \\"PhysicalConnectionId\\": \\"pc-bp1ciz7ekd2grn1as****\\",\\n \\"ProductType\\": \\"PhysicalConnection\\",\\n \\"VirtualPhysicalConnectionCount\\": 0,\\n \\"ParentPhysicalConnectionId\\": \\"pc-bp1ciz7ekd2grn1as****\\",\\n \\"ParentPhysicalConnectionAliUid\\": 0,\\n \\"VlanId\\": \\"10\\",\\n \\"OrderMode\\": \\"PayByPhysicalConnectionOwner\\",\\n \\"VpconnStatus\\": \\"Confirmed\\",\\n \\"ExpectSpec\\": \\"50M\\",\\n \\"ResourceGroupId\\": \\"rg-acfmwu3k52p****\\",\\n \\"AdDetailLocation\\": \\"浙江省杭州市XX区XX镇XX路10号, XX机房, ET135ET135-XX-2包间, JXX机柜, position30\\",\\n \\"Tags\\": {\\n \\"tags\\": [\\n {\\n \\"Key\\": \\"FinanceDept\\",\\n \\"Value\\": \\"FinanceJoshua\\"\\n }\\n ]\\n },\\n \\"QosId\\": \\"qos-bp10s3szn8rgnxuw7****\\",\\n \\"OpticalModuleModel\\": \\"\\",\\n \\"MacsecKeys\\": {\\n \\"MacsecKey\\": [\\n {\\n \\"CipherSuite\\": \\"\\",\\n \\"Ckn\\": \\"\\",\\n \\"Cak\\": \\"\\",\\n \\"StartOn\\": \\"\\",\\n \\"Status\\": \\"\\"\\n }\\n ]\\n }\\n }\\n ]\\n }\\n}","type":"json"}]', + ], + 'DescribePublicIpAddress' => [ + 'summary' => 'Queries the public IP address range of a virtual private cloud (VPC) in a region.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'read', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'update', - 'riskType' => 'high', - 'chargeType' => 'paid', - ], + 'systemTags' => ['operationType' => 'list', 'riskType' => 'none', 'chargeType' => 'free', 'autoTest' => true, 'tenantRelevance' => 'publicInformation'], 'parameters' => [ [ - 'name' => 'RegionId', + 'name' => 'PageNumber', 'in' => 'query', - 'schema' => [ - 'description' => 'The region where the Express Connect circuit is deployed.'."\n" - ."\n" - .'You can call the DescribeRegions operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cn-shanghai', - ], + 'schema' => ['description' => 'The page number. Default value: **1**.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1', 'default' => '1', 'title' => ''], ], [ - 'name' => 'PhysicalConnectionId', + 'name' => 'PageSize', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the Express Connect circuit.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'pc-119mfjz****', - ], + 'schema' => ['description' => 'The number of entries per page.'."\n" + ."\n" + .'Valid values: **1** to **100**. Default value: **100**.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '100', 'default' => '100', 'title' => ''], ], [ - 'name' => 'ClientToken', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'You can use the client to generate the value, but you must make sure that it is unique among different requests. The token can contain only ASCII characters and cannot exceed 64 characters in length.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '02fb3da4-130e-11e9-8e44-0016e04115b', - ], + 'schema' => ['description' => 'The region that you want to query. You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'ByPassSp', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to skip the order lifecycle. Valid values:'."\n" - ."\n" - .'* **true**'."\n" - .'* **false** (default)'."\n" - ."\n" - .'> To use this feature, you must contact your account manager.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['description' => 'The region that you want to query. You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'example' => 'cn-hangzhou', 'title' => ''], + ], + [ + 'name' => 'IpVersion', + 'in' => 'query', + 'schema' => ['description' => 'The IP version. Valid values:'."\n" + ."\n" + .'* **IPv4** (default)'."\n" + .'* **IPv6**', 'type' => 'string', 'required' => false, 'example' => 'ipv4', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'description' => 'The response parameters.'."\n", 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '0ED8D006-F706-4D23-88ED-E11ED28DCAC0', + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B45', 'title' => ''], + 'Success' => ['description' => 'Indicates whether the call is successful. Valid values:'."\n" + ."\n" + .'* **true**'."\n" + .'* **false**'."\n", 'type' => 'boolean', 'example' => 'true', 'title' => ''], + 'Code' => ['description' => 'The HTTP status codes returned.'."\n", 'type' => 'string', 'example' => '200', 'title' => ''], + 'Message' => ['description' => 'The response messages.'."\n", 'type' => 'string', 'example' => 'test', 'title' => ''], + 'PageSize' => ['description' => 'The number of entries per page.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '100', 'title' => ''], + 'PageNumber' => ['description' => 'The page number.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''], + 'TotalCount' => ['description' => 'The number of returned entries.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''], + 'RegionId' => ['description' => 'The ID of the region to which the public IP addresses belong.'."\n", 'type' => 'string', 'example' => 'cn-hangzhou', 'title' => ''], + 'PublicIpAddress' => [ + 'description' => 'The range of the public IP addresses of the VPC in the region.'."\n", + 'type' => 'array', + 'items' => ['description' => 'The range of the public IP addresses of the VPC in the region.'."\n", 'type' => 'string', 'example' => '101.37.XX.XX/24', 'title' => ''], + 'example' => '110.11.1.0/24', + 'title' => '', ], ], - 'description' => '', + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'Forbidden.NotAllowedInState', - 'errorMessage' => 'The request does not allow in this state.', - ], - [ - 'errorCode' => 'INSTANCE.STATUS.NOT.ALLOW', - 'errorMessage' => 'Instance status not allow', - ], - [ - 'errorCode' => 'ALIUID.NOT.ALLOW.WITHOUT.SP', - 'errorMessage' => 'AliUid not allow direct enable physical connection', - ], - [ - 'errorCode' => 'ACCESS.DEVICE.NOT.ALLOW.WITHOUT.SP', - 'errorMessage' => 'Access device not allow direct enable physical connection', - ], + ['errorCode' => 'IllegalParam.IpVersion', 'errorMessage' => 'Param IpVersion illegal.', 'description' => 'Illegal parameter: IpVersion'], ], - 404 => [ - [ - 'errorCode' => 'InvalidRegionId.NotFound', - 'errorMessage' => 'The RegionId provided does not exist in our records.', - ], - [ - 'errorCode' => 'InvalidPhysicalConnectionId.NotFound', - 'errorMessage' => 'The PhysicalConnectionId provided does not exist in our records.', - ], + 403 => [ + ['errorCode' => 'Forbidden', 'errorMessage' => 'User not authorized to operate on the specified resource.', 'description' => 'You do not have the permissions to manage the specified resource. Apply for the permissions and try again.'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"20365164-5b0d-460a-83c2-2189972b3349\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 20365164-5b0d-460a-83c2-2189972b3349\\n","errorExample":""}]', - 'title' => 'EnablePhysicalConnection', - 'description' => 'When you call this operation, take note of the following limits:'."\n" - ."\n" - .'* You can enable only an Express Connect circuit that is in the **Confirmed** state.'."\n" - .'* After you enable an Express Connect circuit, it enters the **Enabled** state.'."\n" - .'* **EnablePhysicalConnection** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call the [DescribePhysicalConnections](~~36042~~) operation to query the status of the task.'."\n" - .'* You cannot repeatedly call **EnablePhysicalConnection** for an Express Connect circuit in the **Confirmed** state within a specific time period.'."\n", + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'DescribePublicIpAddress', + 'description' => 'You cannot query the range of public IP addresses of a classic network by calling the **DescribePublicIpAddress** operation.'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2024-07-24T02:48:29.000Z', 'description' => 'Error codes changed, Request parameters changed'], + ['createdAt' => '2024-03-12T12:58:53.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2023-05-15T06:29:29.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2022-08-19T12:00:40.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2022-08-19T08:16:28.000Z', 'description' => 'Request parameters changed, Response parameters changed'], + ], + 'ramActions' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B45\\",\\n \\"Success\\": true,\\n \\"Code\\": \\"200\\",\\n \\"Message\\": \\"test\\",\\n \\"PageSize\\": 100,\\n \\"PageNumber\\": 1,\\n \\"TotalCount\\": 1,\\n \\"RegionId\\": \\"cn-hangzhou\\",\\n \\"PublicIpAddress\\": [\\n \\"101.37.XX.XX/24\\"\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\n 54B48E3D-DF70-471B-AA93-08E683A1B45\\n true\\n 200\\n test\\n 100\\n 1\\n 1\\n cn-hangzhou\\n 101.37.XX.XX/24\\n","errorExample":""}]', ], - 'TerminatePhysicalConnection' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DescribeRegions' => [ + 'summary' => 'Queries available regions by calling the DescribeRegions operation.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], + 'operationType' => 'read', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'update', - ], + 'systemTags' => ['operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', 'tenantRelevance' => 'publicInformation'], 'parameters' => [ [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the Express Connect circuit.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cn-hangzhou', - ], - ], - [ - 'name' => 'PhysicalConnectionId', + 'name' => 'ProductType', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the Express Connect circuit.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'pc-119mfjzm****', - ], + 'schema' => ['description' => 'The product type. Default value: **VPC**.', 'type' => 'string', 'required' => false, 'example' => 'VPC', 'title' => ''], ], [ - 'name' => 'ClientToken', + 'name' => 'AcceptLanguage', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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.'."\n" - ."\n" - .'> 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.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '02fb3da4-130e-11e9-8e44-0016e04115b', - ], + 'schema' => ['description' => 'The language of the response. Valid values: '."\n" + .' '."\n" + .'- **zh-CN** (default): Chinese.'."\n" + ."\n" + .'- **en-US**: English.', 'type' => 'string', 'required' => false, 'example' => 'zh-CN', 'title' => ''], ], ], 'responses' => [ 200 => [ - 'headers' => [], 'schema' => [ - 'description' => 'The request ID.'."\n", + 'description' => 'The request ID.', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '4EC47282-1B74-4534-BD0E-403F3EE64CAF', + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '611CB80C-B6A9-43DB-9E38-0B0AC3D9B58F', 'title' => ''], + 'Regions' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Region' => [ + 'description' => 'The list of available regions.', + 'type' => 'array', + 'items' => [ + 'description' => 'The list of available regions.', + 'type' => 'object', + 'properties' => [ + 'RegionEndpoint' => ['description' => 'The endpoint of the region.', 'type' => 'string', 'example' => 'vpc.aliyuncs.com', 'title' => ''], + 'LocalName' => ['description' => 'The name of the region.', 'type' => 'string', 'example' => '华北 1', 'title' => ''], + 'RegionId' => ['description' => 'The region ID.', 'type' => 'string', 'example' => 'cn-qingdao', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'Forbidden.NotAllowedInState', - 'errorMessage' => 'The request does not allow in this state.', - ], - [ - 'errorCode' => 'Forbidden.VbrAttached', - 'errorMessage' => 'Cannot terminate physical connection when virtual border routers are still attached.', - ], - [ - 'errorCode' => 'OperationFailed.VpconnAttached', - 'errorMessage' => 'Cannot terminate physical connection when vpconn are still attached.', - ], - ], - 404 => [ - [ - 'errorCode' => 'InvalidRegionId.NotFound', - 'errorMessage' => 'The RegionId provided does not exist in our records.', - ], - [ - 'errorCode' => 'InvalidPhysicalConnectionId.NotFound', - 'errorMessage' => 'The PhysicalConnectionId provided does not exist in our records.', - ], + 403 => [ + ['errorCode' => 'Forbbiden', 'errorMessage' => 'User not authorized to operate on the specified resource.', 'description' => 'User not authorized to operate on the specified resource.'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"4EC47282-1B74-4534-BD0E-403F3EE64CAF\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 4EC47282-1B74-4534-BD0E-403F3EE64CAF\\n","errorExample":""}]', - 'title' => 'TerminatePhysicalConnection', - 'summary' => 'Disables an Express Connect circuit after it is enabled.', - 'description' => 'After you call this operation, the specified Express Connect circuit changes to the **Terminating** state. After the Express Connect circuit is disabled, it changes to the **Terminated** state. When you call this operation, take note of the following limits:'."\n" - ."\n" - .'* You can only disable an Express Connect circuit that is in the **Enabled** state.'."\n" - .'* Before you disable an Express Connect circuit, you must delete the virtual border routers (VBRs) associated with it.'."\n", - ], - 'RecoverPhysicalConnection' => [ - 'summary' => 'Resumes an Express Connect circuit.', - 'methods' => [ - 'get', - 'post', + 'title' => 'Query available Alibaba Cloud regions', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2024-07-31T02:45:59.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2022-12-22T03:01:34.000Z', 'description' => 'Request parameters changed, Error codes changed'], ], - 'schemes' => [ - 'http', - 'https', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '600', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DescribeRegions'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], ], + 'ramActions' => [], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"611CB80C-B6A9-43DB-9E38-0B0AC3D9B58F\\",\\n \\"Regions\\": {\\n \\"Region\\": [\\n {\\n \\"RegionEndpoint\\": \\"vpc.aliyuncs.com\\",\\n \\"LocalName\\": \\"华北 1\\",\\n \\"RegionId\\": \\"cn-qingdao\\"\\n }\\n ]\\n }\\n}","type":"json"}]', + ], + 'DescribeRouteEntryList' => [ + 'summary' => 'Calls DescribeRouteEntryList to query the list of route entries.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'read', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'update', - ], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ - 'name' => 'InstanceId', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'title' => '恢复的Pconn', - 'description' => 'The ID of the Express Connect circuit.'."\n" - ."\n" - .'> You can resume only shared Express Connect circuits by calling this API operation.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'pc-bp1mrgfbtmc9brre7****', - ], + 'schema' => ['description' => 'The region ID of the route table to which the route entry belongs.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the region ID. ', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'Token', + 'name' => 'RouteTableId', 'in' => 'query', - 'schema' => [ - 'title' => '幂等Token', - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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 and cannot exceed 64 characters in length.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'CBCE910E-D396-4944-8****', - ], + 'schema' => ['description' => 'The ID of the route table to query.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'vtb-bp1r9pvl4xen8s9ju****', 'title' => ''], ], [ - 'name' => 'DryRun', + 'name' => 'RouteEntryId', 'in' => 'query', - 'schema' => [ - 'title' => 'DryRun', - 'description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values:'."\n" - ."\n" - .'* **true**: performs only a dry run. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and instance status. If the request fails the dry run, an error message is returned. If the request passes the dry run, the request ID is returned.'."\n" - .'* **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.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['description' => 'The ID of the route entry to query.', 'type' => 'string', 'required' => false, 'example' => 'rte-bp1mnnr2al0naomnp****', 'title' => ''], ], [ - 'name' => 'RegionId', + 'name' => 'DestinationCidrBlock', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the Express Connect circuit.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], - ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'The response parameters.'."\n", - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => 'CD14EA74-E9C3-59A9-942A-DFEC7E12818D', - ], - ], - ], - ], - ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'IncorrectStatus.PhysicalConnection', - 'errorMessage' => 'The status of %s is incorrect.', - ], - [ - 'errorCode' => 'ResourceNotFound', - 'errorMessage' => 'The specified resource %s is not found.', - ], - [ - 'errorCode' => 'OperationDenied.TerminateVirtualPhysicalConnection', - 'errorMessage' => 'The operation is not allowed because of TerminateVirtualPhysicalConnection.', - ], - [ - 'errorCode' => 'OperationDenied.PconnNotAllowRecover', - 'errorMessage' => 'Exclusive physical connection does not allow recovery.', - ], + 'schema' => ['description' => 'The destination CIDR block of the route entry. Both IPv4 and IPv6 CIDR blocks are supported.', 'type' => 'string', 'required' => false, 'example' => '192.168.2.0/24', 'title' => ''], ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CD14EA74-E9C3-59A9-942A-DFEC7E12818D\\"\\n}","errorExample":""},{"type":"xml","example":"\\n CD14EA74-E9C3-59A9-942A-DFEC7E12818D\\n","errorExample":""}]', - 'title' => 'RecoverPhysicalConnection', - 'description' => '# [](#)Description'."\n" - ."\n" - .'You can call this API operation to resume a suspended Express Connect circuit. You can resume only shared Express Connect circuits by calling this API operation.'."\n", - ], - 'AttachVbrToVpconn' => [ - 'summary' => 'Associates a virtual border router (VBR) with a hosted connection.', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ [ - 'AK' => [], + 'name' => 'RouteEntryName', + 'in' => 'query', + 'schema' => ['description' => 'The name of the route entry.'."\n" + ."\n" + .'The name must be 1 to 128 characters in length and cannot start with `http://` or `https://`.', 'type' => 'string', 'required' => false, 'example' => 'abc', 'title' => ''], ], - ], - 'operationType' => 'write', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'update', - ], - 'parameters' => [ [ - 'name' => 'VpconnId', + 'name' => 'IpVersion', 'in' => 'query', - 'schema' => [ - 'title' => '迁移到目标vpconn', - 'description' => 'The ID of the hosted connection.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'pc-bp1mrgfbtmc9brre7****', - ], + 'schema' => ['description' => 'The version of the IP protocol. Valid values:'."\n" + ."\n" + .'- **ipv4**: IPv4 protocol.'."\n" + ."\n" + .'- **ipv6**: IPv6 protocol.'."\n", 'type' => 'string', 'required' => false, 'example' => 'ipv4', 'title' => ''], ], [ - 'name' => 'VbrId', + 'name' => 'RouteEntryType', 'in' => 'query', - 'schema' => [ - 'title' => '待迁移的vbr', - 'description' => 'The ID of the VBR.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'vbr-bp133sn3nwjvu7twc****', - ], + 'schema' => ['description' => 'The type of the route. Valid values:'."\n" + ."\n" + .'- **Custom**: custom route.'."\n" + .'- **System**: system route.'."\n" + .'- **BGP**: BGP route.'."\n" + .'- **CEN**: Cloud Enterprise Network (CEN) route.'."\n" + .'- **ECR**: Express Connect Router route.', 'type' => 'string', 'required' => false, 'example' => 'System', 'title' => ''], ], [ - 'name' => 'Token', + 'name' => 'NextHopId', 'in' => 'query', - 'schema' => [ - 'title' => '幂等Token', - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'You can use the client to generate the value, but you must ensure that it is unique among different requests. The token can contain only ASCII characters and cannot exceed 64 characters in length.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'CBCE910E-D396-4944-8****', - ], + 'schema' => ['description' => 'The ID of the next hop instance.'."\n", 'type' => 'string', 'required' => false, 'example' => 'vpn-bp10zyaph5cc8b7c7****', 'title' => ''], ], [ - 'name' => 'DryRun', + 'name' => 'NextHopType', 'in' => 'query', - 'schema' => [ - 'title' => 'DryRun', - 'description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values:'."\n" - ."\n" - .'* **true**: performs only a dry run. The system checks the request for potential issues, including required parameters, request syntax, and instance status. If the request fails the dry run, an error message is returned. If the request passes the dry run, the request ID is returned.'."\n" - .'* **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.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['description' => 'The type of the next hop. Valid values:'."\n" + ."\n" + .'- **Instance** (default): ECS instance.'."\n" + ."\n" + .'- **HaVip**: high-availability virtual IP address (HAVIP).'."\n" + ."\n" + .'- **VpnGateway**: VPN gateway.'."\n" + ."\n" + .'- **NatGateway**: NAT gateway.'."\n" + ."\n" + .'- **NetworkInterface**: secondary elastic network interface.'."\n" + ."\n" + .'- **RouterInterface**: router interface.'."\n" + ."\n" + .'- **IPv6Gateway**: IPv6 gateway.'."\n" + ."\n" + .'- **Attachment**: transit router.'."\n" + .'- **Ipv4Gateway**: IPv4 gateway.'."\n" + .'- **GatewayEndpoint**: gateway endpoint.'."\n" + .'- **Ecr**: Express Connect Router.', 'type' => 'string', 'required' => false, 'example' => 'Instance', 'title' => ''], ], [ - 'name' => 'RegionId', + 'name' => 'MaxResult', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the hosted connection.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], - ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'The response parameters.'."\n", - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '5356F028-0F5C-56FC-8574-897D24379041', - ], - 'VirtualPhysicalConnection' => [ - 'title' => 'Vpconn的实例ID', - 'description' => 'The ID of the hosted connection.'."\n", - 'type' => 'string', - 'example' => 'pc-bp1mrgfbtmc9brre7****', - ], - ], - ], - ], - ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'QuotaExceeded.VPCONN', - 'errorMessage' => 'The quota of VBR_COUNT_PER_VPCONN is exceeded, usage 1/1.', - ], - [ - 'errorCode' => 'OperationFailed.VbrBindedPconn', - 'errorMessage' => 'The operation is failed because of VbrBindedPconn.', - ], - [ - 'errorCode' => 'ResourceNotFound.PhysicalConnectionId', - 'errorMessage' => 'PhysicalConnection is not found. ', - ], - [ - 'errorCode' => 'IncorrectStatus.PhysicalConnection', - 'errorMessage' => 'The specified PhysicalConnectionId [%s] is not in Enabled state.', - ], - [ - 'errorCode' => 'ResourceNotFound.VirtualBorderRouter', - 'errorMessage' => 'The specified resource of %s is not found.', - ], - ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"5356F028-0F5C-56FC-8574-897D24379041\\",\\n \\"VirtualPhysicalConnection\\": \\"pc-bp1mrgfbtmc9brre7****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 5356F028-0F5C-56FC-8574-897D24379041\\n pc-bp1mrgfbtmc9brre7****\\n","errorExample":""}]', - 'title' => 'AttachVbrToVpconn', - ], - 'GetPhysicalConnectionServiceStatus' => [ - 'summary' => 'Checks whether outbound data transfer billing is enabled for the current account.', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], + 'schema' => ['description' => 'The number of entries to return per page during a paged query. Valid values: **1** to **100**. Default value: **10**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '500', 'default' => '100', 'example' => '10', 'title' => ''], ], - ], - 'operationType' => 'read', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'get', - 'riskType' => 'none', - 'chargeType' => 'paid', - ], - 'parameters' => [ [ - 'name' => 'RegionId', + 'name' => 'NextToken', 'in' => 'query', - 'schema' => [ - 'title' => '地域', - 'description' => 'The ID of the region for which you want to query the status of outbound data transfer billing.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cn-hangzhou', - ], - ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'title' => 'Schema of Response', - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B45', - ], - 'Enabled' => [ - 'title' => '是否开通出云流量服务', - 'description' => 'Indicates whether billing for outbound data transfer is enabled. Valid values:'."\n" - ."\n" - .'* **true**: yes'."\n" - .'* **false**: no'."\n", - 'type' => 'boolean', - 'example' => 'true', - ], - ], - ], - ], - ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B45\\",\\n \\"Enabled\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n 54B48E3D-DF70-471B-AA93-08E683A1B45\\n true\\n","errorExample":""}]', - 'title' => 'GetPhysicalConnectionServiceStatus', - 'description' => 'You can call this API operation to query the status of outbound data transfer billing for the current account. For more information about outbound data transfer billing, see [Outbound data transfer billing](~~274385~~) and [Billing](~~54582~~).', - ], - 'DescribeAccessPoints' => [ - 'summary' => 'Queries the access points of Express Connect circuits in a region.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], + 'schema' => ['description' => 'Specifies whether a next query token (Token) exists. Valid values:'."\n" + .'- You do not need to specify this parameter for the first query or if no next query exists.'."\n" + .'- If a next query exists, set the value to the NextToken value returned from the previous API call.', 'type' => 'string', 'required' => false, 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', 'title' => ''], ], - ], - 'operationType' => 'read', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'get', - 'riskType' => 'none', - 'chargeType' => 'free', - 'tenantRelevance' => 'publicInformation', - ], - 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the access point.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], - ], - [ - 'name' => 'PageNumber', - 'in' => 'query', - 'schema' => [ - 'description' => 'The page number. Default value: **1**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'minimum' => '1', - 'example' => '1', - 'default' => '1', - ], + 'schema' => ['description' => 'The region ID of the route table to which the route entry belongs.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the region ID. ', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'PageSize', + 'name' => 'ServiceType', 'in' => 'query', - 'schema' => [ - 'description' => 'The number of entries per page. Maximum value: **50**. Default value: **10**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '50', - 'minimum' => '1', - 'example' => '10', - 'default' => '10', - ], + 'schema' => ['description' => 'The type of route service. If this field is empty, it indicates that the route is not managed.'."\n" + ."\n" + .'Valid value: **TR**, which indicates that the managed type is transit router.', 'type' => 'string', 'required' => false, 'example' => 'TR', 'title' => ''], ], [ - 'name' => 'AcceptLanguage', + 'name' => 'DestCidrBlockList', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => 'The language of the response. Valid values:'."\n" - ."\n" - .'* **zh-CN**: Chinese'."\n" - .'* **en-US** (default): English'."\n", - 'type' => 'string', + 'description' => 'The list of destination CIDR blocks of route entries.', + 'type' => 'array', + 'items' => ['description' => 'The destination CIDR block list information of route entries. A maximum of 20 destination CIDR blocks can be specified.', 'type' => 'string', 'required' => false, 'example' => '192.168.0.0/24', 'title' => ''], 'required' => false, - 'example' => 'zh-CN', + 'maxItems' => 200, + 'title' => '', + 'example' => '', ], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => 'The request ID.'."\n", + 'description' => 'The detailed information about route entries.', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '3E85D803-C7CF-4BCD-9CFE-6DBA1DFFA027', - ], - 'PageNumber' => [ - 'description' => 'The page number. Default value: **1**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'PageSize' => [ - 'description' => 'The number of entries returned per page. Maximum value: **50**. Default value: **10**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'TotalCount' => [ - 'description' => 'The total number of entries returned.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '5', - ], - 'AccessPointSet' => [ + 'NextToken' => ['description' => 'Indicates whether a next query token (Token) exists. Valid values:'."\n" + .'- If **NextToken** is empty, no next query exists.'."\n" + .'- If **NextToken** has a returned value, the value indicates the token for the next query.', 'type' => 'string', 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '14A07460-EBE7-47CA-9757-12CC4761D47A', 'title' => ''], + 'RouteEntrys' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ - 'AccessPointType' => [ - 'description' => 'The information about the access point.'."\n", + 'RouteEntry' => [ + 'description' => 'The route entry information.', 'type' => 'array', 'items' => [ - 'description' => '', + 'description' => 'The route entry information.', 'type' => 'object', 'properties' => [ - 'Status' => [ - 'description' => 'The status of the access point. Valid values:'."\n" - ."\n" - .'* **recommended**: The access point is ready for use.'."\n" - .'* **hot**: A large number of Express Connect circuits are connected to the access point.'."\n" - .'* **full**: The number of Express Connect circuits connected to the access point has reached the upper limit.'."\n" - .'* **disabled**: The access point is unavailable.'."\n", - 'type' => 'string', - 'example' => 'recommended', - ], - 'Type' => [ - 'description' => 'The network type of the Express Connect circuit. Default value: **VPC**.'."\n", - 'type' => 'string', - 'example' => 'VPC', - ], - 'HostOperator' => [ - 'description' => 'The Internet service provider (ISP) of the access point. Valid values:'."\n", - 'type' => 'string', - 'example' => 'Telehouse', - ], - 'Description' => [ - 'description' => 'The description of the access point.'."\n", - 'type' => 'string', - 'example' => 'The description of the access point.', - ], - 'AttachedRegionNo' => [ - 'description' => 'The region ID of the access point.'."\n", - 'type' => 'string', - 'example' => 'cn-hangzhou', - ], - 'Name' => [ - 'description' => 'The name of the access point.'."\n", - 'type' => 'string', - 'example' => 'Name', - ], - 'AccessPointId' => [ - 'description' => 'The ID of the access point.'."\n", - 'type' => 'string', - 'example' => 'ap-cn-hangzhou-****', - ], - 'Location' => [ - 'description' => 'The location of the access point.'."\n", - 'type' => 'string', - 'example' => 'Hangzhou', - ], - 'AccessPointFeatureModels' => [ + 'Status' => ['description' => 'The status of the route entry. Valid values:'."\n" + ."\n" + .'- **Pending**: being configured.'."\n" + ."\n" + .'- **Available**: available.'."\n" + ."\n" + .'- **Modifying**: being modified.'."\n" + ."\n" + .'- **Deleting**: being deleted.', 'type' => 'string', 'example' => 'Available', 'title' => ''], + 'Type' => ['description' => 'The type of the route entry. Valid values:'."\n" + ."\n" + .'- **Custom**: custom route.'."\n" + .'- **System**: system route.'."\n" + .'- **BGP**: BGP route.'."\n" + .'- **CEN**: Cloud Enterprise Network (CEN) route.'."\n" + .'- **ECR**: Express Connect Router route.', 'type' => 'string', 'example' => 'System', 'title' => ''], + 'IpVersion' => ['description' => 'The version of the IP protocol. Valid values:'."\n" + ."\n" + .'- **ipv4**: IPv4 protocol.'."\n" + ."\n" + .'- **ipv6**: IPv6 protocol.', 'type' => 'string', 'example' => 'ipv4', 'title' => ''], + 'Description' => ['description' => 'The description of the route entry.', 'type' => 'string', 'example' => 'RouteEntryDescription', 'title' => ''], + 'RouteEntryName' => ['description' => 'The name of the route entry.', 'type' => 'string', 'example' => 'aaa', 'title' => ''], + 'DestinationCidrBlock' => ['description' => 'The destination CIDR block of the route entry.', 'type' => 'string', 'example' => '192.168.2.0/24', 'title' => ''], + 'RouteEntryId' => ['description' => 'The ID of the route entry.', 'type' => 'string', 'example' => 'rte-bp1mnnr2al0naomnp****', 'title' => ''], + 'RouteTableId' => ['description' => 'The route table ID.', 'type' => 'string', 'example' => 'vtb-bp15w5q90d2rk3bww****', 'title' => ''], + 'GmtModified' => ['description' => 'The time when the route entry was modified. The time is in UTC and displayed in the format of `YYYY-MM-DDThh:mm:ssZ`.', 'type' => 'string', 'format' => 'iso8601', 'example' => '2022-05-09T03:00:07Z', 'title' => ''], + 'NextHops' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ - 'AccessPointFeatureModel' => [ - 'description' => 'The feature model of the access point.'."\n", + 'NextHop' => [ + 'description' => 'The next hop information.', 'type' => 'array', 'items' => [ - 'description' => '', + 'description' => 'The next hop information.', 'type' => 'object', 'properties' => [ - 'FeatureValue' => [ - 'description' => 'The feature value of the access point.'."\n", - 'type' => 'string', - 'example' => 'true', - ], - 'FeatureKey' => [ - 'description' => 'The feature of the access point.'."\n", - 'type' => 'string', - 'example' => 'AP_Support_VbrBandwidthLimit', + 'NextHopRegionId' => ['description' => 'The region ID of the next hop instance.'."\n" + ."\n" + .'> This parameter is returned only when the next hop type is **RouterInterface**.', 'type' => 'string', 'example' => 'cn-hangzhou', 'title' => ''], + 'Weight' => ['description' => 'The weight of the route entry.'."\n" + ."\n" + .'> This parameter is returned only when the next hop type is **RouterInterface**.', 'type' => 'integer', 'format' => 'int32', 'example' => '100', 'title' => ''], + 'NextHopId' => ['description' => 'The ID of the next hop instance.', 'type' => 'string', 'example' => 'vpn-bp10zyaph5cc8b7c7****', 'title' => ''], + 'Enabled' => ['description' => 'Indicates whether the route is available. Valid values:'."\n" + ."\n" + .'- **0**: unavailable.'."\n" + ."\n" + .'- **1**: available.'."\n" + ."\n" + .'> This parameter is returned only when the next hop type is **RouterInterface**.', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''], + 'NextHopType' => ['description' => 'The type of the next hop. Valid values:'."\n" + ."\n" + .'- **Instance**: ECS instance.'."\n" + ."\n" + .'- **HaVip**: high-availability virtual IP address (HAVIP).'."\n" + ."\n" + .'- **VpnGateway**: VPN gateway.'."\n" + ."\n" + .'- **NatGateway**: NAT gateway.'."\n" + ."\n" + .'- **NetworkInterface**: secondary elastic network interface.'."\n" + ."\n" + .'- **RouterInterface**: router interface.'."\n" + ."\n" + .'- **IPv6Gateway**: IPv6 gateway.'."\n" + ."\n" + .'- **Attachment**: transit router.'."\n" + .'- **Ipv4Gateway**: IPv4 gateway.'."\n" + .'- **GatewayEndpoint**: gateway endpoint.'."\n" + .'- **Ecr**: Express Connect Router.', 'type' => 'string', 'example' => 'Instance', 'title' => ''], + 'NextHopRelatedInfo' => [ + 'description' => 'The information related to the next hop.', + 'type' => 'object', + 'properties' => [ + 'InstanceId' => ['description' => 'The instance ID of the instance associated with the next hop.', 'type' => 'string', 'example' => 'vpc-bp1t36rn9l53iwbsf****', 'title' => ''], + 'InstanceType' => ['description' => 'The instance type of the instance associated with the next hop. Valid values:'."\n" + ."\n" + .'- **VPC**: virtual private cloud.'."\n" + ."\n" + .'- **VBR**: virtual border router.'."\n" + ."\n" + .'- **PCONN**: physical connection.', 'type' => 'string', 'example' => 'VPC', 'title' => ''], + 'RegionId' => ['description' => 'The region ID of the instance associated with the next hop.', 'type' => 'string', 'example' => 'ch-hangzhou', 'title' => ''], + ], + 'title' => '', + 'example' => '', ], ], + 'title' => '', + 'example' => '', ], + 'title' => '', + 'example' => '', ], ], + 'description' => '', + 'title' => '', + 'example' => '', ], + 'ServiceType' => ['description' => 'The type of route service. If this field is empty, it indicates that the route is not managed.'."\n" + ."\n" + .'Valid value: **TR**, which indicates that the managed type is transit router.', 'type' => 'string', 'example' => 'TR', 'title' => ''], + 'Origin' => ['description' => 'The origin of the route. Valid values:'."\n" + ."\n" + .'- **RoutePropagation**: created by dynamic route propagation.'."\n" + .'- **SystemCreate**: created by the system.'."\n" + .'- **CustomCreate**: custom created.', 'type' => 'string', 'example' => 'RoutePropagation', 'title' => ''], ], + 'title' => '', + 'example' => '', ], + 'title' => '', + 'example' => '', ], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidAccessPointType.NotSupport', - 'errorMessage' => 'Invalid access point type.', - ], + ['errorCode' => 'IllegalParam.NextToken', 'errorMessage' => 'User nextToken is illegal.', 'description' => ''], + ['errorCode' => 'InvalidNextHop.NotFound', 'errorMessage' => 'The specified route entry nexthop does not exist in our records.', 'description' => ''], + ['errorCode' => 'OperationFailed.QueryCenEntry', 'errorMessage' => 'Operation is denied because getting CEN route entry has failed.', 'description' => 'Operation is denied because getting CEN route entry has failed.'], + ['errorCode' => 'OperationDenied.UseGatewayRouteEntryQueryInterface', 'errorMessage' => 'Use listGatewayRouteTableEntries to describe gateway route entries.', 'description' => ''], + ['errorCode' => 'InvalidRouteTable.NotFound', 'errorMessage' => 'The specified RouteTable was not found.', 'description' => ''], + ['errorCode' => 'IllegalParam.RouteEntryType', 'errorMessage' => 'The parameter of RouteEntryType is illegal.', 'description' => ''], + ['errorCode' => 'MissingParam.context', 'errorMessage' => 'The param of context is missing.', 'description' => ''], + ['errorCode' => 'MissingParam.aliUid', 'errorMessage' => 'The param of aliUid is missing.', 'description' => ''], + ['errorCode' => 'MissingParam.bid', 'errorMessage' => 'The param of bid is missing.', 'description' => ''], + ['errorCode' => 'IllegalParam.IpVersion', 'errorMessage' => 'Param IpVersion illegal.', 'description' => 'Illegal parameter: IpVersion'], + ['errorCode' => 'OperationFailed.FilterParamUnderWrongRouteType', 'errorMessage' => 'Operation failed because only custom type support filter by routeEntryId or routeEntryName', 'description' => 'The operation failed because only custom routes support search by route ID or route name.'], + ['errorCode' => 'IllegalParam.NextTokenExpired', 'errorMessage' => 'The parameter of NextTokenExpired is illegal.', 'description' => ''], + ], + ], + 'title' => 'Query the list of route entries', + 'description' => 'Before calling the [DeleteRouteEntry](~~36013~~) operation to delete a route entry, you can call this operation to query the next hop information of the route entry to be deleted.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2025-02-10T06:07:07.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2024-08-26T11:35:35.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-01-05T06:29:38.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2023-07-03T09:17:39.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2022-09-29T03:52:23.000Z', 'description' => 'Request parameters changed, Response parameters changed'], + ['createdAt' => '2022-09-15T02:10:52.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2022-09-15T02:10:52.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2021-11-17T06:33:02.000Z', 'description' => 'Response parameters changed'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DescribeRouteEntryList'], ], - 404 => [ - [ - 'errorCode' => 'InvalidRegionId.NotFound', - 'errorMessage' => 'The RegionId provided does not exist in our records.', - ], - [ - 'errorCode' => 'InvalidRegionId.NotSupport', - 'errorMessage' => 'The RegionId provided does not support in our records.', + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'vpc:DescribeRouteEntryList', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'RouteTable', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:routetable/{#RouteTableId}'], + ], ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"3E85D803-C7CF-4BCD-9CFE-6DBA1DFFA027\\",\\n \\"PageNumber\\": 1,\\n \\"PageSize\\": 10,\\n \\"TotalCount\\": 5,\\n \\"AccessPointSet\\": {\\n \\"AccessPointType\\": [\\n {\\n \\"Status\\": \\"recommended\\",\\n \\"Type\\": \\"VPC\\",\\n \\"HostOperator\\": \\"中国电信\\",\\n \\"Description\\": \\"接入点描述信息\\",\\n \\"AttachedRegionNo\\": \\"cn-hangzhou\\",\\n \\"Name\\": \\"杭州-余杭-C\\",\\n \\"AccessPointId\\": \\"ap-cn-hangzhou-****\\",\\n \\"Location\\": \\"杭州\\",\\n \\"AccessPointFeatureModels\\": {\\n \\"AccessPointFeatureModel\\": [\\n {\\n \\"FeatureValue\\": \\"true\\",\\n \\"FeatureKey\\": \\"AP_Support_VbrBandwidthLimit\\"\\n }\\n ]\\n }\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 3E85D803-C7CF-4BCD-9CFE-6DBA1DFFA027\\n 1\\n 10\\n 5\\n \\n recommended\\n VPC\\n 中国电信\\n 接入点描述信息\\n cn-hangzhou\\n 杭州-余杭-C\\n ap-cn-hangzhou-****\\n 杭州\\n \\n true\\n AP_Support_VbrBandwidthLimit\\n \\n \\n","errorExample":""}]', - 'title' => 'DescribeAccessPoints', + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"NextToken\\": \\"FFmyTO70tTpLG6I3FmYAXGKPd****\\",\\n \\"RequestId\\": \\"14A07460-EBE7-47CA-9757-12CC4761D47A\\",\\n \\"RouteEntrys\\": {\\n \\"RouteEntry\\": [\\n {\\n \\"Status\\": \\"Available\\",\\n \\"Type\\": \\"System\\",\\n \\"IpVersion\\": \\"ipv4\\",\\n \\"Description\\": \\"RouteEntryDescription\\",\\n \\"RouteEntryName\\": \\"aaa\\",\\n \\"DestinationCidrBlock\\": \\"192.168.2.0/24\\",\\n \\"RouteEntryId\\": \\"rte-bp1mnnr2al0naomnp****\\",\\n \\"RouteTableId\\": \\"vtb-bp15w5q90d2rk3bww****\\",\\n \\"GmtModified\\": \\"2022-05-09T03:00:07Z\\",\\n \\"NextHops\\": {\\n \\"NextHop\\": [\\n {\\n \\"NextHopRegionId\\": \\"cn-hangzhou\\",\\n \\"Weight\\": 100,\\n \\"NextHopId\\": \\"vpn-bp10zyaph5cc8b7c7****\\",\\n \\"Enabled\\": 1,\\n \\"NextHopType\\": \\"Instance\\",\\n \\"NextHopRelatedInfo\\": {\\n \\"InstanceId\\": \\"vpc-bp1t36rn9l53iwbsf****\\",\\n \\"InstanceType\\": \\"VPC\\",\\n \\"RegionId\\": \\"ch-hangzhou\\"\\n }\\n }\\n ]\\n },\\n \\"ServiceType\\": \\"TR\\",\\n \\"Origin\\": \\"RoutePropagation\\"\\n }\\n ]\\n }\\n}","type":"json"}]', ], - 'ConfirmPhysicalConnection' => [ - 'summary' => 'Changes the status of an Express Connect circuit to Confirmed.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DescribeRouteTableList' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'read', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'get', - ], + 'systemTags' => ['operationType' => 'list', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ - 'name' => 'RegionId', + 'name' => 'RouterType', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the Express Connect circuit.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-shanghai', - ], + 'schema' => ['description' => 'The type of the router to which the route table belongs. Valid value:'."\n" + ."\n" + .'* **VRouter** (default): a vRouter'."\n" + .'* **VBR**: a VBR'."\n", 'type' => 'string', 'required' => false, 'example' => 'VRouter', 'default' => 'VRouter', 'title' => ''], ], [ - 'name' => 'PhysicalConnectionId', + 'name' => 'RouterId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the Express Connect circuit.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'pc-119mf****', - ], + 'schema' => ['description' => 'The ID of vRouter to which the route table belongs.', 'type' => 'string', 'required' => false, 'example' => 'vrt-bp1lhl0taikrteen8****', 'title' => ''], ], [ - 'name' => 'ClientToken', + 'name' => 'VpcId', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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 and cannot exceed 64 characters in length.'."\n" - ."\n" - .'> 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.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '02fb3da4-130e-11e9-8e44-0016e0****', - ], - ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => 'API-20365164-5b0d-460a-83c2-2189972b****', - ], - ], - 'description' => '', - ], - ], - ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'OperationFailed.PconnTrafficNotEnable', - 'errorMessage' => 'The operation is failed because of PconnTrafficNotEnable.', - ], - [ - 'errorCode' => 'ResourceNotFound.PhysicalConnectionId', - 'errorMessage' => 'PhysicalConnection is not found.', - ], - [ - 'errorCode' => 'MissingParam.RegionNo', - 'errorMessage' => 'RegionNo is missing.', - ], - [ - 'errorCode' => 'MissingParam.AliUid', - 'errorMessage' => 'AliUid is missing.', - ], - [ - 'errorCode' => 'MissingParam.PhysicalConnectionId', - 'errorMessage' => 'PhysicalConnectionId is missing.', - ], - [ - 'errorCode' => 'InvalidPhysicalConnectionId.NotFound', - 'errorMessage' => 'The specified physicalConnection is not found', - ], - [ - 'errorCode' => 'InvalidRegionId.NotFound', - 'errorMessage' => 'The specified RegionId is not found.', - ], - [ - 'errorCode' => 'IncorrectStatus.PhysicalConnection', - 'errorMessage' => 'The specified PhysicalConnectionId is not in Allocated state.', - ], - [ - 'errorCode' => 'OperationUnsupported.SkipConstruction', - 'errorMessage' => 'You can not skip construction.', - ], - [ - 'errorCode' => 'ResourceNotFound.PhysicalConnection', - 'errorMessage' => 'The specified resource of %s is not found.', - ], + 'schema' => ['description' => 'The ID of the VPC to which the route table belongs. '."\n" + ."\n" + .'When this parameter is set, the value of **RouterType** is automatically assigned to **VRouter**.', 'type' => 'string', 'required' => false, 'example' => 'vpc-bp15zckdt37pq72****', 'title' => ''], ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"API-20365164-5b0d-460a-83c2-2189972b****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n API-20365164-5b0d-460a-83c2-2189972b****\\n","errorExample":""}]', - 'title' => 'ConfirmPhysicalConnection', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'DescribePhysicalConnections' => [ - 'summary' => 'Queries Express Connect circuits in a region.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ [ - 'AK' => [], + 'name' => 'RouteTableId', + 'in' => 'query', + 'schema' => ['description' => 'The ID of the route table.', 'type' => 'string', 'required' => false, 'example' => 'vtb-bp145q7glnuzdvzu2****', 'title' => ''], ], - ], - 'operationType' => 'read', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'list', - 'riskType' => 'none', - 'chargeType' => 'free', - ], - 'parameters' => [ [ - 'name' => 'RegionId', + 'name' => 'RouteTableName', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the Express Connect circuit.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The name of the route table.', 'type' => 'string', 'required' => false, 'example' => 'doctest', 'title' => ''], ], [ 'name' => 'PageNumber', 'in' => 'query', - 'schema' => [ - 'description' => 'The page number. Default value: **1**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'minimum' => '1', - 'example' => '1', - 'default' => '1', - ], + 'schema' => ['description' => 'The number of the returned page. Default value: **1**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1', 'title' => ''], ], [ 'name' => 'PageSize', 'in' => 'query', - 'schema' => [ - 'description' => 'The number of entries per page. Default value: **10**. Valid values: **1** to **50**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '50', - 'minimum' => '1', - 'example' => '10', - 'default' => '10', - ], - ], - [ - 'name' => 'IncludeReservationData', - 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to return the data about pending orders. Valid values:'."\n" - ."\n" - .'* **true**'."\n" - .'* **false** (default)'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['description' => 'The number of entries per page. Maximum value: **50**. Default value: **10**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '10', 'title' => ''], ], [ - 'name' => 'ClientToken', + 'name' => 'ResourceGroupId', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '02fb3da4-130e-11e9-8e44-001', - ], + 'schema' => ['description' => 'The ID of the resource group to which the route table belongs.', 'type' => 'string', 'required' => false, 'example' => 'rg-acfmxazb4ph****', 'title' => ''], ], [ - 'name' => 'Filter', + 'name' => 'RegionId', 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => 'The filter keys.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => 'The key of the filter. Valid values:'."\n" - ."\n" - .'* **PhysicalConnectionId**: the ID of the Express Connect circuit.'."\n" - ."\n" - .'* **AccessPointId**: the ID of the access point.'."\n" - ."\n" - .'* **Type**: the type of resource to which the Express Connect circuit is connected. You can set Type only to **VPC**.'."\n" - ."\n" - .'* **LineOperator**: the connectivity provider of the Express Connect circuit. Valid values:'."\n" - ."\n" - .' * **CT**: China Telecom.'."\n" - .' * **CU**: China Unicom.'."\n" - .' * **CM**: China Mobile.'."\n" - .' * **CO**: other connectivity providers in the Chinese mainland.'."\n" - .' * **Equinix**: Equinix.'."\n" - .' * **Other**: other connectivity providers outside the Chinese mainland.'."\n" - ."\n" - .'* **Spec**: the specification of the Express Connect circuit. Valid values:'."\n" - ."\n" - .' * **1G and below**'."\n" - .' * **10G**'."\n" - .' * **40G**'."\n" - .' * **100G**'."\n" - ."\n" - .'> By default, you cannot set the value to **40G** or **100G**. To use these values, you must first contact your account manager.'."\n" - ."\n" - .'* **Status**: the status of the Express Connect circuit. Valid values:'."\n" - ."\n" - .' * **Initial**: The application is under review.'."\n" - .' * **Approved**: The application is approved.'."\n" - .' * **Allocating**: The system is allocating resources.'."\n" - .' * **Allocated**: The Express Connect circuit is under construction.'."\n" - .' * **Confirmed**: The Express Connect circuit is pending for user confirmation.'."\n" - .' * **Enabled**: The Express Connect circuit is enabled.'."\n" - .' * **Rejected**: The application is rejected.'."\n" - .' * **Canceled**: The application is canceled.'."\n" - .' * **Allocation Failed**: The system failed to allocate resources.'."\n" - .' * **Terminating**: The Express Connect circuit is being disabled.'."\n" - .' * **Terminated**: The Express Connect circuit is disabled.'."\n" - ."\n" - .'* **Name**: the name of the Express Connect circuit.'."\n" - ."\n" - .'* **ProductType**: the type of the Express Connect circuit. Valid values:'."\n" - ."\n" - .' * **VirtualPhysicalConnection**: shared Express Connect circuit'."\n" - .' * **PhysicalConnection**: dedicated Express Connect circuit.'."\n" - ."\n" - .'You can specify at most five filter conditions in each request. The logical relation among the filter conditions is **AND**. Therefore, an Express Connect circuit is returned only when all specified filter conditions are matched.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'Name', - ], - 'Value' => [ - 'description' => 'The filter values.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The value of the filter condition.'."\n" - ."\n" - .'You can specify at most five values for a filter condition. The logical relation among the values of each filter condition is **OR**. Therefore, an Express Connect circuit is returned when one of the specified values is matched.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'nametest', - ], - 'required' => false, - 'example' => '1', - 'maxItems' => 5, - ], - ], - 'required' => false, - ], - 'required' => false, - 'maxItems' => 5, - ], + 'schema' => ['description' => 'The region ID of the VPC to which the route table belongs.'."\n" + ."\n" + .'You can call [DescribeRegions](https://www.alibabacloud.com/help/vpc/developer-reference/api-vpc-2016-04-28-describeregions) to query the most recent region list.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'ap-southeast-6', 'title' => ''], ], [ - 'name' => 'Tags', + 'name' => 'Tag', 'in' => 'query', 'style' => 'repeatList', 'schema' => [ - 'description' => 'The tag list.'."\n", + 'description' => 'The tags of the resource.', 'type' => 'array', 'items' => [ - 'description' => '', + 'description' => 'The tags of the resource.', 'type' => 'object', 'properties' => [ - 'Key' => [ - 'description' => '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.'."\n" - ."\n" - .'It can be up to 64 characters in length and can contain digits, periods (.), underscores (\\_), and hyphens (-). It cannot start with `aliyun` or `acs:`, and cannot contain `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'FinanceDept', - ], - 'Value' => [ - 'description' => '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.'."\n" - ."\n" - .'It can be up to 128 characters in length and can contain digits, periods (.), underscores (\\_), and hyphens (-). It cannot start with `aliyun` or `acs:`, and cannot contain `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'FinanceJoshua', - ], + 'Key' => ['description' => 'The value of tag N to add to the resource. You can specify up to 20 tag values. The tag value can be an empty string.'."\n" + ."\n" + .'The tag value can be up to 128 characters in length. It cannot start with `aliyun` or `acs:` and cannot contain `http://` or `https://`.', 'type' => 'string', 'required' => false, 'example' => 'FinanceDept', 'title' => ''], + 'Value' => ['description' => 'The value of tag N to add to the resource. You can specify up to 20 tag values. The tag value can be an empty string.'."\n" + ."\n" + .'The tag value can be up to 128 characters in length. It cannot start with `aliyun` or `acs:` and cannot contain `http://` or `https://`.', 'type' => 'string', 'required' => false, 'example' => 'FinanceJoshua', 'title' => ''], ], 'required' => false, + 'title' => '', + 'example' => '', ], 'required' => false, - 'maxItems' => 5, + 'maxItems' => 21, + 'title' => '', + 'example' => '', ], ], [ - 'name' => 'ResourceGroupId', + 'name' => 'RouteTableType', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the resource group to which the Express Connect circuit belongs.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'rg-aek2yvwibxrmrkq', - ], + 'schema' => ['description' => 'The type of the route table.'."\n" + ."\n" + .'* **System**'."\n" + .'* **Custom**', 'type' => 'string', 'required' => false, 'example' => 'System', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => 'The response parameters.'."\n", + 'description' => 'The details of the route table.', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '0E6D0EC4-7C91-53E2-9F65-64BF713114B0', - ], - 'PageNumber' => [ - 'description' => 'The page number. Default value: **1**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'PageSize' => [ - 'description' => 'The number of entries per page. Default value: **10**. Valid values: **1** to **50**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'TotalCount' => [ - 'description' => 'The number of returned entries.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'PhysicalConnectionSet' => [ + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'DC668356-BCB4-42FD-9BC3-FA2B2E04B634', 'title' => ''], + 'PageSize' => ['description' => 'The number of entries per page.', 'type' => 'integer', 'format' => 'int32', 'example' => '10', 'title' => ''], + 'PageNumber' => ['description' => 'The page number.', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''], + 'TotalCount' => ['description' => 'The total number of entries returned.', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''], + 'RouterTableList' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ - 'PhysicalConnectionType' => [ - 'description' => 'The list of Express Connect circuits.'."\n", + 'RouterTableListType' => [ + 'description' => 'The detailed information about the route tables.', 'type' => 'array', 'items' => [ - 'description' => '', + 'description' => 'The details of the route table.', 'type' => 'object', 'properties' => [ - 'Type' => [ - 'description' => 'The type of resource to which the Express Connect circuit is connected. Only **VPC** may be returned.'."\n", - 'type' => 'string', - 'example' => 'VPC', - ], - 'Status' => [ - 'description' => 'The status of the Express Connect circuit. Valid values:'."\n" - ."\n" - .'* **Initial**'."\n" - .'* **Approved**'."\n" - .'* **Allocating**'."\n" - .'* **Allocated**'."\n" - .'* **Confirmed**'."\n" - .'* **Enabled**'."\n" - .'* **Rejected**'."\n" - .'* **Canceled**'."\n" - .'* **Allocation Failed**'."\n" - .'* **Terminating**'."\n" - .'* **Terminated**'."\n", - 'type' => 'string', - 'example' => 'Enabled', - ], - 'CreationTime' => [ - 'description' => 'The time when the Express Connect circuit was created.'."\n", - 'type' => 'string', - 'example' => '2021-08-24T07:30:58Z', - ], - 'AdLocation' => [ - 'description' => 'The location of the access point.'."\n", - 'type' => 'string', - 'example' => 'Number 10, XX Road, XX Town, XX District, Hangzhou City, Zhejiang Province.', - ], - 'ReservationActiveTime' => [ - 'description' => 'The time when the pending order takes effect.'."\n", - 'type' => 'string', - 'example' => '2022-02-25T11:01:04Z', - ], - 'ReservationOrderType' => [ - 'description' => 'The type of the pending order.'."\n" - ."\n" - .'If the value is **RENEW**, it indicates that the order is placed for service renewal.'."\n", - 'type' => 'string', - 'example' => 'RENEW', - ], - 'PortNumber' => [ - 'description' => 'The ID of the port on the access device.'."\n", - 'type' => 'string', - 'example' => '1/1/1', - ], - 'Spec' => [ - 'description' => 'The specification of the Express Connect circuit.'."\n" - ."\n" - .'Unit: **G** (Gbit/s).'."\n", - 'type' => 'string', - 'example' => '10G', - ], - 'ChargeType' => [ - 'description' => 'The billing method of the Express Connect circuit.'."\n" - ."\n" - .'If **Prepaid** is returned, it indicates that the Express Connect circuit is billed on a subscription basis.'."\n", - 'type' => 'string', - 'example' => 'Prepaid', - ], - 'ReservationInternetChargeType' => [ - 'description' => 'The billing method of the pending order.'."\n" - ."\n" - .'If **PayByBandwidth** is returned, it indicates that the Express Connect circuit is billed on a pay-by-bandwidth basis.'."\n", - 'type' => 'string', - 'example' => 'PayByBandwidth', - ], - 'Description' => [ - 'description' => 'The description of the Express Connect circuit.'."\n", - 'type' => 'string', - 'example' => 'desctest', - ], - 'Bandwidth' => [ - 'description' => 'The maximum bandwidth of the Express Connect circuit.'."\n" - ."\n" - .'Unit: Mbit/s.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '10', - ], - 'EnabledTime' => [ - 'description' => 'The time when the Express Connect circuit was enabled.'."\n", - 'type' => 'string', - 'example' => '2021-08-24T07:33:18Z', - ], - 'LineOperator' => [ - 'description' => 'The connectivity provider of the Express Connect circuit. Valid values:'."\n" - ."\n" - .'* **CT**: China Telecom.'."\n" - .'* **CU**: China Unicom.'."\n" - .'* **CM**: China Mobile.'."\n" - .'* **CO**: other connectivity providers in the Chinese mainland.'."\n" - .'* **Equinix**: Equinix.'."\n" - .'* **Other**: other connectivity providers outside the Chinese mainland.'."\n", - 'type' => 'string', - 'example' => 'CT', - ], - 'PeerLocation' => [ - 'description' => 'The geographical location of the data center.'."\n", - 'type' => 'string', - 'example' => 'XX Number, XX Road, XX Town, XX District, Hangzhou City, Zhejiang Province.', - ], - 'RedundantPhysicalConnectionId' => [ - 'description' => 'The ID of the standby Express Connect circuit.'."\n", - 'type' => 'string', - 'example' => 'pc-119mfjzm****', - ], - 'Name' => [ - 'description' => 'The name of the Express Connect circuit.'."\n", - 'type' => 'string', - 'example' => 'nametest', - ], - 'CircuitCode' => [ - 'description' => 'The circuit code of the Express Connect circuit. The circuit code is provided by the connectivity provider.'."\n", - 'type' => 'string', - 'example' => 'longtel001', - ], - 'EndTime' => [ - 'description' => 'The time when the Express Connect circuit expires.'."\n", - 'type' => 'string', - 'example' => '2022-04-24T16:00:00Z', - ], - 'PortType' => [ - 'description' => 'The port type of the Express Connect circuit. Valid values:'."\n" - ."\n" - .'* **100Base-T**: 100 Mbit/s copper Ethernet port'."\n" - .'* **1000Base-T**: 1,000 Mbit/s copper Ethernet port'."\n" - .'* **1000Base-LX**: 1,000 Mbit/s single-mode optical port (10 km)'."\n" - .'* **10GBase-T**: 10,000 Mbit/s copper Ethernet port'."\n" - .'* **10GBase-LR**: 10,000 Mbit/s single-mode optical port (10 km)'."\n" - .'* **40GBase-LR**: 40,000 Mbit/s single-mode optical port'."\n" - .'* **100GBase-LR**: 100,000 Mbit/s single-mode optical port'."\n" - ."\n" - .'> Whether 40GBase-LR and 100GBase-LR ports can be created depends on resource supplies. For more information, contact your account manager.'."\n", - 'type' => 'string', - 'example' => '10GBase-LR', - ], - 'BusinessStatus' => [ - 'description' => 'The status of the Express Connect circuit. Valid values:'."\n" - ."\n" - .'* **Normal**: enabled'."\n" - .'* **FinancialLocked**: locked due to overdue payments'."\n" - .'* **SecurityLocked**: locked for security reasons'."\n", - 'type' => 'string', - 'example' => 'Normal', - ], - 'LoaStatus' => [ - 'description' => 'The status of the letter of authorization (LOA). Valid values:'."\n" - ."\n" - .'* **Applying**: The LOA is pending for approval.'."\n" - .'* **Accept**: The LOA is approved.'."\n" - .'* **Available**: The LOA is available.'."\n" - .'* **Rejected**: The LOA is rejected.'."\n" - .'* **Completing**: The Express Connect circuit is under construction.'."\n" - .'* **Complete**: The Express Connect circuit is installed.'."\n" - .'* **Deleted**: The LOA is deleted.'."\n", - 'type' => 'string', - 'example' => 'Available', - ], - 'AccessPointId' => [ - 'description' => 'The ID of the Express Connect circuit.'."\n", - 'type' => 'string', - 'example' => 'ap-cn-hangzhou-finance-yh-E', - ], - 'AccessPointType' => [ - 'description' => 'The type of the access point.'."\n", - 'type' => 'string', - 'example' => 'VPC', - ], - 'HasReservationData' => [ - 'description' => 'Indicates whether the data about pending orders is returned. Valid values:'."\n" - ."\n" - .'* **true**'."\n" - .'* **false**'."\n", - 'type' => 'string', - 'example' => 'false', - ], - 'PhysicalConnectionId' => [ - 'description' => 'The ID of the Express Connect circuit.'."\n", - 'type' => 'string', - 'example' => 'pc-bp1ciz7ekd2grn1as****', - ], - 'ProductType' => [ - 'description' => 'The type of the Express Connect circuit. Valid values:'."\n" - ."\n" - .'* **VirtualPhysicalConnection**: shared Express Connect circuit'."\n" - .'* **PhysicalConnection**: dedicated Express Connect circuit'."\n", - 'type' => 'string', - 'example' => 'PhysicalConnection', - ], - 'VirtualPhysicalConnectionCount' => [ - 'description' => 'The number of Express Connect circuits that are established.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '0', - ], - 'ParentPhysicalConnectionId' => [ - 'description' => 'The ID of the parent Express Connect circuit.'."\n", - 'type' => 'string', - 'example' => 'pc-bp1ciz7ekd2grn1as****', - ], - 'ParentPhysicalConnectionAliUid' => [ - 'description' => 'The ID of the Alibaba Cloud account to which the parent Express Connect circuit belongs.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '283117732402483989', - ], - 'VlanId' => [ - 'description' => 'The VLAN ID of the shared Express Connect circuit.'."\n", - 'type' => 'string', - 'example' => '10', - ], - 'OrderMode' => [ - 'description' => 'The payer for the hosted connection. Valid values:'."\n" - ."\n" - .'* **PayByPhysicalConnectionOwner**: The partner pays for the shared Express Connect circuit.'."\n" - .'* **PayByVirtualPhysicalConnectionOwner**: The tenant pays for the shared Express Connect circuit.'."\n", - 'type' => 'string', - 'example' => 'PayByPhysicalConnectionOwner', - ], - 'VpconnStatus' => [ - 'description' => 'The status of the shared Express Connect circuit. Valid values:'."\n" - ."\n" - .'* **Confirmed**'."\n" - .'* **UnConfirmed**'."\n" - .'* **Deleted**'."\n", - 'type' => 'string', - 'example' => 'Confirmed', - ], - 'ExpectSpec' => [ - 'description' => 'The estimated maximum bandwidth of the shared Express Connect circuit. The estimated bandwidth takes effect after you complete the payment.'."\n" - ."\n" - .'Unit: **M** (Mbit/s) and **G** (Gbit/s).'."\n", - 'type' => 'string', - 'example' => '50M', - ], - 'ResourceGroupId' => [ - 'description' => 'The resource group ID to which the instance belongs.'."\n", - 'type' => 'string', - 'example' => 'rg-acfmwu3k52prgdi', - ], - 'AdDetailLocation' => [ - 'description' => 'The information about the data center and rack.'."\n", - 'type' => 'string', - 'example' => 'Position 30, Server Rack JXX, Booth ET135ET135-XX-2, Room XX, Building 10, XX Road, XX Town, XX District, Hangzhou, Zhejiang Province'."\n", - ], + 'VpcId' => ['description' => 'The ID of the VPC to which the route table belongs.', 'type' => 'string', 'example' => 'vpc-bp15zckdt37pq72****', 'title' => ''], + 'CreationTime' => ['description' => 'The time when the route table was created.', 'type' => 'string', 'example' => '2021-08-22T10:40:25Z', 'title' => ''], + 'Status' => ['description' => 'The status of the route table. Valid values:'."\n" + ."\n" + .'* **Pending**'."\n" + .'* **Available**'."\n" + .'* **Deleting**', 'type' => 'string', 'example' => 'Available', 'title' => ''], + 'RouterId' => ['description' => 'The ID of the vRouter to which the route table belongs.', 'type' => 'string', 'example' => 'vrt-bp1lhl0taikrteen8****', 'title' => ''], + 'AssociateType' => ['description' => 'The type of the cloud resource with which the route table is associated. Valid values:'."\n" + ."\n" + .'* **VSwitch**: vSwitch'."\n" + .'* **Gateway**: IPv4 gateway', 'type' => 'string', 'example' => 'VSwitch', 'title' => ''], + 'RouteTableId' => ['description' => 'The ID of the route table.', 'type' => 'string', 'example' => 'vtb-bp145q7glnuzdvzu2****', 'title' => ''], + 'OwnerId' => ['description' => 'The ID of the Alibaba Cloud account to which the route table belongs.', 'type' => 'integer', 'format' => 'int64', 'example' => '253460731706911258', 'title' => ''], + 'Description' => ['description' => 'The information about the route table.', 'type' => 'string', 'example' => 'This is Route Table.', 'title' => ''], + 'RouteTableType' => ['description' => 'The type of the route table. Valid values:'."\n" + ."\n" + .'* **Custom**'."\n" + .'* **System**', 'type' => 'string', 'example' => 'System', 'title' => ''], + 'ResourceGroupId' => ['description' => 'The ID of the resource group to which the route table belongs.', 'type' => 'string', 'example' => 'rg-acfmxazb4ph****', 'title' => ''], + 'RouterType' => ['description' => 'The type of the vRouter to which the route table belongs. Valid values:'."\n" + ."\n" + .'- **VRouter**: a vRouter.'."\n" + ."\n" + .'- **VBR**: a VBR.', 'type' => 'string', 'example' => 'VRouter', 'title' => ''], + 'RouteTableName' => ['description' => 'The name of the route table.', 'type' => 'string', 'example' => 'doctest', 'title' => ''], 'Tags' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ - 'tags' => [ - 'description' => 'The tags that are added to the cluster.'."\n", + 'Tag' => [ + 'description' => 'The tags.', 'type' => 'array', 'items' => [ - 'description' => '', + 'description' => 'The tags.', 'type' => 'object', 'properties' => [ - 'Key' => [ - 'description' => 'The key of tag N added to the resource. You can specify up to 20 tag keys. The tag key cannot be an empty string.'."\n" - ."\n" - .'The tag key can be up to 64 characters in length and can contain letters, digits, periods (.), underscores (\\_), and hyphens (-). It cannot start with `aliyun` or `acs:`, and cannot contain `http://` or `https://`.'."\n", - 'type' => 'string', - 'example' => 'FinanceDept', - ], - 'Value' => [ - 'description' => 'The value of tag N added to the resource. You can specify up to 20 tag values. The tag value can be an empty string.'."\n" - ."\n" - .'The tag value can be up to 128 characters in length and can contain letters, digits, periods (.), underscores (\\_), and hyphens (-). It cannot start with `aliyun` or `acs:`, and cannot contain `http://` or `https://`.'."\n", - 'type' => 'string', - 'example' => 'FinanceJoshua', - ], + 'Key' => ['description' => 'The key of the tag that is added to the route table.', 'type' => 'string', 'example' => 'type', 'title' => ''], + 'Value' => ['description' => 'The value of the tag that is added to the route table.', 'type' => 'string', 'example' => 'ingress', 'title' => ''], ], + 'title' => '', + 'example' => '', ], + 'title' => '', + 'example' => '', ], ], + 'description' => '', + 'title' => '', + 'example' => '', ], - 'QosId' => [ - 'description' => 'The ID of the QoS policy.'."\n", - 'type' => 'string', - 'example' => 'qos-bp10s3szn8rgnxuw7****', + 'VSwitchIds' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'VSwitchId' => [ + 'description' => 'The vSwitch IDs.'."\n", + 'type' => 'array', + 'items' => ['description' => 'The vSwitch IDs.'."\n", 'type' => 'string', 'example' => 'vsw-bp12mw1f8k3jgygk9****', 'title' => ''], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', ], - 'OpticalModuleModel' => [ - 'title' => '用户输入的光模块型号。', - 'type' => 'string', + 'GatewayIds' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'GatewayIds' => [ + 'description' => 'The detailed information about the IPv4 gateway.', + 'type' => 'array', + 'items' => ['description' => 'The detailed information about the IPv4 gateway.', 'type' => 'string', 'example' => 'ipv4gw-5tsnc6s4ogsedtp3k****', 'title' => ''], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', ], + 'RoutePropagationEnable' => ['description' => 'Whether to receive the propagation routes. Valid Values:'."\n" + ."\n" + .'* **true**: received.'."\n" + ."\n" + .'* **false**: not received.', 'type' => 'boolean', 'example' => 'true', 'title' => ''], ], + 'title' => '', + 'example' => '', ], + 'title' => '', + 'example' => '', ], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'OperationUnsupported.ResourceGroupId', - 'errorMessage' => 'ResourceGroupId in financial region is unsupported.', - ], - [ - 'errorCode' => 'InvalidTagKey.Malformed', - 'errorMessage' => 'The specified tag key is invalid.', - ], - [ - 'errorCode' => 'OperationFailed.InternalError', - 'errorMessage' => 'The request processing has failed due to some unknown error.', - ], + ['errorCode' => 'InvalidTagKey', 'errorMessage' => 'The tag keys are not valid.', 'description' => 'The tag index is invalid.'], + ['errorCode' => 'InvalidTagValue', 'errorMessage' => 'The tag values are not valid.', 'description' => 'The tag value is invalid.'], + ['errorCode' => 'IellgalParameter.OwnerAccount', 'errorMessage' => 'The specified parameter OwnerAccount is not valid.', 'description' => 'The specified parameter OwnerAccount is illegal.'], ], - 404 => [ - [ - 'errorCode' => 'InvalidFilterKey.ValueNotSupported', - 'errorMessage' => 'Specified filter key is not supported: Filter.X.key', - ], + 403 => [ + ['errorCode' => 'Forbbiden', 'errorMessage' => 'User not authorized to operate on the specified resource.', 'description' => 'User not authorized to operate on the specified resource.'], + ['errorCode' => 'Abs.InvalidPayType', 'errorMessage' => 'Specified pay type is not valid.', 'description' => ''], + ['errorCode' => 'Abs.InstanceNotExist', 'errorMessage' => 'Specified instance not exist.', 'description' => ''], + ['errorCode' => 'Abs.Forbidden', 'errorMessage' => 'Specified instance cannot change pay type.', 'description' => ''], + ['errorCode' => 'Abs.InvalidPayPeriod', 'errorMessage' => 'Specified pay period not valid.', 'description' => ''], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"0E6D0EC4-7C91-53E2-9F65-64BF713114B0\\",\\n \\"PageNumber\\": 1,\\n \\"PageSize\\": 10,\\n \\"TotalCount\\": 1,\\n \\"PhysicalConnectionSet\\": {\\n \\"PhysicalConnectionType\\": [\\n {\\n \\"Type\\": \\"VPC\\",\\n \\"Status\\": \\"Enabled\\",\\n \\"CreationTime\\": \\"2021-08-24T07:30:58Z\\",\\n \\"AdLocation\\": \\"浙江省杭州市XX区XX镇XX路10号\\",\\n \\"ReservationActiveTime\\": \\"2022-02-25T11:01:04Z\\",\\n \\"ReservationOrderType\\": \\"RENEW\\",\\n \\"PortNumber\\": \\"1/1/1\\",\\n \\"Spec\\": \\"10G\\",\\n \\"ChargeType\\": \\"Prepaid\\",\\n \\"ReservationInternetChargeType\\": \\"PayByBandwidth\\",\\n \\"Description\\": \\"desctest\\",\\n \\"Bandwidth\\": 10,\\n \\"EnabledTime\\": \\"2021-08-24T07:33:18Z\\",\\n \\"LineOperator\\": \\"CT\\",\\n \\"PeerLocation\\": \\"浙江省杭州市XX区XX镇XX路XX号\\",\\n \\"RedundantPhysicalConnectionId\\": \\"pc-119mfjzm****\\",\\n \\"Name\\": \\"nametest\\",\\n \\"CircuitCode\\": \\"longtel001\\",\\n \\"EndTime\\": \\"2022-04-24T16:00:00Z\\",\\n \\"PortType\\": \\"10GBase-LR\\",\\n \\"BusinessStatus\\": \\"Normal\\",\\n \\"LoaStatus\\": \\"Available\\",\\n \\"AccessPointId\\": \\"ap-cn-hangzhou-finance-yh-E\\",\\n \\"AccessPointType\\": \\"VPC\\",\\n \\"HasReservationData\\": \\"false\\",\\n \\"PhysicalConnectionId\\": \\"pc-bp1ciz7ekd2grn1as****\\",\\n \\"ProductType\\": \\"PhysicalConnection\\",\\n \\"VirtualPhysicalConnectionCount\\": 0,\\n \\"ParentPhysicalConnectionId\\": \\"pc-bp1ciz7ekd2grn1as****\\",\\n \\"ParentPhysicalConnectionAliUid\\": 0,\\n \\"VlanId\\": \\"10\\",\\n \\"OrderMode\\": \\"PayByPhysicalConnectionOwner\\",\\n \\"VpconnStatus\\": \\"Confirmed\\",\\n \\"ExpectSpec\\": \\"50M\\",\\n \\"ResourceGroupId\\": \\"rg-acfmwu3k52p****\\",\\n \\"AdDetailLocation\\": \\"浙江省杭州市XX区XX镇XX路10号, XX机房, ET135ET135-XX-2包间, JXX机柜, position30\\",\\n \\"Tags\\": {\\n \\"tags\\": [\\n {\\n \\"Key\\": \\"FinanceDept\\",\\n \\"Value\\": \\"FinanceJoshua\\"\\n }\\n ]\\n },\\n \\"QosId\\": \\"qos-bp10s3szn8rgnxuw7****\\",\\n \\"OpticalModuleModel\\": \\"\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 0E6D0EC4-7C91-53E2-9F65-64BF713114B0\\n 1\\n 10\\n 1\\n \\n VPC\\n Enabled\\n 2021-08-24T07:30:58Z\\n 浙江省杭州市XX区XX镇XX路10号\\n 2022-02-25T11:01:04Z\\n RENEW\\n 1/1/1\\n 10G\\n Prepaid\\n PayByBandwidth\\n desctest\\n 10\\n 2021-08-24T07:33:18Z\\n CT\\n 浙江省杭州市XX区XX镇XX路XX号\\n pc-119mfjzm****\\n nametest\\n longtel001\\n 2022-04-24T16:00:00Z\\n 10GBase-LR\\n Normal\\n Available\\n ap-cn-hangzhou-finance-yh-E\\n VPC\\n false\\n pc-bp1ciz7ekd2grn1as****\\n PhysicalConnection\\n 0\\n pc-bp1ciz7ekd2grn1as****\\n 10\\n PayByPhysicalConnectionOwner\\n Confirmed\\n 50M\\n rg-acfmwu3k52p****\\n 浙江省杭州市XX区XX镇XX路10号, XX机房, ET135ET135-XX-2包间, JXX机柜, position30\\n \\n FinanceDept\\n FinanceJoshua\\n \\n \\n","errorExample":""}]', - 'title' => 'DescribePhysicalConnections', - 'description' => 'By default, the system queries information about all Express Connect circuits in the specified region. You can query Express Connect circuits that meet specific conditions by specifying filter conditions provided by the **DescribePhysicalConnections** operation. For more information about the supported filter conditions, see **Key** in the **Request parameters** section.'."\n", + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'DescribeRouteTableList', + 'summary' => 'Queries route tables.', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'ListPhysicalConnectionFeatures' => [ - 'summary' => 'Queries he connection features supported by a Express Connect circuit.', - 'methods' => [ - 'post', - 'get', + 'changeSet' => [ + ['createdAt' => '2024-01-05T06:29:38.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2023-11-27T12:29:43.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2023-08-14T08:48:43.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2023-08-03T05:30:57.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2021-11-02T02:19:49.000Z', 'description' => 'Response parameters changed'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '180', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DescribeRouteTableList'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'vpc:DescribeRouteTableList', + 'authLevel' => 'resource', + 'actionConditions' => [ + ['conditionKey' => 'vpc:VRouter', 'validationType' => 'always'], + ['conditionKey' => 'vpc:VBR', 'validationType' => 'always'], + ], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'RouteTable', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:routetable/*'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"DC668356-BCB4-42FD-9BC3-FA2B2E04B634\\",\\n \\"PageSize\\": 10,\\n \\"PageNumber\\": 1,\\n \\"TotalCount\\": 1,\\n \\"RouterTableList\\": {\\n \\"RouterTableListType\\": [\\n {\\n \\"VpcId\\": \\"vpc-bp15zckdt37pq72****\\",\\n \\"CreationTime\\": \\"2021-08-22T10:40:25Z\\",\\n \\"Status\\": \\"Available\\",\\n \\"RouterId\\": \\"vrt-bp1lhl0taikrteen8****\\",\\n \\"AssociateType\\": \\"VSwitch\\",\\n \\"RouteTableId\\": \\"vtb-bp145q7glnuzdvzu2****\\",\\n \\"OwnerId\\": 253460731706911260,\\n \\"Description\\": \\"This is Route Table.\\",\\n \\"RouteTableType\\": \\"System\\",\\n \\"ResourceGroupId\\": \\"rg-acfmxazb4ph****\\",\\n \\"RouterType\\": \\"VRouter\\",\\n \\"RouteTableName\\": \\"doctest\\",\\n \\"Tags\\": {\\n \\"Tag\\": [\\n {\\n \\"Key\\": \\"type\\",\\n \\"Value\\": \\"ingress\\"\\n }\\n ]\\n },\\n \\"VSwitchIds\\": {\\n \\"VSwitchId\\": [\\n \\"vsw-bp12mw1f8k3jgygk9****\\"\\n ]\\n },\\n \\"GatewayIds\\": {\\n \\"GatewayIds\\": [\\n \\"ipv4gw-5tsnc6s4ogsedtp3k****\\"\\n ]\\n },\\n \\"RoutePropagationEnable\\": true\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n DC668356-BCB4-42FD-9BC3-FA2B2E04B634\\n 10\\n 1\\n 1\\n \\n vpc-bp15zckdt37pq72****\\n 2021-08-22T10:40:25Z\\n Available\\n vrt-bp1lhl0taikrteen8****\\n VSwitch\\n vtb-bp145q7glnuzdvzu2****\\n 253460731706911260\\n This is Route Table.\\n System\\n rg-acfmxazb4ph****\\n VRouter\\n doctest\\n \\n type\\n ingress\\n \\n vsw-bp12mw1f8k3jgygk9****\\n ipv4gw-5tsnc6s4ogsedtp3k****\\n \\n","errorExample":""}]', + ], + 'DescribeRouteTables' => [ + 'summary' => 'Calls the DescribeRouteTables operation to query route tables.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'read', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'list', - 'riskType' => 'none', - 'chargeType' => 'free', - ], + 'deprecated' => true, + 'systemTags' => ['operationType' => 'list', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the Express Connect circuit.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The region ID of the VPC to which the route table belongs.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the region ID.', 'type' => 'string', 'required' => false, 'example' => 'ap-southeast-6', 'title' => ''], ], [ - 'name' => 'ClientToken', + 'name' => 'VRouterId', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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.'."\n" - ."\n" - .'> If you do not specify this parameter, the system automatically uses the **RequestId** as the **ClientToken**. The **RequestId** may be different.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-426655440000', - ], + 'schema' => ['description' => 'The ID of the vRouter to query.'."\n" + ."\n" + .'>You must specify at least one of the following parameters: VRouterId, RouteTableId, RouterId, and RouteTableName. You cannot specify both VRouterId and RouterId at the same time.', 'type' => 'string', 'required' => false, 'example' => 'vrt-bp1lhl0taikrteen****', 'title' => ''], ], [ - 'name' => 'PhysicalConnectionId', + 'name' => 'RouteTableId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the Express Connect circuit.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'pc-bp1qrb3044eqixog****', - ], + 'schema' => ['description' => 'The ID of the route table to query.'."\n" + ."\n" + .'>You must specify at least one of the following parameters: VRouterId, RouteTableId, RouterId, and RouteTableName. You cannot specify both VRouterId and RouterId at the same time.', 'type' => 'string', 'required' => false, 'example' => 'vtb-bp145q7glnuzdvzu2****', 'title' => ''], + ], + [ + 'name' => 'RouterType', + 'in' => 'query', + 'schema' => ['description' => 'The type of the router to which the route table belongs. Valid values:'."\n" + ."\n" + .'- **VRouter** (default): vRouter.'."\n" + .'- **VBR**: Virtual Border Router.', 'type' => 'string', 'required' => false, 'example' => 'VRouter', 'title' => ''], + ], + [ + 'name' => 'RouterId', + 'in' => 'query', + 'schema' => ['description' => 'The ID of the router to which the route table belongs.'."\n" + ."\n" + .'>You must specify at least one of the following parameters: VRouterId, RouteTableId, RouterId, and RouteTableName. You cannot specify both VRouterId and RouterId at the same time.', 'type' => 'string', 'required' => false, 'example' => 'vrt-bp1lhl0taikrteen8****', 'title' => ''], + ], + [ + 'name' => 'Type', + 'in' => 'query', + 'schema' => ['description' => 'The destination type of the route to query. Valid values:'."\n" + ."\n" + .'- **Custom**: custom route.'."\n" + .'- **System**: system route.'."\n" + .'- **BGP**: BGP route.'."\n" + .'- **CEN**: Cloud Enterprise Network (CEN) route.'."\n" + .'- **ECR**: Express Connect Router (ECR) route.', 'type' => 'string', 'required' => false, 'example' => 'Custom', 'title' => ''], + ], + [ + 'name' => 'RouteTableName', + 'in' => 'query', + 'schema' => ['description' => 'The name of the route table to query.'."\n" + ."\n" + .'The name must be 2 to 128 characters in length and must start with a letter or a Chinese character. It can contain digits, periods (.), underscores (_), and hyphens (-).'."\n" + ."\n" + .'>You must specify at least one of the following parameters: VRouterId, RouteTableId, RouterId, and RouteTableName. You cannot specify both VRouterId and RouterId at the same time.', 'type' => 'string', 'required' => false, 'example' => 'doctest', 'title' => ''], + ], + [ + 'name' => 'ResourceGroupId', + 'in' => 'query', + 'schema' => ['description' => 'The ID of the resource group to which the route table belongs.', 'type' => 'string', 'required' => false, 'example' => 'rg-acfmxazb4ph****', 'title' => ''], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => ['description' => 'The page number. Default value: 1.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'minimum' => '1', 'default' => '1', 'example' => '1', 'title' => ''], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => ['description' => 'The number of entries per page during paging. Maximum value: **50**. Default value: **10**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '50', 'minimum' => '1', 'default' => '10', 'example' => '10', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => 'The request ID.'."\n", + 'description' => 'The number of entries per page.', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => 'A599D38F-3618-18FD-9427-108FB9B5BD26', - ], - 'PhysicalConnectionFeatures' => [ - 'description' => 'The list of Express Connect circuit features.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The list of Express Connect circuit features.'."\n", - 'type' => 'object', - 'properties' => [ - 'FeatureValue' => [ - 'description' => 'The feature value of the Express Connect circuit. Valid values:'."\n" - ."\n" - .'* **OK**: Supported'."\n" - .'* **NOK**: Not supported'."\n", - 'type' => 'string', - 'example' => 'OK', - ], - 'FeatureKey' => [ - 'description' => 'The feature key of the Express Connect circuit. Valid values:'."\n" - ."\n" - .'* **SubifRateLimit**: subinterface throttling'."\n" - .'* **BFD Capability**: Bidirectional Forwarding Detection (BFD)'."\n" - .'* **DualStack**: Dual stack'."\n" - .'* **CEN**: When a virtual border router (VBR) is attached to a Cloud Enterprise Network (CEN) instance and BGP routes are advertised on the user side, attributes such as **as-path** and **community** are carried.'."\n" - .'* **CENv6**: When a VBR is attached to an IPv6 CEN instance and BGP routes are advertised on the user side, attributes such as **as-path** and **community** are carried.'."\n" - .'* **QOS**: The device supports configuring QOS policies on physical ports.'."\n" - .'* **MSHA**: The device supports fast switching groups between two VBRs.'."\n" - .'* **MULTI_MS_HA**: The device supports a maximum of eight VBRs that can be added to the same ECR.'."\n", - 'type' => 'string', - 'example' => 'SubifRateLimit', + 'PageSize' => ['description' => 'The number of entries per page.', 'type' => 'integer', 'format' => 'int32', 'example' => '10', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'DC668356-BCB4-42FD-9BC3-FA2B2E04B634', 'title' => ''], + 'PageNumber' => ['description' => 'The current page number.', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''], + 'TotalCount' => ['description' => 'The total number of entries returned.', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''], + 'RouteTables' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'RouteTable' => [ + 'description' => 'The details of the route tables.', + 'type' => 'array', + 'items' => [ + 'description' => 'The time when the route table was created.', + 'type' => 'object', + 'properties' => [ + 'CreationTime' => ['description' => 'The time when the route table was created.'."\n" + ."\n" + .'The time is displayed in UTC in the `YYYY-MM-DDThh:mm:ssZ` format.', 'type' => 'string', 'example' => '2022-08-22T10:40:25Z', 'title' => ''], + 'Status' => ['description' => 'The status of the route table. Valid values:'."\n" + ."\n" + .'- **Pending**: being configured.'."\n" + .'- **Available**: active.', 'type' => 'string', 'example' => 'Available', 'title' => ''], + 'VRouterId' => ['description' => 'The ID of the vRouter.', 'type' => 'string', 'example' => 'vrt-bp1lhl0taikrteen****', 'title' => ''], + 'RouteTableType' => ['description' => 'The type of the route table. Valid values:'."\n" + ."\n" + .'- **Custom**: custom route table.'."\n" + .'- **System**: system route table.', 'type' => 'string', 'example' => 'Custom', 'title' => ''], + 'ResourceGroupId' => ['description' => 'The ID of the resource group to which the route table belongs.', 'type' => 'string', 'example' => 'rg-acfmxazb4ph****', 'title' => ''], + 'RouteTableId' => ['description' => 'The ID of the route table.', 'type' => 'string', 'example' => 'vtb-bp145q7glnuzdvzu2****', 'title' => ''], + 'RouteEntrys' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'RouteEntry' => [ + 'description' => 'The route information.', + 'type' => 'array', + 'items' => [ + 'description' => 'The route information.', + 'type' => 'object', + 'properties' => [ + 'Type' => ['description' => 'The destination type of the route. Valid values:'."\n" + ."\n" + .'- **Custom**: custom route.'."\n" + .'- **System**: system route.'."\n" + .'- **BGP**: BGP route.'."\n" + .'- **CEN**: Cloud Enterprise Network (CEN) route.'."\n" + .'- **ECR**: Express Connect Router (ECR) route.', 'type' => 'string', 'example' => 'Custom', 'title' => ''], + 'Status' => ['description' => 'The status of the route. Valid values:'."\n" + ."\n" + .'- **Pending**: being configured.'."\n" + .'- **Available**: active.'."\n" + .'- **Modifying**: being modified.', 'type' => 'string', 'example' => 'Available', 'title' => ''], + 'NextHopType' => ['description' => 'The next hop type. Valid values:'."\n" + ."\n" + .'- **Instance** (default): ECS instance.'."\n" + .'- **HaVip**: high-availability virtual IP address.'."\n" + .'- **VpnGateway**: VPN gateway.'."\n" + .'- **NatGateway**: NAT gateway.'."\n" + .'- **NetworkInterface**: secondary elastic network interface controller (NIC).'."\n" + .'- **RouterInterface**: vRouter interface.'."\n" + .'- **IPv6Gateway**: IPv6 gateway.'."\n" + .'- **Attachment**: transit router.'."\n" + .'- **Ipv4Gateway**: IPv4 gateway.'."\n" + .'- **GatewayEndpoint**: gateway endpoint.'."\n" + .'- **CenBasic**: CEN that does not support transit routers.'."\n" + .'- **Ecr**: Express Connect Router (ECR).', 'type' => 'string', 'example' => 'Instance', 'title' => ''], + 'RouteEntryName' => ['description' => 'The name of the route.'."\n" + ."\n" + .'The name must be 2 to 128 characters in length and must start with a letter or a Chinese character. It can contain digits, periods (.), underscores (_), and hyphens (-).', 'type' => 'string', 'example' => 'name', 'title' => ''], + 'RouteEntryId' => ['description' => 'The ID of the route.', 'type' => 'string', 'example' => 'rte-bp1mnnr2al0naomnp****', 'title' => ''], + 'InstanceId' => ['description' => 'The instance ID of the instance associated with the next hop.', 'type' => 'string', 'example' => 'vpc-bp1t36rn9l53iwbsf****', 'title' => ''], + 'RouteTableId' => ['description' => 'The ID of the route table.', 'type' => 'string', 'example' => 'vtb-bp15w5q90d2rk3bww****', 'title' => ''], + 'Description' => ['description' => 'The description of the route.'."\n" + .'The description must be 2 to 256 characters in length and must start with a letter or a Chinese character. It cannot start with `http://` or `https://`.', 'type' => 'string', 'example' => 'RouteEntryDescription', 'title' => ''], + 'DestinationCidrBlock' => ['description' => 'The destination CIDR block of the route. Both IPv4 and IPv6 destination CIDR blocks are supported. The following requirements must be met:'."\n" + ."\n" + .'- The destination CIDR block cannot point to or be contained within 100.64.0.0/10.'."\n" + .'- The destination CIDR blocks of different routes in the same route table must be unique.', 'type' => 'string', 'example' => '192.168.2.0/24', 'title' => ''], + 'NextHops' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'NextHop' => [ + 'description' => 'The next hop information.', + 'type' => 'array', + 'items' => [ + 'description' => 'The next hop information.', + 'type' => 'object', + 'properties' => [ + 'NextHopId' => ['description' => 'The instance ID of the next hop.', 'type' => 'string', 'example' => 'vpn-bp10zyaph5cc8b7c7****', 'title' => ''], + 'Weight' => ['description' => 'The weight of the route.', 'type' => 'integer', 'format' => 'int32', 'example' => '100', 'title' => ''], + 'NextHopType' => ['description' => 'The next hop type. Valid values:'."\n" + ."\n" + .'- **Instance**: ECS instance.'."\n" + .'- **HaVip**: high-availability virtual IP address.'."\n" + .'- **VpnGateway**: VPN gateway.'."\n" + .'- **NatGateway**: NAT gateway.'."\n" + .'- **NetworkInterface**: secondary elastic network interface controller (NIC).'."\n" + .'- **RouterInterface**: vRouter interface.'."\n" + .'- **IPv6Gateway**: IPv6 gateway.'."\n" + .'- **Attachment**: transit router.'."\n" + .'- **Ipv4Gateway**: IPv4 gateway.'."\n" + .'- **GatewayEndpoint**: gateway endpoint.'."\n" + .'- **CenBasic**: CEN that does not support transit routers.'."\n" + .'- **Ecr**: Express Connect Router (ECR).', 'type' => 'string', 'example' => 'Instance', 'title' => ''], + 'Enabled' => ['description' => 'Indicates whether the route is available. Valid values:'."\n" + ."\n" + .'- **0**: unavailable.'."\n" + .'- **1**: available.', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + ], + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'VSwitchIds' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'VSwitchId' => [ + 'description' => 'The vSwitch ID.', + 'type' => 'array', + 'items' => ['description' => 'The vSwitch ID.', 'type' => 'string', 'example' => 'vsw-bp12mw1f8k3jgygk9****', 'title' => ''], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + ], + 'title' => '', + 'example' => '', ], + 'title' => '', + 'example' => '', ], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'MissingParam.PhysicalConnectionId', - 'errorMessage' => 'The PhysicalConnectionId is missing.', - ], - [ - 'errorCode' => 'MissingParam.RegionNo', - 'errorMessage' => 'The RegionId is missing.', - ], - [ - 'errorCode' => 'InvalidPhysicalConnectionId.NotFound', - 'errorMessage' => 'The PhysicalConnectionId provided does not exist in our records.', - ], + ['errorCode' => 'InvalidVRouterId.NotFound', 'errorMessage' => 'Specified virtual router does not exist.', 'description' => ''], + ['errorCode' => 'OperationFailed.DescribeCenRoute', 'errorMessage' => 'An error occurred while querying the CEN route entry.', 'description' => 'CEN routes are abnormal.'], + ['errorCode' => 'OperationFailed.VRouterNotExist', 'errorMessage' => 'Operation failed because the VRouter does not exist.', 'description' => 'Operation failed because the VRouter does not exist.'], + ['errorCode' => 'IllegalParam.Type', 'errorMessage' => 'The parameter of Type is illegal.', 'description' => 'Illegal parameter Type.'], + ['errorCode' => 'OperationFailed.InvalidRouterType', 'errorMessage' => 'The operation is failed because of %s.', 'description' => 'Invalid router type.'], ], ], 'staticInfo' => [ + 'substitutions' => ['Vpc::2016-04-28::DescribeRouteTableList'], 'returnType' => 'synchronous', ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"A599D38F-3618-18FD-9427-108FB9B5BD26\\",\\n \\"PhysicalConnectionFeatures\\": [\\n {\\n \\"FeatureValue\\": \\"OK\\",\\n \\"FeatureKey\\": \\"SubifRateLimit\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\n A599D38F-3618-18FD-9427-108FB9B5BD26\\n \\n OK\\n SubifRateLimit\\n \\n","errorExample":""}]', - 'title' => 'ListPhysicalConnectionFeatures', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'CompletePhysicalConnectionLOA' => [ - 'summary' => 'Generates a report for an installed Express Connect circuit.', - 'methods' => [ - 'post', - 'get', + 'title' => 'Query route tables', + 'changeSet' => [ + ['createdAt' => '2024-12-31T01:51:55.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-09-25T07:38:52.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-09-06T05:55:03.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-08-09T12:09:24.000Z', 'description' => 'Error codes changed'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '500', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DescribeRouteTables'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'vpc:DescribeRouteTables', + 'authLevel' => 'resource', + 'actionConditions' => [ + ['conditionKey' => 'vpc:VBR'], + ['conditionKey' => 'vpc:VRouter'], + ], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'RouteTable', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:routetable/{#RouteTableId}'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"PageSize\\": 10,\\n \\"RequestId\\": \\"DC668356-BCB4-42FD-9BC3-FA2B2E04B634\\",\\n \\"PageNumber\\": 1,\\n \\"TotalCount\\": 1,\\n \\"RouteTables\\": {\\n \\"RouteTable\\": [\\n {\\n \\"CreationTime\\": \\"2022-08-22T10:40:25Z\\",\\n \\"Status\\": \\"Available\\",\\n \\"VRouterId\\": \\"vrt-bp1lhl0taikrteen****\\",\\n \\"RouteTableType\\": \\"Custom\\",\\n \\"ResourceGroupId\\": \\"rg-acfmxazb4ph****\\",\\n \\"RouteTableId\\": \\"vtb-bp145q7glnuzdvzu2****\\",\\n \\"RouteEntrys\\": {\\n \\"RouteEntry\\": [\\n {\\n \\"Type\\": \\"Custom\\",\\n \\"Status\\": \\"Available\\",\\n \\"NextHopType\\": \\"Instance\\",\\n \\"RouteEntryName\\": \\"name\\",\\n \\"RouteEntryId\\": \\"rte-bp1mnnr2al0naomnp****\\",\\n \\"InstanceId\\": \\"vpc-bp1t36rn9l53iwbsf****\\",\\n \\"RouteTableId\\": \\"vtb-bp15w5q90d2rk3bww****\\",\\n \\"Description\\": \\"RouteEntryDescription\\",\\n \\"DestinationCidrBlock\\": \\"192.168.2.0/24\\",\\n \\"NextHops\\": {\\n \\"NextHop\\": [\\n {\\n \\"NextHopId\\": \\"vpn-bp10zyaph5cc8b7c7****\\",\\n \\"Weight\\": 100,\\n \\"NextHopType\\": \\"Instance\\",\\n \\"Enabled\\": 1\\n }\\n ]\\n }\\n }\\n ]\\n },\\n \\"VSwitchIds\\": {\\n \\"VSwitchId\\": [\\n \\"vsw-bp12mw1f8k3jgygk9****\\"\\n ]\\n }\\n }\\n ]\\n }\\n}","type":"json"}]', + ], + 'DescribeRouterInterfaceAttribute' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'read', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'update', - ], + 'systemTags' => ['operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ - 'name' => 'ClientToken', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'You can use the client to generate the value, but you must ensure that it is unique among different requests.'."\n" - ."\n" - .'> If you do not set this parameter, the system automatically uses **RequestId** as **ClientToken**. **RequestId** of each API request may be different.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '02fb3da4-230e-11e9-8e44-0016e04115b', - ], + 'schema' => ['description' => 'The ID of the region to which the router interface belongs.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'example' => 'cn-qingdao', 'title' => ''], ], [ - 'name' => 'ClientToken', + 'name' => 'InstanceId', 'in' => 'query', + 'schema' => ['description' => 'The ID of the router interface.'."\n", 'type' => 'string', 'required' => true, 'example' => 'ri-m5egfc10sednwk2yt****', 'title' => ''], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'You can use the client to generate the value, but you must ensure that it is unique among different requests.'."\n" - ."\n" - .'> If you do not set this parameter, the system automatically uses **RequestId** as **ClientToken**. **RequestId** of each API request may be different.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '02fb3da4-230e-11e9-8e44-0016e04115b', + 'description' => 'The returned data.'."\n", + 'type' => 'object', + 'properties' => [ + 'ReservationActiveTime' => ['description' => 'The time when the renewal takes effect.'."\n", 'type' => 'string', 'example' => '2022-06-11T16:00:00Z', 'title' => ''], + 'HealthCheckTargetIp' => ['description' => 'The destination IP address that is used for the health check.'."\n", 'type' => 'string', 'example' => '2.2.XX.XX', 'title' => ''], + 'Status' => ['description' => 'The status of the router interface. Valid values:'."\n" + ."\n" + .'* **Idle**'."\n" + .'* **AcceptingConnecting**'."\n" + .'* **Connecting**'."\n" + .'* **Activating**'."\n" + .'* **Active**'."\n" + .'* **Modifying**'."\n" + .'* **Deactivating**'."\n" + .'* **Inactive**'."\n" + .'* **Deleting**'."\n", 'type' => 'string', 'example' => 'Active', 'title' => ''], + 'CreationTime' => ['description' => 'The time when the router interface was created.'."\n", 'type' => 'string', 'example' => '2022-04-14T08:57:24Z', 'title' => ''], + 'ReservationOrderType' => ['description' => 'The type of the renewal order. Only **RENEW** may be returned, which indicates that the order is placed for service renewal.'."\n", 'type' => 'string', 'example' => 'RENEW', 'title' => ''], + 'OppositeInterfaceId' => ['description' => 'The ID of the peer router interface.'."\n", 'type' => 'string', 'example' => 'ri-bp1xkrzttximaoxbl****', 'title' => ''], + 'Spec' => ['description' => 'The specification of the router interface. Valid values:'."\n" + ."\n" + .'* **Mini.2**: 2 Mbit/s'."\n" + .'* **Mini.5**: 5 Mbit/s'."\n" + .'* **Small.1**: 10 Mbit/s'."\n" + .'* **Small.2**: 20 Mbit/s'."\n" + .'* **Small.5**: 50 Mbit/s'."\n" + .'* **Middle.1**: 100 Mbit/s'."\n" + .'* **Middle.2**: 200 Mbit/s'."\n" + .'* **Middle.5**: 500 Mbit/s'."\n" + .'* **Large.1**: 1,000 Mbit/s'."\n" + .'* **Large.2**: 2,000 Mbit/s'."\n" + .'* **Large.5**: 5,000 Mbit/s'."\n" + .'* **Xlarge.1**: 10,000 Mbit/s'."\n", 'type' => 'string', 'example' => 'Mini.2', 'title' => ''], + 'ChargeType' => ['description' => 'The billing method. Valid values:'."\n" + ."\n" + .'* **AfterPay**: pay-as-you-go'."\n" + .'* **PrePaid**: subscription'."\n", 'type' => 'string', 'example' => 'AfterPay', 'title' => ''], + 'RouterInterfaceId' => ['description' => 'The ID of the router interface.'."\n", 'type' => 'string', 'example' => 'ri-m5egfc10sednwk2yt****', 'title' => ''], + 'Message' => ['description' => 'The response parameters.'."\n", 'type' => 'string', 'example' => 'successful', 'title' => ''], + 'HcThreshold' => ['description' => 'The healthy threshold. This value indicates the number of probe packets that are sent during a health check. Unit: packets.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '8', 'title' => ''], + 'OppositeRouterType' => ['description' => 'The type of the router to which the peer router interface belongs. Valid values:'."\n" + ."\n" + .'* **VRouter**'."\n" + .'* **VBR**'."\n", 'type' => 'string', 'example' => 'VRouter', 'title' => ''], + 'GmtModified' => ['description' => 'The time when the router interface was modified.'."\n", 'type' => 'string', 'example' => '2022-04-28T10:02:12Z', 'title' => ''], + 'VpcInstanceId' => ['description' => 'The ID of the virtual private cloud (VPC) to which the router interface belongs.'."\n", 'type' => 'string', 'example' => 'vpc-bp1b49rqrybk45nio****', 'title' => ''], + 'OppositeInterfaceOwnerId' => ['description' => 'The ID of the Alibaba Cloud account to which the peer router interface belongs.'."\n", 'type' => 'string', 'example' => '1321932713****', 'title' => ''], + 'OppositeVpcInstanceId' => ['description' => 'The ID of the peer VPC.'."\n", 'type' => 'string', 'example' => 'vpc-bp1b49rqrybk45nio****', 'title' => ''], + 'ReservationInternetChargeType' => ['description' => 'The metering method that is used after the renewal takes effect. Valid values: If **PayByBandwidth** is returned, it indicates that the Express Connect circuit is billed on a pay-by-bandwidth basis.'."\n", 'type' => 'string', 'example' => 'PayByBandwidth', 'title' => ''], + 'CrossBorder' => ['description' => 'Indicates whether the connection is a cross-border connection. Valid values:'."\n" + ."\n" + .'* **false**'."\n" + .'* **true**'."\n", 'type' => 'boolean', 'example' => 'false', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '01818199-04F6-47F4-9ADF-7CC824CF57A4', 'title' => ''], + 'Bandwidth' => ['description' => 'The bandwidth of the router interface. Unit: Mbit/s.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '2', 'title' => ''], + 'Description' => ['description' => 'The description of the router interface.'."\n", 'type' => 'string', 'example' => '对端接口', 'title' => ''], + 'HcRate' => ['description' => 'The rate of health checks. Unit: seconds. The value indicates the interval at which probe packets are sent during a health check.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '2', 'title' => ''], + 'ReservationBandwidth' => ['description' => 'The maximum bandwidth after the renewal takes effect. Unit: Mbit/s.'."\n", 'type' => 'string', 'example' => '100', 'title' => ''], + 'Code' => ['description' => 'The HTTP status code.'."\n", 'type' => 'string', 'example' => '200', 'title' => ''], + 'Name' => ['description' => 'The name of the router interface.'."\n", 'type' => 'string', 'example' => '路由器接口1', 'title' => ''], + 'OppositeRouterId' => ['description' => 'The ID of the router to which the peer router interface belongs.'."\n", 'type' => 'string', 'example' => 'vrt-bp11xvy6lb9photuu****', 'title' => ''], + 'OppositeInterfaceSpec' => ['description' => 'The specification of the peer router interface. Valid values:'."\n" + ."\n" + .'* **Mini.2**: 2 Mbit/s'."\n" + .'* **Mini.5**: 5 Mbit/s'."\n" + .'* **Small.1**: 10 Mbit/s'."\n" + .'* **Small.2**: 20 Mbit/s'."\n" + .'* **Small.5**: 50 Mbit/s'."\n" + .'* **Middle.1**: 100 Mbit/s'."\n" + .'* **Middle.2**: 200 Mbit/s'."\n" + .'* **Middle.5**: 500 Mbit/s'."\n" + .'* **Large.1**: 1,000 Mbit/s'."\n" + .'* **Large.2**: 2,000 Mbit/s'."\n" + .'* **Large.5**: 5,000 Mbit/s'."\n" + .'* **Xlarge.1**: 10,000 Mbit/s'."\n" + .'* **Negative**: not applicable'."\n", 'type' => 'string', 'example' => 'Negative', 'title' => ''], + 'RouterId' => ['description' => 'The ID of the router to which the router interface belongs.'."\n", 'type' => 'string', 'example' => 'vbr-m5ex0xf63xk8s5bob****', 'title' => ''], + 'Success' => ['description' => 'Indicates whether the request is successful. Valid values: true and false.'."\n", 'type' => 'boolean', 'example' => 'true', 'title' => ''], + 'OppositeInterfaceBusinessStatus' => ['description' => 'The service status of the peer router interface. Valid values:'."\n" + ."\n" + .'* **Normal**'."\n" + .'* **FinancialLocked**'."\n" + .'* **SecurityLocked**'."\n", 'type' => 'string', 'example' => 'Normal', 'title' => ''], + 'ConnectedTime' => ['description' => 'The time when the connection was established.'."\n", 'type' => 'string', 'example' => '2022-04-14T08:58:04Z', 'title' => ''], + 'HealthCheckSourceIp' => ['description' => 'The source IP address that is used for the health check.'."\n", 'type' => 'string', 'example' => '1.1.XX.XX', 'title' => ''], + 'OppositeInterfaceStatus' => ['description' => 'The status of the peer router interface. Valid values:'."\n" + ."\n" + .'* **Idle**'."\n" + .'* **AcceptingConnecting**'."\n" + .'* **Connecting**'."\n" + .'* **Activating**'."\n" + .'* **Active**'."\n" + .'* **Modifying**'."\n" + .'* **Deactivating**'."\n" + .'* **Inactive**'."\n" + .'* **Deleting**'."\n" + .'* **Deleted**'."\n", 'type' => 'string', 'example' => 'Active', 'title' => ''], + 'EndTime' => ['description' => 'The end of the time range during which data was queried.'."\n", 'type' => 'string', 'example' => '2999-09-08T16:00:00Z', 'title' => ''], + 'OppositeRegionId' => ['description' => 'The region ID of the peer router interface.'."\n", 'type' => 'string', 'example' => 'cn-hangzhou', 'title' => ''], + 'OppositeAccessPointId' => ['description' => 'The ID of the peer access point.'."\n", 'type' => 'string', 'example' => 'ap-cn-qingdao-ls-B', 'title' => ''], + 'BusinessStatus' => ['description' => 'The status of the router interface. Valid values:'."\n" + ."\n" + .'* **Normal**'."\n" + .'* **FinancialLocked**'."\n" + .'* **SecurityLocked**'."\n", 'type' => 'string', 'example' => 'Normal', 'title' => ''], + 'HealthCheckStatus' => ['description' => 'The status of the health check. Valid values:'."\n" + ."\n" + .'* **Abnormal**'."\n" + .'* **Normal**'."\n" + .'* **NoRedundantRoute**'."\n" + .'* **NoHealthCheckConfig**'."\n", 'type' => 'string', 'example' => 'normal', 'title' => ''], + 'OppositeBandwidth' => ['description' => 'The maximum bandwidth of the peer router interface. Unit: Mbit/s.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '0', 'title' => ''], + 'RouterType' => ['description' => 'The type of the router to which the route table belongs. Valid values:'."\n" + ."\n" + .'* **VRouter**'."\n" + .'* **VBR**'."\n", 'type' => 'string', 'example' => 'VRouter', 'title' => ''], + 'Role' => ['description' => 'The role of the router interface in the peering connection.'."\n", 'type' => 'string', 'example' => 'InitiatingSide', 'title' => ''], + 'HasReservationData' => ['description' => 'Indicates whether renewal data is included. Valid values:'."\n" + ."\n" + .'* **false**'."\n" + .'* **true**'."\n", 'type' => 'string', 'example' => 'false', 'title' => ''], + 'AccessPointId' => ['description' => 'The ID of the access point.'."\n", 'type' => 'string', 'example' => 'ap-cn-qingdao-ls-A', 'title' => ''], + 'ResourceGroupId' => ['description' => 'The resource group ID.'."\n" + ."\n" + .'For more information about resource groups, see [What is a resource group?](~~94475~~)'."\n", 'type' => 'string', 'example' => 'rg-acfmxazb4ph6aiy****', 'title' => ''], + 'Tags' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Tags' => [ + 'description' => 'The tag of the resource.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => 'The key of tag N added to the resource. You must enter at least one tag key and at most 20 tag keys. The tag key cannot be an empty string.'."\n" + ."\n" + .'The tag key can be up to 64 characters in length and can contain digits, periods (.), underscores (\\_), and hyphens (-). It cannot start with `aliyun` or `acs:`, and cannot contain `http://` or `https://`.'."\n", 'type' => 'string', 'example' => 'FinanceDept', 'title' => ''], + 'Value' => ['description' => 'The value of tag N added to the resource. You can specify at most 20 tag values. The tag value can be an empty string.'."\n" + ."\n" + .'It can be up to 128 characters in length and can contain digits, periods (.), underscores (\\_), and hyphens (-). It cannot start with `aliyun` or `acs:`, and cannot contain `http://` or `https://`.'."\n", 'type' => 'string', 'example' => 'FinanceJoshua', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'FastLinkMode' => ['description' => 'Indicates whether the VBR that is created in the Fast Link mode is uplinked to the router interface. The Fast Link mode helps automatically connect router interfaces that are created for the VBR and its peer VPC. Valid values:'."\n" + ."\n" + .'* **true**'."\n" + .'* **false** (default)'."\n" + ."\n" + .'> '."\n" + ."\n" + .'* This parameter takes effect only when **RouterType** is set to **VBR** and **OppositeRouterType** is set to **VRouter**.'."\n" + ."\n" + .'* When **FastLinkMode** is set to **true**, **Role** must be set to **InitiatingSide**. **AccessPointId**, **OppositeRouterType**, **OpppsiteRouterId**, and **OppositeInterfaceOwnerId** are required.'."\n", 'type' => 'string', 'example' => 'false', 'title' => ''], + ], + 'title' => '', + 'example' => '', ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InvalidParam.NotNull', 'errorMessage' => 'The parameter must not be null.', 'description' => ''], + ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'DescribeRouterInterfaceAttribute', + 'summary' => 'Queries the configuration of a router interface.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2023-07-24T11:57:53.000Z', 'description' => 'Error codes changed, Response parameters changed'], + ['createdAt' => '2023-07-20T11:21:57.000Z', 'description' => 'Response parameters changed'], + ], + 'ramActions' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"ReservationActiveTime\\": \\"2022-06-11T16:00:00Z\\",\\n \\"HealthCheckTargetIp\\": \\"2.2.XX.XX\\",\\n \\"Status\\": \\"Active\\",\\n \\"CreationTime\\": \\"2022-04-14T08:57:24Z\\",\\n \\"ReservationOrderType\\": \\"RENEW\\",\\n \\"OppositeInterfaceId\\": \\"ri-bp1xkrzttximaoxbl****\\",\\n \\"Spec\\": \\"Mini.2\\",\\n \\"ChargeType\\": \\"AfterPay\\",\\n \\"RouterInterfaceId\\": \\"ri-m5egfc10sednwk2yt****\\",\\n \\"Message\\": \\"successful\\",\\n \\"HcThreshold\\": 8,\\n \\"OppositeRouterType\\": \\"VRouter\\",\\n \\"GmtModified\\": \\"2022-04-28T10:02:12Z\\",\\n \\"VpcInstanceId\\": \\"vpc-bp1b49rqrybk45nio****\\",\\n \\"OppositeInterfaceOwnerId\\": \\"1321932713****\\",\\n \\"OppositeVpcInstanceId\\": \\"vpc-bp1b49rqrybk45nio****\\",\\n \\"ReservationInternetChargeType\\": \\"PayByBandwidth\\",\\n \\"CrossBorder\\": false,\\n \\"RequestId\\": \\"01818199-04F6-47F4-9ADF-7CC824CF57A4\\",\\n \\"Bandwidth\\": 2,\\n \\"Description\\": \\"对端接口\\",\\n \\"HcRate\\": 2,\\n \\"ReservationBandwidth\\": \\"100\\",\\n \\"Code\\": \\"200\\",\\n \\"Name\\": \\"路由器接口1\\",\\n \\"OppositeRouterId\\": \\"vrt-bp11xvy6lb9photuu****\\",\\n \\"OppositeInterfaceSpec\\": \\"Negative\\",\\n \\"RouterId\\": \\"vbr-m5ex0xf63xk8s5bob****\\",\\n \\"Success\\": true,\\n \\"OppositeInterfaceBusinessStatus\\": \\"Normal\\",\\n \\"ConnectedTime\\": \\"2022-04-14T08:58:04Z\\",\\n \\"HealthCheckSourceIp\\": \\"1.1.XX.XX\\",\\n \\"OppositeInterfaceStatus\\": \\"Active\\",\\n \\"EndTime\\": \\"2999-09-08T16:00:00Z\\",\\n \\"OppositeRegionId\\": \\"cn-hangzhou\\",\\n \\"OppositeAccessPointId\\": \\"ap-cn-qingdao-ls-B\\",\\n \\"BusinessStatus\\": \\"Normal\\",\\n \\"HealthCheckStatus\\": \\"normal\\",\\n \\"OppositeBandwidth\\": 0,\\n \\"RouterType\\": \\"VRouter\\",\\n \\"Role\\": \\"InitiatingSide\\",\\n \\"HasReservationData\\": \\"false\\",\\n \\"AccessPointId\\": \\"ap-cn-qingdao-ls-A\\",\\n \\"ResourceGroupId\\": \\"rg-acfmxazb4ph6aiy****\\",\\n \\"Tags\\": {\\n \\"Tags\\": [\\n {\\n \\"Key\\": \\"FinanceDept\\",\\n \\"Value\\": \\"FinanceJoshua\\"\\n }\\n ]\\n },\\n \\"FastLinkMode\\": \\"false\\"\\n}","errorExample":""},{"type":"xml","example":"","errorExample":""}]', + ], + 'DescribeRouterInterfaces' => [ + 'summary' => 'Queries router interfaces in a specified region.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'list', 'riskType' => 'none', 'chargeType' => 'free'], + 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the Express Connect circuit.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-shanghai', - ], + 'schema' => ['description' => 'The region ID of the router interface.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'example' => ' cn-hangzhou', 'title' => ''], ], [ - 'name' => 'InstanceId', + 'name' => 'IncludeReservationData', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the Express Connect circuit.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'pc-bp10tvlhnwkw****', - ], + 'schema' => ['description' => 'Specifies whether renewal data is included. Valid values:'."\n" + ."\n" + .'* **true**'."\n" + .'* **false** (default)'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], ], [ - 'name' => 'LineCode', + 'name' => 'PageNumber', 'in' => 'query', - 'schema' => [ - 'description' => 'The circuit code provided by the connectivity provider.'."\n", - 'type' => 'string', - 'required' => false, - 'docRequired' => false, - 'example' => 'aaa111****', - ], + 'schema' => ['description' => 'The page number. Default value: **1**.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'minimum' => '1', 'example' => '1', 'default' => '1', 'title' => ''], ], [ - 'name' => 'LineLabel', + 'name' => 'PageSize', 'in' => 'query', - 'schema' => [ - 'description' => 'The label of the cable in the data center.'."\n", - 'type' => 'string', - 'required' => false, - 'docRequired' => false, - 'example' => 'bbb222****', - ], + 'schema' => ['description' => 'The number of entries per page. Maximum value: **50**. Default value: **10**.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '50', 'minimum' => '1', 'example' => '10', 'default' => '10', 'title' => ''], ], [ - 'name' => 'LineServiceProvider', + 'name' => 'Filter', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => 'The ISP. Valid values:'."\n" - ."\n" - .'* **China Telecom**'."\n" - .'* **China Unicom**'."\n" - .'* **China Mobile**'."\n" - .'* **Other ISPs in China**'."\n", - 'type' => 'string', + 'description' => 'The filter information.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => 'The filter conditions. You can specify up to five filter conditions. The following filter conditions are supported:'."\n" + ."\n" + .'* **RouterInterfaceId**: the ID of the router interface.'."\n" + .'* **RouterId**: the ID of the router.'."\n" + .'* **RouterType**: the router type. Valid values: **VRouter** and **VBR**.'."\n" + .'* **RouterInterfaceOwnerId**: the ID of the Alibaba Cloud account to which the router interface belongs.'."\n" + .'* **OppositeInterfaceId**: the ID of the peer router interface.'."\n" + .'* **OppositeRouterType**: the type of the peer router interface. Valid values: **VRouter** and **VBR**.'."\n" + .'* **OppositeRouterId**: the ID of the peer router.'."\n" + .'* **OppositeInterfaceOwnerId**: the ID of the Alibaba Cloud account to which the peer router interface belongs.'."\n" + .'* **Status**: the status of the router interface.'."\n" + .'* **Name**: the name of the router interface.'."\n" + ."\n" + .'> The logical operator among multiple values in a filter condition is OR. In this case, the filter condition is met if one of the values is matched. The logical operator among filter conditions is AND. Only routers that meet all the filter conditions are queried.'."\n", 'type' => 'string', 'required' => false, 'example' => 'Filter.1.Status', 'title' => ''], + 'Value' => [ + 'description' => 'Specifies the value in the filter condition based on the key. You can specify multiple filter values for one key. The logical operator among filter values is OR. If one filter value is matched, the filter condition is matched.'."\n", + 'type' => 'array', + 'items' => ['description' => 'Specifies the value in the filter condition based on the key. You can specify multiple filter values for one key. The logical operator among filter values is OR. If one filter value is matched, the filter condition is matched.'."\n", 'type' => 'string', 'required' => false, 'example' => 'test', 'title' => ''], + 'required' => false, + 'example' => 'Filter.1.Active 1', + 'maxItems' => 5, + 'title' => '', + ], + ], + 'required' => false, + 'title' => '', + 'example' => '', + ], 'required' => false, - 'example' => 'Other ISPs in China'."\n", + 'maxItems' => 5, + 'title' => '', + 'example' => '', ], ], [ - 'name' => 'LineSPContactInfo', + 'name' => 'ResourceGroupId', 'in' => 'query', - 'schema' => [ - 'description' => 'The contact information about line O\\&M.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '1388888****', - ], + 'schema' => ['description' => 'Resource Group ID.'."\n" + ."\n" + .'For more information about resource groups, please refer to [What is a Resource Group?](~~94475~~)', 'type' => 'string', 'required' => false, 'example' => 'rg-acfmxazb4ph6aiy****', 'title' => ''], ], [ - 'name' => 'FinishWork', + 'name' => 'Tags', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => 'Specifies whether the construction is completed. Valid values:'."\n" - ."\n" - .'* **true**'."\n" - .'* **false**'."\n", - 'type' => 'boolean', + 'description' => 'The tags of the resource.', + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => 'The key of the resource tag. At least one tag key must be entered, and a maximum of 20 tag keys are supported. If this value needs to be passed in, it cannot be an empty string.'."\n" + ."\n" + .'A tag key can support up to 128 characters, cannot start with \'aliyun\' or \'acs:\', and cannot contain \'http://\' or \'https://\'.', 'type' => 'string', 'required' => false, 'example' => 'FinanceDept', 'title' => ''], + 'Value' => ['description' => 'The value of the resource tag. A maximum of 20 tag values can be entered. If this value needs to be passed in, an empty string can be entered.'."\n" + ."\n" + .'A maximum of 128 characters are supported, it cannot start with \'aliyun\' or \'acs:\', and it cannot contain \'http://\' or \'https://\'.', 'type' => 'string', 'required' => false, 'example' => 'FinanceJoshua', 'title' => ''], + ], + 'required' => false, + 'title' => '', + 'example' => '', + ], 'required' => false, - 'example' => 'true', - 'default' => 'true', + 'maxItems' => 20, + 'title' => '', + 'example' => '', ], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'description' => '', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => 'F8983C74-E068-4509-B442-89BD82C8F43B', + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => 'C7F6FCBD-F9CC-4501-8EF3-CDC9577CAE45', 'title' => ''], + 'PageNumber' => ['description' => 'The page number. Default value: **1**.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''], + 'PageSize' => ['description' => 'The number of entries per page. Maximum value: **50**. Default value: **10**.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '10', 'title' => ''], + 'TotalCount' => ['description' => 'The number of entries returned.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''], + 'RouterInterfaceSet' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'RouterInterfaceType' => [ + 'description' => 'The details of the router interface.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'ReservationActiveTime' => ['description' => 'The time when the renewal takes effect.'."\n" + ."\n" + .'The time follows the ISO8601 standard in the `YYYY-MM-DDThh:mmZ` format. The time is displayed in UTC.'."\n", 'type' => 'string', 'example' => '2021-03-11T16:00:00Z', 'title' => ''], + 'HealthCheckTargetIp' => ['description' => 'The destination IP address that is used for the health check.'."\n", 'type' => 'string', 'example' => '116.62.XX.XX', 'title' => ''], + 'Status' => ['description' => 'The status of the router interface.'."\n", 'type' => 'string', 'example' => 'active', 'title' => ''], + 'CreationTime' => ['description' => 'The time when the route table was created.'."\n" + ."\n" + .'The time follows the ISO8601 standard in the `YYYY-MM-DDThh:mmZ` format. The time is displayed in UTC.'."\n", 'type' => 'string', 'example' => '2021-06-08T12:20:55', 'title' => ''], + 'ReservationOrderType' => ['description' => 'The type of the renewal order. Valid values:'."\n", 'type' => 'string', 'example' => 'RENEWCHANGE', 'title' => ''], + 'OppositeInterfaceId' => ['description' => 'The ID of the peer router interface.'."\n", 'type' => 'string', 'example' => 'ri-bp1itx13bwe6f2wfh****', 'title' => ''], + 'Spec' => ['description' => 'The specification of the router interface.'."\n", 'type' => 'string', 'example' => 'Large', 'title' => ''], + 'ChargeType' => ['description' => 'The billing method.'."\n", 'type' => 'string', 'example' => 'PayByTraffic', 'title' => ''], + 'RouterInterfaceId' => ['description' => 'The ID of the router interface.'."\n", 'type' => 'string', 'example' => 'ri-2zenfgfpyu3v93koa****', 'title' => ''], + 'HcThreshold' => ['description' => 'The health check threshold.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '2', 'title' => ''], + 'OppositeRouterType' => ['description' => 'The type of the router to which the peer router interface belongs.'."\n", 'type' => 'string', 'example' => 'VRouter', 'title' => ''], + 'VpcInstanceId' => ['description' => 'The ID of the local virtual private cloud (VPC) in the peering connection.'."\n", 'type' => 'string', 'example' => 'vpc-2ze3tq4uxhysg717x****', 'title' => ''], + 'OppositeInterfaceOwnerId' => ['description' => 'The ID of the Alibaba Cloud account to which the peer router interface belongs.'."\n", 'type' => 'string', 'example' => '271598332402530847', 'title' => ''], + 'OppositeVpcInstanceId' => ['description' => 'The ID of the peer VPC.'."\n", 'type' => 'string', 'example' => 'vpc-bp1qpo0kug3a20qqe****', 'title' => ''], + 'ReservationInternetChargeType' => ['description' => 'The metering method that is used after the renewal takes effect. Valid values:'."\n", 'type' => 'string', 'example' => 'PayByBandwidth', 'title' => ''], + 'CrossBorder' => ['description' => 'Indicates whether the connection is a cross-border connection.'."\n", 'type' => 'boolean', 'example' => 'false', 'title' => ''], + 'Bandwidth' => ['description' => 'The bandwidth of the router interface. Unit: Mbit/s.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '10', 'title' => ''], + 'Description' => ['description' => 'The description of the router interface.'."\n", 'type' => 'string', 'example' => '路由表接口描述', 'title' => ''], + 'HcRate' => ['description' => 'The rate of heath checks.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''], + 'ReservationBandwidth' => ['description' => 'The maximum bandwidth after the renewal takes effect. Unit: Mbit/s.'."\n", 'type' => 'string', 'example' => '10', 'title' => ''], + 'Name' => ['description' => 'The custom name.'."\n", 'type' => 'string', 'example' => 'test', 'title' => ''], + 'OppositeRouterId' => ['description' => 'The ID of the router to which the peer router interface belongs.'."\n", 'type' => 'string', 'example' => 'vrt-bp1d3bxtdv68tfd7g****', 'title' => ''], + 'OppositeInterfaceSpec' => ['description' => 'The specification of the peer router interface.'."\n", 'type' => 'string', 'example' => 'Large', 'title' => ''], + 'RouterId' => ['description' => 'The ID of the router to which the route entry belongs.'."\n", 'type' => 'string', 'example' => 'vrt-bp1d3bxtdv68tfd7g****', 'title' => ''], + 'OppositeInterfaceBusinessStatus' => ['description' => 'The service status of the peer router interface.'."\n", 'type' => 'string', 'example' => 'Normal', 'title' => ''], + 'ConnectedTime' => ['description' => 'The time when the connection was established.'."\n" + ."\n" + .'The time follows the ISO8601 standard in the `YYYY-MM-DDThh:mmZ` format. The time is displayed in UTC.'."\n", 'type' => 'string', 'example' => '2021-06-08T12:20:55', 'title' => ''], + 'HealthCheckSourceIp' => ['description' => 'The source IP address that is used for the health check.'."\n", 'type' => 'string', 'example' => '116.62.XX.XX', 'title' => ''], + 'OppositeInterfaceStatus' => ['description' => 'The status of the peer router interface.'."\n", 'type' => 'string', 'example' => 'Normal', 'title' => ''], + 'EndTime' => ['description' => 'The end of the time range during which data was queried.'."\n" + ."\n" + .'The time follows the ISO8601 standard in the `YYYY-MM-DDThh:mmZ` format. The time is displayed in UTC.'."\n", 'type' => 'string', 'example' => '2021-06-08T12:20:55', 'title' => ''], + 'OppositeRegionId' => ['description' => 'The region ID of the peer router interface.'."\n", 'type' => 'string', 'example' => 'cn-shanghai', 'title' => ''], + 'OppositeAccessPointId' => ['description' => 'The ID of the peer access point.'."\n", 'type' => 'string', 'example' => 'ap-cn-shanghaiSZ-****', 'title' => ''], + 'BusinessStatus' => ['description' => 'The service status of the router interface. Valid values:'."\n" + ."\n" + .'* **Normal**'."\n" + .'* **FinancialLocked**'."\n" + .'* **SecurityLocked**'."\n", 'type' => 'string', 'example' => 'Normal', 'title' => ''], + 'OppositeBandwidth' => ['description' => 'The maximum bandwidth of the peer router interface. Unit: Mbit/s.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '12', 'title' => ''], + 'RouterType' => ['description' => 'The type of the router to which the route table belongs. Valid values:'."\n" + ."\n" + .'* **VRouter**'."\n" + .'* **VBR**'."\n", 'type' => 'string', 'example' => 'VRouter', 'title' => ''], + 'Role' => ['description' => 'Indicates whether the router interface is the initiator or acceptor of the peering connection.'."\n", 'type' => 'string', 'example' => 'InitiatingSide', 'title' => ''], + 'HasReservationData' => ['description' => 'Indicates whether renewal data is included.'."\n", 'type' => 'string', 'example' => 'false', 'title' => ''], + 'AccessPointId' => ['description' => 'The ID of the access point.'."\n", 'type' => 'string', 'example' => 'ap-cn-shanghaiSZ-****', 'title' => ''], + 'Ipv6Status' => ['description' => 'Indicates whether protection against malicious IPv6 traffic is enabled. Valid values:'."\n" + ."\n" + .'* **on**'."\n" + .'* **off**'."\n" + .'* **unsupport**'."\n", 'type' => 'string', 'example' => 'on', 'title' => ''], + 'FastLinkMode' => ['description' => 'Indicates whether the VBR that is created in the Fast Link mode is uplinked to the router interface. The Fast Link mode helps automatically connect router interfaces that are created for the VBR and its peer VPC. Valid values:'."\n" + ."\n" + .'* **true**'."\n" + .'* **false** (default)'."\n", 'type' => 'boolean', 'example' => 'false', 'title' => ''], + 'ResourceGroupId' => ['description' => 'Resource Group ID.'."\n" + ."\n" + .'For more information about resource groups, please refer to [What is a Resource Group?](~~94475~~)', 'type' => 'string', 'example' => 'rg-acfmxazb4ph6aiy****', 'title' => ''], + 'Tags' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Tags' => [ + 'description' => 'The tags of the resource.', + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => 'The key of the resource tag. At least one tag key must be entered, and a maximum of 20 tag keys are supported. If this value needs to be passed in, it cannot be an empty string.'."\n" + ."\n" + .'A tag key can support up to 128 characters, cannot start with \'aliyun\' or \'acs:\', and cannot contain \'http://\' or \'https://\'.', 'type' => 'string', 'example' => 'FinanceDept', 'title' => ''], + 'Value' => ['description' => 'The value of the resource tag. A maximum of 20 tag values can be entered. If this value needs to be passed in, an empty string can be entered.'."\n" + ."\n" + .'A maximum of 128 characters are supported, it cannot start with \'aliyun\' or \'acs:\', and it cannot contain \'http://\' or \'https://\'.', 'type' => 'string', 'example' => 'FinanceJoshua', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + ], + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'MissingParam.AliUid', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'MissingParam.InstanceId', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'MissingParam.RegionNo', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'InvalidInstanceId.NotFound', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'IncorrectStatus.PhysicalConnectionLOA', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'IllegalParam.LineCode', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'IllegalParam.LineLabel', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'OperationDenied.LOAStatusNotAllowComplete', - 'errorMessage' => 'The operation is not allowed because of LOAStatusNotAllowComplete.', - ], - [ - 'errorCode' => 'IllegalParam.LineSPContactInfo', - 'errorMessage' => 'LineSPContactInfo is illegal.', - ], + ['errorCode' => 'InvalidParam.NotNull', 'errorMessage' => 'The parameter must not be null.', 'description' => ''], + ['errorCode' => 'EndPoint.Empty', 'errorMessage' => 'the rc endpoint is empty.', 'description' => ''], + ['errorCode' => 'InvalidConnectionType.MalFormed', 'errorMessage' => 'Connection type must be vpc2vpc or vbr2vpc.', 'description' => ''], + ['errorCode' => 'InvalidProductForm.MalFormed', 'errorMessage' => 'Product form must be routerinterface or expressconnect.', 'description' => ''], + ['errorCode' => 'InvalidRole.Malformed', 'errorMessage' => 'role must be InitiatingSide or AcceptingSide.', 'description' => ''], + ['errorCode' => 'IllegalParam.AliUid', 'errorMessage' => 'Specified value of aliuid invalid.', 'description' => ''], + ['errorCode' => 'Parameter.Illegal', 'errorMessage' => 'The parameter is illegal.', 'description' => 'The parameter is invalid.'], + ], + 404 => [ + ['errorCode' => 'InvalidRegionId.NotFound', 'errorMessage' => 'The RegionId provided does not exist in our records.', 'description' => ''], + ['errorCode' => 'InvalidFilterKey.ValueNotSupported', 'errorMessage' => 'Specified filter key is not supported: Filter.X.key', 'description' => 'Filter.X.key is not supported.'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"F8983C74-E068-4509-B442-89BD82C8F43B\\"\\n}","errorExample":""},{"type":"xml","example":"\\n F8983C74-E068-4509-B442-89BD82C8F43B\\n","errorExample":""}]', - 'title' => 'CompletePhysicalConnectionLOA', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'DescribeRouterInterfaces', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2023-07-20T11:21:54.000Z', 'description' => 'Request parameters changed, Response parameters changed'], + ['createdAt' => '2022-09-14T08:06:40.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2022-09-14T08:06:40.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2021-09-29T03:46:28.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2021-09-29T03:46:28.000Z', 'description' => 'Response parameters changed'], + ], + 'ramActions' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"C7F6FCBD-F9CC-4501-8EF3-CDC9577CAE45\\",\\n \\"PageNumber\\": 1,\\n \\"PageSize\\": 10,\\n \\"TotalCount\\": 1,\\n \\"RouterInterfaceSet\\": {\\n \\"RouterInterfaceType\\": [\\n {\\n \\"ReservationActiveTime\\": \\"2021-03-11T16:00:00Z\\",\\n \\"HealthCheckTargetIp\\": \\"116.62.XX.XX\\",\\n \\"Status\\": \\"active\\",\\n \\"CreationTime\\": \\"2021-06-08T12:20:55\\",\\n \\"ReservationOrderType\\": \\"RENEWCHANGE\\",\\n \\"OppositeInterfaceId\\": \\"ri-bp1itx13bwe6f2wfh****\\",\\n \\"Spec\\": \\"Large\\",\\n \\"ChargeType\\": \\"PayByTraffic\\",\\n \\"RouterInterfaceId\\": \\"ri-2zenfgfpyu3v93koa****\\",\\n \\"HcThreshold\\": 2,\\n \\"OppositeRouterType\\": \\"VRouter\\",\\n \\"VpcInstanceId\\": \\"vpc-2ze3tq4uxhysg717x****\\",\\n \\"OppositeInterfaceOwnerId\\": \\"271598332402530847\\",\\n \\"OppositeVpcInstanceId\\": \\"vpc-bp1qpo0kug3a20qqe****\\",\\n \\"ReservationInternetChargeType\\": \\"PayByBandwidth\\",\\n \\"CrossBorder\\": false,\\n \\"Bandwidth\\": 10,\\n \\"Description\\": \\"路由表接口描述\\",\\n \\"HcRate\\": 1,\\n \\"ReservationBandwidth\\": \\"10\\",\\n \\"Name\\": \\"test\\",\\n \\"OppositeRouterId\\": \\"vrt-bp1d3bxtdv68tfd7g****\\",\\n \\"OppositeInterfaceSpec\\": \\"Large\\",\\n \\"RouterId\\": \\"vrt-bp1d3bxtdv68tfd7g****\\",\\n \\"OppositeInterfaceBusinessStatus\\": \\"Normal\\",\\n \\"ConnectedTime\\": \\"2021-06-08T12:20:55\\",\\n \\"HealthCheckSourceIp\\": \\"116.62.XX.XX\\",\\n \\"OppositeInterfaceStatus\\": \\"Normal\\",\\n \\"EndTime\\": \\"2021-06-08T12:20:55\\",\\n \\"OppositeRegionId\\": \\"cn-shanghai\\",\\n \\"OppositeAccessPointId\\": \\"ap-cn-shanghaiSZ-****\\",\\n \\"BusinessStatus\\": \\"Normal\\",\\n \\"OppositeBandwidth\\": 12,\\n \\"RouterType\\": \\"VRouter\\",\\n \\"Role\\": \\"InitiatingSide\\",\\n \\"HasReservationData\\": \\"false\\",\\n \\"AccessPointId\\": \\"ap-cn-shanghaiSZ-****\\",\\n \\"Ipv6Status\\": \\"on\\",\\n \\"FastLinkMode\\": false,\\n \\"ResourceGroupId\\": \\"rg-acfmxazb4ph6aiy****\\",\\n \\"Tags\\": {\\n \\"Tags\\": [\\n {\\n \\"Key\\": \\"FinanceDept\\",\\n \\"Value\\": \\"FinanceJoshua\\"\\n }\\n ]\\n }\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"","errorExample":""}]', ], - 'DescribePhysicalConnectionLOA' => [ - 'summary' => 'Queries the LOA information about an Express Connect circuit.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DescribeServerRelatedGlobalAccelerationInstances' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'get', - 'riskType' => 'none', - 'chargeType' => 'free', - ], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the Express Connect circuit.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The region ID of the GA instance.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'ClientToken', + 'name' => 'ServerId', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'You can use the client to generate the value, but you must make sure that it is unique among different requests. The token can contain only ASCII characters and cannot exceed 64 characters in length.'."\n" - ."\n" - .'> If you do not set this parameter, the system automatically uses **RequestId** as **ClientToken**. **RequestId** may be different for each API request.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-426655440000', - ], + 'schema' => ['description' => 'The ID of the backend service instance.'."\n", 'type' => 'string', 'required' => true, 'example' => 'i-12s3sdf****', 'title' => ''], ], [ - 'name' => 'InstanceId', + 'name' => 'ServerType', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the Express Connect circuit.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'pc-bp1ca4wca27ex****', - ], + 'schema' => ['description' => 'The type of the backend service instance. Valid values:'."\n" + ."\n" + .'* **EcsInstance** (default): Elastic Compute Service (ECS)'."\n" + .'* **SlbInstance**: Server Load Balancer (SLB)'."\n", 'type' => 'string', 'required' => false, 'example' => 'EcsInstance', 'title' => ''], ], ], 'responses' => [ @@ -42708,337 +32585,251 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => '318BB676-0A2B-43A0-9AD8-F1D34E93750F', - ], - 'PhysicalConnectionLOAType' => [ - 'description' => 'The LOA information about the Express Connect circuit.'."\n", + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => 'A8252014-D8DE-4D85-AF35-AFEXXXXXXX', 'title' => ''], + 'GlobalAccelerationInstances' => [ 'type' => 'object', + 'itemNode' => true, 'properties' => [ - 'Status' => [ - 'description' => 'The status of the LOA. Valid values:'."\n" - ."\n" - .'* **Applying**: The LOA is pending for approval.'."\n" - .'* **Accept**: The LOA is approved.'."\n" - .'* **Available**: The LOA is available.'."\n" - .'* **Rejected**: The LOA is rejected.'."\n" - .'* **Completing**: The Express Connect circuit is under construction.'."\n" - .'* **Complete**: The Express Connect circuit is installed.'."\n" - .'* **Deleted**: The LOA is deleted.'."\n", - 'type' => 'string', - 'example' => 'Available', - ], - 'LineLabel' => [ - 'description' => 'The label of the cable in the data center.'."\n", - 'type' => 'string', - 'example' => 'bbb222', - ], - 'LineCode' => [ - 'description' => 'The circuit code provided by the connectivity provider.'."\n", - 'type' => 'string', - 'example' => 'aaa111', - ], - 'ConstructionTime' => [ - 'description' => 'The time when construction starts.'."\n", - 'type' => 'string', - 'example' => '2019-02-26T08:00:00Z', - ], - 'SI' => [ - 'description' => 'The on-site construction company.'."\n", - 'type' => 'string', - 'example' => 'ctcu', - ], - 'LoaUrl' => [ - 'description' => 'The download URL of the LOA file.'."\n", - 'type' => 'string', - 'example' => 'http://******', - ], - 'CompanyLocalizedName' => [ - 'description' => 'The name of the construction company.'."\n", - 'type' => 'string', - 'example' => 'company', - ], - 'InstanceId' => [ - 'description' => 'The ID of the Express Connect circuit.'."\n", - 'type' => 'string', - 'example' => 'pc-bp1ca4wca27****', - ], - 'LineType' => [ - 'description' => 'The type of the Express Connect circuit. Valid values:'."\n" - ."\n" - .'* **MSTP**'."\n" - .'* **MPLSVPN**'."\n" - .'* **FIBRE**'."\n" - .'* **Other**'."\n", - 'type' => 'string', - 'example' => 'FIBRE', - ], - 'CompanyName' => [ - 'description' => 'The name of the organization that requires the Express Connect circuit.'."\n", - 'type' => 'string', - 'example' => 'test1234', - ], - 'PMInfo' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'PMInfo' => [ - 'description' => 'The information about the construction workers.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'PMGender' => [ - 'description' => 'The gender of the construction worker. Valid values:'."\n" - ."\n" - .'* **Male**'."\n" - .'* **Female**'."\n", - 'type' => 'string', - 'example' => 'Male', - ], - 'PMCertificateNo' => [ - 'description' => 'The identity document number of the construction worker.'."\n", - 'type' => 'string', - 'example' => '12345671****', - ], - 'PMName' => [ - 'description' => 'The name of the construction worker.'."\n", - 'type' => 'string', - 'example' => 'name', - ], - 'PMCertificateType' => [ - 'description' => 'The identity document type of the construction worker. Valid values:'."\n" - ."\n" - .'* **IDCard**'."\n" - .'* **Passport**'."\n" - .'* **Other**'."\n", - 'type' => 'string', - 'example' => 'Other', - ], - 'PMContactInfo' => [ - 'description' => 'The phone number of the construction worker.'."\n", - 'type' => 'string', - 'example' => '18910010****', - ], - ], - ], + 'GlobalAccelerationInstance' => [ + 'description' => 'The list of GA instances.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'ServerIpAddress' => ['description' => 'The IP address of the backend service.'."\n", 'type' => 'string', 'example' => '172.24.52.234', 'title' => ''], + 'GlobalAccelerationInstanceId' => ['description' => 'The ID of the GA instance.'."\n", 'type' => 'string', 'example' => 'ga-t4nku6vv9****', 'title' => ''], + 'IpAddress' => ['description' => 'The public IP address of the GA instance.'."\n", 'type' => 'string', 'example' => '12.34.56.78', 'title' => ''], + 'RegionId' => ['description' => 'The region ID of the GA instance.'."\n", 'type' => 'string', 'example' => 'ap-southeast-1', 'title' => ''], ], + 'description' => '', + 'title' => '', + 'example' => '', ], - ], - 'LineServiceProvider' => [ - 'description' => 'The ISP. Valid values:'."\n" - ."\n" - .'* **China Telecom**'."\n" - .'* **China Unicom**'."\n" - .'* **China Mobile**'."\n" - .'* **Other ISPs in China**'."\n", - 'type' => 'string', - 'example' => 'Other ISPs in China'."\n", - ], - 'LineSPContactInfo' => [ - 'description' => 'The contact information about line O\\&M.'."\n", - 'type' => 'string', - 'example' => '1388888****', - ], - 'Description' => [ - 'title' => 'LOA错误码', - 'type' => 'string', + 'title' => '', + 'example' => '', ], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], 'description' => '', + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'MissingParam.AliUid', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'MissingParam.InstanceId', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'MissingParam.RegionNo', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'InvalidInstanceId.NotFound', - 'errorMessage' => '%s', - ], + ['errorCode' => 'InvalidBackendServerId.NotInVPC', 'errorMessage' => 'The specified BackendServerId is not in VPC.', 'description' => ''], + ['errorCode' => 'InvalidBackendServerType.NotFound', 'errorMessage' => 'The specified BackendServerType is not supported.', 'description' => ''], + ], + 404 => [ + ['errorCode' => 'InvalidRegionId.NotFound', 'errorMessage' => 'The specified region is not supported.', 'description' => ''], + ['errorCode' => 'InvalidBackendServerId.NotFound', 'errorMessage' => 'The specified BackendServerId is not found.', 'description' => ''], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"318BB676-0A2B-43A0-9AD8-F1D34E93750F\\",\\n \\"PhysicalConnectionLOAType\\": {\\n \\"Status\\": \\"Available\\",\\n \\"LineLabel\\": \\"bbb222\\",\\n \\"LineCode\\": \\"aaa111\\",\\n \\"ConstructionTime\\": \\"2019-02-26T08:00:00Z\\",\\n \\"SI\\": \\"ctcu\\",\\n \\"LoaUrl\\": \\"http://******\\",\\n \\"CompanyLocalizedName\\": \\"company\\",\\n \\"InstanceId\\": \\"pc-bp1ca4wca27****\\",\\n \\"LineType\\": \\"FIBRE\\",\\n \\"CompanyName\\": \\"test1234\\",\\n \\"PMInfo\\": {\\n \\"PMInfo\\": [\\n {\\n \\"PMGender\\": \\"Male\\",\\n \\"PMCertificateNo\\": \\"12345671****\\",\\n \\"PMName\\": \\"name\\",\\n \\"PMCertificateType\\": \\"Other\\",\\n \\"PMContactInfo\\": \\"18910010****\\"\\n }\\n ]\\n },\\n \\"LineServiceProvider\\": \\"中国其他\\",\\n \\"LineSPContactInfo\\": \\"1388888****\\",\\n \\"Description\\": \\"\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 318BB676-0A2B-43A0-9AD8-F1D34E93750F\\n \\n Available\\n bbb222\\n aaa111\\n 2019-02-26T08:00:00Z\\n ctcu\\n http://******\\n company\\n pc-bp1ca4wca27****\\n FIBRE\\n test1234\\n \\n Male\\n 12345671****\\n name\\n Other\\n 18910010****\\n \\n \\n","errorExample":""}]', - 'title' => 'DescribePhysicalConnectionLOA', - ], - 'ListGeographicSubRegions' => [ - 'summary' => 'Queries the most recent region list.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], + 'title' => 'DescribeServerRelatedGlobalAccelerationInstances', + 'summary' => 'Queries the GA instances that are associated with a specified backend server.', + 'description' => '> You can call this operation to query only dedicated-bandwidth GA instances.'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DescribeServerRelatedGlobalAccelerationInstances'], ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], ], - 'operationType' => 'read', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'list', - 'riskType' => 'none', - 'chargeType' => 'free', - 'tenantRelevance' => 'publicInformation', - ], - 'parameters' => [], - 'responses' => [ - 200 => [ - 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'The request ID.'."\n", - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '0ED8D006-F706-4D23-88ED-E11ED28DCAC0', - ], - 'GeographicSubRegions' => [ - 'description' => 'The region list.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The region list.'."\n", - 'type' => 'string', - 'example' => '["cn-beijing","cn-hangzhou"]', - ], - ], - 'Count' => [ - 'description' => 'The number of entries.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '10', - ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'vpc:DescribeServerRelatedGlobalAccelerationInstances', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'All Resource', 'arn' => '*'], ], ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"0ED8D006-F706-4D23-88ED-E11ED28DCAC0\\",\\n \\"GeographicSubRegions\\": [\\n \\"[\\\\\\"cn-beijing\\\\\\",\\\\\\"cn-hangzhou\\\\\\"]\\"\\n ],\\n \\"Count\\": 10\\n}","errorExample":""},{"type":"xml","example":"\\n 0ED8D006-F706-4D23-88ED-E11ED28DCAC0\\n [\\"cn-beijing\\",\\"cn-hangzhou\\"]\\n 10\\n","errorExample":""}]', - 'title' => 'ListGeographicSubRegions', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"A8252014-D8DE-4D85-AF35-AFEXXXXXXX\\",\\n \\"GlobalAccelerationInstances\\": {\\n \\"GlobalAccelerationInstance\\": [\\n {\\n \\"ServerIpAddress\\": \\"172.24.52.234\\",\\n \\"GlobalAccelerationInstanceId\\": \\"ga-t4nku6vv9****\\",\\n \\"IpAddress\\": \\"12.34.56.78\\",\\n \\"RegionId\\": \\"ap-southeast-1\\"\\n }\\n ]\\n }\\n}","errorExample":"\\n\\n\\t\\n\\t\\t\\n\\t\\t\\tga-t4nku6vv9xxxxxxxxx\\n\\t\\t\\t12.34.56.78\\n\\t\\t\\tap-southeast-1\\n\\t\\t\\t172.24.52.234\\n\\t\\t\\n\\t\\n\\tA8252014-D8DE-4D85-AF35-AFEXXXXXXX\\n"},{"type":"xml","example":"\\n\\n\\t\\n\\t\\t\\n\\t\\t\\tga-t4nku6vv9****\\n\\t\\t\\t12.34.56.78\\n\\t\\t\\tap-southeast-1\\n\\t\\t\\t172.24.52.234\\n\\t\\t\\n\\t\\n\\tA8252014-D8DE-4D85-AF35-AFEXXXXXXX\\n","errorExample":"{\\n \\"GlobalAccelerationInstances\\": {\\n \\"GlobalAccelerationInstance\\": [\\n {\\n \\"GlobalAccelerationInstanceId\\": \\"ga-t4nku6vv9xxxxxxxxx\\",\\n \\"IpAddress\\": \\"12.34.56.78\\",\\n \\"RegionId\\": \\"ap-southeast-1\\",\\n \\"ServerIpAddress\\": \\"172.24.52.234\\"\\n }\\n ]\\n },\\n \\"RequestId\\": \\"A8252014-D8DE-4D85-AF35-AFEXXXXXXX\\"\\n}"}]', ], - 'ListBusinessRegions' => [ - 'summary' => 'Queries the list of regions available for an Express Connect circuit.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DescribeSnatTableEntries' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'read', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'list', - 'riskType' => 'none', - 'chargeType' => 'free', - 'tenantRelevance' => 'publicInformation', - ], + 'systemTags' => ['operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ - 'name' => 'AcceptLanguage', + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => ['description' => 'The ID of the region where you want to create the NAT gateway.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'example' => 'cn-hangzhou', 'title' => ''], + ], + [ + 'name' => 'SnatTableId', + 'in' => 'query', + 'schema' => ['description' => 'The ID of the SNAT table.'."\n" + ."\n" + .'> You must specify at least one of **SnatTableId** and **NatGatewayId**.'."\n", 'type' => 'string', 'required' => false, 'example' => 'stb-8vbczigrhop8x5u3t****', 'title' => ''], + ], + [ + 'name' => 'SnatEntryId', + 'in' => 'query', + 'schema' => ['description' => 'The ID of the SNAT entry.'."\n", 'type' => 'string', 'required' => false, 'example' => 'snat-8vbae8uqh7rjpk7d2****', 'title' => ''], + ], + [ + 'name' => 'SourceVSwitchId', + 'in' => 'query', + 'schema' => ['description' => 'The ID of the vSwitch.'."\n" + ."\n" + .'* When you query SNAT entries of Internet NAT gateways, this parameter specifies that Elastic Compute Service (ECS) instances in the vSwitch can use SNAT entries to access the Internet.'."\n" + .'* When you query SNAT entries of virtual private cloud (VPC) NAT gateways, this parameter specifies that ECS instances in the vSwitch can use SNAT entries to access external networks.'."\n", 'type' => 'string', 'required' => false, 'example' => 'vsw-3xbjkhjshjdf****', 'title' => ''], + ], + [ + 'name' => 'SourceCIDR', + 'in' => 'query', + 'schema' => ['description' => 'The source CIDR block specified in the SNAT entry.'."\n", 'type' => 'string', 'required' => false, 'example' => '116.22.XX.XX/24', 'title' => ''], + ], + [ + 'name' => 'SnatIp', + 'in' => 'query', + 'schema' => ['description' => '* When you query SNAT entries of Internet NAT gateways, this parameter specifies the EIP in an SNAT entry.'."\n" + .'* When you query SNAT entries of VPC NAT gateways, this parameter specifies the NAT IP address in an SNAT entry.'."\n", 'type' => 'string', 'required' => false, 'example' => '116.22.XX.XX', 'title' => ''], + ], + [ + 'name' => 'SnatEntryName', + 'in' => 'query', + 'schema' => ['description' => 'The name of the SNAT entry.'."\n" + ."\n" + .'The name must be 2 to 128 characters in length, and can contain digits, underscores (\\_), and hyphens (-). The name must start with a letter.'."\n", 'type' => 'string', 'required' => false, 'example' => 'SnatEntry-1', 'title' => ''], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => ['description' => 'The page number. Default value: **1**.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'minimum' => '1', 'default' => '1', 'example' => '1', 'title' => ''], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => ['description' => 'The number of entries per page. Maximum value: **50**. Default value: **10**.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '50', 'minimum' => '1', 'default' => '10', 'example' => '10', 'title' => ''], + ], + [ + 'name' => 'NatGatewayId', + 'in' => 'query', + 'schema' => ['description' => 'The ID of the NAT gateway.'."\n" + ."\n" + .'> You must specify at least one of **SnatTableId** and **NatGatewayId**.'."\n", 'type' => 'string', 'required' => false, 'example' => 'ngw-bp1uewa15k4iy5770****', 'title' => ''], + ], + [ + 'name' => 'NetworkInterfaceIds', 'in' => 'query', + 'allowEmptyValue' => true, + 'style' => 'flat', 'schema' => [ - 'description' => 'The language of the response. Valid values:'."\n" - ."\n" - .'* **zh-CN** (default): Chinese'."\n" - .'* **en-US**: English.'."\n", - 'type' => 'string', + 'description' => 'The ID of the elastic network interface to be queried.', + 'type' => 'array', + 'items' => ['description' => 'Elastic Network Interface ID', 'type' => 'string', 'required' => false, 'example' => 'eni-gw8g131ef2dnbu3k****', 'title' => ''], 'required' => false, - 'example' => 'zh-CN', + 'title' => '', + 'example' => '', ], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'Schema of Response'."\n", 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => '304FE68E-16D8-5B90-B2B3-FE5C5C08C24B', - ], - 'GeographicSubRegions' => [ - 'description' => 'The list of regions available for Express Connect circuits.'."\n", - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'RegionId' => [ - 'description' => 'The ID of the region where circuits are available.'."\n", - 'type' => 'string', - 'example' => 'cn-hangzhou', - ], - 'Name' => [ - 'description' => 'The name of the region where circuits are available.'."\n", - 'type' => 'string', + 'PageSize' => ['description' => 'The number of entries per page.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '5', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '6D7E89B1-1C5B-412B-8585-4908E222EED5', 'title' => ''], + 'PageNumber' => ['description' => 'The number of the returned page.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''], + 'TotalCount' => ['description' => 'The number of returned entries.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''], + 'SnatTableEntries' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'SnatTableEntry' => [ + 'description' => 'Details of SNAT entries.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'Status' => ['description' => 'The status of the SNAT entry. Valid values:'."\n" + ."\n" + .'* **Pending**'."\n" + .'* **Available**'."\n" + .'* **Deleting**'."\n", 'type' => 'string', 'example' => 'Pending', 'title' => ''], + 'SnatEntryName' => ['description' => 'The name of the SNAT entry.'."\n", 'type' => 'string', 'example' => 'SnatEntry-1', 'title' => ''], + 'SourceVSwitchId' => ['description' => '* When you query SNAT entries of Internet NAT gateways, this parameter indicates the ID of the vSwitch that uses SNAT to access the Internet.'."\n" + .'* When you query SNAT entries of VPC NAT gateways, this parameter indicates the ID of the vSwitch that uses SNAT to access external networks.'."\n", 'type' => 'string', 'example' => 'vsw-3xbdsffvfgdfds****', 'title' => ''], + 'SourceCIDR' => ['description' => 'The source CIDR block specified in the SNAT entry.'."\n", 'type' => 'string', 'example' => '116.22.XX.XX/24', 'title' => ''], + 'SnatEntryId' => ['description' => 'The ID of the SNAT entry.'."\n", 'type' => 'string', 'example' => 'snat-kmd6nv8fy****', 'title' => ''], + 'SnatTableId' => ['description' => 'The ID of the SNAT table to which the SNAT entry belongs.'."\n", 'type' => 'string', 'example' => 'stb-gz3r3odawdgffde****', 'title' => ''], + 'SnatIp' => ['description' => '* When you query SNAT entries of Internet NAT gateways, this parameter indicates the EIP in an SNAT entry.'."\n" + .'* When you query SNAT entries of VPC NAT gateways, this parameter indicates the NAT IP address in an SNAT entry.'."\n", 'type' => 'string', 'example' => '116.22.XX.XX', 'title' => ''], + 'NatGatewayId' => ['description' => 'The ID of the NAT gateway to which the SNAT entry belongs.'."\n", 'type' => 'string', 'example' => 'ngw-bp1uewa15k4iy5770****', 'title' => ''], + 'NetworkInterfaceId' => ['description' => 'Elastic Network Interface ID', 'type' => 'string', 'example' => 'eni-gw8g131ef2dnbu3k****', 'title' => ''], + 'EipAffinity' => ['description' => 'Whether to enable IP affinity. Values:'."\n" + .'- **0**: Disable IP affinity. - **1**: Enable IP affinity.'."\n" + .'> After enabling the IP affinity switch, if an SNAT entry is bound to multiple EIPs or NAT IPs, the same client will use the same EIP or NAT IP for access. Otherwise, the client will randomly select from the bound EIPs or NAT IPs for access.', 'type' => 'string', 'example' => '1', 'title' => ''], + ], + 'title' => '', 'example' => '', ], + 'title' => '', + 'example' => '', ], - 'description' => '', ], - ], - 'Count' => [ - 'description' => 'The total number of entries returned.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '10', + 'description' => '', + 'title' => '', + 'example' => '', ], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InvalidName.Malformed', 'errorMessage' => 'The specified Name is not valid.', 'description' => 'The Name parameter is set to an invalid value.'], + ['errorCode' => 'DESCRIBE_SNAT_PARAM_INVALID', 'errorMessage' => 'SnatTableId and natGatewayId can not both be null', 'description' => ''], + ], + 404 => [ + ['errorCode' => 'InvalidRegionId.NotFound', 'errorMessage' => 'The specified RegionId does not exist in our records.', 'description' => ''], + ['errorCode' => 'InvalidSnatTableId.NotFound', 'errorMessage' => 'Specified SNAT table does not exist.', 'description' => ''], + ], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"304FE68E-16D8-5B90-B2B3-FE5C5C08C24B\\",\\n \\"GeographicSubRegions\\": [\\n {\\n \\"RegionId\\": \\"cn-hangzhou\\",\\n \\"Name\\": \\"华东1(杭州)\\"\\n }\\n ],\\n \\"Count\\": 10\\n}","type":"json"}]', - 'title' => 'ListBusinessRegions', + 'title' => 'DescribeSnatTableEntries', + 'summary' => 'Queries SNAT entries.', + 'changeSet' => [ + ['createdAt' => '2024-08-09T10:09:59.000Z', 'description' => 'Request parameters changed, Response parameters changed'], + ['createdAt' => '2024-05-06T03:02:14.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2023-08-09T03:15:07.000Z', 'description' => 'Response parameters changed, Response parameters changed'], + ['createdAt' => '2023-03-01T06:45:54.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2022-09-19T02:47:18.000Z', 'description' => 'Error codes changed, Request parameters changed'], + ], + 'ramActions' => [], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"PageSize\\": 5,\\n \\"RequestId\\": \\"6D7E89B1-1C5B-412B-8585-4908E222EED5\\",\\n \\"PageNumber\\": 1,\\n \\"TotalCount\\": 1,\\n \\"SnatTableEntries\\": {\\n \\"SnatTableEntry\\": [\\n {\\n \\"Status\\": \\"Pending\\",\\n \\"SnatEntryName\\": \\"SnatEntry-1\\",\\n \\"SourceVSwitchId\\": \\"vsw-3xbdsffvfgdfds****\\",\\n \\"SourceCIDR\\": \\"116.22.XX.XX/24\\",\\n \\"SnatEntryId\\": \\"snat-kmd6nv8fy****\\",\\n \\"SnatTableId\\": \\"stb-gz3r3odawdgffde****\\",\\n \\"SnatIp\\": \\"116.22.XX.XX\\",\\n \\"NatGatewayId\\": \\"ngw-bp1uewa15k4iy5770****\\",\\n \\"NetworkInterfaceId\\": \\"eni-gw8g131ef2dnbu3k****\\",\\n \\"EipAffinity\\": \\"1\\"\\n }\\n ]\\n }\\n}","type":"json"}]', + 'translator' => 'manual', ], - 'ListBusinessAccessPoints' => [ - 'summary' => 'Queries the access points of an Express Connect circuit.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DescribeSslVpnClientCert' => [ + 'summary' => 'Queries the details of an SSL client certificate.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -43046,1301 +32837,1004 @@ ], 'operationType' => 'read', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'list', - 'riskType' => 'none', - 'chargeType' => 'free', - 'autoTest' => true, - 'tenantRelevance' => 'publicInformation', - ], + 'systemTags' => ['operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the Express Connect circuit.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The region ID of the SSL client certificate. You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'RegionId', + 'name' => 'SslVpnClientCertId', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the Express Connect circuit.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The ID of the SSL client certificate that you want to query.'."\n", 'type' => 'string', 'required' => true, 'example' => 'vsc-bp17r58rjf5r1gjyr****', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'The request ID.'."\n", + 'description' => 'The response parameters.'."\n", 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '611CB80C-B6A9-43DB-9E38-0B0AC3D9B58F', - ], - 'BusinessAccessPoints' => [ - 'description' => 'The list of access points.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'AccessPointId' => [ - 'description' => 'The ID of the access point.'."\n", - 'type' => 'string', - 'example' => 'ap-cn-hangzhou-xs-B', - ], - 'AccessPointName' => [ - 'description' => 'The name of the access point.'."\n", - 'type' => 'string', - 'example' => 'hangzhou-xs-B'."\n", - ], - 'SupportLineOperator' => [ - 'description' => 'The connectivity provider of the Express Connect circuit. Valid values:'."\n" - ."\n" - .'* **CT**: China Telecom.'."\n" - .'* **CU**: China Unicom.'."\n" - .'* **CM**: China Mobile.'."\n" - .'* **CO**: other connectivity providers in the Chinese mainland.'."\n" - .'* **Equinix**: Equinix.'."\n" - .'* **Other**: other connectivity providers outside the Chinese mainland.'."\n", - 'type' => 'string', - 'example' => 'CT', - ], - 'SupportPortTypes' => [ - 'description' => 'The port type supported by the access point. Valid values:'."\n" - ."\n" - .'* **100Base-T**: 100 Mbit/s copper Ethernet port'."\n" - .'* **1000Base-T**: 1,000 Mbit/s copper Ethernet port'."\n" - .'* **1000Base-LX**: 1,000 Mbit/s single-mode optical port (10 km)'."\n" - .'* **10GBase-T**: 10,000 Mbit/s copper Ethernet port'."\n" - .'* **10GBase-LR**: 10,000 Mbit/s single-mode optical port (10 km)'."\n" - .'* **40GBase-LR**: 40,000 Mbit/s single-mode optical port'."\n" - .'* **100GBase-LR**: 100,000 Mbit/s single-mode optical port'."\n" - ."\n" - .'> To use ports 40GBase-LR and 100GBase-LR, you must first contact your account manager.'."\n", - 'type' => 'string', - 'example' => '1000Base-T', - ], - 'CloudBoxInstanceIds' => [ - 'description' => 'The ID of the cloud box.'."\n" - ."\n" - .'> You can query this parameter if the Express Connect circuits and access points are of the cloud box type.'."\n", - 'type' => 'string', - 'example' => 'cb-****', - ], - 'Longitude' => [ - 'description' => 'The longitude of the access point.'."\n", - 'type' => 'number', - 'format' => 'double', - 'example' => '120.247514', - ], - 'Latitude' => [ - 'description' => 'The latitude of the access point.'."\n", - 'type' => 'number', - 'format' => 'double', - 'example' => '30.198416', - ], - 'OpticalModuleModels' => [ - 'title' => '当前接入点支持的光模块型号集合。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'PortType' => [ - 'title' => '物理专线接入点光模块支持的端口类型。取值:'."\n" - .'● 1000Base-LX:千兆单模光口。'."\n" - .'● 10GBase-LR:万兆单模光口。'."\n" - .'● 40GBase-LR:四万兆单模光口。'."\n" - .'● 100GBase-LR:十万兆单模光口。', - 'type' => 'string', - ], - 'OpticalModuleModel' => [ - 'title' => '物理专线接入点光模块支持型号,取值:'."\n" - .'1000Base-LX : '."\n" - .'SFP-GE-LR-SM1310,10KM'."\n" - .'SFP-GE-ER-SM1310,40KM'."\n" - .'SFP-GE-ZR-SM1550,80KM '."\n" - .'10GBase-LR : '."\n" - .'SFP-10G-LR-SM1310,10KM'."\n" - .'SFP-10G-ER-SM1550,40KM '."\n" - .'SFP-10G-ZR-SM1550,80KM '."\n" - .'40GBase-LR : '."\n" - .'QSFP-40G-LR4-WDM1300,10KM'."\n" - .'QSFP-40G-ER4-WDM1300,40KM'."\n" - .'QSFP-40G-ZR4-WDM1300,80KM'."\n" - .'100GBase-LR : '."\n" - .'QSFP28-100G-LR4-WDM1300,10KM'."\n" - .'QSFP28-100G-ER4-WDM1300,40KM'."\n" - .'QSFP28-100G-ZR4-WDM1300,80KM', - 'type' => 'string', - ], - ], - ], - ], - ], - ], - ], + 'Status' => ['description' => 'The status of the SSL client certificate. Valid values:'."\n" + ."\n" + .'* **expiring-soon**'."\n" + .'* **normal**'."\n" + .'* **expired**'."\n", 'type' => 'string', 'example' => 'normal', 'title' => ''], + 'CreateTime' => ['description' => 'The timestamp that indicates when the SSL client certificate was created. Unit: milliseconds.'."\n" + ."\n" + .'This value is a UNIX timestamp representing the number of milliseconds that have elapsed since the epoch time January 1, 1970, 00:00:00 UTC.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '1552550980000', 'title' => ''], + 'ClientKey' => ['description' => 'The client key.'."\n", 'type' => 'string', 'example' => '-----BEGIN RSA PRIVATE KEY-----'."\n" + .'MIIEpAI****ZzNFhuM/za=='."\n" + .'-----END RSA PRIVATE KEY-----', 'title' => ''], + 'RegionId' => ['description' => 'The ID of the region where the SSL client certificate is created.'."\n", 'type' => 'string', 'example' => 'cn-hangzhou', 'title' => ''], + 'ClientConfig' => ['description' => 'The client configuration.'."\n", 'type' => 'string', 'example' => 'client'."\n" + .'dev tun'."\n" + .'proto tcp'."\n" + .'remote 120.XX.XX.33 1194'."\n" + .'resolv-retry infinite'."\n" + .'nobind'."\n" + .'persist-key'."\n" + .'persist-tun'."\n" + .'ca ca.crt'."\n" + .'cert vsc-bp15t7****.crt'."\n" + .'key vsc-bp15t7****.key'."\n" + .'cipher AES-128-CBC'."\n" + .';comp-lzo'."\n" + .'verb 4', 'title' => ''], + 'EndTime' => ['description' => 'The timestamp that indicates when the SSL client certificate expires. Unit: milliseconds.'."\n" + ."\n" + .'This value is a UNIX timestamp representing the number of milliseconds that have elapsed since the epoch time January 1, 1970, 00:00:00 UTC.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '1647158980000', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '5BE01CD7-5A50-472D-AC14-CA181C5C03BE', 'title' => ''], + 'ClientCert' => ['description' => 'The client certificate.'."\n", 'type' => 'string', 'example' => '-----BEGIN CERTIFICATE-----'."\n" + .'MIIDR****A=='."\n" + .'-----END CERTIFICATE-----', 'title' => ''], + 'CaCert' => ['description' => 'The CA certificate.'."\n", 'type' => 'string', 'example' => '-----BEGIN CERTIFICATE-----'."\n" + .'MIID****r4w='."\n" + .'-----END CERTIFICATE-----', 'title' => ''], + 'SslVpnClientCertId' => ['description' => 'The ID of the SSL client certificate.'."\n", 'type' => 'string', 'example' => 'vsc-bp13k5mp4tg8v3z9b****', 'title' => ''], + 'SslVpnServerId' => ['description' => 'The ID of the SSL server.'."\n", 'type' => 'string', 'example' => 'vss-bp155e9yclsg1xgq4****', 'title' => ''], + 'Name' => ['description' => 'The name of the SSL client certificate.'."\n", 'type' => 'string', 'example' => 'nametest', 'title' => ''], + 'ResourceGroupId' => ['description' => 'The ID of the resource group to which the SSL client certificate belongs.'."\n" + ."\n" + .'The SSL client certificate and the SSL server associated with the SSL client certificate belong to the same resource group. You can call the [ListResourceGroups](~~158855~~) operation to query resource groups.'."\n", 'type' => 'string', 'example' => 'rg-acfmzs372yg****', 'title' => ''], ], + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'Internal system error.', - ], + 400 => [ + ['errorCode' => 'InvalidInstanceId.NotFound', 'errorMessage' => 'The InstanceId is not found.', 'description' => 'The InstanceId is not found.'], + ], + 403 => [ + ['errorCode' => 'Forbbiden.SubUser', 'errorMessage' => 'User not authorized to operate on the specified resource as your account is created by another user.', 'description' => ''], + ['errorCode' => 'Forbidden', 'errorMessage' => 'User not authorized to operate on the specified resource.', 'description' => 'You do not have the permissions to manage the specified resource. Apply for the permissions and try again.'], + ], + [ + ['errorCode' => 'InvalidRegionId.NotFound', 'errorMessage' => 'The specified region is not found during access authentication.', 'description' => 'The specified area is not found during authentication.'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'DescribeSslVpnClientCert', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2023-10-19T07:04:00.000Z', 'description' => 'Error codes changed, Response parameters changed'], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"611CB80C-B6A9-43DB-9E38-0B0AC3D9B58F\\",\\n \\"BusinessAccessPoints\\": [\\n {\\n \\"AccessPointId\\": \\"ap-cn-hangzhou-xs-B\\",\\n \\"AccessPointName\\": \\"杭州-萧山-B\\",\\n \\"SupportLineOperator\\": \\"CT\\",\\n \\"SupportPortTypes\\": \\"1000Base-T\\",\\n \\"CloudBoxInstanceIds\\": \\"cb-****\\",\\n \\"Longitude\\": 120.247514,\\n \\"Latitude\\": 30.198416,\\n \\"OpticalModuleModels\\": [\\n {\\n \\"PortType\\": \\"\\",\\n \\"OpticalModuleModel\\": \\"\\"\\n }\\n ]\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\n 611CB80C-B6A9-43DB-9E38-0B0AC3D9B58F\\n \\n ap-cn-hangzhou-xs-B\\n 杭州-萧山-B\\n CT\\n 1000Base-T\\n cb-****\\n 120.247514\\n 30.198416\\n \\n","errorExample":""}]', - 'title' => 'ListBusinessAccessPoints', + 'ramActions' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Status\\": \\"normal\\",\\n \\"CreateTime\\": 1552550980000,\\n \\"ClientKey\\": \\"-----BEGIN RSA PRIVATE KEY-----\\\\nMIIEpAI****ZzNFhuM/za==\\\\n-----END RSA PRIVATE KEY-----\\",\\n \\"RegionId\\": \\"cn-hangzhou\\",\\n \\"ClientConfig\\": \\"client\\\\ndev tun\\\\nproto tcp\\\\nremote 120.XX.XX.33 1194\\\\nresolv-retry infinite\\\\nnobind\\\\npersist-key\\\\npersist-tun\\\\nca ca.crt\\\\ncert vsc-bp15t7****.crt\\\\nkey vsc-bp15t7****.key\\\\ncipher AES-128-CBC\\\\n;comp-lzo\\\\nverb 4\\",\\n \\"EndTime\\": 1647158980000,\\n \\"RequestId\\": \\"5BE01CD7-5A50-472D-AC14-CA181C5C03BE\\",\\n \\"ClientCert\\": \\"-----BEGIN CERTIFICATE-----\\\\nMIIDR****A==\\\\n-----END CERTIFICATE-----\\",\\n \\"CaCert\\": \\"-----BEGIN CERTIFICATE-----\\\\nMIID****r4w=\\\\n-----END CERTIFICATE-----\\",\\n \\"SslVpnClientCertId\\": \\"vsc-bp13k5mp4tg8v3z9b****\\",\\n \\"SslVpnServerId\\": \\"vss-bp155e9yclsg1xgq4****\\",\\n \\"Name\\": \\"nametest\\",\\n \\"ResourceGroupId\\": \\"rg-acfmzs372yg****\\"\\n}","errorExample":""},{"type":"xml","example":"","errorExample":""}]', ], - 'CreateFailoverTestJob' => [ - 'summary' => 'Creates a failover test.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DescribeSslVpnClientCerts' => [ + 'summary' => 'Queries created SSL client certificates by calling the DescribeSslVpnClientCerts operation.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'read', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'create', - 'riskType' => 'none', - 'chargeType' => 'free', - ], + 'systemTags' => ['operationType' => 'list', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the failover test.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => false, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The region ID of the SSL client certificate that you want to query.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the region ID.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'ClientToken', + 'name' => 'SslVpnServerId', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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.'."\n" - ."\n" - .'> 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.'."\n", - 'type' => 'string', - 'required' => false, - 'docRequired' => true, - 'example' => '123e4567-e89b-12d3-a456-426655440000', - ], + 'schema' => ['description' => 'The ID of the SSL server.', 'type' => 'string', 'required' => false, 'example' => 'vss-bp18q7hzj6largv4v****', 'title' => ''], ], [ - 'name' => 'ClientToken', + 'name' => 'SslVpnClientCertId', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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.'."\n" - ."\n" - .'> 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.'."\n", - 'type' => 'string', - 'required' => false, - 'docRequired' => true, - 'example' => '123e4567-e89b-12d3-a456-426655440000', - ], + 'schema' => ['description' => 'The ID of the SSL client certificate.', 'type' => 'string', 'required' => false, 'example' => 'vsc-bp1n8wcf134yl0osr****', 'title' => ''], ], [ 'name' => 'Name', 'in' => 'query', - 'schema' => [ - 'title' => '故障演练任务的名称。'."\n" - .'长度为0~128个字符,不能以http:// 或https://开头。', - 'description' => 'The name of the failover test.'."\n" - ."\n" - .'The name must be 0 to 128 characters in length and cannot start with `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'test', - ], - ], - [ - 'name' => 'Description', - 'in' => 'query', - 'schema' => [ - 'title' => '故障演练任务的描述信息。'."\n" - .'长度为0~256个字符,不能以http://或https://开头。', - 'description' => 'The description of the failover test.'."\n" - ."\n" - .'The description must be 0 to 256 characters in length and cannot start with `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'test', - ], - ], - [ - 'name' => 'ResourceType', - 'in' => 'query', - 'schema' => [ - 'title' => '资源类型。取值:'."\n" - .'● PHYSICALCONNECTION 物理专线'."\n" - .'● VIRTUALBORDERROUTER 虚拟边界路由器'."\n" - .'● BGPPEER BGP邻居', - 'description' => 'The resource type of the failover test. Set the value to **PHYSICALCONNECTION**.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'PHYSICALCONNECTION', - 'enum' => [ - 'PHYSICALCONNECTION', - 'VIRTUALBORDERROUTER', - 'BGPPEER', - ], - ], - ], - [ - 'name' => 'ResourceId', - 'in' => 'query', - 'allowEmptyValue' => false, - 'style' => 'repeatList', - 'schema' => [ - 'title' => '资源ID列表。最多可以添加16个资源。', - 'description' => 'The IDs of failover test resources. You can add at most 16 resources.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The ID of the resource.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'pc-uf66k4e8pq3r00jfqo0b5'."\n", - ], - 'required' => true, - 'maxItems' => 16, - 'minItems' => 1, - ], + 'schema' => ['description' => 'The name of the SSL client certificate.', 'type' => 'string', 'required' => false, 'example' => 'cert1', 'title' => ''], ], [ - 'name' => 'JobType', + 'name' => 'PageNumber', 'in' => 'query', - 'allowEmptyValue' => false, - 'schema' => [ - 'title' => '任务类型。取值:'."\n" - .'● StartNow 立即开始'."\n" - .'● StartLater 稍后开始', - 'description' => 'The type of the failover test. Valid values:'."\n" - ."\n" - .'* **StartNow**'."\n" - .'* **StartLater**'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'StartNow', - 'enum' => [ - 'StartNow', - 'StartLater', - ], - ], + 'schema' => ['description' => 'The page number of the list. Default value: **1**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'default' => '1', 'example' => '1', 'title' => ''], ], [ - 'name' => 'JobDuration', + 'name' => 'PageSize', 'in' => 'query', - 'schema' => [ - 'title' => '任务时长。单位为分钟,取值范围为:1-4320。', - 'description' => 'The duration of the failover test. Unit: minutes. Valid values: **1 to 4320**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'maximum' => '4320', - 'minimum' => '1', - 'example' => '60', - ], + 'schema' => ['description' => 'The number of entries per page in a paged query. Default value: **10**. Valid values: **1** to **50**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'default' => '10', 'example' => '10', 'title' => ''], ], [ - 'name' => 'DryRun', + 'name' => 'ResourceGroupId', 'in' => 'query', - 'schema' => [ - 'title' => '传true的时候,只进行资源的校验,不进行故障演练任务的创建。传false或者不传的时候,会先进行资源的校验,校验通过后创建故障演练任务。', - 'description' => '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.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['description' => 'The ID of the resource group to which the SSL client certificate belongs.'."\n" + ."\n" + .'The SSL client certificate belongs to the same resource group as its associated SSL server. You can call the [DescribeSslVpnServers](~~2794078~~) operation to query the resource group ID of the SSL server.', 'type' => 'string', 'required' => false, 'example' => 'rg-acfmzs372yg****', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => 'The response parameters.'."\n", + 'description' => 'The response parameters.', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => 'C44F62BE-9CE7-4277-B117-69243F3988BF'."\n", - ], - 'JobId' => [ - 'description' => 'The ID of the failover test.'."\n", - 'type' => 'string', - 'example' => 'ftj-xxxxxxxxx', + 'PageSize' => ['description' => 'The number of entries per page in a paged query. This is used for paging.', 'type' => 'integer', 'format' => 'int32', 'example' => '10', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '5BE01CD7-5A50-472D-AC14-CA181C5C03BE', 'title' => ''], + 'PageNumber' => ['description' => 'The page number of the list.', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''], + 'TotalCount' => ['description' => 'The total number of entries in the list.', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''], + 'SslVpnClientCertKeys' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'SslVpnClientCertKey' => [ + 'description' => 'The list of SSL client certificates.', + 'type' => 'array', + 'items' => [ + 'description' => 'The information about the SSL client certificate.', + 'type' => 'object', + 'properties' => [ + 'Status' => ['description' => 'The status of the client certificate.'."\n" + ."\n" + .'- **expiring-soon**: The certificate will expire within one week.'."\n" + .' '."\n" + .'- **normal**: Normal. '."\n" + ."\n" + .'- **expired**: Expired.', 'type' => 'string', 'example' => 'normal', 'title' => ''], + 'EndTime' => ['description' => 'The expiration timestamp of the SSL client certificate. Unit: milliseconds.'."\n" + ."\n" + .'The timestamp follows the UNIX timestamp format, representing the total duration from 00:00:00 on January 1, 1970 (UTC) to the expiration time of the SSL client certificate.', 'type' => 'integer', 'format' => 'int64', 'example' => '1494966335000', 'title' => ''], + 'CreateTime' => ['description' => 'The creation timestamp of the SSL client certificate. Unit: milliseconds.'."\n" + ."\n" + .'The timestamp follows the UNIX timestamp format, representing the total duration from 00:00:00 on January 1, 1970 (UTC) to the creation time of the SSL client certificate.', 'type' => 'integer', 'format' => 'int64', 'example' => '1492747187000', 'title' => ''], + 'SslVpnClientCertId' => ['description' => 'The ID of the SSL client certificate.', 'type' => 'string', 'example' => 'vsc-bp1n8wcf134yl0osr****', 'title' => ''], + 'SslVpnServerId' => ['description' => 'The ID of the SSL server.', 'type' => 'string', 'example' => 'vss-bp18q7hzj6largv4v****', 'title' => ''], + 'Name' => ['description' => 'The name of the SSL client certificate.', 'type' => 'string', 'example' => 'cert1', 'title' => ''], + 'RegionId' => ['description' => 'The region of the SSL client certificate.', 'type' => 'string', 'example' => 'cn-hangzhou', 'title' => ''], + 'ResourceGroupId' => ['description' => 'The ID of the resource group to which the SSL client certificate belongs.'."\n" + ."\n" + .'You can call the [ListResourceGroups](~~158855~~) operation to query resource group information.', 'type' => 'string', 'example' => 'rg-acfmzs372yg****', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'IllegalParam.Name', - 'errorMessage' => 'The param of Name [%s] is illegal.', - ], - [ - 'errorCode' => 'IllegalParam.Description', - 'errorMessage' => 'The param of Description [%s] is illegal.', - ], - [ - 'errorCode' => 'IllegalParam.ResourceType', - 'errorMessage' => 'Invalid Resource Type value.', - ], - [ - 'errorCode' => 'EcFailoverTestJobExceedMaxResourceNum', - 'errorMessage' => 'The input resource number is exceeded the quota of 16.', - ], - [ - 'errorCode' => 'EcFailoverTestJobResourceInAnotherProcessingJob', - 'errorMessage' => 'There is another processing failover test job.', - ], - [ - 'errorCode' => 'IllegalParam.ResourceId', - 'errorMessage' => 'The input parameter resource ID is invalid.', - ], - [ - 'errorCode' => 'IncorrectStatus.ResourceId', - 'errorMessage' => 'The specified resource status is invalid.', - ], - [ - 'errorCode' => 'IncorrectBusinessStatus.ResourceId', - 'errorMessage' => 'The specified resource business status is invalid.', - ], - [ - 'errorCode' => 'VpconnNotAssociatedVbr', - 'errorMessage' => 'The specified vpconn is not associated with vbr.', - ], - [ - 'errorCode' => 'VpconnWithVlan0NotSupportShutdown', - 'errorMessage' => 'The specified virtualPhysicalConnection with vlan 0 does not support shutdown.', - ], - [ - 'errorCode' => 'PconnContainsMoreThanOneVpconn', - 'errorMessage' => 'The specified physicalConnection contains more than one virtualPhysicalConnection.', - ], - [ - 'errorCode' => 'PconnContailsMoreThanOneAcrossCountVbr', - 'errorMessage' => 'The specified physicalConnection contains more than one virtualBorderRouter which is across count.', - ], - [ - 'errorCode' => 'IllegalParam.JobType', - 'errorMessage' => 'The specified parameter JobType is illegal.', - ], - [ - 'errorCode' => 'IllegalParam.JobDuration', - 'errorMessage' => 'The specified parameter JobDuration is illegal.', - ], - [ - 'errorCode' => 'AnotherJobTesting', - 'errorMessage' => 'There is another job which is testing.', - ], - [ - 'errorCode' => 'MultiplePconnSingleVbrNotSupportShutdown', - 'errorMessage' => 'Vbr for single vbr and multiple pconn scenarios does not support failover test job.', - ], - [ - 'errorCode' => 'EcFailoverTestJobConflict', - 'errorMessage' => 'The current failover test job task is in operation, please try again later.', - ], - [ - 'errorCode' => 'OperationDeny.VbrWithVlan0', - 'errorMessage' => 'The specified VirtualBorderRouter with vlan 0 does not support shutdown.', - ], + 403 => [ + ['errorCode' => 'Forbbiden.SubUser', 'errorMessage' => 'User not authorized to operate on the specified resource as your account is created by another user.', 'description' => ''], + ['errorCode' => 'Forbidden', 'errorMessage' => 'User not authorized to operate on the specified resource.', 'description' => 'You do not have the permissions to manage the specified resource. Apply for the permissions and try again.'], + ], + [ + ['errorCode' => 'InvalidRegionId.NotFound', 'errorMessage' => 'The specified region is not found during access authentication.', 'description' => 'The specified area is not found during authentication.'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'Query created SSL-VPN client certificates', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2023-10-19T08:26:51.000Z', 'description' => 'Request parameters changed, Response parameters changed'], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"C44F62BE-9CE7-4277-B117-69243F3988BF\\\\n\\",\\n \\"JobId\\": \\"ftj-bp1yh6mvi13aq3g8w****\\"\\n}","type":"json"}]', - 'title' => 'CreateFailoverTestJob', - 'description' => 'You cannot create a failover test in the following scenarios:'."\n" - ."\n" - .'* You have created a failover test in the region and its type is StartNow.'."\n" - .'* The Express Connect circuit or hosted connection has pending orders or overdue payments.'."\n" - .'* A failover test is already performed on the Express Connect circuit or hosted connection.'."\n" - .'* More than one hosted connection is created over the Express Connect circuit.'."\n" - .'* More than one cross-account VBR is created on the Express Connect circuit.'."\n" - .'* No VBR is associated with the hosted connection.'."\n" - .'* The VLAN ID of the hosted connection is set to 0.'."\n", - ], - 'StartFailoverTestJob' => [ - 'summary' => 'Performs a failover test.', - 'methods' => [ - 'post', - 'get', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '600', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DescribeSslVpnClientCerts'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'vpc:DescribeSslVpnClientCerts', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'conditional', 'product' => 'VPC', 'resourceType' => 'SslVpnClientCert', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:sslvpnclientcert/*'], + ['validationType' => 'conditional', 'product' => 'VPC', 'resourceType' => 'SslVpnClientCert', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:sslvpnclientcert/{#SslVpnClientCertId}'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"PageSize\\": 10,\\n \\"RequestId\\": \\"5BE01CD7-5A50-472D-AC14-CA181C5C03BE\\",\\n \\"PageNumber\\": 1,\\n \\"TotalCount\\": 1,\\n \\"SslVpnClientCertKeys\\": {\\n \\"SslVpnClientCertKey\\": [\\n {\\n \\"Status\\": \\"normal\\",\\n \\"EndTime\\": 1494966335000,\\n \\"CreateTime\\": 1492747187000,\\n \\"SslVpnClientCertId\\": \\"vsc-bp1n8wcf134yl0osr****\\",\\n \\"SslVpnServerId\\": \\"vss-bp18q7hzj6largv4v****\\",\\n \\"Name\\": \\"cert1\\",\\n \\"RegionId\\": \\"cn-hangzhou\\",\\n \\"ResourceGroupId\\": \\"rg-acfmzs372yg****\\"\\n }\\n ]\\n }\\n}","type":"json"}]', + ], + 'DescribeSslVpnClients' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'read', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'update', - 'riskType' => 'none', - 'chargeType' => 'free', - ], + 'systemTags' => ['operationType' => 'list', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the failover test.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => false, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The region ID of the VPN gateway instance.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the region ID.', 'type' => 'string', 'required' => true, 'example' => 'eu-central-1', 'title' => ''], ], [ - 'name' => 'ClientToken', + 'name' => 'VpnGatewayId', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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.'."\n" - ."\n" - .'> 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.'."\n", - 'type' => 'string', - 'required' => false, - 'docRequired' => true, - 'example' => '123e4567-e89b-12d3-a456-426655440000'."\n", - ], + 'schema' => ['description' => 'The VPN gateway instance ID.', 'type' => 'string', 'required' => true, 'example' => 'vpn-gw8gfb947ctddabja****', 'title' => ''], ], [ - 'name' => 'ClientToken', + 'name' => 'PageNumber', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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.'."\n" - ."\n" - .'> 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.'."\n", - 'type' => 'string', - 'required' => false, - 'docRequired' => true, - 'example' => '123e4567-e89b-12d3-a456-426655440000'."\n", - ], + 'schema' => ['description' => 'The page number of the list. Default value: **1**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'default' => '1', 'example' => '1', 'title' => ''], ], [ - 'name' => 'JobId', + 'name' => 'PageSize', 'in' => 'query', - 'schema' => [ - 'title' => '故障演练任务ID', - 'description' => 'The ID of the failover test.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'ftj-xxxxxxxxx', - ], + 'schema' => ['description' => 'The maximum number of entries per page in a paged query. Valid values: **1** to **50**. Default value: **10**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'default' => '10', 'example' => '10', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => 'The returned information.', + 'description' => 'The response parameters.', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => 'C44F62BE-9CE7-4277-B117-69243F3988BF'."\n", + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '885E117D-06A9-38A3-8DD2-40BDAC429FFC', 'title' => ''], + 'VpnGatewayId' => ['description' => 'The VPN gateway instance ID.', 'type' => 'string', 'example' => 'vpn-gw8gfb947ctddabja****', 'title' => ''], + 'PageNumber' => ['description' => 'The page number of the list.', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''], + 'PageSize' => ['description' => 'The maximum number of entries per page in a paged query.', 'type' => 'integer', 'format' => 'int32', 'example' => '10', 'title' => ''], + 'TotalCount' => ['description' => 'The total number of entries in the list.', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''], + 'RegionId' => ['description' => 'The region ID of the VPN gateway instance.', 'type' => 'string', 'example' => 'eu-central-1', 'title' => ''], + 'ClientInfoList' => [ + 'description' => 'The list of client information.', + 'type' => 'array', + 'items' => [ + 'description' => 'The client information.', + 'type' => 'object', + 'properties' => [ + 'Status' => ['description' => 'The status of the SSL-VPN connection.'."\n" + ."\n" + .'Valid values: **online**, which indicates that the client has successfully established an SSL-VPN connection to Alibaba Cloud.', 'type' => 'string', 'example' => 'online', 'title' => ''], + 'PrivateIp' => ['description' => 'The private IP address that the VPN gateway assigned to the client when the client established an SSL-VPN connection to Alibaba Cloud.', 'type' => 'string', 'example' => '10.10.10.10', 'title' => ''], + 'SendBytes' => ['description' => 'The traffic that the VPN gateway sent to the client over the SSL-VPN connection. Unit: bytes.', 'type' => 'integer', 'format' => 'int64', 'example' => '57144', 'title' => ''], + 'ConnectedTime' => ['description' => 'The timestamp when the client established the SSL-VPN connection to Alibaba Cloud. Unit: milliseconds.'."\n" + ."\n" + .'The timestamp is in the UNIX format and represents the total number of milliseconds that have elapsed since January 1, 1970, 00:00:00 UTC to the time when the SSL-VPN connection was established.', 'type' => 'integer', 'format' => 'int64', 'example' => '1670985008000', 'title' => ''], + 'CommonName' => ['description' => 'The SSL client certificate used by the client to establish the SSL-VPN connection to Alibaba Cloud.'."\n" + ."\n" + .'> If the client uses two-factor identity authentication to establish the SSL-VPN connection to Alibaba Cloud, the value of this parameter is the username of the client.', 'type' => 'string', 'example' => 'CN=vsc-gw8gkh6gtilf1whgc****', 'title' => ''], + 'Ip' => ['description' => 'The public IP address that the client used to establish the SSL-VPN connection to Alibaba Cloud.', 'type' => 'string', 'example' => '8.XX.XX.15', 'title' => ''], + 'ReceiveBytes' => ['description' => 'The traffic that the VPN gateway received from the client over the SSL-VPN connection. Unit: bytes.', 'type' => 'integer', 'format' => 'int64', 'example' => '60782', 'title' => ''], + 'Port' => ['description' => 'The port number that the client used to establish the SSL-VPN connection to Alibaba Cloud.', 'type' => 'string', 'example' => '4****', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', ], ], + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'IllegalParam.JobId', - 'errorMessage' => 'The specified parameter JobId is illegal.', - ], - [ - 'errorCode' => 'IncorrectStatus.OnlyForInit', - 'errorMessage' => 'Only the init status failover test job can be started.', - ], - [ - 'errorCode' => 'EcFailoverTestJobResourceInAnotherProcessingJob', - 'errorMessage' => 'There is another processing failover test job.', - ], - [ - 'errorCode' => 'IllegalParam.ResourceId', - 'errorMessage' => 'The input parameter resource ID is invalid.', - ], - [ - 'errorCode' => 'IncorrectStatus.ResourceId', - 'errorMessage' => 'The specified resource status is invalid.', - ], - [ - 'errorCode' => 'IncorrectBusinessStatus.ResourceId', - 'errorMessage' => 'The specified resource business status is invalid.', - ], - [ - 'errorCode' => 'VpconnNotAssociatedVbr', - 'errorMessage' => 'The specified vpconn is not associated with vbr.', - ], - [ - 'errorCode' => 'VpconnWithVlan0NotSupportShutdown', - 'errorMessage' => 'The specified virtualPhysicalConnection with vlan 0 does not support shutdown.', - ], - [ - 'errorCode' => 'PconnContainsMoreThanOneVpconn', - 'errorMessage' => 'The specified physicalConnection contains more than one virtualPhysicalConnection.', - ], - [ - 'errorCode' => 'PconnContailsMoreThanOneAcrossCountVbr', - 'errorMessage' => 'The specified physicalConnection contains more than one virtualBorderRouter which is across count.', - ], - [ - 'errorCode' => 'EcFailoverTestJobConflict', - 'errorMessage' => 'The current failover test job task is in operation, please try again later.', - ], - [ - 'errorCode' => 'AnotherJobTesting', - 'errorMessage' => 'There is another job which is testing.', - ], + ['errorCode' => 'InvalidVpnGatewayInstanceId.NotFound', 'errorMessage' => 'The specified vpn gateway instance id does not exist.', 'description' => 'The specified VPN gateway does not exist. Check whether the specified VPN gateway is valid.'], + ['errorCode' => 'InvalidInstanceId.NotFound', 'errorMessage' => 'The specified instance id does not exist.', 'description' => 'The specified instance ID does not exist.'], + ], + 403 => [ + ['errorCode' => 'Forbbiden.SubUser', 'errorMessage' => 'User not authorized to operate on the specified resource as your account is created by another user.', 'description' => ''], + ['errorCode' => 'Forbidden', 'errorMessage' => 'User not authorized to operate on the specified resource.', 'description' => 'You do not have the permissions to manage the specified resource. Apply for the permissions and try again.'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"C44F62BE-9CE7-4277-B117-69243F3988BF\\\\n\\"\\n}","type":"json"}]', - 'title' => 'StartFailoverTestJob', - 'description' => 'You can perform only failover tests that are in the **Pending** state.'."\n", - ], - 'StopFailoverTestJob' => [ - 'summary' => 'Terminates a failover test.', - 'methods' => [ - 'post', - 'get', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'Query information about SSL-VPN connected clients', + 'summary' => 'Queries information about clients that have established SSL-VPN connections to Alibaba Cloud under a specified VPN gateway instance by calling the DescribeSslVpnClients operation.', + 'description' => 'If your VPN gateway instance was created before December 10, 2022, you must upgrade the VPN gateway instance to the latest version before you can view SSL client connection information. For more information, see [Upgrade a VPN gateway](~~2671058~~).'."\n" + ."\n" + .'VPN gateway instances created after December 10, 2022 support viewing SSL client connection information by default.', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '600', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DescribeSslVpnClients'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'vpc:DescribeSslVpnClients', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VpnGateway', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vpngateway/{#VpnGatewayId}'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"885E117D-06A9-38A3-8DD2-40BDAC429FFC\\",\\n \\"VpnGatewayId\\": \\"vpn-gw8gfb947ctddabja****\\",\\n \\"PageNumber\\": 1,\\n \\"PageSize\\": 10,\\n \\"TotalCount\\": 1,\\n \\"RegionId\\": \\"eu-central-1\\",\\n \\"ClientInfoList\\": [\\n {\\n \\"Status\\": \\"online\\",\\n \\"PrivateIp\\": \\"10.10.10.10\\",\\n \\"SendBytes\\": 57144,\\n \\"ConnectedTime\\": 1670985008000,\\n \\"CommonName\\": \\"CN=vsc-gw8gkh6gtilf1whgc****\\",\\n \\"Ip\\": \\"8.XX.XX.15\\",\\n \\"ReceiveBytes\\": 60782,\\n \\"Port\\": \\"4****\\"\\n }\\n ]\\n}","type":"json"}]', + ], + 'DescribeSslVpnServers' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'read', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'update', - 'riskType' => 'none', - 'chargeType' => 'free', - ], + 'systemTags' => ['operationType' => 'list', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the failover test.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.', - 'type' => 'string', - 'required' => false, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The region ID of the SSL server. '."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the region ID.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'ClientToken', + 'name' => 'SslVpnServerId', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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.'."\n" - ."\n" - .'> 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.'."\n", - 'type' => 'string', - 'required' => false, - 'docRequired' => true, - 'example' => '123e4567-e89b-12d3-a456-426655440000'."\n", - ], + 'schema' => ['description' => 'The ID of the SSL server.', 'type' => 'string', 'required' => false, 'example' => 'vss-bp15j3du13gq1dgey****', 'title' => ''], ], [ - 'name' => 'ClientToken', + 'name' => 'VpnGatewayId', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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.'."\n" - ."\n" - .'> 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.'."\n", - 'type' => 'string', - 'required' => false, - 'docRequired' => true, - 'example' => '123e4567-e89b-12d3-a456-426655440000'."\n", - ], + 'schema' => ['description' => 'The ID of the VPN gateway.', 'type' => 'string', 'required' => false, 'example' => 'vpn-bp1on0xae9d771ggi****', 'title' => ''], ], [ - 'name' => 'JobId', + 'name' => 'Name', 'in' => 'query', - 'schema' => [ - 'title' => '故障演练任务ID', - 'description' => 'The ID of the failover test.', - 'type' => 'string', - 'required' => true, - 'example' => 'ftj-xxxxxxxxx', - ], + 'schema' => ['description' => 'The name of the SSL server.'."\n" + ."\n" + .'The name must be 1 to 100 characters in length and cannot start with `http://` or `https://`.', 'type' => 'string', 'required' => false, 'example' => 'test', 'title' => ''], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => ['description' => 'The page number. Default value: **1**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'default' => '1', 'example' => '1', 'title' => ''], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => ['description' => 'The number of entries per page in paging query. Maximum value: **50**. Default value: **10**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'default' => '10', 'example' => '10', 'title' => ''], + ], + [ + 'name' => 'ResourceGroupId', + 'in' => 'query', + 'schema' => ['description' => 'The ID of the resource group to which the SSL server belongs.'."\n" + ."\n" + .'The SSL server belongs to the same resource group as the associated VPN gateway instance. You can call the [DescribeVpnGateway](~~2794055~~) operation to query the resource group ID of the VPN gateway instance.', 'type' => 'string', 'required' => false, 'example' => 'rg-acfmzs372yg****', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => 'The request ID.', + 'description' => 'The response parameters.', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.', - 'type' => 'string', - 'example' => 'C44F62BE-9CE7-4277-B117-69243F3988BF'."\n", + 'PageSize' => ['description' => 'The number of entries per page in paging query.', 'type' => 'integer', 'format' => 'int32', 'example' => '10', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'D350187B-EA41-4577-950B-95434C8302E1', 'title' => ''], + 'PageNumber' => ['description' => 'The page number.', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''], + 'TotalCount' => ['description' => 'The total number of entries returned.', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''], + 'SslVpnServers' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'SslVpnServer' => [ + 'description' => 'The details of the SSL server.', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'InternetIp' => ['description' => 'The public IP address of the VPN gateway.', 'type' => 'string', 'example' => '47.5.XX.XX', 'title' => ''], + 'IDaaSInstanceId' => ['description' => 'The instance ID of the IDaaS EIAM instance.', 'type' => 'string', 'example' => 'idaas-cn-hangzhou-****', 'title' => ''], + 'CreateTime' => ['description' => 'The timestamp when the SSL server was created.', 'type' => 'integer', 'format' => 'int64', 'example' => '1613800884000', 'title' => ''], + 'VpnGatewayId' => ['description' => 'The ID of the VPN gateway.', 'type' => 'string', 'example' => 'vpn-bp1on0xae9d771ggi****', 'title' => ''], + 'IDaaSRegionId' => ['description' => 'The region ID of the IDaaS EIAM instance.', 'type' => 'string', 'example' => 'cn-hangzhou', 'title' => ''], + 'Compress' => ['description' => 'Indicates whether communication is compressed. Valid values:'."\n" + ."\n" + .'- **true**'."\n" + ."\n" + .'- **false** (default).', 'type' => 'boolean', 'example' => 'false', 'title' => ''], + 'Port' => ['description' => 'The port used by the SSL server.', 'type' => 'integer', 'format' => 'int32', 'example' => '1194', 'title' => ''], + 'LocalSubnet' => ['description' => 'The local CIDR block.', 'type' => 'string', 'example' => '192.168.0.0/24', 'title' => ''], + 'RegionId' => ['description' => 'The region ID of the SSL server.', 'type' => 'string', 'example' => 'cn-hangzhou', 'title' => ''], + 'Cipher' => ['description' => 'The encryption algorithm used.', 'type' => 'string', 'example' => 'AES-128-CBC', 'title' => ''], + 'Connections' => ['description' => 'The current number of connections.', 'type' => 'integer', 'format' => 'int32', 'example' => '0', 'title' => ''], + 'SslVpnServerId' => ['description' => 'The ID of the SSL server.', 'type' => 'string', 'example' => 'vss-bp15j3du13gq1dgey****', 'title' => ''], + 'MaxConnections' => ['description' => 'The maximum number of connections.', 'type' => 'integer', 'format' => 'int32', 'example' => '5', 'title' => ''], + 'Name' => ['description' => 'The name of the SSL server.', 'type' => 'string', 'example' => 'test', 'title' => ''], + 'EnableMultiFactorAuth' => ['description' => 'Indicates whether two-factor identity authentication is enabled. Valid values:'."\n" + ."\n" + .'- **true**'."\n" + ."\n" + .'- **false** (default).', 'type' => 'boolean', 'example' => 'true', 'title' => ''], + 'ClientIpPool' => ['description' => 'The client CIDR block.', 'type' => 'string', 'example' => '10.10.1.0/24', 'title' => ''], + 'Proto' => ['description' => 'The protocol used by the SSL server.', 'type' => 'string', 'example' => 'UDP', 'title' => ''], + 'ResourceGroupId' => ['description' => 'The ID of the resource group to which the SSL server belongs.'."\n" + ."\n" + .'You can call the [ListResourceGroups](~~158855~~) operation to query resource group information.', 'type' => 'string', 'example' => 'rg-acfmzs372yg****', 'title' => ''], + 'IDaaSApplicationId' => ['description' => 'The ID of the IDaaS application.', 'type' => 'string', 'example' => 'app_my6g4qmvnwxzj2f****', 'title' => ''], + 'IDaaSInstanceVersion' => ['description' => 'The version of the IDaaS EIAM instance.'."\n" + ."\n" + .'- This parameter is returned only when the SSL server is associated with an IDaaS EIAM 2.0 instance. The value is **EIAM 2.0**.'."\n" + .'- If the SSL server is associated with an IDaaS EIAM 1.0 instance, this parameter is not returned.', 'type' => 'string', 'example' => 'EIAM 2.0', 'title' => ''], + 'DnsServers' => ['type' => 'string', 'description' => '', 'title' => '', 'example' => ''], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'IllegalParam.JobId', - 'errorMessage' => 'The specified parameter JobId is illegal.', - ], - [ - 'errorCode' => 'IncorrectStatus.OnlyForTesting', - 'errorMessage' => 'Only the failover test job in the testing state can be stopped.', - ], - [ - 'errorCode' => 'EcFailoverTestJobConflict', - 'errorMessage' => 'The current failover test job task is in operation, please try again later.', - ], + 403 => [ + ['errorCode' => 'Forbbiden.SubUser', 'errorMessage' => 'User not authorized to operate on the specified resource as your account is created by another user.', 'description' => ''], + ['errorCode' => 'Forbidden', 'errorMessage' => 'User not authorized to operate on the specified resource.', 'description' => 'You do not have the permissions to manage the specified resource. Apply for the permissions and try again.'], + ], + [ + ['errorCode' => 'InvalidRegionId.NotFound', 'errorMessage' => 'The specified region is not found during access authentication.', 'description' => 'The specified area is not found during authentication.'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'Query created SSL servers', + 'summary' => 'Queries the SSL servers that have been created by calling the DescribeSslVpnServers operation.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2024-05-10T02:03:16.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2023-10-19T07:04:00.000Z', 'description' => 'Request parameters changed, Response parameters changed'], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"C44F62BE-9CE7-4277-B117-69243F3988BF\\\\n\\"\\n}","type":"json"}]', - 'title' => 'StopFailoverTestJob', - ], - 'UpdateFailoverTestJob' => [ - 'summary' => 'Updates a failover test.', - 'methods' => [ - 'post', - 'get', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '600', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DescribeSslVpnServers'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'vpc:DescribeSslVpnServers', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'conditional', 'product' => 'VPC', 'resourceType' => 'SslVpnServer', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:sslvpnserver/*'], + ['validationType' => 'conditional', 'product' => 'VPC', 'resourceType' => 'SslVpnServer', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:sslvpnserver/{#SslVpnServerId}'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"PageSize\\": 10,\\n \\"RequestId\\": \\"D350187B-EA41-4577-950B-95434C8302E1\\",\\n \\"PageNumber\\": 1,\\n \\"TotalCount\\": 1,\\n \\"SslVpnServers\\": {\\n \\"SslVpnServer\\": [\\n {\\n \\"InternetIp\\": \\"47.5.XX.XX\\",\\n \\"IDaaSInstanceId\\": \\"idaas-cn-hangzhou-****\\",\\n \\"CreateTime\\": 1613800884000,\\n \\"VpnGatewayId\\": \\"vpn-bp1on0xae9d771ggi****\\",\\n \\"IDaaSRegionId\\": \\"cn-hangzhou\\",\\n \\"Compress\\": false,\\n \\"Port\\": 1194,\\n \\"LocalSubnet\\": \\"192.168.0.0/24\\",\\n \\"RegionId\\": \\"cn-hangzhou\\",\\n \\"Cipher\\": \\"AES-128-CBC\\",\\n \\"Connections\\": 0,\\n \\"SslVpnServerId\\": \\"vss-bp15j3du13gq1dgey****\\",\\n \\"MaxConnections\\": 5,\\n \\"Name\\": \\"test\\",\\n \\"EnableMultiFactorAuth\\": true,\\n \\"ClientIpPool\\": \\"10.10.1.0/24\\",\\n \\"Proto\\": \\"UDP\\",\\n \\"ResourceGroupId\\": \\"rg-acfmzs372yg****\\",\\n \\"IDaaSApplicationId\\": \\"app_my6g4qmvnwxzj2f****\\",\\n \\"IDaaSInstanceVersion\\": \\"EIAM 2.0\\",\\n \\"DnsServers\\": \\"\\"\\n }\\n ]\\n }\\n}","type":"json"}]', + ], + 'DescribeTagKeys' => [ + 'summary' => 'Queries tag keys.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'update', - 'riskType' => 'none', - 'chargeType' => 'free', - ], + 'operationType' => 'read', + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ - 'name' => 'RegionId', + 'name' => 'ResourceType', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the failover test.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.', - 'type' => 'string', - 'required' => false, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The resource type. Valid values:'."\n" + ."\n" + .'* **VPC**: virtual private cloud (VPC)'."\n" + .'* **VSWITCH**: vSwitch'."\n" + .'* **ROUTETABLE**: route table'."\n" + .'* **EIP**: elastic IP address (EIP)'."\n" + .'* **VpnGateway**: VPN gateway'."\n" + .'* **NATGATEWAY**: NAT gateway'."\n" + .'* **COMMONBANDWIDTHPACKAGE**: EIP bandwidth plan'."\n", 'type' => 'string', 'required' => false, 'example' => 'VPC', 'title' => ''], ], [ - 'name' => 'ClientToken', + 'name' => 'Keyword', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'You can use the client to generate the value, but you must make sure that the value is unique among different requests. The token can contain only ASCII characters and cannot exceed 64 characters in length.'."\n" - ."\n" - .'> If you do not set this parameter, the system uses the value of **RequestId** as **ClientToken**. The value of **RequestId** for each API request is different.'."\n", - 'type' => 'string', - 'required' => false, - 'docRequired' => true, - 'example' => '123e4567-e89b-12d3-a456-426655440000'."\n", - ], + 'schema' => ['description' => 'The tag keys.'."\n", 'type' => 'string', 'required' => false, 'example' => 'keyword', 'title' => ''], ], [ - 'name' => 'ClientToken', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'You can use the client to generate the value, but you must make sure that the value is unique among different requests. The token can contain only ASCII characters and cannot exceed 64 characters in length.'."\n" - ."\n" - .'> If you do not set this parameter, the system uses the value of **RequestId** as **ClientToken**. The value of **RequestId** for each API request is different.'."\n", - 'type' => 'string', - 'required' => false, - 'docRequired' => true, - 'example' => '123e4567-e89b-12d3-a456-426655440000'."\n", - ], + 'schema' => ['description' => 'The region ID of the resource.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'Name', + 'name' => 'NextToken', 'in' => 'query', - 'schema' => [ - 'title' => '故障演练任务的名称。'."\n" - .'长度为0~128个字符,不能以http:// 或https://开头。', - 'description' => 'The name of the failover test.'."\n" - ."\n" - .'The name must be 0 to 128 characters in length and cannot start with `http://` or `https://`.', - 'type' => 'string', - 'required' => false, - 'example' => 'test', - ], + 'schema' => ['description' => 'The token that is used for the next query. Valid values:'."\n" + ."\n" + .'* If this is your first query or no next query is to be sent, ignore this parameter.'."\n" + .'* If a subsequent query is to be sent, set the parameter to the value of NextToken that is returned from the last call.'."\n", 'type' => 'string', 'required' => false, 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', 'title' => ''], ], [ - 'name' => 'Description', + 'name' => 'MaxResult', 'in' => 'query', - 'schema' => [ - 'title' => '故障演练任务的描述信息。'."\n" - .'长度为0~256个字符,不能以http://或https://开头。', - 'description' => 'The description of the failover test.'."\n" - ."\n" - .'The description must be 0 to 256 characters in length and cannot start with `http://` or `https://`.', - 'type' => 'string', - 'required' => false, - 'example' => 'test', - ], + 'schema' => ['description' => 'The number of entries per page. Valid values: 1 to 50. Default value: 50.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '500', 'default' => '100', 'example' => '50', 'title' => ''], ], [ 'name' => 'ResourceId', 'in' => 'query', - 'allowEmptyValue' => false, 'style' => 'repeatList', 'schema' => [ - 'title' => '资源ID列表。最多可以添加16个资源。', - 'description' => 'The IDs of the failover test resources. You can add at most 16 resources.', + 'description' => 'The resource IDs. You can specify up to 20 resource IDs.'."\n", 'type' => 'array', - 'items' => [ - 'description' => 'The ID of the resource.', - 'type' => 'string', - 'required' => false, - 'example' => 'pc-uf66k4e8pq3r00jfqo0b5'."\n", - ], - 'required' => false, - 'maxItems' => 16, - 'minItems' => 1, - ], - ], - [ - 'name' => 'JobDuration', - 'in' => 'query', - 'schema' => [ - 'title' => '任务时长。单位为分钟,取值范围为:1-4320。', - 'description' => 'The duration of the failover test. Unit: minutes. Valid values: **1** to **4320**.', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '4320', - 'minimum' => '1', - 'example' => '60', - ], - ], - [ - 'name' => 'JobId', - 'in' => 'query', - 'schema' => [ - 'title' => '故障演练任务ID', - 'description' => 'The ID of the failover test.', - 'type' => 'string', - 'required' => true, - 'example' => 'ftj-xxxxxxxxx', - ], - ], - [ - 'name' => 'DryRun', - 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values:'."\n" + 'items' => ['description' => 'The ID of the resource. You can enter at most 50 IDs.'."\n" ."\n" - .'* **true**: performs only a dry run. 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.'."\n" - .'* **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.'."\n", - 'type' => 'boolean', + .'> If you set this parameter, you must set **ResourceType**.'."\n", 'type' => 'string', 'required' => false, 'example' => 'vpc-bp16qjewdsunr41m1****', 'title' => ''], 'required' => false, - 'example' => 'false', + 'maxItems' => 21, + 'title' => '', ], ], ], 'responses' => [ 200 => [ + 'headers' => [], 'schema' => [ - 'description' => '', + 'description' => ' object', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => 'C44F62BE-9CE7-4277-B117-69243F3988BF'."\n", + 'NextToken' => ['description' => 'The token that is used for the next query. Valid values:'."\n" + ."\n" + .'* If the value of **NextToken** is not returned, it indicates that no next query is to be sent.'."\n" + .'* If a value of **NextToken** is returned, the value is the token that is used for the subsequent query.'."\n", 'type' => 'string', 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', 'title' => ''], + 'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => 'DE65F6B7-7566-4802-9007-96F2494AC512', 'title' => ''], + 'TagKeys' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'TagKey' => [ + 'description' => 'The list of tag keys.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'Type' => ['description' => 'The type of the tag key. Valid values:'."\n" + ."\n" + .'* **Custom**: custom'."\n" + .'* **System**: system'."\n", 'type' => 'string', 'example' => 'Custom', 'title' => ''], + 'TagKey' => ['description' => 'The tag key.'."\n", 'type' => 'string', 'example' => 'FinanceDept', 'title' => ''], + ], + 'title' => '', + ], + 'title' => '', + ], + ], + 'description' => '', + 'title' => '', ], ], + 'title' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'IllegalParam.Name', - 'errorMessage' => 'The param of Name [%s] is illegal.', - ], - [ - 'errorCode' => 'IllegalParam.Description', - 'errorMessage' => 'The param of Description [%s] is illegal.', - ], - [ - 'errorCode' => 'EcFailoverTestJobExceedMaxResourceNum', - 'errorMessage' => 'The input resource number is exceeded the quota of 16.', - ], - [ - 'errorCode' => 'EcFailoverTestJobResourceInAnotherProcessingJob', - 'errorMessage' => 'There is another processing failover test job.', - ], - [ - 'errorCode' => 'IllegalParam.ResourceId', - 'errorMessage' => 'The input parameter resource ID is invalid.', - ], - [ - 'errorCode' => 'IncorrectStatus.ResourceId', - 'errorMessage' => 'The specified resource status is invalid.', - ], - [ - 'errorCode' => 'IncorrectBusinessStatus.ResourceId', - 'errorMessage' => 'The specified resource business status is invalid.', - ], - [ - 'errorCode' => 'VpconnNotAssociatedVbr', - 'errorMessage' => 'The specified vpconn is not associated with vbr.', - ], - [ - 'errorCode' => 'VpconnWithVlan0NotSupportShutdown', - 'errorMessage' => 'The specified virtualPhysicalConnection with vlan 0 does not support shutdown.', - ], - [ - 'errorCode' => 'PconnContainsMoreThanOneVpconn', - 'errorMessage' => 'The specified physicalConnection contains more than one virtualPhysicalConnection.', - ], - [ - 'errorCode' => 'PconnContailsMoreThanOneAcrossCountVbr', - 'errorMessage' => 'The specified physicalConnection contains more than one virtualBorderRouter which is across count.', - ], - [ - 'errorCode' => 'IllegalParam.JobDuration', - 'errorMessage' => 'The specified parameter JobDuration is illegal.', - ], - [ - 'errorCode' => 'IllegalParam.JobId', - 'errorMessage' => 'The specified parameter JobId is illegal.', - ], - [ - 'errorCode' => 'IncorrectStatus.OnlyForInit', - 'errorMessage' => 'Only the init status failover test job can be started.', - ], - [ - 'errorCode' => 'MultiplePconnSingleVbrNotSupportShutdown', - 'errorMessage' => 'Vbr for single vbr and multiple pconn scenarios does not support failover test job.', - ], - [ - 'errorCode' => 'EcFailoverTestJobConflict', - 'errorMessage' => 'The current failover test job task is in operation, please try again later.', - ], + ['errorCode' => 'BothEmpty.TagsAndResources', 'errorMessage' => 'The specified Tags and ResourcesIds are not allow to both empty.', 'description' => 'The tags and resource groups cannot be empty at the same time.'], + ['errorCode' => 'MissingParameter.TagKey', 'errorMessage' => 'The input parameter TagKey that is mandatory for processing this request is not supplied.', 'description' => 'The TagKey parameter is not set.'], + ['errorCode' => 'MissingParameter.TagValue', 'errorMessage' => 'The input parameter TagValue that is mandatory for processing this request is not supplied.', 'description' => 'The TagValue parameter is not set.'], + ['errorCode' => 'InvalidTagKey', 'errorMessage' => 'The tag keys are not valid.', 'description' => 'The tag index is invalid.'], + ['errorCode' => 'InvalidTagValue', 'errorMessage' => 'The tag values are not valid.', 'description' => 'The tag value is invalid.'], + ['errorCode' => 'MissingParam', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'InvalidInstanceType.NotFound', 'errorMessage' => 'The instance type is not found', 'description' => 'The instance type is not found.'], + ['errorCode' => 'InvalidInstanceIds.NotFound', 'errorMessage' => 'The instanceIds are not found', 'description' => 'The instance ID is not found.'], + ['errorCode' => 'Forbidden.TagKeys', 'errorMessage' => 'The request do not allow to operate the tag keys', 'description' => 'You do not have the permissions to set the TagKeys parameter.'], + ['errorCode' => 'QuotaExceeded.TagNum', 'errorMessage' => 'Custom Tags quota exceeded', 'description' => 'The upper limit is reached.'], + ['errorCode' => 'Forbidden.NotAllowedCategary', 'errorMessage' => 'The System tag is not valid', 'description' => 'The error message returned because the system tag is invalid.'], + ['errorCode' => 'Forbidden.TagKey.Duplicated', 'errorMessage' => 'The specified tag key already exists.', 'description' => 'The tag resources are duplicate.'], + ['errorCode' => 'SizeLimitExceeded.TagNum', 'errorMessage' => 'The maximum number of tags is exceeded.', 'description' => 'The number of tags has reached the upper limit.'], + ['errorCode' => 'SizeLimitExceeded.ResourceId', 'errorMessage' => 'The maximum number of resource IDs is exceeded.', 'description' => 'The number of resource group IDs has reached the upper limit.'], + ], + 403 => [ + ['errorCode' => 'Forbidden', 'errorMessage' => 'User not authorized to operate on the specified resource.', 'description' => 'You do not have the permissions to manage the specified resource. Apply for the permissions and try again.'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'title' => 'DescribeTagKeys', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'vpc:DescribeTagKeys', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"C44F62BE-9CE7-4277-B117-69243F3988BF\\\\n\\"\\n}","type":"json"}]', - 'title' => 'UpdateFailoverTestJob', + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"NextToken\\": \\"FFmyTO70tTpLG6I3FmYAXGKPd****\\",\\n \\"RequestId\\": \\"DE65F6B7-7566-4802-9007-96F2494AC512\\",\\n \\"TagKeys\\": {\\n \\"TagKey\\": [\\n {\\n \\"Type\\": \\"Custom\\",\\n \\"TagKey\\": \\"FinanceDept\\"\\n }\\n ]\\n }\\n}","type":"json"}]', ], - 'DeleteFailoverTestJob' => [ - 'summary' => 'Deletes a failover test.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DescribeTagKeysForExpressConnect' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'read', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'delete', - 'riskType' => 'none', - 'chargeType' => 'free', - ], + 'systemTags' => ['operationType' => 'list', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ + [ + 'name' => 'ResourceType', + 'in' => 'query', + 'schema' => ['description' => 'The type of the resource. Set the value to **PHYSICALCONNECTION**, which specifies an Express Connect circuit.'."\n", 'type' => 'string', 'required' => false, 'example' => 'PHYSICALCONNECTION', 'title' => ''], + ], + [ + 'name' => 'Keyword', + 'in' => 'query', + 'schema' => ['description' => 'The keyword of the tag. Fuzzy match is supported. You can specify a keyword to query all tags that contain the keyword.'."\n", 'type' => 'string', 'required' => false, 'example' => 'keyword', 'title' => ''], + ], [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the failover test.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => false, - 'docRequired' => true, - 'example' => 'ch-hangzhou', - ], + 'schema' => ['description' => 'The ID of the region to which the resource resides.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to obtain the region ID.'."\n", 'type' => 'string', 'required' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'ClientToken', + 'name' => 'NextToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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.'."\n" - ."\n" - .'> 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.'."\n", - 'type' => 'string', - 'required' => false, - 'docRequired' => true, - 'example' => '123e4567-e89b-12d3-a456-426655440000'."\n", - ], + 'schema' => ['description' => 'The pagination token that is used in the next request to retrieve a new page of results.'."\n" + ."\n" + .'* You do not need to specify this parameter for the first request.'."\n" + .'* You must specify the token that is obtained from the previous query as the value of NextToken.'."\n", 'type' => 'string', 'required' => false, 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', 'title' => ''], ], [ - 'name' => 'ClientToken', + 'name' => 'MaxResult', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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.'."\n" - ."\n" - .'> 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.'."\n", - 'type' => 'string', - 'required' => false, - 'docRequired' => true, - 'example' => '123e4567-e89b-12d3-a456-426655440000'."\n", - ], + 'schema' => ['description' => 'The number of entries per page. Valid values: **1** to **100**. Default value: **20**.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '500', 'example' => '20', 'default' => '100', 'title' => ''], ], [ - 'name' => 'JobId', + 'name' => 'ResourceId', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'title' => '故障演练任务ID', - 'description' => 'The ID of the failover test.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'ftj-xxxxxxxxx', + 'description' => 'The IDs of the resources. You can specify up to 20 resource IDs.'."\n", + 'type' => 'array', + 'items' => ['description' => 'The resource ID. You can specify up to 20 resource IDs.'."\n", 'type' => 'string', 'required' => false, 'example' => 'pc-bp16qjewdsunr41m1****', 'title' => ''], + 'required' => false, + 'maxItems' => 21, + 'title' => '', + 'example' => '', ], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => '', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => 'C44F62BE-9CE7-4277-B117-69243F3988BF'."\n", + 'NextToken' => ['description' => 'A pagination token. It can be used in the next request to retrieve a new page of results.'."\n" + ."\n" + .'* If **NextToken** is empty, no next page exists.'."\n" + .'* If a value is returned for **NextToken**, the value can be used in the next request to retrieve a new page of results.'."\n", 'type' => 'string', 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B45', 'title' => ''], + 'TagKeys' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'TagKey' => [ + 'description' => 'The tag keys.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'Type' => ['description' => 'The type of the resource. The value is set to **PHYSICALCONNECTION**, which indicates an Express Connect circuit.'."\n", 'type' => 'string', 'example' => 'System', 'title' => ''], + 'TagKey' => ['description' => 'The key of the tag.'."\n", 'type' => 'string', 'example' => 'FinanceDept', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'IllegalParam.JobId', - 'errorMessage' => 'The specified parameter JobId is illegal.', - ], - [ - 'errorCode' => 'IncorrectStatus.OnlyForInitOrStopped', - 'errorMessage' => 'Only failover test job in the status of init or stopped can be deleted.', - ], - [ - 'errorCode' => 'EcFailoverTestJobConflict', - 'errorMessage' => 'The current failover test job task is in operation, please try again later.', - ], + ['errorCode' => 'BothEmpty.TagsAndResources', 'errorMessage' => 'The specified Tags and ResourcesIds are not allow to both empty.', 'description' => 'The tags and resource groups cannot be empty at the same time.'], + ['errorCode' => 'MissingParameter.TagKey', 'errorMessage' => 'The input parameter TagKey that is mandatory for processing this request is not supplied.', 'description' => 'The TagKey parameter is not set.'], + ['errorCode' => 'MissingParameter.TagValue', 'errorMessage' => 'The input parameter TagValue that is mandatory for processing this request is not supplied.', 'description' => 'The TagValue parameter is not set.'], + ['errorCode' => 'InvalidTagKey', 'errorMessage' => 'The tag keys are not valid.', 'description' => 'The tag index is invalid.'], + ['errorCode' => 'InvalidTagValue', 'errorMessage' => 'The tag values are not valid.', 'description' => 'The tag value is invalid.'], + ['errorCode' => 'InvalidInstanceType.NotFound', 'errorMessage' => 'The instance type is not found', 'description' => 'The instance type is not found.'], + ['errorCode' => 'InvalidInstanceIds.NotFound', 'errorMessage' => 'The instanceIds are not found', 'description' => 'The instance ID is not found.'], + ['errorCode' => 'Forbidden.TagKeys', 'errorMessage' => 'The request do not allow to operate the tag keys', 'description' => 'You do not have the permissions to set the TagKeys parameter.'], + ['errorCode' => 'QuotaExceeded.TagNum', 'errorMessage' => 'Custom Tags quota exceeded', 'description' => 'The upper limit is reached.'], + ['errorCode' => 'Forbidden.TagKey.Duplicated', 'errorMessage' => 'The specified tag key already exists.', 'description' => 'The tag resources are duplicate.'], + ['errorCode' => 'SizeLimitExceeded.ResourceId', 'errorMessage' => 'The maximum number of resource IDs is exceeded.', 'description' => 'The number of resource group IDs has reached the upper limit.'], + ], + 403 => [ + ['errorCode' => 'Forbidden', 'errorMessage' => 'User not authorized to operate on the specified resource.', 'description' => 'You do not have the permissions to manage the specified resource. Apply for the permissions and try again.'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"C44F62BE-9CE7-4277-B117-69243F3988BF\\\\n\\"\\n}","type":"json"}]', - 'title' => 'DeleteFailoverTestJob', - 'description' => 'You can delete only failover tests that are in the **Pending** or **Complete** state.'."\n", + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'DescribeTagKeysForExpressConnect', + 'summary' => 'Queries the tags of an Express Connect circuit.', + 'changeSet' => [], + 'ramActions' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"NextToken\\": \\"FFmyTO70tTpLG6I3FmYAXGKPd****\\",\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B45\\",\\n \\"TagKeys\\": {\\n \\"TagKey\\": [\\n {\\n \\"Type\\": \\"System\\",\\n \\"TagKey\\": \\"FinanceDept\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n FFmyTO70tTpLG6I3FmYAXGKPd****\\n 54B48E3D-DF70-471B-AA93-08E683A1B45\\n \\n PHYSICALCONNECTION\\n FinanceDept\\n \\n","errorExample":""}]', ], - 'DescribeFailoverTestJob' => [ - 'summary' => 'Queries failover tests.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DescribeTags' => [ + 'summary' => 'Queries a list of tags that meet the specified filter conditions.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'read', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'get', - 'riskType' => 'none', - 'chargeType' => 'free', - ], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ + [ + 'name' => 'ResourceType', + 'in' => 'query', + 'schema' => ['description' => 'The resource type. Valid values:'."\n" + .'- **VPC**: virtual private cloud (VPC) instance.'."\n" + .'- **VSWITCH**: virtual switch instance.'."\n" + .'- **ROUTETABLE**: route table instance.'."\n" + .'- **EIP**: elastic IP address (EIP) instance.'."\n" + .'- **VPNGATEWAY**: VPN gateway instance.'."\n" + .'- **NATGATEWAY**: NAT gateway instance.'."\n" + .'- **COMMONBANDWIDTHPACKAGE**: Internet Shared Bandwidth instance.'."\n" + .'- **PREFIXLIST**: prefix list instance.'."\n" + .'- **PUBLICIPADDRESSPOOL**: IP address pool instance.'."\n" + .'- **IPV4GATEWAY**: IPv4 gateway instance.'."\n" + .'- **IPV6GATEWAY**: IPv6 gateway instance.'."\n" + .'- **NETWORKACL**: network ACL instance.'."\n" + .'- **TRAFFICMIRRORFILTER**: traffic mirror filter instance.'."\n" + .'- **TRAFFICMIRRORSESSION**: traffic mirror session instance.'."\n" + .'- **FLOWLOG**: flow log instance.'."\n" + .'- **HAVIP**: high-availability virtual IP address instance.'."\n" + .'- **DHCPOPTIONSSET**: DHCP options set instance.'."\n" + .'- **GATEWAYENDPOINT**: gateway endpoint instance.'."\n" + ."\n" + .'> The resource type value is case-insensitive.', 'type' => 'string', 'required' => false, 'example' => 'VPC', 'title' => ''], + ], [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the failover test.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => false, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The region ID of the resource.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the region ID.', 'type' => 'string', 'required' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'ClientToken', + 'name' => 'NextToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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.'."\n" - ."\n" - .'> 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.'."\n", - 'type' => 'string', - 'required' => false, - 'docRequired' => true, - 'example' => '123e4567-e89b-12d3-a456-426655440000', - ], + 'schema' => ['description' => 'The pagination token. Valid values:'."\n" + .'- If this is the first query or no subsequent query exists, leave this parameter empty.'."\n" + .'- If a subsequent query exists, set this parameter to the NextToken value returned by the previous API call.', 'type' => 'string', 'required' => false, 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', 'title' => ''], ], [ - 'name' => 'ClientToken', + 'name' => 'MaxResult', + 'in' => 'query', + 'schema' => ['description' => 'The number of entries per page. Valid values: 1 to 50. Default value: 50.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '500', 'default' => '100', 'example' => '50', 'title' => ''], + ], + [ + 'name' => 'ResourceId', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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.'."\n" + 'description' => 'The resource ID. You can specify up to 50 resource IDs.', + 'type' => 'array', + 'items' => ['description' => 'The resource ID. You can specify up to 50 resource IDs.'."\n" ."\n" - .'> 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.'."\n", - 'type' => 'string', + .'> When you specify this parameter, you must also specify the **ResourceType** parameter.', 'type' => 'string', 'required' => false, 'example' => 'vpc-bp16qjewdsunr41m1****', 'title' => ''], 'required' => false, - 'docRequired' => true, - 'example' => '123e4567-e89b-12d3-a456-426655440000', + 'maxItems' => 21, + 'title' => '', + 'example' => '', ], ], [ - 'name' => 'JobId', + 'name' => 'Tag', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'title' => '故障演练任务ID', - 'description' => 'The ID of the failover test.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'ftj-xxxxxxxxx'."\n", + 'description' => 'The tags of the resource.', + 'type' => 'array', + 'items' => [ + 'description' => 'The tags of the resource.', + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => 'The tag key of the resource. You can specify up to 20 tag keys.'."\n" + ."\n" + .'A tag key can be up to 128 characters in length. It cannot be an empty string or start with `aliyun` or `acs:`, and cannot contain `http://` or `https://`.', 'type' => 'string', 'required' => false, 'example' => 'FinanceDept', 'title' => ''], + 'Value' => ['description' => 'The tag value of the resource. You can specify up to 20 tag values.'."\n" + ."\n" + .'A tag value can be up to 128 characters in length. It can be an empty string but cannot start with `aliyun` or `acs:`, and cannot contain `http://` or `https://`.', 'type' => 'string', 'required' => false, 'example' => 'FinanceJoshua', 'title' => ''], + ], + 'required' => false, + 'title' => '', + 'example' => '', + ], + 'required' => false, + 'maxItems' => 21, + 'title' => '', + 'example' => '', ], ], ], 'responses' => [ 200 => [ + 'headers' => [], 'schema' => [ - 'description' => 'The response parameters.'."\n", + 'description' => 'object', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => '请求ID。', - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => 'C44F62BE-9CE7-4277-B117-69243F3988BF', - ], - 'FailoverTestJobModel' => [ - 'description' => 'The failover test.'."\n", + 'NextToken' => ['description' => 'The pagination token. Valid values:'."\n" + .'- If **NextToken** is empty, no subsequent query exists.'."\n" + .'- If **NextToken** is returned, the value indicates the token for the next query.', 'type' => 'string', 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'C46FF5A8-C5F0-4024-8262-B16B639225A0', 'title' => ''], + 'TagResources' => [ 'type' => 'object', + 'itemNode' => true, 'properties' => [ - 'JobId' => [ - 'title' => '故障演练任务ID。', - 'description' => 'The ID of the failover test.'."\n", - 'type' => 'string', - 'example' => 'ftj-xxxxxxxxx'."\n", - ], - 'Name' => [ - 'title' => '故障演练任务的名称。'."\n" - .'长度为0~128个字符,不能以http:// 或https://开头。', - 'description' => 'The name of the failover test.'."\n" - ."\n" - .'The name must be 0 to 128 characters in length and cannot start with `http://` or `https://`.'."\n", - 'type' => 'string', - 'example' => 'test', - ], - 'Description' => [ - 'title' => '故障演练任务的描述信息。'."\n" - .'长度为0~256个字符,不能以http://或https://开头。', - 'description' => 'The description of the failover test.'."\n" - ."\n" - .'The description must be 0 to 256 characters in length and cannot start with `http://` or `https://`.'."\n", - 'type' => 'string', - 'example' => 'test', - ], - 'ResourceType' => [ - 'title' => '资源类型。取值:'."\n" - .'● PHYSICALCONNECTION 物理专线'."\n" - .'● VIRTUALBORDERROUTER 虚拟边界路由器'."\n" - .'● BGPPEER BGP邻居', - 'description' => 'The type of failover test resource. Only **PHYSICALCONNECTION** is returned.'."\n", - 'type' => 'string', - 'example' => 'PHYSICALCONNECTION', - ], - 'ResourceId' => [ - 'description' => 'The IDs of failover test resources.'."\n", + 'TagResource' => [ + 'description' => 'The list of all tags that meet the filter conditions.', 'type' => 'array', 'items' => [ - 'description' => 'The ID of the resource.'."\n", - 'type' => 'string', - 'example' => 'pc-hp34pxu31qo36a72u7mgo', + 'description' => 'The tag list.', + 'type' => 'object', + 'properties' => [ + 'TagValue' => ['description' => 'The tag value.', 'type' => 'string', 'example' => 'FinanceJoshua', 'title' => ''], + 'TagKey' => ['description' => 'The tag key.', 'type' => 'string', 'example' => 'FinanceDept', 'title' => ''], + ], + 'title' => '', + 'example' => '', ], - ], - 'JobType' => [ - 'title' => '演练类型。取值:'."\n" - .'● StartNow 立即开始'."\n" - .'● StartLater 稍后开始', - 'description' => 'Indicates whether the failover test is performed immediately. Valid values:'."\n" - ."\n" - .'* **StartNow**'."\n" - .'* **StartLater**'."\n", - 'type' => 'string', - 'example' => 'StartNow', - ], - 'JobDuration' => [ - 'title' => '演练时长。单位为分钟,取值范围为:1-4320', - 'description' => 'The duration of the failover test. Unit: minutes. Valid values: **1 to 4320**.'."\n", - 'type' => 'string', - 'example' => '60', - ], - 'StartTime' => [ - 'title' => '故障演练任务开始时间。按照ISO8601标准表示,并需要使用UTC时间。格式为:YYYY-MM-DDThh:mm:ssZ。', - 'description' => 'The start time of the failover test. The time follows the ISO 8601 standard in the YYYY-MM-DDThh:mm:ssZ format. The time is displayed in UTC.', - 'type' => 'string', - 'example' => '2023-11-21T14:00:00Z'."\n", - ], - 'StopTime' => [ - 'title' => '故障演练任务结束时间。按照ISO8601标准表示,并需要使用UTC时间。格式为:YYYY-MM-DDThh:mm:ssZ。', - 'description' => 'The end time of the failover test. The time follows the ISO 8601 standard in the YYYY-MM-DDThh:mm:ssZ format. The time is displayed in UTC.', - 'type' => 'string', - 'example' => '2023-11-21T15:00:00Z'."\n", - ], - 'Status' => [ - 'title' => '故障演练任务状态。取值:'."\n" - .'● Init 待演练'."\n" - .'● Starting 开始中'."\n" - .'● Testing 演练中'."\n" - .'● Stopping 结束中'."\n" - .'● Stopped 已结束', - 'description' => 'The status of the failover test. Valid values:'."\n" - ."\n" - .'* **Init**'."\n" - .'* **Starting**'."\n" - .'* **Testing**'."\n" - .'* **Stopping**'."\n" - .'* **Stopped**'."\n", - 'type' => 'string', - 'example' => 'Init', + 'title' => '', + 'example' => '', ], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'IllegalParam.JobId', - 'errorMessage' => 'The specified parameter JobId is illegal.', - ], + ['errorCode' => 'BothEmpty.TagsAndResources', 'errorMessage' => 'The specified Tags and ResourcesIds are not allow to both empty.', 'description' => 'The tags and resource groups cannot be empty at the same time.'], + ['errorCode' => 'MissingParameter.TagKey', 'errorMessage' => 'The input parameter TagKey that is mandatory for processing this request is not supplied.', 'description' => 'The TagKey parameter is not set.'], + ['errorCode' => 'MissingParameter.TagValue', 'errorMessage' => 'The input parameter TagValue that is mandatory for processing this request is not supplied.', 'description' => 'The TagValue parameter is not set.'], + ['errorCode' => 'InvalidTagKey', 'errorMessage' => 'The tag keys are not valid.', 'description' => 'The tag index is invalid.'], + ['errorCode' => 'InvalidTagValue', 'errorMessage' => 'The tag values are not valid.', 'description' => 'The tag value is invalid.'], + ['errorCode' => 'MissingParam', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'InvalidInstanceType.NotFound', 'errorMessage' => 'The instance type is not found', 'description' => 'The instance type is not found.'], + ['errorCode' => 'InvalidInstanceIds.NotFound', 'errorMessage' => 'The instanceIds are not found', 'description' => 'The instance ID is not found.'], + ['errorCode' => 'Forbidden.TagKeys', 'errorMessage' => 'The request do not allow to operate the tag keys', 'description' => 'You do not have the permissions to set the TagKeys parameter.'], + ['errorCode' => 'QuotaExceeded.TagNum', 'errorMessage' => 'Custom Tags quota exceeded', 'description' => 'The upper limit is reached.'], + ['errorCode' => 'Forbidden.NotAllowedCategary', 'errorMessage' => 'The System tag is not valid', 'description' => 'The error message returned because the system tag is invalid.'], + ['errorCode' => 'Forbidden.TagKey.Duplicated', 'errorMessage' => 'The specified tag key already exists.', 'description' => 'The tag resources are duplicate.'], + ['errorCode' => 'SizeLimitExceeded.TagNum', 'errorMessage' => 'The maximum number of tags is exceeded.', 'description' => 'The number of tags has reached the upper limit.'], + ['errorCode' => 'SizeLimitExceeded.ResourceId', 'errorMessage' => 'The maximum number of resource IDs is exceeded.', 'description' => 'The number of resource group IDs has reached the upper limit.'], + ], + 403 => [ + ['errorCode' => 'Forbidden', 'errorMessage' => 'User not authorized to operate on the specified resource.', 'description' => 'You do not have the permissions to manage the specified resource. Apply for the permissions and try again.'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"C44F62BE-9CE7-4277-B117-69243F3988BF\\",\\n \\"FailoverTestJobModel\\": {\\n \\"JobId\\": \\"ftj-bp1yh6mvi13aq3g8w****\\",\\n \\"Name\\": \\"test\\",\\n \\"Description\\": \\"test\\",\\n \\"ResourceType\\": \\"PHYSICALCONNECTION\\",\\n \\"ResourceId\\": [\\n \\"pc-hp34pxu31qo36a72u****\\"\\n ],\\n \\"JobType\\": \\"StartNow\\",\\n \\"JobDuration\\": \\"60\\",\\n \\"StartTime\\": \\"2023-11-21T14:00:00Z\\\\n\\",\\n \\"StopTime\\": \\"2023-11-21T15:00:00Z\\\\n\\",\\n \\"Status\\": \\"Init\\"\\n }\\n}","type":"json"}]', - 'title' => 'DescribeFailoverTestJob', - ], - 'DescribeFailoverTestJobs' => [ - 'summary' => 'Queries failover tests for Express Connect.', - 'methods' => [ - 'post', - 'get', + 'title' => 'Query tags that meet filter conditions', + 'description' => '- Specify at least **ResourceId.N** or **Tag.N** (**Tag.N.Key** and **Tag.N.Value**) in the request to determine the objects to query.'."\n" + ."\n" + .'- **Tag.N** is a tag of a resource and consists of a key-value pair. If you specify only **Tag.N.Key**, all tag values associated with the tag key are returned. If you specify only **Tag.N.Value**, an error is returned.'."\n" + ."\n" + .'- If you specify both **Tag.N** and **ResourceId.N** to filter tags, **ResourceId.N** must match any of the specified tag key-value pairs.'."\n" + ."\n" + .'- If you specify multiple tag key-value pairs, the results contain all tags that match any of the tag key-value pairs.', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DescribeTags'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'vpc:DescribeTags', + 'authLevel' => 'resource', + 'actionConditions' => [ + ['conditionKey' => 'vpc:tag', 'validationType' => 'always'], + ], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"NextToken\\": \\"FFmyTO70tTpLG6I3FmYAXGKPd****\\",\\n \\"RequestId\\": \\"C46FF5A8-C5F0-4024-8262-B16B639225A0\\",\\n \\"TagResources\\": {\\n \\"TagResource\\": [\\n {\\n \\"TagValue\\": \\"FinanceJoshua\\",\\n \\"TagKey\\": \\"FinanceDept\\"\\n }\\n ]\\n }\\n}","type":"json"}]', + ], + 'DescribeVRouters' => [ + 'summary' => 'Calls the DescribeVRouters operation to query the list of vRouters in a specified region.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -44348,356 +33842,282 @@ ], 'operationType' => 'read', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'list', - 'riskType' => 'none', - 'chargeType' => 'free', - ], + 'systemTags' => ['operationType' => 'list'], 'parameters' => [ [ - 'name' => 'RegionId', + 'name' => 'VRouterId', 'in' => 'query', - 'schema' => [ - 'description' => 'The region where you want to perform the failover test.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => false, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The ID of the vRouter to query.', 'type' => 'string', 'required' => false, 'example' => 'vrt-bp1lhl0taikrteen****', 'title' => ''], ], [ - 'name' => 'ClientToken', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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.'."\n" - ."\n" - .'> 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.'."\n", - 'type' => 'string', - 'required' => false, - 'docRequired' => true, - 'example' => '123e4567-e89b-12d3-a456-426655440000', - ], + 'schema' => ['description' => 'The ID of the region where the vRouter resides.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the region ID.', 'type' => 'string', 'required' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'ClientToken', + 'name' => 'PageNumber', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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.'."\n" - ."\n" - .'> 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.'."\n", - 'type' => 'string', - 'required' => false, - 'docRequired' => true, - 'example' => '123e4567-e89b-12d3-a456-426655440000', - ], + 'schema' => ['description' => 'The page number of the list. Default value: **1**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'minimum' => '1', 'example' => '1', 'title' => ''], ], [ - 'name' => 'NextToken', + 'name' => 'PageSize', 'in' => 'query', - 'schema' => [ - 'title' => '是否拥有下一次查询的令牌(Token)。取值:'."\n" - .'● 第一次查询和没有下一次查询时,均无需填写。'."\n" - .'● 如果有下一次查询,取值为上一次API调用返回的NextToken值。', - 'description' => 'The token that is used for the next query. Valid values:'."\n" - ."\n" - .'* If the value of **NextToken** is not returned, it indicates that no next query is to be sent.'."\n" - .'* If a value of **NextToken** is returned, the value is the token that is used for the subsequent query.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', - ], + 'schema' => ['description' => 'The number of entries per page in a paged query. Maximum value: **50**. Default value: **10**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '50', 'minimum' => '1', 'default' => '10', 'example' => '10', 'title' => ''], ], - [ - 'name' => 'MaxResults', - 'in' => 'query', - 'schema' => [ - 'title' => '分批次查询时每次显示的条目数。取值范围:1~100,默认值为20。', - 'description' => 'The number of entries per page. Valid values: **1 to 100**. Default value: 20.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '20', - ], - ], - [ - 'name' => 'Filter', - 'in' => 'query', - 'style' => 'repeatList', + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => 'The filter information.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The list of filters.'."\n", - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'title' => '过滤条件。取值:'."\n" - .'● JobId:故障演练任务ID'."\n" - .'● JobName:故障演练任务名称'."\n" - .'● JobStatus:任务状态'."\n" - .' ○ Init 待演练'."\n" - .' ○ Starting 开始中'."\n" - .' ○ Testing 演练中'."\n" - .' ○ Stopping 结束中'."\n" - .' ○ Stopped 已完成'."\n" - .'● ResourceId:资源ID'."\n" - .'● ResourceName:资源名称'."\n" - .'● ResourceType:资源类型'."\n" - .' ○ PHYSICALCONNECTION 物理专线'."\n" - .'一次最多支持输入5个过滤条件,过滤条件不支持重复,如果输入资源ID或者资源名称,必须输入资源类型。各个过滤条件之间为与关系,符合所有的过滤条件,才会返回正确的查询结果。', - 'description' => 'The filter key. Valid values:'."\n" - ."\n" - .'* **JobId**'."\n" - .'* **JobName**'."\n" - .'* **JobStatus**'."\n" - .'* **ResourceId**'."\n" - .'* **ResourceName**'."\n" - .'* **ResourceType**'."\n" - ."\n" - .'> You can specify at most five different filter keys. If you specify ResourceId or ResourceName, you must also specify ResourceType. The logical operator among the filter keys is AND. Results that meet all specified filter keys are returned.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'JobId', - 'enum' => [ - 'JobId', - 'JobName', - 'JobStatus', - 'ResourceId', - 'ResourceName', - 'ResourceType', - ], - ], - 'Value' => [ - 'title' => '过滤条件对应的过滤值。'."\n" - .'一个过滤条件支持最多输入5个过滤值,多个过滤值之间为或关系,只要与其中一个过滤值匹配则视为符合该过滤条件。', - 'description' => 'The value of the filter key.'."\n" - ."\n" - .'> You can specify at most five filter values for each filter key. The logical operator among filter values is OR. If a filter value is matched, the filter key is considered matched.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The value of the filter key.'."\n" - ."\n" - .'> You can specify at most five filter values for each filter key. The logical operator among filter values is OR. If a filter value is matched, the filter key is considered matched.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'ftj-xxxxxxxxx', + 'type' => 'object', + 'properties' => [ + 'PageSize' => ['description' => 'The number of entries per page.', 'type' => 'integer', 'format' => 'int32', 'example' => '10', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '0ED8D006-F706-4D23-88ED-E11ED28DCAC0', 'title' => ''], + 'PageNumber' => ['description' => 'The current page number.', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''], + 'TotalCount' => ['description' => 'The total number of entries.', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''], + 'VRouters' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'VRouter' => [ + 'description' => 'The details of the vRouter.', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'VpcId' => ['description' => 'The ID of the VPC to which the vRouter belongs.', 'type' => 'string', 'example' => 'vpc-rj905wotv6y030t1****', 'title' => ''], + 'CreationTime' => ['description' => 'The time when the vRouter was created.', 'type' => 'string', 'example' => '2018-03-22T07:46:20Z', 'title' => ''], + 'VRouterId' => ['description' => 'The ID of the vRouter.', 'type' => 'string', 'example' => 'vrt-rj98khsezfqpjrxmv****', 'title' => ''], + 'Description' => ['description' => 'The description of the vRouter.', 'type' => 'string', 'example' => 'abc', 'title' => ''], + 'VRouterName' => ['description' => 'The name of the vRouter.', 'type' => 'string', 'example' => 'doctest', 'title' => ''], + 'RegionId' => ['description' => 'The region where the vRouter resides.', 'type' => 'string', 'example' => 'cn-hangzhou', 'title' => ''], + 'RouteTableIds' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'RouteTableId' => [ + 'description' => 'The list of route table IDs.', + 'type' => 'array', + 'items' => ['description' => 'The ID of the route table in the vRouter.', 'type' => 'string', 'example' => '{ "RouteTableId": [ "vtb-rj9ybe3y0u41mmjsp****"] }', 'title' => ''], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', ], - 'required' => false, - 'maxItems' => 5, ], + 'description' => '', + 'title' => '', + 'example' => '', ], - 'required' => false, ], - 'required' => false, - 'maxItems' => 5, + 'description' => '', + 'title' => '', + 'example' => '', + ], + ], + ], + 'errorCodes' => [ + 403 => [ + ['errorCode' => 'Forbidden', 'errorMessage' => 'User not authorized to operate on the specified resource.', 'description' => 'You do not have the permissions to manage the specified resource. Apply for the permissions and try again.'], + ], + ], + 'title' => 'Query vRouters in a specified region', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2024-07-31T02:46:00.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2022-08-04T11:48:33.000Z', 'description' => 'Error codes changed'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DescribeVRouters'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], + ], + 'ramActions' => [ + [ + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'vpc:DescribeVRouters', + 'authLevel' => 'resource', + 'actionConditions' => [ + ['conditionKey' => 'vpc:VPC', 'validationType' => 'always'], + ], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VRouter', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vrouter/*'], + ], ], ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"PageSize\\": 10,\\n \\"RequestId\\": \\"0ED8D006-F706-4D23-88ED-E11ED28DCAC0\\",\\n \\"PageNumber\\": 1,\\n \\"TotalCount\\": 1,\\n \\"VRouters\\": {\\n \\"VRouter\\": [\\n {\\n \\"VpcId\\": \\"vpc-rj905wotv6y030t1****\\",\\n \\"CreationTime\\": \\"2018-03-22T07:46:20Z\\",\\n \\"VRouterId\\": \\"vrt-rj98khsezfqpjrxmv****\\",\\n \\"Description\\": \\"abc\\",\\n \\"VRouterName\\": \\"doctest\\",\\n \\"RegionId\\": \\"cn-hangzhou\\",\\n \\"RouteTableIds\\": {\\n \\"RouteTableId\\": [\\n \\"{ \\\\\\"RouteTableId\\\\\\": [ \\\\\\"vtb-rj9ybe3y0u41mmjsp****\\\\\\"] }\\"\\n ]\\n }\\n }\\n ]\\n }\\n}","type":"json"}]', + ], + 'DescribeVSwitchAttributes' => [ + 'summary' => 'Queries the detailed information about a vSwitch.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'get'], + 'parameters' => [ + [ + 'name' => 'VSwitchId', + 'in' => 'query', + 'schema' => ['description' => 'The ID of the vSwitch.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'vsw-25naue4g****', 'title' => ''], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => ['description' => 'The region ID of the VPC to which the vSwitch belongs.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.', 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou', 'title' => ''], + ], + [ + 'name' => 'DryRun', + 'in' => 'query', + 'schema' => ['description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values:'."\n" + ."\n" + .'* **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.'."\n" + .'* **false** (default): sends a request and performs a dry run. If the request passes the dry run, a 2xx HTTP status code is returned and the operation is performed.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], + ], + ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => 'The response parameters.'."\n", + 'description' => 'The details about the vSwitch.'."\n", 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => '请求ID。', - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E', + 'VpcId' => ['description' => 'The ID of the VPC to which the vSwitch belongs.'."\n", 'type' => 'string', 'example' => 'vpc-257gq642n****', 'title' => ''], + 'Status' => ['description' => 'The status of the vSwitch. Valid values:'."\n" + ."\n" + .'* **Pending**'."\n" + .'* **Available**'."\n", 'type' => 'string', 'example' => 'Pending', 'title' => ''], + 'CreationTime' => ['description' => 'The time when the vSwitch was created.'."\n", 'type' => 'string', 'example' => '2021-08-22T10:40:25Z', 'title' => ''], + 'IsDefault' => ['description' => 'Indicates whether the vSwitch is the default vSwitch. Valid values:'."\n" + ."\n" + .'* **true**'."\n" + .'* **false**'."\n", 'type' => 'boolean', 'example' => 'false', 'title' => ''], + 'AvailableIpAddressCount' => ['description' => 'The number of available IP addresses.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '12', 'title' => ''], + 'NetworkAclId' => ['description' => 'The network access control list (ACL) rules.'."\n", 'type' => 'string', 'example' => '1', 'title' => ''], + 'OwnerId' => ['description' => 'The ID of the Alibaba Cloud account to which the resource belongs.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '28768383240243****', 'title' => ''], + 'VSwitchId' => ['description' => 'The vSwitch ID.'."\n", 'type' => 'string', 'example' => 'vsw-25b7pv15t****', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '7B48B4B9-1EAD-469F-B488-594DAB4B6A1A', 'title' => ''], + 'CidrBlock' => ['description' => 'The CIDR block of the vSwitch.'."\n", 'type' => 'string', 'example' => '192.168.0.1/24', 'title' => ''], + 'Description' => ['description' => 'The description of the vSwitch.'."\n", 'type' => 'string', 'example' => 'abc', 'title' => ''], + 'ResourceGroupId' => ['description' => 'The ID of the resource group to which the ACL belongs.'."\n", 'type' => 'string', 'example' => 'rg-acfmxazb4ph****', 'title' => ''], + 'ZoneId' => ['description' => 'The ID of the zone to which the vSwitch belongs.'."\n", 'type' => 'string', 'example' => 'cn-beijing-a', 'title' => ''], + 'Ipv6CidrBlock' => ['description' => 'The IPv6 CIDR block of the vSwitch.'."\n", 'type' => 'string', 'example' => '2408:XXXX:3c5:44e::/64', 'title' => ''], + 'VSwitchName' => ['description' => 'The vSwitch name.'."\n", 'type' => 'string', 'example' => 'test', 'title' => ''], + 'ShareType' => ['description' => 'Indicates whether the vSwitch is shared.'."\n" + ."\n" + .'* If no value is returned, the vSwitch is a regular vSwitch.'."\n" + .'* If **Shared** is returned, the vSwitch is shared.'."\n" + .'* If **Sharing** is returned, the vSwitch is being shared.'."\n", 'type' => 'string', 'example' => 'Shared', 'title' => ''], + 'EnabledIpv6' => ['description' => 'Indicates whether IPv6 is enabled for the vSwitch. If you enable IPv6, you must configure the IPv6 CIDR block of the vSwitch. Valid values:'."\n" + ."\n" + .'* **true**'."\n" + .'* **false**'."\n" + ."\n" + .'This field is returned only when IPv6 is enabled for the vSwitch.', 'type' => 'boolean', 'example' => 'true', 'title' => ''], + 'RouteTable' => [ + 'description' => 'The information about the route table that is associated with the vSwitch.'."\n", + 'type' => 'object', + 'properties' => [ + 'RouteTableId' => ['description' => 'The ID of the route table that is associated with the vSwitch.'."\n", 'type' => 'string', 'example' => 'vtb-bp145q7glnuzdv****', 'title' => ''], + 'RouteTableType' => ['description' => 'The type of the route table. Valid values:'."\n" + ."\n" + .'* **System**'."\n" + .'* **Custom**'."\n", 'type' => 'string', 'example' => 'System', 'title' => ''], + ], + 'title' => '', + 'example' => '', ], - 'FailoverTestJobList' => [ - 'description' => 'The list of failover tests.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The failover test.'."\n", - 'type' => 'object', - 'properties' => [ - 'JobId' => [ - 'title' => '故障演练任务ID。', - 'description' => 'The ID of the failover test.'."\n", - 'type' => 'string', - 'example' => 'ftj-xxxxxxxxx'."\n", - ], - 'Name' => [ - 'title' => '故障演练任务的名称。'."\n" - .'长度为0~128个字符,不能以http:// 或https://开头。', - 'description' => 'The name of the failover test.'."\n" - ."\n" - .'The name must be 0 to 128 characters in length and cannot start with `http://` or `https://`.'."\n", - 'type' => 'string', - 'example' => 'test', - ], - 'Description' => [ - 'title' => '故障演练任务的描述信息。'."\n" - .'长度为0~256个字符,不能以http://或https://开头。', - 'description' => 'The description of the failover test.'."\n" - ."\n" - .'The description must be 0 to 256 characters in length and cannot start with \\*\\*http:// **or** https://\\*\\*.'."\n", - 'type' => 'string', - 'example' => 'test', - ], - 'ResourceType' => [ - 'title' => '资源类型。取值:'."\n" - .'● PHYSICALCONNECTION 物理专线'."\n" - .'● VIRTUALBORDERROUTER 虚拟边界路由器'."\n" - .'● BGPPEER BGP邻居', - 'description' => 'The type of the failover test resource. Only **PHYSICALCONNECTION** is returned.'."\n", - 'type' => 'string', - 'example' => 'PHYSICALCONNECTION', - ], - 'ResourceId' => [ - 'title' => '资源ID列表', - 'description' => 'The IDs of the failover test resources.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The resource ID.'."\n", - 'type' => 'string', - 'example' => 'pc-uf66k4e8pq3r00jfqo0b5', + 'Tags' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Tag' => [ + 'description' => 'The information about the tags.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => 'The key of tag N added to the resource.'."\n", 'type' => 'string', 'example' => 'FinanceDept', 'title' => ''], + 'Value' => ['description' => 'The value of tag N added to the resource.'."\n", 'type' => 'string', 'example' => 'FinanceJoshua', 'title' => ''], ], + 'title' => '', + 'example' => '', ], - 'JobType' => [ - 'title' => '演练类型。取值:'."\n" - .'● StartNow 立即开始'."\n" - .'● StartLater 稍后开始', - 'description' => 'Indicates whether the failover test is performed immediately. Valid values:'."\n" - ."\n" - .'* **StartNow**'."\n" - .'* **StartLater**'."\n", - 'type' => 'string', - 'example' => 'StartNow', - ], - 'JobDuration' => [ - 'title' => '演练时长。单位为分钟,取值范围为:1-4320', - 'description' => 'The duration of the failover test. Unit: minutes. Valid values: **1 to 4320**.'."\n", - 'type' => 'string', - 'example' => '60', - ], - 'StartTime' => [ - 'title' => '故障演练任务开始时间。按照ISO8601标准表示,并需要使用UTC时间。格式为:YYYY-MM-DDThh:mm:ssZ。', - 'description' => 'The beginning of the fault drill task. The time must be in UTC. Specify the time in the ISO 8601 standard in `YYYY-MM-DDThh:mm:ssZ` format.', - 'type' => 'string', - 'example' => '2023-11-21T14:00:00Z', - ], - 'StopTime' => [ - 'title' => '故障演练任务结束时间。按照ISO8601标准表示,并需要使用UTC时间。格式为:YYYY-MM-DDThh:mm:ssZ。', - 'description' => 'The end of the fault drill task. The time must be in UTC. Specify the time in the ISO 8601 standard in `YYYY-MM-DDThh:mm:ssZ` format.', - 'type' => 'string', - 'example' => '2023-11-21T15:00:00Z'."\n", - ], - 'Status' => [ - 'title' => '故障演练任务状态。取值:'."\n" - .'● Init 待演练'."\n" - .'● Starting 开始中'."\n" - .'● Testing 演练中'."\n" - .'● Stopping 结束中'."\n" - .'● Stopped 已结束', - 'description' => 'The status of the failover test. Valid values:'."\n" - ."\n" - .'* **Init**'."\n" - .'* **Starting**'."\n" - .'* **Testing**'."\n" - .'* **Stopping**'."\n" - .'* **Stopped**'."\n", - 'type' => 'string', - 'example' => 'Init', - ], + 'title' => '', + 'example' => '', ], ], - ], - 'NextToken' => [ - 'title' => '是否拥有下一次查询的令牌(Token)。取值:'."\n" - .'● 第一次查询和没有下一次查询时,均无需填写。'."\n" - .'● 如果有下一次查询,取值为上一次API调用返回的NextToken值。', - 'description' => 'A pagination token. It can be used in the next request to retrieve a new page of results. Valid values:'."\n" - ."\n" - .'* If no value is returned for **NextToken**, no next queries are sent.'."\n" - .'* If a value is returned for **NextToken**, the value is used to retrieve a new page of results.'."\n", - 'type' => 'string', - 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', - ], - 'MaxResults' => [ - 'title' => '分批次查询时每次显示的条目数。取值范围:1~100,默认值为20。', - 'description' => 'The number of entries per page. Valid values: **1 to 100**. Default value: 20.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '20', - ], - 'TotalCount' => [ - 'title' => '列表总条目数。', - 'description' => 'The number of entries returned.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'Count' => [ - 'title' => '列表当前条目数。', - 'description' => 'The number of entries on the current page.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', + 'description' => '', + 'title' => '', + 'example' => '', ], ], + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'IllegalParam.Filter.Key', - 'errorMessage' => 'The filter parameter Key is invalid.', - ], - [ - 'errorCode' => 'IllegalParam.Filter.Value', - 'errorMessage' => 'The filter parameter Value is illegal.', - ], - [ - 'errorCode' => 'SystemQuotaConstraint.Filter.Value', - 'errorMessage' => 'The number of values in a key in the filter parameter cannot exceed 5.', - ], - [ - 'errorCode' => 'SystemQuotaConstraint.Filter.Key', - 'errorMessage' => 'The number of keys in the filter parameter cannot exceed 5.', - ], - [ - 'errorCode' => 'IllegalParam.FilterKey.ResourceType', - 'errorMessage' => 'Filter parameters do not support entering only ResourceId or ResourceName without entering ResourceType.', - ], - [ - 'errorCode' => 'IllegalParam.JobId', - 'errorMessage' => 'The specified parameter JobId is illegal.', - ], - [ - 'errorCode' => 'IllegalParam.ResourceType', - 'errorMessage' => 'Invalid %s value.', - ], - [ - 'errorCode' => 'IncorrectStatus.ResourceId', - 'errorMessage' => 'The specified resource status is invalid.', - ], + ['errorCode' => 'InvalidVSwitchId.NotFound', 'errorMessage' => 'Specified VSwitch can not found.', 'description' => ''], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"VpcId\\": \\"vpc-257gq642n****\\",\\n \\"Status\\": \\"Pending\\",\\n \\"CreationTime\\": \\"2021-08-22T10:40:25Z\\",\\n \\"IsDefault\\": false,\\n \\"AvailableIpAddressCount\\": 12,\\n \\"NetworkAclId\\": \\"1\\",\\n \\"OwnerId\\": 0,\\n \\"VSwitchId\\": \\"vsw-25b7pv15t****\\",\\n \\"RequestId\\": \\"7B48B4B9-1EAD-469F-B488-594DAB4B6A1A\\",\\n \\"CidrBlock\\": \\"192.168.0.1/24\\",\\n \\"Description\\": \\"abc\\",\\n \\"ResourceGroupId\\": \\"rg-acfmxazb4ph****\\",\\n \\"ZoneId\\": \\"cn-beijing-a\\",\\n \\"Ipv6CidrBlock\\": \\"2408:XXXX:3c5:44e::/64\\",\\n \\"VSwitchName\\": \\"test\\",\\n \\"ShareType\\": \\"Shared\\",\\n \\"EnabledIpv6\\": true,\\n \\"RouteTable\\": {\\n \\"RouteTableId\\": \\"vtb-bp145q7glnuzdv****\\",\\n \\"RouteTableType\\": \\"System\\"\\n },\\n \\"Tags\\": {\\n \\"Tag\\": [\\n {\\n \\"Key\\": \\"FinanceDept\\",\\n \\"Value\\": \\"FinanceJoshua\\"\\n }\\n ]\\n }\\n}","type":"json"}]', + 'title' => 'DescribeVSwitchAttributes', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2023-07-05T07:33:20.000Z', 'description' => 'Response parameters changed, Response parameters changed'], + ['createdAt' => '2023-05-22T02:14:30.000Z', 'description' => 'Response parameters changed'], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E\\",\\n \\"FailoverTestJobList\\": [\\n {\\n \\"JobId\\": \\"ftj-bp1yh6mvi13aq3g8w****\\\\n\\",\\n \\"Name\\": \\"test\\",\\n \\"Description\\": \\"test\\",\\n \\"ResourceType\\": \\"PHYSICALCONNECTION\\",\\n \\"ResourceId\\": [\\n \\"pc-uf66k4e8pq3r00jfq****\\"\\n ],\\n \\"JobType\\": \\"StartNow\\",\\n \\"JobDuration\\": \\"60\\",\\n \\"StartTime\\": \\"2023-11-21T14:00:00Z\\",\\n \\"StopTime\\": \\"2023-11-21T15:00:00Z\\\\n\\",\\n \\"Status\\": \\"Init\\"\\n }\\n ],\\n \\"NextToken\\": \\"FFmyTO70tTpLG6I3FmYAXGKPd****\\",\\n \\"MaxResults\\": 20,\\n \\"TotalCount\\": 10,\\n \\"Count\\": 10\\n}","type":"json"}]', - 'title' => 'DescribeFailoverTestJobs', - ], - 'DescribeExpressConnectTrafficQosRule' => [ - 'summary' => 'Queries quality of service (QoS) rules. Paging parameters are not supported.', - 'methods' => [ - 'post', - 'get', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'vpc:DescribeVSwitchAttributes', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VSwitch', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vswitch/{#VSwitchId}'], + ], + ], + ], ], - 'schemes' => [ - 'http', - 'https', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DescribeVSwitchAttributes'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], ], + ], + 'DescribeVSwitches' => [ + 'summary' => 'Queries the information about available vSwitches that are used for an internal network.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -44705,296 +34125,260 @@ ], 'operationType' => 'read', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'list', - 'riskType' => 'none', - 'chargeType' => 'free', - ], + 'systemTags' => ['operationType' => 'list', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ + [ + 'name' => 'VpcId', + 'in' => 'query', + 'schema' => ['description' => 'The ID of the virtual private cloud (VPC) to which the vSwitches belong.'."\n" + ."\n" + .'> You must set at least one of **RegionId** and **VpcId**.'."\n", 'type' => 'string', 'required' => false, 'example' => 'vpc-25cdvfeq58pl****', 'title' => ''], + ], + [ + 'name' => 'VSwitchId', + 'in' => 'query', + 'schema' => ['description' => 'The ID of the vSwitch that you want to query.'."\n", 'type' => 'string', 'required' => false, 'example' => 'vsw-23dscddcffvf3****', 'title' => ''], + ], + [ + 'name' => 'ZoneId', + 'in' => 'query', + 'schema' => ['description' => 'The ID of the zone to which the vSwitches belong. You can call the [DescribeZones](~~36064~~) operation to query the most recent zone list.'."\n", 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou-d', 'title' => ''], + ], [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the QoS policy.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-shanghai', - ], + 'schema' => ['description' => 'The region ID of the vSwitch. You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n" + ."\n" + .'> You must set at least one of **RegionId** and **VpcId**.'."\n", 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'ClientToken', + 'name' => 'VSwitchName', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'You can use the client to generate the value, but you must make sure that it is unique among different requests. The client token can contain only ASCII characters.'."\n" - ."\n" - .'> If you do not set this parameter, the system uses **RequestId** as **ClientToken**. **RequestId** may be different for each API request.'."\n", - 'type' => 'string', - 'required' => false, - 'docRequired' => true, - 'example' => '123e4567-e89b-12d3-a456-426655440000', - ], + 'schema' => ['description' => 'The exact name of the vSwitch that you want to query. Fuzzy match is not supported.'."\n" + ."\n" + .'The name must be 1 to 128 characters in length, and cannot start with `http://` or `https://`.', 'type' => 'string', 'required' => false, 'example' => 'vSwitch', 'title' => ''], ], [ - 'name' => 'ClientToken', + 'name' => 'DryRun', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'You can use the client to generate the value, but you must make sure that it is unique among different requests. The client token can contain only ASCII characters.'."\n" - ."\n" - .'> If you do not set this parameter, the system uses **RequestId** as **ClientToken**. **RequestId** may be different for each API request.'."\n", - 'type' => 'string', - 'required' => false, - 'docRequired' => true, - 'example' => '123e4567-e89b-12d3-a456-426655440000', - ], + 'schema' => ['description' => 'Specifies whether to perform a dry run, without performing the actual request. Valid values:'."\n" + ."\n" + .'* **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.'."\n" + .'* **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.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'true', 'title' => ''], ], [ - 'name' => 'RuleIdList', + 'name' => 'IsDefault', 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'title' => 'Qos队列ID集合。', - 'description' => 'The list of QoS rule IDs.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The ID of the QoS rule.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'qos-rule-iugg0l9x27f2nocouj'."\n", - ], - 'required' => false, - 'maxItems' => 100, - ], + 'schema' => ['description' => 'Specifies whether to query the default vSwitches in the specified region. Valid values:'."\n" + ."\n" + .'* **true**'."\n" + .'* **false**'."\n" + ."\n" + .'If you do not set this parameter, the system queries all vSwitches in the specified region by default.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'true', 'title' => ''], ], [ - 'name' => 'RuleNameList', + 'name' => 'RouteTableId', 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'title' => 'Qos队列名称集合。', - 'description' => 'The list of QoS rule names.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The name of the QoS rule.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'qos-rule-test', - ], - 'required' => false, - 'maxItems' => 100, - ], + 'schema' => ['description' => 'The ID of the route table.'."\n", 'type' => 'string', 'required' => false, 'example' => 'vtb-bp145q7glnuzdvzu2****', 'title' => ''], ], [ - 'name' => 'QosId', + 'name' => 'ResourceGroupId', 'in' => 'query', - 'schema' => [ - 'title' => 'Qos策略ID。', - 'description' => 'The ID of the QoS policy.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'qos-2giu0a6vd5x0mv4700', - ], + 'schema' => ['description' => 'The ID of the resource group to which the vSwitch belongs.'."\n", 'type' => 'string', 'required' => false, 'example' => 'rg-bp67acfmxazb4ph****', 'title' => ''], ], [ - 'name' => 'QueueId', + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => ['description' => 'The page number. Default value: **1**.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'minimum' => '1', 'default' => '1', 'example' => '1', 'title' => ''], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => ['description' => 'The number of entries per page. Maximum value: **50**. Default value: **10**.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '50', 'minimum' => '1', 'default' => '10', 'example' => '10', 'title' => ''], + ], + [ + 'name' => 'VSwitchOwnerId', + 'in' => 'query', + 'schema' => ['description' => 'The ID of the Alibaba Cloud account to which the vSwitch belongs.'."\n", 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '2546073170691****', 'title' => ''], + ], + [ + 'name' => 'EnableIpv6', + 'in' => 'query', + 'schema' => ['description' => 'Specifies whether to query vSwitches with IPv6 enabled in the region. Valid values:'."\n" + ."\n" + .'* **true**'."\n" + .'* **false**'."\n" + ."\n" + .'If you do not set this parameter, the system queries all vSwitches in the specified region by default.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], + ], + [ + 'name' => 'Tag', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => 'The ID of the QoS queue.'."\n", - 'type' => 'string', + 'description' => 'The tags.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => 'The tag key. You can specify at most 20 tag keys. The tag key cannot be an empty string.'."\n" + ."\n" + .'The tag key can be up to 128 characters in length. It cannot start with `aliyun` or `acs:`, and cannot contain `http://` or `https://`.'."\n", 'type' => 'string', 'required' => false, 'example' => 'FinanceDept', 'title' => ''], + 'Value' => ['description' => 'The tag value. You can specify at most 20 tag values. The tag value can be an empty string.'."\n" + ."\n" + .'The tag value can be up to 128 characters in length, and cannot contain `http://` or `https://`. The tag value cannot start with `aliyun` or `acs:`.'."\n", 'type' => 'string', 'required' => false, 'example' => 'FinanceJoshua', 'title' => ''], + ], + 'required' => false, + 'title' => '', + 'example' => '', + ], 'required' => false, - 'example' => 'qos-queue-9nyx2u7n71s2rcy4n5', + 'maxItems' => 20, + 'title' => '', + 'example' => '', ], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'description' => 'The response parameters.'."\n", 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '9C7FA9D6-72E0-48A9-A9C3-2DA8569CD5EB', - ], - 'RuleList' => [ - 'description' => 'The list of QoS rules.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The information about the QoS rules.', - 'type' => 'object', - 'properties' => [ - 'QosId' => [ - 'description' => 'The ID of the QoS policy.'."\n", - 'type' => 'string', - 'example' => 'qos-pksbqfmotl5hzqmhf8', - ], - 'QueueId' => [ - 'description' => 'The ID of the QoS queue.'."\n", - 'type' => 'string', - 'example' => 'qos-queue-9nyx2u7n71s2rcy4n5'."\n", - ], - 'Priority' => [ - 'description' => 'The priority of the QoS rule. Valid values: **1** to **9000**. A larger value indicates a higher priority. The priority of each QoS rule must be unique in the same QoS policy.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'Protocol' => [ - 'description' => 'The protocol of the QoS rule. Valid values:'."\n" - ."\n" - .'* **ALL**'."\n" - .'* **ICMP(IPv4)**'."\n" - .'* **ICMPv6(IPv6)**'."\n" - .'* **TCP**'."\n" - .'* **UDP**'."\n" - .'* **GRE**'."\n" - .'* **SSH**'."\n" - .'* **Telnet**'."\n" - .'* **HTTP**'."\n" - .'* **HTTPS**'."\n" - .'* **MS SQL**'."\n" - .'* **Oracle**'."\n" - .'* **MySql**'."\n" - .'* **RDP**'."\n" - .'* **PostgreSQL**'."\n" - .'* **Redis**'."\n", - 'type' => 'string', - 'enumValueTitles' => [], - 'example' => 'ALL', - ], - 'SrcCidr' => [ - 'description' => 'The source IPv4 CIDR block that matches the QoS rule traffic.'."\n" - ."\n" - .'> When this parameter is unavailable, specify **SrcIPv6Cidr** or **DstIPv6Cidr**.'."\n", - 'type' => 'string', - 'example' => '1.1.1.0/24'."\n", - ], - 'DstCidr' => [ - 'description' => 'The destination IPv4 CIDR block that matches the QoS rule traffic.'."\n" - ."\n" - .'> When this parameter is unavailable, specify **SrcIPv6Cidr** or **DstIPv6Cidr**.'."\n", - 'type' => 'string', - 'example' => '1.1.1.0/24'."\n", - ], - 'SrcIPv6Cidr' => [ - 'description' => 'The source IPv6 CIDR block that matches the QoS rule traffic.'."\n" - ."\n" - .'> When this parameter is unavailable, specify **SrcCidr** or **DstCidr**.'."\n", - 'type' => 'string', - 'example' => '2001:0db8:1234:5678::/64'."\n", - ], - 'DstIPv6Cidr' => [ - 'description' => 'The destination IPv6 CIDR block that matches the QoS rule traffic.'."\n" - ."\n" - .'> When this parameter is unavailable, specify **SrcCidr** or **DstCidr**.'."\n", - 'type' => 'string', - 'example' => '2001:0db8:1234:5678::/64'."\n", - ], - 'SrcPortRange' => [ - 'description' => 'The range of source ports that match the QoS rule traffic. Valid values: **0** to **65535**. If the traffic does not match, the value is -1. You can specify only one port. The start port number must be the same as the end port number.'."\n", - 'type' => 'string', - 'example' => '-1/-1'."\n", - ], - 'DstPortRange' => [ - 'description' => 'The range of destination ports that match the QoS rule traffic. Valid values: **0** to **65535**. If the traffic does not match, the value is -1. You can specify only one port. The start port number must be the same as the end port number. Different protocols correspond to different ports. Valid values:'."\n" - ."\n" - .'* **ALL** (uneditable): -1/-1.'."\n" - .'* **ICMP(IPv4)** (uneditable): -1/-1.'."\n" - .'* **ICMPv6(IPv6)** (uneditable): -1/-1.'."\n" - .'* **TCP** (editable): -1/-1.'."\n" - .'* **UDP** (editable): -1/-1.'."\n" - .'* **GRE** (uneditable): -1/-1.'."\n" - .'* **SSH** (uneditable): 22/22.'."\n" - .'* **Telnet** (uneditable): 23/23.'."\n" - .'* **HTTP** (uneditable): 80/80.'."\n" - .'* **HTTPS** (uneditable): 443/443.'."\n" - .'* **MS SQL** (uneditable): 1443/1443.'."\n" - .'* **Oracle** (uneditable): 1521/1521.'."\n" - .'* **MySql** (uneditable): 3306/3306.'."\n" - .'* **RDP** (uneditable): 3389/3389.'."\n" - .'* **PostgreSQL** (uneditable): 5432/5432.'."\n" - .'* **Redis** (uneditable): 6379/6379.'."\n", - 'type' => 'string', - 'example' => '-1/-1'."\n", - ], - 'MatchDscp' => [ - 'description' => 'The DSCP value that matches the QoS rule traffic. Valid values: **0** to **63**. If no value is matched, the value is -1.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'RemarkingDscp' => [ - 'description' => 'The new DSCP value. Valid values: **0** to **63**. If you do not change the value, set the value to -1.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'RuleName' => [ - 'description' => 'The name of the QoS rule.'."\n" - ."\n" - .'The name must be 0 to 128 characters in length and cannot start with `http://` or `https://`.'."\n", - 'type' => 'string', - 'example' => 'qos-rule-test'."\n", - ], - 'RuleDescription' => [ - 'description' => 'The description of the QoS rule.'."\n" - ."\n" - .'The description must be 0 to 256 characters in length and cannot start with `http://` or `https://`.'."\n", - 'type' => 'string', - 'example' => 'qos-rule-test'."\n", - ], - 'RuleId' => [ - 'description' => 'The ID of the QoS rule.'."\n", - 'type' => 'string', - 'example' => 'qos-rule-iugg0l9x27f2nocouj'."\n", - ], - 'Status' => [ - 'description' => 'The status of the QoS rule. Valid values:'."\n" - ."\n" - .'* **Normal**'."\n" - .'* **Configuring**'."\n" - .'* **Deleting**'."\n", - 'type' => 'string', - 'example' => 'Normal', + 'PageSize' => ['description' => 'The number of entries returned per page.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '10', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '9A572171-4E27-40D1-BD36-D26C9E71E29E', 'title' => ''], + 'PageNumber' => ['description' => 'The number of the returned page.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''], + 'TotalCount' => ['description' => 'The total number of entries returned.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''], + 'VSwitches' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'VSwitch' => [ + 'description' => 'The details about the vSwitch.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'VpcId' => ['description' => 'The ID of the VPC to which the vSwitch belongs.'."\n", 'type' => 'string', 'example' => 'vpc-257gcdcdq64****', 'title' => ''], + 'Status' => ['description' => 'The status of the vSwitch. Valid values:'."\n" + ."\n" + .'* **Pending**'."\n" + .'* **Available**'."\n", 'type' => 'string', 'example' => 'Available', 'title' => ''], + 'CreationTime' => ['description' => 'The time when the vSwitch was created.'."\n", 'type' => 'string', 'example' => '2022-01-18T12:43:57Z', 'title' => ''], + 'IsDefault' => ['description' => 'Indicates whether the vSwitch is the default vSwitch. Valid values:'."\n" + ."\n" + .'* **true**'."\n" + .'* **false**'."\n", 'type' => 'boolean', 'example' => 'true', 'title' => ''], + 'AvailableIpAddressCount' => ['description' => 'The number of available IP addresses in the vSwitch.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '1', 'title' => ''], + 'NetworkAclId' => ['description' => 'The ID of the network access control list (ACL).'."\n", 'type' => 'string', 'example' => 'nacl-a2do9e413e0spzasx****', 'title' => ''], + 'OwnerId' => ['description' => 'The ID of the Alibaba Cloud account to which the resource belongs.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '25346073170691****', 'title' => ''], + 'VSwitchId' => ['description' => 'The vSwitch ID.'."\n", 'type' => 'string', 'example' => 'vsw-25bcdxs7pv1****', 'title' => ''], + 'CidrBlock' => ['description' => 'The IPv4 CIDR block of the vSwitch.'."\n", 'type' => 'string', 'example' => '172.16.0.0/24', 'title' => ''], + 'Description' => ['description' => 'The description of the vSwitch.'."\n", 'type' => 'string', 'example' => 'VSwitchDescription', 'title' => ''], + 'ResourceGroupId' => ['description' => 'The ID of the resource group to which the vSwitch belongs.'."\n", 'type' => 'string', 'example' => 'rg-acfmxazb4ph6aiy****', 'title' => ''], + 'ZoneId' => ['description' => 'The ID of the zone to which the vSwitch belongs.'."\n", 'type' => 'string', 'example' => 'cn-hangzhou-d', 'title' => ''], + 'Ipv6CidrBlock' => ['description' => 'The IPv6 CIDR block of the vSwitch.'."\n", 'type' => 'string', 'example' => '2408:4002:10c4:4e03::/64', 'title' => ''], + 'VSwitchName' => ['description' => 'The vSwitch name.'."\n", 'type' => 'string', 'example' => 'vSwitch', 'title' => ''], + 'ShareType' => ['description' => 'Indicates whether the vSwitch is shared.'."\n" + ."\n" + .'* If no value is returned, the vSwitch is a regular vSwitch.'."\n" + .'* If **Shared** is returned, the vSwitch is shared.'."\n" + .'* If **Sharing** is returned, the vSwitch is being shared.'."\n", 'type' => 'string', 'example' => 'Shared', 'title' => ''], + 'EnabledIpv6' => ['description' => 'Indicates whether IPv6 is enabled for the vSwitch. If you enable IPv6, you must configure an IPv6 CIDR block for the vSwitch. Valid values:'."\n" + ."\n" + .'* **true**'."\n" + .'* **false**'."\n", 'type' => 'boolean', 'example' => 'true', 'title' => ''], + 'Tags' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Tag' => [ + 'description' => 'The tags of the vSwitch.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => 'The tag key.'."\n", 'type' => 'string', 'example' => 'department', 'title' => ''], + 'Value' => ['description' => 'The tag value.'."\n", 'type' => 'string', 'example' => 'dev', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'RouteTable' => [ + 'description' => 'The information about the route table.'."\n", + 'type' => 'object', + 'properties' => [ + 'RouteTableId' => ['description' => 'The ID of the route table that is associated with the vSwitch.'."\n", 'type' => 'string', 'example' => 'vrt-bp145q7glnuzdv****', 'title' => ''], + 'RouteTableType' => ['description' => 'The type of the route table. Valid values:'."\n" + ."\n" + .'* **System**'."\n" + .'* **Custom**'."\n", 'type' => 'string', 'example' => 'System', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + ], + 'title' => '', + 'example' => '', ], + 'title' => '', + 'example' => '', ], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], - 'description' => '', + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'IllegalParam.%s', - 'errorMessage' => 'The param of %s is illegal.', - ], + ['errorCode' => 'Forbidden.VpcNotFound', 'errorMessage' => 'Specified VPC can not found.', 'description' => 'The specified VPC does not exist.'], + ['errorCode' => 'InvalidTagKey', 'errorMessage' => 'The tag keys are not valid.', 'description' => 'The tag index is invalid.'], + ['errorCode' => 'InvalidTagValue', 'errorMessage' => 'The tag values are not valid.', 'description' => 'The tag value is invalid.'], + ['errorCode' => 'IellgalParameter.OwnerAccount', 'errorMessage' => 'The specified parameter OwnerAccount is not valid.', 'description' => 'The specified parameter OwnerAccount is illegal.'], + ['errorCode' => 'IllegalParam.OwnerId', 'errorMessage' => 'The specified parameter VSwitchOwnerId is not valid.', 'description' => ''], + ['errorCode' => 'InvalidVpcIdNumber.NotSupported', 'errorMessage' => 'The number of vpcIds exceeds the limit.', 'description' => 'The value of the vpcId parameter has reached the upper limit.'], + ['errorCode' => 'InvalidVSwitchIdNumber.NotSupported', 'errorMessage' => 'The number of vSwitchIds exceeds the limit.', 'description' => ''], + ], + 404 => [ + ['errorCode' => 'InvalidVSwitchId.NotFound', 'errorMessage' => 'VSwitch not exist.', 'description' => ''], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"9C7FA9D6-72E0-48A9-A9C3-2DA8569CD5EB\\",\\n \\"RuleList\\": [\\n {\\n \\"QosId\\": \\"qos-pksbqfmotl5hzq****\\",\\n \\"QueueId\\": \\"qos-queue-9nyx2u7n71s2rc****\\\\n\\",\\n \\"Priority\\": 1,\\n \\"Protocol\\": \\"ALL\\",\\n \\"SrcCidr\\": \\"1.1.**.**/24\\\\n\\",\\n \\"DstCidr\\": \\"1.1.**.**/24\\\\n\\",\\n \\"SrcIPv6Cidr\\": \\"2001:0db8:1234:****::/64\\\\n\\",\\n \\"DstIPv6Cidr\\": \\"2001:0db8:1234:****::/64\\\\n\\",\\n \\"SrcPortRange\\": \\"-1/-1\\\\n\\",\\n \\"DstPortRange\\": \\"-1/-1\\\\n\\",\\n \\"MatchDscp\\": 1,\\n \\"RemarkingDscp\\": 1,\\n \\"RuleName\\": \\"qos-rule-test\\\\n\\",\\n \\"RuleDescription\\": \\"qos-rule-test\\\\n\\",\\n \\"RuleId\\": \\"qos-rule-iugg0l9x27f2noc****\\",\\n \\"Status\\": \\"Normal\\"\\n }\\n ]\\n}","type":"json"}]', - 'title' => 'DescribeExpressConnectTrafficQosRule', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'DescribeVSwitches', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2024-05-16T01:58:24.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2023-07-26T05:48:16.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2023-07-26T03:26:03.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2023-07-05T07:33:20.000Z', 'description' => 'Response parameters changed, Response parameters changed'], + ['createdAt' => '2023-05-22T02:14:30.000Z', 'description' => 'Response parameters changed'], + ], + 'ramActions' => [], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"PageSize\\": 10,\\n \\"RequestId\\": \\"9A572171-4E27-40D1-BD36-D26C9E71E29E\\",\\n \\"PageNumber\\": 1,\\n \\"TotalCount\\": 1,\\n \\"VSwitches\\": {\\n \\"VSwitch\\": [\\n {\\n \\"VpcId\\": \\"vpc-257gcdcdq64****\\",\\n \\"Status\\": \\"Available\\",\\n \\"CreationTime\\": \\"2022-01-18T12:43:57Z\\",\\n \\"IsDefault\\": true,\\n \\"AvailableIpAddressCount\\": 1,\\n \\"NetworkAclId\\": \\"nacl-a2do9e413e0spzasx****\\",\\n \\"OwnerId\\": 0,\\n \\"VSwitchId\\": \\"vsw-25bcdxs7pv1****\\",\\n \\"CidrBlock\\": \\"172.16.0.0/24\\",\\n \\"Description\\": \\"VSwitchDescription\\",\\n \\"ResourceGroupId\\": \\"rg-acfmxazb4ph6aiy****\\",\\n \\"ZoneId\\": \\"cn-hangzhou-d\\",\\n \\"Ipv6CidrBlock\\": \\"2408:4002:10c4:4e03::/64\\",\\n \\"VSwitchName\\": \\"vSwitch\\",\\n \\"ShareType\\": \\"Shared\\",\\n \\"EnabledIpv6\\": true,\\n \\"Tags\\": {\\n \\"Tag\\": [\\n {\\n \\"Key\\": \\"department\\",\\n \\"Value\\": \\"dev\\"\\n }\\n ]\\n },\\n \\"RouteTable\\": {\\n \\"RouteTableId\\": \\"vrt-bp145q7glnuzdv****\\",\\n \\"RouteTableType\\": \\"System\\"\\n }\\n }\\n ]\\n }\\n}","type":"json"}]', ], - 'DescribeExpressConnectTrafficQosQueue' => [ - 'summary' => 'Queries the information about the quality of service (QoS) queues of the Express Connect circuit.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DescribeVbrHa' => [ + 'summary' => 'Queries virtual border router (VBR) failover groups.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -45002,353 +34386,257 @@ ], 'operationType' => 'read', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'list', - 'riskType' => 'none', - 'chargeType' => 'free', - ], + 'systemTags' => ['operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ - 'name' => 'RegionId', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the QoS policy.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-shanghai'."\n", - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'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.'."\n" + ."\n" + .'> 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.'."\n", 'type' => 'string', 'required' => false, 'example' => 'CBCE910E-D396-4944-8****', 'title' => ''], ], [ - 'name' => 'ClientToken', + 'name' => 'DryRun', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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.'."\n" - ."\n" - .'> 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.'."\n", - 'type' => 'string', - 'required' => false, - 'docRequired' => true, - 'example' => '0c593ea1-3bea-11e9-b96b-88e9fe63****', - ], + 'schema' => ['description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid Values:'."\n" + ."\n" + .'* **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, `DRYRUN.SUCCESS` is returned.'."\n" + .'* **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.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], ], [ - 'name' => 'ClientToken', + 'name' => 'VbrId', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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.'."\n" - ."\n" - .'> 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.'."\n", - 'type' => 'string', - 'required' => false, - 'docRequired' => true, - 'example' => '0c593ea1-3bea-11e9-b96b-88e9fe63****', - ], + 'schema' => ['description' => 'The VBR ID.'."\n", 'type' => 'string', 'required' => false, 'docRequired' => false, 'example' => 'vbr-bp1jcg5cmxjbl9xgc****', 'title' => ''], ], [ - 'name' => 'QueueIdList', + 'name' => 'VbrHaId', 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'title' => 'Qos队列ID集合。', - 'description' => 'The IDs of the QoS queues.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The ID of the QoS queue.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'qos-queue-9nyx2u7n71s2rcy4n5', - ], - 'required' => false, - 'maxItems' => 100, - ], + 'schema' => ['description' => 'The ID of the VBR failover group.'."\n", 'type' => 'string', 'required' => false, 'docRequired' => false, 'example' => 'vbrha-sa1sxheuxtd98****', 'title' => ''], ], [ - 'name' => 'QueueNameList', + 'name' => 'RegionId', 'in' => 'query', - 'style' => 'repeatList', + 'schema' => ['description' => 'The ID of the region in which the VBR is deployed.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-shanghai', 'title' => ''], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'title' => 'Qos队列名称集合。', - 'description' => 'The names of the QoS queues.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The name of the QoS queue.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'qos-queue-test', + 'type' => 'object', + 'properties' => [ + 'CreationTime' => ['description' => 'The time when the VBR was created.'."\n", 'type' => 'string', 'example' => '2021-06-08T12:20:55', 'title' => ''], + 'Status' => ['description' => 'The status of the VBR failover group.'."\n" + ."\n" + .'* **Creating**'."\n" + .'* **Active**'."\n", 'type' => 'string', 'example' => 'Active', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '4EC47282-1B74-4534-BD0E-403F3EE64CAF', 'title' => ''], + 'Description' => ['description' => 'The description of the VBR failover group.'."\n" + ."\n" + .'The description must be 2 to 256 characters in length. It must start with a letter but cannot start with `http://` or `https://`.'."\n", 'type' => 'string', 'example' => 'desc', 'title' => ''], + 'VbrHaId' => ['description' => 'The ID of the VBR failover group.'."\n", 'type' => 'string', 'example' => 'vbrha-sa1sxheuxtd98****', 'title' => ''], + 'PeerVbrId' => ['description' => 'The ID of the other VBR in the VBR failover group.'."\n", 'type' => 'string', 'example' => 'vbr-bp12mw1f8k3jgygk9****', 'title' => ''], + 'Name' => ['description' => 'The name of the VBR failover group.'."\n", 'type' => 'string', 'example' => 'VBRHa', 'title' => ''], + 'VbrId' => ['description' => 'The VBR ID.'."\n", 'type' => 'string', 'example' => 'vbr-bp1jcg5cmxjbl9xgc****', 'title' => ''], + 'RegionId' => ['description' => 'The ID of the region in which the VBR is deployed.'."\n", 'type' => 'string', 'example' => 'cn-hangzhou', 'title' => ''], ], - 'required' => false, - 'maxItems' => 100, + 'description' => '', + 'title' => '', + 'example' => '', ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'MissingParam.VbrHaIdOrVbrId', 'errorMessage' => 'Missing parameter VBR switch group instance ID or VBR instance ID.', 'description' => 'Missing parameter VBR switch group instance ID or VBR instance ID.'], + ], + 404 => [ + ['errorCode' => 'ResourceNotFound.VbrHa', 'errorMessage' => 'The VBR HA resource is not found.', 'description' => ''], + ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'DescribeVbrHa', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2024-07-15T06:09:31.000Z', 'description' => 'Error codes changed'], + ], + 'ramActions' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"CreationTime\\": \\"2021-06-08T12:20:55\\",\\n \\"Status\\": \\"Active\\",\\n \\"RequestId\\": \\"4EC47282-1B74-4534-BD0E-403F3EE64CAF\\",\\n \\"Description\\": \\"desc\\",\\n \\"VbrHaId\\": \\"vbrha-sa1sxheuxtd98****\\",\\n \\"PeerVbrId\\": \\"vbr-bp12mw1f8k3jgygk9****\\",\\n \\"Name\\": \\"VBRHa\\",\\n \\"VbrId\\": \\"vbr-bp1jcg5cmxjbl9xgc****\\",\\n \\"RegionId\\": \\"cn-hangzhou\\"\\n}","errorExample":""},{"type":"xml","example":"\\n\\n Active\\n vbrha-sa1sxheuxtd98****\\n desc\\n 4EC47282-1B74-4534-BD0E-403F3EE64CAF\\n 2021-06-08T12:20:55\\n vbr-bp1jcg5cmxjbl9xgc****\\n cn-hangzhou\\n vbr-bp12mw1f8k3jgygk9****\\n VBRHa\\n","errorExample":""}]', + ], + 'DescribeVcoRouteEntries' => [ + 'summary' => 'Queries the routes of an IPsec-VPN connection.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'readAndWrite', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'list', 'riskType' => 'none', 'chargeType' => 'free'], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => ['description' => 'The region ID of the IPsec-VPN connection.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent list of regions.'."\n", 'type' => 'string', 'required' => true, 'example' => 'cn-hangzhou', 'title' => ''], + ], [ - 'name' => 'QosId', + 'name' => 'VpnConnectionId', 'in' => 'query', - 'schema' => [ - 'title' => 'Qos策略ID。', - 'description' => 'The ID of the QoS policy.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'qos-2giu0a6vd5x0mv4700', - ], + 'schema' => ['description' => 'The ID of the IPsec-VPN connection.'."\n", 'type' => 'string', 'required' => true, 'example' => 'vco-p0w2jpkhi2eeop6q6****', 'title' => ''], + ], + [ + 'name' => 'RouteEntryType', + 'in' => 'query', + 'schema' => ['description' => 'The route type. Valid values:'."\n" + ."\n" + .'* **custom** (default): a destination-based route'."\n" + .'* **bgp**: a BGP route'."\n", 'type' => 'string', 'required' => false, 'example' => 'custom', 'title' => ''], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => ['description' => 'The number of the page to return. Default value: **1**.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1', 'title' => ''], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => ['description' => 'The number of entries to return on each page. Default value: **10**. Valid values: **1** to **50**.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '10', 'title' => ''], + ], + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'You can use the client to generate the value, but you must make sure that it is unique among all requests. ClientToken can contain only ASCII characters.'."\n" + ."\n" + .'> If you do not set this parameter, the system uses **RequestId** as **ClientToken**. The value of **RequestId** for each API request may be different.'."\n", 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-4266****', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'title' => 'PlainResponse4OpenApi', + 'description' => 'The response parameters.'."\n", 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '606998F0-B94D-48FE-8316-ACA81BB230DA', - ], - 'QueueList' => [ - 'description' => 'The information about the QoS queues.'."\n", + 'TotalCount' => ['description' => 'The number of entries returned.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''], + 'PageNumber' => ['description' => 'The number of the returned page.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''], + 'PageSize' => ['description' => 'The number of entries returned per page.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '10', 'title' => ''], + 'VcoRouteEntries' => [ + 'description' => 'The list of route entries.'."\n", 'type' => 'array', 'items' => [ - 'description' => 'The information about the QoS queue.'."\n", + 'description' => 'The information about the routes.'."\n", 'type' => 'object', 'properties' => [ - 'QosId' => [ - 'description' => 'The ID of the QoS policy.'."\n", - 'type' => 'string', - 'example' => 'qos-ncfgzxg40zks5n0qze', - ], - 'QueueId' => [ - 'description' => 'The ID of the QoS queue.'."\n", - 'type' => 'string', - 'example' => 'qos-queue-9nyx2u7n71s2rcy4n5', - ], - 'QueueType' => [ - 'description' => 'The priority of the QoS queue. Valid values:'."\n" - ."\n" - .'* **High**'."\n" - .'* **Medium**'."\n" - .'* **Default**'."\n" - ."\n\n" - ."\n" - .'> You cannot create a QoS queue of the default priority.', - 'type' => 'string', - 'example' => 'High', - ], - 'BandwidthPercent' => [ - 'description' => 'The percentage of bandwidth allocated to a QoS queue.'."\n" - ."\n" - .'* If QueueType is set to **Medium**, this parameter is returned. Valid values: **1** to **100**.'."\n" - .'* If QueueType is set to **Default**, a value of - is returned.'."\n", - 'type' => 'string', - 'example' => '100', - ], - 'QueueName' => [ - 'description' => 'The name of the QoS queue.'."\n" - ."\n" - .'The name must be **0** to **128** characters in length and cannot start with `http://` or `https://`.'."\n", - 'type' => 'string', - 'example' => 'qos-queue-test', - ], - 'QueueDescription' => [ - 'description' => 'The description of the QoS queue.'."\n" + 'VpnConnectionId' => ['description' => 'The ID of the IPsec-VPN connection.'."\n", 'type' => 'string', 'example' => 'vco-p0w2jpkhi2eeop6q6****', 'title' => ''], + 'RouteDest' => ['description' => 'The destination CIDR block of the route.'."\n", 'type' => 'string', 'example' => '192.168.10.0/24', 'title' => ''], + 'NextHop' => ['description' => 'The next hop of the route.'."\n", 'type' => 'string', 'example' => 'vco-p0w2jpkhi2eeop6q6****', 'title' => ''], + 'Weight' => ['description' => 'The weight of the destination-based route.'."\n" + ."\n" + .'> The current parameter has no effect.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '100', 'title' => ''], + 'State' => ['description' => 'The status of the route.'."\n" + ."\n" + .'* **published**: indicates that the current route is advertised to the transit router.'."\n" + .'* **Active**: indicates that the current BGP route is available.'."\n", 'type' => 'string', 'example' => 'published', 'title' => ''], + 'RouteEntryType' => ['description' => 'The route type. Valid values:'."\n" + ."\n" + .'* **custom**: a destination-based route'."\n" + .'* **bgp**: a BGP route'."\n", 'type' => 'string', 'example' => 'custom', 'title' => ''], + 'CreateTime' => ['description' => 'The timestamp when the route was created.'."\n" + ."\n" + .'This value is a UNIX timestamp representing the number of milliseconds that have elapsed since the epoch time January 1, 1970, 00:00:00 UTC.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '1658217008000', 'title' => ''], + 'AsPath' => ['description' => 'The list of autonomous system (AS) numbers that the BGP route goes through.'."\n", 'type' => 'string', 'example' => '[12000]', 'title' => ''], + 'Community' => ['description' => 'The community value carried by the BGP route.'."\n", 'type' => 'string', 'example' => '65535:65510', 'title' => ''], + 'Source' => ['description' => 'The source of the BGP route. Valid values:'."\n" + ."\n" + .'* **CLOUD**: indicates that the current BGP route is learned by the IPsec-VPN connection from the transit router.'."\n" + .'* **VPN_BGP**: indicates that the current BGP route is learned by the IPsec-VPN connection from the data center.'."\n", 'type' => 'string', 'example' => 'CLOUD', 'title' => ''], + 'NextHopTunnelIdList' => [ + 'description' => 'The list of next hops.'."\n" ."\n" - .'The name must be **0** to **256** characters in length and cannot start with `http://` or `https://`.'."\n", - 'type' => 'string', - 'example' => 'qos-queue-test', - ], - 'RuleList' => [ - 'description' => 'The information about the QoS rules.'."\n", + .'> - This parameter is returned only by dual-tunnel IPsec connections.'."\n" + .'> - This parameter is returned only when the tunnel status is **Phase 2 Negotiation Successful**.', 'type' => 'array', - 'items' => [ - 'description' => 'The information about the QoS rule.'."\n", - 'type' => 'object', - 'properties' => [ - 'QosId' => [ - 'description' => 'The ID of the QoS policy.'."\n", - 'type' => 'string', - 'example' => 'qos-91xz9f8zd7yj8xwknz', - ], - 'QueueId' => [ - 'description' => 'The ID of the QoS queue.'."\n", - 'type' => 'string', - 'example' => 'qos-queue-iugg0l9x27f2nocouj', - ], - 'Priority' => [ - 'description' => 'The priority of the QoS rule. Valid values: **1** to **9000**. A larger value indicates a higher priority. The priority of each QoS rule must be unique in the same QoS policy.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'Protocol' => [ - 'description' => 'The protocol of the QoS rule. Valid values:'."\n" - ."\n" - .'* **ALL**'."\n" - .'* **ICMP(IPv4)**'."\n" - .'* **ICMPv6(IPv6)**'."\n" - .'* **TCP**'."\n" - .'* **UDP**'."\n" - .'* **GRE**'."\n" - .'* **SSH**'."\n" - .'* **Telnet**'."\n" - .'* **HTTP**'."\n" - .'* **HTTPS**'."\n" - .'* **MS SQL**'."\n" - .'* **Oracle**'."\n" - .'* **MySql**'."\n" - .'* **RDP**'."\n" - .'* **PostgreSQL**'."\n" - .'* **Redis**'."\n", - 'type' => 'string', - 'enumValueTitles' => [], - 'example' => 'ALL', - ], - 'SrcCidr' => [ - 'description' => 'The source IPv4 CIDR block that matches the QoS rule traffic.'."\n" - ."\n\n" - ."\n" - .' > If the parameter is unavailable, specify **SrcIPv6Cidr** or **DstIPv6Cidr**.', - 'type' => 'string', - 'example' => '1.1.1.0/24', - ], - 'DstCidr' => [ - 'description' => 'The destination IPv4 CIDR block that matches the QoS rule traffic.'."\n" - ."\n\n" - ."\n" - .'> If the parameter is unavailable, specify **SrcIPv6Cidr** or **DstIPv6Cidr**.', - 'type' => 'string', - 'example' => '1.1.1.0/24'."\n", - ], - 'SrcIPv6Cidr' => [ - 'description' => 'The source IPv6 CIDR block that matches the QoS rule traffic.'."\n" - ."\n\n" - ."\n" - .'> If the parameter is unavailable, specify **SrcCidr** or **DstCidr**.', - 'type' => 'string', - 'example' => '2001:0db8:1234:5678::/64', - ], - 'DstIPv6Cidr' => [ - 'description' => 'The destination IPv6 CIDR block that matches the QoS rule traffic.'."\n" - ."\n\n" - ."\n" - .'> If the parameter is unavailable, specify **SrcCidr** or **DstCidr**.', - 'type' => 'string', - 'example' => '2001:0db8:1234:5678::/64', - ], - 'SrcPortRange' => [ - 'description' => 'The range of source ports that match the QoS rule traffic. Valid values: **0** to **65535**. If the traffic does not match, the value is -1. You can specify only one port. The start port number must be the same as the end port number.'."\n", - 'type' => 'string', - 'example' => '-1/-1', - ], - 'DstPortRange' => [ - 'description' => 'The range of destination ports that match the QoS rule traffic. Valid values: **0** to **65535**. If the traffic does not match, the value is -1. You can specify only one port. The start port number must be the same as the end port number. Different protocols correspond to different ports. Valid values:'."\n" - ."\n" - .'* **ALL** (uneditable): -1/-1.'."\n" - .'* **ICMP(IPv4)** (uneditable): -1/-1.'."\n" - .'* **ICMPv6(IPv6)** (uneditable): -1/-1.'."\n" - .'* **TCP** (editable): -1/-1.'."\n" - .'* **UDP** (editable): -1/-1.'."\n" - .'* **GRE** (uneditable): -1/-1.'."\n" - .'* **SSH** (uneditable): 22/22.'."\n" - .'* **Telnet** (uneditable): 23/23.'."\n" - .'* **HTTP** (uneditable): 80/80.'."\n" - .'* **HTTPS** (uneditable): 443/443.'."\n" - .'* **MS SQL** (uneditable): 1443/1443.'."\n" - .'* **Oracle** (uneditable): 1521/1521.'."\n" - .'* **MySql** (uneditable): 3306/3306.'."\n" - .'* **RDP** (uneditable): 3389/3389.'."\n" - .'* **PostgreSQL** (uneditable): 5432/5432.'."\n" - .'* **Redis** (uneditable): 6379/6379.'."\n", - 'type' => 'string', - 'example' => '-1/-1', - ], - 'MatchDscp' => [ - 'description' => 'The DSCP value that matches the QoS rule traffic. Valid values: **0** to **63**. If no value is matched, the value is -1.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'RemarkingDscp' => [ - 'description' => 'The new DSCP value. Valid values: **0** to **63**. If you do not change the value, the value is -1.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'RuleName' => [ - 'description' => 'The name of the QoS rule.'."\n" - ."\n" - .'The name must be **0** to **128** characters in length and cannot start with `http://` or `https://`.'."\n", - 'type' => 'string', - 'example' => 'qos-rule-test', - ], - 'RuleDescription' => [ - 'description' => 'The description of the QoS rule.'."\n" - ."\n" - .'The name must be **0** to **256** characters in length and cannot start with `http://` or `https://`.'."\n", - 'type' => 'string', - 'example' => 'qos-rule-test', - ], - 'RuleId' => [ - 'description' => 'The ID of the QoS rule.'."\n", - 'type' => 'string', - 'example' => 'qos-rule-iugg0l9x27f2nocouj'."\n", - ], - 'Status' => [ - 'description' => 'The status of the QoS rule. Valid values:'."\n" - ."\n" - .'* **Normal**: The QoS queue is available.'."\n" - .'* **Configuring**: The QoS queue is being configured.'."\n" - .'* **Deleting**: The QoS queue is being deleted.'."\n", - 'type' => 'string', - 'example' => 'Normal', - ], - ], - ], - ], - 'Status' => [ - 'description' => 'The state of the QoS queue. Valid values:'."\n" - ."\n" - .'* **Normal**: The QoS queue is available.'."\n" - .'* **Configuring**: The QoS queue is being configured.'."\n" - .'* **Deleting**: The QoS queue is being deleted.'."\n", - 'type' => 'string', - 'example' => 'Normal', + 'items' => ['description' => 'The tunnel ID.'."\n", 'type' => 'string', 'example' => 'tun-0jothw962cp3bvhbw****', 'title' => ''], + 'title' => '', + 'example' => '', ], ], + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + 'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => 'E18980E8-C8C2-31BD-8156-AE2BBDEC87E1', 'title' => ''], + 'VpnRouteCounts' => [ + 'description' => 'The information on route entries of the dual-tunnel IPsec connection.'."\n" + ."\n" + .'> This parameter is returned only for IPsec connections in dual-tunnel mode.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The information about the route entries.'."\n", + 'type' => 'object', + 'properties' => [ + 'RouteEntryType' => ['description' => 'The route type. Valid values:'."\n" + ."\n" + .'* **custom**: destination-based route.'."\n" + .'* **bgp**: BGP route.'."\n", 'type' => 'string', 'example' => 'bgp', 'title' => ''], + 'RouteCount' => ['description' => 'The number of route entries.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '3', 'title' => ''], + 'Source' => ['description' => 'The source of the BGP route. Valid values:'."\n" + ."\n" + .'* **CLOUD**: The current BGP route is learned by the IPsec connection from the transit router.'."\n" + .'* **VPN_BGP**: The current BGP route is learned by the IPsec connection from the data center.'."\n", 'type' => 'string', 'example' => 'VPN_BGP', 'title' => ''], + ], + 'title' => '', + 'example' => '', ], + 'title' => '', + 'example' => '', ], ], - 'description' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'IllegalParam.%s', - 'errorMessage' => 'The param of %s is illegal.', - ], + ['errorCode' => 'IllegalParam.RouteEntryType', 'errorMessage' => 'The specified RouteEntryType is invalid.', 'description' => 'The error message returned because the specified route type is invalid.'], + ['errorCode' => 'Vco.StatusNotSupport', 'errorMessage' => 'The current VPN connection state does not support this operation.', 'description' => 'The operation cannot be performed when the VPN connection is in the current state.'], + ], + 403 => [ + ['errorCode' => 'Forbbiden.SubUser', 'errorMessage' => 'User not authorized to operate on the specified resource as your account is created by another user.', 'description' => ''], + ['errorCode' => 'Forbidden', 'errorMessage' => 'User not authorized to operate on the specified resource.', 'description' => 'You do not have the permissions to manage the specified resource. Apply for the permissions and try again.'], + ], + [ + ['errorCode' => 'InvalidVpnConnectionInstanceId.NotFound', 'errorMessage' => 'The specified vpn connection instance id does not exist.', 'description' => 'The specified vpn connection instance id does not exist.'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"606998F0-B94D-48FE-8316-ACA81BB230DA\\",\\n \\"QueueList\\": [\\n {\\n \\"QosId\\": \\"qos-ncfgzxg40zks5n****\\",\\n \\"QueueId\\": \\"qos-queue-9nyx2u7n71s2rc****\\",\\n \\"QueueType\\": \\"High\\",\\n \\"BandwidthPercent\\": \\"100\\",\\n \\"QueueName\\": \\"qos-queue-test\\",\\n \\"QueueDescription\\": \\"qos-queue-test\\",\\n \\"RuleList\\": [\\n {\\n \\"QosId\\": \\"qos-91xz9f8zd7yj8x****\\",\\n \\"QueueId\\": \\"qos-queue-iugg0l9x27f2no****\\",\\n \\"Priority\\": 1,\\n \\"Protocol\\": \\"ALL\\",\\n \\"SrcCidr\\": \\"1.1.**.**/24\\",\\n \\"DstCidr\\": \\"1.1.**.**/24\\\\n\\",\\n \\"SrcIPv6Cidr\\": \\"2001:0db8:1234:****::/64\\",\\n \\"DstIPv6Cidr\\": \\"2001:0db8:1234:****::/64\\",\\n \\"SrcPortRange\\": \\"-1/-1\\",\\n \\"DstPortRange\\": \\"-1/-1\\",\\n \\"MatchDscp\\": 1,\\n \\"RemarkingDscp\\": 1,\\n \\"RuleName\\": \\"qos-rule-test\\",\\n \\"RuleDescription\\": \\"qos-rule-test\\",\\n \\"RuleId\\": \\"qos-rule-iugg0l9x27f2no****\\\\n\\",\\n \\"Status\\": \\"Normal\\"\\n }\\n ],\\n \\"Status\\": \\"Normal\\"\\n }\\n ]\\n}","type":"json"}]', - 'title' => 'DescribeExpressConnectTrafficQosQueue', - ], - 'DescribeExpressConnectTrafficQos' => [ - 'summary' => 'Queries the quality of service (QoS) policies of Express Connect. The response can be displayed by page.', - 'methods' => [ - 'post', - 'get', + 'staticInfo' => ['returnType' => 'synchronous'], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], ], - 'schemes' => [ - 'http', - 'https', + 'title' => 'DescribeVcoRouteEntries', + 'changeSet' => [ + ['createdAt' => '2024-10-24T11:19:58.000Z', 'description' => 'Response parameters changed, Response parameters changed'], + ['createdAt' => '2023-01-10T08:01:38.000Z', 'description' => 'Error codes changed, Response parameters changed'], + ['createdAt' => '2022-12-08T02:35:47.000Z', 'description' => 'Error codes changed'], ], + 'ramActions' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"TotalCount\\": 1,\\n \\"PageNumber\\": 1,\\n \\"PageSize\\": 10,\\n \\"VcoRouteEntries\\": [\\n {\\n \\"VpnConnectionId\\": \\"vco-p0w2jpkhi2eeop6q6****\\",\\n \\"RouteDest\\": \\"192.168.10.0/24\\",\\n \\"NextHop\\": \\"vco-p0w2jpkhi2eeop6q6****\\",\\n \\"Weight\\": 100,\\n \\"State\\": \\"published\\",\\n \\"RouteEntryType\\": \\"custom\\",\\n \\"CreateTime\\": 1658217008000,\\n \\"AsPath\\": \\"[12000]\\",\\n \\"Community\\": \\"65535:65510\\",\\n \\"Source\\": \\"CLOUD\\",\\n \\"NextHopTunnelIdList\\": [\\n \\"tun-0jothw962cp3bvhbw****\\"\\n ]\\n }\\n ],\\n \\"RequestId\\": \\"E18980E8-C8C2-31BD-8156-AE2BBDEC87E1\\",\\n \\"VpnRouteCounts\\": [\\n {\\n \\"RouteEntryType\\": \\"bgp\\",\\n \\"RouteCount\\": 3,\\n \\"Source\\": \\"VPN_BGP\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\n 1\\n 10\\n E18980E8-C8C2-31BD-8156-AE2BBDEC87E1\\n 1\\n \\n 192.168.10.0/24\\n vco-p0w2jpkhi2eeop6q6****\\n published\\n custom\\n 1658217008000\\n vco-p0w2jpkhi2eeop6q6****\\n 100\\n \\n","errorExample":""}]', + ], + 'DescribeVirtualBorderRouters' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -45356,161 +34644,516 @@ ], 'operationType' => 'read', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'list', - 'riskType' => 'none', - 'chargeType' => 'free', - ], + 'systemTags' => ['operationType' => 'list', 'riskType' => 'none', 'chargeType' => 'free', 'autoTest' => true, 'tenantRelevance' => 'tenant'], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region in which the QoS policy is created.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.', - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-shanghai', - ], + 'schema' => ['description' => 'The region ID of the VBR. You can call the [DescribeRegions](~~36063~~) operation to query the region ID.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-shanghai', 'title' => ''], ], [ - 'name' => 'ClientToken', + 'name' => 'PageNumber', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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.'."\n" - ."\n" - .'> 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.'."\n", - 'type' => 'string', - 'required' => false, - 'docRequired' => true, - 'example' => '02fb3da4-130e-11e9-8e44-0016e04115b', - ], + 'schema' => ['description' => 'The page number of the list. Default value: **1**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'minimum' => '1', 'default' => '1', 'example' => '1', 'title' => ''], ], [ - 'name' => 'ClientToken', + 'name' => 'PageSize', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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.'."\n" - ."\n" - .'> 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.'."\n", - 'type' => 'string', - 'required' => false, - 'docRequired' => true, - 'example' => '02fb3da4-130e-11e9-8e44-0016e04115b', - ], + 'schema' => ['description' => 'The number of entries per page in a paged query. Maximum value: **50**. Default value: **10**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '50', 'minimum' => '1', 'default' => '10', 'example' => '10', 'title' => ''], ], [ - 'name' => 'QosIdList', + 'name' => 'Filter', 'in' => 'query', 'style' => 'repeatList', 'schema' => [ - 'title' => 'Qos策略ID集合。', - 'description' => 'The IDs of QoS policies.', + 'description' => 'The filter information.', 'type' => 'array', 'items' => [ - 'description' => 'The IDs of QoS policies.', - 'type' => 'string', + 'description' => 'The filter information.', + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => 'The filter condition. You can specify up to 5 filter conditions. The following filter conditions are supported:'."\n" + ."\n" + .'* **PhysicalConnectionId**: instance ID of the Express Connect circuit instance.'."\n" + ."\n" + .'* **VbrId**: instance ID of the Virtual Border Router instance.'."\n" + ."\n" + .'* **Status**: the status of the Virtual Border Router.'."\n" + ."\n" + .'* **Name**: the name of the Virtual Border Router.'."\n" + ."\n" + .'* **AccessPointId**: instance ID of the access point.'."\n" + ."\n" + .'* **eccId**: instance ID of the Express Cloud Connect instance.'."\n" + ."\n" + .'* **type**: the type of the Express Connect circuit.', 'type' => 'string', 'required' => false, 'example' => 'Status', 'title' => ''], + 'Value' => [ + 'description' => 'The filter value based on the specified Key. You can specify multiple filter values for a Key. The relationship between filter values is OR, which means that a match is found if any of the filter values is met.', + 'type' => 'array', + 'items' => ['description' => 'The filter value based on the specified Key. You can specify multiple filter values for a Key. The relationship between filter values is OR, which means that a match is found if any of the filter values is met.', 'type' => 'string', 'required' => false, 'example' => 'Active', 'title' => ''], + 'required' => false, + 'example' => 'Active', + 'maxItems' => 5, + 'title' => '', + ], + ], 'required' => false, - 'example' => 'qos-2giu0a6vd5x0mv4700', + 'title' => '', + 'example' => '', ], 'required' => false, - 'maxItems' => 100, + 'maxItems' => 5, + 'title' => '', + 'example' => '', ], ], [ - 'name' => 'QosNameList', + 'name' => 'IncludeCrossAccountVbr', + 'in' => 'query', + 'schema' => ['description' => 'Specifies whether to include cross-account Virtual Border Routers.'."\n" + ."\n" + .'- **true**: Included.'."\n" + ."\n" + .'- **false** (default): Not included.', 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], + ], + [ + 'name' => 'ResourceGroupId', + 'in' => 'query', + 'schema' => ['description' => 'The resource group ID.'."\n" + ."\n" + .'For more information about resource groups, see [What is a resource group?](~~94475~~).', 'type' => 'string', 'required' => false, 'example' => 'rg-acfmxazb4ph6aiy****', 'title' => ''], + ], + [ + 'name' => 'Tags', 'in' => 'query', 'style' => 'repeatList', 'schema' => [ - 'title' => 'Qos策略名称集合。', - 'description' => 'The names of QoS policies.', + 'description' => 'The tags of the resource.', 'type' => 'array', 'items' => [ - 'description' => 'The names of QoS policies.', - 'type' => 'string', + 'description' => 'The tag.', + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => 'The tag key of the resource. You must specify at least 1 tag key and can specify up to 20 tag keys. The tag key cannot be an empty string.'."\n" + ."\n" + .'A tag key can be up to 128 characters in length and cannot start with `aliyun` or `acs:`. It cannot contain `http://` or `https://`.', 'type' => 'string', 'required' => false, 'example' => 'FinanceDept', 'title' => ''], + 'Value' => ['description' => 'The tag value of the resource. You can specify up to 20 tag values. The tag value can be an empty string.'."\n" + ."\n" + .'The tag value can be up to 128 characters in length and cannot start with `aliyun` or `acs:`. It cannot contain `http://` or `https://`.', 'type' => 'string', 'required' => false, 'example' => 'FinanceJoshua', 'title' => ''], + ], 'required' => false, - 'example' => 'qos-test', + 'title' => '', + 'example' => '', ], 'required' => false, - 'maxItems' => 100, + 'maxItems' => 20, + 'title' => '', + 'example' => '', ], ], - [ - 'name' => 'NextToken', - 'in' => 'query', + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'title' => '是否拥有下一次查询的令牌(Token)。取值:'."\n" - .'● 第一次查询和没有下一次查询时,均无需填写。'."\n" - .'● 如果有下一次查询,取值为上一次API调用返回的NextToken值。', - 'description' => 'The pagination token that is used in the next request to retrieve a new page of results.'."\n" - ."\n" - .'- If no value is returned for NetToken, you do not need to specify this parameter.'."\n" - .'- If a value is returned for NextToken, you must specify the token that is obtained from the previous query as the value of **NextToken**.', - 'type' => 'string', - 'required' => false, - 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', + 'description' => 'The VBR information.', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'DE77A7F3-3B74-41C0-A5BC-CAFD188C28B6', 'title' => ''], + 'PageNumber' => ['description' => 'The page number of the list. Default value: **1**.', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''], + 'PageSize' => ['description' => 'The number of entries per page in a paged query. Maximum value: **50**. Default value: **10**.', 'type' => 'integer', 'format' => 'int32', 'example' => '10', 'title' => ''], + 'TotalCount' => ['description' => 'The total number of entries returned.', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''], + 'VirtualBorderRouterSet' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'VirtualBorderRouterType' => [ + 'description' => 'The list of queried VBRs.', + 'type' => 'array', + 'items' => [ + 'description' => 'The time when the VBR was created.', + 'type' => 'object', + 'properties' => [ + 'CreationTime' => ['description' => 'The time when the VBR was created.', 'type' => 'string', 'example' => '2020-06-08T12:20:55', 'title' => ''], + 'Status' => ['description' => 'The instance status of the VBR.'."\n" + .' '."\n" + .'- **unconfirmed**: waiting for confirmation from others.'."\n" + ."\n" + .'- **active**: Normal. '."\n" + ."\n" + .'- **terminating**: stopping access. '."\n" + ."\n" + .'- **terminated**: access stopped. '."\n" + ."\n" + .'- **recovering**: being recovered. '."\n" + ."\n" + .'- **deleting**: being deleted.', 'type' => 'string', 'example' => 'active', 'title' => ''], + 'Type' => ['description' => 'The type of the VBR.', 'type' => 'string', 'example' => 'pconnVBR', 'title' => ''], + 'MinTxInterval' => ['description' => 'The send alert interval of Bidirectional Forwarding Detection (BFD) packets. Valid values: **200 to 1000**. Unit: ms.', 'type' => 'integer', 'format' => 'int64', 'example' => '300', 'title' => ''], + 'PeerIpv6GatewayIp' => ['description' => 'The IPv6 address of the VBR instance on the customer side.', 'type' => 'string', 'example' => '2001:XXXX:3c4d:0015:0000:0000:0000:1a2b', 'title' => ''], + 'PConnVbrExpireTime' => ['description' => 'The expiration time of the billable VBR.', 'type' => 'string', 'example' => '2021-06-08T12:20:55', 'title' => ''], + 'PhysicalConnectionOwnerUid' => ['description' => 'The ID of the account to which the Express Connect circuit belongs.', 'type' => 'string', 'example' => '1688000000000****', 'title' => ''], + 'ActivationTime' => ['description' => 'The time when the VBR was first activated.', 'type' => 'string', 'example' => '2021-06-08T12:20:55', 'title' => ''], + 'PhysicalConnectionBusinessStatus' => ['description' => 'The business status of the Express Connect circuit.'."\n" + ."\n" + .'- **Normal**: Normal.'."\n" + ."\n" + .'- **FinancialLocked**: financial lock.', 'type' => 'string', 'example' => 'Normal', 'title' => ''], + 'Description' => ['description' => 'The description of the VBR.', 'type' => 'string', 'example' => 'desc', 'title' => ''], + 'TerminationTime' => ['description' => 'The time when the VBR was most recently terminated.', 'type' => 'string', 'example' => '2021-06-08T12:20:55', 'title' => ''], + 'MinRxInterval' => ['description' => 'The receive interval of BFD packets. Valid values: **200 to 1000**. Unit: ms.', 'type' => 'integer', 'format' => 'int64', 'example' => '300', 'title' => ''], + 'PeerGatewayIp' => ['description' => 'The IPv4 address of the VBR instance on the customer side.', 'type' => 'string', 'example' => '192.168.XX.XX', 'title' => ''], + 'Name' => ['description' => 'The name of the VBR instance.', 'type' => 'string', 'example' => 'test', 'title' => ''], + 'VbrId' => ['description' => 'The instance ID of the VBR.', 'type' => 'string', 'example' => 'vbr-bp1jcg5cmxjbl9xgc****', 'title' => ''], + 'VlanId' => ['description' => 'The VLAN ID of the VBR instance.', 'type' => 'integer', 'format' => 'int32', 'example' => '10', 'title' => ''], + 'VlanInterfaceId' => ['description' => 'The ID of the router interface of the VBR.', 'type' => 'string', 'example' => 'ri-2zeo3xzyf38r4xx****', 'title' => ''], + 'CircuitCode' => ['description' => 'The circuit code provided by the carrier for the Express Connect circuit.', 'type' => 'string', 'example' => 'longtel0****', 'title' => ''], + 'LocalIpv6GatewayIp' => ['description' => 'The IPv6 address of the VBR instance on the Alibaba Cloud side.', 'type' => 'string', 'example' => '2001:XXXX:3c4d:0015:0000:0000:0000:1a2b', 'title' => ''], + 'LocalGatewayIp' => ['description' => 'The IPv4 address of the VBR instance on the Alibaba Cloud side.', 'type' => 'string', 'example' => '192.168.XX.XX', 'title' => ''], + 'PeeringSubnetMask' => ['description' => 'The subnet mask for the IPv4 addresses on the Alibaba Cloud side and the customer side of the VBR instance.', 'type' => 'string', 'example' => '255.255.255.252', 'title' => ''], + 'EnableIpv6' => ['description' => 'Indicates whether IPv6 is enabled.'."\n" + ."\n" + .'- **true**: Enabled.'."\n" + ."\n" + .'- **false**: Disabled.', 'type' => 'boolean', 'example' => 'false', 'title' => ''], + 'RouteTableId' => ['description' => 'The route table ID of the VBR.', 'type' => 'string', 'example' => 'rtb-bp1****', 'title' => ''], + 'DetectMultiplier' => ['description' => 'The detection time multiplier.'."\n" + ."\n" + .'This is the maximum number of consecutive packet losses that the receiver allows from the sender, which is used to detect whether the link is normal.'."\n" + ."\n" + .'Valid values: **3 to 10**.', 'type' => 'integer', 'format' => 'int64', 'example' => '3', 'title' => ''], + 'EccId' => ['description' => 'The instance ID of the Express Cloud Connect instance.', 'type' => 'string', 'example' => 'ecc-h****', 'title' => ''], + 'CloudBoxInstanceId' => ['description' => 'The instance ID of the CloudBox.', 'type' => 'string', 'example' => 'cb-****', 'title' => ''], + 'RecoveryTime' => ['description' => 'The time when the VBR most recently recovered from the **terminated** state to the **active** state.', 'type' => 'string', 'example' => '2021-05-08T12:20:55', 'title' => ''], + 'PhysicalConnectionStatus' => ['description' => 'The status of the Express Connect circuit.'."\n" + ."\n" + .'- **Initial**: applying.'."\n" + ."\n" + .'- **Approved**: approved.'."\n" + ."\n" + .'- **Allocating**: allocating resources.'."\n" + ."\n" + .'- **Allocated**: under construction.'."\n" + ."\n" + .'- **Confirmed**: waiting for user confirmation.'."\n" + ."\n" + .'- **Enabled**: enabled.'."\n" + ."\n" + .'- **Rejected**: application rejected.'."\n" + ."\n" + .'- **Canceled**: canceled.'."\n" + ."\n" + .'- **Allocation Failed**: resource allocation failed.'."\n" + ."\n" + .'- **Terminated**: terminated.', 'type' => 'string', 'example' => 'Normal', 'title' => ''], + 'PeeringIpv6SubnetMask' => ['description' => 'The subnet mask for the IPv6 addresses on the Alibaba Cloud side and the customer side of the VBR instance.', 'type' => 'string', 'example' => '2000:1234:0:a000::/55', 'title' => ''], + 'AccessPointId' => ['description' => 'The ID of the access point for the Express Connect circuit.', 'type' => 'string', 'example' => 'ap-cn-kojok1x****', 'title' => ''], + 'PConnVbrChargeType' => ['description' => 'The billing method of the Virtual Border Router bound to the Express Connect circuit.'."\n" + ."\n" + .'- **PrePaid**: subscription. If you select this billing method, make sure that your account supports balance payment or credit payment.'."\n" + .'- **PostPaid**: pay-as-you-go.', 'type' => 'string', 'example' => 'PrePaid', 'title' => ''], + 'PhysicalConnectionId' => ['description' => 'The ID of the Express Connect circuit to which the VBR belongs.', 'type' => 'string', 'example' => 'pc-119mfjzm7x****', 'title' => ''], + 'AssociatedPhysicalConnections' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'AssociatedPhysicalConnection' => [ + 'description' => 'The information about the associated Express Connect circuits.', + 'type' => 'array', + 'items' => [ + 'description' => 'The information about the associated Express Connect circuits.', + 'type' => 'object', + 'properties' => [ + 'Status' => ['description' => 'The instance status of the VBR.'."\n" + .' '."\n" + .'- **unconfirmed**: waiting for confirmation from others.'."\n" + ."\n" + .'- **active**: Normal. '."\n" + ."\n" + .'- **terminating**: stopping access. '."\n" + ."\n" + .'- **terminated**: access stopped. '."\n" + ."\n" + .'- **recovering**: being recovered. '."\n" + ."\n" + .'- **deleting**: being deleted.', 'type' => 'string', 'example' => 'active', 'title' => ''], + 'VlanInterfaceId' => ['description' => 'The ID of the router interface of the VBR, which can be used as the next hop of a VBR route.', 'type' => 'string', 'example' => 'ri-kojok19x3j0q6k****', 'title' => ''], + 'CircuitCode' => ['description' => 'The circuit code provided by the carrier for the Express Connect circuit.', 'type' => 'string', 'example' => 'longtel0**', 'title' => ''], + 'PeerIpv6GatewayIp' => ['description' => 'The IPv6 address of the VBR instance on the customer side.', 'type' => 'string', 'example' => '2001:XXXX:3c4d:0015:0000:0000:0000:1a2b', 'title' => ''], + 'LocalIpv6GatewayIp' => ['description' => 'The IPv6 address of the VBR instance on the Alibaba Cloud side.', 'type' => 'string', 'example' => '2001:XXXX:3c4d:0015:0000:0000:0000:1a2b', 'title' => ''], + 'PhysicalConnectionOwnerUid' => ['description' => 'The ID of the account that owns the Express Connect circuit.', 'type' => 'string', 'example' => '12345678****', 'title' => ''], + 'LocalGatewayIp' => ['description' => 'The IPv4 address of the VBR instance on the Alibaba Cloud side.', 'type' => 'string', 'example' => '192.168.XX.XX', 'title' => ''], + 'PhysicalConnectionBusinessStatus' => ['description' => 'The business status of the Express Connect circuit.'."\n" + ."\n" + .'- **Normal**: Normal.'."\n" + ."\n" + .'- **FinancialLocked**: financial lock.', 'type' => 'string', 'example' => 'Normal', 'title' => ''], + 'PeeringSubnetMask' => ['description' => 'The subnet mask for the IPv4 addresses on the Alibaba Cloud side and the customer side of the VBR instance. '."\n" + ."\n" + .'The two IPv4 addresses must be in the same subnet.', 'type' => 'string', 'example' => '255.255.255.252', 'title' => ''], + 'EnableIpv6' => ['description' => 'Indicates whether IPv6 is enabled.'."\n" + ."\n" + .'- **true**: Enabled.'."\n" + ."\n" + .'- **false**: Disabled.', 'type' => 'boolean', 'example' => 'true', 'title' => ''], + 'PhysicalConnectionStatus' => ['description' => 'The status of the Express Connect circuit.'."\n" + ."\n" + .'- **Initial**: applying.'."\n" + ."\n" + .'- **Approved**: approved.'."\n" + ."\n" + .'- **Allocating**: allocating resources.'."\n" + ."\n" + .'- **Allocated**: under construction.'."\n" + ."\n" + .'- **Confirmed**: waiting for user confirmation.'."\n" + ."\n" + .'- **Enabled**: enabled.'."\n" + ."\n" + .'- **Rejected**: application rejected.'."\n" + ."\n" + .'- **Canceled**: canceled.'."\n" + ."\n" + .'- **Allocation Failed**: resource allocation failed.'."\n" + ."\n" + .'- **Terminated**: terminated.', 'type' => 'string', 'example' => 'Enabled', 'title' => ''], + 'PeerGatewayIp' => ['description' => 'The IPv4 address of the VBR instance on the customer side.', 'type' => 'string', 'example' => '116.62.XX.XX', 'title' => ''], + 'PeeringIpv6SubnetMask' => ['description' => 'The subnet mask for the IPv6 addresses on the Alibaba Cloud side and the customer side of the VBR instance. '."\n" + ."\n" + .'The two IPv6 addresses must be in the same subnet.', 'type' => 'string', 'example' => '2408:4004:cc:400::/56', 'title' => ''], + 'PhysicalConnectionId' => ['description' => 'The ID of the Express Connect circuit.', 'type' => 'string', 'example' => 'pc-119mfjzm7****', 'title' => ''], + 'VlanId' => ['description' => 'The VLAN ID of the VBR instance.', 'type' => 'string', 'example' => '0', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'AssociatedCens' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'AssociatedCen' => [ + 'description' => 'The information about the associated Cloud Enterprise Network (CEN) instances.', + 'type' => 'array', + 'items' => [ + 'description' => 'The instance information.', + 'type' => 'object', + 'properties' => [ + 'CenOwnerId' => ['description' => 'The ID of the account to which the CEN instance belongs.', 'type' => 'integer', 'format' => 'int64', 'example' => '1688000000000****', 'title' => ''], + 'CenId' => ['description' => 'The instance ID of the CEN.', 'type' => 'string', 'example' => 'cen-kojok19xxx****', 'title' => ''], + 'CenStatus' => ['description' => 'The status of the CEN instance.'."\n" + ."\n" + .'- **Attached**: associated.'."\n" + ."\n" + .'- **Attaching**: being associated.'."\n" + ."\n" + .'- **Detached**: dissociated.'."\n" + ."\n" + .'- **Detaching**: being dissociated.'."\n" + ."\n" + .'- Empty: not associated.', 'type' => 'string', 'example' => 'Attached', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'Bandwidth' => ['description' => 'The bandwidth of the VBR instance. Unit: Mbit/s.', 'type' => 'integer', 'format' => 'int32', 'example' => '50', 'title' => ''], + 'ResourceGroupId' => ['description' => 'The resource group ID.'."\n" + ."\n" + .'For more information about resource groups, see [What is a resource group?](~~2381067~~).', 'type' => 'string', 'example' => 'rg-acfmxazb4ph6aiy****', 'title' => ''], + 'Tags' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Tags' => [ + 'description' => 'The tags of the resource.', + 'type' => 'array', + 'items' => [ + 'description' => 'The tag.', + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => 'The tag key of the resource.', 'type' => 'string', 'example' => 'FinanceDept', 'title' => ''], + 'Value' => ['description' => 'The tag value of the resource.', 'type' => 'string', 'example' => 'FinanceJoshua', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'EcrId' => ['description' => 'The instance ID of the associated Express Connect Router (ECR).', 'type' => 'string', 'example' => 'ecr-7vrbqv9lcgvzqbwwkm', 'title' => ''], + 'SitelinkEnable' => ['description' => 'Indicates whether communication between IDCs is allowed. Valid values:'."\n" + ."\n" + .'* **true**: allowed.'."\n" + .'* **false**: not allowed.'."\n" + ."\n" + .'>If no value is specified, communication between IDCs is not allowed.', 'type' => 'boolean', 'example' => 'false', 'title' => ''], + 'EcrAttatchStatus' => ['description' => 'The association status of the Express Connect Router (ECR).'."\n" + ."\n" + .'- **Attached**: associated.'."\n" + ."\n" + .'- **Attaching**: being associated.'."\n" + ."\n" + .'- **Detached**: dissociated.'."\n" + ."\n" + .'- **Detaching**: being dissociated.'."\n" + ."\n" + .'- **Empty**: not associated.', 'type' => 'string', 'example' => 'Attached', 'title' => ''], + 'EcrOwnerId' => ['description' => 'The ID of the Alibaba Cloud account that owns the ECR instance.', 'type' => 'string', 'example' => '192732132151xxxx', 'title' => ''], + 'Mtu' => ['description' => 'The MTU value supported by the VBR. Valid values: 1500 and 8500.', 'type' => 'integer', 'format' => 'int32', 'example' => '1500', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + ], + 'title' => '', + 'example' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'OperationFailed.InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error.', 'description' => 'Unknown error. Please retry the operation. The error still exists. Please submit the work order for processing.'], + ], + 404 => [ + ['errorCode' => 'InvalidRegionId.NotFound', 'errorMessage' => 'The RegionId provided does not exist in our records.', 'description' => ''], + ['errorCode' => 'InvalidFilterKey.ValueNotSupported', 'errorMessage' => 'Specified filter key is not supported: Filter.X.key', 'description' => 'Filter.X.key is not supported.'], + ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'Query created virtual border routers (VBRs)', + 'summary' => 'Queries Virtual Border Router (VBR) instances that you have created.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => "\n", + 'changeSet' => [ + ['createdAt' => '2024-11-12T08:03:53.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-04-17T09:28:16.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2023-12-26T12:30:41.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2023-07-20T11:21:56.000Z', 'description' => 'Request parameters changed, Response parameters changed'], + ['createdAt' => '2022-11-16T06:47:03.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2022-10-14T07:11:09.000Z', 'description' => 'Request parameters changed'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DescribeVirtualBorderRouters'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], + ], + 'ramActions' => [ + [ + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'vpc:DescribeVirtualBorderRouters', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VirtualBorderRouter', 'arn' => 'acs:vpc:{#regionId}:{#AccountId}:virtualborderrouter/{#VbrId}'], + ], ], ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"DE77A7F3-3B74-41C0-A5BC-CAFD188C28B6\\",\\n \\"PageNumber\\": 1,\\n \\"PageSize\\": 10,\\n \\"TotalCount\\": 1,\\n \\"VirtualBorderRouterSet\\": {\\n \\"VirtualBorderRouterType\\": [\\n {\\n \\"CreationTime\\": \\"2020-06-08T12:20:55\\",\\n \\"Status\\": \\"active\\",\\n \\"Type\\": \\"pconnVBR\\",\\n \\"MinTxInterval\\": 300,\\n \\"PeerIpv6GatewayIp\\": \\"2001:XXXX:3c4d:0015:0000:0000:0000:1a2b\\",\\n \\"PConnVbrExpireTime\\": \\"2021-06-08T12:20:55\\",\\n \\"PhysicalConnectionOwnerUid\\": \\"1688000000000****\\",\\n \\"ActivationTime\\": \\"2021-06-08T12:20:55\\",\\n \\"PhysicalConnectionBusinessStatus\\": \\"Normal\\",\\n \\"Description\\": \\"desc\\",\\n \\"TerminationTime\\": \\"2021-06-08T12:20:55\\",\\n \\"MinRxInterval\\": 300,\\n \\"PeerGatewayIp\\": \\"192.168.XX.XX\\",\\n \\"Name\\": \\"test\\",\\n \\"VbrId\\": \\"vbr-bp1jcg5cmxjbl9xgc****\\",\\n \\"VlanId\\": 10,\\n \\"VlanInterfaceId\\": \\"ri-2zeo3xzyf38r4xx****\\",\\n \\"CircuitCode\\": \\"longtel0****\\",\\n \\"LocalIpv6GatewayIp\\": \\"2001:XXXX:3c4d:0015:0000:0000:0000:1a2b\\",\\n \\"LocalGatewayIp\\": \\"192.168.XX.XX\\",\\n \\"PeeringSubnetMask\\": \\"255.255.255.252\\",\\n \\"EnableIpv6\\": false,\\n \\"RouteTableId\\": \\"rtb-bp1****\\",\\n \\"DetectMultiplier\\": 3,\\n \\"EccId\\": \\"ecc-h****\\",\\n \\"CloudBoxInstanceId\\": \\"cb-****\\",\\n \\"RecoveryTime\\": \\"2021-05-08T12:20:55\\",\\n \\"PhysicalConnectionStatus\\": \\"Normal\\",\\n \\"PeeringIpv6SubnetMask\\": \\"2000:1234:0:a000::/55\\",\\n \\"AccessPointId\\": \\"ap-cn-kojok1x****\\",\\n \\"PConnVbrChargeType\\": \\"PrePaid\\",\\n \\"PhysicalConnectionId\\": \\"pc-119mfjzm7x****\\",\\n \\"AssociatedPhysicalConnections\\": {\\n \\"AssociatedPhysicalConnection\\": [\\n {\\n \\"Status\\": \\"active\\",\\n \\"VlanInterfaceId\\": \\"ri-kojok19x3j0q6k****\\",\\n \\"CircuitCode\\": \\"longtel0**\\",\\n \\"PeerIpv6GatewayIp\\": \\"2001:XXXX:3c4d:0015:0000:0000:0000:1a2b\\",\\n \\"LocalIpv6GatewayIp\\": \\"2001:XXXX:3c4d:0015:0000:0000:0000:1a2b\\",\\n \\"PhysicalConnectionOwnerUid\\": \\"12345678****\\",\\n \\"LocalGatewayIp\\": \\"192.168.XX.XX\\",\\n \\"PhysicalConnectionBusinessStatus\\": \\"Normal\\",\\n \\"PeeringSubnetMask\\": \\"255.255.255.252\\",\\n \\"EnableIpv6\\": true,\\n \\"PhysicalConnectionStatus\\": \\"Enabled\\",\\n \\"PeerGatewayIp\\": \\"116.62.XX.XX\\",\\n \\"PeeringIpv6SubnetMask\\": \\"2408:4004:cc:400::/56\\",\\n \\"PhysicalConnectionId\\": \\"pc-119mfjzm7****\\",\\n \\"VlanId\\": \\"0\\"\\n }\\n ]\\n },\\n \\"AssociatedCens\\": {\\n \\"AssociatedCen\\": [\\n {\\n \\"CenOwnerId\\": 0,\\n \\"CenId\\": \\"cen-kojok19xxx****\\",\\n \\"CenStatus\\": \\"Attached\\"\\n }\\n ]\\n },\\n \\"Bandwidth\\": 50,\\n \\"ResourceGroupId\\": \\"rg-acfmxazb4ph6aiy****\\",\\n \\"Tags\\": {\\n \\"Tags\\": [\\n {\\n \\"Key\\": \\"FinanceDept\\",\\n \\"Value\\": \\"FinanceJoshua\\"\\n }\\n ]\\n },\\n \\"EcrId\\": \\"ecr-7vrbqv9lcgvzqbwwkm\\",\\n \\"SitelinkEnable\\": false,\\n \\"EcrAttatchStatus\\": \\"Attached\\",\\n \\"EcrOwnerId\\": \\"192732132151xxxx\\",\\n \\"Mtu\\": 1500\\n }\\n ]\\n }\\n}","type":"json"}]', + ], + 'DescribeVirtualBorderRoutersForPhysicalConnection' => [ + 'summary' => 'Query the virtual border routers (VBRs) under a specified Express Connect circuit, including VBRs owned by the Express Connect circuit owner and VBRs from other accounts.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'MaxResults', + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'list', 'riskType' => 'none', 'chargeType' => 'free'], + 'parameters' => [ + [ + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'title' => '分批次查询时每次显示的条目数。取值范围:1~100,默认值为20。', - 'description' => 'The maximum number of entries to return. Valid values: **1** to **100**. Default value: **10**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '20', - ], + 'schema' => ['description' => 'The region in which the Express Connect circuit is deployed. You can call the [DescribeRegions](~~36063~~) operation to obtain the region ID.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-shanghai', 'title' => ''], ], [ - 'name' => 'ResourceGroupId', + 'name' => 'PhysicalConnectionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The resource group ID.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'rg-acfmxazfdgdg****', - ], + 'schema' => ['description' => 'The ID of the Express Connect circuit.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'pc-119mfj****', 'title' => ''], ], [ - 'name' => 'Tags', + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => ['description' => 'The page number. Default value: **1**.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'minimum' => '1', 'example' => '1', 'default' => '1', 'title' => ''], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => ['description' => 'The number of entries per page. Maximum value: **50**. Default value: **10**.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '50', 'minimum' => '1', 'example' => '10', 'default' => '10', 'title' => ''], + ], + [ + 'name' => 'Filter', 'in' => 'query', 'style' => 'repeatList', 'schema' => [ - 'description' => 'The tags of the resource.', + 'description' => 'The filter keys.'."\n", 'type' => 'array', 'items' => [ - 'description' => 'The tags of the resource.', + 'description' => 'A list of filter conditions.'."\n" + ."\n\n" + ."\n", 'type' => 'object', 'properties' => [ - 'Key' => [ - 'description' => 'The tag key. You must enter at least one tag key. You can specify up to 20 tag keys. The tag key cannot be an empty string.'."\n" - ."\n" - .'A tag key can be at most 128 characters in length. It cannot start with `aliyun` or `acs:`, and cannot contain `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'FinanceDept', - ], + 'Key' => ['description' => 'The filter conditions. You can specify at most five filter conditions. The following filter conditions are supported:'."\n" + ."\n" + .'* **PhysicalConnectionId**: filter VBRs by the Express Connect circuit ID.'."\n" + .'* **VbrId**: filter VBRs by ID.'."\n" + .'* **Status**: filter VBRs by status.'."\n" + .'* **Name**: filter VBRs by name.'."\n" + .'* **AccessPointId**: filter VBRs by access point ID.'."\n" + .'* **eccId**: filter VBRs by ID of Express Cloud Connect (ECC) instance.'."\n" + .'* **type**: filter VBRs by type.'."\n", 'type' => 'string', 'required' => false, 'example' => 'Status', 'title' => ''], 'Value' => [ - 'description' => 'The tag values of the resources. You can specify up to 20 tag values. The tag value can be an empty string.'."\n" - ."\n" - .'The tag value can be up to 128 characters in length, and cannot contain `http://` or `https://`. The tag value cannot start with `aliyun` or `acs:`.'."\n", - 'type' => 'string', + 'description' => 'The filter value for the key. You can specify multiple filter values for one key. The logical operator among filter values is OR. If one filter value is matched, the filter condition is matched.'."\n", + 'type' => 'array', + 'items' => ['description' => 'The filter value for the key. You can specify multiple filter values for one key. The logical operator among filter values is OR. If one filter value is matched, the filter condition is matched.'."\n", 'type' => 'string', 'required' => false, 'example' => 'Active', 'title' => ''], 'required' => false, - 'example' => 'FinanceJoshua', + 'example' => 'Active', + 'maxItems' => 5, + 'title' => '', ], ], 'required' => false, + 'title' => '', + 'example' => '', ], 'required' => false, - 'maxItems' => 20, + 'maxItems' => 5, + 'title' => '', + 'example' => '', ], ], ], @@ -45519,439 +35162,533 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '4CF20CC7-D1FC-425B-A15B-DF7C8E2131A7', - ], - 'NextToken' => [ - 'description' => 'A pagination token. It can be used in the next request to retrieve a new page of results.'."\n" - ."\n" - .'* If **NextToken** is empty, no next page exists.'."\n" - .'* If a value is returned for **NextToken**, the value can be used in the next request to retrieve a new page of results.'."\n", - 'type' => 'string', - 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', - ], - 'MaxResults' => [ - 'description' => 'The number of entries per page. Valid values: **1 to 100**. Default value: 20.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '20', - ], - 'TotalCount' => [ - 'description' => 'The number of returned entries.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'Count' => [ - 'description' => 'The total number of entries returned.'."\n", - 'type' => 'string', - 'example' => '1', - ], - 'QosList' => [ - 'description' => 'The information about QoS policies.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The information about the QoS policies.'."\n", - 'type' => 'object', - 'properties' => [ - 'QosId' => [ - 'description' => 'The ID of the QoS policy.', - 'type' => 'string', - 'example' => 'qos-pksbqfmotl5hzq****', - ], - 'QosName' => [ - 'description' => 'The name of the QoS policy.'."\n" - ."\n" - .'The name can be up to 128 characters in length and cannot start with `http://` or `https://`.', - 'type' => 'string', - 'example' => 'qos-test', - ], - 'QosDescription' => [ - 'description' => 'The description of the QoS policy.'."\n" - ."\n" - .'The description can be up to 256 characters in length. It cannot start with `http://` or `https://`.', - 'type' => 'string', - 'example' => 'qos-test', - ], - 'Status' => [ - 'description' => 'The state of the QoS policy. Valid values:'."\n" - ."\n" - .'- **Normal**: The QoS policy is available.'."\n" - .'- **Configuring**: The QoS policy is being configured.'."\n" - ."\n" - .' > If a QoS policy is in the Configuring state, you cannot perform most of the operations to create, update, or delete QoS policies, QoS queues, or QoS rules.', - 'type' => 'string', - 'enumValueTitles' => [ - 'Configuring' => 'Configuring', - 'Normal' => 'Normal', - ], - 'example' => 'Normal', - ], - 'Progressing' => [ - 'description' => 'The configuration progress of the QoS policy. Valid values: **0** to **100**.', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '100', - ], - 'AssociatedInstanceList' => [ - 'description' => 'The information about the instances to which the QoS policy is associated.', - 'type' => 'array', - 'items' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'InstanceId' => [ - 'description' => 'The ID of the instance to which the QoS policy is associated.', - 'type' => 'string', - 'example' => 'pc-bp159zj8zujwy3p07j83e', - ], - 'InstanceType' => [ - 'description' => 'The type of the instance to which the QoS policy is associated. Only **PHYSICALCONNECTION** is returned.', - 'type' => 'string', - 'enumValueTitles' => [ - 'PHYSICALCONNECTION' => 'PHYSICALCONNECTION', - ], - 'example' => 'PHYSICALCONNECTION', - ], - 'InstanceStatus' => [ - 'description' => 'The state of the instance to which the QoS policy is associated. Valid values:'."\n" - ."\n" - .'- **Normal**: The instance is available.'."\n" - .'- **Configuring**: The instance is being configured.'."\n" - .'- **Deleting**: The instance is being deleted.', - 'type' => 'string', - 'enumValueTitles' => [ - 'Configuring' => 'Configuring', - 'Normal' => 'Normal', - 'Deleting' => 'Deleting', - ], - 'example' => 'Normal', - ], - 'InstanceProgressing' => [ - 'description' => 'The configuration progress of the instance to which the QoS policy is associated. Valid values: **0** to **100**.', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '100', - ], - ], - ], - ], - 'QueueList' => [ - 'description' => 'The information about the QoS queues.', - 'type' => 'array', - 'items' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'QosId' => [ - 'description' => 'The ID of the QoS policy.', - 'type' => 'string', - 'example' => 'qos-pksbqfmotl5hzqmhf8', - ], - 'QueueId' => [ - 'description' => 'The ID of the QoS queue.', - 'type' => 'string', - 'example' => 'qos-queue-9nyx2u7n71s2rcy4n5', - ], - 'QueueType' => [ - 'description' => 'The type of the QoS queue. Valid values:'."\n" - ."\n" - .'- **High**: high-priority queue.'."\n" - .'- **Medium**: standard queue.'."\n" - .'- **Default**: default queue.'."\n" - ."\n\n" - .'> You cannot create a default queue.', - 'type' => 'string', - 'enumValueTitles' => [ - 'High' => 'High', - 'Medium' => 'Medium', - 'Default' => 'Default', - ], - 'example' => 'High', - ], - 'BandwidthPercent' => [ - 'description' => 'The percentage of bandwidth allocated to a QoS queue.'."\n" - ."\n" - .'- If QueueType is set to **Medium**, this parameter is required. Valid values: **1** to **100**.'."\n" - .'- If QueueType is set to **Default**, a value of - is returned.', - 'type' => 'string', - 'example' => '100', - ], - 'QueueName' => [ - 'description' => 'The name of the QoS queue.'."\n" - ."\n" - .'The name can be up to **128** characters in length and cannot start with `http://` or `https://`.', - 'type' => 'string', - 'example' => 'qos-queue-test', - ], - 'QueueDescription' => [ - 'description' => 'The description of the QoS queue.'."\n" - ."\n" - .'The description can be up to **256** characters in length. It cannot start with `http://` or `https://`.', - 'type' => 'string', - 'example' => 'qos-queue-test', - ], - 'Status' => [ - 'description' => 'The state of the QoS queue. Valid values:'."\n" - ."\n" - .'- **Normal**: The QoS queue is available.'."\n" - .'- **Configuring**: The QoS queue is being configured.'."\n" - .'- **Deleting**: The QoS queue is being deleted.', - 'type' => 'string', - 'example' => 'Normal', - ], - ], - ], - ], - 'ResourceGroupId' => [ - 'description' => 'The ID of the resource group.', - 'type' => 'string', - 'example' => 'rg-acfmz7vtyl4f***', - ], - 'Tags' => [ - 'description' => 'The tag list.', - 'type' => 'array', - 'items' => [ - 'description' => 'The tag list.', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => 'The tag key.', - 'type' => 'string', - 'example' => 'FinanceDept', - ], - 'Value' => [ - 'description' => 'The tag value.', - 'type' => 'string', - 'example' => 'FinanceJoshua', - ], - ], - ], - ], - ], - ], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '7C5AE8B3-A2D8-428D-A2FF-93A225C0821E', 'title' => ''], + 'PageNumber' => ['description' => 'The page number. Default value: **1**.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''], + 'PageSize' => ['description' => 'The number of entries per page. Maximum value: **50**. Default value: **10**.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '10', 'title' => ''], + 'TotalCount' => ['description' => 'The number of entries returned.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''], + 'VirtualBorderRouterForPhysicalConnectionSet' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'VirtualBorderRouterForPhysicalConnectionType' => [ + 'description' => 'The information about VBRs.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Status' => ['description' => 'The status of the VBR. Valid values:'."\n" + ."\n" + .'* **unconfirmed**'."\n" + .'* **active**'."\n" + .'* **terminating**'."\n" + .'* **terminated**'."\n" + .'* **recovering**'."\n" + .'* **deleting**'."\n", 'type' => 'string', 'example' => 'Active', 'title' => ''], + 'CreationTime' => ['description' => 'The time when the VBR was created.'."\n", 'type' => 'string', 'example' => '2021-06-08T12:20:55', 'title' => ''], + 'Type' => ['description' => 'The VBR type.'."\n", 'type' => 'string', 'example' => 'pconnVBR', 'title' => ''], + 'PeerIpv6GatewayIp' => ['description' => 'The IPv6 address of the gateway device on the user side.'."\n" + ."\n" + .'This parameter is required when you create a VBR for the owner of the Express Connect circuit. You can ignore this parameter when you create a VBR for another Alibaba Cloud account.'."\n", 'type' => 'string', 'example' => '2001:XXXX:3c4d:0015:0000:0000:0000:1a2b', 'title' => ''], + 'CircuitCode' => ['description' => 'The circuit code of the Express Connect circuit. The circuit code is provided by the connectivity provider.'."\n", 'type' => 'string', 'example' => 'longtel0**', 'title' => ''], + 'LocalIpv6GatewayIp' => ['description' => 'The IPv6 address of the gateway device on the Alibaba Cloud side.'."\n", 'type' => 'string', 'example' => 'ipv6bw-uf6hcyzu65v98v3du****', 'title' => ''], + 'PConnVbrExpireTime' => ['description' => 'The time when the VBR associated with the Express Connect circuit expires.'."\n", 'type' => 'string', 'example' => '2021-06-10T12:20:55', 'title' => ''], + 'LocalGatewayIp' => ['description' => 'The IPv4 address of the gateway device on the Alibaba Cloud side.'."\n", 'type' => 'string', 'example' => '192.168.XX.X', 'title' => ''], + 'BandwidthStatus' => ['description' => 'The status of the bandwidth. Valid values:'."\n" + ."\n" + .'* **Active**'."\n" + .'* **Inactive**'."\n", 'type' => 'string', 'example' => 'Active', 'title' => ''], + 'ActivationTime' => ['description' => 'The time when the VBR was first activated.'."\n", 'type' => 'string', 'example' => '2021-06-08T12:20:55', 'title' => ''], + 'VbrOwnerUid' => ['description' => 'The ID of the Alibaba Cloud account to which the VBR belongs.'."\n" + ."\n" + .'If the owner of the VBR is the same as that of the Express Connect circuit, this parameter is empty.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '253460731706911258', 'title' => ''], + 'PeeringSubnetMask' => ['description' => 'The subnet mask of the IPv4 addresses configured on the user side and Alibaba Cloud side.'."\n" + ."\n" + .'The two IPv4 addresses must fall within the same subnet.'."\n", 'type' => 'string', 'example' => '255.255.255.0', 'title' => ''], + 'EnableIpv6' => ['description' => 'Indicates whether IPv6 is enabled. Valid values:'."\n" + ."\n" + .'* **true**'."\n" + .'* **false**'."\n", 'type' => 'boolean', 'example' => 'true', 'title' => ''], + 'EccId' => ['description' => 'The ID of the ECC instance.'."\n", 'type' => 'string', 'example' => 'ecc-sjghe****', 'title' => ''], + 'Bandwidth' => ['description' => 'The bandwidth of the VBR that is associated with the Express Connect circuit. Unit: Mbit/s.'."\n", 'type' => 'string', 'example' => '10', 'title' => ''], + 'RecoveryTime' => ['description' => 'The last time when the status of the VBR changed from Terminated to Active.'."\n", 'type' => 'string', 'example' => '2021-06-08T12:20:55', 'title' => ''], + 'TerminationTime' => ['description' => 'The last time when the VBR was disabled.'."\n", 'type' => 'string', 'example' => '2021-06-07T12:20:55', 'title' => ''], + 'PConnVbrBussinessStatus' => ['description' => 'The status of the VBR associated with the Express Connect circuit. Valid values:'."\n" + ."\n" + .'* **Normal**'."\n" + .'* **FinancialLocked**'."\n", 'type' => 'string', 'example' => 'Normal', 'title' => ''], + 'PeerGatewayIp' => ['description' => 'The IPv4 address of the gateway device on the user side.'."\n", 'type' => 'string', 'example' => '162.62.XX.XX', 'title' => ''], + 'PeeringIpv6SubnetMask' => ['description' => 'The subnet mask for the IPv6 addresses of the gateway devices on the Alibaba Cloud side and on the user side.'."\n" + ."\n" + .'The two IPv6 addresses must fall within the same subnet.'."\n", 'type' => 'string', 'example' => '2408:4004:cc:400::/56', 'title' => ''], + 'VbrId' => ['description' => 'The VBR ID.'."\n", 'type' => 'string', 'example' => 'vbr-bp16ksp61j7e0tk****', 'title' => ''], + 'PConnVbrChargeType' => ['description' => 'The billing method of the VBR. Valid values:'."\n" + ."\n" + .'* **PrePaid**: subscription. If you choose this billing method, make sure that your Apsara Stack account supports balance payments or credit payments.'."\n" + .'* **PostPaid**: pay-as-you-go.'."\n", 'type' => 'string', 'example' => 'PrePaid', 'title' => ''], + 'VlanId' => ['description' => 'The VLAN ID of the VBR.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '1678', 'title' => ''], + 'VbrName' => ['description' => 'The name of the VBR instance.', 'type' => 'string', 'example' => 'aliyun-to-bin-10G-A-QOS', 'title' => ''], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], 'description' => '', + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'IllegalParam.%s', - 'errorMessage' => 'The param of %s is illegal.', - ], + ['errorCode' => 'InvalidPhysicalConnectionId.NotFound', 'errorMessage' => 'The specified physicalConnection is not found.', 'description' => 'The specified physicalConnection is not found.'], + ], + 404 => [ + ['errorCode' => 'InvalidRegionId.NotFound', 'errorMessage' => 'The RegionId provided does not exist in our records.', 'description' => ''], + ['errorCode' => 'InvalidPhysicalConnectionId.NotFound', 'errorMessage' => 'The specified PhysicalConnectionId does not belong to user.', 'description' => ''], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"4CF20CC7-D1FC-425B-A15B-DF7C8E2131A7\\",\\n \\"NextToken\\": \\"FFmyTO70tTpLG6I3FmYAXGKPd****\\",\\n \\"MaxResults\\": 20,\\n \\"TotalCount\\": 10,\\n \\"Count\\": \\"1\\",\\n \\"QosList\\": [\\n {\\n \\"QosId\\": \\"qos-pksbqfmotl5hzq****\\",\\n \\"QosName\\": \\"qos-test\\",\\n \\"QosDescription\\": \\"qos-test\\",\\n \\"Status\\": \\"Normal\\",\\n \\"Progressing\\": 100,\\n \\"AssociatedInstanceList\\": [\\n {\\n \\"InstanceId\\": \\"pc-bp159zj8zujwy3p07****\\",\\n \\"InstanceType\\": \\"PHYSICALCONNECTION\\",\\n \\"InstanceStatus\\": \\"Normal\\",\\n \\"InstanceProgressing\\": 100\\n }\\n ],\\n \\"QueueList\\": [\\n {\\n \\"QosId\\": \\"qos-pksbqfmotl5hzq****\\",\\n \\"QueueId\\": \\"qos-queue-9nyx2u7n71s2rc****\\",\\n \\"QueueType\\": \\"High\\",\\n \\"BandwidthPercent\\": \\"100\\",\\n \\"QueueName\\": \\"qos-queue-test\\",\\n \\"QueueDescription\\": \\"qos-queue-test\\",\\n \\"Status\\": \\"Normal\\"\\n }\\n ],\\n \\"ResourceGroupId\\": \\"rg-acfmz7vtyl4f***\\",\\n \\"Tags\\": [\\n {\\n \\"Key\\": \\"FinanceDept\\",\\n \\"Value\\": \\"FinanceJoshua\\"\\n }\\n ]\\n }\\n ]\\n}","type":"json"}]', - 'title' => 'DescribeExpressConnectTrafficQos', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'Query virtual border routers (VBRs)', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"7C5AE8B3-A2D8-428D-A2FF-93A225C0821E\\",\\n \\"PageNumber\\": 1,\\n \\"PageSize\\": 10,\\n \\"TotalCount\\": 1,\\n \\"VirtualBorderRouterForPhysicalConnectionSet\\": {\\n \\"VirtualBorderRouterForPhysicalConnectionType\\": [\\n {\\n \\"Status\\": \\"Active\\",\\n \\"CreationTime\\": \\"2021-06-08T12:20:55\\",\\n \\"Type\\": \\"pconnVBR\\",\\n \\"PeerIpv6GatewayIp\\": \\"2001:XXXX:3c4d:0015:0000:0000:0000:1a2b\\",\\n \\"CircuitCode\\": \\"longtel0**\\",\\n \\"LocalIpv6GatewayIp\\": \\"ipv6bw-uf6hcyzu65v98v3du****\\",\\n \\"PConnVbrExpireTime\\": \\"2021-06-10T12:20:55\\",\\n \\"LocalGatewayIp\\": \\"192.168.XX.X\\",\\n \\"BandwidthStatus\\": \\"Active\\",\\n \\"ActivationTime\\": \\"2021-06-08T12:20:55\\",\\n \\"VbrOwnerUid\\": 253460731706911260,\\n \\"PeeringSubnetMask\\": \\"255.255.255.0\\",\\n \\"EnableIpv6\\": true,\\n \\"EccId\\": \\"ecc-sjghe****\\",\\n \\"Bandwidth\\": \\"10\\",\\n \\"RecoveryTime\\": \\"2021-06-08T12:20:55\\",\\n \\"TerminationTime\\": \\"2021-06-07T12:20:55\\",\\n \\"PConnVbrBussinessStatus\\": \\"Normal\\",\\n \\"PeerGatewayIp\\": \\"162.62.XX.XX\\",\\n \\"PeeringIpv6SubnetMask\\": \\"2408:4004:cc:400::/56\\",\\n \\"VbrId\\": \\"vbr-bp16ksp61j7e0tk****\\",\\n \\"PConnVbrChargeType\\": \\"PrePaid\\",\\n \\"VlanId\\": 1678,\\n \\"VbrName\\": \\"aliyun-to-bin-10G-A-QOS\\"\\n }\\n ]\\n }\\n}","type":"json"}]', + 'translator' => 'machine', ], - 'DeleteExpressConnectTrafficQosQueue' => [ - 'summary' => 'Deletes a quality of service (QoS) queue.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DescribeVpcAttribute' => [ + 'summary' => 'Queries the configuration of a virtual private cloud (VPC).', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'read', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'delete', + 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATUREvpcK3NXU2'], ], 'parameters' => [ [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the QoS policy.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-shanghai', - ], - ], - [ - 'name' => 'ClientToken', + 'name' => 'VpcId', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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.'."\n" - ."\n" - .'> 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.'."\n", - 'type' => 'string', - 'required' => false, - 'docRequired' => true, - 'example' => '0c593ea1-3bea-11e9-b96b-88e9fe637760', - ], + 'schema' => ['description' => 'The ID of the VPC that you want to query.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'vpc-bp18sth14qii3pnv****', 'title' => ''], ], [ - 'name' => 'ClientToken', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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.'."\n" - ."\n" - .'> 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.'."\n", - 'type' => 'string', - 'required' => false, - 'docRequired' => true, - 'example' => '0c593ea1-3bea-11e9-b96b-88e9fe637760', - ], + 'schema' => ['description' => 'The ID of the region where the VPC is deployed.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'QosId', + 'name' => 'DryRun', 'in' => 'query', - 'schema' => [ - 'title' => 'Qos策略ID。', - 'description' => 'The ID of the QoS policy.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'qos-2giu0a6vd5x0mv4700', - ], + 'schema' => ['description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values:'."\n" + ."\n" + .'* **true**: performs only a dry run. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. DryRun only validates the request format and permissions, but does not verify whether the specified resource actually exists. If the request fails the dry run, an error message is returned. If the request passes dry run, the `DryRunOperation` error code is returned.'."\n" + .'* **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.', 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], ], [ - 'name' => 'QueueId', + 'name' => 'IsDefault', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the QoS queue.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'qos-queue-9nyx2u7n71s2rcy4n5', - ], + 'schema' => ['description' => 'Specifies whether the VPC is the default VPC. Valid values:'."\n" + ."\n" + .'* **false** (default)'."\n" + .'* **true**'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'description' => 'Creation Time of the VPC.', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => '9B9300FE-11E2-4E3B-949C-BED3B44DD26D', + 'CreationTime' => ['description' => 'The time when the VPC was created.'."\n", 'type' => 'string', 'example' => '2021-10-16T07:31:09Z', 'title' => ''], + 'Status' => ['description' => 'The status of the VPC. Valid values:'."\n" + ."\n" + .'* **Available**'."\n" + .'* **Pending**'."\n", 'type' => 'string', 'example' => 'Available', 'title' => ''], + 'VpcId' => ['description' => 'The ID of the VPC.'."\n", 'type' => 'string', 'example' => 'vpc-bp18sth14qii3pnvo****', 'title' => ''], + 'IsDefault' => ['description' => 'Indicates whether the VPC is the default VPC. Valid values:'."\n" + ."\n" + .'* **true**'."\n" + .'* **false** (default)', 'type' => 'boolean', 'example' => 'false', 'title' => ''], + 'ClassicLinkEnabled' => ['description' => 'Indicates whether the ClassicLink feature is enabled. Valid values:'."\n" + ."\n" + .'* **true**'."\n" + .'* **false** (default)'."\n", 'type' => 'boolean', 'deprecated' => true, 'example' => 'false', 'title' => ''], + 'OwnerId' => ['description' => 'The ID of the Alibaba Cloud account to which the VPC belongs.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '28311773240248****', 'title' => ''], + 'RegionId' => ['description' => 'The ID of the region to which the VPC belongs.', 'type' => 'string', 'example' => 'cn-hangzhou', 'title' => ''], + 'VpcName' => ['description' => 'The name of the VPC.'."\n", 'type' => 'string', 'example' => 'doctest2', 'title' => ''], + 'VRouterId' => ['description' => 'The ID of the vRouter that belongs to the VPC.'."\n", 'type' => 'string', 'example' => 'vrt-bp1jso6ng1at0ajsc****', 'title' => ''], + 'DhcpOptionsSetStatus' => ['description' => 'The status of the DHCP options set. Valid values:'."\n" + ."\n" + .'* **Available**'."\n" + .'* **InUse**'."\n" + .'* **Deleted**'."\n" + .'* **Pending**'."\n", 'type' => 'string', 'example' => 'Available', 'title' => ''], + 'CidrBlock' => ['description' => 'The IPv4 CIDR block of the VPC.'."\n", 'type' => 'string', 'example' => '192.168.0.0/16', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '7486AE4A-129D-43DB-A714-2432C074BA04', 'title' => ''], + 'Description' => ['description' => 'The description of the VPC.'."\n", 'type' => 'string', 'example' => 'VPC', 'title' => ''], + 'ResourceGroupId' => ['description' => 'The ID of the resource group.'."\n", 'type' => 'string', 'example' => 'rg-acfmxazbvgb4ph****', 'title' => ''], + 'DhcpOptionsSetId' => ['description' => 'The ID of the DHCP options set.'."\n", 'type' => 'string', 'example' => 'dopt-o6w0df4epg9zo8isy****', 'title' => ''], + 'Ipv6CidrBlock' => ['description' => 'The IPv6 CIDR block of the VPC.'."\n", 'type' => 'string', 'example' => '2408:XXXX:0:a600::/56', 'title' => ''], + 'VSwitchIds' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'VSwitchId' => [ + 'description' => 'The list of vSwitches deployed in the VPC.'."\n", + 'type' => 'array', + 'items' => ['description' => 'The list of vSwitches deployed in the VPC.', 'type' => 'string', 'example' => '{"VSwitchId": [ "vsw-bp14cagpfysr29feg****" ]}', 'title' => ''], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'UserCidrs' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'UserCidr' => [ + 'description' => 'The user CIDR block. Multiple CIDR blocks are separated by commas (,). At most three CIDR blocks are returned.'."\n", + 'type' => 'array', + 'items' => ['description' => 'The user CIDR block. Multiple CIDR blocks are separated by commas (,). At most three CIDR blocks are returned.', 'type' => 'string', 'example' => '172.16.0.1/24', 'title' => ''], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'SecondaryCidrBlocks' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'SecondaryCidrBlock' => [ + 'description' => 'The secondary IPv4 CIDR block of the VPC.'."\n", + 'type' => 'array', + 'items' => ['description' => 'The secondary IPv4 CIDR block of the VPC.', 'type' => 'string', 'example' => '192.168.0.0/16', 'title' => ''], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'AssociatedCens' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'AssociatedCen' => [ + 'description' => 'The list of Cloud Enterprise Network (CEN) instances to which the VPC is attached.'."\n" + ."\n" + .'If the VPC is not attached to a CEN instance, the parameter is not returned.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The ID of the account to which the Cloud Enterprise Network (CEN) belongs.', + 'type' => 'object', + 'properties' => [ + 'CenOwnerId' => ['description' => 'The ID of the account to which the CEN instance belongs.', 'type' => 'integer', 'format' => 'int64', 'example' => '28311773240248****', 'title' => ''], + 'CenId' => ['description' => 'The ID of the CEN instance to which the VPC is attached.'."\n", 'type' => 'string', 'example' => 'cen-7qthudw0ll6jmc****', 'title' => ''], + 'CenStatus' => ['description' => 'The status of the CEN instance.'."\n" + ."\n" + .'**Attached** is returned only when the VPC is attached to a CEN instance.', 'type' => 'string', 'example' => 'Attached', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'CloudResources' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'CloudResourceSetType' => [ + 'description' => 'The resources in the VPC.', + 'type' => 'array', + 'items' => [ + 'description' => 'The resource count in the VPC.', + 'type' => 'object', + 'properties' => [ + 'ResourceCount' => ['description' => 'The number of resources in the VPC.', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''], + 'ResourceType' => ['description' => 'The type of resource deployed in the VPC. Valid values: Valid values:'."\n" + ."\n" + .'* **VSwitch**'."\n" + .'* **VRouter**'."\n" + .'* **RouteTable**', 'type' => 'string', 'example' => 'VSwitch', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'Ipv6CidrBlocks' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Ipv6CidrBlock' => [ + 'description' => 'The IPv6 CIDR block of the VPC.', + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'Ipv6Isp' => ['description' => 'The IPv6 CIDR block type of the VPC. Valid values:'."\n" + ."\n" + .'* **BGP** (default)'."\n" + .'* **ChinaMobile**'."\n" + .'* **ChinaUnicom**'."\n" + .'* **ChinaTelecom**'."\n" + ."\n" + .'> If you are allowed to use single-ISP bandwidth, valid values are **ChinaTelecom**, **ChinaUnicom**, and **ChinaMobile**', 'type' => 'string', 'example' => 'BGP', 'title' => ''], + 'Ipv6CidrBlock' => ['description' => 'The IPv6 CIDR block of the VPC.', 'type' => 'string', 'example' => '2408:XXXX:0:6a::/56', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'SupportIpv4Gateway' => ['description' => 'Indicates whether the VPC supports IPv4 gateways.'."\n" + ."\n" + .'* **true**'."\n" + .'* **false**', 'type' => 'boolean', 'example' => 'true', 'title' => ''], + 'Ipv4GatewayId' => ['description' => 'The ID of the IPv4 gateway.', 'type' => 'string', 'example' => 'ipv4gw-5tsnc6s4ogsedtp3k****', 'title' => ''], + 'Tags' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Tag' => [ + 'description' => 'The information about the tags.', + 'type' => 'array', + 'items' => [ + 'description' => 'The tags.', + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => 'The key of tag N.', 'type' => 'string', 'example' => 'FinanceDept', 'title' => ''], + 'Value' => ['description' => 'The value of tag N.', 'type' => 'string', 'example' => 'FinanceJoshua', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'AssociatedPropagationSources' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'AssociatedPropagationSources' => [ + 'description' => 'The route source associated with the VPC.', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'SourceType' => ['description' => 'The source type.'."\n" + ."\n" + .'* **CEN**'."\n" + .'* **VPN**'."\n" + .'* **TR**'."\n" + .'* **ECR**', 'type' => 'string', 'example' => 'CEN', 'title' => ''], + 'SourceOwnerId' => ['description' => 'The account ID of the source.', 'type' => 'integer', 'format' => 'int64', 'example' => '153980532164****', 'title' => ''], + 'SourceInstanceId' => ['description' => 'The instance ID of the source.', 'type' => 'string', 'example' => 'cen-dc4vwznpwbobrl****', 'title' => ''], + 'Status' => ['description' => 'The binding status.'."\n" + ."\n" + .'* **Attaching**'."\n" + .'* **Attached**'."\n" + .'* **Detaching**', 'type' => 'string', 'example' => 'Attaching', 'title' => ''], + 'RoutePropagated' => ['description' => 'Indicates whether routes are advertised to the VPC.', 'type' => 'boolean', 'example' => 'true', 'title' => ''], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'EnabledIpv6' => [ + 'description' => 'Indicates whether the VPC enables IPv6 .'."\n" + .'- true'."\n" + .'- false', + 'enumValueTitles' => ['false' => 'false', 'true' => 'true'], + 'type' => 'boolean', + 'example' => 'false', + 'title' => '', ], + 'DnsHostnameStatus' => ['description' => 'Indicates whether DNS hostname is enabled.', 'type' => 'string', 'example' => 'DISABLED', 'title' => ''], ], + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'IllegalParam.%s', - 'errorMessage' => 'The param of %s is illegal.', - ], - [ - 'errorCode' => 'IncorrectStatus.Qos', - 'errorMessage' => 'The status of QoS is incorrect.', - ], - [ - 'errorCode' => 'EcQoSConflict', - 'errorMessage' => 'The specified QoS is conflict with other QoS.', - ], + ['errorCode' => 'IncorrectVpcStatus', 'errorMessage' => 'Current VPC status does not support this operation.', 'description' => ''], + ['errorCode' => 'Forbidden.VpcNotFound', 'errorMessage' => 'Specified VPC does not exist.', 'description' => ''], + ], + 404 => [ + ['errorCode' => 'InvalidVpcId.NotFound', 'errorMessage' => 'Specified VPC does not exist.', 'description' => ''], + ], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error.', 'description' => ''], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"9B9300FE-11E2-4E3B-949C-BED3B44DD26D\\"\\n}","type":"json"}]', - 'title' => 'DeleteExpressConnectTrafficQosQueue', + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"CreationTime\\": \\"2021-10-16T07:31:09Z\\",\\n \\"Status\\": \\"Available\\",\\n \\"VpcId\\": \\"vpc-bp18sth14qii3pnvo****\\",\\n \\"IsDefault\\": false,\\n \\"ClassicLinkEnabled\\": false,\\n \\"OwnerId\\": 0,\\n \\"RegionId\\": \\"cn-hangzhou\\",\\n \\"VpcName\\": \\"doctest2\\",\\n \\"VRouterId\\": \\"vrt-bp1jso6ng1at0ajsc****\\",\\n \\"DhcpOptionsSetStatus\\": \\"Available\\",\\n \\"CidrBlock\\": \\"192.168.0.0/16\\",\\n \\"RequestId\\": \\"7486AE4A-129D-43DB-A714-2432C074BA04\\",\\n \\"Description\\": \\"VPC\\",\\n \\"ResourceGroupId\\": \\"rg-acfmxazbvgb4ph****\\",\\n \\"DhcpOptionsSetId\\": \\"dopt-o6w0df4epg9zo8isy****\\",\\n \\"Ipv6CidrBlock\\": \\"2408:XXXX:0:a600::/56\\",\\n \\"VSwitchIds\\": {\\n \\"VSwitchId\\": [\\n \\"{\\\\\\"VSwitchId\\\\\\": [ \\\\\\"vsw-bp14cagpfysr29feg****\\\\\\" ]}\\"\\n ]\\n },\\n \\"UserCidrs\\": {\\n \\"UserCidr\\": [\\n \\"172.16.0.1/24\\"\\n ]\\n },\\n \\"SecondaryCidrBlocks\\": {\\n \\"SecondaryCidrBlock\\": [\\n \\"192.168.0.0/16\\"\\n ]\\n },\\n \\"AssociatedCens\\": {\\n \\"AssociatedCen\\": [\\n {\\n \\"CenOwnerId\\": 0,\\n \\"CenId\\": \\"cen-7qthudw0ll6jmc****\\",\\n \\"CenStatus\\": \\"Attached\\"\\n }\\n ]\\n },\\n \\"CloudResources\\": {\\n \\"CloudResourceSetType\\": [\\n {\\n \\"ResourceCount\\": 1,\\n \\"ResourceType\\": \\"VSwitch\\"\\n }\\n ]\\n },\\n \\"Ipv6CidrBlocks\\": {\\n \\"Ipv6CidrBlock\\": [\\n {\\n \\"Ipv6Isp\\": \\"BGP\\",\\n \\"Ipv6CidrBlock\\": \\"2408:XXXX:0:6a::/56\\"\\n }\\n ]\\n },\\n \\"SupportIpv4Gateway\\": true,\\n \\"Ipv4GatewayId\\": \\"ipv4gw-5tsnc6s4ogsedtp3k****\\",\\n \\"Tags\\": {\\n \\"Tag\\": [\\n {\\n \\"Key\\": \\"FinanceDept\\",\\n \\"Value\\": \\"FinanceJoshua\\"\\n }\\n ]\\n },\\n \\"AssociatedPropagationSources\\": {\\n \\"AssociatedPropagationSources\\": [\\n {\\n \\"SourceType\\": \\"CEN\\",\\n \\"SourceOwnerId\\": 0,\\n \\"SourceInstanceId\\": \\"cen-dc4vwznpwbobrl****\\",\\n \\"Status\\": \\"Attaching\\",\\n \\"RoutePropagated\\": true\\n }\\n ]\\n },\\n \\"EnabledIpv6\\": false,\\n \\"DnsHostnameStatus\\": \\"DISABLED\\"\\n}","type":"json"}]', + 'title' => 'DescribeVpcAttribute', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2024-10-10T06:15:00.000Z', 'description' => 'Error codes changed, Response parameters changed'], + ['createdAt' => '2024-08-27T02:00:39.000Z', 'description' => 'Error codes changed, Response parameters changed'], + ['createdAt' => '2024-06-24T03:22:13.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-04-09T02:53:33.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2024-01-05T06:29:38.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2023-05-17T09:49:59.000Z', 'description' => 'Response parameters changed'], + ], + 'ramActions' => [], + 'translator' => 'machine', ], - 'DeleteExpressConnectTrafficQos' => [ - 'summary' => 'Deletes a quality of service (QoS) policy.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DescribeVpcGrantRulesToEcr' => [ + 'summary' => 'Queries the cross-account authorizations between a network instance and an Express Connect Router.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'read', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'delete', - 'riskType' => 'none', - 'chargeType' => 'free', - ], + 'systemTags' => ['operationType' => 'list', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ + [ + 'name' => 'MaxResults', + 'in' => 'query', + 'schema' => ['description' => 'The number of entries to return per page. Valid values: **1** to **100**. Default value: **100**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '50', 'title' => ''], + ], + [ + 'name' => 'NextToken', + 'in' => 'query', + 'schema' => ['description' => 'The token used to retrieve the next page of results. Valid values:'."\n" + ."\n" + .'- Omit this parameter for the first request.'."\n" + ."\n" + .'- For subsequent requests, set this to the **NextToken** value from the previous response.', 'type' => 'string', 'required' => false, 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', 'title' => ''], + ], + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => ['description' => 'The ID of the network instance.', 'type' => 'string', 'required' => false, 'example' => 'vpc-wz9ek66wd7tl5xqpy****', 'title' => ''], + ], + [ + 'name' => 'EcrInstanceId', + 'in' => 'query', + 'schema' => ['description' => 'The ID of the Express Connect Router.', 'type' => 'string', 'required' => false, 'example' => 'ecr-ncxadcujadncsa****', 'title' => ''], + ], + [ + 'name' => 'EcrOwnerId', + 'in' => 'query', + 'schema' => ['description' => 'The ID of the Alibaba Cloud account (main account) that owns the Express Connect Router.'."\n" + ."\n" + .'> This parameter is required when querying a cross-account network instance.', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '192732132151****', 'title' => ''], + ], [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the QoS policy.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.', - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-shanghai'."\n", - ], + 'schema' => ['description' => 'The ID of the region where the network instance is located.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'ClientToken', + 'name' => 'ResourceGroupId', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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.'."\n" - ."\n" - .'> 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.'."\n", - 'type' => 'string', - 'required' => false, - 'docRequired' => true, - 'example' => '123e4567-e89b-12d3-a456-426655440000', - ], + 'schema' => ['description' => 'The ID of the resource group to which the network instance belongs.', 'type' => 'string', 'required' => false, 'example' => 'rg-acfmxazb4ph6aiy****', 'title' => ''], ], [ - 'name' => 'ClientToken', + 'name' => 'Tags', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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.'."\n" - ."\n" - .'> 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.'."\n", - 'type' => 'string', + 'description' => 'The tags. You can specify up to 20 tags.', + 'type' => 'array', + 'items' => [ + 'description' => 'The tag.', + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => 'The tag key. The tag key cannot be an empty string.'."\n" + ."\n" + .'The tag key can be up to 128 characters in length and cannot start with `aliyun` or `acs:`. It cannot contain `http://` or `https://`.', 'type' => 'string', 'required' => false, 'example' => 'FinanceDept', 'title' => ''], + 'Value' => ['description' => 'The tag value. The tag value can be an empty string.'."\n" + ."\n" + .'The tag value can be up to 128 characters in length and cannot start with `aliyun` or `acs:`. It cannot contain `http://` or `https://`.', 'type' => 'string', 'required' => false, 'example' => 'FinanceJoshua', 'title' => ''], + ], + 'required' => false, + 'title' => '', + 'example' => '', + ], 'required' => false, - 'docRequired' => true, - 'example' => '123e4567-e89b-12d3-a456-426655440000', + 'maxItems' => 10, + 'title' => '', + 'example' => '', ], ], [ - 'name' => 'QosId', + 'name' => 'InstanceType', 'in' => 'query', - 'schema' => [ - 'title' => 'Qos策略ID。', - 'description' => 'The instance ID of the QoS policy.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'qos-2giu0a6vd5x0mv4700'."\n", - ], + 'schema' => ['description' => 'The type of instance whose authorization rules you want to query. Valid values:'."\n" + ."\n" + .'- **VBR**: Set the value to **VBR** to query the Virtual Private Cloud (VPC) instances authorized to connect to the specified virtual border router (VBR).'."\n" + ."\n" + .'- **VPC**: Set the value to **VPC** to query the VBRs to which the specified VPC has granted authorization.', 'type' => 'string', 'required' => false, 'example' => 'VPC', 'title' => ''], ], ], 'responses' => [ @@ -45959,1875 +35696,2784 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '606998F0-B94D-48FE-8316-ACA81BB230DA', + 'NextToken' => ['description' => 'The pagination token for the next page of results. A non-empty value indicates that more results are available. If this parameter is not returned or is empty, all results have been retrieved.'."\n" + ."\n" + .'- If **NextToken** is empty, there are no more queries.'."\n" + ."\n" + .'- If **NextToken** has a value, the value is the token to start the next query.', 'type' => 'string', 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', 'title' => ''], + 'RequestId' => ['description' => 'The ID of the request.', 'type' => 'string', 'example' => '66342E8E-5E87-5FF9-80C7-C3E3571A****', 'title' => ''], + 'TotalCount' => ['description' => 'The total number of entries. Note: When you perform a paged query by using the `MaxResults` and `NextToken` parameters, the value of this parameter is for reference only.', 'type' => 'string', 'example' => '10', 'title' => ''], + 'GrantRuleModels' => [ + 'description' => 'A list of authorization rules.', + 'type' => 'array', + 'items' => [ + 'description' => 'Details of an authorization rule.', + 'type' => 'object', + 'properties' => [ + 'InstanceId' => ['description' => 'The ID of the network instance.', 'type' => 'string', 'example' => 'vpc-wz9ek66wd7tl5xqpy****', 'title' => ''], + 'Type' => ['description' => 'The type of the network instance. Valid values:'."\n" + ."\n" + .'- **VBR**: virtual border router'."\n" + ."\n" + .'- **VPC**: Virtual Private Cloud', 'type' => 'string', 'example' => 'VPC', 'title' => ''], + 'InstanceUid' => ['description' => 'The ID of the Alibaba Cloud account (main account) that owns the network instance.', 'type' => 'integer', 'format' => 'int64', 'example' => '192745367151****', 'title' => ''], + 'RegionNo' => ['description' => 'The ID of the region where the network instance is located.', 'type' => 'string', 'example' => 'cn-hangzhou', 'title' => ''], + 'EcrId' => ['description' => 'The ID of the Express Connect Router.', 'type' => 'string', 'example' => 'ecr-tz7w3chlaptxr2****', 'title' => ''], + 'EcrOwnerId' => ['description' => 'The ID of the Alibaba Cloud account (main account) that owns the Express Connect Router.', 'type' => 'integer', 'format' => 'int64', 'example' => '192732132151****', 'title' => ''], + 'CreationTime' => ['description' => 'The time when the authorization was created.', 'type' => 'string', 'example' => '2024-09-09T02:14:51Z', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', ], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'IllegalParam.%s', - 'errorMessage' => 'The param of %s is illegal.', - ], - [ - 'errorCode' => 'IncorrectStatus.Qos', - 'errorMessage' => 'The status of QoS is incorrect.', - ], - [ - 'errorCode' => 'EcQoSConflict', - 'errorMessage' => 'The specified QoS is conflict with other QoS.', - ], - [ - 'errorCode' => 'EcQoSWithPconnNotSupportDelete', - 'errorMessage' => 'The Qos policy associated with Pconn cannot be deleted. Please disassociate it first.', - ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'DescribeVpcGrantRulesToEcr', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '1200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DescribeVpcGrantRulesToEcr'], ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'ramActions' => [ + [ + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'vpc:DescribeVpcGrantRulesToEcr', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VPC', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vpc/{#InstanceId}'], + ], + ], + ], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"606998F0-B94D-48FE-8316-ACA81BB230DA\\"\\n}","type":"json"}]', - 'title' => 'DeleteExpressConnectTrafficQos', + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"NextToken\\": \\"FFmyTO70tTpLG6I3FmYAXGKPd****\\",\\n \\"RequestId\\": \\"66342E8E-5E87-5FF9-80C7-C3E3571A****\\",\\n \\"TotalCount\\": \\"10\\",\\n \\"GrantRuleModels\\": [\\n {\\n \\"InstanceId\\": \\"vpc-wz9ek66wd7tl5xqpy****\\",\\n \\"Type\\": \\"VPC\\",\\n \\"InstanceUid\\": 0,\\n \\"RegionNo\\": \\"cn-hangzhou\\",\\n \\"EcrId\\": \\"ecr-tz7w3chlaptxr2****\\",\\n \\"EcrOwnerId\\": 0,\\n \\"CreationTime\\": \\"2024-09-09T02:14:51Z\\"\\n }\\n ]\\n}","type":"json"}]', ], - 'DeleteExpressConnectTrafficQosRule' => [ - 'summary' => 'Deletes a quality of service (QoS) rule.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DescribeVpcs' => [ + 'summary' => 'Queries created VPCs.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'read', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'delete', + 'operationType' => 'list', 'riskType' => 'none', 'chargeType' => 'free', + 'abilityTreeCode' => '37764', + 'abilityTreeNodes' => ['FEATUREvpcK3NXU2'], ], 'parameters' => [ [ - 'name' => 'RegionId', + 'name' => 'VpcId', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the QoS policy.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-shanghai', - ], + 'schema' => ['description' => 'The ID of the VPC. '."\n" + ."\n" + .'You can specify up to 20 VPC IDs. Separate multiple IDs with commas (,).', 'type' => 'string', 'required' => false, 'example' => 'vpc-bp1b1xjllp3ve5yze****', 'title' => ''], ], [ - 'name' => 'ClientToken', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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 and cannot exceed 64 characters in length.'."\n", - 'type' => 'string', - 'required' => false, - 'docRequired' => true, - 'example' => '02fb3da4-130e-11e9-8e44-00****', - ], + 'schema' => ['description' => 'The region ID of the VPC. '."\n" + ."\n" + .'You can call the [DescribeRegions](~~448570~~) operation to query the region ID.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'ClientToken', + 'name' => 'VpcName', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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 and cannot exceed 64 characters in length.'."\n", - 'type' => 'string', - 'required' => false, - 'docRequired' => true, - 'example' => '02fb3da4-130e-11e9-8e44-00****', - ], + 'schema' => ['description' => 'The name of the VPC.', 'type' => 'string', 'required' => false, 'example' => 'Vpc-1', 'title' => ''], ], [ - 'name' => 'QosId', - 'in' => 'query', - 'schema' => [ - 'title' => 'Qos策略的名称。'."\n" - .'长度为0~128个字符,不能以http:// 或https://开头。', - 'description' => 'The ID of the QoS policy.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'qos-2giu0a6vd5x0mv4700', - ], - ], - [ - 'name' => 'QueueId', - 'in' => 'query', - 'schema' => [ - 'title' => 'Qos策略的描述信息。'."\n" - .'长度为0~256个字符,不能以http://或https://开头。', - 'description' => 'The ID of the QoS queue.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'qos-queue-9nyx2u7n71s2rcy4n5', - ], - ], - [ - 'name' => 'RuleId', + 'name' => 'IsDefault', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the QoS rule.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'qos-rule-iugg0l9x27f2nocouj', - ], - ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'title' => '请求ID。', - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => 'C44F62BE-9CE7-4277-B117-69243F3988BF', - ], - ], - ], + 'schema' => ['description' => 'Specifies whether to query the default VPC in the specified region. Valid values: '."\n" + ."\n" + .'- **true** (default): Queries the default VPC in the specified region. '."\n" + ."\n" + .'- **false**: Does not query the default VPC.', 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], ], - ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'IllegalParam.%s', - 'errorMessage' => 'The param of %s is illegal.', - ], - [ - 'errorCode' => 'IncorrectStatus.Qos', - 'errorMessage' => 'The status of QoS is incorrect.', - ], - [ - 'errorCode' => 'EcQoSConflict', - 'errorMessage' => 'The specified QoS is conflict with other QoS.', - ], - ], - ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"C44F62BE-9CE7-4277-B117-69243F3988BF\\"\\n}","type":"json"}]', - 'title' => 'DeleteExpressConnectTrafficQosRule', - ], - 'ModifyExpressConnectTrafficQos' => [ - 'summary' => 'Modifies a quality of service (QoS) policy or associates a QoS policy with a dedicated Express Connect circuit.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], - ], - ], - 'operationType' => 'readAndWrite', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'update', - 'riskType' => 'none', - 'chargeType' => 'free', - ], - 'parameters' => [ [ - 'name' => 'RegionId', + 'name' => 'DryRun', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the resource.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-shanghai', - ], + 'schema' => ['description' => 'Specifies whether to perform a dry run. Valid values:'."\n" + ."\n" + .'- **true**: performs a dry run. The system checks the request for potential issues, including invalid AccessKey pairs, unauthorized RAM users, and missing parameter values. If the check fails, the corresponding error is returned. If the check succeeds, the `DryRunOperation` error code is returned.'."\n" + ."\n" + .'- **false** (default): sends a normal request. If the check succeeds, an HTTP 2xx status code is returned and the resource is queried.', 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], ], [ - 'name' => 'ClientToken', + 'name' => 'ResourceGroupId', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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.'."\n" - ."\n" - .'> 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.'."\n", - 'type' => 'string', - 'required' => false, - 'docRequired' => true, - 'example' => '0c593ea1-3bea-11e9-b96b-88e9fe637760', - ], + 'schema' => ['description' => 'The ID of the resource group to which the VPC belongs.', 'type' => 'string', 'required' => false, 'example' => 'rg-acfmxvfvazb4p****', 'title' => ''], ], [ - 'name' => 'ClientToken', + 'name' => 'PageNumber', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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.'."\n" - ."\n" - .'> 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.'."\n", - 'type' => 'string', - 'required' => false, - 'docRequired' => true, - 'example' => '0c593ea1-3bea-11e9-b96b-88e9fe637760', - ], + 'schema' => ['description' => 'The page number. Default value: **1**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'minimum' => '1', 'default' => '1', 'example' => '1', 'title' => ''], ], [ - 'name' => 'QosName', + 'name' => 'PageSize', 'in' => 'query', - 'schema' => [ - 'title' => 'Qos策略的名称。'."\n" - .'长度为0~128个字符,不能以http:// 或https://开头。', - 'description' => 'The name of the QoS policy.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'qos-test', - ], + 'schema' => ['description' => 'The number of entries per page for paging. Maximum value: **50**. Default value: **10**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '50', 'minimum' => '1', 'default' => '10', 'example' => '10', 'title' => ''], ], [ - 'name' => 'QosDescription', + 'name' => 'VpcOwnerId', 'in' => 'query', - 'schema' => [ - 'title' => 'Qos策略的描述信息。'."\n" - .'长度为0~256个字符,不能以http://或https://开头。', - 'description' => 'The description of the QoS policy.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'qos-test', - ], + 'schema' => ['description' => 'The Alibaba Cloud account ID of the VPC owner.', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '253460731706911258', 'title' => ''], ], [ - 'name' => 'QosId', + 'name' => 'DhcpOptionsSetId', 'in' => 'query', - 'schema' => [ - 'title' => 'Qos策略ID。', - 'description' => 'The ID of the QoS policy.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'qos-2giu0a6vd5x0mv4700', - ], + 'schema' => ['description' => 'The ID of the DHCP options set.', 'type' => 'string', 'required' => false, 'example' => 'dopt-o6w0df4epg9zo8isy****', 'title' => ''], ], [ - 'name' => 'AddInstanceList', + 'name' => 'EnableIpv6', 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'title' => '本次更新需要添加的实例列表,如果没有需要添加的实例可以不用传递此参数', - 'description' => 'The instances to be added. Ignore this parameter if no instances are to be added.'."\n", - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'InstanceId' => [ - 'description' => 'The ID of the instance to be associated.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'pc-bp159zj8zujwy3p07****', - ], - 'InstanceType' => [ - 'description' => 'The type of instance to be associated. Set the value to **PHYSICALCONNECTION**.'."\n", - 'type' => 'string', - 'required' => false, - 'enumValueTitles' => [], - 'example' => 'PHYSICALCONNECTION', - 'enum' => [ - 'PHYSICALCONNECTION', - ], - ], - ], - 'required' => false, - ], - 'required' => false, - 'maxItems' => 100, - ], + 'schema' => ['description' => 'Specifies whether to query VPCs that have IPv6 CIDR blocks enabled in the specified region. The default value is empty, which means no filtering is performed based on IPv6 enablement. Valid values:'."\n" + ."\n" + .'- **false**: IPv6 is not enabled.'."\n" + .'- **true**: IPv6 is enabled.', 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], ], [ - 'name' => 'RemoveInstanceList', + 'name' => 'Tag', 'in' => 'query', 'style' => 'repeatList', 'schema' => [ - 'title' => '本次更新需要移除的实例列表,如果没有需要移除的实例可以不用传递此参数', - 'description' => 'The instances to be removed. Ignore this parameter if no instances are to be removed.'."\n", + 'description' => 'The tags of the resource.', 'type' => 'array', 'items' => [ + 'description' => 'The tag.', 'type' => 'object', 'properties' => [ - 'InstanceId' => [ - 'description' => 'The ID of the associated instance.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'pc-bp1j37am632492qzw****', - ], - 'InstanceType' => [ - 'description' => 'The type of the associated instance. Set the value to **PHYSICALCONNECTION**.'."\n", - 'type' => 'string', - 'required' => false, - 'enumValueTitles' => [], - 'example' => 'PHYSICALCONNECTION', - 'enum' => [ - 'PHYSICALCONNECTION', - ], - ], + 'Key' => ['description' => 'The tag key of the resource. You can specify up to 20 tag keys. The tag key cannot be an empty string.'."\n" + ."\n" + .'The tag key can be up to 128 characters in length. It cannot start with `aliyun` or `acs:`, and cannot contain `http://` or `https://`.', 'type' => 'string', 'required' => false, 'example' => 'FinanceDept', 'title' => ''], + 'Value' => ['description' => 'The tag value of the resource. You can specify up to 20 tag values. The tag value can be an empty string.'."\n" + ."\n" + .'The tag value can be up to 128 characters in length. It cannot start with `aliyun` or `acs:`, and cannot contain `http://` or `https://`.', 'type' => 'string', 'required' => false, 'example' => 'FinanceJoshua', 'title' => ''], ], 'required' => false, + 'title' => '', + 'example' => '', ], 'required' => false, - 'maxItems' => 100, + 'maxItems' => 20, + 'title' => '', + 'example' => '', ], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'description' => 'The returned information.', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B457', + 'PageSize' => ['description' => 'The number of entries per page for paging.', 'type' => 'integer', 'format' => 'int32', 'example' => '10', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'C6532AA8-D0F7-497F-A8EE-094126D441F5', 'title' => ''], + 'PageNumber' => ['description' => 'The page number.', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''], + 'TotalCount' => ['description' => 'The total number of entries returned.', 'type' => 'integer', 'format' => 'int32', 'example' => '2', 'title' => ''], + 'Vpcs' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Vpc' => [ + 'description' => 'The details of the VPC.', + 'type' => 'array', + 'items' => [ + 'description' => 'The details of the VPC.', + 'type' => 'object', + 'properties' => [ + 'CreationTime' => ['description' => 'The time when the VPC was created.', 'type' => 'string', 'example' => '2021-04-18T15:02:37Z', 'title' => ''], + 'Status' => ['description' => 'The status of the VPC. Valid values: '."\n" + ."\n" + .'- **Pending**: being configured.'."\n" + ."\n" + .'- **Available**: active.', 'type' => 'string', 'example' => 'Available', 'title' => ''], + 'VpcId' => ['description' => 'The ID of the VPC.', 'type' => 'string', 'example' => 'vpc-bp1qpo0kug3a20qqe****', 'title' => ''], + 'IsDefault' => ['description' => 'Indicates whether the VPC is the default VPC in the region. Valid values:'."\n" + ."\n" + .'- **true**: The VPC is the default VPC in the region.'."\n" + ."\n" + .'- **false**: The VPC is not the default VPC in the region.', 'type' => 'boolean', 'example' => 'false', 'title' => ''], + 'OwnerId' => ['description' => 'The Alibaba Cloud account ID of the VPC owner.', 'type' => 'integer', 'format' => 'int64', 'example' => '253460731706911258', 'title' => ''], + 'RegionId' => ['description' => 'The region ID of the VPC.', 'type' => 'string', 'example' => 'cn-hangzhou', 'title' => ''], + 'VpcName' => ['description' => 'The name of the VPC.', 'type' => 'string', 'example' => 'vpc1', 'title' => ''], + 'VRouterId' => ['description' => 'The ID of the vRouter in the VPC.', 'type' => 'string', 'example' => 'vrt-bp1jcg5cmxjbl9xgc****', 'title' => ''], + 'DhcpOptionsSetStatus' => ['description' => 'The status of the DHCP options set. Valid values:'."\n" + ."\n" + .'- **Available**: active.'."\n" + ."\n" + .'- **InUse**: in use.'."\n" + ."\n" + .'- **Deleted**: deleted.'."\n" + ."\n" + .'- **Pending**: being configured.', 'type' => 'string', 'example' => 'Available', 'title' => ''], + 'CidrBlock' => ['description' => 'The IPv4 CIDR block of the VPC.', 'type' => 'string', 'example' => '192.168.0.0/16', 'title' => ''], + 'Description' => ['description' => 'The description of the VPC.', 'type' => 'string', 'example' => 'This is my VPC.', 'title' => ''], + 'ResourceGroupId' => ['description' => 'The ID of the resource group to which the VPC belongs.', 'type' => 'string', 'example' => 'rg-acfmxazb4ph****', 'title' => ''], + 'DhcpOptionsSetId' => ['description' => 'The ID of the DHCP options set.', 'type' => 'string', 'example' => 'dopt-o6w0df4epg9zo8isy****', 'title' => ''], + 'Ipv6CidrBlock' => ['description' => 'The IPv6 CIDR block of the VPC.', 'type' => 'string', 'example' => '2408:XXXX:0:a600::/56', 'title' => ''], + 'CenStatus' => ['description' => 'The status of the VPC attached to a Cloud Enterprise Network (CEN) instance. **Attached** is returned only when the VPC is attached to a CEN instance.', 'type' => 'string', 'example' => 'Attached', 'title' => ''], + 'Tags' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Tag' => [ + 'description' => 'The tag information of the VPC.', + 'type' => 'array', + 'items' => [ + 'description' => 'The tag information of the VPC.', + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => 'The tag key of the VPC.', 'type' => 'string', 'example' => 'FinanceDept', 'title' => ''], + 'Value' => ['description' => 'The tag value of the VPC.', 'type' => 'string', 'example' => 'FinanceJoshua', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'Ipv6CidrBlocks' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Ipv6CidrBlock' => [ + 'description' => 'The IPv6 CIDR block information of the VPC.', + 'type' => 'array', + 'items' => [ + 'description' => 'The IPv6 CIDR block information of the VPC.', + 'type' => 'object', + 'properties' => [ + 'Ipv6Isp' => ['description' => 'The type of the IPv6 CIDR block of the VPC. Valid values:'."\n" + ."\n" + .'- **BGP**: Alibaba Cloud BGP IPv6.'."\n" + .'- **ChinaMobile**: China Mobile (single-ISP).'."\n" + .'- **ChinaUnicom**: China Unicom (single-ISP).'."\n" + .'- **ChinaTelecom**: China Telecom (single-ISP).'."\n" + ."\n" + .'> If you are a user who has the single-ISP bandwidth whitelist enabled, this field can be set to **ChinaTelecom** (China Telecom), **ChinaUnicom** (China Unicom), or **ChinaMobile** (China Mobile).', 'type' => 'string', 'example' => 'BGP', 'title' => ''], + 'Ipv6CidrBlock' => ['description' => 'The IPv6 CIDR block of the VPC.', 'type' => 'string', 'example' => '2408:XXXX:0:a600::/56', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'VSwitchIds' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'VSwitchId' => [ + 'description' => 'The list of vSwitches in the VPC.'."\n" + ."\n" + .'Up to 300 most recently created vSwitches in the VPC can be returned. To query all vSwitches in the VPC, call the [DescribeVSwitches](~~448774~~) operation.', + 'type' => 'array', + 'items' => ['description' => 'The list of vSwitches in the VPC.'."\n" + ."\n" + .'Up to 300 most recently created vSwitches in the VPC can be returned. To query all vSwitches in the VPC, call the [DescribeVSwitches](~~448774~~) operation.', 'type' => 'string', 'example' => 'vsw-bp1nhbnpv2blyz8dl****', 'title' => ''], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'SecondaryCidrBlocks' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'SecondaryCidrBlock' => [ + 'description' => 'The secondary CIDR block information.', + 'type' => 'array', + 'items' => ['description' => 'The secondary CIDR block of the VPC.', 'type' => 'string', 'example' => '192.168.20.0/24', 'title' => ''], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'UserCidrs' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'UserCidr' => [ + 'description' => 'The list of user-side CIDR blocks.', + 'type' => 'array', + 'items' => ['description' => 'The list of user-side CIDR blocks.', 'type' => 'string', 'example' => '10.0.0.0/8', 'title' => ''], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'NatGatewayIds' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'NatGatewayIds' => [ + 'description' => 'The ID of the NAT gateway.', + 'type' => 'array', + 'items' => ['description' => 'The ID of the NAT gateway.', 'type' => 'string', 'example' => 'nat-245xxxftwt45bg****', 'title' => ''], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'RouterTableIds' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'RouterTableIds' => [ + 'description' => 'The route table information.', + 'type' => 'array', + 'items' => ['description' => 'The route table ID.', 'type' => 'string', 'example' => 'vtb-bp1krxxzp0c29fmon****', 'title' => ''], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'EnabledIpv6' => [ + 'description' => 'Indicates whether IPv6 is enabled. Valid values:'."\n" + ."\n" + .'- **false**: IPv6 is not enabled.'."\n" + .'- **true**: IPv6 is enabled.', + 'enumValueTitles' => [], + 'type' => 'boolean', + 'example' => 'false', + 'title' => '', + ], + 'DnsHostnameStatus' => ['description' => 'Indicates whether DNS hostnames are enabled.', 'type' => 'string', 'example' => 'DISABLED', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'IllegalParam.%s', - 'errorMessage' => 'The param of %s is illegal.', - ], - [ - 'errorCode' => 'IncorrectStatus.Qos', - 'errorMessage' => 'The status of QoS is incorrect.', - ], - [ - 'errorCode' => 'IncorrectStatus.PconnIdList', - 'errorMessage' => 'The status of PconnIdList is incorrect.', - ], - [ - 'errorCode' => 'ResourceAlreadyAssociated.PconnQos', - 'errorMessage' => 'The specified resource of PconnQos is already associated.', - ], - [ - 'errorCode' => 'EcQoSConflict', - 'errorMessage' => 'The specified QoS is conflict with other QoS.', - ], - [ - 'errorCode' => 'IncorrectBusinessStatus.PconnIdList', - 'errorMessage' => 'The business status of PconnIdList is incorrect.', - ], - [ - 'errorCode' => 'EcPconnWithVpconnNotAllowAssociateQoS', - 'errorMessage' => 'The specified Pconn with Vpconn is not allowed to associate with Qos.', - ], - [ - 'errorCode' => 'EcPconnWithCrossAccountVbrNotAllowAssociateQoS', - 'errorMessage' => 'The specified Pconn with cross account VBR is not allowed to associate with Qos.', - ], - [ - 'errorCode' => 'EcDeviceNotSupportQoS', - 'errorMessage' => 'The specified Pconn is on the device which is not supported QoS.', - ], - [ - 'errorCode' => 'EcPconnVbrMustContainsAll', - 'errorMessage' => 'In the single VBR with multiple Pconn scene, all Pconn must be associated with the same Qos.', - ], + ['errorCode' => 'InvalidVpcIdNumber.NotSupported', 'errorMessage' => 'The number of vpcIds exceeds the limit.', 'description' => 'The value of the vpcId parameter has reached the upper limit.'], + ['errorCode' => 'InvalidAliuid', 'errorMessage' => 'User Id is not valid.', 'description' => ''], + ['errorCode' => 'InvalidResourceGroupId', 'errorMessage' => 'The specified ResourceGroupId does not exist.', 'description' => 'The specified resource group ID does not exist.'], + ['errorCode' => 'InvalidTagKey', 'errorMessage' => 'The tag keys are not valid.', 'description' => 'The tag index is invalid.'], + ['errorCode' => 'InvalidTagValue', 'errorMessage' => 'The tag values are not valid.', 'description' => 'The tag value is invalid.'], + ['errorCode' => 'InvalidResourceGroupId.NotFound', 'errorMessage' => 'The Specified ResourceGroupId not exists.', 'description' => ''], + ['errorCode' => 'OperationUnsupported.ResourceGroupId', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'IellgalParameter.OwnerAccount', 'errorMessage' => 'The specified parameter OwnerAccount is not valid.', 'description' => 'The specified parameter OwnerAccount is illegal.'], + ['errorCode' => 'IllegalParam.OwnerId', 'errorMessage' => 'The specified parameter VpcOwnerId is not valid.', 'description' => ''], + ['errorCode' => 'InvalidAccount.NotFound', 'errorMessage' => 'The account is invalid.', 'description' => 'The operation failed because an invalid account is used.'], + ], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error.', 'description' => ''], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'Query created VPCs', + 'changeSet' => [ + ['createdAt' => '2024-10-10T06:14:59.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2024-08-27T02:00:38.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2024-05-16T01:58:24.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2024-04-09T02:53:34.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2023-07-26T05:48:16.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2023-07-26T03:26:03.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2023-06-13T02:40:57.000Z', 'description' => 'Error codes changed'], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B457\\"\\n}","type":"json"}]', - 'title' => 'ModifyExpressConnectTrafficQos', - ], - 'ModifyExpressConnectTrafficQosQueue' => [ - 'summary' => 'Modifies a quality of service (QoS) queue.', - 'methods' => [ - 'post', - 'get', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '360', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DescribeVpcs'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'vpc:DescribeVpcs', + 'authLevel' => 'resource', + 'actionConditions' => [ + ['conditionKey' => 'vpc:tag', 'validationType' => 'always'], + ], + 'resources' => [ + ['validationType' => 'conditional', 'product' => 'VPC', 'resourceType' => 'VPC', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vpc/*'], + ['validationType' => 'conditional', 'product' => 'VPC', 'resourceType' => 'VPC', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vpc/{#VPCId}'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"PageSize\\": 10,\\n \\"RequestId\\": \\"C6532AA8-D0F7-497F-A8EE-094126D441F5\\",\\n \\"PageNumber\\": 1,\\n \\"TotalCount\\": 2,\\n \\"Vpcs\\": {\\n \\"Vpc\\": [\\n {\\n \\"CreationTime\\": \\"2021-04-18T15:02:37Z\\",\\n \\"Status\\": \\"Available\\",\\n \\"VpcId\\": \\"vpc-bp1qpo0kug3a20qqe****\\",\\n \\"IsDefault\\": false,\\n \\"OwnerId\\": 253460731706911260,\\n \\"RegionId\\": \\"cn-hangzhou\\",\\n \\"VpcName\\": \\"vpc1\\",\\n \\"VRouterId\\": \\"vrt-bp1jcg5cmxjbl9xgc****\\",\\n \\"DhcpOptionsSetStatus\\": \\"Available\\",\\n \\"CidrBlock\\": \\"192.168.0.0/16\\",\\n \\"Description\\": \\"This is my VPC.\\",\\n \\"ResourceGroupId\\": \\"rg-acfmxazb4ph****\\",\\n \\"DhcpOptionsSetId\\": \\"dopt-o6w0df4epg9zo8isy****\\",\\n \\"Ipv6CidrBlock\\": \\"2408:XXXX:0:a600::/56\\",\\n \\"CenStatus\\": \\"Attached\\",\\n \\"Tags\\": {\\n \\"Tag\\": [\\n {\\n \\"Key\\": \\"FinanceDept\\",\\n \\"Value\\": \\"FinanceJoshua\\"\\n }\\n ]\\n },\\n \\"Ipv6CidrBlocks\\": {\\n \\"Ipv6CidrBlock\\": [\\n {\\n \\"Ipv6Isp\\": \\"BGP\\",\\n \\"Ipv6CidrBlock\\": \\"2408:XXXX:0:a600::/56\\"\\n }\\n ]\\n },\\n \\"VSwitchIds\\": {\\n \\"VSwitchId\\": [\\n \\"vsw-bp1nhbnpv2blyz8dl****\\"\\n ]\\n },\\n \\"SecondaryCidrBlocks\\": {\\n \\"SecondaryCidrBlock\\": [\\n \\"192.168.20.0/24\\"\\n ]\\n },\\n \\"UserCidrs\\": {\\n \\"UserCidr\\": [\\n \\"10.0.0.0/8\\"\\n ]\\n },\\n \\"NatGatewayIds\\": {\\n \\"NatGatewayIds\\": [\\n \\"nat-245xxxftwt45bg****\\"\\n ]\\n },\\n \\"RouterTableIds\\": {\\n \\"RouterTableIds\\": [\\n \\"vtb-bp1krxxzp0c29fmon****\\"\\n ]\\n },\\n \\"EnabledIpv6\\": false,\\n \\"DnsHostnameStatus\\": \\"DISABLED\\"\\n }\\n ]\\n }\\n}","type":"json"}]', + ], + 'DescribeVpnAttachments' => [ + 'summary' => 'Queries the configuration information of IPsec-VPN connections that are associated with transit router instances.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'read', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'update', - 'riskType' => 'none', - 'chargeType' => 'free', - ], + 'systemTags' => ['operationType' => 'list', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the QoS policy.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-shanghai', - ], - ], - [ - 'name' => 'ClientToken', - 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'You can use the client to generate the value, but you must ensure that the value is unique among all requests. The client token can contain only ASCII characters.'."\n" - ."\n" - .'> If you do not set this parameter, the system uses **RequestId** as **ClientToken**. **RequestId** might be different for each API request.'."\n", - 'type' => 'string', - 'required' => false, - 'docRequired' => true, - 'example' => '123e4567-e89b-12d3-a456-426655440000', - ], - ], - [ - 'name' => 'ClientToken', - 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'You can use the client to generate the value, but you must ensure that the value is unique among all requests. The client token can contain only ASCII characters.'."\n" - ."\n" - .'> If you do not set this parameter, the system uses **RequestId** as **ClientToken**. **RequestId** might be different for each API request.'."\n", - 'type' => 'string', - 'required' => false, - 'docRequired' => true, - 'example' => '123e4567-e89b-12d3-a456-426655440000', - ], - ], - [ - 'name' => 'QueueName', - 'in' => 'query', - 'schema' => [ - 'title' => 'Qos队列的名称。'."\n" - .'长度为0~128个字符,不能以http:// 或https://开头。', - 'description' => 'The name of the QoS queue.'."\n" - ."\n" - .'The name must be 0 to 128 characters in length and cannot start with `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'qos-queue-test', - ], + 'schema' => ['description' => 'The region ID of the IPsec-VPN connection.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the region ID.', 'type' => 'string', 'required' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'QueueDescription', + 'name' => 'PageNumber', 'in' => 'query', - 'schema' => [ - 'title' => 'Qos队列的描述信息。'."\n" - .'长度为0~256个字符,不能以http://或https://开头。', - 'description' => 'The description of the QoS queue.'."\n" - ."\n" - .'The description must be 0 to 256 characters in length and cannot start with `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'qos-queue-test', - ], + 'schema' => ['description' => 'The page number of the list. Default value: **1**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1', 'title' => ''], ], [ - 'name' => 'QosId', + 'name' => 'PageSize', 'in' => 'query', - 'schema' => [ - 'title' => 'Qos策略ID。', - 'description' => 'The ID of the QoS policy.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'qos-2giu0a6vd5x0mv4700', - ], + 'schema' => ['description' => 'The number of entries per page when paging is used. Default value: **10**. Valid values: **1** to **50**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '10', 'title' => ''], ], [ - 'name' => 'QueueId', + 'name' => 'VpnConnectionId', 'in' => 'query', - 'schema' => [ - 'title' => 'Qos队列ID。', - 'description' => 'The ID of the QoS queue.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'qos-queue-9nyx2u7n71s2rcy4n5', - ], + 'schema' => ['description' => 'The ID of the IPsec-VPN connection.'."\n" + ."\n" + .'> If you do not specify the IPsec-VPN connection ID, the system queries information about all IPsec-VPN connections that are associated with transit router instances in the current region.', 'type' => 'string', 'required' => false, 'example' => 'vco-p0w2jpkhi2eeop6q6****', 'title' => ''], ], [ - 'name' => 'BandwidthPercent', + 'name' => 'AttachType', 'in' => 'query', - 'schema' => [ - 'description' => 'The percentage of bandwidth allocated to the QoS queue.'."\n" - ."\n" - .'* If QueueType is set to **Medium**, this parameter is required. Valid values: 1 to 100.'."\n" - .'* If QueueType is set to **Default**, a value of - is returned.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '100', - ], + 'schema' => ['description' => 'The type of resource to which the IPsec-VPN connection is attached. Default value: **CEN**.'."\n" + ."\n" + .'The value can only be **CEN**, which indicates that the system queries IPsec-VPN connections that are associated with transit router instances.', 'type' => 'string', 'required' => false, 'example' => 'CEN', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'title' => '', + 'description' => 'The response parameters.', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '079874CD-AEC1-43E6-AC03-ADD96B6E4907', + 'RequestId' => ['title' => '', 'description' => 'The request ID.', 'type' => 'string', 'example' => '9F0725BB-186A-3564-91C3-AAE48042F853'], + 'PageSize' => ['description' => 'The number of entries per page when paging is used.', 'type' => 'integer', 'format' => 'int32', 'example' => '10', 'title' => ''], + 'PageNumber' => ['description' => 'The page number of the list.', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''], + 'TotalCount' => ['description' => 'The total number of entries.', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''], + 'VpnAttachments' => [ + 'description' => 'The list of IPsec-VPN connections that are associated with transit router instances.', + 'type' => 'array', + 'items' => [ + 'description' => 'The information about an IPsec-VPN connection that is associated with a transit router instance.', + 'type' => 'object', + 'properties' => [ + 'InstanceId' => ['description' => 'The ID of the IPsec-VPN connection.', 'type' => 'string', 'example' => 'vco-p0w2jpkhi2eeop6q6****', 'title' => ''], + 'Name' => ['description' => 'The name of the IPsec-VPN connection.', 'type' => 'string', 'example' => 'nametest1', 'title' => ''], + 'Description' => ['description' => 'The description of the IPsec-VPN connection.', 'type' => 'string', 'example' => 'desctest', 'title' => ''], + 'AttachType' => ['description' => 'The type of resource to which the IPsec-VPN connection is attached. The value is **CEN**, which indicates that the IPsec-VPN connection is associated with a transit router instance.', 'type' => 'string', 'example' => 'CEN', 'title' => ''], + 'TransitRouterId' => ['description' => 'The ID of the transit routing instance to which the IPsec-VPN connection is attached.', 'type' => 'string', 'example' => 'tr-p0wkh4yryb1dnanqw****', 'title' => ''], + 'TransitRouterName' => ['description' => 'The name of the transit router instance.', 'type' => 'string', 'example' => 'nametest2', 'title' => ''], + 'CrossAccountAuthorized' => ['description' => 'Indicates whether the IPsec-VPN connection is associated with a transit router instance that belongs to a different Alibaba Cloud account.'."\n" + ."\n" + .'- **true**: yes.'."\n" + .'- **false**: no.', 'type' => 'boolean', 'example' => 'false', 'title' => ''], + 'Tag' => ['description' => 'The system tags of the IPsec-VPN connection.'."\n" + ."\n" + .'You can use system tags to check whether the IPsec-VPN connection supports BGP. You do not need to pay attention to other properties.'."\n" + ."\n" + .'**BGPSupport**: indicates whether the IPsec-VPN connection supports BGP.'."\n" + .' - **true**: supported.'."\n" + .' - **false**: not supported.', 'type' => 'string', 'example' => '{\\"description\\":\\"转发1.7.22\\",\\"VisuallySsl\\":\\"true\\",\\"PbrPriority\\":\\"true\\",\\"BGPSupport\\":\\"true\\",\\"IDaaSNewVersion\\":\\"true\\"}', 'title' => ''], + 'Tags' => [ + 'description' => 'The list of tags that are attached to the IPsec-VPN connection.', + 'type' => 'array', + 'items' => [ + 'description' => 'The tag information.', + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => 'The tag key.', 'type' => 'string', 'example' => 'TagKey', 'title' => ''], + 'Value' => ['description' => 'The tag value.', 'type' => 'string', 'example' => 'TagValue', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + 'TunnelBandwidth' => ['title' => '', 'description' => 'The bandwidth specification of a single VPN tunnel. Valid values:'."\n" + .'Standard (default): standard. The default bandwidth is 1 Gbit/s.'."\n" + .'Large: large. The default bandwidth is 3 Gbit/s.', 'type' => 'string', 'example' => 'Standard'], + ], + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', ], ], + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'IllegalParam.%s', - 'errorMessage' => 'The param of %s is illegal.', - ], - [ - 'errorCode' => 'IncorrectStatus.Qos', - 'errorMessage' => 'The status of QoS is incorrect.', - ], - [ - 'errorCode' => 'EcQoSConflict', - 'errorMessage' => 'The specified QoS is conflict with other QoS.', - ], - [ - 'errorCode' => 'QuotaExceeded.QosMediumPriorityQueueBandwidthPercent', - 'errorMessage' => 'The quota of QosMediumPriorityQueueBandwidthPercent is exceeded.', - ], + ['errorCode' => 'Forbidden.TagKey.Duplicated', 'errorMessage' => 'The specified tag key already exists.', 'description' => 'The tag resources are duplicate.'], + ['errorCode' => 'SizeLimitExceeded.TagNum', 'errorMessage' => 'The maximum number of tags is exceeded.', 'description' => 'The number of tags has reached the upper limit.'], + ['errorCode' => 'InvalidParameter.TagValue', 'errorMessage' => 'The specified parameter TagValue is invalid.', 'description' => 'The error message returned because the specified tag value is invalid.'], + ['errorCode' => 'InvalidParameter.TagKey', 'errorMessage' => 'The specified parameter TagKey is invalid.', 'description' => 'The error message returned because the specified tag key is invalid.'], + ['errorCode' => 'Duplicated.TagKey', 'errorMessage' => 'The specified parameter TagKey is duplicated.', 'description' => 'The error message returned because the specified tag key already exists.'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'Query configuration information of iPsec-VPN connections associated with transit router instances', + 'changeSet' => [ + ['createdAt' => '2024-11-25T02:24:17.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2024-11-05T06:04:35.000Z', 'description' => 'Response parameters changed, Response parameters changed'], + ['createdAt' => '2022-12-27T12:19:51.000Z', 'description' => 'Error codes changed, Response parameters changed'], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"079874CD-AEC1-43E6-AC03-ADD96B6E4907\\"\\n}","type":"json"}]', - 'title' => 'ModifyExpressConnectTrafficQosQueue', - ], - 'ModifyExpressConnectTrafficQosRule' => [ - 'summary' => 'Modifies a quality of service (QoS) rule.', - 'methods' => [ - 'post', - 'get', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '600', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DescribeVpnAttachments'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'vpc:DescribeVpnAttachments', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VpnConnections', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vpnconnection/{#VpnConnectionId}'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"9F0725BB-186A-3564-91C3-AAE48042F853\\",\\n \\"PageSize\\": 10,\\n \\"PageNumber\\": 1,\\n \\"TotalCount\\": 1,\\n \\"VpnAttachments\\": [\\n {\\n \\"InstanceId\\": \\"vco-p0w2jpkhi2eeop6q6****\\",\\n \\"Name\\": \\"nametest1\\",\\n \\"Description\\": \\"desctest\\",\\n \\"AttachType\\": \\"CEN\\",\\n \\"TransitRouterId\\": \\"tr-p0wkh4yryb1dnanqw****\\",\\n \\"TransitRouterName\\": \\"nametest2\\",\\n \\"CrossAccountAuthorized\\": false,\\n \\"Tag\\": \\"{\\\\\\\\\\\\\\"description\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"转发1.7.22\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"VisuallySsl\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"true\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"PbrPriority\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"true\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"BGPSupport\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"true\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"IDaaSNewVersion\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"true\\\\\\\\\\\\\\"}\\",\\n \\"Tags\\": [\\n {\\n \\"Key\\": \\"TagKey\\",\\n \\"Value\\": \\"TagValue\\"\\n }\\n ],\\n \\"TunnelBandwidth\\": \\"Standard\\"\\n }\\n ]\\n}","type":"json"}]', + ], + 'DescribeVpnConnection' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'read', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'update', - 'riskType' => 'none', - 'chargeType' => 'free', - ], + 'systemTags' => ['operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the QoS policy.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-shanghai'."\n", - ], - ], - [ - 'name' => 'ClientToken', - 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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 and cannot exceed 64 characters in length.'."\n", - 'type' => 'string', - 'required' => false, - 'docRequired' => true, - 'example' => '0c593ea1-3bea-11e9-b96b-88e9fe637760', - ], - ], - [ - 'name' => 'ClientToken', - 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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 and cannot exceed 64 characters in length.'."\n", - 'type' => 'string', - 'required' => false, - 'docRequired' => true, - 'example' => '0c593ea1-3bea-11e9-b96b-88e9fe637760', - ], - ], - [ - 'name' => 'QosId', - 'in' => 'query', - 'schema' => [ - 'title' => 'Qos策略的名称。'."\n" - .'长度为0~128个字符,不能以http:// 或https://开头。', - 'description' => 'The ID of the QoS policy.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'qos-2giu0a6vd5x0mv4700', - ], - ], - [ - 'name' => 'QueueId', - 'in' => 'query', - 'schema' => [ - 'title' => 'Qos策略的描述信息。'."\n" - .'长度为0~256个字符,不能以http://或https://开头。', - 'description' => 'The ID of the QoS queue.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'qos-queue-9nyx2u7n71s2rcy4n5', - ], + 'schema' => ['description' => 'The CIDR block on the Alibaba Cloud side.'."\n" + ."\n" + .'Multiple CIDR blocks are separated by commas (,).'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'Priority', + 'name' => 'VpnConnectionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The priority of the QoS rule. Valid values: **1** to **9000**. A larger value indicates a higher priority. The priority of each QoS rule must be unique in the same QoS policy.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', - ], + 'schema' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'vco-bp1bbi27hojx80nck****', 'title' => ''], ], - [ - 'name' => 'Protocol', - 'in' => 'query', + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => 'The protocol of the QoS rule. Valid values:'."\n" - ."\n" - .'* **ALL**'."\n" - .'* **ICMP(IPv4)**'."\n" - .'* **ICMPv6(IPv6)**'."\n" - .'* **TCP**'."\n" - .'* **UDP**'."\n" - .'* **GRE**'."\n" - .'* **SSH**'."\n" - .'* **Telnet**'."\n" - .'* **HTTP**'."\n" - .'* **HTTPS**'."\n" - .'* **MS SQL**'."\n" - .'* **Oracle**'."\n" - .'* **MySql**'."\n" - .'* **RDP**'."\n" - .'* **PostgreSQL**'."\n" - .'* **Redis**'."\n", - 'type' => 'string', - 'required' => false, - 'enumValueTitles' => [], - 'example' => 'ALL', - ], - ], - [ - 'name' => 'SrcCidr', - 'in' => 'query', - 'schema' => [ - 'description' => 'The source IPv4 CIDR block that matches the QoS rule traffic.'."\n" - ."\n" - .'> When this parameter is unavailable, specify **SrcIPv6Cidr** or **DstIPv6Cidr**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '1.1.1.0/24', + 'description' => 'The ID of the IPsec-VPN connection.'."\n", + 'type' => 'object', + 'properties' => [ + 'Status' => ['description' => 'The CIDR block on the data center side.'."\n" + ."\n" + .'Multiple CIDR blocks are separated by commas (,).'."\n", 'type' => 'string', 'example' => 'ike_sa_not_established', 'title' => ''], + 'RemoteCaCertificate' => ['description' => 'The ID of the customer gateway associated with the IPsec-VPN connection.'."\n", 'type' => 'string', 'example' => '-----BEGIN CERTIFICATE----- MIIB7zCCAZW****', 'title' => ''], + 'EnableNatTraversal' => ['description' => 'The name of the IPsec-VPN connection.'."\n", 'type' => 'boolean', 'example' => 'true', 'title' => ''], + 'CreateTime' => ['description' => 'Indicates whether the dead peer detection (DPD) feature is enabled for the IPsec-VPN connection. Valid values:'."\n" + ."\n" + .'* **false**'."\n" + .'* **true**'."\n" + ."\n" + .'After you enable the DPD feature, the initiator of the IPsec-VPN connection sends DPD packets to check the existence and availability of the peer. If no response is received from the peer within a specified period of time, the connection fails. Then, the ISAKMP security association (SA), IPsec SA, and IPsec tunnel are deleted.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '1492753817000', 'title' => ''], + 'EffectImmediately' => ['description' => 'The configuration of Phase 1 negotiations.'."\n", 'type' => 'boolean', 'example' => 'true', 'title' => ''], + 'VpnGatewayId' => ['description' => 'The identifier of the IPsec-VPN connection on the data center side.'."\n", 'type' => 'string', 'example' => 'vpn-bp1q8bgx4xnkm2ogj****', 'title' => ''], + 'LocalSubnet' => ['description' => 'The lifetime in the IKE phase. Unit: seconds.'."\n", 'type' => 'string', 'example' => '10.0.0.0/8', 'title' => ''], + 'RequestId' => ['description' => 'The encryption algorithm in the IKE phase.'."\n", 'type' => 'string', 'example' => 'F2310D45-BCF6-4E2E-9082-B4503844BA4C', 'title' => ''], + 'VpnConnectionId' => ['description' => 'The identifier of the IPsec-VPN connection on the Alibaba Cloud side.'."\n", 'type' => 'string', 'example' => 'vco-bp1bbi27hojx80nck****', 'title' => ''], + 'RemoteSubnet' => ['description' => 'The IKE negotiation mode.'."\n" + ."\n" + .'* **main**: This mode offers higher security during negotiations.'."\n" + .'* **aggressive**: This mode is faster and has a higher success rate.'."\n", 'type' => 'string', 'example' => '192.168.0.0/16', 'title' => ''], + 'CustomerGatewayId' => ['description' => 'The version of the IKE protocol.'."\n" + ."\n" + .'* **ikev1**'."\n" + .'* **ikev2**'."\n" + ."\n" + .'Compared with IKEv1, IKEv2 simplifies the SA negotiation process and is more suitable for scenarios in which multiple CIDR blocks are used.'."\n", 'type' => 'string', 'example' => 'cgw-bp1mvj4g9kogwwcxk****', 'title' => ''], + 'Name' => ['description' => 'The Diffie-Hellman (DH) group in the IKE phase.'."\n", 'type' => 'string', 'example' => 'ipsec1', 'title' => ''], + 'EnableDpd' => ['description' => 'The pre-shared key.'."\n", 'type' => 'boolean', 'example' => 'true', 'title' => ''], + 'IkeConfig' => [ + 'description' => 'The authentication algorithm in the IKE phase.'."\n", + 'type' => 'object', + 'properties' => [ + 'RemoteId' => ['description' => 'The configuration of Phase 2 negotiations.'."\n", 'type' => 'string', 'example' => '139.34.XX.XX', 'title' => ''], + 'IkeLifetime' => ['description' => 'The authentication algorithm in the IPsec phase.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '86400', 'title' => ''], + 'IkeEncAlg' => ['description' => 'The lifetime in the IPsec phase. Unit: seconds.'."\n", 'type' => 'string', 'example' => 'aes', 'title' => ''], + 'LocalId' => ['description' => 'The encryption algorithm in the IPsec phase.'."\n", 'type' => 'string', 'example' => '116.28.XX.XX', 'title' => ''], + 'IkeMode' => ['description' => 'The DH group in the IPsec phase.'."\n", 'type' => 'string', 'example' => 'main', 'title' => ''], + 'IkeVersion' => ['description' => 'The health check information about the IPsec-VPN connection.'."\n", 'type' => 'string', 'example' => 'ikev1', 'title' => ''], + 'IkePfs' => ['description' => 'The state of the health check. Valid values:'."\n" + ."\n" + .'* **failed**'."\n" + .'* **success**: normal'."\n", 'type' => 'string', 'example' => 'group2', 'title' => ''], + 'Psk' => ['description' => 'The destination IP address.'."\n", 'type' => 'string', 'example' => 'pgw6dy****', 'title' => ''], + 'IkeAuthAlg' => ['description' => 'The interval between two consecutive health checks. Unit: seconds.'."\n", 'type' => 'string', 'example' => 'sha1', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'IpsecConfig' => [ + 'description' => 'The maximum number of health check retries.'."\n", + 'type' => 'object', + 'properties' => [ + 'IpsecAuthAlg' => ['description' => 'The source IP address.'."\n", 'type' => 'string', 'example' => 'sha1', 'title' => ''], + 'IpsecLifetime' => ['description' => 'Indicates whether the health check feature is enabled for the IPsec-VPN connection. Valid values:'."\n" + ."\n" + .'* **false**'."\n" + .'* **true**'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '86400', 'title' => ''], + 'IpsecEncAlg' => ['description' => 'Indicates whether advertised routes are withdrawn when the health check fails. Valid values:'."\n" + ."\n" + .'* **revoke_route**: Advertised routes are withdrawn.'."\n" + .'* **reserve_route**: Advertised routes are not withdrawn.'."\n", 'type' => 'string', 'example' => 'aes', 'title' => ''], + 'IpsecPfs' => ['description' => 'The Border Gateway Protocol (BGP) configuration of the IPsec-VPN connection.'."\n", 'type' => 'string', 'example' => 'group2', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'VcoHealthCheck' => [ + 'description' => 'The negotiation state of the BGP routing protocol. Valid values:'."\n" + ."\n" + .'* **success**: normal'."\n" + .'* **failed**'."\n", + 'type' => 'object', + 'properties' => [ + 'Status' => ['description' => 'The BGP IP address of the peer.'."\n", 'type' => 'string', 'example' => 'failed', 'title' => ''], + 'Dip' => ['description' => 'The BGP CIDR block of the IPsec-VPN connection. The CIDR block falls within 169.254.0.0/16. The subnet mask of the CIDR block must be 30 bits in length.'."\n", 'type' => 'string', 'example' => '10.0.0.1', 'title' => ''], + 'Interval' => ['description' => 'Indicates whether BGP is enabled. Valid values:'."\n" + ."\n" + .'* **true**'."\n" + .'* **false**'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '3', 'title' => ''], + 'Retry' => ['description' => 'The BGP IP address on the Alibaba Cloud side.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '3', 'title' => ''], + 'Sip' => ['description' => 'The autonomous system number (ASN) of the peer.'."\n", 'type' => 'string', 'example' => '192.168.1.1', 'title' => ''], + 'Enable' => ['description' => 'The ASN on the Alibaba Cloud side.'."\n", 'type' => 'string', 'example' => 'true', 'title' => ''], + 'Policy' => ['description' => 'The authentication key of the BGP routing protocol.'."\n", 'type' => 'string', 'example' => 'revoke_route', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'VpnBgpConfig' => [ + 'description' => 'The type of the resource that is associated with the IPsec-VPN connection. Valid values:'."\n" + ."\n" + .'* **CEN**: indicates that the IPsec-VPN connection is associated with a transit router of a Cloud Enterprise Network (CEN) instance.'."\n" + .'* **NO_ASSOCIATED**: indicates that the IPsec-VPN connection is not associated with any resource.'."\n" + .'* **VPNGW**: indicates that the IPsec-VPN connection is associated with a VPN gateway.'."\n", + 'type' => 'object', + 'properties' => [ + 'Status' => ['description' => 'The network type of the IPsec-VPN connection. Valid values:'."\n" + ."\n" + .'* **public**: an encrypted connection over the Internet'."\n" + .'* **private**: an encrypted connection over private networks'."\n", 'type' => 'string', 'example' => 'success', 'title' => ''], + 'PeerBgpIp' => ['description' => 'The ID of the CEN instance to which the transit router belongs.'."\n", 'type' => 'string', 'example' => '169.254.11.1', 'title' => ''], + 'TunnelCidr' => ['description' => 'The bandwidth specification of the IPsec-VPN connection. Unit: **Mbit/s**.'."\n", 'type' => 'string', 'example' => '169.254.11.0/30', 'title' => ''], + 'EnableBgp' => ['description' => 'The association state of the IPsec-VPN connection. Valid values:'."\n" + ."\n" + .'* **active**: The IPsec-VPN connection is associated with a VPN gateway.'."\n" + .'* **init**: The IPsec-VPN connection is not associated with any resource and is being initialized.'."\n" + .'* **attaching**: The IPsec-VPN connection is being associated with a transit router.'."\n" + .'* **attached**: The IPsec-VPN connection is associated with a transit router.'."\n" + .'* **detaching**: The IPsec-VPN connection is being disassociated from a transit router.'."\n" + .'* **financialLocked**: The IPsec-VPN connection is locked due to overdue payments.'."\n" + .'* **provisioning**: The IPsec-VPN connection is being prepared.'."\n" + .'* **updating**: The IPsec-VPN connection is being updated.'."\n" + .'* **Upgrading**: The IPsec-VPN connection is being upgraded.'."\n" + .'* **deleted**: The IPsec-VPN connection is deleted.'."\n", 'type' => 'string', 'example' => 'true', 'title' => ''], + 'LocalBgpIp' => ['description' => 'The ID of the zone where the IPsec-VPN connection is deployed.'."\n" + ."\n" + .'You can call [DescribeZones](~~36064~~) to query zone IDs and mapping between zone IDs and zone names.'."\n", 'type' => 'string', 'example' => '169.254.11.2', 'title' => ''], + 'PeerAsn' => ['description' => 'The gateway IP address of the IPsec-VPN connection.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '65530', 'title' => ''], + 'LocalAsn' => ['description' => 'The ID of the transit router with which the IPsec-VPN connection is associated.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '65531', 'title' => ''], + 'AuthKey' => ['description' => 'The name of the transit router.'."\n", 'type' => 'string', 'example' => 'AuthKey****', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'AttachType' => ['description' => 'Indicates whether the IPsec-VPN connection is associated with a transit router that belongs to another Alibaba Cloud account. Valid values:'."\n" + ."\n" + .'* **true**'."\n" + .'* **false**'."\n", 'type' => 'string', 'example' => 'CEN', 'title' => ''], + 'NetworkType' => ['description' => 'The list of tags added to the IPsec-VPN connection.'."\n", 'type' => 'string', 'example' => 'public', 'title' => ''], + 'AttachInstanceId' => ['description' => 'The tag information.', 'type' => 'string', 'example' => 'cen-lxxpbpalc776qz****', 'title' => ''], + 'Spec' => ['description' => 'The tag key.'."\n", 'type' => 'string', 'example' => '1000M', 'title' => ''], + 'State' => ['description' => 'The tag value.'."\n", 'type' => 'string', 'example' => 'attached', 'title' => ''], + 'ZoneNo' => ['description' => 'The tunnel configurations of the IPsec-VPN connection.'."\n" + ."\n" + .'Parameters in **TunnelOptionsSpecification** are returned only if you query an IPsec-VPN connection in dual-tunnel mode.'."\n", 'type' => 'string', 'example' => 'cn-hangzhou-h', 'title' => ''], + 'InternetIp' => ['description' => 'The tunnel configurations.'."\n", 'type' => 'string', 'example' => '47.XX.XX.162', 'title' => ''], + 'TransitRouterId' => ['description' => 'The tunnel ID.'."\n", 'type' => 'string', 'example' => 'tr-p0we2edef9qr44a85****', 'title' => ''], + 'TransitRouterName' => ['description' => 'The ID of the customer gateway associated with the tunnel.'."\n", 'type' => 'string', 'example' => 'nametest', 'title' => ''], + 'CrossAccountAuthorized' => ['description' => 'Indicates whether the DPD feature is enabled for the tunnel. Valid values:'."\n" + ."\n" + .'* **false**'."\n" + .'* **true**'."\n", 'type' => 'boolean', 'example' => 'false', 'title' => ''], + 'Tags' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Tag' => [ + 'description' => 'Indicates whether NAT traversal is enabled for the tunnel. Valid values:'."\n" + ."\n" + .'* **false**'."\n" + .'* **true**'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The tunnel IP address.'."\n", + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => 'The CA certificate of the tunnel peer.'."\n" + ."\n" + .'This parameter is returned only if the VPN gateway is of the ShangMi (SM) type.'."\n", 'type' => 'string', 'example' => 'TagKey', 'title' => ''], + 'Value' => ['description' => 'The tunnel role. Valid values:'."\n" + ."\n" + .'* **master**: The tunnel is an active tunnel.'."\n" + .'* **slave**: The tunnel is a standby tunnel.'."\n", 'type' => 'string', 'example' => 'TagValue', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'TunnelOptionsSpecification' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'TunnelOptions' => [ + 'description' => 'The order in which the tunnel is created.'."\n" + ."\n" + .'* **1**: Tunnel 1.'."\n" + .'* **2**: Tunnel 2.'."\n" + ."\n" + .'> This parameter is returned only if the IPsec-VPN connection is associated with a transit router.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The tunnel status. Valid values:'."\n" + ."\n" + .'* **active**'."\n" + .'* **updating**'."\n" + .'* **deleting**'."\n", + 'type' => 'object', + 'properties' => [ + 'TunnelId' => ['description' => 'The state of the IPsec-VPN connection. Valid values:'."\n" + ."\n" + .'* **ike_sa_not_established**: Phase 1 negotiations failed.'."\n" + .'* **ike_sa_established**: Phase 1 negotiations succeeded.'."\n" + .'* **ipsec_sa_not_established**: Phase 2 negotiations failed.'."\n" + .'* **ipsec_sa_established**: Phase 2 negotiations succeeded.'."\n", 'type' => 'string', 'example' => 'tun-opsqc4d97wni27****', 'title' => ''], + 'CustomerGatewayId' => ['description' => 'The BGP configurations.'."\n", 'type' => 'string', 'example' => 'cgw-p0wy363lucf1uyae8****', 'title' => ''], + 'EnableDpd' => ['description' => 'The negotiation state of BGP. Valid values:'."\n" + ."\n" + .'* **success**'."\n" + .'* **false**'."\n", 'type' => 'string', 'example' => 'true', 'title' => ''], + 'EnableNatTraversal' => ['description' => 'The ASN on the Alibaba Cloud side.'."\n", 'type' => 'string', 'example' => 'true', 'title' => ''], + 'InternetIp' => ['description' => 'The BGP address on the Alibaba Cloud side.'."\n", 'type' => 'string', 'example' => '47.21.XX.XX', 'title' => ''], + 'RemoteCaCertificate' => ['description' => 'The ASN of the tunnel peer.'."\n", 'type' => 'string', 'example' => '-----BEGIN CERTIFICATE----- MIIB7zCCAZW**** -----END CERTIFICATE-----', 'title' => ''], + 'Role' => ['description' => 'The BGP IP address of the tunnel peer.'."\n", 'type' => 'string', 'example' => 'master', 'title' => ''], + 'TunnelIndex' => ['description' => 'The BGP CIDR block of the tunnel.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''], + 'State' => ['description' => 'The configuration of Phase 1 negotiations.'."\n", 'type' => 'string', 'example' => 'active', 'title' => ''], + 'Status' => ['description' => 'The authentication algorithm in the IKE phase.'."\n", 'type' => 'string', 'example' => 'ipsec_sa_established', 'title' => ''], + 'TunnelBgpConfig' => [ + 'description' => 'The encryption algorithm in the IKE phase.'."\n", + 'type' => 'object', + 'properties' => [ + 'BgpStatus' => ['description' => 'The lifetime in the IKE phase. Unit: seconds.'."\n", 'type' => 'string', 'example' => 'success', 'title' => ''], + 'LocalAsn' => ['description' => 'The IKE negotiation mode.'."\n" + ."\n" + .'* **main**: This mode offers higher security during negotiations.'."\n" + .'* **aggressive**: This mode is faster and has a higher success rate.'."\n", 'type' => 'string', 'example' => '65530', 'title' => ''], + 'LocalBgpIp' => ['description' => 'The Diffie-Hellman (DH) group in the IKE phase.'."\n", 'type' => 'string', 'example' => '169.254.10.1', 'title' => ''], + 'PeerAsn' => ['description' => 'The version of the IKE protocol.'."\n", 'type' => 'string', 'example' => '65531', 'title' => ''], + 'PeerBgpIp' => ['description' => 'The identifier of the tunnel on the Alibaba Cloud side.'."\n", 'type' => 'string', 'example' => '169.254.10.2', 'title' => ''], + 'TunnelCidr' => ['description' => 'The pre-shared key.'."\n", 'type' => 'string', 'example' => '169.254.10.0/30', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'TunnelIkeConfig' => [ + 'description' => 'The identifier of the tunnel peer.'."\n", + 'type' => 'object', + 'properties' => [ + 'IkeAuthAlg' => ['description' => 'The configurations of Phase 2 negotiations.'."\n", 'type' => 'string', 'example' => 'sha1', 'title' => ''], + 'IkeEncAlg' => ['description' => 'The authentication algorithm in the IPsec phase.'."\n", 'type' => 'string', 'example' => 'aes', 'title' => ''], + 'IkeLifetime' => ['description' => 'The encryption algorithm in the IPsec phase.'."\n", 'type' => 'string', 'example' => '86400', 'title' => ''], + 'IkeMode' => ['description' => 'The lifetime in the IPsec phase. Unit: seconds.'."\n", 'type' => 'string', 'example' => 'main', 'title' => ''], + 'IkePfs' => ['description' => 'The DH group in the IPsec phase.'."\n", 'type' => 'string', 'example' => 'group2', 'title' => ''], + 'IkeVersion' => ['description' => 'The zone where the tunnel is deployed.'."\n" + ."\n" + .'You can call [DescribeZones](~~36064~~) to query zone IDs.'."\n", 'type' => 'string', 'example' => 'ikev1', 'title' => ''], + 'LocalId' => ['description' => 'Indicates whether BGP is enabled for the tunnel. Valid values:'."\n" + ."\n" + .'* **true**'."\n" + .'* **false**'."\n", 'type' => 'string', 'example' => '47.21.XX.XX', 'title' => ''], + 'Psk' => ['description' => 'The ID of the resource group to which the IPsec-VPN connection belongs.'."\n" + ."\n" + .'You can call the [ListResourceGroups](~~158855~~) operation to query the resource group information.', 'type' => 'string', 'example' => '123456****', 'title' => ''], + 'RemoteId' => ['description' => 'The identifier of the tunnel peer.', 'type' => 'string', 'example' => '47.42.XX.XX', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'TunnelIpsecConfig' => [ + 'description' => 'Theconfigurations of Phase 2 negotiations.', + 'type' => 'object', + 'properties' => [ + 'IpsecAuthAlg' => ['description' => 'The authentication algorithm in the IPsec phase.', 'type' => 'string', 'example' => 'sha1', 'title' => ''], + 'IpsecEncAlg' => ['description' => 'The encryption algorithm in the IPsec phase.', 'type' => 'string', 'example' => 'aes', 'title' => ''], + 'IpsecLifetime' => ['description' => 'The lifetime in the IPsec phase. Unit: seconds.', 'type' => 'string', 'example' => '86400', 'title' => ''], + 'IpsecPfs' => ['description' => 'The DH group in the IPsec phase.', 'type' => 'string', 'example' => 'group2', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'ZoneNo' => ['description' => 'The tunnel zone.'."\n", 'type' => 'string', 'example' => 'cn-hangzhou-i', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'EnableTunnelsBgp' => ['description' => 'Indicates whether BGP is enabled for the tunnel. Valid values:'."\n" + ."\n" + .'* **true**'."\n" + .'* **false**'."\n" + ."\n" + .'This parameter is returned only by dual-tunnel IPsec-VPN connections.'."\n", 'type' => 'boolean', 'example' => 'true', 'title' => ''], + 'ResourceGroupId' => ['description' => 'The ID of the resource group to which the VPN connection belongs.'."\n" + ."\n" + .' You can call the [ListResourceGroups](~~158855~~) operation to query the resource group list.', 'type' => 'string', 'example' => 'rg-acfmzs372yg****', 'title' => ''], + 'TunnelBandwidth' => ['title' => '用于说明VPN单条隧道的带宽规格,取值:'."\n" + .'Standard(默认值):标准型,默认带宽1Gbps'."\n" + .'Large(大型):大型,默认带宽3Gbps', 'description' => 'Specifies the bandwidth specifications for a single tunnel in VPN attachment. Available options:'."\n" + .'- **Standard**: Standard, 1Gbps'."\n" + .'- **Large**: Large-sized, 3Gbps', 'type' => 'string', 'example' => 'Standard'], + ], + 'title' => '', + 'example' => '', ], ], + ], + 'errorCodes' => [ + 403 => [ + ['errorCode' => 'Forbbiden.SubUser', 'errorMessage' => 'User not authorized to operate on the specified resource as your account is created by another user.', 'description' => ''], + ['errorCode' => 'Forbidden', 'errorMessage' => 'User not authorized to operate on the specified resource.', 'description' => 'You do not have the permissions to manage the specified resource. Apply for the permissions and try again.'], + ], [ - 'name' => 'DstCidr', - 'in' => 'query', - 'schema' => [ - 'description' => 'The destination IPv4 CIDR block that matches the QoS rule traffic.'."\n" - ."\n" - .'> When this parameter is unavailable, specify **SrcIPv6Cidr** or **DstIPv6Cidr**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '1.1.1.0/24', - ], + ['errorCode' => 'InvalidVpnConnectionInstanceId.NotFound', 'errorMessage' => 'The specified vpn connection instance id does not exist.', 'description' => 'The specified vpn connection instance id does not exist.'], ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'title' => 'DescribeVpnConnection', + 'summary' => 'Queries the detailed information about an IPsec-VPN connection.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2024-10-24T11:19:58.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2023-10-19T07:04:00.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2023-08-01T06:15:55.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2023-06-30T12:44:22.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2023-06-13T09:30:08.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2023-05-04T09:18:36.000Z', 'description' => 'Response parameters changed, Response parameters changed'], + ['createdAt' => '2022-12-27T12:19:50.000Z', 'description' => 'Response parameters changed'], + ], + 'ramActions' => [], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Status\\": \\"ike_sa_not_established\\",\\n \\"RemoteCaCertificate\\": \\"-----BEGIN CERTIFICATE----- MIIB7zCCAZW****\\",\\n \\"EnableNatTraversal\\": true,\\n \\"CreateTime\\": 1492753817000,\\n \\"EffectImmediately\\": true,\\n \\"VpnGatewayId\\": \\"vpn-bp1q8bgx4xnkm2ogj****\\",\\n \\"LocalSubnet\\": \\"10.0.0.0/8\\",\\n \\"RequestId\\": \\"F2310D45-BCF6-4E2E-9082-B4503844BA4C\\",\\n \\"VpnConnectionId\\": \\"vco-bp1bbi27hojx80nck****\\",\\n \\"RemoteSubnet\\": \\"192.168.0.0/16\\",\\n \\"CustomerGatewayId\\": \\"cgw-bp1mvj4g9kogwwcxk****\\",\\n \\"Name\\": \\"ipsec1\\",\\n \\"EnableDpd\\": true,\\n \\"IkeConfig\\": {\\n \\"RemoteId\\": \\"139.34.XX.XX\\",\\n \\"IkeLifetime\\": 86400,\\n \\"IkeEncAlg\\": \\"aes\\",\\n \\"LocalId\\": \\"116.28.XX.XX\\",\\n \\"IkeMode\\": \\"main\\",\\n \\"IkeVersion\\": \\"ikev1\\",\\n \\"IkePfs\\": \\"group2\\",\\n \\"Psk\\": \\"pgw6dy****\\",\\n \\"IkeAuthAlg\\": \\"sha1\\"\\n },\\n \\"IpsecConfig\\": {\\n \\"IpsecAuthAlg\\": \\"sha1\\",\\n \\"IpsecLifetime\\": 86400,\\n \\"IpsecEncAlg\\": \\"aes\\",\\n \\"IpsecPfs\\": \\"group2\\"\\n },\\n \\"VcoHealthCheck\\": {\\n \\"Status\\": \\"failed\\",\\n \\"Dip\\": \\"10.0.0.1\\",\\n \\"Interval\\": 3,\\n \\"Retry\\": 3,\\n \\"Sip\\": \\"192.168.1.1\\",\\n \\"Enable\\": \\"true\\",\\n \\"Policy\\": \\"revoke_route\\"\\n },\\n \\"VpnBgpConfig\\": {\\n \\"Status\\": \\"success\\",\\n \\"PeerBgpIp\\": \\"169.254.11.1\\",\\n \\"TunnelCidr\\": \\"169.254.11.0/30\\",\\n \\"EnableBgp\\": \\"true\\",\\n \\"LocalBgpIp\\": \\"169.254.11.2\\",\\n \\"PeerAsn\\": 65530,\\n \\"LocalAsn\\": 65531,\\n \\"AuthKey\\": \\"AuthKey****\\"\\n },\\n \\"AttachType\\": \\"CEN\\",\\n \\"NetworkType\\": \\"public\\",\\n \\"AttachInstanceId\\": \\"cen-lxxpbpalc776qz****\\",\\n \\"Spec\\": \\"1000M\\",\\n \\"State\\": \\"attached\\",\\n \\"ZoneNo\\": \\"cn-hangzhou-h\\",\\n \\"InternetIp\\": \\"47.XX.XX.162\\",\\n \\"TransitRouterId\\": \\"tr-p0we2edef9qr44a85****\\",\\n \\"TransitRouterName\\": \\"nametest\\",\\n \\"CrossAccountAuthorized\\": false,\\n \\"Tags\\": {\\n \\"Tag\\": [\\n {\\n \\"Key\\": \\"TagKey\\",\\n \\"Value\\": \\"TagValue\\"\\n }\\n ]\\n },\\n \\"TunnelOptionsSpecification\\": {\\n \\"TunnelOptions\\": [\\n {\\n \\"TunnelId\\": \\"tun-opsqc4d97wni27****\\",\\n \\"CustomerGatewayId\\": \\"cgw-p0wy363lucf1uyae8****\\",\\n \\"EnableDpd\\": \\"true\\",\\n \\"EnableNatTraversal\\": \\"true\\",\\n \\"InternetIp\\": \\"47.21.XX.XX\\",\\n \\"RemoteCaCertificate\\": \\"-----BEGIN CERTIFICATE----- MIIB7zCCAZW**** -----END CERTIFICATE-----\\",\\n \\"Role\\": \\"master\\",\\n \\"TunnelIndex\\": 1,\\n \\"State\\": \\"active\\",\\n \\"Status\\": \\"ipsec_sa_established\\",\\n \\"TunnelBgpConfig\\": {\\n \\"BgpStatus\\": \\"success\\",\\n \\"LocalAsn\\": \\"65530\\",\\n \\"LocalBgpIp\\": \\"169.254.10.1\\",\\n \\"PeerAsn\\": \\"65531\\",\\n \\"PeerBgpIp\\": \\"169.254.10.2\\",\\n \\"TunnelCidr\\": \\"169.254.10.0/30\\"\\n },\\n \\"TunnelIkeConfig\\": {\\n \\"IkeAuthAlg\\": \\"sha1\\",\\n \\"IkeEncAlg\\": \\"aes\\",\\n \\"IkeLifetime\\": \\"86400\\",\\n \\"IkeMode\\": \\"main\\",\\n \\"IkePfs\\": \\"group2\\",\\n \\"IkeVersion\\": \\"ikev1\\",\\n \\"LocalId\\": \\"47.21.XX.XX\\",\\n \\"Psk\\": \\"123456****\\",\\n \\"RemoteId\\": \\"47.42.XX.XX\\"\\n },\\n \\"TunnelIpsecConfig\\": {\\n \\"IpsecAuthAlg\\": \\"sha1\\",\\n \\"IpsecEncAlg\\": \\"aes\\",\\n \\"IpsecLifetime\\": \\"86400\\",\\n \\"IpsecPfs\\": \\"group2\\"\\n },\\n \\"ZoneNo\\": \\"cn-hangzhou-i\\"\\n }\\n ]\\n },\\n \\"EnableTunnelsBgp\\": true,\\n \\"ResourceGroupId\\": \\"rg-acfmzs372yg****\\",\\n \\"TunnelBandwidth\\": \\"Standard\\"\\n}","type":"json"}]', + 'translator' => 'manual', + ], + 'DescribeVpnConnectionLogs' => [ + 'summary' => 'Queries logs of IPsec-VPN connections.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'SrcIPv6Cidr', - 'in' => 'query', - 'schema' => [ - 'description' => 'The source IPv6 CIDR block that matches the QoS rule traffic.'."\n" - ."\n" - .'> When this parameter is unavailable, specify **SrcCidr** or **DstCidr**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '2001:0db8:1234:5678::/64', - ], + 'AK' => [], ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'list', 'riskType' => 'none', 'chargeType' => 'free'], + 'parameters' => [ [ - 'name' => 'DstIPv6Cidr', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The destination IPv6 CIDR block that matches the QoS rule traffic.'."\n" - ."\n" - .'> When this parameter is unavailable, specify **SrcCidr** or **DstCidr**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '2001:0db8:1234:5678::/64', - ], + 'schema' => ['description' => 'The region ID of the IPsec-VPN connection.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'eu-central-1', 'title' => ''], ], [ - 'name' => 'SrcPortRange', + 'name' => 'VpnConnectionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The range of source ports that match the QoS rule traffic. Valid values: **0** to **65535**. If the traffic does not match, the value is -1. You can specify only one port. The start port number must be the same as the end port number.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '-1/-1', - ], + 'schema' => ['description' => 'The ID of the IPsec-VPN connection.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'vco-m5evqnds4y459flt3****', 'title' => ''], ], [ - 'name' => 'DstPortRange', + 'name' => 'From', 'in' => 'query', - 'schema' => [ - 'description' => 'The range of destination ports that match the QoS rule traffic. Valid values: **0** to **65535**. If the traffic does not match, the value is -1. You can specify only one port. The start port number must be the same as the end port number. Different protocols correspond to different ports. Valid values:'."\n" - ."\n" - .'* **ALL** (uneditable): -1/-1.'."\n" - .'* **ICMP(IPv4)** (uneditable): -1/-1.'."\n" - .'* **ICMPv6(IPv6)** (uneditable): -1/-1.'."\n" - .'* **TCP** (editable): -1/-1.'."\n" - .'* **UDP** (editable): -1/-1.'."\n" - .'* **GRE** (uneditable): -1/-1.'."\n" - .'* **SSH** (uneditable): 22/22.'."\n" - .'* **Telnet** (uneditable): 23/23.'."\n" - .'* **HTTP** (uneditable): 80/80.'."\n" - .'* **HTTPS** (uneditable): 443/443.'."\n" - .'* **MS SQL** (uneditable): 1443/1443.'."\n" - .'* **Oracle** (uneditable): 1521/1521.'."\n" - .'* **MySql** (uneditable): 3306/3306.'."\n" - .'* **RDP** (uneditable): 3389/3389.'."\n" - .'* **PostgreSQL** (uneditable): 5432/5432.'."\n" - .'* **Redis** (uneditable): 6379/6379.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '-1/-1', - ], + 'schema' => ['description' => 'The start time of the flow log. This value is a UNIX timestamp representing the number of milliseconds that have elapsed since January 1, 1970, 00:00:00 UTC.'."\n" + ."\n" + .'> If you specify **From**, you must specify **To** or **MinutePeriod**.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1671003744', 'title' => ''], ], [ - 'name' => 'MatchDscp', + 'name' => 'To', 'in' => 'query', - 'schema' => [ - 'description' => 'The DSCP value that matches the QoS rule traffic. Valid values: **0** to **63**. If no value is matched, the value is -1.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', - ], + 'schema' => ['description' => 'The end time of the flow log. This value is a UNIX timestamp representing the number of milliseconds that have elapsed since January 1, 1970, 00:00:00 UTC.'."\n" + ."\n" + .'> If you specify **To**, you must specify **From** or **MinutePeriod**.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1671004344', 'title' => ''], ], [ - 'name' => 'RemarkingDscp', + 'name' => 'MinutePeriod', 'in' => 'query', - 'schema' => [ - 'description' => 'The new DSCP value. Valid values: **0** to **63**. If you do not change the value, set the value to -1.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', - ], + 'schema' => ['description' => 'The interval at which log data is collected. Valid values: **1** to **10**. Unit: minutes.'."\n" + ."\n" + .'> If you do not specify **From** and **To**, you must specify **MinutePeriod**.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '10', 'title' => ''], ], [ - 'name' => 'RuleName', + 'name' => 'PageNumber', 'in' => 'query', - 'schema' => [ - 'description' => 'The name of the QoS rule.'."\n" - ."\n" - .'The name must be 0 to 128 characters in length and cannot start with `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'qos-rule-test', - ], + 'schema' => ['description' => 'The page number. Default value: **1**.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1', 'default' => '1', 'title' => ''], ], [ - 'name' => 'RuleDescription', + 'name' => 'PageSize', 'in' => 'query', - 'schema' => [ - 'description' => 'The description of the QoS rule.'."\n" - ."\n" - .'The description must be 0 to 256 characters in length and cannot start with `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'qos-rule-test', - ], + 'schema' => ['description' => 'The number of entries per page. Valid values: **1** to **50**. Default value: **10**.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '10', 'default' => '10', 'title' => ''], ], [ - 'name' => 'RuleId', + 'name' => 'TunnelId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the QoS rule.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'qos-rule-iugg0l9x27f2nocouj', - ], + 'allowEmptyValue' => true, + 'schema' => ['description' => 'The ID of the IPsec-VPN connection.'."\n" + ."\n" + .'This parameter is available only for a dual-tunnel IPsec-VPN connection.'."\n", 'type' => 'string', 'required' => false, 'example' => 'tun-opsqc4d97wni27****', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'description' => 'The returned data.'."\n", 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => '请求ID。', - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '7B48B4B9-1EAD-469F-B488-594DAB4B6A1A', + 'PageSize' => ['description' => 'The number of entries per page.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '10', 'title' => ''], + 'PageNumber' => ['description' => 'The page number.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => 'CF161502-4959-5C3B-B499-09B87BA931D9', 'title' => ''], + 'Count' => ['description' => 'The number of entries on the current page.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '10', 'title' => ''], + 'IsCompleted' => ['description' => 'Indicates whether the log is accurate. Valid values:'."\n" + ."\n" + .'* **true**'."\n" + .'* **false**'."\n", 'type' => 'boolean', 'example' => 'true', 'title' => ''], + 'Data' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Logs' => [ + 'description' => 'The log list.'."\n", + 'type' => 'array', + 'items' => ['description' => 'An array of strings.'."\n" + ."\n" + .'Each item in the array is a log entry.'."\n", 'type' => 'string', 'example' => '"Logs": [ "2022-12-14 15:52:28 vco-m5evqnds4y459flt3**** [DEBUG]: isakmp_inf.c:1514:isakmp****", "2022-12-14 15:52:28 vco-m5evqnds4y459flt3**** [DEBUG]: oakley.c:2832:oak****", "2022-12-14 15:52:28 vco-m5evqnds4y459flt3**** [DEBUG]: oakley.c:2833:oak****" ]', 'title' => ''], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'IllegalParam.%s', - 'errorMessage' => 'The param of %s is illegal.', - ], - [ - 'errorCode' => 'IncorrectStatus.Qos', - 'errorMessage' => 'The status of QoS is incorrect.', - ], - [ - 'errorCode' => 'EcQoSConflict', - 'errorMessage' => 'The specified QoS is conflict with other QoS.', - ], - [ - 'errorCode' => 'EcQosRuleNotAllowV4AndV6', - 'errorMessage' => 'QoS rules do not allow IPv4 and IPv6 addresses to be mixed and updated.', - ], + ['errorCode' => 'QueryVpnConnectionLog.NotFound', 'errorMessage' => 'the connection log of the vpn connection is not found.', 'description' => 'the connection log of the vpn connection is not found.'], + ], + 403 => [ + ['errorCode' => 'Forbbiden.SubUser', 'errorMessage' => 'User not authorized to operate on the specified resource as your account is created by another user.', 'description' => ''], + ['errorCode' => 'Forbidden', 'errorMessage' => 'User not authorized to operate on the specified resource.', 'description' => 'You do not have the permissions to manage the specified resource. Apply for the permissions and try again.'], + ], + [ + ['errorCode' => 'InvalidVpnConnectionInstanceId.NotFound', 'errorMessage' => 'The specified vpn connection instance id does not exist.', 'description' => 'The specified vpn connection instance id does not exist.'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'DescribeVpnConnectionLogs', + 'changeSet' => [ + ['createdAt' => '2024-01-04T07:17:11.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-06-30T12:44:28.000Z', 'description' => 'Request parameters changed'], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"7B48B4B9-1EAD-469F-B488-594DAB4B6A1A\\"\\n}","type":"json"}]', - 'title' => 'ModifyExpressConnectTrafficQosRule', + 'ramActions' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"PageSize\\": 10,\\n \\"PageNumber\\": 1,\\n \\"RequestId\\": \\"CF161502-4959-5C3B-B499-09B87BA931D9\\",\\n \\"Count\\": 10,\\n \\"IsCompleted\\": true,\\n \\"Data\\": {\\n \\"Logs\\": [\\n \\"\\\\\\"Logs\\\\\\": [ \\\\\\"2022-12-14 15:52:28 vco-m5evqnds4y459flt3**** [DEBUG]: isakmp_inf.c:1514:isakmp****\\\\\\", \\\\\\"2022-12-14 15:52:28 vco-m5evqnds4y459flt3**** [DEBUG]: oakley.c:2832:oak****\\\\\\", \\\\\\"2022-12-14 15:52:28 vco-m5evqnds4y459flt3**** [DEBUG]: oakley.c:2833:oak****\\\\\\" ]\\"\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 10\\n CF161502-4959-5C3B-B499-09B87BA931D9\\n 1\\n true\\n \\n 2022-12-14 15:52:28 vco-m5evqnds4y459flt3**** [DEBUG]: isakmp_inf.c:1514:isakmp_info_send_r_u(): DPD monitoring....\\n 2022-12-14 15:52:28 vco-m5evqnds4y459flt3**** [DEBUG]: oakley.c:2832:oakley_newiv2(): compute IV for phase2\\n 2022-12-14 15:52:28 vco-m5evqnds4y459flt3**** [DEBUG]: oakley.c:2833:oakley_newiv2(): phase1 last IV:\\n 2022-12-14 15:52:28 vco-m5evqnds4y459flt3**** [DEBUG]: algorithm.c:381:alg_oakley_hashdef(): hash(sha1)\\n 2022-12-14 15:52:28 vco-m5evqnds4y459flt3**** [DEBUG]: algorithm.c:524:alg_oakley_encdef(): encryption(aes)\\n 2022-12-14 15:52:28 vco-m5evqnds4y459flt3**** [DEBUG]: oakley.c:2867:oakley_newiv2(): phase2 IV computed:\\n 2022-12-14 15:52:28 vco-m5evqnds4y459flt3**** [DEBUG]: oakley.c:657:oakley_compute_hash1(): HASH with:\\n 2022-12-14 15:52:28 vco-m5evqnds4y459flt3**** [DEBUG]: algorithm.c:464:alg_oakley_hmacdef(): hmac(hmac_sha1)\\n 2022-12-14 15:52:28 vco-m5evqnds4y459flt3**** [DEBUG]: oakley.c:667:oakley_compute_hash1(): HASH computed:\\n 2022-12-14 15:52:28 vco-m5evqnds4y459flt3**** [DEBUG]: oakley.c:3035:oakley_do_encrypt(): begin encryption.\\n \\n 10\\n","errorExample":""}]', ], - 'CreateExpressConnectTrafficQos' => [ - 'summary' => 'Creates a quality of service (QoS) policy.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DescribeVpnConnections' => [ + 'summary' => 'Queries information about IPsec-VPN connections.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'read', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'create', - 'riskType' => 'none', - 'chargeType' => 'free', - ], + 'systemTags' => ['operationType' => 'list', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the QoS policy.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-shanghai', - ], + 'schema' => ['description' => 'The region ID of the IPsec-VPN connection. '."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the region ID.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'ClientToken', + 'name' => 'VpnGatewayId', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'You can use the client to generate the value, but you must make sure that it is unique among different requests. The token can contain only ASCII characters.'."\n" - ."\n" - .'> If you do not specify this parameter, **ClientToken** is set to the value of **RequestId**. The value of **RequestId** in each API request may be different.'."\n", - 'type' => 'string', - 'required' => false, - 'docRequired' => true, - 'example' => '123e4567-e89b-12d3-a456-426655440000', - ], + 'schema' => ['description' => 'The instance ID of the VPN gateway.', 'type' => 'string', 'required' => false, 'example' => 'vpn-bp1q8bgx4xnkx****', 'title' => ''], ], [ - 'name' => 'ClientToken', + 'name' => 'CustomerGatewayId', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'You can use the client to generate the value, but you must make sure that it is unique among different requests. The token can contain only ASCII characters.'."\n" - ."\n" - .'> If you do not specify this parameter, **ClientToken** is set to the value of **RequestId**. The value of **RequestId** in each API request may be different.'."\n", - 'type' => 'string', - 'required' => false, - 'docRequired' => true, - 'example' => '123e4567-e89b-12d3-a456-426655440000', - ], + 'schema' => ['description' => 'The ID of the customer gateway.', 'type' => 'string', 'required' => false, 'example' => 'cgw-bp1mvj4g9kogw****', 'title' => ''], ], [ - 'name' => 'QosName', + 'name' => 'PageNumber', 'in' => 'query', - 'schema' => [ - 'title' => 'Qos策略的名称。'."\n" - .'长度为0~128个字符,不能以http:// 或https://开头。', - 'description' => 'The name of the QoS policy.'."\n" - ."\n" - .'The name must be 0 to 128 characters in length and cannot start with `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'qos-test', - ], + 'schema' => ['description' => 'The page number. Default value: **1**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'default' => '1', 'example' => '1', 'title' => ''], ], [ - 'name' => 'QosDescription', + 'name' => 'PageSize', 'in' => 'query', - 'schema' => [ - 'title' => 'Qos策略的描述信息。'."\n" - .'长度为0~256个字符,不能以http://或https://开头。', - 'description' => 'The description of the QoS policy.'."\n" - ."\n" - .'The description must be 0 to 256 characters in length and cannot start with `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'qos-test'."\n", - ], + 'schema' => ['description' => 'The number of entries per page for paging queries. Default value: **10**. Valid values: **1** to **50**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'default' => '10', 'example' => '10', 'title' => ''], ], [ - 'name' => 'ResourceGroupId', + 'name' => 'VpnConnectionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the resource group.', - 'type' => 'string', - 'required' => false, - 'example' => 'rg-acfmxazfdgdg****', - ], + 'schema' => ['description' => 'The ID of the IPsec-VPN connection.', 'type' => 'string', 'required' => false, 'example' => 'vco-bp10lz7aejumd****', 'title' => ''], ], [ - 'name' => 'Tags', + 'name' => 'Tag', 'in' => 'query', 'style' => 'repeatList', 'schema' => [ - 'description' => 'The tag to add to the resource.', + 'description' => 'The list of tags bound to the IPsec-VPN connection.'."\n" + ."\n" + .'You can specify up to 20 tags at a time.', 'type' => 'array', 'items' => [ - 'description' => 'The tag to add to the resource.', + 'description' => 'The tag information.', 'type' => 'object', 'properties' => [ - 'Key' => [ - 'description' => 'The tag key to add to the resource. You must enter at least one tag key. You can specify up to 20 tag keys. The tag key cannot be an empty string.'."\n" - ."\n" - .'A tag key can be up to 128 characters in length. It cannot start with `aliyun` or `acs:`, and cannot contain `http://` or `https://`.', - 'type' => 'string', - 'required' => false, - 'example' => 'FinanceDept', - ], - 'Value' => [ - 'description' => 'The tag value to add to the resource. You can specify up to 20 tag values. The tag value can be an empty string.'."\n" - ."\n" - .'The tag value can be up to 128 characters in length and cannot start with `acs:` or `aliyun`. It cannot contain `http://` or `https://`.', - 'type' => 'string', - 'required' => false, - 'example' => 'FinanceJoshua', - ], + 'Key' => ['description' => 'The tag key. If you specify this parameter, the value cannot be an empty string.'."\n" + ."\n" + .'The tag key can be up to 64 characters in length and cannot start with `aliyun` or `acs:`. It cannot contain `http://` or `https://`.'."\n" + ."\n" + .'You can specify up to 20 tag keys at a time.', 'type' => 'string', 'required' => false, 'example' => 'TagKey', 'title' => ''], + 'Value' => ['description' => 'The tag value.'."\n" + ."\n" + .'The tag value can be up to 128 characters in length and can be an empty string. It cannot start with `aliyun` or `acs:` and cannot contain `http://` or `https://`.'."\n" + ."\n" + .'Each tag key corresponds to one tag value. You can specify up to 20 tag values at a time.', 'type' => 'string', 'required' => false, 'example' => 'TagValue', 'title' => ''], ], 'required' => false, + 'title' => '', + 'example' => '', ], 'required' => false, - 'maxItems' => 20, + 'maxItems' => 21, + 'title' => '', + 'example' => '', ], ], + [ + 'name' => 'ResourceGroupId', + 'in' => 'query', + 'schema' => ['description' => 'The ID of the resource group to which the IPsec-VPN connection belongs.'."\n" + ."\n" + .'You can call the [ListResourceGroups](~~158855~~) operation to query the resource group ID.', 'type' => 'string', 'required' => false, 'example' => 'rg-acfmzs372yg****', 'title' => ''], + ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => 'The returned information.', + 'description' => 'The response parameters.', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => '请求ID。', - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => 'DC668356-BCB4-42FD-9BC3-FA2B2E04B634', - ], - 'QosId' => [ - 'title' => 'Qos策略ID。', - 'description' => 'The ID of the QoS policy.'."\n", - 'type' => 'string', - 'example' => 'qos-2giu0a6vd5x0mv4700', + 'PageSize' => ['description' => 'The number of entries per page for paging queries.', 'type' => 'integer', 'format' => 'int32', 'example' => '10', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '238752DC-0693-49BE-9C85-711D5691D3E5', 'title' => ''], + 'PageNumber' => ['description' => 'The page number.', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''], + 'TotalCount' => ['description' => 'The total number of entries returned.', 'type' => 'integer', 'format' => 'int32', 'example' => '2', 'title' => ''], + 'VpnConnections' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'VpnConnection' => [ + 'description' => 'The list of IPsec-VPN connection configurations.', + 'type' => 'array', + 'items' => [ + 'description' => 'The configuration of the IPsec-VPN connection.', + 'type' => 'object', + 'properties' => [ + 'Status' => ['description' => 'The status of the IPsec-VPN connection. Valid values:'."\n" + ."\n" + .'- **ike_sa_not_established**: Phase 1 negotiation failed.'."\n" + ."\n" + .'- **ike_sa_established**: Phase 1 negotiation succeeded.'."\n" + ."\n" + .'- **ipsec_sa_not_established**: Phase 2 negotiation failed.'."\n" + ."\n" + .'- **ipsec_sa_established**: Phase 2 negotiation succeeded.', 'type' => 'string', 'example' => 'ipsec_sa_established', 'title' => ''], + 'EnableNatTraversal' => ['description' => 'Indicates whether NAT traversal is enabled for the IPsec-VPN connection.'."\n" + ."\n" + .'- **true**: NAT traversal is enabled.'."\n" + ."\n" + .' After NAT traversal is enabled, the IKE negotiation process removes the verification of the UDP port number and discovers NAT gateway devices in the VPN tunnel.'."\n" + ."\n" + .'- **false**: NAT traversal is disabled.', 'type' => 'boolean', 'example' => 'true', 'title' => ''], + 'RemoteCaCertificate' => ['description' => 'The CA certificate of the peer.', 'type' => 'string', 'example' => '-----BEGIN CERTIFICATE----- MIIB7zCCAZW**** -----END CERTIFICATE-----', 'title' => ''], + 'CreateTime' => ['description' => 'The timestamp when the IPsec-VPN connection was created. Unit: milliseconds.'."\n" + ."\n" + .'The timestamp follows the UNIX format and represents the number of milliseconds that have elapsed since January 1, 1970, 00:00:00 UTC.', 'type' => 'integer', 'format' => 'int64', 'example' => '1492753817000', 'title' => ''], + 'EffectImmediately' => ['description' => 'Indicates whether the IPsec-VPN connection configuration takes effect immediately.'."\n" + ."\n" + .'- **true**: A reconnection is triggered after the configuration is changed.'."\n" + .'- **false**: A reconnection is triggered when traffic is detected.', 'type' => 'boolean', 'example' => 'true', 'title' => ''], + 'VpnGatewayId' => ['description' => 'The instance ID of the VPN gateway.', 'type' => 'string', 'example' => 'vpn-bp1q8bgx4xnkm****', 'title' => ''], + 'LocalSubnet' => ['description' => 'The CIDR block on the Alibaba Cloud side of the IPsec-VPN connection.'."\n" + ."\n" + .'Multiple CIDR blocks are separated by commas (,).', 'type' => 'string', 'example' => '192.168.0.0/16,172.17.0.0/16', 'title' => ''], + 'VpnConnectionId' => ['description' => 'The ID of the IPsec-VPN connection.', 'type' => 'string', 'example' => 'vco-bp10lz7aejumd****', 'title' => ''], + 'RemoteSubnet' => ['description' => 'The CIDR block on the on-premises data center side.'."\n" + ."\n" + .'Multiple CIDR blocks are separated by commas (,).', 'type' => 'string', 'example' => '10.0.0.0/8,172.16.0.0/16', 'title' => ''], + 'CustomerGatewayId' => ['description' => 'The instance ID of the customer gateway associated with the IPsec-VPN connection.', 'type' => 'string', 'example' => 'cgw-bp1mvj4g9kogw****', 'title' => ''], + 'Name' => ['description' => 'The name of the IPsec-VPN connection.', 'type' => 'string', 'example' => 'nametest', 'title' => ''], + 'EnableDpd' => ['description' => 'Indicates whether Dead Peer Detection (DPD) is enabled for the IPsec-VPN connection.'."\n" + ."\n" + .'- **true**: DPD is enabled.'."\n" + ."\n" + .' The IPsec initiator sends DPD packets to check whether the peer device is alive. If no correct response is received within the specified period of time, the peer is considered disconnected. The ISAKMP SA and the corresponding IPsec SA are deleted, and the security tunnel is also deleted.'."\n" + ."\n" + .'- **false**: DPD is disabled. The IPsec initiator does not send DPD packets.', 'type' => 'boolean', 'example' => 'true', 'title' => ''], + 'IkeConfig' => [ + 'description' => 'The configuration of Phase 1 negotiation.', + 'type' => 'object', + 'properties' => [ + 'RemoteId' => ['description' => 'The identifier on the Alibaba Cloud side of the IPsec-VPN connection.', 'type' => 'string', 'example' => '139.17.XX.XX', 'title' => ''], + 'IkeLifetime' => ['description' => 'The IKE lifetime. Unit: seconds.', 'type' => 'integer', 'format' => 'int64', 'example' => '86400', 'title' => ''], + 'IkeEncAlg' => ['description' => 'The encryption algorithm in the IKE phase.', 'type' => 'string', 'example' => 'aes', 'title' => ''], + 'LocalId' => ['description' => 'The identifier on the on-premises data center side of the IPsec-VPN connection.', 'type' => 'string', 'example' => '116.64.XX.XX', 'title' => ''], + 'IkeMode' => ['description' => 'The IKE negotiation mode. Valid values:'."\n" + ."\n" + .'- **main**: main mode. This mode offers high negotiation security.'."\n" + .'- **aggressive**: aggressive mode. This mode supports fast negotiation and a higher success rate.', 'type' => 'string', 'example' => 'main', 'title' => ''], + 'IkeVersion' => ['description' => 'The IKE protocol version. Valid values:'."\n" + ."\n" + .'- **ikev1**'."\n" + .'- **ikev2**'."\n" + ."\n" + .'Compared with IKEv1, IKEv2 simplifies the SA negotiation process and provides better support for multi-CIDR-block scenarios.', 'type' => 'string', 'example' => 'ikev1', 'title' => ''], + 'IkePfs' => ['description' => 'The DH group in the IKE phase.', 'type' => 'string', 'example' => 'group2', 'title' => ''], + 'Psk' => ['description' => 'The pre-shared key.', 'type' => 'string', 'example' => 'pgw6dy7****', 'title' => ''], + 'IkeAuthAlg' => ['description' => 'The authentication algorithm in the IKE phase.', 'type' => 'string', 'example' => 'sha1', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'IpsecConfig' => [ + 'description' => 'The configuration of Phase 2 negotiation.', + 'type' => 'object', + 'properties' => [ + 'IpsecAuthAlg' => ['description' => 'The authentication algorithm in the IPsec phase.', 'type' => 'string', 'example' => 'sha1', 'title' => ''], + 'IpsecLifetime' => ['description' => 'The IPsec lifetime. Unit: seconds.', 'type' => 'integer', 'format' => 'int64', 'example' => '86400', 'title' => ''], + 'IpsecEncAlg' => ['description' => 'The encryption algorithm in the IPsec phase.', 'type' => 'string', 'example' => 'aes', 'title' => ''], + 'IpsecPfs' => ['description' => 'The DH group in the IPsec phase.', 'type' => 'string', 'example' => 'group2', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'VcoHealthCheck' => [ + 'description' => 'The health check configuration of the IPsec-VPN connection.', + 'type' => 'object', + 'properties' => [ + 'Status' => ['description' => 'The health check status. Valid values:'."\n" + ."\n" + .'- **success**: Normal.'."\n" + .'- **failed**: Abnormal.', 'type' => 'string', 'example' => 'success', 'title' => ''], + 'Dip' => ['description' => 'The destination IP address.', 'type' => 'string', 'example' => '192.168.0.1', 'title' => ''], + 'Interval' => ['description' => 'The health check interval. Unit: seconds.', 'type' => 'integer', 'format' => 'int32', 'example' => '2', 'title' => ''], + 'Retry' => ['description' => 'The number of health check retries.', 'type' => 'integer', 'format' => 'int32', 'example' => '3', 'title' => ''], + 'Sip' => ['description' => 'The source IP address.', 'type' => 'string', 'example' => '192.168.0.50', 'title' => ''], + 'Enable' => ['description' => 'The enabling status of health check. Valid values:'."\n" + ."\n" + .'- **true**: Enabled.'."\n" + ."\n" + .'- **false**: Disabled.', 'type' => 'string', 'example' => 'true', 'title' => ''], + 'Policy' => ['description' => 'Specifies whether to revoke published routes when the health check fails. Valid values:'."\n" + ."\n" + .'- **revoke_route**: Revoke routes.'."\n" + .'- **reserve_route**: Do not revoke routes.', 'type' => 'string', 'example' => 'revoke_route', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'VpnBgpConfig' => [ + 'description' => 'The BGP routing protocol configuration of the IPsec-VPN connection.', + 'type' => 'object', + 'properties' => [ + 'Status' => ['description' => 'The negotiation status of the BGP routing protocol. Valid values:'."\n" + ."\n" + .'- **success**: Normal.'."\n" + ."\n" + .'- **false**: Abnormal.', 'type' => 'string', 'example' => 'success', 'title' => ''], + 'PeerBgpIp' => ['description' => 'The BGP IP address of the peer.', 'type' => 'string', 'example' => '169.254.10.1', 'title' => ''], + 'TunnelCidr' => ['description' => 'The BGP CIDR block of the IPsec-VPN connection. The CIDR block is a subnet of 169.254.0.0/16 with a subnet mask length of 30.', 'type' => 'string', 'example' => '169.254.10.0/30', 'title' => ''], + 'LocalBgpIp' => ['description' => 'The BGP IP address on the Alibaba Cloud side.', 'type' => 'string', 'example' => '169.254.10.2', 'title' => ''], + 'PeerAsn' => ['description' => 'The autonomous system number of the peer.', 'type' => 'integer', 'format' => 'int64', 'example' => '65530', 'title' => ''], + 'LocalAsn' => ['description' => 'The autonomous system number on the Alibaba Cloud side.', 'type' => 'integer', 'format' => 'int64', 'example' => '65531', 'title' => ''], + 'AuthKey' => ['description' => 'The authentication key of the BGP routing protocol.', 'type' => 'string', 'example' => 'AuthKey****', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'AttachType' => ['description' => 'The type of resource to which the IPsec-VPN connection is bound. Valid values:'."\n" + ."\n" + .'- **CEN**: The IPsec-VPN connection is bound to a transit router instance under a Cloud Enterprise Network (CEN) instance.'."\n" + .'- **NO_ASSOCIATED**: The IPsec-VPN connection is not bound to any resource.'."\n" + .'- **VPNGW**: The IPsec-VPN connection is bound to a VPN gateway instance.', 'type' => 'string', 'example' => 'CEN', 'title' => ''], + 'NetworkType' => ['description' => 'The network type of the IPsec-VPN connection. Valid values:'."\n" + ."\n" + .'- **public**: The IPsec-VPN connection establishes an encrypted communication channel over the Internet.'."\n" + .'- **private**: The IPsec-VPN connection establishes an encrypted communication channel over a private network.', 'type' => 'string', 'example' => 'public', 'title' => ''], + 'AttachInstanceId' => ['description' => 'The ID of the Cloud Enterprise Network (CEN) instance to which the transit router instance belongs.', 'type' => 'string', 'example' => 'cen-lxxpbpalc776qz****', 'title' => ''], + 'Spec' => ['description' => 'The bandwidth specification of the IPsec-VPN connection. Unit: **Mbps**.', 'type' => 'string', 'example' => '1000M', 'title' => ''], + 'State' => ['description' => 'The binding status of the IPsec-VPN connection and the transit router instance. Valid values:'."\n" + ."\n" + .'- **active**: The IPsec-VPN connection is bound to a VPN gateway instance and the status is normal.'."\n" + .'- **init**: The IPsec-VPN connection is not bound to any resource. The IPsec-VPN connection is in initialization.'."\n" + .'- **attaching**: The IPsec-VPN connection is being attached to a transit router instance.'."\n" + .'- **attached**: The IPsec-VPN connection is attached to a transit router instance.'."\n" + .'- **detaching**: The IPsec-VPN connection is being unbound from a transit router instance.'."\n" + .'- **financialLocked**: Financial lock due to overdue payment.'."\n" + .'- **provisioning**: Resources are being prepared.'."\n" + .'- **updating**: The IPsec-VPN connection is being updated.'."\n" + .'- **upgrading**: The IPsec-VPN connection is being upgraded.'."\n" + .'- **deleted**: The IPsec-VPN connection is deleted.', 'type' => 'string', 'example' => 'attached', 'title' => ''], + 'TransitRouterId' => ['description' => 'The instance ID of the transit router bound to the IPsec-VPN connection.', 'type' => 'string', 'example' => 'tr-p0we2edef9qr44a85****', 'title' => ''], + 'TransitRouterName' => ['description' => 'The name of the transit router instance.', 'type' => 'string', 'example' => 'nametest', 'title' => ''], + 'CrossAccountAuthorized' => ['description' => 'Indicates whether the IPsec-VPN connection is bound to a transit router instance under a different Alibaba Cloud account. Valid values:'."\n" + ."\n" + .'- **true**: yes.'."\n" + .'- **false**: no.', 'type' => 'boolean', 'example' => 'false', 'title' => ''], + 'InternetIp' => ['description' => 'The gateway IP address of the IPsec-VPN connection.'."\n" + ."\n" + .'> This parameter is returned only when the IPsec-VPN connection is bound to a transit router instance.', 'type' => 'string', 'example' => '10.XX.XX.10', 'title' => ''], + 'Tag' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Tag' => [ + 'description' => 'The list of tags bound to the IPsec-VPN connection.', + 'type' => 'array', + 'items' => [ + 'description' => 'The tag information.', + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => 'The tag key.', 'type' => 'string', 'example' => 'TagKey', 'title' => ''], + 'Value' => ['description' => 'The tag value.', 'type' => 'string', 'example' => 'TagValue', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'TunnelOptionsSpecification' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'TunnelOptions' => [ + 'description' => 'The tunnel configuration of the IPsec-VPN connection.'."\n" + ."\n" + .'The parameters under **TunnelOptionsSpecification** are returned only when you query an IPsec-VPN connection in dual-tunnel mode.', + 'type' => 'array', + 'items' => [ + 'description' => 'The tunnel configuration.', + 'type' => 'object', + 'properties' => [ + 'TunnelId' => ['description' => 'The tunnel ID.', 'type' => 'string', 'example' => 'tun-opsqc4d97wni27****', 'title' => ''], + 'CustomerGatewayId' => ['description' => 'The ID of the customer gateway associated with the tunnel.', 'type' => 'string', 'example' => 'cgw-p0wy363lucf1uyae8****', 'title' => ''], + 'EnableDpd' => ['description' => 'Indicates whether Dead Peer Detection (DPD) is enabled for the tunnel. Valid values:'."\n" + .'- **false**: disabled.'."\n" + .'- **true**: enabled.', 'type' => 'string', 'example' => 'true', 'title' => ''], + 'EnableNatTraversal' => ['description' => 'Indicates whether NAT traversal is enabled for the tunnel. Valid values:'."\n" + ."\n" + .'- **false**: disabled.'."\n" + .'- **true**: enabled.', 'type' => 'string', 'example' => 'true', 'title' => ''], + 'InternetIp' => ['description' => 'The IP address of the tunnel.', 'type' => 'string', 'example' => '47.21.XX.XX', 'title' => ''], + 'RemoteCaCertificate' => ['description' => 'The CA certificate of the tunnel peer.'."\n" + ."\n" + .'This parameter is returned only when the VPN gateway instance uses the China Certification Authority (ShangMi) type.', 'type' => 'string', 'example' => '-----BEGIN CERTIFICATE----- MIIB7zCCAZW**** -----END CERTIFICATE-----', 'title' => ''], + 'Role' => ['description' => 'The role of the tunnel. Valid values:'."\n" + ."\n" + .'- **master**: The tunnel is the active tunnel.'."\n" + .'- **slave**: The tunnel is the standby tunnel.', 'type' => 'string', 'example' => 'master', 'title' => ''], + 'TunnelIndex' => ['description' => 'The creation order of the tunnel. Valid values:'."\n" + .'- **1**: the first tunnel.'."\n" + .'- **2**: the second tunnel.'."\n" + ."\n" + .'> This parameter is returned only when the IPsec-VPN connection is bound to a transit router instance.', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''], + 'State' => ['description' => 'The status of the tunnel. Valid values:'."\n" + ."\n" + .'- **active**: normal.'."\n" + .'- **updating**: being updated.'."\n" + .'- **deleting**: being deleted.', 'type' => 'string', 'example' => 'active', 'title' => ''], + 'Status' => ['description' => 'The status of the IPsec-VPN connection. Valid values:'."\n" + ."\n" + .'- **ike_sa_not_established**: Phase 1 negotiation failed.'."\n" + ."\n" + .'- **ike_sa_established**: Phase 1 negotiation succeeded.'."\n" + ."\n" + .'- **ipsec_sa_not_established**: Phase 2 negotiation failed.'."\n" + ."\n" + .'- **ipsec_sa_established**: Phase 2 negotiation succeeded.', 'type' => 'string', 'example' => 'ipsec_sa_established', 'title' => ''], + 'TunnelBgpConfig' => [ + 'description' => 'The BGP configuration of the tunnel.', + 'type' => 'object', + 'properties' => [ + 'BgpStatus' => ['description' => 'The BGP negotiation status. Valid values:'."\n" + ."\n" + .'- **success**: Normal.'."\n" + .'- **failed**: Abnormal.', 'type' => 'string', 'example' => 'success', 'title' => ''], + 'LocalAsn' => ['description' => 'The autonomous system number on the local end (Alibaba Cloud side) of the tunnel.', 'type' => 'string', 'example' => '65530', 'title' => ''], + 'LocalBgpIp' => ['description' => 'The BGP IP address on the local end (Alibaba Cloud side) of the tunnel.', 'type' => 'string', 'example' => '169.254.10.1', 'title' => ''], + 'PeerAsn' => ['description' => 'The autonomous system number of the tunnel peer.', 'type' => 'string', 'example' => '65531', 'title' => ''], + 'PeerBgpIp' => ['description' => 'The BGP IP address of the tunnel peer.', 'type' => 'string', 'example' => '169.254.10.2', 'title' => ''], + 'TunnelCidr' => ['description' => 'The BGP CIDR block of the tunnel.', 'type' => 'string', 'example' => '169.254.10.0/30', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'TunnelIkeConfig' => [ + 'description' => 'The configuration of Phase 1 negotiation.', + 'type' => 'object', + 'properties' => [ + 'IkeAuthAlg' => ['description' => 'The authentication algorithm in the IKE phase.', 'type' => 'string', 'example' => 'sha1', 'title' => ''], + 'IkeEncAlg' => ['description' => 'The encryption algorithm in the IKE phase.', 'type' => 'string', 'example' => 'aes', 'title' => ''], + 'IkeLifetime' => ['description' => 'The IKE lifetime. Unit: seconds.', 'type' => 'string', 'example' => '86400', 'title' => ''], + 'IkeMode' => ['description' => 'The IKE negotiation mode. Valid values:'."\n" + ."\n" + .'- **main**: main mode. This mode offers high negotiation security.'."\n" + .'- **aggressive**: aggressive mode. This mode supports fast negotiation and a higher success rate.', 'type' => 'string', 'example' => 'main', 'title' => ''], + 'IkePfs' => ['description' => 'The DH group in the IKE phase.', 'type' => 'string', 'example' => 'group2', 'title' => ''], + 'IkeVersion' => ['description' => 'The IKE protocol version.', 'type' => 'string', 'example' => 'ikev1', 'title' => ''], + 'LocalId' => ['description' => 'The identifier on the local end (Alibaba Cloud side) of the tunnel.', 'type' => 'string', 'example' => '47.21.XX.XX', 'title' => ''], + 'Psk' => ['description' => 'The pre-shared key.', 'type' => 'string', 'example' => '123456****', 'title' => ''], + 'RemoteId' => ['description' => 'The identifier of the tunnel peer.', 'type' => 'string', 'example' => '47.42.XX.XX', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'TunnelIpsecConfig' => [ + 'description' => 'The configuration of Phase 2 negotiation.', + 'type' => 'object', + 'properties' => [ + 'IpsecAuthAlg' => ['description' => 'The authentication algorithm in the IPsec phase.', 'type' => 'string', 'example' => 'sha1', 'title' => ''], + 'IpsecEncAlg' => ['description' => 'The encryption algorithm in the IPsec phase.', 'type' => 'string', 'example' => 'aes', 'title' => ''], + 'IpsecLifetime' => ['description' => 'The IPsec lifetime. Unit: seconds.', 'type' => 'string', 'example' => '86400', 'title' => ''], + 'IpsecPfs' => ['description' => 'The DH group in the IPsec phase.', 'type' => 'string', 'example' => 'group2', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'ZoneNo' => ['description' => 'The zone in which the tunnel is deployed.', 'type' => 'string', 'example' => 'ap-southeast-5a', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'EnableTunnelsBgp' => ['description' => 'The enabling status of BGP for the tunnels. Valid values:'."\n" + ."\n" + .'- **true**: Enabled.'."\n" + .'- **false**: Disabled.', 'type' => 'boolean', 'example' => 'true', 'title' => ''], + 'ResourceGroupId' => ['description' => 'The ID of the resource group to which the IPsec-VPN connection belongs.'."\n" + ."\n" + .'You can call the [ListResourceGroups](~~158855~~) operation to query resource group information.', 'type' => 'string', 'example' => 'rg-acfmzs372yg****', 'title' => ''], + 'TunnelBandwidth' => ['title' => '', 'description' => 'The bandwidth specification of a single VPN tunnel. Valid values:'."\n" + .'Standard (default): Standard. The default bandwidth is 1 Gbps.'."\n" + .'Large: Large. The default bandwidth is 3 Gbps.', 'type' => 'string', 'example' => 'Standard'], + ], + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'IllegalParam.%s', - 'errorMessage' => 'The param of %s is illegal.', - ], - [ - 'errorCode' => 'OperationUnsupported.Qos', - 'errorMessage' => 'QoS is unsupported.', - ], - [ - 'errorCode' => 'QuotaExceeded.Qos', - 'errorMessage' => 'The quota of QoS is exceeded.', - ], + ['errorCode' => 'Forbidden.TagKey.Duplicated', 'errorMessage' => 'The specified tag key already exists.', 'description' => 'The tag resources are duplicate.'], + ['errorCode' => 'SizeLimitExceeded.TagNum', 'errorMessage' => 'The maximum number of tags is exceeded.', 'description' => 'The number of tags has reached the upper limit.'], + ['errorCode' => 'InvalidParameter.TagValue', 'errorMessage' => 'The specified parameter TagValue is invalid.', 'description' => 'The error message returned because the specified tag value is invalid.'], + ['errorCode' => 'InvalidParameter.TagKey', 'errorMessage' => 'The specified parameter TagKey is invalid.', 'description' => 'The error message returned because the specified tag key is invalid.'], + ['errorCode' => 'Duplicated.TagKey', 'errorMessage' => 'The specified parameter TagKey is duplicated.', 'description' => 'The error message returned because the specified tag key already exists.'], + ], + 403 => [ + ['errorCode' => 'Forbbiden.SubUser', 'errorMessage' => 'User not authorized to operate on the specified resource as your account is created by another user.', 'description' => ''], + ['errorCode' => 'Forbidden', 'errorMessage' => 'User not authorized to operate on the specified resource.', 'description' => 'You do not have the permissions to manage the specified resource. Apply for the permissions and try again.'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'Query created iPsec-VPN connections', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2024-10-24T11:19:58.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2023-10-19T08:26:51.000Z', 'description' => 'Request parameters changed, Response parameters changed'], + ['createdAt' => '2023-08-01T06:15:54.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2023-06-30T12:44:21.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2023-06-13T09:30:08.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2023-05-04T09:18:36.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2022-12-27T12:19:50.000Z', 'description' => 'Error codes changed, Response parameters changed'], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"DC668356-BCB4-42FD-9BC3-FA2B2E04B634\\",\\n \\"QosId\\": \\"qos-2giu0a6vd5x0mv****\\"\\n}","type":"json"}]', - 'title' => 'CreateExpressConnectTrafficQos', - ], - 'CreateExpressConnectTrafficQosQueue' => [ - 'summary' => 'Creates a quality of service (QoS) queue.', - 'methods' => [ - 'post', - 'get', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '600', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DescribeVpnConnections'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'vpc:DescribeVpnConnections', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'conditional', 'product' => 'VPC', 'resourceType' => 'VpnConnection', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vpnconnection/*'], + ['validationType' => 'conditional', 'product' => 'VPC', 'resourceType' => 'VpnConnection', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vpnconnection/{#VpnConnectionId}'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"PageSize\\": 10,\\n \\"RequestId\\": \\"238752DC-0693-49BE-9C85-711D5691D3E5\\",\\n \\"PageNumber\\": 1,\\n \\"TotalCount\\": 2,\\n \\"VpnConnections\\": {\\n \\"VpnConnection\\": [\\n {\\n \\"Status\\": \\"ipsec_sa_established\\",\\n \\"EnableNatTraversal\\": true,\\n \\"RemoteCaCertificate\\": \\"-----BEGIN CERTIFICATE----- MIIB7zCCAZW**** -----END CERTIFICATE-----\\",\\n \\"CreateTime\\": 1492753817000,\\n \\"EffectImmediately\\": true,\\n \\"VpnGatewayId\\": \\"vpn-bp1q8bgx4xnkm****\\",\\n \\"LocalSubnet\\": \\"192.168.0.0/16,172.17.0.0/16\\",\\n \\"VpnConnectionId\\": \\"vco-bp10lz7aejumd****\\",\\n \\"RemoteSubnet\\": \\"10.0.0.0/8,172.16.0.0/16\\",\\n \\"CustomerGatewayId\\": \\"cgw-bp1mvj4g9kogw****\\",\\n \\"Name\\": \\"nametest\\",\\n \\"EnableDpd\\": true,\\n \\"IkeConfig\\": {\\n \\"RemoteId\\": \\"139.17.XX.XX\\",\\n \\"IkeLifetime\\": 86400,\\n \\"IkeEncAlg\\": \\"aes\\",\\n \\"LocalId\\": \\"116.64.XX.XX\\",\\n \\"IkeMode\\": \\"main\\",\\n \\"IkeVersion\\": \\"ikev1\\",\\n \\"IkePfs\\": \\"group2\\",\\n \\"Psk\\": \\"pgw6dy7****\\",\\n \\"IkeAuthAlg\\": \\"sha1\\"\\n },\\n \\"IpsecConfig\\": {\\n \\"IpsecAuthAlg\\": \\"sha1\\",\\n \\"IpsecLifetime\\": 86400,\\n \\"IpsecEncAlg\\": \\"aes\\",\\n \\"IpsecPfs\\": \\"group2\\"\\n },\\n \\"VcoHealthCheck\\": {\\n \\"Status\\": \\"success\\",\\n \\"Dip\\": \\"192.168.0.1\\",\\n \\"Interval\\": 2,\\n \\"Retry\\": 3,\\n \\"Sip\\": \\"192.168.0.50\\",\\n \\"Enable\\": \\"true\\",\\n \\"Policy\\": \\"revoke_route\\"\\n },\\n \\"VpnBgpConfig\\": {\\n \\"Status\\": \\"success\\",\\n \\"PeerBgpIp\\": \\"169.254.10.1\\",\\n \\"TunnelCidr\\": \\"169.254.10.0/30\\",\\n \\"LocalBgpIp\\": \\"169.254.10.2\\",\\n \\"PeerAsn\\": 65530,\\n \\"LocalAsn\\": 65531,\\n \\"AuthKey\\": \\"AuthKey****\\"\\n },\\n \\"AttachType\\": \\"CEN\\",\\n \\"NetworkType\\": \\"public\\",\\n \\"AttachInstanceId\\": \\"cen-lxxpbpalc776qz****\\",\\n \\"Spec\\": \\"1000M\\",\\n \\"State\\": \\"attached\\",\\n \\"TransitRouterId\\": \\"tr-p0we2edef9qr44a85****\\",\\n \\"TransitRouterName\\": \\"nametest\\",\\n \\"CrossAccountAuthorized\\": false,\\n \\"InternetIp\\": \\"10.XX.XX.10\\",\\n \\"Tag\\": {\\n \\"Tag\\": [\\n {\\n \\"Key\\": \\"TagKey\\",\\n \\"Value\\": \\"TagValue\\"\\n }\\n ]\\n },\\n \\"TunnelOptionsSpecification\\": {\\n \\"TunnelOptions\\": [\\n {\\n \\"TunnelId\\": \\"tun-opsqc4d97wni27****\\",\\n \\"CustomerGatewayId\\": \\"cgw-p0wy363lucf1uyae8****\\",\\n \\"EnableDpd\\": \\"true\\",\\n \\"EnableNatTraversal\\": \\"true\\",\\n \\"InternetIp\\": \\"47.21.XX.XX\\",\\n \\"RemoteCaCertificate\\": \\"-----BEGIN CERTIFICATE----- MIIB7zCCAZW**** -----END CERTIFICATE-----\\",\\n \\"Role\\": \\"master\\",\\n \\"TunnelIndex\\": 1,\\n \\"State\\": \\"active\\",\\n \\"Status\\": \\"ipsec_sa_established\\",\\n \\"TunnelBgpConfig\\": {\\n \\"BgpStatus\\": \\"success\\",\\n \\"LocalAsn\\": \\"65530\\",\\n \\"LocalBgpIp\\": \\"169.254.10.1\\",\\n \\"PeerAsn\\": \\"65531\\",\\n \\"PeerBgpIp\\": \\"169.254.10.2\\",\\n \\"TunnelCidr\\": \\"169.254.10.0/30\\"\\n },\\n \\"TunnelIkeConfig\\": {\\n \\"IkeAuthAlg\\": \\"sha1\\",\\n \\"IkeEncAlg\\": \\"aes\\",\\n \\"IkeLifetime\\": \\"86400\\",\\n \\"IkeMode\\": \\"main\\",\\n \\"IkePfs\\": \\"group2\\",\\n \\"IkeVersion\\": \\"ikev1\\",\\n \\"LocalId\\": \\"47.21.XX.XX\\",\\n \\"Psk\\": \\"123456****\\",\\n \\"RemoteId\\": \\"47.42.XX.XX\\"\\n },\\n \\"TunnelIpsecConfig\\": {\\n \\"IpsecAuthAlg\\": \\"sha1\\",\\n \\"IpsecEncAlg\\": \\"aes\\",\\n \\"IpsecLifetime\\": \\"86400\\",\\n \\"IpsecPfs\\": \\"group2\\"\\n },\\n \\"ZoneNo\\": \\"ap-southeast-5a\\"\\n }\\n ]\\n },\\n \\"EnableTunnelsBgp\\": true,\\n \\"ResourceGroupId\\": \\"rg-acfmzs372yg****\\",\\n \\"TunnelBandwidth\\": \\"Standard\\"\\n }\\n ]\\n }\\n}","type":"json"}]', + ], + 'DescribeVpnCrossAccountAuthorizations' => [ + 'summary' => 'Queries the cross-account authorization information of an IPsec-VPN connection.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'read', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'create', - 'riskType' => 'none', - 'chargeType' => 'free', - ], + 'systemTags' => ['operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the QoS policy.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-shanghai'."\n", - ], + 'schema' => ['description' => 'The region ID of the IPsec-VPN connection.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the region ID.', 'type' => 'string', 'required' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'ClientToken', + 'name' => 'VpnConnectionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'You can use the client to generate the value, but you must make sure that it is unique among all requests. ClientToken can contain only ASCII characters.'."\n" - ."\n" - .'> If you do not specify this parameter, **ClientToken** is set to the value of **RequestId**. The value of **RequestId** for each API request may be different.'."\n", - 'type' => 'string', - 'required' => false, - 'docRequired' => true, - 'example' => '0c593ea1-3bea-11e9-b96b-88e9fe637760', - ], + 'schema' => ['description' => 'The ID of the IPsec-VPN connection.', 'type' => 'string', 'required' => true, 'example' => 'vco-p0w2jpkhi2eeop6q6****', 'title' => ''], ], [ - 'name' => 'ClientToken', + 'name' => 'PageNumber', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'You can use the client to generate the value, but you must make sure that it is unique among all requests. ClientToken can contain only ASCII characters.'."\n" - ."\n" - .'> If you do not specify this parameter, **ClientToken** is set to the value of **RequestId**. The value of **RequestId** for each API request may be different.'."\n", - 'type' => 'string', - 'required' => false, - 'docRequired' => true, - 'example' => '0c593ea1-3bea-11e9-b96b-88e9fe637760', - ], + 'schema' => ['description' => 'The page number of the list. Default value: **1**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1', 'title' => ''], ], [ - 'name' => 'QueueName', + 'name' => 'PageSize', 'in' => 'query', - 'schema' => [ - 'title' => 'Qos策略的名称。'."\n" - .'长度为0~128个字符,不能以http:// 或https://开头。', - 'description' => 'The name of the QoS queue.'."\n" - ."\n" - .'It must be 0 to 128 characters in length and cannot start with `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'qos-queue-test', - ], + 'schema' => ['description' => 'The number of entries per page in a paged query. Default value: **10**. Valid values: **1** to **50**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '10', 'title' => ''], ], [ - 'name' => 'QueueDescription', + 'name' => 'ClientToken', 'in' => 'query', + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'You can use the client to generate the token, but you must make sure that the token is unique among different requests. The ClientToken value can contain only ASCII characters.'."\n" + ."\n" + .'> If you do not specify this parameter, the system automatically uses the **RequestId** of the API request as the **ClientToken**. The **RequestId** may differ for each API request.', 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-4266****', 'title' => ''], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'title' => 'Qos策略的描述信息。'."\n" - .'长度为0~256个字符,不能以http://或https://开头。', - 'description' => 'The description of the QoS queue.'."\n" - ."\n" - .'It must be 0 to 256 characters in length and cannot start with `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'qos-queue-test'."\n", + 'title' => '', + 'description' => 'The response parameters.', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['title' => '', 'description' => 'The request ID.', 'type' => 'string', 'example' => 'DB04E39A-6F0C-36AC-BCA0-B6D371B90062'], + 'TotalCount' => ['description' => 'The total number of entries returned.', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''], + 'PageNumber' => ['description' => 'The page number of the list.', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''], + 'PageSize' => ['description' => 'The number of entries per page in a paging query.', 'type' => 'integer', 'format' => 'int32', 'example' => '10', 'title' => ''], + 'CrossAccountAuthorizations' => [ + 'description' => 'The list of cross-account authorization information for the IPsec-VPN connection.', + 'type' => 'array', + 'items' => [ + 'description' => 'The cross-account authorization information of the IPsec-VPN connection.', + 'type' => 'object', + 'properties' => [ + 'VpnConnectionId' => ['description' => 'The ID of the IPsec-VPN connection.', 'type' => 'string', 'example' => 'vco-p0w2jpkhi2eeop6q6****', 'title' => ''], + 'BindUid' => ['description' => 'The ID of the Alibaba Cloud account to which the IPsec-VPN connection is authorized.', 'type' => 'integer', 'format' => 'int64', 'example' => '1210123456123456', 'title' => ''], + 'BindProduct' => ['description' => 'The type of resource to which the IPsec-VPN connection is authorized.'."\n" + ."\n" + .'The value is **CEN** only, which indicates that the IPsec-VPN connection is authorized to a cross-account Cloud Enterprise Network (CEN) instance. The IPsec-VPN connection can be attached to a transit router instance under the cross-account CEN instance.', 'type' => 'string', 'example' => 'CEN', 'title' => ''], + 'BindInstance' => ['description' => 'The instance ID of the CEN instance to which the IPsec-VPN connection authorization is granted.', 'type' => 'string', 'example' => 'cen-vv8h0t3klfpaae****', 'title' => ''], + 'AliUid' => ['description' => 'The ID of the Alibaba Cloud account to which the IPsec-VPN connection belongs.', 'type' => 'integer', 'format' => 'int64', 'example' => '1250123456123456', 'title' => ''], + 'CreationTime' => ['description' => 'The timestamp when the cross-account authorization was created for the IPsec-VPN connection.'."\n" + ."\n" + .'The timestamp is in the UNIX format and represents the total number of seconds that have elapsed since January 1, 1970, 00:00:00 UTC to the time when the cross-account authorization was created.', 'type' => 'integer', 'format' => 'int64', 'example' => '1658201810000', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + ], + 'example' => '', ], ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'Query cross-account authorization information of an iPsec-VPN connection', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '600', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DescribeVpnCrossAccountAuthorizations'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], + ], + 'ramActions' => [ [ - 'name' => 'QosId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the QoS policy.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'qos-2giu0a6vd5x0mv4700', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'vpc:DescribeVpnCrossAccountAuthorizations', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VpnConnections', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vpnconnection/{#VpnConnectionId}'], + ], ], ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"DB04E39A-6F0C-36AC-BCA0-B6D371B90062\\",\\n \\"TotalCount\\": 1,\\n \\"PageNumber\\": 1,\\n \\"PageSize\\": 10,\\n \\"CrossAccountAuthorizations\\": [\\n {\\n \\"VpnConnectionId\\": \\"vco-p0w2jpkhi2eeop6q6****\\",\\n \\"BindUid\\": 1210123456123456,\\n \\"BindProduct\\": \\"CEN\\",\\n \\"BindInstance\\": \\"cen-vv8h0t3klfpaae****\\",\\n \\"AliUid\\": 1250123456123456,\\n \\"CreationTime\\": 1658201810000\\n }\\n ]\\n}","type":"json"}]', + ], + 'DescribeVpnGateway' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'QueueType', + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free'], + 'parameters' => [ + [ + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The priority of the QoS queue. Valid values:'."\n" - ."\n" - .'* **High**'."\n" - .'* **Medium**'."\n" - .'* **Default**: default queue.'."\n" - ."\n" - .'> You cannot create a QoS queue of the default priority.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'High', - ], + 'schema' => ['description' => ' The region ID of the VPN gateway. '."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the region ID.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'BandwidthPercent', + 'name' => 'VpnGatewayId', 'in' => 'query', - 'schema' => [ - 'description' => 'The percentage of bandwidth allocated to the QoS queue.'."\n" - ."\n" - .'* If QueueType is set to **Medium**, this parameter is required. Valid values: 1 to 100.'."\n" - .'* If QueueType is set to **Default**, a value of - is returned.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '100', - ], + 'schema' => ['description' => ' The instance ID of the VPN gateway.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'vpn-bp1r3v1xqkl0w519g****', 'title' => ''], + ], + [ + 'name' => 'IncludeReservationData', + 'in' => 'query', + 'schema' => ['description' => 'Specifies whether to include pending order data. Valid values:'."\n" + ."\n" + .'- **false** (default): does not include pending order data.'."\n" + ."\n" + .'- **true**: includes pending order data.', 'type' => 'boolean', 'required' => false, 'example' => 'true', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'description' => 'The response parameters.', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => '请求ID。', - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '4CF20CC7-D1FC-425B-A15B-DF7C8E2131A7', + 'VpnType' => ['description' => 'The type of the VPN gateway. Value: **Normal**, which indicates a standard VPN gateway.'."\n" + ."\n" + .''."\n" + ."\n" + .'The type of the VPN gateway. Valid values:'."\n" + ."\n" + .'- **Normal**: standard.'."\n" + ."\n" + .'- **NationalStandard**: Chinese SM algorithm-based.'."\n" + ."\n" + .'.', 'type' => 'string', 'example' => 'Normal', 'title' => ''], + 'Status' => ['description' => 'The status of the VPN gateway. Valid values:'."\n" + ."\n" + .'- **init**: initializing.'."\n" + ."\n" + .'- **provisioning**: preparing.'."\n" + ."\n" + .'- **active**: Normal.'."\n" + ."\n" + .'- **updating**: updating.'."\n" + ."\n" + .'- **deleting**: deleting.', 'type' => 'string', 'example' => 'init', 'title' => ''], + 'VpcId' => ['description' => 'The ID of the VPC to which the VPN gateway belongs.', 'type' => 'string', 'example' => 'vpc-bp19m2yx1m5q0avyq****', 'title' => ''], + 'SslMaxConnections' => ['description' => 'The maximum number of concurrent SSL-VPN connections.', 'type' => 'integer', 'format' => 'int64', 'example' => '5', 'title' => ''], + 'Spec' => ['description' => 'The bandwidth specification of the VPN gateway. Unit: Mbit/s.', 'type' => 'string', 'example' => '5', 'title' => ''], + 'InternetIp' => ['description' => '- If the VPN gateway instance supports creating single-tunnel IPsec-VPN connections, this address is the IP address of the VPN gateway instance and can be used to create IPsec-VPN connections or SSL-VPN connections.'."\n" + ."\n" + .'- If the VPN gateway instance supports creating dual-tunnel IPsec-VPN connections, this address is the first IP address used to create IPsec-VPN connections and cannot be used to create SSL-VPN connections.'."\n" + ."\n" + .' If the VPN gateway instance supports creating dual-tunnel IPsec-VPN connections, the system assigns two IPsec IP addresses to the VPN gateway instance for creating dual-tunnel IPsec-VPN connections.', 'type' => 'string', 'example' => '47.22.XX.XX', 'title' => ''], + 'CreateTime' => ['description' => 'The timestamp when the VPN gateway was created. Unit: milliseconds.'."\n" + ."\n" + .'The timestamp follows the UNIX time format, which represents the total number of milliseconds elapsed since January 1, 1970, 00:00:00 UTC.', 'type' => 'integer', 'format' => 'int64', 'example' => '1495382400000', 'title' => ''], + 'AutoPropagate' => ['description' => 'Indicates whether the routing automatic propagation feature is enabled for the VPN gateway. Valid values:'."\n" + ."\n" + .'- **true**: enabled.'."\n" + ."\n" + .'- **false**: disabled.', 'type' => 'boolean', 'example' => 'true', 'title' => ''], + 'ChargeType' => ['description' => 'The billing method. Value:'."\n" + ."\n" + .'**POSTPAY**: pay-as-you-go billing method.'."\n" + ."\n" + .'**POSTPAY**: pay-as-you-go billing method.'."\n" + ."\n" + .'**Prepay**: subscription.', 'type' => 'string', 'example' => '中国站示例值:Prepay,国际站示例值:POSTPAY', 'title' => ''], + 'VpnGatewayId' => ['description' => 'The instance ID of the VPN gateway.', 'type' => 'string', 'example' => 'vpn-bp1r3v1xqkl0w519g****', 'title' => ''], + 'Tag' => ['description' => 'The labels automatically generated by the system for the VPN gateway.'."\n" + ."\n" + .'- **VpnEnableBgp**: indicates whether the VPN gateway supports the BGP feature.'."\n" + .' - **true**: Supported.'."\n" + .' - **false**: Not supported.'."\n" + .'- **VisuallySsl**: indicates whether the VPN gateway supports viewing connection information of SSL clients.'."\n" + .' - **true**: Supported.'."\n" + .' - **false**: Not supported.'."\n" + .'- **PbrPriority**: indicates whether the VPN gateway supports configuring policy priority for policy-based routing.'."\n" + .' - **true**: Supported.'."\n" + .' - **false**: Not supported.'."\n" + .'- **VpnNewImage**: indicates whether the VPN gateway is a new-generation VPN gateway.'."\n" + .' - **true**: Yes.'."\n" + .' - **false**: No.'."\n" + .'- **description**: the description of the VPN gateway, which is used only for internal system purposes.'."\n" + .'- **VpnVersion**: the version number of the VPN gateway.'."\n" + .'- **IDaaSNewVersion**: indicates whether the VPN gateway supports attaching to an EIAM 2.0 instance.'."\n" + .' - **true**: Supported.'."\n" + .' - **false**: Not supported.', 'type' => 'string', 'example' => '{\\"VpnEnableBgp\\":\\"true\\",\\"VisuallySsl\\":\\"true\\",\\"PbrPriority\\":\\"true\\",\\"VpnNewImage\\":\\"true\\",\\"description\\":\\"转发1.3.24\\",\\"VpnVersion\\":\\"v1.2.4\\",\\"IDaaSNewVersion\\":\\"true\\"}', 'title' => ''], + 'IpsecVpn' => ['description' => 'Indicates whether the IPsec-VPN feature is enabled. Valid values:'."\n" + ."\n" + .'- **enable**: enabled.'."\n" + ."\n" + .'- **disable**: disabled.', 'type' => 'string', 'example' => 'enable', 'title' => ''], + 'EndTime' => ['description' => 'The expiration timestamp of the VPN gateway. Unit: milliseconds.'."\n" + ."\n" + .'The timestamp follows the UNIX time format, which represents the total number of milliseconds elapsed since January 1, 1970, 00:00:00 UTC.', 'type' => 'integer', 'format' => 'int64', 'example' => '1544666102000', 'title' => ''], + 'VSwitchId' => ['description' => 'The ID of the vSwitch to which the VPN gateway belongs.', 'type' => 'string', 'example' => 'vsw-bp1dmzugdikc6hdgx****', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '27E4E088-8DE0-4672-BF5C-0A412389DB9E', 'title' => ''], + 'Description' => ['description' => 'The description of the VPN gateway.', 'type' => 'string', 'example' => 'vpngatewaydescription', 'title' => ''], + 'EnableBgp' => ['description' => 'The enabling status of the BGP feature for the VPN gateway. Valid values:'."\n" + ."\n" + .'- **true**: enabled.'."\n" + ."\n" + .'- **false**: disabled.', 'type' => 'boolean', 'example' => 'true', 'title' => ''], + 'BusinessStatus' => ['description' => 'The payment status of the VPN gateway. Valid values:'."\n" + ."\n" + .'- **Normal**: Normal.'."\n" + ."\n" + .'- **FinancialLocked**: locked due to overdue payment.', 'type' => 'string', 'example' => 'Normal', 'title' => ''], + 'SslVpn' => ['description' => 'The enabling status of the SSL-VPN feature. Valid values:'."\n" + ."\n" + .'- **enable**: enabled.'."\n" + ."\n" + .'- **disable**: disabled.', 'type' => 'string', 'example' => 'enable', 'title' => ''], + 'Name' => ['description' => 'The name of the VPN gateway.', 'type' => 'string', 'example' => 'vpngatewayname', 'title' => ''], + 'ReservationData' => [ + 'description' => 'The pending order data.'."\n" + ."\n" + .'>This parameter is returned only when **IncludeReservationData** is set to **true**.', + 'type' => 'object', + 'properties' => [ + 'Status' => ['description' => 'The status of the pending order. Valid values:'."\n" + ."\n" + .'- **1**: The renewal or renewal with specification change order has not taken effect.'."\n" + ."\n" + .'- **2**: The temporary upgrade order has taken effect. After the restoration time is reached, the system restores the VPN gateway to the specification before the temporary upgrade. In this case, **ReservationIpsec**, **ReservationMaxConnections**, **ReservationSpec**, and **ReservationSsl** indicate the specifications before the temporary upgrade.', 'type' => 'string', 'example' => '1', 'title' => ''], + 'ReservationOrderType' => ['description' => 'The type of the pending order. Valid values:'."\n" + ."\n" + .'- **RENEWCHANGE**: renewal with specification change.'."\n" + ."\n" + .'- **TEMP_UPGRADE**: temporary upgrade.'."\n" + ."\n" + .'- **RENEW**: renewal.', 'type' => 'string', 'example' => 'TEMP_UPGRADE', 'title' => ''], + 'ReservationIpsec' => ['description' => 'The enabling status of the IPsec-VPN feature for the pending order. Valid values:'."\n" + ."\n" + .'- **enable**: enabled.'."\n" + ."\n" + .'- **disable**: disabled.', 'type' => 'string', 'example' => 'enable', 'title' => ''], + 'ReservationSpec' => ['description' => 'The bandwidth specification of the pending order. Unit: Mbit/s.', 'type' => 'string', 'example' => '5', 'title' => ''], + 'ReservationSsl' => ['description' => 'The enabling status of the SSL-VPN feature for the pending order. Valid values:'."\n" + ."\n" + .'- **enable**: enabled.'."\n" + ."\n" + .'- **disable**: disabled.', 'type' => 'string', 'example' => 'enable', 'title' => ''], + 'ReservationMaxConnections' => ['description' => 'The maximum number of concurrent SSL-VPN connections of the pending order.', 'type' => 'integer', 'format' => 'int32', 'example' => '5', 'title' => ''], + 'ReservationEndTime' => ['description' => 'If the pending order type is **TEMP_UPGRADE** (temporary upgrade), this parameter indicates the revert time for the temporary upgrade.'."\n" + ."\n" + .'If the pending order type is **RENEWCHANGE** (renewal with specification change) or **RENEW** (renewal), this parameter indicates the effective period when the renewal or renewal with specification change takes effect.', 'type' => 'string', 'example' => '2020-07-20T16:00:00Z', 'title' => ''], + ], + 'title' => '', + 'example' => '', ], - 'QosId' => [ - 'title' => 'Qos策略ID。', - 'description' => 'The ID of the QoS policy.'."\n", - 'type' => 'string', - 'example' => 'qos-2giu0a6vd5x0mv4700', + 'Tags' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Tag' => [ + 'description' => 'The list of tags bound to the VPN gateway instance.', + 'type' => 'array', + 'items' => [ + 'description' => 'The list of tags bound to the VPN gateway instance.', + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => 'The tag key.', 'type' => 'string', 'example' => 'aaa', 'title' => ''], + 'Value' => ['description' => 'The tag value.', 'type' => 'string', 'example' => 'bbb', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', ], - 'QueueId' => [ - 'description' => 'The ID of the QoS queue.'."\n", - 'type' => 'string', - 'example' => 'qos-queue-9nyx2u7n71s2rcy4n5'."\n", + 'NetworkType' => ['description' => 'The network type of the VPN gateway.'."\n" + ."\n" + .'- **public**: public VPN gateway.'."\n" + .'- **private**: private VPN gateway.', 'type' => 'string', 'example' => 'public', 'title' => ''], + 'DisasterRecoveryInternetIp' => ['description' => 'The second IP address assigned by the system to the VPN gateway instance for creating IPsec-VPN connections.'."\n" + ."\n" + .'This parameter is returned only for VPN gateway instances that support creating dual-tunnel IPsec-VPN connections.', 'type' => 'string', 'example' => '47.91.XX.XX', 'title' => ''], + 'DisasterRecoveryVSwitchId' => ['description' => 'The ID of the second vSwitch associated with the VPN gateway instance.'."\n" + ."\n" + .'This parameter is returned only for VPN gateway instances that support creating dual-tunnel IPsec-VPN connections.', 'type' => 'string', 'example' => 'vsw-p0w95ql6tmr2ludkt****', 'title' => ''], + 'SslVpnInternetIp' => ['description' => 'The IP address of the SSL-VPN connection.'."\n" + ."\n" + .'This parameter is returned only when the SSL-VPN feature is enabled on a VPN gateway instance of the public network type that supports creating dual-tunnel IPsec-VPN connections.', 'type' => 'string', 'example' => '47.74.XX.XX', 'title' => ''], + 'ResourceGroupId' => ['description' => 'The ID of the resource group to which the VPN gateway belongs.'."\n" + ."\n" + .'You can call the [ListResourceGroups](~~158855~~) operation to query resource group information.', 'type' => 'string', 'example' => 'rg-acfmzs372yg****', 'title' => ''], + 'EniInstanceIds' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'EniInstanceId' => [ + 'description' => 'The list of Elastic Network Interfaces (ENIs) created by the system for the VPN gateway instance.', + 'type' => 'array', + 'items' => ['description' => 'The ENI ID.'."\n" + ."\n" + .'This parameter is returned only for VPN gateway instances that support creating dual-tunnel IPsec-VPN connections.', 'type' => 'string', 'example' => 'eni-7xvcxgmd4y2ypibn****', 'title' => ''], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', ], + 'GatewayType' => ['description' => 'The type of the VPN gateway. Valid values:'."\n" + .'- **Traditional**: traditional VPN gateway that supports both IPsec and SSL features.'."\n" + .'- **Enhanced.SiteToSite**: enhanced site-to-cloud VPN gateway that supports only the IPsec feature.', 'type' => 'string', 'example' => 'Enhanced.SiteToSite', 'title' => ''], ], - 'description' => '', + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'IllegalParam.%s', - 'errorMessage' => 'The param of %s is illegal.', - ], - [ - 'errorCode' => 'QuotaExceeded.QosMediumPriorityQueueCount', - 'errorMessage' => 'The quota of QosMediumPriorityQueueCount is exceeded.', - ], - [ - 'errorCode' => 'QuotaExceeded.QosHighPriorityQueueCount', - 'errorMessage' => 'The quota of QosHighPriorityQueueCount is exceeded.', - ], - [ - 'errorCode' => 'QuotaExceeded.QosMediumPriorityQueueBandwidthPercent', - 'errorMessage' => 'The quota of QosMediumPriorityQueueBandwidthPercent is exceeded.', - ], - [ - 'errorCode' => 'IncorrectStatus.Qos', - 'errorMessage' => 'The status of QoS is incorrect.', - ], - [ - 'errorCode' => 'EcQoSConflict', - 'errorMessage' => 'The specified QoS is conflict with other QoS.', - ], + ['errorCode' => 'InvalidVpnGatewayInstanceId.NotFound', 'errorMessage' => 'The specified vpn gateway instance id does not exist.', 'description' => 'The specified VPN gateway does not exist. Check whether the specified VPN gateway is valid.'], + ], + 403 => [ + ['errorCode' => 'Forbbiden.SubUser', 'errorMessage' => 'User not authorized to operate on the specified resource as your account is created by another user.', 'description' => ''], + ['errorCode' => 'Forbidden', 'errorMessage' => 'User not authorized to operate on the specified resource.', 'description' => 'You do not have the permissions to manage the specified resource. Apply for the permissions and try again.'], + ], + [ + ['errorCode' => 'InvalidVpnGatewayInstanceId.NotFound', 'errorMessage' => 'The specified vpn gateway instance id does not exist.', 'description' => ''], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'Query details of a specified VPN gateway', + 'summary' => 'Queries the details of a specified VPN gateway by calling the DescribeVpnGateway operation.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2024-05-06T02:21:48.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2023-10-19T07:04:00.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2023-06-30T12:44:23.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2022-12-05T09:52:15.000Z', 'description' => 'Response parameters changed'], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"4CF20CC7-D1FC-425B-A15B-DF7C8E2131A7\\",\\n \\"QosId\\": \\"qos-2giu0a6vd5x0mv****\\",\\n \\"QueueId\\": \\"qos-queue-9nyx2u7n71s2rc****\\\\n\\"\\n}","type":"json"}]', - 'title' => 'CreateExpressConnectTrafficQosQueue', - ], - 'CreateExpressConnectTrafficQosRule' => [ - 'summary' => 'Creates a quality of service (QoS) rule.', - 'methods' => [ - 'post', - 'get', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '600', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DescribeVpnGateway'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'vpc:DescribeVpnGateway', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VpnGateway', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vpngateway/{#VpnGatewayId}'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"VpnType\\": \\"Normal\\",\\n \\"Status\\": \\"init\\",\\n \\"VpcId\\": \\"vpc-bp19m2yx1m5q0avyq****\\",\\n \\"SslMaxConnections\\": 5,\\n \\"Spec\\": \\"5\\",\\n \\"InternetIp\\": \\"47.22.XX.XX\\",\\n \\"CreateTime\\": 1495382400000,\\n \\"AutoPropagate\\": true,\\n \\"ChargeType\\": \\"中国站示例值:Prepay,国际站示例值:POSTPAY\\",\\n \\"VpnGatewayId\\": \\"vpn-bp1r3v1xqkl0w519g****\\",\\n \\"Tag\\": \\"{\\\\\\\\\\\\\\"VpnEnableBgp\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"true\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"VisuallySsl\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"true\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"PbrPriority\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"true\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"VpnNewImage\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"true\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"description\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"转发1.3.24\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"VpnVersion\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"v1.2.4\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"IDaaSNewVersion\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"true\\\\\\\\\\\\\\"}\\",\\n \\"IpsecVpn\\": \\"enable\\",\\n \\"EndTime\\": 1544666102000,\\n \\"VSwitchId\\": \\"vsw-bp1dmzugdikc6hdgx****\\",\\n \\"RequestId\\": \\"27E4E088-8DE0-4672-BF5C-0A412389DB9E\\",\\n \\"Description\\": \\"vpngatewaydescription\\",\\n \\"EnableBgp\\": true,\\n \\"BusinessStatus\\": \\"Normal\\",\\n \\"SslVpn\\": \\"enable\\",\\n \\"Name\\": \\"vpngatewayname\\",\\n \\"ReservationData\\": {\\n \\"Status\\": \\"1\\",\\n \\"ReservationOrderType\\": \\"TEMP_UPGRADE\\",\\n \\"ReservationIpsec\\": \\"enable\\",\\n \\"ReservationSpec\\": \\"5\\",\\n \\"ReservationSsl\\": \\"enable\\",\\n \\"ReservationMaxConnections\\": 5,\\n \\"ReservationEndTime\\": \\"2020-07-20T16:00:00Z\\"\\n },\\n \\"Tags\\": {\\n \\"Tag\\": [\\n {\\n \\"Key\\": \\"aaa\\",\\n \\"Value\\": \\"bbb\\"\\n }\\n ]\\n },\\n \\"NetworkType\\": \\"public\\",\\n \\"DisasterRecoveryInternetIp\\": \\"47.91.XX.XX\\",\\n \\"DisasterRecoveryVSwitchId\\": \\"vsw-p0w95ql6tmr2ludkt****\\",\\n \\"SslVpnInternetIp\\": \\"47.74.XX.XX\\",\\n \\"ResourceGroupId\\": \\"rg-acfmzs372yg****\\",\\n \\"EniInstanceIds\\": {\\n \\"EniInstanceId\\": [\\n \\"eni-7xvcxgmd4y2ypibn****\\"\\n ]\\n },\\n \\"GatewayType\\": \\"Enhanced.SiteToSite\\"\\n}","type":"json"}]', + ], + 'DescribeVpnGatewayAvailableZones' => [ + 'methods' => ['get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'read', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'create', - 'riskType' => 'none', - 'chargeType' => 'free', - ], + 'systemTags' => ['operationType' => 'list', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the QoS policy.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-shanghai'."\n", - ], + 'schema' => ['description' => 'The region ID.', 'type' => 'string', 'required' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'ClientToken', + 'name' => 'Spec', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'You can use the client to generate a token, but you must make sure that the token is unique among different requests. The token can contain only ASCII characters.'."\n" - ."\n" - .'> 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.'."\n", - 'type' => 'string', - 'required' => false, - 'docRequired' => true, - 'example' => '123e4567-e89b-12d3-a456-426655440000', - ], + 'schema' => ['description' => 'The bandwidth specification.'."\n" + .'- If the IPsec-VPN connection is associated with a VPN gateway instance, this parameter specifies the bandwidth specification of the VPN gateway instance.'."\n" + .'- If the IPsec-VPN connection is associated with a transit router, this parameter specifies the expected bandwidth specification that the IPsec-VPN connection can support.'."\n" + ."\n" + .'Different bandwidth specifications may affect the zone information returned. Valid values:'."\n" + ."\n" + .'- **5M**'."\n" + .'- **10M**'."\n" + .'- **20M**'."\n" + .'- **50M**'."\n" + .'- **100M**'."\n" + .'- **200M**'."\n" + .'- **500M**'."\n" + .'- **1000M**.', 'type' => 'string', 'required' => true, 'example' => '5M', 'title' => ''], ], [ - 'name' => 'ClientToken', + 'name' => 'AcceptLanguage', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'You can use the client to generate a token, but you must make sure that the token is unique among different requests. The token can contain only ASCII characters.'."\n" - ."\n" - .'> 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.'."\n", - 'type' => 'string', - 'required' => false, - 'docRequired' => true, - 'example' => '123e4567-e89b-12d3-a456-426655440000', - ], + 'schema' => ['description' => 'The language in which the returned results are displayed. Valid values:'."\n" + ."\n" + .'- **zh-CN**: Chinese.'."\n" + .'- **en-US** (default): English.', 'type' => 'string', 'required' => false, 'example' => 'zh-CN', 'title' => ''], ], [ - 'name' => 'QosId', + 'name' => 'GatewayType', 'in' => 'query', + 'schema' => ['description' => 'The VPN gateway type. Valid values:'."\n" + .'- **Traditional**: Returns zone information for creating traditional VPN gateways.'."\n" + .'- **Enhanced.SiteToSite**: Returns zone information for creating enhanced site-to-cloud VPN gateways.'."\n" + .'- **Default value**: Returns zone information for creating all types of VPN gateways.', 'type' => 'string', 'required' => false, 'example' => 'Traditional', 'title' => ''], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'title' => 'Qos策略ID。', - 'description' => 'The ID of the QoS policy.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'qos-2giu0a6vd5x0mv4700', + 'description' => 'The response parameters.', + 'type' => 'object', + 'properties' => [ + 'RegionId' => ['description' => 'The region ID.', 'type' => 'string', 'example' => 'cn-hangzhou', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '29784052-931F-543D-A612-36B3838163FA', 'title' => ''], + 'AvailableZoneIdList' => [ + 'description' => 'The list of zones.', + 'type' => 'array', + 'items' => [ + 'description' => 'The zone information.', + 'type' => 'object', + 'properties' => [ + 'ZoneId' => ['description' => 'The zone ID.', 'type' => 'string', 'example' => 'cn-hangzhou-h', 'title' => ''], + 'ZoneName' => ['description' => 'The zone name.', 'type' => 'string', 'example' => 'cn-hangzhou-h', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + ], + 'title' => '', + 'example' => '', ], ], + ], + 'errorCodes' => [ + 403 => [ + ['errorCode' => 'Forbbiden.SubUser', 'errorMessage' => 'User not authorized to operate on the specified resource as your account is created by another user.', 'description' => ''], + ['errorCode' => 'Forbidden', 'errorMessage' => 'User not authorized to operate on the specified resource.', 'description' => 'You do not have the permissions to manage the specified resource. Apply for the permissions and try again.'], + ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'Query zones that support iPsec-VPN connection deployment in a specified region', + 'summary' => 'Queries the list of zones that support IPsec-VPN connection deployment in a specified region by calling the DescribeVpnGatewayAvailableZones operation.', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '600', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DescribeVpnGatewayAvailableZones'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], + ], + 'ramActions' => [ [ - 'name' => 'QueueId', - 'in' => 'query', - 'schema' => [ - 'title' => 'Qos队列ID。', - 'description' => 'The ID of the QoS queue.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'qos-queue-9nyx2u7n71s2rcy4n5', + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'vpc:DescribeVpnGatewayAvailableZones', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'All Resource', 'arn' => '*'], + ], ], ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RegionId\\": \\"cn-hangzhou\\",\\n \\"RequestId\\": \\"29784052-931F-543D-A612-36B3838163FA\\",\\n \\"AvailableZoneIdList\\": [\\n {\\n \\"ZoneId\\": \\"cn-hangzhou-h\\",\\n \\"ZoneName\\": \\"cn-hangzhou-h\\"\\n }\\n ]\\n}","type":"json"}]', + ], + 'DescribeVpnGateways' => [ + 'summary' => 'Queries VPN gateways created in a specified region.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'Priority', - 'in' => 'query', - 'schema' => [ - 'description' => 'The priority of the QoS rule. Valid values: **1** to **9000**. A larger value indicates a higher priority. The priority of each QoS rule must be unique in the same QoS policy.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'example' => '1', - ], + 'AK' => [], ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'list', 'riskType' => 'none', 'chargeType' => 'free'], + 'parameters' => [ [ - 'name' => 'Protocol', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The protocol of the QoS rule. Valid values:'."\n" - ."\n" - .'* **ALL**'."\n" - .'* **ICMP(IPv4)**'."\n" - .'* **ICMPv6(IPv6)**'."\n" - .'* **TCP**'."\n" - .'* **UDP**'."\n" - .'* **GRE**'."\n" - .'* **SSH**'."\n" - .'* **Telnet**'."\n" - .'* **HTTP**'."\n" - .'* **HTTPS**'."\n" - .'* **MS SQL**'."\n" - .'* **Oracle**'."\n" - .'* **MySql**'."\n" - .'* **RDP**'."\n" - .'* **PostgreSQL**'."\n" - .'* **Redis**'."\n", - 'type' => 'string', - 'required' => true, - 'enumValueTitles' => [], - 'example' => 'ALL', - ], + 'schema' => ['description' => 'The region ID of the VPN gateway. '."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query region IDs.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'SrcCidr', + 'name' => 'VpcId', 'in' => 'query', - 'schema' => [ - 'description' => 'The source IPv4 CIDR block that matches the QoS rule traffic.'."\n" - ."\n" - .'> When this parameter is unavailable, specify **SrcIPv6Cidr** or **DstIPv6Cidr**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '1.1.1.0/24'."\n", - ], + 'schema' => ['description' => 'The ID of the virtual private cloud (VPC) to which the VPN gateway belongs.', 'type' => 'string', 'required' => false, 'example' => 'vpc-bp1m3i0kn1nd4wiw9****', 'title' => ''], ], [ - 'name' => 'DstCidr', + 'name' => 'VpnGatewayId', 'in' => 'query', - 'schema' => [ - 'description' => 'The destination IPv4 CIDR block that matches the QoS rule traffic.'."\n" - ."\n" - .'> When this parameter is unavailable, specify **SrcIPv6Cidr** or **DstIPv6Cidr**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '1.1.1.0/24'."\n", - ], + 'schema' => ['description' => 'The ID of the VPN gateway.', 'type' => 'string', 'required' => false, 'example' => 'vpn-bp17lofy9fd0dnvzv****', 'title' => ''], ], [ - 'name' => 'SrcIPv6Cidr', + 'name' => 'Status', 'in' => 'query', - 'schema' => [ - 'description' => 'The source IPv6 CIDR block that matches the QoS rule traffic.'."\n" - ."\n" - .'> When this parameter is unavailable, specify **SrcCidr** or **DstCidr**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '2001:0db8:1234:5678::/64'."\n", - ], + 'schema' => ['description' => 'The status of the VPN gateway. Valid values:'."\n" + ."\n" + .'- **init**: initializing.'."\n" + ."\n" + .'- **provisioning**: preparing.'."\n" + ."\n" + .'- **active**: Normal.'."\n" + ."\n" + .'- **updating**: updating.'."\n" + ."\n" + .'- **deleting**: deleting.', 'type' => 'string', 'required' => false, 'example' => 'active', 'title' => ''], ], [ - 'name' => 'DstIPv6Cidr', + 'name' => 'BusinessStatus', 'in' => 'query', - 'schema' => [ - 'description' => 'The destination IPv6 CIDR block that matches the QoS rule traffic.'."\n" - ."\n" - .'> When this parameter is unavailable, specify **SrcCidr** or **DstCidr**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '2001:0db8:1234:5678::/64', - ], + 'schema' => ['description' => 'The billing status of the VPN gateway. Valid values:'."\n" + ."\n" + .'- **Normal**: Normal.'."\n" + ."\n" + .'- **FinancialLocked**: locked due to overdue payment.', 'type' => 'string', 'required' => false, 'example' => 'Normal', 'title' => ''], ], [ - 'name' => 'SrcPortRange', + 'name' => 'PageNumber', 'in' => 'query', - 'schema' => [ - 'description' => 'The range of source ports that match the QoS rule traffic. Valid values: **0** to **65535**. If the traffic does not match, the value is -1. You can specify only one port. The start port number must be the same as the end port number.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '-1/-1'."\n", - ], + 'schema' => ['description' => 'The page number of the list. Default value: **1**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'default' => '1', 'example' => '1', 'title' => ''], ], [ - 'name' => 'DstPortRange', + 'name' => 'PageSize', 'in' => 'query', - 'schema' => [ - 'description' => 'The range of destination ports that match the QoS rule traffic. Valid values: **0** to **65535**. If the traffic does not match, the value is -1. You can specify only one port. The start port number must be the same as the end port number. Different protocols correspond to different ports. Valid values:'."\n" - ."\n" - .'* **ALL** (uneditable): -1/-1.'."\n" - .'* **ICMP(IPv4)** (uneditable): -1/-1.'."\n" - .'* **ICMPv6(IPv6)** (uneditable): -1/-1.'."\n" - .'* **TCP** (editable): -1/-1.'."\n" - .'* **UDP** (editable): -1/-1.'."\n" - .'* **GRE** (uneditable): -1/-1.'."\n" - .'* **SSH** (uneditable): 22/22.'."\n" - .'* **Telnet** (uneditable): 23/23.'."\n" - .'* **HTTP** (uneditable): 80/80.'."\n" - .'* **HTTPS** (uneditable): 443/443.'."\n" - .'* **MS SQL** (uneditable): 1443/1443.'."\n" - .'* **Oracle** (uneditable): 1521/1521.'."\n" - .'* **MySql** (uneditable): 3306/3306.'."\n" - .'* **RDP** (uneditable): 3389/3389.'."\n" - .'* **PostgreSQL** (uneditable): 5432/5432.'."\n" - .'* **Redis** (uneditable): 6379/6379.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '-1/-1'."\n", - ], + 'schema' => ['description' => 'The number of entries per page for paging queries. Valid values: **1** to **50**. Default value: **10**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'default' => '10', 'example' => '10', 'title' => ''], ], [ - 'name' => 'MatchDscp', + 'name' => 'IncludeReservationData', 'in' => 'query', - 'schema' => [ - 'description' => 'The DSCP value that matches the QoS rule traffic. Valid values: **0** to **63**. If no value is matched, the value is -1.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', - ], + 'schema' => ['description' => 'Specifies whether to include pending order data. Valid values:'."\n" + ."\n" + .'- **false** (default): does not include pending order data.'."\n" + ."\n" + .'- **true**: includes pending order data.', 'type' => 'boolean', 'required' => false, 'docRequired' => false, 'example' => 'true', 'title' => ''], ], [ - 'name' => 'RemarkingDscp', + 'name' => 'Tag', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => 'The new DSCP value. Valid values: **0** to **63**. If you do not change the value, set the value to -1.'."\n", - 'type' => 'integer', - 'format' => 'int32', + 'description' => 'The list of tags bound to the VPN gateway.', + 'type' => 'array', + 'items' => [ + 'description' => 'The tag bound to the VPN gateway.', + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => 'The tag key.'."\n" + ."\n" + .'You can specify up to 20 tag keys at a time.', 'type' => 'string', 'required' => false, 'example' => 'FinanceDept', 'title' => ''], + 'Value' => ['description' => 'The tag value.'."\n" + ."\n" + .'Each tag key corresponds to one tag value. You can specify up to 20 tag values at a time.', 'type' => 'string', 'required' => false, 'example' => 'FinanceJoshua', 'title' => ''], + ], + 'required' => false, + 'title' => '', + 'example' => '', + ], 'required' => false, - 'example' => '1', + 'maxItems' => 20, + 'title' => '', + 'example' => '', ], ], [ - 'name' => 'RuleName', + 'name' => 'ResourceGroupId', 'in' => 'query', - 'schema' => [ - 'description' => 'The name of the QoS rule.'."\n" - ."\n" - .'The name must be 0 to 128 characters in length and cannot start with `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'qos-rule-test'."\n", - ], + 'schema' => ['description' => 'The ID of the resource group to which the VPN gateway belongs.'."\n" + ."\n" + .'You can call the [ListResourceGroups](~~158855~~) operation to query resource group IDs.', 'type' => 'string', 'required' => false, 'example' => 'rg-acfmzs372yg****', 'title' => ''], ], [ - 'name' => 'RuleDescription', + 'name' => 'GatewayType', 'in' => 'query', - 'schema' => [ - 'description' => 'The description of the QoS rule.'."\n" - ."\n" - .'The description must be 0 to 256 characters in length and cannot start with `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'qos-rule-test'."\n", - ], + 'allowEmptyValue' => false, + 'schema' => ['title' => '', 'description' => 'The type of the VPN gateway. Valid values:'."\n" + .'- Traditional: traditional VPN gateway that covers IPsec and SSL features.'."\n" + .'- Enhanced.SiteToSite: enhanced site-to-cloud VPN that covers only IPsec features.', 'type' => 'string', 'required' => false, 'example' => 'Enhanced.SiteToSite'], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'description' => 'The response parameters.', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => '请求ID。', - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '606998F0-B94D-48FE-8316-ACA81BB230DA', - ], - 'QosId' => [ - 'title' => 'Qos策略ID。', - 'description' => 'The ID of the QoS policy.'."\n", - 'type' => 'string', - 'example' => 'qos-2giu0a6vd5x0mv4700', - ], - 'QueueId' => [ - 'description' => 'The ID of the QoS queue.'."\n", - 'type' => 'string', - 'example' => 'qos-queue-9nyx2u7n71s2rcy4n5', - ], - 'RuleId' => [ - 'description' => 'The ID of the QoS rule.'."\n", - 'type' => 'string', - 'example' => 'qos-rule-iugg0l9x27f2nocouj'."\n", + 'PageSize' => ['description' => 'The number of entries per page for paging queries.', 'type' => 'integer', 'format' => 'int32', 'example' => '10', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'DF11D6F6-E35A-41C3-9B20-6FC8A901FE65', 'title' => ''], + 'PageNumber' => ['description' => 'The page number of the list.', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''], + 'TotalCount' => ['description' => 'The total number of entries.', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''], + 'VpnGateways' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'VpnGateway' => [ + 'description' => 'The list of VPN gateways.', + 'type' => 'array', + 'items' => [ + 'description' => 'The information about the VPN gateway.', + 'type' => 'object', + 'properties' => [ + 'VpnType' => ['description' => 'The type of the VPN gateway.'."\n" + .' '."\n" + .''."\n" + ."\n" + .'- **Normal**: standard.'."\n" + .'- **NationalStandard**: Chinese SM algorithm-based.'."\n" + ."\n" + .''."\n" + ."\n" + .'Valid values: **Normal**, which indicates the standard type.', 'type' => 'string', 'example' => 'Normal', 'title' => ''], + 'Status' => ['description' => 'The status of the VPN gateway.'."\n" + ."\n" + .'- **init**: initializing.'."\n" + ."\n" + .'- **provisioning**: preparing.'."\n" + ."\n" + .'- **active**: Normal.'."\n" + ."\n" + .'- **updating**: updating.'."\n" + ."\n" + .'- **deleting**: deleting.', 'type' => 'string', 'example' => 'active', 'title' => ''], + 'VpcId' => ['description' => 'The ID of the VPC to which the VPN gateway belongs.', 'type' => 'string', 'example' => 'vpc-bp1m3i0kn1nd4wiw9****', 'title' => ''], + 'SslMaxConnections' => ['description' => 'The maximum number of concurrent SSL-VPN connections for the VPN gateway.', 'type' => 'integer', 'format' => 'int64', 'example' => '5', 'title' => ''], + 'Spec' => ['description' => 'The peak bandwidth of the VPN gateway. **M** indicates the unit Mbit/s.', 'type' => 'string', 'example' => '5M', 'title' => ''], + 'InternetIp' => ['description' => '- If the VPN gateway instance supports creating single-tunnel IPsec-VPN connections, this is the IP address of the VPN gateway instance and can be used to create IPsec-VPN connections or SSL-VPN connections.'."\n" + ."\n" + .'- If the VPN gateway instance supports creating dual-tunnel IPsec-VPN connections, this is the first IP address used to create IPsec-VPN connections and cannot be used to create SSL-VPN connections.'."\n" + ."\n" + .' If the VPN gateway instance supports creating dual-tunnel IPsec-VPN connections, the system assigns two IPsec IP addresses to the VPN gateway instance for creating dual-tunnel IPsec-VPN connections.', 'type' => 'string', 'example' => '47.12.XX.XX', 'title' => ''], + 'CreateTime' => ['description' => 'The timestamp when the VPN gateway was created. Unit: milliseconds.'."\n" + ."\n" + .'The timestamp is in the Unix format, which represents the total number of milliseconds that have elapsed since January 1, 1970, 00:00:00 UTC to the time when the VPN gateway instance was created.', 'type' => 'integer', 'format' => 'int64', 'example' => '1515383700000', 'title' => ''], + 'AutoPropagate' => ['description' => 'Indicates whether the routing automatic propagation feature is enabled for the VPN gateway.'."\n" + ."\n" + .'- **true**: enabled.'."\n" + ."\n" + .'- **false**: disabled.', 'type' => 'boolean', 'example' => 'true', 'title' => ''], + 'ChargeType' => ['description' => 'The billing method of the VPN gateway.'."\n" + ."\n" + .'Valid values: **Prepay**, which indicates subscription.'."\n" + ."\n" + .'Valid values: **POSTPAY**, which indicates the pay-as-you-go billing method.'."\n" + ."\n" + .'Valid values: **POSTPAY**, which indicates the pay-as-you-go billing method.', 'type' => 'string', 'example' => '中国站示例值:Prepay,国际站示例值:POSTPAY', 'title' => ''], + 'VpnGatewayId' => ['description' => 'The ID of the VPN gateway.', 'type' => 'string', 'example' => 'vpn-bp17lofy9fd0dnvzv****', 'title' => ''], + 'Tag' => ['description' => 'The system-generated labels of the VPN gateway.'."\n" + ."\n" + .'- **VpnEnableBgp**: indicates whether the VPN gateway supports the BGP feature.'."\n" + .' - **true**: Supported.'."\n" + .' - **false**: Not supported.'."\n" + .'- **VisuallySsl**: indicates whether the VPN gateway supports viewing SSL client connection information.'."\n" + .' - **true**: Supported.'."\n" + .' - **false**: Not supported.'."\n" + .'- **PbrPriority**: indicates whether the VPN gateway supports configuring policy priority for policy-based routing.'."\n" + .' - **true**: Supported.'."\n" + .' - **false**: Not supported.'."\n" + .'- **VpnNewImage**: indicates whether the VPN gateway is a new-generation VPN gateway.'."\n" + .' - **true**: Yes.'."\n" + .' - **false**: No.'."\n" + .'- **description**: the description of the VPN gateway, which is used only for internal system purposes.'."\n" + .'- **VpnVersion**: the version number of the VPN gateway.'."\n" + .'- **IDaaSNewVersion**: indicates whether the VPN gateway supports attaching to EIAM 2.0 instances.'."\n" + .' - **true**: Supported.'."\n" + .' - **false**: Not supported.', 'type' => 'string', 'example' => '{\\"VpnEnableBgp\\":\\"true\\",\\"VisuallySsl\\":\\"true\\",\\"PbrPriority\\":\\"true\\",\\"VpnNewImage\\":\\"true\\",\\"description\\":\\"转发1.3.24\\",\\"VpnVersion\\":\\"v1.2.4\\",\\"IDaaSNewVersion\\":\\"true\\"}', 'title' => ''], + 'IpsecVpn' => ['description' => 'Indicates whether IPsec-VPN is enabled for the VPN gateway.'."\n" + ."\n" + .'- **enable**: enabled.'."\n" + ."\n" + .'- **disable**: disabled.', 'type' => 'string', 'example' => 'enable', 'title' => ''], + 'EndTime' => ['description' => 'The expiration timestamp of the VPN gateway. Unit: milliseconds.'."\n" + ."\n" + .'The timestamp is in the Unix format, which represents the total number of milliseconds that have elapsed since January 1, 1970, 00:00:00 UTC to the time when the VPN gateway instance expires.', 'type' => 'integer', 'format' => 'int64', 'example' => '1518105600000', 'title' => ''], + 'VSwitchId' => ['description' => 'The ID of the vSwitch to which the VPN gateway belongs.', 'type' => 'string', 'example' => 'vsw-bp15lbk8sgtr6r5b0****', 'title' => ''], + 'Description' => ['description' => 'The description of the VPN gateway.', 'type' => 'string', 'example' => 'test', 'title' => ''], + 'EnableBgp' => ['description' => 'The enabling status of the BGP feature for the VPN gateway.'."\n" + ."\n" + .'- **true**: enabled.'."\n" + ."\n" + .'- **false**: disabled.', 'type' => 'boolean', 'example' => 'true', 'title' => ''], + 'BusinessStatus' => ['description' => 'The billing status of the VPN gateway.'."\n" + ."\n" + .'- **Normal**: Normal.'."\n" + ."\n" + .'- **FinancialLocked**: locked due to overdue payment.', 'type' => 'string', 'example' => 'Normal', 'title' => ''], + 'SslVpn' => ['description' => 'Indicates whether SSL-VPN is enabled for the VPN gateway.'."\n" + ."\n" + .'- **enable**: enabled.'."\n" + ."\n" + .'- **disable**: disabled.', 'type' => 'string', 'example' => 'enable', 'title' => ''], + 'Name' => ['description' => 'The name of the VPN gateway.', 'type' => 'string', 'example' => 'test', 'title' => ''], + 'NetworkType' => ['description' => 'The network type of the VPN gateway.'."\n" + ."\n" + .'- **public**: public VPN gateway.'."\n" + .'- **private**: private VPN gateway.', 'type' => 'string', 'example' => 'public', 'title' => ''], + 'Tags' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Tag' => [ + 'description' => 'The list of tags bound to the VPN gateway.', + 'type' => 'array', + 'items' => [ + 'description' => 'The tag information bound to the VPN gateway.', + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => 'The tag key.', 'type' => 'string', 'example' => 'FinanceDept', 'title' => ''], + 'Value' => ['description' => 'The tag value.', 'type' => 'string', 'example' => 'FinanceJoshua', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'ReservationData' => [ + 'description' => 'The pending order data.'."\n" + ."\n" + .'>This parameter is returned only when **IncludeReservationData** is set to **true**.', + 'type' => 'object', + 'properties' => [ + 'Status' => ['description' => 'The status of the pending order.'."\n" + ."\n" + .'- **1**: indicates that the renewal or renewal with specification change order has not taken effect.'."\n" + ."\n" + .'- **2**: indicates that the temporary upgrade order has taken effect. After the restoration time is reached, the system restores the VPN gateway specification to the specification before the temporary upgrade. In this case, **ReservationIpsec**, **ReservationMaxConnections**, **ReservationSpec**, and **ReservationSsl** indicate the specifications before the temporary upgrade.', 'type' => 'string', 'example' => '1', 'title' => ''], + 'ReservationOrderType' => ['description' => 'The type of the pending order.'."\n" + ."\n" + .'- **RENEWCHANGE**: renewal with specification change.'."\n" + ."\n" + .'- **TEMP_UPGRADE**: temporary upgrade.'."\n" + ."\n" + .'- **RENEW**: renewal.', 'type' => 'string', 'example' => 'TEMP_UPGRADE', 'title' => ''], + 'ReservationIpsec' => ['description' => 'The enabling status of the IPsec-VPN feature in the pending order.'."\n" + ."\n" + .'- **enable**: enabled.'."\n" + ."\n" + .'- **disable**: disabled.', 'type' => 'string', 'example' => 'enable', 'title' => ''], + 'ReservationSpec' => ['description' => 'The bandwidth specification in the pending order. Unit: Mbit/s.', 'type' => 'string', 'example' => '5', 'title' => ''], + 'ReservationSsl' => ['description' => 'The enabling status of the SSL-VPN feature in the pending order.'."\n" + .'- **enable**: enabled.'."\n" + ."\n" + .'- **disable**: disabled.', 'type' => 'string', 'example' => 'enable', 'title' => ''], + 'ReservationMaxConnections' => ['description' => 'The maximum number of concurrent SSL-VPN connections in the pending order.', 'type' => 'integer', 'format' => 'int32', 'example' => '5', 'title' => ''], + 'ReservationEndTime' => ['description' => 'If the pending order type is **TEMP_UPGRADE** (temporary upgrade), this parameter indicates the revert time for the temporary upgrade.'."\n" + ."\n" + .'If the pending order type is **RENEWCHANGE** (Upgrade/Downgrade) or **RENEW** (renewal), this parameter indicates the effective period when the renewal or renewal with specification change takes effect.', 'type' => 'string', 'example' => '2021-07-20T16:00:00Z', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'DisasterRecoveryInternetIp' => ['description' => 'The second IP address assigned by the system to the VPN gateway instance for creating IPsec-VPN connections.'."\n" + ."\n" + .'This parameter is returned only for VPN gateway instances that support creating dual-tunnel IPsec-VPN connections.', 'type' => 'string', 'example' => '47.91.XX.XX', 'title' => ''], + 'DisasterRecoveryVSwitchId' => ['description' => 'The ID of the second vSwitch associated with the VPN gateway instance.'."\n" + ."\n" + .'This parameter is returned only for VPN gateway instances that support creating dual-tunnel IPsec-VPN connections.', 'type' => 'string', 'example' => 'vsw-p0w95ql6tmr2ludkt****', 'title' => ''], + 'SslVpnInternetIp' => ['description' => 'The IP address for SSL-VPN connections.'."\n" + ."\n" + .'This parameter is returned only when SSL-VPN is enabled for a VPN gateway instance that supports creating dual-tunnel IPsec-VPN connections and uses the public network type.', 'type' => 'string', 'title' => '', 'example' => '47.74.XX.XX'], + 'ResourceGroupId' => ['description' => 'The ID of the resource group to which the VPN gateway belongs.'."\n" + ."\n" + .'You can call the [ListResourceGroups](~~158855~~) operation to query resource group information.', 'type' => 'string', 'example' => 'rg-acfmzs372yg****', 'title' => ''], + 'EniInstanceIds' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'EniInstanceId' => [ + 'description' => 'The list of elastic network interfaces (ENIs) created by the system for the VPN gateway instance.', + 'type' => 'array', + 'items' => ['description' => 'The ENI ID.'."\n" + ."\n" + .'This parameter is returned only for VPN gateway instances that support creating dual-tunnel IPsec-VPN connections.', 'type' => 'string', 'example' => 'eni-7xvcxgmd4y2ypibn****', 'title' => ''], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'GatewayType' => ['title' => '', 'description' => 'The type of the VPN gateway. Valid values:'."\n" + .'- Traditional: traditional VPN gateway that covers IPsec and SSL features.'."\n" + .'- Enhanced.SiteToSite: enhanced site-to-cloud VPN that covers only IPsec features.', 'type' => 'string', 'example' => 'Enhanced.SiteToSite'], + ], + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], - 'description' => '', + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'IllegalParam.%s', - 'errorMessage' => 'The param of %s is illegal.', - ], - [ - 'errorCode' => 'IncorrectStatus.Qos', - 'errorMessage' => 'The status of QoS is incorrect.', - ], - [ - 'errorCode' => 'EcQoSConflict', - 'errorMessage' => 'The specified QoS is conflict with other QoS.', - ], - [ - 'errorCode' => 'EcQosRuleNotAllowV4AndV6', - 'errorMessage' => 'QoS rules do not allow IPv4 and IPv6 addresses to be mixed and updated.', - ], - [ - 'errorCode' => 'QuotaExceeded.QosRuleCount', - 'errorMessage' => 'The quota of QosRuleCount is exceeded.', - ], + ['errorCode' => 'InvalidParameter.TagKey', 'errorMessage' => 'The specified parameter TagKey is invalid.', 'description' => 'The error message returned because the specified tag key is invalid.'], + ['errorCode' => 'InvalidParameter.TagValue', 'errorMessage' => 'The specified parameter TagValue is invalid.', 'description' => 'The error message returned because the specified tag value is invalid.'], + ['errorCode' => 'Duplicated.TagKey', 'errorMessage' => 'The specified parameter TagKey is duplicated.', 'description' => 'The error message returned because the specified tag key already exists.'], + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', 'description' => ''], + ], + 403 => [ + ['errorCode' => 'Forbidden.SubUser', 'errorMessage' => 'User not authorized to operate on the specified resource as your account is created by another user.', 'description' => 'The error message returned because you are unauthorized to perform this operation on the specified resource. Acquire the required permissions and try again.'], + ['errorCode' => 'Forbidden', 'errorMessage' => 'User not authorized to operate on the specified resource.', 'description' => 'You do not have the permissions to manage the specified resource. Apply for the permissions and try again.'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"606998F0-B94D-48FE-8316-ACA81BB230DA\\",\\n \\"QosId\\": \\"qos-2giu0a6vd5x0mv****\\",\\n \\"QueueId\\": \\"qos-queue-9nyx2u7n71s2rc****\\",\\n \\"RuleId\\": \\"qos-rule-iugg0l9x27f2no****\\\\n\\"\\n}","type":"json"}]', - 'title' => 'CreateExpressConnectTrafficQosRule', - ], - 'CreateVbrHa' => [ - 'summary' => 'Creates a virtual border router (VBR) failover group.', - 'methods' => [ - 'post', - 'get', + 'staticInfo' => ['returnType' => 'synchronous'], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"PageSize\\": 10,\\n \\"RequestId\\": \\"DF11D6F6-E35A-41C3-9B20-6FC8A901FE65\\",\\n \\"PageNumber\\": 1,\\n \\"TotalCount\\": 1,\\n \\"VpnGateways\\": {\\n \\"VpnGateway\\": [\\n {\\n \\"VpnType\\": \\"Normal\\",\\n \\"Status\\": \\"active\\",\\n \\"VpcId\\": \\"vpc-bp1m3i0kn1nd4wiw9****\\",\\n \\"SslMaxConnections\\": 5,\\n \\"Spec\\": \\"5M\\",\\n \\"InternetIp\\": \\"47.12.XX.XX\\",\\n \\"CreateTime\\": 1515383700000,\\n \\"AutoPropagate\\": true,\\n \\"ChargeType\\": \\"中国站示例值:Prepay,国际站示例值:POSTPAY\\",\\n \\"VpnGatewayId\\": \\"vpn-bp17lofy9fd0dnvzv****\\",\\n \\"Tag\\": \\"{\\\\\\\\\\\\\\"VpnEnableBgp\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"true\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"VisuallySsl\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"true\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"PbrPriority\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"true\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"VpnNewImage\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"true\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"description\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"转发1.3.24\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"VpnVersion\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"v1.2.4\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"IDaaSNewVersion\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"true\\\\\\\\\\\\\\"}\\",\\n \\"IpsecVpn\\": \\"enable\\",\\n \\"EndTime\\": 1518105600000,\\n \\"VSwitchId\\": \\"vsw-bp15lbk8sgtr6r5b0****\\",\\n \\"Description\\": \\"test\\",\\n \\"EnableBgp\\": true,\\n \\"BusinessStatus\\": \\"Normal\\",\\n \\"SslVpn\\": \\"enable\\",\\n \\"Name\\": \\"test\\",\\n \\"NetworkType\\": \\"public\\",\\n \\"Tags\\": {\\n \\"Tag\\": [\\n {\\n \\"Key\\": \\"FinanceDept\\",\\n \\"Value\\": \\"FinanceJoshua\\"\\n }\\n ]\\n },\\n \\"ReservationData\\": {\\n \\"Status\\": \\"1\\",\\n \\"ReservationOrderType\\": \\"TEMP_UPGRADE\\",\\n \\"ReservationIpsec\\": \\"enable\\",\\n \\"ReservationSpec\\": \\"5\\",\\n \\"ReservationSsl\\": \\"enable\\",\\n \\"ReservationMaxConnections\\": 5,\\n \\"ReservationEndTime\\": \\"2021-07-20T16:00:00Z\\"\\n },\\n \\"DisasterRecoveryInternetIp\\": \\"47.91.XX.XX\\",\\n \\"DisasterRecoveryVSwitchId\\": \\"vsw-p0w95ql6tmr2ludkt****\\",\\n \\"SslVpnInternetIp\\": \\"47.74.XX.XX\\",\\n \\"ResourceGroupId\\": \\"rg-acfmzs372yg****\\",\\n \\"EniInstanceIds\\": {\\n \\"EniInstanceId\\": [\\n \\"eni-7xvcxgmd4y2ypibn****\\"\\n ]\\n },\\n \\"GatewayType\\": \\"Enhanced.SiteToSite\\"\\n }\\n ]\\n }\\n}","type":"json"}]', + 'title' => 'Query created VPN gateways', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2024-05-06T02:21:47.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2023-10-19T07:04:00.000Z', 'description' => 'Request parameters changed, Response parameters changed'], + ['createdAt' => '2023-06-30T12:44:22.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2023-05-04T09:18:35.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2023-01-09T10:06:05.000Z', 'description' => 'Error codes changed, Response parameters changed'], + ['createdAt' => '2022-12-27T03:28:33.000Z', 'description' => 'Error codes changed'], ], - 'schemes' => [ - 'http', - 'https', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '600', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DescribeVpnGateways'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], ], - 'security' => [ + 'ramActions' => [ + [ + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'vpc:DescribeVpnGateways', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'conditional', 'product' => 'VPC', 'resourceType' => 'VpnGateway', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vpngateway/*'], + ['validationType' => 'conditional', 'product' => 'VPC', 'resourceType' => 'VpnGateway', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vpngateway/{#VpnInstanceId}'], + ], + ], + ], + ], + ], + 'DescribeVpnPbrRouteEntries' => [ + 'summary' => 'Queries policy-based routes configured for a VPN gateway.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'read', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'create', - 'riskType' => 'none', - 'chargeType' => 'free', - ], + 'systemTags' => ['operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ - 'name' => 'Description', - 'in' => 'query', - 'schema' => [ - 'description' => 'The description of the VBR failover group.'."\n" - ."\n" - .'The description must be 2 to 256 characters in length. It must start with a letter but cannot start with `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'VBRHa', - ], - ], - [ - 'name' => 'Name', - 'in' => 'query', - 'schema' => [ - 'description' => 'The name of the VBR failover group.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'VBRHa', - ], - ], - [ - 'name' => 'ClientToken', - 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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.'."\n" - ."\n" - .'> 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.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'CBCE910E-D396-4944-8****', - ], - ], - [ - 'name' => 'DryRun', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values: Valid Values:'."\n" - ."\n" - .'* **true**: performs only a dry run. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and instance status. If the request fails the dry run, an error message is returned. If the request passes the dry run, `DRYRUN.SUCCESS` is returned.'."\n" - .'* **false** (default): performs a dry run and performs the actual request. If the request passes the dry run, the operation is performed.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['description' => 'The region ID of the VPN gateway.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'eu-central-1', 'title' => ''], ], [ - 'name' => 'VbrId', + 'name' => 'VpnGatewayId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the VBR.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'vbr-bp1jcg5cmxjbl9xgc****', - ], + 'schema' => ['description' => 'The ID of the VPN gateway.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'vpn-bp1a3kqjiiq9legfx****', 'title' => ''], ], [ - 'name' => 'PeerVbrId', + 'name' => 'PageNumber', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the other VBR in the VBR failover group.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'vbr-bp12mw1f8k3jgygk9****', - ], + 'schema' => ['description' => 'The page number. Default value: **1**.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1', 'default' => '1', 'title' => ''], ], [ - 'name' => 'RegionId', + 'name' => 'PageSize', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region in which the VBR is deployed.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The number of entries per page. Maximum value: **50**. Default value: **10**.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '10', 'default' => '10', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'description' => 'The response parameters.'."\n", 'type' => 'object', 'properties' => [ - 'VbrHaId' => [ - 'description' => 'The ID of the VBR failover group.'."\n", - 'type' => 'string', - 'example' => 'vbrha-sa1sxheuxtd98****', - ], - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '4EC47282-1B74-4534-BD0E-403F3EE64CAF', + 'PageSize' => ['description' => 'The number of entries per page.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '10', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '5BE01CD7-5A50-472D-AC14-CA181C5C03BE', 'title' => ''], + 'PageNumber' => ['description' => 'The page number.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''], + 'TotalCount' => ['description' => 'The number of entries returned.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''], + 'VpnPbrRouteEntries' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'VpnPbrRouteEntry' => [ + 'description' => 'The list of policy-based routes.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'NextHop' => ['description' => 'The next hop of the policy-based route.'."\n", 'type' => 'string', 'example' => 'vco-bp15oes1py4i66rmd****', 'title' => ''], + 'Weight' => ['description' => 'The weight of the policy-based route.'."\n" + ."\n" + .'For a VPN gateway that supports IPsec-VPN connections in single-tunnel mode, the weight of a policy-based route indicates the priority of the route.'."\n" + ."\n" + .'* **100**: a high priority If multiple policy-based routes with the same source CIDR block and destination CIDR block exist, the IPsec-VPN connection associated with the policy-based route is the active connection.'."\n" + .'* **0**: a low priority If multiple policy-based routes with the same source CIDR block and destination CIDR block exist, the IPsec-VPN connection associated with the policy-based route is the standby connection.'."\n" + ."\n" + .'> For a VPN gateway that does not support IPsec-VPN connections in single-tunnel mode, this parameter does not take effect.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '100', 'title' => ''], + 'RouteDest' => ['description' => 'The destination CIDR block of the policy-based route.'."\n", 'type' => 'string', 'example' => '10.0.0.0/24', 'title' => ''], + 'State' => ['description' => 'The status of the policy-based route. Valid values:'."\n" + ."\n" + .'* **published**: advertised to the VPC route table.'."\n" + .'* **normal**: not advertised to the VPC route table.'."\n", 'type' => 'string', 'example' => 'published', 'title' => ''], + 'CreateTime' => ['description' => 'The time when the policy-based route was created. Unit: millisecond.'."\n" + ."\n" + .'This value is a UNIX timestamp representing the number of milliseconds that have elapsed since January 1, 1970, 00:00:00 UTC.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '1492747187000', 'title' => ''], + 'VpnInstanceId' => ['description' => 'The ID of the VPN gateway.'."\n", 'type' => 'string', 'example' => 'vpn-bp1a3kqjiiq9legfx****', 'title' => ''], + 'RouteSource' => ['description' => 'The source CIDR block of the policy-based route.'."\n", 'type' => 'string', 'example' => '192.168.0.0/24', 'title' => ''], + 'Priority' => ['description' => 'The priority of the policy-based route.'."\n" + ."\n" + .'A smaller value indicates a higher priority.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '10', 'title' => ''], + 'NextHopTunnelId' => ['description' => 'The ID of the tunnel associated with the next hop of the policy-based route.'."\n" + ."\n" + .'This parameter is returned only if the VPN gateway supports IPsec-VPN connections in dual-tunnel mode.'."\n", 'type' => 'string', 'example' => 'tun-opsqc4d97wni2****', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], - 'description' => '', + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'OperationFailed.VbrCenNotConsistent', - 'errorMessage' => 'The VBR and the peer VBR are attached to different CENs.', - ], - [ - 'errorCode' => 'OperationFailed.VbrAliUidNotConsistent', - 'errorMessage' => 'The VBR and the peer VBR belong to different AliUids.', - ], - [ - 'errorCode' => 'OperationFailed.VbrAccessDeviceSame', - 'errorMessage' => 'The VBR and the peer VBR are in the same device.', - ], - [ - 'errorCode' => 'OperationFailed.VbrBandWidthExceed', - 'errorMessage' => 'The VBR bandwidth exceeds the limit.', - ], - [ - 'errorCode' => 'OperationFailed.VbrInUsedByOtherHa', - 'errorMessage' => 'The VBR is used by another VBR HA.', - ], - [ - 'errorCode' => 'OperationFailed.VbrBgpPeerNotEnableBfd', - 'errorMessage' => 'The VBR BGP has not enabled BFD.', - ], - [ - 'errorCode' => 'OperationFailed.VbrCenNotRelation', - 'errorMessage' => 'The VBR is not attached to any CEN.', - ], - [ - 'errorCode' => 'OperationFailed.BgpGroupLocalAsnMustSameEachOther', - 'errorMessage' => 'VBR bgpGroup local asn must same each other.', - ], - [ - 'errorCode' => 'IllegalParam.BgpGroupLocalAsn', - 'errorMessage' => 'Vbr bgp group local asn must same with ecr asn.', - ], + ['errorCode' => 'InvalidVpnInstanceId.NotFound', 'errorMessage' => 'The specified VPN was not found.', 'description' => ''], + ['errorCode' => 'InvalidVpnGatewayInstanceId.NotFound', 'errorMessage' => 'The specified vpn gateway instance id does not exist.', 'description' => 'The specified VPN gateway does not exist. Check whether the specified VPN gateway is valid.'], ], - 404 => [ - [ - 'errorCode' => 'ResourceNotFound.Vbr', - 'errorMessage' => 'The VBR resource is not found.', - ], + 403 => [ + ['errorCode' => 'Forbbiden.SubUser', 'errorMessage' => 'User not authorized to operate on the specified resource as your account is created by another user.', 'description' => ''], + ['errorCode' => 'Forbidden', 'errorMessage' => 'User not authorized to operate on the specified resource.', 'description' => 'You do not have the permissions to manage the specified resource. Apply for the permissions and try again.'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"VbrHaId\\": \\"vbrha-sa1sxheuxtd98****\\",\\n \\"RequestId\\": \\"4EC47282-1B74-4534-BD0E-403F3EE64CAF\\"\\n}","errorExample":""},{"type":"xml","example":"\\n\\n vbrha-sa1sxheuxtd98****\\n 4EC47282-1B74-4534-BD0E-403F3EE64CAF\\n","errorExample":""}]', - 'title' => 'CreateVbrHa', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'DescribeVpnPbrRouteEntries', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DeleteVbrHa' => [ - 'summary' => 'Deletes a virtual border router (VBR) failover group.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [ + ['createdAt' => '2024-01-04T07:17:10.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-10-19T08:26:50.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-06-13T09:30:08.000Z', 'description' => 'Response parameters changed'], ], + 'ramActions' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"PageSize\\": 10,\\n \\"RequestId\\": \\"5BE01CD7-5A50-472D-AC14-CA181C5C03BE\\",\\n \\"PageNumber\\": 1,\\n \\"TotalCount\\": 1,\\n \\"VpnPbrRouteEntries\\": {\\n \\"VpnPbrRouteEntry\\": [\\n {\\n \\"NextHop\\": \\"vco-bp15oes1py4i66rmd****\\",\\n \\"Weight\\": 100,\\n \\"RouteDest\\": \\"10.0.0.0/24\\",\\n \\"State\\": \\"published\\",\\n \\"CreateTime\\": 1492747187000,\\n \\"VpnInstanceId\\": \\"vpn-bp1a3kqjiiq9legfx****\\",\\n \\"RouteSource\\": \\"192.168.0.0/24\\",\\n \\"Priority\\": 10,\\n \\"NextHopTunnelId\\": \\"tun-opsqc4d97wni2****\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 10\\n 5BE01CD7-5A50-472D-AC14-CA181C5C03BE\\t\\n 1\\n 1\\n \\n vco-bp15oes1py4i66rmd****\\t\\n 0\\n 10.0.0.0/24\\n published\\n 1492747187000\\n vpn-bp1a3kqjiiq9legfx****\\n 192.168.0.0/24\\n 10\\n \\n","errorExample":""}]', + ], + 'DescribeVpnRouteEntries' => [ + 'summary' => 'Queries the destination route and BGP route information of a VPN gateway instance by calling the DescribeVpnRouteEntries operation.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'read', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'delete', - 'riskType' => 'none', - 'chargeType' => 'free', - ], + 'systemTags' => ['operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ - 'name' => 'ClientToken', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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.'."\n" - ."\n" - .'> 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.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'CBCE910E-D396-4944-8****', - ], + 'schema' => ['description' => 'The region ID of the VPN gateway instance.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the region ID.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'InstanceId', + 'name' => 'VpnGatewayId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the VBR failover group.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'vbrha-sa1******', - ], + 'schema' => ['description' => 'The instance ID of the VPN gateway.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'vpn-bp1cmw7jh1nfe43m9****', 'title' => ''], ], [ - 'name' => 'RegionId', + 'name' => 'PageNumber', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region in which the VBR is deployed.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The page number of the list. Default value: **1**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'default' => '1', 'example' => '1', 'title' => ''], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => ['description' => 'The number of entries per page in a paged query. Maximum value: **50**. Default value: **10**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'default' => '10', 'example' => '10', 'title' => ''], + ], + [ + 'name' => 'RouteEntryType', + 'in' => 'query', + 'schema' => ['description' => 'The destination type of the routing entry. Valid values:'."\n" + ."\n" + .'- **custom** (default): queries the destination routes of the VPN gateway instance.'."\n" + .'- **bgp**: queries the BGP routes of the VPN gateway instance.', 'type' => 'string', 'required' => false, 'example' => 'custom', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'description' => 'The response parameters.', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '4EC47282-1B74-4534-BD0E-403F3EE64CAF', + 'PageSize' => ['description' => 'The number of entries per page in a paging query.', 'type' => 'integer', 'format' => 'int32', 'example' => '10', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'BF3995A6-FA4F-4C74-B90F-89ECF4BFF4D5', 'title' => ''], + 'PageNumber' => ['description' => 'The page number of the list.', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''], + 'TotalCount' => ['description' => 'The total number of entries in the list.', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''], + 'VpnRouteEntries' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'VpnRouteEntry' => [ + 'description' => 'The list of route entries.', + 'type' => 'array', + 'items' => [ + 'description' => 'The details of the route entry.', + 'type' => 'object', + 'properties' => [ + 'RouteEntryType' => ['description' => 'The destination type of the routing entry.'."\n" + ."\n" + .'- **custom**: a destination route of the VPN gateway instance.'."\n" + .'- **bgp**: a BGP route of the VPN gateway instance.', 'type' => 'string', 'example' => 'custom', 'title' => ''], + 'NextHop' => ['description' => 'The next hop of the route entry.', 'type' => 'string', 'example' => 'vco-bp1tui07ob10fmuro****', 'title' => ''], + 'Weight' => ['description' => 'The weight of the destination route.'."\n" + ."\n" + .'- For VPN gateway instances that support dual-tunnel IPsec-VPN connections, the weight of the destination route defaults to **100** and has no practical significance.'."\n" + .'- For VPN gateway instances that support single-tunnel IPsec-VPN connections, the weight represents the priority of the destination route:'."\n" + .' - **100**: high priority. When multiple destination routes with the same destination CIDR block exist, the IPsec-VPN connection associated with this destination route serves as the active link.'."\n" + .' - **0**: low priority. When multiple destination routes with the same destination CIDR block exist, the IPsec-VPN connection associated with this destination route serves as the standby link.', 'type' => 'integer', 'format' => 'int32', 'example' => '100', 'title' => ''], + 'RouteDest' => ['description' => 'The destination CIDR block of the route entry.', 'type' => 'string', 'example' => '10.0.0.0/24', 'title' => ''], + 'AsPath' => ['description' => 'The AS path that the route entry passes through.', 'type' => 'string', 'example' => '65501,65001,60011', 'title' => ''], + 'State' => ['description' => 'The status of the route entry. Valid values:'."\n" + ."\n" + .'- **published**: published.'."\n" + .'- **normal**: not published.', 'type' => 'string', 'example' => 'normal', 'title' => ''], + 'CreateTime' => ['description' => 'The timestamp when the route entry was created.'."\n" + ."\n" + .'The timestamp is in UNIX format and represents the total number of milliseconds that have elapsed since January 1, 1970, 00:00:00 UTC.', 'type' => 'integer', 'format' => 'int64', 'example' => '1563874074000', 'title' => ''], + 'Community' => ['description' => 'The Community attribute value of the route entry.', 'type' => 'string', 'example' => '65001:1000,65501:2000', 'title' => ''], + 'Source' => ['description' => 'The source of the BGP route.'."\n" + ."\n" + .'- **CLOUD**: The route is propagated from an Alibaba Cloud service associated with the VPN gateway.'."\n" + .'- **VPN_BGP**: The route is learned through the BGP routing protocol of the VPN gateway, such as routes learned from an on-premises data center through the BGP routing protocol.', 'type' => 'string', 'example' => 'CLOUD', 'title' => ''], + 'VpnInstanceId' => ['description' => 'The VPN gateway instance ID.', 'type' => 'string', 'example' => 'vpn-bp1cmw7jh1nfe43m9****', 'title' => ''], + 'NextHopTunnelId' => ['description' => 'The tunnel ID associated with the next hop of the route entry.'."\n" + ."\n" + .'> This parameter is returned only for VPN gateway instances that support dual-tunnel IPsec-VPN connections.', 'type' => 'string', 'example' => 'tun-36cfgpwjn58axj****', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'VpnRouteCounts' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'VpnRouteCount' => [ + 'description' => 'The route statistics of the VPN gateway instance in dual-tunnel mode.'."\n" + ."\n" + .'> This information is returned only for VPN gateway instances that support dual-tunnel IPsec-VPN connections.', + 'type' => 'array', + 'items' => [ + 'description' => 'The statistics of the routes.', + 'type' => 'object', + 'properties' => [ + 'RouteEntryType' => ['description' => 'The type of the route entry.'."\n" + ."\n" + .'- **custom**: destination route entry.'."\n" + .'- **bgp**: BGP route entry.', 'type' => 'string', 'example' => 'bgp', 'title' => ''], + 'RouteCount' => ['description' => 'The number of route entries.', 'type' => 'integer', 'format' => 'int32', 'example' => '3', 'title' => ''], + 'Source' => ['description' => 'The source of the BGP route.'."\n" + ."\n" + .'- **CLOUD**: The route is propagated from an Alibaba Cloud service associated with the VPN gateway.'."\n" + .'- **VPN_BGP**: The route is learned through the BGP routing protocol of the VPN gateway, such as routes learned from an on-premises data center through the BGP routing protocol.', 'type' => 'string', 'example' => 'VPN_BGP', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], - 'description' => '', + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'IllegalParam.%s', - 'errorMessage' => 'The param of %s is illegal.', - ], + ['errorCode' => 'IllegalParam.RouteEntryType', 'errorMessage' => 'The specified "RouteEntryType" is invalid.', 'description' => ''], + ['errorCode' => 'InvalidVpnInstanceId.NotFound', 'errorMessage' => 'The specified VPN was not found.', 'description' => ''], + ['errorCode' => 'InvalidVpnGatewayInstanceId.NotFound', 'errorMessage' => 'The specified vpn gateway instance id does not exist.', 'description' => 'The specified VPN gateway does not exist. Check whether the specified VPN gateway is valid.'], ], - 404 => [ - [ - 'errorCode' => 'ResourceNotFound.VbrHa', - 'errorMessage' => 'The VBR HA resource is not found.', - ], + 403 => [ + ['errorCode' => 'Forbbiden.SubUser', 'errorMessage' => 'User not authorized to operate on the specified resource as your account is created by another user.', 'description' => ''], + ['errorCode' => 'Forbidden', 'errorMessage' => 'User not authorized to operate on the specified resource.', 'description' => 'You do not have the permissions to manage the specified resource. Apply for the permissions and try again.'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'staticInfo' => ['returnType' => 'synchronous'], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"4EC47282-1B74-4534-BD0E-403F3EE64CAF\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 4EC47282-1B74-4534-BD0E-403F3EE64CAF\\n","errorExample":""}]', - 'title' => 'DeleteVbrHa', + 'title' => 'Query destination routes and BGP routes', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeVbrHa' => [ - 'summary' => 'Queries virtual border router (VBR) failover groups.', - 'methods' => [ - 'post', - 'get', + 'changeSet' => [ + ['createdAt' => '2024-10-24T11:19:57.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2024-01-04T07:17:10.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-10-19T08:26:51.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-06-13T09:30:08.000Z', 'description' => 'Response parameters changed'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '600', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DescribeVpnRouteEntries'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'vpc:DescribeVpnRouteEntries', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VpnGateway', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vpngateway/{#VpnGatewayId}'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"PageSize\\": 10,\\n \\"RequestId\\": \\"BF3995A6-FA4F-4C74-B90F-89ECF4BFF4D5\\",\\n \\"PageNumber\\": 1,\\n \\"TotalCount\\": 1,\\n \\"VpnRouteEntries\\": {\\n \\"VpnRouteEntry\\": [\\n {\\n \\"RouteEntryType\\": \\"custom\\",\\n \\"NextHop\\": \\"vco-bp1tui07ob10fmuro****\\",\\n \\"Weight\\": 100,\\n \\"RouteDest\\": \\"10.0.0.0/24\\",\\n \\"AsPath\\": \\"65501,65001,60011\\",\\n \\"State\\": \\"normal\\",\\n \\"CreateTime\\": 1563874074000,\\n \\"Community\\": \\"65001:1000,65501:2000\\",\\n \\"Source\\": \\"CLOUD\\",\\n \\"VpnInstanceId\\": \\"vpn-bp1cmw7jh1nfe43m9****\\",\\n \\"NextHopTunnelId\\": \\"tun-36cfgpwjn58axj****\\"\\n }\\n ]\\n },\\n \\"VpnRouteCounts\\": {\\n \\"VpnRouteCount\\": [\\n {\\n \\"RouteEntryType\\": \\"bgp\\",\\n \\"RouteCount\\": 3,\\n \\"Source\\": \\"VPN_BGP\\"\\n }\\n ]\\n }\\n}","type":"json"}]', + ], + 'DescribeVpnSslServerLogs' => [ + 'summary' => 'Queries the log of an SSL server.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -47835,71 +38481,143 @@ ], 'operationType' => 'read', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'get', - 'riskType' => 'none', - 'chargeType' => 'free', - ], + 'systemTags' => ['operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ - 'name' => 'ClientToken', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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.'."\n" - ."\n" - .'> 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.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'CBCE910E-D396-4944-8****', - ], + 'schema' => ['description' => 'The ID of the region where the SSL server is created. You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'DryRun', + 'name' => 'VpnSslServerId', 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid Values:'."\n" - ."\n" - .'* **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, `DRYRUN.SUCCESS` is returned.'."\n" - .'* **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.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['description' => 'The ID of the SSL server.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'vss-bp155e9yclsg1xgq4****', 'title' => ''], ], [ - 'name' => 'VbrId', + 'name' => 'SslVpnClientCertId', 'in' => 'query', - 'schema' => [ - 'description' => 'The VBR ID.'."\n", - 'type' => 'string', - 'required' => false, - 'docRequired' => false, - 'example' => 'vbr-bp1jcg5cmxjbl9xgc****', - ], + 'schema' => ['description' => 'The ID of the SSL client certificate.'."\n", 'type' => 'string', 'required' => false, 'example' => 'vsc-m5euof6s5jy8vs5kd****', 'title' => ''], ], [ - 'name' => 'VbrHaId', + 'name' => 'From', + 'in' => 'query', + 'schema' => ['description' => 'The beginning of the time range to query. The value must be a unix timestamp. For example, 1600738962 specifies 09:42:42 (UTC+8) on September 22, 2020.'."\n" + ."\n" + .'> If you specify **From**, you must also specify **To** or **MinutePeriod**.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1600738962', 'title' => ''], + ], + [ + 'name' => 'To', + 'in' => 'query', + 'schema' => ['description' => 'The end of the time range to query. The value must be a unix timestamp. For example, 1600738962 specifies 09:42:42 (UTC+8) on September 22, 2020.'."\n" + ."\n" + .'> If you specify **To**, you must also specify **From** or **MinutePeriod**.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1600738962', 'title' => ''], + ], + [ + 'name' => 'MinutePeriod', + 'in' => 'query', + 'schema' => ['description' => 'The interval at which log data is queried. Unit: minutes.'."\n" + ."\n" + .'> If both **From** and **To** are not specified, you must specify **MinutePeriod**.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '10', 'title' => ''], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => ['description' => 'The number of the page to return. Default value: **1**.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1', 'default' => '1', 'title' => ''], + ], + [ + 'name' => 'PageSize', 'in' => 'query', + 'schema' => ['description' => 'The number of entries to return on each page. Maximum value: **50**. Default value: **10**.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '10', 'default' => '10', 'title' => ''], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => 'The ID of the VBR failover group.'."\n", - 'type' => 'string', - 'required' => false, - 'docRequired' => false, - 'example' => 'vbrha-sa1sxheuxtd98****', + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'PageSize' => ['description' => 'The number of entries returned per page.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '10', 'title' => ''], + 'PageNumber' => ['description' => 'The page number of the returned page.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''], + 'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => 'DEDAC5B1-9292-5BF7-BDDF-61BA58CFB2FB', 'title' => ''], + 'Count' => ['description' => 'The number of log entries.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '10', 'title' => ''], + 'IsCompleted' => ['description' => 'Indicates whether the log is accurate. Valid values:'."\n" + ."\n" + .'* **true**: accurate'."\n" + .'* **false**: inaccurate'."\n", 'type' => 'boolean', 'example' => 'true', 'title' => ''], + 'Data' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Logs' => [ + 'description' => 'Log information list.', + 'type' => 'array', + 'items' => ['description' => 'An array of strings.'."\n" + ."\n" + .'Each item in the array is a log entry.', 'type' => 'string', 'example' => '"Logs": [ "Mon Feb 28 14:05:51 2022 us=421630 MULTI: multi_create_instance called", "Mon Feb 28 14:05:51 2022 us=421744 112.XX.XX.128:42522 Re-using SSL/TLS context", "Mon Feb 28 14:05:51 2022 us=421834 112.XX.XX.128:42522 Control Channel MTU par****", "Mon Feb 28 14:05:51 2022 us=421850 112.XX.XX.128:42522 Data Channel MTU par****", "Mon Feb 28 14:05:51 2022 us=421901 112.XX.XX.128:42522 Local Option****", "Mon Feb 28 14:05:51 2022 us=421917 112.XX.XX.128:42522 Expected Remote Option****", "Mon Feb 28 14:05:51 2022 us=421951 112.XX.XX.128:42522 TLS: Initial packet from****", "Mon Feb 28 14:05:51 2022 us=581413 112.XX.XX.128:42522 VERIFY OK****", "Mon Feb 28 14:05:51 2022 us=581662 112.XX.XX.128:42522 VERIFY OK****", "Mon Feb 28 14:05:51 2022 us=621071 112.XX.XX.128:42522 peer info****" ]', 'title' => ''], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + ], + 'title' => '', + 'example' => '', ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InvalidSslVpnClientCertId.NotFound', 'errorMessage' => 'The specified SSL VPN client id does not exist.', 'description' => ''], + ['errorCode' => 'ParamExclusive.SslVpnServerIdAndSslVpnClientCertId', 'errorMessage' => 'The specified SSL VPN client does not belong to the specified SSL VPN server.', 'description' => ''], + ], + 403 => [ + ['errorCode' => 'Forbbiden.SubUser', 'errorMessage' => 'User not authorized to operate on the specified resource as your account is created by another user.', 'description' => ''], + ['errorCode' => 'Forbidden', 'errorMessage' => 'User not authorized to operate on the specified resource.', 'description' => 'You do not have the permissions to manage the specified resource. Apply for the permissions and try again.'], + ], + [ + ['errorCode' => 'InvalidSslVpnServerId.NotFound', 'errorMessage' => 'The specified SSL VPN server id does not exist.', 'description' => ''], + ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'DescribeVpnSslServerLogs', + 'changeSet' => [], + 'ramActions' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"PageSize\\": 10,\\n \\"PageNumber\\": 1,\\n \\"RequestId\\": \\"DEDAC5B1-9292-5BF7-BDDF-61BA58CFB2FB\\",\\n \\"Count\\": 10,\\n \\"IsCompleted\\": true,\\n \\"Data\\": {\\n \\"Logs\\": [\\n \\"\\\\\\"Logs\\\\\\": [ \\\\\\"Mon Feb 28 14:05:51 2022 us=421630 MULTI: multi_create_instance called\\\\\\", \\\\\\"Mon Feb 28 14:05:51 2022 us=421744 112.XX.XX.128:42522 Re-using SSL/TLS context\\\\\\", \\\\\\"Mon Feb 28 14:05:51 2022 us=421834 112.XX.XX.128:42522 Control Channel MTU par****\\\\\\", \\\\\\"Mon Feb 28 14:05:51 2022 us=421850 112.XX.XX.128:42522 Data Channel MTU par****\\\\\\", \\\\\\"Mon Feb 28 14:05:51 2022 us=421901 112.XX.XX.128:42522 Local Option****\\\\\\", \\\\\\"Mon Feb 28 14:05:51 2022 us=421917 112.XX.XX.128:42522 Expected Remote Option****\\\\\\", \\\\\\"Mon Feb 28 14:05:51 2022 us=421951 112.XX.XX.128:42522 TLS: Initial packet from****\\\\\\", \\\\\\"Mon Feb 28 14:05:51 2022 us=581413 112.XX.XX.128:42522 VERIFY OK****\\\\\\", \\\\\\"Mon Feb 28 14:05:51 2022 us=581662 112.XX.XX.128:42522 VERIFY OK****\\\\\\", \\\\\\"Mon Feb 28 14:05:51 2022 us=621071 112.XX.XX.128:42522 peer info****\\\\\\" ]\\"\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 10\\n DEDAC5B1-9292-5BF7-BDDF-61BA58CFB2FB\\n 1\\n true\\n \\n Mon Feb 28 14:05:51 2022 us=421630 MULTI: multi_create_instance called\\n Mon Feb 28 14:05:51 2022 us=421744 112.XX.XX.128:42522 Re-using SSL/TLS context\\n Mon Feb 28 14:05:51 2022 us=421834 112.XX.XX.128:42522 Control Channel MTU par****\\n Mon Feb 28 14:05:51 2022 us=421850 112.XX.XX.128:42522 Data Channel MTU par****\\n Mon Feb 28 14:05:51 2022 us=421901 112.XX.XX.128:42522 Local Option****\\n Mon Feb 28 14:05:51 2022 us=421917 112.XX.XX.128:42522 Expected Remote Option****\\n Mon Feb 28 14:05:51 2022 us=421951 112.XX.XX.128:42522 TLS: Initial packet from****\\n Mon Feb 28 14:05:51 2022 us=581413 112.XX.XX.128:42522 VERIFY OK****\\n Mon Feb 28 14:05:51 2022 us=581662 112.XX.XX.128:42522 VERIFY OK****\\n Mon Feb 28 14:05:51 2022 us=621071 112.XX.XX.128:42522 peer info****\\n \\n 10\\n","errorExample":""}]', + ], + 'DescribeZones' => [ + 'summary' => 'Queries zones in a region.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free'], + 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region in which the VBR is deployed.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-shanghai', - ], + 'schema' => ['description' => 'The region ID of the zone. You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], + ], + [ + 'name' => 'ZoneType', + 'in' => 'query', + 'schema' => ['description' => 'The zone type. Default value: **AvailabilityZone**.'."\n", 'type' => 'string', 'required' => false, 'example' => 'AvailabilityZone', 'title' => ''], + ], + [ + 'name' => 'AcceptLanguage', + 'in' => 'query', + 'schema' => ['description' => 'The language used in the **LocalName** parameter. Valid values:'."\n" + ."\n" + .'* **zh-cn**: Chinese'."\n" + .'* **en-us**: English'."\n" + .'* **ja**: Japanese'."\n", 'type' => 'string', 'required' => false, 'example' => 'zh-cn', 'title' => ''], ], ], 'responses' => [ @@ -47907,1049 +38625,490 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'CreationTime' => [ - 'description' => 'The time when the VBR was created.'."\n", - 'type' => 'string', - 'example' => '2021-06-08T12:20:55', - ], - 'Status' => [ - 'description' => 'The status of the VBR failover group.'."\n" - ."\n" - .'* **Creating**'."\n" - .'* **Active**'."\n", - 'type' => 'string', - 'example' => 'Active', - ], - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '4EC47282-1B74-4534-BD0E-403F3EE64CAF', - ], - 'Description' => [ - 'description' => 'The description of the VBR failover group.'."\n" - ."\n" - .'The description must be 2 to 256 characters in length. It must start with a letter but cannot start with `http://` or `https://`.'."\n", - 'type' => 'string', - 'example' => 'desc', - ], - 'VbrHaId' => [ - 'description' => 'The ID of the VBR failover group.'."\n", - 'type' => 'string', - 'example' => 'vbrha-sa1sxheuxtd98****', - ], - 'PeerVbrId' => [ - 'description' => 'The ID of the other VBR in the VBR failover group.'."\n", - 'type' => 'string', - 'example' => 'vbr-bp12mw1f8k3jgygk9****', - ], - 'Name' => [ - 'description' => 'The name of the VBR failover group.'."\n", - 'type' => 'string', - 'example' => 'VBRHa', - ], - 'VbrId' => [ - 'description' => 'The VBR ID.'."\n", - 'type' => 'string', - 'example' => 'vbr-bp1jcg5cmxjbl9xgc****', - ], - 'RegionId' => [ - 'description' => 'The ID of the region in which the VBR is deployed.'."\n", - 'type' => 'string', - 'example' => 'cn-hangzhou', + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '6FEA0CF3-D3B9-43E5-A304-D217037876A8', 'title' => ''], + 'Zones' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Zone' => [ + 'description' => 'The zone list.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'ZoneId' => ['description' => 'The zone ID.'."\n", 'type' => 'string', 'example' => 'cn-hangzhou-b', 'title' => ''], + 'LocalName' => ['description' => 'The zone name.'."\n", 'type' => 'string', 'example' => '华东 1 可用区 B', 'title' => ''], + 'ZoneType' => ['description' => 'The zone type. Default value: **AvailabilityZone**.'."\n", 'type' => 'string', 'example' => 'AvailabilityZone', 'title' => ''], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], 'description' => '', + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'MissingParam.VbrHaIdOrVbrId', - 'errorMessage' => 'Missing parameter VBR switch group instance ID or VBR instance ID.', - ], - ], - 404 => [ - [ - 'errorCode' => 'ResourceNotFound.VbrHa', - 'errorMessage' => 'The VBR HA resource is not found.', - ], + ['errorCode' => 'InvalidRegionId.NotFound', 'errorMessage' => 'The RegionId provided does not exist in our records.', 'description' => ''], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"CreationTime\\": \\"2021-06-08T12:20:55\\",\\n \\"Status\\": \\"Active\\",\\n \\"RequestId\\": \\"4EC47282-1B74-4534-BD0E-403F3EE64CAF\\",\\n \\"Description\\": \\"desc\\",\\n \\"VbrHaId\\": \\"vbrha-sa1sxheuxtd98****\\",\\n \\"PeerVbrId\\": \\"vbr-bp12mw1f8k3jgygk9****\\",\\n \\"Name\\": \\"VBRHa\\",\\n \\"VbrId\\": \\"vbr-bp1jcg5cmxjbl9xgc****\\",\\n \\"RegionId\\": \\"cn-hangzhou\\"\\n}","errorExample":""},{"type":"xml","example":"\\n\\n Active\\n vbrha-sa1sxheuxtd98****\\n desc\\n 4EC47282-1B74-4534-BD0E-403F3EE64CAF\\n 2021-06-08T12:20:55\\n vbr-bp1jcg5cmxjbl9xgc****\\n cn-hangzhou\\n vbr-bp12mw1f8k3jgygk9****\\n VBRHa\\n","errorExample":""}]', - 'title' => 'DescribeVbrHa', + 'title' => 'DescribeZones', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"6FEA0CF3-D3B9-43E5-A304-D217037876A8\\",\\n \\"Zones\\": {\\n \\"Zone\\": [\\n {\\n \\"ZoneId\\": \\"cn-hangzhou-b\\",\\n \\"LocalName\\": \\"华东 1 可用区 B\\",\\n \\"ZoneType\\": \\"AvailabilityZone\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"","errorExample":""}]', ], - 'AssociatePhysicalConnectionToVirtualBorderRouter' => [ - 'summary' => 'Associates a virtual border router (VBR) with a specified Express Connect circuit.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DetachDhcpOptionsSetFromVpc' => [ + 'summary' => 'Disassociates a DHCP options set from a virtual private cloud (VPC).', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'write', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'update', - 'riskType' => 'none', - 'chargeType' => 'free', - ], + 'systemTags' => ['operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the Express Connect circuit.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The region to which the DHCP options set belongs. You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'VbrId', + 'name' => 'DhcpOptionsSetId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the VBR.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'vbr-bp186tnz6rijyhj******', - ], + 'schema' => ['description' => 'The ID of the DHCP options set to be disassociated from a VPC.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'dopt-o6w0df4epg9zo8isy****', 'title' => ''], ], [ - 'name' => 'PhysicalConnectionId', + 'name' => 'VpcId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the Express Connect circuit.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'pc-bp1qrb3044eqixog****', - ], + 'schema' => ['description' => 'The ID of the VPC.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'vpc-dfdgrgthhy****', 'title' => ''], ], [ - 'name' => 'VlanId', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The VLAN ID of the VBR. Valid values: **0 to 2999**.'."\n" - ."\n" - .'> Only the Express Connect circuit owner can specify this parameter. Two VBRs associated with the same Express Connect circuit cannot use the same VLAN ID.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => '123', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'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.'."\n" + ."\n" + .'> 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.'."\n", 'type' => 'string', 'required' => false, 'example' => '0c593ea1-3bea-11e9-b96b-88e9fe637760', 'title' => ''], ], [ - 'name' => 'CircuitCode', + 'name' => 'DryRun', 'in' => 'query', + 'schema' => ['description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values:'."\n" + ."\n" + .'**true**: performs only a dry run. The system checks your AccessKey pair, the Resource Access Management (RAM) user permissions, and the required parameters. 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.'."\n" + ."\n" + .'**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.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => 'The circuit code of the Express Connect circuit. The circuit code is provided by the connectivity provider.'."\n" - ."\n" - .'> Only the Express Connect circuit owner can specify this parameter.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'longtel001', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '0ED8D006-F706-4D23-88ED-E11ED28DCAC0', 'title' => ''], + ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InvalidDhcpOptionsSetId.NotFound', 'errorMessage' => 'The specified resource dhcpOptionsSetId is not found.', 'description' => ''], + ['errorCode' => 'OperationFailed.AttachmentNotExist', 'errorMessage' => 'The current VPC is not attahced to a DHCP options set.', 'description' => 'The VPC is not associated with a DHCP options set.'], + ['errorCode' => 'IncorrectStatus.VpcDhcpOptionsSet', 'errorMessage' => 'The dhcpOptionsSet status of VPC does not support this operation.', 'description' => 'The DHCP options set that is associated with the VPC is being configured. As a result, the DHCP options set does not support this operation.'], + ['errorCode' => 'AttrMismatching.VpcDhcpOptionsSetId', 'errorMessage' => 'The dhcpOptionsSetId does not match the VPC.', 'description' => 'The ID of the DHCP options set does not match the VPC. Check whether the specified DHCP options set is associated with the VPC.'], + ['errorCode' => 'TaskConflict', 'errorMessage' => 'The operation is too frequent. Please wait a moment and try again.', 'description' => 'The system is unavailable. Try again later.'], + ['errorCode' => 'InvalidVpcId.NotFound', 'errorMessage' => 'Specified value of VpcId is not found in our record.', 'description' => ''], + ['errorCode' => 'IncorrectStatus.DhcpOptionsSet', 'errorMessage' => 'The DhcpOptionsSet status does not support this operation.', 'description' => 'The DHCP options set that is associated with the VPC is being configured. As a result, the DHCP options set does not support this operation. You can perform the operation after the status of the DHCP options set is stable.'], + ['errorCode' => 'OperationUnsupported.DhcpOptionsSet', 'errorMessage' => 'The DHCP options set feature in this region is not supported.', 'description' => 'The current region does not support the DHCP options sets feature.'], + ['errorCode' => 'MissingParam.VpcId', 'errorMessage' => 'You must specify VpcId.', 'description' => 'You must specify VpcId.'], + ['errorCode' => 'InvalidRegionId.NotFound', 'errorMessage' => 'The specified RegionId does not exist.', 'description' => 'The specified region does not exist.'], + ], + ], + 'title' => 'DetachDhcpOptionsSetFromVpc', + 'description' => '- **DetachDhcpOptionsSetFromVpc**接口属于异步接口,即系统返回一个请求ID,但该DHCP选项集尚未解绑成功,系统后台的解绑任务仍在进行。您可以调用[DescribeVpcAttribute](~~94565~~)查询DHCP选项集的解绑状态:'."\n" + .' - 当DHCP选项集处于**Pending**状态时,表示DHCP选项集正在解绑中。'."\n" + .' - 当DHCP选项集处于**UnUsed**状态时,表示DHCP选项集解绑成功。'."\n" + .'- **DetachDhcpOptionsSetFromVpc**接口不支持在同一个VPC中并发解绑DHCP选项集。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2024-04-22T03:18:36.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2021-08-06T06:43:53.000Z', 'description' => 'Error codes changed'], + ], + 'ramActions' => [], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"0ED8D006-F706-4D23-88ED-E11ED28DCAC0\\"\\n}","type":"json"}]', + 'translator' => 'manual', + ], + 'DiagnoseVpnConnections' => [ + 'summary' => 'Diagnoses IPsec-VPN connections.', + 'methods' => ['post'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free'], + 'parameters' => [ [ - 'name' => 'LocalGatewayIp', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The IP address of the gateway device on the Alibaba Cloud side.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '192.168.XX.XX', - ], + 'allowEmptyValue' => false, + 'schema' => ['description' => 'The region ID of the IPsec-VPN connection.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'example' => 'cn-qingdao', 'title' => ''], ], [ - 'name' => 'PeerGatewayIp', + 'name' => 'VpnGatewayId', 'in' => 'query', - 'schema' => [ - 'description' => 'The IP address of the gateway device on the user side.'."\n" - ."\n" - .'* Only the owner of the VBR can set or modify this parameter.'."\n" - .'* When you create a VBR for the owner of the Express Connect circuit, this parameter is required.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '192.168.XX.XX', - ], + 'schema' => ['description' => 'The ID of the VPN gateway.'."\n", 'type' => 'string', 'required' => false, 'example' => 'vpn-bp10hz6b0mbp39flt****', 'title' => ''], ], [ - 'name' => 'PeeringSubnetMask', + 'name' => 'VpnConnectionIds', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => 'The subnet mask of the IP addresses of the VBR and the gateway device in the data center.'."\n" + 'description' => 'The IDs of IPsec-VPN connections.'."\n", + 'type' => 'array', + 'items' => ['description' => 'The ID of the IPsec-VPN connection.'."\n" ."\n" - .'The two IP addresses must fall within the same subnet.'."\n", - 'type' => 'string', + .'> This parameter is required if the IPsec-VPN connection is in single-tunnel mode.'."\n", 'type' => 'string', 'required' => false, 'example' => 'vco-bp1spxu8hlcvpd7ry****', 'title' => ''], 'required' => false, - 'example' => '255.255.255.0', + 'maxItems' => 51, + 'title' => '', + 'example' => '', ], ], [ - 'name' => 'ClientToken', + 'name' => 'TunnelIds', 'in' => 'query', + 'allowEmptyValue' => true, + 'style' => 'repeatList', 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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 and cannot exceed 64 characters in length.'."\n" + 'description' => 'The list of tunnel IDs.'."\n", + 'type' => 'array', + 'items' => ['description' => 'The tunnel ID.'."\n" ."\n" - .'> 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.'."\n", - 'type' => 'string', + .'> This parameter is required if the IPsec-VPN connection is in dual-tunnel mode.'."\n", 'type' => 'string', 'required' => false, 'example' => 'tun-64n1sr9dig64k6****', 'title' => ''], 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-426655440000', + 'maxItems' => 100, + 'title' => '', + 'example' => '', ], ], [ - 'name' => 'LocalIpv6GatewayIp', - 'in' => 'query', - 'schema' => [ - 'description' => 'The IPv6 address of the gateway device on the Alibaba Cloud side.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '2001:XXXX:3c4d:0015:0000:0000:0000:1a2b', - ], - ], - [ - 'name' => 'PeerIpv6GatewayIp', - 'in' => 'query', - 'schema' => [ - 'description' => 'The IPv6 address of the gateway device in the data center.'."\n" - ."\n" - .'* Only the owner of the VBR can specify or modify this parameter.'."\n" - .'* When you create a VBR for the owner of the Express Connect circuit, this parameter is required.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '2001:XXXX:4:4:4:4:4:4', - ], - ], - [ - 'name' => 'PeeringIpv6SubnetMask', + 'name' => 'PageNumber', 'in' => 'query', - 'schema' => [ - 'description' => 'The subnet mask of the IPv6 addresses of the gateway devices on the user side and Alibaba Cloud side.'."\n" - ."\n" - .'The two IPv6 addresses must fall within the same subnet.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '2408:4004:cc:400::/56', - ], + 'schema' => ['description' => 'The page number. Default value: **1**.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1', 'title' => ''], ], [ - 'name' => 'EnableIpv6', + 'name' => 'PageSize', 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to enable IPv6. Valid values:'."\n" - ."\n" - .'* **true**'."\n" - .'* **false** (default)'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['description' => 'The number of entries per page. Default value: **10**.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '10', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'The response parameters.'."\n", 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '980960B0-2969-40BF-8542-EBB34FD358AB', + 'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.'."\n", 'type' => 'string', 'example' => 'B8094E1E-935B-1397-96A8-4F87A5D1BF29'], + 'PageNumber' => ['description' => 'The page number.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''], + 'PageSize' => ['description' => 'The number of entries per page.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '10', 'title' => ''], + 'TotalCount' => ['description' => 'The number of entries returned.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''], + 'VpnConnections' => [ + 'description' => 'The diagnostic information.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'MismatchRemoteParam' => ['description' => 'If the parameter values configured for the IPsec-VPN connection and the peer gateway device do not match, this parameter indicates the value of the parameter configured for the peer gateway device.'."\n", 'type' => 'string', 'example' => 'SHA', 'title' => ''], + 'MismatchLocalParam' => ['description' => 'If the values of the parameters configured for the IPsec-VPN connection and the peer gateway device do not match, this parameter indicates the value of the parameters configured for the IPsec-VPN connection.'."\n", 'type' => 'string', 'example' => 'SHA256', 'title' => ''], + 'VpnConnectionId' => ['description' => 'The ID of the IPsec-VPN connection.'."\n", 'type' => 'string', 'example' => 'vco-bp1spxu8hlcvpd7ry****', 'title' => ''], + 'SourceLog' => ['description' => 'The log information about the error.'."\n", 'type' => 'string', 'example' => '2023-01-13 11:39:21 vco-bp1spxu8hlcvpd7ry**** [PROTO_ERR]: ikev1.c:1433:isakmp_ph1resend(): phase1 negotiation failed due to time up. [{remote id:4}{ph1: 172.16.0.88[500] <=> 192.168.0.206[500], 172.16.0.88 <=> 192.168.0.206}]', 'title' => ''], + 'FailedReasonCode' => ['description' => 'The error code.'."\n", 'type' => 'string', 'example' => 'Phase1NegotiationTimeout', 'title' => ''], + 'FailedTime' => ['description' => 'The timestamp when the current error occurred on the IPsec-VPN connection. Unit: millisecond.'."\n" + ."\n" + .'This value is a UNIX timestamp representing the number of milliseconds that have elapsed since January 1, 1970, 00:00:00 UTC.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '1673581161000', 'title' => ''], + 'FailedReason' => ['description' => 'The cause of the error.'."\n", 'type' => 'string', 'example' => 'Phase1 negotiation timeout', 'title' => ''], + 'Severity' => ['description' => 'The error level. Valid values:'."\n" + ."\n" + .'* **Critical**'."\n" + .'* **Warn**'."\n" + .'* **Normal**'."\n", 'type' => 'string', 'example' => 'Warn', 'title' => ''], + 'TunnelId' => ['description' => 'The tunnel ID.'."\n", 'type' => 'string', 'example' => 'tun-64n1sr9dig64k6****', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', ], ], - 'description' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidOperation.RouterInterfaceNotDeleted', - 'errorMessage' => 'The specified VirutalBorderRouter still has routerInterface.', - ], - [ - 'errorCode' => 'InvalidOperation.OperationNotAllowedInState', - 'errorMessage' => 'The specified VirutalBorderRouter is in invalid state.', - ], - [ - 'errorCode' => 'InvalidStatus.NotAllowed', - 'errorMessage' => 'Invalid virtual border router status.', - ], - [ - 'errorCode' => 'InvalidPhysicalConnectionId.NotFound', - 'errorMessage' => 'The specified PhysicalConnectionId is not found.', - ], - [ - 'errorCode' => 'InvalidVlanId.Used', - 'errorMessage' => 'The specified VlanId has been used.', - ], - [ - 'errorCode' => 'MissingParameter', - 'errorMessage' => 'The input parameter \'PhysicalConnectionId\' that is mandatory for processing this request is not supplied.', - ], - [ - 'errorCode' => 'InvalidPhysicalConnectionId.NotEnabled', - 'errorMessage' => 'The specified PhysicalConnectionId is not in Enabled state.', - ], - [ - 'errorCode' => 'InvalidVlanId.Malformed', - 'errorMessage' => 'The specified VlanId is not valid.', - ], - [ - 'errorCode' => 'InvalidCircuitCode.Malformed', - 'errorMessage' => 'The specified CircuitCode is not valid.', - ], - [ - 'errorCode' => 'InvalidLocalGatewayIp.Malformed', - 'errorMessage' => 'The specified LocalGatewayIp is not valid.', - ], - [ - 'errorCode' => 'InvalidPeerGatewayIp.Malformed', - 'errorMessage' => 'The specified PeerGatewayIp is not valid.', - ], - [ - 'errorCode' => 'InvalidPeeringSubnetMask.Malformed', - 'errorMessage' => 'The specified PeeringSubnetMask is not valid.', - ], - [ - 'errorCode' => 'InvalidName.Malformed', - 'errorMessage' => 'The specified ?Name? is not valid.', - ], - [ - 'errorCode' => 'InvalidDescription.Malformed', - 'errorMessage' => 'The specifid ?Description? is not valid.', - ], - [ - 'errorCode' => 'QuotaExceeded.vbrPerpConn', - 'errorMessage' => 'Virtual boarder router per PhysicalConnection quota exceed.', - ], - [ - 'errorCode' => 'EXCEED_ASSOCIATE_MAX_NUM', - 'errorMessage' => 'assocaite virtual boarder num too many.', - ], - [ - 'errorCode' => 'InvalidIP.Malformed', - 'errorMessage' => 'Ip malformed.', - ], - [ - 'errorCode' => 'InvalidIp.NotSameSubnet', - 'errorMessage' => 'Local gateway ip and peer gateway ip are not in the same subnet.', - ], - [ - 'errorCode' => 'InvalidStatus.StatusNotEnabled', - 'errorMessage' => 'The physical connection status is invalid.', - ], - [ - 'errorCode' => 'InvalidParams.AlreadyExists', - 'errorMessage' => 'physical connection has already associated with vbr.', - ], - [ - 'errorCode' => 'PHYSICAL_NOT_ALLOW_ASSOCIATE_VBR', - 'errorMessage' => 'The specified operation not allow.', - ], - [ - 'errorCode' => 'Forbidden.OperationNotAllowed', - 'errorMessage' => 'The caller must be PhysicalConnection or VirtualBorderRouter\'s owner.', - ], - [ - 'errorCode' => 'Forbidden.NotSameAccessDevice', - 'errorMessage' => 'Vbr and physicalConnection are not on the same accessDevice.', - ], - [ - 'errorCode' => 'Duplicated.LocalGatewayIp', - 'errorMessage' => 'Vbr has conflict local gateway ip.', - ], - [ - 'errorCode' => 'OperationFailed.VlanIdInUse', - 'errorMessage' => 'Operation failed because vlanId is in use.', - ], - [ - 'errorCode' => 'OperationFailed.PconnTrafficNotEnable', - 'errorMessage' => 'The operation is failed because of PconnTrafficNotEnable.', - ], - [ - 'errorCode' => 'DuplicatedParam.LocalGatewayIp', - 'errorMessage' => 'Duplicated LocalGatewayIp values.', - ], - [ - 'errorCode' => 'DuplicatedParam.PeerGatewayIp', - 'errorMessage' => 'Duplicated PeerGatewayIp values.', - ], - [ - 'errorCode' => 'DuplicatedParam.LocalIpv6GatewayIp', - 'errorMessage' => 'Duplicated LocalIpv6GatewayIp values.', - ], - [ - 'errorCode' => 'DuplicatedParam.PeerIpv6GatewayIp', - 'errorMessage' => 'Duplicated PeerIpv6GatewayIp values.', - ], - [ - 'errorCode' => 'EcPconnVbrMustContainsAll', - 'errorMessage' => 'In the single VBR with multiple Pconn scene, all Pconn must be associated with the same Qos.', - ], - [ - 'errorCode' => 'IllegalParam.LocalGatewayIpAndMask', - 'errorMessage' => 'The LocalGatewayIpAndMask value is invalid.', - ], - [ - 'errorCode' => 'IllegalParam.PeeringIpv6SubnetMask', - 'errorMessage' => 'The PeeringIpv6SubnetMask value is invalid.', - ], + ['errorCode' => 'InvalidParameter', 'errorMessage' => 'The parameter is invalid.', 'description' => ''], ], 403 => [ - [ - 'errorCode' => 'Forbidden.OperationNotAllowedByUser', - 'errorMessage' => 'The caller is not allowed to delete the specified VirtualBorderRouter.', - ], - [ - 'errorCode' => 'Forbidden.MultiVlanRi', - 'errorMessage' => 'Multiple vlan router interfaces are found.', - ], - [ - 'errorCode' => 'Forbidden.NoRiFound', - 'errorMessage' => 'No vlan router interfaces are found.', - ], - [ - 'errorCode' => 'Forbidden.LocalGatewayIpNotAllowedByCaller', - 'errorMessage' => 'The caller is not allowed to specify the LocalGatewayIp parameter.', - ], - [ - 'errorCode' => 'Forbidden.PeerGatewayIpNotAllowedByCaller', - 'errorMessage' => 'The caller is not allowed to specify the PeerGatewayIp parameter.', - ], - [ - 'errorCode' => 'Forbidden.PeeringSubnetMaskNotAllowedByCaller', - 'errorMessage' => 'The caller is not allowed to specify the PeeringSubnetMask parameter.', - ], - [ - 'errorCode' => 'Forbidden.NameNotAllowedByCaller', - 'errorMessage' => 'The caller is not allowed to specify the Name parameter.', - ], - [ - 'errorCode' => 'Forbidden.DescriptionNotAllowedByCaller', - 'errorMessage' => 'The caller is not allowed to specify the Description parameter.', - ], - ], - [ - [ - 'errorCode' => 'InvalidInstanceId.NotFound', - 'errorMessage' => 'The specified Instance does not exist in the specified region.', - ], - [ - 'errorCode' => 'InvalidRegionId.NotFound', - 'errorMessage' => 'The RegionId provided does not exist in our records.', - ], - [ - 'errorCode' => 'InvalidVbrId.NotFound', - 'errorMessage' => 'The specified VirutalBorderRouter does not exist in our records.', - ], - [ - 'errorCode' => 'InvalidVbrOwnerId.NotFound', - 'errorMessage' => 'The specified VbrOwnerId is not valid.', - ], + ['errorCode' => 'Forbidden', 'errorMessage' => 'User not authorized to operate on the specified resource.', 'description' => 'You do not have the permissions to manage the specified resource. Apply for the permissions and try again.'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"980960B0-2969-40BF-8542-EBB34FD358AB\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 980960B0-2969-40BF-8542-EBB34FD358AB\\n","errorExample":""}]', - 'title' => 'AssociatePhysicalConnectionToVirtualBorderRouter', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'DiagnoseVpnConnections', + 'description' => '* If the IPsec-VPN connection is in single-tunnel mode, the request parameter `VpnConnectionIds` is required when you call the **DiagnoseVpnConnections** operation.'."\n" + .'* If the IPsec-VPN connection is in dual-tunnel mode, the request parameter `TunnelIds` is required when you call the **DiagnoseVpnConnections** operation.'."\n" + .'* After you call the **DiagnoseVpnConnections** operation, if the current IPsec-VPN connection is faulty, the operation returns the corresponding error code (**FailedReasonCode**) and log (**SourceLog**). You can troubleshoot based on the error code and log information. For more information, see [Common errors and troubleshooting methods for IPsec-VPN connections](~~477862~~).'."\n", + 'changeSet' => [], + 'ramActions' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"B8094E1E-935B-1397-96A8-4F87A5D1BF29\\",\\n \\"PageNumber\\": 1,\\n \\"PageSize\\": 10,\\n \\"TotalCount\\": 1,\\n \\"VpnConnections\\": [\\n {\\n \\"MismatchRemoteParam\\": \\"SHA\\",\\n \\"MismatchLocalParam\\": \\"SHA256\\",\\n \\"VpnConnectionId\\": \\"vco-bp1spxu8hlcvpd7ry****\\",\\n \\"SourceLog\\": \\"2023-01-13 11:39:21 vco-bp1spxu8hlcvpd7ry**** [PROTO_ERR]: ikev1.c:1433:isakmp_ph1resend(): phase1 negotiation failed due to time up. [{remote id:4}{ph1: 172.16.0.88[500] <=> 192.168.0.206[500], 172.16.0.88 <=> 192.168.0.206}]\\",\\n \\"FailedReasonCode\\": \\"Phase1NegotiationTimeout\\",\\n \\"FailedTime\\": 1673581161000,\\n \\"FailedReason\\": \\"Phase1 negotiation timeout\\",\\n \\"Severity\\": \\"Warn\\",\\n \\"TunnelId\\": \\"tun-64n1sr9dig64k6****\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\n 1\\n B8094E1E-935B-1397-96A8-4F87A5D1BF29\\n 50\\n 1\\n \\n \\n Phase1NegotiationTimeout\\n Phase1 negotiation timeout\\n Warn\\n vco-bp1spxu8hlcvpd7ry****\\n 1673581161000\\n \\n 2023-01-13 11:39:21 vco-bp1spxu8hlcvpd7ry**** [PROTO_ERR]: ikev1.c:1433:isakmp_ph1resend(): phase1 negotiation failed due to time up. [{remote id:4}{ph1: 172.16.0.88[500] <=> 192.168.0.206[500], 172.16.0.88 <=> 192.168.0.206}]\\n \\n","errorExample":""}]', ], - 'CreateVirtualBorderRouter' => [ - 'summary' => 'Creates a virtual border router (VBR).', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DiagnoseVpnGateway' => [ + 'summary' => 'Diagnoses a VPN gateway.', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'write', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'create', - 'riskType' => 'none', - 'chargeType' => 'free', - ], + 'systemTags' => ['operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', 'tenantRelevance' => 'tenant'], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the Express Connect circuit.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-shanghai', - ], - ], - [ - 'name' => 'PhysicalConnectionId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the Express Connect circuit.'."\n" - ."\n" - .'You can create a VBR for a dedicated connection or a hosted connection.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'pc-2zextbehcx****', - ], - ], - [ - 'name' => 'VbrOwnerId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The account ID of the VBR owner.'."\n" - ."\n" - .'The default value is the ID of the current Alibaba Cloud account.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '168811111****', - ], - ], - [ - 'name' => 'VlanId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The VLAN ID of the VBR. Valid values: **0 to 2999**.'."\n" - ."\n" - .'> Only the owner of the Express Connect circuit can set this parameter. The VLAN IDs of two VBRs of the same the Express Connect circuit must be different.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'docRequired' => true, - 'example' => '0', - ], - ], - [ - 'name' => 'CircuitCode', - 'in' => 'query', - 'schema' => [ - 'description' => 'The circuit code of the Express Connect circuit. The circuit code is provided by the connectivity provider.'."\n" - ."\n" - .'> Only the owner of the Express Connect circuit can set this parameter.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'longtel001', - ], - ], - [ - 'name' => 'LocalGatewayIp', - 'in' => 'query', - 'schema' => [ - 'description' => 'The IP address of the VBR. Only the owner of the VBR can set or modify this parameter.'."\n" - ."\n" - .'When you create a VBR for the owner of the Express Connect circuit, this parameter is required.'."\n", - 'type' => 'string', - 'required' => false, - 'docRequired' => true, - 'example' => '192.168.XX.XX', - ], + 'schema' => ['title' => 'RegionId', 'description' => 'The region ID of the VPN gateway.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'example' => 'cn-qingdao'], ], [ - 'name' => 'PeerGatewayIp', + 'name' => 'ResourceId', 'in' => 'query', - 'schema' => [ - 'description' => 'The IP address of the gateway device in the data center. Only the owner of the VBR can set or modify this parameter.'."\n" - ."\n" - .'When you create a VBR for the owner of the Express Connect circuit, this parameter is required.'."\n", - 'type' => 'string', - 'required' => false, - 'docRequired' => true, - 'example' => '116.62.XX.XX', - ], + 'schema' => ['title' => 'ResourceId', 'description' => 'The ID of the resource to be diagnosed.'."\n", 'type' => 'string', 'required' => true, 'example' => 'vco-uf66xniofskqtuoz1****'], ], [ - 'name' => 'PeeringSubnetMask', + 'name' => 'ResourceType', 'in' => 'query', - 'schema' => [ - 'description' => 'The subnet mask of the IP addresses of the VBR and the gateway device in the data center.'."\n" - ."\n" - .'The two IP addresses must fall within the same subnet.'."\n", - 'type' => 'string', - 'required' => false, - 'docRequired' => true, - 'example' => '255.255.255.252', - ], + 'schema' => ['title' => 'ResourceType', 'description' => 'The type of the resource.'."\n" + ."\n" + .'Set the value to **Ipsec**, which specifies an IPsec-VPN connection.'."\n", 'type' => 'string', 'required' => true, 'example' => 'IPsec'], ], [ - 'name' => 'Description', + 'name' => 'VpnGatewayId', 'in' => 'query', - 'schema' => [ - 'description' => 'The description of the VBR.'."\n" - ."\n" - .'The description must be 2 to 256 characters in length. The description must start with a letter but cannot start with `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'desc', - ], + 'schema' => ['title' => 'VpnGatewayId', 'description' => 'The ID of the VPN gateway.'."\n", 'type' => 'string', 'required' => true, 'example' => 'vpn-m5efhj0k1p47ctuhl****'], ], [ - 'name' => 'Name', + 'name' => 'IPsecExtendInfo', 'in' => 'query', - 'schema' => [ - 'description' => 'The name of the VBR.'."\n" - ."\n" - .'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.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'test', - ], + 'schema' => ['title' => 'IPsecExtendInfo', 'description' => 'Check the connectivity of the destination address. Valid values:'."\n" + ."\n" + .'* **PrivateSourceIp**: the source IP address. The source IP address must be on the VPC side.'."\n" + .'* **PrivateDestinationIp**: the destination IP address. The destination IP address must be on the data center side.'."\n", 'type' => 'string', 'required' => false, 'example' => '{"PrivateSourceIp":"192.168.1.1","PrivateDestinationIp":"192.168.0.1"}'], ], [ 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'You can use the client to generate the value, but you must make sure that it is unique among different requests.'."\n" - ."\n" - .'> If you do not set this parameter, the system automatically sets **ClientToken** to the value of **RequestId**. The value of **RequestId** may be different for each API request.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-426655440000', - ], + 'schema' => ['title' => 'system param', 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'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.'."\n" + ."\n" + .'> 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.'."\n", 'type' => 'string', 'required' => false, 'example' => '02fb3da4-130e-11e9-8e44-001****'], ], - [ - 'name' => 'LocalIpv6GatewayIp', - 'in' => 'query', + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => 'The IPv6 address of the VBR. Only the owner of the VBR can set or modify this parameter.'."\n" - ."\n" - .'When you create a VBR for the owner of the Express Connect circuit, this parameter is required.'."\n", - 'type' => 'string', - 'required' => false, - 'docRequired' => false, - 'example' => '2001:XXXX:3c4d:0015:0000:0000:0000:1a2b', + 'title' => 'Schema of Response', + 'description' => 'The response parameters.'."\n", + 'type' => 'object', + 'properties' => [ + 'DiagnoseId' => ['title' => 'DiagnoseId', 'description' => 'The diagnostic ID.'."\n" + ."\n" + .'After a diagnostic ID is returned, you can call [GetVpnGatewayDiagnoseResult](~~2521963~~) to query the diagnostic report.'."\n", 'type' => 'string', 'example' => 'vpndgn-uf6kuxbe3iv028k3s****'], + 'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '0ED8D006-F706-4D23-88ED-E11ED28DCAC0'], + ], + 'example' => '', ], ], - [ - 'name' => 'PeerIpv6GatewayIp', - 'in' => 'query', - 'schema' => [ - 'description' => 'The IPv6 address of the gateway device in the data center. Only the owner of the VBR can set or modify this parameter.'."\n" - ."\n" - .'When you create a VBR for the owner of the Express Connect circuit, this parameter is required.'."\n", - 'type' => 'string', - 'required' => false, - 'docRequired' => false, - 'example' => '2001:XXXX:4:4:4:4:4:4', - ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'IdempotentParameterMismatch', 'errorMessage' => 'The request uses the same client token as a previous, but non-identical request. Do not reuse a client token with different requests, unless the requests are identical.', 'description' => ''], + ['errorCode' => 'VpnGateway.Configuring', 'errorMessage' => 'The specified service is configuring.', 'description' => ''], + ['errorCode' => 'OperationUnsupported.DiagnoseVpn', 'errorMessage' => 'Current version of the VPN does not support diagnose.', 'description' => ''], + ['errorCode' => 'IllegalParam.ResourceType', 'errorMessage' => 'The specified resource type [%s] is invalid.', 'description' => ''], + ['errorCode' => 'OperationFailed.VpnGatewayDiagnosing', 'errorMessage' => 'The VPN gateway is diagnosing.', 'description' => ''], + ['errorCode' => 'OperationFailed.StartDiagnose', 'errorMessage' => 'Start VPN gateway diagnose failed.', 'description' => ''], + ['errorCode' => 'IllegalParam.PrivateSourceIp', 'errorMessage' => 'The specified private source IP [%s] is invalid.', 'description' => ''], + ['errorCode' => 'IllegalParam.PrivateDestinationIp', 'errorMessage' => 'The specified private destination IP [%s] is invalid.', 'description' => ''], + ], + 403 => [ + ['errorCode' => 'Forbidden', 'errorMessage' => 'User not authorized to operate on the specified resource.', 'description' => 'You do not have the permissions to manage the specified resource. Apply for the permissions and try again.'], ], [ - 'name' => 'PeeringIpv6SubnetMask', - 'in' => 'query', - 'schema' => [ - 'description' => 'The subnet mask of the IPv6 addresses of the VBR and the gateway device in the data center.'."\n" - ."\n" - .'The two IPv6 addresses must fall within the same subnet.'."\n", - 'type' => 'string', - 'required' => false, - 'docRequired' => false, - 'example' => '2408:4004:cc:400::/56', - ], + ['errorCode' => 'InvalidVpnGatewayInstanceId.NotFound', 'errorMessage' => 'The specified vpn gateway instance id does not exist.', 'description' => ''], + ['errorCode' => 'InvalidResourceId.NotFound', 'errorMessage' => 'The specified resource id [%s] does not exist.', 'description' => ''], ], + ], + 'staticInfo' => ['returnType' => 'asynchronous', 'callback' => 'Vpc::2016-04-28::GetVpnGatewayDiagnoseResult', 'callbackInterval' => 3000, 'maxCallbackTimes' => 200], + 'title' => 'DiagnoseVpnGateway', + 'description' => '仅部分地域下的VPN网关实例支持一键诊断功能。关于地域的更多信息,请参见[VPN网关功能支持的地域](~~430697~~)。', + 'changeSet' => [], + 'ramActions' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"DiagnoseId\\": \\"vpndgn-uf6kuxbe3iv028k3s****\\",\\n \\"RequestId\\": \\"0ED8D006-F706-4D23-88ED-E11ED28DCAC0\\"\\n}","errorExample":""},{"type":"xml","example":"\\n vpndgn-uf6kuxbe3iv028k3s****\\n 0ED8D006-F706-4D23-88ED-E11ED28DCAC0\\n","errorExample":""}]', + ], + 'DisableVpcClassicLink' => [ + 'summary' => 'Performs a shutdown of ClassicLink to disable ClassicLink.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'EnableIpv6', - 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to enable IPv6. Valid values:'."\n" - ."\n" - .'* **true**: enables IPv6.'."\n" - .'* **false** (default): disables IPv6.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], + 'AK' => [], ], + ], + 'operationType' => 'readAndWrite', + 'deprecated' => true, + 'systemTags' => ['operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free'], + 'parameters' => [ [ - 'name' => 'Bandwidth', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The bandwidth of the VBR. Unit: Mbit/s.'."\n" - ."\n" - .'* When you create a VBR for a dedicated connection, valid values are **50**, **100**, **200**, **300**, **400**, **500**, **1000**, **2048**, **5120**, **8192**, **10240**, **20480**, **40960**, **50120**, **61440**, and **102400**.'."\n" - .'* You do not need to set this parameter when you create a VBR for a hosted connection. The bandwidth is already configured when the hosted connection is created.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '100', - ], + 'schema' => ['description' => 'The region ID of the VPC for which you want to disable ClassicLink.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the region ID.', 'type' => 'string', 'required' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'ResourceGroupId', + 'name' => 'VpcId', 'in' => 'query', - 'schema' => [ - 'description' => 'The resource group ID.'."\n" - ."\n" - .'For more information about resource group, see [What is Resource Management?](~~94475~~)'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'rg-acfmxazb4ph6aiy****', - ], + 'schema' => ['description' => 'The ID of the VPC for which you want to disable ClassicLink.', 'type' => 'string', 'required' => true, 'example' => 'vpc-bp1m7v25emi1h5mtc****', 'title' => ''], ], [ - 'name' => 'Tags', + 'name' => 'ClientToken', 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => 'The tags.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The information about the tags.', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => 'The tag key. You must enter at least one tag key. You can specify up to 20 tag keys. The tag key cannot be an empty string.'."\n" - ."\n" - .'A tag key can be at most 128 characters in length. It cannot start with `aliyun` or `acs:`, and cannot contain `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'FinanceDept', - ], - 'Value' => [ - 'description' => 'The tag value. You can specify at most 20 tag values. The tag value can be an empty string.'."\n" - ."\n" - .'The tag value can be up to 128 characters in length and cannot contain `http://` or `https://`. The tag value cannot start with `aliyun` or `acs:`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'FinanceJoshua', - ], - ], - 'required' => false, - ], - 'required' => false, - 'maxItems' => 20, - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'You can use the client to generate the token, but you must make sure that the token is unique among different requests. The ClientToken value can contain only ASCII characters.'."\n" + ."\n" + .'> If you do not specify this parameter, the system automatically uses the **RequestId** of the API request as the **ClientToken**. The **RequestId** of each API request may be different.', 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-426655440000', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => 'The returned data.'."\n", + 'description' => 'The request ID.', 'type' => 'object', 'properties' => [ - 'VbrId' => [ - 'description' => 'The ID of the VBR.'."\n", - 'type' => 'string', - 'example' => 'vbr-bp1jcg5cmxjbl9xgc****', - ], - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => '4EC47282-1B74-4534-BD0E-403F3EE64CAF', - ], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B45', 'title' => ''], ], + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'OperationFailed.PconnAllocateVlan0', - 'errorMessage' => 'Vlan 0 Vbr cannot share the physical connection with another Vbr.', - ], - [ - 'errorCode' => 'IllegalParam.IpAddress', - 'errorMessage' => 'The specified IpAddress (%s) is illegal.', - ], - [ - 'errorCode' => 'IllegalParam.CidrBlock', - 'errorMessage' => 'The specified CidrBlock (%s) is illegal.', - ], - [ - 'errorCode' => 'InvalidPhysicalConnectionId.NotFound', - 'errorMessage' => 'The specified PhysicalConnectionId is not found.', - ], - [ - 'errorCode' => 'InvalidVlanId.Used', - 'errorMessage' => 'The specified VlanId has been used.', - ], - [ - 'errorCode' => 'MissingParameter', - 'errorMessage' => 'The input parameter \'PhysicalConnectionId\' that is mandatory for processing this request is not supplied.', - ], - [ - 'errorCode' => 'InvalidPhysicalConnectionId.NotEnabled', - 'errorMessage' => 'The specified PhysicalConnectionId is not in Enabled state.', - ], - [ - 'errorCode' => 'InvalidVlanId.Malformed', - 'errorMessage' => 'The specified VlanId is not valid.', - ], - [ - 'errorCode' => 'InvalidCircuitCode.Malformed', - 'errorMessage' => 'The specified CircuitCode is not valid.', - ], - [ - 'errorCode' => 'InvalidLocalGatewayIp.Malformed', - 'errorMessage' => 'The specified LocalGatewayIp is not valid.', - ], - [ - 'errorCode' => 'InvalidPeeringSubnetMask.Malformed', - 'errorMessage' => 'The specified PeeringSubnetMask is not valid.', - ], - [ - 'errorCode' => 'InvalidName.Malformed', - 'errorMessage' => 'The specified ?Name? is not valid.', - ], - [ - 'errorCode' => 'InvalidDescription.Malformed', - 'errorMessage' => 'The specifid ?Description? is not valid.', - ], - [ - 'errorCode' => 'QuotaExceeded.vbrPerpConn', - 'errorMessage' => 'Virtual boarder router per PhysicalConnection quota exceed.', - ], - [ - 'errorCode' => 'QuotaExceeded.freevbr', - 'errorMessage' => 'Free virtual boarder router quota exceed.', - ], - [ - 'errorCode' => 'InvalidIp.NotSameSubnet', - 'errorMessage' => 'Local gateway ip and peer gateway ip are not in the same subnet.', - ], - [ - 'errorCode' => 'TaskConflict', - 'errorMessage' => 'The operation is too frequent, please wait a moment and try again.', - ], - [ - 'errorCode' => 'QuotaExceeded.CrossUserVBRPerUser', - 'errorMessage' => 'Cross virtual boarder router per user quota exceed.', - ], - [ - 'errorCode' => 'OperationFailed.VlanIdInUse', - 'errorMessage' => 'Operation failed because vlanId is in use.', - ], - [ - 'errorCode' => 'QuotaExceeded.SameAccountVBRPerPconn', - 'errorMessage' => 'Same account virtual boarder router per physicalConnection quota exceed.', - ], - [ - 'errorCode' => 'QuotaExceeded.VbrPerPconnPortSpec', - 'errorMessage' => 'Quota exceed for current port spec', - ], - [ - 'errorCode' => 'QuotaExceeded.VbrPerAccessDevice', - 'errorMessage' => 'Virtual boarder router per access device quota exceed.', - ], - [ - 'errorCode' => 'OperationUnsupported.IPV6ForThisRegion', - 'errorMessage' => 'This Region do not support IPV6.', - ], - [ - 'errorCode' => 'VbrBandwidthExceed', - 'errorMessage' => 'VBR bandwidth exceed for this physical connection.', - ], - [ - 'errorCode' => 'OperationFailed.PconnExistVlan0Vbr', - 'errorMessage' => 'The physical connection has VLAN 0 VBR. You cannot create another VBR.', - ], - [ - 'errorCode' => 'OperationFailed.Vlan0VbrUnSharePconn', - 'errorMessage' => 'VLAN 0 VBR cannot share the physical connection with another VBR.', - ], - [ - 'errorCode' => 'OperationFailed.PconnTrafficNotEnable', - 'errorMessage' => 'The operation is failed because of PconnTrafficNotEnable.', - ], - [ - 'errorCode' => 'ResourceNotEnough.Bandwidth', - 'errorMessage' => 'The specified resource of Bandwidth is not enough.', - ], - [ - 'errorCode' => 'OperationUnsupported.VirtualBorderRouterEnableIPv6', - 'errorMessage' => 'The operation failed. The device or region does not support IPv6 functions.', - ], - [ - 'errorCode' => 'IllegalParam.OwnerAliUid', - 'errorMessage' => 'The param of VbrOwnerId is illegal.', - ], - [ - 'errorCode' => 'Forbidden.OwnerAliUid', - 'errorMessage' => 'RAM account or Partner account is forbidden to be OwnerAliUid.', - ], - [ - 'errorCode' => 'OperationDenied.VPconn', - 'errorMessage' => 'Vpconn is forbidden to create vbr for another account.', - ], - [ - 'errorCode' => 'OperationFailed.NotConsistentWithVpconn', - 'errorMessage' => 'VBR bandwidth is not consistent with vpconn', - ], - [ - 'errorCode' => 'IllegalParam.Bandwidth', - 'errorMessage' => 'The param of bandwidth is illegal.', - ], - [ - 'errorCode' => 'OperationFailed.VirtualPhysicalConnectionExistVBR', - 'errorMessage' => 'The virtual physical connect has already created another VBR.', - ], - [ - 'errorCode' => 'ResourceNotInResourceGroup', - 'errorMessage' => 'The specified resource is not in the specified ResourceGroup.', - ], - [ - 'errorCode' => 'IncorrectStatus.VirtualPhysicalConnection', - 'errorMessage' => 'The status of PhysicalConnection [%s] is incorrect.', - ], - [ - 'errorCode' => 'EcAssociatedQoSPconnNotAllowCreateCrossAccountVbr', - 'errorMessage' => 'The specified Pconn associated with Qos is not allowed to create cross account VBR.Please contact the business manager.', - ], - [ - 'errorCode' => 'OperationFailed.VbrBandWidthMust0InVlan0Vbr', - 'errorMessage' => 'The operation is failed because of VbrBandWidthMust0InVlan0Vbr.', - ], - [ - 'errorCode' => 'OperationDenied.PhysicalConnectionNotSupportMPBGPAndMPBGP-v6', - 'errorMessage' => 'The operation is not allowed because this physical connection not support MPBGP and MPBGP-v6.', - ], + ['errorCode' => 'InvalidAction', 'errorMessage' => 'The VPC has been connected to the classic network ECS. Please cancel the connection before proceeding.', 'description' => ''], + ['errorCode' => 'IncorrectVpcStatus', 'errorMessage' => 'Current VPC status does not support this operation.', 'description' => ''], + ['errorCode' => 'Forbbiden', 'errorMessage' => 'the specified resource does not support this operation.', 'description' => ''], + ['errorCode' => 'InvalidRegionId.NotFound', 'errorMessage' => 'Specified value of "regionId" is not supported.', 'description' => ''], + ['errorCode' => 'DependencyViolation.Instance', 'errorMessage' => 'ClassicLink Instances exist in VPC.', 'description' => 'Instances exist in the VPC and the VPC cannot be deleted.'], ], 403 => [ - [ - 'errorCode' => 'Forbidden.LocalGatewayIpNotAllowedByCaller', - 'errorMessage' => 'The caller is not allowed to specify the LocalGatewayIp parameter.', - ], - [ - 'errorCode' => 'Forbidden.PeerGatewayIpNotAllowedByCaller', - 'errorMessage' => 'The caller is not allowed to specify the PeerGatewayIp parameter.', - ], - [ - 'errorCode' => 'Forbidden.PeeringSubnetMaskNotAllowedByCaller', - 'errorMessage' => 'The caller is not allowed to specify the PeeringSubnetMask parameter.', - ], - [ - 'errorCode' => 'Forbidden.NameNotAllowedByCaller', - 'errorMessage' => 'The caller is not allowed to specify the Name parameter.', - ], - [ - 'errorCode' => 'Forbidden.DescriptionNotAllowedByCaller', - 'errorMessage' => 'The caller is not allowed to specify the Description parameter.', - ], + ['errorCode' => 'Forbbiden', 'errorMessage' => 'User not authorized to operate on the specified resource.', 'description' => 'User not authorized to operate on the specified resource.'], ], [ - [ - 'errorCode' => 'InvalidRegionId.NotFound', - 'errorMessage' => 'The specified RegionId is not found.', - ], - [ - 'errorCode' => 'InvalidVbrOwnerId.NotFound', - 'errorMessage' => 'The specified VbrOwnerId is not valid.', - ], - [ - 'errorCode' => 'CROSS_BID.FORBIDDEN', - 'errorMessage' => 'Create VBR across bid is illegal', - ], - [ - 'errorCode' => 'OperationFailed.AccessDeviceDisabled', - 'errorMessage' => 'Access device is disabled and can not create vbr.', - ], + ['errorCode' => 'InvalidVpcId.NotFound', 'errorMessage' => 'Specified VPC does not exist.', 'description' => ''], ], 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', - ], + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error.', 'description' => ''], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'staticInfo' => ['noSubstitutionReason' => '无替代API,历史原因导致该API被标记为弃用。'], + 'title' => 'Disable classicLink', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DisableVpcClassicLink'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], ], - 'eventInfo' => [ - 'enable' => false, - 'eventNames' => [], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:DisableVpcClassicLink', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VPC', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vpc/{#VpcId}'], + ], + ], + ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"VbrId\\": \\"vbr-bp1jcg5cmxjbl9xgc****\\",\\n \\"RequestId\\": \\"4EC47282-1B74-4534-BD0E-403F3EE64CAF\\"\\n}","errorExample":""},{"type":"xml","example":"\\n vbr-bp1jcg5cmxjbl9xgc****\\n 4EC47282-1B74-4534-BD0E-403F3EE64CAF\\n","errorExample":""}]', - 'title' => 'CreateVirtualBorderRouter', - 'description' => 'After you create a VBR, the VBR is in the **active** state.'."\n", - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B45\\"\\n}","type":"json"}]', ], - 'DeleteVirtualBorderRouter' => [ - 'summary' => 'Deletes a virtual border router (VBR).', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DisassociateMacSecKey' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], ], ], + 'operationType' => 'readAndWrite', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'delete', - ], + 'systemTags' => ['operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', 'autoTest' => true, 'tenantRelevance' => 'tenant'], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the VBR. You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-shanghai', - ], + 'schema' => ['description' => 'The region ID of the Express Connect circuit.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~448570~~) operation to query region IDs.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'VbrId', + 'name' => 'PhysicalConnectionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the VBR.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'vbr-bp12mw1f8k3jgygk9****', - ], + 'schema' => ['title' => '', 'description' => 'The ID of the Express Connect circuit.', 'type' => 'string', 'required' => true, 'example' => 'pc-bp1hp0wr072f6****'."\n"], ], [ - 'name' => 'ClientToken', + 'name' => 'Ckn', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'You can use the client to generate the value, but you must make sure that it is unique among different requests. The token can contain only ASCII characters and cannot exceed 64 characters in length.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '02fb3da4-130e-11e9-8e44-0016e04115b', - ], + 'schema' => ['title' => '', 'description' => 'The key name. Only hexadecimal characters are supported. Lowercase characters are automatically converted to uppercase. When the encryption algorithm type is GCM-AES-128 or GCM-AES-XPN-128, the length must be 32 hexadecimal characters. When the encryption algorithm type is GCM-AES-256 or GCM-AES-XPN-256, the length must be 64 hexadecimal characters.', 'type' => 'string', 'required' => true, 'example' => '0123456789ABCDEF0123456789ABCDEF'], ], ], 'responses' => [ @@ -48957,962 +39116,729 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '0ED8D006-F706-4D23-88ED-E11ED28DCAC0', - ], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'D32B3C26-6C6C-4988-93E9-D2A6444CE6AE', 'title' => ''], ], 'description' => '', + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidOperation.RouterInterfaceNotDeleted', - 'errorMessage' => 'The specified VirutalBorderRouter still has routerInterface.', - ], - [ - 'errorCode' => 'InvalidOperation.OperationNotAllowedInState', - 'errorMessage' => 'The specified VirutalBorderRouter is in invalid state.', - ], - [ - 'errorCode' => 'InvalidStatus.NotAllowed', - 'errorMessage' => 'The virtual border has been associated by physicalConnection.', - ], - [ - 'errorCode' => 'DependencyViolation.RouterInterfaceReferedByRouteEntry', - 'errorMessage' => 'The specified VirutalBorderRouter is refered by routeEntry.', - ], - [ - 'errorCode' => 'DependencyViolation.BgpGroup', - 'errorMessage' => 'bgp group exists, cannot delete vbr.', - ], - [ - 'errorCode' => 'DependencyViolation.Nqa', - 'errorMessage' => 'nqa exists, cannot delete vbr.', - ], - [ - 'errorCode' => 'DependencyViolation.BgpNetwork', - 'errorMessage' => 'bgp network exists, cannot delete vbr.', - ], - [ - 'errorCode' => 'OperationUnsupported.VBRAttachedCen', - 'errorMessage' => 'Operation failed because the VBR is attached to CEN.', - ], - [ - 'errorCode' => 'InvalidStatus.vbrAttatchToEcr', - 'errorMessage' => 'Invalid virtual border router ecr status.', - ], - ], - 403 => [ - [ - 'errorCode' => 'Forbidden.OperationDeleteNotAllowedByUser', - 'errorMessage' => 'The caller is not allowed to delete the specified VirtualBorderRouter.', - ], - [ - 'errorCode' => 'Forbidden.MultiVlanRi', - 'errorMessage' => 'Multiple vlan router interfaces are found.', - ], - [ - 'errorCode' => 'Forbidden.NoRiFound', - 'errorMessage' => 'No vlan router interfaces are found.', - ], - ], - [ - [ - 'errorCode' => 'InvalidRegionId.NotFound', - 'errorMessage' => 'The RegionId provided does not exist in our records.', - ], - [ - 'errorCode' => 'InvalidVbrId.NotFound', - 'errorMessage' => 'The specified VirutalBorderRouter does not exist in our records.', - ], - ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"0ED8D006-F706-4D23-88ED-E11ED28DCAC0\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 0ED8D006-F706-4D23-88ED-E11ED28DCAC0\\n","errorExample":"\\n\\n 0ED8D006-F706-4D23-88ED-E11ED28DCAC0\\n"}]', - 'title' => 'DeleteVirtualBorderRouter', - 'description' => 'Before you call this operation, take note of the following limits:'."\n" - ."\n" - .'* Before you delete a VBR, you must delete all router interfaces of the VBR.'."\n" - .'* You can delete only a VBR in the **unconfirmed**, **active**, or **terminated** state.'."\n" - .'* The owner of an Express Connect circuit can delete a VBR that belongs to another account only if the VBR is in the **unconfirmed** state.'."\n", - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', + ['errorCode' => 'IllegalParam.%s', 'errorMessage' => 'The param of %s is illegal.', 'description' => 'The parameter is invalid.'], + ['errorCode' => 'ResourceNotFound.PhysicalConnectionId', 'errorMessage' => 'The specified resource of [%s] is not found.', 'description' => 'The Express Connect circuit does not exist.'], + ['errorCode' => 'IncorrectStatus.PhysicalConnection', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => 'The status of the physical connection does not support this operation.'], + ['errorCode' => 'IncorrectStatus.PconnMacsec', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => 'The operation is not allowed because the MACSec key is in an unstable state.'], + ['errorCode' => 'ResourceNotFound.PconnMacsec', 'errorMessage' => 'The specified resource of %s is not found.', 'description' => 'The Ckn to be disassociated does not exist.'], + ], + ], + 'staticInfo' => ['returnType' => 'asynchronous', 'callback' => 'Vpc::2016-04-28::DescribePhysicalConnections', 'callbackInterval' => 5, 'maxCallbackTimes' => 50], + 'title' => 'Dissociate a mACsec key', + 'summary' => 'Dissociates a MACsec key from a dedicated Express Connect circuit port.', + 'description' => '- If you dissociate a key that is in the Associated state, the most recently activated key is automatically associated.'."\n" + .'- If you dissociate a key that is in the Disassociated state, the key is deleted.', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], + ], + 'ramActions' => [], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"D32B3C26-6C6C-4988-93E9-D2A6444CE6AE\\"\\n}","type":"json"}]', ], - 'UnassociatePhysicalConnectionFromVirtualBorderRouter' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DissociateRouteTableFromGateway' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], + 'operationType' => 'readAndWrite', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'update', + 'operationType' => 'get', + 'abilityTreeCode' => '38047', + 'abilityTreeNodes' => ['FEATUREvpcRPO4YI'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the Express Connect circuit.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The region ID of the IPv4 gateway from which you want to disassociate the gateway route table.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'ap-southeast-6'], ], [ - 'name' => 'VbrId', + 'name' => 'RouteTableId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the VBR that you want to disassociate from the Express Connect circuit.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'vbr-bp16ksp61j7e0tkn*****', - ], + 'schema' => ['description' => 'The ID of the gateway route table.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'vtb-5ts0ohchwkp3dydt2****'], ], [ - 'name' => 'PhysicalConnectionId', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the Express Connect circuit.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'pc-bp1qrb3044eqixog****', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'You can use the client to generate the value, but you must make sure that it is unique among different requests. The token can contain only ASCII characters and cannot exceed 64 characters in length.'."\n" + ."\n" + .'> If you do not set this parameter, the system automatically uses **RequestId** as **ClientToken**. **RequestId** may be different for each API request.'."\n", 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-426655440000'], ], [ - 'name' => 'ClientToken', + 'name' => 'DryRun', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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.'."\n" - ."\n" - .'> 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.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-426655440000', - ], + 'schema' => ['description' => 'Specifies whether to only precheck the request. Valid values:'."\n" + ."\n" + .'* **true**: prechecks the request without performing the operation. The system prechecks the required parameters, request syntax, and limits. If the request fails to pass the precheck, an error message is returned. If the request passes the precheck, the `DryRunOperation` error code is returned.'."\n" + .'* **false** (default): sends the request. After the request passes the precheck, a 2xx HTTP status code is returned and the operation is performed.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false'], + ], + [ + 'name' => 'GatewayId', + 'in' => 'query', + 'schema' => ['description' => 'The ID of the IPv4 gateway.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'ipv4gw-5tsnc6s4ogsedtp3k****'], + ], + [ + 'name' => 'GatewayType', + 'in' => 'query', + 'schema' => ['description' => 'The type of a gateway to be disassociated from a route table.', 'type' => 'string', 'required' => false, 'docRequired' => true, 'example' => 'Ipv4Gateway'], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => ['description' => 'The region ID of the IPv4 gateway from which you want to disassociate the gateway route table.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'ap-southeast-6'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => 'The request ID.'."\n", + 'description' => 'The returned information.', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '980960B0-2969-40BF-8542-EBB34FD358AB', - ], + 'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => 'C5644C9A-7480-13B6-AECB-30FF142E3724'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'PARAMETER_MUST_NOT_NULL', - 'errorMessage' => 'The specified physical connection id or vbrId must not be null.', - ], - [ - 'errorCode' => 'PHYSICAL_NOT_ASSOCIATE_TO_VBR', - 'errorMessage' => 'The specified PhysicalConnection have not associate to the vbr.', - ], - [ - 'errorCode' => 'ROUTER_INTERFACE_REFERED_BY_ROUTEENTRY', - 'errorMessage' => 'The specified VlanInterface has been used by routeEntry.', - ], - [ - 'errorCode' => 'InvalidStatus.NotAllowed', - 'errorMessage' => 'Invalid virtual border router status.', - ], - [ - 'errorCode' => 'PHYSICAL_NOT_ALLOW_ASSOCIATE_VBR', - 'errorMessage' => 'The specified operation not allow.', - ], - [ - 'errorCode' => 'Forbidden.OperationNotAllowed', - 'errorMessage' => 'The caller must be PhysicalConnection or VirtualBorderRouter\'s owner.', - ], - ], - 404 => [ - [ - 'errorCode' => 'InvalidRegionId.NotFound', - 'errorMessage' => 'The RegionId provided does not exist in our records.', - ], - [ - 'errorCode' => 'InvalidVbrId.NotFound', - 'errorMessage' => 'The specified VirutalBorderRouter does not exist in our records.', - ], + ['errorCode' => 'OperationFailed.NotExistAssociateRelation', 'errorMessage' => 'The operation is not failed because of not exist this associate relation.', 'description' => 'The system failed to disassociate the route table from the gateway because the route table is not associated with the gateway.'], + ['errorCode' => 'ResourceNotFound.Ipv4Gateway', 'errorMessage' => 'The specified resource ipv4Gateway is not found.', 'description' => 'The IPv4 gateway is not found and cannot be deleted.'], + ['errorCode' => 'IncorrectStatus.Ipv4Gateway', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => 'The IPv4 gateway is in an invalid state. Try again later.'], + ['errorCode' => 'ResourceNotFound.GatewayRouteTable', 'errorMessage' => 'The specified resource GatewayRouteTable is not found.', 'description' => 'The gateway route table cannot be found.'], + ['errorCode' => 'IncorrectStatus.GatewayRouteTable', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => 'The gateway route table is in an invalid state. Try again later.'], + ['errorCode' => 'ResourceNotFound.RouteTable', 'errorMessage' => 'The specified resource gatewayRouteTable is not found.', 'description' => 'The gateway route table does not exist.'], + ['errorCode' => 'OperationDenied.RouteTableTypeIncorrect', 'errorMessage' => 'The operation is not allowed because of %s.', 'description' => 'The gateway route table is not a border gateway route table.'], + ['errorCode' => 'IncorrectStatus.Ipv6Gateway', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => 'The IPv6 gateway is in an unstable state. Try again later.'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"980960B0-2969-40BF-8542-EBB34FD358AB\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 980960B0-2969-40BF-8542-EBB34FD358AB\\n","errorExample":""}]', - 'title' => 'UnassociatePhysicalConnectionFromVirtualBorderRouter', - 'summary' => 'Disassociates a virtual border router (VBR) from an Express Connect circuit.', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'UpdateVirtualBorderBandwidth' => [ - 'summary' => 'Updates the maximum bandwidth value of outbound data transfer for a virtual border router (VBR).', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'title' => 'DissociateRouteTableFromGateway', + 'summary' => 'Disassociates a gateway route table from an IPv4 gateway.', + 'changeSet' => [ + ['createdAt' => '2023-08-14T02:50:32.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2021-11-02T02:19:49.000Z', 'description' => 'OpenAPI offline'], ], - 'security' => [ - [ + 'ramActions' => [], + ], + 'DissociateRouteTablesFromVpcGatewayEndpoint' => [ + 'summary' => 'Disassociates a gateway endpoint from a route table.', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'readAndWrite', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'update', - 'riskType' => 'none', - 'chargeType' => 'free', - ], + 'systemTags' => ['operationType' => 'delete', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ - 'name' => 'RegionId', + 'name' => 'EndpointId', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the VBR.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-shanghai', - ], + 'schema' => ['title' => '', 'description' => 'The ID of the gateway endpoint to be disassociated from the route table.'."\n", 'type' => 'string', 'required' => true, 'example' => 'vpce-bp11cwae3p6z7ftbm****'], ], [ - 'name' => 'VirtualBorderRouterId', + 'name' => 'RouteTableIds', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => 'The ID of the VBR.'."\n", - 'type' => 'string', + 'title' => '', + 'description' => 'The ID of the route table. Valid values of **N** are **1** to **20**, which specifies that you can disassociate a gateway endpoint from at most 20 route tables at a time.'."\n", + 'type' => 'array', + 'items' => ['description' => 'The ID of the route table.', 'type' => 'string', 'required' => false, 'example' => 'vtb-m5elgtm3aj586iitr****', 'title' => ''], 'required' => true, - 'docRequired' => true, - 'example' => 'vbr-bp15zckdt37pq72****', + 'maxItems' => 20, + 'example' => 'vtb-m5elgtm3aj586iitr****', ], ], [ - 'name' => 'Bandwidth', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The new maximum bandwidth value for the VBR. Unit: Mbit/s.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'docRequired' => true, - 'example' => '2', - ], + 'schema' => ['title' => '', 'description' => 'The client token that is used to ensure the idempotence of the request. 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 and cannot exceed 64 characters in length.'."\n" + ."\n" + .'> 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.'."\n", 'type' => 'string', 'required' => false, 'example' => 'TF-DissociateRouteTablesFromVpcGatewayEndpoint-1634369235-8f****'], ], [ - 'name' => 'ClientToken', + 'name' => 'DryRun', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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.'."\n" - ."\n" - .'> 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.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '02fb3da4-130e-11e9-8e44-0016****', - ], + 'schema' => ['title' => '', 'description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values:'."\n" + ."\n" + .'* **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.'."\n" + .'* **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.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false'], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => ['title' => '', 'description' => 'The region ID of the gateway endpoint.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'example' => 'cn-hangzhou'], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'title' => '', + 'description' => 'The returned information.', 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => 'The error code.'."\n", - 'type' => 'string', - 'example' => 'OK', - ], - 'HttpStatusCode' => [ - 'description' => 'The HTTP status code.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '200', - ], - 'Message' => [ - 'description' => 'The returned message.'."\n", - 'type' => 'string', - 'example' => 'none', - ], - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => 'AA4486A8-B6AE-469E-AB09-820EF8ECFA2B', - ], - 'Success' => [ - 'description' => 'Indicates whether the operation is successful. Valid values:'."\n" - ."\n" - .'* **true**'."\n" - .'* **false**'."\n", - 'type' => 'boolean', - 'example' => 'true', - ], + 'RequestId' => ['title' => '', 'description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '30F711D5-E7E2-5D42-A247-0FA7288BEAAA'], ], - 'description' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'OperationFailed.Vpconn', - 'errorMessage' => 'The operation is failed because of Vpconn.', - ], - [ - 'errorCode' => 'MissingParam.InstanceId', - 'errorMessage' => 'Missing param of InstanceId.', - ], - [ - 'errorCode' => 'InvalidInstanceId.NotFound', - 'errorMessage' => 'InstanceId not found.', - ], - [ - 'errorCode' => 'MissingParam.Bandwidth', - 'errorMessage' => 'Missing param of Bandwidth.', - ], - [ - 'errorCode' => 'IllegalParam.Bandwidth', - 'errorMessage' => 'Illegal Param of Bandwidth.', - ], - [ - 'errorCode' => 'MissingParam.regionNo', - 'errorMessage' => 'Missing param of regionNo.', - ], - [ - 'errorCode' => 'QuotaExceeded.VirtualBorderRouterBandwidth', - 'errorMessage' => 'Quota Exceeded of VirtualBorderRouterBandwidth', - ], - [ - 'errorCode' => 'OperationUnsupported.SetMultiPconnBandwidth', - 'errorMessage' => 'Set Multi PhysicalConnection Bandwidth Unsupported.', - ], - [ - 'errorCode' => 'OperationUnsupported.ModifyBandwidth', - 'errorMessage' => 'Modify Sale VirtualBorderRouter Bandwidth Unsupported.', - ], - [ - 'errorCode' => 'OperationFailed.PconnTrafficNotEnable', - 'errorMessage' => 'The operation is failed because of PconnTrafficNotEnable.', + ['errorCode' => 'OperationFailed.ConcurrentOperation', 'errorMessage' => 'The operation is failed because of concurrent operation.', 'description' => ''], + ['errorCode' => 'IdempotentParameterMismatch', 'errorMessage' => 'The request uses the same client token as a previous, but non-identical request. Do not reuse a client token with different requests, unless the requests are identical.', 'description' => ''], + ['errorCode' => 'ResourceNotFound.GatewayEndpoint', 'errorMessage' => 'The specified resource gateway endpoint is not found.', 'description' => 'The error message returned because the specified gateway endpoint does not exist.'], + ['errorCode' => 'IncorrectStatus.GatewayEndpoint', 'errorMessage' => 'The status of GatewayEndpoint [%s] is incorrect.', 'description' => ''], + ['errorCode' => 'ResourceNotFound.RouteTable', 'errorMessage' => 'The specified resource routetable is not found.', 'description' => ''], + ['errorCode' => 'IncorrectStatus.RouteTable', 'errorMessage' => 'The status of route table [%s] is incorrect.', 'description' => ''], + ['errorCode' => 'ResourceNotFound.Association', 'errorMessage' => 'The specified resource gateway endpoint is not associated.', 'description' => ''], + ['errorCode' => 'IncorrectStatus.RouteEntry', 'errorMessage' => 'Some route entry status blocked this operation.', 'description' => ''], + ['errorCode' => 'Forbbiden', 'errorMessage' => 'User not authorized to operate on the specified resource.', 'description' => ''], + ['errorCode' => 'InvalidRegionId.NotFound', 'errorMessage' => 'The regionId provided does not exist in our records.', 'description' => 'The RegionId parameter is set to an invalid value. Specify a valid value and try again.'], + ['errorCode' => 'IncorrectStatus.CenStatus', 'errorMessage' => 'The CenStatus of Vpc is incorrect.', 'description' => ''], + ['errorCode' => 'ResourceNotFound.RouteEntry', 'errorMessage' => 'The specified resource is not found.', 'description' => ''], + ], + ], + 'staticInfo' => ['returnType' => 'asynchronous', 'callback' => 'Vpc::2016-04-28::ListVpcGatewayEndpoints', 'callbackInterval' => 3000, 'maxCallbackTimes' => 10], + 'title' => 'DissociateRouteTablesFromVpcGatewayEndpoint', + 'changeSet' => [ + ['createdAt' => '2021-11-17T03:28:12.000Z', 'description' => 'Error codes changed'], + ], + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'vpc:DissociateRouteTablesFromVpcGatewayEndpoint', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'GatewayEndpoint', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:gatewayendpoint/{#GatewayEndpointId}'], + ], ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"200\\",\\n \\"HttpStatusCode\\": 200,\\n \\"Message\\": \\"successful\\",\\n \\"RequestId\\": \\"AA4486A8-B6AE-469E-AB09-820EF8ECFA2B\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n 200\\n 200\\n successful\\n AA4486A8-B6AE-469E-AB09-820EF8ECFA2B\\n true\\n","errorExample":""}]', - 'title' => 'UpdateVirtualBorderBandwidth', + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"30F711D5-E7E2-5D42-A247-0FA7288BEAAA\\"\\n}","type":"json"}]', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'ModifyVirtualBorderRouterAttribute' => [ - 'summary' => 'Modifies the configuration of a virtual border router (VBR).', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '600', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DissociateRouteTablesFromVpcGatewayEndpoint'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], ], + ], + 'DissociateVpnGatewayWithCertificate' => [ + 'summary' => 'Disassociates a certificate from a VPN gateway.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'write', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'update', - 'riskType' => 'none', - 'chargeType' => 'free', - 'autoTest' => true, - 'tenantRelevance' => 'tenant', - ], + 'systemTags' => ['operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', 'tenantRelevance' => 'tenant'], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the VBR.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-shanghai', - ], + 'schema' => ['description' => 'The region ID of the VPN gateway.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'VbrId', + 'name' => 'VpnGatewayId', 'in' => 'query', - 'schema' => [ - 'description' => 'The VBR ID.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'vbr-bp1lhl0taikrte****', - ], + 'schema' => ['description' => 'The ID of the VPN gateway.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'vpn-bp1q8bgx4xnkm2ogj****', 'title' => ''], ], [ - 'name' => 'VlanId', + 'name' => 'CertificateType', 'in' => 'query', - 'schema' => [ - 'description' => 'The VLAN ID of the VBR. Valid values: **0 to 2999**.'."\n" - ."\n" - .'> This parameter is available only to Express Connect owners. The VLAN IDs of VBRs on the same Express Connect circuit must be unique.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '0', - ], + 'schema' => ['description' => 'The certificate type. Valid values:'."\n" + ."\n" + .'* **Encryption**'."\n" + .'* **Signature**'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'Encryption', 'title' => ''], ], [ - 'name' => 'CircuitCode', + 'name' => 'CertificateId', 'in' => 'query', - 'schema' => [ - 'description' => 'The circuit code of the Express Connect circuit. The circuit code is provided by the connectivity provider.'."\n" - ."\n" - .'> Only the owner of the Express Connect circuit can set this property.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'longtel001', - ], + 'schema' => ['description' => 'The ID of the certificate.'."\n" + ."\n" + .'> The certificate ID refers to the ID generated after the SSL certificate is associated with the VPN gateway. It is not the ID of the SSL certificate.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '6bfe4218-ea1d****', 'title' => ''], ], [ - 'name' => 'LocalGatewayIp', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The IP address of the VBR.'."\n" - ."\n" - .'Only the owner of the VBR can set or modify this parameter.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '192.168.XX.XX', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'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.'."\n" + ."\n" + .'> 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.'."\n", 'type' => 'string', 'required' => false, 'example' => '02fb3da4-130e*******', 'title' => ''], ], [ - 'name' => 'PeerGatewayIp', + 'name' => 'DryRun', 'in' => 'query', - 'schema' => [ - 'description' => 'The IP address of the gateway device in the data center.'."\n" - ."\n" - .'Only the owner of the VBR can set or modify this parameter.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '192.168.XX.X', - ], + 'schema' => ['description' => 'Specifies whether to perform a dry run, without performing the actual request. Valid values:'."\n" + ."\n" + .'* **true**: performs a dry run. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request passes the dry run, the `DryRunOperation` error code is returned. Otherwise, an error message is returned.'."\n" + .'* **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.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], ], - [ - 'name' => 'PeeringSubnetMask', - 'in' => 'query', + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => 'The subnet mask for the IP addresses of the gateway devices on the Alibaba Cloud side and on the customer side. Only the owner of the VBR can set or modify this parameter.'."\n" - ."\n" - .'The two IP addresses must fall within the same subnet.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '255.255.255.252', + 'description' => 'The returned data.'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '611CB80C-B6A9-43DB-9E38-0B0AC3D9B58F', 'title' => ''], + ], + 'title' => '', + 'example' => '', ], ], - [ - 'name' => 'MinTxInterval', - 'in' => 'query', - 'schema' => [ - 'description' => 'The time interval to send BFD packets. Valid values: **200 to 1000**. Unit: milliseconds.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '300', - ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'IllegalParam.CertificateType', 'errorMessage' => 'The specified certificate type (%s) is invalid.', 'description' => ''], + ['errorCode' => 'VpnGateway.Configuring', 'errorMessage' => 'The specified service is configuring.', 'description' => ''], ], - [ - 'name' => 'MinRxInterval', - 'in' => 'query', - 'schema' => [ - 'description' => 'The time interval to receive BFD packets. Valid values: **200 to 1000**. Unit: milliseconds.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '300', - ], + 403 => [ + ['errorCode' => 'Forbidden', 'errorMessage' => 'User not authorized to operate on the specified resource.', 'description' => 'You do not have the permissions to manage the specified resource. Apply for the permissions and try again.'], ], [ - 'name' => 'DetectMultiplier', - 'in' => 'query', - 'schema' => [ - 'description' => 'The maximum number of dropped packets that is allowed by the receiver when the initiator transmits packets. This value can be used to check whether a connection works as expected.'."\n" - ."\n" - .'Valid values: **3 to 10**.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '3', - ], + ['errorCode' => 'InvalidVpnGatewayInstanceId.NotFound', 'errorMessage' => 'The specified vpn gateway instance id does not exist.', 'description' => ''], + ['errorCode' => 'InvalidAssociateRelation.NotFound', 'errorMessage' => 'The specified association does not exist.', 'description' => ''], ], - [ - 'name' => 'Description', - 'in' => 'query', - 'schema' => [ - 'description' => 'The description of the VBR.'."\n" - ."\n" - .'It must be 2 to 256 characters in length. It must start with a letter but cannot start with `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'desc', - ], + 409 => [ + ['errorCode' => 'OperationConflict', 'errorMessage' => 'The operation against this instance is too frequent, please try again later.', 'description' => 'Operations are too frequently performed on the instance. Try again later.'], ], + ], + 'staticInfo' => ['returnType' => 'asynchronous', 'callback' => 'Vpc::2016-04-28::DescribeVpnGateway', 'callbackInterval' => 1000, 'maxCallbackTimes' => 30], + 'title' => 'DissociateVpnGatewayWithCertificate', + 'description' => '* **DissociateVpnGatewayWithCertificate** is an asynchronous operation. After a request is sent, the system returns a request and runs the task in the background. You can call the [DescribeVpnGateway](~~73720~~) operation to query the status the task.'."\n" + ."\n" + .' * If the VPN gateway is in the **updating** state, the SSL certificate is being disassociated from the VPN gateway.'."\n" + .' * If the VPN gateway is in the **active** state, the SSL certificate is disassociated from the VPN gateway.'."\n" + ."\n" + .'* You cannot repeatedly call **DissociateVpnGatewayWithCertificate** within a specific period of time.'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"611CB80C-B6A9-43DB-9E38-0B0AC3D9B58F\\"\\n}","errorExample":""},{"type":"xml","example":" \\r\\n611CB80C-B6A9-43DB-9E38-0B0AC3D9B58F\\r\\n ","errorExample":""}]', + ], + 'DownloadVpnConnectionConfig' => [ + 'summary' => 'Queries the configuration of an IPsec-VPN connection.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'Name', - 'in' => 'query', - 'schema' => [ - 'description' => 'The name of the VBR.'."\n" - ."\n" - .'The name must be 2 to 128 characters in length, and can contain letters, digits, underscores (\\_), and hyphens (-). The name must start with a letter. It cannot start with `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'VBR', - ], + 'AK' => [], ], + ], + 'operationType' => 'read', + 'systemTags' => ['operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free'], + 'parameters' => [ [ - 'name' => 'AssociatedPhysicalConnections', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The information about the Express Connect circuit associated with the VBR, including the following parameters:'."\n" - ."\n" - .'* **CircuitCode**: the circuit code provided by the connectivity provider for the Express Connect circuit.'."\n" - .'* **LocalGatewayIp**: the IP address of the gateway device on the Alibaba Cloud side.'."\n" - .'* **PeerGatewayIp**: the IP address of the gateway device on the customer side.'."\n" - .'* **PeeringSubnetMask**: the subnet mask for the IP addresses of gateway devices on the Alibaba Cloud side and the customer side.'."\n" - .'* **PhysicalConnectionId**: the ID of the Express Connect circuit.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '[ { "CircuitCode ": "longtel001", " LocalGatewayIp ": "192.168.XX.XX", "PeerGatewayIp" : "192.168.XX.XX", " PeeringSubnetMask ": "255.255.255.252", " PhysicalConnectionId ": "pc-kojok19****" } ]', - ], + 'schema' => ['description' => 'The ID of the region where the IPsec-VPN connection is created.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-shanghai', 'title' => ''], ], [ - 'name' => 'ClientToken', + 'name' => 'VpnConnectionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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.'."\n" - ."\n" - .'> 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.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '02fb3da4-130e-11e9-8e44-00****', - ], + 'schema' => ['description' => 'The ID of the IPsec-VPN connection.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'vco-bp1bbi27hojx80nck****', 'title' => ''], ], - [ - 'name' => 'LocalIpv6GatewayIp', - 'in' => 'query', + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => 'The IPv6 address of the VBR.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '2001:XXXX:3c4d:0015:0000:0000:0000:1a2b', + 'description' => 'The returned data.'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '0C68048B-0F70-40DA-B8AE-1B79B5CF62E3', 'title' => ''], + 'VpnConnectionConfig' => [ + 'description' => 'The configurations of the peer gateway device.'."\n", + 'type' => 'object', + 'properties' => [ + 'Remote' => ['description' => 'The identifier of the VPN gateway.'."\n", 'type' => 'string', 'example' => '116.62.XX.XX', 'title' => ''], + 'Local' => ['description' => 'The identifier of the customer gateway.'."\n", 'type' => 'string', 'example' => '139.196.XX.XX', 'title' => ''], + 'RemoteSubnet' => ['description' => 'The CIDR block on the virtual private cloud (VPC) side.'."\n", 'type' => 'string', 'example' => '192.168.0.0/16', 'title' => ''], + 'LocalSubnet' => ['description' => 'The CIDR block on the data center side.'."\n", 'type' => 'string', 'example' => '10.0.0.0/8', 'title' => ''], + 'IkeConfig' => [ + 'description' => 'The configurations of Phase 1 negotiations.'."\n", + 'type' => 'object', + 'properties' => [ + 'RemoteId' => ['description' => 'The identifier of the VPN gateway. FQDN and IP formats are supported. The default value is the IP address of the VPN gateway.'."\n", 'type' => 'string', 'example' => '116.62.XX.XX', 'title' => ''], + 'IkeLifetime' => ['description' => 'The lifetime in the IKE phase. Unit: seconds.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '86400', 'title' => ''], + 'IkeEncAlg' => ['description' => 'The encryption algorithm in the IKE phase.'."\n", 'type' => 'string', 'example' => 'aes', 'title' => ''], + 'LocalId' => ['description' => 'The identifier of the customer gateway. FQDN and IP formats are supported. The default value is the IP address of the customer gateway.'."\n", 'type' => 'string', 'example' => '139.196.XX.XX', 'title' => ''], + 'IkeMode' => ['description' => 'The IKE negotiation mode. Valid values:'."\n" + ."\n" + .'* **main**: This mode offers higher security during negotiations.'."\n" + .'* **aggressive**: This mode is faster and has a higher success rate.'."\n", 'type' => 'string', 'example' => 'main', 'title' => ''], + 'IkeVersion' => ['description' => 'The IKE version.'."\n", 'type' => 'string', 'example' => 'ikev2', 'title' => ''], + 'IkePfs' => ['description' => 'The DH group in the IKE phase.'."\n", 'type' => 'string', 'example' => 'group2', 'title' => ''], + 'Psk' => ['description' => 'The pre-shared key.'."\n", 'type' => 'string', 'example' => 'pgw6dy7d1i8i****', 'title' => ''], + 'IkeAuthAlg' => ['description' => 'The authentication algorithm in the IKE phase.'."\n", 'type' => 'string', 'example' => 'sha1', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'IpsecConfig' => [ + 'description' => 'The configurations of Phase 2 negotiations.'."\n", + 'type' => 'object', + 'properties' => [ + 'IpsecAuthAlg' => ['description' => 'The authentication algorithm in the IPsec phase.'."\n", 'type' => 'string', 'example' => 'sha1', 'title' => ''], + 'IpsecEncAlg' => ['description' => 'The encryption algorithm in the IPsec phase.'."\n", 'type' => 'string', 'example' => 'aes', 'title' => ''], + 'IpsecLifetime' => ['description' => 'The lifetime in the IPsec phase. Unit: seconds.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '86400', 'title' => ''], + 'IpsecPfs' => ['description' => 'The DH group in the IPsec phase.'."\n", 'type' => 'string', 'example' => 'group2', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'TunnelsConfig' => [ + 'items' => [ + 'description' => '隧道的配置信息。', + 'type' => 'object', + 'properties' => [ + 'TunnelId' => ['name' => 'TunnelId', 'description' => '隧道ID。', 'visibility' => 'Public', 'type' => 'string', 'example' => 'tun-opsqc4d97wni27****', 'backendName' => 'tunnelId'], + 'Local' => ['name' => 'Local', 'description' => '本地IDC侧隧道的标识。', 'visibility' => 'Public', 'type' => 'string', 'example' => '47.21.XX.XX', 'backendName' => 'local'], + 'Remote' => ['name' => 'Remote', 'description' => '阿里云侧隧道的标识。', 'visibility' => 'Public', 'type' => 'string', 'example' => '47.24.XX.XX', 'backendName' => 'remote'], + 'IkeConfig' => [ + 'name' => 'IkeConfig', + 'description' => '第一阶段协商的配置信息。 ', + 'visibility' => 'Public', + 'type' => 'object', + 'properties' => [ + 'Psk' => ['name' => 'Psk', 'description' => '预共享密钥。', 'visibility' => 'Public', 'type' => 'string', 'example' => 'pgw6dy7d1i8i****', 'backendName' => 'psk'], + 'IkeVersion' => ['name' => 'IkeVersion', 'description' => 'IKE协议的版本。', 'visibility' => 'Public', 'type' => 'string', 'example' => 'ikev2', 'backendName' => 'ikeVersion'], + 'IkeMode' => ['name' => 'IkeMode', 'description' => 'IKE协商模式。'."\n" + ."\n" + .'- **main**:主模式,协商过程安全性高。'."\n" + .'- **aggressive**:野蛮模式,协商快速且协商成功率高。', 'visibility' => 'Public', 'type' => 'string', 'example' => 'main', 'backendName' => 'ikeMode'], + 'IkeEncAlg' => ['name' => 'IkeEncAlg', 'description' => 'IKE阶段加密算法。', 'visibility' => 'Public', 'type' => 'string', 'example' => 'aes', 'backendName' => 'ikeEncAlg'], + 'IkeAuthAlg' => ['name' => 'IkeAuthAlg', 'description' => 'IKE阶段认证算法。', 'visibility' => 'Public', 'type' => 'string', 'example' => 'sha1', 'backendName' => 'ikeAuthAlg'], + 'IkePfs' => ['name' => 'IkePfs', 'description' => 'IKE阶段DH分组。', 'visibility' => 'Public', 'type' => 'string', 'example' => 'group2', 'backendName' => 'ikePfs'], + 'IkeLifetime' => ['name' => 'IkeLifetime', 'description' => 'IKE阶段生存时间。单位:秒。', 'visibility' => 'Public', 'type' => 'integer', 'format' => 'int64', 'example' => '86400', 'backendName' => 'ikeLifetime'], + 'LocalId' => ['name' => 'LocalId', 'description' => '本地IDC侧隧道的标识。', 'visibility' => 'Public', 'type' => 'string', 'example' => '47.21.XX.XX', 'backendName' => 'localId'], + 'RemoteId' => ['name' => 'RemoteId', 'description' => '阿里云侧隧道的标识。', 'visibility' => 'Public', 'type' => 'string', 'example' => '47.24.XX.XX', 'backendName' => 'remoteId'], + ], + 'backendName' => 'ikeConfig', + ], + 'IpsecConfig' => [ + 'name' => 'IpsecConfig', + 'description' => '第二阶段协商的配置信息。 ', + 'visibility' => 'Public', + 'type' => 'object', + 'properties' => [ + 'IpsecAuthAlg' => ['name' => 'IpsecAuthAlg', 'description' => 'IPsec阶段认证算法。', 'type' => 'string', 'example' => 'sha1', 'backendName' => 'ipsecAuthAlg'], + 'IpsecEncAlg' => ['name' => 'IpsecEncAlg', 'description' => 'IPsec阶段加密算法。', 'visibility' => 'Public', 'type' => 'string', 'example' => 'aes', 'backendName' => 'ipsecEncAlg'], + 'IpsecPfs' => ['name' => 'IpsecPfs', 'description' => 'IPsec阶段DH分组。', 'visibility' => 'Public', 'type' => 'string', 'example' => 'group2', 'backendName' => 'ipsecPfs'], + 'IpsecLifetime' => ['name' => 'IpsecLifetime', 'description' => 'IPsec阶段生存时间。单位:秒。', 'visibility' => 'Public', 'type' => 'integer', 'format' => 'int64', 'example' => '86400', 'backendName' => 'ipsecLifetime'], + ], + 'backendName' => 'ipsecConfig', + ], + ], + 'extendType' => 'true', + ], + 'type' => 'object', + 'description' => '', + 'properties' => [ + 'TunnelConfig' => [ + 'description' => 'Tunnel configuration information for the peer gateway device of the IPsec-VPN connection.'."\n" + ."\n" + .'Parameters under the **TunnelsConfig** array are returned only for IPsec-VPN connections in dual-tunnel mode.', + 'type' => 'array', + 'items' => [ + 'description' => 'Configuration information of the tunnel.', + 'type' => 'object', + 'properties' => [ + 'TunnelId' => ['description' => 'Tunnel ID.', 'type' => 'string', 'example' => 'tun-opsqc4d97wni27****', 'title' => ''], + 'Local' => ['description' => 'Identity of the tunnel on the self-managed data center side.', 'type' => 'string', 'example' => '47.21.XX.XX', 'title' => ''], + 'Remote' => ['description' => 'Identity of the tunnel on the Alibaba Cloud side.', 'type' => 'string', 'example' => '47.24.XX.XX', 'title' => ''], + 'IkeConfig' => [ + 'description' => 'Configuration information for Phase 1 negotiation. ', + 'type' => 'object', + 'properties' => [ + 'Psk' => ['description' => 'Pre-shared key. ', 'type' => 'string', 'example' => 'pgw6dy7d1i8i****', 'title' => ''], + 'IkeVersion' => ['description' => 'Version of the IKE protocol. ', 'type' => 'string', 'example' => 'ikev2', 'title' => ''], + 'IkeMode' => ['description' => 'IKE negotiation mode. '."\n" + ."\n" + .'- **main**: Main mode, which provides high security during the negotiation procedure. '."\n" + .'- **aggressive**: Aggressive mode, which enables fast negotiation and a high negotiation success rate.', 'type' => 'string', 'example' => 'main', 'title' => ''], + 'IkeEncAlg' => ['description' => 'Encryption algorithm for the IKE phase. ', 'type' => 'string', 'example' => 'aes', 'title' => ''], + 'IkeAuthAlg' => ['description' => 'Authentication algorithm for the IKE phase. ', 'type' => 'string', 'example' => 'sha1', 'title' => ''], + 'IkePfs' => ['description' => 'IKE phase Diffie-Hellman (DH) group. ', 'type' => 'string', 'example' => 'group2', 'title' => ''], + 'IkeLifetime' => ['description' => 'IKE phase lifetime. Unit: seconds. ', 'type' => 'integer', 'format' => 'int64', 'example' => '86400', 'title' => ''], + 'LocalId' => ['description' => 'Identity of the tunnel on the local self-managed data center side. ', 'type' => 'string', 'example' => '47.21.XX.XX', 'title' => ''], + 'RemoteId' => ['description' => 'Identity of the tunnel on the Alibaba Cloud side. ', 'type' => 'string', 'example' => '47.24.XX.XX', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'IpsecConfig' => [ + 'description' => 'Configuration information for Phase 2 negotiation.', + 'type' => 'object', + 'properties' => [ + 'IpsecAuthAlg' => ['description' => 'IPsec authentication algorithm.', 'type' => 'string', 'example' => 'sha1', 'title' => ''], + 'IpsecEncAlg' => ['description' => 'IPsec encryption algorithm.', 'type' => 'string', 'example' => 'aes', 'title' => ''], + 'IpsecPfs' => ['description' => 'IPsec phase Diffie-Hellman (DH) group.', 'type' => 'string', 'example' => 'group2', 'title' => ''], + 'IpsecLifetime' => ['description' => 'IPsec lifetime. Unit: seconds.', 'type' => 'integer', 'format' => 'int64', 'example' => '86400', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + ], + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + ], + 'itemNode' => true, + 'title' => '', + 'example' => '', + ], + 'BgpConfigs' => [ + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'LocalAsn' => ['name' => 'LocalAsn', 'type' => 'string', 'backendName' => 'localAsn'], + 'LocalBgpIp' => ['name' => 'LocalBgpIp', 'type' => 'string', 'backendName' => 'localBgpIp'], + 'PeerAsn' => ['name' => 'PeerAsn', 'type' => 'string', 'backendName' => 'peerAsn'], + 'PeerBgpIp' => ['name' => 'PeerBgpIp', 'type' => 'string', 'backendName' => 'peerBgpIp'], + 'TunnelCidr' => ['name' => 'TunnelCidr', 'type' => 'string', 'backendName' => 'tunnelCidr'], + 'TunnelId' => ['name' => 'TunnelId', 'type' => 'string', 'backendName' => 'tunnelId'], + ], + 'extendType' => 'true', + ], + 'type' => 'object', + 'description' => '', + 'properties' => [ + 'BgpConfig' => [ + 'description' => 'The Border Gateway Protocol (BGP) configuration information. ', + 'type' => 'array', + 'items' => [ + 'description' => 'The Border Gateway Protocol (BGP) configuration information. ', + 'type' => 'object', + 'properties' => [ + 'LocalAsn' => ['description' => 'The autonomous system number of the self-managed data center. ', 'type' => 'string', 'example' => '1219002', 'title' => ''], + 'LocalBgpIp' => ['description' => 'The BGP IP address on the self-managed data center side.', 'type' => 'string', 'example' => '169.254.20.2', 'title' => ''], + 'PeerAsn' => ['description' => 'The autonomous system number on the Alibaba Cloud side.', 'type' => 'string', 'example' => '1219001', 'title' => ''], + 'PeerBgpIp' => ['description' => 'The BGP IP address on the Alibaba Cloud side.', 'type' => 'string', 'example' => '169.254.20.1', 'title' => ''], + 'TunnelCidr' => ['description' => 'The BGP CIDR block of the tunnel. ', 'type' => 'string', 'example' => '169.254.20.0/30', 'title' => ''], + 'TunnelId' => ['description' => 'The tunnel ID.', 'type' => 'string', 'example' => 'tun-900ghtunmhp75r14wh', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + ], + 'itemNode' => true, + 'title' => '', + 'example' => '', + ], + ], + 'title' => '', + 'example' => '', + ], + ], + 'title' => '', + 'example' => '', ], ], + ], + 'errorCodes' => [ + 403 => [ + ['errorCode' => 'Forbbiden.SubUser', 'errorMessage' => 'User not authorized to operate on the specified resource as your account is created by another user.', 'description' => ''], + ['errorCode' => 'Forbidden', 'errorMessage' => 'User not authorized to operate on the specified resource.', 'description' => 'You do not have the permissions to manage the specified resource. Apply for the permissions and try again.'], + ], [ - 'name' => 'PeerIpv6GatewayIp', - 'in' => 'query', - 'schema' => [ - 'description' => 'The IPv6 address of the gateway device in the data center.'."\n" - ."\n" - .'* Only the owner of the VBR can set or modify this property.'."\n" - .'* This property is required when you create a VBR for the owner of the Express Connect circuit. You can ignore this property when you create a VBR for another Alibaba Cloud account.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '2001:XXXX:3c4d:0015:0000:0000:0000:2a2b', - ], + ['errorCode' => 'InvalidVpnConnectionInstanceId.NotFound', 'errorMessage' => 'The specified vpn connection instance id does not exist.', 'description' => 'The specified vpn connection instance id does not exist.'], ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'DownloadVpnConnectionConfig', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2025-05-23T06:50:35.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2023-08-01T06:15:53.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2023-06-13T09:30:08.000Z', 'description' => 'Response parameters changed'], + ], + 'ramActions' => [], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"0C68048B-0F70-40DA-B8AE-1B79B5CF62E3\\",\\n \\"VpnConnectionConfig\\": {\\n \\"Remote\\": \\"116.62.XX.XX\\",\\n \\"Local\\": \\"139.196.XX.XX\\",\\n \\"RemoteSubnet\\": \\"192.168.0.0/16\\",\\n \\"LocalSubnet\\": \\"10.0.0.0/8\\",\\n \\"IkeConfig\\": {\\n \\"RemoteId\\": \\"116.62.XX.XX\\",\\n \\"IkeLifetime\\": 86400,\\n \\"IkeEncAlg\\": \\"aes\\",\\n \\"LocalId\\": \\"139.196.XX.XX\\",\\n \\"IkeMode\\": \\"main\\",\\n \\"IkeVersion\\": \\"ikev2\\",\\n \\"IkePfs\\": \\"group2\\",\\n \\"Psk\\": \\"pgw6dy7d1i8i****\\",\\n \\"IkeAuthAlg\\": \\"sha1\\"\\n },\\n \\"IpsecConfig\\": {\\n \\"IpsecAuthAlg\\": \\"sha1\\",\\n \\"IpsecEncAlg\\": \\"aes\\",\\n \\"IpsecLifetime\\": 86400,\\n \\"IpsecPfs\\": \\"group2\\"\\n },\\n \\"TunnelsConfig\\": {\\n \\"TunnelConfig\\": [\\n {\\n \\"TunnelId\\": \\"tun-opsqc4d97wni27****\\",\\n \\"Local\\": \\"47.21.XX.XX\\",\\n \\"Remote\\": \\"47.24.XX.XX\\",\\n \\"IkeConfig\\": {\\n \\"Psk\\": \\"pgw6dy7d1i8i****\\",\\n \\"IkeVersion\\": \\"ikev2\\",\\n \\"IkeMode\\": \\"main\\",\\n \\"IkeEncAlg\\": \\"aes\\",\\n \\"IkeAuthAlg\\": \\"sha1\\",\\n \\"IkePfs\\": \\"group2\\",\\n \\"IkeLifetime\\": 86400,\\n \\"LocalId\\": \\"47.21.XX.XX\\",\\n \\"RemoteId\\": \\"47.24.XX.XX\\"\\n },\\n \\"IpsecConfig\\": {\\n \\"IpsecAuthAlg\\": \\"sha1\\",\\n \\"IpsecEncAlg\\": \\"aes\\",\\n \\"IpsecPfs\\": \\"group2\\",\\n \\"IpsecLifetime\\": 86400\\n }\\n }\\n ]\\n },\\n \\"BgpConfigs\\": {\\n \\"BgpConfig\\": [\\n {\\n \\"LocalAsn\\": \\"1219002\\",\\n \\"LocalBgpIp\\": \\"169.254.20.2\\",\\n \\"PeerAsn\\": \\"1219001\\",\\n \\"PeerBgpIp\\": \\"169.254.20.1\\",\\n \\"TunnelCidr\\": \\"169.254.20.0/30\\",\\n \\"TunnelId\\": \\"tun-900ghtunmhp75r14wh\\"\\n }\\n ]\\n }\\n }\\n}","type":"json"}]', + 'translator' => 'machine', + ], + 'EnablePhysicalConnection' => [ + 'summary' => 'Enables a physical connection in the Confirmed state. After the operation is complete, the connection enters the Enabled state.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'PeeringIpv6SubnetMask', - 'in' => 'query', - 'schema' => [ - 'description' => 'The subnet mask of the IPv6 addresses of the VBR and the gateway device in the data center.'."\n" - ."\n" - .'The two IPv6 addresses must fall within the same subnet.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '2408:4004:cc:400::/56', - ], + 'AK' => [], ], + ], + 'operationType' => 'readAndWrite', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'update', 'riskType' => 'high', 'chargeType' => 'paid'], + 'parameters' => [ [ - 'name' => 'EnableIpv6', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to enable IPv6. Valid values:'."\n" - ."\n" - .'* **true**'."\n" - .'* **false** (default)'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['description' => 'The ID of the region where the physical connection is located.'."\n" + ."\n" + .'You can call `DescribeRegions` to get the latest region IDs.', 'type' => 'string', 'required' => true, 'example' => 'cn-shanghai', 'title' => ''], ], [ - 'name' => 'Bandwidth', + 'name' => 'PhysicalConnectionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The bandwidth value. Unit: Mbit/s.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '100', - ], + 'schema' => ['description' => 'The ID of the physical connection.', 'type' => 'string', 'required' => true, 'example' => 'pc-2zeoaxkq3x****', 'title' => ''], ], [ - 'name' => 'SitelinkEnable', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'Indicates whether to allow service access between data centers. Valid values:'."\n" - ."\n" - .'- **true**'."\n" - .'- **false**', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['description' => 'A client-generated token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'The token must be unique across requests. The token can contain a maximum of 64 ASCII characters.', 'type' => 'string', 'required' => false, 'example' => '02fb3da4-130e-11e9-8e44-0016e04115b', 'title' => ''], ], [ - 'name' => 'Mtu', + 'name' => 'ByPassSp', 'in' => 'query', - 'schema' => [ - 'type' => 'integer', - 'format' => 'int32', - ], + 'schema' => ['description' => 'Specifies whether to bypass the service provider (SP) subscription lifecycle. Valid values:'."\n" + ."\n" + .'- **true**: Bypasses the SP subscription lifecycle. This means the instance is no longer managed by the Alibaba Cloud subscription system.'."\n" + ."\n" + .'- **false** (default): Does not bypass the SP subscription lifecycle.'."\n" + ."\n" + .'> To use this feature, contact your account manager.', 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => 'The request ID.'."\n", 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '980960B0-2969-40BF-8542-EBB34FD358AB', - ], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '20365164-5b0d-460a-83c2-2189972b3349', 'title' => ''], ], + 'description' => 'The response body.', + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'IllegalParam.AssociatedPhysicalConnections', - 'errorMessage' => 'The specified AssociatedPhysicalConnections is illegal.', - ], - [ - 'errorCode' => 'IllegalParam.IpAddress', - 'errorMessage' => 'The specified IpAddress is illegal.', - ], - [ - 'errorCode' => 'IllegalParam.CidrBlock', - 'errorMessage' => 'The specified CidrBlock is illegal.', - ], - [ - 'errorCode' => 'InvalidVbrId.NotFound', - 'errorMessage' => 'The specified VirutalBorderRouter is not found.', - ], - [ - 'errorCode' => 'IllegalParam.MinTxInterval', - 'errorMessage' => 'The specified MinTxInterval is not in proper range.', - ], - [ - 'errorCode' => 'IllegalParam.MinRxInterval', - 'errorMessage' => 'The specified MinRxInterval is not in proper range.', - ], - [ - 'errorCode' => 'IllegalParam.DetectMultiplier', - 'errorMessage' => 'The specified DetectMultiplier is not in proper range.', - ], - [ - 'errorCode' => 'InvalidVlanId.Used', - 'errorMessage' => 'The specified VlanId has been used.', - ], - [ - 'errorCode' => 'Duplicated.LocalGatewayIp', - 'errorMessage' => 'The specified LocalGatewayIps are duplicated.', - ], - [ - 'errorCode' => 'Duplicated.PeerGatewayIp', - 'errorMessage' => 'The specified PeerGatewayIp are duplicated.', - ], - [ - 'errorCode' => 'IllegalParam.LocalGatewayIp', - 'errorMessage' => 'The specified LocalGatewayIp already exists.', - ], - [ - 'errorCode' => 'IllegalParam.PeerGatewayIp', - 'errorMessage' => 'The specified PeerGatewayIp already exists.', - ], - [ - 'errorCode' => 'InvalidCircuitCode.Malformed', - 'errorMessage' => 'The specified CircuitCode is not valid.', - ], - [ - 'errorCode' => 'InvalidVlanId.Malformed', - 'errorMessage' => 'The specified VlanId is not valid.', - ], - [ - 'errorCode' => 'InvalidIp.Malformed', - 'errorMessage' => 'The specified ip address is not valid.', - ], - [ - 'errorCode' => 'InvalidPeeringSubnetMask.Malformed', - 'errorMessage' => 'The specified PeeringSubnetMask is not valid.', - ], - [ - 'errorCode' => 'InvalidName.Malformed', - 'errorMessage' => 'The specified Name is not valid.', - ], - [ - 'errorCode' => 'InvalidDescription.Malformed', - 'errorMessage' => 'The specifid Description is not valid.', - ], - [ - 'errorCode' => 'MissingParameter', - 'errorMessage' => 'LocalGatewayIp, peerGatewayIp and peeringSubnetMask must not be null.', - ], - [ - 'errorCode' => 'InvalidIp.NotSameSubnet', - 'errorMessage' => 'Local gateway ip and peer gateway ip are not in the same subnet.', - ], - [ - 'errorCode' => 'InvalidParameter', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'OperationFailed.VlanIdInUse', - 'errorMessage' => 'Operation failed because vlanId is in use.', - ], - [ - 'errorCode' => 'IncorrectStatus.VirtualBorderRouter', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'OperationUnsupported.IPV6ForThisRegion', - 'errorMessage' => 'This Region do not support IPV6.', - ], - [ - 'errorCode' => 'OperationFailed.PconnTrafficNotEnable', - 'errorMessage' => 'The operation is failed because of PconnTrafficNotEnable.', - ], - [ - 'errorCode' => 'OperationDenied.VBRAssociateVPconn', - 'errorMessage' => 'The operation is not allowed because of VBRAssociateVPconn.', - ], - [ - 'errorCode' => 'OperationFailed.PhysicalConnectionFinancialLocked', - 'errorMessage' => 'Update failed, the physical connection is financial locked.', - ], - [ - 'errorCode' => 'OperationFailed.PhysicalConnectionTerminated', - 'errorMessage' => 'Update failed, the physical connection is terminated.', - ], - [ - 'errorCode' => 'OperationFailed.VbrBandWidthMust0InVlan0Vbr', - 'errorMessage' => 'The operation is failed because of VbrBandWidthMust0InVlan0Vbr.', - ], - [ - 'errorCode' => 'MissingParam.DetectMultiplier', - 'errorMessage' => 'The parameter DetectMultiplier is mandatory.', - ], - [ - 'errorCode' => 'MissingParam.MinRxInterval', - 'errorMessage' => 'The parameter MinRxInterval is mandatory.', - ], - [ - 'errorCode' => 'MissingParam.MinTxInterval', - 'errorMessage' => 'The parameter MinTxInterval is mandatory.', - ], - [ - 'errorCode' => 'DuplicatedParam.LocalGatewayIp', - 'errorMessage' => 'The LocalGatewayIp values are duplicated.', - ], - [ - 'errorCode' => 'Forbidden.VbrNotAllowModifySiteLink', - 'errorMessage' => 'Can not modify virtualBorderRouter site link, please call PD to authorize.', - ], - [ - 'errorCode' => 'OperationUnsupported.VirtualBorderRouterEnableIPv6', - 'errorMessage' => 'The operation failed. The device or region does not support IPv6 functions.', - ], - [ - 'errorCode' => 'OperationFailed.PconnAllocateVlan0', - 'errorMessage' => 'Vlan 0 Vbr cannot share the physical connection with another Vbr.', - ], - [ - 'errorCode' => 'IllegalParam.VlanId', - 'errorMessage' => 'The parameter VlanId is illegal.', - ], - [ - 'errorCode' => 'OperationFailed.VbrLocked', - 'errorMessage' => 'The VBR is locked.', - ], - [ - 'errorCode' => 'IllegalParam.%s', - 'errorMessage' => 'The param of %s is illegal.', - ], - [ - 'errorCode' => 'OperationDenied.NotInWhiteList', - 'errorMessage' => 'User does not have permission to turn on jumbo frames.', - ], - [ - 'errorCode' => 'IncorrectStatus.Ecr', - 'errorMessage' => 'The express connect router is not in a steady state and cannot operate.', - ], - [ - 'errorCode' => 'ResourceInConfiguring.NodeId', - 'errorMessage' => 'The express connect router subinstance is not in a steady state and cannot operate.', - ], - [ - 'errorCode' => 'UnsupportedFeature.JumboFrame', - 'errorMessage' => 'The jumbo frame feature is not supported in the current region.', - ], + ['errorCode' => 'Forbidden.NotAllowedInState', 'errorMessage' => 'The request does not allow in this state.', 'description' => ''], + ['errorCode' => 'INSTANCE.STATUS.NOT.ALLOW', 'errorMessage' => 'Instance status not allow', 'description' => 'The instance in the current state does not support the operation.'], + ['errorCode' => 'ALIUID.NOT.ALLOW.WITHOUT.SP', 'errorMessage' => 'AliUid not allow direct enable physical connection', 'description' => 'You are not allowed to use a physical port when you use an Alibaba Cloud UID.'], + ['errorCode' => 'ACCESS.DEVICE.NOT.ALLOW.WITHOUT.SP', 'errorMessage' => 'Access device not allow direct enable physical connection', 'description' => 'The access device is not allowed to use a physical port.'], ], - 403 => [ - [ - 'errorCode' => 'Forbidden.CircuitCodeNotAllowedByCaller', - 'errorMessage' => 'The caller is not allowed to modify.', - ], - [ - 'errorCode' => 'Forbidden.LocalGatewayIpNotAllowedByCaller', - 'errorMessage' => 'The caller is not allowed to specify the LocalGatewayIp parameter.', - ], - [ - 'errorCode' => 'Forbidden.PeerGatewayIpNotAllowedByCaller', - 'errorMessage' => 'The caller is not allowed to specify the PeerGatewayIp parameter.', - ], - [ - 'errorCode' => 'Forbidden.PeeringSubnetMaskNotAllowedByCaller', - 'errorMessage' => 'The caller is not allowed to specify the PeeringSubnetMask parameter.', - ], - [ - 'errorCode' => 'Forbidden.VlanIdNotAllowedByCaller', - 'errorMessage' => 'The caller is not allowed to specify the VlanId.', - ], - [ - 'errorCode' => 'Forbidden.NameNotAllowedByCaller', - 'errorMessage' => 'The caller is not allowed to specify the Name parameter.', - ], - [ - 'errorCode' => 'Forbidden.DescriptionNotAllowedByCaller', - 'errorMessage' => 'The caller is not allowed to specify the Description parameter.', - ], + 404 => [ + ['errorCode' => 'InvalidRegionId.NotFound', 'errorMessage' => 'The RegionId provided does not exist in our records.', 'description' => ''], + ['errorCode' => 'InvalidPhysicalConnectionId.NotFound', 'errorMessage' => 'The PhysicalConnectionId provided does not exist in our records.', 'description' => ''], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"20365164-5b0d-460a-83c2-2189972b3349\\"\\n}","type":"json"}]', + 'title' => 'EnablePhysicalConnection', + 'description' => 'Note the following when you call this API:'."\n" + ."\n" + .'- You can enable only a physical connection that is in the **Confirmed** state.'."\n" + ."\n" + .'- After the physical connection is enabled, it enters the **Enabled** state.'."\n" + ."\n" + .'- This is an asynchronous API call. The system returns a request ID immediately, but the connection is enabled in the background. You can call [DescribePhysicalConnections](~~2982519~~) to query the connection status.'."\n" + ."\n" + .'- Do not call **EnablePhysicalConnection** concurrently on the same physical connection in the **Confirmed** state.', + 'changeSet' => [ + ['createdAt' => '2023-08-08T12:57:09.000Z', 'description' => 'Error codes changed, Request parameters changed'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'EnablePhysicalConnection'], ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], + ], + 'ramActions' => [ [ - [ - 'errorCode' => 'InvalidRegionId.NotFound', - 'errorMessage' => 'The specified RegionId is not found.', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:EnablePhysicalConnection', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'PhysicalConnection', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:physicalconnection/{#PhysicalConnectionId}'], + ], ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"980960B0-2969-40BF-8542-EBB34FD358AB\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 980960B0-2969-40BF-8542-EBB34FD358AB\\n","errorExample":""}]', - 'title' => 'ModifyVirtualBorderRouterAttribute', - 'description' => '# [](#)'."\n" - ."\n" - .'* Only the owner of an Express Connect circuit can modify the **VlanId** parameter.'."\n" - .'* One VLAN ID of an Express Connect circuit cannot be used only by one VBR at the same time.'."\n" - .'* The VLAN ID of a VBR in the **Terminated** state is reserved for seven days and cannot be used by other VBRs. The VLAN ID can be used by other VBRs after 7 days.'."\n" - .'* You cannot set **LocalGatewayIp**, **PeerGatewayIp**, or **PeeringSubnetMask** for VBRs that do not belong to your Alibaba Cloud account.'."\n" - .'* Set **PeeringSubnetMask** to a subnet mask with 24 to 30 bits in length (255.255.255.0~255.255.255.252).'."\n" - .'* Set **LocalGatewayIp** and **PeerGatewayIp** to IP addresses that belong to the same CIDR block. For example, you can set LocalGatewayIp to 192.168.XX.XX, PeerGatewayIp to 192.168.XX.XX, and PeeringSubnetMask to 255.255.255.248.'."\n", - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', ], - 'TerminateVirtualBorderRouter' => [ - 'summary' => 'Terminates a virtual border router (VBR).', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'EnableVpcClassicLink' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'update', - ], + 'operationType' => 'readAndWrite', + 'deprecated' => true, + 'systemTags' => ['operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the VBR.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cn-shanghai', - ], + 'schema' => ['description' => 'The region ID of the VPC for which you want to enable ClassicLink.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'VbrId', + 'name' => 'VpcId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the VBR.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'vbr-bp15zckdt37pq72****', - ], + 'schema' => ['description' => 'The ID of the VPC.'."\n", 'type' => 'string', 'required' => true, 'example' => 'vpc-bp1m7v25emi1h5mtc****', 'title' => ''], ], [ 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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.'."\n" - ."\n" - .'> 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.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-426655440000', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'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.'."\n" + ."\n" + .'> 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.'."\n", 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-426655440000', 'title' => ''], ], ], 'responses' => [ @@ -49921,112 +39847,103 @@ 'description' => 'The request ID.'."\n", 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '4EC47282-1B74-4534-BD0E-403F3EE64CAF', - ], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B45', 'title' => ''], ], + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidOperation.OperationNotAllowedInState', - 'errorMessage' => 'The specified VirutalBorderRouter is in invalid state.', - ], - ], - 403 => [ - [ - 'errorCode' => 'Forbidden.OperationTerminateNotAllowedByUser', - 'errorMessage' => 'The caller is not allowed to terminate the specified VirtualBorderRouter.', - ], + ['errorCode' => 'IncorrectVpcStatus', 'errorMessage' => 'Current VPC status does not support this operation.', 'description' => ''], + ['errorCode' => 'Forbidden.EnableClassicLink', 'errorMessage' => 'the specified resource does not support this operation.', 'description' => ''], + ['errorCode' => 'RouteConflict.AlreadyExist', 'errorMessage' => 'Route conflict exists in routing table.', 'description' => 'Route conflicts exist in the route table.'], + ['errorCode' => 'InvalidRegionId.NotFound', 'errorMessage' => 'Specified value of "regionId" is not supported.', 'description' => ''], + ['errorCode' => 'OperationFailed.RouteConflict', 'errorMessage' => 'Operation failed because a specified route entry is already exist.', 'description' => 'The operation conflicts with an existing route.'], ], - [ - [ - 'errorCode' => 'InvalidRegionId.NotFound', - 'errorMessage' => 'The RegionId provided does not exist in our records.', - ], - [ - 'errorCode' => 'InvalidVbrId.NotFound', - 'errorMessage' => 'The specified VirutalBorderRouter is not found.', - ], + 404 => [ + ['errorCode' => 'InvalidVpcId.NotFound', 'errorMessage' => 'Specified VPC does not exist.', 'description' => ''], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"4EC47282-1B74-4534-BD0E-403F3EE64CAF\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 4EC47282-1B74-4534-BD0E-403F3EE64CAF\\n","errorExample":""}]', - 'title' => 'TerminateVirtualBorderRouter', - 'description' => 'After you call this operation, the VBR enters the **terminating** state from the **active** state. After the VBR is terminated, the VBR enters the **terminated** state.'."\n" - ."\n" - .'> Only the owner of an Express Connect circuit can call this operation.'."\n", - ], - 'RecoverVirtualBorderRouter' => [ - 'summary' => 'Enables a disabled virtual border router (VBR).', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'staticInfo' => ['noSubstitutionReason' => '无替代API,历史原因导致该API被标记为弃用。'], + 'title' => 'EnableVpcClassicLink', + 'summary' => 'Enables ClassicLink for a VPC.', + 'changeSet' => [ + ['createdAt' => '2023-08-15T09:20:44.000Z', 'description' => 'Error codes changed'], ], + 'ramActions' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B45\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 54B48E3D-DF70-471B-AA93-08E683A1B45\\n","errorExample":""}]', + ], + 'EnableVpcIpv4Gateway' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], + 'operationType' => 'readAndWrite', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'update', - ], + 'systemTags' => ['operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ + [ + 'name' => 'Ipv4GatewayId', + 'in' => 'query', + 'schema' => ['description' => 'The ID of the IPv4 gateway that you want to activate.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'ipv4gw-5tsp9lumsxoqizvq2****'], + ], [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the VBR.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-shanghai', - ], + 'schema' => ['description' => 'The region ID of the IPv4 gateway.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent list of regions.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'ap-southeast-6'], ], [ - 'name' => 'VbrId', + 'name' => 'DryRun', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the VBR.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'vbr-bp1lhl0taikrte****', - ], + 'schema' => ['description' => 'Specifies whether to perform a dry run, without performing the actual request. Valid values:'."\n" + ."\n" + .'* **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.'."\n" + .'* **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.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false'], ], [ 'name' => 'ClientToken', 'in' => 'query', + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'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.'."\n" + ."\n" + .'> 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.'."\n", 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-426655440000'], + ], + [ + 'name' => 'RouteTableList', + 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + 'description' => 'A list of route tables. The system adds a 0.0.0.0/0 route that points to the IPv4 gateway to the route tables.'."\n", + 'type' => 'array', + 'items' => ['description' => 'A list of route tables. The system adds a 0.0.0.0/0 route that points to the IPv4 gateway to the route tables. The system supports at most 10 route tables.'."\n" ."\n" - .'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 and cannot exceed 64 characters in length.'."\n", - 'type' => 'string', + .'> The route table and the IPv4 gateway must belong to the same virtual private cloud (VPC).'."\n", 'type' => 'string', 'required' => false, 'example' => 'vtb-5ts0ohchwkp3dydt2****'], 'required' => false, - 'example' => '02fb3da4-130e-11e9-8e44-0016e04115b', + 'maxItems' => 100, ], ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => ['description' => 'The region ID of the IPv4 gateway.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent list of regions.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'ap-southeast-6'], + ], ], 'responses' => [ 200 => [ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '4EC47282-1B74-4534-BD0E-403F3EE64CAF', - ], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B45'], ], 'description' => '', ], @@ -50034,58 +39951,38 @@ ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidOperation.OperationNotAllowedInState', - 'errorMessage' => 'The specified VirutalBorderRouter is in invalid state', - ], - [ - 'errorCode' => 'OperationFailed.VlanIdAlreadyInUse', - 'errorMessage' => 'The specifed vlanId has been used.', - ], - [ - 'errorCode' => 'OperationFailed.PconnTrafficNotEnable', - 'errorMessage' => 'The operation is failed because of PconnTrafficNotEnable.', - ], - ], - 403 => [ - [ - 'errorCode' => 'Forbidden.OperationRecoverNotAllowedByUser', - 'errorMessage' => 'The caller is not allowed to recover the specified VirtualBorderRouter.', - ], - ], - [ - [ - 'errorCode' => 'InvalidRegionId.NotFound', - 'errorMessage' => 'The RegionId provided does not exist in our records.', - ], - [ - 'errorCode' => 'InvalidVbrId.NotFound', - 'errorMessage' => 'The specified VirutalBorderRouter is not found.', - ], - ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"4EC47282-1B74-4534-BD0E-403F3EE64CAF\\"\\n}","errorExample":"{ \\n \\"RequestId\\": \\"0ED8D006-F706-4D23-88ED-E11ED28DCAC0\\"\\n}"},{"type":"xml","example":"\\n\\n 0ED8D006-F706-4D23-88ED-E11ED28DCAC0\\n","errorExample":"\\n\\n 0ED8D006-F706-4D23-88ED-E11ED28DCAC0\\n"}]', - 'title' => 'RecoverVirtualBorderRouter', - 'description' => 'After you call this operation, the VBR changes from the **terminated** state to the **recovering** state. After the operation is performed, the VBR enters the **active** state.'."\n" + ['errorCode' => 'VPC_ROUTE_ENTRY_CIDR_BLOCK_DUPLICATE', 'errorMessage' => 'Specified CIDR block is already exists.', 'description' => ''], + ['errorCode' => 'ResourceNotFound.Ipv4Gateway', 'errorMessage' => 'The specified resource ipv4Gateway is not found.', 'description' => 'The IPv4 gateway is not found and cannot be deleted.'], + ['errorCode' => 'IncorrectStatus.Ipv4Gateway', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => 'The IPv4 gateway is in an invalid state. Try again later.'], + ['errorCode' => 'OperationFailed.Ipv4GatewayAlreadyActive.', 'errorMessage' => 'The operation failed because of ipv4Gateway is already active.', 'description' => ''], + ['errorCode' => 'OperationDenied.ConflictOfAllZeroRouting', 'errorMessage' => 'The operation is not allowed because of routetable [%s] exist all-zero route entry.', 'description' => ''], + ['errorCode' => 'UnsupportedFeature.Ipv4Gateway', 'errorMessage' => 'The feature of ipv4Gateway is not supported for [%s].', 'description' => 'The system failed to create the IPv4 gateway because IPv4 gateways are not supported.'], + ['errorCode' => 'OperationDenied.VpnExist', 'errorMessage' => 'The operation is not allowed because of existing vpn.', 'description' => 'You are not allowed to create an IPv4 gateway because a VPN gateway already exists in the VPC.'], + ['errorCode' => 'OperationDenied.NatgatewayExist', 'errorMessage' => 'The operation is not allowed because of existing nat.', 'description' => ''], + ['errorCode' => 'OperationDenied.DirectEipExist', 'errorMessage' => 'The operation is not allowed because of existing directEip.', 'description' => 'EIPs are associated with the VPC in cut-through mode or enhanced NAT gateways are deployed in the VPC.'], + ['errorCode' => 'OperationDenied.VpcHasAlreadyActive', 'errorMessage' => 'The operation is not allowed because of vpc has already been active.', 'description' => ''], + ], + ], + 'staticInfo' => ['returnType' => 'asynchronous', 'callback' => 'Vpc::2016-04-28::GetIpv4GatewayAttribute', 'callbackInterval' => 3, 'maxCallbackTimes' => 10], + 'title' => 'EnableVpcIpv4Gateway', + 'summary' => 'Activates an IPv4 gateway.', + 'description' => '## [](#)Description'."\n" ."\n" - .'When you call this operation, take note of the following items:'."\n" + .'* **EnableVpcIpv4Gateway** is an asynchronous operation. After a request is sent, the system returns a **request ID** and runs the task in the background. You can call the [GetIpv4GatewayAttribute](~~407670~~) operation to query the status of an IPv4 gateway.'."\n" ."\n" - .'* Only the owner of the Express Connect circuit can call this operation.'."\n" - .'* The Express Connect circuit to which the VBR connects must be in the **Enabled** state.'."\n", - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'DescribeVirtualBorderRouters' => [ - 'summary' => 'Queries virtual border routers (VBRs).', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + .' * If the IPv4 gateway is in the **Activating** state, the IPv4 gateway is being activated.'."\n" + .' * If the IPv4 gateway is in the **Created** state, the IPv4 gateway is activated.'."\n" + ."\n" + .'* You cannot repeatedly call the **EnableVpcIpv4Gateway** operation to activate an IPv4 gateway within the specified period of time.'."\n", + 'changeSet' => [ + ['createdAt' => '2021-11-02T02:19:49.000Z', 'description' => 'OpenAPI offline'], ], + 'ramActions' => [], + ], + 'GetDhcpOptionsSet' => [ + 'summary' => 'Queries a DHCP options set.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -50093,669 +39990,217 @@ ], 'operationType' => 'read', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'list', - 'riskType' => 'none', - 'chargeType' => 'free', - 'autoTest' => true, - 'tenantRelevance' => 'tenant', - ], + 'systemTags' => ['operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', 'schema' => [ - 'description' => 'The ID of the region in which the VBR is deployed. You can call the [DescribeRegions](~~36063~~) operation to obtain the region ID.'."\n", + 'description' => 'The region ID of the DHCP options set that you want to query.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.', 'type' => 'string', 'required' => true, 'docRequired' => true, - 'example' => 'cn-shanghai', - ], - ], - [ - 'name' => 'PageNumber', - 'in' => 'query', - 'schema' => [ - 'description' => 'The page number. Default value: **1**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'minimum' => '1', - 'example' => '1', - 'default' => '1', + 'enumValueTitles' => ['ap-southeast-1' => 'ap-southeast-1'], + 'example' => 'cn-hangzhou', + 'title' => '', ], ], [ - 'name' => 'PageSize', + 'name' => 'DhcpOptionsSetId', 'in' => 'query', - 'schema' => [ - 'description' => 'The number of entries per page. Maximum value: **50**. Default value: **10**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '50', - 'minimum' => '1', - 'example' => '10', - 'default' => '10', - ], + 'schema' => ['description' => 'The ID of the DHCP options set.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'dopt-o6w0df4epg9zo8isy****', 'title' => ''], ], - [ - 'name' => 'Filter', - 'in' => 'query', - 'style' => 'repeatList', + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => 'The information about the filter.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The information about the filter.', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => 'The filter conditions. You can specify up to five filter conditions. Valid values:'."\n" + 'description' => 'The description of the DHCP options set.', + 'type' => 'object', + 'properties' => [ + 'DhcpOptionsSetDescription' => ['description' => 'The description of the DHCP options set.'."\n", 'type' => 'string', 'example' => 'test', 'title' => ''], + 'Status' => ['description' => 'The status of the DHCP options set. Valid values:'."\n" + ."\n" + .'* **Available**: available'."\n" + .'* **InUse**: in use'."\n" + .'* **Deleted**: deleted'."\n" + .'* **Pending**: being configured', 'type' => 'string', 'example' => 'Available', 'title' => ''], + 'RequestId' => ['description' => 'The ID of the request.', 'type' => 'string', 'example' => '0ED8D006-F706-4D23-88ED-E11ED28DCAC0', 'title' => ''], + 'DhcpOptionsSetId' => ['description' => 'The ID of the DHCP options set.', 'type' => 'string', 'example' => 'dopt-o6w0df4epg9zo8isy****', 'title' => ''], + 'DhcpOptionsSetName' => ['description' => 'The name of the DHCP options set.', 'type' => 'string', 'example' => 'test', 'title' => ''], + 'OwnerId' => ['description' => 'The ID of the Alibaba Cloud account to which the DHCP options set belongs.', 'type' => 'integer', 'format' => 'int64', 'example' => '283117732402483989', 'title' => ''], + 'DhcpOptions' => [ + 'description' => 'The configuration information about the DHCP options set.', + 'type' => 'object', + 'properties' => [ + 'DomainNameServers' => ['description' => 'The IP address of the DNS server.', 'type' => 'string', 'example' => '192.XX.XX.123', 'title' => ''], + 'DomainName' => ['description' => 'The suffix of the hostname.', 'type' => 'string', 'example' => 'example.com', 'title' => ''], + 'LeaseTime' => ['description' => 'The lease time of the IPv4 addresses for the DHCP options set.'."\n" ."\n" - .'* **PhysicalConnectionId**: Filter by Express Connect circuit ID.'."\n" - .'* **VbrId**: Filter by VBR ID.'."\n" - .'* **Status**: Filter by VBR status.'."\n" - .'* **Name**: Filter by VBR name.'."\n" - .'* **AccessPointId**: Filter by access point ID.'."\n" - .'* **eccId:** Filter by Express Cloud Connect (ECC) instance ID.'."\n" - .'* **type**: Filter by Express Connect circuit type.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'Status', + .'* If you use hours as the unit, valid values are **24h to 1176h** and **87600h to 175200h**. Default value: **87600h**.'."\n" + ."\n" + .'* If you use days as the unit, valid values are **1d to 49d** and **3650d to 7300d**. Default value: **3650d**.'."\n" + ."\n", 'type' => 'string', 'example' => '3650d', 'title' => ''], + 'Ipv6LeaseTime' => ['description' => 'The lease time of the IPv6 addresses for the DHCP options set.'."\n" + .' '."\n" + .'* If you use hours as the unit, Valid values are **24h to 1176h** and **87600h to 175200h**. Default value: **87600h**.'."\n" + .'* If you use days as the unit, Valid values are **1d to 49d** and **3650d to 7300d**. Default value: **3650d**.', 'type' => 'string', 'example' => '3650d', 'title' => ''], ], - 'Value' => [ - 'description' => 'The filter values for keys. You can specify multiple filter values for one key. The logical operator between filter values is OR. If one filter value is matched, the filter condition is matched.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The filter value for the key. You can specify multiple filter values for one key. The logical operator between filter values is OR. If one filter value is matched, the filter condition is matched.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'Active', + 'title' => '', + 'example' => '', + ], + 'AssociateVpcs' => [ + 'description' => 'The information about the virtual private cloud (VPC) that is associated with the DHCP options set.', + 'type' => 'array', + 'items' => [ + 'description' => 'The tag list.'."\n", + 'type' => 'object', + 'properties' => [ + 'AssociateStatus' => ['description' => 'The status of the VPC that is associated with the DHCP options set. Valid values:'."\n" + .' '."\n" + .'* **InUse**: in use'."\n" + .'* **Pending**: being configured', 'type' => 'string', 'example' => 'InUse', 'title' => ''], + 'VpcId' => ['description' => 'The ID of the VPC that is associated with the DHCP options set.'."\n", 'type' => 'string', 'example' => 'vpc-eb3b54r6otues4tjj****', 'title' => ''], ], - 'required' => false, - 'example' => 'Active', - 'maxItems' => 5, + 'title' => '', + 'example' => '', ], + 'title' => '', + 'example' => '', ], - 'required' => false, + 'ResourceGroupId' => ['description' => 'The ID of the resource group.', 'type' => 'string', 'example' => 'rg-acfmxazb4ph****', 'title' => ''], + 'Tags' => [ + 'description' => 'The tag list.', + 'type' => 'array', + 'items' => [ + 'description' => 'The tag list.', + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => 'The tag key.', 'type' => 'string', 'example' => 'FinanceDept', 'title' => ''], + 'Value' => ['description' => 'The tag value.', 'type' => 'string', 'example' => 'FinanceJoshua', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + 'CreationTime' => ['description' => 'create time', 'type' => 'string', 'example' => '2025-08-21 ***', 'title' => ''], ], - 'required' => false, - 'maxItems' => 5, + 'title' => '', + 'example' => '', ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InvalidRegionId.NotFound', 'errorMessage' => 'The specified RegionId does not exist.', 'description' => 'The specified region does not exist.'], + ], + ], + 'title' => 'GetDhcpOptionsSet', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2023-03-23T02:20:37.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2022-10-27T07:35:46.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2021-11-17T03:03:07.000Z', 'description' => 'Response parameters changed'], + ], + 'ramActions' => [], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"DhcpOptionsSetDescription\\": \\"test\\",\\n \\"Status\\": \\"Available\\",\\n \\"RequestId\\": \\"0ED8D006-F706-4D23-88ED-E11ED28DCAC0\\",\\n \\"DhcpOptionsSetId\\": \\"dopt-o6w0df4epg9zo8isy****\\",\\n \\"DhcpOptionsSetName\\": \\"test\\",\\n \\"OwnerId\\": 283117732402484000,\\n \\"DhcpOptions\\": {\\n \\"DomainNameServers\\": \\"192.XX.XX.123\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"LeaseTime\\": \\"3650d\\",\\n \\"Ipv6LeaseTime\\": \\"3650d\\"\\n },\\n \\"AssociateVpcs\\": [\\n {\\n \\"AssociateStatus\\": \\"InUse\\",\\n \\"VpcId\\": \\"vpc-eb3b54r6otues4tjj****\\"\\n }\\n ],\\n \\"ResourceGroupId\\": \\"rg-acfmxazb4ph****\\",\\n \\"Tags\\": [\\n {\\n \\"Key\\": \\"FinanceDept\\",\\n \\"Value\\": \\"FinanceJoshua\\"\\n }\\n ],\\n \\"CreationTime\\": \\"2025-08-21 ***\\"\\n}","type":"json"}]', + 'translator' => 'manual', + ], + 'GetFlowLogServiceStatus' => [ + 'summary' => 'Calls the GetFlowLogServiceStatus operation to query the activation status of the flow log service.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'readAndWrite', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free'], + 'parameters' => [ [ - 'name' => 'IncludeCrossAccountVbr', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether cross-account VBRs are included.'."\n" - ."\n" - .'* **true**'."\n" - .'* **false** (default)'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'You can use the client to generate the token, but you must make sure that the token is unique among different requests. The ClientToken value can contain only ASCII characters.'."\n" + ."\n" + .'> If you do not specify this parameter, the system automatically uses the **RequestId** of the API request as the **ClientToken**. The **RequestId** of each API request may be different.', 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-426655440000', 'title' => ''], ], [ - 'name' => 'ResourceGroupId', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The resource group ID.'."\n" - ."\n" - .'For more information about resource groups, see [What is a resource group?](~~94475~~)'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'rg-acfmxazb4ph6aiy****', - ], + 'schema' => ['description' => 'The region ID of the flow log.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the region ID.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'Tags', + 'name' => 'RegionId', 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => 'The list of tags.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The tags.', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => 'The tag key. You can specify at most 20 tag keys. The tag key cannot be an empty string.'."\n" - ."\n" - .'The key cannot exceed 128 characters in length, and cannot start with `aliyun` or `acs:`. The key cannot contain `http://` or `https://`.', - 'type' => 'string', - 'required' => false, - 'example' => 'FinanceDept', - ], - 'Value' => [ - 'description' => 'The tag value. You can specify at most 20 tag values. The tag value can be an empty string.'."\n" - ."\n" - .'The tag value cannot exceed 128 characters in length, and cannot start with `aliyun` or `acs:`. It cannot contain `http://` or `https://`.', - 'type' => 'string', - 'required' => false, - 'example' => 'FinanceJoshua', - ], - ], - 'required' => false, - ], - 'required' => false, - 'maxItems' => 20, - ], + 'schema' => ['description' => 'The region ID of the flow log.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the region ID.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => 'The information about each virtual border router (VBR) that is queried.'."\n", 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => 'DE77A7F3-3B74-41C0-A5BC-CAFD188C28B6', - ], - 'PageNumber' => [ - 'description' => 'The page number. Default value: **1**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'PageSize' => [ - 'description' => 'The number of entries per page. Valid values: **1 to 50**. Default value: **10**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'TotalCount' => [ - 'description' => 'The number of entries returned.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'VirtualBorderRouterSet' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'VirtualBorderRouterType' => [ - 'description' => 'The information about the VBR.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'CreationTime' => [ - 'description' => 'The time when the VBR was created.'."\n", - 'type' => 'string', - 'example' => '2020-06-08T12:20:55', - ], - 'Status' => [ - 'description' => 'The status of the VBR. Valid values:'."\n" - ."\n" - .'* **unconfirmed**'."\n" - .'* **active**'."\n" - .'* **terminating**'."\n" - .'* **terminated**'."\n" - .'* **recovering**'."\n" - .'* **deleting:**'."\n", - 'type' => 'string', - 'example' => 'active', - ], - 'Type' => [ - 'description' => 'The VBR type.'."\n", - 'type' => 'string', - 'example' => 'pconnVBR', - ], - 'MinTxInterval' => [ - 'description' => 'The time interval to send Bidirectional Forwarding Detection (BFD) packets. Valid values: **200 to 1000**. Unit: milliseconds.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '300', - ], - 'PeerIpv6GatewayIp' => [ - 'description' => 'The IPv6 address of the VBR on the user side.'."\n", - 'type' => 'string', - 'example' => '2001:XXXX:3c4d:0015:0000:0000:0000:1a2b', - ], - 'PConnVbrExpireTime' => [ - 'description' => 'The time when the VBR expires.'."\n", - 'type' => 'string', - 'example' => '2021-06-08T12:20:55', - ], - 'PhysicalConnectionOwnerUid' => [ - 'description' => 'The ID of the account to which the Express Connect circuit belongs.'."\n", - 'type' => 'string', - 'example' => '1688000000000****', - ], - 'ActivationTime' => [ - 'description' => 'The time when the VBR was activated for the first time.'."\n", - 'type' => 'string', - 'example' => '2021-06-08T12:20:55', - ], - 'PhysicalConnectionBusinessStatus' => [ - 'description' => 'The business status of the Express Connect circuit. Valid values:'."\n" - ."\n" - .'* **Normal:** The Express Connect circuit is running as normal.'."\n" - .'* **FinancialLocked:** The Express Connect circuit is locked due to overdue payments.'."\n", - 'type' => 'string', - 'example' => 'Normal', - ], - 'Description' => [ - 'description' => 'The description of the VBR.'."\n", - 'type' => 'string', - 'example' => 'desc', - ], - 'TerminationTime' => [ - 'description' => 'The last time when the VBR was terminated.'."\n", - 'type' => 'string', - 'example' => '2021-06-08T12:20:55', - ], - 'MinRxInterval' => [ - 'description' => 'The time interval to receive BFD packets. Valid values: **200 to 1000**. Unit: milliseconds.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '300', - ], - 'PeerGatewayIp' => [ - 'description' => 'The IPv4 address of the VBR on the user side.'."\n", - 'type' => 'string', - 'example' => '192.168.XX.XX', - ], - 'Name' => [ - 'description' => 'The VBR name.'."\n", - 'type' => 'string', - 'example' => 'test', - ], - 'VbrId' => [ - 'description' => 'The VBR ID.'."\n", - 'type' => 'string', - 'example' => 'vbr-bp1jcg5cmxjbl9xgc****', - ], - 'VlanId' => [ - 'description' => 'The VLAN ID of the VBR.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'VlanInterfaceId' => [ - 'description' => 'The ID of the VBR interface.'."\n", - 'type' => 'string', - 'example' => 'ri-2zeo3xzyf38r4xx****', - ], - 'CircuitCode' => [ - 'description' => 'The circuit code of the Express Connect circuit, which is provided by the connectivity provider.'."\n", - 'type' => 'string', - 'example' => 'longtel0****', - ], - 'LocalIpv6GatewayIp' => [ - 'description' => 'The IPv6 address of the VBR on the Alibaba Cloud side.'."\n", - 'type' => 'string', - 'example' => '2001:XXXX:3c4d:0015:0000:0000:0000:1a2b', - ], - 'LocalGatewayIp' => [ - 'description' => 'The IPv4 address of the VBR on the Alibaba Cloud side.'."\n", - 'type' => 'string', - 'example' => '192.168.XX.XX', - ], - 'PeeringSubnetMask' => [ - 'description' => 'The subnet mask for the IPv4 addresses on the Alibaba Cloud side and on the user side.'."\n", - 'type' => 'string', - 'example' => '255.255.255.252', - ], - 'EnableIpv6' => [ - 'description' => 'Indicates whether IPv6 is enabled. Valid values:'."\n" - ."\n" - .'* **true**'."\n" - .'* **false**'."\n", - 'type' => 'boolean', - 'example' => 'false', - ], - 'RouteTableId' => [ - 'description' => 'The ID of the route table of the VBR.'."\n", - 'type' => 'string', - 'example' => 'rtb-bp1****', - ], - 'DetectMultiplier' => [ - 'description' => 'The multiple of the detection time.'."\n" - ."\n" - .'This value indicates the maximum number of dropped packets that is allowed by the receiver when the initiator transmits packets. This value can be used to check whether the connection works as expected.'."\n" - ."\n" - .'Valid values: **3 to 10**.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '3', - ], - 'EccId' => [ - 'description' => 'The ID of the Express Cloud Connect (ECC) instance.'."\n", - 'type' => 'string', - 'example' => 'ecc-h****', - ], - 'CloudBoxInstanceId' => [ - 'description' => 'The ID of the cloud box.'."\n", - 'type' => 'string', - 'example' => 'cb-****', - ], - 'RecoveryTime' => [ - 'description' => 'The last time when the status of the VBR changed from **terminated** to **active**.'."\n", - 'type' => 'string', - 'example' => '2021-05-08T12:20:55', - ], - 'PhysicalConnectionStatus' => [ - 'description' => 'The status of the Express Connect circuit. Valid values:'."\n" - ."\n" - .'* **Initial:** The application is under review.'."\n" - .'* **Approved**: The application is approved.'."\n" - .'* **Allocating**: The system is allocating resources.'."\n" - .'* **Allocated**: The Express Connect circuit is under construction.'."\n" - .'* **Confirmed**: The Express Connect circuit is to be confirmed.'."\n" - .'* **Enabled**: The Express Connect circuit is enabled.'."\n" - .'* **Rejected**: The application is rejected.'."\n" - .'* **Canceled**: The application is canceled.'."\n" - .'* **Allocation Failed:** The system failed to allocate resources.'."\n" - .'* **Terminated:** The Express Connect circuit is disabled.'."\n", - 'type' => 'string', - 'example' => 'Normal', - ], - 'PeeringIpv6SubnetMask' => [ - 'description' => 'The subnet mask for the IPv6 addresses on the user side and on the Alibaba Cloud side.'."\n", - 'type' => 'string', - 'example' => '2000:1234:0:a000::/55', - ], - 'AccessPointId' => [ - 'description' => 'The ID of the access point.'."\n", - 'type' => 'string', - 'example' => 'ap-cn-kojok1x****', - ], - 'PConnVbrChargeType' => [ - 'description' => 'The billing method of the VBR. Valid values:'."\n" - ."\n" - .'* **PrePaid:** subscription. If you choose this billing method, make sure that your account supports balance payments or credit payments.'."\n" - .'* **PostPaid:** pay-as-you-go.'."\n", - 'type' => 'string', - 'example' => 'PrePaid', - ], - 'PhysicalConnectionId' => [ - 'description' => 'The ID of the Express Connect circuit to which the VBR belongs.'."\n", - 'type' => 'string', - 'example' => 'pc-119mfjzm7x****', - ], - 'AssociatedPhysicalConnections' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'AssociatedPhysicalConnection' => [ - 'description' => 'The information about the Express Connect circuit that is associated with the VBR.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The information about the Express Connect circuit that is associated with the VBR.', - 'type' => 'object', - 'properties' => [ - 'Status' => [ - 'description' => 'The status of the VBR. Valid values:'."\n" - ."\n" - .'* **unconfirmed**'."\n" - .'* **active:**'."\n" - .'* **terminating**'."\n" - .'* **terminated**'."\n" - .'* **recovering**'."\n" - .'* **deleting:**'."\n", - 'type' => 'string', - 'example' => 'active', - ], - 'VlanInterfaceId' => [ - 'description' => 'The ID of the VBR interface, which can be used as a next hop of a VBR route.'."\n", - 'type' => 'string', - 'example' => 'ri-kojok19x3j0q6k****', - ], - 'CircuitCode' => [ - 'description' => 'The circuit code of the Express Connect circuit, which is provided by the connectivity provider.'."\n", - 'type' => 'string', - 'example' => 'longtel0**', - ], - 'PeerIpv6GatewayIp' => [ - 'description' => 'The IPv6 address of the VBR on the user side.'."\n", - 'type' => 'string', - 'example' => '2001:XXXX:3c4d:0015:0000:0000:0000:1a2b', - ], - 'LocalIpv6GatewayIp' => [ - 'description' => 'The IPv6 address of the VBR on the Alibaba Cloud side.'."\n", - 'type' => 'string', - 'example' => '2001:XXXX:3c4d:0015:0000:0000:0000:1a2b', - ], - 'PhysicalConnectionOwnerUid' => [ - 'description' => 'The ID of the account to which the Express Connect circuit belongs.'."\n", - 'type' => 'string', - 'example' => '12345678****', - ], - 'LocalGatewayIp' => [ - 'description' => 'The IPv4 address of the VBR on the Alibaba Cloud side.'."\n", - 'type' => 'string', - 'example' => '192.168.XX.XX', - ], - 'PhysicalConnectionBusinessStatus' => [ - 'description' => 'The business status of the Express Connect circuit. Valid values:'."\n" - ."\n" - .'* **Normal:** The Express Connect circuit is running as normal.'."\n" - .'* **FinancialLocked:** The Express Connect circuit is locked due to overdue payments.'."\n", - 'type' => 'string', - 'example' => 'Normal', - ], - 'PeeringSubnetMask' => [ - 'description' => 'The subnet mask for the IPv4 addresses of the VBR on the user side and on the Alibaba Cloud side.'."\n" - ."\n" - .'Both IPv4 addresses must belong to the same subnet.'."\n", - 'type' => 'string', - 'example' => '255.255.255.252', - ], - 'EnableIpv6' => [ - 'description' => 'Indicates whether IPv6 is enabled. Valid values:'."\n" - ."\n" - .'* **true**'."\n" - .'* **false**'."\n", - 'type' => 'boolean', - 'example' => 'true', - ], - 'PhysicalConnectionStatus' => [ - 'description' => 'The status of the Express Connect circuit. Valid values:'."\n" - ."\n" - .'* **Initial:** The application is under review.'."\n" - .'* **Approved**: The application is approved.'."\n" - .'* **Allocating**: The system is allocating resources.'."\n" - .'* **Allocated**: The Express Connect circuit is under construction.'."\n" - .'* **Confirmed**: The Express Connect circuit is to be confirmed.'."\n" - .'* **Enabled**: The Express Connect circuit is enabled.'."\n" - .'* **Rejected**: The application is rejected.'."\n" - .'* **Canceled**: The application is canceled.'."\n" - .'* **Allocation Failed:** The system failed to allocate resources.'."\n" - .'* **Terminated:** The Express Connect circuit is disabled.'."\n", - 'type' => 'string', - 'example' => 'Enabled', - ], - 'PeerGatewayIp' => [ - 'description' => 'The IPv4 address of the VBR on the user side.'."\n", - 'type' => 'string', - 'example' => '116.62.XX.XX', - ], - 'PeeringIpv6SubnetMask' => [ - 'description' => 'The subnet mask for the IPv6 addresses on the user side and on the Alibaba Cloud side.'."\n" - ."\n" - .'Both IPv6 addresses must belong to the same subnet.'."\n", - 'type' => 'string', - 'example' => '2408:4004:cc:400::/56', - ], - 'PhysicalConnectionId' => [ - 'description' => 'The ID of the Express Connect circuit.'."\n", - 'type' => 'string', - 'example' => 'pc-119mfjzm7****', - ], - 'VlanId' => [ - 'description' => 'The VLAN ID of the VBR.'."\n", - 'type' => 'string', - 'example' => '0', - ], - ], - ], - ], - ], - ], - 'AssociatedCens' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'AssociatedCen' => [ - 'description' => 'The information about the Cloud Enterprise Network (CEN) instance to which the VBR is attached.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The information about the Cloud Enterprise Network (CEN) instance to which the VBR is attached.', - 'type' => 'object', - 'properties' => [ - 'CenOwnerId' => [ - 'description' => 'The ID of the account to which the CEN instance belongs.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1688000000000****', - ], - 'CenId' => [ - 'description' => 'The CEN instance ID.'."\n", - 'type' => 'string', - 'example' => 'cen-kojok19xxx****', - ], - 'CenStatus' => [ - 'description' => 'The status of the CEN instance. Valid values:'."\n" - ."\n" - .'* **Attached**'."\n" - .'* **Attaching**'."\n" - .'* **Detached**'."\n" - .'* **Detaching**'."\n" - .'* If no value is returned, the VBR is not attached to a CEN instance.'."\n", - 'type' => 'string', - 'example' => 'Attached', - ], - ], - ], - ], - ], - ], - 'Bandwidth' => [ - 'description' => 'The bandwidth value of the VBR. Unit: Mbit/s.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '50', - ], - 'ResourceGroupId' => [ - 'description' => 'The resource group ID.'."\n" - ."\n" - .'For more information about resource groups, see [Resource groups](~~94475~~).'."\n", - 'type' => 'string', - 'example' => 'rg-acfmxazb4ph6aiy****', - ], - 'Tags' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'Tags' => [ - 'description' => 'The tag of the resource.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The tag list.', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => 'The tag key of the resource.'."\n", - 'type' => 'string', - 'example' => 'FinanceDept', - ], - 'Value' => [ - 'description' => 'The tag value of the resource.'."\n", - 'type' => 'string', - 'example' => 'FinanceJoshua', - ], - ], - ], - ], - ], - ], - 'EcrId' => [ - 'description' => 'The ID of the Express Connect Router (ECR).'."\n", - 'type' => 'string', - 'example' => 'ecr-7vrbqv9lcgvzqbwwkm', - ], - 'SitelinkEnable' => [ - 'description' => 'Indicates whether to allow service access between data centers. Valid values:'."\n" - ."\n" - .'* **true**'."\n" - .'* **false**'."\n" - ."\n" - .'> If no value is returned, service access between data centers is not allowed.'."\n", - 'type' => 'boolean', - 'example' => 'false', - ], - 'EcrAttatchStatus' => [ - 'description' => 'The status of the ECR. Valid values:'."\n" - ."\n" - .'* **Attached**'."\n" - .'* **Attaching**'."\n" - .'* **Detached**'."\n" - .'* **Detaching**'."\n" - .'* If no value is returned, the VBR is not attached to a CEN instance.'."\n", - 'type' => 'string', - 'example' => 'Attached', - ], - 'EcrOwnerId' => [ - 'description' => 'The ID of the Alibaba Cloud account (primary account) to which the ECR belongs.', - 'type' => 'string', - 'example' => '192732132151xxxx', - ], - 'Mtu' => [ - 'type' => 'integer', - 'format' => 'int32', - ], - ], - ], - ], - ], - ], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '54B48E3D-DF70-471B-AA93-06F83A1B457', 'title' => ''], + 'Enabled' => ['description' => 'Indicates whether the flow log service is activated. Valid values:'."\n" + ."\n" + .'- **true**: activated.'."\n" + ."\n" + .'- **false**: not activated. You can call the [OpenFlowLogService](~~449637~~) operation to activate the flow log service.', 'type' => 'boolean', 'example' => 'true', 'title' => ''], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'OperationFailed.InternalError', - 'errorMessage' => 'The request processing has failed due to some unknown error.', - ], - ], - 404 => [ - [ - 'errorCode' => 'InvalidRegionId.NotFound', - 'errorMessage' => 'The RegionId provided does not exist in our records.', - ], - [ - 'errorCode' => 'InvalidFilterKey.ValueNotSupported', - 'errorMessage' => 'Specified filter key is not supported: Filter.X.key', - ], + 403 => [ + ['errorCode' => 'Forbbiden', 'errorMessage' => 'User not authorized to operate on the specified resource.', 'description' => 'User not authorized to operate on the specified resource.'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'Query the activation status of the flow log service', + 'changeSet' => [ + ['createdAt' => '2024-07-31T02:45:59.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2022-08-26T02:44:52.000Z', 'description' => 'OpenAPI offline'], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"DE77A7F3-3B74-41C0-A5BC-CAFD188C28B6\\",\\n \\"PageNumber\\": 1,\\n \\"PageSize\\": 10,\\n \\"TotalCount\\": 1,\\n \\"VirtualBorderRouterSet\\": {\\n \\"VirtualBorderRouterType\\": [\\n {\\n \\"CreationTime\\": \\"2020-06-08T12:20:55\\",\\n \\"Status\\": \\"active\\",\\n \\"Type\\": \\"pconnVBR\\",\\n \\"MinTxInterval\\": 300,\\n \\"PeerIpv6GatewayIp\\": \\"2001:XXXX:3c4d:0015:0000:0000:0000:1a2b\\",\\n \\"PConnVbrExpireTime\\": \\"2021-06-08T12:20:55\\",\\n \\"PhysicalConnectionOwnerUid\\": \\"1688000000000****\\",\\n \\"ActivationTime\\": \\"2021-06-08T12:20:55\\",\\n \\"PhysicalConnectionBusinessStatus\\": \\"Normal\\",\\n \\"Description\\": \\"desc\\",\\n \\"TerminationTime\\": \\"2021-06-08T12:20:55\\",\\n \\"MinRxInterval\\": 300,\\n \\"PeerGatewayIp\\": \\"192.168.XX.XX\\",\\n \\"Name\\": \\"test\\",\\n \\"VbrId\\": \\"vbr-bp1jcg5cmxjbl9xgc****\\",\\n \\"VlanId\\": 10,\\n \\"VlanInterfaceId\\": \\"ri-2zeo3xzyf38r4xx****\\",\\n \\"CircuitCode\\": \\"longtel0****\\",\\n \\"LocalIpv6GatewayIp\\": \\"2001:XXXX:3c4d:0015:0000:0000:0000:1a2b\\",\\n \\"LocalGatewayIp\\": \\"192.168.XX.XX\\",\\n \\"PeeringSubnetMask\\": \\"255.255.255.252\\",\\n \\"EnableIpv6\\": false,\\n \\"RouteTableId\\": \\"rtb-bp1****\\",\\n \\"DetectMultiplier\\": 3,\\n \\"EccId\\": \\"ecc-h****\\",\\n \\"CloudBoxInstanceId\\": \\"cb-****\\",\\n \\"RecoveryTime\\": \\"2021-05-08T12:20:55\\",\\n \\"PhysicalConnectionStatus\\": \\"Normal\\",\\n \\"PeeringIpv6SubnetMask\\": \\"2000:1234:0:a000::/55\\",\\n \\"AccessPointId\\": \\"ap-cn-kojok1x****\\",\\n \\"PConnVbrChargeType\\": \\"PrePaid\\",\\n \\"PhysicalConnectionId\\": \\"pc-119mfjzm7x****\\",\\n \\"AssociatedPhysicalConnections\\": {\\n \\"AssociatedPhysicalConnection\\": [\\n {\\n \\"Status\\": \\"active\\",\\n \\"VlanInterfaceId\\": \\"ri-kojok19x3j0q6k****\\",\\n \\"CircuitCode\\": \\"longtel0**\\",\\n \\"PeerIpv6GatewayIp\\": \\"2001:XXXX:3c4d:0015:0000:0000:0000:1a2b\\",\\n \\"LocalIpv6GatewayIp\\": \\"2001:XXXX:3c4d:0015:0000:0000:0000:1a2b\\",\\n \\"PhysicalConnectionOwnerUid\\": \\"12345678****\\",\\n \\"LocalGatewayIp\\": \\"192.168.XX.XX\\",\\n \\"PhysicalConnectionBusinessStatus\\": \\"Normal\\",\\n \\"PeeringSubnetMask\\": \\"255.255.255.252\\",\\n \\"EnableIpv6\\": true,\\n \\"PhysicalConnectionStatus\\": \\"Enabled\\",\\n \\"PeerGatewayIp\\": \\"116.62.XX.XX\\",\\n \\"PeeringIpv6SubnetMask\\": \\"2408:4004:cc:400::/56\\",\\n \\"PhysicalConnectionId\\": \\"pc-119mfjzm7****\\",\\n \\"VlanId\\": \\"0\\"\\n }\\n ]\\n },\\n \\"AssociatedCens\\": {\\n \\"AssociatedCen\\": [\\n {\\n \\"CenOwnerId\\": 0,\\n \\"CenId\\": \\"cen-kojok19xxx****\\",\\n \\"CenStatus\\": \\"Attached\\"\\n }\\n ]\\n },\\n \\"Bandwidth\\": 50,\\n \\"ResourceGroupId\\": \\"rg-acfmxazb4ph6aiy****\\",\\n \\"Tags\\": {\\n \\"Tags\\": [\\n {\\n \\"Key\\": \\"FinanceDept\\",\\n \\"Value\\": \\"FinanceJoshua\\"\\n }\\n ]\\n },\\n \\"EcrId\\": \\"ecr-7vrbqv9lcgvzqbwwkm\\",\\n \\"SitelinkEnable\\": false,\\n \\"EcrAttatchStatus\\": \\"Attached\\",\\n \\"EcrOwnerId\\": \\"192732132151xxxx\\",\\n \\"Mtu\\": 1500\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n DE77A7F3-3B74-41C0-A5BC-CAFD188C28B6\\n 1\\n 10\\n 1\\n \\n 2020-06-08T12:20:55\\n active\\n pconnVBR\\n 300\\n 2001:XXXX:3c4d:0015:0000:0000:0000:1a2b\\n 2021-06-08T12:20:55\\n 1688000000000****\\n 2021-06-08T12:20:55\\n Normal\\n desc\\n 2021-06-08T12:20:55\\n 300\\n 192.168.XX.XX\\n test\\n vbr-bp1jcg5cmxjbl9xgc****\\n 10\\n ri-2zeo3xzyf38r4xx****\\n longtel0****\\n 2001:XXXX:3c4d:0015:0000:0000:0000:1a2b\\n 192.168.XX.XX\\n 255.255.255.252\\n false\\n rtb-bp1****\\n 3\\n ecc-h****\\n cb-****\\n 2021-05-08T12:20:55\\n Normal\\n 2000:1234:0:a000::/55\\n ap-cn-kojok1x****\\n PrePaid\\n pc-119mfjzm7x****\\n \\n active\\n ri-kojok19x3j0q6k****\\n longtel0**\\n 2001:XXXX:3c4d:0015:0000:0000:0000:1a2b\\n 2001:XXXX:3c4d:0015:0000:0000:0000:1a2b\\n 12345678****\\n 192.168.XX.XX\\n Normal\\n 255.255.255.252\\n true\\n Enabled\\n 116.62.XX.XX\\n 2408:4004:cc:400::/56\\n pc-119mfjzm7****\\n 0\\n \\n \\n cen-kojok19xxx****\\n Attached\\n \\n 50\\n rg-acfmxazb4ph6aiy****\\n \\n FinanceDept\\n FinanceJoshua\\n \\n \\n","errorExample":""}]', - 'title' => 'DescribeVirtualBorderRouters', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => "\n", - ], - 'DescribeGrantRulesToEcr' => [ - 'summary' => 'Queries the cross-account authorization list of an Express Connect Router (ECR).', - 'methods' => [ - 'post', - 'get', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '1200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'GetFlowLogServiceStatus'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'vpc:GetFlowLogServiceStatus', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'FlowLogService', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:flowlog/*'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-06F83A1B457\\",\\n \\"Enabled\\": true\\n}","type":"json"}]', + ], + 'GetIpv4GatewayAttribute' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -50763,205 +40208,100 @@ ], 'operationType' => 'read', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'list', - 'riskType' => 'none', - 'chargeType' => 'free', - ], + 'systemTags' => ['operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ - [ - 'name' => 'PageNumber', - 'in' => 'query', - 'schema' => [ - 'description' => 'The number of the page to return. Default value: 1.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '1', - ], - ], - [ - 'name' => 'PageSize', - 'in' => 'query', - 'schema' => [ - 'description' => 'The number of entries per page. Maximum value: **50**. Default value: **10**.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '20', - ], - ], [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the region list.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cn-hangzhou', - ], - ], - [ - 'name' => 'InstanceId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the VBR.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'vbr-xxxxxx', - ], + 'schema' => ['description' => 'The region ID of the IPv4 gateway.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'ap-southeast-6'], ], [ - 'name' => 'ResourceGroupId', + 'name' => 'Ipv4GatewayId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the resource group.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'rg-acfmxazdjdhd****', - ], + 'schema' => ['description' => 'The ID of the IPv4 gateway.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'ipv4gw-5tsnc6s4ogsedtp3k****'], ], [ - 'name' => 'Tags', + 'name' => 'RegionId', 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => 'The tag list.'."\n", - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => 'The tag keys. You must specify at least one tag key and at most 20 tag keys. The tag key cannot be an empty string.'."\n" - ."\n" - .'The tag key can be up to 128 characters in length. The tag key cannot start with `aliyun` or `acs:`, and cannot contain `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'FinanceDept', - ], - 'Value' => [ - 'description' => 'The value of the tag.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'FinanceJoshua', - ], - ], - 'required' => false, - 'description' => '', - ], - 'required' => false, - 'maxItems' => 20, - ], + 'schema' => ['description' => 'The region ID of the IPv4 gateway.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'ap-southeast-6'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'Schema of Response'."\n", + 'description' => 'The details of the IPv4 gateway.'."\n", 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => 'C1CCAB91-6AE6-50E3-AAA3-D0E5A2BC6ADE', - ], - 'EcrGrantRules' => [ - 'description' => 'The cross-account authorization list of the ECR'."\n", + 'VpcId' => ['description' => 'The ID of the VPC with which the IPv4 gateway is associated.'."\n", 'type' => 'string', 'example' => 'vpc-5tsrxlw7dv074gci4****'], + 'Status' => ['description' => 'The status of the IPv4 gateway. Valid values:'."\n" + ."\n" + .'* **Creating**'."\n" + .'* **Created**'."\n" + .'* **Modifying**'."\n" + .'* **Deleting**'."\n" + .'* **Deleted**'."\n" + .'* **Activating**'."\n", 'type' => 'string', 'example' => 'Created'], + 'Ipv4GatewayId' => ['description' => 'The ID of the IPv4 gateway.'."\n", 'type' => 'string', 'example' => 'ipv4gw-5tsnc6s4ogsedtp3k****'], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '7F79A919-6FE9-50C4-967B-45705E1F9C38'], + 'Ipv4GatewayDescription' => ['description' => 'The description of the IPv4 gateway.'."\n", 'type' => 'string', 'example' => 'new'], + 'Enabled' => ['description' => 'Indicates whether the IPv4 gateway is activated. Valid values:'."\n" + ."\n" + .'* **true**'."\n" + .'* **false**'."\n", 'type' => 'boolean', 'example' => 'true'], + 'Ipv4GatewayRouteTableId' => ['description' => 'The ID of the route table associated with the IPv4 gateway.'."\n", 'type' => 'string', 'example' => 'vtb-5ts0ohchwkp3dydt2****'], + 'Ipv4GatewayName' => ['description' => 'The name of the IPv4 gateway.'."\n", 'type' => 'string', 'example' => 'name'], + 'CreateTime' => ['description' => 'The time when the IPv4 gateway was created.'."\n", 'type' => 'string', 'example' => '2022-02-24T09:02:36Z'], + 'ResourceGroupId' => ['description' => 'The ID of the resource group to which the IPv4 gateway belongs.'."\n", 'type' => 'string', 'example' => 'rg-bp67acfmxazb4ph****'], + 'Tags' => [ + 'description' => 'The tag list.'."\n", 'type' => 'array', 'items' => [ + 'description' => '', 'type' => 'object', 'properties' => [ - 'EcrUid' => [ - 'description' => 'The ECR account ID.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '11111111111', - ], - 'CreateTime' => [ - 'description' => 'The authorization time. The time follows the ISO8601 standard and uses UTC time. The format is YYYY-MM-DDThh:mm:ssZ.'."\n", - 'type' => 'string', - 'example' => '2025-09-15T14:00:00Z', - ], - 'EcrInstanceId' => [ - 'description' => 'The ECR account ID.'."\n", - 'type' => 'string', - 'example' => 'ecr-xxxxxx', - ], + 'Key' => ['description' => 'The key of tag N added to the resource.'."\n", 'type' => 'string', 'example' => 'FinanceDept'], + 'Value' => ['description' => 'The value of tag N added to the resource.'."\n", 'type' => 'string', 'example' => 'FinanceJoshua'], ], - 'description' => '', ], ], - 'TotalCount' => [ - 'description' => 'The total number of entries returned.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '0', - ], - 'Count' => [ - 'description' => 'The total number of entries returned.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '0', - ], - 'PageNumber' => [ - 'description' => 'The page number. Default value: **1**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'PageSize' => [ - 'description' => 'The number of entries on each page. Maximum value: 50. Default value: 10.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '20', - ], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParam.NotNull', - 'errorMessage' => 'The parameter must not be null.', - ], - [ - 'errorCode' => 'Parameter.Illegal', - 'errorMessage' => 'The parameter is illegal.', - ], - [ - 'errorCode' => 'Instance.StatusError', - 'errorMessage' => 'The status of instance error. ', - ], + ['errorCode' => 'ResourceNotFound.Ipv4Gateway', 'errorMessage' => 'The specified resource ipv4Gateway is not found.', 'description' => 'The IPv4 gateway is not found and cannot be deleted.'], ], - 404 => [ - [ - 'errorCode' => 'VRouterId.NotFound', - 'errorMessage' => 'The VRouter not found.', - ], - [ - 'errorCode' => 'Instance.NotExist', - 'errorMessage' => 'The instance not exist.', + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'GetIpv4GatewayAttribute', + 'summary' => 'Queries an IPv4 gateway.', + 'changeSet' => [ + ['createdAt' => '2025-02-08T07:51:59.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2021-12-29T04:10:07.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2021-11-02T02:19:49.000Z', 'description' => 'OpenAPI offline'], + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'vpc:GetIpv4GatewayAttribute', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'Ipv4Gateway', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:ipv4gateway/{#Ipv4GatewayId}'], + ], ], ], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"C1CCAB91-6AE6-50E3-AAA3-D0E5A2BC6ADE\\",\\n \\"EcrGrantRules\\": [\\n {\\n \\"EcrUid\\": 11111111111,\\n \\"CreateTime\\": \\"2025-09-15T14:00:00Z\\",\\n \\"EcrInstanceId\\": \\"ecr-xxxxxx\\"\\n }\\n ],\\n \\"TotalCount\\": 0,\\n \\"Count\\": 0,\\n \\"PageNumber\\": 1,\\n \\"PageSize\\": 20\\n}","type":"json"}]', - 'title' => 'DescribeGrantRulesToEcr', ], - 'DescribeVirtualBorderRoutersForPhysicalConnection' => [ - 'summary' => 'Queries the virtual border routers (VBRs) that are associated with an Express Connect circuit. The VBRs can be created by the owner of the Express Connect circuit and by other Alibaba Cloud accounts.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'GetNatGatewayAttribute' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -50969,105 +40309,26 @@ ], 'operationType' => 'read', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'list', - 'riskType' => 'none', - 'chargeType' => 'free', - ], + 'systemTags' => ['operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The region in which the Express Connect circuit is deployed. You can call the [DescribeRegions](~~36063~~) operation to obtain the region ID.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-shanghai', - ], + 'schema' => ['description' => 'The region ID of the NAT gateway.'."\n" + ."\n" + .'Call the [DescribeRegions](~~448570~~) operation to obtain the region ID.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-qingdao', 'title' => ''], ], [ - 'name' => 'PhysicalConnectionId', + 'name' => 'NatGatewayId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the Express Connect circuit.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'pc-119mfj****', - ], + 'schema' => ['description' => 'The ID of the NAT gateway.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'ngw-bp1b0lic8uz4r6vf2****', 'title' => ''], ], [ - 'name' => 'PageNumber', - 'in' => 'query', - 'schema' => [ - 'description' => 'The page number. Default value: **1**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'minimum' => '1', - 'example' => '1', - 'default' => '1', - ], - ], - [ - 'name' => 'PageSize', - 'in' => 'query', - 'schema' => [ - 'description' => 'The number of entries per page. Maximum value: **50**. Default value: **10**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '50', - 'minimum' => '1', - 'example' => '10', - 'default' => '10', - ], - ], - [ - 'name' => 'Filter', + 'name' => 'RegionId', 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => 'The filter keys.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => 'The filter conditions. You can specify at most five filter conditions. The following filter conditions are supported:'."\n" - ."\n" - .'* **PhysicalConnectionId**: filter VBRs by the Express Connect circuit ID.'."\n" - .'* **VbrId**: filter VBRs by ID.'."\n" - .'* **Status**: filter VBRs by status.'."\n" - .'* **Name**: filter VBRs by name.'."\n" - .'* **AccessPointId**: filter VBRs by access point ID.'."\n" - .'* **eccId**: filter VBRs by ID of Express Cloud Connect (ECC) instance.'."\n" - .'* **type**: filter VBRs by type.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'Status', - ], - 'Value' => [ - 'description' => 'The filter value for the key. You can specify multiple filter values for one key. The logical operator among filter values is OR. If one filter value is matched, the filter condition is matched.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The filter value for the key. You can specify multiple filter values for one key. The logical operator among filter values is OR. If one filter value is matched, the filter condition is matched.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'Active', - ], - 'required' => false, - 'example' => 'Active', - 'maxItems' => 5, - ], - ], - 'required' => false, - ], - 'required' => false, - 'maxItems' => 5, - ], + 'schema' => ['description' => 'The region ID of the NAT gateway.'."\n" + ."\n" + .'Call the [DescribeRegions](~~448570~~) operation to obtain the region ID.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-qingdao', 'title' => ''], ], ], 'responses' => [ @@ -51075,1692 +40336,1233 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '7C5AE8B3-A2D8-428D-A2FF-93A225C0821E', + 'VpcId' => ['description' => 'The ID of the VPC to which the NAT Gateway instance belongs.', 'type' => 'string', 'example' => 'vpc-bp15zckdt37pq72z****', 'title' => ''], + 'CreationTime' => ['description' => 'The creation time of the NAT Gateway instance. The time is in the `YYYY-MM-DDThh:mm:ssZ` format.', 'type' => 'string', 'example' => '2021-12-08T12:20:20Z', 'title' => ''], + 'Status' => ['description' => 'The status of the NAT Gateway instance. Valid values:'."\n" + ."\n" + .'- **Creating**: Being created. This is an asynchronous operation.'."\n" + ."\n" + .'- **Available**: Available. This is the steady state of the NAT Gateway after creation.'."\n" + ."\n" + .'- **Modifying**: Being modified. This is an asynchronous operation.'."\n" + ."\n" + .'- **Deleting**: Being deleted. This is an asynchronous operation.'."\n" + ."\n" + .'- **Converting**: Being converted to an Enhanced NAT Gateway. This is an asynchronous operation.', 'type' => 'string', 'example' => 'Available', 'title' => ''], + 'NatType' => ['description' => 'The type of the public NAT gateway. The value **Enhanced** indicates an Enhanced NAT Gateway.', 'type' => 'string', 'example' => 'Enhanced', 'title' => ''], + 'NetworkType' => ['description' => 'The type of the NAT Gateway. Valid values:'."\n" + ."\n" + .'- **internet**: A public NAT gateway.'."\n" + ."\n" + .'- **intranet**: A VPC NAT Gateway.', 'type' => 'string', 'example' => 'internet', 'title' => ''], + 'RegionId' => ['description' => 'The region ID of the NAT Gateway instance.', 'type' => 'string', 'example' => 'cn-qingdao', 'title' => ''], + 'EcsMetricEnabled' => ['description' => 'Indicates whether the gateway traffic monitoring feature is enabled. Valid values:'."\n" + ."\n" + .'- **true**: Enabled.'."\n" + ."\n" + .'- **false**: Disabled.', 'type' => 'boolean', 'example' => 'true', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '4EC47282-1B74-4534-BD0E-403F3EE64CAF', 'title' => ''], + 'Description' => ['description' => 'The description of the NAT Gateway instance.', 'type' => 'string', 'example' => 'NAT', 'title' => ''], + 'ExpiredTime' => ['description' => 'The expiration time of the NAT Gateway instance.', 'type' => 'string', 'example' => '2021-12-26T12:20:20Z', 'title' => ''], + 'ResourceGroupId' => ['description' => 'The ID of the resource group.', 'type' => 'string', 'example' => 'rg-bp67acfmxazb4ph****', 'title' => ''], + 'NatGatewayId' => ['description' => 'The ID of the NAT Gateway instance.', 'type' => 'string', 'example' => 'ngw-bp1047e2d4z7kf2ki****', 'title' => ''], + 'BusinessStatus' => ['description' => 'The business status of the NAT Gateway instance. Valid values:'."\n" + ."\n" + .'- **Normal**: The instance is running normally.'."\n" + ."\n" + .'- **FinancialLocked**: The instance is suspended due to an overdue payment.', 'type' => 'string', 'example' => 'Normal', 'title' => ''], + 'Name' => ['description' => 'The name of the NAT Gateway instance.', 'type' => 'string', 'example' => 'abc', 'title' => ''], + 'ForwardTable' => [ + 'description' => 'Information about the DNAT table.', + 'type' => 'object', + 'properties' => [ + 'ForwardTableId' => ['description' => 'The ID of the DNAT table.', 'type' => 'string', 'example' => 'ftb-uf6gj3mhsg94qsqst****', 'title' => ''], + 'ForwardEntryCount' => ['description' => 'The number of DNAT entries.', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''], + ], + 'title' => '', + 'example' => '', ], - 'PageNumber' => [ - 'description' => 'The page number. Default value: **1**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', + 'SnatTable' => [ + 'description' => 'Information about the SNAT table.', + 'type' => 'object', + 'properties' => [ + 'SnatEntryCount' => ['description' => 'The number of SNAT entries.', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''], + 'SnatTableId' => ['description' => 'The ID of the SNAT table.', 'type' => 'string', 'example' => 'stb-SnatTableIds****', 'title' => ''], + ], + 'title' => '', + 'example' => '', ], - 'PageSize' => [ - 'description' => 'The number of entries per page. Maximum value: **50**. Default value: **10**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', + 'FullNatTable' => [ + 'description' => 'Information about the FULLNAT table.', + 'type' => 'object', + 'properties' => [ + 'FullNatEntryCount' => ['description' => 'The number of FULLNAT entries.', 'type' => 'integer', 'format' => 'int64', 'example' => '1', 'title' => ''], + 'FullNatTableId' => ['description' => 'The ID of the FULLNAT table.', 'type' => 'string', 'example' => 'fulltb-gw88z7hhlv43rmb26****', 'title' => ''], + ], + 'title' => '', + 'example' => '', ], - 'TotalCount' => [ - 'description' => 'The number of entries returned.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', + 'BillingConfig' => [ + 'description' => 'The billing configuration.', + 'type' => 'object', + 'properties' => [ + 'InternetChargeType' => ['description' => 'The billing method of the NAT Gateway instance. Valid values:'."\n" + ."\n" + .'- **PayBySpec**: billed by specification.'."\n" + ."\n" + .'- **PayByLcu**: billed by usage.', 'type' => 'string', 'example' => 'PayBySpec', 'title' => ''], + 'AutoPay' => ['description' => 'Indicates whether auto-payment is enabled. This parameter is returned only if **InstanceChargeType** is set to **PrePaid**. Valid values:'."\n" + ."\n" + .'- **false**: Auto-payment is disabled. After an order is generated, the payment must be completed in the Orders console.'."\n" + ."\n" + .'- **true**: Auto-payment is enabled. Payments are automatically completed.'."\n" + ."\n" + .'If **InstanceChargeType** is set to **PostPaid**, an empty string is returned.', 'type' => 'string', 'example' => 'false', 'title' => ''], + 'Spec' => ['description' => 'The specification of the public NAT gateway instance. This parameter is returned only if **InternetChargeType** is set to **PayBySpec**. Valid values:'."\n" + ."\n" + .'- **Small**'."\n" + ."\n" + .'- **Middle**'."\n" + ."\n" + .'- **Large**', 'type' => 'string', 'example' => 'Small', 'title' => ''], + 'InstanceChargeType' => ['description' => ''."\n" + ."\n" + .'The billing method of the NAT Gateway instance. Valid values:'."\n" + ."\n" + .''."\n" + ."\n" + .''."\n" + ."\n" + .'- **PostPaid**: pay-as-you-go.'."\n" + ."\n" + .''."\n" + ."\n" + .''."\n" + ."\n" + .'- **PrePaid**: subscription.'."\n" + ."\n" + .''."\n" + ."\n\n" + .''."\n" + ."\n" + .'The billing method of the NAT Gateway instance. The value is **PostPaid** (pay-as-you-go).'."\n" + ."\n" + .'', 'type' => 'string', 'example' => 'PostPaid', 'title' => ''], + ], + 'title' => '', + 'example' => '', ], - 'VirtualBorderRouterForPhysicalConnectionSet' => [ + 'PrivateInfo' => [ + 'description' => 'The private network information about the NAT Gateway instance.', 'type' => 'object', - 'itemNode' => true, 'properties' => [ - 'VirtualBorderRouterForPhysicalConnectionType' => [ - 'description' => 'The information about VBRs.'."\n", - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Status' => [ - 'description' => 'The status of the VBR. Valid values:'."\n" - ."\n" - .'* **unconfirmed**'."\n" - .'* **active**'."\n" - .'* **terminating**'."\n" - .'* **terminated**'."\n" - .'* **recovering**'."\n" - .'* **deleting**'."\n", - 'type' => 'string', - 'example' => 'Active', - ], - 'CreationTime' => [ - 'description' => 'The time when the VBR was created.'."\n", - 'type' => 'string', - 'example' => '2021-06-08T12:20:55', - ], - 'Type' => [ - 'description' => 'The VBR type.'."\n", - 'type' => 'string', - 'example' => 'pconnVBR', - ], - 'PeerIpv6GatewayIp' => [ - 'description' => 'The IPv6 address of the gateway device on the user side.'."\n" - ."\n" - .'This parameter is required when you create a VBR for the owner of the Express Connect circuit. You can ignore this parameter when you create a VBR for another Alibaba Cloud account.'."\n", - 'type' => 'string', - 'example' => '2001:XXXX:3c4d:0015:0000:0000:0000:1a2b', - ], - 'CircuitCode' => [ - 'description' => 'The circuit code of the Express Connect circuit. The circuit code is provided by the connectivity provider.'."\n", - 'type' => 'string', - 'example' => 'longtel0**', - ], - 'LocalIpv6GatewayIp' => [ - 'description' => 'The IPv6 address of the gateway device on the Alibaba Cloud side.'."\n", - 'type' => 'string', - 'example' => 'ipv6bw-uf6hcyzu65v98v3du****', - ], - 'PConnVbrExpireTime' => [ - 'description' => 'The time when the VBR associated with the Express Connect circuit expires.'."\n", - 'type' => 'string', - 'example' => '2021-06-10T12:20:55', - ], - 'LocalGatewayIp' => [ - 'description' => 'The IPv4 address of the gateway device on the Alibaba Cloud side.'."\n", - 'type' => 'string', - 'example' => '192.168.XX.X', - ], - 'BandwidthStatus' => [ - 'description' => 'The status of the bandwidth. Valid values:'."\n" - ."\n" - .'* **Active**'."\n" - .'* **Inactive**'."\n", - 'type' => 'string', - 'example' => 'Active', - ], - 'ActivationTime' => [ - 'description' => 'The time when the VBR was first activated.'."\n", - 'type' => 'string', - 'example' => '2021-06-08T12:20:55', - ], - 'VbrOwnerUid' => [ - 'description' => 'The ID of the Alibaba Cloud account to which the VBR belongs.'."\n" - ."\n" - .'If the owner of the VBR is the same as that of the Express Connect circuit, this parameter is empty.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '253460731706911258', - ], - 'PeeringSubnetMask' => [ - 'description' => 'The subnet mask of the IPv4 addresses configured on the user side and Alibaba Cloud side.'."\n" - ."\n" - .'The two IPv4 addresses must fall within the same subnet.'."\n", - 'type' => 'string', - 'example' => '255.255.255.0', - ], - 'EnableIpv6' => [ - 'description' => 'Indicates whether IPv6 is enabled. Valid values:'."\n" - ."\n" - .'* **true**'."\n" - .'* **false**'."\n", - 'type' => 'boolean', - 'example' => 'true', - ], - 'EccId' => [ - 'description' => 'The ID of the ECC instance.'."\n", - 'type' => 'string', - 'example' => 'ecc-sjghe****', - ], - 'Bandwidth' => [ - 'description' => 'The bandwidth of the VBR that is associated with the Express Connect circuit. Unit: Mbit/s.'."\n", - 'type' => 'string', - 'example' => '10', - ], - 'RecoveryTime' => [ - 'description' => 'The last time when the status of the VBR changed from Terminated to Active.'."\n", - 'type' => 'string', - 'example' => '2021-06-08T12:20:55', - ], - 'TerminationTime' => [ - 'description' => 'The last time when the VBR was disabled.'."\n", - 'type' => 'string', - 'example' => '2021-06-07T12:20:55', - ], - 'PConnVbrBussinessStatus' => [ - 'description' => 'The status of the VBR associated with the Express Connect circuit. Valid values:'."\n" - ."\n" - .'* **Normal**'."\n" - .'* **FinancialLocked**'."\n", - 'type' => 'string', - 'example' => 'Normal', - ], - 'PeerGatewayIp' => [ - 'description' => 'The IPv4 address of the gateway device on the user side.'."\n", - 'type' => 'string', - 'example' => '162.62.XX.XX', - ], - 'PeeringIpv6SubnetMask' => [ - 'description' => 'The subnet mask for the IPv6 addresses of the gateway devices on the Alibaba Cloud side and on the user side.'."\n" - ."\n" - .'The two IPv6 addresses must fall within the same subnet.'."\n", - 'type' => 'string', - 'example' => '2408:4004:cc:400::/56', - ], - 'VbrId' => [ - 'description' => 'The VBR ID.'."\n", - 'type' => 'string', - 'example' => 'vbr-bp16ksp61j7e0tk****', - ], - 'PConnVbrChargeType' => [ - 'description' => 'The billing method of the VBR. Valid values:'."\n" - ."\n" - .'* **PrePaid**: subscription. If you choose this billing method, make sure that your Apsara Stack account supports balance payments or credit payments.'."\n" - .'* **PostPaid**: pay-as-you-go.'."\n", - 'type' => 'string', - 'example' => 'PrePaid', - ], - 'VlanId' => [ - 'description' => 'The VLAN ID of the VBR.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1678', - ], - 'VbrName' => [ - 'type' => 'string', - ], - ], - ], + 'MaxBandwidth' => ['description' => 'The maximum bandwidth, in Mbps.', 'type' => 'integer', 'format' => 'int32', 'example' => '5120', 'title' => ''], + 'VswitchId' => ['description' => 'The ID of the vSwitch to which the NAT Gateway instance belongs.', 'type' => 'string', 'example' => 'vsw-bp1s2laxhdf9ayjbo***', 'title' => ''], + 'PrivateIpAddress' => ['description' => 'The private IP address.', 'type' => 'string', 'example' => '192.168.XX.XX', 'title' => ''], + 'IzNo' => ['description' => 'The ID of the availability zone to which the NAT Gateway instance belongs.', 'type' => 'string', 'example' => 'cn-qingdao-b', 'title' => ''], + 'EniInstanceId' => ['description' => 'The ID of the elastic network interface instance.', 'type' => 'string', 'example' => 'eni-bp1cmgtoaka8vfyg****', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'DeletionProtectionInfo' => [ + 'description' => 'Information about the deletion protection feature.', + 'type' => 'object', + 'properties' => [ + 'Enabled' => ['description' => 'Indicates whether deletion protection is enabled.'."\n" + ."\n" + .'- **true**'."\n" + ."\n" + .'- **false**', 'type' => 'boolean', 'example' => 'true', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'IpList' => [ + 'description' => 'The Elastic IP Addresses (EIPs) that are associated with the public NAT gateway.', + 'type' => 'array', + 'items' => [ + 'description' => 'The EIPs that are associated with the public NAT gateway.', + 'type' => 'object', + 'properties' => [ + 'UsingStatus' => ['description' => 'The usage status of the EIP.'."\n" + ."\n" + .'- **Idle**: Not associated with an SNAT entry or a DNAT entry.'."\n" + ."\n" + .'- **UsedBySnat**: Associated with an SNAT entry.'."\n" + ."\n" + .'- **UsedByForward**: Associated with a DNAT entry.', 'type' => 'string', 'example' => 'idle', 'title' => ''], + 'IpAddress' => ['description' => 'The EIP address.', 'type' => 'string', 'example' => '116.33.XX.XX', 'title' => ''], + 'AllocationId' => ['description' => 'The ID of the EIP instance.', 'type' => 'string', 'example' => 'eip-bp13e9i2qst4g6jzi****', 'title' => ''], ], + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + 'PrivateLinkEnabled' => ['description' => 'Indicates whether PrivateLink is supported. Valid values:'."\n" + ."\n" + .'- **true**: PrivateLink is supported.'."\n" + ."\n" + .'- **false**: PrivateLink is not supported.', 'type' => 'boolean', 'title' => '', 'example' => 'true'], + 'PrivateLinkMode' => ['description' => 'The mode of the PrivateLink service. Valid values:'."\n" + ."\n" + .'- **FullNat**: FULLNAT mode.'."\n" + ."\n" + .'- **Geneve**: Geneve mode.', 'type' => 'string', 'title' => '', 'example' => 'FullNat'], + 'EnableSessionLog' => ['description' => 'Indicates whether session logging is enabled. Valid values:'."\n" + ."\n" + .'- **true**'."\n" + ."\n" + .'- **false**', 'type' => 'boolean', 'example' => 'true', 'title' => ''], + 'LogDelivery' => [ + 'description' => 'The session log delivery settings.', + 'type' => 'object', + 'properties' => [ + 'LogDeliveryType' => ['description' => 'The destination to which session logs are delivered. The value is always'."\n" + .'**sls**, which indicates Log Service.', 'type' => 'string', 'example' => 'sls', 'title' => ''], + 'LogDestination' => ['description' => 'The Log Service Logstore to which session logs are delivered.', 'type' => 'string', 'example' => 'acs:log:cn-hangzhou:0000:project/nat_session_log_project/logstore/session_log_test', 'title' => ''], + 'DeliveryStatus' => ['description' => 'The status of log delivery. Valid values:'."\n" + ."\n" + .'- **Success**: The logs are delivered successfully.'."\n" + ."\n" + .'- **Failure**: The logs failed to be delivered.', 'type' => 'string', 'example' => 'Failure', 'title' => ''], + 'DeliverLogsErrorMessage' => ['description' => 'The error message that is returned when log delivery fails.', 'type' => 'string', 'example' => 'LogStoreNotExist: logstore session_log_test does not exist', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'AccessMode' => [ + 'description' => 'The access mode of the VPC NAT Gateway.', + 'type' => 'object', + 'properties' => [ + 'ModeValue' => ['description' => 'The access mode. Valid values:'."\n" + ."\n" + .'- **route**: route mode.'."\n" + ."\n" + .'- **tunnel**: tunnel mode.', 'type' => 'string', 'example' => 'route', 'title' => ''], + 'TunnelType' => ['description' => 'The tunnel type. This parameter is returned only when `ModeValue` is set to `tunnel`. Valid value:'."\n" + ."\n" + .'- **geneve**: Geneve.', 'type' => 'string', 'example' => 'geneve', 'title' => ''], ], + 'title' => '', + 'example' => '', ], + 'AvailabilityMode' => ['type' => 'string', 'description' => '', 'title' => '', 'example' => ''], ], 'description' => '', + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InvalidPhysicalConnectionId.NotFound', - 'errorMessage' => 'The specified physicalConnection is not found.', - ], - ], 404 => [ - [ - 'errorCode' => 'InvalidRegionId.NotFound', - 'errorMessage' => 'The RegionId provided does not exist in our records.', - ], - [ - 'errorCode' => 'InvalidPhysicalConnectionId.NotFound', - 'errorMessage' => 'The specified PhysicalConnectionId does not belong to user.', - ], + ['errorCode' => 'InvalidRegionId.NotFound', 'errorMessage' => 'The specified RegionId does not exist in our records.', 'description' => ''], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"7C5AE8B3-A2D8-428D-A2FF-93A225C0821E\\",\\n \\"PageNumber\\": 1,\\n \\"PageSize\\": 10,\\n \\"TotalCount\\": 1,\\n \\"VirtualBorderRouterForPhysicalConnectionSet\\": {\\n \\"VirtualBorderRouterForPhysicalConnectionType\\": [\\n {\\n \\"Status\\": \\"Active\\",\\n \\"CreationTime\\": \\"2021-06-08T12:20:55\\",\\n \\"Type\\": \\"pconnVBR\\",\\n \\"PeerIpv6GatewayIp\\": \\"2001:XXXX:3c4d:0015:0000:0000:0000:1a2b\\",\\n \\"CircuitCode\\": \\"longtel0**\\",\\n \\"LocalIpv6GatewayIp\\": \\"ipv6bw-uf6hcyzu65v98v3du****\\",\\n \\"PConnVbrExpireTime\\": \\"2021-06-10T12:20:55\\",\\n \\"LocalGatewayIp\\": \\"192.168.XX.X\\",\\n \\"BandwidthStatus\\": \\"Active\\",\\n \\"ActivationTime\\": \\"2021-06-08T12:20:55\\",\\n \\"VbrOwnerUid\\": 253460731706911260,\\n \\"PeeringSubnetMask\\": \\"255.255.255.0\\",\\n \\"EnableIpv6\\": true,\\n \\"EccId\\": \\"ecc-sjghe****\\",\\n \\"Bandwidth\\": \\"10\\",\\n \\"RecoveryTime\\": \\"2021-06-08T12:20:55\\",\\n \\"TerminationTime\\": \\"2021-06-07T12:20:55\\",\\n \\"PConnVbrBussinessStatus\\": \\"Normal\\",\\n \\"PeerGatewayIp\\": \\"162.62.XX.XX\\",\\n \\"PeeringIpv6SubnetMask\\": \\"2408:4004:cc:400::/56\\",\\n \\"VbrId\\": \\"vbr-bp16ksp61j7e0tk****\\",\\n \\"PConnVbrChargeType\\": \\"PrePaid\\",\\n \\"VlanId\\": 1678,\\n \\"VbrName\\": \\"aliyun-to-bin-10G-A-QOS\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 7C5AE8B3-A2D8-428D-A2FF-93A225C0821E\\n 1\\n 10\\n 1\\n \\n Active\\n 2021-06-08T12:20:55\\n pconnVBR\\n 2001:XXXX:3c4d:0015:0000:0000:0000:1a2b\\n longtel0**\\n ipv6bw-uf6hcyzu65v98v3du****\\n 2021-06-10T12:20:55\\n 192.168.XX.X\\n Active\\n 2021-06-08T12:20:55\\n 253460731706911260\\n 255.255.255.0\\n true\\n ecc-sjghe****\\n 10\\n 2021-06-08T12:20:55\\n 2021-06-07T12:20:55\\n Normal\\n 162.62.XX.XX\\n 2408:4004:cc:400::/56\\n vbr-bp16ksp61j7e0tk****\\n PrePaid\\n 1678\\n \\n","errorExample":""}]', - 'title' => 'DescribeVirtualBorderRoutersForPhysicalConnection', + 'title' => 'GetNatGatewayAttribute', + 'summary' => 'Queries the details of a NAT gateway instance.', + 'description' => 'Queries a public NAT gateway or VPC NAT gateway. In this topic, NAT Gateway refers to either type.', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'AddBgpNetwork' => [ - 'summary' => 'Advertises a Border Gateway Protocol (BGP) network.', - 'methods' => [ - 'post', - 'get', + 'changeSet' => [ + ['createdAt' => '2024-10-23T06:17:18.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2024-05-07T06:31:14.000Z', 'description' => 'Response parameters changed, Response parameters changed'], + ['createdAt' => '2023-03-01T06:45:50.000Z', 'description' => 'Response parameters changed'], + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'vpc:GetNatGatewayAttribute', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'NatGateway', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:natgateway/{#NatGatewayId}'], + ], + ], + ], ], - 'schemes' => [ - 'http', - 'https', + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"VpcId\\": \\"vpc-bp15zckdt37pq72z****\\",\\n \\"CreationTime\\": \\"2021-12-08T12:20:20Z\\",\\n \\"Status\\": \\"Available\\",\\n \\"NatType\\": \\"Enhanced\\",\\n \\"NetworkType\\": \\"internet\\",\\n \\"RegionId\\": \\"cn-qingdao\\",\\n \\"EcsMetricEnabled\\": true,\\n \\"RequestId\\": \\"4EC47282-1B74-4534-BD0E-403F3EE64CAF\\",\\n \\"Description\\": \\"NAT\\",\\n \\"ExpiredTime\\": \\"2021-12-26T12:20:20Z\\",\\n \\"ResourceGroupId\\": \\"rg-bp67acfmxazb4ph****\\",\\n \\"NatGatewayId\\": \\"ngw-bp1047e2d4z7kf2ki****\\",\\n \\"BusinessStatus\\": \\"Normal\\",\\n \\"Name\\": \\"abc\\",\\n \\"ForwardTable\\": {\\n \\"ForwardTableId\\": \\"ftb-uf6gj3mhsg94qsqst****\\",\\n \\"ForwardEntryCount\\": 1\\n },\\n \\"SnatTable\\": {\\n \\"SnatEntryCount\\": 1,\\n \\"SnatTableId\\": \\"stb-SnatTableIds****\\"\\n },\\n \\"FullNatTable\\": {\\n \\"FullNatEntryCount\\": 1,\\n \\"FullNatTableId\\": \\"fulltb-gw88z7hhlv43rmb26****\\"\\n },\\n \\"BillingConfig\\": {\\n \\"InternetChargeType\\": \\"PayBySpec\\",\\n \\"AutoPay\\": \\"false\\",\\n \\"Spec\\": \\"Small\\",\\n \\"InstanceChargeType\\": \\"PostPaid\\"\\n },\\n \\"PrivateInfo\\": {\\n \\"MaxBandwidth\\": 5120,\\n \\"VswitchId\\": \\"vsw-bp1s2laxhdf9ayjbo***\\",\\n \\"PrivateIpAddress\\": \\"192.168.XX.XX\\",\\n \\"IzNo\\": \\"cn-qingdao-b\\",\\n \\"EniInstanceId\\": \\"eni-bp1cmgtoaka8vfyg****\\"\\n },\\n \\"DeletionProtectionInfo\\": {\\n \\"Enabled\\": true\\n },\\n \\"IpList\\": [\\n {\\n \\"UsingStatus\\": \\"idle\\",\\n \\"IpAddress\\": \\"116.33.XX.XX\\",\\n \\"AllocationId\\": \\"eip-bp13e9i2qst4g6jzi****\\"\\n }\\n ],\\n \\"PrivateLinkEnabled\\": true,\\n \\"PrivateLinkMode\\": \\"FullNat\\",\\n \\"EnableSessionLog\\": true,\\n \\"LogDelivery\\": {\\n \\"LogDeliveryType\\": \\"sls\\",\\n \\"LogDestination\\": \\"acs:log:cn-hangzhou:0000:project/nat_session_log_project/logstore/session_log_test\\",\\n \\"DeliveryStatus\\": \\"Failure\\",\\n \\"DeliverLogsErrorMessage\\": \\"LogStoreNotExist: logstore session_log_test does not exist\\"\\n },\\n \\"AccessMode\\": {\\n \\"ModeValue\\": \\"route\\",\\n \\"TunnelType\\": \\"geneve\\"\\n },\\n \\"AvailabilityMode\\": \\"\\"\\n}","type":"json"}]', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '1200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'GetNatGatewayAttribute'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], ], + ], + 'GetNatIpAttribute' => [ + 'summary' => 'Call GetNatIpAttribute to query the VPC NAT network to obtain information on each NAT IP address.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'read', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'get', - 'riskType' => 'none', - 'chargeType' => 'free', - ], + 'systemTags' => ['operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the virtual border router (VBR) group.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-shanghai', - ], + 'schema' => ['description' => 'The region ID of the NAT gateway instance to which the NAT IP address to be queried belongs. You can obtain the region ID by calling the [DescribeRegions](~~36063~~) interface.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'eu-central-1', 'title' => ''], ], [ - 'name' => 'DstCidrBlock', + 'name' => 'NatIpId', 'in' => 'query', - 'schema' => [ - 'description' => 'The CIDR block of the virtual private cloud (VPC) or vSwitch that you want to connect to a data center.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => '10.10.XX.XX/32', - ], + 'schema' => ['description' => 'The ID of the NAT IP address instance to be queried.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'vpcnatip-gw8y7q3cpk3fggs87****', 'title' => ''], ], [ - 'name' => 'VpcId', + 'name' => 'DryRun', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the VPC.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'vpc-bp1qpo0kug3a2*****', - ], + 'schema' => ['description' => 'Indicates whether to perform a dry run of the request. Values:'."\n" + .'- **true**: Sends a check request without querying NAT IP address information. The checks include whether the AccessKey is valid, the RAM user\'s authorization status, and if all required parameters are filled out. If any check fails, the corresponding error is returned. If all checks pass, the `DryRunOperation` error code is returned.'."\n" + .'- **false** (default): Sends a normal request. After passing the checks, it returns an HTTP 2xx status code and queries the NAT IP address information.', 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], ], [ - 'name' => 'RouterId', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the router that is associated with the router interface.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'vrt-2zeo3xzyf38r4u******', - ], + 'schema' => ['description' => 'Client Token, used to ensure the idempotence of requests. Generate a unique value for this parameter from your client, ensuring that it is unique across different requests. ClientToken only supports ASCII characters. If not specified, the system automatically uses the **RequestId** of the API request as the **ClientToken** identifier. The **RequestId** may differ for each API request.', 'type' => 'string', 'required' => false, 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3FF3898', 'title' => ''], ], [ - 'name' => 'ClientToken', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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.'."\n" - ."\n" - .'> 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.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-426655440000', - ], + 'schema' => ['description' => 'The region ID of the NAT gateway instance to which the NAT IP address to be queried belongs. You can obtain the region ID by calling the [DescribeRegions](~~36063~~) interface.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'eu-central-1', 'title' => ''], ], ], 'responses' => [ 200 => [ + 'headers' => [], 'schema' => [ - 'description' => 'The request ID.'."\n", 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '9C7FA9D6-72E0-48A9-A9C3-2DA8569CD5EB', - ], + 'CreationTime' => ['description' => 'The creation time of the queried NAT IP address.', 'type' => 'string', 'example' => '2021-07-16T16:47Z', 'title' => ''], + 'NatIp' => ['description' => 'The queried NAT IP address.', 'type' => 'string', 'example' => '192.168.0.34', 'title' => ''], + 'NatIpCidr' => ['description' => 'The address range where the queried NAT IP address is located.', 'type' => 'string', 'example' => '192.168.0.0/24', 'title' => ''], + 'RequestId' => ['description' => 'Request ID.', 'type' => 'string', 'example' => '9D55DB90-0D57-46AB-841D-1D4238514AC6', 'title' => ''], + 'NatIpId' => ['description' => 'The ID of the queried NAT IP address instance.', 'type' => 'string', 'example' => 'vpcnatip-gw8y7q3cpk3fggs87****', 'title' => ''], + 'NatIpDescription' => ['description' => 'Description of the queried NAT IP address.', 'type' => 'string', 'example' => '123', 'title' => ''], + 'NatGatewayId' => ['description' => 'The ID of the VPC NAT gateway instance to which the queried NAT IP address belongs.', 'type' => 'string', 'example' => 'ngw-gw8v16wgvtq26vh59****', 'title' => ''], + 'NatIpName' => ['description' => 'Name of the queried NAT IP address.', 'type' => 'string', 'example' => 'test', 'title' => ''], + 'NatIpStatus' => ['description' => 'The status of the queried NAT IP address. Values:'."\n" + .'- **Available**: Available.'."\n" + .' - **Deleting**: Deleting.'."\n" + .' - **Creating**: Creating.', 'type' => 'string', 'example' => 'Available', 'title' => ''], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'QuotaExceeded.Bgp', - 'errorMessage' => 'bgp peer count per vbr quota exceed.', - ], - [ - 'errorCode' => 'QuotaExceeded.Nqa', - 'errorMessage' => 'nqa count per vbr quota exceed.', - ], - [ - 'errorCode' => 'QuotaExceeded.BgpNetwork', - 'errorMessage' => 'bgp network count per vbr quota exceed.', - ], - [ - 'errorCode' => 'InvalidPeerIpAddress', - 'errorMessage' => 'multi pconn peer ip can not be null.', - ], - [ - 'errorCode' => 'InvalidVbrNetwork', - 'errorMessage' => 'vbr netowrk not exists', - ], - [ - 'errorCode' => 'InvalidBgpGroup', - 'errorMessage' => 'bgp group not exists', - ], - [ - 'errorCode' => 'InvalidBgpName.Malformed', - 'errorMessage' => 'Specified Bgp Group name is not valid.', - ], - [ - 'errorCode' => 'InvalidBgpDiscription.Malformed', - 'errorMessage' => 'Specified Bgp Group description is not valid.', - ], - [ - 'errorCode' => 'InvalidBgpAuthkey.Malformed', - 'errorMessage' => 'Specified Bgp Group authkey is not valid.', - ], - [ - 'errorCode' => 'InvalidIP.Malformed', - 'errorMessage' => 'Ip malformed.', - ], - [ - 'errorCode' => 'InvalidPeerAsn.Malformed', - 'errorMessage' => 'invalid peer asn cannot equals aliyun asn:45104', - ], - [ - 'errorCode' => 'InvalidParams.NotNull', - 'errorMessage' => 'parameter must not null.', - ], - [ - 'errorCode' => 'InvalidParams.NotFound', - 'errorMessage' => 'instance not found', - ], - [ - 'errorCode' => 'InvalidParams.AlreadyExists', - 'errorMessage' => 'bgp network already exists', - ], - [ - 'errorCode' => 'InvalidStatus.CannotOperate', - 'errorMessage' => 'invalid status cannot operate', - ], - [ - 'errorCode' => 'InvalidParams.PeerIpAddressMustPointOut', - 'errorMessage' => 'vbr has 0 or more than 1 subif ,point out peerIpAddress.', - ], - [ - 'errorCode' => 'InvalidParams.PeerIpAddressInUse', - 'errorMessage' => 'peer ip address in use ,cannot create bgp peer.', - ], - [ - 'errorCode' => 'Duplicated.CidrBlock', - 'errorMessage' => 'bgp network cidr already exists.', - ], - [ - 'errorCode' => 'InvalidIP.IpInSnatPool', - 'errorMessage' => 'Multi ip in snat pool cannot remove ip from bandwidth package.', - ], - [ - 'errorCode' => 'InvalidDestCidrBlock.Malformed', - 'errorMessage' => 'Specified dstCidrBlock is not valid.', - ], - [ - 'errorCode' => 'IllegalParam.ConflictWithDClass', - 'errorMessage' => 'DClass IP can not support.', - ], - [ - 'errorCode' => 'OperationFailed.PconnTrafficNotEnable', - 'errorMessage' => 'The operation is failed because of PconnTrafficNotEnable.', - ], - [ - 'errorCode' => 'OperationFailed.NoActiveRouterInterface', - 'errorMessage' => 'there\'s not active routerInterface,cannot add bgp network.', - ], - [ - 'errorCode' => 'IllegalParamFormat.DstCidrBlock', - 'errorMessage' => 'The format of the specified destination CIDR block is invalid.', - ], - [ - 'errorCode' => 'IllegalParam.IpVersion', - 'errorMessage' => 'The parameter of IpVersion is illegal.', - ], - [ - 'errorCode' => 'IllegalParam.ipVersion', - 'errorMessage' => 'The IP version does not match.', - ], - ], 404 => [ - [ - 'errorCode' => 'InvalidRegionId.NotFound', - 'errorMessage' => 'The specified RegionId does not exist in our records.', - ], + ['errorCode' => 'InvalidRegionId.NotFound', 'errorMessage' => 'The specified RegionId does not exist in our records.', 'description' => ''], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"9C7FA9D6-72E0-48A9-A9C3-2DA8569CD5EB\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 9C7FA9D6-72E0-48A9-A9C3-2DA8569CD5EB\\n","errorExample":""}]', - 'title' => 'AddBgpNetwork', + 'title' => '查看单个NAT IP地址详细信息', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"CreationTime\\": \\"2021-07-16T16:47Z\\",\\n \\"NatIp\\": \\"192.168.0.34\\",\\n \\"NatIpCidr\\": \\"192.168.0.0/24\\",\\n \\"RequestId\\": \\"9D55DB90-0D57-46AB-841D-1D4238514AC6\\",\\n \\"NatIpId\\": \\"vpcnatip-gw8y7q3cpk3fggs87****\\",\\n \\"NatIpDescription\\": \\"123\\",\\n \\"NatGatewayId\\": \\"ngw-gw8v16wgvtq26vh59****\\",\\n \\"NatIpName\\": \\"test\\",\\n \\"NatIpStatus\\": \\"Available\\"\\n}","type":"json"}]', ], - 'CreateBgpGroup' => [ - 'summary' => 'Creates a BGP group for a virtual border router (VBR).', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'GetNatIpCidrAttribute' => [ + 'summary' => 'Call GetNatIpCidrAttribute to query the VPC NAT network to obtain information on each NAT IP cidr address.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'read', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'create', - ], + 'systemTags' => ['operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the VBR.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-shanghai', - ], + 'schema' => ['description' => 'The region ID of the NAT gateway instance to which the NAT IP address range to be queried belongs. You can obtain the region ID by calling the DescribeRegions interface.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'eu-central-1', 'title' => ''], ], [ - 'name' => 'RouterId', + 'name' => 'NatIpCidr', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the VBR.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'vbr-bp1ctxy813985gkuk****', - ], + 'schema' => ['description' => 'The NAT IP address range to be queried.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '192.168.0.0/24', 'title' => ''], ], [ - 'name' => 'Name', + 'name' => 'DryRun', 'in' => 'query', - 'schema' => [ - 'description' => 'The name of the BGP group.'."\n" - ."\n" - .'The name must be 2 to 128 characters in length, and can contain letters, digits, periods (.), underscores (\\_), and hyphens (-). The name must start with a letter.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'test', - ], + 'schema' => ['description' => 'Whether to perform a dry run of this request. Values:'."\n" + .'- true: Sends a check request. The checks include whether the AccessKey is valid, the RAM user\'s authorization status, and if all required parameters are filled out. If any check fails, the corresponding error is returned. If all checks pass, an error code DryRunOperation is returned.'."\n" + .'- false (default): Sends a normal request. After passing the checks, a 2xx HTTP status code is returned.', 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], ], [ - 'name' => 'Description', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The description of the BGP group.'."\n" - ."\n" - .'The description must be 2 to 256 characters in length. It must start with a letter and cannot start with `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'BGP', - ], + 'schema' => ['description' => 'Client Token, used to ensure the idempotence of requests. Generate a unique value for this parameter from your client, ensuring it is unique across different requests. ClientToken only supports ASCII characters.'."\n" + .'> If not specified, the system automatically uses the RequestId of the API request as the ClientToken identifier. The RequestId is different for each API request.', 'type' => 'string', 'required' => false, 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3FF3898', 'title' => ''], ], [ - 'name' => 'LocalAsn', + 'name' => 'NatGatewayId', 'in' => 'query', - 'schema' => [ - 'description' => 'The custom ASN on the Alibaba Cloud side. Valid values:'."\n" - ."\n" - .'* **45104**'."\n" - .'* **64512~65534**'."\n" - .'* **4200000000~4294967294**'."\n" - ."\n" - .'> **65025** is reserved by Alibaba Cloud. By default, Alibaba Cloud uses **45104** as **LocalAsn**. If you use custom **LocalAsn** in multi-line access scenarios, loops in BGP may occur.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '45104', - ], + 'schema' => ['description' => 'The ID of the VPC NAT gateway instance to which the queried NAT IP address range belongs.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'ngw-gw8v16wgvtq26vh59****', 'title' => ''], ], [ - 'name' => 'PeerAsn', + 'name' => 'RegionId', 'in' => 'query', + 'schema' => ['description' => 'The region ID of the NAT gateway instance to which the NAT IP address range to be queried belongs. You can obtain the region ID by calling the DescribeRegions interface.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'eu-central-1', 'title' => ''], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => 'The ASN of the gateway device in the data center.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'docRequired' => true, - 'example' => '1****', + 'type' => 'object', + 'properties' => [ + 'NatIpCidrId' => ['description' => 'The instance ID of the queried NAT IP address range.', 'type' => 'string', 'example' => 'vpcnatcidr-gw8lhqtvdn4qnea****', 'title' => ''], + 'NatIpCidr' => ['description' => 'The queried NAT IP address range.', 'type' => 'string', 'example' => '172.16.0.0/24', 'title' => ''], + 'NatIpCidrName' => ['description' => 'The name of the queried NAT IP address range.', 'type' => 'string', 'example' => 'default', 'title' => ''], + 'NatIpCidrStatus' => ['description' => 'The status of the queried NAT IP address segment. Values:'."\n" + .'- Available: Available status.'."\n" + .'- Deleting: In the process of being deleted.'."\n" + .'- Creating: In the process of being created.', 'type' => 'string', 'example' => 'Available', 'title' => ''], + 'RequestId' => ['description' => 'Request ID.', 'type' => 'string', 'example' => 'E9AD97A0-5338-43F8-8A80-5E274CCBA11B', 'title' => ''], + 'NatGatewayId' => ['description' => 'The ID of the VPC NAT gateway instance to which the queried NAT IP address range belongs.', 'type' => 'string', 'example' => 'ngw-gw8v16wgvtq26vh59****', 'title' => ''], + 'NatIpCidrDescription' => ['description' => 'Description of the queried NAT IP address range.', 'type' => 'string', 'example' => 'default', 'title' => ''], + ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], + ], + 'errorCodes' => [ + 404 => [ + ['errorCode' => 'InvalidRegionId.NotFound', 'errorMessage' => 'The specified RegionId does not exist in our records.', 'description' => ''], + ], + ], + 'title' => '查看单个NAT IP地址段详细信息', + 'changeSet' => [], + 'ramActions' => [], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"NatIpCidrId\\": \\"vpcnatcidr-gw8lhqtvdn4qnea****\\",\\n \\"NatIpCidr\\": \\"172.16.0.0/24\\",\\n \\"NatIpCidrName\\": \\"default\\",\\n \\"NatIpCidrStatus\\": \\"Available\\",\\n \\"RequestId\\": \\"E9AD97A0-5338-43F8-8A80-5E274CCBA11B\\",\\n \\"NatGatewayId\\": \\"ngw-gw8v16wgvtq26vh59****\\",\\n \\"NatIpCidrDescription\\": \\"default\\"\\n}","type":"json"}]', + ], + 'GetPhysicalConnectionServiceStatus' => [ + 'summary' => 'Checks whether outbound data transfer billing is enabled for the current account.', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'AuthKey', - 'in' => 'query', - 'schema' => [ - 'description' => 'The authentication key of the BGP group.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '!PWZ2****', - ], + 'AK' => [], ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'paid'], + 'parameters' => [ [ - 'name' => 'IsFakeAsn', + 'name' => 'RegionId', 'in' => 'query', + 'schema' => ['title' => '', 'description' => 'The ID of the region for which you want to query the status of outbound data transfer billing.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'example' => 'cn-hangzhou'], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => 'Specifies whether to use a fake ASN. Valid values:'."\n" - ."\n" - .'* **false** (default)'."\n" - .'* **true**'."\n" - ."\n" - .'> A router that runs BGP typically belongs to only one AS. If you need to replace an existing AS with a new AS and you cannot immediately modify BGP configurations, you can use fake ASNs to ensure service continuity.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - 'default' => 'true', + 'title' => 'Schema of Response', + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['title' => 'Id of the request', 'description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B45'], + 'Enabled' => ['title' => '', 'description' => 'Indicates whether billing for outbound data transfer is enabled. Valid values:'."\n" + ."\n" + .'* **true**: yes'."\n" + .'* **false**: no'."\n", 'type' => 'boolean', 'example' => 'true'], + ], + 'example' => '', ], ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'GetPhysicalConnectionServiceStatus', + 'description' => 'You can call this API operation to query the status of outbound data transfer billing for the current account. For more information about outbound data transfer billing, see [Outbound data transfer billing](~~274385~~) and [Billing](~~54582~~).', + 'changeSet' => [ + ['createdAt' => '2021-07-02T03:18:37.000Z', 'description' => 'OpenAPI offline'], + ], + 'ramActions' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B45\\",\\n \\"Enabled\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n 54B48E3D-DF70-471B-AA93-08E683A1B45\\n true\\n","errorExample":""}]', + ], + 'GetPublicIpAddressPoolServiceStatus' => [ + 'summary' => 'Queries whether the IP address pool feature is enabled.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'readAndWrite', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', 'autoTest' => true, 'tenantRelevance' => 'tenant'], + 'parameters' => [ [ 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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.'."\n" - ."\n" - .'> 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.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-426655440000', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'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.'."\n" + ."\n" + .'> 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.'."\n", 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-426655442455', 'title' => ''], ], [ - 'name' => 'IpVersion', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The IP version. Valid values:'."\n" - ."\n" - .'* **IPv4**: This is the default value.'."\n" - .'* **IPv6**: IPv6 is supported only if the VBR for which you want to create the BGP group has IPv6 enabled.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'IPv4', - ], + 'schema' => ['description' => 'The region ID of the IP address pool.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'RouteQuota', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The maximum number of routes supported by a BGP peer. Default value: **110**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '110', - ], + 'schema' => ['description' => 'The region ID of the IP address pool.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => 'The ID of the BGP group.'."\n", 'type' => 'object', 'properties' => [ - 'BgpGroupId' => [ - 'description' => 'The ID of the BGP group.'."\n", - 'type' => 'string', - 'example' => 'bgpg-bp1k25cyp26cllath****', - ], - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => 'C1221A1F-2ACD-4592-8F27-474E02883159', - ], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '54B48E3D-DF70-471B-AA93-06F82A1B457', 'title' => ''], + 'Enabled' => ['description' => 'Indicates whether the IP address pool feature is enabled. Valid values:'."\n" + ."\n" + .'* **true**'."\n" + .'* **false** You can call OpenPublicIpAddressPoolService to enable the IP address pool feature.'."\n", 'type' => 'boolean', 'example' => 'true', 'title' => ''], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'QuotaExceeded.Bgp', - 'errorMessage' => 'bgp peer count per vbr quota exceed.', - ], - [ - 'errorCode' => 'QuotaExceeded.Nqa', - 'errorMessage' => 'nqa count per vbr quota exceed.', - ], - [ - 'errorCode' => 'QuotaExceeded.BgpNetwork', - 'errorMessage' => 'bgp network count per vbr quota exceed.', - ], - [ - 'errorCode' => 'InvalidPeerIpAddress', - 'errorMessage' => 'multi pconn peer ip can not be null.', - ], - [ - 'errorCode' => 'InvalidVbrNetwork', - 'errorMessage' => 'vbr netowrk not exists', - ], - [ - 'errorCode' => 'InvalidBgpGroup', - 'errorMessage' => 'bgp group not exists', - ], - [ - 'errorCode' => 'InvalidBgpName.Malformed', - 'errorMessage' => 'Specified Bgp Group name is not valid.', - ], - [ - 'errorCode' => 'InvalidBgpDescription.Malformed', - 'errorMessage' => 'Specified Bgp Group description is not valid.', - ], - [ - 'errorCode' => 'InvalidBgpAuthkey.Malformed', - 'errorMessage' => 'Specified Bgp Group authkey is not valid.', - ], - [ - 'errorCode' => 'InvalidIP.Malformed', - 'errorMessage' => 'Ip malformed.', - ], - [ - 'errorCode' => 'InvalidPeerAsn.Malformed', - 'errorMessage' => 'invalid peer asn cannot equals aliyun asn:45104', - ], - [ - 'errorCode' => 'InvalidParams.NotNull', - 'errorMessage' => 'params must not null.', - ], - [ - 'errorCode' => 'InvalidBgpGroup.LocalAsnInvalid', - 'errorMessage' => 'The specified BgpGroup LocalAsn is invalid, only support 64512 to 65534 or 4200000000 to 4294967294, but cannot be 65025.', - ], - [ - 'errorCode' => 'InvalidParams.NotFound', - 'errorMessage' => 'instance not found', - ], - [ - 'errorCode' => 'InvalidParams.AlreadyExists', - 'errorMessage' => 'bgp network already exists', - ], - [ - 'errorCode' => 'InvalidStatus.CannotOperate', - 'errorMessage' => 'invalid status cannot operate', - ], - [ - 'errorCode' => 'InvalidParams.PeerIpAddressMustPointOut', - 'errorMessage' => 'vbr has 0 or more than 1 subif ,point out peerIpAddress.', - ], - [ - 'errorCode' => 'InvalidParams.PeerIpAddressInUse', - 'errorMessage' => 'peer ip address in use ,cannot create bgp peer.', - ], - [ - 'errorCode' => 'IllegalParam.PeerAsn', - 'errorMessage' => 'The param of PeerAsn is illegal', - ], - [ - 'errorCode' => 'IllegalParam.LocalAsn', - 'errorMessage' => 'The param of LocalAsn is illegal', - ], - [ - 'errorCode' => 'OperationFailed.PconnTrafficNotEnable', - 'errorMessage' => 'The operation is failed because of PconnTrafficNotEnable.', - ], - [ - 'errorCode' => 'OperationUnsupport', - 'errorMessage' => 'Operation is unsupport, not in vbr support custom local asn white list.', - ], - [ - 'errorCode' => 'IllegalParam.RouteLimit', - 'errorMessage' => 'The operation is failed because of bgp group max route entry num quota exceed.', - ], - [ - 'errorCode' => 'IllegalParam.BgpGroupLocalAsn', - 'errorMessage' => 'VBR BgpGroup localAsn must same with ECR asn.', - ], - [ - 'errorCode' => 'OperationDenied.VbrAttachEcrInMiddleStatus', - 'errorMessage' => 'The operation is not allowed because of VBR attach or detach ECR in middle status.', - ], - [ - 'errorCode' => 'OperationFailed.BgpPeerConflictWithECR', - 'errorMessage' => 'The BGP neighbor created by the previous VBR conflicts with the ECR configuration.', - ], - [ - 'errorCode' => 'OperationFailed.PeerAsnCannotEqualsLocalAsn', - 'errorMessage' => 'Peer ASN is illegal, peer ASN cannot equals to local ASN.', - ], - ], - 404 => [ - [ - 'errorCode' => 'InvalidRegionId.NotFound', - 'errorMessage' => 'The specified RegionId is not found.', - ], + ['errorCode' => 'Forbidden.RAM', 'errorMessage' => 'The user is not authorized to operate on the specified resource, or the API operation does not support RAM.', 'description' => ''], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"BgpGroupId\\": \\"bgpg-bp1k25cyp26cllath****\\",\\n \\"RequestId\\": \\"C1221A1F-2ACD-4592-8F27-474E02883159\\"\\n}","errorExample":""},{"type":"xml","example":"\\n bgpg-bp1k25cyp26cllath****\\n C1221A1F-2ACD-4592-8F27-474E02883159\\n","errorExample":""}]', - 'title' => 'CreateBgpGroup', - 'description' => 'You can connect a VBR to a data center through BGP. Each BGP group is associated with a VBR. You can add a BGP peer that needs to communicate with a VBR to a BGP group and advertise the BGP network in the VBR.'."\n" - ."\n" - .'BGP groups are used to simplify BGP configurations. You can add BGP peers that use the same configurations to one BGP group. Before you start, you must create a BGP group with the requested autonomous system number (ASN).'."\n" - ."\n" - .'When you call this operation, take note of the following limits:'."\n" - ."\n" - .'* You can specify only the data center that is connected to the VBR through an Express Connect circuit as a BGP peer.'."\n" - .'* VBRs support only BGP-4.'."\n" - .'* You can create at most eight BGP peers for each VBR.'."\n" - .'* Each BGP peer supports at most 110 dynamic routes.'."\n" - .'* The ASN of Alibaba Cloud is 45104. You can specify a 2-byte or 4-byte ASN for the data center.'."\n", - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'GetPublicIpAddressPoolServiceStatus', + 'changeSet' => [], + 'ramActions' => [], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-06F82A1B457\\",\\n \\"Enabled\\": true\\n}","type":"json"}]', ], - 'CreateBgpPeer' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'GetRouteTargetGroup' => [ + 'summary' => 'Get the route target group', + 'description' => 'Get the information of the route target group instance.', + 'path' => '/', + 'methods' => ['post', 'get'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'read', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'create', - ], + 'systemTags' => ['operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', 'autoTest' => true, 'tenantRelevance' => 'tenant'], 'parameters' => [ [ - 'name' => 'RegionId', + 'name' => 'RouteTargetGroupId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region to which the BGP group belongs.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-shanghai', - ], + 'schema' => ['description' => 'ID of the route target group member instance.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'rtg-xxxx', 'title' => ''], ], [ - 'name' => 'BgpGroupId', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the BGP group.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'bgpg-wz9f62v4fbg****', - ], + 'schema' => ['description' => 'ID of the region to which the route target group belongs. You can obtain the region ID by calling the DescribeRegions interface.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'PeerIpAddress', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The IP address of the BGP peer.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '116.62.XX.XX', - ], + 'schema' => ['description' => 'Client token, used to ensure idempotence of the request.'."\n" + ."\n" + .'Generate a parameter value from your client and ensure that it is unique across different requests. ClientToken only supports ASCII characters.'."\n" + ."\n" + .'> If you do not specify this, the system automatically uses the **RequestId** of the API request as the **ClientToken** identifier. The **RequestId** may be different for each API request.', 'type' => 'string', 'required' => false, 'example' => '02fb3da4-130e-11e9-8e44-0016e04115b', 'title' => ''], ], [ - 'name' => 'EnableBfd', - 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to enable the Bidirectional Forwarding Detection (BFD) feature. Valid values:'."\n" - ."\n" - .'* **true**: enables BFD.'."\n" - .'* **false**: disables BFD.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - 'default' => 'false', - ], - ], - [ - 'name' => 'ClientToken', - 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'You can use the client to generate the value, but you must make sure that the value is unique among different requests. The token can contain only ASCII characters and cannot exceed 64 characters in length.'."\n" - ."\n" - .'> If you do not set this parameter, the system uses the value of **RequestId** as **ClientToken**. The value of **RequestId** for each API request is different.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-426655440000', - ], - ], - [ - 'name' => 'IpVersion', - 'in' => 'query', - 'schema' => [ - 'description' => 'The IP version. Valid values:'."\n" - ."\n" - .'* **IPv4**: This is the default value.'."\n" - .'* **IPv6**: IPv6 is supported only if the VBR for which you want to create the BGP group has IPv6 enabled.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'IPv4', - ], - ], - [ - 'name' => 'BfdMultiHop', + 'name' => 'Tag', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => 'The BFD hop count. Valid values: **1** to **255**.'."\n" - ."\n" - .'This parameter is required only if you enable BFD. The parameter specifies the maximum number of network devices that a packet can traverse from the source to the destination. Set a value based on your network topology.'."\n" - ."\n" - .'> If you use BFD in a multi-cloud environment or a fiber-optic direct connection network without any bridge device, you need to change the default BFD hop count from **255** to **1**.', - 'type' => 'integer', - 'format' => 'int32', + 'description' => 'Tag information.', + 'type' => 'array', + 'items' => [ + 'description' => 'Collection of resource tags.', + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => 'Resource tag key. Up to 20 tag keys are supported. If you need to pass this value, you cannot input an empty string.'."\n" + ."\n" + .'A tag key can have up to 128 characters and cannot start with `aliyun` or `acs:`. It cannot contain `http://` or `https://`.', 'type' => 'string', 'required' => false, 'example' => 'FinanceDept', 'title' => ''], + 'Value' => ['description' => 'Resource tag value. Up to 20 tag values are supported. If you need to pass this value, you can input an empty string.'."\n" + ."\n" + .'A tag value can have up to 128 characters and cannot start with `aliyun` or `acs:`. It cannot contain `http://` or `https://`.', 'type' => 'string', 'required' => false, 'example' => 'FinanceJoshua', 'title' => ''], + ], + 'required' => false, + 'title' => '', + 'example' => '', + ], 'required' => false, - 'example' => '3', + 'maxItems' => 21, + 'title' => '', + 'example' => '', ], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'BgpPeerId' => [ - 'description' => 'The ID of the BGP peer.'."\n", + 'RouteTargetGroupId' => ['description' => 'ID of the route target group instance.', 'type' => 'string', 'example' => 'rtg-xxxx', 'title' => ''], + 'RouteTargetGroupName' => ['description' => 'Name of the route target group.', 'type' => 'string', 'example' => 'myRouteTargetGroupName', 'title' => ''], + 'RouteTargetGroupDescription' => ['description' => 'Description of the route target group.', 'type' => 'string', 'example' => 'myRouteTargetGroupDescription', 'title' => ''], + 'VpcId' => ['description' => 'ID of the VPC to which the route target group belongs.', 'type' => 'string', 'example' => 'vpc-xxxx', 'title' => ''], + 'ConfigMode' => [ + 'description' => 'Configuration mode of the route target group. Supported modes are as follows:'."\n" + ."\n" + .'- **Active-Standby**: Active-standby mode.', + 'enumValueTitles' => ['Active-Standby' => 'Active-Standby'], 'type' => 'string', - 'example' => 'bgp-m5eoyp2mwegk8ce9v****', + 'example' => 'Active-Standby', + 'title' => '', ], - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", + 'Status' => [ + 'description' => 'The status of the route target group. Values:'."\n" + .'- **Recovering**: In the process of switching back to the primary '."\n" + .'- **Switched**: The primary and secondary have been switched '."\n" + .'- **Available**: Available '."\n" + .'- **Abnormal**: Secondary instance is abnormal '."\n" + .'- **Pending**: In the process of being created '."\n" + .'- **Switching**: In the process of switching between primary and secondary '."\n" + .'- **Deleting**: In the process of being deleted '."\n" + .'- **Unavailable**: Both primary and secondary instances are abnormal', + 'enumValueTitles' => ['Recovering' => 'Recovering', 'Switched' => 'Switched', 'Available' => 'Available', 'Abnormal' => 'Abnormal', 'Pending' => 'Pending', 'Switching' => 'Switching', 'Deleting' => 'Deleting', 'Unavailable' => 'Unavailable'], 'type' => 'string', - 'example' => 'D4B7649A-61BB-4C64-A586-1DFF1EDA6A42', + 'example' => 'Available', + 'title' => '', + ], + 'RouteTargetMemberList' => [ + 'description' => 'List of members in the route target group.', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'MemberId' => ['description' => 'ID of the route target group member instance.', 'type' => 'string', 'example' => 'ep-xxxx', 'title' => ''], + 'MemberType' => [ + 'description' => 'Type of the route target group member.'."\n" + ."\n" + .'Currently supported types:'."\n" + ."\n" + .'- **GatewayLoadBalancerEndpoint**', + 'enumValueTitles' => ['GatewayLoadBalancerEndpoint' => 'GatewayLoadBalancerEndpoint'], + 'type' => 'string', + 'example' => 'GatewayLoadBalancerEndpoint', + 'title' => '', + ], + 'Weight' => [ + 'description' => 'Weight value of the route target group member. Values:'."\n" + ."\n" + .'- **100**: Indicates the member is the primary instance.'."\n" + .'- **0**: Indicates the member is the standby instance.'."\n" + ."\n" + .'The weight value can only be set during creation and cannot be modified.', + 'enumValueTitles' => ['0', 100 => '100'], + 'type' => 'integer', + 'format' => 'int32', + 'example' => '100', + 'title' => '', + ], + 'HealthCheckStatus' => [ + 'description' => 'Route target group member health check status. Values:'."\n" + .'- **Normal**: Normal '."\n" + .'- **Abnormal**: Abnormal', + 'enumValueTitles' => ['Normal' => 'Normal', 'Abnormal' => 'Abnormal'], + 'type' => 'string', + 'example' => 'Normal', + 'title' => '', + ], + 'EnableStatus' => [ + 'description' => 'The enable status of the route target group member. Values:'."\n" + ."\n" + .'- **Enable**: Enabled.'."\n" + .'- **Disable**: Disabled.'."\n" + ."\n" + .'Only disabled route target group members can be modified to other instances. Enabled route target group members cannot be modified.', + 'enumValueTitles' => ['Enable' => 'Enable', 'Disable' => 'Disable'], + 'type' => 'string', + 'example' => 'Enable', + 'title' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + 'Tags' => [ + 'description' => 'Tags of the route target group.', + 'type' => 'array', + 'items' => [ + 'description' => 'Resource tags.', + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => 'Tag key.', 'type' => 'string', 'example' => 'FinanceDept', 'title' => ''], + 'Value' => ['description' => 'Tag value.', 'type' => 'string', 'example' => 'FinanceJoshua', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', ], + 'RegionId' => ['description' => 'The region ID of the VPC to which the route target group belongs. You can obtain the region ID by calling the DescribeRegions interface.', 'type' => 'string', 'example' => 'cn-qingdao', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '1AE05898-06E5-4782-xxxxx', 'title' => ''], + 'ResourceGroupId' => ['description' => 'The ID of the resource group to which the route target group belongs.', 'type' => 'string', 'example' => 'rg-acfmxazdjdhd****', 'title' => ''], + 'CreateTime' => ['description' => 'The time when the route target group was created.', 'type' => 'string', 'example' => '2025-12-30T06:40:50Z', 'title' => ''], ], + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'QuotaExceeded.Bgp', - 'errorMessage' => 'bgp peer count per vbr quota exceed.', - ], - [ - 'errorCode' => 'QuotaExceeded.Nqa', - 'errorMessage' => 'nqa count per vbr quota exceed.', - ], - [ - 'errorCode' => 'InvalidAccessDeviceId.NotFound', - 'errorMessage' => 'There is no Access_Device_Id in our records', - ], - [ - 'errorCode' => 'QuotaExceeded.BfdSession', - 'errorMessage' => 'Your Bfd Session number reaches the upper limit.', - ], - [ - 'errorCode' => 'QuotaExceeded.BgpNetwork', - 'errorMessage' => 'bgp network count per vbr quota exceed.', - ], - [ - 'errorCode' => 'InvalidPeerIpAddress', - 'errorMessage' => 'multi pconn peer ip can not be null.', - ], - [ - 'errorCode' => 'InvalidVbrNetwork', - 'errorMessage' => 'vbr netowrk not exists', - ], - [ - 'errorCode' => 'InvalidBgpGroup', - 'errorMessage' => 'bgp group not exists', - ], - [ - 'errorCode' => 'InvalidBgpName.Malformed', - 'errorMessage' => 'Specified Bgp Group name is not valid.', - ], - [ - 'errorCode' => 'InvalidBgpDiscription.Malformed', - 'errorMessage' => 'Specified Bgp Group description is not valid.', - ], - [ - 'errorCode' => 'InvalidBgpAuthkey.Malformed', - 'errorMessage' => 'Specified Bgp Group authkey is not valid.', - ], - [ - 'errorCode' => 'InvalidIP.Malformed', - 'errorMessage' => 'Ip malformed.', - ], - [ - 'errorCode' => 'InvalidPeerAsn.Malformed', - 'errorMessage' => 'invalid peer asn cannot equals aliyun asn:45104', - ], - [ - 'errorCode' => 'InvalidParams.NotNull', - 'errorMessage' => 'invalid peer asn cannot equals aliyun asn:45104', - ], - [ - 'errorCode' => 'InvalidParams.NotFound', - 'errorMessage' => 'instance not found', - ], - [ - 'errorCode' => 'InvalidParams.AlreadyExists', - 'errorMessage' => 'bgp network already exists', - ], - [ - 'errorCode' => 'InvalidStatus.CannotOperate', - 'errorMessage' => 'invalid status cannot operate', - ], - [ - 'errorCode' => 'InvalidParams.PeerIpAddressMustPointOut', - 'errorMessage' => 'vbr has 0 or more than 1 subif ,point out peerIpAddress.', - ], - [ - 'errorCode' => 'InvalidParams.PeerIpAddressInUse', - 'errorMessage' => 'peer ip address in use ,cannot create bgp peer.', - ], - [ - 'errorCode' => 'BgpPeer.Already.Exists', - 'errorMessage' => 'bgp peer already exists.', - ], - [ - 'errorCode' => 'MissingParam.EnableBfd', - 'errorMessage' => 'The parameter EnableBfd is missing.', - ], - [ - 'errorCode' => 'OperationUnsupported.IPV6ForThisRegion', - 'errorMessage' => 'This Region is unsupported IPV6.', - ], - [ - 'errorCode' => 'IllegalParam.BfdMultiHop', - 'errorMessage' => 'BfdMultiHop is illegal.', - ], - [ - 'errorCode' => 'OperationFailed.PconnTrafficNotEnable', - 'errorMessage' => 'The operation is failed because of PconnTrafficNotEnable.', - ], - [ - 'errorCode' => 'UnsupportedFeature.Vpconn', - 'errorMessage' => 'The feature of Vpconn is not supported.', - ], - [ - 'errorCode' => 'DuplicatedParam.PeerIpAddress', - 'errorMessage' => 'The param of PeerIpAddress is duplicated.', - ], - [ - 'errorCode' => 'DuplicatedParam.LocalIpAddress', - 'errorMessage' => 'The LocalIpAddress already exists.', - ], - [ - 'errorCode' => 'DuplicatedParam.PeerIpv6Address', - 'errorMessage' => 'The PeerIpv6Address already exists.', - ], - [ - 'errorCode' => 'DuplicatedParam.LocalIpv6Address', - 'errorMessage' => 'The LocalIpv6Address already exists.', - ], - [ - 'errorCode' => 'IllegalParam.LocalGatewayIpAndMask', - 'errorMessage' => 'The LocalGatewayIpAndMask value is invalid.', - ], - [ - 'errorCode' => 'IllegalParam.PeeringIpv6SubnetMask', - 'errorMessage' => 'The PeeringIpv6SubnetMask value is invalid.', - ], - [ - 'errorCode' => 'IllegalParam.IpVersion', - 'errorMessage' => 'The param of IPV6 is illegal.', - ], - [ - 'errorCode' => 'IllegalParam.PeerIpAddress', - 'errorMessage' => 'The param of PeerIpAddress is illegal.', - ], - ], - 404 => [ - [ - 'errorCode' => 'InvalidRegionId.NotFound', - 'errorMessage' => 'Specified value of "regionId" is not supported.', - ], + ['errorCode' => 'ResourceNotFound.RouteTargetGroup', 'errorMessage' => 'The specified resource of %s is not found.', 'description' => 'The specified resource% s does not exist.'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"BgpPeerId\\": \\"bgp-m5eoyp2mwegk8ce9v****\\",\\n \\"RequestId\\": \\"D4B7649A-61BB-4C64-A586-1DFF1EDA6A42\\"\\n}","errorExample":""},{"type":"xml","example":"\\n bgp-m5eoyp2mwegk8ce9v****\\n D4B7649A-61BB-4C64-A586-1DFF1EDA6A42\\n","errorExample":""}]', - 'title' => 'CreateBgpPeer', - 'summary' => 'Adds a Border Gateway Protocol (BGP) peer to a BGP group.', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'GetRouteTargetGroup', + 'changeSet' => [], + 'ramActions' => [], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RouteTargetGroupId\\": \\"rtg-xxxx\\",\\n \\"RouteTargetGroupName\\": \\"myRouteTargetGroupName\\",\\n \\"RouteTargetGroupDescription\\": \\"myRouteTargetGroupDescription\\",\\n \\"VpcId\\": \\"vpc-xxxx\\",\\n \\"ConfigMode\\": \\"Active-Standby\\",\\n \\"Status\\": \\"Available\\",\\n \\"RouteTargetMemberList\\": [\\n {\\n \\"MemberId\\": \\"ep-xxxx\\",\\n \\"MemberType\\": \\"GatewayLoadBalancerEndpoint\\",\\n \\"Weight\\": 100,\\n \\"HealthCheckStatus\\": \\"Normal\\",\\n \\"EnableStatus\\": \\"Enable\\"\\n }\\n ],\\n \\"Tags\\": [\\n {\\n \\"Key\\": \\"FinanceDept\\",\\n \\"Value\\": \\"FinanceJoshua\\"\\n }\\n ],\\n \\"RegionId\\": \\"cn-qingdao\\",\\n \\"RequestId\\": \\"1AE05898-06E5-4782-xxxxx\\",\\n \\"ResourceGroupId\\": \\"rg-acfmxazdjdhd****\\",\\n \\"CreateTime\\": \\"2025-12-30T06:40:50Z\\"\\n}","type":"json"}]', + 'translator' => 'manual', ], - 'DeleteBgpGroup' => [ - 'summary' => 'Deletes a Border Gateway Protocol (BGP) group.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'GetTrafficMirrorServiceStatus' => [ + 'summary' => 'Queries the status of the traffic mirror feature.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], + 'operationType' => 'readAndWrite', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'delete', - ], + 'systemTags' => ['operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ - 'name' => 'RegionId', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the BGP group.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'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.'."\n" + ."\n" + .'> 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.'."\n", 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-426655440000', 'title' => ''], ], [ - 'name' => 'BgpGroupId', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the BGP group.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'bgpg-bp1k25cyp26cllath****', - ], + 'schema' => ['description' => 'The ID of the region to which the mirrored traffic belongs.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => false, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'ClientToken', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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.'."\n" - ."\n" - .'> 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.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-426655440000', - ], + 'schema' => ['description' => 'The ID of the region to which the mirrored traffic belongs.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => false, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => 'The request ID.'."\n", + 'description' => 'The returned data.'."\n", 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B45', - ], + 'Enabled' => ['description' => 'Indicates whether the traffic mirror feature is enabled. Valid values:'."\n" + ."\n" + .'* **true**'."\n" + .'* **false**', 'type' => 'boolean', 'example' => 'true', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '37626066-2C6C-4B62-ADD3-498920C409C5', 'title' => ''], ], + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'QuotaExceeded.Bgp', - 'errorMessage' => 'bgp peer count per vbr quota exceed.', - ], - [ - 'errorCode' => 'QuotaExceeded.Nqa', - 'errorMessage' => 'nqa count per vbr quota exceed.', - ], - [ - 'errorCode' => 'QuotaExceeded.BgpNetwork', - 'errorMessage' => 'bgp network count per vbr quota exceed.', - ], - [ - 'errorCode' => 'InvalidPeerIpAddress', - 'errorMessage' => 'multi pconn peer ip can not be null.', - ], - [ - 'errorCode' => 'InvalidVbrNetwork', - 'errorMessage' => 'vbr netowrk not exists', - ], - [ - 'errorCode' => 'InvalidBgpGroup', - 'errorMessage' => 'bgp group not exists', - ], - [ - 'errorCode' => 'InvalidBgpName.Malformed', - 'errorMessage' => 'Specified Bgp Group name is not valid.', - ], - [ - 'errorCode' => 'InvalidBgpDiscription.Malformed', - 'errorMessage' => 'Specified Bgp Group description is not valid.', - ], - [ - 'errorCode' => 'InvalidBgpAuthkey.Malformed', - 'errorMessage' => 'Specified Bgp Group authkey is not valid.', - ], - [ - 'errorCode' => 'InvalidIP.Malformed', - 'errorMessage' => 'Ip malformed.', - ], - [ - 'errorCode' => 'InvalidPeerAsn.Malformed', - 'errorMessage' => 'invalid peer asn cannot equals aliyun asn:45104', - ], - [ - 'errorCode' => 'InvalidParams.NotNull', - 'errorMessage' => 'invalid peer asn cannot equals aliyun asn:45104', - ], - [ - 'errorCode' => 'InvalidParams.NotFound', - 'errorMessage' => 'instance not found', - ], - [ - 'errorCode' => 'InvalidParams.AlreadyExists', - 'errorMessage' => 'bgp network already exists', - ], - [ - 'errorCode' => 'InvalidStatus.CannotOperate', - 'errorMessage' => 'invalid status cannot operate', - ], - [ - 'errorCode' => 'InvalidParams.PeerIpAddressMustPointOut', - 'errorMessage' => 'vbr has 0 or more than 1 subif ,point out peerIpAddress.', - ], - [ - 'errorCode' => 'InvalidParams.PeerIpAddressInUse', - 'errorMessage' => 'peer ip address in use ,cannot create bgp peer.', - ], - [ - 'errorCode' => 'OperationDenied.VbrAttachEcrInMiddleStatus', - 'errorMessage' => 'The operation is not allowed because of VBR attach or detach ECR in middle status.', - ], + 403 => [ + ['errorCode' => 'Forbbiden', 'errorMessage' => 'User not authorized to operate on the specified resource.', 'description' => 'User not authorized to operate on the specified resource.'], ], - 404 => [ - [ - 'errorCode' => 'InvalidRegionId.NotFound', - 'errorMessage' => 'Specified value of "regionId" is not supported.', - ], - [ - 'errorCode' => 'DependencyViolation.BgpPeer', - 'errorMessage' => 'Specified object has dependent resources bgp peer.', + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Enabled\\": true,\\n \\"RequestId\\": \\"37626066-2C6C-4B62-ADD3-498920C409C5\\"\\n}","type":"json"}]', + 'title' => 'GetTrafficMirrorServiceStatus', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2024-07-31T02:45:59.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-06-16T02:03:28.000Z', 'description' => 'Request parameters changed, Error codes changed'], + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'vpc:GetTrafficMirrorServiceStatus', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'All Resource', 'arn' => '*'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B45\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 54B48E3D-DF70-471B-AA93-08E683A1B45\\n","errorExample":""}]', - 'title' => 'DeleteBgpGroup', - ], - 'DeleteBgpNetwork' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '60', 'countWindow' => 60, 'regionId' => '*', 'api' => 'GetTrafficMirrorServiceStatus'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], ], + ], + 'GetVSwitchCidrReservationUsage' => [ + 'summary' => 'Queries the usage of a prefix list.', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], + 'operationType' => 'read', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'delete', - ], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ - 'name' => 'RegionId', + 'name' => 'VSwitchCidrReservationId', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the BGP group.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The ID of the reserved CIDR block.'."\n", 'type' => 'string', 'required' => true, 'example' => 'vcr-bp1m12saqteraw3rp****', 'title' => ''], ], [ - 'name' => 'DstCidrBlock', + 'name' => 'NextToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The CIDR block of the virtual private cloud (VPC) or vSwitch that you want to connect to a data center.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => '10.110.192.12/32', - ], + 'schema' => ['description' => 'The pagination token that is used in the next request to retrieve a new page of results. Valid values:'."\n" + ."\n" + .'* You do not need to specify this parameter for the first request.'."\n" + .'* If a value is returned for NextToken, specify the value in the next request to retrieve a new page of results.'."\n", 'type' => 'string', 'required' => false, 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', 'title' => ''], ], [ - 'name' => 'RouterId', + 'name' => 'MaxResults', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the VBR.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'vrt-bp1lhl0taikrteen8****', - ], + 'schema' => ['description' => 'The number of entries to return on each page. Valid values: **1** to **100**. Default value: **10**.'."\n", 'type' => 'integer', 'format' => 'int64', 'required' => false, 'maximum' => '100', 'minimum' => '1', 'example' => '10', 'default' => '10', 'title' => ''], ], [ - 'name' => 'ClientToken', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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.'."\n" - ."\n" - .'> 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.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-426655440000', - ], + 'schema' => ['title' => '', 'description' => 'The region ID of the vSwitch.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'example' => 'cn-hangzhou'], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'title' => '', 'description' => 'The request ID.'."\n", 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B45', + 'RequestId' => ['title' => '', 'description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B45'], + 'NextToken' => ['description' => 'The returned value of NextToken is a pagination token, which can be used in the next request to retrieve a new page of results. Valid values:'."\n" + ."\n" + .'* If **NextToken** is empty, no next page exists.'."\n" + .'* If a value is returned for **NextToken**, the value is the token that determines the start point of the next query.'."\n", 'type' => 'string', 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', 'title' => ''], + 'TotalCount' => ['description' => 'The total number of entries returned.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '10', 'title' => ''], + 'MaxResults' => ['description' => 'The number of entries to return per page.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '10', 'title' => ''], + 'CidrReservationUsages' => [ + 'description' => 'A list of reserved CIDR blocks that are in use.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'VSwitchCidrReservationId' => ['title' => '', 'description' => 'The ID of the reserved CIDR block.'."\n", 'type' => 'string', 'example' => 'vcr-bp1m12saqteraw3rp****'], + 'VSwitchId' => ['title' => '', 'description' => 'The ID of the vSwitch to which the reserved CIDR block belongs.'."\n", 'type' => 'string', 'example' => 'vsw-25navfgbue4g****'], + 'ResourceId' => ['title' => '', 'description' => 'The ID of the elastic network interface (ENI) whose CIDR block is allocated from the reserved CIDR block.'."\n", 'type' => 'string', 'example' => 'eni-bp14v2sdd3v8htln****'], + 'ResourceType' => ['title' => '', 'description' => 'The type of the resource to which a CIDR block is allocated from the reserved CIDR block. Only **NetworkInterface** may be returned, which indicates an ENI.'."\n", 'type' => 'string', 'example' => 'NetworkInterface'], + 'IpPrefixId' => ['title' => '', 'description' => 'The ID of the reserved CIDR block.'."\n", 'type' => 'string', 'example' => 'vcr-bp1m12saqteraw3rp****'], + 'IpPrefixCidr' => ['description' => 'The CIDR block allocated to the ENI from the reserved CIDR block.'."\n", 'type' => 'string', 'example' => '192.168.1.64/28', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', ], ], + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'QuotaExceeded.Bgp', - 'errorMessage' => 'bgp peer count per vbr quota exceed.', - ], - [ - 'errorCode' => 'QuotaExceeded.Nqa', - 'errorMessage' => 'nqa count per vbr quota exceed.', - ], - [ - 'errorCode' => 'QuotaExceeded.BgpNetwork', - 'errorMessage' => 'bgp network count per vbr quota exceed.', - ], - [ - 'errorCode' => 'InvalidPeerIpAddress', - 'errorMessage' => 'multi pconn peer ip can not be null.', - ], - [ - 'errorCode' => 'InvalidVbrNetwork', - 'errorMessage' => 'vbr netowrk not exists', - ], - [ - 'errorCode' => 'InvalidBgpGroup', - 'errorMessage' => 'bgp group not exists', - ], - [ - 'errorCode' => 'InvalidBgpName.Malformed', - 'errorMessage' => 'Specified Bgp Group name is not valid.', - ], - [ - 'errorCode' => 'InvalidBgpDiscription.Malformed', - 'errorMessage' => 'Specified Bgp Group description is not valid.', - ], - [ - 'errorCode' => 'InvalidBgpAuthkey.Malformed', - 'errorMessage' => 'Specified Bgp Group authkey is not valid.', - ], - [ - 'errorCode' => 'InvalidIP.Malformed', - 'errorMessage' => 'Ip malformed.', - ], - [ - 'errorCode' => 'InvalidPeerAsn.Malformed', - 'errorMessage' => 'invalid peer asn cannot equals aliyun asn:45104', - ], - [ - 'errorCode' => 'InvalidParams.NotNull', - 'errorMessage' => 'invalid peer asn cannot equals aliyun asn:45104', - ], - [ - 'errorCode' => 'InvalidParams.NotFound', - 'errorMessage' => 'instance not found', - ], - [ - 'errorCode' => 'InvalidParams.AlreadyExists', - 'errorMessage' => 'bgp network already exists', - ], - [ - 'errorCode' => 'InvalidStatus.CannotOperate', - 'errorMessage' => 'invalid status cannot operate', - ], - [ - 'errorCode' => 'InvalidParams.PeerIpAddressMustPointOut', - 'errorMessage' => 'vbr has 0 or more than 1 subif ,point out peerIpAddress.', - ], - [ - 'errorCode' => 'InvalidParams.PeerIpAddressInUse', - 'errorMessage' => 'peer ip address in use ,cannot create bgp peer.', - ], + ['errorCode' => 'IllegalParam.NextToken', 'errorMessage' => 'The specified NextToken is invalid.', 'description' => 'The specified NextToken is invalid.'], ], 404 => [ - [ - 'errorCode' => 'InvalidRegionId.NotFound', - 'errorMessage' => 'Specified value of "regionId" is not supported.', - ], + ['errorCode' => 'ResourceNotFound.CidrReservation', 'errorMessage' => 'The specified resource of VSwitchCidrReservation is not found.', 'description' => 'The error message returned because VSwitchCidrReservation is set to an invalid value.'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B45\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 54B48E3D-DF70-471B-AA93-08E683A1B45\\n","errorExample":""}]', - 'title' => 'DeleteBgpNetwork', - 'summary' => 'Deletes an advertised Border Gateway Protocol (BGP) network.', - ], - 'DeleteBgpPeer' => [ - 'methods' => [ - 'post', - 'get', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'GetVSwitchCidrReservationUsage', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'vpc:GetVSwitchCidrReservationUsage', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VSwitchCidrReservation', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vswitchcidrreservation/{#VSwitchCidrReservationId}'], + ], + ], + ], ], - 'schemes' => [ - 'http', - 'https', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '1200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'GetVSwitchCidrReservationUsage'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B45\\",\\n \\"NextToken\\": \\"FFmyTO70tTpLG6I3FmYAXGKPd****\\",\\n \\"TotalCount\\": 10,\\n \\"MaxResults\\": 10,\\n \\"CidrReservationUsages\\": [\\n {\\n \\"VSwitchCidrReservationId\\": \\"vcr-bp1m12saqteraw3rp****\\",\\n \\"VSwitchId\\": \\"vsw-25navfgbue4g****\\",\\n \\"ResourceId\\": \\"eni-bp14v2sdd3v8htln****\\",\\n \\"ResourceType\\": \\"NetworkInterface\\",\\n \\"IpPrefixId\\": \\"vcr-bp1m12saqteraw3rp****\\",\\n \\"IpPrefixCidr\\": \\"192.168.1.64/28\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\n 54B48E3D-DF70-471B-AA93-08E683A1B45\\n FFmyTO70tTpLG6I3FmYAXGKPd****\\n 10\\n 10\\n \\n vcr-bp1m12saqteraw3rp****\\n vsw-25navfgbue4g****\\n eni-bp14v2sdd3v8htln****\\n NetworkInterface\\n vcr-bp1m12saqteraw3rp****\\n 192.168.1.64/28\\n \\n","errorExample":""}]', + ], + 'GetVpcGatewayEndpointAttribute' => [ + 'summary' => 'Queries the attributes of a gateway endpoint.', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], + 'operationType' => 'read', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'delete', - ], + 'systemTags' => ['operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the BGP group.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cn-shanghai', - ], - ], - [ - 'name' => 'BgpPeerId', + 'name' => 'EndpointId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the BGP peer.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'bgp-wz977wcrmb69a********', - ], + 'schema' => ['title' => '', 'description' => 'The ID of the gateway endpoint.'."\n", 'type' => 'string', 'required' => true, 'example' => 'vpce-bp1w1dmdqjpwul0v3****'], ], [ - 'name' => 'ClientToken', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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.'."\n" - ."\n" - .'> 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.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-426655440000', - ], + 'schema' => ['title' => '', 'description' => 'The region ID of the gateway endpoint.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'example' => 'cn-hangzhou'], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'title' => '', 'description' => 'The request ID.'."\n", 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '611CB80C-B6A9-43DB-9E38-0B0AC3D9B58F', + 'RequestId' => ['title' => '', 'description' => 'The request ID.'."\n", 'type' => 'string', 'example' => 'A1122D0F-7B3B-5445-BB19-17F27F97FE1C'], + 'EndpointId' => ['description' => 'The ID of the gateway endpoint.'."\n", 'type' => 'string', 'example' => 'vpce-bp1w1dmdqjpwul0v3****', 'title' => ''], + 'EndpointName' => ['description' => 'The name of the gateway endpoint.'."\n", 'type' => 'string', 'example' => 'test', 'title' => ''], + 'EndpointDescription' => ['description' => 'The description of the gateway endpoint.'."\n", 'type' => 'string', 'example' => 'test', 'title' => ''], + 'ServiceName' => ['description' => 'The name of the endpoint service.'."\n", 'type' => 'string', 'example' => 'com.aliyun.cn-hangzhou.oss', 'title' => ''], + 'VpcId' => ['description' => 'The ID of the virtual private cloud (VPC) to which the gateway endpoint belongs.'."\n", 'type' => 'string', 'example' => 'vpc-bp1nh86rugg01zol0****', 'title' => ''], + 'PolicyDocument' => ['description' => 'The access policy for the cloud service.'."\n", 'type' => 'string', 'example' => '{"Version" : "1", "Statement" : [ { "Effect" : "Allow", "Resource" : [ "*" ], "Action" : [ "*" ], "Principal" : [ "*" ] } ] }', 'title' => ''], + 'CreationTime' => ['description' => 'The time when the endpoint was created. The time follows the ISO 8601 standard in the YYYY-MM-DDThh:mm:ssZ format. The time is displayed in UTC.'."\n", 'type' => 'string', 'example' => '2021-08-27T01:58:37Z', 'title' => ''], + 'EndpointStatus' => ['description' => 'The status of the gateway endpoint. Valid values:'."\n" + ."\n" + .'* **Creating**'."\n" + .'* **Created**'."\n" + .'* **Modifying**'."\n" + .'* **Associating**'."\n" + .'* **Dissociating**'."\n" + .'* **Deleting**'."\n", 'type' => 'string', 'example' => 'Created', 'title' => ''], + 'RouteTables' => [ + 'description' => 'The ID of the route table associated with the gateway endpoint.'."\n", + 'type' => 'array', + 'items' => ['description' => 'The ID of the route table associated with the gateway endpoint.'."\n", 'type' => 'string', 'example' => '["vtb-bp1s6g17997knk6a3****", "vtb-bp12qsdjwm37kv679****"]', 'title' => ''], + 'title' => '', + 'example' => '', + ], + 'ResourceGroupId' => ['description' => 'The ID of the resource group to which the gateway endpoint belongs.'."\n", 'type' => 'string', 'example' => 'rg-acfmxvfvazb4p****', 'title' => ''], + 'Tags' => [ + 'description' => 'The tag list.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => 'The key of tag N added to the resource.'."\n", 'type' => 'string', 'example' => 'FinanceDept', 'title' => ''], + 'Value' => ['description' => 'The value of tag N added to the resource.'."\n", 'type' => 'string', 'example' => 'FinanceJoshua', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', ], ], + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'QuotaExceeded.Bgp', - 'errorMessage' => 'bgp peer count per vbr quota exceed.', - ], - [ - 'errorCode' => 'QuotaExceeded.Nqa', - 'errorMessage' => 'nqa count per vbr quota exceed.', - ], - [ - 'errorCode' => 'QuotaExceeded.BgpNetwork', - 'errorMessage' => 'bgp network count per vbr quota exceed.', - ], - [ - 'errorCode' => 'InvalidPeerIpAddress', - 'errorMessage' => 'multi pconn peer ip can not be null.', - ], - [ - 'errorCode' => 'InvalidVbrNetwork', - 'errorMessage' => 'vbr netowrk not exists', - ], - [ - 'errorCode' => 'InvalidBgpGroup', - 'errorMessage' => 'bgp group not exists', - ], - [ - 'errorCode' => 'InvalidBgpName.Malformed', - 'errorMessage' => 'Specified Bgp Group name is not valid.', - ], - [ - 'errorCode' => 'InvalidBgpDiscription.Malformed', - 'errorMessage' => 'Specified Bgp Group description is not valid.', - ], - [ - 'errorCode' => 'InvalidBgpAuthkey.Malformed', - 'errorMessage' => 'Specified Bgp Group authkey is not valid.', - ], - [ - 'errorCode' => 'InvalidIP.Malformed', - 'errorMessage' => 'Ip malformed.', - ], - [ - 'errorCode' => 'InvalidPeerAsn.Malformed', - 'errorMessage' => 'invalid peer asn cannot equals aliyun asn:45104', - ], - [ - 'errorCode' => 'InvalidParams.NotNull', - 'errorMessage' => 'invalid peer asn cannot equals aliyun asn:45104', - ], - [ - 'errorCode' => 'InvalidParams.NotFound', - 'errorMessage' => 'instance not found', - ], - [ - 'errorCode' => 'InvalidParams.AlreadyExists', - 'errorMessage' => 'bgp network already exists', - ], - [ - 'errorCode' => 'InvalidStatus.CannotOperate', - 'errorMessage' => 'invalid status cannot operate', - ], - [ - 'errorCode' => 'InvalidParams.PeerIpAddressMustPointOut', - 'errorMessage' => 'vbr has 0 or more than 1 subif ,point out peerIpAddress.', - ], - [ - 'errorCode' => 'InvalidParams.PeerIpAddressInUse', - 'errorMessage' => 'peer ip address in use ,cannot create bgp peer.', - ], - [ - 'errorCode' => 'InvalidBgpPeer.NotFound', - 'errorMessage' => 'Bgp peer not found.', - ], - [ - 'errorCode' => 'IncorrectStatus.BgpPeer', - 'errorMessage' => 'Invalid BgpPeer status cannot operate.', - ], + ['errorCode' => 'ResourceNotFound.GatewayEndpoint', 'errorMessage' => 'The specified resource gateway endpoint is not found.', 'description' => 'The error message returned because the specified gateway endpoint does not exist.'], + ['errorCode' => 'InvalidVpcId.NotFound', 'errorMessage' => 'Specified value of VpcId is not found in our record.', 'description' => ''], ], - 404 => [ - [ - 'errorCode' => 'InvalidRegionId.NotFound', - 'errorMessage' => 'Specified value of "regionId" is not supported.', + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'GetVpcGatewayEndpointAttribute', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2023-09-06T08:37:25.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2023-06-20T09:39:47.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-03-23T02:20:37.000Z', 'description' => 'Response parameters changed'], + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'vpc:GetVpcGatewayEndpointAttribute', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'GatewayEndpoint', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:gatewayendpoint/{#GatewayEndpointId}'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"611CB80C-B6A9-43DB-9E38-0B0AC3D9B58F\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 611CB80C-B6A9-43DB-9E38-0B0AC3D9B58F\\n","errorExample":""}]', - 'title' => 'DeleteBgpPeer', - 'summary' => 'Deletes a Border Gateway Protocol (BGP) peer.', - ], - 'ModifyBgpGroupAttribute' => [ - 'summary' => 'Modifies the configuration of a Border Gateway Protocol (BGP) group.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"A1122D0F-7B3B-5445-BB19-17F27F97FE1C\\",\\n \\"EndpointId\\": \\"vpce-bp1w1dmdqjpwul0v3****\\",\\n \\"EndpointName\\": \\"test\\",\\n \\"EndpointDescription\\": \\"test\\",\\n \\"ServiceName\\": \\"com.aliyun.cn-hangzhou.oss\\",\\n \\"VpcId\\": \\"vpc-bp1nh86rugg01zol0****\\",\\n \\"PolicyDocument\\": \\"{\\\\\\"Version\\\\\\" : \\\\\\"1\\\\\\", \\\\\\"Statement\\\\\\" : [ { \\\\\\"Effect\\\\\\" : \\\\\\"Allow\\\\\\", \\\\\\"Resource\\\\\\" : [ \\\\\\"*\\\\\\" ], \\\\\\"Action\\\\\\" : [ \\\\\\"*\\\\\\" ], \\\\\\"Principal\\\\\\" : [ \\\\\\"*\\\\\\" ] } ] }\\",\\n \\"CreationTime\\": \\"2021-08-27T01:58:37Z\\",\\n \\"EndpointStatus\\": \\"Created\\",\\n \\"RouteTables\\": [\\n \\"[\\\\\\"vtb-bp1s6g17997knk6a3****\\\\\\", \\\\\\"vtb-bp12qsdjwm37kv679****\\\\\\"]\\"\\n ],\\n \\"ResourceGroupId\\": \\"rg-acfmxvfvazb4p****\\",\\n \\"Tags\\": [\\n {\\n \\"Key\\": \\"FinanceDept\\",\\n \\"Value\\": \\"FinanceJoshua\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\nCreated\\nvpc-bp1nh86rugg01zol0****\\ntest\\nA1122D0F-7B3B-5445-BB19-17F27F97FE1C\\ncom.aliyun.cn-hangzhou.oss\\nvpce-bp1w1dmdqjpwul0v3****\\n[\\"vtb-bp1s6g17997knk6a3****\\", \\"vtb-bp12qsdjwm37kv679****\\"]\\n2021-08-27T01:58:37Z\\n{\\"Version\\" : \\"1\\", \\"Statement\\" : [ { \\"Effect\\" : \\"Allow\\", \\"Resource\\" : [ \\"*\\" ], \\"Action\\" : [ \\"*\\" ], \\"Principal\\" : [ \\"*\\" ] } ] }\\ntest\\n","errorExample":""}]', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '1200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'GetVpcGatewayEndpointAttribute'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], ], + ], + 'GetVpcPrefixListAssociations' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], + 'operationType' => 'read', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'update', - ], + 'systemTags' => ['operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ - 'name' => 'RegionId', + 'name' => 'PrefixListId', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the BGP group.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-shanghai', - ], + 'schema' => ['description' => 'The instance ID of the prefix list to query.', 'type' => 'string', 'required' => true, 'example' => 'pl-0b7hwu67****', 'title' => ''], ], [ - 'name' => 'BgpGroupId', + 'name' => 'NextToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The BGP group ID.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'bgpg-wz9f62v4fbg2g****', - ], + 'schema' => ['description' => 'The pagination token. Valid values:'."\n" + .'- Leave this parameter empty for the first query or if no subsequent query is required.'."\n" + .'- If a subsequent query is required, set this parameter to the NextToken value returned in the previous API call.', 'type' => 'string', 'required' => false, 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', 'title' => ''], ], [ - 'name' => 'Name', + 'name' => 'MaxResults', 'in' => 'query', - 'schema' => [ - 'description' => 'The BGP group name.'."\n" - ."\n" - .'The name must be 2 to 128 characters in length, and can contain digits, periods (.), underscores (\\_), and hyphens (-). The name must start with a letter but cannot start with `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'test', - ], + 'schema' => ['description' => 'The number of entries per page in a paged query. Valid values: **1** to **100**. Default value: **20**.', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'maximum' => '100', 'minimum' => '1', 'default' => '50', 'example' => '20', 'title' => ''], ], [ - 'name' => 'Description', + 'name' => 'RegionId', 'in' => 'query', + 'schema' => ['title' => '', 'description' => 'The region ID of the prefix list to query.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the region ID.', 'type' => 'string', 'required' => true, 'example' => 'cn-hangzhou'], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => 'The BGP group description.'."\n" - ."\n" - .'The description must be 2 to 256 characters in length. It must start with a letter and cannot start with `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'BGP', + 'title' => '', + 'description' => 'Schema of Response', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['title' => '', 'description' => 'The request ID.', 'type' => 'string', 'example' => '4EC47282-1B74-4534-BD0E-403F3EE64CAF'], + 'NextToken' => ['description' => 'The pagination token. Valid values:'."\n" + .'- If **NextToken** is empty, no subsequent query exists.'."\n" + .'- If **NextToken** is returned, the value indicates the token for the next query.', 'type' => 'string', 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', 'title' => ''], + 'TotalCount' => ['description' => 'The total number of entries returned.', 'type' => 'integer', 'format' => 'int64', 'example' => '1', 'title' => ''], + 'Count' => ['description' => 'The number of entries returned.', 'type' => 'integer', 'format' => 'int64', 'example' => '1', 'title' => ''], + 'PrefixListAssociation' => [ + 'description' => 'The association information of the prefix list.', + 'type' => 'array', + 'items' => [ + 'description' => 'The association information of the prefix list.', + 'type' => 'object', + 'properties' => [ + 'PrefixListId' => ['title' => '', 'description' => 'The instance ID of the prefix list.', 'type' => 'string', 'example' => 'pl-0b7hwu67****'], + 'ResourceId' => ['title' => '', 'description' => 'The ID of the associated resource.', 'type' => 'string', 'example' => 'vtb-bp1drpcfz9srr393h****'], + 'ResourceType' => ['title' => '', 'description' => 'The type of the associated resource. Valid values:'."\n" + ."\n" + .'- **vpcRouteTable**: VPC route table.'."\n" + .'- **trRouteTable**: transit router route table.', 'type' => 'string', 'example' => 'vpcRouteTable'], + 'OwnerId' => ['description' => 'The ID of the Alibaba Cloud account that owns the prefix list.', 'type' => 'string', 'example' => '153460731706****', 'title' => ''], + 'Status' => ['title' => '', 'description' => 'The association status of the prefix list. Valid values:'."\n" + ."\n" + .'- **Created**: The association is created.'."\n" + .'- **ModifyFailed**: The association is not updated to the latest version.'."\n" + .'- **Creating**: The association is being created.'."\n" + .'- **Modifying**: The association is being modified.'."\n" + .'- **Deleting**: The association is being deleted.'."\n" + .'- **Deleted**: The association is deleted.', 'type' => 'string', 'example' => 'Success'], + 'Reason' => ['description' => 'The reason for the association failure.', 'type' => 'string', 'example' => 'failed', 'title' => ''], + 'RegionId' => ['description' => 'The region ID of the prefix list.', 'type' => 'string', 'example' => 'cn-hangzhou', 'title' => ''], + 'ResourceUid' => ['description' => 'The ID of the Alibaba Cloud account that owns the resource associated with the prefix list.', 'type' => 'string', 'example' => '132193271328****', 'title' => ''], + 'CidrList' => ['description' => 'The list of CIDR blocks in the prefix list that are effective for the associated resource.', 'type' => 'string', 'example' => '192.168.0.0/16', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + ], + 'example' => '', ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'IllegalParam.NextToken', 'errorMessage' => 'The specified NextToken is invalid.', 'description' => 'The specified NextToken is invalid.'], + ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'Query prefix list associations', + 'summary' => 'Queries the associations of a prefix list by calling the GetVpcPrefixListAssociations operation.', + 'changeSet' => [ + ['createdAt' => '2023-01-09T07:17:55.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2022-11-07T02:59:34.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2022-07-18T12:44:59.000Z', 'description' => 'OpenAPI offline'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '1200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'GetVpcPrefixListAssociations'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], + ], + 'ramActions' => [ [ - 'name' => 'LocalAsn', - 'in' => 'query', - 'schema' => [ - 'description' => 'The custom autonomous system number (ASN) of the BGP on the Alibaba Cloud side. Valid values:'."\n" - ."\n" - .'* **45104**'."\n" - .'* **64512~65534**'."\n" - .'* **4200000000~4294967294**'."\n" - ."\n" - .'> **65025** is reserved by Alibaba Cloud. Alibaba Cloud uses **45104** as the **local ASN** by default. Custom **local ASNs** may cause loops in multi-line scenarios. Proceed with caution.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '45104', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'vpc:GetVpcPrefixListAssociations', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'PrefixList', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:prefixlist/{#PrefixListId}'], + ], ], ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"4EC47282-1B74-4534-BD0E-403F3EE64CAF\\",\\n \\"NextToken\\": \\"FFmyTO70tTpLG6I3FmYAXGKPd****\\",\\n \\"TotalCount\\": 1,\\n \\"Count\\": 1,\\n \\"PrefixListAssociation\\": [\\n {\\n \\"PrefixListId\\": \\"pl-0b7hwu67****\\",\\n \\"ResourceId\\": \\"vtb-bp1drpcfz9srr393h****\\",\\n \\"ResourceType\\": \\"vpcRouteTable\\",\\n \\"OwnerId\\": \\"153460731706****\\",\\n \\"Status\\": \\"Success\\",\\n \\"Reason\\": \\"failed\\",\\n \\"RegionId\\": \\"cn-hangzhou\\",\\n \\"ResourceUid\\": \\"132193271328****\\",\\n \\"CidrList\\": \\"192.168.0.0/16\\"\\n }\\n ]\\n}","type":"json"}]', + ], + 'GetVpcPrefixListEntries' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'PeerAsn', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ASN of the gateway device in the data center.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '1****', - ], + 'AK' => [], ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free'], + 'parameters' => [ [ - 'name' => 'AuthKey', + 'name' => 'PrefixListId', 'in' => 'query', - 'schema' => [ - 'description' => 'The authentication key of the BGP group.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '!PWZ2****', - ], + 'schema' => ['description' => 'The ID of the prefix list that you want to query.'."\n", 'type' => 'string', 'required' => true, 'example' => 'pl-0b7hwu67****'], ], [ - 'name' => 'IsFakeAsn', + 'name' => 'NextToken', 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to use a fake AS number. Valid values:'."\n" - ."\n" - .'* **false** (default)'."\n" - .'* **true**'."\n" - ."\n" - .'> A router that runs BGP typically belongs to only one AS. If you need to replace an AS with a new one, but you cannot immediately modify BGP configurations due to business requirements, you can specify a fake AS number to establish a connection with the local end. This ensures service continuity in scenarios such as AS migration or AS merging.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - 'default' => 'true', - ], - ], - [ - 'name' => 'ClientToken', - 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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.'."\n" - ."\n" - .'> 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.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-426655440000', - ], + 'schema' => ['description' => 'The pagination token that is used in the next request to retrieve a new page of results. Valid values:'."\n" + ."\n" + .'* You do not need to specify this parameter for the first request.'."\n" + .'* You must specify the token that is obtained from the previous query as the value of NextToken.'."\n", 'type' => 'string', 'required' => false, 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****'], ], [ - 'name' => 'RouteQuota', + 'name' => 'MaxResults', 'in' => 'query', - 'schema' => [ - 'description' => 'The maximum number of routes supported by a BGP peer. Default value: **110**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '110', - ], + 'schema' => ['description' => 'The number of entries per page. Valid values: **1** to **100**. Default value: **20**.'."\n", 'type' => 'integer', 'format' => 'int64', 'required' => false, 'maximum' => '100', 'minimum' => '1', 'example' => '20', 'default' => '50'], ], [ - 'name' => 'ClearAuthKey', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to clear the secret key. Valid values:'."\n" - ."\n" - .'* **true**'."\n" - .'* **false** (default)'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - 'default' => 'false', - ], + 'schema' => ['title' => '', 'description' => 'The region ID of the prefix list.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'example' => 'cn-hangzhou'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => 'The request ID.'."\n", + 'title' => 'Schema of Response', + 'description' => 'Schema of Response'."\n", 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '8C3C6D7C-A1CE-4FD8-BC57-DC493A55F76F', + 'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '4EC47282-1B74-4534-BD0E-403F3EE64CAF'], + 'NextToken' => ['description' => 'A pagination token. It can be used in the next request to retrieve a new page of results. Valid values:'."\n" + ."\n" + .'* If **NextToken** is empty, no next page exists.'."\n" + .'* If a value is returned for **NextToken**, the value indicates the token that is used for the next request to retrieve a new page of results.'."\n", 'type' => 'string', 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****'], + 'TotalCount' => ['description' => 'The total number of entries returned.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '1'], + 'Count' => ['description' => 'The number of entries.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '1'], + 'PrefixListEntry' => [ + 'description' => 'The information about the prefix list.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'PrefixListId' => ['title' => '', 'description' => 'The ID of the prefix list.'."\n", 'type' => 'string', 'example' => 'pl-0b7hwu67****'], + 'Cidr' => ['title' => '', 'description' => 'The CIDR blocks specified in the prefix list.'."\n", 'type' => 'string', 'example' => '192.168.0.0/16'], + 'Description' => ['title' => '', 'description' => 'The description of the prefix list.'."\n", 'type' => 'string', 'example' => 'description'], + 'RegionId' => ['description' => 'The region ID of the prefix list.'."\n", 'type' => 'string', 'example' => 'cn-hangzhou'], + ], + ], ], ], ], @@ -52768,330 +41570,151 @@ ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'QuotaExceeded.Bgp', - 'errorMessage' => 'bgp peer count per vbr quota exceed.', - ], - [ - 'errorCode' => 'QuotaExceeded.Nqa', - 'errorMessage' => 'nqa count per vbr quota exceed.', - ], - [ - 'errorCode' => 'QuotaExceeded.BgpNetwork', - 'errorMessage' => 'bgp network count per vbr quota exceed.', - ], - [ - 'errorCode' => 'InvalidPeerIpAddress', - 'errorMessage' => 'multi pconn peer ip can not be null.', - ], - [ - 'errorCode' => 'InvalidVbrNetwork', - 'errorMessage' => 'vbr netowrk not exists', - ], - [ - 'errorCode' => 'InvalidBgpGroup', - 'errorMessage' => 'bgp group not exists', - ], - [ - 'errorCode' => 'InvalidBgpName.Malformed', - 'errorMessage' => 'Specified Bgp Group name is not valid.', - ], - [ - 'errorCode' => 'InvalidBgpDiscription.Malformed', - 'errorMessage' => 'Specified Bgp Group description is not valid.', - ], - [ - 'errorCode' => 'InvalidBgpAuthkey.Malformed', - 'errorMessage' => 'Specified Bgp Group authkey is not valid.', - ], - [ - 'errorCode' => 'InvalidIP.Malformed', - 'errorMessage' => 'Ip malformed.', - ], - [ - 'errorCode' => 'InvalidPeerAsn.Malformed', - 'errorMessage' => 'invalid peer asn cannot equals aliyun asn:45104', - ], - [ - 'errorCode' => 'InvalidParams.NotNull', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'InvalidBgpGroup.LocalAsnInvalid', - 'errorMessage' => 'The specified BgpGroup LocalAsn is invalid, only support 64512 to 65534 or 4200000000 to 4294967294, and cannot be 65025.', - ], - [ - 'errorCode' => 'InvalidParams.NotFound', - 'errorMessage' => 'instance not found', - ], - [ - 'errorCode' => 'InvalidParams.AlreadyExists', - 'errorMessage' => 'bgp network already exists', - ], - [ - 'errorCode' => 'InvalidStatus.CannotOperate', - 'errorMessage' => 'invalid status cannot operate', - ], - [ - 'errorCode' => 'InvalidParams.PeerIpAddressMustPointOut', - 'errorMessage' => 'vbr has 0 or more than 1 subif ,point out peerIpAddress.', - ], - [ - 'errorCode' => 'InvalidParams.PeerIpAddressInUse', - 'errorMessage' => 'peer ip address in use ,cannot create bgp peer.', - ], - [ - 'errorCode' => 'IllegalParam.PeerAsn', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'IllegalParam.LocalAsn', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'OperationFailed.PconnTrafficNotEnable', - 'errorMessage' => 'The operation is failed because of PconnTrafficNotEnable.', - ], - [ - 'errorCode' => 'OperationUnsupport', - 'errorMessage' => 'Operation is unsupport, not in vbr support custom local asn white list.', - ], - [ - 'errorCode' => 'OperationFailed.ClearAuthKeyForbidden', - 'errorMessage' => 'The specific auth key is not empty.', - ], - [ - 'errorCode' => 'IllegalParam.RouteLimit', - 'errorMessage' => 'The operation is failed because of bgp group max route entry num quota exceed.', - ], - [ - 'errorCode' => 'OperationDenied.VbrAttachEcrInMiddleStatus', - 'errorMessage' => 'The operation is not allowed because of VBR attach or detach ECR in middle status.', - ], - [ - 'errorCode' => 'OperationUnsupported.VBRAttachedECR', - 'errorMessage' => 'VBR already attached to ECR, please delete it from ECR.', - ], - ], - 404 => [ - [ - 'errorCode' => 'InvalidRegionId.NotFound', - 'errorMessage' => 'Specified value of "regionId" is not supported.', - ], + ['errorCode' => 'IllegalParam.NextToken', 'errorMessage' => 'The specified NextToken is invalid.', 'description' => 'The specified NextToken is invalid.'], + ['errorCode' => 'ResourceNotFound.PrefixList', 'errorMessage' => 'The specified resource of prefixList is not found.', 'description' => 'The prefix list does not exist.'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"8C3C6D7C-A1CE-4FD8-BC57-DC493A55F76F\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 8C3C6D7C-A1CE-4FD8-BC57-DC493A55F76F\\n","errorExample":""}]', - 'title' => 'ModifyBgpGroupAttribute', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'ModifyBgpPeerAttribute' => [ - 'summary' => 'Modifies the configuration of a BGP peer.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'GetVpcPrefixListEntries', + 'summary' => 'Queries the information about a prefix list.', + 'changeSet' => [ + ['createdAt' => '2024-05-09T02:03:54.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2022-11-07T02:59:34.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2022-07-18T12:44:59.000Z', 'description' => 'OpenAPI offline'], ], + 'ramActions' => [], + ], + 'GetVpcRouteEntrySummary' => [ + 'summary' => 'Queries route types.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'read', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'update', - 'riskType' => 'none', - 'chargeType' => 'free', - ], + 'systemTags' => ['operationType' => 'list', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the BGP group to which the BGP peer that you want to modify belongs.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-shanghai', - ], - ], - [ - 'name' => 'BgpPeerId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the BGP peer that you want to modify.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'bgp-m5eoyp2mwegk8ce9v****', - ], - ], - [ - 'name' => 'BgpGroupId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the BGP group to which the BGP peer that you want to modify belongs.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'bgpg-m5eo12jxuw2hc0uqq****', - ], - ], - [ - 'name' => 'PeerIpAddress', + 'name' => 'VpcId', 'in' => 'query', - 'schema' => [ - 'description' => 'The IP address of the BGP peer that you want to modify.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '116.62.XX.XX', - ], + 'schema' => ['description' => 'The ID of the virtual private cloud (VPC) to which the route table belongs.'."\n", 'type' => 'string', 'required' => true, 'example' => 'vpc-bp15zckdt37pq72****', 'title' => ''], ], [ - 'name' => 'EnableBfd', + 'name' => 'RouteTableId', 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to enable the Bidirectional Forwarding Detection (BFD) feature. Valid values:'."\n" - ."\n" - .'* **true**'."\n" - .'* **false** (default)'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['description' => 'The ID of the route table that you want to query.'."\n", 'type' => 'string', 'required' => false, 'example' => 'vtb-bp145q7glnuzdvzu2****', 'title' => ''], ], [ - 'name' => 'ClientToken', + 'name' => 'RouteEntryType', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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 and cannot exceed 64 characters in length.'."\n" - ."\n" - .'> 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.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-426655440000', - ], + 'schema' => ['description' => 'The type of the route. Valid values:'."\n" + ."\n" + .'* **All**: all route types'."\n" + .'* **Custom**: a custom route'."\n" + .'* **System**: a system route'."\n" + .'* **BGP**: a BGP route'."\n" + .'* **CEN**: a Cloud Enterprise Network (CEN) route'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'custom', 'title' => ''], ], [ - 'name' => 'BfdMultiHop', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The BFD hop count. Valid values: **1** to **255**.'."\n" - ."\n" - .'This parameter is required only if you enable BFD. The parameter specifies the maximum number of network devices that a packet can traverse from the source to the destination. Set a value based on your network topology.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '3', - ], + 'schema' => ['description' => 'The region ID of the route table.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'description' => '', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => 'D4B7649A-61BB-4C64-A586-1DFF1EDA6A42', + 'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => 'DC668356-BCB4-42FD-9BC3-FA2B2E04B634', 'title' => ''], + 'RouteEntrySummarys' => [ + 'description' => 'The information about the routes in the route tables.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'RouteTableId' => ['description' => 'The ID of the route table.'."\n", 'type' => 'string', 'example' => 'vtb-bp145q7glnuzdvzu2****', 'title' => ''], + 'EntrySummarys' => [ + 'description' => 'The information about the routes of different types in one route table.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'RouteEntryType' => ['description' => 'The type of the route. Valid values:'."\n" + ."\n" + .'* **All**: all route types'."\n" + .'* **Custom**: a custom route'."\n" + .'* **System**: a system route'."\n" + .'* **BGP**: a BGP route'."\n" + .'* **CEN**: a CEN route'."\n", 'type' => 'string', 'example' => 'Custom', 'title' => ''], + 'Count' => ['description' => 'The number of entries returned.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '10', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + ], + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', ], ], - 'description' => '', + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'IllegalParam.IpAddress', - 'errorMessage' => 'The specified IpAddress is illegal.', - ], - [ - 'errorCode' => 'InvalidAccessDeviceId.NotFound', - 'errorMessage' => 'There is no Access_Device_Id in our records', - ], - [ - 'errorCode' => 'QuotaExceeded.BfdSession', - 'errorMessage' => 'Your Bfd Session number reaches the upper limit.', - ], - [ - 'errorCode' => 'MissingParam.BgpPeerId', - 'errorMessage' => 'The parameter BgpPeerId is mandatory.', - ], - [ - 'errorCode' => 'InvalidBgpPeer.NotFound', - 'errorMessage' => 'The specified BgpPeerId does not exit in our records.', - ], - [ - 'errorCode' => 'InvalidRegionId.NotFound', - 'errorMessage' => 'The specified RegionId does not exist in our records.', - ], - [ - 'errorCode' => 'IncorrectStatus.BgpPeer', - 'errorMessage' => 'Invalid BgpPeer status cannot operate.', - ], - [ - 'errorCode' => 'MissingParam.EnableBfd', - 'errorMessage' => 'The parameter EnableBfd is missing.', - ], - [ - 'errorCode' => 'IllegalParam.BfdMultiHop', - 'errorMessage' => 'BfdMultiHop is illegal.', - ], - [ - 'errorCode' => 'OperationFailed.PconnTrafficNotEnable', - 'errorMessage' => 'The operation is failed because of PconnTrafficNotEnable.', - ], - [ - 'errorCode' => 'DuplicatedParam.PeerIpAddress', - 'errorMessage' => 'The param of PeerIpAddress is duplicated.', - ], - ], - 404 => [ - [ - 'errorCode' => 'InvalidBgpPeerId.NotFound', - 'errorMessage' => 'The specified BgpPeerId does not exit in our records.', - ], - [ - 'errorCode' => 'IncorretStatus.BgpPeer', - 'errorMessage' => 'The specified BgpPeer status is not stable, can not operate.', - ], + ['errorCode' => 'InvalidVpcId.NotFound', 'errorMessage' => '%s [%s] is not found.', 'description' => 'The specified VpcId instance does not exist'], + ['errorCode' => 'IllegalParam.RouteEntryType', 'errorMessage' => 'The parameter of RouteEntryType is illegal.', 'description' => ''], ], - 500 => [ - [ - 'errorCode' => 'Internal.Error', - 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', + ], + 'title' => 'GetVpcRouteEntrySummary', + 'description' => "\n", + 'changeSet' => [ + ['createdAt' => '2025-01-16T03:36:40.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-07-31T02:45:59.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2022-09-29T03:52:36.000Z', 'description' => 'OpenAPI offline'], + ], + 'ramActions' => [ + [ + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'vpc:GetVpcRouteEntrySummary', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'conditional', 'product' => 'VPC', 'resourceType' => 'RouteTable', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:routetable/{#routetableId}'], + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VPC', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vpc/{#vpcId}'], + ], ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'GetVpcRouteEntrySummary'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"D4B7649A-61BB-4C64-A586-1DFF1EDA6A42\\"\\n}","errorExample":""},{"type":"xml","example":"\\n D4B7649A-61BB-4C64-A586-1DFF1EDA6A42\\n","errorExample":""}]', - 'title' => 'ModifyBgpPeerAttribute', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"DC668356-BCB4-42FD-9BC3-FA2B2E04B634\\",\\n \\"RouteEntrySummarys\\": [\\n {\\n \\"RouteTableId\\": \\"vtb-bp145q7glnuzdvzu2****\\",\\n \\"EntrySummarys\\": [\\n {\\n \\"RouteEntryType\\": \\"Custom\\",\\n \\"Count\\": 10\\n }\\n ]\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\n DC668356-BCB4-42FD-9BC3-FA2B2E04B634\\n \\n vtb-bp145q7glnuzdvzu2****\\n \\n Custom\\n 10\\n \\n \\n","errorExample":""}]', ], - 'DescribeBgpGroups' => [ - 'summary' => 'Queries BGP groups in a specified region.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'GetVpnGatewayDiagnoseResult' => [ + 'summary' => 'Queries the one-click diagnostic result of a VPN gateway instance by calling the GetVpnGatewayDiagnoseResult operation.', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -53099,2879 +41722,1912 @@ ], 'operationType' => 'read', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'get', - 'riskType' => 'none', - 'chargeType' => 'free', - ], + 'systemTags' => ['operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', 'tenantRelevance' => 'tenant'], 'parameters' => [ - [ - 'name' => 'RouterId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the virtual border router (VBR) that is associated with the BGP group.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'vbr-bp1ctxy813985gkuk****', - ], - ], - [ - 'name' => 'BgpGroupId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the BGP group.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'bgpg-bp1k25cyp26cllath****', - ], - ], [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region in which the VBR is deployed.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to obtain the region ID.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-shanghai', - ], + 'schema' => ['title' => '', 'description' => 'The region ID of the VPN gateway instance.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the region ID.', 'type' => 'string', 'required' => true, 'example' => 'cn-qingdao'], ], [ - 'name' => 'IsDefault', + 'name' => 'DiagnoseId', 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether the BGP group is the default one. Valid values:'."\n" - ."\n" - .'* **false**'."\n" - .'* **true**'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['title' => '', 'description' => 'The diagnostic ID.'."\n" + ."\n" + .'The diagnostic ID is returned when you call the [DiagnoseVpnGateway](~~469751~~) operation.', 'type' => 'string', 'required' => false, 'example' => 'vpndgn-uf6kuxbe3iv028k3s****'], ], [ - 'name' => 'PageNumber', + 'name' => 'VpnGatewayId', 'in' => 'query', - 'schema' => [ - 'description' => 'The page number. Default value: **1**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'minimum' => '1', - 'example' => '1', - 'default' => '1', - ], + 'schema' => ['title' => '', 'description' => 'The VPN gateway instance ID.', 'type' => 'string', 'required' => false, 'example' => 'vpn-uf6fzwp0ck3frwtbk****'], ], [ - 'name' => 'PageSize', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The number of entries per page. The maximum value is **50**. Default value: **10**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '50', - 'minimum' => '1', - 'example' => '10', - 'default' => '10', - ], + 'schema' => ['title' => '', 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'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.'."\n" + ."\n" + .'> If you do not specify this parameter, the system uses the **RequestId** of the API request as the client token. The **RequestId** may be different for each API request.', 'type' => 'string', 'required' => false, 'example' => '02fb3da4-130e-11e9-8e44-001****'], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'title' => '', + 'description' => 'The response parameters.', 'type' => 'object', 'properties' => [ - 'PageSize' => [ - 'description' => 'The number of entries per page.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '1D0971B2-A35A-42C1-A44C-E91360C36C0B', - ], - 'PageNumber' => [ - 'description' => 'The page number.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'TotalCount' => [ - 'description' => 'The number of entries returned.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'BgpGroups' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'BgpGroup' => [ - 'description' => 'The detailed information about the BGP group.'."\n", - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Status' => [ - 'description' => 'The status of the BGP group.'."\n", - 'type' => 'string', - 'example' => 'Available', - ], - 'BgpGroupId' => [ - 'description' => 'The ID of the BGP group.'."\n", - 'type' => 'string', - 'example' => 'bgpg-bp1k25cyp26cllath****', - ], - 'RouterId' => [ - 'description' => 'The ID of the VBR.'."\n", - 'type' => 'string', - 'example' => 'vbr-bp1ctxy813985gkuk****', - ], - 'PeerAsn' => [ - 'description' => 'The autonomous system number (ASN) of the on-premises device in the data center.'."\n", - 'type' => 'string', - 'example' => '1****', - ], - 'LocalAsn' => [ - 'description' => 'The ASN of the device on the Alibaba Cloud side.'."\n", - 'type' => 'string', - 'example' => '45104', - ], - 'RegionId' => [ - 'description' => 'The ID of the region to which the BGP group belongs.'."\n", - 'type' => 'string', - 'example' => 'cn-shanghai', - ], - 'Hold' => [ - 'description' => 'The hold time to receive BGP messages. Unit: seconds.'."\n" - ."\n" - .'> If no message is received within the hold time, the BGP peer is considered disconnected.'."\n", - 'type' => 'string', - 'example' => '30', - ], - 'IpVersion' => [ - 'description' => 'The IP version of the BGP group. Valid values:'."\n" - ."\n" - .'* **ipv4**: IPv4'."\n" - .'* **ipv6**: IPv6. IPv6 is supported only if the VBR of the BGP group has IPv6 enabled.'."\n", - 'type' => 'string', - 'example' => 'IPv4', - ], - 'Description' => [ - 'description' => 'The description of the BGP group.'."\n", - 'type' => 'string', - 'example' => 'The description of the BGP group.', - ], - 'Keepalive' => [ - 'description' => 'The keepalive time. Unit: seconds.'."\n", - 'type' => 'string', - 'example' => '10', - ], - 'IsFake' => [ - 'description' => 'Indicates whether the ASN is fake. Valid values:'."\n" - ."\n" - .'* **false**'."\n" - .'* **true**'."\n", - 'type' => 'string', - 'example' => 'true', - ], - 'RouteLimit' => [ - 'description' => 'The maximum number of route entries for BGP dynamic route learning.'."\n", - 'type' => 'string', - 'example' => '99', - ], - 'Name' => [ - 'description' => 'The name of the BGP group.'."\n", - 'type' => 'string', - 'example' => 'name', - ], - 'AuthKey' => [ - 'description' => 'The key used by the BGP group.'."\n", - 'type' => 'string', - 'example' => '!PWZ****', - ], - ], - ], + 'BeginTime' => ['title' => '', 'description' => 'The time when the diagnostic started.'."\n" + ."\n" + .'The time is displayed in UTC in the `YYYY-MM-DDThh:mm:ssZ` format.', 'type' => 'string', 'example' => '2022-12-15T05:28:57Z'], + 'DiagnoseId' => ['title' => '', 'description' => 'The diagnostic ID.', 'type' => 'string', 'example' => 'vpndgn-uf6sgneym02lxyuv4****'], + 'DiagnoseResult' => [ + 'title' => '', + 'description' => 'The list of diagnostic items.', + 'type' => 'array', + 'items' => [ + 'description' => 'The diagnostic item information.', + 'type' => 'object', + 'properties' => [ + 'DiagnoseName' => ['title' => '', 'description' => 'The diagnostic item.'."\n" + ."\n" + .'- **RouteEntryConflict**: route conflict.'."\n" + .'- **VpnRouteQuota**: VPN gateway destination route quota.'."\n" + .'- **VpnIPsecQuota**: VPN gateway IPsec-VPN connection quota.'."\n" + .'- **VpnPbrRouteQuota**: VPN gateway policy-based route quota.'."\n" + .'- **VcoConfigConsistency**: IPsec configuration consistency.'."\n" + .'- **VcoUserInternetIpConnectivity**: public connectivity of the customer gateway.'."\n" + .'- **VcoPrivateConnectivity**: private network connectivity.'."\n" + ."\n" + .'For more information about each diagnostic item, see [One-click diagnostics background information](~~190330~~).', 'type' => 'string', 'example' => 'RouteEntryConflict'], + 'DiagnoseResultDescription' => ['title' => '', 'description' => 'The diagnostic result of the diagnostic item.'."\n" + ."\n" + .'The operation returns different information for each diagnostic item:'."\n" + ."\n" + .'- **RouteEntryConflict**: The system returns information about the route conflict.'."\n" + .'- **VpnRouteQuota**:'."\n" + .' - **quotaName**: the ID of the destination route quota.'."\n" + .' - **quantity**: the number of destination routes that the current VPN gateway instance supports.'."\n" + .' - **used**: the number of destination routes that have been created for the current VPN gateway instance.'."\n" + .'- **VpnIPsecQuota**:'."\n" + .' - **quotaName**: the ID of the IPsec-VPN connection quota.'."\n" + .' - **quantity**: the number of IPsec-VPN connections that the current VPN gateway instance supports.'."\n" + .' - **used**: the number of IPsec-VPN connections that have been created for the current VPN gateway instance.'."\n" + .'- **VpnPbrRouteQuota**:'."\n" + .' - **quotaName**: the ID of the policy-based route quota.'."\n" + .' - **quantity**: the number of policy-based routes that the current VPN gateway instance supports.'."\n" + .' - **used**: the number of policy-based routes that have been created for the current VPN gateway instance.'."\n" + .'- **VcoConfigConsistency**:'."\n" + .' - **vcoLackConf**: the system cannot obtain the configuration of the peer end of the IPsec-VPN connection.'."\n" + .' - **vcoRunningConf**: the configuration that has been added to the peer end of the IPsec-VPN connection.'."\n" + .' - **vcoDiffConf**: the list of configurations that are inconsistent between the local end and the peer end of the IPsec-VPN connection.'."\n" + .' - **vcoConf**: the configuration that has been added to the local end of the IPsec-VPN connection.'."\n" + .'- **VcoUserInternetIpConnectivity**:'."\n" + .' - **targetIp**: the public IP address of the customer gateway.'."\n" + .' - **rtt**: the latency when the system accesses the public IP address of the customer gateway. Unit: ms.'."\n" + .' - **lossRate**: the packet loss rate when the system accesses the public IP address of the customer gateway.'."\n" + .'- **VcoPrivateConnectivity**:'."\n" + .' - **targetIp**: the source IP address.'."\n" + .' - **srcIp**: the destination IP address.'."\n" + .' - **rtt**: the latency when the source IP address accesses the destination IP address. Unit: ms.'."\n" + .' - **lossRate**: the packet loss rate when the source IP address accesses the destination IP address.', 'type' => 'string', 'example' => '{\\"targetIp\\":\\"192.168.0.1\\",\\"srcIp\\":\\"192.168.1.1\\",\\"rtt\\":-1.0,\\"lossRate\\":100.0}'], + 'DiagnoseResultLevel' => ['title' => '', 'description' => 'The diagnostic result level of the diagnostic item.'."\n" + ."\n" + .'- **normal**: Normal.'."\n" + .'- **warning**: Warning.'."\n" + .'- **error**: Error.'."\n" + ."\n" + .'For more information about the diagnostic result levels of each diagnostic item, see [One-click diagnostics background information](~~190330~~).', 'type' => 'string', 'example' => 'normal'], ], + 'title' => '', + 'example' => '', ], + 'example' => '', ], + 'FinishTime' => ['title' => '', 'description' => 'The time when the diagnostic ended.'."\n" + ."\n" + .'The time is displayed in UTC in the `YYYY-MM-DDThh:mm:ssZ` format.', 'type' => 'string', 'example' => '2022-12-15T05:29:08Z'], + 'FinishedCount' => ['title' => '', 'description' => 'The number of diagnostic items that have been completed.', 'type' => 'integer', 'format' => 'int32', 'example' => '7'], + 'RequestId' => ['title' => '', 'description' => 'The request ID.', 'type' => 'string', 'example' => '312C4D5A-6563-5FC6-8C6E-A43A5A316FEB'], + 'ResourceInstanceId' => ['title' => '', 'description' => 'The ID of the diagnosed resource.', 'type' => 'string', 'example' => 'vco-uf6huqsu63azl7mdp****'], + 'ResourceType' => ['title' => '', 'description' => 'The type of the diagnosed resource.'."\n" + ."\n" + .'Valid values: **IPsec**, which indicates an IPsec-VPN connection.', 'type' => 'string', 'example' => 'IPsec'], + 'TotalCount' => ['title' => '', 'description' => 'The total number of diagnostic items.', 'type' => 'integer', 'format' => 'int32', 'example' => '7'], + 'VpnGatewayId' => ['title' => '', 'description' => 'The VPN gateway instance ID.', 'type' => 'string', 'example' => 'vpn-uf6fzwp0ck3frwtbk****'], ], - 'description' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'IellgalParameter.OwnerAccount', - 'errorMessage' => 'The specified parameter OwnerAccount is not valid.', - ], + ['errorCode' => 'param_error', 'errorMessage' => 'The param is must be in ...', 'description' => ''], + ['errorCode' => 'MissingParam.DiagnoseInfo', 'errorMessage' => 'The VPN gateway ID and diagnose ID cannot be empty at the same time.', 'description' => ''], + ['errorCode' => 'VpnGateway.Configuring', 'errorMessage' => 'The specified service is configuring.', 'description' => ''], + ['errorCode' => 'IncorrectStatus.DiagnoseTimeout', 'errorMessage' => 'Diagnose failed because of timeout.', 'description' => ''], + ['errorCode' => 'IncorrectStatus.VpnConnectionDeleted', 'errorMessage' => 'Diagnose failed because the VPN connection has been deleted.', 'description' => ''], ], - 404 => [ - [ - 'errorCode' => 'InvalidRegionId.NotFound', - 'errorMessage' => 'The specified RegionId does not exist in our records.', - ], + 403 => [ + ['errorCode' => 'Forbidden', 'errorMessage' => 'User not authorized to operate on the specified resource.', 'description' => 'You do not have the permissions to manage the specified resource. Apply for the permissions and try again.'], ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'The request processing has failed due to some unknown error.', - ], + [ + ['errorCode' => 'InvalidDiagnoseId.NotFound', 'errorMessage' => 'The specified diagnose ID [%s] does not exist.', 'description' => ''], + ['errorCode' => 'InvalidVpnGatewayId.NotFound', 'errorMessage' => 'The specified VPN gateway [%s] does not have any diagnoses.', 'description' => ''], + ['errorCode' => 'InvalidVpnGatewayInstanceId.NotFound', 'errorMessage' => 'The specified vpn gateway instance id does not exist.', 'description' => ''], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"PageSize\\": 10,\\n \\"RequestId\\": \\"1D0971B2-A35A-42C1-A44C-E91360C36C0B\\",\\n \\"PageNumber\\": 1,\\n \\"TotalCount\\": 1,\\n \\"BgpGroups\\": {\\n \\"BgpGroup\\": [\\n {\\n \\"Status\\": \\"Available\\",\\n \\"BgpGroupId\\": \\"bgpg-bp1k25cyp26cllath****\\",\\n \\"RouterId\\": \\"vbr-bp1ctxy813985gkuk****\\",\\n \\"PeerAsn\\": \\"1****\\",\\n \\"LocalAsn\\": \\"45104\\",\\n \\"RegionId\\": \\"cn-shanghai\\",\\n \\"Hold\\": \\"30\\",\\n \\"IpVersion\\": \\"IPv4\\",\\n \\"Description\\": \\"BGP组描述。\\",\\n \\"Keepalive\\": \\"10\\",\\n \\"IsFake\\": \\"true\\",\\n \\"RouteLimit\\": \\"99\\",\\n \\"Name\\": \\"name\\",\\n \\"AuthKey\\": \\"!PWZ****\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 10\\n 1D0971B2-A35A-42C1-A44C-E91360C36C0B\\n 1\\n 1\\n \\n Available\\n bgpg-bp1k25cyp26cllath****\\n vbr-bp1ctxy813985gkuk****\\n 1****\\n 45104\\n cn-shanghai\\n 30\\n ipv4\\n BGP组描述。\\n 10\\n true\\n 99\\n name\\n !PWZ****\\n \\n","errorExample":""}]', - 'title' => 'DescribeBgpGroups', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'DescribeBgpNetworks' => [ - 'summary' => 'Queries advertised Border Gateway Protocol (BGP) networks.', - 'methods' => [ - 'post', - 'get', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'Query the one-click diagnostic result of a VPN gateway instance', + 'description' => 'When you call the **GetVpnGatewayDiagnoseResult** operation, you must specify at least one of the **DiagnoseId** and **VpnGatewayId** parameters in addition to the required parameters.', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'GetVpnGatewayDiagnoseResult'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'vpc:GetVpnGatewayDiagnoseResult', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VpnGateway', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vpngateway/{#VpnInstanceId}'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"BeginTime\\": \\"2022-12-15T05:28:57Z\\",\\n \\"DiagnoseId\\": \\"vpndgn-uf6sgneym02lxyuv4****\\",\\n \\"DiagnoseResult\\": [\\n {\\n \\"DiagnoseName\\": \\"RouteEntryConflict\\",\\n \\"DiagnoseResultDescription\\": \\"{\\\\\\\\\\\\\\"targetIp\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"192.168.0.1\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"srcIp\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"192.168.1.1\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"rtt\\\\\\\\\\\\\\":-1.0,\\\\\\\\\\\\\\"lossRate\\\\\\\\\\\\\\":100.0}\\",\\n \\"DiagnoseResultLevel\\": \\"normal\\"\\n }\\n ],\\n \\"FinishTime\\": \\"2022-12-15T05:29:08Z\\",\\n \\"FinishedCount\\": 7,\\n \\"RequestId\\": \\"312C4D5A-6563-5FC6-8C6E-A43A5A316FEB\\",\\n \\"ResourceInstanceId\\": \\"vco-uf6huqsu63azl7mdp****\\",\\n \\"ResourceType\\": \\"IPsec\\",\\n \\"TotalCount\\": 7,\\n \\"VpnGatewayId\\": \\"vpn-uf6fzwp0ck3frwtbk****\\"\\n}","type":"json"}]', + ], + 'GrantInstanceToCen' => [ + 'summary' => 'Grants permissions to a CEN instance.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'readAndWrite', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'get', - 'riskType' => 'none', - 'chargeType' => 'free', - ], + 'systemTags' => ['operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ - 'name' => 'RouterId', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the VBR.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'vrt-bp1lhl0taikrteen8****', - ], + 'schema' => ['description' => 'The ID of the region where the network instance is deployed.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'RegionId', + 'name' => 'InstanceId', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the BGP group.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The ID of the network instance.'."\n", 'type' => 'string', 'required' => true, 'example' => 'vpc-uf6o8d1dj8sjwxi6o****', 'title' => ''], ], [ - 'name' => 'PageNumber', + 'name' => 'InstanceType', 'in' => 'query', - 'schema' => [ - 'description' => 'The number of the returned page. Default value: **1**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'minimum' => '1', - 'example' => '1', - 'default' => '1', - ], + 'schema' => ['description' => 'The type of the network instance. Valid values:'."\n" + ."\n" + .'* **VPC**'."\n" + .'* **VBR**'."\n", 'type' => 'string', 'required' => true, 'example' => 'VPC', 'title' => ''], ], [ - 'name' => 'PageSize', + 'name' => 'CenId', 'in' => 'query', - 'schema' => [ - 'description' => 'The number of entries per page. The maximum value is **50**. Default value: **10**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '50', - 'minimum' => '1', - 'example' => '10', - 'default' => '10', - ], + 'schema' => ['description' => 'The ID of the CEN instance to which you want to grant permissions.'."\n", 'type' => 'string', 'required' => true, 'example' => 'cen-7qthudw0ll6jmc****', 'title' => ''], + ], + [ + 'name' => 'CenOwnerId', + 'in' => 'query', + 'schema' => ['description' => 'The user ID (UID) of the Alibaba Cloud account to which the CEN instance belongs.', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '123456789', 'title' => ''], + ], + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'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.'."\n" + ."\n" + .'> 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.'."\n", 'type' => 'string', 'required' => false, 'example' => '0c593ea1-3bea-11e9-b96b-88e9fe637760', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => 'The number of entries per page.'."\n", + 'description' => 'The response parameters.', 'type' => 'object', 'properties' => [ - 'PageSize' => [ - 'description' => 'The number of entries per page.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '6F513A15-669F-419D-B511-08A85292059B', - ], - 'PageNumber' => [ - 'description' => 'The page number.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'TotalCount' => [ - 'description' => 'The total number of advertised BGP networks.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '2', - ], - 'BgpNetworks' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'BgpNetwork' => [ - 'description' => 'BGP networks.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'BGP networks.'."\n", - 'type' => 'object', - 'properties' => [ - 'Status' => [ - 'description' => 'The status of the advertised BGP network.'."\n", - 'type' => 'string', - 'example' => 'Enabled', - ], - 'VpcId' => [ - 'description' => 'The ID of the virtual private cloud (VPC) in which the master instance resides.'."\n", - 'type' => 'string', - 'example' => 'vpc-bp1qpo0kug3a2*****', - ], - 'DstCidrBlock' => [ - 'description' => 'The CIDR block of the advertised BGP network.'."\n", - 'type' => 'string', - 'example' => '10.1.XX.XX/24', - ], - 'RouterId' => [ - 'description' => 'The ID of the VBR.'."\n", - 'type' => 'string', - 'example' => 'vrt-bp1lhl0taikrteen8****', - ], - ], - ], - ], - ], - ], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E', 'title' => ''], ], + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ - 404 => [ - [ - 'errorCode' => 'InvalidRegionId.NotFound', - 'errorMessage' => 'The specified RegionId does not exist in our records.', - ], + 400 => [ + ['errorCode' => 'IncorrectStatus', 'errorMessage' => 'Current Instance status does not support this operation.', 'description' => ''], + ['errorCode' => 'TaskConflict', 'errorMessage' => 'The operation is too frequent, TaskConflict.', 'description' => 'The system is unavailable. Try again later.'], + ['errorCode' => 'MissingParam.CenInstanceId', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'IllegalParam.CenInstanceId', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'Invalid.Grant', 'errorMessage' => 'Can not grant to other owner cen.', 'description' => 'You cannot attach the VBR to a CEN instance that belongs to another Alibaba Cloud account.'], ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'The request processing has failed due to some unknown error.', - ], + 404 => [ + ['errorCode' => 'InvalidInstanceId.NotFound', 'errorMessage' => 'Specified Instance does not exist.', 'description' => ''], + ['errorCode' => 'InstanceType.Invalid', 'errorMessage' => 'Specified type is not valid.', 'description' => ''], + ['errorCode' => 'QuotaExceeded.CbnGrantRules', 'errorMessage' => 'cbn grantRules per instance quota exceed', 'description' => ''], + ['errorCode' => 'InvalidRegionId.NotFound', 'errorMessage' => 'The RegionId provided does not exist in our records.', 'description' => ''], + ['errorCode' => 'InvalidVbr.NotFound', 'errorMessage' => 'Specified vbr does not exist.', 'description' => ''], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'title' => 'GrantInstanceToCen', + 'description' => '- 在加载其他阿里云账号(主账号)的网络实例前,需要在网络实例所在的阿里云账号下为云企业网实例授权。'."\n" + ."\n" + .'>**GrantInstanceToCen**接口是VPC的API,所以调用该接口需要使用`vpc.aliyuncs.com`域名。API version为`2016-04-28`。 '."\n" + ."\n" + .'- **GrantInstanceToCen**接口不支持在同一个VPC、VBR或者CCN中并发为云企业网实例授权。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2022-12-08T09:19:32.000Z', 'description' => 'Error codes changed'], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"PageSize\\": 10,\\n \\"RequestId\\": \\"6F513A15-669F-419D-B511-08A85292059B\\",\\n \\"PageNumber\\": 1,\\n \\"TotalCount\\": 2,\\n \\"BgpNetworks\\": {\\n \\"BgpNetwork\\": [\\n {\\n \\"Status\\": \\"Enabled\\",\\n \\"VpcId\\": \\"vpc-bp1qpo0kug3a2*****\\",\\n \\"DstCidrBlock\\": \\"10.1.XX.XX/24\\",\\n \\"RouterId\\": \\"vbr-bp1ctxy813985gkuk****\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 10\\n 6F513A15-669F-419D-B511-08A85292059B\\n 1\\n 2\\n \\n Enabled\\n vpc-bp1qpo0kug3a2*****\\n 10.1.XX.XX/24\\n vrt-bp1lhl0taikrteen8****\\n \\n","errorExample":""}]', - 'title' => 'DescribeBgpNetworks', + 'ramActions' => [], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E\\"\\n}","type":"json"}]', ], - 'DescribeBgpPeers' => [ - 'summary' => 'Queries Border Gateway Protocol (BGP) peers in a region.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'GrantInstanceToVbr' => [ + 'summary' => 'Calls the GrantInstanceToVbr operation to grant authorization of a VPC instance to a VBR instance for cross-account VBR uplink scenarios.', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'write', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'get', - 'riskType' => 'none', - 'chargeType' => 'free', - ], + 'systemTags' => ['operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ - 'name' => 'RouterId', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the virtual border router (VBR) that is associated with the BGP peer that you want to query.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'vbr-2zecmmvg5gvu8i4te****', - ], + 'schema' => ['description' => 'The region ID of the VPC instance for which authorization is to be granted.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query region IDs.', 'type' => 'string', 'required' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'BgpPeerId', + 'name' => 'VbrOwnerUid', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the BGP peer that you want to query.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'bgp-2ze3un0ft1jd1xd****', - ], + 'schema' => ['description' => 'The Alibaba Cloud account ID that owns the VBR instance to be granted authorization.', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '1210123456123456', 'title' => ''], ], [ - 'name' => 'BgpGroupId', + 'name' => 'VbrInstanceIds', 'in' => 'query', + 'style' => 'simple', 'schema' => [ - 'description' => 'The ID of the BGP group to which the BGP peer that you want to query belongs.'."\n", - 'type' => 'string', + 'description' => 'The list of VBR instances to be granted authorization.', + 'type' => 'array', + 'items' => ['description' => 'The VBR instances that accept the authorization. Separate multiple VBR instance IDs with commas (,).'."\n" + ."\n" + .'- If **GrantType** is set to **All**, this parameter can be left empty, which indicates that authorization of the VPC instance is granted to all VBR instances in the specified region under the specified Alibaba Cloud account.'."\n" + .'- If **GrantType** is set to **Specify**, this parameter is required, which indicates that authorization of the VPC instance is granted to the specified VBR instances.', 'type' => 'string', 'required' => false, 'example' => 'vbr-m5ex0xf63xk8s5bob****,vbr-bp1h6efd7a5g66xxd****', 'title' => ''], 'required' => false, - 'example' => 'bgpg-2zev8h2wo414sfh****', + 'maxItems' => 20, + 'title' => '', + 'example' => '', ], ], [ - 'name' => 'RegionId', + 'name' => 'InstanceId', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the BGP group to which the BGP peer that you want to query belongs.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to obtain the region ID.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-shanghai', - ], + 'schema' => ['description' => 'The ID of the VPC instance for which authorization is to be granted.', 'type' => 'string', 'required' => true, 'example' => 'vpc-bp1lqhq93q8evjpky****', 'title' => ''], ], [ - 'name' => 'IsDefault', + 'name' => 'GrantType', 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether the BGP group is the default group. Valid values:'."\n" - ."\n" - .'* **true**'."\n" - .'* **false**'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['description' => 'The scope of VBR instances that accept the authorization. Valid values:'."\n" + ."\n" + .'- **All**: Grants authorization of the VPC instance to all VBR instances in the specified region under the specified Alibaba Cloud account. In this case, the **VbrInstanceIds** parameter can be left empty.'."\n" + .'- **Specify**: Grants authorization of the VPC instance to the specified VBR instances. In this case, the **VbrInstanceIds** parameter is required.', 'type' => 'string', 'required' => true, 'example' => 'All', 'title' => ''], ], [ - 'name' => 'PageNumber', + 'name' => 'VbrRegionNo', 'in' => 'query', + 'schema' => ['description' => 'The region ID of the VBR instance to be granted authorization.', 'type' => 'string', 'required' => true, 'example' => 'cn-hangzhou', 'title' => ''], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => 'The page number. Default value: **1**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'minimum' => '1', - 'example' => '1', - 'default' => '1', + 'description' => 'The response parameters.', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'F99F13AE-D733-5856-AB97-80CC88B1D5A8', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InvalidParam.NotNull', 'errorMessage' => 'The parameter must not be null.', 'description' => ''], + ['errorCode' => 'Parameter.Illegal', 'errorMessage' => 'The parameter is illegal.', 'description' => 'The parameter is invalid.'], + ['errorCode' => 'Instance.StatusError', 'errorMessage' => 'The status of instance error.', 'description' => 'The status of the instance is invalid.'], + ], + 404 => [ + ['errorCode' => 'Instance.NotExist', 'errorMessage' => 'The instance not exist.', 'description' => ''], + ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'Grant authorization of a VPC instance to a VBR instance for cross-account VBR uplink scenarios', + 'description' => 'When creating a cross-account VBR uplink connection, you must grant authorization of the VPC instance to the VBR instance.', + 'changeSet' => [ + ['createdAt' => '2023-09-21T07:28:00.000Z', 'description' => 'Response parameters changed'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'GrantInstanceToVbr'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], + ], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:GrantInstanceToVbr', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VPC', 'arn' => 'acs:vpc:{#regionId}:{#AccountId}:vpc/{#VpcId}'], + ], ], ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"F99F13AE-D733-5856-AB97-80CC88B1D5A8\\"\\n}","type":"json"}]', + ], + 'ListBusinessAccessPoints' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'PageSize', + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'list', 'riskType' => 'none', 'chargeType' => 'free', 'autoTest' => true, 'tenantRelevance' => 'publicInformation'], + 'parameters' => [ + [ + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The number of entries per page. Valid values: **1 to 50**. Default value: **10**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '50', - 'minimum' => '1', - 'example' => '10', - 'default' => '10', - ], + 'schema' => ['description' => 'The region ID of the Express Connect circuit.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to obtain the region ID.', 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou', 'title' => ''], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => ['description' => 'The region ID of the Express Connect circuit.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to obtain the region ID.', 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => 'The information about the BGP peer.'."\n", + 'title' => 'Schema of Response', + 'description' => 'The request ID.', 'type' => 'object', 'properties' => [ - 'PageSize' => [ - 'description' => 'The number of entries per page.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => 'DE77A7F3-3B74-41C0-A5BC-CAFD188C28B6', - ], - 'PageNumber' => [ - 'description' => 'The page number.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'TotalCount' => [ - 'description' => 'The number of entries returned.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'BgpPeers' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'BgpPeer' => [ - 'description' => 'The information about the BGP peer.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'Status' => [ - 'description' => 'The status of the BGP peer. Valid values:'."\n" - ."\n" - .'* **Pending**'."\n" - .'* **Available**'."\n" - .'* **Modifying**'."\n" - .'* **Deleting**'."\n" - .'* **Deleted**'."\n", - 'type' => 'string', - 'example' => 'Available', - ], - 'PeerIpAddress' => [ - 'description' => 'The IP address of the BGP peer.'."\n", - 'type' => 'string', - 'example' => '116.62.XX.XX', - ], - 'RouterId' => [ - 'description' => 'The Router ID.'."\n", - 'type' => 'string', - 'example' => 'vbr-2zecmmvg5gvu8i4te****', - ], - 'BgpGroupId' => [ - 'description' => 'The ID of the BGP group.'."\n", - 'type' => 'string', - 'example' => 'bgpg-2zev8h2wo414sfh****', - ], - 'BgpStatus' => [ - 'description' => 'The status of the BGP connection. Valid values:'."\n" - ."\n" - .'* **Idle**: The BGP connection is not used.'."\n" - .'* **Connect**: The BGP connection is used.'."\n" - .'* **Active**: The BGP connection is available.'."\n" - .'* **Established**: The BGP connection is established.'."\n" - .'* **Down**: The BGP connection is unavailable.'."\n", - 'type' => 'string', - 'example' => 'Connect', - ], - 'BfdMultiHop' => [ - 'description' => 'The Bidirectional Forwarding Detection (BFD) hop count.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '3', - ], - 'PeerAsn' => [ - 'description' => 'The autonomous system number (ASN)of the BGP peer.'."\n", - 'type' => 'string', - 'example' => '65515', - ], - 'LocalAsn' => [ - 'description' => 'The ASN of the device on the Alibaba Cloud side.'."\n", - 'type' => 'string', - 'example' => '45104', - ], - 'RegionId' => [ - 'description' => 'The ID of the region to which the BGP group belongs.'."\n", - 'type' => 'string', - 'example' => 'cn-shanghai', - ], - 'BgpPeerId' => [ - 'description' => 'The ID of the BGP peer.'."\n", - 'type' => 'string', - 'example' => 'bgp-2ze3un0ft1jd1xd****', - ], - 'EnableBfd' => [ - 'description' => 'Indicates whether BFD is enabled. Valid values:'."\n" - ."\n" - .'* **true**'."\n" - .'* **false**'."\n", - 'type' => 'boolean', - 'example' => 'true', - ], - 'Hold' => [ - 'description' => 'The hold time.'."\n", - 'type' => 'string', - 'example' => '30', - ], - 'IpVersion' => [ - 'description' => 'The version of the IP address.'."\n", - 'type' => 'string', - 'example' => 'ipv4', - ], - 'Keepalive' => [ - 'description' => 'The Keepalive interval.'."\n", - 'type' => 'string', - 'example' => '10', - ], - 'Description' => [ - 'description' => 'The description of the BGP group.'."\n", - 'type' => 'string', - 'example' => 'test', - ], - 'RouteLimit' => [ - 'description' => 'The maximum number of routes.'."\n", - 'type' => 'string', - 'example' => '110', - ], - 'IsFake' => [ - 'description' => 'Indicates whether a fake autonomous system number (ASN) is used. Valid values:'."\n" - ."\n" - .'* **true**'."\n" - .'* **false**'."\n", - 'type' => 'boolean', - 'example' => 'true', - ], - 'AuthKey' => [ - 'description' => 'The authentication key of the BGP group.'."\n", - 'type' => 'string', - 'example' => '!PWZ****', - ], - 'Name' => [ - 'description' => 'The name of the BGP peer.'."\n", - 'type' => 'string', - 'example' => 'test', - ], - 'AdvertisedRouteCount' => [ - 'description' => 'The number of advertised routes.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '0', - ], - 'ReceivedRouteCount' => [ - 'description' => 'The number of received routes.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '0', - ], - 'GmtModified' => [ - 'description' => 'The time when the BGP peer is modified.'."\n", - 'type' => 'string', - 'format' => 'iso8601', - 'example' => '2022-05-20T07:29:08Z', + 'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.', 'type' => 'string', 'example' => '611CB80C-B6A9-43DB-9E38-0B0AC3D9B58F'], + 'BusinessAccessPoints' => [ + 'description' => 'A list of access points.', + 'type' => 'array', + 'items' => [ + 'description' => 'A list of access points.', + 'type' => 'object', + 'properties' => [ + 'AccessPointId' => ['description' => 'The ID of the access point.', 'type' => 'string', 'example' => 'ap-cn-hangzhou-xs-B', 'title' => ''], + 'AccessPointName' => ['description' => 'The name of the access point.', 'type' => 'string', 'example' => '杭州-萧山-B', 'title' => ''], + 'SupportLineOperator' => ['description' => 'The connectivity provider for the Express Connect circuit. Valid values:'."\n" + ."\n" + .'- **CT**: China Telecom.'."\n" + ."\n" + .'- **CU**: China Unicom.'."\n" + ."\n" + .'- **CM**: China Mobile.'."\n" + ."\n" + .'- **CO**: other connectivity providers in the Chinese mainland.'."\n" + ."\n" + .'- **Equinix**: Equinix.'."\n" + ."\n" + .'- **Other**: other connectivity providers outside the Chinese mainland.', 'type' => 'string', 'example' => 'CT', 'title' => ''], + 'SupportPortTypes' => ['description' => 'The port types supported by the access point. Valid values:'."\n" + ."\n" + .'- **100Base-T**: 100 Mbit/s copper port.'."\n" + ."\n" + .'- **1000Base-T**: 1,000 Mbit/s copper port.'."\n" + ."\n" + .'- **1000Base-LX**: 1,000 Mbit/s single-mode optical port (10 km).'."\n" + ."\n" + .'- **10GBase-T**: 10,000 Mbit/s copper port.'."\n" + ."\n" + .'- **10GBase-LR**: 10,000 Mbit/s single-mode optical port (10 km).'."\n" + ."\n" + .'- **40GBase-LR**: 40,000 Mbit/s single-mode optical port.'."\n" + ."\n" + .'- **100GBase-LR**: 100,000 Mbit/s single-mode optical port.'."\n" + ."\n" + .'> The 40GBase-LR and 100GBase-LR port types are subject to availability. To use these port types, contact your account manager.', 'type' => 'string', 'example' => '1000Base-T', 'title' => ''], + 'CloudBoxInstanceIds' => ['description' => 'The ID of the Cloud Box instance.'."\n" + ."\n" + .'> This parameter is returned only for access points that are associated with Cloud Box instances.', 'type' => 'string', 'example' => 'cb-****', 'title' => ''], + 'Longitude' => ['description' => 'The longitude of the access point.', 'type' => 'number', 'format' => 'double', 'example' => '120.247514', 'title' => ''], + 'Latitude' => ['description' => 'The latitude of the access point.', 'type' => 'number', 'format' => 'double', 'example' => '30.198416', 'title' => ''], + 'OpticalModuleModels' => [ + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'PortType' => ['description' => 'The port type.', 'type' => 'string', 'title' => '', 'example' => ''], + 'OpticalModuleModel' => ['description' => 'The model of the optical module.', 'type' => 'string', 'title' => '', 'example' => ''], ], + 'description' => '', + 'title' => '', + 'example' => '', ], + 'title' => '', + 'description' => 'The supported model of the optical module.', + 'example' => '', ], ], + 'title' => '', + 'example' => '', ], + 'title' => '', + 'example' => '', ], ], + 'example' => '', ], ], ], 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'ServiceUnavailable', - 'errorMessage' => 'The request has failed due to a temporary failure of the server.', - ], - ], - 404 => [ - [ - 'errorCode' => 'InvalidRegionId.NotFound', - 'errorMessage' => 'The specified RegionId does not exist in our records.', - ], - ], 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'The request processing has failed due to some unknown error.', - ], + ['errorCode' => 'InternalError', 'errorMessage' => 'Internal system error.', 'description' => 'Internal system error.'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'ListBusinessAccessPoints', + 'summary' => 'Queries the access points for Express Connect circuits.', + 'changeSet' => [ + ['createdAt' => '2024-06-13T08:13:13.000Z', 'description' => 'Error codes changed'], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"PageSize\\": 10,\\n \\"RequestId\\": \\"DE77A7F3-3B74-41C0-A5BC-CAFD188C28B6\\",\\n \\"PageNumber\\": 1,\\n \\"TotalCount\\": 10,\\n \\"BgpPeers\\": {\\n \\"BgpPeer\\": [\\n {\\n \\"Status\\": \\"Available\\",\\n \\"PeerIpAddress\\": \\"116.62.XX.XX\\",\\n \\"RouterId\\": \\"vbr-2zecmmvg5gvu8i4te****\\",\\n \\"BgpGroupId\\": \\"bgpg-2zev8h2wo414sfh****\\",\\n \\"BgpStatus\\": \\"Connect\\",\\n \\"BfdMultiHop\\": 3,\\n \\"PeerAsn\\": \\"65515\\",\\n \\"LocalAsn\\": \\"45104\\",\\n \\"RegionId\\": \\"cn-shanghai\\",\\n \\"BgpPeerId\\": \\"bgp-2ze3un0ft1jd1xd****\\",\\n \\"EnableBfd\\": true,\\n \\"Hold\\": \\"30\\",\\n \\"IpVersion\\": \\"ipv4\\",\\n \\"Keepalive\\": \\"10\\",\\n \\"Description\\": \\"test\\",\\n \\"RouteLimit\\": \\"110\\",\\n \\"IsFake\\": true,\\n \\"AuthKey\\": \\"!PWZ****\\",\\n \\"Name\\": \\"test\\",\\n \\"AdvertisedRouteCount\\": 0,\\n \\"ReceivedRouteCount\\": 0,\\n \\"GmtModified\\": \\"2022-05-20T07:29:08Z\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 10\\n DE77A7F3-3B74-41C0-A5BC-CAFD188C28B6\\n 1\\n 10\\n \\n Available\\n 116.62.XX.XX\\n vbr-2zecmmvg5gvu8i4te****\\n bgpg-2zev8h2wo414sfh****\\n Connect\\n 3\\n 65515\\n 45104\\n cn-shanghai\\n bgp-2ze3un0ft1jd1xd****\\n true\\n 30\\n ipv4\\n 10\\n test\\n 110\\n true\\n !PWZ****\\n test\\n 0\\n 0\\n 2022-05-20T07:29:08Z\\n \\n","errorExample":""}]', - 'title' => 'DescribeBgpPeers', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', + 'ramActions' => [], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"611CB80C-B6A9-43DB-9E38-0B0AC3D9B58F\\",\\n \\"BusinessAccessPoints\\": [\\n {\\n \\"AccessPointId\\": \\"ap-cn-hangzhou-xs-B\\",\\n \\"AccessPointName\\": \\"杭州-萧山-B\\",\\n \\"SupportLineOperator\\": \\"CT\\",\\n \\"SupportPortTypes\\": \\"1000Base-T\\",\\n \\"CloudBoxInstanceIds\\": \\"cb-****\\",\\n \\"Longitude\\": 120.247514,\\n \\"Latitude\\": 30.198416,\\n \\"OpticalModuleModels\\": [\\n {\\n \\"PortType\\": \\"\\",\\n \\"OpticalModuleModel\\": \\"\\"\\n }\\n ]\\n }\\n ]\\n}","type":"json"}]', ], - 'CreateNatGateway' => [ - 'summary' => 'Creates an enhanced Internet NAT gateway or a Virtual Private Cloud (VPC) NAT gateway.', - 'methods' => [ - 'post', - 'get', + 'ListBusinessRegions' => [ + 'summary' => 'Queries the list of regions available for an Express Connect circuit.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], + ], ], - 'schemes' => [ - 'http', - 'https', + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'list', 'riskType' => 'none', 'chargeType' => 'free', 'tenantRelevance' => 'publicInformation'], + 'parameters' => [ + [ + 'name' => 'AcceptLanguage', + 'in' => 'query', + 'schema' => ['description' => 'The language of the response. Valid values:'."\n" + ."\n" + .'* **zh-CN** (default): Chinese'."\n" + .'* **en-US**: English.'."\n", 'type' => 'string', 'required' => false, 'example' => 'zh-CN', 'title' => ''], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'Schema of Response'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['title' => 'Id of the request', 'description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => '304FE68E-16D8-5B90-B2B3-FE5C5C08C24B'], + 'GeographicSubRegions' => [ + 'description' => 'The list of regions available for Express Connect circuits.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'RegionId' => ['description' => 'The ID of the region where circuits are available.'."\n", 'type' => 'string', 'example' => 'cn-hangzhou', 'title' => ''], + 'Name' => ['description' => 'The name of the region where circuits are available.'."\n", 'type' => 'string', 'example' => '华东1(杭州)', 'title' => ''], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + 'Count' => ['description' => 'The total number of entries returned.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '10', 'title' => ''], + ], + 'example' => '', + ], + ], ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'ListBusinessRegions', + 'changeSet' => [], + 'ramActions' => [], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"304FE68E-16D8-5B90-B2B3-FE5C5C08C24B\\",\\n \\"GeographicSubRegions\\": [\\n {\\n \\"RegionId\\": \\"cn-hangzhou\\",\\n \\"Name\\": \\"华东1(杭州)\\"\\n }\\n ],\\n \\"Count\\": 10\\n}","type":"json"}]', + ], + 'ListDhcpOptionsSets' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'read', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'create', - 'riskType' => 'none', - 'chargeType' => 'free', - ], + 'systemTags' => ['operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the NAT gateway.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to obtain the region ID.', - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The region ID of the DHCP options sets that you want to query.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'VpcId', + 'name' => 'NextToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the VPC where you want to create the NAT gateway.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'vpc-bp1di7uewzmtvfuq8****', - ], + 'schema' => ['description' => 'The pagination token that is used in the next request to retrieve a new page of results. Valid values:'."\n" + ."\n" + .'* You do not need to specify this parameter for the first request.'."\n" + ."\n" + .'* You must specify the token that is obtained from the previous query as the value of the **NextToken** parameter.', 'type' => 'string', 'required' => false, 'docRequired' => false, 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', 'title' => ''], ], [ - 'name' => 'Name', + 'name' => 'MaxResults', 'in' => 'query', - 'schema' => [ - 'description' => 'The name of the NAT gateway.'."\n" - ."\n" - .'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.'."\n" - ."\n" - .'If this parameter is not set, the system assigns a default name to the NAT gateway.', - 'type' => 'string', - 'required' => false, - 'example' => 'fortest', - ], + 'schema' => ['description' => 'The number of entries per page. Valid values: **1** to **100**. Default value: **10**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '100', 'minimum' => '1', 'default' => '10', 'example' => '10', 'title' => ''], ], [ - 'name' => 'Description', + 'name' => 'DomainName', 'in' => 'query', 'schema' => [ - 'description' => 'The description of the NAT gateway.'."\n" + 'description' => 'The root domain. For example, you can set the value to example.com.'."\n" ."\n" - .'You can leave this parameter empty or enter a description. If you enter a description, the description must be 2 to 256 characters in length and cannot start with `http://` or `https://`.'."\n", + .'After a DHCP options set is associated with a virtual private cloud (VPC), the root domain in the DHCP options set is automatically synchronized with the ECS instances in the VPC.', 'type' => 'string', 'required' => false, - 'example' => 'testnat', + 'enumValueTitles' => ['example.com' => 'example.com'], + 'example' => 'example.com', + 'title' => '', ], ], [ - 'name' => 'ClientToken', + 'name' => 'DhcpOptionsSetName', 'in' => 'query', 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + 'description' => 'The name of the DHCP options set.'."\n" + ."\n" + .'The name must be 1 to 128 characters in length and can contain digits, underscores (\\_), and hyphens (-). It must start with a letter.'."\n" ."\n" - .'You can use the client to generate the token, but you must make sure that the token is unique among different requests.'."\n" + .'Valid values:'."\n" ."\n" - .'> 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.', + .' '."\n" + .'* tf-testAccVpcDhcpOptionsSets-1585169790614573448'."\n" + .' '."\n" + .' '."\n" + .' '."\n" + .' :'."\n" + .' '."\n" + .' '."\n" + .' '."\n" + .' tf-testAccVpcDhcpOptionsSets-1585169790614573448'."\n" + .' '."\n" + .' '."\n" + .' '."\n" + .' .', 'type' => 'string', 'required' => false, - 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3FF3898', + 'enumValueTitles' => ['tf-testAccVpcDhcpOptionsSets-1585169790614573448' => 'tf-testAccVpcDhcpOptionsSets-1585169790614573448'], + 'example' => 'test', + 'title' => '', ], ], [ - 'name' => 'Spec', + 'name' => 'DhcpOptionsSetId', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => 'Subscription Internet NAT gateways are no longer available for purchase. Ignore this parameter.'."\n", - 'type' => 'string', + 'description' => 'The ID of the DHCP options set. You can specify at most 20 IDs.', + 'type' => 'array', + 'items' => ['description' => 'The ID of the DHCP options set. You can specify at most 20 IDs.', 'type' => 'string', 'required' => false, 'example' => 'dopt-o6w0df4epg9zo8isy****', 'title' => ''], 'required' => false, - 'example' => 'Invalid parameter.', + 'example' => 'dopt-o6w0df4epg9zo8isy****', + 'maxItems' => 20, + 'title' => '', ], ], [ - 'name' => 'InstanceChargeType', + 'name' => 'ResourceGroupId', 'in' => 'query', - 'schema' => [ - 'description' => 'The billing method of the NAT gateway.'."\n" - ."\n" - .'Set the value to **PostPaid** (pay-as-you-go), which is the default value.'."\n" - ."\n" - .'For more information, see [Internet NAT gateway billing](~~48126~~) and [VPC NAT gateway billing](~~270913~~).'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'PostPaid', - ], + 'schema' => ['description' => 'The ID of the resource group to which the DHCP options set belongs.', 'type' => 'string', 'required' => false, 'example' => 'rg-acfmxazb4ph****', 'title' => ''], ], [ - 'name' => 'PricingCycle', + 'name' => 'Tags', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => 'Subscription Internet NAT gateways are no longer available for purchase. Ignore this parameter.'."\n", - 'type' => 'string', + 'description' => 'The tag list.', + 'type' => 'array', + 'items' => [ + 'description' => 'The tag list.', + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => 'The tag key. You can specify up to 20 tag keys. The tag key cannot be an empty string.'."\n" + ."\n" + .'The tag key can be up to 64 characters in length and can contain digits, periods (.), underscores (\\_), and hyphens (-). The tag key must start with a letter but cannot start with `aliyun` or `acs:`. The tag key cannot contain `http://` or `https://`.', 'type' => 'string', 'required' => false, 'example' => 'FinanceDept', 'title' => ''], + 'Value' => ['description' => 'The tag value. You can specify at most 20 tag values. The tag value can be an empty string.'."\n" + ."\n" + .'The tag value can be up to 128 characters in length and can contain digits, periods (.), underscores (\\_), and hyphens (-). The tag value must start with a letter but cannot start with `aliyun` or `acs:`. The tag value cannot contain `http://` or `https://`.', 'type' => 'string', 'required' => false, 'example' => 'FinanceJoshua', 'title' => ''], + ], + 'required' => false, + 'title' => '', + 'example' => '', + ], 'required' => false, - 'example' => 'Invalid parameter.', + 'maxItems' => 10, + 'title' => '', + 'example' => '', ], ], - [ - 'name' => 'Duration', - 'in' => 'query', + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => 'Subscription Internet NAT gateways are no longer available for purchase. Ignore this parameter.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'Invalid parameter.', + 'description' => 'The pagination token used in the next request to retrieve a new page of results. Valid values:'."\n" + ."\n" + .'* If **NextToken** is empty, there is no next page.'."\n" + .'* If a value of **NextToken** is returned, it indicates the token that is used for the next query.', + 'type' => 'object', + 'properties' => [ + 'NextToken' => ['description' => 'A pagination token. It can be used in the next request to retrieve a new page of results. Valid values:'."\n" + ."\n" + .'* If **NextToken** is empty, no next page exists.'."\n" + .'* If a value is returned for **NextToken**, the value is used to retrieve a new page of results.', 'type' => 'string', 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd********', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '0ED8D006-F706-4D23-88ED-E11ED28DCAC0', 'title' => ''], + 'DhcpOptionsSets' => [ + 'description' => 'The list of the DHCP options sets.', + 'type' => 'array', + 'items' => [ + 'description' => 'The list of the DHCP options sets.', + 'type' => 'object', + 'properties' => [ + 'DhcpOptionsSetDescription' => ['description' => 'The description of the DHCP options set.', 'type' => 'string', 'example' => 'test', 'title' => ''], + 'Status' => ['description' => 'The status of the DHCP options set. Valid values:'."\n" + ."\n" + .'* **Available**'."\n" + .'* **InUse**'."\n" + .'* **Pending**'."\n" + .'* **Deleted**', 'type' => 'string', 'example' => 'Available', 'title' => ''], + 'DhcpOptionsSetId' => ['description' => 'The ID of the DHCP options set.', 'type' => 'string', 'example' => 'dopt-o6w0df4epg9zo8isy****', 'title' => ''], + 'DhcpOptionsSetName' => ['description' => 'The name of the DHCP options set.', 'type' => 'string', 'example' => 'test', 'title' => ''], + 'AssociateVpcCount' => ['description' => 'The number of VPCs with which the DHCP options set is associated.', 'type' => 'integer', 'format' => 'int32', 'example' => '2', 'title' => ''], + 'OwnerId' => ['description' => 'The ID of the Alibaba Cloud account to which the DHCP options set belongs.', 'type' => 'integer', 'format' => 'int64', 'example' => '253460731706911258', 'title' => ''], + 'DhcpOptions' => [ + 'description' => 'The details of DHCP options.', + 'type' => 'object', + 'properties' => [ + 'DomainNameServers' => ['description' => 'The IP address of the DNS server.', 'type' => 'string', 'example' => '192.168.XX.XX', 'title' => ''], + 'DomainName' => ['description' => 'The suffix of the hostname.', 'type' => 'string', 'example' => 'example.com', 'title' => ''], + 'LeaseTime' => ['description' => 'The lease time of the IPv4 addresses for the DHCP options set.'."\n" + ."\n" + .'* If you use hours as the unit, valid values are **24h to 1176h** and **87600h to 175200h**. Default value: **87600h**.'."\n" + .'* If you use days as the unit, valid values are **1d to 49d** and **3650d to 7300d**. Default value: **3650d**.', 'type' => 'string', 'example' => '3650d', 'title' => ''], + 'Ipv6LeaseTime' => ['description' => 'The lease time of the IPv6 DHCP options set.'."\n" + ."\n" + .'* If you use hours as the unit, Unit: h. Valid values are **24h to 1176h** and **87600h to 175200h**. Default value: **24h**.'."\n" + ."\n" + .'* If you use days as the unit, Unit: d. Valid values are **1d to 49d** and **3650d to 7300d**. Default value: **1d**.', 'type' => 'string', 'example' => '3650d', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'ResourceGroupId' => ['description' => 'The ID of the resource group to which the DHCP options set belongs.', 'type' => 'string', 'example' => 'rg-acfmxazb4ph****', 'title' => ''], + 'Tags' => [ + 'description' => 'The tag list.', + 'type' => 'array', + 'items' => [ + 'description' => 'The tag list.', + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => 'The key of tag N added to the resource.', 'type' => 'string', 'example' => 'FinanceDept', 'title' => ''], + 'Value' => ['description' => 'The value of tag N added to the resource.', 'type' => 'string', 'example' => 'FinanceJoshua', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + 'CreationTime' => ['description' => 'The creation time of the DHCP options sets.', 'type' => 'string', 'example' => '2025-08-21 ***', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + 'TotalCount' => ['description' => 'The number of entries.', 'type' => 'string', 'example' => '10', 'title' => ''], + ], + 'title' => '', + 'example' => '', ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'IllegalParam.NextToken', 'errorMessage' => 'The specified NextToken is invalid.', 'description' => 'The specified NextToken is invalid.'], + ['errorCode' => 'InvalidRegionId.NotFound', 'errorMessage' => 'The specified RegionId does not exist.', 'description' => 'The specified region does not exist.'], + ], + ], + 'title' => 'ListDhcpOptionsSets', + 'summary' => 'Queries Dynamic Host Configuration Protocol (DHCP) options sets.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2025-02-08T07:51:54.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2023-03-23T02:20:37.000Z', 'description' => 'Request parameters changed, Response parameters changed, Response parameters changed'], + ['createdAt' => '2022-11-18T07:29:31.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2021-11-17T03:03:07.000Z', 'description' => 'Response parameters changed'], + ], + 'ramActions' => [], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"NextToken\\": \\"FFmyTO70tTpLG6I3FmYAXGKPd********\\",\\n \\"RequestId\\": \\"0ED8D006-F706-4D23-88ED-E11ED28DCAC0\\",\\n \\"DhcpOptionsSets\\": [\\n {\\n \\"DhcpOptionsSetDescription\\": \\"test\\",\\n \\"Status\\": \\"Available\\",\\n \\"DhcpOptionsSetId\\": \\"dopt-o6w0df4epg9zo8isy****\\",\\n \\"DhcpOptionsSetName\\": \\"test\\",\\n \\"AssociateVpcCount\\": 2,\\n \\"OwnerId\\": 253460731706911260,\\n \\"DhcpOptions\\": {\\n \\"DomainNameServers\\": \\"192.168.XX.XX\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"LeaseTime\\": \\"3650d\\",\\n \\"Ipv6LeaseTime\\": \\"3650d\\"\\n },\\n \\"ResourceGroupId\\": \\"rg-acfmxazb4ph****\\",\\n \\"Tags\\": [\\n {\\n \\"Key\\": \\"FinanceDept\\",\\n \\"Value\\": \\"FinanceJoshua\\"\\n }\\n ],\\n \\"CreationTime\\": \\"2025-08-21 ***\\"\\n }\\n ],\\n \\"TotalCount\\": \\"10\\"\\n}","type":"json"}]', + 'translator' => 'manual', + ], + 'ListEnhanhcedNatGatewayAvailableZones' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'list', 'riskType' => 'none', 'chargeType' => 'free'], + 'parameters' => [ [ - 'name' => 'AutoPay', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'Subscription Internet NAT gateways are no longer available for purchase. Ignore this parameter.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'Invalid parameter.', - ], + 'schema' => ['description' => 'The ID of the region that you want to query.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n" + ."\n" + .'In this example, zones that support NAT gateways in the UAE (Dubai) region are queried.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'me-east-1', 'title' => ''], ], [ - 'name' => 'VSwitchId', + 'name' => 'AcceptLanguage', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the vSwitch to which the NAT gateway is attached.'."\n" - ."\n" - .'When you create a NAT gateway, you must specify a vSwitch for the NAT gateway. Then, the system assigns an idle private IP address from the vSwitch to the NAT gateway.'."\n" - ."\n" - .'* To attach the NAT gateway to an existing vSwitch, make sure that the zone to which the vSwitch belongs supports NAT gateways. In addition, the vSwitch must have idle IP addresses.'."\n" - .'* If no vSwitch exists in the VPC, create a vSwitch in a zone that supports NAT gateways. Then, specify the vSwitch for the NAT gateway.'."\n" - ."\n" - .'> You can call the [ListEnhanhcedNatGatewayAvailableZones](~~182292~~) operation to query zones that support NAT gateways. You can call the [DescribeVSwitches](~~35748~~) operation to query idle IP addresses in a vSwitch.', - 'type' => 'string', - 'required' => false, - 'docRequired' => true, - 'example' => 'vsw-bp1e3se98n9fq8hle****', - ], + 'allowEmptyValue' => true, + 'schema' => ['description' => 'The language to display the results. Valid values:'."\n" + ."\n" + .'* **zh-CN** (default): Chinese'."\n" + .'* **en-US**: English'."\n", 'type' => 'string', 'required' => false, 'example' => 'zh-CN', 'default' => 'zh-CN', 'title' => ''], ], [ - 'name' => 'NatType', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The type of NAT gateway. Set the value to **Enhanced**, which specifies enhanced NAT gateway.', - 'type' => 'string', - 'required' => false, - 'docRequired' => true, - 'example' => 'Enhanced', - ], + 'schema' => ['description' => 'The ID of the region that you want to query.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n" + ."\n" + .'In this example, zones that support NAT gateways in the UAE (Dubai) region are queried.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'me-east-1', 'title' => ''], ], [ - 'name' => 'InternetChargeType', + 'name' => 'Filter', 'in' => 'query', + 'allowEmptyValue' => true, + 'style' => 'flat', 'schema' => [ - 'description' => 'The metering method of the NAT gateway. Set the value to **PayByLcu**, which specifies the pay-by-CU metering method.'."\n", - 'type' => 'string', + 'description' => 'The filter information. You can specify a filter key and a filter value.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => 'The filter key. Only **PrivateLinkEnabled** is supported.'."\n", 'type' => 'string', 'required' => false, 'example' => 'PrivateLinkEnabled', 'title' => ''], + 'Value' => ['description' => 'The value of the filter key.'."\n" + ."\n" + .'> If the filter key is set to **PrivateLinkEnabled**, you must specify a filter value. Valid values: **true** and **false**.'."\n", 'type' => 'string', 'required' => false, 'example' => 'true', 'title' => ''], + ], + 'required' => false, + 'description' => '', + 'title' => '', + 'example' => '', + ], 'required' => false, - 'example' => 'PayByLcu', + 'title' => '', + 'example' => '', ], ], - [ - 'name' => 'NetworkType', - 'in' => 'query', + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => 'The network type of the NAT gateway. Valid values:'."\n" - ."\n" - .'* **internet**: Internet'."\n" - .'* **intranet**: VPC'."\n", - 'type' => 'string', - 'required' => false, - 'docRequired' => false, - 'example' => 'internet', + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => '8AE6F367-52EA-535D-9A3D-EF23D70527C8', 'title' => ''], + 'Zones' => [ + 'description' => 'The list of zones.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'ZoneId' => ['description' => 'The ID of the zone where the instance is deployed.'."\n", 'type' => 'string', 'example' => 'me-east-1a', 'title' => ''], + 'LocalName' => ['description' => 'The name of the zone.'."\n", 'type' => 'string', 'example' => '中东1 可用区A', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + ], + 'title' => '', + 'example' => '', ], ], + ], + 'errorCodes' => [ + 404 => [ + ['errorCode' => 'InvalidRegionId.NotFound', 'errorMessage' => 'The specified RegionId does not exist in our records.', 'description' => ''], + ], + ], + 'title' => 'ListEnhanhcedNatGatewayAvailableZones', + 'summary' => 'Queries the zones that support NAT gateways.', + 'description' => 'You can call this operation to query zones that support NAT gateways, including Internet NAT gateways and Virtual Private Cloud (VPC) NAT gateways.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2023-12-26T01:51:36.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2023-10-17T03:50:15.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2023-03-01T06:45:55.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2022-04-29T10:02:25.000Z', 'description' => 'Request parameters changed'], + ], + 'ramActions' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"8AE6F367-52EA-535D-9A3D-EF23D70527C8\\",\\n \\"Zones\\": [\\n {\\n \\"ZoneId\\": \\"me-east-1a\\",\\n \\"LocalName\\": \\"中东1 可用区A\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"","errorExample":""}]', + ], + 'ListFullNatEntries' => [ + 'methods' => ['post'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free'], + 'parameters' => [ [ - 'name' => 'SecurityProtectionEnabled', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to enable the firewall feature. Valid values:'."\n" - ."\n" - .'* **false** (default)>This parameter is deprecated.>', - 'type' => 'boolean', - 'deprecated' => true, - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'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.'."\n" + ."\n" + .'> 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.'."\n", 'type' => 'string', 'required' => false, 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3FF3898', 'title' => ''], ], [ - 'name' => 'IcmpReplyEnabled', + 'name' => 'FullNatTableId', 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to enable ICMP retrieval. Valid values:'."\n" - ."\n" - .'* **true** (default)'."\n" - .'* **false**'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], + 'schema' => ['description' => 'The ID of the FULLNAT table to which the FULLNAT entries to be queried belong.'."\n" + ."\n" + .'> You must specify at least one of **FullNatTableId** and **NatGatewayId**.'."\n", 'type' => 'string', 'required' => false, 'example' => 'fulltb-gw88z7hhlv43rmb26****', 'title' => ''], ], [ - 'name' => 'PrivateLinkEnabled', + 'name' => 'FullNatEntryId', 'in' => 'query', - 'schema' => [ - 'title' => '默认不支持私网链接。设置为true则意味着支持私网链接', - 'description' => 'PrivateLink is not supported by default. If you set the value to true, PrivateLink is supported.', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['description' => 'The ID of the FULLNAT entry that you want to query.'."\n", 'type' => 'string', 'required' => false, 'example' => 'fullnat-gw8fz23jezpbblf1j****', 'title' => ''], ], [ - 'name' => 'EipBindMode', + 'name' => 'FullNatEntryNames', 'in' => 'query', - 'allowEmptyValue' => false, + 'style' => 'repeatList', 'schema' => [ - 'title' => 'NAT:NAT模式,支持SNAT/访问DANT,最多支持绑定50个EIP,支持ingress routing;'."\n" - .'MULTI_BINDED:多EIP网卡可见模式。', - 'description' => 'The mode in which the EIP is associated with the NAT gateway. Valid values:'."\n" - ."\n" - .'- **MULTI_BINDED**(default): the multi-EIP-to-ENI mode.'."\n" + 'description' => 'The name of the FULLNAT entry that you want to query. You can specify at most 20 names.'."\n" ."\n" - .'- **NAT**: NAT mode, which is compatible with IPv4 addresses.'."\n" + .'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.'."\n", + 'type' => 'array', + 'items' => ['description' => 'The name of the FULLNAT entry that you want to query. You can specify at most 20 names.'."\n" ."\n" - .'> If an EIP is associated with a NAT gateway in NAT mode, the EIP occupies a private IP address of the vSwitch where the NAT gateway is deployed. Make sure that the vSwitch has sufficient private IP addresses. Otherwise, EIPs cannot be associated with the NAT gateway. In NAT mode, a maximum number of 50 EIPs can be associated with each NAT gateway.', - 'type' => 'string', + .'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.'."\n", 'type' => 'string', 'required' => false, 'example' => 'test', 'title' => ''], 'required' => false, - 'example' => 'MULTI_BINDED', - 'default' => 'MULTI_BINDED', - 'enum' => [], + 'maxItems' => 10, + 'title' => '', + 'example' => '', ], ], [ - 'name' => 'Tag', + 'name' => 'NetworkInterfaceIds', 'in' => 'query', 'style' => 'repeatList', 'schema' => [ - 'description' => 'The tags.', + 'description' => 'The ID of the elastic network interface (ENI) that you want to query.'."\n", 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => 'The tag key. The format of Tag.N.Key when you call the operation. Valid values of N: 1 to 20. The tag key cannot be an empty string. The tag key can be up to 128 characters in length and cannot contain http:// or https://. The tag key cannot start with acs: or aliyun.', - 'type' => 'string', - 'required' => false, - 'example' => 'TestKey', - ], - 'Value' => [ - 'description' => 'The tag value. The format of Tag.N.Value when you call the operation. Valid values of N: 1 to 20. The tag key cannot be an empty string. The tag key can be up to 128 characters in length and cannot contain http:// or https://. The tag key cannot start with acs: or aliyun.', - 'type' => 'string', - 'required' => false, - 'example' => 'TestValue', - ], - ], - 'required' => false, - 'description' => '', - ], + 'items' => ['description' => 'The ID of the ENI that you want to query. You can specify up to 20 ENIs.'."\n", 'type' => 'string', 'required' => false, 'example' => 'eni-gw80wedm8pq0tpr2****', 'title' => ''], 'required' => false, - 'example' => 'MULTI_BINDED', - 'maxItems' => 21, + 'maxItems' => 10, + 'title' => '', + 'example' => '', ], ], [ - 'name' => 'AccessMode', + 'name' => 'NextToken', 'in' => 'query', - 'style' => 'json', - 'schema' => [ - 'description' => 'The access mode for reverse access to the VPC NAT gateway.', - 'type' => 'object', - 'properties' => [ - 'ModeValue' => [ - 'description' => 'Access mode. Valid values:'."\n" - ."\n" - .'- **route**: route mode'."\n" - ."\n" - .'- **tunnel**: tunnel mode'."\n" - ."\n" - .'> If this parameter is specified, you must set **PrivateLinkEnabled** to **true**.', - 'type' => 'string', - 'required' => false, - 'example' => 'route', - ], - 'TunnelType' => [ - 'description' => 'Tunnel mode type:'."\n" - ."\n" - .'- **geneve**: Geneve type'."\n" - ."\n" - .'> This value takes effect if the access mode is the tunnel mode.', - 'type' => 'string', - 'required' => false, - 'example' => 'geneve', - ], - ], - 'required' => false, - 'example' => 'MULTI_BINDED', - ], + 'schema' => ['description' => 'The pagination token that is used in the next request to retrieve a new page of results. Valid values:'."\n" + ."\n" + .'* You do not need to specify this parameter for the first request.'."\n" + .'* You must specify the token that is obtained from the previous query as the value of the **NextToken** parameter.'."\n", 'type' => 'string', 'required' => false, 'example' => 'caeba0bbb2be03f84eb48b699f0a4883', 'title' => ''], + ], + [ + 'name' => 'MaxResults', + 'in' => 'query', + 'schema' => ['description' => 'The number of entries per page. Valid values: **1** to **100**. Default value: **20**.'."\n", 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '20', 'title' => ''], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => ['description' => 'The region ID of the virtual private cloud (VPC) NAT gateway to which the FULLNAT entries to be queried belong.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'example' => 'eu-central-1', 'title' => ''], + ], + [ + 'name' => 'IpProtocol', + 'in' => 'query', + 'schema' => ['description' => 'The protocol of the packets that are forwarded by the port. Valid values:'."\n" + ."\n" + .'* **TCP**'."\n" + .'* **UDP**'."\n", 'type' => 'string', 'required' => false, 'example' => 'TCP', 'title' => ''], + ], + [ + 'name' => 'NatGatewayId', + 'in' => 'query', + 'schema' => ['description' => 'The ID of the NAT gateway.'."\n" + ."\n" + .'> You must specify at least one of **FullNatTableId** and **NatGatewayId**.'."\n", 'type' => 'string', 'required' => false, 'example' => 'ngw-bp1uewa15k4iy5770****', 'title' => ''], ], [ 'name' => 'NatIp', 'in' => 'query', - 'schema' => [ - 'description' => 'The private IP address occupied by the NAT gateway. Please use an unassigned IP from the subnet where the NAT is located. If left empty, an IP address will be randomly assigned.', - 'type' => 'string', - 'required' => false, - 'example' => '192.168.0.x', - ], + 'schema' => ['description' => 'The NAT IP address that provides address translation in FULLNAT entries.', 'type' => 'string', 'required' => false, 'example' => '10.0.XX.XX', 'title' => ''], ], [ - 'name' => 'Ipv4Prefix', + 'name' => 'NatIpPort', 'in' => 'query', - 'schema' => [ - 'description' => 'Create an IP prefix address segment for batch creation of NAT IPs. Please use the reserved and unallocated network segments in the VSwitch where the NAT is located.', - 'type' => 'string', - 'required' => false, - 'example' => '192.168.0.0/28', - ], + 'schema' => ['description' => 'The frontend port to be modified in the mapping of FULLNAT port. Valid values: **1** to **65535**.', 'type' => 'string', 'required' => false, 'example' => '443', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => 'The response parameters.', + 'title' => 'Schema of Response', + 'description' => 'The request ID.'."\n", 'type' => 'object', 'properties' => [ - 'NatGatewayId' => [ - 'description' => 'The ID of the NAT gateway.'."\n", - 'type' => 'string', - 'example' => 'ngw-112za33e4****', - ], - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '2315DEB7-5E92-423A-91F7-4C1EC9AD97C3', - ], - 'ForwardTableIds' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'ForwardTableId' => [ - 'description' => 'A list of DNAT entries.', - 'type' => 'array', - 'items' => [ - 'description' => 'A list of DNAT entries.', - 'type' => 'string', - 'example' => 'ftb-11tc6xgmv****', - ], - ], - ], - ], - 'SnatTableIds' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'SnatTableId' => [ - 'description' => 'A list of SNAT entries.', - 'type' => 'array', - 'items' => [ - 'description' => 'A list of SNAT entries.', - 'type' => 'string', - 'example' => 'stb-SnatTableIds****', - ], - ], - ], - ], - 'FullNatTableIds' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'FullNatTableId' => [ - 'description' => 'A list of FULLNAT entries.', - 'type' => 'array', - 'items' => [ - 'description' => 'A list of FULLNAT entries.', - 'type' => 'string', - 'example' => 'fulltb-gw88z7hhlv43rmb26****', - ], + 'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.'."\n", 'type' => 'string', 'example' => 'F03E41F6-1A74-311F-8D98-124EEE9F37B8'], + 'NatGatewayId' => ['description' => 'The ID of the VPC NAT gateway.'."\n", 'type' => 'string', 'example' => 'ngw-gw8054kn57y3hq3bv****', 'title' => ''], + 'FullNatTableId' => ['description' => 'The ID of the FULLNAT table to which the queried FULLNAT entries belong.'."\n", 'type' => 'string', 'example' => 'fullnat-gw8fz23jezpbblf1j****', 'title' => ''], + 'TotalCount' => ['description' => 'The number of FULLNAT entries returned.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '1', 'title' => ''], + 'NextToken' => ['description' => 'Indicates whether the token for the next query exists. Valid values:'."\n" + ."\n" + .'* If the value of **NextToken** is empty, no next queries are sent.'."\n" + .'* If the value of **NextToken** is returned, the value indicates the token that is used for the next query.'."\n", 'type' => 'string', 'example' => 'caeba0bbb2be03f84eb48b699f0a4883', 'title' => ''], + 'MaxResults' => ['description' => 'The maximum number of entries returned.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '1', 'title' => ''], + 'FullNatEntries' => [ + 'description' => 'The information about the FULLNAT entries that are queried.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'NatIp' => ['description' => 'The NAT IP address that is used for address translation in FULLNAT entries.'."\n", 'type' => 'string', 'title' => '', 'example' => '192.168.XX.XX'], + 'NatIpPort' => ['description' => 'The frontend port that is used for port mapping in FULLNAT entries. Valid values: **1** to **65535**.'."\n", 'type' => 'string', 'title' => '', 'example' => '80'], + 'AccessIp' => ['description' => 'The backend IP address that is used for FULLNAT address translation in FULLNAT entries.'."\n", 'type' => 'string', 'title' => '', 'example' => '192.168.XX.XX'], + 'AccessPort' => ['description' => 'The backend port that is used for port mapping in FULLNAT entries. Valid values: **1** to **65535**.'."\n", 'type' => 'string', 'title' => '', 'example' => '80'], + 'IpProtocol' => ['description' => 'The protocol of the packets that are forwarded. Valid values:'."\n" + ."\n" + .'* **TCP**'."\n" + .'* **UDP**'."\n", 'type' => 'string', 'title' => '', 'example' => 'TCP'], + 'NetworkInterfaceId' => ['description' => 'The ID of the elastic network interface (ENI).'."\n", 'type' => 'string', 'title' => '', 'example' => 'eni-gw80wedm8pq0tpr2****'], + 'NetworkInterfaceType' => ['description' => 'The type of the ENI. The value is set to **Endpoint**, which indicates a reverse endpoint.'."\n", 'type' => 'string', 'title' => '', 'example' => 'Endpoint'], + 'FullNatEntryName' => ['description' => 'The name of the FULLNAT entry.'."\n" + ."\n" + .'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.'."\n", 'type' => 'string', 'title' => '', 'example' => 'test'], + 'FullNatEntryDescription' => ['description' => 'The description of the FULLNAT entry.'."\n" + ."\n" + .'The name must be 2 to 128 characters in length. It must start with a letter but cannot start with `http://` or `https://`.'."\n", 'type' => 'string', 'example' => 'abc', 'title' => ''], + 'CreationTime' => ['description' => 'The time when the FULLNAT entry was created.'."\n", 'type' => 'string', 'example' => '2021-10-27T02:44:40Z', 'title' => ''], + 'FullNatEntryId' => ['description' => 'The ID of the FULLNAT entry.'."\n", 'type' => 'string', 'example' => 'fullnat-gw8fz23jezpbblf1j****', 'title' => ''], + 'FullNatEntryStatus' => ['description' => 'The status of the FULLNAT entry. Valid values:'."\n" + ."\n" + .'* **Pending**'."\n" + .'* **Available**'."\n" + .'* **Deleting**'."\n" + .'* **Deleted**'."\n", 'type' => 'string', 'example' => 'Available', 'title' => ''], + 'FullNatTableId' => ['description' => 'The ID of the FULLNAT table to which the FULLNAT entry belongs.'."\n", 'type' => 'string', 'example' => 'fulltb-gw88z7hhlv43rmb26****', 'title' => ''], + 'AccessDomain' => ['description' => 'The backend domain name for FULLNAT address translation in a FULLNAT entry.', 'type' => 'string', 'example' => 'xxx.com', 'title' => ''], + 'DomainResolve' => ['description' => 'The IP resolved from the backend domain name for address translation in the FULLNAT entry.', 'type' => 'string', 'example' => '192.168.XX.XX', 'title' => ''], ], + 'title' => '', + 'example' => '', ], + 'title' => '', + 'example' => '', ], ], + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'Forbidden.NatPayBySpec', - 'errorMessage' => 'Pay-by-specification NAT is no longer supported. Newly purchased pay-as-you-go NAT gateways only support the pay-by-CU metering method.', - ], - [ - 'errorCode' => 'DependencyViolation.FullNatEntry', - 'errorMessage' => 'The specified resource of %s depends on %s, so the operation cannot be completed.', - ], - [ - 'errorCode' => 'UnsupportedFeature.InternetChargeType', - 'errorMessage' => 'The feature of InternetChargeType is not supported.', - ], - [ - 'errorCode' => 'InvalidVPCStatus', - 'errorMessage' => 'vpc incorrect status.', - ], - [ - 'errorCode' => 'InvalidNatGatewayName.MalFormed', - 'errorMessage' => 'NatGateway name is not valid.', - ], - [ - 'errorCode' => 'InvalidNatGatewayDescription.MalFormed', - 'errorMessage' => 'NatGateway description is not valid.', - ], - [ - 'errorCode' => 'MissingParameter.BandwidthPackage', - 'errorMessage' => 'only support one BandwidthPackage be created with NatGateway.', - ], - [ - 'errorCode' => 'OperationDenied', - 'errorMessage' => 'The user cannot allow to create natgw, please call PD to authorize', - ], - [ - 'errorCode' => 'RouterEntryConflict.Duplicated', - 'errorMessage' => 'A route entry already exists, which CIDR is \'0.0.0.0/0\'', - ], - [ - 'errorCode' => 'MissingParameter', - 'errorMessage' => 'Miss mandatory parameter.', - ], - [ - 'errorCode' => 'QuotaExceeded.BandwidthPackageIps', - 'errorMessage' => 'The specified ipCount exceeded quota.', - ], - [ - 'errorCode' => 'AllocateIpFailed', - 'errorMessage' => 'Alloc bandwidthPackage ips failed, maybe no available ip.', - ], - [ - 'errorCode' => 'InvalidParameter.Name.Malformed', - 'errorMessage' => 'The specified Name is not valid.', - ], - [ - 'errorCode' => 'InvalidParameter.Description.Malformed', - 'errorMessage' => 'The specified Description is not valid.', - ], - [ - 'errorCode' => 'ZONE_NO_AVAILABLE_IP', - 'errorMessage' => 'The Zone have no available ip.', - ], - [ - 'errorCode' => 'ParameterIllegal', - 'errorMessage' => 'ipCount,bandwidth parameter invalid', - ], - [ - 'errorCode' => 'InvalidParameter.BandwidthPackage.n.ISP.ValueNotSupport', - 'errorMessage' => 'The specified ISP of BandwidthPackage is not valid.', - ], - [ - 'errorCode' => 'InvalidNatGatewayId.NotFound', - 'errorMessage' => 'The NatGatewayId not exist.', - ], - [ - 'errorCode' => 'VpcStatusError', - 'errorMessage' => 'The Vpc is creating .', - ], - [ - 'errorCode' => 'InvalidParameter.Spec.ValueNotSupported', - 'errorMessage' => 'The specified Spec is not valid.', - ], - [ - 'errorCode' => 'TaskConflict', - 'errorMessage' => 'The operation is too frequent, TaskConflict.', - ], - [ - 'errorCode' => 'COMMODITY.INVALID_COMPONENT', - 'errorMessage' => 'The instance component is invalid.', - ], - [ - 'errorCode' => 'CreateNatGateway.RouteConflict.DynamicRoute', - 'errorMessage' => 'Route conflict exists in routing table.', - ], - [ - 'errorCode' => 'OperationUnsupported.MultiNatGateway', - 'errorMessage' => 'More than one natGateway per vpc is unsupported.', - ], - [ - 'errorCode' => 'Forbidden.CheckEntryRuleQuota', - 'errorMessage' => 'Route entry quota rule check error.', - ], - [ - 'errorCode' => 'OperationFailed.UnpaidBillsExist', - 'errorMessage' => 'The account has unpaid bills. Please pay your overdue bill first.', - ], - [ - 'errorCode' => 'IncorrectStatus.RouteEntry', - 'errorMessage' => 'Specified routeEntry status error.', - ], - [ - 'errorCode' => 'OperationFailed.RiskControl', - 'errorMessage' => 'Risk control check failed.', - ], - [ - 'errorCode' => 'OperationFailed.TokenVerfiy', - 'errorMessage' => 'Token verify failed.', - ], - [ - 'errorCode' => 'IllegalParam.Name', - 'errorMessage' => 'The specified Name is invalid, shorter than 2 characters.', - ], - [ - 'errorCode' => 'OperationFailed.EnhancedQuotaExceed', - 'errorMessage' => 'Enhanced nat gateway per vpc quota is exceeded', - ], - [ - 'errorCode' => 'NoPermission.CreateServiceLinkedRole', - 'errorMessage' => 'You are not authorized to create service linked role', - ], - [ - 'errorCode' => 'OperationFailed.EnhancedInventoryNotEnough', - 'errorMessage' => 'Operation failed because inventory is not enough.', - ], - [ - 'errorCode' => 'OperationFailed.VswNotBelongToVpc', - 'errorMessage' => 'Operation failed because the specified VSwitch is not bound to the same VPC with NAT gateway.', - ], - [ - 'errorCode' => 'OperationFailed.EnhancedUserIsUnAuthorized', - 'errorMessage' => 'Operation failed because the user is not authorized to create an enhanced NAT gateway.', - ], - [ - 'errorCode' => 'OperationUnsupported.PrePaidPyByLcu', - 'errorMessage' => 'The operation failed because the subscription NAT gateway does not support the pay-by-LCU billing method.', - ], - [ - 'errorCode' => 'OperationFailed.NormalInventoryNotEnough', - 'errorMessage' => 'Standard NAT gateways are no longer offered. You can create enhanced NAT gateways and set the correct natType.', - ], - [ - 'errorCode' => 'OperationFailed.VSwitchNoAvailableIp', - 'errorMessage' => 'Operation failed because the specified vswitch does not have availabe ip.', - ], - [ - 'errorCode' => 'UnsupportedFeature.IcmpReplyEnabled', - 'errorMessage' => 'The feature of IcmpReplyEnabled is not supported.', - ], - [ - 'errorCode' => 'UnsupportedFeature.SecurityProtectionEnabled', - 'errorMessage' => 'The feature of SecurityProtectionEnabled is not supported.', - ], - [ - 'errorCode' => 'OperationFailed.RegionConvert', - 'errorMessage' => 'Operation failed because do not find region info.', - ], - [ - 'errorCode' => 'UnsupportedFeature.VpcNat', - 'errorMessage' => 'The feature of VpcNat is not supported.', - ], - [ - 'errorCode' => 'InvalidVSWITCHID.NotFound', - 'errorMessage' => 'The specified resource of %s is not found.', - ], - [ - 'errorCode' => 'Forbidden.OperateShareResource', - 'errorMessage' => 'Operate share resource is forbidden.', - ], - [ - 'errorCode' => 'IncorrectStatus.VSWITCH', - 'errorMessage' => 'The status of VSWITCH is incorrect.', - ], - [ - 'errorCode' => 'OperationFailed.VpcNatGatewayInventoryNotEnough', - 'errorMessage' => 'The operation is failed because of inventory is not enough.', - ], - [ - 'errorCode' => 'OperationFailed.VpcNatGatewayCheckInventory', - 'errorMessage' => 'The operation is failed because of check inventory result is unexpected', - ], - [ - 'errorCode' => 'ExclusiveParam.%sAnd%s', - 'errorMessage' => 'The param of %s and %s are mutually exclusive.', - ], - [ - 'errorCode' => 'SecurityGroupType.NotSupported', - 'errorMessage' => 'The specified security group type is not supported.', - ], - [ - 'errorCode' => 'SecurityGroup.NotExist', - 'errorMessage' => 'The specified security group is not exist.', - ], - [ - 'errorCode' => 'OperationFailed.ContainForbiddenLabel', - 'errorMessage' => 'There is a label that prohibits ordering, please contact your distributor for processing.', - ], - [ - 'errorCode' => 'OperationDenied.PrePaidInstance', - 'errorMessage' => 'The operation is not allowed because prepaid instance is no longer supported.', - ], - [ - 'errorCode' => 'UnsupportedFeature.Geneve', - 'errorMessage' => 'The feature of Geneve is not supported.', - ], - [ - 'errorCode' => 'OperationFailed.NoAvailableResource', - 'errorMessage' => 'The Zone have no available resource.', - ], - [ - 'errorCode' => 'ExclusiveParam.AccessModeValueAndAccessTunnelType', - 'errorMessage' => 'The specified param AccessModeValue and AccessTunnelType are mutually exclusive.', - ], - [ - 'errorCode' => 'ExclusiveParam.PrivateLinkModeAndAccessMode', - 'errorMessage' => 'The specified param PrivateLinkMode and AccessMode are mutually exclusive.', - ], - [ - 'errorCode' => 'ExclusiveParam.PrivateLinkEnabledAndAccessMode', - 'errorMessage' => 'The specified paramPrivateLinkEnabled and AccessMode are mutually exclusive.', - ], - [ - 'errorCode' => 'UnsupportedFeature.AccessModeValue', - 'errorMessage' => 'The feature of AccessMode.ModeValue(%s) is not supported.', - ], - [ - 'errorCode' => 'IllegalParam.AccessTunnelType', - 'errorMessage' => 'The request parameter AccessMode.TunnelType is illegal.', - ], - [ - 'errorCode' => 'IllegalParam.AccessModeValue', - 'errorMessage' => 'The request parameter AccessMode.ModeValue is illegal.', - ], - [ - 'errorCode' => 'OperationFailed.VSwitchStatusError', - 'errorMessage' => 'The vSwitch is creating .', - ], - [ - 'errorCode' => 'UnsupportedFeature.PrivateLinkMode', - 'errorMessage' => 'The feature of %s is not supported.', - ], - [ - 'errorCode' => 'OperationFailed.EcsNetworkInterfaceQuotaNotSatisfy', - 'errorMessage' => 'ECS network interface quota is not satisfy.', - ], - [ - 'errorCode' => 'OperationFailed.NoNameAuthentication', - 'errorMessage' => 'You have not passed the real name authentication and do not meet the purchase conditions. Please log in to the user center for real-name authentication.', - ], - [ - 'errorCode' => 'Mismatch.NatIpAndNatIpCidr', - 'errorMessage' => 'The %s and %s are mismatched.', - ], - [ - 'errorCode' => 'Mismatch.Ipv4PrefixAndNatIpCidr', - 'errorMessage' => 'The %s and %s are mismatched.', - ], - [ - 'errorCode' => 'ResourceAlreadyExist.NatIp', - 'errorMessage' => 'The specified resource of NatIp has already exist.', - ], - [ - 'errorCode' => 'Mismatch.Ipv4PrefixAndCidrReservations', - 'errorMessage' => 'The %s and %s are mismatched.', - ], - [ - 'errorCode' => 'ResourceAlreadyAssociated.Ipv4Prefix', - 'errorMessage' => '%s is already associated.', - ], - [ - 'errorCode' => 'ResourceNotEnough.Ipv4Prefix', - 'errorMessage' => 'The resource of %s is not enough.', - ], - [ - 'errorCode' => 'ResourceNotFound.Ipv4Prefix', - 'errorMessage' => 'The resource of s% is not found.', - ], - [ - 'errorCode' => 'ResourceAlreadyAssociated.NatIp', - 'errorMessage' => 'The resource of %s was already associated.', - ], - [ - 'errorCode' => 'ResourceNotEnough.NatIp', - 'errorMessage' => 'The specified resource of NatIp is not enough.', - ], - [ - 'errorCode' => 'ResourceNotFound.NatIp', - 'errorMessage' => 'The specified resource of %s is not found.', - ], - [ - 'errorCode' => 'IllegalParam.Ipv4Prefix', - 'errorMessage' => 'The param of %s is illegal, must be /28 network segment.', - ], - [ - 'errorCode' => 'IllegalParam.NatIp', - 'errorMessage' => 'The param of %s is illegal.', - ], - [ - 'errorCode' => 'OperationUnsupported.EnhancedRegion', - 'errorMessage' => 'Region not support.', - ], - [ - 'errorCode' => 'IncorrectStatus.RouteTableStatus', - 'errorMessage' => 'The route table status is invaild. Please try again later.', - ], - [ - 'errorCode' => 'OperationUnsupported.User', - 'errorMessage' => 'The current user does not support this operation.', - ], - [ - 'errorCode' => 'OperationUnsupported.EnhancedCURegion', - 'errorMessage' => 'Operation failed because of this region not unsupported.', - ], - [ - 'errorCode' => 'OrderError.NoAvailablePaymentMethod', - 'errorMessage' => 'Order payment parameter is not available.', - ], - [ - 'errorCode' => 'OrderError.BasicInfoUncompleted', - 'errorMessage' => 'Order basic parameter is not completed.', - ], - [ - 'errorCode' => 'OperationUnsupported.Region', - 'errorMessage' => 'Operation unsupport this region parameter.', - ], - ], - 404 => [ - [ - 'errorCode' => 'InvalidRegionId.NotFound', - 'errorMessage' => 'The specified RegionId does not exist in our records.', - ], - [ - 'errorCode' => 'InvalidVpcId.NotFound', - 'errorMessage' => 'Specified value of VpcId is not found in our record.', - ], - [ - 'errorCode' => 'InvalidZoneId.NotFound', - 'errorMessage' => 'Specified value of ZoneId is not exists.', - ], - [ - 'errorCode' => 'VPC_ONLY_CAN_CREATE_ONE_NAT_GATEWAY', - 'errorMessage' => 'NatGateway in one vpc support only one.', - ], - [ - 'errorCode' => 'OperationFailed.CrateEntryTimeOut', - 'errorMessage' => 'Operation failed because create custom routeEntry timeout.', - ], - [ - 'errorCode' => 'Forbidden.CreateSpecialSpecNatGateway', - 'errorMessage' => 'You are not authorized to create special spec nat gateway.', - ], - [ - 'errorCode' => 'UnsupportedZoneForFwNat', - 'errorMessage' => 'The zone is unsupported for FW NAT.', - ], - ], - 500 => [ - [ - 'errorCode' => 'OrderError.NatGateway', - 'errorMessage' => 'The Account failed to create order.', - ], - [ - 'errorCode' => 'OperationFailed.AccessTunnelId', - 'errorMessage' => 'AccessTunnelId param do operation failed.', - ], - [ - 'errorCode' => 'OperationFailed.EnhancedCheckInventory', - 'errorMessage' => 'The NAT gateway in the current zone is not in service, or the resource inventory is insufficient.', - ], + ['errorCode' => 'ResourceNotFound.FullNatTableId', 'errorMessage' => 'The specified resource of %s is not found.', 'description' => ''], + ['errorCode' => 'MissingParam.FullnatTableIdOrNatGatewayId', 'errorMessage' => 'FullnatTableId and natGatewayId can not both be null', 'description' => 'FullnatTableId and natGatewayId cannot be empty at the same time.'], + ['errorCode' => 'ResourceNotFound.FullNatTable', 'errorMessage' => 'The NAT gateway has no full nat table.', 'description' => ''], + ['errorCode' => 'NATGW_NOT_EXIST', 'errorMessage' => 'The specified NAT gateway does not exist.', 'description' => 'The specified NAT gateway does not exist.'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"NatGatewayId\\": \\"ngw-112za33e4****\\",\\n \\"RequestId\\": \\"2315DEB7-5E92-423A-91F7-4C1EC9AD97C3\\",\\n \\"ForwardTableIds\\": {\\n \\"ForwardTableId\\": [\\n \\"ftb-11tc6xgmv****\\"\\n ]\\n },\\n \\"SnatTableIds\\": {\\n \\"SnatTableId\\": [\\n \\"stb-SnatTableIds****\\"\\n ]\\n },\\n \\"FullNatTableIds\\": {\\n \\"FullNatTableId\\": [\\n \\"fulltb-gw88z7hhlv43rmb26****\\"\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n ngw-112za33e4****\\n 2315DEB7-5E92-423A-91F7-4C1EC9AD97C3\\n ftb-11tc6xgmv****\\n stb-SnatTableIds****\\n fulltb-gw88z7hhlv43rmb26****\\n","errorExample":""}]', - 'title' => 'CreateNatGateway', - 'description' => '## Usage notes'."\n" - ."\n" - .'Before you call this operation, take note of the following items:'."\n" - ."\n" - .'* When you create an enhanced NAT gateway for the first time, the system automatically creates the service-linked role AliyunServiceRoleForNatgw. Then, the system attaches the permission policy AliyunServiceRolePolicyForNatgw to the role. This allows the NAT gateway to access other resources on Alibaba Cloud. For more information, see [Service-linked roles](~~174251~~).'."\n" - ."\n" - .'* After you create an enhanced Internet NAT gateway, a route entry is automatically added to the route table of the VPC. The destination CIDR block of the route entry is 0.0.0.0/0 and the next hop is the NAT gateway. This ensures that traffic is routed to the NAT gateway.'."\n" - ."\n" - .'* **CreateNatGateway** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call the [DescribeNatGateways](~~36054~~) operation to query the status of the task.'."\n" - ."\n" - .' * If a NAT gateway is in the **Creating** state, the NAT gateway is being created. In this case, you can query the NAT gateway but cannot perform other operations.'."\n" - ."\n" - .' * If a NAT gateway is in the **Available** state, the NAT gateway is created.'."\n" - ."\n" - .'It takes 1 to 3 minutes to create a NAT gateway.', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - 'translator' => 'machine', + 'title' => 'ListFullNatEntries', + 'summary' => 'Queries FULLNAT entries.', + 'changeSet' => [ + ['createdAt' => '2024-12-03T02:23:00.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-12-20T02:00:23.000Z', 'description' => 'Request parameters changed, Response parameters changed'], + ['createdAt' => '2023-01-04T09:37:43.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2022-12-16T06:14:15.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2022-11-29T07:14:13.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2022-09-23T02:25:58.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2022-06-20T02:20:45.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2021-10-15T06:08:26.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2021-10-15T06:08:26.000Z', 'description' => 'Request parameters changed'], + ], + 'ramActions' => [], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"F03E41F6-1A74-311F-8D98-124EEE9F37B8\\",\\n \\"NatGatewayId\\": \\"ngw-gw8054kn57y3hq3bv****\\",\\n \\"FullNatTableId\\": \\"fullnat-gw8fz23jezpbblf1j****\\",\\n \\"TotalCount\\": 1,\\n \\"NextToken\\": \\"caeba0bbb2be03f84eb48b699f0a4883\\",\\n \\"MaxResults\\": 1,\\n \\"FullNatEntries\\": [\\n {\\n \\"NatIp\\": \\"192.168.XX.XX\\",\\n \\"NatIpPort\\": \\"80\\",\\n \\"AccessIp\\": \\"192.168.XX.XX\\",\\n \\"AccessPort\\": \\"80\\",\\n \\"IpProtocol\\": \\"TCP\\",\\n \\"NetworkInterfaceId\\": \\"eni-gw80wedm8pq0tpr2****\\",\\n \\"NetworkInterfaceType\\": \\"Endpoint\\",\\n \\"FullNatEntryName\\": \\"test\\",\\n \\"FullNatEntryDescription\\": \\"abc\\",\\n \\"CreationTime\\": \\"2021-10-27T02:44:40Z\\",\\n \\"FullNatEntryId\\": \\"fullnat-gw8fz23jezpbblf1j****\\",\\n \\"FullNatEntryStatus\\": \\"Available\\",\\n \\"FullNatTableId\\": \\"fulltb-gw88z7hhlv43rmb26****\\",\\n \\"AccessDomain\\": \\"xxx.com\\",\\n \\"DomainResolve\\": \\"192.168.XX.XX\\"\\n }\\n ]\\n}","type":"json"}]', + 'translator' => 'manual', ], - 'DeleteNatGateway' => [ - 'summary' => 'Deletes a specified Internet NAT gateway.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'ListGatewayRouteTableEntries' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', - 'systemTags' => [ - 'operationType' => 'delete', - 'riskType' => 'none', - 'chargeType' => 'free', - ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'list', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the NAT gateway.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The region ID of the gateway route table that you want to query.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'ap-southeast-6', 'title' => ''], ], [ - 'name' => 'NatGatewayId', + 'name' => 'MaxResults', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the NAT gateway that you want to delete.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'ngw-bp1uewa15k4iy5770****', - ], + 'schema' => ['description' => 'The number of entries per page for a paged query. Valid values: **1** to **100**. Default value: **10**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '10', 'title' => ''], ], [ - 'name' => 'Force', + 'name' => 'NextToken', 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to forcefully delete the NAT gateway. Valid values:'."\n" - ."\n" - .'* **true** If you set the value to **true**:'."\n" - ."\n" - .' * If the NAT gateway has SNAT entries, the system automatically deletes them.'."\n" - .' * If the NAT gateway has DNAT entries, the system automatically deletes them.'."\n" - .' * If the NAT gateway is associated with an elastic IP address (EIP), the system automatically disassociates the EIP from the NAT gateway.'."\n" - .' * If the NAT gateway is associated with a NAT bandwidth plan, the system automatically disassociates the NAT bandwidth plan.'."\n" - ."\n" - .'* **false**(default): no If you set the value to **false**:'."\n" - ."\n" - .' * If the NAT gateway is associated with a NAT bandwidth plan, disassociate the NAT bandwidth plan first.'."\n" - .' * If the NAT gateway has SNAT entries, delete them first.'."\n" - .' * If the NAT gateway has DNAT entries, delete them first.'."\n" - .' * If the NAT gateway is associated with an EIP, disassociate the EIP from the NAT gateway first.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['description' => 'The pagination token that is used in the next request to retrieve a new page of results. Valid values:'."\n" + .'- You do not need to specify this parameter for the first request or if no subsequent query exists.'."\n" + .'- If a next query exists, set the value to the NextToken value returned in the previous API call.', 'type' => 'string', 'required' => false, 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', 'title' => ''], + ], + [ + 'name' => 'GatewayRouteTableId', + 'in' => 'query', + 'schema' => ['description' => 'The ID of the gateway route table to query.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'vtb-5ts0ohchwkp3dydt2****', 'title' => ''], + ], + [ + 'name' => 'DestinationCidrBlock', + 'in' => 'query', + 'schema' => ['description' => 'The destination CIDR block of the route entry in the gateway route table to query.', 'type' => 'string', 'required' => false, 'example' => '192.168.0.5', 'title' => ''], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => ['description' => 'The region ID of the gateway route table that you want to query.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'ap-southeast-6', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => 'The request ID.'."\n", + 'description' => 'The gateway route table information.', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '0ED8D006-F706-4D23-88ED-E11ED28DCAC0', + 'NextToken' => ['description' => 'The pagination token that is used in the next request to retrieve a new page of results. Valid values:'."\n" + .'- If **NextToken** is empty, no next query exists.'."\n" + .'- If **NextToken** is returned, the value indicates the token for the next query.', 'type' => 'string', 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '0ED8D006-F706-4D23-88ED-E11ED28DCAC0', 'title' => ''], + 'TotalCount' => ['description' => 'The total number of entries returned.', 'type' => 'string', 'example' => '1', 'title' => ''], + 'GatewayRouteEntryModels' => [ + 'description' => 'The details of the route entries in the gateway route table.', + 'type' => 'array', + 'items' => [ + 'description' => 'The details of the route entries in the gateway route table.', + 'type' => 'object', + 'properties' => [ + 'Status' => ['description' => 'The status of the route entry.'."\n" + ."\n" + .'- **Pending**: being configured.'."\n" + .'- **Available**: available.'."\n" + .'- **Modifying**: being modified.', 'type' => 'string', 'example' => 'Available', 'title' => ''], + 'NextHopId' => ['description' => 'The instance ID of the next hop.', 'type' => 'string', 'example' => 'i-bp11gcl0sm85t9bi****', 'title' => ''], + 'Description' => ['description' => 'The description of the route entry.', 'type' => 'string', 'example' => 'test', 'title' => ''], + 'NextHopType' => ['description' => 'The next hop type. Valid values:'."\n" + ."\n" + .'- **EcsInstance**: ECS instance.'."\n" + .'- **NetworkInterface**: elastic network interface controller (NIC).'."\n" + .'- **Local**: local.', 'type' => 'string', 'example' => 'EcsInstance', 'title' => ''], + 'DestinationCidrBlock' => ['description' => 'The destination CIDR block of the route entry.', 'type' => 'string', 'example' => '192.168.0.5', 'title' => ''], + 'Name' => ['description' => 'The name of the route entry.'."\n" + ."\n" + .'The name must be 2 to 128 characters in length and must start with a letter or a Chinese character. It can contain digits, periods (.), underscores (_), and hyphens (-).', 'type' => 'string', 'example' => 'name', 'title' => ''], + 'NextHops' => [ + 'description' => 'The next hop information.', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'NextHopId' => ['description' => 'The instance ID of the next hop.', 'type' => 'string', 'example' => 'vpn-bp10zyaph5cc8b7c7****', 'title' => ''], + 'NextHopType' => ['description' => 'The next hop type. Valid values:'."\n" + ."\n" + .'- **Instance** (default): ECS instance.'."\n" + .'- **HaVip**: high-availability virtual IP address.'."\n" + .'- **VpnGateway**: VPN gateway.'."\n" + .'- **NatGateway**: NAT gateway.'."\n" + .'- **NetworkInterface**: secondary elastic network interface (ENI).'."\n" + .'- **RouterInterface**: routing interface.'."\n" + .'- **IPv6Gateway**: IPv6 gateway.'."\n" + .'- **Attachment**: transit router.', 'type' => 'string', 'example' => 'Instance', 'title' => ''], + 'Weight' => ['description' => 'The weight of the route entry.', 'type' => 'string', 'example' => '100', 'title' => ''], + 'Enabled' => ['description' => 'Indicates whether the route is available. Valid values:'."\n" + ."\n" + .'- **0**: unavailable.'."\n" + .'- **1**: available.', 'type' => 'string', 'example' => '1', 'title' => ''], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + ], + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', ], ], + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'DependencyViolation.VpcEndpointService', - 'errorMessage' => 'The specified resource of %s depends on %s, so the operation cannot be completed.', - ], - [ - 'errorCode' => 'DependencyViolation.FullNatEntry', - 'errorMessage' => 'The specified resource of %s depends on %s, so the operation cannot be completed.', - ], - [ - 'errorCode' => 'DependencyViolation.RouterEntry', - 'errorMessage' => 'The specified resource of %s depends on %s, so the operation cannot be completed.', - ], - [ - 'errorCode' => 'DependencyViolation.BandwidthPackages', - 'errorMessage' => 'There are BandwidthPackages on specified NatGateway not deleted.', - ], - [ - 'errorCode' => 'DependencyViolation.EIPS', - 'errorMessage' => 'There are Eips on specified NatGateway, please unbind it first.', - ], - [ - 'errorCode' => 'Forbidden.PrePaidNatGateway', - 'errorMessage' => 'The specified NatGateway is PrePaid.', - ], - [ - 'errorCode' => 'InvalidOperation.DeletionProtection', - 'errorMessage' => 'The instance cannnot delete because of deletion protecion.', - ], - [ - 'errorCode' => 'DependencyViolation.SnatEntry', - 'errorMessage' => 'The specified resource of %s depends on %s, so the operation cannot be completed.', - ], - [ - 'errorCode' => 'IncorrectStatus.SnatEntry', - 'errorMessage' => 'The status of %s [%s] is incorrect.', - ], - [ - 'errorCode' => 'DependencyViolation.ForwardEntry', - 'errorMessage' => 'The specified resource of %s depends on %s, so the operation cannot be completed.', - ], - [ - 'errorCode' => 'IncorrectStatus.ForwardEntry', - 'errorMessage' => 'The status of %s [%s] is incorrect.', - ], - [ - 'errorCode' => 'DependencyViolation.NatIp', - 'errorMessage' => 'The specified resource of %s depends on %s, so the operation cannot be completed.', - ], - [ - 'errorCode' => 'IncorrectStatus.NatIp', - 'errorMessage' => 'The status of %s [%s] is incorrect.', - ], - [ - 'errorCode' => 'DependencyViolation.NatIpCidr', - 'errorMessage' => 'The specified resource of %s depends on %s, so the operation cannot be completed.', - ], - [ - 'errorCode' => 'IncorrectStatus.NatGateway', - 'errorMessage' => 'The NatGateway instance is being deleted and needs to wait until the process is complete.', - ], - [ - 'errorCode' => 'IncorrectStatus.RouterEntry', - 'errorMessage' => 'The status of %s [%s] is incorrect.', - ], - [ - 'errorCode' => 'IncorrectStatus.VSwitch', - 'errorMessage' => 'The specified vSwitch status is invalid.', - ], + ['errorCode' => 'ResourceNotFound.GatewayRouteTable', 'errorMessage' => 'The specified resource GatewayRouteTable is not found.', 'description' => 'The gateway route table cannot be found.'], + ['errorCode' => 'IllegalParam.NextToken', 'errorMessage' => 'The param of nextToken is illegal', 'description' => ''], ], - 404 => [ - [ - 'errorCode' => 'INSTANCE_NOT_EXISTS', - 'errorMessage' => 'Instance not exists.', - ], - [ - 'errorCode' => 'InvalidRegionId.NotFound', - 'errorMessage' => 'The specified RegionId does not exist in our records.', - ], - [ - 'errorCode' => 'InvalidNatGatewayId.NotFound', - 'errorMessage' => 'The specified NatGatewayId does not exist in our records.', - ], - [ - 'errorCode' => 'ResourceNotFound.NatGateway', - 'errorMessage' => 'The specified resource of %s is not found.', + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'Query gateway route table entries', + 'summary' => 'Queries the route entries in a gateway route table by calling the ListGatewayRouteTableEntries operation.', + 'changeSet' => [ + ['createdAt' => '2022-11-14T06:28:04.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2021-11-02T02:19:49.000Z', 'description' => 'OpenAPI offline'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ListGatewayRouteTableEntries'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], + ], + 'ramActions' => [ + [ + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'vpc:ListGatewayRouteTableEntries', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'RouteTable', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:routetable/{#routetableId}'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"0ED8D006-F706-4D23-88ED-E11ED28DCAC0\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 0ED8D006-F706-4D23-88ED-E11ED28DCAC0\\n","errorExample":""}]', - 'title' => 'DeleteNatGateway', - 'description' => '## [](#)Description'."\n" - ."\n" - .'* **DeleteNatGateway** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call the [DescribeNatGateways](~~36054~~) to query the status of the task.'."\n" - ."\n" - .' * If a NAT gateway is in the **Deleting** state, the NAT gateway is being deleted. In this case, you can query the NAT gateway but you cannot perform other operations.'."\n" - ."\n" - .' * If the NAT gateway cannot be found, the NAT gateway is deleted.'."\n" - ."\n" - .' After you delete a NAT gateway, you cannot restore the NAT gateway. Proceed with caution.'."\n" - ."\n" - .'* You cannot repeatedly call the **DeleteNatGateway** operation to delete a NAT gateway within the specified period of time.'."\n", - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"NextToken\\": \\"FFmyTO70tTpLG6I3FmYAXGKPd****\\",\\n \\"RequestId\\": \\"0ED8D006-F706-4D23-88ED-E11ED28DCAC0\\",\\n \\"TotalCount\\": \\"1\\",\\n \\"GatewayRouteEntryModels\\": [\\n {\\n \\"Status\\": \\"Available\\",\\n \\"NextHopId\\": \\"i-bp11gcl0sm85t9bi****\\",\\n \\"Description\\": \\"test\\",\\n \\"NextHopType\\": \\"EcsInstance\\",\\n \\"DestinationCidrBlock\\": \\"192.168.0.5\\",\\n \\"Name\\": \\"name\\",\\n \\"NextHops\\": [\\n {\\n \\"NextHopId\\": \\"vpn-bp10zyaph5cc8b7c7****\\",\\n \\"NextHopType\\": \\"Instance\\",\\n \\"Weight\\": \\"100\\",\\n \\"Enabled\\": \\"1\\"\\n }\\n ]\\n }\\n ]\\n}","type":"json"}]', ], - 'ModifyNatGatewayAttribute' => [ - 'summary' => 'Modifies the name and description of a NAT gateway.', - 'methods' => [ - 'post', - 'get', + 'ListGeographicSubRegions' => [ + 'summary' => 'Queries the most recent region list.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], + ], ], - 'schemes' => [ - 'http', - 'https', + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'list', 'riskType' => 'none', 'chargeType' => 'free', 'tenantRelevance' => 'publicInformation'], + 'parameters' => [], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'The request ID.'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '0ED8D006-F706-4D23-88ED-E11ED28DCAC0'], + 'GeographicSubRegions' => [ + 'description' => 'The region list.'."\n", + 'type' => 'array', + 'items' => ['description' => 'The region list.'."\n", 'type' => 'string', 'example' => '["cn-beijing","cn-hangzhou"]', 'title' => ''], + 'title' => '', + 'example' => '', + ], + 'Count' => ['description' => 'The number of entries.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '10', 'title' => ''], + ], + 'example' => '', + ], + ], ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'ListGeographicSubRegions', + 'changeSet' => [], + 'ramActions' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"0ED8D006-F706-4D23-88ED-E11ED28DCAC0\\",\\n \\"GeographicSubRegions\\": [\\n \\"[\\\\\\"cn-beijing\\\\\\",\\\\\\"cn-hangzhou\\\\\\"]\\"\\n ],\\n \\"Count\\": 10\\n}","errorExample":""},{"type":"xml","example":"\\n 0ED8D006-F706-4D23-88ED-E11ED28DCAC0\\n [\\"cn-beijing\\",\\"cn-hangzhou\\"]\\n 10\\n","errorExample":""}]', + ], + 'ListIpsecServerLogs' => [ + 'summary' => 'Queries the logs of an IPsec server.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'read', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'update', - 'riskType' => 'none', - 'chargeType' => 'free', - ], + 'systemTags' => ['operationType' => 'list', 'riskType' => 'none', 'chargeType' => 'free', 'tenantRelevance' => 'tenant'], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the NAT gateway.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cn-hangzhou', - ], - ], - [ - 'name' => 'NatGatewayId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the NAT gateway.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'ngw-2ze0dcn4mq31qx2jc****', - ], + 'schema' => ['description' => 'The ID of the region where the IPsec server is created.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to obtain the region ID.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'Name', + 'name' => 'IpsecServerId', 'in' => 'query', - 'schema' => [ - 'description' => 'The name of the NAT gateway.'."\n" - ."\n" - .'The name must be 1 to 128 characters in length and cannot start with `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'nat123', - ], + 'schema' => ['description' => 'The ID of the IPsec server.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'iss-2zei2n5q5zhirfh73****', 'title' => ''], ], [ - 'name' => 'Description', + 'name' => 'From', 'in' => 'query', - 'schema' => [ - 'description' => 'The description of the NAT gateway.'."\n" - ."\n" - .'The description must be 1 to 128 characters in length, and cannot start with `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'Description', - ], + 'schema' => ['description' => 'The beginning of the time range to query. The value must be a UNIX timestamp. For example, 1671003744 specifies 15:42:24 (UTC+8) on December 14, 2022.'."\n" + ."\n" + .'> If you specify **From**, you must also specify **To** or **MinutePeriod**.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1671003744', 'title' => ''], ], [ - 'name' => 'IcmpReplyEnabled', + 'name' => 'To', 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to enable the Internet Control Message Protocol (ICMP) non-retrieval feature. Valid values:'."\n" - ."\n" - .'* **false** (default)'."\n" - .'* **true**'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['description' => 'The end of the time range to query. The value must be a unix timestamp. For example, 1671004344 specifies 15:52:24 (UTC+8) on December 14, 2022.'."\n" + ."\n" + .'> If you specify **To**, you must also specify **From** or **MinutePeriod**.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1671004344', 'title' => ''], ], [ - 'name' => 'EipBindMode', + 'name' => 'MinutePeriod', 'in' => 'query', - 'schema' => [ - 'description' => 'Modifies the mode in which the EIP is associated with the NAT gateway. The value can be empty or **NAT**, which specifies the NAT mode.'."\n" - ."\n" - .'> '."\n" - ."\n" - .'* You can only change **MULTI_BINDED** to **NAT**. You cannot change **NAT** to **MULTI_BINDED**. For more information about the **MULTI_BINDED** mode, see [CreateNatGateway](~~120219~~).'."\n" - ."\n" - .'* When you change the association mode, your network may be interrupted for seconds. The duration increases with the number of EIPs. You can change the association mode for at most 5 EIPs at the same time. We recommend changing the association mode during off-peak hours.'."\n" - .'* After the association mode is changed to **NAT**, the Internet NAT gateway is compatible with an IPv4 gateway. If an EIP is associated with a NAT gateway in NAT mode, the EIP occupies a private IP address of the vSwitch to which the NAT gateway belongs. Ensure the vSwitch has sufficient private IP addresses for EIPs to be associated with the NAT gateway.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'NAT', - 'enum' => [ - 'NAT', - ], - ], + 'schema' => ['description' => 'The interval at which log data is queried. Valid values: **1** to **10**. Unit: minutes.'."\n" + ."\n" + .'> If both **From** and **To** are not specified, you must specify **MinutePeriod**.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '10', 'title' => ''], ], [ - 'name' => 'EnableSessionLog', + 'name' => 'PageNumber', 'in' => 'query', - 'schema' => [ - 'description' => 'Whether to enable session logging, with values:'."\n" - .'- **true**: Session logging is enabled. '."\n" - .'- **false**: Session logging is disabled.', - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], + 'schema' => ['description' => 'The number of the page to return. Default value: **1**.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1', 'title' => ''], ], [ - 'name' => 'LogDelivery', + 'name' => 'PageSize', 'in' => 'query', - 'style' => 'json', - 'schema' => [ - 'description' => 'Session log configuration information.', - 'type' => 'object', - 'properties' => [ - 'LogDeliveryType' => [ - 'description' => 'Session log write type. Value: **sls**, Alibaba Cloud Log Service SLS.', - 'type' => 'string', - 'required' => false, - 'example' => 'sls', - ], - 'LogDestination' => [ - 'description' => 'Session log write address. Value: acs:log:${regionName}:${projectOwnerAliUid}:project/${projectName}/logstore/${logstoreName}', - 'type' => 'string', - 'required' => false, - 'example' => 'acs:log:cn-hangzhou:0000:project/nat_session_log_project/logstore/session_log_test', - ], - ], - 'required' => false, - ], + 'schema' => ['description' => 'The number of entries to return on each page. Valid values: **1** to **50**. Default value: **10**.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '10', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => 'The request ID.'."\n", + 'description' => '', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => 'AB5F62CF-2B60-4458-A756-42C9DFE108D1', + 'PageSize' => ['description' => 'The number of entries returned per page.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '10', 'title' => ''], + 'PageNumber' => ['description' => 'The page number of the returned page.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''], + 'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => 'DEDAC5B1-9292-5BF7-BDDF-61BA58CFB2FB', 'title' => ''], + 'Count' => ['description' => 'The number of entries on the current page.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '10', 'title' => ''], + 'IsCompleted' => ['description' => 'Indicates whether the log is accurate. Valid values:'."\n" + ."\n" + .'* **true**: accurate'."\n" + .'* **false**: inaccurate'."\n", 'type' => 'boolean', 'example' => 'true', 'title' => ''], + 'Data' => [ + 'description' => 'Log information list.', + 'type' => 'array', + 'items' => ['description' => 'An array of strings.'."\n" + ."\n" + .'Each item in the array is a log entry.', 'type' => 'string', 'example' => '"2022-12-15 17:00:43 [INFO]: : iss-2zei2n5q5zhirfh73**** del ipsec policy successfully", "2022-12-15 17:00:43 [INFO]: : iss-2zei2n5q5zhirfh73**** add ipsec policy successfully"', 'title' => ''], + 'title' => '', + 'example' => '', ], ], + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'UnsupportedFeature.PrivateLinkMode', - 'errorMessage' => 'The feature of %s is not supported.', - ], - [ - 'errorCode' => 'IncorrectStatus.NATGW', - 'errorMessage' => 'NATGW status is invalid.', - ], - [ - 'errorCode' => 'ExclusiveParam.%sAnd%s', - 'errorMessage' => 'The param of %s and %s are mutually exclusive.', - ], - [ - 'errorCode' => 'IncorrectStatus.NatGateway', - 'errorMessage' => 'The status of natgateway is incorrect.', - ], - [ - 'errorCode' => 'DependencyViolation.PrivateLinkMode', - 'errorMessage' => 'The specified resource of %s depends on %s, so the operation cannot be completed.', - ], - [ - 'errorCode' => 'UnsupportedFeature.IcmpReplyEnabled', - 'errorMessage' => 'The feature of IcmpReplyEnabled is not supported.', - ], - [ - 'errorCode' => 'InvalidParams.NotNull', - 'errorMessage' => 'The parameter must not be null, name or description or icmpReplyEnabled', - ], - [ - 'errorCode' => 'InvalidParameter.Name.Malformed', - 'errorMessage' => 'The specified Name is not valid.', - ], - [ - 'errorCode' => 'InvalidParameter.Description.Malformed', - 'errorMessage' => 'The specified Description is not valid.', - ], - [ - 'errorCode' => 'UnsupportedFeature.IndirectConvertForVpcNat', - 'errorMessage' => 'The VPC NAT gateway is not support to change EIP bond type.', - ], - [ - 'errorCode' => 'UnsupportedFeature.NormalNatModifyEipBindMode', - 'errorMessage' => 'The normal NAT gateway is not support to change EIP bond type.', - ], - [ - 'errorCode' => 'OperationDenied.EipBondTypeIsAlreadyNAT', - 'errorMessage' => 'The EIP bond type is already NAT type.', - ], - [ - 'errorCode' => 'UnsupportedFeature.IndirectConvertForFwNat', - 'errorMessage' => 'The security protection enabled NAT gateway is not support change EIP bond type.', - ], - [ - 'errorCode' => 'QuotaExceeded.EipNumForModifyEipBondType', - 'errorMessage' => 'The quota of %s is exceeded, binded: %s, quota: %s.', - ], - [ - 'errorCode' => 'ResourceNotEnough.SwitchAvailableIps', - 'errorMessage' => 'The available private Ip number is not enough in your subnet.', - ], - [ - 'errorCode' => 'UnsupportedFeature.VpcNatSecurityProtectionEnabled', - 'errorMessage' => 'The VPC NAT gateway is not supported to enable security protection.', - ], - [ - 'errorCode' => 'OperationDenied.NatGatewayStatusInvalid', - 'errorMessage' => 'The NAT gateway status is invalid.', - ], - [ - 'errorCode' => 'OperationDenied.EipStatusInvalid', - 'errorMessage' => 'The NAT gateway has EIP in invalid status.', - ], - [ - 'errorCode' => 'OperationDenied.SnatEntryStatusInvalid', - 'errorMessage' => 'The NAT gateway has SNAT entry in invalid status.', - ], - [ - 'errorCode' => 'OperationDenied.DnatEntryStatusInvalid', - 'errorMessage' => 'The NAT gateway has DNAT entry in invalid status.', - ], - [ - 'errorCode' => 'UnsupportedFeature.MutilBindedTypeNatEnableFw', - 'errorMessage' => 'The NAT with Mutil-Binded Eip bind type is not support enable firewall.', - ], - [ - 'errorCode' => 'Forbidden.FinancialLocked', - 'errorMessage' => 'The instance is locked due to outstanding payments.', - ], - [ - 'errorCode' => 'OperationFailed.PrivateLinkMode', - 'errorMessage' => 'The NAT gateway is not support to change PrivateLinkMode.', - ], - [ - 'errorCode' => 'IllegalParam.SessionLogDeliveryDestination', - 'errorMessage' => 'The specified Delivery Destination is illegal.', - ], - [ - 'errorCode' => 'OperationFailed.LogDeliveryIsUnAuthorized', - 'errorMessage' => 'Operation failed because the user is not authorized to deliver NAT session log.', - ], - [ - 'errorCode' => 'IllegalParam.SessionLogDeliveryType', - 'errorMessage' => 'The specified Delivery Type is illegal.', - ], - [ - 'errorCode' => 'UnsupportedFeature.EnableSessionLog', - 'errorMessage' => 'The feature of EnableSessionLog is not supported.', - ], - ], 403 => [ - [ - 'errorCode' => 'Forbidden.ModifyEipBondType', - 'errorMessage' => 'Authentication is failed for modify EIP bond type.', - ], + ['errorCode' => 'Forbidden', 'errorMessage' => 'User not authorized to operate on the specified resource.', 'description' => 'You do not have the permissions to manage the specified resource. Apply for the permissions and try again.'], ], [ - [ - 'errorCode' => 'InvalidRegionId.NotFound', - 'errorMessage' => 'The specified RegionId does not exist in our records.', - ], - [ - 'errorCode' => 'InvalidNatGatewayId.NotFound', - 'errorMessage' => 'The specified NatGatewayId does not exist in our records.', - ], - ], - 500 => [ - [ - 'errorCode' => 'OperationFailed.ConfigSessionLog', - 'errorMessage' => 'Failed to configure session log due to a temporary failure of the server.', - ], + ['errorCode' => 'InvalidIpsecServerId.NotFound', 'errorMessage' => 'The specified IPsec server ID (%s) does not exist.', 'description' => ''], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"AB5F62CF-2B60-4458-A756-42C9DFE108D1\\"\\n}","errorExample":""},{"type":"xml","example":"\\n AB5F62CF-2B60-4458-A756-42C9DFE108D1\\n","errorExample":""}]', - 'title' => 'ModifyNatGatewayAttribute', - 'description' => '## [](#)Description'."\n" - ."\n" - .'You can call this operation to query an Internet NAT gateway or a virtual private cloud (VPC) NAT gateway. The term NAT gateway in this topic refers to both NAT gateway types.'."\n", - 'translator' => 'machine', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'ListIpsecServerLogs', + 'changeSet' => [], + 'ramActions' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"PageSize\\": 10,\\n \\"PageNumber\\": 1,\\n \\"RequestId\\": \\"DEDAC5B1-9292-5BF7-BDDF-61BA58CFB2FB\\",\\n \\"Count\\": 10,\\n \\"IsCompleted\\": true,\\n \\"Data\\": [\\n \\"\\\\\\"2022-12-15 17:00:43 [INFO]: : iss-2zei2n5q5zhirfh73**** del ipsec policy successfully\\\\\\", \\\\\\"2022-12-15 17:00:43 [INFO]: : iss-2zei2n5q5zhirfh73**** add ipsec policy successfully\\\\\\"\\"\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\n 10\\n B6DB370B-2CDB-5396-BD7C-EDCBA2756553\\n 1\\n true\\n 2022-12-15 17:00:43 [INFO]: : iss-2zei2n5q5zhirfh73**** del ipsec policy successfully\\n 2022-12-15 17:00:43 [INFO]: : iss-2zei2n5q5zhirfh73**** add ipsec policy successfully\\n 2022-12-15 17:04:20 iss-2zei2n5q5zhirfh73**** [INFO]: : nat keepalive msg send\\n 2022-12-15 17:04:20 iss-2zei2n5q5zhirfh73**** [DEBUG]: sockmisc.c:327:sendfromto(): sockname 192.168.1.70[500]\\n 2022-12-15 17:04:20 iss-2zei2n5q5zhirfh73**** [DEBUG]: sockmisc.c:329:sendfromto(): send packet from 192.168.1.70[500]\\n 2022-12-15 17:04:20 iss-2zei2n5q5zhirfh73**** [DEBUG]: sockmisc.c:331:sendfromto(): send packet to 223.XX.XX.215[17489]\\n 2022-12-15 17:04:20 iss-2zei2n5q5zhirfh73**** [DEBUG]: sockmisc.c:514:sendfromto(): 1 times of 1 bytes message will be sent to 223.XX.XX.215[17489]\\n 2022-12-15 17:04:20 iss-2zei2n5q5zhirfh73**** [INFO]: : nat keepalive msg send\\n 2022-12-15 17:04:20 iss-2zei2n5q5zhirfh73**** [DEBUG]: sockmisc.c:327:sendfromto(): sockname 192.168.1.70[4500]\\n 2022-12-15 17:04:20 iss-2zei2n5q5zhirfh73**** [DEBUG]: sockmisc.c:329:sendfromto(): send packet from 192.168.1.70[4500]\\n 10\\n","errorExample":""}]', ], - 'ModifyNatGatewaySpec' => [ - 'summary' => 'Upgrades a subscription Internet NAT gateway.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'ListIpsecServers' => [ + 'summary' => 'Queries IPsec servers.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', - 'systemTags' => [ - 'operationType' => 'update', - 'riskType' => 'none', - 'chargeType' => 'free', - ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'list', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region where the Internet NAT gateway is deployed.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The ID of the region where the IPsec server is created.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'NatGatewayId', + 'name' => 'IpsecServerName', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the Internet NAT gateway that you want to upgrade.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'ngw-bp1uewa15k4iy5770****', - ], + 'schema' => ['description' => 'The name of the IPsec server.'."\n" + ."\n" + .'The name must be 1 to 100 characters in length.'."\n", 'type' => 'string', 'required' => false, 'example' => 'test', 'title' => ''], ], [ - 'name' => 'Spec', + 'name' => 'VpnGatewayId', 'in' => 'query', - 'schema' => [ - 'description' => 'The size of the Internet NAT gateway. Valid values:'."\n" - ."\n" - .'* **Small**: small'."\n" - .'* **Middle**: medium'."\n" - .'* **Large**: large'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'Middle', - ], + 'schema' => ['description' => 'The ID of the VPN gateway.'."\n", 'type' => 'string', 'required' => false, 'example' => 'vpn-bp1q8bgx4xnkm2ogj****', 'title' => ''], ], [ - 'name' => 'AutoPay', + 'name' => 'NextToken', 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to automatically complete the payment.'."\n" - ."\n" - .'* **true**: enables automatic payment. Payments are automatically completed.'."\n" - .'* **false** (default): disables automatic payment. If you select this option, you must go to the Order Center to complete the payment after an order is generated.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['description' => 'The pagination token that is used in the next request to retrieve a new page of results. Valid values:'."\n" + ."\n" + .'* If this is your first request and no next requests are to be performed, you do not need to specify this parameter.'."\n" + .'* You must specify the token that is obtained from the previous query as the value of **NextToken**.'."\n", 'type' => 'string', 'required' => false, 'example' => 'caeba0bbb2be03f84eb48b699f0a****', 'title' => ''], ], [ - 'name' => 'ClientToken', + 'name' => 'MaxResults', + 'in' => 'query', + 'schema' => ['description' => 'The number of entries to return on each page. Valid values: **1** to **20**. Default value: **10**.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '10', 'title' => ''], + ], + [ + 'name' => 'IpsecServerId', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'You can use the client to generate the value, but you must make sure that it is unique among different requests. The token can contain only ASCII characters.'."\n", - 'type' => 'string', + 'description' => 'The ID of the IPsec server.'."\n", + 'type' => 'array', + 'items' => ['description' => 'The ID of the IPsec server. Valid values of N: **1** to **20**.'."\n", 'type' => 'string', 'required' => false, 'example' => 'iss-bp1bo3xuvcxo7ixll****', 'title' => ''], 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-426655****', + 'example' => 'iss-bp1bo3xuvcxo7ixll****', + 'maxLength' => 128, + 'minLength' => 0, + 'maxItems' => 20, + 'title' => '', ], ], + [ + 'name' => 'ResourceGroupId', + 'in' => 'query', + 'schema' => ['description' => 'The ID of the resource group to which the IPsec server belongs.'."\n" + ."\n" + .'The IPsec server and its associated VPN gateway belong to the same resource group. You can call [DescribeVpnGateway](~~2794055~~) to query the ID of the resource group to which the VPN gateway belongs.'."\n", 'type' => 'string', 'required' => false, 'example' => 'rg-acfmzs372yg****', 'title' => ''], + ], ], 'responses' => [ 200 => [ - 'headers' => [], 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => 'DBD4E4A2-786E-4BD2-8EB6-107FFC2B5B7D', - ], - ], - ], - ], - ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'NATGW_MODIFY_SPEC_SAME', - 'errorMessage' => 'The specified Spec is same with now.', - ], - [ - 'errorCode' => 'InvalidParameter.Spec.ValueNotSupported', - 'errorMessage' => 'The specified Spec is not valid.', - ], - [ - 'errorCode' => 'OperationFailed.SyncOrderToSub', - 'errorMessage' => 'SyncOrderToSub error.', - ], - [ - 'errorCode' => 'OperationFailed.QueryPrice', - 'errorMessage' => 'Query price failed when create order.', - ], - [ - 'errorCode' => 'IncorrectStatus.NatGateway', - 'errorMessage' => 'The status of NAT gateway is incorrect.', + 'NextToken' => ['description' => 'A pagination token. It can be used in the next request to retrieve a new page of results. Valid values:'."\n" + ."\n" + .'* If no value is returned for **NextToken**, no next queries are sent.'."\n" + .'* If a value is returned for **NextToken**, the value can be used in the next request to retrieve a new page of results.'."\n", 'type' => 'string', 'example' => 'caeba0bbb2be03f84eb48b699f0a****', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B457', 'title' => ''], + 'TotalCount' => ['description' => 'The total number of entries returned.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '10', 'title' => ''], + 'MaxResults' => ['description' => 'The number of entries returned per page.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''], + 'IpsecServers' => [ + 'description' => 'The list of IPsec servers.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'CreationTime' => ['description' => 'The time when the IPsec server was created.'."\n" + ."\n" + .'T is used as a delimiter. Z indicates that the time is in UTC.'."\n", 'type' => 'string', 'example' => '2018-12-03T10:11:55Z', 'title' => ''], + 'OnlineClientCount' => ['description' => 'The number of clients that are connected to the IPsec server.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''], + 'InternetIp' => ['description' => 'The public IP address of the VPN gateway.'."\n", 'type' => 'string', 'example' => '47.22.XX.XX', 'title' => ''], + 'IpsecServerName' => ['description' => 'The name of the IPsec server.'."\n", 'type' => 'string', 'example' => 'test', 'title' => ''], + 'IDaaSInstanceId' => ['description' => 'The ID of the IDaaS instance.'."\n", 'type' => 'string', 'example' => 'idaas-cn-hangzhou-****', 'title' => ''], + 'EffectImmediately' => ['description' => 'Indicates whether the current IPsec tunnel is deleted and negotiations are reinitiated. Valid values:'."\n" + ."\n" + .'* **true**: immediately initiates negotiations after the configuration is completed.'."\n" + .'* **false**: initiates negotiations when inbound traffic is detected.'."\n", 'type' => 'boolean', 'example' => 'false', 'title' => ''], + 'VpnGatewayId' => ['description' => 'The ID of the VPN gateway.'."\n", 'type' => 'string', 'example' => 'vpn-bp1q8bgx4xnkm2ogj****', 'title' => ''], + 'LocalSubnet' => ['description' => 'The local CIDR blocks, which refer to the CIDR blocks on the virtual private cloud (VPC) side.'."\n", 'type' => 'string', 'example' => '192.168.0.0/16,172.17.0.0/16', 'title' => ''], + 'Psk' => ['description' => 'The pre-shared key.'."\n", 'type' => 'string', 'example' => 'pgw6dy7d****', 'title' => ''], + 'RegionId' => ['description' => 'The ID of the region where the IPsec server is created.'."\n", 'type' => 'string', 'example' => 'cn-hangzhou', 'title' => ''], + 'PskEnabled' => ['description' => 'Indicates whether pre-shared key authentication is enabled. Only **true** may be returned, which indicates that pre-shared key authentication is enabled.'."\n", 'type' => 'boolean', 'example' => 'true', 'title' => ''], + 'IpsecServerId' => ['description' => 'The IPsec server ID.'."\n", 'type' => 'string', 'example' => 'iss-bp1bo3xuvcxo7ixll****', 'title' => ''], + 'MultiFactorAuthEnabled' => ['description' => 'Indicates whether two-factor authentication is enabled. Valid values:'."\n" + ."\n" + .'* **true**'."\n" + .'* **false**: The feature is disabled.'."\n", 'type' => 'boolean', 'example' => 'true', 'title' => ''], + 'MaxConnections' => ['description' => 'The number of SSL-VPN connections supported by the VPN gateway.'."\n" + ."\n" + .'> The number of SSL-VPN connections specified in this parameter includes both SSL-VPN and IPsec-VPN connections. For example, you have five SSL-VPN connections and three SSL clients occupy three SSL-VPN connections. In this case, two clients can connect to the IPsec server.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '5', 'title' => ''], + 'ClientIpPool' => ['description' => 'The client CIDR block. It refers to the CIDR block that is allocated to the virtual interface of the client.'."\n", 'type' => 'string', 'example' => '10.0.0.0/24', 'title' => ''], + 'IkeConfig' => [ + 'description' => 'The configurations of Phase 1 negotiations.'."\n", + 'type' => 'object', + 'properties' => [ + 'RemoteId' => ['description' => 'The identifier of the customer gateway. Both fully qualified domain names (FQDNs) and IP addresses are supported. By default, this parameter is empty.'."\n", 'type' => 'string', 'example' => '139.67.XX.XX', 'title' => ''], + 'IkeLifetime' => ['description' => 'The IKE lifetime. Unit: seconds.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '86400', 'title' => ''], + 'IkeEncAlg' => ['description' => 'The IKE encryption algorithm.'."\n", 'type' => 'string', 'example' => 'aes', 'title' => ''], + 'LocalId' => ['description' => 'The ID of the IPsec server. The default value is the public IP address of the VPN gateway. Both FQDNs and IP addresses are supported.'."\n", 'type' => 'string', 'example' => '116.64.XX.XX', 'title' => ''], + 'IkeMode' => ['description' => 'The IKE negotiation mode. Valid values:'."\n" + ."\n" + .'**main**: This mode offers higher security during negotiations.'."\n", 'type' => 'string', 'example' => 'main', 'title' => ''], + 'IkeVersion' => ['description' => 'The IKE version.'."\n", 'type' => 'string', 'example' => 'ikev2', 'title' => ''], + 'IkePfs' => ['description' => 'The Diffie-Hellman key exchange algorithm.'."\n", 'type' => 'string', 'example' => 'group2', 'title' => ''], + 'IkeAuthAlg' => ['description' => 'The IKE authentication algorithm.'."\n", 'type' => 'string', 'example' => 'sha1', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'IpsecConfig' => [ + 'description' => 'The configurations of Phase 2 negotiations.'."\n", + 'type' => 'object', + 'properties' => [ + 'IpsecAuthAlg' => ['description' => 'The IPsec authentication algorithm.'."\n", 'type' => 'string', 'example' => 'sha1', 'title' => ''], + 'IpsecLifetime' => ['description' => 'The IPsec lifetime. Unit: seconds.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '86400', 'title' => ''], + 'IpsecEncAlg' => ['description' => 'The IPsec encryption algorithm.'."\n", 'type' => 'string', 'example' => 'aes', 'title' => ''], + 'IpsecPfs' => ['description' => 'The Diffie-Hellman key exchange algorithm.'."\n", 'type' => 'string', 'example' => 'group2', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'ResourceGroupId' => ['description' => 'The ID of the resource group to which the IPsec server belongs.'."\n" + ."\n" + .'You can call the [ListResourceGroups](~~158855~~) operation to query the resource group information.', 'type' => 'string', 'example' => 'rg-acfmzs372yg****', 'title' => ''], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], - 404 => [ - [ - 'errorCode' => 'InvalidRegionId.NotFound', - 'errorMessage' => 'The specified RegionId does not exist in our records.', - ], - [ - 'errorCode' => 'InvalidNatGatewayId.NotFound', - 'errorMessage' => 'The specified NatGatewayId does not exist in our records.', - ], - [ - 'errorCode' => 'OperationUnsupported.PayByLcuNatModifySpec', - 'errorMessage' => 'The spec of payByLcu nat is unsupported to modify.', - ], - [ - 'errorCode' => 'Forbidden.ModifySpecToSpecialSpec', - 'errorMessage' => 'You are not authorized to modify nat spec to special spec.', - ], - [ - 'errorCode' => 'Forbidden.ModifySpecToSpecialSpecForNormalNat', - 'errorMessage' => 'Normal NAT is not allowed to change to special spec, only enhanced nat allowed.', - ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'IllegalParam.NextToken', 'errorMessage' => 'The specified NextToken is invalid.', 'description' => 'The specified NextToken is invalid.'], ], - 500 => [ - [ - 'errorCode' => 'OperationFailed.NoAvailableResource', - 'errorMessage' => 'The Zone have no available resource.', - ], + 403 => [ + ['errorCode' => 'Forbidden', 'errorMessage' => 'User not authorized to operate on the specified resource.', 'description' => 'You do not have the permissions to manage the specified resource. Apply for the permissions and try again.'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"DBD4E4A2-786E-4BD2-8EB6-107FFC2B5B7D\\"\\n}","errorExample":""},{"type":"xml","example":"\\n DBD4E4A2-786E-4BD2-8EB6-107FFC2B5B7D\\n","errorExample":""}]', - 'title' => 'ModifyNatGatewaySpec', - 'description' => '- You cannot call this operation to downgrade a subscription Internet NAT gateway. You can downgrade a subscription Internet NAT gateway only in the console.'."\n" - .'- When you call this operation to upgrade a subscription Internet NAT gateway, an order is generated. After you complete the payment in the order center, the Internet NAT gateway is upgraded.'."\n" - ."\n" - .'- **ModifyNatGatewaySpec** is an asynchronous operation. After you make a request, the ID of the request is returned but the Internet NAT gateway is not upgraded. The system upgrades the NAT gateway in the background. You can call the [DescribeNatGateways](/help/en/virtual-private-cloud/latest/describenatgateways) operation to query the status of an Internet NAT gateway. - If an Internet NAT gateway is in the **Modifying** state, the NAT gateway is being upgraded. In this case, you can only query the NAT gateway but cannot perform other operations.'."\n" - .' - If an Internet NAT gateway is in the **Available** state, the Internet NAT gateway is upgraded.'."\n" - .'- You cannot repeatedly call the **ModifyNatGatewaySpec** operation to resize a pay-by-specification NAT gateway.'."\n" - ."\n" - .'Internet NAT gateways are available in different sizes. The size of an Internet NAT gateway determines the SNAT performance, which includes the maximum number of connections and the number of new connections per second. However, the size of a NAT gateway does not affect the data throughput. The following table describes the correlations between different sizes of Internet NAT gateways and SNAT performance metrics. '."\n" - ."\n" - .'| Size | Maximum number of connections | Number of new connections per second |'."\n" - .'| ---- | ----------------------------- | ------------------------------------ |'."\n" - .'| Small | 10,000 | 1,000 |'."\n" - .'| Medium | 50,000 | 5,000 |'."\n" - .'| Large | 200,000 | 10,000 |', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'ListIpsecServers', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeNatGateways' => [ - 'summary' => 'Queries NAT gateways that meet specific conditions in a specified region.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [ + ['createdAt' => '2023-10-19T08:26:51.000Z', 'description' => 'Error codes changed, Request parameters changed, Response parameters changed'], ], + 'ramActions' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"NextToken\\": \\"caeba0bbb2be03f84eb48b699f0a****\\",\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B457\\",\\n \\"TotalCount\\": 10,\\n \\"MaxResults\\": 1,\\n \\"IpsecServers\\": [\\n {\\n \\"CreationTime\\": \\"2018-12-03T10:11:55Z\\",\\n \\"OnlineClientCount\\": 1,\\n \\"InternetIp\\": \\"47.22.XX.XX\\",\\n \\"IpsecServerName\\": \\"test\\",\\n \\"IDaaSInstanceId\\": \\"idaas-cn-hangzhou-****\\",\\n \\"EffectImmediately\\": false,\\n \\"VpnGatewayId\\": \\"vpn-bp1q8bgx4xnkm2ogj****\\",\\n \\"LocalSubnet\\": \\"192.168.0.0/16,172.17.0.0/16\\",\\n \\"Psk\\": \\"pgw6dy7d****\\",\\n \\"RegionId\\": \\"cn-hangzhou\\",\\n \\"PskEnabled\\": true,\\n \\"IpsecServerId\\": \\"iss-bp1bo3xuvcxo7ixll****\\",\\n \\"MultiFactorAuthEnabled\\": true,\\n \\"MaxConnections\\": 5,\\n \\"ClientIpPool\\": \\"10.0.0.0/24\\",\\n \\"IkeConfig\\": {\\n \\"RemoteId\\": \\"139.67.XX.XX\\",\\n \\"IkeLifetime\\": 86400,\\n \\"IkeEncAlg\\": \\"aes\\",\\n \\"LocalId\\": \\"116.64.XX.XX\\",\\n \\"IkeMode\\": \\"main\\",\\n \\"IkeVersion\\": \\"ikev2\\",\\n \\"IkePfs\\": \\"group2\\",\\n \\"IkeAuthAlg\\": \\"sha1\\"\\n },\\n \\"IpsecConfig\\": {\\n \\"IpsecAuthAlg\\": \\"sha1\\",\\n \\"IpsecLifetime\\": 86400,\\n \\"IpsecEncAlg\\": \\"aes\\",\\n \\"IpsecPfs\\": \\"group2\\"\\n },\\n \\"ResourceGroupId\\": \\"rg-acfmzs372yg****\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\n caeba0bbb2be03f84eb48b699f0a****\\n 54B48E3D-DF70-471B-AA93-08E683A1B457\\n 10\\n 1\\n \\n 2018-12-03T10:11:55Z\\n 1\\n 47.22.XX.XX\\n test\\n idaas-cn-hangzhou-****\\n false\\n vpn-bp1q8bgx4xnkm2ogj****\\n 192.168.0.0/16,172.17.0.0/16\\n pgw6dy7d****\\n cn-hangzhou\\n true\\n iss-bp1bo3xuvcxo7ixll****\\n true\\n 5\\n 10.0.0.0/24\\n \\n 139.67.XX.XX\\n 86400\\n aes\\n 116.64.XX.XX\\n main\\n ikev2\\n group2\\n sha1\\n \\n \\n sha1\\n 86400\\n aes\\n group2\\n \\n \\n","errorExample":""}]', + ], + 'ListIpv4Gateways' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'read', - 'systemTags' => [ - 'operationType' => 'get', - 'riskType' => 'none', - 'chargeType' => 'free', - ], + 'deprecated' => false, + 'systemTags' => ['operationType' => 'list', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the NAT gateways that you want to query.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The ID of the region where the IPv4 gateways to be queried are deployed.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'ap-southeast-6'], ], [ - 'name' => 'NatGatewayId', + 'name' => 'MaxResults', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the NAT gateway.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'ngw-bp1uewa15k4iy5770****', - ], + 'schema' => ['description' => 'The number of entries to return on each page. Valid values: **1** to **100**. Default value: **10**.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '10'], ], [ - 'name' => 'VpcId', + 'name' => 'NextToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the VPC to which the NAT gateway belongs.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'vpc-bp15zckdt37pq72z****', - ], + 'schema' => ['description' => 'The token that is used for the next query. Valid values:'."\n" + ."\n" + .'* If this is your first query and no next queries are to be sent, ignore this parameter.'."\n" + .'* If a next query is to be sent, set the value to the value of NextToken that is returned from the last call.'."\n", 'type' => 'string', 'required' => false, 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****'], ], [ - 'name' => 'Name', + 'name' => 'VpcId', 'in' => 'query', - 'schema' => [ - 'description' => 'The name of the NAT gateway. '."\n" - ."\n" - .'The name must be 1 to 128 characters in length, and cannot start with `http://` or `https://`. '."\n" - ."\n" - .'If this parameter is not set, the system automatically assigns a name to the NAT gateway.', - 'type' => 'string', - 'required' => false, - 'example' => 'test', - ], + 'schema' => ['description' => 'The ID of the virtual private cloud (VPC) with which the IPv4 gateway is associated.'."\n", 'type' => 'string', 'required' => false, 'example' => 'vpc-5tsrxlw7dv074gci4****'], ], [ - 'name' => 'InstanceChargeType', + 'name' => 'Ipv4GatewayId', 'in' => 'query', - 'schema' => [ - 'description' => 'The billing method of the NAT gateway. Set the value to **PostPaid**, which specifies the pay-as-you-go billing method.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'PostPaid', - ], + 'schema' => ['description' => 'The ID of the IPv4 gateway.'."\n", 'type' => 'string', 'required' => false, 'example' => 'ipv4gw-5tsnc6s4ogsedtp3k****'], ], [ - 'name' => 'Spec', + 'name' => 'Ipv4GatewayName', 'in' => 'query', - 'schema' => [ - 'description' => 'The size of the NAT gateway. Ignore this parameter.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'Invalid parameter.', - ], + 'schema' => ['description' => 'The name of the IPv4 gateway.'."\n" + ."\n" + .'The name must be 1 to 128 characters in length, and cannot start with `http://` or `https://`.'."\n", 'type' => 'string', 'required' => false, 'example' => 'name'], ], [ - 'name' => 'NatType', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The type of NAT gateway. Set the value to **Enhanced** (enhanced NAT gateway).'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'Enhanced', - ], + 'schema' => ['description' => 'The ID of the region where the IPv4 gateways to be queried are deployed.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'ap-southeast-6'], ], [ 'name' => 'ResourceGroupId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the resource group to which the NAT gateway belongs.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'rg-bp67acfmxazb4ph****', - ], + 'schema' => ['description' => 'The ID of the resource group to which the IPv4 gateway belongs.'."\n", 'type' => 'string', 'required' => false, 'example' => 'rg-bp67acfmxazb4ph****'], ], [ - 'name' => 'PageNumber', + 'name' => 'Tags', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => 'The page number. Default value: **1**.'."\n", - 'type' => 'integer', - 'format' => 'int32', + 'description' => 'The tags of the resource.', + 'type' => 'array', + 'items' => [ + 'description' => 'The tags of the resource.', + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => 'The tag key. You can specify at most 20 tag keys. The tag key cannot be an empty string.'."\n" + ."\n" + .'The key cannot exceed 64 characters in length, and can contain digits, periods (.), underscores (\\_), and hyphens (-). The key must start with a letter but cannot start with `aliyun` or `acs:`. The key cannot contain `http://` or `https://`.'."\n", 'type' => 'string', 'required' => false, 'example' => 'FinanceDept'], + 'Value' => ['description' => 'The tag value. You can specify at most 20 tag values. It can be an empty string.'."\n" + ."\n" + .'The tag value cannot exceed 128 characters in length, and can contain digits, periods (.), underscores (\\_), and hyphens (-). It must start with a letter but cannot start with `aliyun` or `acs:`. It cannot contain `http://` or `https://`.'."\n", 'type' => 'string', 'required' => false, 'example' => 'FinanceJoshua'], + ], + 'required' => false, + ], 'required' => false, - 'minimum' => '1', - 'example' => '10', - 'default' => '1', + 'maxItems' => 10, ], ], - [ - 'name' => 'PageSize', - 'in' => 'query', + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => 'The number of entries per page. Maximum value: **50**. Default value: **10**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '50', - 'minimum' => '1', - 'example' => '1', - 'default' => '10', + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'NextToken' => ['description' => 'The token that is used for the next query. Valid values:'."\n" + ."\n" + .'* If no value is returned for **NextToken**, no next queries are sent.'."\n" + .'* If a value of **NextToken** is returned, the value is the token that is used for the subsequent query.'."\n", 'type' => 'string', 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****'], + 'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => '2D265800-E306-529C-8418-84B0A1D201DB'], + 'TotalCount' => ['description' => 'The total number of entries returned.'."\n", 'type' => 'string', 'example' => '1'], + 'Ipv4GatewayModels' => [ + 'description' => 'The list of IPv4 gateways.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'VpcId' => ['description' => 'The ID of the VPC with which the IPv4 gateways are associated.'."\n", 'type' => 'string', 'example' => 'vpc-5tsrxlw7dv074gci4****'], + 'Status' => ['description' => 'The status of the IPv4 gateway. Valid values:'."\n" + ."\n" + .'* **Creating**'."\n" + .'* **Created**'."\n" + .'* **Modifying**'."\n" + .'* **Deleting**'."\n" + .'* **Deleted**'."\n", 'type' => 'string', 'example' => 'Created'], + 'Ipv4GatewayId' => ['description' => 'The ID of the IPv4 gateway.'."\n", 'type' => 'string', 'example' => 'ipv4gw-5tsnc6s4ogsedtp3k****'], + 'Ipv4GatewayDescription' => ['description' => 'The description of the IPv4 gateway.'."\n", 'type' => 'string', 'example' => 'test'], + 'Enabled' => ['description' => 'Indicates whether the IPv4 gateway is activated. Valid values:'."\n" + ."\n" + .'* **true**: yes'."\n" + .'* **false**: no'."\n", 'type' => 'boolean', 'example' => 'true'], + 'GmtCreate' => ['description' => 'The time when the IPv4 gateway was created.'."\n", 'type' => 'string', 'example' => '2021-12-02T07:07:35Z'], + 'Ipv4GatewayRouteTableId' => ['description' => 'The ID of the route table associated with the IPv4 gateway.'."\n", 'type' => 'string', 'example' => 'vtb-5ts0ohchwkp3dydt2****'], + 'Ipv4GatewayName' => ['description' => 'The name of the IPv4 gateway.'."\n", 'type' => 'string', 'example' => 'name'], + 'ResourceGroupId' => ['description' => 'The ID of the resource group to which the IPv4 gateway belongs.'."\n", 'type' => 'string', 'example' => 'rg-bp67acfmxazb4ph****'], + 'Tags' => [ + 'description' => 'The list of tags that are added to the resource group.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => 'The tag key.'."\n", 'type' => 'string', 'example' => 'FinanceDept'], + 'Value' => ['description' => 'The tag value.'."\n", 'type' => 'string', 'example' => 'FinanceJoshua'], + ], + ], + ], + ], + ], + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'IllegalParam.NextToken', 'errorMessage' => 'The specified NextToken is invalid.', 'description' => 'The specified NextToken is invalid.'], + ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'ListIpv4Gateways', + 'summary' => 'Queries IPv4 gateways.', + 'changeSet' => [ + ['createdAt' => '2024-07-31T02:45:59.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-08-07T02:20:13.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2021-11-02T02:19:49.000Z', 'description' => 'OpenAPI offline'], + ], + 'ramActions' => [ + [ + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'vpc:ListIpv4Gateways', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'conditional', 'product' => 'VPC', 'resourceType' => 'Ipv4Gateway', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:ipv4gateway/*'], + ], ], ], + ], + ], + 'ListNatIpCidrs' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'list', 'riskType' => 'none', 'chargeType' => 'free'], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => ['description' => 'The region ID of the Virtual Private Cloud (VPC) NAT gateway that you want to query.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'eu-central-1', 'title' => ''], + ], + [ + 'name' => 'NatGatewayId', + 'in' => 'query', + 'schema' => ['description' => 'The ID of the VPC NAT gateway that you want to query.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'ngw-gw8v16wgvtq26vh59****', 'title' => ''], + ], + [ + 'name' => 'NatIpCidr', + 'in' => 'query', + 'schema' => ['description' => 'The CIDR block of the NAT gateway that you want to query.'."\n", 'type' => 'string', 'required' => false, 'docRequired' => false, 'example' => '172.16.0.0/24', 'title' => ''], + ], [ 'name' => 'DryRun', 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to perform a dry run. Valid values:'."\n" - ."\n" - .'- **true**: performs a dry run. The system prechecks whether your AccessKey pair is valid, whether the RAM user is authorized, and whether the required parameters are specified. 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.'."\n" - .'- **false** (default): performs a dry run and sends the request. If the request passes the dry run, a 2xx HTTP status code is returned and the operation is performed.', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['description' => 'Specifies whether to only precheck this request. Valid values:'."\n" + ."\n" + .'* **true**: checks the API request. The CIDR blocks of the NAT gateway are not queried if the API request passes the precheck. The system checks whether your AccessKey pair is valid, whether the Resource Access Management (RAM) user is authorized, and whether the required parameters are set. If the request fails to pass the precheck, the corresponding error message is returned. If the check succeeds, the DryRunOperation error code is returned.'."\n" + .'* **false**: sends the API request. If the request passes the precheck, 2xx HTTP status code is returned and the CIDR blocks of the NAT gateway are queried. This is the default value.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], ], [ - 'name' => 'Status', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The status of the NAT gateway. Valid values:'."\n" - ."\n" - .'* **Creating**: After you send a request to create a NAT gateway, the system creates the NAT gateway in the background. The NAT gateway remains in the **Creating** state until the operation is completed.'."\n" - .'* **Available**: The NAT gateway remains in a stable state after the NAT gateway is created.'."\n" - .'* **Modifying**: After you send a request to modify a NAT gateway, the system modifies the NAT gateway in the background. The NAT gateway remains in the **Modifying** state until the operation is completed.'."\n" - .'* **Deleting**: After you send a request to delete a NAT gateway, the system deletes the NAT gateway in the background. The NAT gateway remains in the **Deleting** state until the operation is completed.'."\n" - .'* **Converting**: After you send a request to upgrade a standard NAT gateway to an enhanced NAT gateway, the system upgrades the NAT gateway in the background. The NAT gateway remains in the **Converting** state until the operation is completed.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'Available', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'You can use the client to generate the value, but you must make sure that it is unique among different requests. The token can contain only ASCII characters and cannot exceed 64 characters in length.'."\n" + ."\n" + .'> If you do not set this parameter, the system automatically uses **RequestId** as **ClientToken**. **RequestId** may be different for each API request.'."\n", 'type' => 'string', 'required' => false, 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3FF3898', 'title' => ''], ], [ - 'name' => 'NetworkType', + 'name' => 'NatIpCidrStatus', 'in' => 'query', - 'schema' => [ - 'description' => 'The type of the NAT gateway. Valid values:'."\n" - ."\n" - .'* **internet**: an Internet NAT gateway'."\n" - .'* **intranet**: a VPC NAT gateway'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'internet', - ], + 'schema' => ['description' => 'The status of the CIDR block that you want to query. Set the value to **Available**.'."\n", 'type' => 'string', 'required' => false, 'example' => 'Available', 'title' => ''], ], [ - 'name' => 'Tag', + 'name' => 'NextToken', + 'in' => 'query', + 'schema' => ['description' => 'The token that is used for the next query. Set the value as needed.'."\n" + ."\n" + .'* If this is your first query or no next query is to be sent, ignore this parameter.'."\n" + .'* If a next query is to be sent, set the value to the value of NextToken that is returned from the last call.'."\n", 'type' => 'string', 'required' => false, 'example' => 'caeba0bbb2be03f84eb48b699f0a4883', 'title' => ''], + ], + [ + 'name' => 'MaxResults', + 'in' => 'query', + 'schema' => ['description' => 'The number of entries to return on each page. Valid values: **1** to **100**. Default value: **20**.'."\n", 'type' => 'string', 'required' => false, 'example' => '20', 'title' => ''], + ], + [ + 'name' => 'NatIpCidrName', 'in' => 'query', 'style' => 'repeatList', 'schema' => [ - 'description' => 'The tags.', + 'description' => 'The name of the CIDR block that you want to query. Valid values of **N**: **1** to **20**.', 'type' => 'array', - 'items' => [ - 'description' => 'The tags.'."\n", - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => 'The tag keys of the NAT gateway. You can specify up to 20 tag keys.'."\n" - ."\n" - .'Each tag key cannot exceed 64 characters in length, and cannot start with `aliyun` or `acs:`. It cannot contain `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'KeyTest', - ], - 'Value' => [ - 'description' => 'The tag values of the NAT gateway. You can specify up to 20 tag values.'."\n" - ."\n" - .'The tag value cannot exceed 128 characters in length, and cannot start with `aliyun` or `acs:`. The value cannot contain `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'valueTest', - ], - ], - 'required' => false, - ], + 'items' => ['description' => 'The name of the CIDR block that you want to query. Valid values of **N**: **1** to **20**.', 'type' => 'string', 'required' => false, 'example' => 'cidrname', 'title' => ''], 'required' => false, - 'maxItems' => 20, + 'example' => 'test', + 'maxItems' => 100, + 'title' => '', ], ], [ - 'name' => 'ZoneId', + 'name' => 'NatIpCidrs', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'title' => '可用区', - 'description' => 'The ID of the zone to which the NAT gateway belongs.'."\n", - 'type' => 'string', + 'description' => 'The CIDR block of the NAT gateway that you want to query. Valid values of **N**: **1** to **20**.', + 'type' => 'array', + 'items' => ['description' => 'The CIDR block of the NAT gateway that you want to query. Valid values of **N**: **1** to **20**.', 'type' => 'string', 'required' => false, 'example' => '172.16.0.0/24', 'title' => ''], 'required' => false, - 'example' => 'cn-hangzhou-b', + 'example' => '172.16.0.0/24', + 'maxItems' => 100, + 'title' => '', ], ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => ['description' => 'The region ID of the Virtual Private Cloud (VPC) NAT gateway that you want to query.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'eu-central-1', 'title' => ''], + ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => '', 'type' => 'object', 'properties' => [ - 'PageSize' => [ - 'description' => 'The number of entries returned per page.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => '4EC47282-1B74-4534-BD0E-403F3EE64CAF', - ], - 'PageNumber' => [ - 'description' => 'The page number of the returned page.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'TotalCount' => [ - 'description' => 'The number of NAT gateway entries that are returned.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'NatGateways' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'NatGateway' => [ - 'description' => 'The details about the NAT gateway.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'Status' => [ - 'description' => 'The status of the NAT gateway. Valid values:'."\n" - ."\n" - .'* **Creating**: After you send a request to create a NAT gateway, the system creates the NAT gateway in the background. The NAT gateway remains in the Creating state until the operation is completed.'."\n" - .'* **Available**: The NAT gateway remains in a stable state after the NAT gateway is created.'."\n" - .'* **Modifying**: After you send a request to modify a NAT gateway, the system modifies the NAT gateway in the background. The NAT gateway remains in the Modifying state until the operation is completed.'."\n" - .'* **Deleting**: After you send a request to delete a NAT gateway, the system deletes the NAT gateway in the background. The NAT gateway remains in the Deleting state until the operation is completed.'."\n" - .'* **Converting**: After you send a request to upgrade a standard NAT gateway to an enhanced NAT gateway, the system upgrades the NAT gateway in the background. The NAT gateway remains in the Converting state until the operation is completed.'."\n", - 'type' => 'string', - 'example' => 'Creating', - ], - 'CreationTime' => [ - 'description' => 'The time when the NAT gateway was created.'."\n", - 'type' => 'string', - 'example' => '2021-06-08T12:20:20Z', - ], - 'VpcId' => [ - 'description' => 'The ID of the VPC where the NAT gateway is deployed.'."\n", - 'type' => 'string', - 'example' => 'vpc-bp15zckdt37pq72z****', - ], - 'NatType' => [ - 'description' => 'The type of the NAT gateway. The value is set to **Enhanced** (enhanced NAT gateway).'."\n", - 'type' => 'string', - 'example' => 'Enhanced', - ], - 'AutoPay' => [ - 'description' => 'Indicates whether automatic payment is enabled. Valid values:'."\n" - ."\n" - .'* **false**: no'."\n" - .'* **true**: yes'."\n", - 'type' => 'boolean', - 'example' => 'false', - ], - 'Spec' => [ - 'description' => 'The size of the NAT gateway. An empty value is returned for the parameter.'."\n" - ."\n" - .'If **InternetChargeType** is set to **PayByLcu**, an empty value is returned.'."\n", - 'type' => 'string', - 'example' => 'Small', - ], - 'DeletionProtection' => [ - 'description' => 'Indicates whether the deletion protection feature is enabled. Valid values:'."\n" - ."\n" - .'* **true**: yes'."\n" - .'* **false**: no'."\n", - 'type' => 'boolean', - 'example' => 'true', - ], - 'NetworkType' => [ - 'description' => 'The type of NAT gateway. Valid values:'."\n" - ."\n" - .'* **internet**: an Internet NAT gateway'."\n" - .'* **intranet**: a VPC NAT gateway'."\n", - 'type' => 'string', - 'example' => 'internet', - ], - 'SecurityProtectionEnabled' => [ - 'description' => 'Indicates whether the firewall feature is enabled. Valid values:'."\n" - ."\n" - .'* **false**: no'."\n" - .'* **true**: yes'."\n", - 'type' => 'boolean', - 'example' => 'false', - ], - 'InstanceChargeType' => [ - 'description' => 'The billing method of the NAT gateway. The value is set to **PostPaid**, which indicates the pay-as-you-go billing method.'."\n", - 'type' => 'string', - 'example' => 'PostPaid', - ], - 'RegionId' => [ - 'description' => 'The ID of the region where the NAT gateway is deployed.'."\n", - 'type' => 'string', - 'example' => 'cn-hangzhou', - ], - 'EcsMetricEnabled' => [ - 'description' => 'Indicates whether the traffic monitoring feature is enabled. Valid values:'."\n" - ."\n" - .'* **true**: yes'."\n" - .'* **false**: no'."\n", - 'type' => 'boolean', - 'example' => 'true', - ], - 'IcmpReplyEnabled' => [ - 'description' => 'Indicates whether the ICMP non-retrieval feature is enabled. Valid values:'."\n" - ."\n" - .'* **true**: yes'."\n" - .'* **false**: no'."\n", - 'type' => 'boolean', - 'example' => 'false', - ], - 'Description' => [ - 'description' => 'The description of the NAT gateway.'."\n", - 'type' => 'string', - 'example' => 'NAT', - ], - 'ExpiredTime' => [ - 'description' => 'The time when the NAT gateway expires.'."\n", - 'type' => 'string', - 'example' => '2021-08-26T16:00Z', - ], - 'ResourceGroupId' => [ - 'description' => 'The ID of the resource group to which the contiguous EIP group belongs.', - 'type' => 'string', - 'example' => 'rg-bp67acfmxazb4ph****', - ], - 'NatGatewayId' => [ - 'description' => 'The ID of the NAT gateway.'."\n", - 'type' => 'string', - 'example' => 'ngw-bp1047e2d4z7kf2ki****', - ], - 'InternetChargeType' => [ - 'description' => 'The metering method of the NAT gateway. Valid values:'."\n" - ."\n" - .'* **PayBySpec**: pay-by-specification'."\n" - .'* **PayByLcu**: pay-by-CU'."\n", - 'type' => 'string', - 'example' => 'PayByLcu', - ], - 'BusinessStatus' => [ - 'description' => 'The status of the NAT gateway. Valid values:'."\n" - ."\n" - .'* **Normal**: normal'."\n" - .'* **FinancialLocked**: locked due to overdue payments'."\n", - 'type' => 'string', - 'example' => 'Normal', - ], - 'Name' => [ - 'description' => 'The name of the NAT gateway.'."\n", - 'type' => 'string', - 'example' => 'abc', - ], - 'IpLists' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'IpList' => [ - 'description' => 'The list of elastic IP addresses (EIPs) that are associated with the Internet NAT gateway.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'UsingStatus' => [ - 'description' => 'The association between the EIP and the Internet NAT gateway. Valid values:'."\n" - ."\n" - .'* **UsedByForwardTable**: The EIP is specified in a DNAT entry.'."\n" - .'* **UsedBySnatTable**: The EIP is specified in an SNAT entry.'."\n" - .'* **UsedByForwardSnatTable**: The EIP is specified in both an SNAT entry and a DNAT entry.'."\n" - .'* **Idle**: The EIP is not specified in a DNAT or SNAT entry.'."\n", - 'type' => 'string', - 'example' => 'UsedByForwardTable', - ], - 'IpAddress' => [ - 'description' => 'The IP address of the EIP associated with the NAT gateway.'."\n", - 'type' => 'string', - 'example' => '116.62.XX.XX', - ], - 'SnatEntryEnabled' => [ - 'description' => 'Indicates whether IP addresses that are used in DNAT entries can be specified in SNAT entries. Valid values:'."\n" - ."\n" - .'* **true**: yes'."\n" - .'* **false**: no'."\n", - 'type' => 'boolean', - 'example' => 'false', - ], - 'AllocationId' => [ - 'description' => 'The ID of the EIP associated with the NAT gateway.'."\n", - 'type' => 'string', - 'example' => 'eip-m5egzuvp3dgixen6****', - ], - 'PrivateIpAddress' => [ - 'description' => 'The private IP address of the NAT gateway.'."\n", - 'type' => 'string', - 'example' => '192.168.XX.XX', - ], - ], - ], - ], - ], - ], - 'ForwardTableIds' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'ForwardTableId' => [ - 'description' => 'The ID of the DNAT table.', - 'type' => 'array', - 'items' => [ - 'description' => 'The ID of the DNAT table.', - 'type' => 'string', - 'example' => 'ftb-uf6gj3mhsg94qsqst****', - ], - ], - ], - ], - 'SnatTableIds' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'SnatTableId' => [ - 'description' => 'The ID of the SNAT table of the NAT gateway.', - 'type' => 'array', - 'items' => [ - 'description' => 'The ID of the SNAT table of the NAT gateway.', - 'type' => 'string', - 'example' => 'stb-uf6dalcdu0krz423p****', - ], - ], - ], - ], - 'FullNatTableIds' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'FullNatTableId' => [ - 'description' => 'The ID of the FULLNAT table.', - 'type' => 'array', - 'items' => [ - 'description' => 'The ID of the FULLNAT table.', - 'type' => 'string', - 'example' => 'fulltb-gw88z7hhlv43rmb26****', - ], - ], - ], - ], - 'NatGatewayPrivateInfo' => [ - 'description' => 'The private network information about the enhanced Internet NAT gateway.'."\n" - ."\n" - .'> If **NatType** is set to **Normal**, all parameters returned in this list are empty.'."\n", - 'type' => 'object', - 'properties' => [ - 'VswitchId' => [ - 'description' => 'The ID of the vSwitch to which the NAT gateway belongs.'."\n", - 'type' => 'string', - 'example' => 'vsw-bp1s2laxhdf9ayjbo****', - ], - 'EniInstanceId' => [ - 'description' => 'The ID of the elastic network interface (ENI).'."\n", - 'type' => 'string', - 'example' => 'eni-m5eg4ozy5st8q3q4****', - ], - 'MaxBandwidth' => [ - 'description' => 'The maximum bandwidth. Unit: Mbit/s.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '5120', - ], - 'MaxSessionQuota' => [ - 'description' => 'The number of concurrent connections to the NAT gateway. Unit: connections.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '2000000', - ], - 'MaxSessionEstablishRate' => [ - 'description' => 'The number of new connections to the NAT gateway. Unit: connections per second.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '100000', - ], - 'PrivateIpAddress' => [ - 'description' => 'The private IP address.'."\n", - 'type' => 'string', - 'example' => '192.168.XX.XX', - ], - 'IzNo' => [ - 'description' => 'The zone to which the NAT gateway belongs.'."\n", - 'type' => 'string', - 'example' => 'cn-hangzhou-b', - ], - 'EniType' => [ - 'description' => 'The mode in which the ENI is associated with the NAT gateway.'."\n" - ."\n" - .'* **indirect**: non-cut-through mode'."\n" - .'* If an empty value is returned, it indicates that the cut-through mode is used.'."\n", - 'type' => 'string', - 'example' => 'indirect', - ], - ], - ], - 'PrivateLinkEnabled' => [ - 'title' => '默认不支持私网链接。设置为1则意味着支持私网链接', - 'description' => 'Indicates whether the NAT gateway supports PrivateLink. Valid values:'."\n" - ."\n" - .'* **true**: yes'."\n" - .'* **false**: no'."\n", - 'type' => 'boolean', - 'example' => 'true', - ], - 'PrivateLinkMode' => [ - 'title' => 'Fullnat:使用FullNat模式 Geneve:使用Geneve模式。 预估大部分场景都是非Geneve模式的。', - 'description' => 'The mode that is used by PrivateLink. Valid values:'."\n" - ."\n" - .'* **FullNat**: the FULLNAT mode'."\n" - .'* **Geneve**: the GENEVE mode'."\n", - 'type' => 'string', - 'example' => 'FullNat', - ], - 'EipBindMode' => [ - 'title' => 'NAT网关的EIP绑定模式,取值:'."\n" - ."\n" - .'MULTI_BINDED:多EIP网卡可见模式。'."\n" - .'NAT:EIP普通模式,兼容IPv4网关。'."\n" - .'说明 NAT网关的EIP绑定模式为EIP普通模式时,EIP将占用NAT网关所在交换机的一个私网IP,请确保NAT网关所在交换机内私网IP地址充足,如果NAT网关所在的交换机没有可用的空闲私网地址时,将无法绑定新的EIP。NAT网关的EIP绑定模式为EIP普通模式时,NAT网关支持绑定的EIP数量上限为50个。', - 'description' => 'The mode in which the NAT gateway is associated with an elastic IP address (EIP). Valid values:'."\n" - ."\n" - .'* **MULTI_BINDED**: multi-EIP-to-ENI mode'."\n" - .'* **NAT**: NAT mode, which is compatible with IPv4 addresses.'."\n" - ."\n" - .'> Note: If you use the NAT mode, the EIP occupies one private IP address on the vSwitch of the NAT gateway. Make sure that the vSwitch has sufficient private IP addresses. Otherwise, the NAT gateway fails to be associated with the EIP. In NAT mode, you can associate a NAT gateway with up to 50 EIPs.'."\n", - 'type' => 'string', - 'example' => 'MULTI_BINDED', - ], - 'Tags' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'Tag' => [ - 'title' => '', - 'description' => 'The tags that are added to the resource group.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'TagKey' => [ - 'description' => 'The tag key of the instance.'."\n", - 'type' => 'string', - 'example' => 'KeyTest', - ], - 'TagValue' => [ - 'description' => 'The tag value of the instance.'."\n", - 'type' => 'string', - 'example' => 'valueTest', - ], - ], - ], - ], - ], - ], - 'EnableSessionLog' => [ - 'description' => 'Whether to enable session logging, with values:'."\n" - .'- **true**: Session logging is enabled. '."\n" - .'- **false**: Session logging is disabled.', - 'type' => 'string', - 'example' => 'true', - ], - 'AccessMode' => [ - 'description' => 'Access mode for reverse access to VPC NAT gateway.', - 'type' => 'object', - 'properties' => [ - 'ModeValue' => [ - 'description' => 'Access mode, with values:'."\n" - .'- **route**: Route mode.'."\n" - .'- **tunnel**: Tunnel mode.', - 'type' => 'string', - 'example' => 'route', - ], - 'TunnelType' => [ - 'description' => 'Tunnel mode type:'."\n" - .'- **geneve**: Geneve type.', - 'type' => 'string', - 'example' => 'geneve', - ], - ], - ], - 'IpPrefixList' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'IpPrefixList' => [ - 'description' => 'List of NAT IP prefix address segments.', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'IpPrefix' => [ - 'description' => 'NAT IP prefix address range', - 'type' => 'string', - 'example' => '192.168.0.0/28', - ], - ], - ], - ], - ], - ], - ], - ], + 'NextToken' => ['description' => 'The token that is used for the next query. Valid values:'."\n" + ."\n" + .'* If the value of **NextToken** is not returned, it indicates that no next query is to be sent.'."\n" + .'* If the value of **NextToken** is returned, the value indicates the token that is used for the next query.'."\n", 'type' => 'string', 'example' => 'caeba0bbb2be03f84eb48b699f0a4883', 'title' => ''], + 'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => '7479A224-4A28-4895-9604-11F48BCE6A88', 'title' => ''], + 'TotalCount' => ['description' => 'The number of CIDR blocks that are returned.'."\n", 'type' => 'string', 'example' => '1', 'title' => ''], + 'NatIpCidrs' => [ + 'description' => 'The CIDR blocks of the NAT gateway.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'CreationTime' => ['description' => 'The time when the CIDR block was created.'."\n", 'type' => 'string', 'example' => '2021-06-28T20:50Z', 'title' => ''], + 'NatIpCidrId' => ['description' => 'The ID of the CIDR block of the NAT gateway.'."\n", 'type' => 'string', 'example' => 'vpcnatcidr-gw8ov42ei6xh1jys2****', 'title' => ''], + 'IsDefault' => ['description' => 'Indicates whether the CIDR block is the default CIDR block of the NAT gateway. Valid values:'."\n" + ."\n" + .'* **true**: The CIDR block is the default CIDR block of the NAT gateway.'."\n" + .'* **false**: The CIDR block is not the default CIDR block of the NAT gateway.'."\n", 'type' => 'boolean', 'example' => 'true', 'title' => ''], + 'NatIpCidrStatus' => ['description' => 'The status of the CIDR block of the NAT gateway. If **Available** is returned, it indicates that the CIDR block is available.'."\n", 'type' => 'string', 'example' => 'Available', 'title' => ''], + 'NatIpCidrName' => ['description' => 'The name of the CIDR block of the NAT gateway.'."\n", 'type' => 'string', 'example' => 'Name', 'title' => ''], + 'NatIpCidr' => ['description' => 'The CIDR block of the NAT gateway.'."\n", 'type' => 'string', 'example' => '172.16.0.0/24', 'title' => ''], + 'NatGatewayId' => ['description' => 'The ID of the VPC NAT gateway.'."\n", 'type' => 'string', 'example' => 'ngw-gw8v16wgvtq26vh59****', 'title' => ''], + 'NatIpCidrDescription' => ['description' => 'The description of the CIDR block of the NAT gateway.'."\n", 'type' => 'string', 'example' => 'test', 'title' => ''], ], + 'title' => '', + 'example' => '', ], + 'title' => '', + 'example' => '', ], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 404 => [ - [ - 'errorCode' => 'InvalidRegionId.NotFound', - 'errorMessage' => 'The specified RegionId does not exist in our records.', - ], - ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', - ], + ['errorCode' => 'InvalidRegionId.NotFound', 'errorMessage' => 'The specified RegionId does not exist in our records.', 'description' => ''], ], ], - 'eventInfo' => [ - 'enable' => false, - 'eventNames' => [], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"PageSize\\": 10,\\n \\"RequestId\\": \\"4EC47282-1B74-4534-BD0E-403F3EE64CAF\\",\\n \\"PageNumber\\": 10,\\n \\"TotalCount\\": 1,\\n \\"NatGateways\\": {\\n \\"NatGateway\\": [\\n {\\n \\"Status\\": \\"Creating\\",\\n \\"CreationTime\\": \\"2021-06-08T12:20:20Z\\",\\n \\"VpcId\\": \\"vpc-bp15zckdt37pq72z****\\",\\n \\"NatType\\": \\"Enhanced\\",\\n \\"AutoPay\\": false,\\n \\"Spec\\": \\"Small\\",\\n \\"DeletionProtection\\": true,\\n \\"NetworkType\\": \\"internet\\",\\n \\"SecurityProtectionEnabled\\": false,\\n \\"InstanceChargeType\\": \\"PostPaid\\",\\n \\"RegionId\\": \\"cn-hangzhou\\",\\n \\"EcsMetricEnabled\\": true,\\n \\"IcmpReplyEnabled\\": true,\\n \\"Description\\": \\"NAT\\",\\n \\"ExpiredTime\\": \\"2021-08-26T16:00Z\\",\\n \\"ResourceGroupId\\": \\"rg-bp67acfmxazb4ph****\\",\\n \\"NatGatewayId\\": \\"ngw-bp1047e2d4z7kf2ki****\\",\\n \\"InternetChargeType\\": \\"PayByLcu\\",\\n \\"BusinessStatus\\": \\"Normal\\",\\n \\"Name\\": \\"abc\\",\\n \\"IpLists\\": {\\n \\"IpList\\": [\\n {\\n \\"UsingStatus\\": \\"UsedByForwardTable\\",\\n \\"IpAddress\\": \\"116.62.XX.XX\\",\\n \\"SnatEntryEnabled\\": false,\\n \\"AllocationId\\": \\"eip-m5egzuvp3dgixen6****\\",\\n \\"PrivateIpAddress\\": \\"192.168.XX.XX\\"\\n }\\n ]\\n },\\n \\"ForwardTableIds\\": {\\n \\"ForwardTableId\\": [\\n \\"ftb-uf6gj3mhsg94qsqst****\\"\\n ]\\n },\\n \\"SnatTableIds\\": {\\n \\"SnatTableId\\": [\\n \\"stb-uf6dalcdu0krz423p****\\"\\n ]\\n },\\n \\"FullNatTableIds\\": {\\n \\"FullNatTableId\\": [\\n \\"fulltb-gw88z7hhlv43rmb26****\\"\\n ]\\n },\\n \\"NatGatewayPrivateInfo\\": {\\n \\"VswitchId\\": \\"vsw-bp1s2laxhdf9ayjbo****\\",\\n \\"EniInstanceId\\": \\"eni-m5eg4ozy5st8q3q4****\\",\\n \\"MaxBandwidth\\": 5120,\\n \\"MaxSessionQuota\\": 2000000,\\n \\"MaxSessionEstablishRate\\": 100000,\\n \\"PrivateIpAddress\\": \\"192.168.XX.XX\\",\\n \\"IzNo\\": \\"cn-hangzhou-b\\",\\n \\"EniType\\": \\"indirect\\"\\n },\\n \\"PrivateLinkEnabled\\": true,\\n \\"PrivateLinkMode\\": \\"FullNat\\",\\n \\"EipBindMode\\": \\"MULTI_BINDED\\",\\n \\"Tags\\": {\\n \\"Tag\\": [\\n {\\n \\"TagKey\\": \\"KeyTest\\",\\n \\"TagValue\\": \\"valueTest\\"\\n }\\n ]\\n },\\n \\"EnableSessionLog\\": \\"true\\",\\n \\"AccessMode\\": {\\n \\"ModeValue\\": \\"route\\",\\n \\"TunnelType\\": \\"geneve\\"\\n },\\n \\"IpPrefixList\\": {\\n \\"IpPrefixList\\": [\\n {\\n \\"IpPrefix\\": \\"192.168.0.0/28\\"\\n }\\n ]\\n }\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 10\\n 4EC47282-1B74-4534-BD0E-403F3EE64CAF\\n 10\\n 1\\n \\n Creating\\n 2021-06-08T12:20:20Z\\n vpc-bp15zckdt37pq72z****\\n Enhanced\\n false\\n Small\\n true\\n internet\\n false\\n PostPaid\\n cn-hangzhou\\n true\\n true\\n NAT\\n 2021-08-26T16:00Z\\n rg-bp67acfmxazb4ph****\\n ngw-bp1047e2d4z7kf2ki****\\n PayByLcu\\n Normal\\n abc\\n \\n UsedByForwardTable\\n 116.62.XX.XX\\n false\\n eip-m5egzuvp3dgixen6****\\n 192.168.XX.XX\\n \\n ftb-uf6gj3mhsg94qsqst****\\n stb-uf6dalcdu0krz423p****\\n fulltb-gw88z7hhlv43rmb26****\\n \\n vsw-bp1s2laxhdf9ayjbo****\\n eni-m5eg4ozy5st8q3q4****\\n 5120\\n 2000000\\n 100000\\n 192.168.XX.XX\\n cn-hangzhou-b\\n indirect\\n \\n true\\n FullNat\\n MULTI_BINDED\\n \\n KeyTest\\n valueTest\\n \\n \\n","errorExample":""}]', - 'title' => 'DescribeNatGateways', - 'description' => 'You can call this operation to query both Virtual Private Cloud (VPC) NAT gateways and Internet NAT gateways. NAT gateways in this topic refer to both VPC NAT gateways and Internet NAT gateways.', + 'title' => 'ListNatIpCidrs', + 'summary' => 'Queries the CIDR blocks of a specified NAT gateway.', + 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - 'translator' => 'machine', + 'changeSet' => [ + ['createdAt' => '2025-03-25T16:25:59.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2023-03-01T06:45:53.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2021-11-25T11:44:25.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2021-07-09T06:24:03.000Z', 'description' => 'Response parameters changed'], + ], + 'ramActions' => [], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"NextToken\\": \\"caeba0bbb2be03f84eb48b699f0a4883\\",\\n \\"RequestId\\": \\"7479A224-4A28-4895-9604-11F48BCE6A88\\",\\n \\"TotalCount\\": \\"1\\",\\n \\"NatIpCidrs\\": [\\n {\\n \\"CreationTime\\": \\"2021-06-28T20:50Z\\",\\n \\"NatIpCidrId\\": \\"vpcnatcidr-gw8ov42ei6xh1jys2****\\",\\n \\"IsDefault\\": true,\\n \\"NatIpCidrStatus\\": \\"Available\\",\\n \\"NatIpCidrName\\": \\"Name\\",\\n \\"NatIpCidr\\": \\"172.16.0.0/24\\",\\n \\"NatGatewayId\\": \\"ngw-gw8v16wgvtq26vh59****\\",\\n \\"NatIpCidrDescription\\": \\"test\\"\\n }\\n ]\\n}","type":"json"}]', ], - 'GetNatGatewayAttribute' => [ - 'summary' => 'Queries information about a NAT gateway.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'ListNatIps' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -55979,414 +43635,193 @@ ], 'operationType' => 'read', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'get', - 'riskType' => 'none', - 'chargeType' => 'free', - ], + 'systemTags' => ['operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region where the NAT gateway is deployed.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-qingdao', - ], + 'schema' => ['description' => 'The ID of the region where the NAT gateway is deployed.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'eu-central-1', 'title' => ''], ], [ 'name' => 'NatGatewayId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the NAT gateway.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'ngw-bp1b0lic8uz4r6vf2****', - ], + 'schema' => ['description' => 'The ID of the NAT gateway.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'ngw-gw8v16wgvtq26vh59****', 'title' => ''], ], [ - 'name' => 'RegionId', + 'name' => 'NatIpCidr', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region where the NAT gateway is deployed.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", + 'schema' => ['description' => 'The CIDR block to which the IP address belongs.'."\n", 'type' => 'string', 'required' => false, 'docRequired' => false, 'example' => '192.168.0.0/24', 'title' => ''], + ], + [ + 'name' => 'DryRun', + 'in' => 'query', + 'schema' => ['description' => 'Specifies whether to only precheck the request. Valid values:'."\n" + ."\n" + .'* **true**: checks the API request. IP addresses are not queried. The system checks the required parameters, request syntax, and limits. If the request fails to pass the precheck, the corresponding error message is returned. If the request passes the precheck, the `DryRunOperation` error code is returned.'."\n" + .'* **false** (default): sends the request. If the request passes the precheck, a 2xx HTTP status code is returned and the operation is performed.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], + ], + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'You can use the client to generate the value, but you must make sure that it is unique among different requests. The token can contain only ASCII characters and cannot exceed 64 characters in length.'."\n" + ."\n" + .'> If you do not set this parameter, the system automatically uses **RequestId** as **ClientToken**. **RequestId** may be different for each API request.'."\n", 'type' => 'string', 'required' => false, 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3FF3898', 'title' => ''], + ], + [ + 'name' => 'NatIpStatus', + 'in' => 'query', + 'schema' => ['description' => 'The status of the IP address. Valid values:'."\n" + ."\n" + .'* **Available**'."\n" + .'* **Deleting**'."\n" + .'* **Creating**'."\n", 'type' => 'string', 'required' => false, 'example' => 'Available', 'title' => ''], + ], + [ + 'name' => 'NextToken', + 'in' => 'query', + 'schema' => ['description' => 'The token that is used for the next query. Valid values:'."\n" + ."\n" + .'* If this is your first query or no next query is to be sent, ignore this parameter.'."\n" + .'* If a next query is to be sent, set the value to the value of NextToken that is returned from the last call.'."\n", 'type' => 'string', 'required' => false, 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****f84eb48b699f0a4883', 'title' => ''], + ], + [ + 'name' => 'MaxResults', + 'in' => 'query', + 'schema' => ['description' => 'The number of entries to return on each page. Valid values: **1** to **100**. Default value: **20**.'."\n", 'type' => 'string', 'required' => false, 'example' => '20', 'title' => ''], + ], + [ + 'name' => 'NatIpName', + 'in' => 'query', + 'style' => 'repeatList', + 'schema' => [ + 'description' => 'The name of the IP address. Valid values of **N**: **1** to **20**.', + 'type' => 'array', + 'items' => ['description' => 'The name of the IP address. Valid values of **N**: **1** to **20**.', 'type' => 'string', 'required' => false, 'example' => 'test', 'title' => ''], + 'required' => false, + 'example' => 'test', + 'maxItems' => 100, + 'title' => '', + ], + ], + [ + 'name' => 'NatIpIds', + 'in' => 'query', + 'style' => 'repeatList', + 'schema' => [ + 'description' => 'The ID of the IP address. Valid values of **N**: **1** to **20**.', + 'type' => 'array', + 'items' => ['description' => 'The ID of the IP address. Valid values of **N**: **1** to **20**.', 'type' => 'string', 'required' => false, 'example' => 'vpcnatcidr-gw8ov42ei6xh1jys2****', 'title' => ''], + 'required' => false, + 'example' => 'vpcnatip-gw8a863sut1zijxh0****', + 'maxItems' => 100, + 'title' => '', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => ['description' => 'The ID of the region where the NAT gateway is deployed.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'eu-central-1', 'title' => ''], + ], + [ + 'name' => 'IpOrigin', + 'in' => 'query', + 'allowEmptyValue' => true, + 'schema' => [ + 'title' => '用于描述NatIp来源的字段的枚举,取值为“prefix”表示所属IPv4Prefix的NatIp; 取值为“cidr”表示孤立NatIp; 控制表示所有的NatIp.', + 'description' => 'The enumeration of the fields used to describe the source of the NatIp. Prefix indicates the NatIp that belongs to the IPv4Prefix. The value cidr indicates isolated NatIp. The value control indicates all NatIp.'."\n", + 'enumValueTitles' => [], 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-qingdao', + 'example' => 'cidr', + 'enum' => ['cidr', 'prefix'], + 'required' => false, ], ], + [ + 'name' => 'Ipv4Prefix', + 'in' => 'query', + 'schema' => ['description' => 'The IP prefix address range.', 'type' => 'string', 'required' => false, 'example' => '192.168.0.0/28', 'title' => ''], + ], ], 'responses' => [ 200 => [ 'schema' => [ 'type' => 'object', 'properties' => [ - 'VpcId' => [ - 'description' => 'The ID of the VPC to which the NAT gateway belongs.'."\n", - 'type' => 'string', - 'example' => 'vpc-bp15zckdt37pq72z****', - ], - 'CreationTime' => [ - 'description' => 'The time when the NAT gateway was created. Format: YYYY-MM-DDThh:mm:ssZ.'."\n", - 'type' => 'string', - 'example' => '2021-12-08T12:20:20Z', - ], - 'Status' => [ - 'description' => 'The status of the NAT gateway. Valid values:'."\n" - ."\n" - .'* **Creating**: being created. The operation to create a NAT gateway is asynchronous. The NAT gateway remains in the **Creating** state until it is created.'."\n" - .'* **Available**: available. After a NAT gateway is created, it remains in a stable state.'."\n" - .'* **Modifying**: being modified. The operation to upgrade or downgrade a NAT gateway is asynchronous. The NAT gateway remains in the **Modifying** state until it is upgraded or downgraded.'."\n" - .'* **Deleting**: being deleted. The operation to delete a NAT gateway is asynchronous. The NAT gateway remains in the **Deleting** state until it is deleted.'."\n" - .'* **Converting**: being converted. The operation to convert a standard NAT gateway to an enhanced NAT gateway is asynchronous. The NAT gateway remains in the **Converting** state until it is converted.'."\n", - 'type' => 'string', - 'example' => 'Available', - ], - 'NatType' => [ - 'description' => 'The type of the Internet NAT gateway. Only **Enhanced** is returned, which indicates an enhanced Internet NAT gateway.'."\n", - 'type' => 'string', - 'example' => 'Enhanced', - ], - 'NetworkType' => [ - 'description' => 'The type of the NAT gateway. Valid values:'."\n" - ."\n" - .'* **internet**: an Internet NAT gateway'."\n" - .'* **intranet**: a VPC NAT gateway'."\n", - 'type' => 'string', - 'example' => 'internet', - ], - 'RegionId' => [ - 'description' => 'The ID of the region where the NAT gateway is deployed.'."\n", - 'type' => 'string', - 'example' => 'cn-qingdao', - ], - 'EcsMetricEnabled' => [ - 'description' => 'Indicates whether the traffic monitoring feature is enabled. Valid values:'."\n" - ."\n" - .'* **true**: yes'."\n" - .'* **false**: no'."\n", - 'type' => 'boolean', - 'example' => 'true', - ], - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => '4EC47282-1B74-4534-BD0E-403F3EE64CAF', - ], - 'Description' => [ - 'description' => 'The description of the NAT gateway.'."\n", - 'type' => 'string', - 'example' => 'NAT', - ], - 'ExpiredTime' => [ - 'description' => 'The time when the NAT gateway expires.'."\n", - 'type' => 'string', - 'example' => '2021-12-26T12:20:20Z', - ], - 'ResourceGroupId' => [ - 'description' => 'The ID of the resource group.'."\n", - 'type' => 'string', - 'example' => 'rg-bp67acfmxazb4ph****', - ], - 'NatGatewayId' => [ - 'description' => 'The ID of the NAT gateway.'."\n", - 'type' => 'string', - 'example' => 'ngw-bp1047e2d4z7kf2ki****', - ], - 'BusinessStatus' => [ - 'description' => 'The service status of the NAT gateway. Valid values:'."\n" - ."\n" - .'* **Normal**: normal'."\n" - .'* **FinancialLocked**: locked due to overdue payments'."\n", - 'type' => 'string', - 'example' => 'Normal', - ], - 'Name' => [ - 'description' => 'The name of the NAT gateway.'."\n", - 'type' => 'string', - 'example' => 'abc', - ], - 'ForwardTable' => [ - 'description' => 'The information about the DNAT table.'."\n", - 'type' => 'object', - 'properties' => [ - 'ForwardTableId' => [ - 'description' => 'The ID of the DNAT table.'."\n", - 'type' => 'string', - 'example' => 'ftb-uf6gj3mhsg94qsqst****', - ], - 'ForwardEntryCount' => [ - 'description' => 'The number of DNAT entries.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - ], - ], - 'SnatTable' => [ - 'description' => 'The information about the SNAT table.'."\n", - 'type' => 'object', - 'properties' => [ - 'SnatEntryCount' => [ - 'description' => 'The number of SNAT entries.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'SnatTableId' => [ - 'description' => 'The ID of the SNAT table.'."\n", - 'type' => 'string', - 'example' => 'stb-SnatTableIds****', - ], - ], - ], - 'FullNatTable' => [ - 'description' => 'The information about the FULLNAT table.'."\n", - 'type' => 'object', - 'properties' => [ - 'FullNatEntryCount' => [ - 'description' => 'The number of FULLNAT entries.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1', - ], - 'FullNatTableId' => [ - 'description' => 'The ID of the FULLNAT table.'."\n", - 'type' => 'string', - 'example' => 'fulltb-gw88z7hhlv43rmb26****', - ], - ], - ], - 'BillingConfig' => [ - 'description' => 'The billing information.'."\n", - 'type' => 'object', - 'properties' => [ - 'InternetChargeType' => [ - 'description' => 'The metering method of the NAT gateway. Valid values:'."\n" - ."\n" - .'* **PayBySpec**: pay-by-specification'."\n" - .'* **PayByLcu**: pay-by-CU'."\n", - 'type' => 'string', - 'example' => 'PayBySpec', - ], - 'AutoPay' => [ - 'description' => 'Indicates whether automatic payment is enabled. If the **InstanceChargeType** parameter is set to **PrePaid**, one of the following values is returned:'."\n" - ."\n" - .'* **false**: disabled. After an order is generated, you must go to the Order Center to complete the payment.'."\n" - .'* **true**: enabled. Payments are automatically completed.'."\n" - ."\n" - .'The return value of this parameter is empty if **InstanceChargeType** is set to **PostPaid**.'."\n", - 'type' => 'string', - 'example' => 'false', - ], - 'Spec' => [ - 'description' => 'The specification of the Internet NAT gateway. If the **InternetChargeType** parameter is set to **PayBySpec**, one of the following values is returned:'."\n" - ."\n" - .'* **Small**: small'."\n" - ."\n" - .'* **Middle**: medium'."\n" - ."\n" - .'* **Large**: large'."\n" - ."\n" - .' The return value of this parameter is empty if **InternetChargeType** is set to **PayByLcu**.'."\n", - 'type' => 'string', - 'example' => 'Small', - ], - 'InstanceChargeType' => [ - 'description' => 'The billing method of the NAT gateway. The value is set to **PostPaid**, which indicates the pay-as-you-go billing method.'."\n", - 'type' => 'string', - 'example' => 'PostPaid', - ], - ], - ], - 'PrivateInfo' => [ - 'description' => 'The private network information about the NAT gateway.'."\n", - 'type' => 'object', - 'properties' => [ - 'MaxBandwidth' => [ - 'description' => 'The maximum bandwidth. Unit: Mbit/s.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '5120', - ], - 'VswitchId' => [ - 'description' => 'The ID of the vSwitch to which the NAT gateway belongs.'."\n", - 'type' => 'string', - 'example' => 'vsw-bp1s2laxhdf9ayjbo***', - ], - 'PrivateIpAddress' => [ - 'description' => 'The private IP address.'."\n", - 'type' => 'string', - 'example' => '192.168.XX.XX', - ], - 'IzNo' => [ - 'description' => 'The zone where the NAT gateway is deployed.'."\n", - 'type' => 'string', - 'example' => 'cn-qingdao-b', - ], - 'EniInstanceId' => [ - 'description' => 'The ID of the elastic network interface (ENI).'."\n", - 'type' => 'string', - 'example' => 'eni-bp1cmgtoaka8vfyg****', - ], - ], - ], - 'DeletionProtectionInfo' => [ - 'description' => 'The information about the deletion protection feature.'."\n", - 'type' => 'object', - 'properties' => [ - 'Enabled' => [ - 'description' => 'Indicates whether deletion protection is enabled.'."\n" - ."\n" - .'* **true**: yes'."\n" - .'* **false**: no'."\n", - 'type' => 'boolean', - 'example' => 'true', - ], - ], - ], - 'IpList' => [ - 'description' => 'The elastic IP addresses (EIPs) that are associated with the Internet NAT gateway.'."\n", + 'NextToken' => ['description' => 'The token that is used for the next query. Valid values:'."\n" + ."\n" + .'* If the value of **NextToken** is not returned, it indicates that no next query is to be sent.'."\n" + .'* If the value of **NextToken** is returned, the value indicates the token that is used for the next query.'."\n", 'type' => 'string', 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', 'title' => ''], + 'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => '7E78CEEA-BF8F-44D1-9DCD-D9141135B71E', 'title' => ''], + 'TotalCount' => ['description' => 'The number of IP addresses that are returned.'."\n", 'type' => 'string', 'example' => '1', 'title' => ''], + 'NatIps' => [ + 'description' => 'The list of IP addresses of the NAT gateway.'."\n", 'type' => 'array', 'items' => [ - 'description' => '', 'type' => 'object', 'properties' => [ - 'UsingStatus' => [ - 'description' => 'The association status of the EIP.'."\n" - ."\n" - .'* **idle**: The EIP is not specified in an SNAT entry or a DNAT entry.'."\n" - .'* **UsedBySnatTable**: The EIP is specified in an SNAT entry.'."\n" - .'* **UsedByForwardTable**: The EIP is specified in a DNAT entry.'."\n", - 'type' => 'string', - 'example' => 'idle', - ], - 'IpAddress' => [ - 'description' => 'The IP address of the EIP.'."\n", - 'type' => 'string', - 'example' => '116.33.XX.XX', - ], - 'AllocationId' => [ - 'description' => 'The ID of the EIP.'."\n", - 'type' => 'string', - 'example' => 'eip-bp13e9i2qst4g6jzi****', - ], - ], - ], - ], - 'PrivateLinkEnabled' => [ - 'title' => '默认不支持私网链接。设置为1则意味着支持私网链接', - 'description' => 'Indicates whether the NAT gateway supports PrivateLink. Valid values:'."\n" - ."\n" - .'* **true**: yes'."\n" - .'* **false**: no'."\n", - 'type' => 'boolean', - 'example' => 'true', - ], - 'PrivateLinkMode' => [ - 'title' => 'Fullnat:使用FullNat模式 Geneve:使用Geneve模式。 预估大部分场景都是非Geneve模式的。', - 'description' => 'The mode that is used by PrivateLink. Valid values:'."\n" - ."\n" - .'* **FullNat**: the FULLNAT mode'."\n" - .'* **Geneve**: the GENEVE mode'."\n", - 'type' => 'string', - 'example' => 'FullNat', - ], - 'EnableSessionLog' => [ - 'description' => 'Whether to enable session log, with values:'."\n" - .'- **true**: Session logging is enabled. '."\n" - .'- **false**: Session logging is disabled.', - 'type' => 'boolean', - 'example' => 'true', - ], - 'LogDelivery' => [ - 'description' => 'Session log configuration information.', - 'type' => 'object', - 'properties' => [ - 'LogDeliveryType' => [ - 'description' => 'Session log delivery destination type. Value: **sls**, Alibaba Cloud Log Service SLS.', - 'type' => 'string', - 'example' => 'sls', - ], - 'LogDestination' => [ - 'description' => 'Destination address for session log writing', - 'type' => 'string', - 'example' => 'acs:log:cn-hangzhou:0000:project/nat_session_log_project/logstore/session_log_test', - ], - 'DeliveryStatus' => [ - 'description' => 'Session log write status. Values:'."\n" - .'- **Success**: Success. '."\n" - .'- **Failure**: Failure.', - 'type' => 'string', - 'example' => 'Failure', - ], - 'DeliverLogsErrorMessage' => [ - 'description' => 'Error message for session log write failure.', - 'type' => 'string', - 'example' => 'LogStoreNotExist: logstore session_log_test does not exist', - ], - ], - ], - 'AccessMode' => [ - 'description' => 'Access mode for reverse access to VPC NAT gateway.', - 'type' => 'object', - 'properties' => [ - 'ModeValue' => [ - 'description' => 'Access mode values:'."\n" - .'- **route**: Route mode.'."\n" - .'- **tunnel**: Tunnel mode.', - 'type' => 'string', - 'example' => 'route', - ], - 'TunnelType' => [ - 'description' => 'Tunnel mode type:'."\n" - .'- **geneve**: Geneve type.', - 'type' => 'string', - 'example' => 'geneve', + 'IsDefault' => ['description' => 'Indicates whether the IP address is the default IP address of the NAT gateway. Valid values:'."\n" + ."\n" + .'* **true**: yes'."\n" + .'* **false**: no'."\n", 'type' => 'boolean', 'example' => 'true', 'title' => ''], + 'NatIp' => ['description' => 'The IP address.'."\n", 'type' => 'string', 'example' => '192.168.0.126', 'title' => ''], + 'Ipv4Prefix' => ['description' => 'The IP prefix address range to which the queried NAT IP address belongs.', 'type' => 'string', 'required' => false, 'example' => '192.168.0.0/28', 'title' => ''], + 'NatIpCidr' => ['description' => 'The CIDR block to which the IP address belongs.'."\n", 'type' => 'string', 'example' => '192.168.0.0/24', 'title' => ''], + 'NatIpId' => ['description' => 'The ID of the IP address.'."\n", 'type' => 'string', 'example' => 'vpcnatip-gw8a863sut1zijxh0****', 'title' => ''], + 'NatIpDescription' => ['description' => 'The description of the IP address.'."\n", 'type' => 'string', 'example' => 'default', 'title' => ''], + 'NatGatewayId' => ['description' => 'The ID of the Virtual Private Cloud (VPC) NAT gateway to which the IP address is assigned.'."\n", 'type' => 'string', 'example' => 'ngw-gw8v16wgvtq26vh59****', 'title' => ''], + 'NatIpName' => ['description' => 'The name of the IP address.'."\n", 'type' => 'string', 'example' => 'default', 'title' => ''], + 'NatIpStatus' => ['description' => 'The status of the IP address. Valid values:'."\n" + ."\n" + .'* **Available**: available'."\n" + .'* **Deleted**: deleted'."\n" + .'* **Deleting**: deleting'."\n" + .'* **Creating**: creating'."\n" + .'* **Associated**: specified in an SNAT or DNAT entry'."\n" + .'* **Associating**: being specified in an SNAT or DNAT entry'."\n", 'type' => 'string', 'example' => 'Available', 'title' => ''], ], + 'description' => '', + 'title' => '', + 'example' => '', ], + 'title' => '', + 'example' => '', ], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 404 => [ - [ - 'errorCode' => 'InvalidRegionId.NotFound', - 'errorMessage' => 'The specified RegionId does not exist in our records.', - ], + ['errorCode' => 'InvalidRegionId.NotFound', 'errorMessage' => 'The specified RegionId does not exist in our records.', 'description' => ''], ], ], - 'eventInfo' => [ - 'enable' => false, - 'eventNames' => [], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"VpcId\\": \\"vpc-bp15zckdt37pq72z****\\",\\n \\"CreationTime\\": \\"2021-12-08T12:20:20Z\\",\\n \\"Status\\": \\"Available\\",\\n \\"NatType\\": \\"Enhanced\\",\\n \\"NetworkType\\": \\"internet\\",\\n \\"RegionId\\": \\"cn-qingdao\\",\\n \\"EcsMetricEnabled\\": true,\\n \\"RequestId\\": \\"4EC47282-1B74-4534-BD0E-403F3EE64CAF\\",\\n \\"Description\\": \\"NAT\\",\\n \\"ExpiredTime\\": \\"2021-12-26T12:20:20Z\\",\\n \\"ResourceGroupId\\": \\"rg-bp67acfmxazb4ph****\\",\\n \\"NatGatewayId\\": \\"ngw-bp1047e2d4z7kf2ki****\\",\\n \\"BusinessStatus\\": \\"Normal\\",\\n \\"Name\\": \\"abc\\",\\n \\"ForwardTable\\": {\\n \\"ForwardTableId\\": \\"ftb-uf6gj3mhsg94qsqst****\\",\\n \\"ForwardEntryCount\\": 1\\n },\\n \\"SnatTable\\": {\\n \\"SnatEntryCount\\": 1,\\n \\"SnatTableId\\": \\"stb-SnatTableIds****\\"\\n },\\n \\"FullNatTable\\": {\\n \\"FullNatEntryCount\\": 1,\\n \\"FullNatTableId\\": \\"fulltb-gw88z7hhlv43rmb26****\\"\\n },\\n \\"BillingConfig\\": {\\n \\"InternetChargeType\\": \\"PayBySpec\\",\\n \\"AutoPay\\": \\"false\\",\\n \\"Spec\\": \\"Small\\",\\n \\"InstanceChargeType\\": \\"PostPaid\\"\\n },\\n \\"PrivateInfo\\": {\\n \\"MaxBandwidth\\": 5120,\\n \\"VswitchId\\": \\"vsw-bp1s2laxhdf9ayjbo***\\",\\n \\"PrivateIpAddress\\": \\"192.168.XX.XX\\",\\n \\"IzNo\\": \\"cn-qingdao-b\\",\\n \\"EniInstanceId\\": \\"eni-bp1cmgtoaka8vfyg****\\"\\n },\\n \\"DeletionProtectionInfo\\": {\\n \\"Enabled\\": true\\n },\\n \\"IpList\\": [\\n {\\n \\"UsingStatus\\": \\"idle\\",\\n \\"IpAddress\\": \\"116.33.XX.XX\\",\\n \\"AllocationId\\": \\"eip-bp13e9i2qst4g6jzi****\\"\\n }\\n ],\\n \\"PrivateLinkEnabled\\": true,\\n \\"PrivateLinkMode\\": \\"FullNat\\",\\n \\"EnableSessionLog\\": true,\\n \\"LogDelivery\\": {\\n \\"LogDeliveryType\\": \\"sls\\",\\n \\"LogDestination\\": \\"acs:log:cn-hangzhou:0000:project/nat_session_log_project/logstore/session_log_test\\",\\n \\"DeliveryStatus\\": \\"Failure\\",\\n \\"DeliverLogsErrorMessage\\": \\"LogStoreNotExist: logstore session_log_test does not exist\\"\\n },\\n \\"AccessMode\\": {\\n \\"ModeValue\\": \\"route\\",\\n \\"TunnelType\\": \\"geneve\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n vpc-bp15zckdt37pq72z****\\n 2021-12-08T12:20:20Z\\n Available\\n Enhanced\\n internet\\n cn-qingdao\\n true\\n 4EC47282-1B74-4534-BD0E-403F3EE64CAF\\n NAT\\n 2021-12-26T12:20:20Z\\n rg-bp67acfmxazb4ph****\\n ngw-bp1047e2d4z7kf2ki****\\n Normal\\n abc\\n \\n ftb-uf6gj3mhsg94qsqst****\\n 1\\n \\n \\n 1\\n stb-SnatTableIds****\\n \\n \\n 1\\n fulltb-gw88z7hhlv43rmb26****\\n \\n \\n PayBySpec\\n false\\n Small\\n PostPaid\\n \\n \\n 5120\\n vsw-bp1s2laxhdf9ayjbo***\\n 192.168.XX.XX\\n cn-qingdao-b\\n eni-bp1cmgtoaka8vfyg****\\n \\n \\n true\\n \\n \\n idle\\n 116.33.XX.XX\\n eip-bp13e9i2qst4g6jzi****\\n \\n true\\n FullNat\\n","errorExample":""}]', - 'title' => 'GetNatGatewayAttribute', - 'description' => 'You can call this operation to query information about a specified Internet NAT gateway or Virtual Private Cloud (VPC) NAT gateway. In this topic, "NAT gateway" refers to both gateway types.', + 'title' => 'ListNatIps', + 'summary' => 'Queries the IP addresses on a NAT gateway.', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - 'translator' => 'machine', + 'changeSet' => [ + ['createdAt' => '2025-03-25T16:25:59.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2023-03-01T06:45:52.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2021-11-25T05:52:03.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2021-07-09T06:24:03.000Z', 'description' => 'Response parameters changed'], + ], + 'ramActions' => [], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"NextToken\\": \\"FFmyTO70tTpLG6I3FmYAXGKPd****\\",\\n \\"RequestId\\": \\"7E78CEEA-BF8F-44D1-9DCD-D9141135B71E\\",\\n \\"TotalCount\\": \\"1\\",\\n \\"NatIps\\": [\\n {\\n \\"IsDefault\\": true,\\n \\"NatIp\\": \\"192.168.0.126\\",\\n \\"Ipv4Prefix\\": \\"192.168.0.0/28\\",\\n \\"NatIpCidr\\": \\"192.168.0.0/24\\",\\n \\"NatIpId\\": \\"vpcnatip-gw8a863sut1zijxh0****\\",\\n \\"NatIpDescription\\": \\"default\\",\\n \\"NatGatewayId\\": \\"ngw-gw8v16wgvtq26vh59****\\",\\n \\"NatIpName\\": \\"default\\",\\n \\"NatIpStatus\\": \\"Available\\"\\n }\\n ]\\n}","type":"json"}]', ], - 'ListEnhanhcedNatGatewayAvailableZones' => [ - 'summary' => 'Queries the zones that support NAT gateways.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'ListPhysicalConnectionFeatures' => [ + 'summary' => 'Queries he connection features supported by a Express Connect circuit.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -56394,416 +43829,279 @@ ], 'operationType' => 'read', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'list', - 'riskType' => 'none', - 'chargeType' => 'free', - ], + 'systemTags' => ['operationType' => 'list', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region that you want to query.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n" - ."\n" - .'In this example, zones that support NAT gateways in the UAE (Dubai) region are queried.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'me-east-1', - ], - ], - [ - 'name' => 'AcceptLanguage', - 'in' => 'query', - 'allowEmptyValue' => true, - 'schema' => [ - 'description' => 'The language to display the results. Valid values:'."\n" - ."\n" - .'* **zh-CN** (default): Chinese'."\n" - .'* **en-US**: English'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'zh-CN', - 'default' => 'zh-CN', - ], + 'schema' => ['description' => 'The region ID of the Express Connect circuit.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the region list.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'RegionId', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region that you want to query.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n" - ."\n" - .'In this example, zones that support NAT gateways in the UAE (Dubai) region are queried.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'me-east-1', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'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.'."\n" + ."\n" + .'> If you do not specify this parameter, the system automatically uses the **RequestId** as the **ClientToken**. The **RequestId** may be different.'."\n", 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-426655440000', 'title' => ''], ], [ - 'name' => 'Filter', + 'name' => 'PhysicalConnectionId', 'in' => 'query', - 'allowEmptyValue' => true, - 'style' => 'flat', - 'schema' => [ - 'description' => 'The filter information. You can specify a filter key and a filter value.'."\n", - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => 'The filter key. Only **PrivateLinkEnabled** is supported.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'PrivateLinkEnabled', - ], - 'Value' => [ - 'description' => 'The value of the filter key.'."\n" - ."\n" - .'> If the filter key is set to **PrivateLinkEnabled**, you must specify a filter value. Valid values: **true** and **false**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'true', - ], - ], - 'required' => false, - ], - 'required' => false, - ], + 'schema' => ['description' => 'The ID of the Express Connect circuit.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'pc-bp1qrb3044eqixog****', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => '', + 'description' => 'The request ID.'."\n", 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => '8AE6F367-52EA-535D-9A3D-EF23D70527C8', - ], - 'Zones' => [ - 'description' => 'The list of zones.'."\n", + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => 'A599D38F-3618-18FD-9427-108FB9B5BD26', 'title' => ''], + 'PhysicalConnectionFeatures' => [ + 'description' => 'The list of Express Connect circuit features.'."\n", 'type' => 'array', 'items' => [ - 'description' => '', + 'description' => 'The list of Express Connect circuit features.'."\n", 'type' => 'object', 'properties' => [ - 'ZoneId' => [ - 'description' => 'The ID of the zone where the instance is deployed.'."\n", - 'type' => 'string', - 'example' => 'me-east-1a', - ], - 'LocalName' => [ - 'description' => 'The name of the zone.'."\n", - 'type' => 'string', - 'example' => 'Dubai Zone A', - ], + 'FeatureValue' => ['description' => 'The feature value of the Express Connect circuit. Valid values:'."\n" + ."\n" + .'* **OK**: Supported'."\n" + .'* **NOK**: Not supported'."\n", 'type' => 'string', 'example' => 'OK', 'title' => ''], + 'FeatureKey' => ['description' => 'The feature key of the Express Connect circuit. Valid values:'."\n" + ."\n" + .'* **SubifRateLimit**: subinterface throttling'."\n" + .'* **BFD Capability**: Bidirectional Forwarding Detection (BFD)'."\n" + .'* **DualStack**: Dual stack'."\n" + .'* **CEN**: When a virtual border router (VBR) is attached to a Cloud Enterprise Network (CEN) instance and BGP routes are advertised on the user side, attributes such as **as-path** and **community** are carried.'."\n" + .'* **CENv6**: When a VBR is attached to an IPv6 CEN instance and BGP routes are advertised on the user side, attributes such as **as-path** and **community** are carried.'."\n" + .'* **QOS**: The device supports configuring QOS policies on physical ports.'."\n" + .'* **MSHA**: The device supports fast switching groups between two VBRs.'."\n" + .'* **MULTI_MS_HA**: The device supports a maximum of eight VBRs that can be added to the same ECR.'."\n", 'type' => 'string', 'example' => 'SubifRateLimit', 'title' => ''], ], + 'title' => '', + 'example' => '', ], + 'title' => '', + 'example' => '', ], ], + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ - 404 => [ - [ - 'errorCode' => 'InvalidRegionId.NotFound', - 'errorMessage' => 'The specified RegionId does not exist in our records.', - ], + 400 => [ + ['errorCode' => 'MissingParam.PhysicalConnectionId', 'errorMessage' => 'The PhysicalConnectionId is missing.', 'description' => ''], + ['errorCode' => 'MissingParam.RegionNo', 'errorMessage' => 'The RegionId is missing.', 'description' => ''], + ['errorCode' => 'InvalidPhysicalConnectionId.NotFound', 'errorMessage' => 'The PhysicalConnectionId provided does not exist in our records.', 'description' => ''], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"8AE6F367-52EA-535D-9A3D-EF23D70527C8\\",\\n \\"Zones\\": [\\n {\\n \\"ZoneId\\": \\"me-east-1a\\",\\n \\"LocalName\\": \\"中东1 可用区A\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\n 8AE6F367-52EA-535D-9A3D-EF23D70527C8\\n \\n me-east-1a\\n 中东1 可用区A\\n \\n","errorExample":""}]', - 'title' => 'ListEnhanhcedNatGatewayAvailableZones', - 'description' => 'You can call this operation to query zones that support NAT gateways, including Internet NAT gateways and Virtual Private Cloud (VPC) NAT gateways.', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'ListPhysicalConnectionFeatures', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"A599D38F-3618-18FD-9427-108FB9B5BD26\\",\\n \\"PhysicalConnectionFeatures\\": [\\n {\\n \\"FeatureValue\\": \\"OK\\",\\n \\"FeatureKey\\": \\"SubifRateLimit\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\n A599D38F-3618-18FD-9427-108FB9B5BD26\\n \\n OK\\n SubifRateLimit\\n \\n","errorExample":""}]', ], - 'UpdateNatGatewayNatType' => [ - 'summary' => 'Upgrades a standard NAT gateway to an enhanced NAT gateway.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'ListPrefixLists' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', - 'deprecated' => true, - 'systemTags' => [ - 'operationType' => 'update', - 'riskType' => 'none', - 'chargeType' => 'free', - ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'list', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ - 'name' => 'RegionId', + 'name' => 'PrefixListIds', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => 'The ID of the region where the NAT gateway that you want to upgrade is deployed.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-qingdao', + 'title' => '', + 'description' => 'The IDs of prefix lists to be queried. Valid values of **N** are **1** to **100**, which specifies that you can query up to 100 prefix lists at a time.'."\n", + 'type' => 'array', + 'items' => ['description' => 'The ID of the prefix list.'."\n", 'type' => 'string', 'required' => false, 'example' => 'pl-0b7hwu67****'], + 'required' => false, + 'example' => 'pl-m5estsqsdqwg88hjf****', + 'maxItems' => 100, ], ], [ - 'name' => 'NatGatewayId', + 'name' => 'NextToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the standard NAT gateway to be upgraded.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'ngw-bp1b0lic8uz4r6vf2****', - ], + 'schema' => ['description' => 'The pagination token that is used in the next request to retrieve a new page of results. Valid values:'."\n" + ."\n" + .'* You do not need to specify this parameter for the first request.'."\n" + .'* You must specify the token that is obtained from the previous query as the value of NextToken.'."\n", 'type' => 'string', 'required' => false, 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****'], ], [ - 'name' => 'VSwitchId', + 'name' => 'MaxResults', 'in' => 'query', - 'schema' => [ - 'description' => 'The vSwitch to which the enhanced Internet NAT gateway belongs.'."\n" - ."\n" - .'> If you do not set this parameter, the system generates an Internet NAT gateway in a random vSwitch of a virtual private cloud (VPC).'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'vsw-bp17nszybg8epodke****', - ], + 'schema' => ['description' => 'The number of entries per page. Valid values: **1** to **100**. Default value: **20**.'."\n", 'type' => 'integer', 'format' => 'int64', 'required' => false, 'maximum' => '100', 'minimum' => '1', 'example' => '20', 'default' => '10'], ], [ - 'name' => 'NatType', + 'name' => 'ResourceGroupId', 'in' => 'query', - 'schema' => [ - 'description' => 'The type of Internet NAT gateway. Set the value to **Enhanced**, which specifies an enhanced Internet NAT gateway.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'Enhanced', - ], + 'schema' => ['description' => 'The ID of the resource group to which the prefix list belongs.'."\n", 'type' => 'string', 'required' => false, 'example' => 'rg-bp67acfmxazb4ph****'], ], [ - 'name' => 'DryRun', + 'name' => 'Tags', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => 'Specifies whether to only precheck this request. Valid values:'."\n" - ."\n" - .'**true**: prechecks the request without upgrading the Internet NAT gateway. The system checks whether your AccessKey pair is valid, whether RAM users are granted required permissions, and whether the required parameters are set. If the request fails to pass the precheck, an error code is returned. If the request passes the precheck, the `DryRunOperation` error code is returned.'."\n" - ."\n" - .'**false**: sends the API request. This is the default value. After the request passes the precheck, a 2XX HTTP status code is returned and the Internet NAT gateway is upgraded.'."\n", - 'type' => 'boolean', + 'description' => 'The tags.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => 'The tag key. You can specify up to 20 tag keys. The tag key cannot be an empty string.'."\n" + ."\n" + .'The key cannot exceed 64 characters in length, and can contain digits, periods (.), underscores (\\_), and hyphens (-). The key must start with a letter but cannot start with `aliyun` or `acs:`. The key cannot contain `http://` or `https://`.'."\n", 'type' => 'string', 'required' => false, 'example' => 'FinanceDept'], + 'Value' => ['description' => 'The tag value. You can specify up to 20 tag values. The tag value can be an empty string.'."\n" + ."\n" + .'The tag value cannot exceed 128 characters in length, and can contain digits, periods (.), underscores (\\_), and hyphens (-). The key must start with a letter but cannot start with `aliyun` or `acs:`. The key cannot contain `http://` or `https://`.'."\n", 'type' => 'string', 'required' => false, 'example' => 'FinanceJoshua'], + ], + 'required' => false, + ], 'required' => false, - 'example' => 'false', + 'maxItems' => 10, ], ], [ - 'name' => 'ClientToken', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'You can use the client to generate a value, and you must make sure that each request has a unique token value. The client token can contain only ASCII characters.'."\n" - ."\n" - .'> If you do not specify this parameter, the system automatically uses the value of **RequestId** as the value of **ClientToken**. The **request ID** may be different for each request.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '0c593ea1-3bea-11e9-b96b-88e9fe637760', - ], + 'schema' => ['title' => '', 'description' => 'The ID of the region where you want to query prefix lists.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'example' => 'cn-hangzhou'], ], [ - 'name' => 'RegionId', + 'name' => 'PrefixListName', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region where the NAT gateway that you want to upgrade is deployed.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-qingdao', - ], + 'schema' => ['description' => 'The name of the prefix list to query.'."\n" + ."\n" + .'The name must be 1 to 128 characters in length and cannot start with `http://` or `https://`.'."\n", 'type' => 'string', 'required' => false, 'example' => 'name'], ], ], 'responses' => [ 200 => [ - 'headers' => [], 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'The request ID.'."\n", 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '0ED8D006-F706-4D23-88ED-E11ED28DCAC0', + 'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.'."\n", 'type' => 'string', 'example' => 'DF72F7BB-5DFA-529C-887E-B0BB70D89C4F'], + 'NextToken' => ['description' => 'A pagination token. It can be used in the next request to retrieve a new page of results. Valid values:'."\n" + ."\n" + .'* If **NextToken** is empty, no next page exists.'."\n" + .'* If a value is returned for **NextToken**, the value indicates the token that is used for the next request to retrieve a new page of results.'."\n", 'type' => 'string', 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****'], + 'TotalCount' => ['description' => 'The total number of entries returned.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '1'], + 'MaxResults' => ['description' => 'The number of entries per page. Valid values: **1** to **100**. Default value: **20**.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '20'], + 'PrefixLists' => [ + 'description' => 'The information about the prefix lists.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'PrefixListId' => ['title' => '', 'description' => 'The ID of the prefix list.'."\n", 'type' => 'string', 'example' => 'pl-m5estsqsdqwg88hjf****'], + 'PrefixListName' => ['title' => '', 'description' => 'The name of the prefix list.'."\n", 'type' => 'string', 'example' => 'test'], + 'PrefixListDescription' => ['title' => '', 'description' => 'The description of the prefix list.'."\n", 'type' => 'string', 'example' => 'Created with oss service by system.'], + 'IpVersion' => ['title' => 'IpVersion', 'description' => 'The IP version of the prefix list. Valid values:'."\n" + ."\n" + .'* **IPV4**'."\n" + .'* **IPV6**'."\n", 'type' => 'string', 'example' => 'IPV4'], + 'CreationTime' => ['title' => '', 'description' => 'The time when the prefix list was created.'."\n", 'type' => 'string', 'example' => '2022-07-12T14:22:32Z'], + 'CidrBlocks' => [ + 'title' => '', + 'description' => 'The CIDR block specified in the prefix list.'."\n", + 'type' => 'array', + 'items' => ['description' => 'The CIDR block specified in the prefix list.'."\n", 'type' => 'string', 'example' => '100.115.XX.XX/24'], + ], + 'ShareType' => ['description' => 'Indicates whether the prefix list is shared. Valid values:'."\n" + ."\n" + .'* **Shared**: The prefix list is shared.'."\n" + .'* If an empty value is returned, the prefix list is not shared.'."\n", 'type' => 'string', 'example' => 'Shared'], + 'MaxEntries' => ['description' => 'The maximum number of CIDR blocks that you can specify in the prefix list.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '10'], + 'Status' => ['description' => 'The status of the prefix list. Valid values:'."\n" + ."\n" + .'* **Created**'."\n" + .'* **Deleted**'."\n" + .'* **Modifying**'."\n", 'type' => 'string', 'example' => 'Created'], + 'OwnerId' => ['description' => 'The Alibaba Cloud account to which the prefix list belongs.'."\n", 'type' => 'string', 'example' => '1210123456123456'], + 'PrefixListStatus' => ['description' => 'The status of the prefix list. Valid values:'."\n" + ."\n" + .'* **Created**'."\n" + .'* **Deleted**'."\n" + .'* **Modifying**'."\n" + ."\n" + .'> This parameter is the same as the **Status** parameter.'."\n", 'type' => 'string', 'example' => 'Created'], + 'RegionId' => ['description' => 'The region ID of the prefix list.'."\n", 'type' => 'string', 'example' => 'cn-hangzhou'], + 'ResourceGroupId' => ['description' => 'The ID of the resource group to which the prefix list belongs.'."\n", 'type' => 'string', 'example' => 'rg-bp67acfmxazb4ph****'], + 'Tags' => [ + 'description' => 'The tags.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => 'The tag key.'."\n", 'type' => 'string', 'example' => 'FinanceDept'], + 'Value' => ['description' => 'The tag value.'."\n", 'type' => 'string', 'example' => 'FinanceJoshua'], + ], + ], + ], + 'PrefixListType' => ['title' => '前缀列表类型', 'description' => 'The type of the prefix list.', 'type' => 'string', 'example' => 'Custom'], + ], + ], ], ], - 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'OperationUnsupported.NatConvert', - 'errorMessage' => 'The NAT gateway conversion function is not supported.', - ], - [ - 'errorCode' => 'OperationFailed.VpcNotExist', - 'errorMessage' => 'The specified VPC does not exist.', - ], - [ - 'errorCode' => 'OperationFailed.VswNotExist', - 'errorMessage' => 'The specified VSwitch does not exist.', - ], - [ - 'errorCode' => 'OperationFailed.NatTypeNotEnhanced', - 'errorMessage' => 'Operation failed because the specified NAT gateway type is not enhanced.', - ], - [ - 'errorCode' => 'OperationFailed.NatGwBindWithBandwidthPackage', - 'errorMessage' => 'Operation failed because the NAT gateway is bound to bandwidth packages.', - ], - [ - 'errorCode' => 'IncorrectStatus.NatGateway', - 'errorMessage' => 'The status of NAT gateway is incorrect.', - ], - [ - 'errorCode' => 'OperationFailed.EipInMiddleStatus', - 'errorMessage' => 'Operation failed because the status of EIP associated with the specified NAT gateway is abnormal.', - ], - [ - 'errorCode' => 'OperationFailed.SnatInMiddleStatus', - 'errorMessage' => 'Operation failed because the status of the SNAT entry of the specified NAT gateway is abnormal.', - ], - [ - 'errorCode' => 'OperationFailed.DnatInMiddleStatus', - 'errorMessage' => 'Operation failed because the status of the DNAT entry associated with the NAT gateway is abnormal.', - ], - [ - 'errorCode' => 'OperationFailed.NatGwRouteInMiddleStatus', - 'errorMessage' => 'Operation failed because the status of the route entry associated with the NAT gateway is abnormal.', - ], - [ - 'errorCode' => 'OperationFailed.EnhancedInventoryNotEnough', - 'errorMessage' => 'The enhanced NAT gateway inventory is insufficient in the specified zone.', - ], - [ - 'errorCode' => 'OperationFailed.EnhancedUserIsUnAuthorized', - 'errorMessage' => 'Operation failed because the user is not authorized to create an enhanced NAT gateway.', - ], - [ - 'errorCode' => 'OperationFailed.EnhancedRegion', - 'errorMessage' => 'Operation failed because enhanced NAT gateways are not available for sale in the specified region.', - ], - [ - 'errorCode' => 'OperationFailed.EnhancedQuotaExceed', - 'errorMessage' => 'Operation failed because the maximum number of enhanced NAT gateways in the same VPC is exceeded.', - ], - [ - 'errorCode' => 'InvalidBandwidthPackageIdNumber.NotSupported', - 'errorMessage' => 'The number of BandwidthPackageIds exceeds the limit.', - ], - [ - 'errorCode' => 'OperationFailed.VswNotBelongToVpc', - 'errorMessage' => 'Operation failed because the specified VSwitch is not bound to the same VPC with NAT gateway.', - ], - [ - 'errorCode' => 'OperationUnsupported.VpcAttachedCen', - 'errorMessage' => 'Operation failed because the VPC is attached to CEN.', - ], - [ - 'errorCode' => 'OperationUnsupported.RouterInterfaceExist', - 'errorMessage' => 'Operation failed because the VPC has a router interface.', - ], - [ - 'errorCode' => 'OperationFailed.VRouterNotExist', - 'errorMessage' => 'Operation failed because the VRouter does not exist.', - ], - [ - 'errorCode' => 'OperationFailed.SnatQuotaExceed', - 'errorMessage' => 'Operation failed because the maximum number of SNAT entry is exceeded.', - ], - [ - 'errorCode' => 'OperationFailed.DnatQuotaExceed', - 'errorMessage' => 'Operation failed because the maximum number of forward entry is exceeded.', - ], - [ - 'errorCode' => 'OperationFailed.VswBindedRouteTable', - 'errorMessage' => 'The operation failed because a custom route table that contains subnet routes is associated with the specified VSwitch.', - ], - [ - 'errorCode' => 'OperationFailed.VswBindedAcl', - 'errorMessage' => 'The operation failed because a network ACL is associated with the specified VSwitch.', - ], - [ - 'errorCode' => 'Forbidden.Convert', - 'errorMessage' => 'User does not have permission to operate.', - ], - [ - 'errorCode' => 'NATGW_NOT_EXIST', - 'errorMessage' => 'The specified NAT gateway does not exist.', - ], - ], - 404 => [ - [ - 'errorCode' => 'InvalidRegionId.NotFound', - 'errorMessage' => 'The specified RegionId does not exist in our records.', - ], + ['errorCode' => 'IllegalParam.NextToken', 'errorMessage' => 'The specified NextToken is invalid.', 'description' => 'The specified NextToken is invalid.'], ], ], - 'staticInfo' => [ - 'noSubstitutionReason' => '无替代API,历史原因导致该API被标记为弃用。', - ], - 'eventInfo' => [ - 'enable' => false, - 'eventNames' => [], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"0ED8D006-F706-4D23-88ED-E11ED28DCAC0\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 0ED8D006-F706-4D23-88ED-E11ED28DCAC0\\n","errorExample":""}]', - 'title' => 'UpdateNatGatewayNatType', - 'description' => 'Before you call this operation, take note of the following limits:'."\n" - ."\n" - .'* **UpdateNatGatewayNatType** is an asynchronous operation. After you send a request to call this operation, the system returns a request ID and the NAT gateway is still being upgraded in the backend. You can call the GetNatGatewayConvertStatus operation to query the upgrade progress of a NAT gateway. For more information, see [GetNatGatewayConvertStatus](~~184744~~).'."\n" - ."\n" - .' * If the NAT gateway is in the **processing** state, the NAT gateway is being upgraded. You can only query the status of the NAT gateway but cannot perform other operations.'."\n" - .' * If the NAT gateway is in the **successful** state, the NAT gateway is upgraded.'."\n" - .' * If the NAT gateway is in the **failed** state, the system failed to upgrade the NAT gateway.'."\n" - ."\n" - .'* You cannot repeatedly call the **UpdateNatGatewayNatType** operation for the same VPN gateway within the specified period of time.'."\n" - ."\n" - .'* The billing method and billable items remain the same after the upgrade.'."\n" - ."\n" - .'* It takes about five minutes to upgrade a standard NAT gateway to an enhanced NAT gateway. During the upgrade, transient connection errors may occur once or twice. The service can be recovered by reconnection. You can determine whether to enable automatic reconnection or use manual reconnection based on your business requirements.'."\n" - ."\n" - .'* You can only upgrade standard NAT gateways to enhanced NAT gateways. You are not allowed to downgrade enhanced NAT gateways to standard NAT gateways.', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'ListPrefixLists', + 'summary' => 'Queries prefix lists.', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeNatGatewayAssociateNetworkInterfaces' => [ - 'summary' => 'Queries elastic network interfaces (ENIs) associated with a virtual private cloud (VPC) NAT gateway when the VPC NAT gateway serves as a PrivateLink service resource. This feature is not publicly available.', - 'methods' => [ - 'post', - 'get', + 'changeSet' => [ + ['createdAt' => '2023-12-12T07:04:34.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2023-01-06T09:33:56.000Z', 'description' => 'Request parameters changed, Response parameters changed'], + ['createdAt' => '2022-11-07T02:59:35.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2022-07-18T12:44:46.000Z', 'description' => 'Request parameters changed, Response parameters changed'], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'vpc:ListPrefixLists', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'conditional', 'product' => 'VPC', 'resourceType' => 'PrefixList', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:prefixlist/*'], + ], + ], + ], ], + ], + 'ListPublicIpAddressPoolCidrBlocks' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -56811,322 +44109,391 @@ ], 'operationType' => 'read', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'list', - 'riskType' => 'none', - 'chargeType' => 'free', - ], + 'systemTags' => ['operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', 'autoTest' => true, 'tenantRelevance' => 'tenant'], 'parameters' => [ [ - 'name' => 'RegionId', + 'name' => 'PublicIpAddressPoolId', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the Internet NAT gateway.'."\n" - ."\n" - .'Call the [DescribeRegions](~~36063~~) operation to query the region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The ID of the IP address pool.'."\n", 'type' => 'string', 'required' => true, 'example' => 'pippool-6wetvn6fumkgycssx****', 'title' => ''], ], [ - 'name' => 'NatGatewayId', + 'name' => 'CidrBlock', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the NAT gateway.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'ngw-bp1uewa15k4iy5770****', - ], + 'schema' => ['description' => 'The CIDR blocks.'."\n", 'type' => 'string', 'required' => false, 'example' => '47.0.XX.XX/24', 'title' => ''], ], [ - 'name' => 'ResourceGroupId', + 'name' => 'MaxResults', 'in' => 'query', - 'schema' => [ - 'description' => 'The resource group ID.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'rg-acfmxazdjdhd****', - ], + 'schema' => ['description' => 'The maximum number of entries to return. Valid values: **10** to **100**. Default value: **10**.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '10', 'title' => ''], ], [ - 'name' => 'Tag', + 'name' => 'NextToken', 'in' => 'query', - 'style' => 'repeatList', + 'schema' => ['description' => 'The token that is used for the next query. Valid values:'."\n" + ."\n" + .'* If this is your first query and no next queries are to be sent, ignore this parameter.'."\n" + .'* If a subsequent query is to be sent, set the parameter to the value of NextToken that is returned from the last call.'."\n", 'type' => 'string', 'required' => false, 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', 'title' => ''], + ], + [ + 'name' => 'DryRun', + 'in' => 'query', + 'schema' => ['description' => 'Specifies whether to perform a dry run. Valid values:'."\n" + ."\n" + .'* **true**: performs a dry run. The system checks the required parameters, request syntax, and 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.'."\n" + .'* **false** (default): performs a dry run and sends the request. If the request passes the dry run, a 2xx HTTP status code is returned and the operation is performed.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => ['description' => 'The region ID of the CIDR blocks.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-chengdu', 'title' => ''], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => 'The information about resource tags.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The tag.'."\n", - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => 'The tag key You can specify at most 20 tag keys. It cannot be an empty string,'."\n" - ."\n" - .'The tag key can be up to 64 characters in length and cannot contain `http://` or `https://`. The tag key cannot start with `aliyun` or `acs:`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'FinanceDept', - ], - 'Value' => [ - 'description' => 'The tag key. You can specify at most 20 tag keys. It cannot be an empty string.'."\n" - ."\n" - .'The tag key can be up to 64 characters in length and cannot contain `http://` or `https://`. The tag key cannot start with `aliyun` or `acs:`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'FinanceJoshua', + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => '4EC47282-1B74-4534-BD0E-403F3EE64CAF', 'title' => ''], + 'NextToken' => ['description' => 'The token that is used for the next query. Valid values:'."\n" + ."\n" + .'* If **NextToken** was not returned, it indicates that no additional results exist.'."\n" + .'* If **NextToken** is returned, the value is the token that is used for the next query.'."\n", 'type' => 'string', 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', 'title' => ''], + 'TotalCount' => ['description' => 'The maximum number of entries returned. Valid values: **10** to **100**. Default value: **10**.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '10', 'title' => ''], + 'PublicIpPoolCidrBlockList' => [ + 'description' => 'The total number of entries returned.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'PublicIpAddressPoolId' => ['description' => 'The information about the CIDR blocks.'."\n", 'type' => 'string', 'example' => 'pippool-6wetvn6fumkgycssx****', 'title' => ''], + 'CidrBlock' => ['description' => 'The ID of the IP address pool.'."\n", 'type' => 'string', 'example' => '47.0.XX.XX/24', 'title' => ''], + 'CreationTime' => ['description' => 'The CIDR blocks.'."\n", 'type' => 'string', 'example' => '2022-05-10T01:37:38Z', 'title' => ''], + 'Status' => ['description' => 'The time when the CIDR block was created. The time is displayed in `YYYY-MM-DDThh:mm:ssZ` format.'."\n", 'type' => 'string', 'example' => 'Created', 'title' => ''], + 'UsedIpNum' => ['description' => 'The status of the CIDR block in the IP address pool. Valid values:'."\n" + ."\n" + .'* **Created**: available'."\n" + .'* **Deleting**: being deleted'."\n" + .'* **Modifying**: being modified'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '20', 'title' => ''], + 'TotalIpNum' => ['description' => 'The total number of available IP addresses in the CIDR block.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '20', 'title' => ''], + ], + 'title' => '', + 'example' => '', ], + 'title' => '', + 'example' => '', ], - 'required' => false, ], - 'required' => false, - 'maxItems' => 21, + 'title' => '', + 'example' => '', ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'IllegalParam.NextToken', 'errorMessage' => 'The specified NextToken is invalid.', 'description' => 'The specified NextToken is invalid.'], + ['errorCode' => 'MissingParam.PublicIpAddressPoolId', 'errorMessage' => 'The parameter PublicIpAddressPoolId is missing.', 'description' => 'The parameter PublicIpAddressPoolId is missing.'], + ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'ListPublicIpAddressPoolCidrBlocks', + 'summary' => 'Queries CIDR blocks in an IP address pool.', + 'changeSet' => [ + ['createdAt' => '2024-07-31T02:45:59.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-05-15T06:29:29.000Z', 'description' => 'Response parameters changed'], + ], + 'ramActions' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"4EC47282-1B74-4534-BD0E-403F3EE64CAF\\",\\n \\"NextToken\\": \\"FFmyTO70tTpLG6I3FmYAXGKPd****\\",\\n \\"TotalCount\\": 10,\\n \\"PublicIpPoolCidrBlockList\\": [\\n {\\n \\"PublicIpAddressPoolId\\": \\"pippool-6wetvn6fumkgycssx****\\",\\n \\"CidrBlock\\": \\"47.0.XX.XX/24\\",\\n \\"CreationTime\\": \\"2022-05-10T01:37:38Z\\",\\n \\"Status\\": \\"Created\\",\\n \\"UsedIpNum\\": 20,\\n \\"TotalIpNum\\": 20\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\n 4EC47282-1B74-4534-BD0E-403F3EE64CAF\\n FFmyTO70tTpLG6I3FmYAXGKPd****\\n 10\\n 10\\n \\n pippool-6wetvn6fumkgycssx****\\n 47.0.XX.XX/24\\n 2022-05-10T01:37:38Z\\n Created\\n 20\\n 20\\n \\n","errorExample":""}]', + ], + 'ListPublicIpAddressPools' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'ClientToken', + 'AK' => [], + ], + ], + 'operationType' => 'readAndWrite', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', 'autoTest' => true, 'tenantRelevance' => 'tenant'], + 'parameters' => [ + [ + 'name' => 'PublicIpAddressPoolIds', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + 'description' => 'The IDs of the IP address pool.'."\n" ."\n" - .'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.'."\n" + .'You can enter up to 100 IDs.'."\n", + 'type' => 'array', + 'items' => ['description' => 'The ID of the IP address pool.'."\n" ."\n" - .'> If you do not set this parameter, the value of **RequestId** is used.**** The **RequestId** may be different for each request.'."\n", - 'type' => 'string', + .'You can enter up to 100 IDs.'."\n", 'type' => 'string', 'required' => false, 'example' => 'pippool-6wetvn6fumkgycssx****', 'title' => ''], 'required' => false, - 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3FF****', + 'maxItems' => 100, + 'minItems' => 0, + 'title' => '', + 'example' => '', ], ], [ - 'name' => 'RegionId', + 'name' => 'Status', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the Internet NAT gateway.'."\n" - ."\n" - .'Call the [DescribeRegions](~~36063~~) operation to query the region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The status of the IP address pool. Valid values:'."\n" + ."\n" + .'* **Created**'."\n" + .'* **Deleting**'."\n" + .'* **Modifying**'."\n", 'type' => 'string', 'required' => false, 'example' => 'Created', 'title' => ''], ], [ - 'name' => 'Filter', + 'name' => 'MaxResults', 'in' => 'query', - 'style' => 'flat', + 'schema' => ['description' => 'The maximum number of entries to return. Valid values: **10** to **100**. Default value: **10**.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '10', 'title' => ''], + ], + [ + 'name' => 'NextToken', + 'in' => 'query', + 'schema' => ['description' => 'The pagination token that is used in the next request to retrieve a new page of results.'."\n" + ."\n" + .'* You do not need to specify this parameter for the first request.'."\n" + .'* You must specify the token that is obtained from the previous query as the value of NextToken.'."\n", 'type' => 'string', 'required' => false, 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', 'title' => ''], + ], + [ + 'name' => 'Isp', + 'in' => 'query', + 'schema' => ['description' => 'The line type. Valid values:'."\n" + ."\n" + .'* **BGP** (default): BGP (Multi-ISP) line'."\n" + .'* **BGP_PRO**: BGP (Multi-ISP) Pro line'."\n" + ."\n" + .'For more information about the BGP (Multi-ISP) line and BGP (Multi-ISP) Pro line, see the "Line types" section of [What is EIP?](~~32321~~)'."\n" + ."\n" + .'If you are allowed to use single-ISP bandwidth, you can also choose one of the following values:'."\n" + ."\n" + .'* **ChinaTelecom**'."\n" + .'* **ChinaUnicom**'."\n" + .'* **ChinaMobile**'."\n" + .'* **ChinaTelecom_L2**'."\n" + .'* **ChinaUnicom_L2**'."\n" + .'* **ChinaMobile_L2**'."\n" + ."\n" + .'If your services are deployed in China East 1 Finance, this parameter is required and you must set the parameter to **BGP_FinanceCloud**.'."\n", 'type' => 'string', 'required' => false, 'example' => 'BGP', 'title' => ''], + ], + [ + 'name' => 'Name', + 'in' => 'query', + 'schema' => ['description' => 'The name of the IP address pool.'."\n" + ."\n" + .'If you enter a name, the name must be 1 to 128 characters in length and can contain digits, periods (.), underscores (\\_), and hyphens (-). The name must start with a letter but cannot start with `http://` or `https://`.'."\n", 'type' => 'string', 'required' => false, 'example' => 'AddressPoolName', 'title' => ''], + ], + [ + 'name' => 'DryRun', + 'in' => 'query', + 'schema' => ['description' => 'Specifies whether to perform a dry run, without performing the actual request. Valid values:'."\n" + ."\n" + .'* **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.'."\n" + .'* **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.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], + ], + [ + 'name' => 'ResourceGroupId', + 'in' => 'query', + 'schema' => ['description' => 'The ID of the resource group to which the IP address pool belongs.'."\n", 'type' => 'string', 'required' => false, 'example' => 'rg-acfmxazb4pcdvf****', 'title' => ''], + ], + [ + 'name' => 'Tags', + 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => 'The filter information. You can specify a filter key and a filter value.'."\n", + 'description' => 'The tags to add to the resource.'."\n", 'type' => 'array', 'items' => [ - 'description' => 'The information about the filter.'."\n", + 'description' => '', 'type' => 'object', 'properties' => [ - 'Key' => [ - 'description' => 'The filter key.'."\n" - ."\n" - .'* ResourceId'."\n" - ."\n" - .'> Specify the service resource ID in the Value field.'."\n" - ."\n" - .'* NetworkInterfaceId'."\n" - ."\n" - .'> Specify the ENI ID in the Value field.'."\n" - ."\n" - .'* ResourceOwnerId'."\n" - ."\n" - .'> Specify the UID of the account to which the service resource belongs.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'ResourceId', - ], - 'Value' => [ - 'description' => 'Separate multiple values with commas (,).'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'ep-8psre8c8936596cd****', - ], + 'Key' => ['description' => 'The tag key to add to the resource. You can specify up to 20 tag keys. The tag key cannot be an empty string.'."\n" + ."\n" + .'The tag key can be up to 128 characters in length. It cannot start with `aliyun` or `acs:`, and cannot contain `http://` or `https://`.'."\n", 'type' => 'string', 'required' => false, 'example' => 'FinanceDept', 'title' => ''], + 'Value' => ['description' => 'The tag value to add to the resource. You can specify up to 20 tag values. The tag value can be an empty string.'."\n" + ."\n" + .'The tag key can be up to 128 characters in length. It cannot start with `aliyun` or `acs:` and cannot contain `http://` or `https://`.'."\n", 'type' => 'string', 'required' => false, 'example' => 'FinanceJoshua', 'title' => ''], ], 'required' => false, + 'title' => '', + 'example' => '', ], 'required' => false, + 'maxItems' => 10, + 'title' => '', + 'example' => '', ], ], [ - 'name' => 'NextToken', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The pagination token that is used in the next request to retrieve a new page of results. Valid value:'."\n" - ."\n" - .'* If no value is returned for NetToken, you do not need to specify this parameter.'."\n" - .'* If a value is returned for NextToken, you must specify the token that is obtained from the previous query as the value of **NextToken**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'caeba0bbb2be03f84eb48b699f0a****', - ], + 'schema' => ['description' => 'The ID of the region in which the IP address pool that you want to query resides.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the region ID.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-chengdu', 'title' => ''], ], [ - 'name' => 'MaxResults', + 'name' => 'SecurityProtectionEnabled', 'in' => 'query', - 'schema' => [ - 'description' => 'The number of entries to return per page. Valid values: **1 to 100**. Default value: **20**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '20', - ], + 'schema' => ['description' => 'Specifies whether to enable Anti-DDoS Pro/Premium. Valid values:'."\n" + ."\n" + .'* **false**'."\n" + .'* **true**'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'true', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'description' => 'The response parameters.'."\n", 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'Request ID.'."\n", - 'type' => 'string', - 'example' => '2315DEB7-5E92-423A-91F7-4C1EC9AD****', - ], - 'NextToken' => [ - 'description' => 'Indicates whether the token for the next query exists. Valid value:'."\n" - ."\n" - .'* If **NextToken** is empty, there is no next page.'."\n" - .'* If the value returned of **NextToken** is not empty, the value indicates the token that is used for the next query.'."\n", - 'type' => 'string', - 'example' => 'caeba0bbb2be03f84eb48b699f0a****', - ], - 'MaxResults' => [ - 'description' => 'The number of entries to return per page. Valid values: **1 to 100**. Default value: **20**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '20', - ], - 'NatGatewayId' => [ - 'description' => 'The ID of the VPC NAT gateway.'."\n", - 'type' => 'string', - 'example' => 'ngw-bp1uewa15k4iy5770****', - ], - 'TotalCount' => [ - 'description' => 'The total number of entries.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'AssociateNetworkInterfaces' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'AssociateNetworkInterface' => [ - 'description' => 'The ENIs associated with the VPC NAT gateway.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The details of the ENI.'."\n", - 'type' => 'object', - 'properties' => [ - 'NetworkInterfaceId' => [ - 'description' => 'The ID of the ENI.'."\n", - 'type' => 'string', - 'example' => 'eni-gw8g131ef2dnbu3k****', - ], - 'ResourceId' => [ - 'description' => 'The ID of the service resource.'."\n", - 'type' => 'string', - 'example' => 'ep-8psre8c8936596cd****', - ], - 'ResourceType' => [ - 'description' => 'The type of the service resource.'."\n", - 'type' => 'string', - 'example' => 'PrivateLink', - ], - 'ResourceOwnerId' => [ - 'description' => 'The UID of the account to which the service resource belongs.'."\n", - 'type' => 'string', - 'example' => '138859086900****', - ], - 'IPv4Sets' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'IPv4Set' => [ - 'description' => 'The IPv4 addresses of the ENIs.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The IPv4 address of the ENI.'."\n", - 'type' => 'object', - 'properties' => [ - 'IPv4Address' => [ - 'description' => 'The primary private IP address of the ENI.'."\n", - 'type' => 'string', - 'example' => '172.17.**.**', - ], - 'Primary' => [ - 'description' => 'Indicates whether the IP address is the primary private IP address. Valid values:'."\n" - ."\n" - .'* true: Primary private IP address'."\n" - .'* false: Secondary private IP addresses'."\n", - 'type' => 'boolean', - 'example' => 'true', - ], - ], - ], - ], - ], - ], - 'TunnelIndex' => [ - 'description' => 'The ID of the tunnel index.'."\n", - 'type' => 'string', - 'example' => '41a5489ea2a0****', - ], - 'ResourceVpcId' => [ - 'description' => 'VPC ID of the service resource', - 'type' => 'string', - 'example' => 'vpc-bp1di7uewzmtvfuq8****', + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '4EC47282-1B74-4534-BD0E-403F3EE64CAF', 'title' => ''], + 'NextToken' => ['description' => 'A pagination token. It can be used in the next request to retrieve a new page of results.'."\n" + ."\n" + .'* If **NextToken** is empty, no next page exists.'."\n" + .'* If a value is returned for **NextToken**, the value is used to retrieve a new page of results.'."\n", 'type' => 'string', 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', 'title' => ''], + 'TotalCount' => ['description' => 'The total number of entries returned.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''], + 'PublicIpAddressPoolList' => [ + 'description' => 'The IP address pools.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The structure of the IP address pool.'."\n", + 'type' => 'object', + 'properties' => [ + 'PublicIpAddressPoolId' => ['description' => 'The ID of the IP address pool.'."\n", 'type' => 'string', 'example' => 'pippool-6wetvn6fumkgycssx****', 'title' => ''], + 'RegionId' => ['description' => 'The region ID of the IP address pool.'."\n", 'type' => 'string', 'example' => 'cn-chengdu', 'title' => ''], + 'CreationTime' => ['description' => 'The time when the IP address pool was created. The time is displayed in the `YYYY-MM-DDThh:mm:ssZ` format.'."\n", 'type' => 'string', 'example' => '2022-05-10T01:37:38Z', 'title' => ''], + 'Isp' => ['description' => 'The line type.'."\n" + ."\n" + .'* **BGP**: BGP (Multi-ISP)'."\n" + .'* **BGP_PRO**: BGP (Multi-ISP) Pro'."\n" + ."\n" + .'For more information about BGP (Multi-ISP) and BGP (Multi-ISP) Pro, see [EIP line types](~~32321~~).'."\n" + ."\n" + .'If you are allowed to use single-ISP bandwidth, one of the following values may be returned:'."\n" + ."\n" + .'* **ChinaTelecom**'."\n" + .'* **ChinaUnicom**'."\n" + .'* **ChinaMobile**'."\n" + .'* **ChinaTelecom_L2**'."\n" + .'* **ChinaUnicom_L2**'."\n" + .'* **ChinaMobile_L2**'."\n" + ."\n" + .'If your services are deployed in China East 1 Finance, **BGP_FinanceCloud** is returned.'."\n", 'type' => 'string', 'example' => 'BGP', 'title' => ''], + 'Name' => ['description' => 'The name of the IP address pool.'."\n", 'type' => 'string', 'example' => 'AddressPoolName', 'title' => ''], + 'Status' => ['description' => 'The status of the IP address pool.'."\n" + ."\n" + .'* **Created**'."\n" + .'* **Deleting**'."\n" + .'* **Modifying**'."\n", 'type' => 'string', 'example' => 'Created', 'title' => ''], + 'Description' => ['description' => 'The description of the IP address pool.'."\n", 'type' => 'string', 'example' => 'AddressPoolDescription', 'title' => ''], + 'TotalIpNum' => ['description' => 'The total number of available IP addresses in the public IP address pool.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '100', 'title' => ''], + 'UsedIpNum' => ['description' => 'The number of used IP addresses in the public IP address pool.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '20', 'title' => ''], + 'IpAddressRemaining' => ['description' => 'Indicates whether idle IP addresses exist.'."\n" + ."\n" + .'* **true**'."\n" + .'* **false**'."\n", 'type' => 'boolean', 'example' => 'true', 'title' => ''], + 'UserType' => ['description' => 'The user type. Valid values:'."\n" + ."\n" + .'* **admin**: An administrator can delete, modify, and query IP address pools, and can assign elastic IP addresses (EIPs) to the pool.'."\n" + .'* **user**: A user can only assign EIPs to the IP address pool and query the IP address pool, but cannot modify or delete the IP address pool.'."\n", 'type' => 'string', 'example' => 'admin', 'title' => ''], + 'OwnerId' => ['description' => 'The Alibaba Cloud account to which the IP address pool belongs.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '121012345612*****', 'title' => ''], + 'ShareType' => ['description' => 'The sharing type of the IP address pool.'."\n" + ."\n" + .'* If **Shared** is returned, the IP address pool is shared.'."\n" + .'* If an empty value is returned, the IP address pool is not shared.'."\n", 'type' => 'string', 'example' => 'Shared', 'title' => ''], + 'ResourceGroupId' => ['description' => 'The ID of the resource group to which the IP address pool belongs.'."\n", 'type' => 'string', 'example' => 'rg-acfmxazb4pcdvf****', 'title' => ''], + 'Tags' => [ + 'description' => 'The tag list.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => 'The key of tag N.'."\n", 'type' => 'string', 'example' => 'FinanceDept', 'title' => ''], + 'Value' => ['description' => 'The value of tag N.'."\n", 'type' => 'string', 'example' => 'FinanceDept', 'title' => ''], ], + 'title' => '', + 'example' => '', ], + 'title' => '', + 'example' => '', + ], + 'BizType' => ['description' => 'The service type of the IP address pool.'."\n" + ."\n" + .'* **CloudBox** Only cloud box users can select this type.'."\n" + .'* **Default** (default)'."\n", 'type' => 'string', 'example' => 'CloudBox', 'title' => ''], + 'Zones' => [ + 'description' => 'The zone of the IP address pool. This parameter is returned only when the service type of the IP address pool is CloudBox.'."\n", + 'type' => 'array', + 'items' => ['description' => 'The zone of the IP address pool. This parameter is returned only when the service type of the IP address pool is CloudBox.'."\n", 'type' => 'string', 'example' => 'ap-southeast-1-lzdvn-cb', 'title' => ''], + 'title' => '', + 'example' => '', + ], + 'SecurityProtectionTypes' => [ + 'description' => 'The edition of Anti-DDoS.'."\n" + ."\n" + .'* If you do not set this parameter, Anti-DDoS Origin Basic is used.'."\n" + .'* If the value is set to **AntiDDoS_Enhanced**, Anti-DDoS Pro/Premium is used.'."\n", + 'type' => 'array', + 'items' => ['description' => 'The edition of Anti-DDoS.'."\n" + ."\n" + .'* If you do not set this parameter, Anti-DDoS Origin Basic is used.'."\n" + .'* If the value is set to **AntiDDoS_Enhanced**, Anti-DDoS Pro/Premium is used.'."\n", 'type' => 'string', 'example' => 'AntiDDoS_Enhanced', 'title' => ''], + 'title' => '', + 'example' => '', ], + 'BusinessStatus' => ['description' => 'The status of the IP address pool.'."\n" + ."\n" + .'* **Normal**'."\n" + .'* **FinancialLocked**'."\n", 'type' => 'string', 'example' => 'Normal', 'title' => ''], ], + 'title' => '', + 'example' => '', ], - ], - 'Count' => [ - 'description' => 'Number of associated ENIs.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '0', + 'title' => '', + 'example' => '', ], ], - 'description' => '', + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InstanceNotExist.NatGatewayId', - 'errorMessage' => 'The NAT gateway instance is not exist.', - ], - [ - 'errorCode' => 'IllegalParam.ResourceOwnerId', - 'errorMessage' => 'The param of resource owner ID is illegal.', - ], + ['errorCode' => 'IllegalParam.Isp', 'errorMessage' => 'The param of Isp [%s] is illegal.', 'description' => 'The error message returned because the Isp parameter is set to an invalid value. Specify a valid value and try again.'], + ['errorCode' => 'IllegalParam.NextToken', 'errorMessage' => 'The specified NextToken is invalid.', 'description' => 'The specified NextToken is invalid.'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"2315DEB7-5E92-423A-91F7-4C1EC9AD****\\",\\n \\"NextToken\\": \\"caeba0bbb2be03f84eb48b699f0a****\\",\\n \\"MaxResults\\": 20,\\n \\"NatGatewayId\\": \\"ngw-bp1uewa15k4iy5770****\\",\\n \\"TotalCount\\": 1,\\n \\"AssociateNetworkInterfaces\\": {\\n \\"AssociateNetworkInterface\\": [\\n {\\n \\"NetworkInterfaceId\\": \\"eni-gw8g131ef2dnbu3k****\\",\\n \\"ResourceId\\": \\"ep-8psre8c8936596cd****\\",\\n \\"ResourceType\\": \\"PrivateLink\\",\\n \\"ResourceOwnerId\\": \\"138859086900****\\",\\n \\"IPv4Sets\\": {\\n \\"IPv4Set\\": [\\n {\\n \\"IPv4Address\\": \\"172.17.**.**\\",\\n \\"Primary\\": true\\n }\\n ]\\n },\\n \\"TunnelIndex\\": \\"41a5489ea2a0****\\",\\n \\"ResourceVpcId\\": \\"vpc-bp1di7uewzmtvfuq8****\\"\\n }\\n ]\\n },\\n \\"Count\\": 0\\n}","type":"json"}]', - 'title' => 'DescribeNatGatewayAssociateNetworkInterfaces', - 'translator' => 'machine', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'ListPublicIpAddressPools', + 'summary' => 'Queries available IP address pools.', + 'description' => "\n" + ."\n", + 'changeSet' => [ + ['createdAt' => '2024-08-08T09:25:22.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2024-07-31T02:45:59.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-06-06T09:03:01.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-05-27T11:37:27.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2024-01-22T09:35:54.000Z', 'description' => 'Request parameters changed, Response parameters changed'], + ['createdAt' => '2023-08-08T02:41:57.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2023-05-15T06:29:29.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2023-01-06T09:40:58.000Z', 'description' => 'Request parameters changed, Response parameters changed'], + ['createdAt' => '2022-11-24T13:02:53.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2022-10-27T13:18:26.000Z', 'description' => 'Response parameters changed'], + ], + 'ramActions' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"4EC47282-1B74-4534-BD0E-403F3EE64CAF\\",\\n \\"NextToken\\": \\"FFmyTO70tTpLG6I3FmYAXGKPd****\\",\\n \\"TotalCount\\": 1,\\n \\"PublicIpAddressPoolList\\": [\\n {\\n \\"PublicIpAddressPoolId\\": \\"pippool-6wetvn6fumkgycssx****\\",\\n \\"RegionId\\": \\"cn-chengdu\\",\\n \\"CreationTime\\": \\"2022-05-10T01:37:38Z\\",\\n \\"Isp\\": \\"BGP\\",\\n \\"Name\\": \\"AddressPoolName\\",\\n \\"Status\\": \\"Created\\",\\n \\"Description\\": \\"AddressPoolDescription\\",\\n \\"TotalIpNum\\": 100,\\n \\"UsedIpNum\\": 20,\\n \\"IpAddressRemaining\\": true,\\n \\"UserType\\": \\"admin\\",\\n \\"OwnerId\\": 0,\\n \\"ShareType\\": \\"Shared\\",\\n \\"ResourceGroupId\\": \\"rg-acfmxazb4pcdvf****\\",\\n \\"Tags\\": [\\n {\\n \\"Key\\": \\"FinanceDept\\",\\n \\"Value\\": \\"FinanceDept\\"\\n }\\n ],\\n \\"BizType\\": \\"CloudBox\\",\\n \\"Zones\\": [\\n \\"ap-southeast-1-lzdvn-cb\\"\\n ],\\n \\"SecurityProtectionTypes\\": [\\n \\"AntiDDoS_Enhanced\\"\\n ],\\n \\"BusinessStatus\\": \\"Normal\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\n 4EC47282-1B74-4534-BD0E-403F3EE64CAF\\n FFmyTO70tTpLG6I3FmYAXGKPd****\\n 10\\n 1\\n \\n pippool-6wetvn6fumkgycssx****\\n cn-chengdu\\n 2022-05-10T01:37:38Z\\n BGP\\n AddressPoolName\\n Created\\n AddressPoolDescription\\n 100\\n 20\\n true\\n Shared\\n rg-acfmxazb4pcdvf****\\n \\n FinanceDept\\n FinanceDept\\n \\n \\n","errorExample":""}]', ], - 'VpcDescribeVpcNatGatewayNetworkInterfaceQuota' => [ - 'summary' => 'Queries the quota of endpoints that can be created in the reversely accessed VPC NAT gateway.', - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'ListRouteTargetGroups' => [ + 'summary' => 'Batch query for route target groups', + 'path' => '', + 'methods' => ['get', 'post'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], @@ -57134,2648 +44501,2073 @@ ], 'operationType' => 'read', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'get', - 'riskType' => 'none', - 'chargeType' => 'free', - ], + 'systemTags' => ['operationType' => 'list', 'riskType' => 'none', 'chargeType' => 'free', 'autoTest' => true, 'tenantRelevance' => 'tenant'], 'parameters' => [ [ - 'name' => 'ResourceUid', + 'name' => 'VpcId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the Alibaba Cloud account to which the resource belongs.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '132193271328****', - ], + 'schema' => ['description' => 'The ID of the VPC to which the route target group belongs.', 'type' => 'string', 'required' => false, 'docRequired' => false, 'example' => 'vpc-xxxx', 'title' => ''], ], [ - 'name' => 'ClientToken', + 'name' => 'RouteTargetGroupIds', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'You can use the client to generate the value, but you must make sure that it is unique among all requests. ClientToken can contain only ASCII characters.'."\n" + 'description' => 'List of route target group instance IDs.'."\n" ."\n" - .'> If you do not set this parameter, **ClientToken** is set to the value of **RequestId**. The value of **RequestId** may be different for each API request.'."\n", - 'type' => 'string', + .'Up to 50 instance IDs can be queried at a time.', + 'type' => 'array', + 'items' => ['description' => 'Route target group instance ID.', 'type' => 'string', 'required' => false, 'example' => 'rtg-xxxx', 'title' => ''], 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-426655440000', + 'maxItems' => 200, + 'title' => '', + 'example' => '', ], ], [ - 'name' => 'NatGatewayId', + 'name' => 'MemberId', 'in' => 'query', - 'schema' => [ - 'title' => '查询NAT网关关联的ENI实例信息', - 'description' => 'The ID of the VPC NAT gateway.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'ngw-bp1uewa15k4iy5770****', - ], + 'schema' => ['description' => 'Route target group member instance ID.'."\n" + .'Filters the route target groups that contain the specified member instance ID.', 'type' => 'string', 'required' => false, 'docRequired' => false, 'example' => 'ep-xxxx', 'title' => ''], + ], + [ + 'name' => 'MaxResults', + 'in' => 'query', + 'schema' => ['description' => 'Page size, with a range of **1** to **50**. Default value: **50**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '100', 'minimum' => '0', 'default' => '50', 'example' => '50', 'title' => ''], + ], + [ + 'name' => 'NextToken', + 'in' => 'query', + 'schema' => ['description' => 'Token for the next query. Value: If it is the first query or there is no next query, this field does not need to be filled. If there is a next query, the value should be the NextToken returned from the previous API call.', 'type' => 'string', 'required' => false, 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', 'title' => ''], ], [ 'name' => 'RegionId', 'in' => 'query', + 'schema' => ['description' => 'The region ID of the VPC to which the route target group belongs. You can obtain the region ID by calling the DescribeRegions interface.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], + ], + [ + 'name' => 'ResourceGroupId', + 'in' => 'query', + 'schema' => ['description' => 'Resource group ID. For more information about resource groups, see What is a Resource Group?', 'type' => 'string', 'required' => false, 'example' => 'rg-acfmxazdjdhd****', 'title' => ''], + ], + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => ['description' => 'Client token used to ensure idempotence of the request. Generate a unique parameter value from your client to ensure uniqueness across different requests. ClientToken only supports ASCII characters. Note: If you do not specify this, the system will automatically use the RequestId of the API request as the ClientToken identifier. The RequestId is different for each API request.', 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-426655440000', 'title' => ''], + ], + [ + 'name' => 'Tag', + 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => 'The region ID of the VPC NAT gateway.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', + 'description' => 'List of tags.', + 'type' => 'array', + 'items' => [ + 'description' => 'Resource tag.', + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => 'Resource tag key. Up to 20 tag keys are supported. If you need to pass this value, you cannot input an empty string.'."\n" + ."\n" + .'A tag key can have up to 128 characters and cannot start with `aliyun` or `acs:`. It cannot contain `http://` or `https://`.', 'type' => 'string', 'required' => false, 'example' => 'FinanceJoshua', 'title' => ''], + 'Value' => ['description' => 'Resource tag value. Up to 20 tag values are supported. If you need to pass this value, you can input an empty string.'."\n" + ."\n" + .'A tag value can have up to 128 characters and cannot start with `aliyun` or `acs:`. It cannot contain `http://` or `https://`.', 'type' => 'string', 'required' => false, 'example' => 'FinanceJoshua', 'title' => ''], + ], + 'required' => false, + 'title' => '', + 'example' => '', + ], 'required' => false, - 'example' => 'cn-hangzhou', + 'maxItems' => 21, + 'title' => '', + 'example' => '', ], ], ], 'responses' => [ 200 => [ - 'headers' => [], 'schema' => [ 'title' => 'Schema of Response', - 'description' => '', + 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => '611CB80C-B6A9-43DB-9E38-0B0AC3D9B58F', - ], - 'Quota' => [ - 'title' => '分页大小', - 'description' => 'The number of endpoints that can be created.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '2', + 'RequestId' => ['title' => 'Id of the request', 'description' => 'ID of the request', 'type' => 'string', 'example' => 'DE77A7F3-3B74-41C0-A5BC-CAFD188C28B6'], + 'NextToken' => ['description' => 'Token for the next query. Value: If NextToken is empty, it indicates there is no next query. If NextToken has a return value, it indicates the token for the next query.', 'type' => 'string', 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', 'title' => ''], + 'TotalCount' => ['description' => 'Number of items in the list.', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''], + 'RouteTargetGroups' => [ + 'description' => 'List of route target groups.', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Status' => [ + 'description' => 'Status of the route target group. Values:'."\n" + ."\n" + .'- **Recovering**: Active-Standby rollback in progress'."\n" + .'- **Switched**: Active-Standby switched'."\n" + .'- **Available**: Available'."\n" + .'- **Abnormal**: Standby instance abnormal'."\n" + .'- **Pending**: Creating'."\n" + .'- **Switching**: Active-Standby switching in progress'."\n" + .'- **Deleting**: Deleting'."\n" + .'- **Unavailable**: Both primary and standby instances are abnormal', + 'enumValueTitles' => ['Recovering' => 'Recovering', 'Switched' => 'Switched', 'Available' => 'Available', 'Abnormal' => 'Abnormal', 'Pending' => 'Pending', 'Switching' => 'Switching', 'Deleting' => 'Deleting', 'Unavailable' => 'Unavailable'], + 'type' => 'string', + 'example' => 'Available', + 'title' => '', + ], + 'RouteTargetGroupDescription' => ['description' => 'Description of the route target group.', 'type' => 'string', 'example' => 'myRouteTargetGroupDescription', 'title' => ''], + 'RouteTargetMemberList' => [ + 'description' => 'The list of route target group members.', + 'type' => 'array', + 'items' => [ + 'description' => 'The list of route target group members.', + 'type' => 'object', + 'properties' => [ + 'MemberId' => ['description' => 'The ID of the route target group member instance.', 'type' => 'string', 'example' => 'ep-xxxx', 'title' => ''], + 'EnableStatus' => [ + 'description' => 'The enable status of the route target group member. Values:'."\n" + ."\n" + .'- **Enable**: Enabled.'."\n" + .'- **Disable**: Disabled.'."\n" + ."\n" + .'Only disabled route target group members can be modified to other instances. Enabled route target group members cannot be modified.', + 'enumValueTitles' => ['Enable' => 'Enable', 'Disable' => 'Disable'], + 'type' => 'string', + 'example' => 'Enable', + 'title' => '', + ], + 'MemberType' => [ + 'description' => 'The type of the route target group member.'."\n" + ."\n" + .'Currently supported types:'."\n" + ."\n" + .'- **GatewayLoadBalancerEndpoint**', + 'enumValueTitles' => ['GatewayLoadBalancerEndpoint' => 'GatewayLoadBalancerEndpoint'], + 'type' => 'string', + 'example' => 'GatewayLoadBalancerEndpoint', + 'title' => '', + ], + 'HealthCheckStatus' => [ + 'description' => 'The health check status of the route target group member. Values:'."\n" + ."\n" + .'- **Normal**: Normal'."\n" + .'- **Abnormal**: Abnormal', + 'enumValueTitles' => ['Normal' => 'Normal', 'Abnormal' => 'Abnormal'], + 'type' => 'string', + 'example' => 'Normal', + 'title' => '', + ], + 'Weight' => ['description' => 'The weight value of the route target group member. Values:'."\n" + ."\n" + .'- **100**: Indicates that the member is the primary instance.'."\n" + .'- **0**: Indicates that the member is the backup instance.'."\n" + ."\n" + .'The weight value can only be set during creation and cannot be modified.', 'type' => 'integer', 'format' => 'int32', 'example' => '100', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + 'VpcId' => ['description' => 'The ID of the VPC to which the route target group belongs.', 'type' => 'string', 'example' => 'vpc-uf60y8uzhsvbhmuh3l654', 'title' => ''], + 'RouteTargetGroupId' => ['description' => 'The ID of the route target group instance.', 'type' => 'string', 'example' => 'rtg-xxxx', 'title' => ''], + 'ConfigMode' => [ + 'description' => 'The configuration mode of the route target group. Supported modes are as follows:'."\n" + ."\n" + .'- **Active-Standby**: Active-standby mode.', + 'enumValueTitles' => ['Active-Standby' => 'Active-Standby'], + 'type' => 'string', + 'example' => 'Active-Standby', + 'title' => '', + ], + 'RegionId' => ['description' => 'The region ID of the VPC to which the route target group belongs.'."\n" + ."\n" + .'You can obtain the region ID by calling the [DescribeRegions](~~36063~~) interface.', 'type' => 'string', 'example' => 'cn-hangzhou', 'title' => ''], + 'Tags' => [ + 'description' => 'The tag values. A maximum of 20 tag values are supported. If you need to pass this value, you can input an empty string.'."\n" + ."\n" + .'A maximum of 128 characters are supported. The value cannot start with `aliyun` or `acs:` and cannot contain `http://` or `https://`.', + 'type' => 'array', + 'items' => [ + 'description' => 'The tags.', + 'type' => 'object', + 'properties' => [ + 'Value' => ['description' => 'The value of the resource tag. Up to 20 tag values are supported. If you need to pass this value, you can input an empty string. A maximum of 128 characters is allowed. The value cannot start with `aliyun` or `acs:`, and it must not contain `http://` or `https://`.', 'type' => 'string', 'example' => '8', 'title' => ''], + 'Key' => ['description' => 'The key of the resource tag.', 'type' => 'string', 'example' => 'image/upload/cbbec42e0be33abb27babefcbe0397f0', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + 'RouteTargetGroupName' => ['description' => 'The name of the route target group.', 'type' => 'string', 'example' => 'myRouteTargetGroupName', 'title' => ''], + 'ResourceGroupId' => ['description' => 'The ID of the resource group to which the route target group belongs.', 'type' => 'string', 'example' => 'rg-acfm3swh6ta56ri', 'title' => ''], + 'CreateTime' => ['description' => 'The time when the route target group was created.', 'type' => 'string', 'example' => '2025-12-30T06:40:50Z', 'title' => ''], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', ], + 'MaxResults' => ['description' => 'The page size.', 'type' => 'integer', 'format' => 'int32', 'example' => '50', 'title' => ''], ], + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'OperationDenied.PrivateLinkNotEnabled', - 'errorMessage' => 'The NAT gateway is not enable for private link.', - ], - ], - 404 => [ - [ - 'errorCode' => 'ResourceNotFound.NatGateway', - 'errorMessage' => 'The NatGateway instance not exist.', - ], + ['errorCode' => 'IllegalParam.NextToken', 'errorMessage' => 'The specified NextToken is invalid.', 'description' => 'The specified NextToken is invalid.'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"611CB80C-B6A9-43DB-9E38-0B0AC3D9B58F\\",\\n \\"Quota\\": 2\\n}","errorExample":""},{"type":"xml","example":"\\n 611CB80C-B6A9-43DB-9E38-0B0AC3D9B58F\\n 2\\n","errorExample":""}]', - 'title' => 'VpcDescribeVpcNatGatewayNetworkInterfaceQuota', - 'description' => 'Before you call this operation, make sure that a VPC NAT gateway is created. For more information, see [CreateNatGateway](~~120219~~).', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'ListRouteTargetGroups', + 'description' => 'Lists the route target groups.', + 'changeSet' => [], + 'ramActions' => [], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"DE77A7F3-3B74-41C0-A5BC-CAFD188C28B6\\",\\n \\"NextToken\\": \\"FFmyTO70tTpLG6I3FmYAXGKPd****\\",\\n \\"TotalCount\\": 1,\\n \\"RouteTargetGroups\\": [\\n {\\n \\"Status\\": \\"Available\\",\\n \\"RouteTargetGroupDescription\\": \\"myRouteTargetGroupDescription\\",\\n \\"RouteTargetMemberList\\": [\\n {\\n \\"MemberId\\": \\"ep-xxxx\\",\\n \\"EnableStatus\\": \\"Enable\\",\\n \\"MemberType\\": \\"GatewayLoadBalancerEndpoint\\",\\n \\"HealthCheckStatus\\": \\"Normal\\",\\n \\"Weight\\": 100\\n }\\n ],\\n \\"VpcId\\": \\"vpc-uf60y8uzhsvbhmuh3l654\\",\\n \\"RouteTargetGroupId\\": \\"rtg-xxxx\\",\\n \\"ConfigMode\\": \\"Active-Standby\\",\\n \\"RegionId\\": \\"cn-hangzhou\\",\\n \\"Tags\\": [\\n {\\n \\"Value\\": \\"8\\",\\n \\"Key\\": \\"image/upload/cbbec42e0be33abb27babefcbe0397f0\\"\\n }\\n ],\\n \\"RouteTargetGroupName\\": \\"myRouteTargetGroupName\\",\\n \\"ResourceGroupId\\": \\"rg-acfm3swh6ta56ri\\",\\n \\"CreateTime\\": \\"2025-12-30T06:40:50Z\\"\\n }\\n ],\\n \\"MaxResults\\": 50\\n}","type":"json"}]', + 'translator' => 'manual', ], - 'CreateSnatEntry' => [ - 'summary' => 'Adds an SNAT entry to an SNAT table.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'ListTagResources' => [ + 'summary' => 'Query the list of tags that are bound to cloud resources.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', - 'systemTags' => [ - 'operationType' => 'create', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeCode' => '37638', - 'abilityTreeNodes' => [ - 'FEATUREvpcK3NXU2', - ], - ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ - 'name' => 'RegionId', + 'name' => 'ResourceType', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the NAT gateway.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n" - ."\n" - .'Valid values:'."\n" - ."\n" - .'* ap-northeast-2-pop'."\n" - ."\n" - .' '."\n" - ."\n" - .' :'."\n" - ."\n" - .' '."\n" - ."\n" - .' ap-northeast-2-pop'."\n" - ."\n" - .' '."\n" - ."\n" - .' .'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'enumValueTitles' => [ - 'ap-northeast-2-pop' => 'ap-northeast-2-pop', - ], - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The type of the resource. Valid values:'."\n" + .'- **VPC**: VPC instance.'."\n" + .'- **VSWITCH**: vSwitch instance.'."\n" + .'- **ROUTETABLE**: route table instance.'."\n" + .'- **EIP**: Elastic IP Address (EIP) instance.'."\n" + .'- **VPNGATEWAY**: VPN gateway instance.'."\n" + .'- **NATGATEWAY**: NAT gateway instance.'."\n" + .'- **COMMONBANDWIDTHPACKAGE**: EIP bandwidth plan instance.'."\n" + .'- **PREFIXLIST**: prefix list instance.'."\n" + .'- **PUBLICIPADDRESSPOOL**: IP address pool instance.'."\n" + .'- **IPV4GATEWAY**: IPv4 gateway instance.'."\n" + .'- **IPV6GATEWAY**: IPv6 gateway instance.'."\n" + .'- **NETWORKACL**: network ACL instance.'."\n" + .'- **TRAFFICMIRRORFILTER**: traffic mirroring filter instance.'."\n" + .'- **TRAFFICMIRRORSESSION**: traffic mirroring session instance.'."\n" + .'- **FLOWLOG**: flow log instance.'."\n" + .'- **HAVIP**: high-availability virtual IP address (HAVIP) instance.'."\n" + .'- **DHCPOPTIONSSET**: DHCP options set instance.'."\n" + .'- **GATEWAYENDPOINT**: gateway endpoint instance.'."\n" + .'- **IPV6ADDRESS**: IPv6 address instance.'."\n" + ."\n" + .'> The resource type value is case-insensitive.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'VPC', 'title' => ''], ], [ - 'name' => 'SnatTableId', + 'name' => 'NextToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the SNAT table.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'stb-bp190wu8io1vgev****', - ], + 'schema' => ['description' => 'The token for the next query. Valid values:'."\n" + ."\n" + .'- If this is the first query or no next query exists, you do not need to set this parameter.'."\n" + ."\n" + .'- If a next query exists, set the value to the **NextToken** value returned in the previous API call.', 'type' => 'string', 'required' => false, 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', 'title' => ''], ], [ - 'name' => 'SourceVSwitchId', + 'name' => 'MaxResults', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the vSwitch.'."\n" - ."\n" - .'* When you add an SNAT entry to an Internet NAT gateway, this parameter specifies that ECS instances in the vSwitch can use the SNAT entry to access the Internet. If you select multiple elastic IP addresses (EIPs) to create an SNAT address pool, connections are hashed to these EIPs. Network traffic may not be evenly distributed to the EIPs because the amount of traffic that passes through each connection varies. We recommend that you associate these EIPs with the same EIP bandwidth plan to prevent service interruptions due to the bandwidth limits on individual EIPs.'."\n" - .'* When you add an SNAT entry to a VPC NAT gateway, this parameter specifies that ECS instances in the vSwitch can use the SNAT entry to access external networks.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'vsw-bp1nhx2s9ui5o****', - ], + 'schema' => ['description' => 'The number of entries per page. Valid values: **1** to **50**. Default value: **50**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '50', 'example' => '50', 'title' => ''], ], [ - 'name' => 'SourceCIDR', + 'name' => 'ResourceId', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => 'You can specify the CIDR block of a VPC, a vSwitch, or an ECS instance or enter a custom CIDR block.'."\n" - ."\n" - .'You can specify an SNAT entry in the following ways:'."\n" - ."\n" - .'* You can specify the CIDR block of the VPC where the NAT gateway is deployed. Then, all ECS instances in the VPC can access the Internet or external networks by using SNAT.'."\n" - .'* You can specify the CIDR block of a vSwitch, for example, 192.168.1.0/24. Then, the ECS instances in the vSwitch can access the Internet or external networks by using SNAT.'."\n" - .'* You can specify the IP address of an ECS instance, for example, 192.168.1.1/32. Then, the ECS instance can access the Internet or external networks by using SNAT.'."\n" - .'* You can specify a custom CIDR block. Then, all ECS instances within the specified CIDR block can access the Internet or external networks by using SNAT.'."\n" - ."\n" - .'When you add an SNAT entry to an Internet NAT gateway, if **SnatIp** is set to an EIP, the ECS instance uses the specified EIP to access the Internet.'."\n" - ."\n" - .'If **SnatIp** is set to multiple EIPs, the ECS instance randomly selects an EIP specified in the **SnatIp** parameter to access the Internet.'."\n" + 'description' => 'The IDs of the resources. You can specify up to 50 resource IDs.', + 'type' => 'array', + 'items' => ['description' => 'The ID of the resource. You can specify up to 50 resource IDs.'."\n" ."\n" - .'You cannot specify this parameter and **SourceVSwtichId** at the same time. If **SourceVSwitchId** is specified, you cannot specify **SourceCIDR**. If **SourceCIDR** is specified, you cannot specify **SourceVSwitchId**.'."\n", - 'type' => 'string', + .'> You must specify at least one of the **ResourceId.N** and **Tag.N** (**Tag.N.Key** and **Tag.N.Value**) parameters.', 'type' => 'string', 'required' => false, 'example' => 'vpc-bp16qjewdsunr41m1****', 'title' => ''], 'required' => false, - 'example' => '10.1.1.0/24', + 'example' => 'vpc-bp16qjewdsunr41m1****', + 'maxItems' => 51, + 'title' => '', ], ], [ - 'name' => 'SnatIp', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '* The EIPs in the SNAT entry when you add an SNAT entry to an Internet NAT gateway. Separate EIPs with commas (,).'."\n" - ."\n" - .'> If you specify multiple EIPs in the SNAT IP address pool, the service connection is allocated to multiple EIPs by using the hashing algorithm. The traffic of each EIP may be different. Therefore, we recommend that you associate the EIPs with an Internet Shared Bandwidth instance to prevent service interruptions caused by bandwidth exhaustion.'."\n" - ."\n" - .'* When you add SNAT entries for a VPC NAT gateway, this parameter specifies the NAT IP addresses in the SNAT entry. Separate multiple NAT IP addresses with commas (,).'."\n", - 'type' => 'string', - 'required' => false, - 'docRequired' => false, - 'example' => '47.98.XX.XX', - ], + 'schema' => ['description' => 'The region ID of the resource.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the region ID.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'SnatEntryName', - 'in' => 'query', - 'schema' => [ - 'description' => 'The name of the SNAT entry.'."\n" - ."\n" - .'The name must be 2 to 128 characters in length. It must start with a letter but cannot start with `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'SnatEntry-1', - ], - ], - [ - 'name' => 'ClientToken', - 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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.'."\n" - ."\n" - .'**'."\n" - ."\n" - .'**Description** 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.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '02fb3da4-130e-11e9-8e44****', - ], - ], - [ - 'name' => 'EipAffinity', - 'in' => 'query', - 'allowEmptyValue' => true, - 'schema' => [ - 'description' => 'Specifies whether to enable EIP affinity. Valid values:'."\n" - ."\n" - .'* **0**: no'."\n" - .'* **1**: yes'."\n" - ."\n" - .'**'."\n" - ."\n" - .'**Description** After you enable EIP affinity, if multiple EIPs are associated with an SNAT entry, each client uses one EIP to access the Internet. If EIP affinity is disabled, each client uses a random EIP to access the Internet.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', - ], - ], - [ - 'name' => 'NetworkInterfaceId', - 'in' => 'query', - 'allowEmptyValue' => true, - 'schema' => [ - 'description' => 'Elastic Network Interface ID. '."\n" - .'> The IPv4 address set of the elastic network interface will be used as the SNAT address.', - 'type' => 'string', - 'required' => false, - 'example' => 'eni-gw8g131ef2dnbu3k****', - ], - ], - [ - 'name' => 'DryRun', + 'name' => 'Tag', 'in' => 'query', - 'allowEmptyValue' => false, + 'style' => 'repeatList', 'schema' => [ - 'description' => 'Indicates whether to only precheck this request. Values:'."\n" - .'- **true**: Sends a precheck request and does not create an SNAT entry. The precheck includes verifying if the AccessKey is valid, checking the RAM user\'s authorization, and ensuring that all required parameters are filled out. If the precheck fails, the corresponding error is returned. If the precheck passes, the error code `DryRunOperation` is returned.'."\n" - .'- **false** (default): Sends a normal request. After passing the precheck, it returns a 2xx HTTP status code and creates an SNAT entry.', - 'type' => 'boolean', + 'description' => 'The tag information.', + 'type' => 'array', + 'items' => [ + 'description' => 'The tag of the resource.', + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => 'The key of the tag. You can specify up to 20 tag keys.'."\n" + ."\n" + .'The tag key can be up to 128 characters in length. It cannot be an empty string. It cannot start with `aliyun` or `acs:`, and cannot contain `http://` or `https://`.'."\n" + ."\n" + .'> You must specify at least one of the **ResourceId.N** and **Tag.N** (**Tag.N.Key** and **Tag.N.Value**) parameters.', 'type' => 'string', 'required' => false, 'example' => 'FinanceDept', 'title' => ''], + 'Value' => ['description' => 'The value of the tag. You can specify up to 20 tag values.'."\n" + ."\n" + .'The tag value can be up to 128 characters in length and can be an empty string. It cannot start with `aliyun` or `acs:`, and cannot contain `http://` or `https://`.'."\n" + ."\n" + .'> You must specify at least one of the **ResourceId.N** and **Tag.N** (**Tag.N.Key** and **Tag.N.Value**) parameters.'."\n", 'type' => 'string', 'required' => false, 'example' => 'FinanceJoshua', 'title' => ''], + ], + 'required' => false, + 'title' => '', + 'example' => '', + ], 'required' => false, - 'example' => 'false', + 'example' => 'ListTagResources', + 'maxItems' => 21, + 'title' => '', ], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => 'The ID of the SNAT entry.'."\n", + 'description' => 'The returned information.', 'type' => 'object', 'properties' => [ - 'SnatEntryId' => [ - 'description' => 'The ID of the SNAT entry.'."\n", - 'type' => 'string', - 'example' => 'snat-kmd6nv8fy****', - ], - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '2315DEB7-5E92-423A-91F7-4C1EC9AD97C3', + 'NextToken' => ['description' => 'The token for the next query. Valid values:'."\n" + .'- If **NextToken** is empty, no next query exists.'."\n" + .'- If **NextToken** has a return value, the value is the token used to start the next query.', 'type' => 'string', 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'DE65F6B7-7566-4802-9007-96F2494AC512', 'title' => ''], + 'TagResources' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'TagResource' => [ + 'description' => 'The information about the resources to which tags are bound.', + 'type' => 'array', + 'items' => [ + 'description' => 'The information about the resource to which a tag is bound.', + 'type' => 'object', + 'properties' => [ + 'ResourceType' => ['description' => 'The type of the resource. Valid values:'."\n" + .'- **VPC**: VPC instance.'."\n" + .'- **VSWITCH**: vSwitch instance.'."\n" + .'- **ROUTETABLE**: route table instance.'."\n" + .'- **EIP**: Elastic IP Address (EIP) instance.'."\n" + .'- **VPNGATEWAY**: VPN gateway instance.'."\n" + .'- **NATGATEWAY**: NAT gateway instance.'."\n" + .'- **COMMONBANDWIDTHPACKAGE**: EIP bandwidth plan instance.'."\n" + .'- **PREFIXLIST**: prefix list instance.'."\n" + .'- **PUBLICIPADDRESSPOOL**: IP address pool instance.'."\n" + .'- **IPV4GATEWAY**: IPv4 gateway instance.'."\n" + .'- **IPV6GATEWAY**: IPv6 gateway instance.'."\n" + .'- **NETWORKACL**: network ACL instance.'."\n" + .'- **TRAFFICMIRRORFILTER**: traffic mirroring filter instance.'."\n" + .'- **TRAFFICMIRRORSESSION**: traffic mirroring session instance.'."\n" + .'- **FLOWLOG**: flow log instance.'."\n" + .'- **HAVIP**: high-availability virtual IP address (HAVIP) instance.'."\n" + .'- **DHCPOPTIONSSET**: DHCP options set instance.'."\n" + .'- **GATEWAYENDPOINT**: gateway endpoint instance.', 'type' => 'string', 'example' => 'VPC', 'title' => ''], + 'TagValue' => ['description' => 'The tag value.', 'type' => 'string', 'example' => 'FinanceJoshua', 'title' => ''], + 'ResourceId' => ['description' => 'The resource ID.', 'type' => 'string', 'example' => 'vpc-bp16qjewdsunr41m1****', 'title' => ''], + 'TagKey' => ['description' => 'The tag key.', 'type' => 'string', 'example' => 'FinanceDept', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'UnsupportedFeature.PrivateLinkEnabled', - 'errorMessage' => 'The feature of PrivateLinkEnabled is not supported.', - ], - [ - 'errorCode' => 'InvalidSourceCIDR.Malformed', - 'errorMessage' => 'SourceCIDR is illegal.', - ], - [ - 'errorCode' => 'NOT_ALLOW_USE_SOURCECIDR_OUTSIDEVPC', - 'errorMessage' => 'The User not in sourcecidr_unlimited_outsidevpc white list. Cannot use SourceCidr outside VpcCidr.', - ], - [ - 'errorCode' => 'NOT_ALLOW_USE_SOURCECIDR_AUTODEFINE', - 'errorMessage' => 'The User not in sourcecidr_unlimited_insidevpc white list. Cannot use SourceCidr auto defined.', - ], - [ - 'errorCode' => 'NOT_ALLOW_USE_SOURCECIDR_CONTAINSZERO', - 'errorMessage' => 'The User not in sourcecidr_unlimited_outsidevpc_containszero white list. Cannot use SourceCidr outside VpcCidr.', - ], - [ - 'errorCode' => 'Forbidden.IpHasBeenUsedInDnat', - 'errorMessage' => 'The snat ip can\'t be used. Because it has been used in dnat', - ], - [ - 'errorCode' => 'Forbidden.SourceVSwitchId.IncludeHaVip', - 'errorMessage' => 'There is some HaVips under specified VSwitch', - ], - [ - 'errorCode' => 'InvalidSnatIp.Malformed', - 'errorMessage' => 'The specified SnatIp is not a valid IP address.', - ], - [ - 'errorCode' => 'SNAT_IP_POOL_COUNT_TOO_MANY', - 'errorMessage' => 'The Snat pool ip too many.', - ], - [ - 'errorCode' => 'Forbidden.SnatEntryCountLimited', - 'errorMessage' => 'SNAT entry in the specified SNAT table reach its limit.', - ], - [ - 'errorCode' => 'NOT_ALLOW_USE_SOURCECIDR', - 'errorMessage' => 'The User not in nat_scope_unlimited white list. Cannot use SourceCidr param.', - ], - [ - 'errorCode' => 'INVALID_PARAMETER', - 'errorMessage' => 'The parameter invalid.', - ], - [ - 'errorCode' => 'Forbidden.SourceVSwitchId.Duplicated', - 'errorMessage' => 'The specified SourceCIDRis duplicated.', - ], - [ - 'errorCode' => 'Forbidden.IpUsedInForwardTable', - 'errorMessage' => 'The specified SnatIp already used in forward table', - ], - [ - 'errorCode' => 'Forbindden', - 'errorMessage' => 'The specified Instance already bind eip', - ], - [ - 'errorCode' => 'EIP_NOT_SUPPORT_SNAT_POOL', - 'errorMessage' => 'The Eip cannot support snat pool', - ], - [ - 'errorCode' => 'EIP_NOT_IN_GATEWAY', - 'errorMessage' => 'The Eip not in nat gateway', - ], - [ - 'errorCode' => 'OperationUnsupported.CidrConflict', - 'errorMessage' => 'The specified CIDR block conflicts with an existing SNAT entry.', - ], - [ - 'errorCode' => 'InvalidNatGatewayId.NotFound', - 'errorMessage' => 'The NatGateway instance not exist.', - ], - [ - 'errorCode' => 'InvalidParameter.Name.Malformed', - 'errorMessage' => 'The specified Name is not valid.', - ], - [ - 'errorCode' => 'InvalidParameter.SnatIp', - 'errorMessage' => 'Ip semgment must be subnet cidr.', - ], - [ - 'errorCode' => 'QuotaExceeded.SnatIp', - 'errorMessage' => 'Public ip number exceeds quota.', - ], - [ - 'errorCode' => 'OperationUnsupported.EipInBinding', - 'errorMessage' => 'Create snat entry with eip in associating status is unsupported.', - ], - [ - 'errorCode' => 'OperationFailed.VSwitchNotInVpc', - 'errorMessage' => 'The specified vswitch and natgateway are not in the same vpc.', - ], - [ - 'errorCode' => 'QuotaExceeded.SnatEntry', - 'errorMessage' => 'SNAT entry in the specified SNAT table reach it?s limit.', - ], - [ - 'errorCode' => 'IncorrectStatus.NATGW', - 'errorMessage' => 'NATGW status is invalid.', - ], - [ - 'errorCode' => 'IncorrectStatus.VSwitch', - 'errorMessage' => 'The specified vSwitch status is invalid.', - ], - [ - 'errorCode' => 'MissingParam.SnatIp', - 'errorMessage' => 'The input parameter SnatIp that is mandatory for processing this request is not supplied.', - ], - [ - 'errorCode' => 'MissingParam.NetworkInterfaceId', - 'errorMessage' => 'The input parameter NetworkInterfaceId that is mandatory for processing this request is not supplied.', - ], - [ - 'errorCode' => 'ParamExclusive.SnatIpAndNetworkInterfaceId', - 'errorMessage' => 'SnatIp and NetworkInterfaceId is mutually exclusive when create a snat entry for nat.', - ], - [ - 'errorCode' => 'IllegalParam.NetworkInterfaceId', - 'errorMessage' => 'The param of NetworkInterfaceId is illegal.', - ], - [ - 'errorCode' => 'OperationUnsupported.EipNatBWPCheck', - 'errorMessage' => 'The EIP is not associated with a NAT service plan.', - ], - [ - 'errorCode' => 'OperationUnsupported.EipNatGWCheck', - 'errorMessage' => 'The operation failed because the EIP is not bound to this NAT Gateway.', - ], - [ - 'errorCode' => 'OperationFailed.SnatIpPoolCbwpRules', - 'errorMessage' => 'The operation failed because the SNAT rule IPs are added to multi bandwidth packages.', - ], - [ - 'errorCode' => 'IncorrectStatus.SnatEntry', - 'errorMessage' => 'The SNAT rule status is invalid. Please try again later.', - ], - [ - 'errorCode' => 'IncorrectStatus.NatIp', - 'errorMessage' => 'NatIp status is invalid, please try again later.', - ], - [ - 'errorCode' => 'OperationUnsupported.EipNatIpCheck', - 'errorMessage' => 'The operation failed because the EIP is not bound to this NAT gateway.', - ], - [ - 'errorCode' => 'OperationFailed.SnatIpPoolBwpRules', - 'errorMessage' => 'The operation failed because the IP in Snat entryl was added to multiple NAT bandwidth packets.', - ], - [ - 'errorCode' => 'OperationFailed.SnatIpsCheck', - 'errorMessage' => 'The operation fails because some IPs address in the SNAT entry are not added to common bandwidth packet.', - ], - ], - 404 => [ - [ - 'errorCode' => 'InvalidRegionId.NotFound', - 'errorMessage' => 'The specified RegionId does not exist in our records.', - ], - [ - 'errorCode' => 'InvalidSnatTableId.NotFound', - 'errorMessage' => 'Specified SNAT table does not exist.', - ], - [ - 'errorCode' => 'InvalidVSwitchId.NotFound', - 'errorMessage' => 'The specified virtual switch does not exists.', - ], - [ - 'errorCode' => 'InvalidSnatIp.NotFound', - 'errorMessage' => 'Specified SnatIp does not found on the NAT Gateway', - ], - [ - 'errorCode' => 'ResourceNotFound.NatGateway', - 'errorMessage' => 'The NatGateway instance not exist.', - ], - [ - 'errorCode' => 'ResourceNotFound.NatIp', - 'errorMessage' => 'The NatIp instance not exist.', - ], - [ - 'errorCode' => 'ResourceNotFound.VSwitch', - 'errorMessage' => 'The specified resource of %s is not found.', - ], + ['errorCode' => 'InvalidTagKey', 'errorMessage' => 'The tag keys are not valid.', 'description' => 'The tag index is invalid.'], + ['errorCode' => 'InvalidTagValue', 'errorMessage' => 'The tag values are not valid.', 'description' => 'The tag value is invalid.'], + ['errorCode' => 'MissingParam', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'InvalidInstanceType.NotFound', 'errorMessage' => 'The instance type is not found', 'description' => 'The instance type is not found.'], + ['errorCode' => 'InvalidInstanceIds.NotFound', 'errorMessage' => 'The instanceIds are not found', 'description' => 'The instance ID is not found.'], + ['errorCode' => 'Forbidden.TagKeys', 'errorMessage' => 'The request do not allow to operate the tag keys', 'description' => 'You do not have the permissions to set the TagKeys parameter.'], + ['errorCode' => 'QuotaExceeded.TagNum', 'errorMessage' => 'Custom Tags quota exceeded', 'description' => 'The upper limit is reached.'], + ['errorCode' => 'Forbidden.NotAllowedCategary', 'errorMessage' => 'The System tag is not valid', 'description' => 'The error message returned because the system tag is invalid.'], + ['errorCode' => 'Forbidden.TagKey.Duplicated', 'errorMessage' => 'The specified tag key already exists.', 'description' => 'The tag resources are duplicate.'], + ['errorCode' => 'SizeLimitExceeded.TagNum', 'errorMessage' => 'The maximum number of tags is exceeded.', 'description' => 'The number of tags has reached the upper limit.'], + ['errorCode' => 'SizeLimitExceeded.ResourceId', 'errorMessage' => 'The maximum number of resource IDs is exceeded.', 'description' => 'The number of resource group IDs has reached the upper limit.'], + ['errorCode' => 'BothEmpty.TagsAndResources', 'errorMessage' => 'The specified Tags and ResourcesIds are not allow to both empty.', 'description' => 'The tags and resource groups cannot be empty at the same time.'], + ['errorCode' => 'MissingParam.ResourceType', 'errorMessage' => 'The param of ResourceType is missing.', 'description' => 'ResourceType is not specified.'], ], - 500 => [ - [ - 'errorCode' => 'DefaultValidate.Error', - 'errorMessage' => 'validte fail.', - ], - [ - 'errorCode' => 'OperationFailed.CrateSnatEntryTimeOut', - 'errorMessage' => 'Operation failed because create snatEntry timeout.', - ], + 403 => [ + ['errorCode' => 'Forbidden', 'errorMessage' => 'User not authorized to operate on the specified resource.', 'description' => 'You do not have the permissions to manage the specified resource. Apply for the permissions and try again.'], + ['errorCode' => 'BothEmpty.TagsAndResources', 'errorMessage' => 'The specified Tags and ResourcesIds are not allow to both empty.', 'description' => ''], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"SnatEntryId\\": \\"snat-kmd6nv8fy****\\",\\n \\"RequestId\\": \\"2315DEB7-5E92-423A-91F7-4C1EC9AD****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n snat-kmd6nv8fy****\\n 2315DEB7-5E92-423A-91F7-4C1EC9AD97C3\\n","errorExample":""}]', - 'title' => 'CreateSnatEntry', - 'description' => 'You can call this operation to add SNAT entries to Internet NAT gateways and Virtual Private Cloud (VPC) NAT gateways. In this topic, a **NAT** gateway refers to both gateway types.'."\n" - ."\n" - .'Before you call this operation, take note of the following limits:'."\n" - ."\n" - .'* **CreateSnatEntry** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call the [DescribeSnatTableEntries](~~42677~~) operation to query the status of the task.'."\n" - ."\n" - .' * If the SNAT entry is in the **Pending** state, the system is adding the SNAT entry. You can only query the status of the SNAT entry, and cannot perform other operations.'."\n" - .' * If the SNAT entry is in the **Available** state, the SNAT entry is added.'."\n" + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'Query tags bound to cloud resources', + 'description' => '- You must specify at least the **ResourceId.N** or **Tag.N** (**Tag.N.Key** and **Tag.N.Value**) parameter in the request to determine the query object.'."\n" ."\n" - .'* You cannot repeatedly call the **CreateSnatEntry** operation to add an SNAT entry to an SNAT table within the specified period of time.'."\n" - ."\n" - .'* The vSwitch and Elastic Compute Service (ECS) instance specified in an SNAT entry must be created in the VPC where the NAT gateway is deployed.'."\n" + .'- **Tag.N** is a tag of the resource, which consists of a key-value pair. If you specify only **Tag.N.Key**, all tag values associated with the specified tag key are returned. If you specify only **Tag.N.Value**, an error is returned.'."\n" ."\n" - .'* Each vSwitch or ECS instance can be specified in only one SNAT entry.'."\n" + .'- If you specify both **Tag.N** and **ResourceId.N** to filter tags, **ResourceId.N** must match all the specified tag key-value pairs.'."\n" ."\n" - .'* If a high-availability virtual IP address (HAVIP) exists in a vSwitch, you cannot create SNAT entries.'."\n", + .'- If you specify multiple tag key-value pairs, the results contain resources that include all the specified key-value pairs.', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - 'translator' => 'machine', - ], - 'DeleteSnatEntry' => [ - 'summary' => 'Deletes an SNAT entry.', - 'methods' => [ - 'post', - 'get', + 'changeSet' => [ + ['createdAt' => '2023-07-28T01:53:52.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2023-07-10T06:55:02.000Z', 'description' => 'Error codes changed, Response parameters changed'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ListTagResources'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'vpc:ListTagResources', + 'authLevel' => 'resource', + 'actionConditions' => [ + ['conditionKey' => 'vpc:tag', 'validationType' => 'always'], + ], + 'resources' => [ + ['validationType' => 'conditional', 'product' => 'VPC', 'resourceType' => 'BandwidthPackage', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:combandwidthpackage/{#BandwidthPackageId}'], + ['validationType' => 'conditional', 'product' => 'VPC', 'resourceType' => 'Address', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:eip/{#AllocationId}'], + ['validationType' => 'conditional', 'product' => 'VPC', 'resourceType' => 'NatGateway', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:natgateway/{#NatGatewayId}'], + ['validationType' => 'conditional', 'product' => 'VPC', 'resourceType' => 'RouteTable', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:routetable/{#RouteTable}'], + ['validationType' => 'conditional', 'product' => 'VPC', 'resourceType' => 'VPC', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vpc/{#VpcId}'], + ['validationType' => 'conditional', 'product' => 'VPC', 'resourceType' => 'VpnGateway', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vpngateway/{#VpnGatewayId}'], + ['validationType' => 'conditional', 'product' => 'VPC', 'resourceType' => 'VSwitch', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vswitch/{#VSwitchId}'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"NextToken\\": \\"FFmyTO70tTpLG6I3FmYAXGKPd****\\",\\n \\"RequestId\\": \\"DE65F6B7-7566-4802-9007-96F2494AC512\\",\\n \\"TagResources\\": {\\n \\"TagResource\\": [\\n {\\n \\"ResourceType\\": \\"VPC\\",\\n \\"TagValue\\": \\"FinanceJoshua\\",\\n \\"ResourceId\\": \\"vpc-bp16qjewdsunr41m1****\\",\\n \\"TagKey\\": \\"FinanceDept\\"\\n }\\n ]\\n }\\n}","type":"json"}]', + ], + 'ListTagResourcesForExpressConnect' => [ + 'summary' => 'Queries the tags that are added to an Express Connect circuit.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', - 'systemTags' => [ - 'operationType' => 'delete', - 'riskType' => 'none', - 'chargeType' => 'free', - ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'list', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ + [ + 'name' => 'ResourceType', + 'in' => 'query', + 'schema' => ['description' => 'The type of the resource. Valid values:'."\n" + ."\n" + .'* **PHYSICALCONNECTION**: Express Connect circuit.'."\n" + .'* **VIRTUALBORDERROUTER**: virtual border router (VBR).'."\n" + .'* **ROUTERINTERFACE**: router interface.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'PHYSICALCONNECTION', 'title' => ''], + ], [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the NAT gateway.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The ID of the region to which the resource resides.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to obtain the region ID.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'SnatTableId', + 'name' => 'NextToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the SNAT table to which the SNAT entry belongs.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'stb-bp190wu8io1vgev80****', - ], + 'schema' => ['description' => 'The pagination token that is used in the next request to retrieve a new page of results.'."\n" + ."\n" + .'* You do not need to specify this parameter for the first request.'."\n" + .'* You must specify the token that is obtained from the previous query as the value of **NextToken**.'."\n", 'type' => 'string', 'required' => false, 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', 'title' => ''], ], [ - 'name' => 'SnatEntryId', + 'name' => 'MaxResults', + 'in' => 'query', + 'schema' => ['description' => 'The number of entries per page. Valid values: **1** to **100**. Default value: **20**.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '50', 'example' => '20', 'title' => ''], + ], + [ + 'name' => 'ResourceId', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => 'The ID of the SNAT entry that you want to delete.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'snat-bp1vcgcf8tm0plqcg****', + 'description' => 'The resource IDs.'."\n", + 'type' => 'array', + 'items' => ['description' => 'The resource ID. You can specify up to 20 resource IDs.'."\n", 'type' => 'string', 'required' => false, 'example' => 'pc-bp16qjewdsunr41m1****', 'title' => ''], + 'required' => false, + 'maxItems' => 21, + 'title' => '', + 'example' => '', ], ], [ - 'name' => 'ClientToken', + 'name' => 'Tag', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'You can use the client to generate the value, but you must make sure that it is unique among different requests. The client token can contain only ASCII characters.'."\n" - ."\n" - .'> If you do not set this parameter, the system automatically uses **RequestId** as **ClientToken**. **RequestId** may be different for each API request.'."\n", - 'type' => 'string', + 'description' => 'The tags.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => 'The key of the tag to add to the resource. You can specify up to 20 tag keys. The tag key cannot be an empty string.'."\n" + ."\n" + .'The tag key can be up to 128 characters in length and cannot contain `http://` or `https://`. The tag key cannot start with `aliyun` or `acs:`.'."\n", 'type' => 'string', 'required' => false, 'example' => 'FinanceDept', 'title' => ''], + 'Value' => ['description' => 'The value of the tag to add to the resource. You can specify up to 20 tag values The tag value can be an empty string.'."\n" + ."\n" + .'The tag value can be up to 128 characters in length and cannot contain `http://` or `https://`. The tag value cannot start with `aliyun` or `acs:`.'."\n", 'type' => 'string', 'required' => false, 'example' => 'FinanceJoshua', 'title' => ''], + ], + 'required' => false, + 'title' => '', + 'example' => '', + ], 'required' => false, - 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3FF3898', + 'maxItems' => 21, + 'title' => '', + 'example' => '', ], ], ], 'responses' => [ 200 => [ - 'headers' => [], 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => '0ED8D006-F706-4D23-88ED-E11ED28DCAC0', + 'NextToken' => ['description' => 'A pagination token. It can be used in the next request to retrieve a new page of results.'."\n" + ."\n" + .'* If **NextToken** is empty, no next page exists.'."\n" + .'* If a value is returned for **NextToken**, the value can be used in the next request to retrieve a new page of results.'."\n", 'type' => 'string', 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B45', 'title' => ''], + 'TagResources' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'TagResource' => [ + 'description' => 'The tags that are added to the resource.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'ResourceType' => ['description' => 'The type of the resource. Valid values:'."\n" + ."\n" + .'* **PHYSICALCONNECTION**: Express Connect circuit.'."\n" + .'* **VIRTUALBORDERROUTER**: VBR.'."\n" + .'* **ROUTERINTERFACE**: router interface.'."\n", 'type' => 'string', 'example' => 'PHYSICALCONNECTION', 'title' => ''], + 'TagValue' => ['description' => 'The value of the tag that is added to the resource.'."\n", 'type' => 'string', 'example' => 'FinanceJoshua', 'title' => ''], + 'ResourceId' => ['description' => 'The resource ID.'."\n", 'type' => 'string', 'example' => 'pc-bp16qjewdsunr41m1****', 'title' => ''], + 'TagKey' => ['description' => 'The key of the tag that is added to the resource.'."\n", 'type' => 'string', 'example' => 'FinanceDept', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'IncorretSnatEntryStatus', - 'errorMessage' => 'Some Snat entry status blocked this operation..', - ], - [ - 'errorCode' => 'IncorrectStatus.SnatEntry', - 'errorMessage' => 'The Specified SnatEntry is not stable status, can not operation', - ], + ['errorCode' => 'InvalidTagKey', 'errorMessage' => 'The tag keys are not valid.', 'description' => 'The tag index is invalid.'], + ['errorCode' => 'InvalidTagValue', 'errorMessage' => 'The tag values are not valid.', 'description' => 'The tag value is invalid.'], + ['errorCode' => 'InvalidInstanceType.NotFound', 'errorMessage' => 'The instance type is not found', 'description' => 'The instance type is not found.'], + ['errorCode' => 'InvalidInstanceIds.NotFound', 'errorMessage' => 'The instanceIds are not found', 'description' => 'The instance ID is not found.'], + ['errorCode' => 'Forbidden.TagKeys', 'errorMessage' => 'The request do not allow to operate the tag keys', 'description' => 'You do not have the permissions to set the TagKeys parameter.'], + ['errorCode' => 'QuotaExceeded.TagNum', 'errorMessage' => 'Custom Tags quota exceeded', 'description' => 'The upper limit is reached.'], + ['errorCode' => 'Forbidden.TagKey.Duplicated', 'errorMessage' => 'The specified tag key already exists.', 'description' => 'The tag resources are duplicate.'], + ['errorCode' => 'SizeLimitExceeded.TagNum', 'errorMessage' => 'The maximum number of tags is exceeded.', 'description' => 'The number of tags has reached the upper limit.'], + ['errorCode' => 'SizeLimitExceeded.ResourceId', 'errorMessage' => 'The maximum number of resource IDs is exceeded.', 'description' => 'The number of resource group IDs has reached the upper limit.'], ], - 404 => [ - [ - 'errorCode' => 'InvalidRegionId.NotFound', - 'errorMessage' => 'The specified RegionId does not exist in our records.', - ], - [ - 'errorCode' => 'InvalidSnatEntryId.NotFound', - 'errorMessage' => 'Specified Snat entry ID does not exist', - ], - [ - 'errorCode' => 'InvalidSnatTableId.NotFound', - 'errorMessage' => 'Specified SNAT table does not exist.', - ], - [ - 'errorCode' => 'ResourceNotFound.SnatEntry', - 'errorMessage' => 'Specified SNAT entry does not exist.', - ], + 403 => [ + ['errorCode' => 'Forbidden', 'errorMessage' => 'User not authorized to operate on the specified resource.', 'description' => 'You do not have the permissions to manage the specified resource. Apply for the permissions and try again.'], + ['errorCode' => 'BothEmpty.TagsAndResources', 'errorMessage' => 'The specified Tags and ResourcesIds are not allow to both empty.', 'description' => ''], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"0ED8D006-F706-4D23-88ED-E11ED28DCAC0\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 0ED8D006-F706-4D23-88ED-E11ED28DCAC0\\n","errorExample":""}]', - 'title' => 'DeleteSnatEntry', - 'description' => 'DeleteSnatEntry is an asynchronous operation. After you make a request, the ID of the request is returned but the specified SNAT entry is not deleted. The system deletes the SNAT entry in the background. You can call the [DescribeSnatTableEntries](~~42677~~) operation to query the status of SNAT entries.'."\n" - ."\n" - .'* If the SNAT entries are in the **Deleting** state, the system is deleting the SNAT entries. In this case, you can only query the status of the SNAT entries, and cannot perform other operations.'."\n" - .'* If no SNAT entry is returned in the response, the SNAT entry is deleted.'."\n" + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'ListTagResourcesForExpressConnect', + 'description' => '## [](#)'."\n" ."\n" - .'If some SNAT entries are in the **Pending** state, you cannot delete these SNAT entries.', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', + .'* If you want to query a specific object, you must specify **ResourceId.N** or **Tag.N** that consists of **Tag.N.Key** and **Tag.N.Value** in the request.'."\n" + .'* **Tag.N** is a resource tag that consists of a key-value pair. If you specify only **Tag.N.Key**, all tag values that are associated with the specified key are returned. If you specify only **Tag.N.Value**, an error message is returned.'."\n" + .'* If you specify **Tag.N** and **ResourceId.N** to filter tags, **ResourceId.N** must match all specified key-value pairs.'."\n" + .'* If you specify multiple key-value pairs, resources that contain these key-value pairs are returned.'."\n", + 'changeSet' => [], + 'ramActions' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"NextToken\\": \\"FFmyTO70tTpLG6I3FmYAXGKPd****\\",\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B45\\",\\n \\"TagResources\\": {\\n \\"TagResource\\": [\\n {\\n \\"ResourceType\\": \\"PHYSICALCONNECTION\\",\\n \\"TagValue\\": \\"FinanceJoshua\\",\\n \\"ResourceId\\": \\"pc-bp16qjewdsunr41m1****\\",\\n \\"TagKey\\": \\"FinanceDept\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n FFmyTO70tTpLG6I3FmYAXGKPd****\\n 54B48E3D-DF70-471B-AA93-08E683A1B45\\n \\n PHYSICALCONNECTION\\n FinanceJoshua\\n pc-bp16qjewdsunr41m1****\\n FinanceDept\\n \\n","errorExample":""}]', ], - 'ModifySnatEntry' => [ - 'summary' => 'Modifies an SNAT entry.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'ListTrafficMirrorFilters' => [ + 'summary' => 'Queries filters for traffic mirror.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', - 'systemTags' => [ - 'operationType' => 'update', - 'riskType' => 'none', - 'chargeType' => 'free', - ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'list', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the NAT gateway.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to obtain the region ID.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], - ], - [ - 'name' => 'SnatTableId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the SNAT table to which the SNAT entry belongs.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'stb-8vbczigrhop8x5u3t****', - ], - ], - [ - 'name' => 'SnatEntryId', + 'name' => 'TrafficMirrorFilterName', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the SNAT entry that you want to modify.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'snat-bp1vcgcf8tm0plqcg****', - ], + 'schema' => ['description' => 'The name of the filter.'."\n", 'type' => 'string', 'required' => false, 'example' => 'abc', 'title' => ''], ], [ - 'name' => 'SnatIp', + 'name' => 'MaxResults', 'in' => 'query', - 'schema' => [ - 'description' => '* The elastic IP addresses (EIPs) specified in the SNAT entry when you modify an SNAT entry of an Internet NAT gateway. Separate EIPs with commas (,).'."\n" - ."\n" - .' If you select multiple EIPs to create an SNAT address pool, connections are hashed to these EIPs. Network traffic may not be evenly distributed to the EIPs because the amount of traffic passes through each connection varies. We recommend that you associate these EIPs with the same EIP bandwidth plan to prevent service interruptions due to the bandwidth limit of an individual EIP.'."\n" - ."\n" - .'* When you modify an SNAT entry of a VPC NAT gateway, this parameter specifies the NAT IP address in the SNAT entry.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '47.98.XX.XX', - ], + 'schema' => ['description' => 'The maximum number of entries to return.'."\n" + ."\n" + .'Valid values: **1** to **100**. Default value: **10**.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '10', 'title' => ''], ], [ - 'name' => 'SnatEntryName', + 'name' => 'NextToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The name of the SNAT entry.'."\n" - ."\n" - .'The name must be 2 to 128 characters in length. It must start with a letter but cannot start with `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'SnatEntry-1', - ], + 'schema' => ['description' => 'The pagination token that is used in the next request to retrieve a new page of results. Valid values:'."\n" + ."\n" + .'* You do not need to specify this parameter for the first request.'."\n" + .'* You must specify the token that is obtained from the previous query as the value of NextToken.'."\n", 'type' => 'string', 'required' => false, 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', 'title' => ''], ], [ - 'name' => 'ClientToken', + 'name' => 'TrafficMirrorFilterIds', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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.'."\n" - ."\n" - .'> 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.'."\n", - 'type' => 'string', + 'description' => 'The ID of the traffic mirror filter. The maximum value of **N** is **100**, which specifies that you can query up to 100 filters at a time.', + 'type' => 'array', + 'items' => ['description' => 'The ID of the traffic mirror filter. The maximum value of **N** is **100**, which specifies that you can query up to 100 filters at a time.', 'type' => 'string', 'required' => false, 'example' => 'tmf-j6cmls82xnc86vtpe****', 'title' => ''], 'required' => false, - 'example' => '02fb3da4-130e-11e9-8e44-001****', + 'example' => 'tmf-j6cmls82xnc86vtpe****', + 'maxLength' => 128, + 'maxItems' => 100, + 'title' => '', ], ], [ - 'name' => 'EipAffinity', + 'name' => 'RegionId', 'in' => 'query', - 'allowEmptyValue' => true, - 'schema' => [ - 'description' => 'Whether to enable IP affinity. Values:'."\n" - .'- **0**: Disable IP affinity.'."\n" - .' - **1**: Enable IP affinity.'."\n" - .'> After enabling the IP affinity switch, if an SNAT entry is bound to multiple EIPs or NAT IPs, the same client will use the same EIP or NAT IP for access; otherwise, the client will randomly select from the bound EIPs or NAT IPs for access.', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', - ], + 'schema' => ['description' => 'The ID of the region to which the mirrored traffic belongs.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list. For more information about regions that support traffic mirror, see [Overview of traffic mirror](~~207513~~).', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hongkong', 'title' => ''], ], [ - 'name' => 'NetworkInterfaceId', + 'name' => 'ResourceGroupId', 'in' => 'query', - 'allowEmptyValue' => true, - 'schema' => [ - 'description' => 'Elastic Network Interface ID. The IPv4 address set of the elastic network interface will be used as the SNAT address.', - 'type' => 'string', - 'required' => false, - 'example' => 'eni-gw8g131ef2dnbu3k****', - ], + 'schema' => ['description' => 'The ID of the resource group to which the mirrored traffic belongs.'."\n", 'type' => 'string', 'required' => false, 'example' => 'rg-bp67acfmxazb4ph****', 'title' => ''], ], [ - 'name' => 'DryRun', + 'name' => 'Tags', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => 'Whether to perform a dry run of this request, with values:'."\n" - .'- **true**: Sends a check request without modifying the SNAT entry. The checks include whether the required parameters are filled in, the request format, and business restrictions. If the check fails, the corresponding error is returned. If the check passes, an error code `DryRunOperation` is returned.'."\n" - .'- **false** (default): Sends a normal request. After passing the check, it returns a 2xx HTTP status code and modifies the SNAT entry.', - 'type' => 'boolean', + 'description' => 'The tag list.', + 'type' => 'array', + 'items' => [ + 'description' => 'The tag list.', + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => 'The tag key. You can specify at most 20 tag keys. The tag key cannot be an empty string.'."\n" + ."\n" + .'The tag key can be up to 128 characters in length. It cannot start with `aliyun` or `acs:`, and cannot contain `http://` or `https://`.'."\n", 'type' => 'string', 'required' => false, 'example' => 'FinanceDept', 'title' => ''], + 'Value' => ['description' => 'The tag value. You can specify at most 20 tag values. The tag value can be an empty string.'."\n" + ."\n" + .'The tag value can be up to 128 characters in length. It cannot start with `aliyun` or `acs:`, and cannot contain `http://` or `https://`.'."\n", 'type' => 'string', 'required' => false, 'example' => 'FinanceJoshua', 'title' => ''], + ], + 'required' => false, + 'title' => '', + 'example' => '', + ], 'required' => false, - 'example' => 'false', + 'maxItems' => 10, + 'title' => '', + 'example' => '', ], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => '', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '2315DEB7-5E92-423A-91F7-4C1EC9AD97C3', + 'NextToken' => ['description' => 'A pagination token. It can be used in the next request to retrieve a new page of results. Valid values:'."\n" + ."\n" + .'* If **NextToken** is empty, no next page exists.'."\n" + .'* If a value is returned for **NextToken**, the value is the token that is used for the next query.'."\n", 'type' => 'string', 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '739CA01C-92EB-4C69-BCC0-280149C6F41E', 'title' => ''], + 'TotalCount' => ['description' => 'The number of entries returned.'."\n", 'type' => 'string', 'example' => '1', 'title' => ''], + 'MaxResults' => ['description' => 'The maximum number of entries returned.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '20', 'title' => ''], + 'Count' => ['description' => 'The number of entries returned.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '5', 'title' => ''], + 'TrafficMirrorFilters' => [ + 'description' => 'The information about the filters.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'TrafficMirrorFilterStatus' => ['description' => 'The status of the filter. Valid values:'."\n" + ."\n" + .'* **Creating**'."\n" + .'* **Created**'."\n" + .'* **Modifying**'."\n" + .'* **Deleting**'."\n", 'type' => 'string', 'example' => 'Created', 'title' => ''], + 'TrafficMirrorFilterDescription' => ['description' => 'The description of the filter.'."\n", 'type' => 'string', 'example' => 'This is a filter.', 'title' => ''], + 'TrafficMirrorFilterId' => ['description' => 'The ID of the filter.'."\n", 'type' => 'string', 'example' => 'tmf-j6cmls82xnc86vtpe****', 'title' => ''], + 'TrafficMirrorFilterName' => ['description' => 'The filter name.'."\n", 'type' => 'string', 'example' => 'abc', 'title' => ''], + 'IngressRules' => [ + 'description' => 'The information about the inbound rules.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'TrafficMirrorFilterRuleStatus' => ['description' => 'The status of the inbound rule. Valid values:'."\n" + ."\n" + .'* **Creating**'."\n" + .'* **Created**'."\n" + .'* **Modifying**'."\n" + .'* **Deleting**'."\n", 'type' => 'string', 'example' => 'Created', 'title' => ''], + 'Action' => ['description' => 'The action of the inbound rule. Valid values:'."\n" + ."\n" + .'* **accept**'."\n" + .'* **drop**'."\n", 'type' => 'string', 'example' => 'accept', 'title' => ''], + 'SourceCidrBlock' => ['description' => 'The source CIDR block of the inbound traffic.'."\n", 'type' => 'string', 'example' => '0.0.0.0/0', 'title' => ''], + 'TrafficDirection' => ['description' => 'The direction of the network traffic. Valid values:'."\n" + ."\n" + .'* **egress**'."\n" + .'* **ingress**'."\n", 'type' => 'string', 'example' => 'ingress', 'title' => ''], + 'Protocol' => ['description' => 'The protocol that is used by the inbound traffic to be mirrored. Valid values:'."\n" + ."\n" + .'* **ALL**'."\n" + .'* **ICMP**'."\n" + .'* **TCP**'."\n" + .'* **UDP**'."\n", 'type' => 'string', 'example' => 'ALL', 'title' => ''], + 'IpVersion' => ['description' => 'The version of IP protocol.', 'type' => 'string', 'example' => 'IPv4', 'title' => ''], + 'DestinationPortRange' => ['description' => 'The destination port range of the inbound traffic.'."\n", 'type' => 'string', 'example' => '-1/-1', 'title' => ''], + 'TrafficMirrorFilterRuleId' => ['description' => 'The ID of the inbound rule.'."\n", 'type' => 'string', 'example' => 'tmr-j6cezu8e68rnpepet****', 'title' => ''], + 'DestinationCidrBlock' => ['description' => 'The destination CIDR block of the inbound traffic.'."\n", 'type' => 'string', 'example' => '0.0.0.0/0', 'title' => ''], + 'Priority' => ['description' => 'The priority of the inbound rule. A smaller value indicates a higher priority.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''], + 'TrafficMirrorFilterId' => ['description' => 'The ID of the filter associated with the inbound rule.'."\n", 'type' => 'string', 'example' => 'tmf-j6cmls82xnc86vtpe****', 'title' => ''], + 'SourcePortRange' => ['description' => 'The destination port range of the inbound traffic.'."\n", 'type' => 'string', 'example' => '-1/-1', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + 'EgressRules' => [ + 'description' => 'The information about the outbound rules.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'TrafficMirrorFilterRuleStatus' => ['description' => 'The status of the outbound rule. Valid values:'."\n" + ."\n" + .'* **Creating**'."\n" + .'* **Created**'."\n" + .'* **Modifying**'."\n" + .'* **Deleting**'."\n", 'type' => 'string', 'example' => 'Created', 'title' => ''], + 'Action' => ['description' => 'The action of the outbound rule. Valid values:'."\n" + ."\n" + .'* **accept**'."\n" + .'* **drop**'."\n", 'type' => 'string', 'example' => 'accept', 'title' => ''], + 'SourceCidrBlock' => ['description' => 'The source CIDR block of the outbound traffic.'."\n", 'type' => 'string', 'example' => '10.0.0.0/24', 'title' => ''], + 'TrafficDirection' => ['description' => 'The direction of the network traffic. Valid values:'."\n" + ."\n" + .'* **egress**'."\n" + .'* **ingress**'."\n", 'type' => 'string', 'example' => 'egress', 'title' => ''], + 'Protocol' => ['description' => 'The protocol that is used by the outbound traffic to be mirrored. Valid values:'."\n" + ."\n" + .'* **ALL**'."\n" + .'* **ICMP**'."\n" + .'* **TCP**'."\n" + .'* **UDP**'."\n", 'type' => 'string', 'example' => 'TCP', 'title' => ''], + 'IpVersion' => ['description' => 'The version of IP protocol.', 'type' => 'string', 'example' => 'IPv4', 'title' => ''], + 'DestinationPortRange' => ['description' => 'The destination port range of the outbound traffic.'."\n", 'type' => 'string', 'example' => '22/40', 'title' => ''], + 'TrafficMirrorFilterRuleId' => ['description' => 'The ID of the outbound rule.'."\n", 'type' => 'string', 'example' => 'tmr-j6c89rzmtd3hhdugq****', 'title' => ''], + 'DestinationCidrBlock' => ['description' => 'The destination CIDR block of the outbound traffic.'."\n", 'type' => 'string', 'example' => '10.0.0.0/24', 'title' => ''], + 'Priority' => ['description' => 'The priority of the outbound rule. A smaller value indicates a higher priority.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''], + 'TrafficMirrorFilterId' => ['description' => 'The ID of the filter associated with the outbound rule.'."\n", 'type' => 'string', 'example' => 'tmf-j6cmls82xnc86vtpe****', 'title' => ''], + 'SourcePortRange' => ['description' => 'The source port range of the outbound traffic.'."\n", 'type' => 'string', 'example' => '22/40', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + 'ResourceGroupId' => ['description' => 'The ID of the resource group to which the traffic mirror session belongs.'."\n", 'type' => 'string', 'example' => 'rg-bp67acfmxazb4ph****', 'title' => ''], + 'Tags' => [ + 'description' => 'The tag list.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => 'The tag key.'."\n", 'type' => 'string', 'example' => 'FinanceDept', 'title' => ''], + 'Value' => ['description' => 'The tag value.'."\n", 'type' => 'string', 'example' => 'FinanceJoshua', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + 'CreationTime' => ['description' => 'The time when the filter is created.', 'type' => 'string', 'example' => '2023-09-05T15:26Z', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', ], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidSnatIp.Malformed', - 'errorMessage' => 'The specified SnatIp is not a valid IP address.', - ], - [ - 'errorCode' => 'Forbidden.SourceVSwitchId.Duplicated', - 'errorMessage' => 'The specified SourceCIDRis duplicated.', - ], - [ - 'errorCode' => 'Forbidden.IpUsedInForwardTable', - 'errorMessage' => 'The specified SnatIp already used in forward table', - ], - [ - 'errorCode' => 'OperationUnsupported.EipForSnatPool', - 'errorMessage' => 'The Eip cannot support snat pool', - ], - [ - 'errorCode' => 'InvalidParameter.Name.Malformed', - 'errorMessage' => 'The specified Name is not valid.', - ], - [ - 'errorCode' => 'IncorretSnatEntryStatus', - 'errorMessage' => 'The Specified SnatEntry is not stable status, can not operation', - ], - [ - 'errorCode' => 'EIP_NOT_IN_GATEWAY', - 'errorMessage' => 'The Eip not in nat gateway', - ], - [ - 'errorCode' => 'InvalidParameter.SnatIp', - 'errorMessage' => 'Error public ip must in same bandwidth package.', - ], - [ - 'errorCode' => 'QuotaExceeded.SnatIp', - 'errorMessage' => 'Public ip number exceeds quota.', - ], - [ - 'errorCode' => 'InvalidSnatEntryId.NotFound', - 'errorMessage' => 'Specified SNAT entry does not exist.', - ], - [ - 'errorCode' => 'IncorrectStatus.SnatEntry', - 'errorMessage' => 'The Specified SnatEntry is not stable status, can not operation', - ], - [ - 'errorCode' => 'OperationFailed.CanNotUseEipInDnat', - 'errorMessage' => 'Operation failed because the eip can not used by forward entry.', - ], - [ - 'errorCode' => 'OperationUnsupported.EipNatGWCheck', - 'errorMessage' => 'Operation unsupported because the relation check of eip and nat gateway is failed.', - ], - [ - 'errorCode' => 'ResourceNotFound.SnatEntry', - 'errorMessage' => 'Specified SNAT entry does not exist.', - ], - [ - 'errorCode' => 'IncorrectStatus.NatIp', - 'errorMessage' => 'Specified NatIp does not exist.', - ], - [ - 'errorCode' => 'OperationFailed.CanNotUseNatIpInDnat', - 'errorMessage' => 'Operation failed because the NatIp can not used by forward entry.', - ], - [ - 'errorCode' => 'IncorrectStatus.NATGW', - 'errorMessage' => 'NATGW status is invalid.', - ], - [ - 'errorCode' => 'OperationUnsupported.EipInBinding', - 'errorMessage' => 'Create snat entry with eip in associating status is unsupported.', - ], - [ - 'errorCode' => 'OperationUnsupported.EipNatBWPCheck', - 'errorMessage' => 'The EIP is not associated with a NAT service plan.', - ], - [ - 'errorCode' => 'IllegalParam.NetworkInterfaceId', - 'errorMessage' => 'The param of NetworkInterfaceId is illegal.', - ], - [ - 'errorCode' => 'OperationFailed.SnatIpPoolBwpRules', - 'errorMessage' => 'The operation failed because the IP in Snat entryl was added to multiple NAT bandwidth packets.', - ], - [ - 'errorCode' => 'OperationFailed.SnatIpPoolCbwpRules', - 'errorMessage' => 'The operation failed because the SNAT rule IPs are added to multi bandwidth packages.', - ], - [ - 'errorCode' => 'OperationFailed.SnatIpsTooMany', - 'errorMessage' => 'The maximum number of IP addresses is exceeded in the SNAT pool.', - ], - [ - 'errorCode' => 'OperationFailed.SnatIpsCheck', - 'errorMessage' => 'The operation fails because some IPs address in the SNAT entry are not added to common bandwidth packet.', - ], - ], - 404 => [ - [ - 'errorCode' => 'InvalidRegionId.NotFound', - 'errorMessage' => 'The specified RegionId does not exist in our records.', - ], - [ - 'errorCode' => 'InvalidSnatTableId.NotFound', - 'errorMessage' => 'Specified SNAT table does not exist.', - ], - [ - 'errorCode' => 'InvalidSnatEntryId.NotFound', - 'errorMessage' => 'Specified SNAT entry does not exist.', - ], - [ - 'errorCode' => 'InvalidSnatIp.NotFound', - 'errorMessage' => 'Specified SnatIp does not found on the NAT Gateway', - ], - [ - 'errorCode' => 'ResourceNotFound.NatIp', - 'errorMessage' => 'Specified NatIp does not found on the NAT Gateway', - ], + ['errorCode' => 'IllegalParam.NextToken', 'errorMessage' => 'The specified NextToken is invalid.', 'description' => 'The specified NextToken is invalid.'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"2315DEB7-5E92-423A-91F7-4C1EC9AD****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 2315DEB7-5E92-423A-91F7-4C1EC9AD97C3\\n","errorExample":""}]', - 'title' => 'ModifySnatEntry', - 'description' => '## [](#)'."\n" - ."\n" - .'**ModifySnatEntry** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call the [DescribeSnatTableEntries](~~42677~~) operation to query the status of the task.'."\n" - ."\n" - .'* **Pending**: indicates that the system is modifying the SNAT entry. You can only query the status of the SNAT entry, but cannot perform other operations.'."\n" - .'* **Available**: indicates that the SNAT entry is modified.'."\n" - ."\n" - .'> If an SNAT entry is in the **Pending** state, it indicates that you cannot modify the SNAT entry.'."\n" - ."\n" - .'You cannot repeatedly call the **ModifySnatEntry** operation to modify an SNAT entry within a specific period of time.'."\n", + 'title' => 'ListTrafficMirrorFilters', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - 'translator' => 'machine', - ], - 'DescribeSnatTableEntries' => [ - 'summary' => 'Queries SNAT entries.', - 'methods' => [ - 'post', - 'get', + 'changeSet' => [ + ['createdAt' => '2025-04-25T09:57:12.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2024-07-31T02:45:59.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-12-18T13:05:53.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2023-06-25T06:28:07.000Z', 'description' => 'Response parameters changed'], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'vpc:ListTrafficMirrorFilters', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'TrafficMirrorFilter', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:trafficmirrorfilter/*'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"NextToken\\": \\"FFmyTO70tTpLG6I3FmYAXGKPd****\\",\\n \\"RequestId\\": \\"739CA01C-92EB-4C69-BCC0-280149C6F41E\\",\\n \\"TotalCount\\": \\"1\\",\\n \\"MaxResults\\": 20,\\n \\"Count\\": 5,\\n \\"TrafficMirrorFilters\\": [\\n {\\n \\"TrafficMirrorFilterStatus\\": \\"Created\\",\\n \\"TrafficMirrorFilterDescription\\": \\"This is a filter.\\",\\n \\"TrafficMirrorFilterId\\": \\"tmf-j6cmls82xnc86vtpe****\\",\\n \\"TrafficMirrorFilterName\\": \\"abc\\",\\n \\"IngressRules\\": [\\n {\\n \\"TrafficMirrorFilterRuleStatus\\": \\"Created\\",\\n \\"Action\\": \\"accept\\",\\n \\"SourceCidrBlock\\": \\"0.0.0.0/0\\",\\n \\"TrafficDirection\\": \\"ingress\\",\\n \\"Protocol\\": \\"ALL\\",\\n \\"IpVersion\\": \\"IPv4\\",\\n \\"DestinationPortRange\\": \\"-1/-1\\",\\n \\"TrafficMirrorFilterRuleId\\": \\"tmr-j6cezu8e68rnpepet****\\",\\n \\"DestinationCidrBlock\\": \\"0.0.0.0/0\\",\\n \\"Priority\\": 1,\\n \\"TrafficMirrorFilterId\\": \\"tmf-j6cmls82xnc86vtpe****\\",\\n \\"SourcePortRange\\": \\"-1/-1\\"\\n }\\n ],\\n \\"EgressRules\\": [\\n {\\n \\"TrafficMirrorFilterRuleStatus\\": \\"Created\\",\\n \\"Action\\": \\"accept\\",\\n \\"SourceCidrBlock\\": \\"10.0.0.0/24\\",\\n \\"TrafficDirection\\": \\"egress\\",\\n \\"Protocol\\": \\"TCP\\",\\n \\"IpVersion\\": \\"IPv4\\",\\n \\"DestinationPortRange\\": \\"22/40\\",\\n \\"TrafficMirrorFilterRuleId\\": \\"tmr-j6c89rzmtd3hhdugq****\\",\\n \\"DestinationCidrBlock\\": \\"10.0.0.0/24\\",\\n \\"Priority\\": 1,\\n \\"TrafficMirrorFilterId\\": \\"tmf-j6cmls82xnc86vtpe****\\",\\n \\"SourcePortRange\\": \\"22/40\\"\\n }\\n ],\\n \\"ResourceGroupId\\": \\"rg-bp67acfmxazb4ph****\\",\\n \\"Tags\\": [\\n {\\n \\"Key\\": \\"FinanceDept\\",\\n \\"Value\\": \\"FinanceJoshua\\"\\n }\\n ],\\n \\"CreationTime\\": \\"2023-09-05T15:26Z\\"\\n }\\n ]\\n}","type":"json"}]', + ], + 'ListTrafficMirrorSessions' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'read', - 'systemTags' => [ - 'operationType' => 'get', - 'riskType' => 'none', - 'chargeType' => 'free', - ], + 'deprecated' => false, + 'systemTags' => ['operationType' => 'list', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ - 'name' => 'RegionId', + 'name' => 'TrafficMirrorSessionName', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region where you want to create the NAT gateway.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The name of the traffic mirror session.'."\n" + ."\n" + .'The name must be 1 to 128 characters in length, and cannot start with `http://` or `https://`.'."\n", 'type' => 'string', 'required' => false, 'example' => 'abc', 'title' => ''], ], [ - 'name' => 'SnatTableId', + 'name' => 'MaxResults', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the SNAT table.'."\n" - ."\n" - .'> You must specify at least one of **SnatTableId** and **NatGatewayId**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'stb-8vbczigrhop8x5u3t****', - ], + 'schema' => ['description' => 'The maximum number of entries to return. Valid values: **1** to **100**. Default value: **10**.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '10', 'title' => ''], ], [ - 'name' => 'SnatEntryId', + 'name' => 'NextToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the SNAT entry.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'snat-8vbae8uqh7rjpk7d2****', - ], + 'schema' => ['description' => 'The token that is used for the next query. Valid values:'."\n" + ."\n" + .'* If this is your first query and no next queries are to be sent, ignore this parameter.'."\n" + .'* If a next query is to be sent, set the value to the value of NextToken that is returned from the last call.'."\n", 'type' => 'string', 'required' => false, 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', 'title' => ''], ], [ - 'name' => 'SourceVSwitchId', + 'name' => 'TrafficMirrorSourceId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the vSwitch.'."\n" - ."\n" - .'* When you query SNAT entries of Internet NAT gateways, this parameter specifies that Elastic Compute Service (ECS) instances in the vSwitch can use SNAT entries to access the Internet.'."\n" - .'* When you query SNAT entries of virtual private cloud (VPC) NAT gateways, this parameter specifies that ECS instances in the vSwitch can use SNAT entries to access external networks.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'vsw-3xbjkhjshjdf****', - ], + 'schema' => ['description' => 'The ID of the traffic mirror source. You can specify only an elastic network interface (ENI) as the mirror source.'."\n", 'type' => 'string', 'required' => false, 'example' => 'eni-j6c8znm5l1yt4sox*****', 'title' => ''], ], [ - 'name' => 'SourceCIDR', + 'name' => 'TrafficMirrorTargetId', 'in' => 'query', - 'schema' => [ - 'description' => 'The source CIDR block specified in the SNAT entry.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '116.22.XX.XX/24', - ], + 'schema' => ['description' => 'The ID of the traffic mirror destination. You can specify only an ENI or a Server Load Balancer (SLB) instance as a traffic mirror destination.'."\n", 'type' => 'string', 'required' => false, 'example' => 'eni-j6c2fp57q8rr47rp****', 'title' => ''], ], [ - 'name' => 'SnatIp', + 'name' => 'TrafficMirrorFilterId', 'in' => 'query', - 'schema' => [ - 'description' => '* When you query SNAT entries of Internet NAT gateways, this parameter specifies the EIP in an SNAT entry.'."\n" - .'* When you query SNAT entries of VPC NAT gateways, this parameter specifies the NAT IP address in an SNAT entry.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '116.22.XX.XX', - ], + 'schema' => ['description' => 'The ID of the traffic mirror filter.'."\n", 'type' => 'string', 'required' => false, 'example' => 'tmf-j6cmls82xnc86vtpe****', 'title' => ''], ], [ - 'name' => 'SnatEntryName', + 'name' => 'VirtualNetworkId', 'in' => 'query', - 'schema' => [ - 'description' => 'The name of the SNAT entry.'."\n" - ."\n" - .'The name must be 2 to 128 characters in length, and can contain digits, underscores (\\_), and hyphens (-). The name must start with a letter.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'SnatEntry-1', - ], + 'schema' => ['description' => 'The VXLAN network identifier (VNI) that is used to distinguish different mirrored traffic. Valid values: **0** to **16777215**. You can use VNIs to identify mirrored traffic from different sessions at the traffic mirror destination. You can specify a custom VNI or use a random VNI that is allocated by the system. If you want the system to randomly allocate a VNI, ignore this parameter.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '10', 'title' => ''], ], [ - 'name' => 'PageNumber', + 'name' => 'Priority', 'in' => 'query', - 'schema' => [ - 'description' => 'The page number. Default value: **1**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'minimum' => '1', - 'example' => '1', - 'default' => '1', - ], + 'schema' => ['description' => 'The priority of the traffic mirror session. Valid values: **1** to **32766**.'."\n" + ."\n" + .'A smaller value indicates a higher priority. You cannot specify identical priorities for traffic mirror sessions that are created in the same region by using the same account.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1', 'title' => ''], ], [ - 'name' => 'PageSize', + 'name' => 'Enabled', 'in' => 'query', - 'schema' => [ - 'description' => 'The number of entries per page. Maximum value: **50**. Default value: **10**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '50', - 'minimum' => '1', - 'example' => '10', - 'default' => '10', - ], + 'schema' => ['description' => 'Specifies whether to enable the traffic mirror session. Valid values:'."\n" + ."\n" + .'* **false**: does not enable the traffic mirror session.'."\n" + .'* **true**: enables the traffic mirror session.', 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], ], [ - 'name' => 'NatGatewayId', + 'name' => 'TrafficMirrorSessionIds', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => 'The ID of the NAT gateway.'."\n" - ."\n" - .'> You must specify at least one of **SnatTableId** and **NatGatewayId**.'."\n", - 'type' => 'string', + 'description' => 'The IDs of the traffic mirror session. The maximum value of N is 100, which indicates that you can query up to 100 traffic mirror sessions at a time.', + 'type' => 'array', + 'items' => ['description' => 'The ID of the traffic mirror session. The maximum value of **N** is **100**, which indicates that you can query up to 100 traffic mirror sessions at a time.'."\n", 'type' => 'string', 'required' => false, 'example' => 'tms-j6cla50buc44ap8tu****', 'title' => ''], 'required' => false, - 'example' => 'ngw-bp1uewa15k4iy5770****', + 'example' => 'tms-j6cla50buc44ap8tu****', + 'maxLength' => 128, + 'maxItems' => 100, + 'title' => '', ], ], [ - 'name' => 'NetworkInterfaceIds', + 'name' => 'RegionId', 'in' => 'query', - 'allowEmptyValue' => true, - 'style' => 'flat', + 'schema' => ['description' => 'The ID of the region to which the traffic mirror session belongs. You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list. For more information about regions that support traffic mirror, see [Overview of traffic mirror](~~207513~~).', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hongkong', 'title' => ''], + ], + [ + 'name' => 'ResourceGroupId', + 'in' => 'query', + 'schema' => ['description' => 'The ID of the resource group to which the mirrored traffic belongs.'."\n", 'type' => 'string', 'required' => false, 'example' => 'rg-bp67acfmxazb4ph****', 'title' => ''], + ], + [ + 'name' => 'Tags', + 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => 'The ID of the elastic network interface to be queried.', + 'description' => 'The tags of the resource.', 'type' => 'array', 'items' => [ - 'description' => 'Elastic Network Interface ID', - 'type' => 'string', + 'description' => 'The tag of the resource.', + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => 'The tag key. You can specify at most 20 tag keys. The tag key cannot be an empty string.'."\n" + ."\n" + .'The key cannot exceed 64 characters in length, and can contain digits, periods (.), underscores (\\_), and hyphens (-). The key must start with a letter but cannot start with `aliyun` or `acs:`. The key cannot contain `http://` or `https://`.'."\n", 'type' => 'string', 'required' => false, 'example' => 'FinanceDept', 'title' => ''], + 'Value' => ['description' => 'The tag value. You can specify at most 20 tag values. The tag value can be an empty string.'."\n" + ."\n" + .'The tag value cannot exceed 128 characters in length, and can contain digits, periods (.), underscores (\\_), and hyphens (-). It must start with a letter but cannot start with `aliyun` or `acs:`. It cannot contain `http://` or `https://`.'."\n", 'type' => 'string', 'required' => false, 'example' => 'FinanceJoshua', 'title' => ''], + ], 'required' => false, - 'example' => 'eni-gw8g131ef2dnbu3k****', + 'title' => '', ], 'required' => false, + 'maxItems' => 10, + 'title' => '', ], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'description' => '', 'type' => 'object', 'properties' => [ - 'PageSize' => [ - 'description' => 'The number of entries per page.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '5', - ], - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '6D7E89B1-1C5B-412B-8585-4908E222EED5', - ], - 'PageNumber' => [ - 'description' => 'The number of the returned page.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'TotalCount' => [ - 'description' => 'The number of returned entries.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'SnatTableEntries' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'SnatTableEntry' => [ - 'description' => 'Details of SNAT entries.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'Status' => [ - 'description' => 'The status of the SNAT entry. Valid values:'."\n" - ."\n" - .'* **Pending**'."\n" - .'* **Available**'."\n" - .'* **Deleting**'."\n", - 'type' => 'string', - 'example' => 'Pending', - ], - 'SnatEntryName' => [ - 'description' => 'The name of the SNAT entry.'."\n", - 'type' => 'string', - 'example' => 'SnatEntry-1', - ], - 'SourceVSwitchId' => [ - 'description' => '* When you query SNAT entries of Internet NAT gateways, this parameter indicates the ID of the vSwitch that uses SNAT to access the Internet.'."\n" - .'* When you query SNAT entries of VPC NAT gateways, this parameter indicates the ID of the vSwitch that uses SNAT to access external networks.'."\n", - 'type' => 'string', - 'example' => 'vsw-3xbdsffvfgdfds****', - ], - 'SourceCIDR' => [ - 'description' => 'The source CIDR block specified in the SNAT entry.'."\n", - 'type' => 'string', - 'example' => '116.22.XX.XX/24', - ], - 'SnatEntryId' => [ - 'description' => 'The ID of the SNAT entry.'."\n", - 'type' => 'string', - 'example' => 'snat-kmd6nv8fy****', - ], - 'SnatTableId' => [ - 'description' => 'The ID of the SNAT table to which the SNAT entry belongs.'."\n", - 'type' => 'string', - 'example' => 'stb-gz3r3odawdgffde****', - ], - 'SnatIp' => [ - 'description' => '* When you query SNAT entries of Internet NAT gateways, this parameter indicates the EIP in an SNAT entry.'."\n" - .'* When you query SNAT entries of VPC NAT gateways, this parameter indicates the NAT IP address in an SNAT entry.'."\n", - 'type' => 'string', - 'example' => '116.22.XX.XX', - ], - 'NatGatewayId' => [ - 'description' => 'The ID of the NAT gateway to which the SNAT entry belongs.'."\n", - 'type' => 'string', - 'example' => 'ngw-bp1uewa15k4iy5770****', - ], - 'NetworkInterfaceId' => [ - 'description' => 'Elastic Network Interface ID', - 'type' => 'string', - 'example' => 'eni-gw8g131ef2dnbu3k****', - ], - 'EipAffinity' => [ - 'description' => 'Whether to enable IP affinity. Values:'."\n" - .'- **0**: Disable IP affinity. - **1**: Enable IP affinity.'."\n" - .'> After enabling the IP affinity switch, if an SNAT entry is bound to multiple EIPs or NAT IPs, the same client will use the same EIP or NAT IP for access. Otherwise, the client will randomly select from the bound EIPs or NAT IPs for access.', - 'type' => 'string', - 'example' => '1', + 'NextToken' => ['description' => 'The token that is used for the next query. Valid values:'."\n" + ."\n" + .'* If no value is returned for **NextToken**, no next queries are sent.'."\n" + .'* If a value of **NextToken** is returned, the value is the token that is used for the subsequent query.'."\n", 'type' => 'string', 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', 'title' => ''], + 'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => '739CA01C-92EB-4C69-BCC0-280149C6F41E', 'title' => ''], + 'TotalCount' => ['description' => 'The total number of entries returned.'."\n", 'type' => 'string', 'example' => '1', 'title' => ''], + 'TrafficMirrorSessions' => [ + 'description' => 'The details about the traffic mirror session.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'TrafficMirrorTargetId' => ['description' => 'The ID of the traffic mirror destination.'."\n", 'type' => 'string', 'example' => 'eni-j6c2fp57q8rr47rp****', 'title' => ''], + 'TrafficMirrorSessionId' => ['description' => 'The ID of the traffic mirror session.'."\n", 'type' => 'string', 'example' => 'tms-j6cla50buc44ap8tu****', 'title' => ''], + 'Priority' => ['description' => 'The priority of the traffic mirror session.'."\n" + ."\n" + .'A smaller value indicates a higher priority.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''], + 'TrafficMirrorTargetType' => ['description' => 'The type of the traffic mirror destination. Valid values:'."\n" + ."\n" + .'* **NetworkInterface**: an elastic network interface (ENI)'."\n" + .'* **SLB**: an internal-facing Server Load Balancer (SLB) instance'."\n", 'type' => 'string', 'example' => 'NetworkInterface', 'title' => ''], + 'PacketLength' => ['description' => 'The maximum transmission unit.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '1500', 'title' => ''], + 'TrafficMirrorSessionDescription' => ['description' => 'The description of the traffic mirror session.'."\n", 'type' => 'string', 'example' => 'This is a session.', 'title' => ''], + 'TrafficMirrorSessionStatus' => ['description' => 'The status of the traffic mirror session. Valid values:'."\n" + ."\n" + .'* **Creating**'."\n" + .'* **Created**'."\n" + .'* **Modifying**'."\n" + .'* **Deleting**'."\n", 'type' => 'string', 'example' => 'Created', 'title' => ''], + 'Enabled' => ['description' => 'Indicates whether the traffic mirror session was enabled.'."\n" + ."\n" + .'* **false** '."\n" + .'* **true**', 'type' => 'boolean', 'example' => 'false', 'title' => ''], + 'TrafficMirrorSessionBusinessStatus' => ['description' => 'The status of the traffic mirror session.'."\n" + ."\n" + .'* **Normal**'."\n" + .'* **FinancialLocked**'."\n", 'type' => 'string', 'example' => 'Normal', 'title' => ''], + 'VirtualNetworkId' => ['description' => 'You can specify VNIs to distinguish different mirrored traffic.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '10', 'title' => ''], + 'TrafficMirrorFilterId' => ['description' => 'The ID of the filter.'."\n", 'type' => 'string', 'example' => 'tmf-j6cmls82xnc86vtpe****', 'title' => ''], + 'TrafficMirrorSessionName' => ['description' => 'The name of the traffic mirror session.'."\n", 'type' => 'string', 'example' => 'abc', 'title' => ''], + 'TrafficMirrorSourceIds' => [ + 'description' => 'The ID of the traffic mirror source.'."\n", + 'type' => 'array', + 'items' => ['description' => 'The ID of the traffic mirror source.'."\n", 'type' => 'string', 'example' => 'eni-j6c8znm5l1yt4sox****', 'title' => ''], + 'title' => '', + ], + 'ResourceGroupId' => ['description' => 'The ID of the resource group to which the traffic mirror session belongs.'."\n", 'type' => 'string', 'example' => 'rg-bp67acfmxazb4ph****', 'title' => ''], + 'Tags' => [ + 'description' => 'The tag list.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => 'The tag key.'."\n", 'type' => 'string', 'example' => 'FinanceDept', 'title' => ''], + 'Value' => ['description' => 'The tag value.'."\n", 'type' => 'string', 'example' => 'FinanceJoshua', 'title' => ''], ], + 'title' => '', ], + 'title' => '', ], + 'CreationTime' => ['description' => 'The time when the session is created.', 'type' => 'string', 'example' => '2023-09-05T15:26Z', 'title' => ''], ], + 'title' => '', ], + 'title' => '', ], ], - 'description' => '', + 'title' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidName.Malformed', - 'errorMessage' => 'The specified Name is not valid.', - ], - [ - 'errorCode' => 'DESCRIBE_SNAT_PARAM_INVALID', - 'errorMessage' => 'SnatTableId and natGatewayId can not both be null', - ], + ['errorCode' => 'IllegalParam.NextToken', 'errorMessage' => 'The specified NextToken is invalid.', 'description' => 'The specified NextToken is invalid.'], ], - 404 => [ - [ - 'errorCode' => 'InvalidRegionId.NotFound', - 'errorMessage' => 'The specified RegionId does not exist in our records.', - ], - [ - 'errorCode' => 'InvalidSnatTableId.NotFound', - 'errorMessage' => 'Specified SNAT table does not exist.', + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"NextToken\\": \\"FFmyTO70tTpLG6I3FmYAXGKPd****\\",\\n \\"RequestId\\": \\"739CA01C-92EB-4C69-BCC0-280149C6F41E\\",\\n \\"TotalCount\\": \\"1\\",\\n \\"TrafficMirrorSessions\\": [\\n {\\n \\"TrafficMirrorTargetId\\": \\"eni-j6c2fp57q8rr47rp****\\",\\n \\"TrafficMirrorSessionId\\": \\"tms-j6cla50buc44ap8tu****\\",\\n \\"Priority\\": 1,\\n \\"TrafficMirrorTargetType\\": \\"NetworkInterface\\",\\n \\"PacketLength\\": 1500,\\n \\"TrafficMirrorSessionDescription\\": \\"This is a session.\\",\\n \\"TrafficMirrorSessionStatus\\": \\"Created\\",\\n \\"Enabled\\": false,\\n \\"TrafficMirrorSessionBusinessStatus\\": \\"Normal\\",\\n \\"VirtualNetworkId\\": 10,\\n \\"TrafficMirrorFilterId\\": \\"tmf-j6cmls82xnc86vtpe****\\",\\n \\"TrafficMirrorSessionName\\": \\"abc\\",\\n \\"TrafficMirrorSourceIds\\": [\\n \\"eni-j6c8znm5l1yt4sox****\\"\\n ],\\n \\"ResourceGroupId\\": \\"rg-bp67acfmxazb4ph****\\",\\n \\"Tags\\": [\\n {\\n \\"Key\\": \\"FinanceDept\\",\\n \\"Value\\": \\"FinanceJoshua\\"\\n }\\n ],\\n \\"CreationTime\\": \\"2023-09-05T15:26Z\\"\\n }\\n ]\\n}","type":"json"}]', + 'title' => 'ListTrafficMirrorSessions', + 'summary' => 'Queries the details of a traffic mirror session.', + 'changeSet' => [ + ['createdAt' => '2024-07-31T02:45:59.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-12-18T13:05:53.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2023-08-30T03:22:01.000Z', 'description' => 'Response parameters changed'], + ], + 'ramActions' => [ + [ + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'vpc:ListTrafficMirrorSessions', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'TrafficMirrorSession', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:trafficmirrorsession/*'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"PageSize\\": 5,\\n \\"RequestId\\": \\"6D7E89B1-1C5B-412B-8585-4908E222EED5\\",\\n \\"PageNumber\\": 1,\\n \\"TotalCount\\": 1,\\n \\"SnatTableEntries\\": {\\n \\"SnatTableEntry\\": [\\n {\\n \\"Status\\": \\"Pending\\",\\n \\"SnatEntryName\\": \\"SnatEntry-1\\",\\n \\"SourceVSwitchId\\": \\"vsw-3xbdsffvfgdfds****\\",\\n \\"SourceCIDR\\": \\"116.22.XX.XX/24\\",\\n \\"SnatEntryId\\": \\"snat-kmd6nv8fy****\\",\\n \\"SnatTableId\\": \\"stb-gz3r3odawdgffde****\\",\\n \\"SnatIp\\": \\"116.22.XX.XX\\",\\n \\"NatGatewayId\\": \\"ngw-bp1uewa15k4iy5770****\\",\\n \\"NetworkInterfaceId\\": \\"eni-gw8g131ef2dnbu3k****\\",\\n \\"EipAffinity\\": \\"1\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 5\\n 6D7E89B1-1C5B-412B-8585-4908E222EED5\\n 1\\n 1\\n \\n Pending\\n SnatEntry-1\\n vsw-3xbdsffvfgdfds****\\n 116.22.XX.XX/24\\n snat-kmd6nv8fy****\\n stb-gz3r3odawdgffde****\\n 116.22.XX.XX\\n \\n","errorExample":""}]', - 'title' => 'DescribeSnatTableEntries', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'translator' => 'machine', ], - 'CreateForwardEntry' => [ - 'summary' => 'Adds a DNAT entry to a DNAT table.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'ListVSwitchCidrReservations' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', - 'systemTags' => [ - 'operationType' => 'create', - 'riskType' => 'none', - 'chargeType' => 'free', - ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'list', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the NAT gateway.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to obtain the region ID.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], - ], - [ - 'name' => 'ForwardTableId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the DNAT table.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'ftb-bp1mbjubq34hlcqpa****', - ], - ], - [ - 'name' => 'ExternalIp', - 'in' => 'query', - 'schema' => [ - 'description' => '* The EIP that can be accessed over the Internet when you configure a DNAT entry for an Internet NAT gateway.'."\n" - .'* The NAT IP address that can be accessed by external networks when you configure a DNAT entry for a VPC NAT gateway.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => '116.28.XX.XX', - ], - ], - [ - 'name' => 'ExternalPort', + 'name' => 'Tags', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => '* The external port range that is used for port forwarding when you configure a DNAT entry for an Internet NAT gateway.'."\n" - ."\n" - .' * Valid values: **1** to **65535**.'."\n" - .' * To specify a port range, separate the first port and the last port with a forward slash (/), for example, `10/20`.'."\n" - .' * If you set **ExternalPort** to a port range, you must also set **InternalPort** to a port range, and the number of ports specified by these parameters must be the same. For example, if you set **ExternalPort** to `10/20`, you can set **InternalPort** to `80/90`.'."\n" - ."\n" - .'* The port that can be accessed by external networks when you configure a DNAT entry for a VPC NAT gateway. Valid values: **1** to **65535**.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => '8080', + 'description' => 'The tags.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => 'The tag key. You can specify at most 20 tag keys. The tag key cannot be an empty string.'."\n" + ."\n" + .'A tag key can be up to 128 characters in length. It cannot start with aliyun or acs:, and cannot contain http:// or https://.'."\n", 'type' => 'string', 'required' => false, 'example' => 'FinanceDept'], + 'Value' => ['description' => 'The tag value. You can specify at most 20 tag values. The tag value can be an empty string.'."\n" + ."\n" + .'The tag value can be up to 128 characters in length, and cannot start with acs: or aliyun. It cannot contain http:// or https://.'."\n", 'type' => 'string', 'required' => false, 'example' => 'FinanceJoshua'], + ], + 'required' => false, + ], + 'required' => false, + 'maxItems' => 10, ], ], [ - 'name' => 'InternalIp', + 'name' => 'VSwitchId', 'in' => 'query', - 'schema' => [ - 'description' => '* The private IP address of the ECS instance that needs to communicate with the Internet when you configure a DNAT entry for an Internet NAT gateway. The private IP address must meet the following requirements:'."\n" - ."\n" - .' * It must belong to the CIDR block of the VPC where the NAT gateway is deployed.'."\n" - .' * The DNAT entry takes effect only if the private IP address is assigned to an ECS instance and the ECS instance is not associated with an EIP.'."\n" - ."\n" - .'* The private IP address that uses DNAT when you add a DNAT entry to a VPC NAT gateway.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => '192.168.XX.XX', - ], + 'schema' => ['description' => 'The ID of the vSwitch for which you want to query reserved CIDR blocks.'."\n", 'type' => 'string', 'required' => false, 'example' => 'vsw-25navfgbue4g****'], ], [ - 'name' => 'InternalPort', + 'name' => 'VSwitchCidrReservationIds', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => '* The internal port or port range that is used for port forwarding when you configure a DNAT entry for an Internet NAT gateway. Valid values: **1** to **65535**.'."\n" - .'* The port of the destination ECS instance to be mapped when you configure a DNAT entry for a VPC NAT gateway. Valid values: **1** to **65535**.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => '80', + 'title' => '', + 'description' => 'The ID of the reserved CIDR block. You can specify at most 10 IDs.'."\n", + 'type' => 'array', + 'items' => ['description' => 'The ID of the reserved CIDR block. You can specify at most 10 IDs.'."\n", 'type' => 'string', 'required' => false, 'example' => 'vcr-bp1m12saqteraw3rp****'], + 'required' => false, + 'maxItems' => 100, ], ], [ - 'name' => 'IpProtocol', + 'name' => 'VSwitchCidrReservationType', 'in' => 'query', - 'schema' => [ - 'description' => 'The protocol. Valid values:'."\n" - ."\n" - .'* **TCP**'."\n" - .'* **UDP**'."\n" - .'* **Any** If you set **IpProtocol** to **Any**, you must also set **ExternalPort** and **InternalPort** to **Any** to implement DNAT IP mapping.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'TCP', - ], + 'schema' => ['description' => 'The type of the reserved CIDR block. Set the value to **prefix**.'."\n" + ."\n" + .'> When you allocate CIDR blocks, or enable the service to automatically allocate CIDR blocks to elastic network interfaces (ENIs), the CIDR blocks to allocate must fall into the reserved CIDR block. If the reserved CIDR is exhausted, an error message is returned.'."\n", 'type' => 'string', 'required' => false, 'example' => 'prefix'], ], [ - 'name' => 'ForwardEntryName', + 'name' => 'IpVersion', 'in' => 'query', - 'schema' => [ - 'description' => 'The name of the DNAT entry.'."\n" - ."\n" - .'The name must be 2 to 128 characters in length. It must start with a letter but cannot start with `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'ForwardEntry-1', - ], + 'schema' => ['description' => 'The IP version of the reserved CIDR block. Valid values:'."\n" + ."\n" + .'* **IPv4** (default)'."\n" + .'* **IPv6**'."\n", 'type' => 'string', 'required' => false, 'example' => 'IPv4'], ], [ - 'name' => 'ClientToken', + 'name' => 'NextToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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.'."\n" - ."\n" - .'> 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.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '0c593ea1-3bea-11e9-b96b-88e9fe6****', - ], + 'schema' => ['description' => 'The pagination token that is used in the next request to retrieve a new page of results. Valid values:'."\n" + ."\n" + .'* You do not need to specify this parameter for the first request.'."\n" + .'* You must specify the token that is obtained from the previous query as the value of NextToken.'."\n", 'type' => 'string', 'required' => false, 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****'], ], [ - 'name' => 'PortBreak', + 'name' => 'MaxResults', 'in' => 'query', - 'schema' => [ - 'description' => 'Whether to enable port breakthrough, with values:'."\n" - .'- **true**: Enable port breakthrough. '."\n" - .'- **false** (default): Do not enable port breakthrough.'."\n" - .'>When both DNAT and SNAT entries use the same public IP address, if you need to configure a port number greater than 1024, you must set **PortBreak** to **true**.', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - 'default' => 'false', - ], + 'schema' => ['description' => 'The number of entries to return on each page. Valid values: **1** to **100**. Default value: **10**.'."\n", 'type' => 'integer', 'format' => 'int64', 'required' => false, 'maximum' => '100', 'minimum' => '1', 'example' => '10', 'default' => '10'], ], [ - 'name' => 'DryRun', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'Indicates whether to perform a dry run of the request. Values:'."\n" - .'- **true**: Sends a check request without creating a DNAT entry. The checks include whether the AccessKey is valid, the RAM user\'s authorization status, and if all required parameters are filled out. If any check fails, the corresponding error is returned. If all checks pass, an error code `DryRunOperation` is returned.'."\n" - .'- **false** (default): Sends a normal request. After passing the checks, it returns a 2xx HTTP status code and creates a DNAT entry.', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['title' => '', 'description' => 'The region ID of the vSwitch.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'example' => 'cn-hangzhou'], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'The request ID.'."\n", 'type' => 'object', 'properties' => [ - 'ForwardEntryId' => [ - 'description' => 'The ID of the DNAT entry.'."\n", - 'type' => 'string', - 'example' => 'fwd-119smw5tkasdf****', - ], - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => 'A4AEE536-A97A-40EB-9EBE-53A6948A6928', + 'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B45'], + 'NextToken' => ['description' => 'The returned value of NextToken is a pagination token, which can be used in the next request to retrieve a new page of results. Valid values:'."\n" + ."\n" + .'* If **NextToken** is empty, no next page exists.'."\n" + .'* If a value is returned for **NextToken**, the value is the token that determines the start point of the next query.'."\n", 'type' => 'string', 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****'], + 'TotalCount' => ['description' => 'The total number of entries returned.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '10'], + 'MaxResults' => ['description' => 'The number of entries to return per page.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '10'], + 'VSwitchCidrReservations' => [ + 'description' => 'A list of reserved CIDR blocks.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'VpcId' => ['description' => 'The virtual private cloud (VPC) to which the reserved CIDR block belongs.'."\n", 'type' => 'string', 'example' => 'vpc-bp1wdz2pdhgurz1od****'], + 'VSwitchId' => ['title' => '', 'description' => 'The ID of the vSwitch to which the reserved CIDR block belongs.'."\n", 'type' => 'string', 'example' => 'vsw-25navfgbue4g****'], + 'VSwitchCidrReservationId' => ['title' => '', 'description' => 'The ID of the reserved CIDR block.'."\n", 'type' => 'string', 'example' => 'vcr-bp1m12saqteraw3rp****'], + 'VSwitchCidrReservationCidr' => ['title' => '', 'description' => 'The reserved CIDR block.'."\n", 'type' => 'string', 'example' => '192.168.1.64/28'], + 'VSwitchCidrReservationName' => ['title' => '', 'description' => 'The name of the reserved CIDR block.'."\n", 'type' => 'string', 'example' => 'ReservationName'], + 'VSwitchCidrReservationDescription' => ['title' => '', 'description' => 'The description of the reserved CIDR block.'."\n", 'type' => 'string', 'example' => 'ReservationDescription'], + 'IpVersion' => ['title' => 'IpVersion', 'description' => 'The IP version of the reserved CIDR block. Valid values:'."\n" + ."\n" + .'* **IPv4** (default)'."\n" + .'* **IPv6**'."\n", 'type' => 'string', 'example' => 'IPv4'], + 'CreationTime' => ['title' => '', 'description' => 'The time when the reserved CIDR block was created.'."\n", 'type' => 'string', 'example' => '2023-03-14T10:02:37Z'], + 'Type' => ['title' => '', 'description' => 'The type of the reserved CIDR block. Valid value: **prefix**. CIDR blocks are allocated from the reserved CIDR block.'."\n", 'type' => 'string', 'example' => 'prefix'], + 'AvailableCidrCount' => ['title' => '', 'description' => 'The number of available prefixes in the reserved CIDR block.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '10'], + 'AssignedCidrCount' => ['title' => '', 'description' => 'The number of used prefixes in the reserved CIDR block.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '6'], + 'Status' => ['description' => 'The status of the reserved CIDR block. Valid values:'."\n" + ."\n" + .'* **Assigning**'."\n" + .'* **Assigned**'."\n" + .'* **Releasing**'."\n" + .'* **Released**'."\n", 'type' => 'string', 'example' => 'Assigned'], + 'Tags' => [ + 'description' => 'The tags.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => 'The tag key.'."\n", 'type' => 'string', 'example' => 'FinanceDept'], + 'Value' => ['description' => 'The tag value.'."\n", 'type' => 'string', 'example' => 'FinanceJoshua'], + ], + ], + ], + ], + ], ], ], - 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'UnsupportedFeature.PrivateLinkEnabled', - 'errorMessage' => 'The feature of PrivateLinkEnabled is not supported.', - ], - [ - 'errorCode' => 'UnsupportedFeature.PortSegment', - 'errorMessage' => 'The feature of PortSegment is not supported.', - ], - [ - 'errorCode' => 'ExclusiveParam.%sAnd%s', - 'errorMessage' => 'The param of %s and %s are mutually exclusive.', - ], - [ - 'errorCode' => 'DuplicatedParam.InternalPort', - 'errorMessage' => 'The param of %s is duplicated.', - ], - [ - 'errorCode' => 'DuplicatedParam.ExternalPort', - 'errorMessage' => 'The param of %s is duplicated.', - ], - [ - 'errorCode' => 'OperationFailed.AnyPortConfig', - 'errorMessage' => 'Operation failed because any port correspondence any protocol', - ], - [ - 'errorCode' => 'OperationUnsupported.ForwardEntry', - 'errorMessage' => 'Duplicated destination ip port is unsupported.', - ], - [ - 'errorCode' => 'InvalidIp.NotInNatgw', - 'errorMessage' => 'The specified Ip not belong to natgateway.', - ], - [ - 'errorCode' => 'QuotaExceeded.ForwardEntry', - 'errorMessage' => 'The quota of %s is exceeded, usage %s/%s.', - ], - [ - 'errorCode' => 'IncorrectStatus.NatIp', - 'errorMessage' => 'The status of %s [%s] is incorrect.', - ], - [ - 'errorCode' => 'Forbidden.IpHasBeenUsedInSnat', - 'errorMessage' => 'The source ip can\'t be used. Because it has been used in snat.', - ], - [ - 'errorCode' => 'InvalidExternalIp.Malformed', - 'errorMessage' => 'The specified ExternalIp is not a valid IP address.', - ], - [ - 'errorCode' => 'InvalidInternalIp.Malformed', - 'errorMessage' => 'The specified InternalIp is not a valid IP address.', - ], - [ - 'errorCode' => 'InvalidExternalPort.Malformed', - 'errorMessage' => 'The specified ExternalPort is not a valid port.', - ], - [ - 'errorCode' => 'InvalidInternalPort.Malformed', - 'errorMessage' => 'The specified InternalPort is not a valid port.', - ], - [ - 'errorCode' => 'Forbidden.DestnationIpOutOfVpcCIDR', - 'errorMessage' => 'The specified Internal Ip is Out of VPC CIDR.', - ], - [ - 'errorCode' => 'Forbidden.DestinationIpOutOfVswitchCIDR', - 'errorMessage' => 'The specified Internal Ip is Out of VSwitch CIDR.', - ], - [ - 'errorCode' => 'InvalidProtocal.ValueNotSupported', - 'errorMessage' => 'The specified IpProtocol does not support.', - ], - [ - 'errorCode' => 'IncorretForwardEntryStatus', - 'errorMessage' => 'Some Forward entry status blocked this operation..', - ], - [ - 'errorCode' => 'ForwardEntry.Duplicated', - 'errorMessage' => 'The specified ExternalIp, IpProtocol, ExternalPort,InternalIp, InternalPort is duplicated', - ], - [ - 'errorCode' => 'Forbidden.ExternalIp.UsedInSnatTable', - 'errorMessage' => 'The specified ExternalIp is already used in SnatTable', - ], - [ - 'errorCode' => 'Forbindden', - 'errorMessage' => 'The specified Instance already bind eip', - ], - [ - 'errorCode' => 'Forbidden.InternalIpOutOfVpcCIDR', - 'errorMessage' => 'The specified Internal Ip is Out of VPC CIDR.', - ], - [ - 'errorCode' => 'Invalid.natgwNotExist', - 'errorMessage' => 'The specified natgateway not exist.', - ], - [ - 'errorCode' => 'MissingParameter', - 'errorMessage' => 'Missing mandatory parameter', - ], - [ - 'errorCode' => 'AnyPort.PortMustBeZero', - 'errorMessage' => 'any port port must be zero.', - ], - [ - 'errorCode' => 'InvalidParameter.Name.Malformed', - 'errorMessage' => 'The specified Name is not valid.', - ], - [ - 'errorCode' => 'IncorrectStatus.ForwardEntry', - 'errorMessage' => 'The status of %s [%s] is incorrect.', - ], - [ - 'errorCode' => 'Duplicated.DestinationPort', - 'errorMessage' => 'The specified param DestinationPort is duplicated.', - ], - [ - 'errorCode' => 'OperationUnsupported.EipInBinding', - 'errorMessage' => 'Create snat entry with eip in associating status is unsupported.', - ], - [ - 'errorCode' => 'QuotaExceeded.ForwardEntrySessionManytoOne', - 'errorMessage' => 'The dnat session quota is exceed.', - ], - [ - 'errorCode' => 'TaskConflict', - 'errorMessage' => 'The operation is too frequent, please wait a moment and try again.', - ], - [ - 'errorCode' => 'OperationFailed.DnatPortRangeLimit', - 'errorMessage' => 'The maximum number of port ranges that can be specified is exceeded.', - ], - [ - 'errorCode' => 'IncorrectStatus.NATGW', - 'errorMessage' => 'NATGW status is invalid.', - ], - [ - 'errorCode' => 'OperationFailed.ForwardEntryNotAllowSrcIpEqualDstIp', - 'errorMessage' => 'The source IP of forward entry is not allowed to equal destination IP.', - ], - ], - 404 => [ - [ - 'errorCode' => 'ResourceNotFound.NatIp', - 'errorMessage' => 'The specified resource of %s is not found.', - ], - [ - 'errorCode' => 'InvalidRegionId.NotFound', - 'errorMessage' => 'The specified RegionId does not exist in our records.', - ], - [ - 'errorCode' => 'InvalidForwardTableId.NotFound', - 'errorMessage' => 'Specified forward table does not exist.', - ], - [ - 'errorCode' => 'InvalidExternalIp.NotFound', - 'errorMessage' => 'Specified External Ip address does not found on the VRouter', - ], + ['errorCode' => 'IllegalParam.NextToken', 'errorMessage' => 'The specified NextToken is invalid.', 'description' => 'The specified NextToken is invalid.'], ], - 500 => [ - [ - 'errorCode' => 'System.Error', - 'errorMessage' => 'ERROR SYSTEM ERROR.', - ], - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'The request processing has failed due to some unknown error.', + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'ListVSwitchCidrReservations', + 'summary' => 'Queries the CIDR reservation information about vSwitches.', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'vpc:ListVSwitchCidrReservations', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VSwitchCidrReservation', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vswitchcidrreservation/*'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"ForwardEntryId\\": \\"fwd-119smw5tkasdf****\\",\\n \\"RequestId\\": \\"A4AEE536-A97A-40EB-9EBE-53A6948A6928\\"\\n}","errorExample":""},{"type":"xml","example":"\\n fwd-119smw5tkasdf****\\n A4AEE536-A97A-40EB-9EBE-53A6948A6928\\n","errorExample":""}]', - 'title' => 'CreateForwardEntry', - 'description' => '## [](#)'."\n" - ."\n" - .'Each DNAT entry consists of the following parameters: **ExternalIp**, **ExternalPort**, **IpProtocol**, **InternalIp**, and **InternalPort**. After you add a DNAT entry, the NAT gateway forwards packets over the specified protocol from **ExternalIp:ExternalPort** to **InternalIp:InternalPort** and sends responses back through the same route.'."\n" - ."\n" - .'When you call this operation, take note of the following limits:'."\n" - ."\n" - .'* **CreateForwardEntry** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call the [DescribeForwardTableEntries](~~36053~~) operation to query the status of the task.'."\n" - ."\n" - .' * If the DNAT entry is in the **Pending** state, the system is adding the DNAT entry. You can only query the DNAT entry, but cannot perform other operations.'."\n" - .' * If the DNAT entry is in the **Available** state, the DNAT entry is added.'."\n" - ."\n" - .'* You cannot repeatedly call the **CreateForwardEntry** operation to add a DNAT entry within a specific period of time.'."\n" - ."\n" - .'* All combinations of **ExternalIp**, **ExternalPort**, and **IpProtocol** used in DNAT entries must be unique. You cannot distribute requests to more than one Elastic Compute Service (ECS) instance if these requests are initiated from the same source IP address, received on the same port, and use the same protocol.'."\n" - ."\n" - .'* The combinations of **IpProtocol**, **InternalIp**, and **InternalPort** must be unique.'."\n" - ."\n" - .'* If one or more DNAT entries in the DNAT table are in the **Pending** or **Modifying** state, you cannot add DNAT entries to the DNAT table.'."\n" - ."\n" - .'* You can add at most 100 DNAT entries to a DNAT table.'."\n" - ."\n" - .'* For an elastic IP address (EIP) used by an Internet NAT gateway or a NAT IP address used by a Virtual Private Cloud (VPC) NAT gateway, take note of the following limit: If the IP address has IP mapping enabled and is specified in a DNAT entry, the IP address cannot be used by another DNAT or SNAT entry.'."\n", - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - 'translator' => 'machine', ], - 'DeleteForwardEntry' => [ - 'summary' => 'Deletes a DNAT entry.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'ListVirtualPhysicalConnections' => [ + 'summary' => 'Call the ListVirtualPhysicalConnections operation to query virtual physical connections.', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', - 'systemTags' => [ - 'operationType' => 'delete', - 'riskType' => 'none', - 'chargeType' => 'free', - ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'list', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ - 'name' => 'RegionId', + 'name' => 'PhysicalConnectionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the NAT gateway.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The ID of the physical connection associated with the virtual physical connection.', 'type' => 'string', 'required' => false, 'example' => 'pc-bp1ciz7ekd2grn1as****', 'title' => ''], ], [ - 'name' => 'ForwardTableId', + 'name' => 'VirtualPhysicalConnectionBusinessStatus', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the DNAT table to which the DNAT entry belongs.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'ftb-8vbx8xu2lqj9qb334****', - ], + 'schema' => ['description' => 'The business status of the virtual physical connection. Valid values:'."\n" + ."\n" + .'- **Normal**: The connection is operating normally.'."\n" + ."\n" + .'- **FinancialLocked**: The connection is locked due to an overdue payment.'."\n" + ."\n" + .'- **SecurityLocked**: The connection is locked for security reasons.', 'type' => 'string', 'required' => false, 'example' => 'Normal', 'title' => ''], ], [ - 'name' => 'ForwardEntryId', + 'name' => 'VirtualPhysicalConnectionIds', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => 'The ID of the DNAT entry to be deleted.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'fwd-8vbn3bc8roygjp0gy****', + 'title' => '', + 'description' => 'The IDs of the virtual physical connections.', + 'type' => 'array', + 'items' => ['description' => 'The ID of a virtual physical connection.', 'type' => 'string', 'required' => false, 'example' => 'pc-bp1mrgfbtmc9brre7****', 'title' => ''], + 'required' => false, + 'example' => 'pc-xxx', + 'maxItems' => 20, ], ], [ - 'name' => 'ClientToken', + 'name' => 'IsConfirmed', + 'in' => 'query', + 'schema' => ['description' => 'Indicates whether the tenant has accepted the virtual physical connection. Valid values:'."\n" + ."\n" + .'- **true**: The connection has been accepted.'."\n" + ."\n" + .'- **false**: The connection has not been accepted.', 'type' => 'boolean', 'required' => false, 'example' => 'true', 'title' => ''], + ], + [ + 'name' => 'VirtualPhysicalConnectionStatuses', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + 'title' => '', + 'description' => 'The business statuses of the virtual physical connections.', + 'type' => 'array', + 'items' => ['description' => 'The business status of the virtual physical connection. Valid values:'."\n" ."\n" - .'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.'."\n" + .'- **Confirmed**: The connection has been accepted.'."\n" ."\n" - .'> 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.'."\n", - 'type' => 'string', + .'- **UnConfirmed**: The connection is pending acceptance.'."\n" + ."\n" + .'- **Deleted**: The connection has been deleted.', 'type' => 'string', 'required' => false, 'example' => 'Confirmed', 'title' => ''], 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-426655440000', + 'example' => 'pc-xxx', + 'maxItems' => 20, ], ], - ], - 'responses' => [ - 200 => [ - 'headers' => [], + [ + 'name' => 'VirtualPhysicalConnectionAliUids', + 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '0ED8D006-F706-4D23-88ED-E11ED28DCAC0', - ], - ], - ], - ], - ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'IncorretForwardEntryStatus', - 'errorMessage' => 'Some Forward entry status blocked this operation..', - ], - [ - 'errorCode' => 'MissingParameter', - 'errorMessage' => 'Missing mandatory parameter', - ], - [ - 'errorCode' => 'IncorrectStatus.NATGW', - 'errorMessage' => 'The status of the specified NAT gateway is abnormal.', - ], - [ - 'errorCode' => 'IncorrectStatus.ForwardEntry', - 'errorMessage' => 'The status of %s [%s] is incorrect.', + 'title' => '', + 'description' => 'The Alibaba Cloud accounts that own the virtual physical connections.', + 'type' => 'array', + 'items' => ['description' => 'The ID of the primary account that owns the virtual physical connection.', 'type' => 'string', 'required' => false, 'example' => '15346073170691****', 'title' => ''], + 'required' => false, + 'example' => '189xxx', + 'maxItems' => 20, ], ], - 404 => [ - [ - 'errorCode' => 'InvalidRegionId.NotFound', - 'errorMessage' => 'The specified RegionId does not exist in our records.', - ], - [ - 'errorCode' => 'InvalidForwardEntryId.NotFound', - 'errorMessage' => 'Specified forward entry ID does not exist', - ], - [ - 'errorCode' => 'InvalidForwardTableId.NotFound', - 'errorMessage' => 'Specified forward table does not exist.', - ], - [ - 'errorCode' => 'ResourceNotFound.ForwardEntry', - 'errorMessage' => 'The specified resource of %s is not found.', + [ + 'name' => 'VlanIds', + 'in' => 'query', + 'style' => 'repeatList', + 'schema' => [ + 'title' => '', + 'description' => 'The VLAN IDs of the virtual physical connections.', + 'type' => 'array', + 'items' => ['description' => 'The VLAN ID of the virtual physical connection.', 'type' => 'string', 'required' => false, 'example' => '10', 'title' => ''], + 'required' => false, + 'example' => 'pc-xxx', + 'maxItems' => 20, ], ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"0ED8D006-F706-4D23-88ED-E11ED28DCAC0\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 0ED8D006-F706-4D23-88ED-E11ED28DCAC0\\n","errorExample":""}]', - 'title' => 'DeleteForwardEntry', - 'description' => '## [](#)Description'."\n" - ."\n" - .'* **DeleteForwardEntry** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call the [DescribeForwardTableEntries](~~36053~~) operation to query the status of the task.'."\n" - ."\n" - .' * If the DNAT entry is in the **Deleting** state, the system is deleting the DNAT entry. In this case, you can only query the status of the DNAT entry, but cannot perform other operations.'."\n" - .' * If the DNAT entry cannot be found, it is deleted.'."\n" - ."\n" - .'> If a DNAT table has DNAT entries in the **Pending** state, you cannot delete the DNAT entries.'."\n" - ."\n" - .'* You cannot repeatedly call the **DeleteForwardEntry** operation to delete a DNAT entry within the specified period of time.'."\n", - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'ModifyForwardEntry' => [ - 'summary' => 'Modifies a DNAT entry.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ [ - 'AK' => [], + 'name' => 'MaxResults', + 'in' => 'query', + 'schema' => ['description' => 'The number of entries to return per page. Valid values: **1** to **100**. Default value: **20**.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'required' => false, 'example' => '20'], ], - ], - 'operationType' => 'readAndWrite', - 'systemTags' => [ - 'operationType' => 'update', - 'riskType' => 'none', - 'chargeType' => 'free', - ], - 'parameters' => [ [ - 'name' => 'ForwardTableId', + 'name' => 'NextToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the DNAT table to which the DNAT entry belongs.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'ftb-8vbx8xu2lqj9qb334****', - ], + 'schema' => ['description' => 'The token used to retrieve the next page of results. Valid values:'."\n" + ."\n" + .'- Leave this parameter empty for the first request.'."\n" + ."\n" + .'- For subsequent requests, set this parameter to the `NextToken` value returned from the previous request.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'dd20****'], ], [ - 'name' => 'ForwardEntryId', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the DNAT entry.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'fwd-8vbn3bc8roygjp0gy****', - ], + 'schema' => ['description' => 'The ID of the region where the virtual physical connection is located.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to obtain the latest list of regions.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-shanghai', 'title' => ''], ], [ - 'name' => 'ExternalIp', + 'name' => 'Tags', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => '* When you modify DNAT entries of Internet NAT gateways, this parameter specifies the elastic IP addresses (EIPs) that are used to access the Internet.'."\n" - .'* When you modify DNAT entries of Virtual Private Cloud (VPC) NAT gateways, this parameter specifies the NAT IP addresses that are accessed by external networks.'."\n", - 'type' => 'string', + 'description' => 'The list of tags.', + 'type' => 'array', + 'items' => [ + 'description' => 'A tag, which consists of a key-value pair.', + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => 'The key of the tag. You can specify up to 20 tags. The tag key cannot be an empty string.'."\n" + ."\n" + .'The key can be up to 64 characters in length and can contain digits, periods (.), underscores (\\_), and hyphens (-). It cannot start with `aliyun` or `acs:` and cannot contain `http://` or `https://`.', 'type' => 'string', 'required' => false, 'example' => 'FinanceDept', 'title' => ''], + 'Value' => ['description' => 'The value of the tag. You can specify up to 20 tags. The tag value can be an empty string.'."\n" + ."\n" + .'The value can be up to 128 characters in length and can contain digits, periods (.), underscores (\\_), and hyphens (-). It cannot start with `aliyun` or `acs:` and cannot contain `http://` or `https://`.', 'type' => 'string', 'required' => false, 'example' => 'FinanceJoshua', 'title' => ''], + ], + 'required' => false, + 'title' => '', + 'example' => '', + ], 'required' => false, - 'example' => '116.85.XX.XX', + 'maxItems' => 5, + 'title' => '', + 'example' => '', ], ], [ - 'name' => 'ExternalPort', + 'name' => 'ResourceGroupId', 'in' => 'query', - 'schema' => [ - 'description' => '* The external port that is used to forward traffic when you modify DNAT entries of Internet NAT gateways.'."\n" - ."\n" - .' * Valid values: **1** to **65535**.'."\n" - .' * If you want to modify the port range, separate port numbers with a forward slash (/), such as `10/20`.'."\n" - .' * If you need to modify **ExternalPort** and **InternalPort** at the same time, and **ExternalPort** specifies a port range, make sure that **InternalPort** also specifies a port range, and both ranges specify the same number of ports. For example, you can set **ExternalPort** to `10/20` and **InternalPort** to `80/90`.'."\n" - ."\n" - .'* The port that is accessed by external networks when you modify DNAT entries of VPC NAT gateways. Valid values: **1** to **65535**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '80', - ], + 'schema' => ['description' => 'The ID of the resource group to which the virtual physical connection belongs.', 'type' => 'string', 'required' => false, 'example' => 'rg-acfmxazb4p**** ', 'title' => ''], ], - [ - 'name' => 'InternalIp', - 'in' => 'query', + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '* The private IP address of the ECS instance that uses DNAT entries to communicate with the Internet when you modify DNAT entries of Internet NAT gateways.'."\n" - .'* The private IP address that uses DNAT entries to communicate when you modify DNAT entries of VPC NAT gateways.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '10.0.0.78', + 'title' => 'Schema of Response', + 'description' => 'The response.', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.', 'type' => 'string', 'example' => '2A55F69E-EE3D-5CBE-8805-734F7D5B46B9'], + 'VirtualPhysicalConnections' => [ + 'title' => 'Vpconn', + 'description' => 'A list of virtual physical connections.', + 'type' => 'array', + 'items' => [ + 'description' => 'The details of a virtual physical connection.', + 'type' => 'object', + 'properties' => [ + 'Type' => ['description' => 'The type of the physical connection. The default value is **VPC**.', 'type' => 'string', 'example' => 'VPC', 'title' => ''], + 'Status' => ['description' => 'The status of the physical connection. Valid values:'."\n" + ."\n" + .'- **Initial**: The application is under review.'."\n" + ."\n" + .'- **Approved**: The application is approved.'."\n" + ."\n" + .'- **Allocating**: Resources are being allocated.'."\n" + ."\n" + .'- **Allocated**: The connection is ready for provisioning.'."\n" + ."\n" + .'- **Confirmed**: Awaiting user confirmation.'."\n" + ."\n" + .'- **Enabled**: The connection is enabled.'."\n" + ."\n" + .'- **Rejected**: The application is rejected.'."\n" + ."\n" + .'- **Canceled**: The application is canceled.'."\n" + ."\n" + .'- **Allocation Failed**: Resource allocation failed.'."\n" + ."\n" + .'- **Terminated**: The connection is terminated.', 'type' => 'string', 'example' => 'Enabled', 'title' => ''], + 'CreationTime' => ['description' => 'The time the physical connection was created.', 'type' => 'string', 'example' => '2021-06-08T12:20:55', 'title' => ''], + 'AdLocation' => ['description' => 'The physical location of the access device for the physical connection.', 'type' => 'string', 'example' => '余杭经济开发区XXX交叉口, 余杭XX机房, E***包间', 'title' => ''], + 'PortNumber' => ['description' => 'The port number of the access device for the physical connection.', 'type' => 'string', 'example' => '80', 'title' => ''], + 'Spec' => ['description' => 'The bandwidth of the virtual physical connection.'."\n" + ."\n" + .'M indicates Mbps, and G indicates Gbps.', 'type' => 'string', 'example' => '50M', 'title' => ''], + 'ChargeType' => ['description' => 'The billing method of the physical connection.'."\n" + ."\n" + .'The only valid value is **Prepaid**, which corresponds to the subscription billing method.', 'type' => 'string', 'example' => 'Prepaid', 'title' => ''], + 'Description' => ['description' => 'The description of the physical connection.', 'type' => 'string', 'example' => 'desctest', 'title' => ''], + 'Bandwidth' => ['description' => 'The bandwidth of the physical connection. Unit: Mbps.', 'type' => 'integer', 'format' => 'int64', 'example' => '50', 'title' => ''], + 'EnabledTime' => ['description' => 'The time the physical connection was enabled.', 'type' => 'string', 'example' => '2021-10-08T10:44Z', 'title' => ''], + 'LineOperator' => ['description' => 'The carrier that provides the physical connection. Valid values include:'."\n" + ."\n" + .'- **CT**: China Telecom.'."\n" + ."\n" + .'- **CU**: China Unicom.'."\n" + ."\n" + .'- **CM**: China Mobile.'."\n" + ."\n" + .'- **CO**: other Chinese carriers.'."\n" + ."\n" + .'- **Equinix**: Equinix.'."\n" + ."\n" + .'- **Other**: other carriers outside China.', 'type' => 'string', 'example' => 'CU', 'title' => ''], + 'PeerLocation' => ['description' => 'The location of the on-premises data center.', 'type' => 'string', 'example' => '浙江省杭州市XX区XX街道XX号', 'title' => ''], + 'RedundantPhysicalConnectionId' => ['description' => 'The ID of the redundant physical connection.', 'type' => 'string', 'example' => 'pc-119mfjzm****', 'title' => ''], + 'Name' => ['description' => 'The name of the physical connection.', 'type' => 'string', 'example' => 'nametest', 'title' => ''], + 'CircuitCode' => ['description' => 'The circuit code of the physical connection, which is provided by the carrier.', 'type' => 'string', 'example' => 'longtel001', 'title' => ''], + 'EndTime' => ['description' => 'The expiration time of the virtual physical connection.'."\n" + ."\n" + .'The time is in UTC and follows the `YYYY-MM-DDThh:mm:ssZ` format (ISO 8601).', 'type' => 'string', 'example' => '2021-11-08T16:00:00Z', 'title' => ''], + 'PortType' => ['description' => 'The port type of the physical connection access point. Valid values:'."\n" + ."\n" + .'- **100Base-T**: 100 Mbps copper port.'."\n" + ."\n" + .'- **1000Base-T**: 1 Gbps copper port.'."\n" + ."\n" + .'- **1000Base-LX**: 1 Gbps single-mode optical port (10 km).'."\n" + ."\n" + .'- **10GBase-T**: 10 Gbps copper port.'."\n" + ."\n" + .'- **10GBase-LR**: 10 Gbps single-mode optical port (10 km).'."\n" + ."\n" + .'- **40GBase-LR**: 40 Gbps single-mode optical port.'."\n" + ."\n" + .'- **100GBase-LR**: 100 Gbps single-mode optical port.', 'type' => 'string', 'example' => '10GBase-LR', 'title' => ''], + 'BusinessStatus' => ['description' => 'The business status of the physical connection. Valid values:'."\n" + ."\n" + .'- **Normal**: The connection is running as expected.'."\n" + ."\n" + .'- **FinancialLocked**: The connection is locked due to an overdue payment.'."\n" + ."\n" + .'- **SecurityLocked**: The connection is locked for security reasons.', 'type' => 'string', 'example' => 'Normal', 'title' => ''], + 'LoaStatus' => ['description' => 'The status of the Letter of Authorization (LOA). Valid values:'."\n" + ."\n" + .'- **Applying**: The LOA request is being processed.'."\n" + ."\n" + .'- **Accept**: The LOA application is approved.'."\n" + ."\n" + .'- **Available**: The LOA is generated and ready for use.'."\n" + ."\n" + .'- **Rejected**: The LOA request is rejected.'."\n" + ."\n" + .'- **Completing**: The physical connection is being provisioned.'."\n" + ."\n" + .'- **Complete**: Provisioning is complete.'."\n" + ."\n" + .'- **Deleted**: The LOA is deleted.', 'type' => 'string', 'example' => 'Available', 'title' => ''], + 'AccessPointId' => ['description' => 'The ID of the access point.', 'type' => 'string', 'example' => 'ap-cn-hangzhou-finance-yh-E', 'title' => ''], + 'PhysicalConnectionId' => ['description' => 'The ID of the virtual physical connection.', 'type' => 'string', 'example' => 'pc-bp1mrgfbtmc9brre7****', 'title' => ''], + 'ProductType' => ['description' => 'The type of the physical connection. Valid values:'."\n" + ."\n" + .'- **VirtualPhysicalConnection**: a virtual physical connection.'."\n" + ."\n" + .'- **PhysicalConnection**: a dedicated physical connection.', 'type' => 'string', 'example' => 'VirtualPhysicalConnection', 'title' => ''], + 'ParentPhysicalConnectionId' => ['description' => 'The ID of the parent physical connection.', 'type' => 'string', 'example' => 'pc-bp1ciz7ekd2grn1as****', 'title' => ''], + 'VirtualPhysicalConnectionStatus' => ['description' => 'The business status of the virtual physical connection. Valid values:'."\n" + ."\n" + .'- **Confirmed**: The virtual physical connection has been accepted by the recipient.'."\n" + ."\n" + .'- **UnConfirmed**: The virtual physical connection is awaiting acceptance.'."\n" + ."\n" + .'- **Deleted**: The virtual physical connection is deleted.', 'type' => 'string', 'example' => 'Confirmed', 'title' => ''], + 'ParentPhysicalConnectionAliUid' => ['description' => 'The ID of the Alibaba Cloud account that owns the parent physical connection.', 'type' => 'string', 'example' => '18311773240248****', 'title' => ''], + 'OrderMode' => ['description' => 'The billing method of the virtual physical connection. Valid values:'."\n" + ."\n" + .'- **PayByPhysicalConnectionOwner**: The owner of the parent physical connection pays.'."\n" + ."\n" + .'- **PayByVirtualPhysicalConnectionOwner**: The owner of the virtual physical connection pays.', 'type' => 'string', 'example' => 'PayByPhysicalConnectionOwner', 'title' => ''], + 'AliUid' => ['description' => 'The ID of the Alibaba Cloud account that owns the virtual physical connection.', 'type' => 'string', 'example' => '15346073170691****', 'title' => ''], + 'VlanId' => ['description' => 'The VLAN ID of the virtual physical connection.', 'type' => 'string', 'example' => '10', 'title' => ''], + 'ExpectSpec' => ['description' => 'The expected bandwidth for the virtual physical connection. This bandwidth is applied after the payment is completed.'."\n" + ."\n" + .'**M** indicates Mbps, and **G** indicates Gbps.', 'type' => 'string', 'example' => '50M', 'title' => ''], + 'ResourceGroupId' => ['description' => 'The ID of the resource group to which the virtual physical connection belongs.', 'type' => 'string', 'example' => 'rg-acfm3wmsyui****', 'title' => ''], + 'Tags' => [ + 'description' => 'A list of tags.', + 'type' => 'array', + 'items' => [ + 'description' => 'The details of the tag.', + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => 'The tag key, which cannot be an empty string. You can specify up to 20 tag keys.'."\n" + ."\n" + .'The key can be up to 64 characters in length and can contain digits, periods (.), underscores (\\_), and hyphens (-). The key cannot start with `aliyun` or `acs:` and cannot contain `http://` or `https://`.', 'type' => 'string', 'example' => 'FinanceDept', 'title' => ''], + 'Value' => ['description' => 'The tag value. You can specify up to 20 tag values. The tag value can be an empty string.'."\n" + ."\n" + .'The value can be up to 128 characters in length. It can contain digits, periods (.), underscores (\\_), and hyphens (-). It cannot start with `aliyun` or `acs:` and cannot contain `http://` or `https://`.', 'type' => 'string', 'example' => 'FinanceJoshua', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + ], + 'title' => '', + 'example' => '', + ], + 'example' => '', + ], + 'NextToken' => ['description' => 'A pagination token. It can be used in the next request to retrieve a new page of results. Valid values:'."\n" + ."\n" + .'- If **NextToken** is not returned, no more results are available.'."\n" + ."\n" + .'- If a value is returned for **NextToken**, use it in the next request to retrieve the subsequent page of results.', 'type' => 'string', 'example' => 'dd20****', 'title' => ''], + 'TotalCount' => ['description' => 'The total number of entries.', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''], + 'Count' => ['description' => 'The number of entries returned in this request.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'example' => '1'], + ], + 'example' => '', ], ], - [ - 'name' => 'InternalPort', - 'in' => 'query', - 'schema' => [ - 'description' => '* The internal port or port range that is used to forward traffic when you modify DNAT entries of Internet NAT gateways. Valid values: **1** to **65535**.'."\n" - .'* The port of the destination ECS instance to be mapped when you modify DNAT entries of VPC NAT gateways. Valid values: **1** to **65535**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '80', - ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'IllegalParam.Bandwidth', 'errorMessage' => 'The param of Bandwidth [%s] is illegal.', 'description' => 'The specified bandwidth value is invalid.'], + ['errorCode' => 'ResourceNotFound.PhysicalConnectionId', 'errorMessage' => 'The specified PhysicalConnectionId [%s] is not found.', 'description' => 'PhysicalConnectionId is set to an invalid value.'], + ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"2A55F69E-EE3D-5CBE-8805-734F7D5B46B9\\",\\n \\"VirtualPhysicalConnections\\": [\\n {\\n \\"Type\\": \\"VPC\\",\\n \\"Status\\": \\"Enabled\\",\\n \\"CreationTime\\": \\"2021-06-08T12:20:55\\",\\n \\"AdLocation\\": \\"余杭经济开发区XXX交叉口, 余杭XX机房, E***包间\\",\\n \\"PortNumber\\": \\"80\\",\\n \\"Spec\\": \\"50M\\",\\n \\"ChargeType\\": \\"Prepaid\\",\\n \\"Description\\": \\"desctest\\",\\n \\"Bandwidth\\": 50,\\n \\"EnabledTime\\": \\"2021-10-08T10:44Z\\",\\n \\"LineOperator\\": \\"CU\\",\\n \\"PeerLocation\\": \\"浙江省杭州市XX区XX街道XX号\\",\\n \\"RedundantPhysicalConnectionId\\": \\"pc-119mfjzm****\\",\\n \\"Name\\": \\"nametest\\",\\n \\"CircuitCode\\": \\"longtel001\\",\\n \\"EndTime\\": \\"2021-11-08T16:00:00Z\\",\\n \\"PortType\\": \\"10GBase-LR\\",\\n \\"BusinessStatus\\": \\"Normal\\",\\n \\"LoaStatus\\": \\"Available\\",\\n \\"AccessPointId\\": \\"ap-cn-hangzhou-finance-yh-E\\",\\n \\"PhysicalConnectionId\\": \\"pc-bp1mrgfbtmc9brre7****\\",\\n \\"ProductType\\": \\"VirtualPhysicalConnection\\",\\n \\"ParentPhysicalConnectionId\\": \\"pc-bp1ciz7ekd2grn1as****\\",\\n \\"VirtualPhysicalConnectionStatus\\": \\"Confirmed\\",\\n \\"ParentPhysicalConnectionAliUid\\": \\"18311773240248****\\",\\n \\"OrderMode\\": \\"PayByPhysicalConnectionOwner\\",\\n \\"AliUid\\": \\"15346073170691****\\",\\n \\"VlanId\\": \\"10\\",\\n \\"ExpectSpec\\": \\"50M\\",\\n \\"ResourceGroupId\\": \\"rg-acfm3wmsyui****\\",\\n \\"Tags\\": [\\n {\\n \\"Key\\": \\"FinanceDept\\",\\n \\"Value\\": \\"FinanceJoshua\\"\\n }\\n ]\\n }\\n ],\\n \\"NextToken\\": \\"dd20****\\",\\n \\"TotalCount\\": 1,\\n \\"Count\\": 1\\n}","type":"json"}]', + 'title' => 'ListVirtualPhysicalConnections', + 'changeSet' => [ + ['createdAt' => '2023-08-08T13:15:03.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2022-12-02T02:38:40.000Z', 'description' => 'Request parameters changed, Response parameters changed'], + ['createdAt' => '2021-11-17T03:03:06.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2021-09-27T03:23:37.000Z', 'description' => 'OpenAPI offline'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ListVirtualPhysicalConnections'], ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], + ], + 'ramActions' => [ [ - 'name' => 'IpProtocol', - 'in' => 'query', - 'schema' => [ - 'description' => 'The protocol. Valid values:'."\n" - ."\n" - .'* **TCP**'."\n" - .'* **UDP**'."\n" - .'* **Any**'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'TCP', + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'vpc:ListVirtualPhysicalConnections', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'PhysicalConnection', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:physicalconnection/{#PhysicalConnectionId}'], + ], ], ], + ], + 'translator' => 'machine', + ], + 'ListVpcEndpointServicesByEndUser' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'ForwardEntryName', - 'in' => 'query', - 'schema' => [ - 'description' => 'The new name of the DNAT entry.'."\n" - ."\n" - .'The name must be 2 to 128 characters in length. It must start with a letter but cannot start with `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'test', - ], + 'AK' => [], ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'list'], + 'parameters' => [ [ - 'name' => 'RegionId', + 'name' => 'ServiceName', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the NAT gateway.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => ' cn-hangzhou', - ], + 'schema' => ['description' => 'The name of the endpoint service that you want to query.'."\n", 'type' => 'string', 'required' => false, 'example' => 'com.aliyun.cn-hangzhou.oss', 'title' => ''], ], [ - 'name' => 'ClientToken', + 'name' => 'NextToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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.'."\n" - ."\n" - .'> 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.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-426655440000', - ], + 'schema' => ['description' => 'The token that is used for the next query. Valid values:'."\n" + ."\n" + .'* If this is your first query and no next queries are to be sent, ignore this parameter.'."\n" + .'* If a next query is to be performed, set the value to the NextToken value returned in the last call to the ListListenerCertificates operation.'."\n", 'type' => 'string', 'required' => false, 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', 'title' => ''], ], [ - 'name' => 'PortBreak', + 'name' => 'MaxResults', 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to remove limits on the port range. Valid values:'."\n" - ."\n" - .'* **true**'."\n" - .'* **false** If an SNAT entry and a DNAT entry use the same public IP address, and you want to specify a port number greater than `1024`, set `PortBreak` to `true`.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['description' => 'The number of entries to return per page. Valid values: **1** to **100**. Default value: **20**.'."\n", 'type' => 'integer', 'format' => 'int64', 'required' => false, 'maximum' => '100', 'minimum' => '1', 'example' => '20', 'default' => '10', 'title' => ''], ], [ - 'name' => 'DryRun', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values:'."\n" - ."\n" - .'- 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.'."\n" - ."\n" - .'- 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.', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['title' => '', 'description' => 'The region ID of the gateway endpoint.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'example' => 'cn-hangzhou'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => 'The request ID.'."\n", + 'title' => '', + 'description' => '', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '2315DEB7-5E92-423A-91F7-4C1EC9AD97C3', + 'RequestId' => ['title' => '', 'description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => '0AB1129F-32C1-5E4D-9E22-E4A859CA46EB'], + 'NextToken' => ['description' => 'The token that is used for the next query. Valid values:'."\n" + ."\n" + .'* If no value is returned for **NextToken**, no next queries are sent.'."\n" + .'* If **NextToken** is returned, the value is the token that is used for the next query.'."\n", 'type' => 'string', 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', 'title' => ''], + 'MaxResults' => ['description' => 'The number of entries returned per page.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '20', 'title' => ''], + 'Services' => [ + 'description' => 'The list of entries returned.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'ServiceId' => ['description' => 'The ID of the endpoint service.'."\n", 'type' => 'string', 'example' => 'vpces-m5enwdmilo210aibo9****', 'title' => ''], + 'ServiceName' => ['description' => 'The name of the endpoint service.'."\n", 'type' => 'string', 'example' => 'com.aliyun.cn-hangzhou.oss', 'title' => ''], + 'DefaultPolicyDocument' => ['description' => 'The default access policy.'."\n", 'type' => 'string', 'example' => '{ \\"Version\\" : \\"1\\", \\"Statement\\" : [ { \\"Effect\\" : \\"Allow\\", \\"Action\\" : \\"*\\", \\"Principal\\" : \\"*\\", \\"Resource\\" : \\"*\\" } ] }', 'title' => ''], + 'SupportPolicy' => ['description' => 'Indicate whether the endpoint service supports the access policy. Valid values:'."\n" + ."\n" + .'* **false**'."\n" + .'* **true**'."\n", 'type' => 'boolean', 'example' => 'true', 'title' => ''], + 'ServiceDomain' => ['description' => 'The domain name of the cloud service to which the endpoint service belongs.'."\n", 'type' => 'string', 'example' => 'oss-admin.aliyuncs.com', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', ], + 'TotalCount' => ['description' => 'The total number of entries returned.'."\n", 'type' => 'string', 'example' => '2', 'title' => ''], ], + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'UnsupportedFeature.PortSegment', - 'errorMessage' => 'The feature of PortSegment is not supported.', - ], - [ - 'errorCode' => 'ExclusiveParam.%sAnd%s', - 'errorMessage' => 'The param of %s and %s are mutually exclusive.', - ], - [ - 'errorCode' => 'InvalidIp.NotInNatgw', - 'errorMessage' => 'The specified Ip not belong to natgateway.', - ], - [ - 'errorCode' => 'DuplicatedParam.InternalPort', - 'errorMessage' => 'The param of %s is duplicated.', - ], - [ - 'errorCode' => 'DuplicatedParam.ExternalPort', - 'errorMessage' => 'The param of %s is duplicated.', - ], - [ - 'errorCode' => 'OperationFailed.AnyPortConfig', - 'errorMessage' => 'Operation failed because any port correspondence any protocol', - ], - [ - 'errorCode' => 'OperationUnsupported.ForwardEntry', - 'errorMessage' => 'Duplicated destination ip port is unsupported.', - ], - [ - 'errorCode' => 'IncorrectStatus.NatIp', - 'errorMessage' => 'The status of %s [%s] is incorrect.', - ], - [ - 'errorCode' => 'Forbidden.IpHasBeenUsedInSnat', - 'errorMessage' => 'The source ip can\'t be used. Because it has been used in snat.', - ], - [ - 'errorCode' => 'IncorrectStatus.ForwardEntry', - 'errorMessage' => 'The status of %s [%s] is incorrect.', - ], - [ - 'errorCode' => 'InvalidExternalIp.Malformed', - 'errorMessage' => 'The specified ExternalIp is not a valid IP address.', - ], - [ - 'errorCode' => 'InvalidInternalIp.Malformed', - 'errorMessage' => 'The specified InternalIp is not a valid IP address.', - ], - [ - 'errorCode' => 'InvalidExternalPort.Malformed', - 'errorMessage' => 'The specified ExternalPort is not a valid port.', - ], - [ - 'errorCode' => 'InvalidInternalPort.Malformed', - 'errorMessage' => 'The specified InternalPort is not a valid port.', - ], - [ - 'errorCode' => 'Forbidden.DestnationIpOutOfVpcCIDR', - 'errorMessage' => 'The specified Destination Ip is Out of VPC CIDR.', - ], - [ - 'errorCode' => 'InvalidProtocal.ValueNotSupported', - 'errorMessage' => 'The specified IpProtocol does not support.', - ], - [ - 'errorCode' => 'IncorretForwardEntryStatus', - 'errorMessage' => 'Some Forward entry status blocked this operation..', - ], - [ - 'errorCode' => 'QuotaExceeded', - 'errorMessage' => 'Forward entry quota exceeded in this route table.', - ], - [ - 'errorCode' => 'ForwardEntry.Duplicated', - 'errorMessage' => 'The specified ExternalIp, IpProtocol, ExternalPort,InternalIp, InternalPort is duplicated', - ], - [ - 'errorCode' => 'Forbidden.ExternalIp.UsedInSnatTable', - 'errorMessage' => 'The specified ExternalIp is already used in SnatTable', - ], - [ - 'errorCode' => 'Forbidden.Already.Bounded', - 'errorMessage' => 'The specified instance already bounded', - ], - [ - 'errorCode' => 'InvalidIp.NotFound', - 'errorMessage' => 'The specified ip does not exist.', - ], - [ - 'errorCode' => 'InvalidParameter.Name.Malformed', - 'errorMessage' => 'The specified Name is not valid.', - ], - [ - 'errorCode' => 'IncorretStatus.ForwardEntry', - 'errorMessage' => 'The Specified forwardEntry is not stable status, can not operation', - ], - [ - 'errorCode' => 'IllegalParam.AnyPortNotZero', - 'errorMessage' => 'Any port port must be zero.', - ], - [ - 'errorCode' => 'Duplicated.DestinationPort', - 'errorMessage' => 'The specified param DestinationPort is duplicated.', - ], - [ - 'errorCode' => 'InvalidForwardEntryId.NotFound', - 'errorMessage' => 'Specified forward entry ID does not exist', - ], - [ - 'errorCode' => 'OperationUnsupported.EipInBinding', - 'errorMessage' => 'Create snat entry with eip in associating status is unsupported.', - ], - [ - 'errorCode' => 'QuotaExceeded.ForwardEntrySessionManytoOne', - 'errorMessage' => 'The dnat session quota is exceed.', - ], - [ - 'errorCode' => 'OperationFailed.ForwardEntryNotAllowSrcIpEqualDstIp', - 'errorMessage' => 'The source IP of forward entry is not allowed to equal destination IP.', - ], + ['errorCode' => 'ResourceNotFound.EndpointServiceId', 'errorMessage' => 'The specified resource gateway endpoint service is not found.', 'description' => ''], + ['errorCode' => 'IllegalParam.NextToken', 'errorMessage' => 'The specified NextToken is invalid.', 'description' => 'The specified NextToken is invalid.'], ], - 404 => [ - [ - 'errorCode' => 'ResourceNotFound.NatIp', - 'errorMessage' => 'The specified resource of %s is not found.', - ], - [ - 'errorCode' => 'ResourceNotFound.ForwardEntry', - 'errorMessage' => 'The specified resource of %s is not found.', - ], - [ - 'errorCode' => 'InvalidRegionId.NotFound', - 'errorMessage' => 'The specified RegionId does not exist in our records.', - ], - [ - 'errorCode' => 'InvalidForwardEntryId.NotFound', - 'errorMessage' => 'Specified forward entry ID does not exist', - ], - [ - 'errorCode' => 'InvalidExternalIp.NotFound', - 'errorMessage' => 'Specified External Ip address does not found on the VRouter', - ], - [ - 'errorCode' => 'InvalidForwardTableId.NotFound', - 'errorMessage' => 'Specified forward table does not exist.', + ], + 'title' => 'ListVpcEndpointServicesByEndUser', + 'summary' => 'Queries available endpoint services.', + 'changeSet' => [ + ['createdAt' => '2023-08-25T06:36:30.000Z', 'description' => 'Response parameters changed'], + ], + 'ramActions' => [ + [ + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'vpc:ListVpcEndpointServicesByEndUser', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'All Resource', 'arn' => '*'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"2315DEB7-5E92-423A-91F7-4C1EC9AD97C3\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 2315DEB7-5E92-423A-91F7-4C1EC9AD97C3\\n","errorExample":""}]', - 'title' => 'ModifyForwardEntry', - 'description' => '* **ModifyForwardEntry** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call the [DescribeForwardTableEntries](~~36053~~) operation to query the status of the task.'."\n" - ."\n" - .' * **Pending**: indicates that the system is modifying the DNAT entry. You can only query the DNAT entry, but cannot perform other operations.'."\n" - .' * **Available**: indicates that the DNAT entry is modified.'."\n" - ."\n" - .'* You cannot repeatedly call the **ModifyForwardEntry** operation to modify a DNAT entry within the specified period of time.'."\n", - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - 'translator' => 'machine', - ], - 'DescribeForwardTableEntries' => [ - 'summary' => 'Queries DNAT entries.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"0AB1129F-32C1-5E4D-9E22-E4A859CA46EB\\",\\n \\"NextToken\\": \\"FFmyTO70tTpLG6I3FmYAXGKPd****\\",\\n \\"MaxResults\\": 20,\\n \\"Services\\": [\\n {\\n \\"ServiceId\\": \\"vpces-m5enwdmilo210aibo9****\\",\\n \\"ServiceName\\": \\"com.aliyun.cn-hangzhou.oss\\",\\n \\"DefaultPolicyDocument\\": \\"{ \\\\\\\\\\\\\\"Version\\\\\\\\\\\\\\" : \\\\\\\\\\\\\\"1\\\\\\\\\\\\\\", \\\\\\\\\\\\\\"Statement\\\\\\\\\\\\\\" : [ { \\\\\\\\\\\\\\"Effect\\\\\\\\\\\\\\" : \\\\\\\\\\\\\\"Allow\\\\\\\\\\\\\\", \\\\\\\\\\\\\\"Action\\\\\\\\\\\\\\" : \\\\\\\\\\\\\\"*\\\\\\\\\\\\\\", \\\\\\\\\\\\\\"Principal\\\\\\\\\\\\\\" : \\\\\\\\\\\\\\"*\\\\\\\\\\\\\\", \\\\\\\\\\\\\\"Resource\\\\\\\\\\\\\\" : \\\\\\\\\\\\\\"*\\\\\\\\\\\\\\" } ] }\\",\\n \\"SupportPolicy\\": true,\\n \\"ServiceDomain\\": \\"oss-admin.aliyuncs.com\\"\\n }\\n ],\\n \\"TotalCount\\": \\"2\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 0AB1129F-32C1-5E4D-9E22-E4A859CA46EB\\n FFmyTO70tTpLG6I3FmYAXGKPd****\\n 20\\n \\n vpces-m5enwdmilo210aibo9****\\n com.aliyun.cn-hangzhou.oss\\n { \\\\\\"Version\\\\\\" : \\\\\\"1\\\\\\", \\\\\\"Statement\\\\\\" : [ { \\\\\\"Effect\\\\\\" : \\\\\\"Allow\\\\\\", \\\\\\"Action\\\\\\" : \\\\\\"*\\\\\\", \\\\\\"Principal\\\\\\" : \\\\\\"*\\\\\\", \\\\\\"Resource\\\\\\" : \\\\\\"*\\\\\\" } ] }\\n true\\n oss-admin.aliyuncs.com\\n \\n","errorExample":""}]', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '600', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ListVpcEndpointServicesByEndUser'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], ], + ], + 'ListVpcGatewayEndpoints' => [ + 'summary' => 'Queries gateway endpoints.', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'read', - 'systemTags' => [ - 'operationType' => 'get', - 'riskType' => 'none', - 'chargeType' => 'free', - ], + 'deprecated' => false, + 'systemTags' => ['operationType' => 'list', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region where you want to create the NAT gateway.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cn-hangzhou', - ], - ], - [ - 'name' => 'ForwardTableId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the DNAT table.'."\n" - ."\n" - .'**'."\n" - ."\n" - .'**Description** You must specify at least one of **ForwardTableId** and **NatGatewayId**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'ftb-bp1mbjubq34hlcqpa****', - ], - ], - [ - 'name' => 'ForwardEntryId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the DNAT entry.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'fwd-8vbn3bc8roygjp0gy****', - ], - ], - [ - 'name' => 'ExternalIp', + 'name' => 'EndpointId', 'in' => 'query', - 'schema' => [ - 'description' => '* The elastic IP addresses (EIPs) that can be accessed over the Internet when you query DNAT entries of Internet NAT gateways.'."\n" - .'* The NAT IP addresses that can be accessed by external networks when you query DNAT entries of Virtual Private Cloud (VPC) NAT gateways.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '116.28.XX.XX', - ], + 'schema' => ['title' => '', 'description' => 'The ID of the gateway endpoint.'."\n", 'type' => 'string', 'required' => false, 'example' => 'vpce-bp1i1212ss2whuwyw****'], ], [ - 'name' => 'ExternalPort', + 'name' => 'EndpointName', 'in' => 'query', - 'schema' => [ - 'description' => '* The external port or port range that is used for port forwarding when you query DNAT entries of Internet NAT gateways.'."\n" - ."\n" - .' * Valid values: **1** to **65535**.'."\n" - .' * If you want to query a port range, separate the first port and last port with a forward slash (/), such as `10/20`.'."\n" - .' * If you set **ExternalPort** to a port range, you must also set **InternalPort** to a port range, and the number of ports specified by these parameters must be the same. For example, if you set **ExternalPort** to `10/20`, you can set **InternalPort** to `80/90`.'."\n" - ."\n" - .'* The port that is used when the NAT IP address can be accessed by external networks when you query DNAT entries of VPC NAT gateways. Valid values: **1** to **65535**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '8080', - ], + 'schema' => ['title' => '', 'description' => 'The name of the gateway endpoint.'."\n" + ."\n" + .'The name must be 1 to 128 characters in length.'."\n", 'type' => 'string', 'required' => false, 'example' => 'test'], ], [ - 'name' => 'InternalIp', + 'name' => 'ServiceName', 'in' => 'query', - 'schema' => [ - 'description' => 'The private IP address.'."\n" - ."\n" - .'* The private IP address of the ECS instance that uses DNAT entries to communicate with the Internet when you query DNAT entries of Internet NAT gateways.'."\n" - .'* The private IP address that uses DNAT entries for communication when you query DNAT entries of VPC NAT gateways.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '192.168.XX.XX ', - ], + 'schema' => ['title' => '', 'description' => 'The name of the endpoint service.'."\n", 'type' => 'string', 'required' => false, 'example' => 'com.aliyun.cn-hangzhou.oss'], ], [ - 'name' => 'InternalPort', + 'name' => 'NextToken', 'in' => 'query', - 'schema' => [ - 'description' => '* The internal port or port range that is used for port forwarding when you query DNAT entries of Internet NAT gateways. Valid values: **1** to **65535**.'."\n" - .'* The port of the destination ECS instance to be mapped when you query DNAT entries of VPC NAT gateways. Valid values: **1** to **65535**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '80', - ], + 'schema' => ['description' => 'The pagination token that is used in the next request to retrieve a new page of results. Valid values:'."\n" + ."\n" + .'* You do not need to specify this parameter for the first request.'."\n" + .'* If a value is returned for NextToken, specify the value in the next request to retrieve a new page of results.'."\n", 'type' => 'string', 'required' => false, 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', 'title' => ''], ], [ - 'name' => 'IpProtocol', + 'name' => 'MaxResults', 'in' => 'query', - 'schema' => [ - 'description' => 'The protocol. Valid values:'."\n" - ."\n" - .'* **TCP**'."\n" - .'* **UDP**'."\n" - .'* **Any**'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'TCP', - ], + 'schema' => ['description' => 'The number of entries to return per page. Valid values: **1** to **100**. Default value: **20**.'."\n", 'type' => 'integer', 'format' => 'int64', 'required' => false, 'maximum' => '100', 'minimum' => '1', 'default' => '10', 'example' => '20', 'title' => ''], ], [ - 'name' => 'ForwardEntryName', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The name of the DNAT entry.'."\n" - ."\n" - .'The name must be 2 to 128 characters in length, and can contain digits, periods (.), underscores (\\_), and hyphens (-). It must start with a letter.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'ForwardEntry-1', - ], + 'schema' => ['title' => '', 'description' => 'The region ID of the gateway endpoint.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'example' => 'cn-hangzhou'], ], [ - 'name' => 'PageNumber', + 'name' => 'ResourceGroupId', 'in' => 'query', - 'schema' => [ - 'description' => 'The page number. Default value: **1**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'minimum' => '1', - 'example' => '1', - 'default' => '1', - ], + 'schema' => ['description' => 'The ID of the resource group to which the gateway endpoint belongs.'."\n", 'type' => 'string', 'required' => false, 'example' => 'rg-acfmxvfvazb4p****', 'title' => ''], ], [ - 'name' => 'PageSize', + 'name' => 'Tags', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => 'The number of entries per page. Maximum value: **50**. Default value: **10**.'."\n", - 'type' => 'integer', - 'format' => 'int32', + 'description' => 'The tag list.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The tag list', + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => 'The key of tag N added to the resource. You can specify at most 20 tag keys. It cannot be an empty string.'."\n" + ."\n" + .'The key cannot exceed 64 characters in length, and can contain digits, periods (.), underscores (\\_), and hyphens (-). The key must start with a letter but cannot start with `aliyun` or `acs:`. The key cannot contain `http://` or `https://`.'."\n", 'type' => 'string', 'required' => false, 'example' => 'FinanceDept', 'title' => ''], + 'Value' => ['description' => 'The value of tag N added to the resource. You can specify at most 20 tag values. The tag value can be an empty string.'."\n" + ."\n" + .'The tag value cannot exceed 128 characters in length, and can contain digits, periods (.), underscores (\\_), and hyphens (-). The key must start with a letter but cannot start with `aliyun` or `acs:`. The key cannot contain `http://` or `https://`.'."\n", 'type' => 'string', 'required' => false, 'example' => 'FinanceJoshua', 'title' => ''], + ], + 'required' => false, + 'title' => '', + 'example' => '', + ], 'required' => false, - 'maximum' => '50', - 'minimum' => '1', - 'example' => '10', - 'default' => '10', + 'maxItems' => 10, + 'title' => '', + 'example' => '', ], ], [ - 'name' => 'NatGatewayId', + 'name' => 'VpcId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the NAT gateway.'."\n" - ."\n" - .'**'."\n" - ."\n" - .'**Description** You must specify at least one of **ForwardTableId** and **NatGatewayId**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'ngw-bp1uewa15k4iy5770****', - ], + 'schema' => ['description' => 'The ID of the virtual private cloud (VPC) to which the gateway endpoint belongs.', 'type' => 'string', 'required' => false, 'example' => 'vpc-bp1gsk7h12ew7oegk****', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'title' => '', + 'description' => 'The request ID.'."\n", 'type' => 'object', 'properties' => [ - 'PageSize' => [ - 'description' => 'The number of entries per page.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => 'A6C4A8B1-7561-4509-949C-20DEB40D71E6', - ], - 'PageNumber' => [ - 'description' => 'The page number.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'TotalCount' => [ - 'description' => 'The number of entries returned.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '5', - ], - 'ForwardTableEntries' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'ForwardTableEntry' => [ - 'description' => 'The details of DNAT entries.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'Status' => [ - 'description' => 'The status of the DNAT entry. Valid values:'."\n" - ."\n" - .'* **Pending**'."\n" - .'* **Available**'."\n" - .'* **Deleting**'."\n", - 'type' => 'string', - 'example' => 'Available', - ], - 'ForwardEntryId' => [ - 'description' => 'The ID of the DNAT entry.'."\n", - 'type' => 'string', - 'example' => 'fwd-119smw5tk****', - ], - 'InternalIp' => [ - 'description' => 'The private IP address.'."\n" - ."\n" - .'* The private IP address of the ECS instance that uses DNAT entries to communicate with the Internet when you query DNAT entries of Internet NAT gateways.'."\n" - .'* The private IP address that uses DNAT entries when you query DNAT entries of VPC NAT gateways.'."\n", - 'type' => 'string', - 'example' => '192.168.XX.XX', - ], - 'InternalPort' => [ - 'description' => '* The internal port or port range that is used for port forwarding when you query DNAT entries of Internet NAT gateways.'."\n" - .'* The destination ECS instance port to be mapped when you query DNAT entries of VPC NAT gateways.'."\n", - 'type' => 'string', - 'example' => '25', - ], - 'ForwardEntryName' => [ - 'description' => 'The name of the DNAT entry.'."\n", - 'type' => 'string', - 'example' => 'ForwardEntry-1', - ], - 'ForwardTableId' => [ - 'description' => 'The ID of the DNAT table to which the DNAT entry belongs.'."\n", - 'type' => 'string', - 'example' => 'ftb-11tc6xgmv****', - ], - 'IpProtocol' => [ - 'description' => 'The protocol. Valid values:'."\n" - ."\n" - .'* **TCP**'."\n" - .'* **UDP**'."\n" - .'* **Any**'."\n", - 'type' => 'string', - 'example' => 'TCP', - ], - 'ExternalPort' => [ - 'description' => '* The external port or port range that is used for port forwarding when you query DNAT entries of Internet NAT gateways.'."\n" - .'* The port that is used when the NAT IP address can be accessed by external networks when you query DNAT entries of VPC NAT gateways.'."\n", - 'type' => 'string', - 'example' => '80', - ], - 'ExternalIp' => [ - 'description' => '* The EIPs that can be accessed over the Internet when you query DNAT entries of Internet NAT gateways.'."\n" - .'* The NAT IP addresses that can be accessed by external networks when you query DNAT entries of VPC NAT gateways.'."\n", - 'type' => 'string', - 'example' => '139.79.XX.XX', - ], - 'NatGatewayId' => [ - 'description' => 'The ID of the NAT gateway to which the DNAT entry belongs.'."\n", - 'type' => 'string', - 'example' => 'ngw-bp1uewa15k4iy5770****', + 'RequestId' => ['title' => '', 'description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '0AB1129F-32C1-5E4D-9E22-E4A859CA46EB'], + 'NextToken' => ['description' => 'A pagination token. It can be used in the next request to retrieve a new page of results. Valid values:'."\n" + ."\n" + .'* If no value is returned for **NextToken**, no next queries are sent.'."\n" + .'* If a value is returned for **NextToken**, the value can be used in the next request to retrieve a new page of results.'."\n", 'type' => 'string', 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', 'title' => ''], + 'TotalCount' => ['description' => 'The number of entries returned.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '10', 'title' => ''], + 'Endpoints' => [ + 'description' => 'The list of gateway endpoints.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'EndpointId' => ['description' => 'The ID of the gateway endpoint.'."\n", 'type' => 'string', 'example' => 'vpce-bp1i1212ss2whuwyw****', 'title' => ''], + 'EndpointName' => ['description' => 'The name of the gateway endpoint.'."\n", 'type' => 'string', 'example' => 'test', 'title' => ''], + 'EndpointDescription' => ['description' => 'The description of the gateway endpoint.'."\n", 'type' => 'string', 'example' => 'test_description', 'title' => ''], + 'ServiceName' => ['description' => 'The name of the endpoint service.'."\n", 'type' => 'string', 'example' => 'com.aliyun.cn-hangzhou.oss', 'title' => ''], + 'VpcId' => ['description' => 'The ID of the virtual private cloud (VPC) to which the gateway endpoint belongs.'."\n", 'type' => 'string', 'example' => 'vpc-bp1gsk7h12ew7oegk****', 'title' => ''], + 'PolicyDocument' => ['description' => 'The access policy for the cloud service.'."\n" + ."\n" + .'For more information about the syntax and structure of the access policy, see [Policy syntax and structure](~~93739~~).'."\n", 'type' => 'string', 'example' => '{\\n \\"Version\\": \\"1\\",\\n \\"Statement\\": [\\n {\\n \\"Effect\\": \\"Allow\\",\\n \\"Action\\": \\"*\\",\\n \\"Principal\\": \\"*\\",\\n \\"Resource\\": \\"*\\"\\n }\\n ]\\n}', 'title' => ''], + 'CreationTime' => ['description' => 'The time when the endpoint was created. The time follows the ISO 8601 standard in the YYYY-MM-DDThh:mm:ssZ format. The time is displayed in UTC.'."\n", 'type' => 'string', 'example' => '2021-09-08T08:43:04Z', 'title' => ''], + 'EndpointStatus' => ['description' => 'The status of the gateway endpoint. Valid values:'."\n" + ."\n" + .'* **Creating**'."\n" + .'* **Created**'."\n" + .'* **Modifying**'."\n" + .'* **Associating**'."\n" + .'* **Dissociating**'."\n" + .'* **Deleting**'."\n", 'type' => 'string', 'example' => 'Created', 'title' => ''], + 'AssociatedRouteTables' => [ + 'description' => 'The ID of the route table associated with the gateway endpoint.'."\n", + 'type' => 'array', + 'items' => ['description' => 'The ID of the route table associated with the gateway endpoint.'."\n", 'type' => 'string', 'example' => 'vtb-bp1sme72jnuodvyx7****', 'title' => ''], + 'title' => '', + 'example' => '', + ], + 'ResourceGroupId' => ['description' => 'The ID of the resource group to which the gateway endpoint belongs.'."\n", 'type' => 'string', 'example' => 'rg-acfmxvfvazb4p****', 'title' => ''], + 'Tags' => [ + 'description' => 'The tag list.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => 'The key of tag N added to the resource.'."\n", 'type' => 'string', 'example' => 'FinanceDept', 'title' => ''], + 'Value' => ['description' => 'The value of tag N added to the resource.'."\n", 'type' => 'string', 'example' => 'FinanceJoshua', 'title' => ''], ], + 'title' => '', + 'example' => '', ], + 'title' => '', + 'example' => '', ], ], + 'title' => '', + 'example' => '', ], + 'title' => '', + 'example' => '', ], + 'MaxResults' => ['title' => '', 'description' => 'The number of entries per page.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '20'], ], - 'description' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'IncorretForwardEntryStatus', - 'errorMessage' => 'Some Forward entry status blocked this operation..', - ], - [ - 'errorCode' => 'DESCRIBE_FORWARD_PARAM_INVALID', - 'errorMessage' => 'ForwardTableId and natGatewayId can not both be null', - ], + ['errorCode' => 'IllegalParam.NextToken', 'errorMessage' => 'The specified NextToken is invalid.', 'description' => 'The specified NextToken is invalid.'], + ['errorCode' => 'IllegalParam.MaxResults', 'errorMessage' => 'The param of MaxResults is illegal.', 'description' => ''], + ['errorCode' => 'InvalidVpcId.NotFound', 'errorMessage' => 'Specified value of VpcId is not found in our record.', 'description' => ''], ], - 404 => [ - [ - 'errorCode' => 'InvalidRegionId.NotFound', - 'errorMessage' => 'The specified RegionId does not exist in our records.', - ], - [ - 'errorCode' => 'InvalidForwardTableId.NotFound', - 'errorMessage' => 'Specified forwardTableId does not exist', + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'ListVpcGatewayEndpoints', + 'changeSet' => [ + ['createdAt' => '2023-09-06T08:37:25.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2023-06-13T02:40:56.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-03-23T02:20:38.000Z', 'description' => 'Request parameters changed, Response parameters changed, Response parameters changed'], + ], + 'ramActions' => [ + [ + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'vpc:ListVpcGatewayEndpoints', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'conditional', 'product' => 'VPC', 'resourceType' => 'GatewayEndpoint', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:gatewayendpoint/*'], + ['validationType' => 'conditional', 'product' => 'VPC', 'resourceType' => 'GatewayEndpoint', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:gatewayendpoint/{#GatewayEndpointId}'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"PageSize\\": 10,\\n \\"RequestId\\": \\"A6C4A8B1-7561-4509-949C-20DEB40D71E6\\",\\n \\"PageNumber\\": 1,\\n \\"TotalCount\\": 5,\\n \\"ForwardTableEntries\\": {\\n \\"ForwardTableEntry\\": [\\n {\\n \\"Status\\": \\"Available\\",\\n \\"ForwardEntryId\\": \\"fwd-119smw5tk****\\",\\n \\"InternalIp\\": \\"192.168.XX.XX\\",\\n \\"InternalPort\\": \\"25\\",\\n \\"ForwardEntryName\\": \\"ForwardEntry-1\\",\\n \\"ForwardTableId\\": \\"ftb-11tc6xgmv****\\",\\n \\"IpProtocol\\": \\"tcp\\",\\n \\"ExternalPort\\": \\"80\\",\\n \\"ExternalIp\\": \\"139.79.XX.XX\\",\\n \\"NatGatewayId\\": \\"ngw-bp1uewa15k4iy5770****\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 10\\n A6C4A8B1-7561-4509-949C-20DEB40D71E6\\n 1\\n 5\\n \\n Available\\n fwd-119smw5tk****\\n 192.168.XX.XX\\n 25\\n ForwardEntry-1\\n ftb-11tc6xgmv****\\n TCP\\n 80\\n 139.79.XX.XX\\n ngw-bp1uewa15k4iy5770****\\n \\n","errorExample":""}]', - 'title' => 'DescribeForwardTableEntries', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'CreateFullNatEntry' => [ - 'summary' => 'Adds a FULLNAT entry to the FULLNAT table.', - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'http', - 'https', + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"0AB1129F-32C1-5E4D-9E22-E4A859CA46EB\\",\\n \\"NextToken\\": \\"FFmyTO70tTpLG6I3FmYAXGKPd****\\",\\n \\"TotalCount\\": 10,\\n \\"Endpoints\\": [\\n {\\n \\"EndpointId\\": \\"vpce-bp1i1212ss2whuwyw****\\",\\n \\"EndpointName\\": \\"test\\",\\n \\"EndpointDescription\\": \\"test_description\\",\\n \\"ServiceName\\": \\"com.aliyun.cn-hangzhou.oss\\",\\n \\"VpcId\\": \\"vpc-bp1gsk7h12ew7oegk****\\",\\n \\"PolicyDocument\\": \\"{\\\\\\\\n \\\\\\\\\\\\\\"Version\\\\\\\\\\\\\\": \\\\\\\\\\\\\\"1\\\\\\\\\\\\\\",\\\\\\\\n \\\\\\\\\\\\\\"Statement\\\\\\\\\\\\\\": [\\\\\\\\n {\\\\\\\\n \\\\\\\\\\\\\\"Effect\\\\\\\\\\\\\\": \\\\\\\\\\\\\\"Allow\\\\\\\\\\\\\\",\\\\\\\\n \\\\\\\\\\\\\\"Action\\\\\\\\\\\\\\": \\\\\\\\\\\\\\"*\\\\\\\\\\\\\\",\\\\\\\\n \\\\\\\\\\\\\\"Principal\\\\\\\\\\\\\\": \\\\\\\\\\\\\\"*\\\\\\\\\\\\\\",\\\\\\\\n \\\\\\\\\\\\\\"Resource\\\\\\\\\\\\\\": \\\\\\\\\\\\\\"*\\\\\\\\\\\\\\"\\\\\\\\n }\\\\\\\\n ]\\\\\\\\n}\\",\\n \\"CreationTime\\": \\"2021-09-08T08:43:04Z\\",\\n \\"EndpointStatus\\": \\"Created\\",\\n \\"AssociatedRouteTables\\": [\\n \\"vtb-bp1sme72jnuodvyx7****\\"\\n ],\\n \\"ResourceGroupId\\": \\"rg-acfmxvfvazb4p****\\",\\n \\"Tags\\": [\\n {\\n \\"Key\\": \\"FinanceDept\\",\\n \\"Value\\": \\"FinanceJoshua\\"\\n }\\n ]\\n }\\n ],\\n \\"MaxResults\\": 20\\n}","type":"json"}]', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '1200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ListVpcGatewayEndpoints'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], ], + ], + 'ListVpcPublishedRouteEntries' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'read', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'create', - 'riskType' => 'none', - 'chargeType' => 'free', - ], + 'systemTags' => ['operationType' => 'list'], 'parameters' => [ [ - 'name' => 'ClientToken', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'You can use the client to generate a value, and you must make sure that each request has a unique token value. The client token can contain only ASCII characters.'."\n" - ."\n" - .'> If you do not specify this parameter, the system automatically uses the value of **RequestId** as the value of **ClientToken**. The **request ID** may be different for each request.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3FF3898', - ], + 'schema' => ['description' => 'The ID of the region where the instance is located.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'FullNatTableId', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'title' => 'FullNAT条目所属的FullNAT列表的ID。', - 'description' => 'The ID of the FULLNAT table to which the FULLNAT entry belongs.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'fulltb-gw88z7hhlv43rmb26****', - ], + 'schema' => ['description' => 'The ID of the region where the instance is located.', 'type' => 'string', 'required' => false, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'NetworkInterfaceId', + 'name' => 'RouteTableId', 'in' => 'query', - 'schema' => [ - 'description' => 'The elastic network interface (ENI) ID.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'eni-gw8g131ef2dnbu3k****', - ], + 'schema' => ['description' => 'The ID of the route table.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'vtb-bp145q7glnuzd****', 'title' => ''], ], [ - 'name' => 'NatIp', + 'name' => 'DestinationCidrBlock', 'in' => 'query', - 'schema' => [ - 'title' => '提供入方向访问的IP地址,该公网IP需要是当前VpcNat下的NatIP', - 'description' => 'The NAT IP address that provides address translation.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => '192.168.XX.XX', - ], + 'schema' => ['description' => 'The destination CIDR block of the route entry, supporting both IPv4 and IPv6 segments.', 'type' => 'string', 'required' => false, 'example' => '47.100.XX.XX/16', 'title' => ''], ], [ - 'name' => 'NatIpPort', + 'name' => 'TargetType', 'in' => 'query', - 'schema' => [ - 'title' => '需要进行端口转发的外部端口,取值范围:1~65535。', - 'description' => 'The frontend port to be modified in the mapping of FULLNAT port. Valid values: **1** to **65535**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '80', - ], + 'schema' => ['description' => 'The type of the route publishing target.', 'type' => 'string', 'required' => true, 'example' => 'ECR', 'title' => ''], ], [ - 'name' => 'AccessIp', + 'name' => 'TargetInstanceId', 'in' => 'query', - 'schema' => [ - 'title' => '需要进行转发的后端IP', - 'description' => 'The backend IP address to be modified in FULLNAT address translation.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '192.168.XX.XX', - ], + 'schema' => ['description' => 'The ID of the route publishing target instance.', 'type' => 'string', 'required' => false, 'example' => 'ecr-dhw2xsds5****', 'title' => ''], ], [ - 'name' => 'AccessPort', + 'name' => 'MaxResults', 'in' => 'query', - 'schema' => [ - 'title' => '需要进行端口转发的内部端口,取值范围:1~65535。', - 'description' => 'The backend port to be modified in the mapping of FULLNAT port. Valid values: **1** to **65535**.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => '80', - ], + 'schema' => ['description' => 'The number of entries to display per batch query. Range: **1**~**500**, default value is **50**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '500', 'default' => '50', 'example' => '50', 'title' => ''], ], [ - 'name' => 'IpProtocol', + 'name' => 'NextToken', 'in' => 'query', - 'schema' => [ - 'title' => '协议类型,取值: • TCP:转发TCP协议的报文。 • UDP:转发UDP协议的报文。', - 'description' => 'The protocol of the packets that are forwarded by the port. Valid values:'."\n" - ."\n" - .'* **TCP**'."\n" - .'* **UDP**'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'TCP', - ], - ], - [ - 'name' => 'FullNatEntryName', - 'in' => 'query', - 'schema' => [ - 'title' => 'FULLNAT规则的名称。 长度为2~128个字符,必须以大小写字母或中文开头,但不能以http://或https://开头。', - 'description' => 'The FULLNAT entry name. The name must be 2 to 128 characters in length. It must start with a letter but cannot start with http:// or https://.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'test', - ], - ], - [ - 'name' => 'FullNatEntryDescription', - 'in' => 'query', - 'schema' => [ - 'description' => 'The description of the FULLNAT entry.'."\n" - ."\n" - .'This parameter is optional. If you enter a description, the description must be 2 to 256 characters in length, and cannot start with `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'abc', - ], - ], - [ - 'name' => 'DryRun', - 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to only precheck this request. Valid values:'."\n" - ."\n" - .'* **true**: prechecks the request without adding the FULLNAT entry. The system checks whether your AccessKey pair is valid, whether RAM users are granted required permissions, and whether the required parameters are set. If the request fails to pass the precheck, an error code is returned. If the request passes the precheck, the `DryRunOperation` error code is returned.'."\n" - .'* **false**: sends the API request. This is the default value. After the request passes the precheck, a 2XX HTTP status code is returned and the FULLNAT entry is added.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], - ], - [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the Virtual Private Cloud (VPC) NAT gateway to which the FULLNAT entry to be added belongs.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'eu-central-1', - ], - ], - [ - 'name' => 'AccessDomain', - 'in' => 'query', - 'schema' => [ - 'description' => 'The backend domain name for FULLNAT address translation.', - 'type' => 'string', - 'required' => false, - 'example' => 'xxx.com', - ], + 'schema' => ['description' => 'Indicates whether there is a token for the next query. Values:'."\n" + .'- If **NextToken** is empty, it means there is no next query.'."\n" + .'- If **NextToken** has a return value, this value indicates the token for the start of the next query.', 'type' => 'string', 'required' => false, 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ 'title' => 'Schema of Response', - 'description' => 'Schema of Response'."\n", + 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '2315DEB7-5E92-423A-91F7-4C1EC9AD97C3', - ], - 'FullNatEntryId' => [ - 'description' => 'The FULLNAT entry ID.'."\n", - 'type' => 'string', - 'example' => 'fullnat-gw8fz23jezpbblf1j****', + 'RequestId' => ['description' => 'Request ID.', 'type' => 'string', 'example' => '1D0971B2-A35A-42C1-A44C-E91360C36C0B', 'title' => ''], + 'NextToken' => ['description' => 'Indicates whether there is a token for the next query. Values:'."\n" + ."\n" + .'- If **NextToken** is empty, it means there is no next query.'."\n" + .'- If **NextToken** has a return value, this value indicates the token for the start of the next query.', 'type' => 'string', 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', 'title' => ''], + 'RouteEntries' => [ + 'description' => 'List of route entry publishing status information.', + 'type' => 'array', + 'items' => [ + 'description' => 'List of route entry publishing status information.', + 'type' => 'object', + 'properties' => [ + 'RouteEntryId' => ['description' => 'The ID of the route entry.', 'type' => 'string', 'example' => 'rte-bp1mnnr2al0naomnpv****', 'title' => ''], + 'DestinationCidrBlock' => ['description' => 'The destination CIDR block of the route entry.', 'type' => 'string', 'example' => '10.0.0.0/24', 'title' => ''], + 'RouteTableId' => ['description' => 'The ID of the route table.', 'type' => 'string', 'example' => 'vtb-2ze3jgygk9bmsj23s****', 'title' => ''], + 'RoutePublishTargets' => [ + 'description' => 'List of route entry publishing status information in the publishing targets.', + 'type' => 'array', + 'items' => [ + 'description' => 'List of route entry publishing status information in the publishing targets.', + 'type' => 'object', + 'properties' => [ + 'PublishStatus' => [ + 'description' => 'The publishing status of the route entry in the publishing target.', + 'type' => 'string', + 'enumValueTitles' => ['NonPublished' => 'NonPublished', 'Published' => 'Published'], + 'example' => 'Published', + 'title' => '', + ], + 'PublishTargetType' => ['description' => 'The type of the route publishing target.', 'type' => 'string', 'example' => 'ECR', 'title' => ''], + 'PublishTargetInstanceId' => ['description' => 'The ID of the route publishing target instance.', 'type' => 'string', 'example' => 'ecr-xvuqdfma6x57ei****', 'title' => ''], + ], + 'title' => '', + ], + 'title' => '', + ], + ], + 'title' => '', + ], + 'title' => '', ], ], ], @@ -59783,822 +46575,515 @@ ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'ResourceNotFound.NatIp', - 'errorMessage' => 'The specified resource of %s is not found.', - ], - [ - 'errorCode' => 'IllegalParamFormat.NatIp', - 'errorMessage' => 'The param format of %s[%s] is illegal.', - ], - [ - 'errorCode' => 'UnsupportedFeature.PrivateLinkMode', - 'errorMessage' => 'The feature of %s is not supported.', - ], - [ - 'errorCode' => 'QuotaExceeded.FullNatEntry', - 'errorMessage' => 'The quota of %s is exceeded, usage %s/%s.', - ], - [ - 'errorCode' => 'IncorrectStatus.NatIp', - 'errorMessage' => 'The status of %s [%s] is incorrect.', - ], - [ - 'errorCode' => 'ResourceAlreadyExist.FullNatEntry', - 'errorMessage' => 'The specified resource of %s is already exist.', - ], - [ - 'errorCode' => 'IncorrectStatus.NetworkInterface', - 'errorMessage' => 'The status of network interface is incorrect.', - ], - [ - 'errorCode' => 'OperationFailed.AllocateNatIpPortFailed', - 'errorMessage' => 'NatIpPort allocation failed.', - ], - [ - 'errorCode' => 'IllegalParam.NetworkInterfaceId', - 'errorMessage' => 'The param of NetworkInterfaceId is illegal.', - ], - [ - 'errorCode' => 'IllegalParam.AccessDomain', - 'errorMessage' => 'The request parameter AccessDomain is illegal.', - ], - [ - 'errorCode' => 'ExclusiveParam.AccessIpAndAccessDomain', - 'errorMessage' => 'The specified AccessIp and AccessDomain are mutually exclusive.', - ], - [ - 'errorCode' => 'InstanceUnsupported.FullNatDomain', - 'errorMessage' => 'The current instance does not support the configuration of the FullNat rule domain name.', - ], - [ - 'errorCode' => 'ZoneUnsupported.FullNatDomain', - 'errorMessage' => 'The current zone does not support the configuration of the FullNat rule domain name.', - ], + ['errorCode' => 'ResourceNotAssociated.TargetInstance', 'errorMessage' => 'The target instance is not associated with vpc.', 'description' => ''], + ['errorCode' => 'ResourceNotFound.RouteTable', 'errorMessage' => 'The specified resource gatewayRouteTable is not found.', 'description' => 'The gateway route table does not exist.'], + ['errorCode' => 'IllegalParam.NextToken', 'errorMessage' => 'The specified NextToken is invalid.', 'description' => 'The specified NextToken is invalid.'], + ['errorCode' => 'IllegalParam.NextTokenExpired', 'errorMessage' => 'The specified NextToken is invalid.', 'description' => 'The specified NextToken is invalid.'], + ['errorCode' => 'IllegalParam.TargetType', 'errorMessage' => 'The parameter of TargetType is illegal.', 'description' => 'The parameter TargetType is illegal.'], + ['errorCode' => 'OperationDenied.UnexpectedRouteTable', 'errorMessage' => 'Operation is denied because only system route table supports publishing route entries.', 'description' => 'The operation was denied because only the system routing table supports publishing routes'], ], - 404 => [ - [ - 'errorCode' => 'ResourceNotFound.NatGateway', - 'errorMessage' => 'The NatGateway instance not exist.', - ], - ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"1D0971B2-A35A-42C1-A44C-E91360C36C0B\\",\\n \\"NextToken\\": \\"FFmyTO70tTpLG6I3FmYAXGKPd****\\",\\n \\"RouteEntries\\": [\\n {\\n \\"RouteEntryId\\": \\"rte-bp1mnnr2al0naomnpv****\\",\\n \\"DestinationCidrBlock\\": \\"10.0.0.0/24\\",\\n \\"RouteTableId\\": \\"vtb-2ze3jgygk9bmsj23s****\\",\\n \\"RoutePublishTargets\\": [\\n {\\n \\"PublishStatus\\": \\"Published\\",\\n \\"PublishTargetType\\": \\"ECR\\",\\n \\"PublishTargetInstanceId\\": \\"ecr-xvuqdfma6x57ei****\\"\\n }\\n ]\\n }\\n ]\\n}","type":"json"}]', + 'title' => 'Query VPC Route Publishing Status', + 'summary' => 'Query the route publishing status', + 'changeSet' => [ + ['createdAt' => '2024-11-27T03:51:09.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-09-13T07:10:19.000Z', 'description' => 'Error codes changed, Response parameters changed'], + ], + 'ramActions' => [ + [ + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'vpc:ListVpcPublishedRouteEntries', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'RouteTable', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:routetable/{#RouteTableId}'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"2315DEB7-5E92-423A-91F7-4C1EC9AD97C3\\",\\n \\"FullNatEntryId\\": \\"fullnat-gw8fz23jezpbblf1j****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 2315DEB7-5E92-423A-91F7-4C1EC9AD97C3\\n fullnat-gw8fz23jezpbblf1j****\\n","errorExample":""}]', - 'title' => 'CreateFullNatEntry', - 'description' => '* **CreateFullNatEntry** is an asynchronous operation. After you send a request to call this operation, the system returns a FULLNAT entry and the FULLNAT entry is being added in the backend. You can call the [ListFullNatEntries](~~348779~~) operation to query the status of a FULLNAT entry.'."\n" - ."\n" - .' * If the FULLNAT entry is in the **Creating** state, the system is adding the FULLNAT entry. You can only query the status of the FULLNAT entry, but cannot perform other operations.'."\n" - .' * If the FULLNAT entry is in the **Available** state, the FULLNAT entry is added.'."\n" - ."\n" - .'* You cannot repeatedly call the **CreateFullNatEntry** operation for the same VPN gateway within the specified period of time.', - 'translator' => 'machine', ], - 'DeleteFullNatEntry' => [ - 'summary' => 'Deletes a FULLNAT entry.', - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'ListVpnCertificateAssociations' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'read', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'delete', - 'riskType' => 'none', - 'chargeType' => 'free', - ], + 'systemTags' => ['operationType' => 'list', 'riskType' => 'none', 'chargeType' => 'free', 'tenantRelevance' => 'tenant'], 'parameters' => [ [ - 'name' => 'ClientToken', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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.'."\n" - ."\n" - .'> 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.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3FF3898', - ], + 'schema' => ['description' => 'The region ID of the VPN gateway.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'FullNatTableId', + 'name' => 'CertificateType', 'in' => 'query', - 'schema' => [ - 'title' => 'FullNAT条目所属的FullNAT列表的ID。', - 'description' => 'The ID of the FULLNAT table to which the FULLNAT entry to be deleted belongs.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'fulltb-gw88z7hhlv43rmb26****', - ], + 'schema' => ['description' => 'The certificate type. Valid values:'."\n" + ."\n" + .'* **Encryption**'."\n" + .'* **Signature**'."\n", 'type' => 'string', 'required' => false, 'example' => 'Signature', 'title' => ''], ], [ - 'name' => 'FullNatEntryId', + 'name' => 'NextToken', 'in' => 'query', - 'schema' => [ - 'title' => '要修改的DNAT条目的ID。', - 'description' => 'The ID of the FULLNAT entry that you want to delete.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'fullnat-gw8fz23jezpbblf1j****', - ], + 'schema' => ['description' => 'The pagination token that is used in the next request to retrieve a new page of results. Valid values:'."\n" + ."\n" + .'* You do not need to specify this parameter for the first request.'."\n" + .'* You must specify the token that is obtained from the previous query as the value of **NextToken**.'."\n", 'type' => 'string', 'required' => false, 'example' => 'caeba0bbb2be0****', 'title' => ''], ], [ - 'name' => 'DryRun', + 'name' => 'MaxResults', + 'in' => 'query', + 'schema' => ['description' => 'The number of entries to return on each page. Valid values: **1** to **20**. Default value: **1**.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '10', 'title' => ''], + ], + [ + 'name' => 'VpnGatewayId', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values:'."\n" + 'description' => 'The list of VPN gateway IDs.'."\n" + ."\n" + .'You can query the association between at most 20 VPN gateways and SSL certificates.'."\n", + 'type' => 'array', + 'items' => ['description' => 'The ID of the VPN gateway.'."\n" ."\n" - .'* **true**: performs 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, the related error message is returned. If the request passes the dry run, the DryRunOperation error code is returned.'."\n" - .'* **false**: 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.'."\n", - 'type' => 'boolean', + .'You can query the association between at most 20 VPN gateways and SSL certificates.'."\n", 'type' => 'string', 'required' => false, 'example' => 'vpn-bp1q8bgx4xnkm2ogj****', 'title' => ''], 'required' => false, - 'example' => 'false', + 'example' => 'vpn-bp1q8bgx4xnkm****', + 'maxLength' => 128, + 'maxItems' => 20, + 'title' => '', ], ], [ - 'name' => 'RegionId', + 'name' => 'CertificateId', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => 'The region ID of the VPC NAT gateway to which the FULLNAT entry to be deleted belongs.'."\n" + 'description' => 'The list of certificate IDs.'."\n" ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent list of regions.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'eu-central-1', + .'You can query the association between at most 20 SSL certificates and VPN gateways.'."\n", + 'type' => 'array', + 'items' => ['description' => 'The certificate ID.'."\n" + ."\n" + .'You can query the association between at most 20 SSL certificates and VPN gateways.'."\n", 'type' => 'string', 'required' => false, 'example' => '848****', 'title' => ''], + 'required' => false, + 'example' => '6bfe4218-ea1d****', + 'maxLength' => 128, + 'maxItems' => 20, + 'title' => '', ], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'Schema of Response'."\n", + 'description' => 'The response parameters.'."\n", 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '2BCC426F-A9F2-3F03-99D2-1E0D647236DB', + 'NextToken' => ['description' => 'The returned value of NextToken is a pagination token, which can be used in the next request to retrieve a new page of results. Valid values:'."\n" + ."\n" + .'* If **NextToken** is empty, no next page exists.'."\n" + .'* If **NextToken** is not empty, the value indicates the token that is used for the next query.'."\n", 'type' => 'string', 'example' => 'caeba0bbb2be****', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '197AF2BD-547F-470C-B29A-8400400233EB', 'title' => ''], + 'TotalCount' => ['description' => 'The total number of entries returned.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '4', 'title' => ''], + 'MaxResults' => ['description' => 'The number of entries returned per page.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '10', 'title' => ''], + 'VpnCertificateRelations' => [ + 'description' => 'The association information.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The association between the VPN gateway and the certificate.'."\n", + 'type' => 'object', + 'properties' => [ + 'VpnGatewayId' => ['description' => 'The ID of the VPN gateway.'."\n", 'type' => 'string', 'example' => 'vpn-bp1usbiorilk51760****', 'title' => ''], + 'CertificateType' => ['description' => 'The type of the certificate.'."\n" + ."\n" + .'* **Encryption**'."\n" + .'* **Signature**'."\n", 'type' => 'string', 'example' => 'Signature', 'title' => ''], + 'CertificateId' => ['description' => 'The certificate ID.'."\n", 'type' => 'string', 'example' => '6bfe4218-ea1d****', 'title' => ''], + 'AssociationTime' => ['description' => 'The time when the Anycast EIP was associated.'."\n" + ."\n" + .'The time follows the ISO 8601 standard in the YYYY-MM-DDThh:mm:ssZ format. The time is displayed in UTC.'."\n", 'type' => 'string', 'example' => '2020-12-29T09:30:29Z', 'title' => ''], + 'RegionId' => ['description' => 'The ID of the region where the VPN gateway is created.'."\n", 'type' => 'string', 'example' => 'cn-hangzhou', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', ], ], + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'ResourceNotFound.FullNatEntry', - 'errorMessage' => 'The specified resource of %s is not found.', - ], - [ - 'errorCode' => 'IncorrectStatus.FullNatEntry', - 'errorMessage' => 'The status of %s [%s] is incorrect.', - ], - [ - 'errorCode' => 'ResourceNotFound.FullNatTableId', - 'errorMessage' => 'The specified resource of %s is not found.', - ], + ['errorCode' => 'IllegalParam.NextToken', 'errorMessage' => 'The specified next token (%s) is invalid.', 'description' => ''], + ], + 403 => [ + ['errorCode' => 'Forbidden', 'errorMessage' => 'User not authorized to operate on the specified resource.', 'description' => 'You do not have the permissions to manage the specified resource. Apply for the permissions and try again.'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"2BCC426F-A9F2-3F03-99D2-1E0D647236DB\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 2BCC426F-A9F2-3F03-99D2-1E0D647236DB\\n","errorExample":""}]', - 'title' => 'DeleteFullNatEntry', - 'description' => '## [](#)Description'."\n" - ."\n" - .'**DeleteFullNatEntry** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call the [ListFullNatEntries](~~348779~~) operation to query the status of a FULLNAT entry.'."\n" - ."\n" - .'* If the FULLNAT entry is in the **Deleting** state, the system is deleting the FULLNAT entry. In this case, you can query the status of the FULLNAT entry, but cannot perform other operations.'."\n" - .'* If the FULLNAT entry cannot be found, the FULLNAT entry is deleted.'."\n" + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'ListVpnCertificateAssociations', + 'summary' => 'Queries the association between VPN gateways and certificates in a region.', + 'description' => 'When you call **ListVpnCertificateAssociations**, take note of the following information:'."\n" ."\n" - .'You cannot repeatedly call the **DeleteFullNatEntry** operation to delete a FULLNAT entry within the specified period of time.'."\n", + .'* If you specify only **RegionId**, the SSL certificates associated with all VPN gateways in the specified region are queried.'."\n" + .'* If you specify **RegionId** and **CertificateType**, the SSL certificates of the specified type that are associated with the VPN gateways in the specified region are queried.'."\n" + .'* If you specify **RegionId** and **VpnGatewayId**, the SSL certificates associated with the specified VPN gateway in the specified region are queried.'."\n" + .'* If you specify **RegionId** and **CertificateId**, the VPN gateways associated with the specified SSL certificate in the specified region are queried.'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"NextToken\\": \\"caeba0bbb2be****\\",\\n \\"RequestId\\": \\"197AF2BD-547F-470C-B29A-8400400233EB\\",\\n \\"TotalCount\\": 4,\\n \\"MaxResults\\": 10,\\n \\"VpnCertificateRelations\\": [\\n {\\n \\"VpnGatewayId\\": \\"vpn-bp1usbiorilk51760****\\",\\n \\"CertificateType\\": \\"Signature\\",\\n \\"CertificateId\\": \\"6bfe4218-ea1d****\\",\\n \\"AssociationTime\\": \\"2020-12-29T09:30:29Z\\",\\n \\"RegionId\\": \\"cn-hangzhou\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\n 4\\n 197AF2BD-547F-470C-B29A-8400400233EB\\n \\n Signature\\n 2020-12-29T09:30:29Z\\n vpn-bp1usbiorilk51760****\\n 848****\\n cn-hangzhou\\n \\n \\n Encryption\\n 2020-12-29T09:30:16Z\\n vpn-bp1usbiorilk51760****\\n 848****\\n cn-hangzhou\\n \\n \\n Signature\\n 2020-12-09T02:36:23Z\\n vpn-bp1mrlw7134czer3l****\\n 848****\\n cn-hangzhou\\n \\n \\n Encryption\\n 2020-12-09T02:35:50Z\\n vpn-bp1mrlw7134czer3l****\\n 848****\\n cn-hangzhou\\n \\n 10\\n","errorExample":""}]', ], - 'ModifyFullNatEntryAttribute' => [ - 'summary' => 'Modifies a FULLNAT entry.', - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'ModifyBgpGroupAttribute' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'update', - 'riskType' => 'none', - 'chargeType' => 'free', - ], + 'systemTags' => ['operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ - 'name' => 'ClientToken', - 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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.'."\n" - ."\n" - .'> 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.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3FF3898', - ], - ], - [ - 'name' => 'FullNatTableId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the FULLNAT table to be modified.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'fulltb-gw88z7hhlv43rmb26****', - ], - ], - [ - 'name' => 'FullNatEntryId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the FULLNAT entry to be modified.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'fullnat-gw8fz23jezpbblf1j****', - ], - ], - [ - 'name' => 'NetworkInterfaceId', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the elastic network interface (ENI) to be modified.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'eni-gw8g131ef2dnbu3k****', - ], + 'schema' => ['description' => 'The region ID of the BGP group.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-shanghai', 'title' => ''], ], [ - 'name' => 'NatIp', + 'name' => 'BgpGroupId', 'in' => 'query', - 'schema' => [ - 'description' => 'The NAT IP address to be modified.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '192.168.XX.XX', - ], + 'schema' => ['description' => 'The BGP group ID.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'bgpg-wz9f62v4fbg2g****', 'title' => ''], ], [ - 'name' => 'NatIpPort', + 'name' => 'Name', 'in' => 'query', - 'schema' => [ - 'description' => 'The frontend port to be modified in FULLNAT port mapping. Valid values: **1** to **65535**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '80', - ], + 'schema' => ['description' => 'The BGP group name.'."\n" + ."\n" + .'The name must be 2 to 128 characters in length, and can contain digits, periods (.), underscores (\\_), and hyphens (-). The name must start with a letter but cannot start with `http://` or `https://`.'."\n", 'type' => 'string', 'required' => false, 'example' => 'test', 'title' => ''], ], [ - 'name' => 'AccessIp', + 'name' => 'Description', 'in' => 'query', - 'schema' => [ - 'description' => 'The backend IP address to be modified in FULLNAT address translation.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '192.168.XX.XX', - ], + 'schema' => ['description' => 'The BGP group description.'."\n" + ."\n" + .'The description must be 2 to 256 characters in length. It must start with a letter and cannot start with `http://` or `https://`.'."\n", 'type' => 'string', 'required' => false, 'example' => 'BGP', 'title' => ''], ], [ - 'name' => 'AccessPort', + 'name' => 'LocalAsn', 'in' => 'query', - 'schema' => [ - 'description' => 'The backend port to be modified in FULLNAT port mapping. Valid values: **1** to **65535**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '80', - ], + 'schema' => ['description' => 'The custom autonomous system number (ASN) of the BGP on the Alibaba Cloud side. Valid values:'."\n" + ."\n" + .'* **45104**'."\n" + .'* **64512~65534**'."\n" + .'* **4200000000~4294967294**'."\n" + ."\n" + .'> **65025** is reserved by Alibaba Cloud. Alibaba Cloud uses **45104** as the **local ASN** by default. Custom **local ASNs** may cause loops in multi-line scenarios. Proceed with caution.'."\n", 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '45104', 'title' => ''], ], [ - 'name' => 'IpProtocol', + 'name' => 'PeerAsn', 'in' => 'query', - 'schema' => [ - 'description' => 'The protocol of the packets that are forwarded by the port. Valid values:'."\n" - ."\n" - .'* **TCP**: TCP'."\n" - .'* **UDP**'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'TCP', - ], + 'schema' => ['description' => 'The ASN of the gateway device in the data center.'."\n", 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '1****', 'title' => ''], ], [ - 'name' => 'FullNatEntryName', + 'name' => 'AuthKey', 'in' => 'query', - 'schema' => [ - 'description' => 'The new name of the FULLNAT entry.'."\n" - ."\n" - .'The name must be 2 to 128 characters in length. It must start with a letter but cannot start with `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'modify', - ], + 'schema' => ['description' => 'The authentication key of the BGP group.'."\n", 'type' => 'string', 'required' => false, 'example' => '!PWZ2****', 'title' => ''], ], [ - 'name' => 'FullNatEntryDescription', + 'name' => 'IsFakeAsn', 'in' => 'query', - 'schema' => [ - 'description' => 'The new description of the FULLNAT entry.'."\n" - ."\n" - .'You can leave this parameter empty or enter a description. If you enter a description, the description must be 2 to 256 characters in length and cannot start with `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'abcd', - ], + 'schema' => ['description' => 'Specifies whether to use a fake AS number. Valid values:'."\n" + ."\n" + .'* **false** (default)'."\n" + .'* **true**'."\n" + ."\n" + .'> A router that runs BGP typically belongs to only one AS. If you need to replace an AS with a new one, but you cannot immediately modify BGP configurations due to business requirements, you can specify a fake AS number to establish a connection with the local end. This ensures service continuity in scenarios such as AS migration or AS merging.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false', 'default' => 'true', 'title' => ''], ], [ - 'name' => 'DryRun', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values:'."\n" - ."\n" - .'* **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.'."\n" - .'* **false**: 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.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'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.'."\n" + ."\n" + .'> 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.'."\n", 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-426655440000', 'title' => ''], ], [ - 'name' => 'RegionId', + 'name' => 'RouteQuota', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the Virtual Private Cloud (VPC) NAT gateway to which the FULLNAT entry to be modified belongs.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'eu-central-1', - ], + 'schema' => ['description' => 'The maximum number of routes supported by a BGP peer. Default value: **110**.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '110', 'title' => ''], ], [ - 'name' => 'AccessDomain', + 'name' => 'ClearAuthKey', 'in' => 'query', - 'schema' => [ - 'description' => 'The backend domain name of the FULLNAT address translation that needs to be modified.', - 'type' => 'string', - 'required' => false, - 'example' => 'xxx.com', - ], + 'schema' => ['description' => 'Specifies whether to clear the secret key. Valid values:'."\n" + ."\n" + .'* **true**'."\n" + .'* **false** (default)'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false', 'default' => 'false', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'Schema of Response', 'description' => 'The request ID.'."\n", 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '2315DEB7-5E92-423A-91F7-4C1EC9AD97C3', - ], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '8C3C6D7C-A1CE-4FD8-BC57-DC493A55F76F', 'title' => ''], ], + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'ResourceNotFound.NetworkInterfaceId', - 'errorMessage' => 'The specified resource is not found.', - ], - [ - 'errorCode' => 'ResourceAlreadyExist.FullNatEntry', - 'errorMessage' => 'The specified resource of %s is already exist.', - ], - [ - 'errorCode' => 'IncorrectStatus.NatIp', - 'errorMessage' => 'The status of %s [%s] is incorrect.', - ], - [ - 'errorCode' => 'UnsupportedFeature.PrivateLinkMode', - 'errorMessage' => 'The feature of %s is not supported.', - ], - [ - 'errorCode' => 'DependencyViolation.PrivateLinkMode', - 'errorMessage' => 'The specified resource of %s depends on %s, so the operation cannot be completed.', - ], - [ - 'errorCode' => 'IllegalParam.AccessDomain', - 'errorMessage' => 'The request parameter AccessDomain is illegal.', - ], - [ - 'errorCode' => 'ExclusiveParam.AccessIpAndAccessDomain', - 'errorMessage' => 'The specified AccessIp and AccessDomain are mutually exclusive.', - ], - [ - 'errorCode' => 'InstanceUnsupported.FullNatDomain', - 'errorMessage' => 'The current instance does not support the configuration of the FullNat rule domain name.', - ], - [ - 'errorCode' => 'ZoneUnsupported.FullNatDomain', - 'errorMessage' => 'The current zone does not support the configuration of the FullNat rule domain name.', - ], + ['errorCode' => 'QuotaExceeded.Bgp', 'errorMessage' => 'bgp peer count per vbr quota exceed.', 'description' => 'The number of BGP peers in the VBR has reached the upper limit.'], + ['errorCode' => 'QuotaExceeded.Nqa', 'errorMessage' => 'nqa count per vbr quota exceed.', 'description' => ''], + ['errorCode' => 'QuotaExceeded.BgpNetwork', 'errorMessage' => 'bgp network count per vbr quota exceed.', 'description' => ''], + ['errorCode' => 'InvalidPeerIpAddress', 'errorMessage' => 'multi pconn peer ip can not be null.', 'description' => ''], + ['errorCode' => 'InvalidVbrNetwork', 'errorMessage' => 'vbr netowrk not exists', 'description' => ''], + ['errorCode' => 'InvalidBgpGroup', 'errorMessage' => 'bgp group not exists', 'description' => ''], + ['errorCode' => 'InvalidBgpName.Malformed', 'errorMessage' => 'Specified Bgp Group name is not valid.', 'description' => ''], + ['errorCode' => 'InvalidBgpDiscription.Malformed', 'errorMessage' => 'Specified Bgp Group description is not valid.', 'description' => ''], + ['errorCode' => 'InvalidBgpAuthkey.Malformed', 'errorMessage' => 'Specified Bgp Group authkey is not valid.', 'description' => ''], + ['errorCode' => 'InvalidIP.Malformed', 'errorMessage' => 'Ip malformed.', 'description' => ''], + ['errorCode' => 'InvalidPeerAsn.Malformed', 'errorMessage' => 'invalid peer asn cannot equals aliyun asn:45104', 'description' => ''], + ['errorCode' => 'InvalidParams.NotNull', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'InvalidBgpGroup.LocalAsnInvalid', 'errorMessage' => 'The specified BgpGroup LocalAsn is invalid, only support 64512 to 65534 or 4200000000 to 4294967294, and cannot be 65025.', 'description' => ''], + ['errorCode' => 'InvalidParams.NotFound', 'errorMessage' => 'instance not found', 'description' => ''], + ['errorCode' => 'InvalidParams.AlreadyExists', 'errorMessage' => 'bgp network already exists', 'description' => 'The BGP network already exists.'], + ['errorCode' => 'InvalidStatus.CannotOperate', 'errorMessage' => 'invalid status cannot operate', 'description' => ''], + ['errorCode' => 'InvalidParams.PeerIpAddressMustPointOut', 'errorMessage' => 'vbr has 0 or more than 1 subif ,point out peerIpAddress.', 'description' => 'You must set the PeerIpAddress parameter.'], + ['errorCode' => 'InvalidParams.PeerIpAddressInUse', 'errorMessage' => 'peer ip address in use ,cannot create bgp peer.', 'description' => 'The peer IP address is being used. Therefore, you cannot use it to create a BGP peer.'], + ['errorCode' => 'IllegalParam.PeerAsn', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'IllegalParam.LocalAsn', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'OperationFailed.PconnTrafficNotEnable', 'errorMessage' => 'The operation is failed because of PconnTrafficNotEnable.', 'description' => 'Billing for outbound data transfer is disabled.'], + ['errorCode' => 'OperationUnsupport', 'errorMessage' => 'Operation is unsupport, not in vbr support custom local asn white list.', 'description' => 'The operation is not supported.'], + ['errorCode' => 'OperationFailed.ClearAuthKeyForbidden', 'errorMessage' => 'The specific auth key is not empty.', 'description' => 'The specified key is not empty and cannot be cleared.'], + ['errorCode' => 'IllegalParam.RouteLimit', 'errorMessage' => 'The operation is failed because of bgp group max route entry num quota exceed.', 'description' => 'The number of routes that can be received by each BGP peer in the BGP group exceeds the upper limit.'], + ['errorCode' => 'OperationDenied.VbrAttachEcrInMiddleStatus', 'errorMessage' => 'The operation is not allowed because of VBR attach or detach ECR in middle status.', 'description' => 'The current operation cannot be performed because the VBR is in the process of loading or unloading the leased line gateway. Please wait a moment and try again.'], + ['errorCode' => 'OperationUnsupported.VBRAttachedECR', 'errorMessage' => 'VBR already attached to ECR, please delete it from ECR.', 'description' => 'The VBR has been bound to ECR. Delete the VBR from ECR and try again.'], + ['errorCode' => 'OperationFailed.ResourceLockedBySystem', 'errorMessage' => 'The specified resource is locked by system.', 'description' => 'The operating resource is locked by the system and cannot be operated temporarily.'], + ], + 404 => [ + ['errorCode' => 'InvalidRegionId.NotFound', 'errorMessage' => 'Specified value of "regionId" is not supported.', 'description' => ''], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"2315DEB7-5E92-423A-91F7-4C1EC9AD97C3\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 2315DEB7-5E92-423A-91F7-4C1EC9AD97C3\\n","errorExample":""}]', - 'title' => 'ModifyFullNatEntryAttribute', - 'description' => '## [](#)'."\n" - ."\n" - .'* **ModifyFullNatEntryAttribute** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call the [ListFullNatEntries](~~348779~~) operation to query the status of a FULLNAT entry.'."\n" - ."\n" - .' * **Modifying**: indicates that the system is modifying the FULLNAT entry. You can query the FULLNAT entry, but cannot perform other operations.'."\n" - .' * **Available**: indicates that the FULLNAT entry is modified.'."\n" - ."\n" - .'* You cannot repeatedly call the **ModifyFullNatEntryAttribute** operation to modify a FULLNAT entry within the specified period of time.'."\n", - 'translator' => 'machine', - ], - 'ListFullNatEntries' => [ - 'summary' => 'Queries FULLNAT entries.', - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'http', - 'https', + 'title' => 'ModifyBgpGroupAttribute', + 'summary' => 'Modifies the configuration of a Border Gateway Protocol (BGP) group.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2024-06-19T02:32:26.000Z', 'description' => 'Error codes changed, Response parameters changed'], + ['createdAt' => '2024-06-13T08:13:19.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2022-11-07T04:10:41.000Z', 'description' => 'Error codes changed, Request parameters changed'], + ['createdAt' => '2021-11-17T03:03:07.000Z', 'description' => 'Error codes changed, Request parameters changed'], ], + 'ramActions' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"8C3C6D7C-A1CE-4FD8-BC57-DC493A55F76F\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 8C3C6D7C-A1CE-4FD8-BC57-DC493A55F76F\\n","errorExample":""}]', + 'operationType' => 'readAndWrite', + ], + 'ModifyBgpPeerAttribute' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'readAndWrite', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'get', - 'riskType' => 'none', - 'chargeType' => 'free', - ], + 'systemTags' => ['operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ - 'name' => 'ClientToken', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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.'."\n" - ."\n" - .'> 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.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3FF3898', - ], + 'schema' => ['description' => 'The region ID of the BGP group to which the BGP peer that you want to modify belongs.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-shanghai', 'title' => ''], ], [ - 'name' => 'FullNatTableId', + 'name' => 'BgpPeerId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the FULLNAT table to which the FULLNAT entries to be queried belong.'."\n" - ."\n" - .'> You must specify at least one of **FullNatTableId** and **NatGatewayId**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'fulltb-gw88z7hhlv43rmb26****', - ], + 'schema' => ['description' => 'The ID of the BGP peer that you want to modify.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'bgp-m5eoyp2mwegk8ce9v****', 'title' => ''], ], [ - 'name' => 'FullNatEntryId', + 'name' => 'BgpGroupId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the FULLNAT entry that you want to query.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'fullnat-gw8fz23jezpbblf1j****', - ], + 'schema' => ['description' => 'The ID of the BGP group to which the BGP peer that you want to modify belongs.'."\n", 'type' => 'string', 'required' => false, 'example' => 'bgpg-m5eo12jxuw2hc0uqq****', 'title' => ''], ], [ - 'name' => 'FullNatEntryNames', + 'name' => 'PeerIpAddress', 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => 'The name of the FULLNAT entry that you want to query. You can specify at most 20 names.'."\n" - ."\n" - .'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.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The name of the FULLNAT entry that you want to query. You can specify at most 20 names.'."\n" - ."\n" - .'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.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'test', - ], - 'required' => false, - 'maxItems' => 10, - ], + 'schema' => ['description' => 'The IP address of the BGP peer that you want to modify.'."\n", 'type' => 'string', 'required' => false, 'example' => '116.62.XX.XX', 'title' => ''], ], [ - 'name' => 'NetworkInterfaceIds', + 'name' => 'EnableBfd', 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => 'The ID of the elastic network interface (ENI) that you want to query.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The ID of the ENI that you want to query. You can specify up to 20 ENIs.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'eni-gw80wedm8pq0tpr2****', - ], - 'required' => false, - 'maxItems' => 10, - ], + 'schema' => ['description' => 'Specifies whether to enable the Bidirectional Forwarding Detection (BFD) feature. Valid values:'."\n" + ."\n" + .'* **true**'."\n" + .'* **false** (default)'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], ], [ - 'name' => 'NextToken', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The pagination token that is used in the next request to retrieve a new page of results. Valid values:'."\n" - ."\n" - .'* You do not need to specify this parameter for the first request.'."\n" - .'* You must specify the token that is obtained from the previous query as the value of the **NextToken** parameter.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'caeba0bbb2be03f84eb48b699f0a4883', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'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 and cannot exceed 64 characters in length.'."\n" + ."\n" + .'> 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.'."\n", 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-426655440000', 'title' => ''], ], [ - 'name' => 'MaxResults', + 'name' => 'BfdMultiHop', 'in' => 'query', + 'schema' => ['description' => 'The BFD hop count. Valid values: **1** to **255**.'."\n" + ."\n" + .'This parameter is required only if you enable BFD. The parameter specifies the maximum number of network devices that a packet can traverse from the source to the destination. Set a value based on your network topology.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '3', 'title' => ''], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => 'The number of entries per page. Valid values: **1** to **100**. Default value: **20**.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '20', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => 'D4B7649A-61BB-4C64-A586-1DFF1EDA6A42', 'title' => ''], + ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'IllegalParam.IpAddress', 'errorMessage' => 'The specified IpAddress is illegal.', 'description' => 'The specified IpAddress is illegal'], + ['errorCode' => 'InvalidAccessDeviceId.NotFound', 'errorMessage' => 'There is no Access_Device_Id in our records', 'description' => ''], + ['errorCode' => 'QuotaExceeded.BfdSession', 'errorMessage' => 'Your Bfd Session number reaches the upper limit.', 'description' => ''], + ['errorCode' => 'MissingParam.BgpPeerId', 'errorMessage' => 'The parameter BgpPeerId is mandatory.', 'description' => ''], + ['errorCode' => 'InvalidBgpPeer.NotFound', 'errorMessage' => 'The specified BgpPeerId does not exit in our records.', 'description' => ''], + ['errorCode' => 'InvalidRegionId.NotFound', 'errorMessage' => 'The specified RegionId does not exist in our records.', 'description' => 'The specified region ID does not exist.'], + ['errorCode' => 'IncorrectStatus.BgpPeer', 'errorMessage' => 'Invalid BgpPeer status cannot operate.', 'description' => 'The status of the BGP peer does not support this operation.'], + ['errorCode' => 'MissingParam.EnableBfd', 'errorMessage' => 'The parameter EnableBfd is missing.', 'description' => ''], + ['errorCode' => 'IllegalParam.BfdMultiHop', 'errorMessage' => 'BfdMultiHop is illegal.', 'description' => ''], + ['errorCode' => 'OperationFailed.PconnTrafficNotEnable', 'errorMessage' => 'The operation is failed because of PconnTrafficNotEnable.', 'description' => 'Billing for outbound data transfer is disabled.'], + ['errorCode' => 'DuplicatedParam.PeerIpAddress', 'errorMessage' => 'The param of PeerIpAddress is duplicated.', 'description' => 'Duplicate IP addresses of BGP peers exist.'], + ['errorCode' => 'OperationFailed.ResourceLockedBySystem', 'errorMessage' => 'The specified resource is locked by system.', 'description' => 'The operating resource is locked by the system and cannot be operated temporarily.'], + ], + 404 => [ + ['errorCode' => 'InvalidBgpPeerId.NotFound', 'errorMessage' => 'The specified BgpPeerId does not exit in our records.', 'description' => ''], + ['errorCode' => 'IncorretStatus.BgpPeer', 'errorMessage' => 'The specified BgpPeer status is not stable, can not operate.', 'description' => ''], + ], + 500 => [ + ['errorCode' => 'Internal.Error', 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', 'description' => ''], + ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'ModifyBgpPeerAttribute', + 'summary' => 'Modifies the configuration of a BGP peer.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2024-01-04T01:43:50.000Z', 'description' => 'Error codes changed'], + ], + 'ramActions' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"D4B7649A-61BB-4C64-A586-1DFF1EDA6A42\\"\\n}","errorExample":""},{"type":"xml","example":"\\n D4B7649A-61BB-4C64-A586-1DFF1EDA6A42\\n","errorExample":""}]', + ], + 'ModifyCommonBandwidthPackageAttribute' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the virtual private cloud (VPC) NAT gateway to which the FULLNAT entries to be queried belong.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'eu-central-1', - ], + 'AK' => [], ], + ], + 'operationType' => 'readAndWrite', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', 'autoTest' => true, 'tenantRelevance' => 'tenant'], + 'parameters' => [ [ - 'name' => 'IpProtocol', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The protocol of the packets that are forwarded by the port. Valid values:'."\n" - ."\n" - .'* **TCP**'."\n" - .'* **UDP**'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'TCP', - ], + 'schema' => ['description' => 'The ID of the region where the EIP bandwidth plan is created.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'NatGatewayId', + 'name' => 'BandwidthPackageId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the NAT gateway.'."\n" - ."\n" - .'> You must specify at least one of **FullNatTableId** and **NatGatewayId**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'ngw-bp1uewa15k4iy5770****', - ], + 'schema' => ['description' => 'The ID of the EIP bandwidth plan.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cbwp-2ze2ic1xd2qeqk145****', 'title' => ''], ], [ - 'name' => 'NatIp', + 'name' => 'Name', 'in' => 'query', - 'schema' => [ - 'description' => 'The NAT IP address that provides address translation in FULLNAT entries.', - 'type' => 'string', - 'required' => false, - 'example' => '10.0.XX.XX', - ], + 'schema' => ['description' => 'The name of the EIP bandwidth plan. The name must be 2 to 128 characters in length and can contain letters, digits, periods (.), underscores (\\_), and hyphens (-). It must start with a letter. It cannot start with `http://` or `https://`.'."\n", 'type' => 'string', 'required' => false, 'example' => 'test123', 'title' => ''], ], [ - 'name' => 'NatIpPort', + 'name' => 'Description', 'in' => 'query', - 'schema' => [ - 'description' => 'The frontend port to be modified in the mapping of FULLNAT port. Valid values: **1** to **65535**.', - 'type' => 'string', - 'required' => false, - 'example' => '443', - ], + 'schema' => ['description' => 'The description of the EIP bandwidth plan. The description must be 2 to 256 characters in length. It must start with a letter but cannot start with `http://` or `https://`.'."\n", 'type' => 'string', 'required' => false, 'example' => '描述', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'The request ID.'."\n", 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => 'F03E41F6-1A74-311F-8D98-124EEE9F37B8', - ], - 'NatGatewayId' => [ - 'description' => 'The ID of the VPC NAT gateway.'."\n", - 'type' => 'string', - 'example' => 'ngw-gw8054kn57y3hq3bv****', - ], - 'FullNatTableId' => [ - 'description' => 'The ID of the FULLNAT table to which the queried FULLNAT entries belong.'."\n", - 'type' => 'string', - 'example' => 'fullnat-gw8fz23jezpbblf1j****', - ], - 'TotalCount' => [ - 'description' => 'The number of FULLNAT entries returned.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1', - ], - 'NextToken' => [ - 'description' => 'Indicates whether the token for the next query exists. Valid values:'."\n" - ."\n" - .'* If the value of **NextToken** is empty, no next queries are sent.'."\n" - .'* If the value of **NextToken** is returned, the value indicates the token that is used for the next query.'."\n", - 'type' => 'string', - 'example' => 'caeba0bbb2be03f84eb48b699f0a4883', - ], - 'MaxResults' => [ - 'description' => 'The maximum number of entries returned.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1', - ], - 'FullNatEntries' => [ - 'description' => 'The information about the FULLNAT entries that are queried.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'NatIp' => [ - 'title' => 'DNAT条目中提供公网访问的公网IP地址。', - 'description' => 'The NAT IP address that is used for address translation in FULLNAT entries.'."\n", - 'type' => 'string', - 'example' => '192.168.XX.XX', - ], - 'NatIpPort' => [ - 'title' => 'DNAT条目中进行端口转发的外部端口,取值范围:1~65535。', - 'description' => 'The frontend port that is used for port mapping in FULLNAT entries. Valid values: **1** to **65535**.'."\n", - 'type' => 'string', - 'example' => '80', - ], - 'AccessIp' => [ - 'title' => '通过DNAT条目进行公网通信的ECS实例的私网IP地址。', - 'description' => 'The backend IP address that is used for FULLNAT address translation in FULLNAT entries.'."\n", - 'type' => 'string', - 'example' => '192.168.XX.XX', - ], - 'AccessPort' => [ - 'title' => 'DNAT条目中进行端口转发的内部端口,取值范围:1-65535。', - 'description' => 'The backend port that is used for port mapping in FULLNAT entries. Valid values: **1** to **65535**.'."\n", - 'type' => 'string', - 'example' => '80', - ], - 'IpProtocol' => [ - 'title' => '协议类型,取值: • TCP:转发TCP协议的报文。 • UDP:转发UDP协议的报文。', - 'description' => 'The protocol of the packets that are forwarded. Valid values:'."\n" - ."\n" - .'* **TCP**'."\n" - .'* **UDP**'."\n", - 'type' => 'string', - 'example' => 'TCP', - ], - 'NetworkInterfaceId' => [ - 'title' => '当前VpcNat作为服务资源所加入的eni', - 'description' => 'The ID of the elastic network interface (ENI).'."\n", - 'type' => 'string', - 'example' => 'eni-gw80wedm8pq0tpr2****', - ], - 'NetworkInterfaceType' => [ - 'title' => 'ENI类型,目前仅支持Endpoint', - 'description' => 'The type of the ENI. The value is set to **Endpoint**, which indicates a reverse endpoint.'."\n", - 'type' => 'string', - 'example' => 'Endpoint', - ], - 'FullNatEntryName' => [ - 'title' => 'FULLNAT规则的名称。 长度为2~128个字符,必须以大小写字母或中文开头,但不能以http://或https://开头。', - 'description' => 'The name of the FULLNAT entry.'."\n" - ."\n" - .'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.'."\n", - 'type' => 'string', - 'example' => 'test', - ], - 'FullNatEntryDescription' => [ - 'description' => 'The description of the FULLNAT entry.'."\n" - ."\n" - .'The name must be 2 to 128 characters in length. It must start with a letter but cannot start with `http://` or `https://`.'."\n", - 'type' => 'string', - 'example' => 'abc', - ], - 'CreationTime' => [ - 'description' => 'The time when the FULLNAT entry was created.'."\n", - 'type' => 'string', - 'example' => '2021-10-27T02:44:40Z', - ], - 'FullNatEntryId' => [ - 'description' => 'The ID of the FULLNAT entry.'."\n", - 'type' => 'string', - 'example' => 'fullnat-gw8fz23jezpbblf1j****', - ], - 'FullNatEntryStatus' => [ - 'description' => 'The status of the FULLNAT entry. Valid values:'."\n" - ."\n" - .'* **Pending**'."\n" - .'* **Available**'."\n" - .'* **Deleting**'."\n" - .'* **Deleted**'."\n", - 'type' => 'string', - 'example' => 'Available', - ], - 'FullNatTableId' => [ - 'description' => 'The ID of the FULLNAT table to which the FULLNAT entry belongs.'."\n", - 'type' => 'string', - 'example' => 'fulltb-gw88z7hhlv43rmb26****', - ], - 'AccessDomain' => [ - 'description' => 'The backend domain name for FULLNAT address translation in a FULLNAT entry.', - 'type' => 'string', - 'example' => 'xxx.com', - ], - 'DomainResolve' => [ - 'description' => 'The IP resolved from the backend domain name for address translation in the FULLNAT entry.', - 'type' => 'string', - 'example' => '192.168.XX.XX', - ], - ], - ], - ], + 'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => 'B450CAD8-50BC-4506-ADA7-35C6CE63E96B', 'title' => ''], ], + 'description' => 'The response.', + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'ResourceNotFound.FullNatTableId', - 'errorMessage' => 'The specified resource of %s is not found.', - ], - [ - 'errorCode' => 'MissingParam.FullnatTableIdOrNatGatewayId', - 'errorMessage' => 'FullnatTableId and natGatewayId can not both be null', - ], - [ - 'errorCode' => 'ResourceNotFound.FullNatTable', - 'errorMessage' => 'The NAT gateway has no full nat table.', - ], - [ - 'errorCode' => 'NATGW_NOT_EXIST', - 'errorMessage' => 'The specified NAT gateway does not exist.', - ], + ['errorCode' => 'InvalidParameter.Name.Malformed', 'errorMessage' => 'The specified Name is not valid.', 'description' => ''], + ['errorCode' => 'InvalidParameter.Description.Malformed', 'errorMessage' => 'The specified Description is not valid.', 'description' => ''], + ['errorCode' => 'InvalidBandwidthPackageId.NotFound', 'errorMessage' => 'The specified BandwidthPackageId not exist.', 'description' => ''], + ], + 404 => [ + ['errorCode' => 'InvalidRegionId.NotFound', 'errorMessage' => 'The specified RegionId does not exist in our records.', 'description' => ''], + ['errorCode' => 'InvalidBandwidthPackageId.NotFound', 'errorMessage' => 'The specified bandwidthPackageId does not exist in our records.', 'description' => ''], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"F03E41F6-1A74-311F-8D98-124EEE9F37B8\\",\\n \\"NatGatewayId\\": \\"ngw-gw8054kn57y3hq3bv****\\",\\n \\"FullNatTableId\\": \\"fullnat-gw8fz23jezpbblf1j****\\",\\n \\"TotalCount\\": 1,\\n \\"NextToken\\": \\"caeba0bbb2be03f84eb48b699f0a4883\\",\\n \\"MaxResults\\": 1,\\n \\"FullNatEntries\\": [\\n {\\n \\"NatIp\\": \\"192.168.XX.XX\\",\\n \\"NatIpPort\\": \\"80\\",\\n \\"AccessIp\\": \\"192.168.XX.XX\\",\\n \\"AccessPort\\": \\"80\\",\\n \\"IpProtocol\\": \\"TCP\\",\\n \\"NetworkInterfaceId\\": \\"eni-gw80wedm8pq0tpr2****\\",\\n \\"NetworkInterfaceType\\": \\"Endpoint\\",\\n \\"FullNatEntryName\\": \\"test\\",\\n \\"FullNatEntryDescription\\": \\"abc\\",\\n \\"CreationTime\\": \\"2021-10-27T02:44:40Z\\",\\n \\"FullNatEntryId\\": \\"fullnat-gw8fz23jezpbblf1j****\\",\\n \\"FullNatEntryStatus\\": \\"Available\\",\\n \\"FullNatTableId\\": \\"fulltb-gw88z7hhlv43rmb26****\\",\\n \\"AccessDomain\\": \\"xxx.com\\",\\n \\"DomainResolve\\": \\"192.168.XX.XX\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\n F03E41F6-1A74-311F-8D98-124EEE9F37B8\\n ngw-gw8054kn57y3hq3bv****\\n fullnat-gw8fz23jezpbblf1j****\\n 1\\n caeba0bbb2be03f84eb48b699f0a4883\\n 1\\n \\n 192.168.XX.XX\\n 80\\n 192.168.XX.XX\\n 80\\n TCP\\n eni-gw80wedm8pq0tpr2****\\n Endpoint\\n test\\n abc\\n 2021-10-27T02:44:40Z\\n fullnat-gw8fz23jezpbblf1j****\\n Available\\n fulltb-gw88z7hhlv43rmb26****\\n \\n","errorExample":""}]', - 'title' => 'ListFullNatEntries', - 'translator' => 'machine', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'ModifyCommonBandwidthPackageAttribute', + 'summary' => 'Modifies the name and description of an Internet Shared Bandwidth instance.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"B450CAD8-50BC-4506-ADA7-35C6CE63E96B\\"\\n}","errorExample":"\\n\\n B450CAD8-50BC-4506-ADA7-35C6CE63E96B\\n"},{"type":"xml","example":"\\r\\n\\r\\n B450CAD8-50BC-4506-ADA7-35C6CE63E96B\\r\\n","errorExample":"{\\n \\"RequestId\\":B450CAD8-50BC-4506-ADA7-35C6CE63E96B6\\"\\n}"}]', ], - 'CreateNatIp' => [ - 'summary' => 'Creates a NAT IP address.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'ModifyCommonBandwidthPackageIpBandwidth' => [ + 'summary' => 'Sets the maximum bandwidth of an EIP that is associated with an Internet Shared Bandwidth instance.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -60606,877 +47091,565 @@ ], 'operationType' => 'readAndWrite', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'create', - 'riskType' => 'none', - 'chargeType' => 'free', - 'tenantRelevance' => 'tenant', - ], + 'systemTags' => ['operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', 'autoTest' => true, 'tenantRelevance' => 'tenant'], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the NAT gateway to which the NAT IP address that you want to create belongs.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent list of regions.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'eu-central-1', - ], + 'schema' => ['description' => 'The region ID of the Internet Shared Bandwidth instance. You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'NatGatewayId', + 'name' => 'BandwidthPackageId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the Virtual Private Cloud (VPC) NAT gateway for which you want to create the NAT IP address.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'ngw-gw8v16wgvtq26vh59****', - ], + 'schema' => ['description' => 'The ID of the Internet Shared Bandwidth instance.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cbwp-2zep6hw5d6y8exscd****', 'title' => ''], ], [ - 'name' => 'NatIpName', + 'name' => 'EipId', 'in' => 'query', - 'schema' => [ - 'description' => 'The name of the NAT IP address.'."\n" - ."\n" - .'The name must be 2 to 128 characters in length, and can contain letters, digits, periods (.), underscores (\\_), and hyphens (-). It must start with a letter. The name must start with a letter and cannot start with `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'docRequired' => false, - 'example' => 'newnatip', - ], + 'schema' => ['description' => 'The ID of the EIP that is associated with the Internet Shared Bandwidth instance.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'eip-2zewysoansu0svfbg****', 'title' => ''], ], [ - 'name' => 'NatIpDescription', + 'name' => 'Bandwidth', 'in' => 'query', - 'schema' => [ - 'description' => 'The description of the NAT IP address.'."\n" - ."\n" - .'The description must be 2 to 256 characters in length and start with a letter. The description cannot start with `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'docRequired' => false, - 'example' => 'test', - ], + 'schema' => ['description' => 'The maximum bandwidth for the EIP. This value cannot be larger than the maximum bandwidth of the Internet Shared Bandwidth instance. Unit: Mbit/s.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '500', 'title' => ''], ], - [ - 'name' => 'DryRun', - 'in' => 'query', + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values:'."\n" - ."\n" - .'* **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.'."\n" - .'* **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.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', + 'description' => 'The response parameters.'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '63D187BF-A30A-4DD6-B68D-FF182C96D8A2 ', 'title' => ''], + ], + 'title' => '', + 'example' => '', ], ], - [ - 'name' => 'ClientToken', - 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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.'."\n" - ."\n" - .'> 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.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3FF3898', - ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => '%s', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'OperationFailed.DistibuteLock', 'errorMessage' => 'Distibute lock fail.', 'description' => 'The operation is locked by another request;'], + ['errorCode' => 'Forbidden.FinancialLocked', 'errorMessage' => 'The ip business status is invalid.', 'description' => 'The error message returned because the instance has overdue payments.'], + ['errorCode' => 'InvalidEIPStatus.BizDisabled', 'errorMessage' => 'The EIP has been locked.', 'description' => 'The error message returned because the EIP is locked.'], ], - [ - 'name' => 'NatIpCidr', - 'in' => 'query', - 'schema' => [ - 'description' => 'The CIDR block to which the NAT IP address belongs.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => '192.168.0.0/24', - ], + 404 => [ + ['errorCode' => 'InvalidRegionId.NotFound', 'errorMessage' => 'The specified RegionId does not exist in our records.', 'description' => ''], + ['errorCode' => '%s', 'errorMessage' => '%s', 'description' => ''], ], + ], + 'staticInfo' => ['returnType' => 'asynchronous', 'callback' => 'Vpc::2016-04-28::DescribeEipAddresses', 'callbackInterval' => 3, 'maxCallbackTimes' => 10], + 'title' => 'ModifyCommonBandwidthPackageIpBandwidth', + 'description' => 'You can call the **ModifyCommonBandwidthPackageIpBandwidth** operation to set the maximum bandwidth of an EIP that is associated with an Internet Shared Bandwidth instance. This prevents an EIP from exhausting the bandwidth resources of an Internet Shared Bandwidth instance.'."\n" + ."\n" + .'For example, two EIPs are associated with an Internet Shared Bandwidth instance whose maximum bandwidth is 800 Mbit/s. In this case, you can set the maximum bandwidth of one EIP to 500 Mbit/s and that of the other EIP to 400 Mbit/s. After you set the maximum bandwidth values, the first EIP cannot consume bandwidth higher than 500 Mbit/s. The second EIP cannot consume bandwidth higher than 400 Mbit/s.'."\n" + ."\n" + .'When you call this operation, take note of the following items:'."\n" + ."\n" + .'* This operation is valid only for EIPs that are associated with Elastic Compute Service (ECS) instances. This operation is invalid for EIPs that are associated with Server Load Balancer (SLB) instances, NAT gateways, secondary elastic network interfaces (ENIs), or high-availability virtual IP addresses (HAVIPs).'."\n" + .'* This operation is in public preview. You can call this operation to set the maximum bandwidth of EIPs only if the EIPs are associated with an Internet Shared Bandwidth instance. The feature is not supported in the console.'."\n" + .'* You cannot repeatedly call this operation to set the maximum bandwidth of an EIP within the specified period of time.'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2022-11-29T10:25:34.000Z', 'description' => 'Error codes changed'], + ], + 'ramActions' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"63D187BF-A30A-4DD6-B68D-FF182C96D8A2\\\\t\\"\\n}","errorExample":""},{"type":"xml","example":"\\r\\n\\t63D187BF-A30A-4DD6-B68D-FF182C96D8A2\\r\\n","errorExample":""}]', + ], + 'ModifyCommonBandwidthPackageSpec' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'NatIp', - 'in' => 'query', - 'allowEmptyValue' => false, - 'schema' => [ - 'description' => 'The NAT IP address that you want to create.'."\n" - ."\n" - .'If you do not specify an IP address, the system randomly allocates an IP address from the specified CIDR block.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '192.168.0.34', - ], + 'AK' => [], ], + ], + 'operationType' => 'readAndWrite', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', 'autoTest' => true, 'tenantRelevance' => 'tenant'], + 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the NAT gateway to which the NAT IP address that you want to create belongs.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent list of regions.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'eu-central-1', - ], + 'schema' => ['description' => 'The region ID of the Internet Shared Bandwidth instance. '."\n" + ."\n" + .'You can call [DescribeRegions](~~36063~~) to query the region ID.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'Ipv4Prefix', + 'name' => 'BandwidthPackageId', 'in' => 'query', - 'allowEmptyValue' => false, - 'schema' => [ - 'title' => '', - 'description' => 'The created IP prefix address segment must be within the reserved network segment of the switch where the NAT is located, and the reserved network segment cannot be occupied. The IP prefix mask must be /28.', - 'type' => 'string', - 'required' => false, - 'example' => 'null', - ], + 'schema' => ['description' => 'The ID of the Internet Shared Bandwidth instance.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cbwp-2ze2ic1xd2qeqk145****', 'title' => ''], ], [ - 'name' => 'Ipv4PrefixCount', + 'name' => 'Bandwidth', 'in' => 'query', - 'allowEmptyValue' => false, - 'schema' => [ - 'description' => 'The number of automatically assigned IP prefixes. These are randomly allocated from the unassigned reserved segments of the switch where the NAT is located. Value range: 1 to 10.', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', - ], + 'schema' => ['description' => 'The peak bandwidth of the Internet Shared Bandwidth instance. Unit: Mbit/s. '."\n" + ."\n" + .''."\n" + ."\n" + .' - If the billing method of the Internet Shared Bandwidth instance is pay-by-bandwidth, the default value range of **Bandwidth** is **2** to **20000**.'."\n" + .'- If the billing method of the Internet Shared Bandwidth instance is pay-by-95th-percentile-bandwidth, the default value range of **Bandwidth** is **200** to **20000**.'."\n" + .'- If the billing method of the Internet Shared Bandwidth instance is pay-by-traffic, the default value range of **Bandwidth** is **1** to **2000**.'."\n" + ."\n" + .''."\n" + .'Valid values: **1** to **1000**.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '1000', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => 'The created NAT IP address.'."\n", + 'description' => 'The response parameters.', 'type' => 'object', 'properties' => [ - 'NatIp' => [ - 'description' => 'The NAT IP address.'."\n", - 'type' => 'string', - 'example' => '192.168.0.34', - ], - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => 'E9AD97A0-5338-43F8-8A80-5E274CCBA11B', - ], - 'NatIpId' => [ - 'description' => 'The ID of the NAT IP address.'."\n", - 'type' => 'string', - 'example' => 'vpcnatip-gw8y7q3cpk3fggs8****', - ], - 'Ipv4Prefix' => [ - 'title' => '旧接口返回的Ipv4Prefix,已经废弃。', - 'description' => 'The IPv4Prefix returned by the previous API is obsolete.'."\n", - 'type' => 'string', - 'example' => '""', - ], - 'NatIps' => [ - 'title' => '创建NatIp后返回的NatIp参数,当使用IPv4Prefix创建NatIp后将返回所有的NatIp信息,当创建单个NatIp时也推荐使用此参数获取NatIp信息。', - 'description' => 'The NatIp parameter that is returned after you create a NatIp. If you use IPv4Prefix to create a NatIp, the information about all NatIp is returned. We recommend that you use this parameter to obtain the information about a NatIp when you create a NatIp.'."\n", - 'type' => 'array', - 'items' => [ - 'title' => '创建的Ipv4Preix时返回创建的NatIpList列表。', - 'description' => 'The list of created NatIpLists is returned when Ipv4Preix is created.'."\n", - 'type' => 'object', - 'properties' => [ - 'NatIp' => [ - 'title' => '创建的Ipv4Preix时返回创建的NatIpList列表的NatIp地址。', - 'description' => 'Returns the NatIp address of the created NatIpList list when Ipv4Preix is created.'."\n", - 'type' => 'string', - 'example' => '192.168.2.128', - ], - 'NatIpId' => [ - 'title' => '创建的Ipv4Preix时返回创建的NatIpList列表的NatIpId。', - 'description' => 'Returns the NatIpId of the created NatIpList list when Ipv4Preix is created.'."\n", - 'type' => 'string', - 'example' => 'vpcnatip-xxxxxxxx', - ], - 'Ipv4Prefix' => [ - 'title' => '创建的Ipv4Preix时返回创建的NatIpList列表的Ipv4Prefix。', - 'description' => 'The Ipv4Prefix of the created NatIpList list is returned when Ipv4Preix is created.'."\n", - 'type' => 'string', - 'example' => '192.168.1.128/28', - ], - ], - ], - ], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '7F129000-F929-4AF5-BE8D-BAE434C795306', 'title' => ''], ], + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'Mismatch.NatIpAndNatIpCidr', - 'errorMessage' => 'The %s and %s are mismatched.', - ], - [ - 'errorCode' => 'ResourceNotFound.NatGateway', - 'errorMessage' => 'The specified resource of %s is not found.', - ], - [ - 'errorCode' => 'ResourceNotFound.NatIpCidr', - 'errorMessage' => 'The specified resource of %s is not found.', - ], - [ - 'errorCode' => 'IncorrectStatus.NatGateway', - 'errorMessage' => '%The status of %s [%s] is incorrect.', - ], - [ - 'errorCode' => 'QuotaExceeded.NatIp', - 'errorMessage' => 'The quota of %s is exceeded, usage %s/%s.', - ], - [ - 'errorCode' => 'ResourceNotEnough.SwitchAvailableIps', - 'errorMessage' => 'The available private Ip number is not enough in your subnet.', - ], - [ - 'errorCode' => 'ResourceNotEnough.NatIp', - 'errorMessage' => 'The specified resource of NatIp is not enough.', - ], - [ - 'errorCode' => 'ResourceAlreadyExist.NatIp', - 'errorMessage' => 'The specified resource of NatIp has already exist.', - ], - [ - 'errorCode' => 'Mismatch.Ipv4PrefixAndNatIpCidr', - 'errorMessage' => 'The %s and %s are mismatched.', - ], - [ - 'errorCode' => 'Mismatch.Ipv4PrefixAndCidrReservations', - 'errorMessage' => 'The %s and %s are mismatched.', - ], - [ - 'errorCode' => 'ResourceAlreadyAssociated.Ipv4Prefix', - 'errorMessage' => '%s is already associated.', - ], - [ - 'errorCode' => 'ResourceNotEnough.Ipv4Prefix', - 'errorMessage' => 'The resource of %s is not enough.', - ], - [ - 'errorCode' => 'ResourceNotFound.Ipv4Prefix', - 'errorMessage' => 'The resource of s% is not found.', - ], - [ - 'errorCode' => 'ResourceAlreadyAssociated.NatIp', - 'errorMessage' => 'The resource of %s was already associated.', - ], - [ - 'errorCode' => 'ResourceNotFound.NatIp', - 'errorMessage' => 'The specified resource of %s is not found.', - ], - [ - 'errorCode' => 'IllegalParam.Ipv4Prefix', - 'errorMessage' => 'The param of %s is illegal, must be /28 network segment.', - ], - [ - 'errorCode' => 'ResourceAlreadyExist.Ipv4Prefix', - 'errorMessage' => 'The specified resource of %s is already exist.', - ], - [ - 'errorCode' => 'QuotaExceeded.Ipv4Prefix', - 'errorMessage' => 'The quota of %s is exceeded, usage %s/%s.', - ], - [ - 'errorCode' => 'OperationFailed.InstanceNotSupport', - 'errorMessage' => 'natgateway not support ipv4prefix.', - ], + ['errorCode' => 'ResourceNotEnough.Bandwidth', 'errorMessage' => 'The specified resource of Bandwidth is not enough.', 'description' => 'The specified resource of Bandwidth is insufficient.'], + ['errorCode' => 'InvalidParameter.Bandwidth', 'errorMessage' => 'The specified bandwidth is not valid.', 'description' => ''], + ['errorCode' => 'InvalidBandwidthPackageId.NotFound', 'errorMessage' => 'The specified BandwidthPackageId not exist.', 'description' => ''], + ['errorCode' => 'InvalidCommonBandwidthPackageId.NotFound', 'errorMessage' => 'The specified BandwidthPackageId is not found.', 'description' => ''], + ['errorCode' => 'IncorrectStatus.ResourceStatus', 'errorMessage' => 'Resource status is abnormal for renew.', 'description' => ''], + ['errorCode' => 'SYSTEM.SALE_VALIDATE_UNEXPECTED_ERROR', 'errorMessage' => 'You have arrears and do not meet the purchase conditions.', 'description' => ''], + ['errorCode' => 'OperationFailed.SyncOrderToSub', 'errorMessage' => 'SyncOrderToSub error.', 'description' => 'The operation failed.'], + ['errorCode' => 'OperationFailed.SaleValidate', 'errorMessage' => 'Validate sale condition with subArticle failed.', 'description' => 'Failed to validate the sales condition with a subproject.'], + ['errorCode' => 'OperationFailed.QueryCommodityInfo', 'errorMessage' => 'Operation failed because quey commodity info error.', 'description' => ''], + ['errorCode' => 'OperationFailed.QueryPrice', 'errorMessage' => 'Query price failed when create order.', 'description' => 'Failed to query the price when creating the order.'], + ['errorCode' => 'Forbidden.ChargeTypeIsPrepaid', 'errorMessage' => 'It\'s forbidden to change prepaid CBWP\'s bandwidth by API. It can be changed on Aliyun web console.', 'description' => ''], + ['errorCode' => 'IncorrectStatus.CbwpModifying', 'errorMessage' => 'Cbwp Modifying status is invalid.', 'description' => ''], ], 404 => [ - [ - 'errorCode' => 'InvalidRegionId.NotFound', - 'errorMessage' => 'The specified RegionId does not exist in our records.', - ], + ['errorCode' => 'InvalidRegionId.NotFound', 'errorMessage' => 'The specified RegionId does not exist in our records.', 'description' => ''], + ['errorCode' => 'InvalidBandwidthPackageId.NotFound', 'errorMessage' => 'The specified BandwidthPackageId does not exist in our records.', 'description' => ''], + ['errorCode' => 'InvalidBandwidth.ValueNotSupported', 'errorMessage' => 'The specified value of Bandwidth not supported.', 'description' => ''], + ['errorCode' => 'BandwidthPackage.FinancialLocked', 'errorMessage' => 'The specified BandwidthPackage has been Financial Lock.', 'description' => ''], + ], + 500 => [ + ['errorCode' => 'OrderError.BandwidthPackage', 'errorMessage' => 'The Account failed to create order.', 'description' => ''], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"NatIp\\": \\"192.168.0.34\\",\\n \\"RequestId\\": \\"E9AD97A0-5338-43F8-8A80-5E274CCBA11B\\",\\n \\"NatIpId\\": \\"vpcnatip-gw8y7q3cpk3fggs8****\\",\\n \\"Ipv4Prefix\\": \\"\\\\\\"\\\\\\"\\",\\n \\"NatIps\\": [\\n {\\n \\"NatIp\\": \\"192.168.2.128\\",\\n \\"NatIpId\\": \\"vpcnatip-xxxxxxxx\\",\\n \\"Ipv4Prefix\\": \\"192.168.1.128/28\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\n 192.168.0.34\\n E9AD97A0-5338-43F8-8A80-5E274CCBA11B\\n vpcnatip-gw8y7q3cpk3fggs8****\\n","errorExample":""}]', - 'title' => 'CreateNatIp', - 'description' => '## [](#)'."\n" - ."\n" - .'**CreateNatIp** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call the [ListNatIps](~~287000~~) operation to query the status of the task.'."\n" - ."\n" - .'* If a NAT IP address is in the **Creating** state, the NAT IP address is being created. In this case, you can only query the NAT IP address and cannot perform other operations.'."\n" - .'* If a NAT IP address is in the **Available** state, the NAT IP address is created.'."\n" - ."\n" - .'You cannot repeatedly call the **CreateNatIp** operation to create a NAT IP address within a specific period of time.'."\n", + 'staticInfo' => ['returnType' => 'asynchronous', 'callback' => 'Vpc::2016-04-28::DescribeCommonBandwidthPackages', 'callbackInterval' => 3, 'maxCallbackTimes' => 10], + 'title' => 'Modify the peak bandwidth of an internet shared bandwidth instance', + 'summary' => 'Calls the ModifyCommonBandwidthPackageSpec operation to modify the peak bandwidth of an Internet Shared Bandwidth instance.', + 'description' => 'Before you call this operation, take note of the following information:'."\n" + .'- **ModifyCommonBandwidthPackageSpec** is an asynchronous operation. After you send a request, the system returns a request ID, but the peak bandwidth of the Internet Shared Bandwidth instance has not been modified yet. The modification task is still running in the background. You can call [DescribeCommonBandwidthPackages](~~120309~~) to query the status of the Internet Shared Bandwidth instance.'."\n" + .' - If the Internet Shared Bandwidth instance is in the **Modifying** state, the peak bandwidth is being modified. In this state, you can only perform query operations and cannot perform other operations.'."\n" + .' - If the Internet Shared Bandwidth instance is in the **Available** state, the peak bandwidth has been modified.'."\n" + .'- **ModifyCommonBandwidthPackageSpec** does not support concurrent modifications to the peak bandwidth of the same Internet Shared Bandwidth instance.', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', - 'translator' => 'machine', - ], - 'DeleteNatIp' => [ - 'summary' => 'Deletes a NAT IP address.', - 'methods' => [ - 'post', - 'get', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2022-07-12T11:34:20.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2021-11-22T09:41:14.000Z', 'description' => 'Error codes changed'], ], - 'schemes' => [ - 'http', - 'https', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ModifyCommonBandwidthPackageSpec'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], + ], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:ModifyCommonBandwidthPackageSpec', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'BandwidthPackage', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:combandwidthpackage/{#BandwidthPackageId}'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"7F129000-F929-4AF5-BE8D-BAE434C795306\\"\\n}","type":"json"}]', + ], + 'ModifyCustomerGatewayAttribute' => [ + 'summary' => 'Modifies the configuration of a customer gateway by calling the ModifyCustomerGatewayAttribute operation.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'readAndWrite', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'delete', - 'riskType' => 'none', - 'chargeType' => 'free', - ], + 'systemTags' => ['operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the NAT gateway to which the NAT IP address that you want to delete belongs.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-qingdao', - ], - ], - [ - 'name' => 'NatIpId', - 'in' => 'query', - 'allowEmptyValue' => false, - 'schema' => [ - 'description' => 'The ID of the NAT IP address that you want to delete.'."\n", - 'type' => 'string', - 'required' => false, - 'docRequired' => true, - 'example' => 'vpcnatip-gw8y7q3cpk3fggs87****', - ], + 'schema' => ['description' => 'The region ID of the customer gateway. '."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query region IDs.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-shanghai', 'title' => ''], ], [ - 'name' => 'NatGatewayId', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the NAT gateway instance to which the IP prefix to be deleted belongs. Required when deleting an IP prefix.', - 'type' => 'string', - 'required' => false, - 'example' => 'ngw-gw8v16wgvtq26vh59****', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'You can use the client to generate the token, but you must make sure that the token is unique among different requests. The ClientToken value can contain only ASCII characters.'."\n" + ."\n" + .'> If you do not specify this parameter, the system automatically uses the **RequestId** of the API request as the **ClientToken**. The **RequestId** may differ for each API request.', 'type' => 'string', 'required' => false, 'example' => '02fb3da4-130e-11e9-8e44****', 'title' => ''], ], [ - 'name' => 'Ipv4Prefix', + 'name' => 'CustomerGatewayId', 'in' => 'query', - 'schema' => [ - 'description' => 'The IP prefix address to be deleted.', - 'type' => 'string', - 'required' => false, - 'example' => '192.168.0.0/28', - ], + 'schema' => ['description' => 'The instance ID of the customer gateway.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cgw-bp1pvpl9r9adju6l5****', 'title' => ''], ], [ - 'name' => 'DryRun', + 'name' => 'Name', 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values:'."\n" - ."\n" - .'* **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.'."\n" - .'* **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.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['description' => 'The name of the customer gateway. '."\n" + ."\n" + .'The name must be 1 to 100 characters in length and cannot start with `http://` or `https://`.', 'type' => 'string', 'required' => false, 'example' => 'nametest', 'title' => ''], ], [ - 'name' => 'ClientToken', + 'name' => 'Description', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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.'."\n" - ."\n" - .'> 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.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3FF3898', - ], + 'schema' => ['description' => 'The description of the customer gateway. '."\n" + ."\n" + .'The description must be 1 to 100 characters in length and cannot start with `http://` or `https://`.', 'type' => 'string', 'required' => false, 'example' => 'desctest', 'title' => ''], ], [ - 'name' => 'RegionId', + 'name' => 'AuthKey', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the NAT gateway to which the NAT IP address that you want to delete belongs.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-qingdao', - ], + 'schema' => ['description' => 'The authentication key of the BGP route routing protocol for the on-premises data center gateway device.'."\n" + ."\n" + .'The key must be 1 to 64 characters in length and can contain only ASCII characters. It cannot contain spaces, Chinese characters, or half-width question marks (?).', 'type' => 'string', 'required' => false, 'example' => 'AuthKey****', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'description' => 'The response parameters.', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => 'E9AD97A0-5338-43F8-8A80-5E274CCBA11B', - ], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '8AA5CE21-2E6A-4530-BDF5-F055849476E6', 'title' => ''], + 'IpAddress' => ['description' => 'The public IP address of the on-premises data center gateway device.', 'type' => 'string', 'example' => '139.32.XX.XX', 'title' => ''], + 'Description' => ['description' => 'The description of the customer gateway.', 'type' => 'string', 'example' => 'desctest', 'title' => ''], + 'CustomerGatewayId' => ['description' => 'The instance ID of the customer gateway.', 'type' => 'string', 'example' => 'cgw-bp1pvpl9r9adju6l5****', 'title' => ''], + 'CreateTime' => ['description' => 'The timestamp when the customer gateway was created.', 'type' => 'integer', 'format' => 'int64', 'example' => '1492747187000', 'title' => ''], + 'Name' => ['description' => 'The name of the customer gateway.', 'type' => 'string', 'example' => 'nametest', 'title' => ''], + 'ResourceGroupId' => ['description' => 'The ID of the resource group to which the customer gateway belongs.'."\n" + ."\n" + .'You can call the [ListResourceGroups](~~158855~~) operation to query resource group information.', 'type' => 'string', 'example' => 'rg-acfmzs372yg****', 'title' => ''], ], - 'description' => '', + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'IncorrectStatus.NatIp', - 'errorMessage' => 'The status of %s [%s] is incorrect.', - ], - [ - 'errorCode' => 'OperationFailed.DefaultNatIp', - 'errorMessage' => 'The operation is failed because of default NatIP can not be deleted.', - ], - [ - 'errorCode' => 'DependencyViolation.NatIp', - 'errorMessage' => 'The specified resource of %s depends on %s, so the operation cannot be completed.', - ], - [ - 'errorCode' => 'IncorrectStatus.NatGateway', - 'errorMessage' => 'The status of %s [%s] is incorrect.', - ], - [ - 'errorCode' => 'DependencyViolation.FullNatEntry', - 'errorMessage' => 'The fullnat entry depends on this nat ip,so the operation cannot be completed.', - ], - [ - 'errorCode' => 'IllegalParam.NatIp', - 'errorMessage' => 'The param of %s is illegal.', - ], - [ - 'errorCode' => 'Mismatch.Ipv4PrefixAndNatIpCidr', - 'errorMessage' => 'The %s and %s are mismatched.', - ], - [ - 'errorCode' => 'Mismatch.Ipv4PrefixAndCidrReservations', - 'errorMessage' => 'The %s and %s are mismatched.', - ], - [ - 'errorCode' => 'IllegalParam.Ipv4Prefix', - 'errorMessage' => 'The param of %s is illegal.', - ], - [ - 'errorCode' => 'DependencyViolation.%s', - 'errorMessage' => 'The specified resource of [%s] depends on [%s], so the operation cannot be completed.', - ], - [ - 'errorCode' => 'DependencyViolation.SnatEntry', - 'errorMessage' => 'The specified resource of %s depends on %s, so the operation cannot be completed.', - ], - [ - 'errorCode' => 'DependencyViolation.Ipv4Prefix', - 'errorMessage' => 'The specified resource of %s depends on %s, so the operation cannot be completed.', - ], + ['errorCode' => 'InvalidName', 'errorMessage' => 'The name is not valid', 'description' => ''], + ['errorCode' => 'InvalidDescription', 'errorMessage' => 'The description is not valid', 'description' => ''], + ['errorCode' => 'OperationDenied.MissingAsn', 'errorMessage' => 'The autonomous system number of the customer gateway is mandatory when BGP authentication key is specified.', 'description' => 'The autonomous system number of the customer gateway is mandatory when BGP authentication key is specified.'], + ['errorCode' => 'InvalidAuthkey.Malformed', 'errorMessage' => 'The specified BGP authentication key (%s) is malformed.', 'description' => 'The BGP authentication key is invalid.'], + ['errorCode' => 'OperationDenied.VpnFinancialLocked', 'errorMessage' => 'The associated VPN gateway is financially locked. You cannot update the attributes of the customer gateway.', 'description' => 'The associated VPN gateway is financially locked. You cannot update the attributes of the customer gateway.'], + ['errorCode' => 'OperationDenied.VpnConfiguring', 'errorMessage' => 'The associated VPN gateway is being configured. You cannot update the attributes of the customer gateway.', 'description' => 'The associated VPN gateway is being configured. You cannot update the attributes of the customer gateway.'], ], - 404 => [ - [ - 'errorCode' => 'InvalidRegionId.NotFound', - 'errorMessage' => 'The specified RegionId does not exist in our records.', - ], - [ - 'errorCode' => 'ResourceNotFound.NatIp', - 'errorMessage' => 'The specified resource of %s is not found.', - ], - [ - 'errorCode' => 'ResourceNotFound.NatGateway', - 'errorMessage' => 'The specified resource of %s is not found.', - ], - [ - 'errorCode' => 'ResourceNotFound.NatIpCidr', - 'errorMessage' => 'The specified resource of %s is not found.', - ], - [ - 'errorCode' => 'ResourceNotFound.%s', - 'errorMessage' => 'The specified resource of %s is not found.', - ], - [ - 'errorCode' => 'ResourceNotFound.Ipv4Prefix', - 'errorMessage' => 'The specified resource of %s is not found.', - ], + 403 => [ + ['errorCode' => 'Forbbiden.SubUser', 'errorMessage' => 'User not authorized to operate on the specified resource as your account is created by another user.', 'description' => ''], + ['errorCode' => 'Forbidden', 'errorMessage' => 'User not authorized to operate on the specified resource.', 'description' => 'You do not have the permissions to manage the specified resource. Apply for the permissions and try again.'], + ], + [ + ['errorCode' => 'InvalidCustomerGatewayInstanceId.NotFound', 'errorMessage' => 'The specified customer gateway instance id does not exist.', 'description' => 'The specified customer gateway does not exist. Check whether the ID of the customer gateway is correct.'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"E9AD97A0-5338-43F8-8A80-5E274CCBA11B\\"\\n}","errorExample":""},{"type":"xml","example":"\\n E9AD97A0-5338-43F8-8A80-5E274CCBA11B\\n","errorExample":""}]', - 'title' => 'DeleteNatIp', - 'description' => '## [](#)Description'."\n" - ."\n" - .'* **DeleteNatIp** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call the [ListNatIps](~~281979~~) operation to query the status of the task.'."\n" + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'Modify the name and description of a customer gateway', + 'description' => '- When you call the **ModifyCustomerGatewayAttribute** operation, if the **AuthKey** parameter is not empty, this operation is asynchronous. The system returns the customer gateway information first, but the configuration has not been modified yet because the modification task is still running in the background. You can call [DescribeVpnGateway](~~73720~~) to query the modification status of the customer gateway configuration:'."\n" + .' - If the VPN gateway instance is in the **updating** state, the customer gateway configuration is being modified.'."\n" + .' - If the VPN gateway instance is in the **active** state, the customer gateway configuration has been modified.'."\n" + .'- When you call the **ModifyCustomerGatewayAttribute** operation, if the **AuthKey** parameter is empty, this operation is synchronous.'."\n" ."\n" - .' * If the NAT IP address is in the **Deleting** state, the NAT IP address is being deleted. In this case, you can only query the NAT IP address but cannot perform other operations.'."\n" - .' * If the NAT IP address cannot be found, it is deleted.'."\n" - ."\n" - .'* You cannot repeatedly call the **DeleteNatIp** operation to delete a NAT IP address within the specified period of time.'."\n", + .'- The **ModifyCustomerGatewayAttribute** operation does not support concurrent modifications to the configuration of the same customer gateway.', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - 'translator' => 'machine', - ], - 'ModifyNatIpAttribute' => [ - 'summary' => 'Modifies the name and description of a NAT IP address.', - 'methods' => [ - 'post', - 'get', + 'changeSet' => [ + ['createdAt' => '2023-10-19T07:04:01.000Z', 'description' => 'Response parameters changed'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ModifyCustomerGatewayAttribute'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:ModifyCustomerGatewayAttribute', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'CustomerGateway', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:customergateway/{#CustomerGatewayId}'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"8AA5CE21-2E6A-4530-BDF5-F055849476E6\\",\\n \\"IpAddress\\": \\"139.32.XX.XX\\",\\n \\"Description\\": \\"desctest\\",\\n \\"CustomerGatewayId\\": \\"cgw-bp1pvpl9r9adju6l5****\\",\\n \\"CreateTime\\": 1492747187000,\\n \\"Name\\": \\"nametest\\",\\n \\"ResourceGroupId\\": \\"rg-acfmzs372yg****\\"\\n}","type":"json"}]', + ], + 'ModifyEipAddressAttribute' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'readAndWrite', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'update', - 'riskType' => 'none', - 'chargeType' => 'free', - ], + 'systemTags' => ['operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', 'autoTest' => true, 'tenantRelevance' => 'tenant'], 'parameters' => [ [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the NAT gateway to which the NAT IP address that you want to modify belongs.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'eu-central-1', - ], - ], - [ - 'name' => 'NatIpId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the NAT IP address that you want to modify.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'vpcnatip-gw8e1n11f44wpg****', - ], - ], - [ - 'name' => 'NatIpName', + 'name' => 'AllocationId', 'in' => 'query', - 'schema' => [ - 'description' => 'The name of the NAT IP address that you want to modify.'."\n" - ."\n" - .'The name must be 2 to 128 characters in length, and can contain letters, digits, periods (.), underscores (\\_), and hyphens (-). It must start with a letter. The name must start with a letter and cannot start with `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'docRequired' => false, - 'example' => 'newname', - ], + 'schema' => ['description' => 'The ID of the pay-as-you-go EIP that you want to modify.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'eip-2zeerraiwb7uj6i0d****', 'title' => ''], ], [ - 'name' => 'NatIpDescription', + 'name' => 'Bandwidth', 'in' => 'query', - 'schema' => [ - 'description' => 'The description of the NAT IP address that you want to modify.'."\n" - ."\n" - .'The description must be 2 to 256 characters in length and start with a letter. The description cannot start with `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'docRequired' => false, - 'example' => 'test', - ], + 'schema' => ['description' => 'The peak bandwidth of the EIP. Valid values:'."\n" + ."\n" + .'- **1** to **200**: if the EIP uses the pay-by-data-transfer billing method. Unit: Mbit/s. '."\n" + ."\n" + .'- **1** to **500**: if the EIP uses the pay-by-bandwidth billing method. Unit: Mbit/s.', 'type' => 'string', 'required' => false, 'example' => '100', 'title' => ''], ], [ - 'name' => 'DryRun', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to perform only a dry run, without performing the actual request.'."\n" - ."\n" - .'* **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.'."\n" - .'* **false** (default): sends the request. If the request passes the precheck, a 2xx HTTP status code is returned and the name and description of the NAT IP address are modified.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['description' => 'The region ID of the EIP.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the region ID.', 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'ClientToken', + 'name' => 'Name', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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.'."\n" - ."\n" - .'> 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.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3FF3898', - ], + 'schema' => ['description' => 'The name of the EIP. '."\n" + ."\n" + .'The name must be 0 to 128 characters in length and cannot start with `http://` or `https://`.', 'type' => 'string', 'required' => false, 'example' => 'Test123', 'title' => ''], ], [ - 'name' => 'RegionId', + 'name' => 'Description', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the NAT gateway to which the NAT IP address that you want to modify belongs.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'eu-central-1', - ], + 'schema' => ['description' => 'The description of the EIP. '."\n" + ."\n" + .'The description must be 0 to 256 characters in length and cannot start with `http://` or `https://`.', 'type' => 'string', 'required' => false, 'example' => 'abc', 'title' => ''], ], ], 'responses' => [ 200 => [ 'headers' => [], 'schema' => [ + 'description' => 'The response parameters.', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '6CC9456C-2E29-452A-9180-B6926E51B5CA', - ], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '0ED8D006-F706-4D23-88ED-E11ED28DCAC0', 'title' => ''], ], - 'description' => '', + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InsufficientBalance.Eip', 'errorMessage' => 'Your account does not have enough balance.', 'description' => ''], + ['errorCode' => 'Forbidden.ChargeTypeIsPrepaid', 'errorMessage' => 'It?s forbidden to change prepaid EIP?s bandwidth by API. It can be changed on Aliyun web console.', 'description' => ''], + ['errorCode' => 'IncorrectEipStatus', 'errorMessage' => 'Current elastic IP status does not support this operation.', 'description' => ''], + ['errorCode' => 'InvalidParameter', 'errorMessage' => 'The parameter is invalid.', 'description' => 'The bandwidth value is invalid.'], + ['errorCode' => 'InvalidBandwidth.OutOfMaxTrafficBindedOnNatgw', 'errorMessage' => 'The bandwidth is out of max traffic binded on natgw.', 'description' => ''], + ['errorCode' => 'QuotaExceeded.LargeSpecEip', 'errorMessage' => 'Elastic IP address with large spec quota exceeded.', 'description' => ''], + ['errorCode' => 'InvalidEipAddressName.Malformed', 'errorMessage' => 'The specified Name is not valid.', 'description' => ''], + ['errorCode' => 'InvalidDescription.Malformed', 'errorMessage' => 'Invalid description.', 'description' => ''], + ['errorCode' => 'Abs.InvalidBandwidth.Malformed', 'errorMessage' => 'Specified value of Bandwidth is not supported.', 'description' => ''], + ['errorCode' => 'InvalidEIPStatus.BizDisabled', 'errorMessage' => 'The EIP has been locked.', 'description' => 'The error message returned because the EIP is locked.'], + ['errorCode' => 'MissingParam.InstanceId', 'errorMessage' => 'The parameter InstanceId is mandatory.', 'description' => 'You must specify the Express Connect circuit ID.'], + ], 404 => [ - [ - 'errorCode' => 'InvalidRegionId.NotFound', - 'errorMessage' => 'The specified RegionId does not exist in our records.', - ], - [ - 'errorCode' => 'ResourceNotFound.NatIp', - 'errorMessage' => 'The specified resource of NatIp is not found.', - ], + ['errorCode' => 'InvalidAllocationId.NotFound', 'errorMessage' => 'Specified allocation id is not found.', 'description' => ''], + ['errorCode' => 'Forbidden.InCommonBandwidthPackage', 'errorMessage' => 'Specified allocation ID in common bandwidth package.', 'description' => ''], + ['errorCode' => 'Forbidden.RegionNotFound', 'errorMessage' => 'Specified region is not found during access authentication.', 'description' => ''], + ], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error.', 'description' => ''], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"6CC9456C-2E29-452A-9180-B6926E51B5CA\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 6CC9456C-2E29-452A-9180-B6926E51B5CA\\n","errorExample":""}]', - 'title' => 'ModifyNatIpAttribute', - 'description' => '## [](#)Description'."\n" - ."\n" - .'You cannot repeatedly call the **ModifyNatIpAttribute** operation to modify the name and description of a NAT IP address within the specified period of time.'."\n", + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'Modify EIP attributes', + 'summary' => 'Modifies the name, description, and peak bandwidth of a specified elastic IP address (EIP).', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'ListNatIps' => [ - 'summary' => 'Queries the IP addresses on a NAT gateway.', - 'methods' => [ - 'post', - 'get', + 'changeSet' => [ + ['createdAt' => '2023-11-09T06:57:10.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-07-24T02:52:26.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2022-11-29T10:25:34.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2021-12-16T07:53:04.000Z', 'description' => 'Error codes changed'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ModifyEipAddressAttribute'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:ModifyEipAddressAttribute', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'Address', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:eip/{#AllocationId}'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"0ED8D006-F706-4D23-88ED-E11ED28DCAC0\\"\\n}","type":"json"}]', + ], + 'ModifyEipForwardMode' => [ + 'summary' => 'Modifies the EIP forwarding mode.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'readAndWrite', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'get', - 'riskType' => 'none', - 'chargeType' => 'free', - ], + 'systemTags' => ['operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', 'autoTest' => true, 'tenantRelevance' => 'tenant'], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region where the NAT gateway is deployed.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'eu-central-1', - ], + 'schema' => ['description' => 'The ID of the region to which the EIP belongs. You can call the DescribeRegions operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'NatGatewayId', + 'name' => 'InstanceId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the NAT gateway.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'ngw-gw8v16wgvtq26vh59****', - ], + 'schema' => ['description' => 'The ID of the EIP whose attributes you want to modify.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'eip-j5ebhbw3br92fy****', 'title' => ''], ], [ - 'name' => 'NatIpCidr', + 'name' => 'Mode', 'in' => 'query', - 'schema' => [ - 'description' => 'The CIDR block to which the IP address belongs.'."\n", - 'type' => 'string', - 'required' => false, - 'docRequired' => false, - 'example' => '192.168.0.0/24', - ], + 'schema' => ['description' => 'The association mode. Valid values:'."\n" + ."\n" + .'* **NAT** (default): the standard NAT mode.'."\n" + .'* **MULTI_BINDED**: the multi-EIP-to-ENI mode.'."\n" + .'* **BINDED**: the cut-through mode.'."\n" + ."\n" + .'> This parameter is required only if **InstanceType** is set to **NetworkInterface**.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'BINDED', 'title' => ''], ], [ - 'name' => 'DryRun', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to only precheck the request. Valid values:'."\n" - ."\n" - .'* **true**: checks the API request. IP addresses are not queried. The system checks the required parameters, request syntax, and limits. If the request fails to pass the precheck, the corresponding error message is returned. If the request passes the precheck, the `DryRunOperation` error code is returned.'."\n" - .'* **false** (default): sends the request. If the request passes the precheck, a 2xx HTTP status code is returned and the operation is performed.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['description' => 'The ID of the region to which the EIP belongs. You can call the DescribeRegions operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'You can use the client to generate the value, but you must make sure that it is unique among different requests. The token can contain only ASCII characters and cannot exceed 64 characters in length.'."\n" - ."\n" - .'> If you do not set this parameter, the system automatically uses **RequestId** as **ClientToken**. **RequestId** may be different for each API request.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3FF3898', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'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.'."\n" + ."\n" + .'> If you do not specify this parameter, the system automatically uses the **request ID** as the **client token**. The **RequestId** may be different for each request.'."\n", 'type' => 'string', 'required' => false, 'example' => '02fb3da4-130e-11e9-8e44-0016e04115b', 'title' => ''], ], - [ - 'name' => 'NatIpStatus', - 'in' => 'query', + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => 'The status of the IP address. Valid values:'."\n" - ."\n" - .'* **Available**'."\n" - .'* **Deleting**'."\n" - .'* **Creating**'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'Available', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '62C6A6A5-1534-53D9-AB1E-C9307A147ED5', 'title' => ''], + ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'Region.NotSupport', 'errorMessage' => 'Region not support.', 'description' => ''], + ['errorCode' => 'Instance.ModeError', 'errorMessage' => 'eip instance mode error.', 'description' => ''], + ['errorCode' => 'Instance.StatusError', 'errorMessage' => 'eip status error.', 'description' => ''], + ['errorCode' => 'ENI.BindEcs', 'errorMessage' => 'eni bind ecs.', 'description' => ''], + ['errorCode' => 'Forbidden.PrePaidBindedEip', 'errorMessage' => 'prepaid eip cannot be direct.', 'description' => ''], + ['errorCode' => 'BindInstance.NotSupport', 'errorMessage' => 'eip can only change mode when it is allocated or bind eni.', 'description' => ''], + ['errorCode' => 'IncorrectStatus.EipInstance', 'errorMessage' => 'Eip instance\'s status is invalid.', 'description' => ''], + ], + 403 => [ + ['errorCode' => 'Forbidden', 'errorMessage' => 'User not authorized to operate on the specified resource.', 'description' => 'You do not have the permissions to manage the specified resource. Apply for the permissions and try again.'], + ], [ - 'name' => 'NextToken', - 'in' => 'query', - 'schema' => [ - 'description' => 'The token that is used for the next query. Valid values:'."\n" - ."\n" - .'* If this is your first query or no next query is to be sent, ignore this parameter.'."\n" - .'* If a next query is to be sent, set the value to the value of NextToken that is returned from the last call.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****f84eb48b699f0a4883', - ], + ['errorCode' => 'Instance.NotFound', 'errorMessage' => 'eip instance not found.', 'description' => ''], + ['errorCode' => 'ENI.NotFound', 'errorMessage' => 'eni not found.', 'description' => ''], + ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'ModifyEipForwardMode', + 'changeSet' => [], + 'ramActions' => [], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"62C6A6A5-1534-53D9-AB1E-C9307A147ED5\\"\\n}","type":"json"}]', + ], + 'ModifyExpressCloudConnectionAttribute' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], ], + ], + 'deprecated' => false, + 'systemTags' => ['operationType' => 'update'], + 'parameters' => [ [ - 'name' => 'MaxResults', + 'name' => 'Description', 'in' => 'query', - 'schema' => [ - 'description' => 'The number of entries to return on each page. Valid values: **1** to **100**. Default value: **20**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '20', - ], + 'schema' => ['description' => 'Descriptions of ECC.'."\n", 'type' => 'string', 'required' => false, 'example' => 'ECC', 'title' => ''], ], [ - 'name' => 'NatIpName', + 'name' => 'RegionId', 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => 'The name of the IP address. Valid values of **N**: **1** to **20**.', - 'type' => 'array', - 'items' => [ - 'description' => 'The name of the IP address. Valid values of **N**: **1** to **20**.', - 'type' => 'string', - 'required' => false, - 'example' => 'test', - ], - 'required' => false, - 'example' => 'test', - 'maxItems' => 100, - ], + 'schema' => ['description' => 'The region ID of the ECC instance.'."\n", 'type' => 'string', 'required' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'NatIpIds', + 'name' => 'Name', 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => 'The ID of the IP address. Valid values of **N**: **1** to **20**.', - 'type' => 'array', - 'items' => [ - 'description' => 'The ID of the IP address. Valid values of **N**: **1** to **20**.', - 'type' => 'string', - 'required' => false, - 'example' => 'vpcnatcidr-gw8ov42ei6xh1jys2****', - ], - 'required' => false, - 'example' => 'vpcnatip-gw8a863sut1zijxh0****', - 'maxItems' => 100, - ], + 'schema' => ['description' => 'The name of the ECC instance.'."\n", 'type' => 'string', 'required' => false, 'example' => 'doctest', 'title' => ''], ], [ - 'name' => 'RegionId', + 'name' => 'EccId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region where the NAT gateway is deployed.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'eu-central-1', - ], + 'schema' => ['description' => 'The ID of the ECC instance.'."\n", 'type' => 'string', 'required' => true, 'example' => 'ecc-bp1t9osmuln*******', 'title' => ''], ], [ - 'name' => 'IpOrigin', + 'name' => 'BgpAs', 'in' => 'query', - 'allowEmptyValue' => true, - 'schema' => [ - 'title' => '用于描述NatIp来源的字段的枚举,取值为“prefix”表示所属IPv4Prefix的NatIp; 取值为“cidr”表示孤立NatIp; 控制表示所有的NatIp.', - 'description' => 'The enumeration of the fields used to describe the source of the NatIp. Prefix indicates the NatIp that belongs to the IPv4Prefix. The value cidr indicates isolated NatIp. The value control indicates all NatIp.'."\n", - 'type' => 'string', - 'required' => false, - 'enumValueTitles' => [], - 'example' => 'cidr', - 'enum' => [ - 'cidr', - 'prefix', - ], - ], + 'schema' => ['description' => 'The BGP autonomous system number (ASN) to be configured for the Smart Access Gateway (SAG) device.'."\n", 'type' => 'string', 'required' => false, 'example' => 'sag-ejfge***', 'title' => ''], ], [ - 'name' => 'Ipv4Prefix', + 'name' => 'PeIp', 'in' => 'query', - 'schema' => [ - 'description' => 'The IP prefix address range.', - 'type' => 'string', - 'required' => false, - 'example' => '192.168.0.0/28', - ], + 'schema' => ['description' => 'The on-premises IP address when the SAG device is connected to the cloud.'."\n", 'type' => 'string', 'required' => false, 'example' => '10.10.**.**', 'title' => ''], + ], + [ + 'name' => 'CeIp', + 'in' => 'query', + 'schema' => ['description' => 'The peer IP address when the SAG device is connected to the cloud.'."\n", 'type' => 'string', 'required' => false, 'example' => '172.16.**.**', 'title' => ''], ], ], 'responses' => [ @@ -61484,238 +47657,66 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'NextToken' => [ - 'description' => 'The token that is used for the next query. Valid values:'."\n" - ."\n" - .'* If the value of **NextToken** is not returned, it indicates that no next query is to be sent.'."\n" - .'* If the value of **NextToken** is returned, the value indicates the token that is used for the next query.'."\n", - 'type' => 'string', - 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', - ], - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => '7E78CEEA-BF8F-44D1-9DCD-D9141135B71E', - ], - 'TotalCount' => [ - 'description' => 'The number of IP addresses that are returned.'."\n", - 'type' => 'string', - 'example' => '1', - ], - 'NatIps' => [ - 'description' => 'The list of IP addresses of the NAT gateway.'."\n", - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'IsDefault' => [ - 'description' => 'Indicates whether the IP address is the default IP address of the NAT gateway. Valid values:'."\n" - ."\n" - .'* **true**: yes'."\n" - .'* **false**: no'."\n", - 'type' => 'boolean', - 'example' => 'true', - ], - 'NatIp' => [ - 'description' => 'The IP address.'."\n", - 'type' => 'string', - 'example' => '192.168.0.126', - ], - 'Ipv4Prefix' => [ - 'description' => 'The IP prefix address range to which the queried NAT IP address belongs.', - 'type' => 'string', - 'required' => false, - 'example' => '192.168.0.0/28', - ], - 'NatIpCidr' => [ - 'description' => 'The CIDR block to which the IP address belongs.'."\n", - 'type' => 'string', - 'example' => '192.168.0.0/24', - ], - 'NatIpId' => [ - 'description' => 'The ID of the IP address.'."\n", - 'type' => 'string', - 'example' => 'vpcnatip-gw8a863sut1zijxh0****', - ], - 'NatIpDescription' => [ - 'description' => 'The description of the IP address.'."\n", - 'type' => 'string', - 'example' => 'default', - ], - 'NatGatewayId' => [ - 'description' => 'The ID of the Virtual Private Cloud (VPC) NAT gateway to which the IP address is assigned.'."\n", - 'type' => 'string', - 'example' => 'ngw-gw8v16wgvtq26vh59****', - ], - 'NatIpName' => [ - 'description' => 'The name of the IP address.'."\n", - 'type' => 'string', - 'example' => 'default', - ], - 'NatIpStatus' => [ - 'description' => 'The status of the IP address. Valid values:'."\n" - ."\n" - .'* **Available**: available'."\n" - .'* **Deleted**: deleted'."\n" - .'* **Deleting**: deleting'."\n" - .'* **Creating**: creating'."\n" - .'* **Associated**: specified in an SNAT or DNAT entry'."\n" - .'* **Associating**: being specified in an SNAT or DNAT entry'."\n", - 'type' => 'string', - 'example' => 'Available', - ], - ], - ], - ], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => 'E6385514-B0CC-48E3-B9F9-F7BFF64460A2', 'title' => ''], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ - 404 => [ - [ - 'errorCode' => 'InvalidRegionId.NotFound', - 'errorMessage' => 'The specified RegionId does not exist in our records.', - ], + 400 => [ + ['errorCode' => 'InvalidEccId.NotFound', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'IllegalParam.AliUid', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'MissingParam.RegionNo', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'IllegalParam.EccId', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'InvalidEccApplication.NotFound', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'IllegalParam.Description', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'IllegalParam.Name', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'InvalidServiceProvider.Malformed', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'IllegalParam.PortType', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'IllegalParam.Distance', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'IllegalParam.CircuitCode', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'IllegalParam.Type', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'OperationUnsupported.Type', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'InvalidAccessPoint.NotFound', 'errorMessage' => '%s', 'description' => ''], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"NextToken\\": \\"FFmyTO70tTpLG6I3FmYAXGKPd****\\",\\n \\"RequestId\\": \\"7E78CEEA-BF8F-44D1-9DCD-D9141135B71E\\",\\n \\"TotalCount\\": \\"1\\",\\n \\"NatIps\\": [\\n {\\n \\"IsDefault\\": true,\\n \\"NatIp\\": \\"192.168.0.126\\",\\n \\"Ipv4Prefix\\": \\"192.168.0.0/28\\",\\n \\"NatIpCidr\\": \\"192.168.0.0/24\\",\\n \\"NatIpId\\": \\"vpcnatip-gw8a863sut1zijxh0****\\",\\n \\"NatIpDescription\\": \\"default\\",\\n \\"NatGatewayId\\": \\"ngw-gw8v16wgvtq26vh59****\\",\\n \\"NatIpName\\": \\"default\\",\\n \\"NatIpStatus\\": \\"Available\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\n FFmyTO70tTpLG6I3FmYAXGKPd****\\n 7E78CEEA-BF8F-44D1-9DCD-D9141135B71E\\n 1\\n \\n true\\n 192.168.0.126\\n 192.168.0.0/24\\n vpcnatip-gw8a863sut1zijxh0****\\n default\\n ngw-gw8v16wgvtq26vh59****\\n default\\n Available\\n \\n","errorExample":""}]', - 'title' => 'ListNatIps', + 'title' => 'ModifyExpressCloudConnectionAttribute', + 'summary' => 'Modifies the configuration of an Express Cloud Connect (ECC) instance.', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - 'translator' => 'machine', + 'changeSet' => [], + 'ramActions' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"E6385514-B0CC-48E3-B9F9-F7BFF64460A2\\"\\n}","errorExample":""},{"type":"xml","example":"\\r\\n\\r\\n E6385514-B0CC-48E3-B9F9-F7BFF64460A2\\r\\n","errorExample":""}]', ], - 'CreateNatIpCidr' => [ - 'summary' => 'Creates a NAT CIDR block.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'ModifyExpressCloudConnectionBandwidth' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'create', - 'riskType' => 'none', - 'chargeType' => 'free', - ], + 'systemTags' => ['operationType' => 'update'], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the NAT gateway with which you want to associate the CIDR block.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'eu-central-1', - ], - ], - [ - 'name' => 'NatGatewayId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the Virtual Private Cloud (VPC) NAT gateway with which you want to associate the CIDR block.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'ngw-gw8v16wgvtq26vh59****', - ], - ], - [ - 'name' => 'NatIpCidrName', - 'in' => 'query', - 'schema' => [ - 'description' => 'The name of the CIDR block.'."\n" - ."\n" - .'The name must be 2 to 128 characters in length, and can contain letters, digits, periods (.), underscores (\\_), and hyphens (-). It must start with a letter. The name must start with a letter and cannot start with `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'docRequired' => true, - 'example' => 'newcidr', - ], - ], - [ - 'name' => 'NatIpCidrDescription', - 'in' => 'query', - 'schema' => [ - 'description' => 'The description of the NAT CIDR block.'."\n" - ."\n" - .'The description must be 2 to 256 characters in length and start with a letter. The description cannot start with `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'docRequired' => false, - 'example' => 'mycidr', - ], - ], - [ - 'name' => 'DryRun', - 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values:'."\n" - ."\n" - .'* **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.'."\n" - .'* **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.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], - ], - [ - 'name' => 'ClientToken', - 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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.'."\n" - ."\n" - .'> 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.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3FF3898', - ], + 'schema' => ['description' => 'The region ID.'."\n", 'type' => 'string', 'required' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'NatIpCidr', + 'name' => 'Bandwidth', 'in' => 'query', - 'schema' => [ - 'description' => 'The NAT CIDR block that you want to associate with the NAT gateway.'."\n" - ."\n" - .'The new CIDR block must meet the following conditions:'."\n" - ."\n" - .'* The NAT CIDR block must fall within 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16, or their subnets.'."\n" - .'* The subnet mask must be 16 to 32 bits in length.'."\n" - .'* The NAT CIDR block cannot overlap with the private CIDR block of the VPC to which the NAT gateway belongs. If you want to use other IP addresses from the private CIDR block of the VPC to provide NAT services, create a vSwitch and attach the vSwitch to another VPC NAT gateway.'."\n" - .'* If you want to use public IP addresses to provide NAT services, make sure that the public IP addresses fall within a customer CIDR block of the VPC to which the VPC NAT gateway belongs. For more information, see [What is customer CIDR block?](~~185311~~).'."\n", - 'type' => 'string', - 'required' => true, - 'example' => '172.16.0.0/24', - 'docRequired' => true, - ], + 'schema' => ['description' => 'The bandwidth of the ECC instance.'."\n", 'type' => 'string', 'required' => false, 'example' => '2', 'title' => ''], ], [ - 'name' => 'RegionId', + 'name' => 'EccId', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the NAT gateway with which you want to associate the CIDR block.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'eu-central-1', - ], + 'schema' => ['description' => 'The ID of the ECC instance.'."\n", 'type' => 'string', 'required' => true, 'example' => 'ecc-xxxxxxxxx', 'title' => ''], ], ], 'responses' => [ @@ -61723,175 +47724,172 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'NatIpCidrId' => [ - 'description' => 'The ID of the NAT CIDR block.'."\n", - 'type' => 'string', - 'example' => 'vpcnatcidr-gw8lhqtvdn4qnea****', - ], - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '7021BEB1-210F-48A9-AB82-BE9A9110BB89', - ], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => 'E6385514-B0CC-48E3-B9F9-F7BFF64460A2', 'title' => ''], ], 'description' => '', + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'IncorrectStatus.NatGateway', - 'errorMessage' => 'The status of %s [%s] is incorrect.', - ], - [ - 'errorCode' => 'OperationFailed.NatIpCidrInUse', - 'errorMessage' => 'The operation is failed because of %s.', - ], - [ - 'errorCode' => 'QuotaExceeded.NatIpCidr', - 'errorMessage' => 'The quota of %s is exceeded, usage %s/%s.', - ], - [ - 'errorCode' => 'OperationFailed.CreateNatIpCidrInVpcCidrBlock', - 'errorMessage' => 'The operation is failed because of Creating NatIpCidr in Vpc Cidr.', - ], - [ - 'errorCode' => 'OperationFailed.CreateNatIpCidrNotInUserCidr', - 'errorMessage' => 'The operation is failed because of Creating NatIpCidr not in UserCidr.', - ], - [ - 'errorCode' => 'ResourceAlreadyExist.NatIpCidr', - 'errorMessage' => 'The specified resource of %s is already exist.', - ], - [ - 'errorCode' => 'IllegalParamFormat.NatIpCidr', - 'errorMessage' => 'The param format of NatIpCidr is illegal.', - ], - ], - 404 => [ - [ - 'errorCode' => 'InvalidRegionId.NotFound', - 'errorMessage' => 'The specified RegionId does not exist in our records.', - ], - [ - 'errorCode' => 'ResourceNotFound.NatGateway', - 'errorMessage' => 'The specified resource of %s is not found.', - ], - [ - 'errorCode' => 'ResourceNotFound.VPC', - 'errorMessage' => 'The specified resource of %s is not found.', - ], + ['errorCode' => 'MissingParam.EccId', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'MissingParam.AliUid', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'MissingParam.RegionNo', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'MissingParam.Bandwidth', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'InvalidEccApplication.NotFound', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'InvalidEccId.NotFound', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'IncorrectStatus.EccApplication', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'OperationUnsupported.type', 'errorMessage' => '%s', 'description' => ''], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"NatIpCidrId\\": \\"vpcnatcidr-gw8lhqtvdn4qnea****\\",\\n \\"RequestId\\": \\"7021BEB1-210F-48A9-AB82-BE9A9110BB89\\"\\n}","errorExample":""},{"type":"xml","example":"\\n vpcnatcidr-gw8lhqtvdn4qnea****\\n 7021BEB1-210F-48A9-AB82-BE9A9110BB89\\n","errorExample":""}]', - 'title' => 'CreateNatIpCidr', - 'description' => '## [](#)Description'."\n" - ."\n" - .'You cannot repeatedly call the **CreateNatIpCidr** operation to create a NAT CIDR block within the specified period of time.'."\n", + 'title' => 'ModifyExpressCloudConnectionBandwidth', + 'summary' => 'Modifies the bandwidth of an Express Cloud Connect (ECC) instance.', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DeleteNatIpCidr' => [ - 'summary' => 'Deletes a NAT CIDR block.', - 'methods' => [ - 'post', - 'get', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:ModifyExpressCloudConnectionBandwidth', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'PhysicalConnection', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:physicalconnection/{#PhysicalConnectionId}'], + ], + ], + ], ], - 'schemes' => [ - 'http', - 'https', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"E6385514-B0CC-48E3-B9F9-F7BFF64460A2\\"\\n}","errorExample":""},{"type":"xml","example":"\\r\\n \\r\\n\\tE6385514-B0CC-48E3-B9F9-F7BFF64460A2\\r\\n ","errorExample":""}]', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ModifyExpressCloudConnectionBandwidth'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], ], + ], + 'ModifyExpressConnectTrafficQos' => [ + 'summary' => 'Calls the ModifyExpressConnectTrafficQos operation to modify an Express Connect Quality of Service (QoS) policy. You can also use this operation to associate dedicated Express Connect circuits.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'readAndWrite', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'delete', - 'riskType' => 'none', - 'chargeType' => 'free', - ], + 'systemTags' => ['operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the NAT gateway to which the NAT CIDR block to be deleted belongs.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'eu-central-1', - ], + 'schema' => ['description' => 'The region ID of the QoS policy.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the region ID.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-shanghai', 'title' => ''], ], [ - 'name' => 'NatIpCidr', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The NAT CIDR block to be deleted.'."\n" - ."\n" - .'* Before you delete a NAT CIDR block, you must delete all NAT IP addresses from the CIDR block.'."\n" - .'* The default NAT CIDR block cannot be deleted.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => '172.16.0.0/24', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'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.'."\n" + ."\n" + .'> If you do not specify this parameter, the system automatically uses the **RequestId** of the API request as the **ClientToken**. The **RequestId** may be different for each API request.', 'type' => 'string', 'required' => false, 'docRequired' => true, 'example' => '0c593ea1-3bea-11e9-b96b-88e9fe637760', 'title' => ''], ], [ - 'name' => 'DryRun', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values:'."\n" - ."\n" - .'* **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.'."\n" - .'* **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.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'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.'."\n" + ."\n" + .'> If you do not specify this parameter, the system automatically uses the **RequestId** of the API request as the **ClientToken**. The **RequestId** may be different for each API request.', 'type' => 'string', 'required' => false, 'docRequired' => true, 'example' => '0c593ea1-3bea-11e9-b96b-88e9fe637760', 'title' => ''], ], [ - 'name' => 'ClientToken', + 'name' => 'QosName', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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.'."\n" - ."\n" - .'> 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.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3FF3898', - ], + 'schema' => ['title' => '', 'description' => 'The name of the QoS policy.'."\n" + ."\n" + .'The name must be 0 to 128 characters in length and cannot start with `http://` or `https://`.', 'type' => 'string', 'required' => false, 'example' => 'qos-test'], ], [ - 'name' => 'NatGatewayId', + 'name' => 'QosDescription', + 'in' => 'query', + 'schema' => ['title' => '', 'description' => 'The description of the QoS policy.'."\n" + ."\n" + .'The description must be 0 to 256 characters in length and cannot start with `http://` or `https://`.', 'type' => 'string', 'required' => false, 'example' => 'qos-test'], + ], + [ + 'name' => 'QosId', + 'in' => 'query', + 'schema' => ['title' => '', 'description' => 'The ID of the QoS policy.', 'type' => 'string', 'required' => true, 'example' => 'qos-2giu0a6vd5x0mv****'], + ], + [ + 'name' => 'AddInstanceList', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => 'The ID of the NAT gateway to which the NAT CIDR block to be deleted belongs.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'ngw-gw8v16wgvtq26vh59****', + 'title' => '', + 'description' => 'The list of instances to add in this update. You do not need to specify this parameter if no instances need to be added.', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'InstanceId' => ['description' => 'The instance ID to associate.', 'type' => 'string', 'required' => false, 'example' => 'pc-bp159zj8zujwy3p07****', 'title' => ''], + 'InstanceType' => [ + 'description' => 'The type of the instance to associate. Valid values: **PHYSICALCONNECTION**: Express Connect circuit.', + 'enumValueTitles' => [], + 'type' => 'string', + 'enum' => ['PHYSICALCONNECTION'], + 'required' => false, + 'example' => 'PHYSICALCONNECTION', + 'title' => '', + ], + ], + 'required' => false, + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'required' => false, + 'maxItems' => 100, + 'example' => '', ], ], [ - 'name' => 'RegionId', + 'name' => 'RemoveInstanceList', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => 'The region ID of the NAT gateway to which the NAT CIDR block to be deleted belongs.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'eu-central-1', + 'title' => '', + 'description' => 'The list of instances to remove in this update. You do not need to specify this parameter if no instances need to be removed.', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'InstanceId' => ['description' => 'The instance ID of the associated instance.', 'type' => 'string', 'required' => false, 'example' => 'pc-bp1j37am632492qzw****', 'title' => ''], + 'InstanceType' => [ + 'description' => 'The type of the associated instance. Valid values: **PHYSICALCONNECTION**: Express Connect circuit.', + 'enumValueTitles' => [], + 'type' => 'string', + 'enum' => ['PHYSICALCONNECTION'], + 'required' => false, + 'example' => 'PHYSICALCONNECTION', + 'title' => '', + ], + ], + 'required' => false, + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'required' => false, + 'maxItems' => 100, + 'example' => '', ], ], ], @@ -61900,173 +47898,132 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '7021BEB1-210F-48A9-AB82-BE9A9110BB89', - ], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B457', 'title' => ''], ], 'description' => '', + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'ResourceNotFound.NatIpCidr', - 'errorMessage' => 'The specified resource of %s is not found.', - ], - [ - 'errorCode' => 'OperationFailed.DefaultNatIpCidr', - 'errorMessage' => 'The operation is failed because of default NatIPCidr can not be deleted.', - ], - [ - 'errorCode' => 'DependencyViolation.NatIp', - 'errorMessage' => 'The specified resource of %s depends on %s, so the operation cannot be completed.', - ], - [ - 'errorCode' => 'IncorrectStatus.NatGateway', - 'errorMessage' => '%The status of %s [%s] is incorrect.', - ], + ['errorCode' => 'IllegalParam.%s', 'errorMessage' => 'The param of %s is illegal.', 'description' => 'The parameter is invalid.'], + ['errorCode' => 'IncorrectStatus.Qos', 'errorMessage' => 'The status of QoS is incorrect.', 'description' => 'The status of the QoS policy is abnormal and the operation cannot be performed. Try again later.'], + ['errorCode' => 'IncorrectStatus.PconnIdList', 'errorMessage' => 'The status of PconnIdList is incorrect.', 'description' => 'This operation cannot be performed because the current physical connection is in an abnormal state.'], + ['errorCode' => 'ResourceAlreadyAssociated.PconnQos', 'errorMessage' => 'The specified resource of PconnQos is already associated.', 'description' => 'The physical line has been bound to another QoS policy.'], + ['errorCode' => 'EcQoSConflict', 'errorMessage' => 'The specified QoS is conflict with other QoS.', 'description' => 'The current QoS configuration conflicts with other configurations. Please try again later.'], + ['errorCode' => 'IncorrectBusinessStatus.PconnIdList', 'errorMessage' => 'The business status of PconnIdList is incorrect.', 'description' => 'This operation cannot be performed because the current physical line is in arrears.'], + ['errorCode' => 'EcPconnWithVpconnNotAllowAssociateQoS', 'errorMessage' => 'The specified Pconn with Vpconn is not allowed to associate with Qos.', 'description' => 'Exclusive physical lines that contain shared physical lines cannot be bound to QoS policies.'], + ['errorCode' => 'EcPconnWithCrossAccountVbrNotAllowAssociateQoS', 'errorMessage' => 'The specified Pconn with cross account VBR is not allowed to associate with Qos.', 'description' => 'Exclusive physical connections that contain cross-account virtual border routers cannot bind QoS policies.'], + ['errorCode' => 'EcDeviceNotSupportQoS', 'errorMessage' => 'The specified Pconn is on the device which is not supported QoS.', 'description' => 'The device where the physical connection is located does not support the QoS feature.'], + ['errorCode' => 'EcPconnVbrMustContainsAll', 'errorMessage' => 'In the single VBR with multiple Pconn scene, all Pconn must be associated with the same Qos.', 'description' => 'In a single VBR and multiple Pconn scenarios, all Pconn must be bound to a QoS policy.'], + ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'Modify an express connect qoS policy', + 'description' => '- Only dedicated Express Connect circuits that are in the Normal state and do not have overdue payments can be associated. Shared Express Connect circuit ports and Virtual Border Router (VBR) instances are not supported.'."\n" + ."\n" + .'- When associating dedicated Express Connect circuits, only full operations are supported. To dissociate all circuits, pass an empty string.'."\n" + ."\n" + .'- If a dedicated Express Connect circuit has shared Express Connect circuits or cross-account VBRs, you must activate the whitelist feature before association.'."\n" + ."\n" + .'- The device on which the dedicated Express Connect circuit resides must support the QoS feature before association.'."\n" + ."\n" + .'- In scenarios where a single VBR is associated with multiple Express Connect circuits, you must associate all Express Connect circuits of the VBR at the same time.', + 'changeSet' => [ + ['createdAt' => '2024-03-29T08:01:41.000Z', 'description' => 'Request parameters changed'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ModifyExpressConnectTrafficQos'], ], - 404 => [ - [ - 'errorCode' => 'InvalidRegionId.NotFound', - 'errorMessage' => 'The specified RegionId does not exist in our records.', + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], + ], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:ModifyExpressConnectTrafficQos', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'All Resource', 'arn' => '*'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"7021BEB1-210F-48A9-AB82-BE9A9110BB89\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 7021BEB1-210F-48A9-AB82-BE9A9110BB89\\n","errorExample":""}]', - 'title' => 'DeleteNatIpCidr', - 'description' => '## [](#)Description'."\n" - ."\n" - .'You cannot repeatedly call the **DeleteNatIpCidr** operation to delete a NAT CIDR block within the specified period of time.'."\n", - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B457\\"\\n}","type":"json"}]', ], - 'ModifyNatIpCidrAttribute' => [ - 'summary' => 'Modifies the name and description of a NAT CIDR block.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'ModifyExpressConnectTrafficQosQueue' => [ + 'summary' => 'Modifies a quality of service (QoS) queue.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'readAndWrite', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'update', - 'riskType' => 'none', - 'chargeType' => 'free', - ], + 'systemTags' => ['operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the NAT gateway to which the NAT CIDR block belongs.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'eu-central-1', - ], + 'schema' => ['description' => 'The region ID of the QoS policy.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-shanghai', 'title' => ''], ], [ - 'name' => 'NatIpCidrName', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The new name of the NAT CIDR block.'."\n" - ."\n" - .'The name must be 2 to 128 characters in length, and can contain digits, periods (.), underscores (\\_), and hyphens (-). It must start with a letter.'."\n", - 'type' => 'string', - 'required' => false, - 'docRequired' => true, - 'example' => 'newname', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'You can use the client to generate the value, but you must ensure that the value is unique among all requests. The client token can contain only ASCII characters.'."\n" + ."\n" + .'> If you do not set this parameter, the system uses **RequestId** as **ClientToken**. **RequestId** might be different for each API request.'."\n", 'type' => 'string', 'required' => false, 'docRequired' => true, 'example' => '123e4567-e89b-12d3-a456-426655440000', 'title' => ''], ], [ - 'name' => 'DryRun', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values:'."\n" - ."\n" - .'* **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.'."\n" - .'* **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.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'You can use the client to generate the value, but you must ensure that the value is unique among all requests. The client token can contain only ASCII characters.'."\n" + ."\n" + .'> If you do not set this parameter, the system uses **RequestId** as **ClientToken**. **RequestId** might be different for each API request.'."\n", 'type' => 'string', 'required' => false, 'docRequired' => true, 'example' => '123e4567-e89b-12d3-a456-426655440000', 'title' => ''], ], [ - 'name' => 'ClientToken', + 'name' => 'QueueName', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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.'."\n" - ."\n" - .'> 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.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3FF3898', - ], + 'schema' => ['title' => '', 'description' => 'The name of the QoS queue.'."\n" + ."\n" + .'The name must be 0 to 128 characters in length and cannot start with `http://` or `https://`.'."\n", 'type' => 'string', 'required' => false, 'example' => 'qos-queue-test'], ], [ - 'name' => 'NatIpCidrDescription', + 'name' => 'QueueDescription', 'in' => 'query', - 'schema' => [ - 'description' => 'The new description of the NAT CIDR block.'."\n" - ."\n" - .'The description must be 2 to 256 characters in length. The description must start with a letter but cannot start with `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'newtest', - ], + 'schema' => ['title' => '', 'description' => 'The description of the QoS queue.'."\n" + ."\n" + .'The description must be 0 to 256 characters in length and cannot start with `http://` or `https://`.'."\n", 'type' => 'string', 'required' => false, 'example' => 'qos-queue-test'], ], [ - 'name' => 'NatGatewayId', + 'name' => 'QosId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the Virtual Private Cloud (VPC) NAT gateway to which the NAT CIDR block belongs.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'ngw-gw8v16wgvtq26vh59****', - ], + 'schema' => ['title' => '', 'description' => 'The ID of the QoS policy.'."\n", 'type' => 'string', 'required' => true, 'example' => 'qos-2giu0a6vd5x0mv****'], ], [ - 'name' => 'NatIpCidr', + 'name' => 'QueueId', 'in' => 'query', - 'schema' => [ - 'description' => 'The NAT CIDR block whose name and description you want to modify.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => '172.16.0.0/24', - ], + 'schema' => ['title' => '', 'description' => 'The ID of the QoS queue.'."\n", 'type' => 'string', 'required' => true, 'example' => 'qos-queue-9nyx2u7n71s2rc****'], ], [ - 'name' => 'RegionId', + 'name' => 'BandwidthPercent', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the NAT gateway to which the NAT CIDR block belongs.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'eu-central-1', - ], + 'schema' => ['description' => 'The percentage of bandwidth allocated to the QoS queue.'."\n" + ."\n" + .'* If QueueType is set to **Medium**, this parameter is required. Valid values: 1 to 100.'."\n" + .'* If QueueType is set to **Default**, a value of - is returned.'."\n", 'type' => 'string', 'required' => false, 'example' => '100', 'title' => ''], ], ], 'responses' => [ @@ -62074,563 +48031,240 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '0ED8D006-F706-4D23-88ED-E11ED28DCAC0', - ], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '079874CD-AEC1-43E6-AC03-ADD96B6E4907', 'title' => ''], ], 'description' => '', + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'IllegalParamFormat.NatIpCidr', - 'errorMessage' => 'The param format of NatIpCidr is illegal.', - ], - ], - 404 => [ - [ - 'errorCode' => 'ResourceNotFound.NatIpCidr', - 'errorMessage' => 'The specified resource of NatIpCidr is not found.', - ], + ['errorCode' => 'IllegalParam.%s', 'errorMessage' => 'The param of %s is illegal.', 'description' => 'The parameter is invalid.'], + ['errorCode' => 'IncorrectStatus.Qos', 'errorMessage' => 'The status of QoS is incorrect.', 'description' => 'The status of the QoS policy is abnormal and the operation cannot be performed. Try again later.'], + ['errorCode' => 'EcQoSConflict', 'errorMessage' => 'The specified QoS is conflict with other QoS.', 'description' => 'The current QoS configuration conflicts with other configurations. Please try again later.'], + ['errorCode' => 'QuotaExceeded.QosMediumPriorityQueueBandwidthPercent', 'errorMessage' => 'The quota of QosMediumPriorityQueueBandwidthPercent is exceeded.', 'description' => 'The sum of the bandwidth percentages of the normal priority queues in the QoS policy exceeds the specification.'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"0ED8D006-F706-4D23-88ED-E11ED28DCAC0\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 0ED8D006-F706-4D23-88ED-E11ED28DCAC0\\n","errorExample":""}]', - 'title' => 'ModifyNatIpCidrAttribute', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'ModifyExpressConnectTrafficQosQueue', + 'changeSet' => [], + 'ramActions' => [], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"079874CD-AEC1-43E6-AC03-ADD96B6E4907\\"\\n}","type":"json"}]', ], - 'ListNatIpCidrs' => [ - 'summary' => 'Queries the CIDR blocks of a specified NAT gateway.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'ModifyExpressConnectTrafficQosRule' => [ + 'summary' => 'Modifies a quality of service (QoS) rule.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'readAndWrite', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'list', - 'riskType' => 'none', - 'chargeType' => 'free', - ], + 'systemTags' => ['operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the Virtual Private Cloud (VPC) NAT gateway that you want to query.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'eu-central-1', - ], + 'schema' => ['description' => 'The region ID of the QoS policy.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-shanghai'."\n", 'title' => ''], ], [ - 'name' => 'NatGatewayId', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the VPC NAT gateway that you want to query.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'ngw-gw8v16wgvtq26vh59****', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'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 and cannot exceed 64 characters in length.'."\n", 'type' => 'string', 'required' => false, 'docRequired' => true, 'example' => '0c593ea1-3bea-11e9-b96b-88e9fe637760', 'title' => ''], ], [ - 'name' => 'NatIpCidr', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The CIDR block of the NAT gateway that you want to query.'."\n", - 'type' => 'string', - 'required' => false, - 'docRequired' => false, - 'example' => '172.16.0.0/24', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'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 and cannot exceed 64 characters in length.'."\n", 'type' => 'string', 'required' => false, 'docRequired' => true, 'example' => '0c593ea1-3bea-11e9-b96b-88e9fe637760', 'title' => ''], ], [ - 'name' => 'DryRun', + 'name' => 'QosId', 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to only precheck this request. Valid values:'."\n" - ."\n" - .'* **true**: checks the API request. The CIDR blocks of the NAT gateway are not queried if the API request passes the precheck. The system checks whether your AccessKey pair is valid, whether the Resource Access Management (RAM) user is authorized, and whether the required parameters are set. If the request fails to pass the precheck, the corresponding error message is returned. If the check succeeds, the DryRunOperation error code is returned.'."\n" - .'* **false**: sends the API request. If the request passes the precheck, 2xx HTTP status code is returned and the CIDR blocks of the NAT gateway are queried. This is the default value.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['title' => '', 'description' => 'The ID of the QoS policy.'."\n", 'type' => 'string', 'required' => true, 'example' => 'qos-2giu0a6vd5x0mv****'], ], [ - 'name' => 'ClientToken', + 'name' => 'QueueId', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'You can use the client to generate the value, but you must make sure that it is unique among different requests. The token can contain only ASCII characters and cannot exceed 64 characters in length.'."\n" - ."\n" - .'> If you do not set this parameter, the system automatically uses **RequestId** as **ClientToken**. **RequestId** may be different for each API request.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3FF3898', - ], + 'schema' => ['title' => '', 'description' => 'The ID of the QoS queue.'."\n", 'type' => 'string', 'required' => true, 'example' => 'qos-queue-9nyx2u7n71s2rc****'], ], [ - 'name' => 'NatIpCidrStatus', + 'name' => 'Priority', 'in' => 'query', - 'schema' => [ - 'description' => 'The status of the CIDR block that you want to query. Set the value to **Available**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'Available', - ], + 'schema' => ['description' => 'The priority of the QoS rule. Valid values: **1** to **9000**. A larger value indicates a higher priority. The priority of each QoS rule must be unique in the same QoS policy.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1', 'title' => ''], ], [ - 'name' => 'NextToken', + 'name' => 'Protocol', 'in' => 'query', 'schema' => [ - 'description' => 'The token that is used for the next query. Set the value as needed.'."\n" + 'description' => 'The protocol of the QoS rule. Valid values:'."\n" ."\n" - .'* If this is your first query or no next query is to be sent, ignore this parameter.'."\n" - .'* If a next query is to be sent, set the value to the value of NextToken that is returned from the last call.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'caeba0bbb2be03f84eb48b699f0a4883', - ], - ], - [ - 'name' => 'MaxResults', - 'in' => 'query', - 'schema' => [ - 'description' => 'The number of entries to return on each page. Valid values: **1** to **100**. Default value: **20**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '20', - ], - ], - [ - 'name' => 'NatIpCidrName', - 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => 'The name of the CIDR block that you want to query. Valid values of **N**: **1** to **20**.', - 'type' => 'array', - 'items' => [ - 'description' => 'The name of the CIDR block that you want to query. Valid values of **N**: **1** to **20**.', - 'type' => 'string', - 'required' => false, - 'example' => 'cidrname', - ], + .'* **ALL**'."\n" + .'* **ICMP(IPv4)**'."\n" + .'* **ICMPv6(IPv6)**'."\n" + .'* **TCP**'."\n" + .'* **UDP**'."\n" + .'* **GRE**'."\n" + .'* **SSH**'."\n" + .'* **Telnet**'."\n" + .'* **HTTP**'."\n" + .'* **HTTPS**'."\n" + .'* **MS SQL**'."\n" + .'* **Oracle**'."\n" + .'* **MySql**'."\n" + .'* **RDP**'."\n" + .'* **PostgreSQL**'."\n" + .'* **Redis**'."\n", + 'type' => 'string', 'required' => false, - 'example' => 'test', - 'maxItems' => 100, + 'enumValueTitles' => [], + 'example' => 'ALL', + 'title' => '', ], ], [ - 'name' => 'NatIpCidrs', + 'name' => 'SrcCidr', 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => 'The CIDR block of the NAT gateway that you want to query. Valid values of **N**: **1** to **20**.', - 'type' => 'array', - 'items' => [ - 'description' => 'The CIDR block of the NAT gateway that you want to query. Valid values of **N**: **1** to **20**.', - 'type' => 'string', - 'required' => false, - 'example' => '172.16.0.0/24', - ], - 'required' => false, - 'example' => '172.16.0.0/24', - 'maxItems' => 100, - ], + 'schema' => ['description' => 'The source IPv4 CIDR block that matches the QoS rule traffic.'."\n" + ."\n" + .'> When this parameter is unavailable, specify **SrcIPv6Cidr** or **DstIPv6Cidr**.'."\n", 'type' => 'string', 'required' => false, 'example' => '1.1.**.**/24', 'title' => ''], ], [ - 'name' => 'RegionId', + 'name' => 'DstCidr', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the Virtual Private Cloud (VPC) NAT gateway that you want to query.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'eu-central-1', - ], - ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'NextToken' => [ - 'description' => 'The token that is used for the next query. Valid values:'."\n" - ."\n" - .'* If the value of **NextToken** is not returned, it indicates that no next query is to be sent.'."\n" - .'* If the value of **NextToken** is returned, the value indicates the token that is used for the next query.'."\n", - 'type' => 'string', - 'example' => 'caeba0bbb2be03f84eb48b699f0a4883', - ], - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => '7479A224-4A28-4895-9604-11F48BCE6A88', - ], - 'TotalCount' => [ - 'description' => 'The number of CIDR blocks that are returned.'."\n", - 'type' => 'string', - 'example' => '1', - ], - 'NatIpCidrs' => [ - 'description' => 'The CIDR blocks of the NAT gateway.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'CreationTime' => [ - 'description' => 'The time when the CIDR block was created.'."\n", - 'type' => 'string', - 'example' => '2021-06-28T20:50Z', - ], - 'NatIpCidrId' => [ - 'description' => 'The ID of the CIDR block of the NAT gateway.'."\n", - 'type' => 'string', - 'example' => 'vpcnatcidr-gw8ov42ei6xh1jys2****', - ], - 'IsDefault' => [ - 'description' => 'Indicates whether the CIDR block is the default CIDR block of the NAT gateway. Valid values:'."\n" - ."\n" - .'* **true**: The CIDR block is the default CIDR block of the NAT gateway.'."\n" - .'* **false**: The CIDR block is not the default CIDR block of the NAT gateway.'."\n", - 'type' => 'boolean', - 'example' => 'true', - ], - 'NatIpCidrStatus' => [ - 'description' => 'The status of the CIDR block of the NAT gateway. If **Available** is returned, it indicates that the CIDR block is available.'."\n", - 'type' => 'string', - 'example' => 'Available', - ], - 'NatIpCidrName' => [ - 'description' => 'The name of the CIDR block of the NAT gateway.'."\n", - 'type' => 'string', - 'example' => 'Name', - ], - 'NatIpCidr' => [ - 'description' => 'The CIDR block of the NAT gateway.'."\n", - 'type' => 'string', - 'example' => '172.16.0.0/24', - ], - 'NatGatewayId' => [ - 'description' => 'The ID of the VPC NAT gateway.'."\n", - 'type' => 'string', - 'example' => 'ngw-gw8v16wgvtq26vh59****', - ], - 'NatIpCidrDescription' => [ - 'description' => 'The description of the CIDR block of the NAT gateway.'."\n", - 'type' => 'string', - 'example' => 'test', - ], - ], - ], - ], - ], - ], - ], - ], - 'errorCodes' => [ - 404 => [ - [ - 'errorCode' => 'InvalidRegionId.NotFound', - 'errorMessage' => 'The specified RegionId does not exist in our records.', - ], - ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"NextToken\\": \\"caeba0bbb2be03f84eb48b699f0a4883\\",\\n \\"RequestId\\": \\"7479A224-4A28-4895-9604-11F48BCE6A88\\",\\n \\"TotalCount\\": \\"1\\",\\n \\"NatIpCidrs\\": [\\n {\\n \\"CreationTime\\": \\"2021-06-28T20:50Z\\",\\n \\"NatIpCidrId\\": \\"vpcnatcidr-gw8ov42ei6xh1jys2****\\",\\n \\"IsDefault\\": true,\\n \\"NatIpCidrStatus\\": \\"Available\\",\\n \\"NatIpCidrName\\": \\"Name\\",\\n \\"NatIpCidr\\": \\"172.16.0.0/24\\",\\n \\"NatGatewayId\\": \\"ngw-gw8v16wgvtq26vh59****\\",\\n \\"NatIpCidrDescription\\": \\"test\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\n caeba0bbb2be03f84eb48b699f0a4883\\n 7479A224-4A28-4895-9604-11F48BCE6A88\\n 1\\n \\n 2021-06-28T20:50Z\\n vpcnatcidr-gw8ov42ei6xh1jys2****\\n true\\n Available\\n default\\n 172.16.0.0/24\\n ngw-gw8v16wgvtq26vh59****\\n default\\n \\n","errorExample":""}]', - 'title' => 'ListNatIpCidrs', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'CreateIpv4Gateway' => [ - 'summary' => 'Creates an IPv4 gateway.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], + 'schema' => ['description' => 'The destination IPv4 CIDR block that matches the QoS rule traffic.'."\n" + ."\n" + .'> When this parameter is unavailable, specify **SrcIPv6Cidr** or **DstIPv6Cidr**.'."\n", 'type' => 'string', 'required' => false, 'example' => '1.1.**.**/24', 'title' => ''], ], - ], - 'operationType' => 'readAndWrite', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'create', - 'riskType' => 'none', - 'chargeType' => 'free', - ], - 'parameters' => [ [ - 'name' => 'Ipv4GatewayName', + 'name' => 'SrcIPv6Cidr', 'in' => 'query', - 'schema' => [ - 'description' => 'The name of the IPv4 gateway.'."\n" - ."\n" - .'The name must be 1 to 128 characters in length, and cannot start with `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'ipv4', - ], + 'schema' => ['description' => 'The source IPv6 CIDR block that matches the QoS rule traffic.'."\n" + ."\n" + .'> When this parameter is unavailable, specify **SrcCidr** or **DstCidr**.'."\n", 'type' => 'string', 'required' => false, 'example' => '2001:0db8:1234:****::/64', 'title' => ''], ], [ - 'name' => 'Ipv4GatewayDescription', + 'name' => 'DstIPv6Cidr', 'in' => 'query', - 'schema' => [ - 'description' => 'The description of the IPv4 gateway.'."\n" - ."\n" - .'The description must be 1 to 256 characters in length and cannot start with `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'test', - ], + 'schema' => ['description' => 'The destination IPv6 CIDR block that matches the QoS rule traffic.'."\n" + ."\n" + .'> When this parameter is unavailable, specify **SrcCidr** or **DstCidr**.'."\n", 'type' => 'string', 'required' => false, 'example' => '2001:0db8:1234:****::/64', 'title' => ''], ], [ - 'name' => 'VpcId', + 'name' => 'SrcPortRange', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the VPC where you want to create the IPv4 gateway.'."\n" - ."\n" - .'You can create only one IPv4 gateway in a VPC.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'vpc-5tss06uvoyps5xoya****', - ], + 'schema' => ['description' => 'The range of source ports that match the QoS rule traffic. Valid values: **0** to **65535**. If the traffic does not match, the value is -1. You can specify only one port. The start port number must be the same as the end port number.'."\n", 'type' => 'string', 'required' => false, 'example' => '-1/-1', 'title' => ''], ], [ - 'name' => 'DryRun', + 'name' => 'DstPortRange', 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to perform a dry run. Valid values:'."\n" - ."\n" - .'* **true**: performs a dry run. The system checks the required parameters, request syntax, and 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.'."\n" - .'* **false** (default): performs a dry run and sends the request. If the request passes the dry run, a 2xx HTTP status code is returned and the operation is performed.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['description' => 'The range of destination ports that match the QoS rule traffic. Valid values: **0** to **65535**. If the traffic does not match, the value is -1. You can specify only one port. The start port number must be the same as the end port number. Different protocols correspond to different ports. Valid values:'."\n" + ."\n" + .'* **ALL** (uneditable): -1/-1.'."\n" + .'* **ICMP(IPv4)** (uneditable): -1/-1.'."\n" + .'* **ICMPv6(IPv6)** (uneditable): -1/-1.'."\n" + .'* **TCP** (editable): -1/-1.'."\n" + .'* **UDP** (editable): -1/-1.'."\n" + .'* **GRE** (uneditable): -1/-1.'."\n" + .'* **SSH** (uneditable): 22/22.'."\n" + .'* **Telnet** (uneditable): 23/23.'."\n" + .'* **HTTP** (uneditable): 80/80.'."\n" + .'* **HTTPS** (uneditable): 443/443.'."\n" + .'* **MS SQL** (uneditable): 1443/1443.'."\n" + .'* **Oracle** (uneditable): 1521/1521.'."\n" + .'* **MySql** (uneditable): 3306/3306.'."\n" + .'* **RDP** (uneditable): 3389/3389.'."\n" + .'* **PostgreSQL** (uneditable): 5432/5432.'."\n" + .'* **Redis** (uneditable): 6379/6379.'."\n", 'type' => 'string', 'required' => false, 'example' => '-1/-1', 'title' => ''], ], [ - 'name' => 'ClientToken', + 'name' => 'MatchDscp', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'You can use the client to generate the value, but you must make sure that it is unique among different requests. ClientToken can contain only ASCII characters.'."\n" - ."\n" - .'> If you do not set this parameter, the system sets **ClientToken** to the value of **RequestId**. The value of **RequestId** for each API request is different.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-426655440000', - ], + 'schema' => ['description' => 'The DSCP value that matches the QoS rule traffic. Valid values: **0** to **63**. If no value is matched, the value is -1.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1', 'title' => ''], ], [ - 'name' => 'RegionId', + 'name' => 'RemarkingDscp', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region where you want to create the IPv4 gateway.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'ap-southeast-6', - ], + 'schema' => ['description' => 'The new DSCP value. Valid values: **0** to **63**. If you do not change the value, set the value to -1.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1', 'title' => ''], ], [ - 'name' => 'ResourceGroupId', + 'name' => 'RuleName', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the resource group.'."\n", - 'type' => 'string', - 'required' => false, - 'docRequired' => false, - 'example' => 'rg-acfmxazb4ph6aiy****', - ], + 'schema' => ['description' => 'The name of the QoS rule.'."\n" + ."\n" + .'The name must be 0 to 128 characters in length and cannot start with `http://` or `https://`.'."\n", 'type' => 'string', 'required' => false, 'example' => 'qos-rule-test', 'title' => ''], ], [ - 'name' => 'Tag', + 'name' => 'RuleDescription', 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => 'The tags of the resource.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => 'The key of tag N to add to the resource. You can specify up to 20 tag keys. The tag key cannot be an empty string.'."\n" - ."\n" - .'The tag key can be up to 128 characters in length. It cannot start with `aliyun` or `acs:`, and cannot contain `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'FinanceDept', - ], - 'Value' => [ - 'description' => '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.'."\n" - ."\n" - .'The tag value can be up to 128 characters in length and cannot contain `http://` or `https://`. The tag value cannot start with `aliyun` or `acs:`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'FinanceJoshua', - ], - ], - 'required' => false, - ], - 'required' => false, - 'maxItems' => 21, - ], + 'schema' => ['description' => 'The description of the QoS rule.'."\n" + ."\n" + .'The description must be 0 to 256 characters in length and cannot start with `http://` or `https://`.'."\n", 'type' => 'string', 'required' => false, 'example' => 'qos-rule-test', 'title' => ''], ], [ - 'name' => 'RegionId', + 'name' => 'RuleId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region where you want to create the IPv4 gateway.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'ap-southeast-6', - ], + 'schema' => ['description' => 'The ID of the QoS rule.'."\n", 'type' => 'string', 'required' => true, 'example' => 'qos-rule-iugg0l9x27f2no****', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => '', 'type' => 'object', 'properties' => [ - 'Ipv4GatewayId' => [ - 'description' => 'The ID of the IPv4 gateway.'."\n", - 'type' => 'string', - 'example' => 'ipv4gw-5tsnc6s4ogsedtp3k****', - ], - 'ResourceGroupId' => [ - 'description' => 'The ID of the resource group.'."\n", - 'type' => 'string', - 'example' => 'rg-acfmxazb4ph6aiy****', - ], - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => 'F282742B-1BBB-5F63-A3AF-E92EC575A1A6', - ], + 'RequestId' => ['title' => '', 'description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '7B48B4B9-1EAD-469F-B488-594DAB4B6A1A'], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'OperationDenied.ExistDirectEip', - 'errorMessage' => 'The operation is not allowed because of existing direct eip.', - ], - [ - 'errorCode' => 'UnsupportedRegion', - 'errorMessage' => 'The feature of ipv4Gateway is not supported in the region.', - ], - [ - 'errorCode' => 'Forbidden.OperateShareResource', - 'errorMessage' => 'You cannot operate shared resources.', - ], - [ - 'errorCode' => 'OperationDenied.SubnetRouteV1Exist', - 'errorMessage' => 'The operation is not allowed because of existing subnetRouteV1.', - ], - [ - 'errorCode' => 'OperationDenied.NormalNatExist', - 'errorMessage' => 'The operation is not allowed because of existing normalNat.', - ], - [ - 'errorCode' => 'OperationDenied.VpcExistIpv4Gateway', - 'errorMessage' => 'An IPv4 gateway already exists in the VPC.', - ], - [ - 'errorCode' => 'UnsupportedFeature.Ipv4Gateway', - 'errorMessage' => 'The feature of ipv4Gateway is not supported for [%s].', - ], - [ - 'errorCode' => 'OperationDenied.VpnExist', - 'errorMessage' => 'The operation is not allowed because of existing vpn.', - ], - [ - 'errorCode' => 'OperationDenied.DirectEipExist', - 'errorMessage' => 'The operation is not allowed because of existing directEip.', - ], - [ - 'errorCode' => 'OperationFailed.GetNfvServiceList', - 'errorMessage' => 'The operation is failed because of get nfv serviceList failed.', - ], - [ - 'errorCode' => 'IncorrectStatus.Vpc', - 'errorMessage' => 'The status of %s [%s] is incorrect.', - ], - [ - 'errorCode' => 'OperationFailed.VpcNotExist', - 'errorMessage' => 'The operation is failed because of vpc is not found.', - ], - [ - 'errorCode' => 'IllegalParam.ResourceGroupId', - 'errorMessage' => 'Invalid ResourceGroupld value.', + ['errorCode' => 'IllegalParam.%s', 'errorMessage' => 'The param of %s is illegal.', 'description' => 'The parameter is invalid.'], + ['errorCode' => 'IncorrectStatus.Qos', 'errorMessage' => 'The status of QoS is incorrect.', 'description' => 'The status of the QoS policy is abnormal and the operation cannot be performed. Try again later.'], + ['errorCode' => 'EcQoSConflict', 'errorMessage' => 'The specified QoS is conflict with other QoS.', 'description' => 'The current QoS configuration conflicts with other configurations. Please try again later.'], + ['errorCode' => 'EcQosRuleNotAllowV4AndV6', 'errorMessage' => 'QoS rules do not allow IPv4 and IPv6 addresses to be mixed and updated.', 'description' => 'Both IPv4 address configuration and IPv6 address configuration are not allowed in a QoS rule. If the original configuration network type is IPv4 and cannot be modified to IPv6 (or vice versa), please check and modify it.'], + ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'ModifyExpressConnectTrafficQosRule', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:ModifyExpressConnectTrafficQosRule', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'All Resource', 'arn' => '*'], + ], ], ], ], - 'staticInfo' => [ - 'returnType' => 'asynchronous', - 'callback' => 'Vpc::2016-04-28::GetIpv4GatewayAttribute', - 'callbackInterval' => 3, - 'maxCallbackTimes' => 10, + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"7B48B4B9-1EAD-469F-B488-594DAB4B6A1A\\"\\n}","type":"json"}]', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ModifyExpressConnectTrafficQosRule'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Ipv4GatewayId\\": \\"ipv4gw-5tsnc6s4ogsedtp3k****\\",\\n \\"ResourceGroupId\\": \\"rg-acfmxazb4ph6aiy****\\",\\n \\"RequestId\\": \\"F282742B-1BBB-5F63-A3AF-E92EC575A1A6\\"\\n}","errorExample":""},{"type":"xml","example":"\\n ipv4gw-5tsnc6s4ogsedtp3k****\\n rg-acfmxazb4ph6aiy****\\n F282742B-1BBB-5F63-A3AF-E92EC575A1A6\\n","errorExample":""}]', - 'title' => 'CreateIpv4Gateway', - 'description' => '* **CreateIpv4Gateway** is an asynchronous operation. After you send a request, the system returns a request ID and runs the task in the background. You can call the [GetIpv4GatewayAttribute](~~407670~~) operation to query the status of an IPv4 gateway:'."\n" - ."\n" - .' * If the IPv4 gateway is in the **Creating** state, the IPv4 gateway is being created.'."\n" - .' * If the IPv4 gateway is in the **Created** state, the IPv4 gateway is created.'."\n" - ."\n" - .'* You cannot repeatedly call the **CreateIpv4Gateway** operation to create IPv4 gateways in a virtual private cloud (VPC) within the specified period of time.', ], - 'DeleteIpv4Gateway' => [ - 'summary' => 'Deletes an IPv4 gateway.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'ModifyFlowLogAttribute' => [ + 'summary' => 'Modifies the name and description of a flow log.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -62638,1444 +48272,1009 @@ ], 'operationType' => 'readAndWrite', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'delete', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeCode' => '38044', - 'abilityTreeNodes' => [ - 'FEATUREvpcTEV4TQ', - ], - ], + 'systemTags' => ['operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ - 'name' => 'Ipv4GatewayId', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the IPv4 gateway that you want to delete.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'ipv4gw-5tsnc6s4ogsedtp3k****', - ], + 'schema' => ['description' => 'The ID of the region where the flow log is created.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'example' => 'cn-qingdao', 'title' => ''], ], [ - 'name' => 'InternetMode', + 'name' => 'FlowLogId', 'in' => 'query', - 'schema' => [ - 'description' => 'Select the public network mode of the VPC after deleting the IPv4 gateway. The values are:'."\n" - .'- **private**: Default value, after deleting the IPv4 gateway, the VPC will become a pure private VPC without public network access capability. '."\n" - .'- **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.', - 'type' => 'string', - 'required' => false, - 'docRequired' => false, - 'enumValueTitles' => [ - 'private' => 'private', - 'public' => 'public', - ], - 'example' => 'public', - ], + 'schema' => ['description' => 'The ID of the flow log.'."\n", 'type' => 'string', 'required' => true, 'example' => 'fl-m5e8vhz2t21sel1nq****', 'title' => ''], ], [ - 'name' => 'RegionId', + 'name' => 'FlowLogName', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the IPv4 gateway that you want to delete.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'ap-southeast-6', - ], + 'schema' => ['description' => 'The new name of the flow log.'."\n" + ."\n" + .'The name must be 1 to 128 characters in length and cannot start with `http://` or `https://`.'."\n", 'type' => 'string', 'required' => false, 'example' => 'myFlowlog', 'title' => ''], ], [ - 'name' => 'ClientToken', + 'name' => 'Description', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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.'."\n" - ."\n" - .'> 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.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-426655440000', - ], + 'schema' => ['description' => 'The new description of the flow log.'."\n" + ."\n" + .'The description must be 1 to 256 characters in length and cannot start with `http://` or `https://`.'."\n", 'type' => 'string', 'required' => false, 'example' => 'This is my Flowlog.', 'title' => ''], ], [ - 'name' => 'DryRun', + 'name' => 'AggregationInterval', 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to perform a dry run, without performing the actual request. Valid values:'."\n" - ."\n" - .'* **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.'."\n" - .'* **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.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['description' => 'The new sampling interval of the flow log. Unit: minutes. Valid values: **1**, **5**, and **10**.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1', 'title' => ''], ], [ - 'name' => 'RegionId', + 'name' => 'IpVersion', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the IPv4 gateway that you want to delete.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'ap-southeast-6', - ], + 'schema' => ['description' => 'The version of the IP address. Valid values:'."\n" + ."\n" + .'* **IPV4**: the IPv4 address.'."\n" + .'* **DualStack**: includes IPv4 and IPv6 address', 'type' => 'string', 'required' => false, 'example' => 'IPv4', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'description' => '', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '21133AC0-0636-521B-A400-253818691A56', - ], + 'Success' => ['description' => 'Indicates whether the call is successful. Valid values:'."\n" + ."\n" + .'* **true**: yes'."\n" + .'* **false**: no'."\n", 'type' => 'string', 'example' => 'true', 'title' => ''], + 'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => 'F7DDDC17-FA06-4AC2-8F35-59D2470FCFC1', 'title' => ''], ], - 'description' => '', + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'ResourceNotFound.Ipv4Gateway', - 'errorMessage' => 'The specified resource ipv4Gateway is not found.', - ], - [ - 'errorCode' => 'IncorrectStatus.Ipv4Gateway', - 'errorMessage' => 'The status of %s [%s] is incorrect.', - ], - [ - 'errorCode' => 'OperationDenied.RouteEntryExist', - 'errorMessage' => 'The operation is not allowed because of existing routeEntry point to ipv4Gateway.', - ], - [ - 'errorCode' => 'OperationDenied.GatewayAlreadyAssociated', - 'errorMessage' => 'The operation is not allowed because of the specified resource %s is already associated.', - ], - [ - 'errorCode' => 'OperationFailed.Ipv4GatewayUsedByEipBindIpAddress', - 'errorMessage' => 'Failed to delete the IPv4 gateway because the EIP associated with a private IP address requires the IPv4 gateway to implement outbound Internet access.', + ['errorCode' => 'IncorrectBusinessStatus.FlowLog', 'errorMessage' => 'The business status of flowLog is incorrect.', 'description' => 'The error message returned because you cannot create flow logs in the current business state.'], + ['errorCode' => 'InvalidInstanceId', 'errorMessage' => 'Instance does not exist.', 'description' => 'The error message returned because the specified instance does not exist.'], + ['errorCode' => 'ProjectOrLogstoreNotExist', 'errorMessage' => 'The specified project or logstore does not exist.', 'description' => 'The error message returned because the specified project or Logstore does not exist.'], + ['errorCode' => 'SourceProjectNotExist', 'errorMessage' => 'The Source Project or logstore does not exist.', 'description' => 'The error message returned because the source project or Logstore does not exist.'], + ['errorCode' => 'Unauthorized', 'errorMessage' => 'This api does not support sub user or role.', 'description' => 'The error message returned because you cannot call this operation as a RAM user.'], + ['errorCode' => 'InvalidInstanceId.NotFound', 'errorMessage' => 'The specfied instance is not existed.', 'description' => ''], + ['errorCode' => 'RuleExist', 'errorMessage' => 'The rule has already existed.', 'description' => ''], + ['errorCode' => 'InvalidHdMonitorStatus', 'errorMessage' => 'Current instance status is not valid for this action.', 'description' => ''], + ['errorCode' => 'FlowLogNumberOverLimit', 'errorMessage' => 'This user has reached the maximum instance number of flowlog.', 'description' => ''], + ['errorCode' => 'InvalidTrafficType.NotFound', 'errorMessage' => 'Invalid traffic type.', 'description' => ''], + ['errorCode' => 'IncorrectStatus.flowlog', 'errorMessage' => 'Invalid flowlog status.', 'description' => 'The flow log cannot be disabled because it is in an invalid state.'], + ['errorCode' => 'InvalidName.Malformed', 'errorMessage' => 'The specified name is not valid.', 'description' => ''], + ['errorCode' => 'IllegalParam.AggregationInterval', 'errorMessage' => 'The param of aggregationInterval is illegal.', 'description' => ''], + ['errorCode' => 'Forbidden.OperateManagedFlowLog', 'errorMessage' => 'Authentication is failed for operate managed flowlog.', 'description' => 'Authentication failed when operating the managed flow log.'], + ['errorCode' => 'UnsupportedFeature.IpVersion', 'errorMessage' => 'The ipversion type is not supported.', 'description' => ''], + ['errorCode' => 'IllegalParam.IpVersion', 'errorMessage' => 'The parameter of IpVersion is illegal.', 'description' => ''], + ['errorCode' => 'OperationDenied.NisTrafficAnalyzerAggregationIntervalMismatch', 'errorMessage' => 'The sampling interval of the FlowLog is greater than the sampling interval of the NIS Traffic Analyzer.', 'description' => 'The sampling interval of the FlowLog is greater than the sampling interval of the NIS Traffic Analyzer.'], + ['errorCode' => 'OperationDenied.NisTrafficAnalyzerNotActive', 'errorMessage' => 'The specified NIS Traffic Analyzer is not enabled.', 'description' => 'The specified NIS Traffic Analyzer is not enabled.'], + ['errorCode' => 'OperationDenied.NisTrafficAnalyzerNotFound', 'errorMessage' => 'The specified NIS Traffic Analyzer does not exist.', 'description' => 'The specified NIS Traffic Analyzer does not exist.'], + ['errorCode' => 'OperationFailed.InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error.', 'description' => 'Unknown error. Please retry the operation. The error still exists. Please submit the work order for processing.'], + ['errorCode' => 'OperationDenied.InvalidInstanceDeliverScope', 'errorMessage' => 'When modifying the delivery purpose of the FlowLog instance or starting and stopping NIS traffic analysis, you specify the type of delivery that is not allowed.', 'description' => 'When modifying the delivery purpose of the FlowLog instance or starting and stopping NIS traffic analysis, you specify the type of delivery that is not allowed.'], + ], + ], + 'staticInfo' => ['returnType' => 'asynchronous', 'callback' => 'Vpc::2016-04-28::DescribeFlowLogs', 'callbackInterval' => 3000, 'maxCallbackTimes' => 10], + 'title' => 'ModifyFlowLogAttribute', + 'description' => '- **ModifyFlowLogAttribute**接口属于异步接口,即系统会返回一个请求ID,但该流日志尚未修改成功,系统后台的修改任务仍在进行。您可以调用[DescribeFlowLogs](~~87923~~)查询流日志的修改状态:'."\n" + .' - 当流日志处于**Modifying**状态时,表示流日志正在修改中。'."\n" + .' - 当流日志处于**Active**或者**Inactive**状态时,表示流日志修改成功。'."\n" + .'- **ModifyFlowLogAttribute**接口不支持并发修改同一个流日志的属性。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2025-02-26T11:03:27.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2025-02-26T03:10:32.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2025-02-21T05:35:50.000Z', 'description' => 'Error codes changed, Request parameters changed'], + ['createdAt' => '2024-11-20T03:14:12.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-09-25T15:16:14.000Z', 'description' => 'Error codes changed, Request parameters changed'], + ['createdAt' => '2022-12-16T05:09:24.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2021-11-17T02:41:21.000Z', 'description' => 'Error codes changed, Request parameters changed'], + ], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:ModifyFlowLogAttribute', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'FlowLog', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:flowlog/{#FlowLogId}'], + ], ], ], ], - 'staticInfo' => [ - 'returnType' => 'asynchronous', - 'callback' => 'Vpc::2016-04-28::GetIpv4GatewayAttribute', - 'callbackInterval' => 3, - 'maxCallbackTimes' => 10, - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"21133AC0-0636-521B-A400-253818691A56\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 21133AC0-0636-521B-A400-253818691A56\\n","errorExample":""}]', - 'title' => 'DeleteIpv4Gateway', - 'description' => '### [](#)Description'."\n" - ."\n" - .'* Before you delete an IPv4 gateway, make sure that no route tables are associated with the IPv4 gateway.'."\n" - ."\n" - .'* **DeleteIpv4Gateway** is an asynchronous operation. After a request is sent, the system returns a **request ID** and runs the task in the background. You can call the [GetIpv4GatewayAttribute](~~407670~~) operation to query the status of the task.'."\n" - ."\n" - .' * If the IPv4 gateway is in the **Deleting** state, the IPv4 gateway is being deleted.'."\n" - .' * If the IPv4 gateway cannot be queried, the IPv4 gateway is deleted.'."\n" - ."\n" - .'* After you call the **DeleteIpv4Gateway** operation to delete an IPv4 gateway, you cannot call the operation again to delete the IPv4 gateway until the deletion task is complete.'."\n", - 'translator' => 'machine', + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Success\\": \\"true\\",\\n \\"RequestId\\": \\"F7DDDC17-FA06-4AC2-8F35-59D2470FCFC1\\"\\n}","type":"json"}]', ], - 'EnableVpcIpv4Gateway' => [ - 'summary' => 'Activates an IPv4 gateway.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'ModifyForwardEntry' => [ + 'summary' => 'Modifies a specified DNAT entry.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'readAndWrite', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'update', - 'riskType' => 'none', - 'chargeType' => 'free', - ], + 'systemTags' => ['operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ - 'name' => 'Ipv4GatewayId', + 'name' => 'ForwardTableId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the IPv4 gateway that you want to activate.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'ipv4gw-5tsp9lumsxoqizvq2****', - ], + 'schema' => ['description' => 'The ID of the DNAT table to which the DNAT entry belongs.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'ftb-8vbx8xu2lqj9qb334****', 'title' => ''], ], [ - 'name' => 'RegionId', + 'name' => 'ForwardEntryId', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the IPv4 gateway.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent list of regions.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'ap-southeast-6', - ], + 'schema' => ['description' => 'The ID of the DNAT entry to be modified.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'fwd-8vbn3bc8roygjp0gy****', 'title' => ''], ], [ - 'name' => 'DryRun', + 'name' => 'ExternalIp', 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to perform a dry run, without performing the actual request. Valid values:'."\n" - ."\n" - .'* **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.'."\n" - .'* **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.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['description' => '- If you modify a DNAT entry of an Internet NAT gateway, this parameter specifies the public IP address used to provide public network access.'."\n" + ."\n" + .'- If you modify a DNAT entry of a VPC NAT gateway, this parameter specifies the NAT IP address accessed by the external network.', 'type' => 'string', 'required' => false, 'example' => '116.85.XX.XX', 'title' => ''], ], [ - 'name' => 'ClientToken', + 'name' => 'ExternalPort', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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.'."\n" - ."\n" - .'> 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.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-426655440000', - ], + 'schema' => ['description' => '- If you modify a DNAT entry of an Internet NAT gateway, this parameter specifies the external port or port range used for port forwarding in the DNAT entry.'."\n" + .' - The port range must be within **1** to **65535**.'."\n" + .' - To specify a port range, separate the start and end ports with a forward slash (/), such as `10/20`.'."\n" + .' - If you modify both **ExternalPort** and **InternalPort**, and **ExternalPort** is set to a port range, **InternalPort** must also be set to a port range with the same number of ports. For example, if **ExternalPort** is set to `10/20`, **InternalPort** must be set to `80/90`.'."\n" + ."\n" + .'- If you modify a DNAT entry of a VPC NAT gateway, this parameter specifies the port accessed by the external network. Valid values: **1** to **65535**.', 'type' => 'string', 'required' => false, 'example' => '80', 'title' => ''], ], [ - 'name' => 'RouteTableList', + 'name' => 'InternalIp', 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => 'A list of route tables. The system adds a 0.0.0.0/0 route that points to the IPv4 gateway to the route tables.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'A list of route tables. The system adds a 0.0.0.0/0 route that points to the IPv4 gateway to the route tables. The system supports at most 10 route tables.'."\n" - ."\n" - .'> The route table and the IPv4 gateway must belong to the same virtual private cloud (VPC).'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'vtb-5ts0ohchwkp3dydt2****', - ], - 'required' => false, - 'maxItems' => 100, - ], + 'schema' => ['description' => '- If you modify a DNAT entry of an Internet NAT gateway, this parameter specifies the private IP address of the ECS instance that communicates with the Internet through the DNAT entry.'."\n" + ."\n" + .'- If you modify a DNAT entry of a VPC NAT gateway, this parameter specifies the private IP address that needs to communicate through the DNAT rule.', 'type' => 'string', 'required' => false, 'example' => '10.0.0.78', 'title' => ''], + ], + [ + 'name' => 'InternalPort', + 'in' => 'query', + 'schema' => ['description' => '- If you modify a DNAT entry of an Internet NAT gateway, this parameter specifies the internal port or port range used for port forwarding in the DNAT entry. Valid values: **1** to **65535**.'."\n" + ."\n" + .'- If you modify a DNAT entry of a VPC NAT gateway, this parameter specifies the port of the destination ECS instance to be mapped. Valid values: **1** to **65535**.', 'type' => 'string', 'required' => false, 'example' => '80', 'title' => ''], + ], + [ + 'name' => 'IpProtocol', + 'in' => 'query', + 'schema' => ['description' => 'The protocol type. Valid values:'."\n" + .' '."\n" + .'- **TCP**: forwards TCP packets.'."\n" + .' '."\n" + .'- **UDP**: forwards UDP packets.'."\n" + .' '."\n" + .'- **Any**: forwards packets of all protocols.', 'type' => 'string', 'required' => false, 'example' => 'TCP', 'title' => ''], + ], + [ + 'name' => 'ForwardEntryName', + 'in' => 'query', + 'schema' => ['description' => 'The new name of the DNAT entry.'."\n" + ."\n" + .'The name must be 2 to 128 characters in length and must start with a letter or a Chinese character. It cannot start with `http://` or `https://`.', 'type' => 'string', 'required' => false, 'example' => 'test', 'title' => ''], ], [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the IPv4 gateway.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent list of regions.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'ap-southeast-6', - ], + 'schema' => ['description' => 'The region ID of the NAT gateway.'."\n" + ."\n" + .'You can call [DescribeRegions](~~36063~~) to query the region ID.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => ' cn-hangzhou', 'title' => ''], + ], + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'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.'."\n" + ."\n" + .'> If you do not specify this parameter, the system automatically uses the **RequestId** of the API request as the **ClientToken**. The **RequestId** may be different for each API request.', 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-426655440000', 'title' => ''], + ], + [ + 'name' => 'PortBreak', + 'in' => 'query', + 'schema' => ['description' => 'Specifies whether to enable port breaking. Valid values:'."\n" + ."\n" + .'- **true**: enables port breaking.'."\n" + .'- **false**: does not enable port breaking. If a DNAT entry and an SNAT entry use the same public IP address and you want to configure a port number greater than `1024`, set `PortBreak` to `true`.', 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], + ], + [ + 'name' => 'DryRun', + 'in' => 'query', + 'schema' => ['description' => 'Specifies whether to perform a dry run. Valid values:'."\n" + .'- **true**: performs a dry run without modifying the DNAT entry. The system checks the required parameters, request format, 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.'."\n" + .'- **false** (default): performs a dry run and sends the request. If the request passes the dry run, an HTTP 2xx status code is returned and the DNAT entry is modified.', 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'description' => 'The request ID.', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B45', - ], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '2315DEB7-5E92-423A-91F7-4C1EC9AD97C3', 'title' => ''], ], - 'description' => '', + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'VPC_ROUTE_ENTRY_CIDR_BLOCK_DUPLICATE', - 'errorMessage' => 'Specified CIDR block is already exists.', - ], - [ - 'errorCode' => 'ResourceNotFound.Ipv4Gateway', - 'errorMessage' => 'The specified resource ipv4Gateway is not found.', - ], - [ - 'errorCode' => 'IncorrectStatus.Ipv4Gateway', - 'errorMessage' => 'The status of %s [%s] is incorrect.', - ], - [ - 'errorCode' => 'OperationFailed.Ipv4GatewayAlreadyActive.', - 'errorMessage' => 'The operation failed because of ipv4Gateway is already active.', - ], - [ - 'errorCode' => 'OperationDenied.ConflictOfAllZeroRouting', - 'errorMessage' => 'The operation is not allowed because of routetable [%s] exist all-zero route entry.', - ], - [ - 'errorCode' => 'UnsupportedFeature.Ipv4Gateway', - 'errorMessage' => 'The feature of ipv4Gateway is not supported for [%s].', - ], - [ - 'errorCode' => 'OperationDenied.VpnExist', - 'errorMessage' => 'The operation is not allowed because of existing vpn.', - ], - [ - 'errorCode' => 'OperationDenied.NatgatewayExist', - 'errorMessage' => 'The operation is not allowed because of existing nat.', - ], - [ - 'errorCode' => 'OperationDenied.DirectEipExist', - 'errorMessage' => 'The operation is not allowed because of existing directEip.', - ], - [ - 'errorCode' => 'OperationDenied.VpcHasAlreadyActive', - 'errorMessage' => 'The operation is not allowed because of vpc has already been active.', - ], + ['errorCode' => 'UnsupportedFeature.PortSegment', 'errorMessage' => 'The feature of PortSegment is not supported.', 'description' => ''], + ['errorCode' => 'ExclusiveParam.%sAnd%s', 'errorMessage' => 'The param of %s and %s are mutually exclusive.', 'description' => 'You cannot specify %s and %s at the same time.'], + ['errorCode' => 'InvalidIp.NotInNatgw', 'errorMessage' => 'The specified Ip not belong to natgateway.', 'description' => ''], + ['errorCode' => 'DuplicatedParam.InternalPort', 'errorMessage' => 'The param of %s is duplicated.', 'description' => 'Duplicate or occupied InternalPort parameter'], + ['errorCode' => 'DuplicatedParam.ExternalPort', 'errorMessage' => 'The param of %s is duplicated.', 'description' => 'The DNAT public network port has been used repeatedly.'], + ['errorCode' => 'OperationFailed.AnyPortConfig', 'errorMessage' => 'Operation failed because any port correspondence any protocol', 'description' => 'The operation failed. There is a conflict with another entry, any port or any protocol type.'], + ['errorCode' => 'OperationUnsupported.ForwardEntry', 'errorMessage' => 'Duplicated destination ip port is unsupported.', 'description' => 'You cannot specify duplicate destination IP addresses or destination ports.'], + ['errorCode' => 'IncorrectStatus.NatIp', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => 'The status of NatIp is incorrect.'], + ['errorCode' => 'Forbidden.IpHasBeenUsedInSnat', 'errorMessage' => 'The source ip can\'t be used. Because it has been used in snat.', 'description' => ''], + ['errorCode' => 'IncorrectStatus.ForwardEntry', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => 'The DNAT entry to be deleted is in an invalid state.'], + ['errorCode' => 'InvalidExternalIp.Malformed', 'errorMessage' => 'The specified ExternalIp is not a valid IP address.', 'description' => ''], + ['errorCode' => 'InvalidInternalIp.Malformed', 'errorMessage' => 'The specified InternalIp is not a valid IP address.', 'description' => ''], + ['errorCode' => 'InvalidExternalPort.Malformed', 'errorMessage' => 'The specified ExternalPort is not a valid port.', 'description' => ''], + ['errorCode' => 'InvalidInternalPort.Malformed', 'errorMessage' => 'The specified InternalPort is not a valid port.', 'description' => ''], + ['errorCode' => 'Forbidden.DestnationIpOutOfVpcCIDR', 'errorMessage' => 'The specified Destination Ip is Out of VPC CIDR.', 'description' => ''], + ['errorCode' => 'InvalidProtocal.ValueNotSupported', 'errorMessage' => 'The specified IpProtocol does not support.', 'description' => ''], + ['errorCode' => 'IncorretForwardEntryStatus', 'errorMessage' => 'Some Forward entry status blocked this operation..', 'description' => ''], + ['errorCode' => 'QuotaExceeded', 'errorMessage' => 'Forward entry quota exceeded in this route table.', 'description' => 'A route table can only have 200 custom route entries at most.'], + ['errorCode' => 'ForwardEntry.Duplicated', 'errorMessage' => 'The specified ExternalIp, IpProtocol, ExternalPort,InternalIp, InternalPort is duplicated', 'description' => ''], + ['errorCode' => 'Forbidden.ExternalIp.UsedInSnatTable', 'errorMessage' => 'The specified ExternalIp is already used in SnatTable', 'description' => ''], + ['errorCode' => 'Forbidden.Already.Bounded', 'errorMessage' => 'The specified instance already bounded', 'description' => ''], + ['errorCode' => 'InvalidIp.NotFound', 'errorMessage' => 'The specified ip does not exist.', 'description' => ''], + ['errorCode' => 'InvalidParameter.Name.Malformed', 'errorMessage' => 'The specified Name is not valid.', 'description' => ''], + ['errorCode' => 'IncorretStatus.ForwardEntry', 'errorMessage' => 'The Specified forwardEntry is not stable status, can not operation', 'description' => ''], + ['errorCode' => 'IllegalParam.AnyPortNotZero', 'errorMessage' => 'Any port port must be zero.', 'description' => 'You must set the destination port and source port to 0 when IpProtocol is set to Any.'], + ['errorCode' => 'Duplicated.DestinationPort', 'errorMessage' => 'The specified param DestinationPort is duplicated.', 'description' => ''], + ['errorCode' => 'InvalidForwardEntryId.NotFound', 'errorMessage' => 'Specified forward entry ID does not exist', 'description' => ''], + ['errorCode' => 'OperationUnsupported.EipInBinding', 'errorMessage' => 'Create snat entry with eip in associating status is unsupported.', 'description' => 'You cannot use an associated EIP when you create an SNAT entry.'], + ['errorCode' => 'QuotaExceeded.ForwardEntrySessionManytoOne', 'errorMessage' => 'The dnat session quota is exceed.', 'description' => 'The number of DNAT sessions exceeds the upper limit.'], + ['errorCode' => 'OperationFailed.ForwardEntryNotAllowSrcIpEqualDstIp', 'errorMessage' => 'The source IP of forward entry is not allowed to equal destination IP.', 'description' => 'The public IP address of the DNAT entry is not allowed to be equal to the private IP address.'], + ], + 404 => [ + ['errorCode' => 'ResourceNotFound.NatIp', 'errorMessage' => 'The specified resource of %s is not found.', 'description' => ''], + ['errorCode' => 'ResourceNotFound.ForwardEntry', 'errorMessage' => 'The specified resource of %s is not found.', 'description' => 'The specified %s resource does not exist.'], + ['errorCode' => 'InvalidRegionId.NotFound', 'errorMessage' => 'The specified RegionId does not exist in our records.', 'description' => ''], + ['errorCode' => 'InvalidForwardEntryId.NotFound', 'errorMessage' => 'Specified forward entry ID does not exist', 'description' => ''], + ['errorCode' => 'InvalidExternalIp.NotFound', 'errorMessage' => 'Specified External Ip address does not found on the VRouter', 'description' => ''], + ['errorCode' => 'InvalidForwardTableId.NotFound', 'errorMessage' => 'Specified forward table does not exist.', 'description' => ''], ], ], - 'staticInfo' => [ - 'returnType' => 'asynchronous', - 'callback' => 'Vpc::2016-04-28::GetIpv4GatewayAttribute', - 'callbackInterval' => 3, - 'maxCallbackTimes' => 10, - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B45\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 54B48E3D-DF70-471B-AA93-08E683A1B45\\n","errorExample":""}]', - 'title' => 'EnableVpcIpv4Gateway', - 'description' => '## [](#)Description'."\n" + 'title' => 'Modify a specified DNAT entry', + 'description' => '- **ModifyForwardEntry** is an asynchronous operation. After you send a request, the system returns a request ID, but the DNAT entry has not been modified yet. The modification task runs in the background. You can call [DescribeForwardTableEntries](~~36053~~) to query the status of the DNAT entry:'."\n" ."\n" - .'* **EnableVpcIpv4Gateway** is an asynchronous operation. After a request is sent, the system returns a **request ID** and runs the task in the background. You can call the [GetIpv4GatewayAttribute](~~407670~~) operation to query the status of an IPv4 gateway.'."\n" + .' - If the DNAT entry is in the **Pending** state, the DNAT entry is being modified. In this state, you can only perform query operations.'."\n" ."\n" - .' * If the IPv4 gateway is in the **Activating** state, the IPv4 gateway is being activated.'."\n" - .' * If the IPv4 gateway is in the **Created** state, the IPv4 gateway is activated.'."\n" + .' - If the DNAT entry is in the **Available** state, the DNAT entry is modified.'."\n" ."\n" - .'* You cannot repeatedly call the **EnableVpcIpv4Gateway** operation to activate an IPv4 gateway within the specified period of time.'."\n", - ], - 'UpdateIpv4GatewayAttribute' => [ - 'summary' => 'Modifies the description or name of an IPv4 gateway.', - 'methods' => [ - 'post', - 'get', + .'- **ModifyForwardEntry** does not support concurrent modifications of a DNAT entry within the same DNAT table.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2024-12-30T03:59:17.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-12-03T02:23:00.000Z', 'description' => 'Request parameters changed, Response parameters changed'], + ['createdAt' => '2024-10-23T06:17:17.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-03-01T06:45:49.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2022-12-02T02:41:29.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2022-11-07T11:48:27.000Z', 'description' => 'Error codes changed'], ], - 'schemes' => [ - 'http', - 'https', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ModifyForwardEntry'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], + ], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:ModifyForwardEntry', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'ForwardTable', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:forwardtable/{#ForwardTableId}'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"2315DEB7-5E92-423A-91F7-4C1EC9AD97C3\\"\\n}","type":"json"}]', + ], + 'ModifyFullNatEntryAttribute' => [ + 'summary' => 'Modifies a FULLNAT entry.', + 'methods' => ['post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'write', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'update', - 'riskType' => 'none', - 'chargeType' => 'free', - ], + 'systemTags' => ['operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ - 'name' => 'Ipv4GatewayId', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the IPv4 gateway whose name or description you want to modify.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'ipv4gw-5tsnc6s4ogsedtp3k****', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'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.'."\n" + ."\n" + .'> 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.'."\n", 'type' => 'string', 'required' => false, 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3FF3898', 'title' => ''], ], [ - 'name' => 'Ipv4GatewayName', + 'name' => 'FullNatTableId', 'in' => 'query', - 'schema' => [ - 'description' => 'The new name of the IPv4 gateway.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'newname', - ], + 'schema' => ['description' => 'The ID of the FULLNAT table to be modified.'."\n", 'type' => 'string', 'required' => true, 'example' => 'fulltb-gw88z7hhlv43rmb26****', 'title' => ''], ], [ - 'name' => 'ClientToken', + 'name' => 'FullNatEntryId', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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.'."\n" - ."\n" - .'> 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.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-426655440000', - ], + 'schema' => ['description' => 'The ID of the FULLNAT entry to be modified.'."\n", 'type' => 'string', 'required' => true, 'example' => 'fullnat-gw8fz23jezpbblf1j****', 'title' => ''], ], [ - 'name' => 'DryRun', + 'name' => 'NetworkInterfaceId', 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values:'."\n" - ."\n" - .'* **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.'."\n" - .'* **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.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['description' => 'The ID of the elastic network interface (ENI) to be modified.'."\n", 'type' => 'string', 'required' => false, 'example' => 'eni-gw8g131ef2dnbu3k****', 'title' => ''], ], [ - 'name' => 'Ipv4GatewayDescription', + 'name' => 'NatIp', 'in' => 'query', - 'schema' => [ - 'description' => 'The new description of the IPv4 gateway.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'new', - ], + 'schema' => ['description' => 'The NAT IP address to be modified.'."\n", 'type' => 'string', 'required' => false, 'example' => '192.168.XX.XX', 'title' => ''], ], [ - 'name' => 'RegionId', + 'name' => 'NatIpPort', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the IPv4 gateway whose name or description you want to modify.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'ap-southeast-6', - ], + 'schema' => ['description' => 'The frontend port to be modified in FULLNAT port mapping. Valid values: **1** to **65535**.'."\n", 'type' => 'string', 'required' => false, 'example' => '80', 'title' => ''], + ], + [ + 'name' => 'AccessIp', + 'in' => 'query', + 'schema' => ['description' => 'The backend IP address to be modified in FULLNAT address translation.'."\n", 'type' => 'string', 'required' => false, 'example' => '192.168.XX.XX', 'title' => ''], + ], + [ + 'name' => 'AccessPort', + 'in' => 'query', + 'schema' => ['description' => 'The backend port to be modified in FULLNAT port mapping. Valid values: **1** to **65535**.'."\n", 'type' => 'string', 'required' => false, 'example' => '80', 'title' => ''], + ], + [ + 'name' => 'IpProtocol', + 'in' => 'query', + 'schema' => ['description' => 'The protocol of the packets that are forwarded by the port. Valid values:'."\n" + ."\n" + .'* **TCP**: TCP'."\n" + .'* **UDP**'."\n", 'type' => 'string', 'required' => false, 'example' => 'TCP', 'title' => ''], + ], + [ + 'name' => 'FullNatEntryName', + 'in' => 'query', + 'schema' => ['description' => 'The new name of the FULLNAT entry.'."\n" + ."\n" + .'The name must be 2 to 128 characters in length. It must start with a letter but cannot start with `http://` or `https://`.'."\n", 'type' => 'string', 'required' => false, 'example' => 'modify', 'title' => ''], + ], + [ + 'name' => 'FullNatEntryDescription', + 'in' => 'query', + 'schema' => ['description' => 'The new description of the FULLNAT entry.'."\n" + ."\n" + .'You can leave this parameter empty or enter a description. If you enter a description, the description must be 2 to 256 characters in length and cannot start with `http://` or `https://`.'."\n", 'type' => 'string', 'required' => false, 'example' => 'abcd', 'title' => ''], + ], + [ + 'name' => 'DryRun', + 'in' => 'query', + 'schema' => ['description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values:'."\n" + ."\n" + .'* **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.'."\n" + .'* **false**: 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.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], ], [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the IPv4 gateway whose name or description you want to modify.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'ap-southeast-6', - ], + 'schema' => ['description' => 'The region ID of the Virtual Private Cloud (VPC) NAT gateway to which the FULLNAT entry to be modified belongs.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'example' => 'eu-central-1', 'title' => ''], + ], + [ + 'name' => 'AccessDomain', + 'in' => 'query', + 'schema' => ['description' => 'The backend domain name of the FULLNAT address translation that needs to be modified.', 'type' => 'string', 'required' => false, 'example' => 'xxx.com', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => '', + 'title' => 'Schema of Response', + 'description' => 'The request ID.'."\n", 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '671CEB03-C98D-5916-950C-C55B0BD06621', - ], + 'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '2315DEB7-5E92-423A-91F7-4C1EC9AD97C3'], ], + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'ResourceNotFound.Ipv4Gateway', - 'errorMessage' => 'The specified resource ipv4Gateway is not found.', - ], - [ - 'errorCode' => 'IncorrectStatus.Ipv4Gateway', - 'errorMessage' => 'The status of %s [%s] is incorrect.', - ], + ['errorCode' => 'ResourceNotFound.NetworkInterfaceId', 'errorMessage' => 'The specified resource is not found.', 'description' => 'The specified resource is not found.'], + ['errorCode' => 'ResourceAlreadyExist.FullNatEntry', 'errorMessage' => 'The specified resource of %s is already exist.', 'description' => 'The FULLNAT rule already exists.'], + ['errorCode' => 'IncorrectStatus.NatIp', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => 'The status of NatIp is incorrect.'], + ['errorCode' => 'UnsupportedFeature.PrivateLinkMode', 'errorMessage' => 'The feature of %s is not supported.', 'description' => 'The feature of reverse access is not supported.'], + ['errorCode' => 'DependencyViolation.PrivateLinkMode', 'errorMessage' => 'The specified resource of %s depends on %s, so the operation cannot be completed.', 'description' => 'The %s resource depends on %s.'], + ['errorCode' => 'IllegalParam.AccessDomain', 'errorMessage' => 'The request parameter AccessDomain is illegal.', 'description' => 'The AccessDomain parameter in the request parameter is invalid.'], + ['errorCode' => 'ExclusiveParam.AccessIpAndAccessDomain', 'errorMessage' => 'The specified AccessIp and AccessDomain are mutually exclusive.', 'description' => 'The specified input AccessIp conflicts with the AccessDomain.'], + ['errorCode' => 'InstanceUnsupported.FullNatDomain', 'errorMessage' => 'The current instance does not support the configuration of the FullNat rule domain name.', 'description' => 'The current instance does not support the configuration of the FullNat rule domain name.'], + ['errorCode' => 'ZoneUnsupported.FullNatDomain', 'errorMessage' => 'The current zone does not support the configuration of the FullNat rule domain name.', 'description' => 'The current zone does not support the configuration of the FullNat rule domain name.'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"671CEB03-C98D-5916-950C-C55B0BD06621\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 671CEB03-C98D-5916-950C-C55B0BD06621\\n","errorExample":""}]', - 'title' => 'UpdateIpv4GatewayAttribute', - 'description' => 'You cannot repeatedly call the **UpdateIpv4GatewayAttribute** operation to modify the name or description of an IPv4 gateway within the specified period of time.', + 'title' => 'ModifyFullNatEntryAttribute', + 'description' => '## [](#)'."\n" + ."\n" + .'* **ModifyFullNatEntryAttribute** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call the [ListFullNatEntries](~~348779~~) operation to query the status of a FULLNAT entry.'."\n" + ."\n" + .' * **Modifying**: indicates that the system is modifying the FULLNAT entry. You can query the FULLNAT entry, but cannot perform other operations.'."\n" + .' * **Available**: indicates that the FULLNAT entry is modified.'."\n" + ."\n" + .'* You cannot repeatedly call the **ModifyFullNatEntryAttribute** operation to modify a FULLNAT entry within the specified period of time.'."\n", + 'changeSet' => [ + ['createdAt' => '2024-07-23T06:52:35.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2023-01-04T09:37:44.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2021-10-15T06:08:26.000Z', 'description' => 'Request parameters changed'], + ], + 'ramActions' => [], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"2315DEB7-5E92-423A-91F7-4C1EC9AD97C3\\"\\n}","type":"json"}]', + 'translator' => 'manual', ], - 'ListIpv4Gateways' => [ - 'summary' => 'Queries IPv4 gateways.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'ModifyGlobalAccelerationInstanceAttributes' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'list', - 'riskType' => 'none', - 'chargeType' => 'free', - ], + 'systemTags' => ['operationType' => 'update'], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region where the IPv4 gateways to be queried are deployed.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'ap-southeast-6', - ], + 'schema' => ['description' => 'The region ID of the GA instance.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'example' => 'cn-hangzhou'], ], [ - 'name' => 'MaxResults', + 'name' => 'GlobalAccelerationInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => 'The number of entries to return on each page. Valid values: **1** to **100**. Default value: **10**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '10', - ], + 'schema' => ['description' => 'The ID of the GA instance.'."\n", 'type' => 'string', 'required' => true, 'example' => 'ga-14fdsf3****'], ], [ - 'name' => 'NextToken', + 'name' => 'Name', 'in' => 'query', - 'schema' => [ - 'description' => 'The token that is used for the next query. Valid values:'."\n" - ."\n" - .'* If this is your first query and no next queries are to be sent, ignore this parameter.'."\n" - .'* If a next query is to be sent, set the value to the value of NextToken that is returned from the last call.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', - ], + 'schema' => ['description' => 'The name of the GA instance.'."\n" + ."\n" + .'The name must be 2 to 128 characters in length and can contain letters, digits, periods (.), underscores (\\_), and hyphens (-). It cannot start with `http://` or `https://`.'."\n", 'type' => 'string', 'required' => false, 'example' => 'GA-1'], ], [ - 'name' => 'VpcId', + 'name' => 'Description', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the virtual private cloud (VPC) with which the IPv4 gateway is associated.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'vpc-5tsrxlw7dv074gci4****', - ], + 'schema' => ['description' => 'The description of the GA instance.'."\n" + ."\n" + .'The description must be 2 to 256 characters in length. It must start with a letter but cannot start with `http://` or `https://`.'."\n", 'type' => 'string', 'required' => false, 'example' => 'My GA'], ], - [ - 'name' => 'Ipv4GatewayId', - 'in' => 'query', + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => 'The ID of the IPv4 gateway.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'ipv4gw-5tsnc6s4ogsedtp3k****', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => 'BD5BCEE8-F62C-40C2-9AC3-89XXXXXXXXX'], + ], ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InvalidBandwidth.ValueNotSupported', 'errorMessage' => 'The specified Bandwidth is not supported.', 'description' => ''], + ['errorCode' => 'InvalidGlobalAccelerationInstanceId.NotFound', 'errorMessage' => 'The specified GlobalAccelerationInstanceId is not found.', 'description' => ''], + ['errorCode' => 'Forbidden.ChargeTypeIsPrepaid', 'errorMessage' => 'It?s forbidden to change prepaid EIP?s bandwidth by API. It can be changed on Aliyun web console.', 'description' => ''], + ['errorCode' => 'InvalidGlobalAccelerationInstanceName.Malformed', 'errorMessage' => 'The specified Name is not valid.', 'description' => ''], + ['errorCode' => 'InvalidGlobalAccelerationInstanceDescription.Malformed', 'errorMessage' => 'The specified Description is not valid.', 'description' => ''], + ['errorCode' => 'InvalidParameter', 'errorMessage' => 'The parameter is invalid.', 'description' => ''], + ['errorCode' => 'InvalidGlobalAccelerationInstance.NotFound', 'errorMessage' => 'The specified global acceleration instance is not found.', 'description' => ''], + ], + 404 => [ + ['errorCode' => 'InvalidRegionId.NotFound', 'errorMessage' => 'The specified region is not supported.', 'description' => ''], + ], + ], + 'title' => 'ModifyGlobalAccelerationInstanceAttributes', + 'summary' => 'Modifies the name and description of a Global Accelerator (GA) instance.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [], + ], + 'ModifyGlobalAccelerationInstanceSpec' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'Ipv4GatewayName', - 'in' => 'query', - 'schema' => [ - 'description' => 'The name of the IPv4 gateway.'."\n" - ."\n" - .'The name must be 1 to 128 characters in length, and cannot start with `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'name', - ], + 'AK' => [], ], + ], + 'systemTags' => ['operationType' => 'update'], + 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region where the IPv4 gateways to be queried are deployed.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'ap-southeast-6', - ], + 'schema' => ['description' => 'The region ID of the GA instance.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'example' => 'cn-hangzhou'], ], [ - 'name' => 'ResourceGroupId', + 'name' => 'GlobalAccelerationInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the resource group to which the IPv4 gateway belongs.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'rg-bp67acfmxazb4ph****', - ], + 'schema' => ['description' => 'The ID of the GA instance.'."\n", 'type' => 'string', 'required' => true, 'example' => 'ga-32s33s****'], ], [ - 'name' => 'Tags', + 'name' => 'Bandwidth', 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => 'The tags of the resource.', - 'type' => 'array', - 'items' => [ - 'description' => 'The tags of the resource.', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => 'The tag key. You can specify at most 20 tag keys. The tag key cannot be an empty string.'."\n" - ."\n" - .'The key cannot exceed 64 characters in length, and can contain digits, periods (.), underscores (\\_), and hyphens (-). The key must start with a letter but cannot start with `aliyun` or `acs:`. The key cannot contain `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'FinanceDept', - ], - 'Value' => [ - 'description' => 'The tag value. You can specify at most 20 tag values. It can be an empty string.'."\n" - ."\n" - .'The tag value cannot exceed 128 characters in length, and can contain digits, periods (.), underscores (\\_), and hyphens (-). It must start with a letter but cannot start with `aliyun` or `acs:`. It cannot contain `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'FinanceJoshua', - ], - ], - 'required' => false, - ], - 'required' => false, - 'maxItems' => 10, - ], + 'schema' => ['description' => 'The maximum bandwidth of the GA instance. Unit: Mbit/s. Set the value to **10**.'."\n", 'type' => 'string', 'required' => true, 'example' => '10'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => '', 'type' => 'object', 'properties' => [ - 'NextToken' => [ - 'description' => 'The token that is used for the next query. Valid values:'."\n" - ."\n" - .'* If no value is returned for **NextToken**, no next queries are sent.'."\n" - .'* If a value of **NextToken** is returned, the value is the token that is used for the subsequent query.'."\n", - 'type' => 'string', - 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', - ], - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => '2D265800-E306-529C-8418-84B0A1D201DB', - ], - 'TotalCount' => [ - 'description' => 'The total number of entries returned.'."\n", - 'type' => 'string', - 'example' => '1', - ], - 'Ipv4GatewayModels' => [ - 'description' => 'The list of IPv4 gateways.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'VpcId' => [ - 'description' => 'The ID of the VPC with which the IPv4 gateways are associated.'."\n", - 'type' => 'string', - 'example' => 'vpc-5tsrxlw7dv074gci4****', - ], - 'Status' => [ - 'description' => 'The status of the IPv4 gateway. Valid values:'."\n" - ."\n" - .'* **Creating**'."\n" - .'* **Created**'."\n" - .'* **Modifying**'."\n" - .'* **Deleting**'."\n" - .'* **Deleted**'."\n", - 'type' => 'string', - 'example' => 'Created', - ], - 'Ipv4GatewayId' => [ - 'description' => 'The ID of the IPv4 gateway.'."\n", - 'type' => 'string', - 'example' => 'ipv4gw-5tsnc6s4ogsedtp3k****', - ], - 'Ipv4GatewayDescription' => [ - 'description' => 'The description of the IPv4 gateway.'."\n", - 'type' => 'string', - 'example' => 'test', - ], - 'Enabled' => [ - 'description' => 'Indicates whether the IPv4 gateway is activated. Valid values:'."\n" - ."\n" - .'* **true**: yes'."\n" - .'* **false**: no'."\n", - 'type' => 'boolean', - 'example' => 'true', - ], - 'GmtCreate' => [ - 'description' => 'The time when the IPv4 gateway was created.'."\n", - 'type' => 'string', - 'example' => '2021-12-02T07:07:35Z', - ], - 'Ipv4GatewayRouteTableId' => [ - 'description' => 'The ID of the route table associated with the IPv4 gateway.'."\n", - 'type' => 'string', - 'example' => 'vtb-5ts0ohchwkp3dydt2****', - ], - 'Ipv4GatewayName' => [ - 'description' => 'The name of the IPv4 gateway.'."\n", - 'type' => 'string', - 'example' => 'name', - ], - 'ResourceGroupId' => [ - 'description' => 'The ID of the resource group to which the IPv4 gateway belongs.'."\n", - 'type' => 'string', - 'example' => 'rg-bp67acfmxazb4ph****', - ], - 'Tags' => [ - 'description' => 'The list of tags that are added to the resource group.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => 'The tag key.'."\n", - 'type' => 'string', - 'example' => 'FinanceDept', - ], - 'Value' => [ - 'description' => 'The tag value.'."\n", - 'type' => 'string', - 'example' => 'FinanceJoshua', - ], - ], - ], - ], - ], - ], - ], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => 'BD5BCEE8-F62C-40C2-9AC3-89XXXXXXXXX'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'IllegalParam.NextToken', - 'errorMessage' => 'The specified NextToken is invalid.', - ], + ['errorCode' => 'InvalidBandwidth.ValueNotSupported', 'errorMessage' => 'The specified Bandwidth is not supported.', 'description' => ''], + ['errorCode' => 'InvalidGlobalAccelerationInstanceId.NotFound', 'errorMessage' => 'The specified GlobalAccelerationInstanceId is not found.', 'description' => ''], + ['errorCode' => 'Forbidden.ChargeTypeIsPrepaid', 'errorMessage' => 'It?s forbidden to change prepaid GlobalAcceleration?s bandwidth by API. It can be changed on Aliyun web console.', 'description' => ''], + ['errorCode' => 'InvalidGlobalAccelerationInstanceName.Malformed', 'errorMessage' => 'The specified Name is not valid.', 'description' => ''], + ['errorCode' => 'InvalidGlobalAccelerationInstanceDescription.Malformed', 'errorMessage' => 'The specified Description is not valid.', 'description' => ''], + ['errorCode' => 'InvalidParameter', 'errorMessage' => 'The parameter is invalid.', 'description' => ''], + ['errorCode' => 'InvalidInstanceId.NotFound', 'errorMessage' => 'Specified GA allocation ID is not found.', 'description' => ''], + ], + 404 => [ + ['errorCode' => 'InvalidRegionId.NotFound', 'errorMessage' => 'The specified region is not supported.', 'description' => ''], + ], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error.', 'description' => ''], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"NextToken\\": \\"FFmyTO70tTpLG6I3FmYAXGKPd****\\",\\n \\"RequestId\\": \\"2D265800-E306-529C-8418-84B0A1D201DB\\",\\n \\"TotalCount\\": \\"1\\",\\n \\"Ipv4GatewayModels\\": [\\n {\\n \\"VpcId\\": \\"vpc-5tsrxlw7dv074gci4****\\",\\n \\"Status\\": \\"Created\\",\\n \\"Ipv4GatewayId\\": \\"ipv4gw-5tsnc6s4ogsedtp3k****\\",\\n \\"Ipv4GatewayDescription\\": \\"test\\",\\n \\"Enabled\\": true,\\n \\"GmtCreate\\": \\"2021-12-02T07:07:35Z\\",\\n \\"Ipv4GatewayRouteTableId\\": \\"vtb-5ts0ohchwkp3dydt2****\\",\\n \\"Ipv4GatewayName\\": \\"name\\",\\n \\"ResourceGroupId\\": \\"rg-bp67acfmxazb4ph****\\",\\n \\"Tags\\": [\\n {\\n \\"Key\\": \\"FinanceDept\\",\\n \\"Value\\": \\"FinanceJoshua\\"\\n }\\n ]\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\n FFmyTO70tTpLG6I3FmYAXGKPd****\\n 2D265800-E306-529C-8418-84B0A1D201DB\\n 1\\n \\n vpc-5tsrxlw7dv074gci4****\\n Created\\n ipv4gw-5tsnc6s4ogsedtp3k****\\n test\\n true\\n 2021-12-02T07:07:35Z\\n vtb-5ts0ohchwkp3dydt2****\\n name\\n rg-bp67acfmxazb4ph****\\n \\n FinanceDept\\n FinanceJoshua\\n \\n \\n","errorExample":""}]', - 'title' => 'ListIpv4Gateways', + 'title' => 'ModifyGlobalAccelerationInstanceSpec', + 'summary' => 'Modifies the maximum bandwidth of a Global Accelerator (GA) instance.', + 'description' => '## Usage notes'."\n" + ."\n" + .'You cannot call this operation to modify the maximum bandwidth of a subscription GA instance.'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [], ], - 'GetIpv4GatewayAttribute' => [ - 'summary' => 'Queries an IPv4 gateway.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'ModifyHaVipAttribute' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'get', - 'riskType' => 'none', - 'chargeType' => 'free', - ], + 'operationType' => 'readAndWrite', + 'systemTags' => ['operationType' => 'update'], 'parameters' => [ + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'You can use the client to generate the value, but you must make sure that it is unique among all requests. ClientToken can contain only ASCII characters.'."\n" + ."\n" + .'> If you do not specify this parameter, **ClientToken** is set to the value of **RequestId**. The value of **RequestId** for each API request may be different.'."\n", 'type' => 'string', 'required' => false, 'example' => '02fb3da4-130e-11e9-8e44-0016e0****', 'title' => ''], + ], [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the IPv4 gateway.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'ap-southeast-6', - ], + 'schema' => ['description' => 'The ID of the region to which the HaVip belongs.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.', 'type' => 'string', 'required' => true, 'example' => 'cn-shanghai', 'title' => ''], ], [ - 'name' => 'Ipv4GatewayId', + 'name' => 'HaVipId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the IPv4 gateway.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'ipv4gw-5tsnc6s4ogsedtp3k****', - ], + 'schema' => ['description' => 'The ID of the HaVip.', 'type' => 'string', 'required' => true, 'example' => 'havip-2zeo05qre24nhrqp****', 'title' => ''], ], [ - 'name' => 'RegionId', + 'name' => 'Description', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the IPv4 gateway.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'ap-southeast-6', - ], + 'schema' => ['description' => 'The description of the HaVip.'."\n" + ."\n" + .'The description must be 1 to 255 characters in length and cannot start with `http://` or `https://`.', 'type' => 'string', 'required' => false, 'example' => 'This is my HaVip.', 'title' => ''], + ], + [ + 'name' => 'Name', + 'in' => 'query', + 'schema' => ['description' => 'The name of the HaVip.'."\n" + ."\n" + .'The name must be 1 to 128 characters in length, and cannot start with `http://` or `https://`.', 'type' => 'string', 'required' => false, 'example' => 'test', 'title' => ''], ], ], 'responses' => [ 200 => [ + 'headers' => [], 'schema' => [ - 'description' => 'The details of the IPv4 gateway.'."\n", + 'description' => '', 'type' => 'object', 'properties' => [ - 'VpcId' => [ - 'description' => 'The ID of the VPC with which the IPv4 gateway is associated.'."\n", - 'type' => 'string', - 'example' => 'vpc-5tsrxlw7dv074gci4****', - ], - 'Status' => [ - 'description' => 'The status of the IPv4 gateway. Valid values:'."\n" - ."\n" - .'* **Creating**'."\n" - .'* **Created**'."\n" - .'* **Modifying**'."\n" - .'* **Deleting**'."\n" - .'* **Deleted**'."\n" - .'* **Activating**'."\n", - 'type' => 'string', - 'example' => 'Created', - ], - 'Ipv4GatewayId' => [ - 'description' => 'The ID of the IPv4 gateway.'."\n", - 'type' => 'string', - 'example' => 'ipv4gw-5tsnc6s4ogsedtp3k****', - ], - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '7F79A919-6FE9-50C4-967B-45705E1F9C38', - ], - 'Ipv4GatewayDescription' => [ - 'description' => 'The description of the IPv4 gateway.'."\n", - 'type' => 'string', - 'example' => 'new', - ], - 'Enabled' => [ - 'description' => 'Indicates whether the IPv4 gateway is activated. Valid values:'."\n" - ."\n" - .'* **true**'."\n" - .'* **false**'."\n", - 'type' => 'boolean', - 'example' => 'true', - ], - 'Ipv4GatewayRouteTableId' => [ - 'description' => 'The ID of the route table associated with the IPv4 gateway.'."\n", - 'type' => 'string', - 'example' => 'vtb-5ts0ohchwkp3dydt2****', - ], - 'Ipv4GatewayName' => [ - 'description' => 'The name of the IPv4 gateway.'."\n", - 'type' => 'string', - 'example' => 'name', - ], - 'CreateTime' => [ - 'description' => 'The time when the IPv4 gateway was created.'."\n", - 'type' => 'string', - 'example' => '2022-02-24T09:02:36Z', - ], - 'ResourceGroupId' => [ - 'description' => 'The ID of the resource group to which the IPv4 gateway belongs.'."\n", - 'type' => 'string', - 'example' => 'rg-bp67acfmxazb4ph****', - ], - 'Tags' => [ - 'description' => 'The tag list.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => 'The key of tag N added to the resource.'."\n", - 'type' => 'string', - 'example' => 'FinanceDept', - ], - 'Value' => [ - 'description' => 'The value of tag N added to the resource.'."\n", - 'type' => 'string', - 'example' => 'FinanceJoshua', - ], - ], - ], - ], + 'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => 'C44F62BE-9CE7-4277-B117-69243F3988BF', 'title' => ''], ], + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'ResourceNotFound.Ipv4Gateway', - 'errorMessage' => 'The specified resource ipv4Gateway is not found.', - ], + ['errorCode' => 'IncorrectStatus', 'errorMessage' => 'HaVip can be deleted only when it\'s status is Available or InUse.', 'description' => ''], + ['errorCode' => 'InvalidDescription.Malformed', 'errorMessage' => 'The specified Description is wrongly formed.', 'description' => 'The error message returned because the Description parameter is set to an invalid value.'], + ['errorCode' => 'Abs.Vpc.InvalidName.Malformed', 'errorMessage' => 'The specified Name is not valid.', 'description' => ''], + ['errorCode' => 'Forbidden.HaVip', 'errorMessage' => 'No permissions to perform operations on HAVIPs. Please apply for privilege--vpc_privilege_allow_buy_havip_instance.', 'description' => 'The error message returned because you do not have the permissions to manage the HAVIP. Go to the Quota Center page to acquire the permissions.'], + ['errorCode' => 'InvalidRegionId.NotFound', 'errorMessage' => 'The RegionId provided does not exist in our records.', 'description' => ''], + ], + 404 => [ + ['errorCode' => 'InvalidHaVipId.NotFound', 'errorMessage' => 'The specified HaVip does not exist in the specified region.', 'description' => 'The specified HAVIP does not exist in the specified region. Check whether the specified region is correct.'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'title' => 'ModifyHaVipAttribute', + 'summary' => 'Modifies the name and description of a high-availability virtual IP address (HaVip).', + 'description' => '**ModifyHaVipAttribute**不支持并发修改同一个HaVip的名称和描述。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2023-01-11T06:07:05.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-01-10T15:26:10.000Z', 'description' => 'Error codes changed, Response parameters changed'], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"VpcId\\": \\"vpc-5tsrxlw7dv074gci4****\\",\\n \\"Status\\": \\"Created\\",\\n \\"Ipv4GatewayId\\": \\"ipv4gw-5tsnc6s4ogsedtp3k****\\",\\n \\"RequestId\\": \\"7F79A919-6FE9-50C4-967B-45705E1F9C38\\",\\n \\"Ipv4GatewayDescription\\": \\"new\\",\\n \\"Enabled\\": true,\\n \\"Ipv4GatewayRouteTableId\\": \\"vtb-5ts0ohchwkp3dydt2****\\",\\n \\"Ipv4GatewayName\\": \\"name\\",\\n \\"CreateTime\\": \\"2022-02-24T09:02:36Z\\",\\n \\"ResourceGroupId\\": \\"rg-bp67acfmxazb4ph****\\",\\n \\"Tags\\": [\\n {\\n \\"Key\\": \\"FinanceDept\\",\\n \\"Value\\": \\"FinanceJoshua\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\n vpc-5tsrxlw7dv074gci4****\\n Created\\n ipv4gw-5tsnc6s4ogsedtp3k****\\n 7F79A919-6FE9-50C4-967B-45705E1F9C38\\n new\\n true\\n vtb-5ts0ohchwkp3dydt2****\\n name\\n 2022-02-24T09:02:36Z\\n rg-bp67acfmxazb4ph****\\n \\n FinanceDept\\n FinanceJoshua\\n \\n","errorExample":""}]', - 'title' => 'GetIpv4GatewayAttribute', - ], - 'CreateVpnGateway' => [ - 'summary' => 'Creates a VPN gateway.', - 'methods' => [ - 'post', - 'get', + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:ModifyHaVipAttribute', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'HaVip', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:havip/{#HaVipId}'], + ], + ], + ], ], - 'schemes' => [ - 'http', - 'https', + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"C44F62BE-9CE7-4277-B117-69243F3988BF\\"\\n}","type":"json"}]', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ModifyHaVipAttribute'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], ], + ], + 'ModifyIPv6TranslatorAclAttribute' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'readAndWrite', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'create', - 'riskType' => 'high', - 'chargeType' => 'paid', - ], + 'deprecated' => true, + 'systemTags' => ['operationType' => 'update'], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the VPN gateway. You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The region of the IPv6 Translation Service instance. You can call the DescribeRegions operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'Name', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The name of the VPN gateway. The default value is the ID of the VPN gateway.'."\n" - ."\n" - .'The name must be 2 to 100 characters in length and cannot start with `http://` or `https://`. It must start with a letter and can contain letters, digits, underscores (\\_), hyphens (-), and periods (.). Other special characters are not supported.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'MYVPN', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'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.'."\n", 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-426655440000', 'title' => ''], ], [ - 'name' => 'VpcId', + 'name' => 'AclId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the virtual private cloud (VPC) where you want to create the VPN gateway.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'vpc-bp1ub1yt9cvakoelj****', - ], + 'schema' => ['description' => 'The ID of the ACL that you want to modify.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'ipv6transacl-bp1de2****', 'title' => ''], ], [ - 'name' => 'InstanceChargeType', + 'name' => 'AclName', 'in' => 'query', + 'schema' => ['description' => 'The name of the ACL.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'acl1', 'title' => ''], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => 'The billing method of the VPN gateway. Set the value to **POSTPAY**, which specifies the pay-as-you-go billing method.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'Example value for the Alibaba Cloud China site: PREPAY. Example value for the Alibaba Cloud International site: POSTPAY.', - 'default' => 'POSTPAY', + 'description' => 'The returned data.'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B45', 'title' => ''], + ], + 'title' => '', + 'example' => '', ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InvalidName', 'errorMessage' => 'The specified name is not valid', 'description' => ''], + ], + 403 => [ + ['errorCode' => 'Forbbiden.SubUser', 'errorMessage' => 'User not authorized to operate on the specified resource as your account is created by another user.', 'description' => ''], + ['errorCode' => 'Forbidden', 'errorMessage' => 'User not authorized to operate on the specified resource.', 'description' => 'You do not have the permissions to manage the specified resource. Apply for the permissions and try again.'], + ], [ - 'name' => 'Period', - 'in' => 'query', - 'schema' => [ - 'description' => 'The subscription duration. Unit: month. Valid values: **1** to **9**, **12**, **24**, and **36**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', - ], + ['errorCode' => 'InvalidIPv6TranslatorACLId.NotFound', 'errorMessage' => 'The specified ipv6 translator acl instance id does not exist.', 'description' => ''], ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B45\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 54B48E3D-DF70-471B-AA93-08E683A1B45\\n","errorExample":""}]', + 'title' => 'ModifyIPv6TranslatorAclAttribute', + 'summary' => 'Modifies the name of an access control list (ACL).', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [ [ - 'name' => 'AutoPay', - 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to enable automatic payment. Valid values:'."\n" - ."\n" - .'* **true**'."\n" - .'* **false** (default)'."\n" - ."\n" - .'> To create a VPN gateway, we recommend that you enable automatic payment. If you disable automatic payment, you must manually pay the bill to create the VPN gateway.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - 'default' => 'false', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:ModifyIPv6TranslatorAclAttribute', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'Ipv6Translator', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:ipv6trans/{#Ipv6TranslatorId}'], + ], ], ], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ModifyIPv6TranslatorAclAttribute'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], + ], + ], + 'ModifyIPv6TranslatorAclListEntry' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'Bandwidth', + 'AK' => [], + ], + ], + 'operationType' => 'readAndWrite', + 'systemTags' => ['operationType' => 'update'], + 'parameters' => [ + [ + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The maximum bandwidth of the VPN gateway. Unit: Mbit/s.'."\n" - ."\n" - .'* If you want to create a public VPN gateway, valid values are **10**, **100**, **200**, **500**, and **1000**.'."\n" - .'* If you want to create a private VPN gateway, valid values are **200** and **1000**.'."\n" - ."\n" - .'> The maximum bandwidth supported by VPN gateways in some regions is 500 Mbit/s. For more information, see [VPN gateway limits](~~65290~~).', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'docRequired' => true, - 'example' => '5', - ], + 'schema' => ['description' => 'The region of the ACL.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'EnableIpsec', + 'name' => 'AclId', 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to enable IPsec-VPN for the VPN gateway. Valid values:'."\n" - ."\n" - .'* **true** (default)'."\n" - .'* **false**'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - 'default' => 'true', - ], + 'schema' => ['description' => 'The ID of the ACL to which the IP entry belongs.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'ipv6transacl-bp1b4z3tleyhq1s50****', 'title' => ''], ], [ - 'name' => 'EnableSsl', + 'name' => 'AclEntryId', 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to enable SSL-VPN. Valid values:'."\n" - ."\n" - .'* **true**'."\n" - .'* **false** (default)'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - 'default' => 'false', - ], + 'schema' => ['description' => 'The ID of the ACL rule to which the IP entry belongs.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'ipv6transaclentry-bp1jzyn7ra8pyxehd****', 'title' => ''], ], [ - 'name' => 'SslConnections', + 'name' => 'AclEntryComment', 'in' => 'query', + 'schema' => ['description' => 'The remarks of the ACL rule.'."\n" + ."\n" + .'It must be 2 to 100 characters in length, and can contain digits, underscores (\\_), and hyphens (-). It must start with a letter.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'client IP', 'title' => ''], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => 'The maximum number of clients that can be connected at the same time. Valid values: **5** (default), **10**, **20**, **50**, **100**, **200**, **500**, and **1000**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '5', + 'description' => 'The returned data.'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B45', 'title' => ''], + ], + 'title' => '', + 'example' => '', ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InvalidIPv6TranslatorAclId.NotFound', 'errorMessage' => 'The specified ipv6 translator acl instance id does not exist.', 'description' => ''], + ['errorCode' => 'InvalidIPv6TranslatorAclEntryId.NotFound', 'errorMessage' => 'The specified ipv6 translator acl entry id does not exist.', 'description' => ''], + ['errorCode' => 'InvalidEntryComment', 'errorMessage' => 'The specified value of comment not supported.', 'description' => ''], + ], + 403 => [ + ['errorCode' => 'Forbbiden.SubUser', 'errorMessage' => 'User not authorized to operate on the specified resource as your account is created by another user.', 'description' => ''], + ['errorCode' => 'Forbidden', 'errorMessage' => 'User not authorized to operate on the specified resource.', 'description' => 'You do not have the permissions to manage the specified resource. Apply for the permissions and try again.'], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B45\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 54B48E3D-DF70-471B-AA93-08E683A1B45\\n","errorExample":""}]', + 'title' => 'ModifyIPv6TranslatorAclListEntry', + 'summary' => 'Modifies an IP entry in an access control list (ACL).', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [ [ - 'name' => 'VSwitchId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The vSwitch with which you want to associate the VPN gateway.'."\n" - ."\n" - .'* If you call this operation in a region that supports the IPsec-VPN connections in dual-tunnel mode, this parameter is required. You must specify a vSwitch and specify **DisasterRecoveryVSwitchId**.'."\n" - .'* If you call this operation in a region that supports the IPsec-VPN connections in single-tunnel mode and do not specify a vSwitch, the system automatically specifies a vSwitch.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'vsw-bp1j5miw2bae9s2vt****', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:ModifyIPv6TranslatorAclListEntry', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'Ipv6Translator', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:ipv6trans/{#Ipv6TranslatorId}'], + ], ], ], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ModifyIPv6TranslatorAclListEntry'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], + ], + ], + 'ModifyIPv6TranslatorAttribute' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'readAndWrite', + 'systemTags' => ['operationType' => 'update'], + 'parameters' => [ [ - 'name' => 'VpnType', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The type of the VPN gateway. Valid values:'."\n" - ."\n" - .'Set the value to **Normal** (default), which specifies a standard NAT gateway.', - 'type' => 'string', - 'required' => false, - 'example' => 'Normal', - ], + 'schema' => ['description' => 'The region of the IPv6 Translation Service instance. You can call the **DescribeRegions** operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'You can use the client to generate a value, and you must make sure that each request has a unique token value. The client token can contain only ASCII characters.'."\n" - ."\n" - .'> If you do not specify this parameter, the system automatically uses the value of **RequestId** as the value of **ClientToken**. The value of **RequestId** for each API request is different.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '02fb3da4****', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'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.'."\n", 'type' => 'string', 'required' => false, 'example' => 'sha1111', 'title' => ''], ], [ - 'name' => 'NetworkType', + 'name' => 'Ipv6TranslatorId', 'in' => 'query', - 'schema' => [ - 'description' => 'The network type of the VPN gateway. Valid values:'."\n" - ."\n" - .'* **public** (default)'."\n" - .'* **private**'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'public', - ], + 'schema' => ['description' => 'The ID of the IPv6 Translation Service instance.'."\n", 'type' => 'string', 'required' => true, 'example' => 'ipv6trans-bp1858ys****', 'title' => ''], ], [ - 'name' => 'DisasterRecoveryVSwitchId', + 'name' => 'Name', 'in' => 'query', - 'allowEmptyValue' => true, - 'schema' => [ - 'description' => 'The second vSwitch with which you want to associate the VPN gateway.'."\n" - ."\n" - .'* If you call this operation in a region that supports the IPsec-VPN connections in dual-tunnel mode, this parameter is required.'."\n" - .'* You need to specify two vSwitches in different zones in the virtual private cloud (VPC) that is associated with the VPN gateway to implement disaster recovery across zones.'."\n" - .'* For a region that supports only one zone, disaster recovery across zones is not supported. We recommend that you specify two vSwitches in the zone to implement high availability. You can specify the same vSwitch.'."\n" - ."\n" - .'For more information about the regions and zones that support the IPsec-VPN connections in dual-tunnel mode, see [IPsec-VPN connections support the dual-tunnel mode](~~2358946~~).'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'vsw-p0wiz7obm0tbimu4r****', - ], + 'schema' => ['description' => 'The name of the IPv6 Translation Service instance. The default name is the instance ID. It must be 2 to 100 characters in length, and can contain letters, digits, periods (.), underscores (\\_), and hyphens (-). It cannot start with http:// or [https://](https://。).'."\n", 'type' => 'string', 'required' => false, 'example' => 'instancename', 'title' => ''], ], [ - 'name' => 'ResourceGroupId', + 'name' => 'Description', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the resource group to which the VPN gateway belongs.'."\n" - ."\n" - .'* You can call the [ListResourceGroups](~~158855~~) operation to query resource group IDs.'."\n" - ."\n" - .'* If you do not specify a resource group ID, the VPN gateway belongs to the default resource group.'."\n" - ."\n" - .'* After the VPN gateway is created, the following resources also belong to the resource group and you cannot change the resource group: SSL servers, SSL client certificates, IPsec servers, and IPsec-VPN connections.'."\n" - ."\n" - .' If you move the VPN gateway to a new resource group, the preceding resources are also moved to the new resource group.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'rg-acfmzs372yg****', - ], + 'schema' => ['description' => 'The description of IPv6 Translation Service. This parameter is empty by default. It must be 2 to 100 characters in length, and can contain letters, digits, periods (.), underscores (\\_), and hyphens (-). It cannot start with http:// or [https://](https://。).'."\n", 'type' => 'string', 'required' => false, 'example' => 'instancedescription', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => 'The returned data.', + 'description' => 'The returned data.'."\n", 'type' => 'object', 'properties' => [ - 'VpnGatewayId' => [ - 'description' => 'The ID of the VPN gateway.'."\n", - 'type' => 'string', - 'example' => 'vpn-uf68lxhgr7ftbqr3p****', - ], - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => 'EB2C156A-41F8-49CC-A756-D55AFC8BFD69', - ], - 'Name' => [ - 'description' => 'The name of the VPN gateway.'."\n", - 'type' => 'string', - 'example' => 'MYVPN', - ], - 'OrderId' => [ - 'description' => 'The order ID.'."\n" - ."\n" - .'If automatic payment is disabled, you must manually complete the payment for the VPN gateway in the [Alibaba Cloud Management console](https://usercenter2-intl.aliyun.com/billing/#/account/overview).'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '208240895400460', - ], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '8B2F5262-6B57-43F2-xxxxx', 'title' => ''], ], + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidVpcId.NotFound', - 'errorMessage' => 'The specified VPC id does not exist in our records.', - ], - [ - 'errorCode' => 'InvalidName', - 'errorMessage' => 'The specified value of Name not supported.', - ], - [ - 'errorCode' => 'InvalidSpec.NotFound', - 'errorMessage' => 'The specified Spec does not exist in our records.', - ], - [ - 'errorCode' => 'InvalidPeriod', - 'errorMessage' => 'The specified period is not valid', - ], - [ - 'errorCode' => 'ChargeType.NotSupport', - 'errorMessage' => 'The specified charge type is not support.', - ], - [ - 'errorCode' => 'InventoryNotEnough', - 'errorMessage' => 'The inventory is not enough.', - ], - [ - 'errorCode' => 'UnnecessarySslConnection', - 'errorMessage' => 'The SSL connection is unnecessary for ssl vpn disabled.', - ], - [ - 'errorCode' => 'InvalidVpnEnable', - 'errorMessage' => 'Either IPsec or SSL VPN must be set enable.', - ], - [ - 'errorCode' => 'Resource.QuotaFull', - 'errorMessage' => 'The quota of resource is full', - ], - [ - 'errorCode' => 'InvalidVSwitchId.NotFound', - 'errorMessage' => 'The specified vswitchId is not found.', - ], - [ - 'errorCode' => 'OperationFailed.InventoryNotEnough', - 'errorMessage' => 'No enough available resource. Try another vswitch with different available zone.', - ], - [ - 'errorCode' => 'Forbidden.OperateShareResource', - 'errorMessage' => 'Operating shared resources is forbidden.', - ], - [ - 'errorCode' => 'OperationFailed.IpNotEnough', - 'errorMessage' => 'Operation failed because private ip address of the virtual switch is not enough.', - ], - [ - 'errorCode' => 'Forbidden.NoSLRPermission', - 'errorMessage' => 'User not authorized to create service linked role.', - ], - [ - 'errorCode' => 'OperationFailed.VSwitchConflict', - 'errorMessage' => 'The vswitch can\'t create vpn. Try another vswitch.', - ], - [ - 'errorCode' => 'OperationFailed.AzNotSupport', - 'errorMessage' => 'Current available zone can\'t create vpn. Try another vswitch with different available zone.', - ], - [ - 'errorCode' => 'OperationFailed.NetworkTypeNotMatch', - 'errorMessage' => 'Create NationalStandard vpn with private networkType is unsupported.', - ], - [ - 'errorCode' => 'OperationFailed.SslNotSupport', - 'errorMessage' => 'Enable ssl vpn with private networkType is unsupported.', - ], - [ - 'errorCode' => 'Forbidden.TagKey.Duplicated', - 'errorMessage' => 'The specified tag key already exists.', - ], - [ - 'errorCode' => 'SizeLimitExceeded.TagNum', - 'errorMessage' => 'The maximum number of tags is exceeded.', - ], - [ - 'errorCode' => 'InvalidParameter.TagValue', - 'errorMessage' => 'The specified parameter TagValue is invalid.', - ], - [ - 'errorCode' => 'InvalidParameter.TagKey', - 'errorMessage' => 'The specified parameter TagKey is invalid.', - ], - [ - 'errorCode' => 'Duplicated.TagKey', - 'errorMessage' => 'The specified parameter TagKey is duplicated.', - ], - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', - ], - [ - 'errorCode' => 'InvalidVSwitchId.SecondVswitchNotSupport', - 'errorMessage' => 'The available zone of vswitch2 not supported.', - ], - [ - 'errorCode' => 'InvalidVSwitchId.FirstVswitchNotSupport', - 'errorMessage' => 'The available zone of vswitch1 not supported.', - ], - [ - 'errorCode' => 'InvalidVSwitchId.VswitchIdShouldDifferent', - 'errorMessage' => 'The VSwitch ids should be different.', - ], - [ - 'errorCode' => 'InvalidVSwitchId.FirstVswitchIpNotEnough', - 'errorMessage' => 'The ip of vswitch1 not enough.', - ], - [ - 'errorCode' => 'InvalidVSwitchId.SecondVswitchIpNotEnough', - 'errorMessage' => 'The ip of vswitch2 not enough.', - ], - [ - 'errorCode' => 'InvalidVSwitchId.ZoneIdShouldDifferent', - 'errorMessage' => 'Two vSwitches should belong to different Availability Zones.', - ], + ['errorCode' => 'InvalidName', 'errorMessage' => 'The specified name is not valid', 'description' => ''], + ['errorCode' => 'InvalidDescription', 'errorMessage' => 'The specified description is not valid', 'description' => ''], + ['errorCode' => ' IPv6Translator.Configuring', 'errorMessage' => 'The specified ipv6 translator is configuring.', 'description' => ''], ], - 404 => [ - [ - 'errorCode' => 'InvalidRegionId.NotFound', - 'errorMessage' => 'The specified region is not found during access authentication.', - ], + 403 => [ + ['errorCode' => 'Forbbiden.SubUser', 'errorMessage' => 'User not authorized to operate on the specified resource as your account is created by another user.', 'description' => ''], + ['errorCode' => 'Forbidden', 'errorMessage' => 'User not authorized to operate on the specified resource.', 'description' => 'You do not have the permissions to manage the specified resource. Apply for the permissions and try again.'], + ], + [ + ['errorCode' => 'InvalidIPv6TranslatorId.NotFound', 'errorMessage' => 'The specified ipv6 translator instance id does not exist.', 'description' => ''], ], ], - 'staticInfo' => [ - 'returnType' => 'asynchronous', - 'callback' => 'Vpc::2016-04-28::DescribeVpnGateway', - 'callbackInterval' => 6000, - 'maxCallbackTimes' => 100, - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"VpnGatewayId\\": \\"vpn-uf68lxhgr7ftbqr3p****\\",\\n \\"RequestId\\": \\"EB2C156A-41F8-49CC-A756-D55AFC8BFD69\\",\\n \\"Name\\": \\"MYVPN\\",\\n \\"OrderId\\": 208240895400460\\n}","errorExample":""},{"type":"xml","example":"\\n vpn-uf68lxhgr7ftbqr3p****\\n EB2C156A-41F8-49CC-A756-D55AFC8BFD69\\n MYVPN\\n 208240895400460\\n","errorExample":""}]', - 'title' => 'CreateVpnGateway', - 'description' => '* Before you create a VPN gateway, we recommend that you know more about the limits of VPN gateways. For more information, see the [Limits](~~65290~~) section in the "Create and manage a VPN gateway" topic.'."\n" - ."\n" - .'* VPN gateways in some regions support only IPsec-VPN connections in dual-tunnel mode. If you call `CreateVpnGateway` in these regions, you must specify **VSwitchId** and **DisasterRecoveryVSwitchId** in addition to the required parameters. For more information about the regions and zones that support the IPsec-VPN connections in dual-tunnel mode, see [IPsec-VPN connections support the dual-tunnel mode](~~2358946~~).'."\n" - ."\n" - .'* **CreateVpnGateway** is an asynchronous operation. After you send a request to call this operation, the system returns a request ID and the endpoint service is being created in the backend. You can call [DescribeVpnGateway](~~73720~~) to query the status of a VPN gateway.'."\n" - ."\n" - .' * If the VPN gateway is in the **provisioning** state, the VPN gateway is being created.'."\n" - .' * If the VPN gateway is in the **active** state, the VPN gateway is created.'."\n", + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"8B2F5262-6B57-43F2-xxxxx\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 8B2F5262-6B57-43F2-xxxxx\\n","errorExample":""}]', + 'title' => 'ModifyIPv6TranslatorAttribute', + 'summary' => 'Modifies the name and description of an IPv6 Translation Service instance.', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'AssociateVpnGatewayWithCertificate' => [ - 'summary' => 'Associates a VPN gateway with a certificate.', - 'methods' => [ - 'post', - 'get', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:ModifyIPv6TranslatorAttribute', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'Ipv6Translator', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:ipv6trans/{#Ipv6TranslatorId}'], + ], + ], + ], ], - 'schemes' => [ - 'http', - 'https', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ModifyIPv6TranslatorAttribute'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], ], + ], + 'ModifyIPv6TranslatorBandwidth' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'update', - 'tenantRelevance' => 'tenant', - ], + 'operationType' => 'readAndWrite', + 'systemTags' => ['operationType' => 'update'], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the VPN gateway.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], - ], - [ - 'name' => 'VpnGatewayId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the VPN gateway.'."\n" - ."\n" - .'> You can associate only VPN gateways of the SM type with certificates.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'vpn-bp1q8bgx4xnkm2ogj****', - ], + 'schema' => ['description' => 'The region of the IPv6 Translation Service instance. You can call the **DescribeRegions** operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'CertificateType', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The type of the certificate. Valid values:'."\n" - ."\n" - .'* **Encryption**'."\n" - .'* **Signature**'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'Signature', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'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.'."\n", 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-426655440000', 'title' => ''], ], [ - 'name' => 'CertificateId', + 'name' => 'Ipv6TranslatorId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the certificate.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => '6bfe4218-ea1d****', - ], + 'schema' => ['description' => 'The ID of the IPv6 Translation Service instance.'."\n", 'type' => 'string', 'required' => true, 'example' => 'ipv6trans-bp1858ys****', 'title' => ''], ], [ - 'name' => 'ClientToken', + 'name' => 'Bandwidth', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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.'."\n" - ."\n" - .'> 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.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '0c593ea1-3bea****', - ], + 'schema' => ['description' => 'The maximum bandwidth of the IPv6 Translation Service instance. Valid values: **1** to **200**. Unit: Mbit/s.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '2', 'title' => ''], ], [ - 'name' => 'DryRun', + 'name' => 'AutoPay', 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to perform a dry run, without performing the actual request. Valid values:'."\n" - ."\n" - .'* **true**: performs a dry run. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request passes the dry run, a request ID is returned. Otherwise, an error message is returned.'."\n" - .'* **false** (default): performs a dry run and performs the actual request. If the request passes the dry run, the operation is performed.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['description' => 'Specifies whether to enable auto-payment for the instance. Valid values:'."\n" + ."\n" + .'* **true**'."\n" + .'* **false** (default)'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false', 'default' => 'false', 'title' => ''], ], ], 'responses' => [ @@ -64084,347 +49283,256 @@ 'description' => 'The returned data.'."\n", 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '4EC47282-1B74-4534-BD0E-403F3EE64CAF', - ], + 'OrderId' => ['description' => 'The order ID.'."\n", 'type' => 'string', 'example' => '202304500950739', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => 'EF8198EE-8FC9-49C2-A22E-xxxx', 'title' => ''], ], + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'IllegalParam.CertificateType', - 'errorMessage' => 'The specified certificate type (%s) is invalid.', - ], - [ - 'errorCode' => 'OperationFailed.NotNationalStandard', - 'errorMessage' => 'The VPN gateway is not national standard.', - ], - [ - 'errorCode' => 'VpnGateway.Configuring', - 'errorMessage' => 'The specified service is configuring.', - ], - [ - 'errorCode' => 'OperationFailed.NoRamPermission', - 'errorMessage' => 'VPN service has no permission to operate your KMS instances.', - ], - [ - 'errorCode' => 'OperationFailed.AssociationExist', - 'errorMessage' => 'The association already exists.', - ], - [ - 'errorCode' => 'OperationFailed.AnotherAssociationExist', - 'errorMessage' => 'The VPN gateway has associated with %s.', - ], - [ - 'errorCode' => 'SystemBusy', - 'errorMessage' => 'The system is busy. Please try again later.', - ], - [ - 'errorCode' => 'OperationFailed.InvalidCertificate', - 'errorMessage' => 'The specified certificate is invalid.', - ], + ['errorCode' => 'InvalidIPv6TranslatorId.NotFound', 'errorMessage' => 'The specified ipv6 translator instance id does not exist.', 'description' => ''], + ['errorCode' => 'InvalidBandwidth.NotSupport', 'errorMessage' => 'The specified bandwidth is not support.', 'description' => ''], + ['errorCode' => 'IPv6Translator.Configuring', 'errorMessage' => 'The specified ipv6 translator is configuring.', 'description' => ''], + ['errorCode' => 'InvalidBandwidth.DowngradeForbidden', 'errorMessage' => 'The bandwidth downgrade is forbidden.', 'description' => ''], + ['errorCode' => 'InvalidBandwidth.NotEnough', 'errorMessage' => 'The specified bandwidth is not enough.', 'description' => ''], + ['errorCode' => 'InvalidBandwidth.NotChange', 'errorMessage' => 'The specified bandwidth does not change.', 'description' => ''], + ['errorCode' => 'IPv6Translator.FinancialLocked', 'errorMessage' => 'The specified ipv6 translator is financial locked.', 'description' => ''], ], 403 => [ - [ - 'errorCode' => 'Forbidden', - 'errorMessage' => 'User not authorized to operate on the specified resource.', - ], - [ - 'errorCode' => 'Forbidden.NoSlrPermission', - 'errorMessage' => 'User not authorized to create service linked role.', - ], + ['errorCode' => 'Forbbiden.SubUser', 'errorMessage' => 'User not authorized to operate on the specified resource as your account is created by another user.', 'description' => ''], + ['errorCode' => 'Forbidden', 'errorMessage' => 'User not authorized to operate on the specified resource.', 'description' => 'You do not have the permissions to manage the specified resource. Apply for the permissions and try again.'], ], - [ - [ - 'errorCode' => 'InvalidVpnGatewayInstanceId.NotFound', - 'errorMessage' => 'The specified vpn gateway instance id does not exist.', - ], - [ - 'errorCode' => 'InvalidCertificateId.NotFound', - 'errorMessage' => 'The specified certificate ID (%s) does not exist.', - ], - ], - 409 => [ - [ - 'errorCode' => 'OperationConflict', - 'errorMessage' => 'The operation against this instance is too frequent, please try again later.', - ], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => 'Internal Error', 'description' => ''], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"4EC47282-1B74-4534-BD0E-403F3EE64CAF\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 4EC47282-1B74-4534-BD0E-403F3EE64CAF\\n","errorExample":""}]', - 'title' => 'AssociateVpnGatewayWithCertificate', - 'description' => 'Before you associate a VPN gateway with an SSL certificate, take note of the following items:'."\n" - ."\n" - .'* You can associate only VPN gateways of the ShangMi (SM) type with SSL certificates. You need to associate a VPN gateway of the SM type with two SSL certificates, one as the encryption certificate and the other as the signature certificate.'."\n" - ."\n" - .'* The SSL certificates must use the SM algorithm.'."\n" - ."\n" - .'* You cannot specify one SSL certificate as both the encryption certificate and signature certificate for one VPN gateway.'."\n" - ."\n" - .'* **AssociateVpnGatewayWithCertificate** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call the [DescribeVpnGateway](~~73720~~) operation to query the status of the task.'."\n" - ."\n" - .' * If the VPN gateway is in the **updating** state, the SSL certificate is being associated.'."\n" - .' * If the VPN gateway is in the **active** state, the SSL certificate is being associated.'."\n" - ."\n" - .'* You cannot call **AssociateVpnGatewayWithCertificate** within a specific period of time.'."\n" - ."\n" - .'### [](#)Prerequisites'."\n" - ."\n" - .'Make sure that you have two SSL certificates that use the SM algorithm in the Certificate Management Service console. For more information about SSL certificates, see [What is Certificate Management Service?](~~28535~~).'."\n", + 'responseDemo' => '[{"type":"json","example":"{\\n \\"OrderId\\": \\"202304500950739\\",\\n \\"RequestId\\": \\"EF8198EE-8FC9-49C2-A22E-xxxx\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 202304500950739\\n EF8198EE-8FC9-49C2-A22E-xxxx\\n","errorExample":""}]', + 'title' => 'ModifyIPv6TranslatorBandwidth', + 'summary' => 'Modifies the maximum bandwidth of an IPv6 Translation Service instance.', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DeleteVpnGateway' => [ - 'summary' => 'Deletes a VPN gateway.', - 'methods' => [ - 'post', - 'get', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:ModifyIPv6TranslatorBandwidth', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'Ipv6Translator', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:ipv6trans/{#Ipv6TranslatorId}'], + ], + ], + ], ], - 'schemes' => [ - 'http', - 'https', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ModifyIPv6TranslatorBandwidth'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], ], + ], + 'ModifyIPv6TranslatorEntry' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'readAndWrite', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'delete', - 'riskType' => 'high', - 'chargeType' => 'free', - ], + 'deprecated' => true, + 'systemTags' => ['operationType' => 'update'], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the VPN gateway.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The region of the IPv6 Translation Service instance. You can call the DescribeRegions operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'example' => 'cn-hangzhou'], ], [ - 'name' => 'ClientToken', + 'name' => 'Ipv6TranslatorEntryId', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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 and cannot exceed 64 characters in length.'."\n" - ."\n" - .'> 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.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '02fb3da4-130e-11e9-8e44-0016e04115b', - ], + 'schema' => ['description' => 'The ID of the IPv6 mapping entry.'."\n", 'type' => 'string', 'required' => true, 'example' => 'ipv6trans-bp1858ys****'], ], [ - 'name' => 'VpnGatewayId', + 'name' => 'EntryName', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the VPN gateway.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'vpn-bp1q8bgx4xnkm2ogj****', - ], + 'schema' => ['description' => 'The name of the IPv6 mapping entry. It must be 2 to 100 characters in length, and can contain digits, periods (.), underscores (\\_), and hyphens (-). It must start with a letter. It cannot start with http:// or [https://](https://。).'."\n", 'type' => 'string', 'required' => false, 'example' => 'entry1'], + ], + [ + 'name' => 'EntryDescription', + 'in' => 'query', + 'schema' => ['description' => 'The description of the IPv6 mapping entry. It must be 2 to 100 characters in length, and can contain digits, periods (.), underscores (\\_), and hyphens (-). It must start with a letter. It cannot start with http:// or [https://](https://。).'."\n", 'type' => 'string', 'required' => false, 'example' => 'entrydescription'], + ], + [ + 'name' => 'AllocateIpv6Port', + 'in' => 'query', + 'schema' => ['description' => 'The port that is used by the IPv6 address allocated to the IPv6 Translation Service instance.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '80'], + ], + [ + 'name' => 'BackendIpv4Addr', + 'in' => 'query', + 'schema' => ['description' => 'The public IPv4 address that needs to provide IPv6 services.'."\n", 'type' => 'string', 'required' => false, 'example' => '47.11.XX.XX'], + ], + [ + 'name' => 'BackendIpv4Port', + 'in' => 'query', + 'schema' => ['description' => 'The port of the public IPv4 address that needs to provide IPv6 services.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '80'], + ], + [ + 'name' => 'TransProtocol', + 'in' => 'query', + 'schema' => ['description' => 'The protocol. Valid values:'."\n" + ."\n" + .'* **tcp**'."\n" + .'* **udp**'."\n", 'type' => 'string', 'required' => false, 'example' => 'tcp'], + ], + [ + 'name' => 'EntryBandwidth', + 'in' => 'query', + 'schema' => ['description' => 'The maximum bandwidth specified in the IPv6 mapping entry. Unit: Mbit/s. Valid values:'."\n" + ."\n" + .'* **-1** (default): does not limit the maximum bandwidth specified in the IPv6 mapping entry.'."\n" + .'* **1** to **200**: changes the maximum bandwidth specified in the IPv6 mapping entry.'."\n" + ."\n" + .'> The sum of maximum bandwidth values specified in all IPv6 entries cannot exceed the maximum bandwidth supported by the instance.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '10'], + ], + [ + 'name' => 'AclStatus', + 'in' => 'query', + 'schema' => ['description' => 'Specifies whether to enable access control lists (ACLs). Valid values:'."\n" + ."\n" + .'* **on**'."\n" + .'* **off**'."\n", 'type' => 'string', 'required' => false, 'example' => 'off'], + ], + [ + 'name' => 'AclType', + 'in' => 'query', + 'schema' => ['description' => 'The ACL type. Valid values:'."\n" + ."\n" + .'* **white**: a whitelist. IPv6 addresses in the ACL are allowed to access backend services.'."\n" + .'* **black**: a blacklist. IPv6 addresses in the ACL are not allowed to access backend services.'."\n", 'type' => 'string', 'required' => false, 'example' => 'white'], + ], + [ + 'name' => 'AclId', + 'in' => 'query', + 'schema' => ['description' => 'The ID of the associated ACL.'."\n", 'type' => 'string', 'required' => false, 'example' => 'ipv6transacl-bp1de27sou71g0lf****'], ], ], 'responses' => [ 200 => [ - 'headers' => [], 'schema' => [ + 'description' => 'The returned data.'."\n", 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '>0ED8D006-F706-4D23-88ED-E11ED28DCAC0', - ], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B45'], ], - 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'DependencyViolation.VpnConnection', - 'errorMessage' => 'There are vpn connections on specified customer gateway not deleted.', - ], - [ - 'errorCode' => 'DependencyViolation.SslVpnServer', - 'errorMessage' => 'There is SSL VPN server on specified vpn gateway not deleted.', - ], - [ - 'errorCode' => 'VpnGateway.Configuring', - 'errorMessage' => 'The specified service is configuring.', - ], - [ - 'errorCode' => 'DependencyViolation.GreTunnel', - 'errorMessage' => 'There is Gre tunnel on specified vpn gateway not deleted.', - ], - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', - ], - [ - 'errorCode' => 'TaskConflict', - 'errorMessage' => 'The eip operate too frequent, TaskConflict.', - ], - [ - 'errorCode' => 'InvalidVpnGatewayInstanceId.NotFound', - 'errorMessage' => 'The specified vpn gateway instance id does not exist.', - ], - [ - 'errorCode' => 'DependencyViolation.IpsecServer', - 'errorMessage' => 'the resource cannot be deleted because the resource has an ipsec server dependency.', - ], + ['errorCode' => 'InvalidName', 'errorMessage' => 'The specified value of name not supported.', 'description' => ''], + ['errorCode' => 'InvalidDescription', 'errorMessage' => 'The specified value of description not supported.', 'description' => ''], + ['errorCode' => 'InvalidIpAddress.AlreadyExist', 'errorMessage' => 'The specified ip address is already exist.', 'description' => ''], + ['errorCode' => 'InvalidIpAddress.WrongFormat', 'errorMessage' => 'The specified ip address is invalid.', 'description' => ''], + ['errorCode' => 'InvalidIpAddress.PrivateAddress', 'errorMessage' => 'The specified private ip address is invalid.', 'description' => ''], + ['errorCode' => 'IPv6TranslatorEntry.InvalidPort', 'errorMessage' => 'The specified port is invalid.', 'description' => ''], + ['errorCode' => 'IPv6TranslatorEntry.InvalidProtocol', 'errorMessage' => 'The specified transProtocol is invalid.', 'description' => ''], + ['errorCode' => 'IPv6Translator.Configuring', 'errorMessage' => 'The specified ipv6 translator is configuring.', 'description' => ''], + ['errorCode' => 'IPv6TranslatorEntry.IPv6Conflict', 'errorMessage' => 'The specified ipv6 port conflict.', 'description' => ''], + ['errorCode' => 'IPv6TranslatorEntry.IPv4Conflict', 'errorMessage' => 'The specified ipv4 port and address conflict.', 'description' => ''], + ['errorCode' => 'IPv6TranslatorEntry.InvalidParameter', 'errorMessage' => 'The specified parameter is not valid.', 'description' => ''], + ['errorCode' => 'IPv6TranslatorEntry.AclIdNull', 'errorMessage' => 'The acl id must not be null.', 'description' => ''], + ['errorCode' => 'InvalidIPv6TranslatorAclId.NotFound', 'errorMessage' => 'The specified ipv6 translator acl id does not exist.', 'description' => ''], + ['errorCode' => 'IPv6TranslatorEntry.InvalidAclType', 'errorMessage' => 'The specified acl type is invalid.', 'description' => ''], + ['errorCode' => 'IPv6TranslatorEntry.InvalidAclStatus', 'errorMessage' => 'The specified acl status is invalid.', 'description' => ''], + ['errorCode' => 'IPv6TranslatorEntry.InvalidBandwidth', 'errorMessage' => 'The specified bandwidth is invalid.', 'description' => ''], ], 403 => [ - [ - 'errorCode' => 'Forbidden.SubUser', - 'errorMessage' => 'User not authorized to operate on the specified resource as your account is created by another user.', - ], - [ - 'errorCode' => 'Forbidden', - 'errorMessage' => 'User not authorized to operate on the specified resource.', - ], - [ - 'errorCode' => 'ForbiddenRelease', - 'errorMessage' => 'Forbidden to release a prepaid instance within validity period', - ], + ['errorCode' => 'Forbbiden.SubUser', 'errorMessage' => 'User not authorized to operate on the specified resource as your account is created by another user.', 'description' => ''], + ['errorCode' => 'Forbidden', 'errorMessage' => 'User not authorized to operate on the specified resource.', 'description' => 'You do not have the permissions to manage the specified resource. Apply for the permissions and try again.'], ], [ - [ - 'errorCode' => 'InvalidVpnGatewayInstanceId.NotFound', - 'errorMessage' => 'The specified vpn gateway instance id does not exist.', - ], + ['errorCode' => 'InvalidIPv6TranslatorEntryId.NotFound', 'errorMessage' => 'The specified ipv6 translator entry id does not exist.', 'description' => ''], ], ], - 'staticInfo' => [ - 'returnType' => 'asynchronous', - 'callback' => 'Vpc::2016-04-28::DescribeVpnGateway', - 'callbackInterval' => 6000, - 'maxCallbackTimes' => 100, - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\">0ED8D006-F706-4D23-88ED-E11ED28DCAC0\\"\\n}","errorExample":"{ \\n \\"RequestId\\": \\"0ED8D006-F706-4D23-88ED-E11ED28DCAC0\\"\\n}"},{"type":"xml","example":"\\n\\n 0ED8D006-F706-4D23-88ED-E11ED28DCAC0\\n","errorExample":"\\n\\n 0ED8D006-F706-4D23-88ED-E11ED28DCAC0\\n"}]', - 'title' => 'DeleteVpnGateway', - 'description' => '> You cannot delete a VPN gateway associated with existing IPsec-VPN connections.'."\n", + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B45\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 54B48E3D-DF70-471B-AA93-08E683A1B45\\n","errorExample":""}]', + 'title' => 'ModifyIPv6TranslatorEntry', + 'summary' => 'Modifies an IPv6 mapping entry.', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [], ], - 'DissociateVpnGatewayWithCertificate' => [ - 'summary' => 'Disassociates a certificate from a VPN gateway.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'ModifyIpv6AddressAttribute' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'readAndWrite', 'deprecated' => false, 'systemTags' => [ 'operationType' => 'update', - 'tenantRelevance' => 'tenant', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '38016', + 'abilityTreeNodes' => ['FEATUREvpc3GHR3P'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the VPN gateway.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The region ID of the IPv6 address. You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-huhehaote'], ], [ - 'name' => 'VpnGatewayId', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the VPN gateway.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'vpn-bp1q8bgx4xnkm2ogj****', - ], + 'schema' => ['description' => 'The region ID of the IPv6 address. You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-huhehaote'], ], [ - 'name' => 'CertificateType', + 'name' => 'Ipv6AddressId', 'in' => 'query', - 'schema' => [ - 'description' => 'The certificate type. Valid values:'."\n" - ."\n" - .'* **Encryption**'."\n" - .'* **Signature**'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'Encryption', - ], + 'schema' => ['description' => 'The ID of the IPv6 address.'."\n", 'type' => 'string', 'required' => true, 'example' => 'ipv6-hp32vv2klzw4yerdf****'], ], [ - 'name' => 'CertificateId', + 'name' => 'Name', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the certificate.'."\n" - ."\n" - .'> The certificate ID refers to the ID generated after the SSL certificate is associated with the VPN gateway. It is not the ID of the SSL certificate.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => '6bfe4218-ea1d****', - ], + 'schema' => ['description' => 'The name of the IPv6 address.'."\n" + ."\n" + .'The name must be 0 to 128 characters in length and cannot start with `http://` or `https://`.'."\n", 'type' => 'string', 'required' => false, 'example' => 'test'], ], [ - 'name' => 'ClientToken', + 'name' => 'Description', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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.'."\n" - ."\n" - .'> 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.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '02fb3da4-130e*******', - ], + 'schema' => ['description' => 'The description of the IPv6 address.'."\n" + ."\n" + .'The description must be 0 to 256 characters in length and cannot start with `http://` or `https://`.'."\n", 'type' => 'string', 'required' => false, 'example' => 'test'], ], [ 'name' => 'DryRun', 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to perform a dry run, without performing the actual request. Valid values:'."\n" - ."\n" - .'* **true**: performs a dry run. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request passes the dry run, the `DryRunOperation` error code is returned. Otherwise, an error message is returned.'."\n" - .'* **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.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['description' => 'Specifies whether to perform a dry run, without performing the actual request. Valid values:'."\n" + ."\n" + .'* **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.'."\n" + .'* **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.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false'], + ], + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'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.'."\n" + ."\n" + .'> 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.'."\n", 'type' => 'string', 'required' => false, 'example' => 'd7d24a21-f4ba-4454-9173-b3828dae492b'], ], ], 'responses' => [ @@ -64433,71 +49541,45 @@ 'description' => 'The returned data.'."\n", 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '611CB80C-B6A9-43DB-9E38-0B0AC3D9B58F', - ], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => 'D560AF68-4CE8-4A5C-B3FE-469F558094D0'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'IllegalParam.CertificateType', - 'errorMessage' => 'The specified certificate type (%s) is invalid.', - ], - [ - 'errorCode' => 'VpnGateway.Configuring', - 'errorMessage' => 'The specified service is configuring.', - ], - ], - 403 => [ - [ - 'errorCode' => 'Forbidden', - 'errorMessage' => 'User not authorized to operate on the specified resource.', - ], - ], - [ - [ - 'errorCode' => 'InvalidVpnGatewayInstanceId.NotFound', - 'errorMessage' => 'The specified vpn gateway instance id does not exist.', - ], - [ - 'errorCode' => 'InvalidAssociateRelation.NotFound', - 'errorMessage' => 'The specified association does not exist.', - ], - ], - 409 => [ - [ - 'errorCode' => 'OperationConflict', - 'errorMessage' => 'The operation against this instance is too frequent, please try again later.', - ], + ['errorCode' => 'InvalidIpv6AddressId.NotFound', 'errorMessage' => 'The specified resource of %s is not found.', 'description' => 'The IPv6 address is not found.'], + ['errorCode' => 'IllegalParam.Name', 'errorMessage' => 'The param of Name [%s] is illegal.', 'description' => 'The error message returned because the Name parameter is set to an invalid value. Specify a valid value and try again.'], + ['errorCode' => 'IllegalParam.Description', 'errorMessage' => 'The param of Description [%s] is illegal.', 'description' => 'The error message returned because the Description parameter is set to an invalid value. Specify a valid values and try again.'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"611CB80C-B6A9-43DB-9E38-0B0AC3D9B58F\\"\\n}","errorExample":""},{"type":"xml","example":" \\r\\n611CB80C-B6A9-43DB-9E38-0B0AC3D9B58F\\r\\n ","errorExample":""}]', - 'title' => 'DissociateVpnGatewayWithCertificate', - 'description' => '* **DissociateVpnGatewayWithCertificate** is an asynchronous operation. After a request is sent, the system returns a request and runs the task in the background. You can call the [DescribeVpnGateway](~~73720~~) operation to query the status the task.'."\n" - ."\n" - .' * If the VPN gateway is in the **updating** state, the SSL certificate is being disassociated from the VPN gateway.'."\n" - .' * If the VPN gateway is in the **active** state, the SSL certificate is disassociated from the VPN gateway.'."\n" - ."\n" - .'* You cannot repeatedly call **DissociateVpnGatewayWithCertificate** within a specific period of time.'."\n", + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'ModifyIpv6AddressAttribute', + 'summary' => 'Modifies the name and description of an IPv6 address.', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'ModifyVpnGatewayAttribute' => [ - 'summary' => 'Modifies the name and description of a VPN Gateway or the automatic route advertisement feature.', - 'methods' => [ - 'post', - 'get', + 'changeSet' => [ + ['createdAt' => '2024-07-24T09:40:24.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2023-08-15T05:56:35.000Z', 'description' => 'Request parameters changed'], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:ModifyIpv6AddressAttribute', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VPC', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vpc/{#VpcId}'], + ], + ], + ], ], + ], + 'ModifyIpv6GatewayAttribute' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -64509,864 +49591,328 @@ 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', + 'abilityTreeCode' => '38017', + 'abilityTreeNodes' => ['FEATUREvpc3GHR3P'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region where the VPN gateway is created. You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-shanghai', - ], + 'schema' => ['description' => 'The region ID of the IPv6 gateway. You can call the [DescribeRegions](~~36063~~) operation to query the region ID.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-huhehaote', 'title' => ''], ], [ - 'name' => 'ClientToken', + 'name' => 'Ipv6GatewayId', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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.'."\n" - ."\n" - .'> 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.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-4266****', - ], + 'schema' => ['description' => 'The ID of the IPv6 gateway to modify.', 'type' => 'string', 'required' => true, 'example' => 'ipv6gw-hp39kh1ya51yzp2lu****', 'title' => ''], ], [ - 'name' => 'VpnGatewayId', + 'name' => 'Name', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the VPN gateway.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'vpn-bp1q8bgx4xnkm2ogj****', - ], + 'schema' => ['description' => 'The name of the IPv6 gateway.'."\n" + ."\n" + .'The name must be 0 to 128 characters in length and cannot start with `http://` or `https://`.', 'type' => 'string', 'required' => false, 'example' => 'ipv6name', 'title' => ''], ], [ - 'name' => 'Name', + 'name' => 'Description', 'in' => 'query', - 'schema' => [ - 'description' => 'The new name of the VPN gateway.'."\n" - ."\n" - .'The name must be 2 to 100 characters in length and cannot start with `http://` or `https://`. It must start with a letter and can contain letters, digits, underscores (\\_), hyphens (-), and periods (.). Other characters are not supported.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'myvpn', - ], + 'schema' => ['description' => 'The description of the IPv6 gateway.'."\n" + ."\n" + .'The description must be 0 to 256 characters in length and cannot start with `http://` or `https://`.', 'type' => 'string', 'required' => false, 'example' => 'ipv6description', 'title' => ''], ], [ - 'name' => 'Description', + 'name' => 'DryRun', 'in' => 'query', - 'schema' => [ - 'description' => 'The new description of the VPN connection.'."\n" - ."\n" - .'The description must be 1 to 100 characters in length.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'test', - ], + 'schema' => ['description' => 'Specifies whether to perform a dry run. Valid values:'."\n" + ."\n" + .'- **true**: performs a dry run. The system does not associate a routing table. The system checks the AccessKey pair, the authorization of the Resource Access Management (RAM) user, and the required parameters. If the check fails, the corresponding error is returned. If the check succeeds, the error code `DryRunOperation` is returned.'."\n" + ."\n" + .'- **false** (default): sends a normal request. After the check succeeds, a 2xx HTTP status code is returned and the system associates the routing table.', 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], ], [ - 'name' => 'AutoPropagate', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to automatically advertise BGP routes to the virtual private cloud (VPC). Valid values:'."\n" - ."\n" - .'* **true**'."\n" - .'* **false**'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'You can use the client to generate the token, but you must make sure that the token is unique among different requests. The ClientToken value can contain only ASCII characters.'."\n" + ."\n" + .'> If you do not specify this parameter, the system uses the **RequestId** as the **ClientToken**. The **RequestId** may be different for each API request.', 'type' => 'string', 'required' => false, 'example' => '02fb3da4-130e-11e9-8e44-0016e04115b', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => 'The results returned.'."\n", 'type' => 'object', 'properties' => [ - 'VpcId' => [ - 'description' => 'The ID of the VPC to which the VPN gateway belongs.'."\n", - 'type' => 'string', - 'example' => 'vpc-bp1ub1yt9cvakoel****', - ], - 'Status' => [ - 'description' => 'The status of the VPN gateway. Valid values:'."\n" - ."\n" - .'* **init**'."\n" - .'* **provisioning**'."\n" - .'* **active**'."\n" - .'* **updating**'."\n" - .'* **deleting**'."\n", - 'type' => 'string', - 'example' => 'active', - ], - 'InternetIp' => [ - 'description' => '* If the VPN gateway supports IPsec-VPN connections in single-tunnel mode, the address is the IP address of the VPN gateway and can be used to create an IPsec-VPN connection or an SSL-VPN connection.'."\n" - ."\n" - .'* If the VPN gateway supports IPsec-VPN connections in dual-tunnel mode, the address is the first IP address used to create an IPsec-VPN connection. The address cannot be used to create an SSL-VPN connection.'."\n" - ."\n" - .' If the VPN gateway supports IPsec-VPN connections in dual-tunnel mode, the system assigns two IP addresses to the VPN gateway to create two encrypted tunnels.'."\n", - 'type' => 'string', - 'example' => '116.62.XX.XX', - ], - 'Spec' => [ - 'description' => 'The maximum bandwidth of the VPN gateway. Unit: Mbit/s.'."\n", - 'type' => 'string', - 'example' => '5M', - ], - 'CreateTime' => [ - 'description' => 'The time when the VPN gateway was created. Unit: milliseconds.'."\n" - ."\n" - .'This value is a UNIX timestamp representing the number of milliseconds that have elapsed since January 1, 1970, 00:00:00 UTC.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1492753580000', - ], - 'AutoPropagate' => [ - 'description' => 'Indicates whether BGP routes are automatically advertised to the VPC. Valid values:'."\n" - ."\n" - .'* **true**'."\n" - .'* **false**'."\n", - 'type' => 'boolean', - 'example' => 'true', - ], - 'VpnGatewayId' => [ - 'description' => 'The ID of the VPN gateway.'."\n", - 'type' => 'string', - 'example' => 'vpn-bp1q8bgx4xnkm2ogj****', - ], - 'IntranetIp' => [ - 'description' => 'The private IP address of the vSwitch that is used by the system when the VPN gateway is deployed.'."\n" - ."\n" - .'The parameter is returned only for VPN gateways that support single-tunnel IPsec-VPN connections. The IPsec-VPN feature must be enabled.'."\n", - 'type' => 'string', - 'example' => '172.27.30.24', - ], - 'EndTime' => [ - 'description' => 'The time when the VPN gateway expires. Unit: milliseconds.'."\n" - ."\n" - .'This value is a UNIX timestamp representing the number of milliseconds that have elapsed since the epoch time January 1, 1970, 00:00:00 UTC.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1495382400000', - ], - 'VSwitchId' => [ - 'description' => 'The ID of the vSwitch associated with the VPN gateway.'."\n", - 'type' => 'string', - 'example' => 'vsw-bp1y9ovl1cu9ou4tv****', - ], - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B457', - ], - 'Description' => [ - 'description' => 'The description of the VPN gateway.'."\n", - 'type' => 'string', - 'example' => 'test', - ], - 'EnableBgp' => [ - 'description' => 'Indicates whether BGP is enabled for the VPN gateway. Valid values:'."\n" - ."\n" - .'* **true**'."\n" - .'* **false**'."\n", - 'type' => 'boolean', - 'example' => 'true', - ], - 'BusinessStatus' => [ - 'description' => 'The payment status of the VPN gateway. Valid values:'."\n" - ."\n" - .'* **Normal**'."\n" - .'* **FinancialLocked**'."\n", - 'type' => 'string', - 'example' => 'Normal', - ], - 'Name' => [ - 'description' => 'The name of the VPN gateway.'."\n", - 'type' => 'string', - 'example' => 'test', - ], - 'DisasterRecoveryInternetIp' => [ - 'description' => 'The second IP address assigned by the system to create an IPsec-VPN connection.'."\n" - ."\n" - .'This parameter is returned only when the VPN gateway supports the dual-tunnel mode.'."\n", - 'type' => 'string', - 'example' => '116.11.XX.XX', - ], - 'DisasterRecoveryVSwitchId' => [ - 'description' => 'The ID of the second vSwitch associated with the VPN gateway.'."\n" - ."\n" - .'This parameter is returned only when the VPN gateway supports the dual-tunnel mode.'."\n", - 'type' => 'string', - 'example' => 'vsw-p0w95ql6tmr2ludkt****', - ], - 'SslVpnInternetIp' => [ - 'description' => 'The IP address of the SSL-VPN connection.'."\n" - ."\n" - .'This parameter is returned only when the VPN gateway is a public VPN gateway and supports only the single-tunnel mode. In addition, the VPN gateway must have the SSL-VPN feature enabled.'."\n", - 'type' => 'string', - 'example' => '116.33.XX.XX', - ], - 'ResourceGroupId' => [ - 'description' => 'The ID of the resource group to which the VPN gateway belongs.'."\n" - ."\n" - .'You can call the [ListResourceGroups](~~158855~~) operation to query resource groups.', - 'type' => 'string', - 'example' => 'rg-acfmzs372yg****', - ], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '9DFEDBEE-E5AB-49E8-A2DC-CC114C67AF75', 'title' => ''], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidName', - 'errorMessage' => 'The name is not valid', - ], - [ - 'errorCode' => 'InvalidDescription', - 'errorMessage' => 'The description is not valid', - ], - [ - 'errorCode' => 'OperationUnsupported.EnableBgp', - 'errorMessage' => 'Current version of the VPN does not support enable BGP.', - ], - [ - 'errorCode' => 'OperationFailed.VpnConnectionExist', - 'errorMessage' => 'Auto propagate cannot be closed when VPN connections with BGP enabled exist.', - ], - [ - 'errorCode' => 'InvalidVpnGatewayInstanceId.NotFound', - 'errorMessage' => 'The specified vpn gateway instance id does not exist.', - ], - [ - 'errorCode' => 'VpnGateway.Configuring', - 'errorMessage' => 'The specified service is configuring.', - ], - [ - 'errorCode' => 'OperationFailed.CenLevelNotSupport', - 'errorMessage' => 'When the VPC to which the VPN gateway belongs is attached to a FULL-mode CEN, the VPN gateway cannot enable BGP.', - ], - [ - 'errorCode' => 'OperationFailed.VpcRoutePropagationDisable', - 'errorMessage' => 'The VPC system routing table does not enable the acceptance of propagated routes.', - ], - [ - 'errorCode' => 'OperationFailed.VpcRoutePublishEnabledInTR', - 'errorMessage' => 'A VPC supports at most one dynamic route learning source. In the forwarding router, disable route synchronization for the VPC.', - ], - [ - 'errorCode' => 'OperationFailed.VpcRoutePublishEnabledInECR', - 'errorMessage' => 'VPC supports only one dynamic route learning source at most. Please remove the VPC from ECR.', - ], - [ - 'errorCode' => 'OperationFailed.BondingVpnNotSupportBGP', - 'errorMessage' => 'The architecture does not support BGP capabilities (single tunnel bonding architecture VPN gateway).', - ], - [ - 'errorCode' => 'OperationFailed.StaleBGPRoutes', - 'errorMessage' => 'BGP routes are still there and automatic route propagation cannot be disabled.', - ], - ], - 403 => [ - [ - 'errorCode' => 'Forbidden.SubUser', - 'errorMessage' => 'User not authorized to operate on the specified resource as your account is created by another user.', - ], - [ - 'errorCode' => 'Forbidden', - 'errorMessage' => 'User not authorized to operate on the specified resource.', - ], - ], - [ - [ - 'errorCode' => 'InvalidVpnGatewayInstanceId.NotFound', - 'errorMessage' => 'The specified vpn gateway instance id does not exist.', - ], + ['errorCode' => 'InvalidIpv6GatewayId.NotFound', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'IllegalParam.Name', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'IllegalParam.Description', 'errorMessage' => '%s', 'description' => ''], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"VpcId\\": \\"vpc-bp1ub1yt9cvakoel****\\",\\n \\"Status\\": \\"active\\",\\n \\"InternetIp\\": \\"116.62.XX.XX\\",\\n \\"Spec\\": \\"5M\\",\\n \\"CreateTime\\": 1492753580000,\\n \\"AutoPropagate\\": true,\\n \\"VpnGatewayId\\": \\"vpn-bp1q8bgx4xnkm2ogj****\\",\\n \\"IntranetIp\\": \\"172.16.10.46\\",\\n \\"EndTime\\": 1495382400000,\\n \\"VSwitchId\\": \\"vsw-bp1y9ovl1cu9ou4tv****\\",\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B457\\",\\n \\"Description\\": \\"test\\",\\n \\"EnableBgp\\": true,\\n \\"BusinessStatus\\": \\"Normal\\",\\n \\"Name\\": \\"test\\",\\n \\"DisasterRecoveryInternetIp\\": \\"116.11.XX.XX\\",\\n \\"DisasterRecoveryVSwitchId\\": \\"vsw-p0w95ql6tmr2ludkt****\\",\\n \\"SslVpnInternetIp\\": \\"116.33.XX.XX\\",\\n \\"ResourceGroupId\\": \\"rg-acfmzs372yg****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n vpc-bp1ub1yt9cvakoel****\\n active\\n 116.62.XX.XX\\n 5M\\n 1492753580000\\n true\\n vpn-bp1q8bgx4xnkm2ogj****\\n 1495382400000\\n vsw-bp1y9ovl1cu9ou4tv****\\n 54B48E3D-DF70-471B-AA93-08E683A1B457\\n test\\n true\\n Normal\\n vsw-p0w95ql6tmr2ludkt****\\n 116.11.XX.XX\\n 116.33.XX.XX\\n test\\n","errorExample":""}]', - 'title' => 'ModifyVpnGatewayAttribute', - 'description' => '* **ModifyVpnGatewayAttribute** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call [DescribeVpnGateway](~~73720~~) to query the status of the task.'."\n" - ."\n" - .' * If the VPN gateway is in the **updating** state, the VPN gateway is being modified.'."\n" - .' * If the VPN gateway is in the **active** state, the VPN gateway is modified.'."\n" - ."\n" - .'* You cannot repeatedly call **ModifyVpnGatewayAttribute** to modify a VPN gateway within the specified period of time.'."\n", + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'Modify iPv6 gateway information', + 'summary' => 'Modifies the information of an IPv6 gateway.', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'MoveVpnResourceGroup' => [ - 'summary' => 'Moves a VPN gateway resource to a new resource group.', - 'methods' => [ - 'post', + 'changeSet' => [ + ['createdAt' => '2024-07-24T09:40:24.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2023-08-15T05:56:35.000Z', 'description' => 'Request parameters changed'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ModifyIpv6GatewayAttribute'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], ], - 'schemes' => [ - 'https', + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:ModifyIpv6GatewayAttribute', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'Ipv6Gateway', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:ipv6gateway/{#Ipv6GatewayId}'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"9DFEDBEE-E5AB-49E8-A2DC-CC114C67AF75\\"\\n}","type":"json"}]', + ], + 'ModifyIpv6InternetBandwidth' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'update', - 'riskType' => 'none', - 'chargeType' => 'free', - ], + 'operationType' => 'readAndWrite', + 'systemTags' => ['operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ - 'name' => 'InstanceId', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the resource.', - 'type' => 'string', - 'required' => true, - 'example' => 'vpn-8vb3lzn7biepthri8****', - ], + 'schema' => ['description' => 'The region ID of the IPv6 gateway. You can call the [DescribeRegions](~~36063~~) operation to query the region ID.', 'type' => 'string', 'required' => true, 'example' => 'cn-huhehaote', 'title' => ''], ], [ - 'name' => 'ResourceType', + 'name' => 'Ipv6AddressId', 'in' => 'query', - 'schema' => [ - 'description' => 'The type of resource.'."\n" - ."\n" - .'* **VpnGateway**: VPN gateway'."\n" - ."\n" - .' After you move a VPN gateway to a new resource group, the following associated resources are also moved to the new resource group: IPsec servers, SSL servers, SSL client certificates, and IPsec-VPN connections.'."\n" - ."\n" - .'* **CustomerGateway**: customer gateway'."\n" - ."\n" - .'* **VpnAttachment**: IPsec-VPN connection'."\n" - ."\n" - .' An IPsec-VPN connection associated with a transit router or not associate with a resource.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'VpnGateway', - ], + 'schema' => ['description' => 'The ID of the IPv6 address.'."\n" + ."\n" + .'> You must specify either **Ipv6AddressId** or **Ipv6InternetBandwidthId**.', 'type' => 'string', 'required' => false, 'example' => 'ipv6-2zen5j4axcp5l5qyy****', 'title' => ''], ], [ - 'name' => 'NewResourceGroupId', + 'name' => 'Ipv6InternetBandwidthId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the new resource group.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'rg-acfmzs372yg****', - ], + 'schema' => ['description' => 'The Internet bandwidth instance ID of the IPv6 address.', 'type' => 'string', 'required' => false, 'example' => 'ipv6bw-uf6hcyzu65v98v3du****', 'title' => ''], ], [ - 'name' => 'RegionId', + 'name' => 'Bandwidth', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the resource.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cn-zhangjiakou', - ], + 'schema' => ['description' => 'The Internet bandwidth of the IPv6 address. Unit: Mbit/s.'."\n" + ."\n" + .''."\n" + ."\n" + .'- If the billing method is pay-by-data-transfer, the valid values of Internet bandwidth are **1** to **1000**.'."\n" + .'- If the billing method is pay-by-bandwidth, the valid values of Internet bandwidth are **1** to **2000**.'."\n" + .'- If the billing method is monthly 95th percentile bandwidth, the valid values of Internet bandwidth are **1** to **2000**.'."\n" + ."\n" + .''."\n" + ."\n" + .''."\n" + ."\n" + .'- If the billing method is pay-by-data-transfer, the valid values of Internet bandwidth are **1** to **1000**.'."\n" + .'- If the billing method is pay-by-bandwidth, the valid values of Internet bandwidth are **1** to **2000**.'."\n" + .'', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '200', 'title' => ''], + ], + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'You can use the client to generate the token, but you must make sure that the token is unique among different requests. The ClientToken value can contain only ASCII characters.'."\n" + ."\n" + .'> If you do not specify this parameter, the system uses the **RequestId** of the API request as the **ClientToken**. The **RequestId** may be different for each API request.', 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-426655440000', 'title' => ''], + ], + [ + 'name' => 'DryRun', + 'in' => 'query', + 'schema' => ['description' => 'Specifies whether to perform a dry run. Valid values:'."\n" + .'- **true**: performs a dry run. The IPv4 gateway is not created. The system checks the required parameters, request syntax, and 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.'."\n" + .'- **false** (default): performs a dry run and sends the request. If the request passes the dry run, an HTTP 2xx status code is returned and the IPv4 gateway is created.', 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'The returned result, which indicates whether the operation was successful.'."\n", + 'description' => 'The request ID.', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '89ED47AF-3319-566E-A5F5-94E3F47F54A8', - ], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'D560AF68-4CE8-4A5C-B3FE-469F558094D0', 'title' => ''], ], + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidInstanceId.NotFound', - 'errorMessage' => 'InstanceId is not found.', - ], - [ - 'errorCode' => 'InvalidResourceGroupId', - 'errorMessage' => 'The specified ResourceGroupId does not exist.', - ], - [ - 'errorCode' => 'InvalidResourceId.NotFound', - 'errorMessage' => 'The specified ResourceId does not exist.', - ], - [ - 'errorCode' => 'IllegalParam.ResourceType', - 'errorMessage' => 'Invalid Resource Type value.', - ], + ['errorCode' => 'MissingParam.Ipv6InstanceId', 'errorMessage' => 'The param of Ipv6InstanceId is missing.', 'description' => 'The error message returned because Ipv6InstanceId is not set.'], + ['errorCode' => 'InvalidIpv6Instance.NotFound', 'errorMessage' => 'The specified Ipv6AddressId or Ipv6InternetBandwidthId is not found.', 'description' => ''], + ['errorCode' => 'IllegalParam.Bandwidth', 'errorMessage' => 'The param of bandwidth is illegal.', 'description' => 'The Bandwidth parameter is set to an invalid value.'], + ['errorCode' => 'OperationUnsupported.FinancialLocked', 'errorMessage' => 'The operation is forbidden because of financialLocked.', 'description' => 'The error message returned because the resource is locked due to overdue payments and the operation is denied.'], + ['errorCode' => 'OperationFailed.InternetBandwidthNonExist', 'errorMessage' => 'The operation is forbidden because of InternetBandwidthNonExist.', 'description' => 'The error message returned because the specified bandwidth is invalid and the operation is denied.'], + ['errorCode' => 'OperationFailed.InternetBandwidthUnstable', 'errorMessage' => 'The operation is forbidden because of InternetBandwidthUnstable.', 'description' => 'The operation is prohibited because the bandwidth instance is not in a stable state.'], + ['errorCode' => 'OperationFailed.BandwidthExceedLimit', 'errorMessage' => 'The operation is forbidden because of BandwidthExceedLimit.', 'description' => 'The error message returned because the specified bandwidth exceeds the upper limit and the operation is denied.'], + ['errorCode' => 'ParamExclusive.Ipv6AddressIdAndIpv6InternetBandwidthId', 'errorMessage' => 'Ipv6AddressId and Ipv6InternetBandwidthId is mutually exclusive.', 'description' => 'The error message returned because Ipv6AddressId and Ipv6InternetBandwidthId are not set for the same instance.'], ], - 403 => [ - [ - 'errorCode' => 'Forbidden', - 'errorMessage' => 'User not authorized to operate on the specified resource.', - ], + 404 => [ + ['errorCode' => 'InvalidIpv6Instance.NotFound', 'errorMessage' => 'The specified Ipv6AddressId or Ipv6InternetBandwidthId is not found.', 'description' => 'The error message returned because Ipv6AddressId or Ipv6InternetBandwidthId is not set.'], + ], + 500 => [ + ['errorCode' => 'OperationFailed.QueryAccountInfo', 'errorMessage' => 'Query account info failed when create order.', 'description' => 'Failed to query the account information when the order is placed.'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'title' => 'Modify the internet bandwidth of an iPv6 address', + 'summary' => 'Modifies the Internet bandwidth of an IPv6 address.', + 'description' => 'The **ModifyIpv6InternetBandwidth** operation does not support concurrent modifications to the same IPv6 Internet bandwidth.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2024-07-24T09:40:23.000Z', 'description' => 'Error codes changed, Request parameters changed'], + ['createdAt' => '2023-08-14T08:48:43.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-08-03T05:30:57.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-03-23T02:20:37.000Z', 'description' => 'Error codes changed'], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"89ED47AF-3319-566E-A5F5-94E3F47F54A8\\"\\n}","type":"json"}]', - 'title' => 'MoveVpnResourceGroup', - ], - 'DescribeVpnGateway' => [ - 'summary' => 'Queries the detailed information about a VPN gateway.', - 'methods' => [ - 'post', - 'get', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ModifyIpv6InternetBandwidth'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:ModifyIpv6InternetBandwidth', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'Ipv6InternetBandwidth', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:ipv6bandwidth/{#Ipv6InternetBandwidthId}'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"D560AF68-4CE8-4A5C-B3FE-469F558094D0\\"\\n}","type":"json"}]', + ], + 'ModifyNatGatewayAttribute' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'write', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'get', - 'riskType' => 'none', - 'chargeType' => 'free', - ], + 'systemTags' => ['operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', + 'schema' => ['description' => 'The region ID of the NAT gateway.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'example' => 'cn-hangzhou', 'title' => ''], + ], + [ + 'name' => 'NatGatewayId', + 'in' => 'query', + 'schema' => ['description' => 'The ID of the NAT gateway.'."\n", 'type' => 'string', 'required' => true, 'example' => 'ngw-2ze0dcn4mq31qx2jc****', 'title' => ''], + ], + [ + 'name' => 'Name', + 'in' => 'query', + 'schema' => ['description' => 'The name of the NAT gateway.'."\n" + ."\n" + .'The name must be 1 to 128 characters in length and cannot start with `http://` or `https://`.'."\n", 'type' => 'string', 'required' => false, 'example' => 'nat123', 'title' => ''], + ], + [ + 'name' => 'Description', + 'in' => 'query', + 'schema' => ['description' => 'The description of the NAT gateway.'."\n" + ."\n" + .'The description must be 1 to 128 characters in length, and cannot start with `http://` or `https://`.'."\n", 'type' => 'string', 'required' => false, 'example' => 'Description', 'title' => ''], + ], + [ + 'name' => 'IcmpReplyEnabled', + 'in' => 'query', + 'schema' => ['description' => 'Specifies whether to enable the Internet Control Message Protocol (ICMP) non-retrieval feature. Valid values:'."\n" + ."\n" + .'* **false** (default)'."\n" + .'* **true**'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'true', 'title' => ''], + ], + [ + 'name' => 'EipBindMode', + 'in' => 'query', 'schema' => [ - 'description' => 'The region ID of the VPN gateway.'."\n" + 'description' => 'Modifies the mode in which the EIP is associated with the NAT gateway. The value can be empty or **NAT**, which specifies the NAT mode.'."\n" + ."\n" + .'> '."\n" ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", + .'* You can only change **MULTI_BINDED** to **NAT**. You cannot change **NAT** to **MULTI_BINDED**. For more information about the **MULTI_BINDED** mode, see [CreateNatGateway](~~120219~~).'."\n" + ."\n" + .'* When you change the association mode, your network may be interrupted for seconds. The duration increases with the number of EIPs. You can change the association mode for at most 5 EIPs at the same time. We recommend changing the association mode during off-peak hours.'."\n" + .'* After the association mode is changed to **NAT**, the Internet NAT gateway is compatible with an IPv4 gateway. If an EIP is associated with a NAT gateway in NAT mode, the EIP occupies a private IP address of the vSwitch to which the NAT gateway belongs. Ensure the vSwitch has sufficient private IP addresses for EIPs to be associated with the NAT gateway.'."\n", 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', + 'enum' => ['NAT'], + 'required' => false, + 'example' => 'NAT', 'title' => '', ], ], [ - 'name' => 'VpnGatewayId', + 'name' => 'EnableSessionLog', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the VPN gateway.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'vpn-bp1r3v1xqkl0w519g****', - 'title' => '', - ], + 'schema' => ['description' => 'Whether to enable session logging, with values:'."\n" + .'- **true**: Session logging is enabled. '."\n" + .'- **false**: Session logging is disabled.', 'type' => 'boolean', 'required' => false, 'example' => 'true', 'title' => ''], ], [ - 'name' => 'IncludeReservationData', + 'name' => 'LogDelivery', 'in' => 'query', + 'style' => 'json', 'schema' => [ - 'description' => 'Specifies whether to include the data about pending orders. Valid values:'."\n" - ."\n" - .'* **false** (default)'."\n" - .'* **true**'."\n", - 'type' => 'boolean', + 'description' => 'Session log configuration information.', + 'type' => 'object', + 'properties' => [ + 'LogDeliveryType' => ['description' => 'Session log write type. Value: **sls**, Alibaba Cloud Log Service SLS.', 'type' => 'string', 'required' => false, 'example' => 'sls', 'title' => ''], + 'LogDestination' => ['description' => 'Session log write address. Value: acs:log:${regionName}:${projectOwnerAliUid}:project/${projectName}/logstore/${logstoreName}', 'type' => 'string', 'required' => false, 'example' => 'acs:log:cn-hangzhou:0000:project/nat_session_log_project/logstore/session_log_test', 'title' => ''], + ], 'required' => false, - 'example' => 'true', 'title' => '', + 'example' => '', ], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => 'The response parameters.'."\n", + 'description' => 'The request ID.'."\n", 'type' => 'object', 'properties' => [ - 'VpnType' => [ - 'description' => 'The type of VPN gateway. Only **Normal** may be returned, which indicates a standard VPN gateway.'."\n", - 'type' => 'string', - 'example' => 'Normal', - 'title' => '', - ], - 'Status' => [ - 'description' => 'The status of the VPN gateway. Valid values:'."\n" - ."\n" - .'* **init**'."\n" - .'* **provisioning**'."\n" - .'* **active**'."\n" - .'* **updating**'."\n" - .'* **deleting**'."\n", - 'type' => 'string', - 'example' => 'init', - 'title' => '', - ], - 'VpcId' => [ - 'description' => 'The ID of the VPC to which the VPN gateway belongs.'."\n", - 'type' => 'string', - 'example' => 'vpc-bp19m2yx1m5q0avyq****', - 'title' => '', - ], - 'SslMaxConnections' => [ - 'description' => 'The maximum number of concurrent SSL-VPN connections.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '5', - 'title' => '', - ], - 'Spec' => [ - 'description' => 'The maximum bandwidth of the VPN gateway. Unit: Mbit/s.'."\n", - 'type' => 'string', - 'example' => '5', - 'title' => '', - ], - 'InternetIp' => [ - 'description' => '* If the VPN gateway supports IPsec-VPN connections in single-tunnel mode, the address is the IP address of the VPN gateway and can be used to create an IPsec-VPN connection or an SSL-VPN connection.'."\n" - ."\n" - .'* If the VPN gateway supports IPsec-VPN connections in dual-tunnel mode, the address is the first IP address used to create an IPsec-VPN connection. The address cannot be used to create an SSL-VPN connection.'."\n" - ."\n" - .' If the VPN gateway supports IPsec-VPN connections in dual-tunnel mode, the system assigns two IP addresses to the VPN gateway to create two encrypted tunnels.'."\n", - 'type' => 'string', - 'example' => '47.22.XX.XX', - 'title' => '', - ], - 'CreateTime' => [ - 'description' => 'The timestamp when the VPN gateway was created. Unit: milliseconds.'."\n" - ."\n" - .'This value is a UNIX timestamp representing the number of milliseconds that have elapsed since the epoch time January 1, 1970, 00:00:00 UTC.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1495382400000', - 'title' => '', - ], - 'AutoPropagate' => [ - 'description' => 'Indicates whether BGP routes are automatically advertised to the VPC. Valid values:'."\n" - ."\n" - .'* **true**'."\n" - .'* **false**'."\n", - 'type' => 'boolean', - 'example' => 'true', - 'title' => '', - ], - 'ChargeType' => [ - 'description' => 'The billing method. Valid value:'."\n" - ."\n" - .'**POSTPAY**: pay-as-you-go'."\n", - 'type' => 'string', - 'example' => '中国站示例值:Prepay,国际站示例值:POSTPAY', - 'title' => '', - ], - 'VpnGatewayId' => [ - 'description' => 'The ID of the VPN gateway.'."\n", - 'type' => 'string', - 'example' => 'vpn-bp1r3v1xqkl0w519g****', - 'title' => '', - ], - 'Tag' => [ - 'description' => 'The tag that is automatically generated for the VPN gateway. The tag consists of the following parameters:'."\n" - ."\n" - .'* **VpnEnableBgp**: indicates whether the VPN gateway supports BGP. Valid values:'."\n" - ."\n" - .' * **true**'."\n" - .' * **false**'."\n" - ."\n" - .'* **VisuallySsl**: indicates whether the VPN gateway allows you to view the connection information of SSL clients. Valid values:'."\n" - ."\n" - .' * **true**'."\n" - .' * **false**'."\n" - ."\n" - .'* **PbrPriority**: indicates whether the VPN gateway allows you to configure priorities for policy-based routes. Valid values:'."\n" - ."\n" - .' * **true**'."\n" - .' * **false**'."\n" - ."\n" - .'* **VpnNewImage**: indicates whether the VPN gateway is upgraded. Valid values:'."\n" - ."\n" - .' * **true**'."\n" - .' * **false**'."\n" - ."\n" - .'* **description**: the description of the VPN gateway. This parameter is only for internal use.'."\n" - ."\n" - .'* **VpnVersion**: the version of the VPN gateway.'."\n" - ."\n" - .'* **IDaaSNewVersion**: indicates whether the VPN gateway can be associated with an EIAM 2.0 instance.'."\n" - ."\n" - .' * **true**'."\n" - .' * **false**'."\n", - 'type' => 'string', - 'example' => '{\\"VpnEnableBgp\\":\\"true\\",\\"VisuallySsl\\":\\"true\\",\\"PbrPriority\\":\\"true\\",\\"VpnNewImage\\":\\"true\\",\\"description\\":\\"转发1.3.24\\",\\"VpnVersion\\":\\"v1.2.4\\",\\"IDaaSNewVersion\\":\\"true\\"}', - 'title' => '', - ], - 'IpsecVpn' => [ - 'description' => 'Indicates whether the IPsec-VPN feature is enabled. Valid values:'."\n" - ."\n" - .'* **enable**'."\n" - .'* **disable**'."\n", - 'type' => 'string', - 'example' => 'enable', - 'title' => '', - ], - 'EndTime' => [ - 'description' => 'The timestamp when the VPN gateway expires. Unit: milliseconds.'."\n" - ."\n" - .'This value is a UNIX timestamp representing the number of milliseconds that have elapsed since the epoch time January 1, 1970, 00:00:00 UTC.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1544666102000', - 'title' => '', - ], - 'VSwitchId' => [ - 'description' => 'The ID of the vSwitch to which the VPN gateway belongs.'."\n", - 'type' => 'string', - 'example' => 'vsw-bp1dmzugdikc6hdgx****', - 'title' => '', - ], - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '27E4E088-8DE0-4672-BF5C-0A412389DB9E', - 'title' => '', - ], - 'Description' => [ - 'description' => 'The description of the VPN gateway.'."\n", - 'type' => 'string', - 'example' => 'vpngatewaydescription', - 'title' => '', - ], - 'EnableBgp' => [ - 'description' => 'Indicates whether BGP is enabled for the VPN gateway. Valid values:'."\n" - ."\n" - .'* **true**'."\n" - .'* **false**'."\n", - 'type' => 'boolean', - 'example' => 'true', - 'title' => '', - ], - 'BusinessStatus' => [ - 'description' => 'The payment status of the VPN gateway. Valid values:'."\n" - ."\n" - .'* **Normal**'."\n" - .'* **FinancialLocked**'."\n", - 'type' => 'string', - 'example' => 'Normal', - 'title' => '', - ], - 'SslVpn' => [ - 'description' => 'The status of the SSL-VPN feature. Valid values:'."\n" - ."\n" - .'* **enable**'."\n" - .'* **disable**'."\n", - 'type' => 'string', - 'example' => 'enable', - 'title' => '', - ], - 'Name' => [ - 'description' => 'The name of the VPN gateway.'."\n", - 'type' => 'string', - 'example' => 'vpngatewayname', - 'title' => '', - ], - 'ReservationData' => [ - 'description' => 'The information about pending orders.'."\n" - ."\n" - .'> This set of parameters is returned only when **IncludeReservationData** is set to **true**.'."\n", - 'type' => 'object', - 'properties' => [ - 'Status' => [ - 'description' => 'The status of the pending order. Valid values:'."\n" - ."\n" - .'* **1**: indicates that the order of the renewal or specification change has not taken effect.'."\n" - .'* **2**: indicates that the order is an order for temporary upgrade and the order has taken effect. After the temporary upgrade expires, the system restores the VPN gateway to its previous specifications. In this case, **ReservationIpsec**, **ReservationMaxConnections**, **ReservationSpec**, and **ReservationSsl** indicate the previous specification.'."\n", - 'type' => 'string', - 'example' => '1', - 'title' => '', - ], - 'ReservationOrderType' => [ - 'description' => 'The type of the pending order. Valid values:'."\n" - ."\n" - .'* **RENEWCHANGE**: renewal with upgrade or downgrade'."\n" - .'* **TEMP_UPGRADE**: temporary upgrade'."\n" - .'* **RENEW**: renewal'."\n", - 'type' => 'string', - 'example' => 'TEMP_UPGRADE', - 'title' => '', - ], - 'ReservationIpsec' => [ - 'description' => 'The IPsec-VPN status of the pending order. Valid values:'."\n" - ."\n" - .'* **enable**'."\n" - .'* **disable**'."\n", - 'type' => 'string', - 'example' => 'enable', - 'title' => '', - ], - 'ReservationSpec' => [ - 'description' => 'The bandwidth of the pending order. Unit: Mbit/s.'."\n", - 'type' => 'string', - 'example' => '5', - 'title' => '', - ], - 'ReservationSsl' => [ - 'description' => 'The SSL-VPN status of the pending order. Valid values:'."\n" - ."\n" - .'* **enable**'."\n" - .'* **disable**'."\n", - 'type' => 'string', - 'example' => 'enable', - 'title' => '', - ], - 'ReservationMaxConnections' => [ - 'description' => 'The maximum number of concurrent SSL-VPN connections of the pending order.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '5', - 'title' => '', - ], - 'ReservationEndTime' => [ - 'description' => 'If the order type is **TEMP_UPGRADE** (temporary upgrade), this parameter specifies the time when the temporary upgrade expires.'."\n" - ."\n" - .'If the order type is **RENEWCHANGE** (renewal with a specification change) or **RENEW** (renewal), this parameter indicates the time when the renewal or renewal with a specification change takes effect.'."\n", - 'type' => 'string', - 'example' => '2020-07-20T16:00:00Z', - 'title' => '', - ], - ], - 'title' => '', - 'example' => '', - ], - 'Tags' => [ - 'description' => '', - 'type' => 'object', - 'items' => [ - 'description' => 'VPN网关实例绑定的标签列表。', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'name' => 'Key', - 'description' => '标签键。', - 'visibility' => 'Public', - 'type' => 'string', - 'example' => 'aaa', - 'backendName' => 'tagKey', - ], - 'Value' => [ - 'name' => 'Value', - 'description' => '标签值。', - 'visibility' => 'Public', - 'type' => 'string', - 'example' => 'bbb', - 'backendName' => 'tagValue', - ], - ], - 'extendType' => 'true', - ], - 'title' => '', - 'example' => '', - 'itemNode' => true, - 'properties' => [ - 'Tag' => [ - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'type' => 'string', - ], - 'Value' => [ - 'type' => 'string', - ], - ], - ], - ], - ], - ], - 'NetworkType' => [ - 'description' => 'The network type of the VPN gateway.'."\n" - ."\n" - .'* **public**'."\n" - .'* **private**'."\n", - 'type' => 'string', - 'example' => 'public', - 'title' => '', - ], - 'DisasterRecoveryInternetIp' => [ - 'description' => 'The second IP address assigned by the system to create an IPsec-VPN connection.'."\n" - ."\n" - .'This parameter is returned only when the VPN gateway supports the dual-tunnel mode.'."\n", - 'type' => 'string', - 'example' => '47.91.XX.XX', - 'title' => '', - ], - 'DisasterRecoveryVSwitchId' => [ - 'description' => 'The ID of the second vSwitch associated with the VPN gateway.'."\n" - ."\n" - .'This parameter is returned only when the VPN gateway supports the dual-tunnel mode.'."\n", - 'type' => 'string', - 'example' => 'vsw-p0w95ql6tmr2ludkt****', - 'title' => '', - ], - 'SslVpnInternetIp' => [ - 'description' => 'The IP address of the SSL-VPN connection.'."\n" - ."\n" - .'This parameter is returned only when the VPN gateway is a public VPN gateway and supports only the single-tunnel mode. In addition, the VPN gateway must have the SSL-VPN feature enabled.'."\n", - 'type' => 'string', - 'example' => '47.74.XX.XX', - 'title' => '', - ], - 'ResourceGroupId' => [ - 'description' => 'The ID of the resource group to which the VPN gateway belongs.'."\n" - ."\n" - .'You can call the [ListResourceGroups](~~158855~~) operation to query resource groups.'."\n", - 'type' => 'string', - 'example' => 'rg-acfmzs372yg****', - 'title' => '', - ], - 'EniInstanceIds' => [ - 'description' => '', - 'type' => 'object', - 'items' => [ - 'description' => 'ENI ID。'."\n" - ."\n" - .'仅支持创建双隧道模式IPsec-VPN连接的VPN网关实例会返回当前参数。', - 'type' => 'string', - 'example' => 'eni-7xvcxgmd4y2ypibn****', - 'extendType' => 'true', - ], - 'title' => '', - 'example' => '', - 'itemNode' => true, - 'properties' => [ - 'EniInstanceId' => [ - 'type' => 'array', - 'items' => [ - 'type' => 'string', - ], - ], - ], - ], - 'GatewayType' => [ - 'description' => 'Type of VPN gateway:'."\n" - .'- **Traditional**: Traditional-type VPN gateway, supports both IPSec and SSL.'."\n" - .'- **Enhanced.SiteToSite**: Enhanced Site-to-Site VPN gateway, only supports IPSec.', - 'type' => 'string', - 'example' => 'Enhanced.SiteToSite', - 'title' => '', - ], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => 'AB5F62CF-2B60-4458-A756-42C9DFE108D1', 'title' => ''], ], 'title' => '', 'example' => '', @@ -65374,1726 +49920,874 @@ ], ], 'errorCodes' => [ + 400 => [ + ['errorCode' => 'UnsupportedFeature.PrivateLinkMode', 'errorMessage' => 'The feature of %s is not supported.', 'description' => 'The feature of reverse access is not supported.'], + ['errorCode' => 'IncorrectStatus.NATGW', 'errorMessage' => 'NATGW status is invalid.', 'description' => 'The NAT gateway is in an invalid state.'], + ['errorCode' => 'ExclusiveParam.%sAnd%s', 'errorMessage' => 'The param of %s and %s are mutually exclusive.', 'description' => 'You cannot specify %s and %s at the same time.'], + ['errorCode' => 'IncorrectStatus.NatGateway', 'errorMessage' => 'The status of natgateway is incorrect.', 'description' => 'The status of the NAT gateway is invalid.'], + ['errorCode' => 'DependencyViolation.PrivateLinkMode', 'errorMessage' => 'The specified resource of %s depends on %s, so the operation cannot be completed.', 'description' => 'The %s resource depends on %s.'], + ['errorCode' => 'UnsupportedFeature.IcmpReplyEnabled', 'errorMessage' => 'The feature of IcmpReplyEnabled is not supported.', 'description' => 'The value of IcmpReplyEnabled cannot be modified.'], + ['errorCode' => 'InvalidParams.NotNull', 'errorMessage' => 'The parameter must not be null, name or description or icmpReplyEnabled', 'description' => 'The name, description, and ICMP proxy cannot be empty at the same time.'], + ['errorCode' => 'InvalidParameter.Name.Malformed', 'errorMessage' => 'The specified Name is not valid.', 'description' => ''], + ['errorCode' => 'InvalidParameter.Description.Malformed', 'errorMessage' => 'The specified Description is not valid.', 'description' => ''], + ['errorCode' => 'UnsupportedFeature.IndirectConvertForVpcNat', 'errorMessage' => 'The VPC NAT gateway is not support to change EIP bond type.', 'description' => 'The error message returned because the value of the EipBindMode parameter cannot be modified for a VPC NAT gateway.'], + ['errorCode' => 'UnsupportedFeature.NormalNatModifyEipBindMode', 'errorMessage' => 'The normal NAT gateway is not support to change EIP bond type.', 'description' => 'The value of EipBindMode cannot be modified for a standard NAT gateway.'], + ['errorCode' => 'OperationDenied.EipBondTypeIsAlreadyNAT', 'errorMessage' => 'The EIP bond type is already NAT type.', 'description' => 'EipBindMode is already set to NAT.'], + ['errorCode' => 'UnsupportedFeature.IndirectConvertForFwNat', 'errorMessage' => 'The security protection enabled NAT gateway is not support change EIP bond type.', 'description' => 'The value of EipBindMode cannot be modified for an Internet NAT gateway for which the security protection feature is enabled.'], + ['errorCode' => 'QuotaExceeded.EipNumForModifyEipBondType', 'errorMessage' => 'The quota of %s is exceeded, binded: %s, quota: %s.', 'description' => 'The number of allowed EIPs reaches the upper limit when you modify the EIP association type.'], + ['errorCode' => 'ResourceNotEnough.SwitchAvailableIps', 'errorMessage' => 'The available private Ip number is not enough in your subnet.', 'description' => 'The number of private IP addresses in the subnet is insufficient.'], + ['errorCode' => 'UnsupportedFeature.VpcNatSecurityProtectionEnabled', 'errorMessage' => 'The VPC NAT gateway is not supported to enable security protection.', 'description' => 'You cannot enable security protection for the VPC NAT gateway.'], + ['errorCode' => 'OperationDenied.NatGatewayStatusInvalid', 'errorMessage' => 'The NAT gateway status is invalid.', 'description' => 'The status of the NAT gateway does not support the operation.'], + ['errorCode' => 'OperationDenied.EipStatusInvalid', 'errorMessage' => 'The NAT gateway has EIP in invalid status.', 'description' => 'The EIP associated with the NAT gateway is in an invalid state.'], + ['errorCode' => 'OperationDenied.SnatEntryStatusInvalid', 'errorMessage' => 'The NAT gateway has SNAT entry in invalid status.', 'description' => 'The SNAT entry associated with the NAT gateway is in an invalid state.'], + ['errorCode' => 'OperationDenied.DnatEntryStatusInvalid', 'errorMessage' => 'The NAT gateway has DNAT entry in invalid status.', 'description' => 'The DNAT entry associated with the NAT gateway is in an invalid state.'], + ['errorCode' => 'UnsupportedFeature.MutilBindedTypeNatEnableFw', 'errorMessage' => 'The NAT with Mutil-Binded Eip bind type is not support enable firewall.', 'description' => 'You cannot enable firewall for the NAT gateway because EIPs are associated with the NAT gateway in Multi-Binded mode.'], + ['errorCode' => 'Forbidden.FinancialLocked', 'errorMessage' => 'The instance is locked due to outstanding payments.', 'description' => 'The instance has overdue payments.'], + ['errorCode' => 'OperationFailed.PrivateLinkMode', 'errorMessage' => 'The NAT gateway is not support to change PrivateLinkMode.', 'description' => 'The NAT gateway is not support to change PrivateLinkMode.'], + ['errorCode' => 'IllegalParam.SessionLogDeliveryDestination', 'errorMessage' => 'The specified Delivery Destination is illegal.', 'description' => 'The specified Delivery Destination(SessionLogDeliveryDestination) is illegal.'], + ['errorCode' => 'OperationFailed.LogDeliveryIsUnAuthorized', 'errorMessage' => 'Operation failed because the user is not authorized to deliver NAT session log.', 'description' => 'The operation failed because you did not grant the NAT session log delivery permission'], + ['errorCode' => 'IllegalParam.SessionLogDeliveryType', 'errorMessage' => 'The specified Delivery Type is illegal.', 'description' => 'The specified delivery type parameter SessionLogDeliveryType is illegal.'], + ['errorCode' => 'UnsupportedFeature.EnableSessionLog', 'errorMessage' => 'The feature of EnableSessionLog is not supported.', 'description' => 'This instance does not support opening NAT Gateway session logs.'], + ], 403 => [ - [ - 'errorCode' => 'Forbbiden.SubUser', - 'errorMessage' => 'User not authorized to operate on the specified resource as your account is created by another user.', - ], - [ - 'errorCode' => 'Forbidden', - 'errorMessage' => 'User not authorized to operate on the specified resource.', - ], + ['errorCode' => 'Forbidden.ModifyEipBondType', 'errorMessage' => 'Authentication is failed for modify EIP bond type.', 'description' => 'The value of EipBindMode cannot be modified.'], ], [ - [ - 'errorCode' => 'InvalidVpnGatewayInstanceId.NotFound', - 'errorMessage' => 'The specified vpn gateway instance id does not exist.', - ], + ['errorCode' => 'InvalidRegionId.NotFound', 'errorMessage' => 'The specified RegionId does not exist in our records.', 'description' => ''], + ['errorCode' => 'InvalidNatGatewayId.NotFound', 'errorMessage' => 'The specified NatGatewayId does not exist in our records.', 'description' => ''], + ], + 500 => [ + ['errorCode' => 'OperationFailed.ConfigSessionLog', 'errorMessage' => 'Failed to configure session log due to a temporary failure of the server.', 'description' => 'Failed to configure session log due to an internal service error.'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"VpnType\\": \\"Normal\\",\\n \\"Status\\": \\"init\\",\\n \\"VpcId\\": \\"vpc-bp19m2yx1m5q0avyq****\\",\\n \\"SslMaxConnections\\": 5,\\n \\"Spec\\": \\"5\\",\\n \\"InternetIp\\": \\"47.22.XX.XX\\",\\n \\"CreateTime\\": 1495382400000,\\n \\"AutoPropagate\\": true,\\n \\"ChargeType\\": \\"中国站示例值:Prepay,国际站示例值:POSTPAY\\",\\n \\"VpnGatewayId\\": \\"vpn-bp1r3v1xqkl0w519g****\\",\\n \\"Tag\\": \\"{\\\\\\\\\\\\\\"VpnEnableBgp\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"true\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"VisuallySsl\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"true\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"PbrPriority\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"true\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"VpnNewImage\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"true\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"description\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"转发1.3.24\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"VpnVersion\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"v1.2.4\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"IDaaSNewVersion\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"true\\\\\\\\\\\\\\"}\\",\\n \\"IpsecVpn\\": \\"enable\\",\\n \\"EndTime\\": 1544666102000,\\n \\"VSwitchId\\": \\"vsw-bp1dmzugdikc6hdgx****\\",\\n \\"RequestId\\": \\"27E4E088-8DE0-4672-BF5C-0A412389DB9E\\",\\n \\"Description\\": \\"vpngatewaydescription\\",\\n \\"EnableBgp\\": true,\\n \\"BusinessStatus\\": \\"Normal\\",\\n \\"SslVpn\\": \\"enable\\",\\n \\"Name\\": \\"vpngatewayname\\",\\n \\"ReservationData\\": {\\n \\"Status\\": \\"1\\",\\n \\"ReservationOrderType\\": \\"TEMP_UPGRADE\\",\\n \\"ReservationIpsec\\": \\"enable\\",\\n \\"ReservationSpec\\": \\"5\\",\\n \\"ReservationSsl\\": \\"enable\\",\\n \\"ReservationMaxConnections\\": 5,\\n \\"ReservationEndTime\\": \\"2020-07-20T16:00:00Z\\"\\n },\\n \\"Tags\\": {\\n \\"Tag\\": [\\n {\\n \\"Key\\": \\"aaa\\",\\n \\"Value\\": \\"bbb\\"\\n }\\n ]\\n },\\n \\"NetworkType\\": \\"public\\",\\n \\"DisasterRecoveryInternetIp\\": \\"47.91.XX.XX\\",\\n \\"DisasterRecoveryVSwitchId\\": \\"vsw-p0w95ql6tmr2ludkt****\\",\\n \\"SslVpnInternetIp\\": \\"47.74.XX.XX\\",\\n \\"ResourceGroupId\\": \\"rg-acfmzs372yg****\\",\\n \\"EniInstanceIds\\": {\\n \\"EniInstanceId\\": [\\n \\"eni-7xvcxgmd4y2ypibn****\\"\\n ]\\n },\\n \\"GatewayType\\": \\"Enhanced.SiteToSite\\"\\n}","errorExample":""},{"type":"xml","example":"\\n Normal\\n init\\n vpc-bp19m2yx1m5q0avyq****\\n 5\\n 5\\n 47.22.XX.XX\\n 1495382400000\\n true\\n 中国站示例值:Prepay,国际站示例值:POSTPAY\\n vpn-bp1r3v1xqkl0w519g****\\n {\\\\\\"VpnEnableBgp\\\\\\":\\\\\\"true\\\\\\",\\\\\\"VisuallySsl\\\\\\":\\\\\\"true\\\\\\",\\\\\\"PbrPriority\\\\\\":\\\\\\"true\\\\\\",\\\\\\"VpnNewImage\\\\\\":\\\\\\"true\\\\\\",\\\\\\"description\\\\\\":\\\\\\"转发1.3.7\\\\\\",\\\\\\"VpnVersion\\\\\\":\\\\\\"v1.2.4\\\\\\"}\\n enable\\n 1544666102000\\n vsw-bp1dmzugdikc6hdgx****\\n 27E4E088-8DE0-4672-BF5C-0A412389DB9E\\n vpngatewaydescription\\n true\\n Normal\\n enable\\n vpngatewayname\\n vsw-p0w95ql6tmr2ludkt****\\n 47.91.XX.XX\\n 47.74.XX.XX\\n \\n 1\\n TEMP_UPGRADE\\n enable\\n 5\\n enable\\n 5\\n 2020-07-20T16:00:00Z\\n \\n \\n aaa\\n bbb\\n \\n public\\n","errorExample":""}]', - 'title' => 'DescribeVpnGateway', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', + 'title' => 'ModifyNatGatewayAttribute', + 'summary' => 'Modifies the name and description of a NAT gateway.', + 'description' => '## [](#)Description'."\n" + ."\n" + .'You can call this operation to query an Internet NAT gateway or a virtual private cloud (VPC) NAT gateway. The term NAT gateway in this topic refers to both NAT gateway types.'."\n", + 'changeSet' => [ + ['createdAt' => '2024-05-17T02:34:51.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-05-07T06:31:14.000Z', 'description' => 'Error codes changed, Request parameters changed'], + ['createdAt' => '2024-01-18T07:07:56.000Z', 'description' => 'Error codes changed, Response parameters changed'], + ['createdAt' => '2023-03-01T06:45:55.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2022-10-13T02:17:38.000Z', 'description' => 'Error codes changed, Request parameters changed'], + ['createdAt' => '2021-07-14T02:52:33.000Z', 'description' => 'Error codes changed'], + ], + 'ramActions' => [], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"AB5F62CF-2B60-4458-A756-42C9DFE108D1\\"\\n}","type":"json"}]', + 'translator' => 'manual', ], - 'DescribeVpnGateways' => [ - 'summary' => 'Queries VPN gateways in a region.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'ModifyNatGatewaySpec' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'list', - 'riskType' => 'none', - 'chargeType' => 'free', - ], + 'operationType' => 'write', + 'systemTags' => ['operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the VPN gateway.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - 'title' => '', - ], + 'schema' => ['description' => 'The ID of the region where the Internet NAT gateway is deployed.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'VpcId', + 'name' => 'NatGatewayId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the virtual private cloud (VPC) to which the VPN gateway belongs.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'vpc-bp1m3i0kn1nd4wiw9****', - 'title' => '', - ], + 'schema' => ['description' => 'The ID of the Internet NAT gateway that you want to upgrade.'."\n", 'type' => 'string', 'required' => true, 'example' => 'ngw-bp1uewa15k4iy5770****', 'title' => ''], ], [ - 'name' => 'VpnGatewayId', + 'name' => 'Spec', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the VPN gateway.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'vpn-bp17lofy9fd0dnvzv****', - 'title' => '', - ], + 'schema' => ['description' => 'The size of the Internet NAT gateway. Valid values:'."\n" + ."\n" + .'* **Small**: small'."\n" + .'* **Middle**: medium'."\n" + .'* **Large**: large'."\n", 'type' => 'string', 'required' => true, 'example' => 'Middle', 'title' => ''], ], [ - 'name' => 'Status', + 'name' => 'AutoPay', 'in' => 'query', - 'schema' => [ - 'description' => 'The status of the VPN gateway. Valid values:'."\n" - ."\n" - .'* **init**'."\n" - .'* **provisioning**'."\n" - .'* **active**'."\n" - .'* **updating**'."\n" - .'* **deleting**'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'active', - 'title' => '', - ], + 'schema' => ['description' => 'Specifies whether to automatically complete the payment.'."\n" + ."\n" + .'* **true**: enables automatic payment. Payments are automatically completed.'."\n" + .'* **false** (default): disables automatic payment. If you select this option, you must go to the Order Center to complete the payment after an order is generated.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], ], [ - 'name' => 'BusinessStatus', + 'name' => 'ClientToken', 'in' => 'query', + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'You can use the client to generate the value, but you must make sure that it is unique among different requests. The token can contain only ASCII characters.'."\n", 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-426655****', 'title' => ''], + ], + ], + 'responses' => [ + 200 => [ + 'headers' => [], 'schema' => [ - 'description' => 'The payment status of the VPN gateway. Valid values:'."\n" - ."\n" - .'* **Normal**'."\n" - .'* **FinancialLocked**'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'Normal', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => 'DBD4E4A2-786E-4BD2-8EB6-107FFC2B5B7D', 'title' => ''], + ], + 'description' => '', 'title' => '', + 'example' => '', ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'NATGW_MODIFY_SPEC_SAME', 'errorMessage' => 'The specified Spec is same with now.', 'description' => ''], + ['errorCode' => 'InvalidParameter.Spec.ValueNotSupported', 'errorMessage' => 'The specified Spec is not valid.', 'description' => ''], + ['errorCode' => 'OperationFailed.SyncOrderToSub', 'errorMessage' => 'SyncOrderToSub error.', 'description' => 'The operation failed.'], + ['errorCode' => 'OperationFailed.QueryPrice', 'errorMessage' => 'Query price failed when create order.', 'description' => 'Failed to query the price when creating the order.'], + ['errorCode' => 'IncorrectStatus.NatGateway', 'errorMessage' => 'The status of NAT gateway is incorrect.', 'description' => 'The status of NAT gateway is incorrect.'], + ], + 404 => [ + ['errorCode' => 'InvalidRegionId.NotFound', 'errorMessage' => 'The specified RegionId does not exist in our records.', 'description' => ''], + ['errorCode' => 'InvalidNatGatewayId.NotFound', 'errorMessage' => 'The specified NatGatewayId does not exist in our records.', 'description' => ''], + ['errorCode' => 'OperationUnsupported.PayByLcuNatModifySpec', 'errorMessage' => 'The spec of payByLcu nat is unsupported to modify.', 'description' => 'Pay-as-you-go NAT gateways cannot be resized.'], + ['errorCode' => 'Forbidden.ModifySpecToSpecialSpec', 'errorMessage' => 'You are not authorized to modify nat spec to special spec.', 'description' => ''], + ['errorCode' => 'Forbidden.ModifySpecToSpecialSpecForNormalNat', 'errorMessage' => 'Normal NAT is not allowed to change to special spec, only enhanced nat allowed.', 'description' => ''], + ], + 500 => [ + ['errorCode' => 'OperationFailed.NoAvailableResource', 'errorMessage' => 'The Zone have no available resource.', 'description' => ''], + ], + ], + 'title' => 'ModifyNatGatewaySpec', + 'summary' => 'Upgrades a subscription Internet NAT gateway.', + 'description' => '- You cannot call this operation to downgrade a subscription Internet NAT gateway. You can downgrade a subscription Internet NAT gateway only in the console.'."\n" + .'- When you call this operation to upgrade a subscription Internet NAT gateway, an order is generated. After you complete the payment in the order center, the Internet NAT gateway is upgraded.'."\n" + ."\n" + .'- **ModifyNatGatewaySpec** is an asynchronous operation. After you make a request, the ID of the request is returned but the Internet NAT gateway is not upgraded. The system upgrades the NAT gateway in the background. You can call the [DescribeNatGateways](/help/en/virtual-private-cloud/latest/describenatgateways) operation to query the status of an Internet NAT gateway. - If an Internet NAT gateway is in the **Modifying** state, the NAT gateway is being upgraded. In this case, you can only query the NAT gateway but cannot perform other operations.'."\n" + .' - If an Internet NAT gateway is in the **Available** state, the Internet NAT gateway is upgraded.'."\n" + .'- You cannot repeatedly call the **ModifyNatGatewaySpec** operation to resize a pay-by-specification NAT gateway.'."\n" + ."\n" + .'Internet NAT gateways are available in different sizes. The size of an Internet NAT gateway determines the SNAT performance, which includes the maximum number of connections and the number of new connections per second. However, the size of a NAT gateway does not affect the data throughput. The following table describes the correlations between different sizes of Internet NAT gateways and SNAT performance metrics. '."\n" + ."\n" + .'| Size | Maximum number of connections | Number of new connections per second |'."\n" + .'| ---- | ----------------------------- | ------------------------------------ |'."\n" + .'| Small | 10,000 | 1,000 |'."\n" + .'| Medium | 50,000 | 5,000 |'."\n" + .'| Large | 200,000 | 10,000 |', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2023-03-01T06:45:55.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2022-07-22T07:54:11.000Z', 'description' => 'Error codes changed'], + ], + 'ramActions' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"DBD4E4A2-786E-4BD2-8EB6-107FFC2B5B7D\\"\\n}","errorExample":""},{"type":"xml","example":"\\n DBD4E4A2-786E-4BD2-8EB6-107FFC2B5B7D\\n","errorExample":""}]', + ], + 'ModifyNatIpAttribute' => [ + 'summary' => 'Modifies the name and description of a NAT IP address.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free'], + 'parameters' => [ [ - 'name' => 'PageNumber', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The page number. Default value: **1**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', - 'default' => '1', - 'title' => '', - ], + 'schema' => ['description' => 'The region ID of the NAT gateway to which the NAT IP address that you want to modify belongs.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'eu-central-1', 'title' => ''], ], [ - 'name' => 'PageSize', + 'name' => 'NatIpId', 'in' => 'query', - 'schema' => [ - 'description' => 'The number of entries per page. Valid values: **1** to **50**. Default value: **10**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '10', - 'default' => '10', - 'title' => '', - ], + 'schema' => ['description' => 'The ID of the NAT IP address that you want to modify.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'vpcnatip-gw8e1n11f44wpg****', 'title' => ''], ], [ - 'name' => 'IncludeReservationData', + 'name' => 'NatIpName', 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to return information about pending orders. Valid values:'."\n" - ."\n" - .'* **false** (default)'."\n" - .'* **true**'."\n", - 'type' => 'boolean', - 'required' => false, - 'docRequired' => false, - 'example' => 'true', - 'title' => '', - ], + 'schema' => ['description' => 'The name of the NAT IP address that you want to modify.'."\n" + ."\n" + .'The name must be 2 to 128 characters in length, and can contain letters, digits, periods (.), underscores (\\_), and hyphens (-). It must start with a letter. The name must start with a letter and cannot start with `http://` or `https://`.'."\n", 'type' => 'string', 'required' => false, 'docRequired' => false, 'example' => 'newname', 'title' => ''], ], [ - 'name' => 'Tag', + 'name' => 'NatIpDescription', 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => 'The tags that are added to the VPN gateway.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The tag added to the VPN gateway.'."\n", - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => 'The tag key.'."\n" - ."\n" - .'You can specify at most 20 tag keys at a time.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'FinanceDept', - 'title' => '', - ], - 'Value' => [ - 'description' => 'The tag value.'."\n" - ."\n" - .'Each tag key corresponds to one tag value. You can specify at most 20 tag values at a time.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'FinanceJoshua', - 'title' => '', - ], - ], - 'required' => false, - 'title' => '', - 'example' => '', - ], - 'required' => false, - 'maxItems' => 20, - 'title' => '', - 'example' => '', - ], + 'schema' => ['description' => 'The description of the NAT IP address that you want to modify.'."\n" + ."\n" + .'The description must be 2 to 256 characters in length and start with a letter. The description cannot start with `http://` or `https://`.'."\n", 'type' => 'string', 'required' => false, 'docRequired' => false, 'example' => 'test', 'title' => ''], ], [ - 'name' => 'ResourceGroupId', + 'name' => 'DryRun', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the resource group to which the VPN gateway belongs.'."\n" - ."\n" - .' You can call the [ListResourceGroups](~~158855~~) operation to query the resource group list.', - 'type' => 'string', - 'required' => false, - 'example' => 'rg-acfmzs372yg****', - 'title' => '', - ], + 'schema' => ['description' => 'Specifies whether to perform only a dry run, without performing the actual request.'."\n" + ."\n" + .'* **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.'."\n" + .'* **false** (default): sends the request. If the request passes the precheck, a 2xx HTTP status code is returned and the name and description of the NAT IP address are modified.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], ], [ - 'name' => 'GatewayType', + 'name' => 'ClientToken', 'in' => 'query', - 'allowEmptyValue' => false, - 'schema' => [ - 'title' => 'VPN 网关类型,取值:'."\n" - .'Traditional:传统型VPN网关,覆盖IPsec功能和SSL功能'."\n" - .'Enhance.SiteToSite:增强型站点入云VPN,只覆盖IPsec功能', - 'description' => 'VPN 网关类型,取值:'."\n" - .'Traditional:传统型VPN网关,覆盖IPsec功能和SSL功能'."\n" - .'Enhance.SiteToSite:增强型站点入云VPN,只覆盖IPsec功能', - 'type' => 'string', - 'required' => false, - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'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.'."\n" + ."\n" + .'> 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.'."\n", 'type' => 'string', 'required' => false, 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3FF3898', 'title' => ''], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => ['description' => 'The region ID of the NAT gateway to which the NAT IP address that you want to modify belongs.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'eu-central-1', 'title' => ''], ], ], 'responses' => [ 200 => [ + 'headers' => [], 'schema' => [ - 'description' => 'The response parameters.'."\n", 'type' => 'object', 'properties' => [ - 'PageSize' => [ - 'description' => 'The number of entries returned per page.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - 'title' => '', - ], - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => 'DF11D6F6-E35A-41C3-9B20-6FC8A901FE65', - 'title' => '', - ], - 'PageNumber' => [ - 'description' => 'The number of the returned page.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - 'title' => '', - ], - 'TotalCount' => [ - 'description' => 'The number of entries returned.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - 'title' => '', - ], - 'VpnGateways' => [ - 'description' => '', - 'type' => 'object', - 'items' => [ - 'description' => 'VPN网关的信息。', - 'type' => 'object', - 'properties' => [ - 'VpnType' => [ - 'name' => 'VpnType', - 'description' => 'VPN网关类型。'."\n" - .' '."\n" - .''."\n" - ."\n" - .'- **Normal**:普通型。'."\n" - .'- **NationalStandard**:国密型。'."\n" - ."\n" - .''."\n" - ."\n" - .'取值:**Normal**,表示普通型。'."\n", - 'visibility' => 'Public', - 'type' => 'string', - 'example' => 'Normal', - 'backendName' => 'vpnType', - ], - 'Status' => [ - 'name' => 'Status', - 'description' => 'VPN网关的状态。'."\n" - ."\n" - .'- **init** :初始化。'."\n" - ."\n" - .'- **provisioning** :准备中。'."\n" - ."\n" - .'- **active** :正常。'."\n" - ."\n" - .'- **updating** :更新中。'."\n" - ."\n" - .'- **deleting** :删除中。'."\n", - 'visibility' => 'Public', - 'type' => 'string', - 'example' => 'active', - 'backendName' => 'status', - ], - 'VpcId' => [ - 'name' => 'VpcId', - 'description' => ' VPN网关所属VPC的ID。', - 'visibility' => 'Public', - 'type' => 'string', - 'example' => 'vpc-bp1m3i0kn1nd4wiw9****', - 'backendName' => 'vpcId', - ], - 'SslMaxConnections' => [ - 'name' => 'SslMaxConnections', - 'description' => 'VPN网关SSL连接数的规格。', - 'visibility' => 'Public', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '5', - 'backendName' => 'maxConnections', - ], - 'Spec' => [ - 'name' => 'Spec', - 'description' => 'VPN网关的带宽峰值。**M**表示单位Mbps。', - 'visibility' => 'Public', - 'type' => 'string', - 'example' => '5M', - 'backendName' => 'spec', - ], - 'InternetIp' => [ - 'name' => 'InternetIp', - 'description' => '- 在VPN网关实例支持创建单隧道模式IPsec-VPN连接的场景下,该地址为VPN网关实例的IP地址,可用于创建IPsec-VPN连接或SSL-VPN连接。'."\n" - ."\n" - .'- 在VPN网关实例支持创建双隧道模式IPsec-VPN连接的场景下,该地址为用于创建IPsec-VPN连接的第一个IP地址,不能用于创建SSL-VPN连接。'."\n" - ."\n" - .' 在VPN网关实例支持创建双隧道模式IPsec-VPN连接的场景下,系统会为VPN网关实例分配两个IPsec地址,用于创建双隧道模式的IPsec-VPN连接。', - 'visibility' => 'Public', - 'type' => 'string', - 'example' => '47.12.XX.XX', - 'backendName' => 'internetIp', - ], - 'CreateTime' => [ - 'name' => 'CreateTime', - 'description' => '创建VPN网关的时间戳。单位:毫秒。'."\n" - ."\n" - .'时间戳的格式采用Unix时间戳,表示从格林威治时间1970年01月01日00时00分00秒至创建VPN网关实例时的总时长。', - 'visibility' => 'Public', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1515383700000', - 'backendName' => 'createTime', - ], - 'AutoPropagate' => [ - 'name' => 'AutoPropagate', - 'description' => '是否已开启VPN网关的路由自动传播功能。'."\n" - ."\n" - .'- **true**:已开启。'."\n" - ."\n" - .'- **false**:未开启。', - 'visibility' => 'Public', - 'type' => 'boolean', - 'example' => 'true', - 'backendName' => 'autoPropagate', - ], - 'ChargeType' => [ - 'name' => 'ChargeType', - 'description' => 'VPN网关的付费类型。'."\n" - ."\n" - .'仅取值:**Prepay**,包年包月。'."\n" - ."\n" - .'仅取值:**POSTPAY**,按量计费。'."\n" - ."\n" - .'仅取值: **POSTPAY**,按量计费。', - 'visibility' => 'Public', - 'type' => 'string', - 'example' => '中国站示例值:Prepay,国际站示例值:POSTPAY', - 'backendName' => 'chargeType', - ], - 'VpnGatewayId' => [ - 'name' => 'VpnGatewayId', - 'description' => 'VPN网关的ID。', - 'visibility' => 'Public', - 'type' => 'string', - 'example' => 'vpn-bp17lofy9fd0dnvzv****', - 'backendName' => 'instanceId', - ], - 'Tag' => [ - 'name' => 'Tag', - 'description' => '系统自动生成的VPN网关标签。'."\n" - ."\n" - .'- **VpnEnableBgp**:表示VPN网关是否支持BGP功能。'."\n" - .' - **true**:支持。'."\n" - .' - **false**:不支持。'."\n" - .'- **VisuallySsl**:表示VPN网关是否支持查看SSL客户端的连接信息。'."\n" - .' - **true**:支持。'."\n" - .' - **false**:不支持。'."\n" - .'- **PbrPriority**:表示VPN网关是否支持为策略路由配置策略优先级。'."\n" - .' - **true**:支持。'."\n" - .' - **false**:不支持。'."\n" - .'- **VpnNewImage**:表示VPN网关是否为新型VPN网关。'."\n" - .' - **true**:是。'."\n" - .' - **false**:否。'."\n" - .'- **description**:表示VPN网关的描述信息,仅供系统内部使用。'."\n" - .'- **VpnVersion**:表示VPN网关的版本号。'."\n" - .'- **IDaaSNewVersion**:表示VPN网关是否支持绑定EIAM 2.0实例。'."\n" - .' - **true**:支持。'."\n" - .' - **false**:不支持。', - 'visibility' => 'Public', - 'type' => 'string', - 'example' => '{\\"VpnEnableBgp\\":\\"true\\",\\"VisuallySsl\\":\\"true\\",\\"PbrPriority\\":\\"true\\",\\"VpnNewImage\\":\\"true\\",\\"description\\":\\"转发1.3.24\\",\\"VpnVersion\\":\\"v1.2.4\\",\\"IDaaSNewVersion\\":\\"true\\"}', - 'backendName' => 'tag', - ], - 'IpsecVpn' => [ - 'name' => 'IpsecVpn', - 'description' => 'VPN网关是否开启了IPsec-VPN功能。'."\n" - ."\n" - .'- **enable**:已开启。'."\n" - ."\n" - .'- **disable**:未开启。', - 'visibility' => 'Public', - 'type' => 'string', - 'example' => 'enable', - 'backendName' => 'enableIpsecVpn', - ], - 'EndTime' => [ - 'name' => 'EndTime', - 'description' => 'VPN网关到期时间戳。单位:毫秒。'."\n" - ."\n" - .'时间戳的格式采用Unix时间戳,表示从格林威治时间1970年01月01日00时00分00秒至VPN网关实例到期时的总时长。', - 'visibility' => 'Public', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1518105600000', - 'backendName' => 'endTime', - ], - 'VSwitchId' => [ - 'name' => 'VSwitchId', - 'description' => 'VPN网关所属交换机的ID。', - 'visibility' => 'Public', - 'type' => 'string', - 'example' => 'vsw-bp15lbk8sgtr6r5b0****', - 'backendName' => 'vswitchId', - ], - 'Description' => [ - 'name' => 'Description', - 'description' => 'VPN网关的描述信息。', - 'visibility' => 'Public', - 'type' => 'string', - 'example' => 'test', - 'backendName' => 'description', - ], - 'EnableBgp' => [ - 'name' => 'EnableBgp', - 'description' => 'VPN网关BGP功能的开启状态。'."\n" - ."\n" - .'- **true**:已开启。'."\n" - ."\n" - .'- **false**:未开启。', - 'visibility' => 'Public', - 'type' => 'boolean', - 'example' => 'true', - 'backendName' => 'enableBgp', - ], - 'BusinessStatus' => [ - 'name' => 'BusinessStatus', - 'description' => 'VPN网关的付费状态。'."\n" - ."\n" - .'- **Normal**:正常。'."\n" - ."\n" - .'- **FinancialLocked**:欠费锁定。', - 'visibility' => 'Public', - 'type' => 'string', - 'example' => 'Normal', - 'backendName' => 'businessStatus', - ], - 'SslVpn' => [ - 'name' => 'SslVpn', - 'description' => 'VPN网关是否开启了SSL-VPN功能。'."\n" - ."\n" - .'- **enable**:已开启。'."\n" - ."\n" - .'- **disable**:未开启。', - 'visibility' => 'Public', - 'type' => 'string', - 'example' => 'enable', - 'backendName' => 'enableSslVpn', - ], - 'Name' => [ - 'name' => 'Name', - 'description' => 'VPN网关的名称。', - 'visibility' => 'Public', - 'type' => 'string', - 'example' => 'test', - 'backendName' => 'name', - ], - 'NetworkType' => [ - 'name' => 'NetworkType', - 'description' => 'VPN网关的网络类型。'."\n" - ."\n" - .'- **public**:公网VPN网关。'."\n" - .'- **private**:私网VPN网关。', - 'visibility' => 'Public', - 'type' => 'string', - 'example' => 'public', - 'backendName' => 'networkType', - ], - 'Tags' => [ - 'name' => 'Tags', - 'description' => 'VPN网关绑定的标签列表。', - 'visibility' => 'Public', - 'type' => 'array', - 'items' => [ - 'description' => 'VPN网关绑定的标签信息。', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'name' => 'Key', - 'description' => '标签键。', - 'visibility' => 'Public', - 'type' => 'string', - 'example' => 'FinanceDept', - 'backendName' => 'tagKey', - ], - 'Value' => [ - 'name' => 'Value', - 'description' => '标签值。', - 'visibility' => 'Public', - 'type' => 'string', - 'example' => 'FinanceJoshua', - 'backendName' => 'tagValue', - ], - ], - 'extendType' => 'true', - ], - 'backendName' => 'tags', - 'itemName' => 'Tag', - ], - 'ReservationData' => [ - 'name' => 'ReservationData', - 'description' => '未生效的订购数据。'."\n" - ."\n" - .'>仅**IncludeReservationData**传入**true**才会返回该组参数。', - 'visibility' => 'Public', - 'type' => 'object', - 'properties' => [ - 'Status' => [ - 'name' => 'Status', - 'description' => '未生效订单状态。'."\n" - ."\n" - .'- **1**:表示续费或续费变配的订单未生效。'."\n" - ."\n" - .'- **2**:表示临时升配的订单已生效。在到达还原时间后,系统会将VPN网关规格恢复到临时升配前的规格。此时**ReservationIpsec**、**ReservationMaxConnections**、**ReservationSpec**、**ReservationSsl**表示为VPN网关临时升配前的规格。', - 'visibility' => 'Public', - 'type' => 'string', - 'example' => '1', - 'backendName' => 'status', - ], - 'ReservationOrderType' => [ - 'name' => 'ReservationOrderType', - 'description' => '未生效订单类型。'."\n" - ."\n" - .'- **RENEWCHANGE**:续费变配。'."\n" - ."\n" - .'- **TEMP_UPGRADE**:临时升配。'."\n" - ."\n" - .'- **RENEW**:续费。', - 'visibility' => 'Public', - 'type' => 'string', - 'example' => 'TEMP_UPGRADE', - 'backendName' => 'reservationOrderType', - ], - 'ReservationIpsec' => [ - 'name' => 'ReservationIpsec', - 'description' => '未生效订单IPsec-VPN功能开启状态。'."\n" - ."\n" - .'- **enable**:已开启。'."\n" - ."\n" - .'- **disable**:未开启。', - 'visibility' => 'Public', - 'type' => 'string', - 'example' => 'enable', - 'backendName' => 'reservationIpsec', - ], - 'ReservationSpec' => [ - 'name' => 'ReservationSpec', - 'description' => '未生效订单的带宽规格。单位:Mbps。', - 'visibility' => 'Public', - 'type' => 'string', - 'example' => '5', - 'backendName' => 'reservationSpec', - ], - 'ReservationSsl' => [ - 'name' => 'ReservationSsl', - 'description' => '未生效订单SSL-VPN功能开启状态。'."\n" - .'- **enable**:已开启。'."\n" - ."\n" - .'- **disable**:未开启。', - 'visibility' => 'Public', - 'type' => 'string', - 'example' => 'enable', - 'backendName' => 'reservationSsl', - ], - 'ReservationMaxConnections' => [ - 'name' => 'ReservationMaxConnections', - 'description' => '未生效订单SSL-VPN并发连接用户数的规格。', - 'visibility' => 'Public', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '5', - 'backendName' => 'reservationMaxConnections', - ], - 'ReservationEndTime' => [ - 'name' => 'ReservationEndTime', - 'description' => '如果未生效订单类型为**TEMP_UPGRADE**(临时升配)时,该参数表示为临时升配的还原时间。'."\n" - ."\n" - .'如果未生效订单类型为**RENEWCHANGE**(续费变配)或**RENEW**(续费)时,该参数表示为续费或续费变配开始生效时间。', - 'visibility' => 'Public', - 'type' => 'string', - 'example' => '2021-07-20T16:00:00Z', - 'backendName' => 'reservationEndTime', - ], - ], - 'backendName' => 'reservationDataType', - ], - 'DisasterRecoveryInternetIp' => [ - 'name' => 'DisasterRecoveryInternetIp', - 'description' => '系统为VPN网关实例分配的用于创建IPsec-VPN连接的第二个IP地址。'."\n" - ."\n" - .'仅支持创建双隧道模式IPsec-VPN连接的VPN网关实例会返回当前参数。', - 'visibility' => 'Public', - 'type' => 'string', - 'example' => '47.91.XX.XX', - 'backendName' => 'disasterRecoveryInternetIp', - ], - 'DisasterRecoveryVSwitchId' => [ - 'name' => 'DisasterRecoveryVSwitchId', - 'description' => 'VPN网关实例关联的第二个交换机ID。'."\n" - ."\n" - .'仅支持创建双隧道模式IPsec-VPN连接的VPN网关实例会返回当前参数。', - 'visibility' => 'Public', - 'type' => 'string', - 'example' => 'vsw-p0w95ql6tmr2ludkt****', - 'backendName' => 'disasterRecoveryVSwitchId', - ], - 'SslVpnInternetIp' => [ - 'name' => 'SslVpnInternetIp', - 'title' => '', - 'description' => 'SSL-VPN连接的IP地址。'."\n" - ."\n" - .'仅支持创建双隧道模式IPsec-VPN连接的公网网络类型的VPN网关实例开启SSL-VPN功能后,才会返回当前参数。', - 'visibility' => 'Public', - 'type' => 'string', - 'example' => '47.74.XX.XX', - 'backendName' => 'sslVpnInternetIp', - ], - 'ResourceGroupId' => [ - 'name' => 'ResourceGroupId', - 'description' => 'VPN网关所属的资源组ID。'."\n" - ."\n" - .'您可以调用[ListResourceGroups](~~158855~~)接口查询资源组信息。', - 'type' => 'string', - 'example' => 'rg-acfmzs372yg****', - 'backendName' => 'resourceGroupId', - ], - 'EniInstanceIds' => [ - 'name' => 'EniInstanceIds', - 'description' => '系统为VPN网关实例创建的弹性网卡ENI(Elastic Network Interfaces)列表。', - 'type' => 'array', - 'items' => [ - 'description' => 'ENI ID。'."\n" - ."\n" - .'仅支持创建双隧道模式IPsec-VPN连接的VPN网关实例会返回当前参数。', - 'type' => 'string', - 'example' => 'eni-7xvcxgmd4y2ypibn****', - 'extendType' => 'true', - ], - 'backendName' => 'eniInstanceIds', - 'itemName' => 'EniInstanceId', - ], - 'GatewayType' => [ - 'name' => 'GatewayType', - 'title' => 'VPN 网关类型,取值:'."\n" - .'Traditional:传统型VPN网关,覆盖IPsec功能和SSL功能'."\n" - .'Enhance.SiteToSite:增强型站点入云VPN,只覆盖IPsec功能', - 'description' => 'VPN 网关类型,取值:'."\n" - .'Traditional:传统型VPN网关,覆盖IPsec功能和SSL功能'."\n" - .'Enhance.SiteToSite:增强型站点入云VPN,只覆盖IPsec功能', - 'type' => 'string', - 'backendName' => 'gatewayType', - ], - ], - 'extendType' => 'true', - ], - 'title' => '', - 'example' => '', - 'itemNode' => true, - 'properties' => [ - 'VpnGateway' => [ - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'VpnType' => [ - 'type' => 'string', - ], - 'Status' => [ - 'type' => 'string', - ], - 'VpcId' => [ - 'type' => 'string', - ], - 'SslMaxConnections' => [ - 'type' => 'integer', - 'format' => 'int64', - ], - 'Spec' => [ - 'type' => 'string', - ], - 'InternetIp' => [ - 'type' => 'string', - ], - 'CreateTime' => [ - 'type' => 'integer', - 'format' => 'int64', - ], - 'AutoPropagate' => [ - 'type' => 'boolean', - ], - 'ChargeType' => [ - 'type' => 'string', - ], - 'VpnGatewayId' => [ - 'type' => 'string', - ], - 'Tag' => [ - 'type' => 'string', - ], - 'IpsecVpn' => [ - 'type' => 'string', - ], - 'EndTime' => [ - 'type' => 'integer', - 'format' => 'int64', - ], - 'VSwitchId' => [ - 'type' => 'string', - ], - 'Description' => [ - 'type' => 'string', - ], - 'EnableBgp' => [ - 'type' => 'boolean', - ], - 'BusinessStatus' => [ - 'type' => 'string', - ], - 'SslVpn' => [ - 'type' => 'string', - ], - 'Name' => [ - 'type' => 'string', - ], - 'NetworkType' => [ - 'type' => 'string', - ], - 'Tags' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'Tag' => [ - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'type' => 'string', - ], - 'Value' => [ - 'type' => 'string', - ], - ], - ], - ], - ], - ], - 'ReservationData' => [ - 'type' => 'object', - 'properties' => [ - 'Status' => [ - 'type' => 'string', - ], - 'ReservationOrderType' => [ - 'type' => 'string', - ], - 'ReservationIpsec' => [ - 'type' => 'string', - ], - 'ReservationSpec' => [ - 'type' => 'string', - ], - 'ReservationSsl' => [ - 'type' => 'string', - ], - 'ReservationMaxConnections' => [ - 'type' => 'integer', - 'format' => 'int32', - ], - 'ReservationEndTime' => [ - 'type' => 'string', - ], - ], - ], - 'DisasterRecoveryInternetIp' => [ - 'type' => 'string', - ], - 'DisasterRecoveryVSwitchId' => [ - 'type' => 'string', - ], - 'SslVpnInternetIp' => [ - 'title' => '', - 'type' => 'string', - ], - 'ResourceGroupId' => [ - 'type' => 'string', - ], - 'EniInstanceIds' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'EniInstanceId' => [ - 'type' => 'array', - 'items' => [ - 'type' => 'string', - ], - ], - ], - ], - 'GatewayType' => [ - 'title' => 'VPN 网关类型,取值:'."\n" - .'Traditional:传统型VPN网关,覆盖IPsec功能和SSL功能'."\n" - .'Enhance.SiteToSite:增强型站点入云VPN,只覆盖IPsec功能', - 'type' => 'string', - ], - ], - ], - ], - ], - ], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '6CC9456C-2E29-452A-9180-B6926E51B5CA', 'title' => ''], ], + 'description' => '', 'title' => '', 'example' => '', ], ], ], 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InvalidParameter.TagKey', - 'errorMessage' => 'The specified parameter TagKey is invalid.', - ], - [ - 'errorCode' => 'InvalidParameter.TagValue', - 'errorMessage' => 'The specified parameter TagValue is invalid.', - ], - [ - 'errorCode' => 'Duplicated.TagKey', - 'errorMessage' => 'The specified parameter TagKey is duplicated.', - ], - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', - ], - ], - 403 => [ - [ - 'errorCode' => 'Forbidden.SubUser', - 'errorMessage' => 'User not authorized to operate on the specified resource as your account is created by another user.', - ], - [ - 'errorCode' => 'Forbidden', - 'errorMessage' => 'User not authorized to operate on the specified resource.', - ], + 404 => [ + ['errorCode' => 'InvalidRegionId.NotFound', 'errorMessage' => 'The specified RegionId does not exist in our records.', 'description' => ''], + ['errorCode' => 'ResourceNotFound.NatIp', 'errorMessage' => 'The specified resource of NatIp is not found.', 'description' => ''], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"PageSize\\": 10,\\n \\"RequestId\\": \\"DF11D6F6-E35A-41C3-9B20-6FC8A901FE65\\",\\n \\"PageNumber\\": 1,\\n \\"TotalCount\\": 1,\\n \\"VpnGateways\\": {\\n \\"VpnGateway\\": [\\n {\\n \\"VpnType\\": \\"Normal\\",\\n \\"Status\\": \\"active\\",\\n \\"VpcId\\": \\"vpc-bp1m3i0kn1nd4wiw9****\\",\\n \\"SslMaxConnections\\": 5,\\n \\"Spec\\": \\"5M\\",\\n \\"InternetIp\\": \\"47.12.XX.XX\\",\\n \\"CreateTime\\": 1515383700000,\\n \\"AutoPropagate\\": true,\\n \\"ChargeType\\": \\"中国站示例值:Prepay,国际站示例值:POSTPAY\\",\\n \\"VpnGatewayId\\": \\"vpn-bp17lofy9fd0dnvzv****\\",\\n \\"Tag\\": \\"{\\\\\\\\\\\\\\"VpnEnableBgp\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"true\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"VisuallySsl\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"true\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"PbrPriority\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"true\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"VpnNewImage\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"true\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"description\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"转发1.3.24\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"VpnVersion\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"v1.2.4\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"IDaaSNewVersion\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"true\\\\\\\\\\\\\\"}\\",\\n \\"IpsecVpn\\": \\"enable\\",\\n \\"EndTime\\": 1518105600000,\\n \\"VSwitchId\\": \\"vsw-bp15lbk8sgtr6r5b0****\\",\\n \\"Description\\": \\"test\\",\\n \\"EnableBgp\\": true,\\n \\"BusinessStatus\\": \\"Normal\\",\\n \\"SslVpn\\": \\"enable\\",\\n \\"Name\\": \\"test\\",\\n \\"NetworkType\\": \\"public\\",\\n \\"Tags\\": {\\n \\"Tag\\": [\\n {\\n \\"Key\\": \\"FinanceDept\\",\\n \\"Value\\": \\"FinanceJoshua\\"\\n }\\n ]\\n },\\n \\"ReservationData\\": {\\n \\"Status\\": \\"1\\",\\n \\"ReservationOrderType\\": \\"TEMP_UPGRADE\\",\\n \\"ReservationIpsec\\": \\"enable\\",\\n \\"ReservationSpec\\": \\"5\\",\\n \\"ReservationSsl\\": \\"enable\\",\\n \\"ReservationMaxConnections\\": 5,\\n \\"ReservationEndTime\\": \\"2021-07-20T16:00:00Z\\"\\n },\\n \\"DisasterRecoveryInternetIp\\": \\"47.91.XX.XX\\",\\n \\"DisasterRecoveryVSwitchId\\": \\"vsw-p0w95ql6tmr2ludkt****\\",\\n \\"SslVpnInternetIp\\": \\"47.74.XX.XX\\",\\n \\"ResourceGroupId\\": \\"rg-acfmzs372yg****\\",\\n \\"EniInstanceIds\\": {\\n \\"EniInstanceId\\": [\\n \\"eni-7xvcxgmd4y2ypibn****\\"\\n ]\\n },\\n \\"GatewayType\\": \\"Enhance.SiteToSite\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 10\\n DF11D6F6-E35A-41C3-9B20-6FC8A901FE65\\n 1\\n 1\\n \\n Normal\\n Active\\n vpc-bp1m3i0kn1nd4wiw9****\\n 5\\n 5M\\n 47.12.XX.XX\\n 1515383700000\\n true\\n 中国站示例值:Prepay,国际站示例值:POSTPAY\\n vpn-bp17lofy9fd0dnvzv****\\n {\\\\\\"VpnEnableBgp\\\\\\":\\\\\\"true\\\\\\",\\\\\\"VisuallySsl\\\\\\":\\\\\\"true\\\\\\",\\\\\\"PbrPriority\\\\\\":\\\\\\"true\\\\\\",\\\\\\"VpnNewImage\\\\\\":\\\\\\"true\\\\\\",\\\\\\"description\\\\\\":\\\\\\"转发1.3.7\\\\\\",\\\\\\"VpnVersion\\\\\\":\\\\\\"v1.2.4\\\\\\"}\\n enable\\n 1518105600000\\n vsw-bp15lbk8sgtr6r5b0****\\n test\\n true\\n Normal\\n enable\\n test\\n public\\n vsw-p0w95ql6tmr2ludkt****\\n 47.91.XX.XX\\n 47.74.XX.XX\\n \\n FinanceDept\\n FinanceJoshua\\n \\n \\n 1\\n TEMP_UPGRADE\\n enable\\n 5\\n enable\\n 5\\n 2021-07-20T16:00:00Z\\n \\n \\n","errorExample":""}]', - 'title' => 'DescribeVpnGateways', + 'title' => 'ModifyNatIpAttribute', + 'description' => '## [](#)Description'."\n" + ."\n" + .'You cannot repeatedly call the **ModifyNatIpAttribute** operation to modify the name and description of a NAT IP address within the specified period of time.'."\n", 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'ListVpnCertificateAssociations' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [ + ['createdAt' => '2023-03-01T06:45:53.000Z', 'description' => 'Response parameters changed'], ], + 'ramActions' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"6CC9456C-2E29-452A-9180-B6926E51B5CA\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 6CC9456C-2E29-452A-9180-B6926E51B5CA\\n","errorExample":""}]', + ], + 'ModifyNatIpCidrAttribute' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'write', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'get', - 'tenantRelevance' => 'tenant', - ], + 'systemTags' => ['operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the VPN gateway.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The region ID of the NAT gateway to which the NAT CIDR block belongs.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'eu-central-1', 'title' => ''], ], [ - 'name' => 'CertificateType', + 'name' => 'NatIpCidrName', 'in' => 'query', - 'schema' => [ - 'description' => 'The certificate type. Valid values:'."\n" - ."\n" - .'* **Encryption**'."\n" - .'* **Signature**'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'Signature', - ], + 'schema' => ['description' => 'The new name of the NAT CIDR block.'."\n" + ."\n" + .'The name must be 2 to 128 characters in length, and can contain digits, periods (.), underscores (\\_), and hyphens (-). It must start with a letter.'."\n", 'type' => 'string', 'required' => false, 'docRequired' => true, 'example' => 'newname', 'title' => ''], ], [ - 'name' => 'NextToken', + 'name' => 'DryRun', 'in' => 'query', - 'schema' => [ - 'description' => 'The pagination token that is used in the next request to retrieve a new page of results. Valid values:'."\n" - ."\n" - .'* You do not need to specify this parameter for the first request.'."\n" - .'* You must specify the token that is obtained from the previous query as the value of **NextToken**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'caeba0bbb2be0****', - ], + 'schema' => ['description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values:'."\n" + ."\n" + .'* **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.'."\n" + .'* **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.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], ], [ - 'name' => 'MaxResults', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The number of entries to return on each page. Valid values: **1** to **20**. Default value: **1**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '10', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'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.'."\n" + ."\n" + .'> 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.'."\n", 'type' => 'string', 'required' => false, 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3FF3898', 'title' => ''], ], [ - 'name' => 'VpnGatewayId', + 'name' => 'NatIpCidrDescription', 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => 'The list of VPN gateway IDs.'."\n" - ."\n" - .'You can query the association between at most 20 VPN gateways and SSL certificates.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The ID of the VPN gateway.'."\n" - ."\n" - .'You can query the association between at most 20 VPN gateways and SSL certificates.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'vpn-bp1q8bgx4xnkm2ogj****', - ], - 'required' => false, - 'example' => 'vpn-bp1q8bgx4xnkm****', - 'maxLength' => 128, - 'maxItems' => 20, - ], + 'schema' => ['description' => 'The new description of the NAT CIDR block.'."\n" + ."\n" + .'The description must be 2 to 256 characters in length. The description must start with a letter but cannot start with `http://` or `https://`.'."\n", 'type' => 'string', 'required' => false, 'example' => 'newtest', 'title' => ''], ], [ - 'name' => 'CertificateId', + 'name' => 'NatGatewayId', 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => 'The list of certificate IDs.'."\n" - ."\n" - .'You can query the association between at most 20 SSL certificates and VPN gateways.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The certificate ID.'."\n" - ."\n" - .'You can query the association between at most 20 SSL certificates and VPN gateways.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '848****', - ], - 'required' => false, - 'example' => '6bfe4218-ea1d****', - 'maxLength' => 128, - 'maxItems' => 20, - ], + 'schema' => ['description' => 'The ID of the Virtual Private Cloud (VPC) NAT gateway to which the NAT CIDR block belongs.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'ngw-gw8v16wgvtq26vh59****', 'title' => ''], + ], + [ + 'name' => 'NatIpCidr', + 'in' => 'query', + 'schema' => ['description' => 'The NAT CIDR block whose name and description you want to modify.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '172.16.0.0/24', 'title' => ''], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => ['description' => 'The region ID of the NAT gateway to which the NAT CIDR block belongs.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'eu-central-1', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => 'The response parameters.'."\n", 'type' => 'object', 'properties' => [ - 'NextToken' => [ - 'description' => 'The returned value of NextToken is a pagination token, which can be used in the next request to retrieve a new page of results. Valid values:'."\n" - ."\n" - .'* If **NextToken** is empty, no next page exists.'."\n" - .'* If **NextToken** is not empty, the value indicates the token that is used for the next query.'."\n", - 'type' => 'string', - 'example' => 'caeba0bbb2be****', - ], - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '197AF2BD-547F-470C-B29A-8400400233EB', - ], - 'TotalCount' => [ - 'description' => 'The total number of entries returned.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '4', - ], - 'MaxResults' => [ - 'description' => 'The number of entries returned per page.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'VpnCertificateRelations' => [ - 'description' => 'The association information.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The association between the VPN gateway and the certificate.'."\n", - 'type' => 'object', - 'properties' => [ - 'VpnGatewayId' => [ - 'description' => 'The ID of the VPN gateway.'."\n", - 'type' => 'string', - 'example' => 'vpn-bp1usbiorilk51760****', - ], - 'CertificateType' => [ - 'description' => 'The type of the certificate.'."\n" - ."\n" - .'* **Encryption**'."\n" - .'* **Signature**'."\n", - 'type' => 'string', - 'example' => 'Signature', - ], - 'CertificateId' => [ - 'description' => 'The certificate ID.'."\n", - 'type' => 'string', - 'example' => '6bfe4218-ea1d****', - ], - 'AssociationTime' => [ - 'description' => 'The time when the Anycast EIP was associated.'."\n" - ."\n" - .'The time follows the ISO 8601 standard in the YYYY-MM-DDThh:mm:ssZ format. The time is displayed in UTC.'."\n", - 'type' => 'string', - 'example' => '2020-12-29T09:30:29Z', - ], - 'RegionId' => [ - 'description' => 'The ID of the region where the VPN gateway is created.'."\n", - 'type' => 'string', - 'example' => 'cn-hangzhou', - ], - ], - ], - ], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '0ED8D006-F706-4D23-88ED-E11ED28DCAC0', 'title' => ''], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'IllegalParam.NextToken', - 'errorMessage' => 'The specified next token (%s) is invalid.', - ], + ['errorCode' => 'IllegalParamFormat.NatIpCidr', 'errorMessage' => 'The param format of NatIpCidr is illegal.', 'description' => 'The param format of NatIpCidr is illegal.'], ], - 403 => [ - [ - 'errorCode' => 'Forbidden', - 'errorMessage' => 'User not authorized to operate on the specified resource.', - ], + 404 => [ + ['errorCode' => 'ResourceNotFound.NatIpCidr', 'errorMessage' => 'The specified resource of NatIpCidr is not found.', 'description' => ''], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"NextToken\\": \\"caeba0bbb2be****\\",\\n \\"RequestId\\": \\"197AF2BD-547F-470C-B29A-8400400233EB\\",\\n \\"TotalCount\\": 4,\\n \\"MaxResults\\": 10,\\n \\"VpnCertificateRelations\\": [\\n {\\n \\"VpnGatewayId\\": \\"vpn-bp1usbiorilk51760****\\",\\n \\"CertificateType\\": \\"Signature\\",\\n \\"CertificateId\\": \\"6bfe4218-ea1d****\\",\\n \\"AssociationTime\\": \\"2020-12-29T09:30:29Z\\",\\n \\"RegionId\\": \\"cn-hangzhou\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\n 4\\n 197AF2BD-547F-470C-B29A-8400400233EB\\n \\n Signature\\n 2020-12-29T09:30:29Z\\n vpn-bp1usbiorilk51760****\\n 848****\\n cn-hangzhou\\n \\n \\n Encryption\\n 2020-12-29T09:30:16Z\\n vpn-bp1usbiorilk51760****\\n 848****\\n cn-hangzhou\\n \\n \\n Signature\\n 2020-12-09T02:36:23Z\\n vpn-bp1mrlw7134czer3l****\\n 848****\\n cn-hangzhou\\n \\n \\n Encryption\\n 2020-12-09T02:35:50Z\\n vpn-bp1mrlw7134czer3l****\\n 848****\\n cn-hangzhou\\n \\n 10\\n","errorExample":""}]', - 'title' => 'ListVpnCertificateAssociations', - 'summary' => 'Queries the association between VPN gateways and certificates in a region.', - 'description' => 'When you call **ListVpnCertificateAssociations**, take note of the following information:'."\n" - ."\n" - .'* If you specify only **RegionId**, the SSL certificates associated with all VPN gateways in the specified region are queried.'."\n" - .'* If you specify **RegionId** and **CertificateType**, the SSL certificates of the specified type that are associated with the VPN gateways in the specified region are queried.'."\n" - .'* If you specify **RegionId** and **VpnGatewayId**, the SSL certificates associated with the specified VPN gateway in the specified region are queried.'."\n" - .'* If you specify **RegionId** and **CertificateId**, the VPN gateways associated with the specified SSL certificate in the specified region are queried.'."\n", + 'title' => 'ModifyNatIpCidrAttribute', + 'summary' => 'Modifies the name and description of a NAT CIDR block.', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DiagnoseVpnGateway' => [ - 'summary' => 'Diagnoses a VPN gateway.', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [ + ['createdAt' => '2025-03-25T16:25:59.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2024-10-23T06:17:17.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-03-01T06:45:53.000Z', 'description' => 'Response parameters changed'], ], + 'ramActions' => [], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"0ED8D006-F706-4D23-88ED-E11ED28DCAC0\\"\\n}","type":"json"}]', + ], + 'ModifyNetworkAclAttributes' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'readAndWrite', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'get', - 'tenantRelevance' => 'tenant', - ], + 'systemTags' => ['operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ - 'name' => 'RegionId', + 'name' => 'NetworkAclId', 'in' => 'query', - 'schema' => [ - 'title' => 'RegionId', - 'description' => 'The region ID of the VPN gateway.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cn-qingdao', - ], + 'schema' => ['description' => 'The ID of the network ACL.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'acl-bp1lhl0taikrxxxxxxxx'], ], [ - 'name' => 'ResourceId', + 'name' => 'NetworkAclName', 'in' => 'query', - 'schema' => [ - 'title' => 'ResourceId', - 'description' => 'The ID of the resource to be diagnosed.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'vco-uf66xniofskqtuoz1****', - ], + 'schema' => ['description' => 'The name of the network ACL.'."\n" + ."\n" + .'The name must be 1 to 128 characters in length, and cannot start with `http://` or `https://`.'."\n", 'type' => 'string', 'required' => false, 'example' => 'acl-1'], ], [ - 'name' => 'ResourceType', + 'name' => 'Description', 'in' => 'query', - 'schema' => [ - 'title' => 'ResourceType', - 'description' => 'The type of the resource.'."\n" - ."\n" - .'Set the value to **Ipsec**, which specifies an IPsec-VPN connection.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'IPsec', - ], + 'schema' => ['description' => 'The description of the network ACL.'."\n" + ."\n" + .'The description must be 1 to 256 characters in length, and cannot start with `http://` or `https://`.'."\n", 'type' => 'string', 'required' => false, 'example' => 'This is my NetworkAcl.'], ], [ - 'name' => 'VpnGatewayId', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'title' => 'VpnGatewayId', - 'description' => 'The ID of the VPN gateway.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'vpn-m5efhj0k1p47ctuhl****', - ], + 'schema' => ['description' => 'The region ID of the network ACL.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou'], ], [ - 'name' => 'IPsecExtendInfo', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'title' => 'IPsecExtendInfo', - 'description' => 'Check the connectivity of the destination address. Valid values:'."\n" - ."\n" - .'* **PrivateSourceIp**: the source IP address. The source IP address must be on the VPC side.'."\n" - .'* **PrivateDestinationIp**: the destination IP address. The destination IP address must be on the data center side.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '{"PrivateSourceIp":"192.168.1.1","PrivateDestinationIp":"192.168.0.1"}', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'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.'."\n" + ."\n" + .'> 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.'."\n", 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-426655440000'], ], [ - 'name' => 'ClientToken', + 'name' => 'DryRun', 'in' => 'query', - 'schema' => [ - 'title' => 'system param', - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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.'."\n" - ."\n" - .'> 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.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '02fb3da4-130e-11e9-8e44-001****', - ], + 'schema' => ['description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values:'."\n" + ."\n" + .'* **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.'."\n" + .'* **false**: 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.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false'], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => ['description' => 'The region ID of the network ACL.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'The response parameters.'."\n", + 'description' => '', 'type' => 'object', 'properties' => [ - 'DiagnoseId' => [ - 'title' => 'DiagnoseId', - 'description' => 'The diagnostic ID.'."\n" - ."\n" - .'After a diagnostic ID is returned, you can call [GetVpnGatewayDiagnoseResult](~~2521963~~) to query the diagnostic report.'."\n", - 'type' => 'string', - 'example' => 'vpndgn-uf6kuxbe3iv028k3s****', - ], - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '0ED8D006-F706-4D23-88ED-E11ED28DCAC0', - ], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '8F76C3E4-B39F-465D-B8B3-50BAF03CA833'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'IdempotentParameterMismatch', - 'errorMessage' => 'The request uses the same client token as a previous, but non-identical request. Do not reuse a client token with different requests, unless the requests are identical.', - ], - [ - 'errorCode' => 'VpnGateway.Configuring', - 'errorMessage' => 'The specified service is configuring.', - ], - [ - 'errorCode' => 'OperationUnsupported.DiagnoseVpn', - 'errorMessage' => 'Current version of the VPN does not support diagnose.', - ], - [ - 'errorCode' => 'IllegalParam.ResourceType', - 'errorMessage' => 'The specified resource type [%s] is invalid.', - ], - [ - 'errorCode' => 'OperationFailed.VpnGatewayDiagnosing', - 'errorMessage' => 'The VPN gateway is diagnosing.', - ], - [ - 'errorCode' => 'OperationFailed.StartDiagnose', - 'errorMessage' => 'Start VPN gateway diagnose failed.', - ], - [ - 'errorCode' => 'IllegalParam.PrivateSourceIp', - 'errorMessage' => 'The specified private source IP [%s] is invalid.', - ], - [ - 'errorCode' => 'IllegalParam.PrivateDestinationIp', - 'errorMessage' => 'The specified private destination IP [%s] is invalid.', - ], + ['errorCode' => 'ParameterMissing.AliUid', 'errorMessage' => 'ParameterMissing.AliUid', 'description' => ''], + ['errorCode' => 'ParameterMissing.Bid', 'errorMessage' => 'ParameterMissing.Bid', 'description' => ''], + ['errorCode' => 'ParameterMissing.RegionId', 'errorMessage' => 'ParameterMissing.RegionId', 'description' => ''], + ['errorCode' => 'ParameterEmpty.RegionId', 'errorMessage' => 'ParameterEmpty.RegionId', 'description' => ''], + ['errorCode' => 'ParameterMissing.NetworkAclId', 'errorMessage' => 'ParameterMissing.NetworkAclId', 'description' => ''], + ['errorCode' => 'ParameterEmpty.NetworkAclId', 'errorMessage' => 'ParameterEmpty.NetworkAclId', 'description' => ''], + ['errorCode' => 'ParameterLengthIllegal.Name', 'errorMessage' => 'ParameterLengthIllegal.Name', 'description' => 'The length of the rule name is invalid.'], + ['errorCode' => 'ParameterIllegal.Name', 'errorMessage' => 'ParameterIllegal.Name', 'description' => 'The name of the entry is invalid.'], + ['errorCode' => 'ParameterLengthIllegal.Description', 'errorMessage' => 'ParameterLengthIllegal.Description', 'description' => ''], + ['errorCode' => 'ParameterIllegal.Description', 'errorMessage' => 'ParameterIllegal.Description', 'description' => ''], + ['errorCode' => 'InvalidNetworkAcl.NotFound', 'errorMessage' => 'The special Network Acl is not found.', 'description' => 'The network ACL is not found.'], + ['errorCode' => 'NotSupport.NetworkAcl', 'errorMessage' => 'Network acl is not support now.', 'description' => ''], + ['errorCode' => 'IllegalParamFormat.%s', 'errorMessage' => 'The param format of %s is illegal.', 'description' => 'The parameter mode is invalid.'], ], - 403 => [ - [ - 'errorCode' => 'Forbidden', - 'errorMessage' => 'User not authorized to operate on the specified resource.', - ], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error.', 'description' => ''], ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'ModifyNetworkAclAttributes', + 'summary' => 'Modifies the attributes of a network access control list (ACL).', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2023-11-24T05:37:30.000Z', 'description' => 'Error codes changed, Request parameters changed'], + ], + 'ramActions' => [ [ - [ - 'errorCode' => 'InvalidVpnGatewayInstanceId.NotFound', - 'errorMessage' => 'The specified vpn gateway instance id does not exist.', - ], - [ - 'errorCode' => 'InvalidResourceId.NotFound', - 'errorMessage' => 'The specified resource id [%s] does not exist.', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:ModifyNetworkAclAttributes', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'NetworkAcl', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:networkacl/{#NetworkAclId}'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"DiagnoseId\\": \\"vpndgn-uf6kuxbe3iv028k3s****\\",\\n \\"RequestId\\": \\"0ED8D006-F706-4D23-88ED-E11ED28DCAC0\\"\\n}","errorExample":""},{"type":"xml","example":"\\n vpndgn-uf6kuxbe3iv028k3s****\\n 0ED8D006-F706-4D23-88ED-E11ED28DCAC0\\n","errorExample":""}]', - 'title' => 'DiagnoseVpnGateway', ], - 'GetVpnGatewayDiagnoseResult' => [ - 'summary' => 'Queries the diagnostic result of a VPN gateway.', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'ModifyPhysicalConnectionAttribute' => [ + 'summary' => 'Modifies the configurations of an Express Connect circuit.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'get', - 'tenantRelevance' => 'tenant', - ], + 'systemTags' => ['operationType' => 'update'], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'title' => 'RegionId', - 'description' => 'The region ID of the VPN gateway.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cn-qingdao', - ], + 'schema' => ['description' => 'The region ID of the Express Connect circuit.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'example' => 'cn-shanghai', 'title' => ''], ], [ - 'name' => 'DiagnoseId', + 'name' => 'PhysicalConnectionId', 'in' => 'query', - 'schema' => [ - 'title' => 'DiagnoseId', - 'description' => 'The ID of the diagnostic operation.'."\n" - ."\n" - .'When you call the [DiagnoseVpnGateway](~~469751~~) operation, the system returns a corresponding ID.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'vpndgn-uf6kuxbe3iv028k3s****', - ], + 'schema' => ['description' => 'The ID of the Express Connect circuit.'."\n", 'type' => 'string', 'required' => true, 'example' => 'pc-119mfjzm******', 'title' => ''], ], [ - 'name' => 'VpnGatewayId', + 'name' => 'LineOperator', 'in' => 'query', - 'schema' => [ - 'title' => 'VpnGatewayId', - 'description' => 'The ID of the VPN gateway.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'vpn-uf6fzwp0ck3frwtbk****', - ], + 'schema' => ['description' => 'The connectivity provider of the Express Connect circuit. Valid values:'."\n" + ."\n" + .'* **CT**: China Telecom'."\n" + .'* **CU**: China Unicom'."\n" + .'* **CM**: China Mobile'."\n" + .'* **CO**: other connectivity providers in the Chinese mainland'."\n" + .'* **Equinix**: Equinix'."\n" + .'* **Other**: other connectivity providers outside the Chinese mainland'."\n", 'type' => 'string', 'required' => false, 'example' => 'CT', 'title' => ''], + ], + [ + 'name' => 'bandwidth', + 'in' => 'query', + 'schema' => ['description' => 'The bandwidth value for the connection over the Express Connect circuit. Unit: Mbit/s. Valid values: 2 to 10240.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '5', 'title' => ''], + ], + [ + 'name' => 'PeerLocation', + 'in' => 'query', + 'schema' => ['description' => 'The geographical location of the data center.'."\n", 'type' => 'string', 'required' => false, 'example' => '浙江省杭州市XX区XX街道XX号', 'title' => ''], + ], + [ + 'name' => 'PortType', + 'in' => 'query', + 'schema' => ['description' => 'The port type of the Express Connect circuit. Valid values:'."\n" + ."\n" + .'* **100Base-T**: 100 Mbit/s copper Ethernet port'."\n" + .'* **1000Base-T** (default): 1,000 Mbit/s copper Ethernet port'."\n" + .'* **1000Base-LX**: 1,000 Mbit/s single-mode optical port (10 kilometers)'."\n" + .'* **10GBase-T**: 10,000 Mbit/s copper Ethernet port'."\n" + .'* **10GBase-LR**: 10,000 Mbit/s single-mode optical port (10 kilometers)'."\n" + .'* **40GBase-LR**: 40,000 Mbit/s single-mode optical port'."\n" + .'* **100GBase-LR**: 100,000 Mbit/s single-mode optical port'."\n" + ."\n" + .'> To use ports 40GBase-LR and 100GBase-LR, you must first contact your account manager.'."\n", 'type' => 'string', 'required' => false, 'example' => '1000Base-LX', 'title' => ''], + ], + [ + 'name' => 'RedundantPhysicalConnectionId', + 'in' => 'query', + 'schema' => ['description' => 'The ID of the redundant Express Connect circuit. The redundant Express Connect circuit must be in the **Allocated**, **Confirmed**, or **Enabled** state.'."\n", 'type' => 'string', 'required' => false, 'example' => 'pc-119mfjzm7', 'title' => ''], + ], + [ + 'name' => 'Description', + 'in' => 'query', + 'schema' => ['description' => 'The description of the Express Connect circuit.'."\n" + ."\n" + .'The description must be 2 to 256 characters in length. It must start with a letter but cannot start with `http://` or `https://`.'."\n", 'type' => 'string', 'required' => false, 'example' => '物理专线的描述信息', 'title' => ''], + ], + [ + 'name' => 'Name', + 'in' => 'query', + 'schema' => ['description' => 'The name of the Express Connect circuit.'."\n" + ."\n" + .'The name must be 2 to 128 characters in length and can contain letters, digits, periods (.), underscores (\\_), and hyphens (-). It must start with a letter but cannot start with `http://` or `https://`.'."\n", 'type' => 'string', 'required' => false, 'example' => '物理专线的名称', 'title' => ''], ], [ 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'title' => 'system param', - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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.'."\n" - ."\n" - .'**'."\n" - ."\n" - .'**Description** 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.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '02fb3da4-130e-11e9-8e44-001****', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'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.'."\n" + ."\n" + .'> 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.'."\n", 'type' => 'string', 'required' => false, 'example' => 'efefe566754h', 'title' => ''], + ], + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'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.'."\n" + ."\n" + .'> 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.'."\n", 'type' => 'string', 'required' => false, 'example' => 'efefe566754h', 'title' => ''], + ], + [ + 'name' => 'CircuitCode', + 'in' => 'query', + 'schema' => ['description' => 'The circuit code of the Express Connect circuit. The circuit code is provided by the connectivity provider.'."\n", 'type' => 'string', 'required' => false, 'example' => 'longtel001', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'Schema object', - 'description' => 'The returned data.'."\n", 'type' => 'object', 'properties' => [ - 'BeginTime' => [ - 'title' => 'FinishTime', - 'description' => 'The time when the diagnostic started.'."\n" - ."\n" - .'The time follows the ISO8601 standard in the `yyyy-MM-ddTHH:mm:ssZ` format. The time is displayed in UTC.'."\n", - 'type' => 'string', - 'example' => '2022-12-15T05:28:57Z', - ], - 'DiagnoseId' => [ - 'title' => 'DiagnoseId', - 'description' => 'The ID of the diagnostic.'."\n", - 'type' => 'string', - 'example' => 'vpndgn-uf6sgneym02lxyuv4****', - ], - 'DiagnoseResult' => [ - 'title' => 'DiagnoseResult', - 'description' => 'The information about the diagnostic items.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'DiagnoseName' => [ - 'title' => 'diagnoseName', - 'description' => 'The diagnostic item.'."\n" - ."\n" - .'* **RouteEntryConflict**: route conflicts.'."\n" - .'* **VpnRouteQuota**: the quota of destination-based routes for the VPN gateway.'."\n" - .'* **VpnIPsecQuota**: the quota of IPsec-VPN connections for the VPN gateway.'."\n" - .'* **VpnPbrRouteQuota**: the quota of policy-based routes for the VPN gateway.'."\n" - .'* **VcoConfigConsistency**: the consistency of the IPsec-VPN connection.'."\n" - .'* **VcoUserInternetIpConnectivity**: Internet connectivity of the customer gateway.'."\n" - .'* **VcoPrivateConnectivity**: private network connectivity.'."\n" - ."\n" - .'For more information about the diagnostic items, see [Background information about quick diagnostics](~~190330~~).'."\n", - 'type' => 'string', - 'example' => 'RouteEntryConflict', - ], - 'DiagnoseResultDescription' => [ - 'title' => 'DiagnoseResultDescription', - 'description' => 'The diagnostic result.'."\n" - ."\n" - .'The system returns different results for each diagnostic item.'."\n" - ."\n" - .'* **RouteEntryConflict**: information about route conflicts.'."\n" - ."\n" - .'* **VpnRouteQuota**:'."\n" - ."\n" - .' * **quotaName**: the quota ID of destination-based routes.'."\n" - .' * **quantity**: the quota of destination-based routes for the VPN gateway.'."\n" - .' * **used**: the number of destination-based routes created for the VPN gateway.'."\n" - ."\n" - .'* **VpnIPsecQuota**:'."\n" - ."\n" - .' * **quotaName**: the quota ID of IPsec-VPN connections.'."\n" - .' * **quantity**: the quota of IPsec-VPN connections for the VPN gateway.'."\n" - .' * **used**: the number of IPsec-VPN connections created for the VPN gateway.'."\n" - ."\n" - .'* **VpnPbrRouteQuota**:'."\n" - ."\n" - .' * **quotaName**: the quota ID of policy-based routes.'."\n" - .' * **quantity**: the quota of policy-based routes for the VPN gateway.'."\n" - .' * **used**: the number of policy-based routes created for the VPN gateway.'."\n" - ."\n" - .'* **VcoConfigConsistency**:'."\n" - ."\n" - .' * **vcoLackConf**: The system cannot obtain the configuration of the peer of the IPsec-VPN connection.'."\n" - .' * **vcoRunningConf**: the configurations that have been added to the peer of the IPsec-VPN connection.'."\n" - .' * **vcoDiffConf**: the configurations that are inconsistent between the local end and the peer.'."\n" - .' * **vcoConf**: the configurations that have been added to the local end.'."\n" - ."\n" - .'* **VcoUserInternetIpConnectivity**:'."\n" - ."\n" - .' * **targetIp**: the public IP address of the customer gateway.'."\n" - .' * **rtt**: the latency when the system accesses the public IP address of the customer gateway. Unit: milliseconds.'."\n" - .' * **lossRate**: the packet loss when the system accesses the public IP address of the customer gateway.'."\n" - ."\n" - .'* **VcoPrivateConnectivity**:'."\n" - ."\n" - .' * **targetIp**: the source IP address.'."\n" - .' * **srcIp**: the destination IP address.'."\n" - .' * **rtt**: the latency when the source IP address accesses the destination IP address. Unit: milliseconds.'."\n" - .' * **lossRate**: the packet loss when the source IP address accesses the destination IP address.'."\n", - 'type' => 'string', - 'example' => '{\\"targetIp\\":\\"192.168.0.1\\",\\"srcIp\\":\\"192.168.1.1\\",\\"rtt\\":-1.0,\\"lossRate\\":100.0}', - ], - 'DiagnoseResultLevel' => [ - 'title' => 'DiagnoseResultLevel', - 'description' => 'The diagnostic result level.'."\n" - ."\n" - .'* **normal**'."\n" - .'* **warning**'."\n" - .'* **error**'."\n" - ."\n" - .'For more information, see [Background information about quick diagnostics](~~190330~~).'."\n", - 'type' => 'string', - 'example' => 'normal', - ], - ], - ], - ], - 'FinishTime' => [ - 'title' => 'FinishTime', - 'description' => 'The timestamp when the system finishes diagnosing the item.'."\n" - ."\n" - .'The time follows the ISO8601 standard in the `yyyy-MM-ddTHH:mm:ssZ` format. The time is displayed in UTC.'."\n", - 'type' => 'string', - 'example' => '2022-12-15T05:29:08Z', - ], - 'FinishedCount' => [ - 'title' => 'FinishedCount', - 'description' => 'The number of diagnostic items that have been diagnosed.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '7', - ], - 'RequestId' => [ - 'title' => 'RequestId', - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '312C4D5A-6563-5FC6-8C6E-A43A5A316FEB', - ], - 'ResourceInstanceId' => [ - 'title' => 'ResourceInstanceId', - 'description' => 'The ID of the resource that is diagnosed.'."\n", - 'type' => 'string', - 'example' => 'vco-uf6huqsu63azl7mdp****', - ], - 'ResourceType' => [ - 'title' => 'ResourceType', - 'description' => 'The type of the resource.'."\n" - ."\n" - .'The value is set to **IPsec**, which indicates an IPsec-VPN connection.'."\n", - 'type' => 'string', - 'example' => 'IPsec', - ], - 'TotalCount' => [ - 'title' => 'TotalCount', - 'description' => 'The total number of diagnostic items.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '7', - ], - 'VpnGatewayId' => [ - 'title' => 'VpnGatewayId', - 'description' => 'The ID of the VPN gateway.'."\n", - 'type' => 'string', - 'example' => 'vpn-uf6fzwp0ck3frwtbk****', - ], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '013EE132-A109-4247-91B0-099A8FF49AD7', 'title' => ''], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'param_error', - 'errorMessage' => 'The param is must be in ...', - ], - [ - 'errorCode' => 'MissingParam.DiagnoseInfo', - 'errorMessage' => 'The VPN gateway ID and diagnose ID cannot be empty at the same time.', - ], - [ - 'errorCode' => 'VpnGateway.Configuring', - 'errorMessage' => 'The specified service is configuring.', - ], - [ - 'errorCode' => 'IncorrectStatus.DiagnoseTimeout', - 'errorMessage' => 'Diagnose failed because of timeout.', - ], - [ - 'errorCode' => 'IncorrectStatus.VpnConnectionDeleted', - 'errorMessage' => 'Diagnose failed because the VPN connection has been deleted.', - ], - ], - 403 => [ - [ - 'errorCode' => 'Forbidden', - 'errorMessage' => 'User not authorized to operate on the specified resource.', - ], + ['errorCode' => 'InvalidLineOperator.Malformd', 'errorMessage' => 'The LineOperator provided was invalid.', 'description' => ''], + ['errorCode' => 'InvalidPeerLocation.Malformd', 'errorMessage' => 'The PeerLocation provided was invalid.', 'description' => ''], + ['errorCode' => 'InvalidPortType.Malformd', 'errorMessage' => 'The PortType provided was invalid.', 'description' => ''], + ['errorCode' => 'InvalidName.Malformed', 'errorMessage' => 'The specified ?Name? is not valid.', 'description' => ''], + ['errorCode' => 'InvalidStatus', 'errorMessage' => 'invalid physical connection status.', 'description' => ''], + ['errorCode' => 'InvalidBandwidth', 'errorMessage' => 'invalid physical connection banwidth.', 'description' => ''], + ['errorCode' => 'InvalidRedundantPhysicalConnection', 'errorMessage' => 'redundant physical connection doesn\'t belong to current user.', 'description' => ''], + ['errorCode' => 'InvalidRedundantPhysicalConnectionStatus', 'errorMessage' => 'invalid redundant physical connection status.', 'description' => ''], + ['errorCode' => 'InvalidCircuitCode.Malformed', 'errorMessage' => 'circuitCode is illegal.', 'description' => ''], + ['errorCode' => 'InvalidPhysicalConnectionOperator.Malformed', 'errorMessage' => 'Specified PhysicalConnection Operator is not valid.', 'description' => 'The operation on the Express Connect circuit is invalid.'], + ['errorCode' => 'InvalidPhysicalConnectionBandwidth.Malformed', 'errorMessage' => 'Specified PhysicalConnection Bandwidth is not valid.', 'description' => 'The bandwidth of the Express Connect circuit is set to an invalid value.'], + ['errorCode' => 'InvalidDescription.Malformed', 'errorMessage' => 'The specified Description is not valid.', 'description' => 'Parameter Description value is illegal'], + ['errorCode' => 'OperationDenied.VPconn', 'errorMessage' => 'The operation is not allowed because of VPconn.', 'description' => 'The operation failed because the hosted connection does not support the operation.'], ], - [ - [ - 'errorCode' => 'InvalidDiagnoseId.NotFound', - 'errorMessage' => 'The specified diagnose ID [%s] does not exist.', - ], - [ - 'errorCode' => 'InvalidVpnGatewayId.NotFound', - 'errorMessage' => 'The specified VPN gateway [%s] does not have any diagnoses.', - ], - [ - 'errorCode' => 'InvalidVpnGatewayInstanceId.NotFound', - 'errorMessage' => 'The specified vpn gateway instance id does not exist.', - ], + 404 => [ + ['errorCode' => 'InvalidRegionId.NotFound', 'errorMessage' => 'The RegionId provided does not exist in our records.', 'description' => ''], + ['errorCode' => 'InvalidPhysicalConnectionId.NotFound', 'errorMessage' => 'The PhysicalConnectionId provided does not exist in our records.', 'description' => ''], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"BeginTime\\": \\"2022-12-15T05:28:57Z\\",\\n \\"DiagnoseId\\": \\"vpndgn-uf6sgneym02lxyuv4****\\",\\n \\"DiagnoseResult\\": [\\n {\\n \\"DiagnoseName\\": \\"RouteEntryConflict\\",\\n \\"DiagnoseResultDescription\\": \\"{\\\\\\\\\\\\\\"targetIp\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"192.168.0.1\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"srcIp\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"192.168.1.1\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"rtt\\\\\\\\\\\\\\":-1.0,\\\\\\\\\\\\\\"lossRate\\\\\\\\\\\\\\":100.0}\\",\\n \\"DiagnoseResultLevel\\": \\"normal\\"\\n }\\n ],\\n \\"FinishTime\\": \\"2022-12-15T05:29:08Z\\",\\n \\"FinishedCount\\": 7,\\n \\"RequestId\\": \\"312C4D5A-6563-5FC6-8C6E-A43A5A316FEB\\",\\n \\"ResourceInstanceId\\": \\"vco-uf6huqsu63azl7mdp****\\",\\n \\"ResourceType\\": \\"IPsec\\",\\n \\"TotalCount\\": 7,\\n \\"VpnGatewayId\\": \\"vpn-uf6fzwp0ck3frwtbk****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 7\\n 2022-12-15T05:29:08Z\\n 312C4D5A-6563-5FC6-8C6E-A43A5A316FEB\\n vpn-uf6fzwp0ck3frwtbk****\\n 7\\n vpndgn-uf6sgneym02lxyuv4****\\n 2022-12-15T05:28:57Z\\n IPsec\\n vco-uf6huqsu63azl7mdp****\\n \\n normal\\n No routing conflict\\n RouteEntryConflict\\n \\n \\n normal\\n {\\"quotaName\\":\\"vpn_route_entry_quota\\",\\"quantity\\":\\"30\\",\\"used\\":\\"0\\"}\\n VpnRouteQuota\\n \\n \\n normal\\n {\\"quotaName\\":\\"vpn_quota_ipsec_connetcions_num\\",\\"quantity\\":\\"10\\",\\"used\\":\\"1\\"}\\n VpnIPsecQuota\\n \\n \\n normal\\n {\\"quotaName\\":\\"vpn_pbr_route_entry_quota\\",\\"quantity\\":\\"20\\",\\"used\\":\\"0\\"}\\n VpnPbrRouteQuota\\n \\n \\n warning\\n {\\"vcoLackConf\\":[\\"leftid\\",\\"rightid\\",\\"right\\",\\"leftsubnets\\",\\"rightsubnets\\",\\"ike_auth_alg\\",\\"ike_enc_alg\\",\\"ike_lifetime\\",\\"ipsec_auth_alg\\",\\"ipsec_enc_alg\\",\\"ipsec_lifetime\\",\\"nat_traversal\\",\\"dpd\\",\\"ike_pfs\\",\\"ipsec_pfs\\"],\\"vcoRunningConf\\":{},\\"vcoDiffConf\\":{},\\"vcoConf\\":{\\"ipsec_lifetime\\":\\"86400\\",\\"ike_pfs\\":\\"group2\\",\\"ike_enc_alg\\":\\"aes\\",\\"leftsubnets\\":\\"0.0.0.0/0\\",\\"nat_traversal\\":\\"true\\",\\"leftid\\":\\"47.XX.XX.15\\",\\"right\\":\\"1.XX.XX.1\\",\\"rightsubnets\\":\\"0.0.0.0/0\\",\\"ipsec_pfs\\":\\"group2\\",\\"ike_auth_alg\\":\\"sha1\\",\\"ike_lifetime\\":\\"86400\\",\\"rightid\\":\\"1.XX.XX.1\\",\\"dpd\\":\\"true\\",\\"ipsec_auth_alg\\":\\"sha1\\",\\"ipsec_enc_alg\\":\\"aes\\"}}\\n VcoConfigConsistency\\n \\n \\n error\\n {\\"targetIp\\":\\"1.XX.XX.1\\",\\"rtt\\":-1.0,\\"lossRate\\":100.0}\\n VcoUserInternetIpConnectivity\\n \\n \\n error\\n {\\"targetIp\\":\\"192.168.0.1\\",\\"srcIp\\":\\"192.168.1.1\\",\\"rtt\\":-1.0,\\"lossRate\\":100.0}\\n VcoPrivateConnectivity\\n \\n","errorExample":""}]', - 'title' => 'GetVpnGatewayDiagnoseResult', - 'description' => 'When you call the **GetVpnGatewayDiagnoseResult** operation, you must specify one of **DiagnoseId** and **VpnGatewayId**.'."\n", - ], - 'DescribeVpnGatewayAvailableZones' => [ - 'summary' => 'Queries zones that support IPsec-VPN connections in a region.', - 'methods' => [ - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'ModifyPhysicalConnectionAttribute', + 'description' => 'When you call this operation, take note of the following limits:'."\n" + ."\n" + .'* If an Express Connect circuit is in the **Initial**, **Enabled**, or **Rejected** state, you can modify the specifications of the Express Connect circuit and the ID of the redundant circuit.'."\n" + .'* If an Express Connect circuit is in the **Canceled**, **Allocating**, **AllocationFailed**, or **Terminated** state, you cannot modify the specifications of the Express Connect circuit.'."\n" + .'* After you modify the specifications of an Express Connect circuit that is in the **Rejected** state, the Express Connect circuit enters the **Initial** state.'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2024-06-13T08:13:13.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-02-28T09:00:12.000Z', 'description' => 'Error codes changed'], ], + 'ramActions' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"013EE132-A109-4247-91B0-099A8FF49AD7\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 013EE132-A109-4247-91B0-099A8FF49AD7\\n","errorExample":""}]', + ], + 'ModifyRouteEntry' => [ + 'summary' => 'Calls the ModifyRouteEntry operation to modify the name, description, and next hop of a custom route entry.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'readAndWrite', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'list', + 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', + 'abilityTreeCode' => '37904', + 'abilityTreeNodes' => ['FEATUREvpc0T77AE'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The region ID of the route entry.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the region ID.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'Spec', + 'name' => 'RouteEntryName', + 'in' => 'query', + 'schema' => ['description' => 'The name of the route entry.'."\n" + ."\n" + .'The name must be 1 to 128 characters in length and cannot start with `http://` or `https://`.', 'type' => 'string', 'required' => false, 'example' => 'EntryName', 'title' => ''], + ], + [ + 'name' => 'RouteEntryId', + 'in' => 'query', + 'schema' => ['description' => 'The ID of the custom route entry.', 'type' => 'string', 'required' => false, 'docRequired' => false, 'example' => 'rte-acfvgfsghfdd****', 'title' => ''], + ], + [ + 'name' => 'Description', + 'in' => 'query', + 'schema' => ['description' => 'The description of the route entry.'."\n" + ."\n" + .'The description must be 1 to 256 characters in length and cannot start with `http://` or `https://`.', 'type' => 'string', 'required' => false, 'example' => 'EntryDescription', 'title' => ''], + ], + [ + 'name' => 'NewNextHopType', 'in' => 'query', 'schema' => [ - 'description' => 'The bandwidth specification.'."\n" + 'title' => '', + 'description' => 'The new next hop type of the route. Valid values:'."\n" + ."\n" + .'- **Instance**: ECS instance.'."\n" + ."\n" + .'- **HaVip**: high-availability virtual IP address. '."\n" + ."\n" + .'- **RouterInterface**: vRouter interface.'."\n" + ."\n" + .'- **NetworkInterface**: elastic network interface (ENI).'."\n" ."\n" - .'* If an IPsec-VPN connection can be associated with the VPN gateway, this parameter specifies the bandwidth specification of the VPN gateway.'."\n" - .'* In scenarios where an IPsec-VPN connection can be associated with a transit router. This parameter specifies the bandwidth specification supported by an IPsec-VPN connection.'."\n" + .'- **VpnGateway**: VPN gateway.'."\n" ."\n" - .'Different bandwidth specifications may affect returned zone information. Valid values:'."\n" + .'- **IPv6Gateway**: IPv6 gateway.'."\n" ."\n" - .'* **5M**'."\n" - .'* **10M**'."\n" - .'* **20M**'."\n" - .'* **50M**'."\n" - .'* **100M**'."\n" - .'* **200M**'."\n" - .'* **500M**'."\n" - .'* **1000M**'."\n", + .'- **NatGateway**: NAT gateway.'."\n" + ."\n" + .'- **Attachment**: transit router.'."\n" + ."\n" + .'- **VpcPeer**: VPC peering connection.'."\n" + .'- **Ipv4Gateway**: IPv4 gateway.'."\n" + .'- **GatewayEndpoint**: gateway endpoint.'."\n" + .'- **Ecr**: Express Connect Router (ECR).'."\n" + .'- **GatewayLoadBalancerEndpoint**: Gateway Load Balancer endpoint (GWLBe).', + 'enumValueTitles' => [ + 'HaVip' => 'HaVip', 'VpnGateway' => 'VpnGateway', 'GatewayLoadBalancerEndpoint' => 'GatewayLoadBalancerEndpoint', 'VpcPeer' => 'VpcPeer', 'Instance' => 'Instance', 'NetworkInterface' => 'NetworkInterface', 'NatGateway' => 'NatGateway', 'Attachment' => 'Attachment', 'Ipv4Gateway' => 'Ipv4Gateway', 'GatewayEndpoint' => 'GatewayEndpoint', + 'Ecr' => 'Ecr', 'RouterInterface' => 'RouterInterface', 'IPv6Gateway' => 'IPv6Gateway', + ], 'type' => 'string', - 'required' => true, - 'example' => '5M', + 'required' => false, + 'example' => 'NetworkInterface', ], ], [ - 'name' => 'AcceptLanguage', + 'name' => 'NewNextHopId', 'in' => 'query', - 'schema' => [ - 'description' => 'The language in which the returned results are displayed. Valid values:'."\n" - ."\n" - .'* **zh-CN**: Chinese'."\n" - .'* **en-US** (default): English'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'zh-CN', - ], + 'schema' => ['title' => '', 'description' => 'The new next hop instance ID of the route.', 'type' => 'string', 'required' => false, 'example' => 'eni-bp17y37ytsenqyim****'], ], [ - 'name' => 'GatewayType', + 'name' => 'RouteTableId', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - ], + 'schema' => ['description' => 'The route table ID.', 'type' => 'string', 'required' => false, 'example' => 'vtb-bp1nk7zk65du3pni8z9td', 'title' => ''], + ], + [ + 'name' => 'DestinationCidrBlock', + 'in' => 'query', + 'schema' => ['description' => 'The IPv4 CIDR block of the route entry. IPv4 and IPv6 CIDR blocks are supported.'."\n" + .'> If the **RouteEntryId** parameter is not specified, the **DestinationCidrBlock** and **RouteTableId** parameters are required.'."\n" + .'> To change the IPv4 CIDR block of a route to a **prefix list**, specify the **RouteEntryId** parameter. The **DestinationCidrBlock** parameter does not support prefix list CIDR blocks or prefix list instance IDs.', 'type' => 'string', 'required' => false, 'example' => '192.168.0.0/24', 'title' => ''], + ], + [ + 'name' => 'DryRun', + 'in' => 'query', + 'schema' => ['description' => 'Specifies whether to perform a dry run. Valid values:'."\n" + ."\n" + .'**true**: sends the request without modifying the route. The system checks whether the AccessKey pair is valid, the authorization of the Resource Access Management (RAM) user, and whether the required parameters are specified. If the check fails, the corresponding error is returned. If the check succeeds, the `DryRunOperation` error code is returned.'."\n" + ."\n" + .'**false** (default): sends a Normal request. After the request passes the check, a 2xx HTTP status code is returned and the route is modified.', 'type' => 'boolean', 'required' => false, 'title' => '', 'example' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => 'The response parameters.'."\n", + 'description' => 'The response parameters.', 'type' => 'object', 'properties' => [ - 'RegionId' => [ - 'description' => 'The region ID.'."\n", - 'type' => 'string', - 'example' => 'cn-hangzhou', - ], - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '29784052-931F-543D-A612-36B3838163FA', - ], - 'AvailableZoneIdList' => [ - 'description' => 'The zones.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'ZoneId' => [ - 'description' => 'The zone ID.'."\n", - 'type' => 'string', - 'example' => 'cn-hangzhou-h', - ], - 'ZoneName' => [ - 'description' => 'The zone name.'."\n", - 'type' => 'string', - 'example' => 'cn-hangzhou-h', - ], - ], - ], - ], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '861E6630-AEC0-4B2D-B214-6CB5E44B7F04', 'title' => ''], ], + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ - 403 => [ - [ - 'errorCode' => 'Forbbiden.SubUser', - 'errorMessage' => 'User not authorized to operate on the specified resource as your account is created by another user.', - ], - [ - 'errorCode' => 'Forbidden', - 'errorMessage' => 'User not authorized to operate on the specified resource.', - ], + 400 => [ + ['errorCode' => 'InvalidRouteEntryId.NotFound', 'errorMessage' => 'Specified RouteEntryId does not exist.', 'description' => 'The specified route is not found.'], + ['errorCode' => 'InvalidRouteEntryName.Malformed', 'errorMessage' => 'Specified RouteEntry name is not valid.', 'description' => 'The new name of the route is invalid.'], + ['errorCode' => 'OperationDenied.ModifyManagedRouteEntry', 'errorMessage' => 'The operation is not allowed because of route entry is managed.', 'description' => 'Hosted route cannot be modified.'], + ['errorCode' => 'OperationDenied.RouteTableTypeNotPermitted', 'errorMessage' => 'The operation is not allowed because the type of route table is not permitted.', 'description' => 'You cannot create routes for route tables of the specified type.'], + ['errorCode' => 'MissingParam.NewNextHopId', 'errorMessage' => 'The parameter NewNextHopId is mandatory.', 'description' => 'The next hop instance ID is not specified when you modify the next hop.'], + ['errorCode' => 'IllegealParam.NextHopType', 'errorMessage' => 'The parameter NewNextHopType is illegal.', 'description' => 'The next hop type is invalid.'], + ['errorCode' => 'UnsupportedFeature.NormalTypeNatGateway', 'errorMessage' => 'Normal nat gateways do not support modifying the next hop of the route.', 'description' => 'You cannot modify the next hop of a route that points to a standard NAT gateway.'], + ['errorCode' => 'UnsupportedFeature.NextHopType', 'errorMessage' => 'The route type does not support modifying the next hop of the route.', 'description' => 'You cannot modify the next hop of the route.'], + ['errorCode' => 'InvalidRouteTable.NotFound', 'errorMessage' => 'The specified routetable does not exist.', 'description' => 'The route table is not found.'], + ['errorCode' => 'InvalidNetworkInterface.NotFound', 'errorMessage' => 'The specified network interface does not exist.', 'description' => 'The ID of the next hop ENI is not found.'], + ['errorCode' => 'OperationDenied.NextHopExist', 'errorMessage' => 'The operation is not allowed because the nexthop already exists.', 'description' => 'The next hop of the destination-based route that you want to modify already exists.'], + ['errorCode' => 'MissingParam.NewNextHopType', 'errorMessage' => 'The parameter NewNextHopType is mandatory.', 'description' => 'The next hop type is not specified when you modify the next hop.'], + ['errorCode' => 'UnsupportedFeature.ModifyRouteEntryNextHop', 'errorMessage' => 'The current region does not support the function of modifying the route next hop.', 'description' => 'You cannot modify next hops in the current region.'], + ['errorCode' => 'IncorrectRouteEntryStatus', 'errorMessage' => 'Some route entry status blocked this operation.', 'description' => ''], + ['errorCode' => 'ResourceNotFound.VSwitch', 'errorMessage' => 'The vSwitch where the specified networkinterface is located does not exist.', 'description' => 'The switch where the ENI is located does not exist.'], + ['errorCode' => 'MissingParam.RouteEntryId', 'errorMessage' => 'The param of %s is missing.', 'description' => 'Missing required parameters'], + ['errorCode' => 'IllegalParam.RouteEntryName', 'errorMessage' => 'The param of %s is illegal.', 'description' => 'The specified route name is invalid.'], + ['errorCode' => 'OperationDenied.LocalRouteEntryModified', 'errorMessage' => 'The next hop of a local route is modified.', 'description' => 'The next hop of the local type route has been modified.'], + ['errorCode' => 'OperationDenied.IllegalNewNextHopType', 'errorMessage' => 'When modifying the next hop of a route of the local type, a new next hop type that is not supported is passed in.', 'description' => 'When modifying the next hop of a route of the local type, a new next hop type that is not supported is passed in.'], + ['errorCode' => 'UnsupportedFeature.VpcAdvancedFeature', 'errorMessage' => 'The VPC does not support some advanced features.', 'description' => 'The VPC does not support some advanced features. Please submit a ticket.'], + ['errorCode' => 'UnsupportedRegion', 'errorMessage' => 'The feature is not supported in current region.', 'description' => 'The feature is not supported in the current region.'], + ['errorCode' => 'OperationFailed.NotSupportIPV6', 'errorMessage' => 'The specified next hop does not support IPv6.', 'description' => 'The specified next hop does not support IPv6.'], + ['errorCode' => 'UnsupportedFeature.ModifyIpv6RouteEntryNextHop', 'errorMessage' => 'The current region does not support the feature of modifying the IPv6 route next hop.', 'description' => 'The operation failed because the current region does not support modifying the IPv6 route next hop.'], + ['errorCode' => 'OperationDenied.NewNextHopNotSupportPublish', 'errorMessage' => 'New nexthop is not supported for published route entry.', 'description' => ''], + ['errorCode' => 'IllegalParam.DestCidrBlock', 'errorMessage' => 'The destCidrBlock is invalid.', 'description' => 'The specified destination address is invalid.'], + ['errorCode' => 'IllegalParamFormat.DstCidrBlock', 'errorMessage' => 'The format of the specified destination CIDR block is invalid.', 'description' => 'The error message returned because the format of the destination CIDR block is invalid.'], + ['errorCode' => 'MissingParam.RouteEntryIdOrRouteTableDstCidr', 'errorMessage' => 'The request is missing required parameters. You must provide either the RouteEntryId or the combination of RouteTableId and DestinationCidrBlock to proceed. Please ensure that one of these parameter sets is included in your request.', 'description' => 'The request is missing a required parameter. You must provide RouteEntryId, or both RouteTableId and DestinationCidrBlock.'], + ['errorCode' => 'MissingParam.ParameterMustNotNull', 'errorMessage' => '%s, %s.', 'description' => 'Missing parameter that must be passed in.'], + ['errorCode' => 'ResourceNotFound.RouteTable', 'errorMessage' => 'The specified resource gatewayRouteTable is not found.', 'description' => 'The gateway route table does not exist.'], + ['errorCode' => 'OperationDenied.UpdateGatewayRouteEntry', 'errorMessage' => 'The operation is not allowed because of need switch to local first.', 'description' => 'The system failed to modify the route. You must first set the next hop to a local route before you can set a custom next hop.'], + ['errorCode' => 'ResourceNotFound.RouteEntry', 'errorMessage' => 'The specified resource routeEntry is not found.', 'description' => 'The specified route entry does not exist'], + ['errorCode' => 'IncorrectStatus.RouteEntry', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => 'Route entry is in non-steady state'], + ['errorCode' => 'IncorrectStatus.Vswitch', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => 'The status of the specified vSwitch is incorrect.'], + ['errorCode' => 'ResourceNotFound.Instance', 'errorMessage' => 'The specified resource nextHop is not found.', 'description' => 'The next hop instance does not exist.'], + ['errorCode' => 'IncorrectStatus.NextHop', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => 'Specified next hop resource'], + ['errorCode' => 'OperationDenied.NextHopTypeNonsupport', 'errorMessage' => 'The operation is not allowed because of nextHopType is nonsupport.', 'description' => 'Specifying the next hop of the resource type is not supported.'], + ['errorCode' => 'OperationDenied.LocalEntryCanOnlyModifyNextHop', 'errorMessage' => 'Only the nextHop parameter can be modified for a local route entry.', 'description' => 'You can modify only the next hop of a local route.'], + ['errorCode' => 'ExclusiveParam.NextHopTypeAndNextHopId', 'errorMessage' => 'The param of nextHopType and nextHopId are mutually exclusive.', 'description' => 'The next hop type does not match the next hop instance.'], + ['errorCode' => 'InvalidRouterInterfaceId.NotFound', 'errorMessage' => 'The specified RouterInterfaceId does not exist in our record.', 'description' => ''], + ['errorCode' => 'OperationUnsupported.OnlySupportNormalNetworkInterface', 'errorMessage' => 'Next hop only supports binding normal network Interface.', 'description' => 'Next hop only supports binding to common ENIs'], + ['errorCode' => 'UnsupportedFeature.Ipv6GatewayRouteTable', 'errorMessage' => 'The feature of %s is not supported.', 'description' => 'The border gateway route table cannot be associated with the gateway.'], + ['errorCode' => 'OperationDenied.TrAttachmentIpv6Disabled', 'errorMessage' => 'The operation is not allowed because tr attachment Ipv6 is disabled.', 'description' => 'The operation is not allowed because tr attachment Ipv6 is disabled.'], + ['errorCode' => 'InvalidAttachment.NotFound', 'errorMessage' => 'The attachment is not found.', 'description' => 'The specified transit router does not exist.'], + ['errorCode' => 'OperationDenied.LocalRouteEntryInSystemRouteTable', 'errorMessage' => 'The Local Route Entry In System Route Table Can Not Be Modify.', 'description' => 'Modifying the Local route in the system routing table is prohibited.'], + ['errorCode' => 'OperationDenied.LocalRouteEntryBoundToVSwitch', 'errorMessage' => 'The VSwitch to which the local route you modified belongs is bound to the current routing table. You are not allowed to modify its next hop.', 'description' => 'The VSwitch to which the local route you modified belongs is bound to the current routing table. You are not allowed to modify its next hop.'], + ['errorCode' => 'OperationFailed.ModifyEcmpRoute', 'errorMessage' => 'Operation is failed because ecmp route can not modify.', 'description' => ''], + ['errorCode' => 'InvalidRouteEntry.NotFound', 'errorMessage' => 'vpc route entry not exist.', 'description' => 'the vpc routing table entry does not exist'], + ['errorCode' => 'OperationDenied.IllegalRouteTargetGroupMemberType', 'errorMessage' => 'This operation does not support route target groups with NAT gateway members.', 'description' => 'The current operation does not support routing target groups with members of the NAT gateway type.'], + ['errorCode' => 'OperationUnsupported.Ipv6EntryOnPrimaryNetworkInterface', 'errorMessage' => 'You cannot create IPv6 route entries on a primary network interface.', 'description' => 'You cannot create an IPv6 route whose next hop is a primary ENI.'], ], - ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RegionId\\": \\"cn-hangzhou\\",\\n \\"RequestId\\": \\"29784052-931F-543D-A612-36B3838163FA\\",\\n \\"AvailableZoneIdList\\": [\\n {\\n \\"ZoneId\\": \\"cn-hangzhou-h\\",\\n \\"ZoneName\\": \\"cn-hangzhou-h\\"\\n }\\n ]\\n}","type":"json"}]', - 'title' => 'DescribeVpnGatewayAvailableZones', + 403 => [ + ['errorCode' => 'Forbbiden', 'errorMessage' => 'User not authorized to operate on the specified resource.', 'description' => 'User not authorized to operate on the specified resource.'], + ], + [ + ['errorCode' => 'ResourceNotFound.NatGateway', 'errorMessage' => 'The specific NAT gateway is not found.', 'description' => 'The specific NAT gateway is not found.'], + ['errorCode' => 'ResourceNotFound.GatewayLoadBalancerEndpoint', 'errorMessage' => 'GatewayLoadBalancerEndpoint instance not found.', 'description' => 'GatewayLoadBalancerEndpoint instance not found.'], + ], + ], + 'title' => 'Modify the name, description, or next hop of a custom route entry', + 'description' => '- The **ModifyRouteEntry** operation does not support concurrent modifications to the name and description of the same custom route entry.'."\n" + .'- The **ModifyRouteEntry** operation may return the **TaskConflict** error code in concurrent scenarios. Retry as appropriate.', + 'changeSet' => [ + ['createdAt' => '2025-05-19T01:45:15.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2025-04-14T02:27:16.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2025-02-25T08:24:16.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2025-02-14T01:53:59.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-12-31T01:51:55.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-11-19T02:35:04.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-11-06T02:02:43.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-11-04T09:27:55.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2024-10-28T06:54:01.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-09-29T06:00:53.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-09-13T07:10:18.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-09-06T06:04:22.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-09-03T02:21:02.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-08-29T05:47:12.000Z', 'description' => 'Error codes changed, Request parameters changed'], + ['createdAt' => '2024-06-05T05:56:19.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-05-23T06:10:57.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-03-25T01:57:23.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-12-25T06:11:47.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-09-15T03:55:42.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-09-15T02:13:33.000Z', 'description' => 'Error codes changed, Request parameters changed'], + ['createdAt' => '2023-05-08T08:37:27.000Z', 'description' => 'Error codes changed'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ModifyRouteEntry'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], + ], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:ModifyRouteEntry', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'RouteTable', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:routetable/{#RouteTableId}'], + ], + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"861E6630-AEC0-4B2D-B214-6CB5E44B7F04\\"\\n}","type":"json"}]', ], - 'CreateCustomerGateway' => [ - 'summary' => 'Creates a customer gateway.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'ModifyRouteTableAttributes' => [ + 'summary' => 'Modifies the name and description of a route table.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -67101,313 +50795,254 @@ ], 'operationType' => 'readAndWrite', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'create', - 'riskType' => 'none', - 'chargeType' => 'free', - ], + 'systemTags' => ['operationType' => 'update'], 'parameters' => [ + [ + 'name' => 'RouteTableId', + 'in' => 'query', + 'schema' => ['description' => 'The ID of the route table.'."\n", 'type' => 'string', 'required' => true, 'example' => 'vtb-bp145q7glnuzdvzu2****', 'title' => ''], + ], + [ + 'name' => 'RouteTableName', + 'in' => 'query', + 'schema' => ['description' => 'The name of the route table.'."\n" + ."\n" + .'The name must be 1 to 128 characters in length and cannot start with `http://` or `https://`.'."\n", 'type' => 'string', 'required' => false, 'example' => 'doctest', 'title' => ''], + ], + [ + 'name' => 'Description', + 'in' => 'query', + 'schema' => ['description' => 'The description of the route table.'."\n" + ."\n" + .'The description must be 1 to 256 characters in length, and cannot start with `http://` or `https://`.'."\n", 'type' => 'string', 'required' => false, 'example' => '描述信息', 'title' => ''], + ], [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the customer gateway.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.', - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-shanghai', - ], + 'schema' => ['description' => 'The region ID of the virtual private cloud (VPC) to which the custom route table belongs.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'ClientToken', + 'name' => 'RoutePropagationEnable', 'in' => 'query', + 'schema' => ['description' => 'Indicates whether to enable route propagation to receive dynamic routes. Valid values:'."\n" + ."\n" + .'- **true** (default): enables route propagation.'."\n" + ."\n" + .'- **false**: disables route propagation.', 'type' => 'boolean', 'required' => false, 'example' => 'true', 'title' => ''], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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 and cannot exceed 64 characters in length.'."\n" - ."\n" - .'> 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.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '02fb3da4-130e-11e9-8e44****', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '62172DD5-6BAC-45DF-8D44', 'title' => ''], + ], + 'description' => 'The response.', + 'title' => '', ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'Abs.InvaliTableName.Malformed', 'errorMessage' => 'Table name format is invalid.', 'description' => 'The new name of the route table is invalid.'], + ['errorCode' => 'Abs.InvalidRouteTableId.NotExist', 'errorMessage' => 'The route table id is not exist.', 'description' => ''], + ['errorCode' => 'InvalidDescription.Malformed', 'errorMessage' => 'Description format is invalid.', 'description' => ''], + ['errorCode' => 'Forbidden.DisableRoutePropagation', 'errorMessage' => 'The operation of disable route propagation is forbidden.', 'description' => 'Shutting down route propagation for this routing table is not allowed.'], + ['errorCode' => 'ResourceNotFound.RouteTable', 'errorMessage' => 'The specified resource gatewayRouteTable is not found.', 'description' => 'The gateway route table does not exist.'], + ['errorCode' => 'IncorrectStatus.RouteTable', 'errorMessage' => 'The route table is in an invalid state.', 'description' => 'The specified routing table is in the wrong state'], + ['errorCode' => 'IncorrectStatus.RoutePropagationStatus', 'errorMessage' => 'Route table propagation status not stable. Please wait and try again.', 'description' => 'Route table propagation status not stable. Please wait and try again.'], + ['errorCode' => 'IncorrectStatus.RouteEntry', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => 'Route entry is in non-steady state'], + ['errorCode' => 'IncorrectStatus.Vpc', 'errorMessage' => 'Vpc status is invalid.', 'description' => 'The VPC is in an unstable state.'], + ], + 403 => [ + ['errorCode' => 'Forbbiden', 'errorMessage' => 'User not authorized to operate on the specified resource.', 'description' => 'User not authorized to operate on the specified resource.'], + ], + ], + 'title' => 'ModifyRouteTableAttributes', + 'description' => '**ModifyRouteTableAttributes**接口不支持并发修改同一个路由表的属性,如名称、描述,或是否接收动态路由。'."\n" + ."\n" + .'当调用**ModifyRouteTableAttributes**接口开启或关闭传播路由时,请注意:'."\n" + .'- 开启或者关闭传播路由操作是异步操作。'."\n" + .'- 开启或者关闭传播路由操作的完成时间与传播路由数量相关。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2025-03-20T02:56:45.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2025-03-12T18:40:18.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2025-02-28T09:02:58.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2025-01-14T01:32:54.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-11-28T06:48:43.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-08-21T08:59:31.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-06-24T02:56:42.000Z', 'description' => 'Request parameters changed'], + ], + 'ramActions' => [ [ - 'name' => 'IpAddress', - 'in' => 'query', - 'schema' => [ - 'description' => 'The static IP address of the gateway device in the data center.'."\n" - ."\n" - .'* If you want to create a public IPsec-VPN connection, enter a public IP address.'."\n" - .'* If you want to create a private IPsec-VPN connection, enter a private IP address.'."\n" - ."\n" - .'You cannot use the following IP addresses. Otherwise, a IPsec-VPN connection cannot be established:'."\n" - ."\n" - .'* 100.64.0.0~100.127.255.255'."\n" - .'* 127.0.0.0~127.255.255.255'."\n" - .'* 169.254.0.0~169.254.255.255'."\n" - .'* 224.0.0.0~239.255.255.255'."\n" - .'* 255.0.0.0~255.255.255.255'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => '101.12.XX.XX', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:ModifyRouteTableAttributes', + 'authLevel' => 'resource', + 'actionConditions' => [ + ['conditionKey' => 'vpc:VRouter', 'validationType' => 'always'], + ], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'RouteTable', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:routetable/{#RouteTableId}'], + ], ], ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"62172DD5-6BAC-45DF-8D44\\"\\n}","type":"json"}]', + ], + 'ModifyRouterInterfaceAttribute' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free'], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => ['description' => 'The region ID of the router interface.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'example' => 'cn-shanghai', 'title' => ''], + ], + [ + 'name' => 'RouterInterfaceId', + 'in' => 'query', + 'schema' => ['description' => 'The ID of the router interface.'."\n", 'type' => 'string', 'required' => true, 'example' => 'ri-2zeo3xzyf38r4urz****', 'title' => ''], + ], [ 'name' => 'Name', 'in' => 'query', - 'schema' => [ - 'description' => 'The name of the customer gateway.'."\n" - ."\n" - .'The name must be 1 to 100 characters in length, and cannot start with `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'nametest', - ], + 'schema' => ['description' => 'The name of the router interface.'."\n" + ."\n" + .'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.'."\n", 'type' => 'string', 'required' => false, 'example' => 'TEST', 'title' => ''], ], [ 'name' => 'Description', 'in' => 'query', - 'schema' => [ - 'description' => 'The description of the customer gateway.'."\n" - ."\n" - .'The description must be 1 to 100 characters in length, and cannot start with `http://` or `https://`.', - 'type' => 'string', - 'required' => false, - 'example' => 'desctest', - ], + 'schema' => ['description' => 'The description of the router interface.'."\n" + ."\n" + .'The value must be 2 to 256 characters in length. It must start with a letter but cannot start with `http://` or `https://`.'."\n", 'type' => 'string', 'required' => false, 'example' => '路由器接口', 'title' => ''], ], [ - 'name' => 'Asn', + 'name' => 'OppositeInterfaceId', 'in' => 'query', - 'schema' => [ - 'description' => 'The autonomous system number (ASN) of the gateway device in your data center. This parameter is required If you want to use Border Gateway Protocol (BGP) for the IPsec-VPN connection. Valid values: 1 to 4294967295. 45104 is not supported.'."\n" - ."\n" - .'**Asn** is a 4-byte number. You can enter it in two segments and separate the first 16 bits from the following 16 bits with a period (.). Enter the number in each segment in decimal format.'."\n" - ."\n" - .'For example, if you enter 123.456, the ASN is 8061384. The ASN is calculated by using the following formula: 123 × 65536 + 456 = 8061384.'."\n" - ."\n" - .'> - We recommend that you use a private ASN to establish BGP connections to Alibaba Cloud. For information about the range of private ASNs, see the relevant documentation.'."\n" - .'> - 45104 is a unique identifier assigned by IANA to Alibaba Cloud. It is used to identify Alibaba Cloud during route selection and data transmission over the Internet.', - 'type' => 'string', - 'required' => false, - 'example' => '65530', - ], + 'schema' => ['description' => 'The ID of the peer router interface.'."\n", 'type' => 'string', 'required' => false, 'example' => 'ri-2zeo3xzyf38r4urz****', 'title' => ''], ], [ - 'name' => 'AuthKey', + 'name' => 'OppositeRouterId', 'in' => 'query', - 'schema' => [ - 'description' => 'The authentication key of the BGP routing protocol for the gateway device in the data center.'."\n" - ."\n" - .'The key must be 1 to 64 characters in length. It can contain only ASCII characters and cannot contain spaces or question marks (?).'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'AuthKey****', - ], + 'schema' => ['description' => 'The ID of the peer router.'."\n", 'type' => 'string', 'required' => false, 'example' => 'vrt-bp1jcg5cmxjbl9xgc****', 'title' => ''], ], [ - 'name' => 'Tags', + 'name' => 'OppositeRouterType', 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => 'The tag value.'."\n" - ."\n" - .'The tag value can be an empty string and cannot exceed 128 characters in length. It cannot start with `aliyun` or `acs:`, and cannot contain `http://` or `https://`.'."\n" - ."\n" - .'Each tag key corresponds to one tag value. You can specify up to 20 tag values in each call.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => 'The tag key. The tag key cannot be an empty string.'."\n" - ."\n" - .'It can be at most 64 characters in length, and cannot contain `http://` or `https://`. It cannot start with `aliyun` or `acs:`.'."\n" - ."\n" - .'You can specify at most 20 tag keys in each call.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'TagKey', - ], - 'Value' => [ - 'description' => 'The tag value.'."\n" - ."\n" - .'The tag value can be an empty string and cannot exceed 128 characters in length. It cannot start with `aliyun` or `acs:`, and cannot contain `http://` or `https://`.'."\n" - ."\n" - .'Each tag key corresponds to one tag value. You can specify at most 20 tag values in each call.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'TagValue', - ], - ], - 'required' => false, - ], - 'required' => false, - 'maxItems' => 21, - ], + 'schema' => ['description' => 'The type of router to which the peer router interface belongs. Valid values:'."\n" + ."\n" + .'* **VRouter**'."\n" + .'* **VBR** (default)'."\n", 'type' => 'string', 'required' => false, 'example' => 'VBR', 'title' => ''], ], [ - 'name' => 'ResourceGroupId', + 'name' => 'OppositeInterfaceOwnerId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the resource group to which the customer gateway belongs.'."\n" - ."\n" - .'- You can call the [ListResourceGroups](~~158855~~) operation to query the resource group list.'."\n" - ."\n" - .'- If you do not specify a resource group, the customer gateway will belong to the default resource group after being created.', - 'type' => 'string', - 'required' => false, - 'example' => 'rg-aek2qo2h4jy****', - ], + 'schema' => ['description' => 'The ID of the Alibaba Cloud account to which the peer router interface belongs.'."\n", 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '28768383240243****', 'title' => ''], + ], + [ + 'name' => 'HealthCheckSourceIp', + 'in' => 'query', + 'schema' => ['description' => 'The source IP address that is used to perform health checks. The source IP address must be an idle IP address of the local virtual private cloud (VPC).'."\n" + ."\n" + .'> You can set this parameter when an Express Connect circuit is used.'."\n", 'type' => 'string', 'required' => false, 'example' => '116.62.XX.XX', 'title' => ''], + ], + [ + 'name' => 'HealthCheckTargetIp', + 'in' => 'query', + 'schema' => ['description' => 'The destination IP address that is used to perform health checks.'."\n" + ."\n" + .'> This parameter is required when **HealthCheckSourceIp** is specified.'."\n", 'type' => 'string', 'required' => false, 'example' => '116.62.XX.XX', 'title' => ''], + ], + [ + 'name' => 'HcThreshold', + 'in' => 'query', + 'schema' => ['description' => 'The healthy threshold. Unit: packets. We recommend that you set the value to **8**. This value specifies the number of probe packets that are sent during a health check.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '8', 'title' => ''], + ], + [ + 'name' => 'HcRate', + 'in' => 'query', + 'schema' => ['description' => 'The rate of health checks. Unit: milliseconds. The recommended value is **2000**. This value specifies the interval at which probe packets are sent during a health check.'."\n" + ."\n" + .'In this example, **HcThreshold** is set to **8** and **HcRate** is set to **2000**. In this example, probe packets are sent from **HealthCheckSourceIp** (source address) to **HealthCheckTargetIp** (destination address) every 2,000 seconds. If no response is returned for eight consecutive times, the health check fails.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '2000', 'title' => ''], + ], + [ + 'name' => 'DeleteHealthCheckIp', + 'in' => 'query', + 'schema' => ['description' => 'Specifies whether to delete the health check IP addresses configured on the router interface. Valid values:'."\n" + ."\n" + .'* **true**'."\n" + .'* **false** (default)'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => 'The response parameters.'."\n", + 'description' => 'The request ID.'."\n", 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => 'D32B3C26-6C6C-4988-93E9-D2A6444CE6AE', - ], - 'IpAddress' => [ - 'description' => 'The static IP address of the gateway device in the on-premises data center.', - 'type' => 'string', - 'example' => '101.12.XX.XX', - ], - 'Description' => [ - 'description' => 'The description of the customer gateway.'."\n", - 'type' => 'string', - 'example' => 'desctest', - ], - 'CustomerGatewayId' => [ - 'description' => 'The ID of the customer gateway.'."\n", - 'type' => 'string', - 'example' => 'cgw-bp1jrawp82av6bws9****', - ], - 'CreateTime' => [ - 'description' => 'The timestamp generated when the customer gateway was created. Unit: milliseconds.'."\n" - ."\n" - .'This value is a UNIX timestamp representing the number of milliseconds that have elapsed since the epoch time January 1, 1970, 00:00:00 UTC.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1493363486000', - ], - 'Name' => [ - 'description' => 'The name of the customer gateway.'."\n", - 'type' => 'string', - 'example' => 'nametest', - ], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '4EC47282-1B74-4534-BD0E-403F3EE64CAF', 'title' => ''], ], + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidAuthkey.Malformed', - 'errorMessage' => 'The specified BGP authentication key (%s) is malformed.', - ], - [ - 'errorCode' => 'InvalidIpAddress.AlreadyExist', - 'errorMessage' => 'Specified IpAddress is already exist.', - ], - [ - 'errorCode' => 'InvalidIpAddress.WrongFormat', - 'errorMessage' => 'Specified IpAddress is invalid.', - ], - [ - 'errorCode' => 'InvalidName', - 'errorMessage' => 'The name is not valid', - ], - [ - 'errorCode' => 'InvalidDescription', - 'errorMessage' => 'The description is not valid', - ], - [ - 'errorCode' => 'Resource.QuotaFull', - 'errorMessage' => 'The quota of resource is full', - ], - [ - 'errorCode' => 'IllegalParam.Asn', - 'errorMessage' => 'The specified Asn is invalid.', - ], - [ - 'errorCode' => 'OperationDenied.MissingAsn', - 'errorMessage' => 'The autonomous system number of the customer gateway is mandatory when BGP authentication key is specified.', - ], - [ - 'errorCode' => 'InvalidParameter.TagValue', - 'errorMessage' => 'The specified parameter TagValue is invalid.', - ], - [ - 'errorCode' => 'SizeLimitExceeded.TagNum', - 'errorMessage' => 'The maximum number of tags is exceeded.', - ], - [ - 'errorCode' => 'Forbidden.TagKey.Duplicated', - 'errorMessage' => 'The specified tag key already exists.', - ], - [ - 'errorCode' => 'InvalidParameter.TagKey', - 'errorMessage' => 'The specified parameter TagKey is invalid.', - ], - [ - 'errorCode' => 'Duplicated.TagKey', - 'errorMessage' => 'The specified parameter TagKey is duplicated.', - ], - [ - 'errorCode' => 'OperationFailed.NoRamPermission', - 'errorMessage' => 'Vpn Service has no permission to operate your IDaaS instances.', - ], - [ - 'errorCode' => 'CreateVpnUserGatewayQuotaFull.QuotaFull', - 'errorMessage' => 'The number of created VPN customer gateways exceeds the quota.', - ], - ], - 403 => [ - [ - 'errorCode' => 'Forbidden.SubUser', - 'errorMessage' => 'User not authorized to operate on the specified resource as your account is created by another user.', - ], - [ - 'errorCode' => 'Forbidden', - 'errorMessage' => 'User not authorized to operate on the specified resource.', - ], + ['errorCode' => 'Forbidden.FinancialLocked', 'errorMessage' => 'This RouterInterface is financiel locked because of bills outstanding.', 'description' => ''], + ['errorCode' => 'InvalidName.Malformed', 'errorMessage' => 'The attribute name is illegal.', 'description' => ''], + ['errorCode' => 'InvalidOppositeRouterType.ValueNotSupported', 'errorMessage' => 'The specified OppositeRouterType is not valid.', 'description' => 'The value of the OppositeRouterType parameter is invalid.'], + ['errorCode' => 'InvalidDescription.Malformed', 'errorMessage' => 'The Description is illegal.', 'description' => ''], + ['errorCode' => 'Forbbiden', 'errorMessage' => 'The Router instance owner error', 'description' => ''], + ['errorCode' => 'LinkRole.NotSupport', 'errorMessage' => 'This linkrole is not supported', 'description' => ''], + ['errorCode' => 'Forbbiden.ModifyIdAndType', 'errorMessage' => 'Opposite is VBR, cannot modify the ID and type', 'description' => ''], + ['errorCode' => 'InvalidParam.ModifyRouterInterface', 'errorMessage' => 'Modify routerinterface param invalid', 'description' => ''], + ['errorCode' => 'INSTANCE_IN_PROCESSIONG', 'errorMessage' => 'Instance is in processing,please wait and try again', 'description' => ''], + ['errorCode' => 'IllegalParam.HcThreshold', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'IllegalParam.HcRate', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'InvalidHealthCheckIP.Malformd', 'errorMessage' => 'Healthcheck sourceip or targetip is not valid.', 'description' => ''], + ['errorCode' => 'IllegalParam.HcSourceIp', 'errorMessage' => 'The specified healthCheck Ip is not valid.', 'description' => 'The IP address used for health checks is invalid.'], + ['errorCode' => 'OperationFailed.OperationLocked', 'errorMessage' => 'Operation failed because OperationLocked.', 'description' => 'The operation failed because the instance is locked due to O&M.'], + ['errorCode' => 'IncorrectStatus.RouterInterface', 'errorMessage' => 'This openeration would not be allowed because status of this RouterInterface is not correct.', 'description' => ''], ], - 409 => [ - [ - 'errorCode' => 'OperationConflict', - 'errorMessage' => 'The operation against this instance is too frequent, please try again later.', - ], + 404 => [ + ['errorCode' => 'InvalidRegionId.NotFound', 'errorMessage' => 'The specified RegionId does not exist in our records.', 'description' => ''], + ['errorCode' => 'InvalidRouterInterfaceId.NotFound', 'errorMessage' => 'The specified RouterInterfaceId does not exist in our records.', 'description' => ''], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'ModifyRouterInterfaceAttribute', + 'summary' => 'Modifies the configuration of a router interface.', + 'changeSet' => [ + ['createdAt' => '2024-06-13T08:13:13.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2021-11-17T02:41:21.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2021-11-17T02:41:21.000Z', 'description' => 'Error codes changed'], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"D32B3C26-6C6C-4988-93E9-D2A6444CE6AE\\",\\n \\"IpAddress\\": \\"101.12.XX.XX\\",\\n \\"Description\\": \\"desctest\\",\\n \\"CustomerGatewayId\\": \\"cgw-bp1jrawp82av6bws9****\\",\\n \\"CreateTime\\": 1493363486000,\\n \\"Name\\": \\"nametest\\"\\n}","errorExample":""},{"type":"xml","example":"\\n D32B3C26-6C6C-4988-93E9-D2A6444CE6AE\\n 101.12.XX.XX\\n desctest\\n cgw-bp1jrawp82av6bws9****\\n 1493363486000\\n nametest\\n","errorExample":""}]', - 'title' => 'CreateCustomerGateway', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', + 'ramActions' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"4EC47282-1B74-4534-BD0E-403F3EE64CAF\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 4EC47282-1B74-4534-BD0E-403F3EE64CAF\\n","errorExample":""}]', ], - 'DeleteCustomerGateway' => [ - 'summary' => 'Deletes a customer gateway.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'ModifyRouterInterfaceSpec' => [ + 'summary' => 'Modifies the specification of a router interface by calling the ModifyRouterInterfaceSpec operation.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -67415,761 +51050,1037 @@ ], 'operationType' => 'write', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'delete', - 'riskType' => 'none', - 'chargeType' => 'free', - ], + 'systemTags' => ['operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'paid'], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the customer gateway. You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-shanghai', - ], + 'schema' => ['description' => 'The region where the router interface is deployed.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the region ID.', 'type' => 'string', 'required' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'ClientToken', + 'name' => 'RouterInterfaceId', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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 and cannot exceed 64 characters in length.'."\n" - ."\n" - .'> 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.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '02fb3da4-130e-11e9-8e44-0016e04****', - ], + 'schema' => ['description' => 'The ID of the router interface.', 'type' => 'string', 'required' => true, 'example' => 'ri-2zeo3xzyf38r4urzd****', 'title' => ''], ], [ - 'name' => 'CustomerGatewayId', + 'name' => 'Spec', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the customer gateway.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cgw-bp1pvpl9r9adju6l5****', - ], + 'schema' => ['description' => 'The specification of the router interface. The following table describes the available specifications and the corresponding bandwidths:'."\n" + ."\n" + .'* **Mini.2**: 2 Mbps'."\n" + ."\n" + .'* **Mini.5**: 5 Mbps'."\n" + ."\n" + .'* **Small.1**: 10 Mbps'."\n" + ."\n" + .'* **Small.2**: 20 Mbps'."\n" + ."\n" + .'* **Small.5**: 50 Mbps'."\n" + ."\n" + .'* **Middle.1**: 100 Mbps'."\n" + ."\n" + .'* **Middle.2**: 200 Mbps'."\n" + ."\n" + .'* **Middle.5**: 500 Mbps'."\n" + ."\n" + .'* **Large.1**: 1000 Mbps'."\n" + ."\n" + .'* **Large.2**: 2000 Mbps'."\n" + ."\n" + .'* **Large.5**: 5000 Mbps'."\n" + ."\n" + .'* **Xlarge.1**: 10000 Mbps'."\n" + ."\n" + .'> If **Role** is set to **AcceptingSide** (accepter), set **Spec** to **Negative**.', 'type' => 'string', 'required' => true, 'example' => 'Small.1', 'title' => ''], + ], + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'You can use the client to generate the token, but you must make sure that the token is unique among different requests. The ClientToken value can contain only ASCII characters.'."\n" + ."\n" + .'> If you do not specify this parameter, the system automatically uses the **RequestId** of the API request as the **ClientToken**. The **RequestId** may differ for each API request.', 'type' => 'string', 'required' => false, 'example' => '02fb3da4-130e-11e9-8e44-0016e04115b', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'description' => 'The specification of the router interface.', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '606998F0-B94D-48FE-8316-ACA81BB230DA', - ], + 'Spec' => ['description' => 'The specification of the router interface. Valid values:'."\n" + ."\n" + .'* **Mini.2**: 2 Mbps'."\n" + ."\n" + .'* **Mini.5**: 5 Mbps'."\n" + ."\n" + .'* **Small.1**: 10 Mbps'."\n" + ."\n" + .'* **Small.2**: 20 Mbps'."\n" + ."\n" + .'* **Small.5**: 50 Mbps'."\n" + ."\n" + .'* **Middle.1**: 100 Mbps'."\n" + ."\n" + .'* **Middle.2**: 200 Mbps'."\n" + ."\n" + .'* **Middle.5**: 500 Mbps'."\n" + ."\n" + .'* **Large.1**: 1000 Mbps'."\n" + ."\n" + .'* **Large.2**: 2000 Mbps'."\n" + ."\n" + .'* **Large.5**: 5000 Mbps'."\n" + ."\n" + .'* **Xlarge.1**: 10000 Mbps.', 'type' => 'string', 'example' => 'Small.1', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '4EC47282-1B74-4534-BD0E-403F3EE64CAF', 'title' => ''], ], - 'description' => '', + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'DependencyViolation.VpnConnection', - 'errorMessage' => 'There are vpn connections on specified customer gateway not deleted.', - ], - [ - 'errorCode' => 'VpnGateway.task.conflict', - 'errorMessage' => 'The VPN is in the configuration state, please wait a while before operating.', - ], - ], - 403 => [ - [ - 'errorCode' => 'Forbbiden.SubUser', - 'errorMessage' => 'User not authorized to operate on the specified resource as your account is created by another user.', - ], - [ - 'errorCode' => 'Forbidden', - 'errorMessage' => 'User not authorized to operate on the specified resource.', - ], + ['errorCode' => 'Forbidden.FinancialLocked', 'errorMessage' => 'RouterInterface can not be operated by this action when it?s FinancialLocked.', 'description' => ''], + ['errorCode' => 'InvalidParam.NotFound', 'errorMessage' => 'Parameter must not be null,uid, bid,regionNo, remoteRegionNo or routerId', 'description' => ''], + ['errorCode' => 'InvalidOppositeRegionId.NotFound', 'errorMessage' => 'The OppositeRegionId provided does not exist in our records.', 'description' => ''], + ['errorCode' => 'InvalidInstanceOwner.Error', 'errorMessage' => 'The router instance owner error.', 'description' => 'The instance owner information is invalid.'], + ['errorCode' => 'InvalidRouterInterfaceSpec.Malformed', 'errorMessage' => 'Specified RouterInterface spec is not valid.', 'description' => 'The RouterInterface Spec parameter is set to an invalid value.'], + ['errorCode' => 'IllegalParam.chargeType', 'errorMessage' => 'RouterInterface chargeType different.', 'description' => ''], + ['errorCode' => 'ResourceQueryError', 'errorMessage' => 'The specified resource is queried error.', 'description' => 'An error occurred while querying the specified resource.'], + ['errorCode' => ' InvalidSpec.ValueNotSupported', 'errorMessage' => 'The specified Spec is not supported.', 'description' => ''], + ['errorCode' => 'InvalidSpec.ValueNotSupported', 'errorMessage' => 'The specified Spec is not supported.', 'description' => ''], + ['errorCode' => 'InvalidInstance.StatusError', 'errorMessage' => 'The router instance status error.', 'description' => 'The status of the instance is invalid.'], + ['errorCode' => 'InvalidOpposite.NotFound', 'errorMessage' => 'The opposite does not exist.', 'description' => 'The peer does not exist.'], ], - [ - [ - 'errorCode' => 'InvalidCustomerGatewayInstanceId.NotFound', - 'errorMessage' => 'The specified customer gateway instance id does not exist.', - ], + 404 => [ + ['errorCode' => 'InvalidRouterInterfaceId.NotFound', 'errorMessage' => 'The specified RouterInterfaceId does not exist in our record.', 'description' => ''], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"606998F0-B94D-48FE-8316-ACA81BB230DA\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 606998F0-B94D-48FE-8316-ACA81BB230DA\\n","errorExample":""}]', - 'title' => 'DeleteCustomerGateway', - 'description' => 'Before you delete a customer gateway, make sure that no IPsec-VPN connection is associated with the customer gateway. For more information about how to delete an IPsec-VPN connection, see [DeleteVpnAttachment](~~2526938~~) or [DeleteVpnConnection](~~2526948~~).'."\n", + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'Modify the specification of a router interface', + 'description' => 'After you call this operation, the router interface enters the **Activating** state. After the router interface is activated, it enters the **Active** state. '."\n" + .' '."\n" + .'> You cannot modify the specification of a router interface that has an overdue payment.', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'ModifyCustomerGatewayAttribute' => [ - 'summary' => 'Modifies the configuration of a customer gateway.', - 'methods' => [ - 'post', - 'get', + 'changeSet' => [ + ['createdAt' => '2023-12-21T05:47:23.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2022-12-05T07:58:08.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2021-11-17T02:41:21.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2021-11-17T02:41:21.000Z', 'description' => 'Error codes changed'], ], - 'schemes' => [ - 'http', - 'https', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ModifyRouterInterfaceSpec'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], + ], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:ModifyRouterInterfaceSpec', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'RouterInterface', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:routerinterface/{#RouterInterfaceId}'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Spec\\": \\"Small.1\\",\\n \\"RequestId\\": \\"4EC47282-1B74-4534-BD0E-403F3EE64CAF\\"\\n}","type":"json"}]', + ], + 'ModifySnatEntry' => [ + 'summary' => 'Modifies a specified SNAT entry.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'update', - 'riskType' => 'none', - 'chargeType' => 'free', - ], + 'operationType' => 'write', + 'systemTags' => ['operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region where the customer gateway is deployed.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-shanghai', - ], + 'schema' => ['description' => 'The region ID of the NAT gateway.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the region ID.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'ClientToken', + 'name' => 'SnatTableId', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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.'."\n" - ."\n" - .'> 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.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '02fb3da4-130e-11e9-8e44****', - ], + 'schema' => ['description' => 'The ID of the SNAT table to which the SNAT entry belongs.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'stb-8vbczigrhop8x5u3t****', 'title' => ''], ], [ - 'name' => 'CustomerGatewayId', + 'name' => 'SnatEntryId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the customer gateway.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cgw-bp1pvpl9r9adju6l5****', - ], + 'schema' => ['description' => 'The ID of the SNAT entry that you want to modify.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'snat-bp1vcgcf8tm0plqcg****', 'title' => ''], ], [ - 'name' => 'Name', + 'name' => 'SnatIp', 'in' => 'query', - 'schema' => [ - 'description' => 'The name of the customer gateway.'."\n" - ."\n" - .'The name must be 1 to 100 characters in length, and cannot start with `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'nametest', - ], + 'schema' => ['description' => '- When you modify an SNAT entry for an Internet NAT gateway, this parameter specifies the EIPs in the SNAT entry. Separate multiple EIPs with commas (,).'."\n" + .' '."\n" + .'> When you specify multiple EIPs to allocate an SNAT IP IPAM pool, service traffic is distributed across the EIPs by using a hash algorithm. Because traffic varies across connections, service traffic may be unevenly distributed across the EIPs. Add all EIPs to the same Internet Shared Bandwidth instance to prevent service interruptions caused by bandwidth throttling on a single EIP.'."\n" + ."\n" + .'- When you modify an SNAT entry for a VPC NAT gateway, this parameter specifies the NAT IP addresses in the SNAT entry. Separate multiple NAT IP addresses with commas (,).'."\n" + ."\n" + .'- The SnatIp and NetworkInterfaceId parameters cannot be specified at the same time.', 'type' => 'string', 'required' => false, 'example' => '47.98.XX.XX', 'title' => ''], ], [ - 'name' => 'Description', + 'name' => 'SnatEntryName', 'in' => 'query', - 'schema' => [ - 'description' => 'The description of the customer gateway.'."\n" - ."\n" - .'The description must be 1 to 100 characters in length, and cannot start with `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'desctest', - ], + 'schema' => ['description' => 'The name of the SNAT entry.'."\n" + ."\n" + .'The name must be 2 to 128 characters in length and must start with a letter or a Chinese character. It cannot start with `http://` or `https://`.', 'type' => 'string', 'required' => false, 'example' => 'SnatEntry-1', 'title' => ''], ], [ - 'name' => 'AuthKey', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The authentication key of the BGP routing protocol for the gateway device in the data center.'."\n" - ."\n" - .'The key must be 1 to 64 characters in length. It can contain only ASCII characters and cannot contain spaces or question marks (?).'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'AuthKey****', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'You can use the client to generate the token, but you must make sure that the token is unique among different requests. The ClientToken value can contain only ASCII characters.'."\n" + ."\n" + .'> If you do not specify this parameter, the system uses the **RequestId** of the API request as the **ClientToken**. The **RequestId** may differ for each API request.', 'type' => 'string', 'required' => false, 'example' => '02fb3da4-130e-11e9-8e44-001****', 'title' => ''], ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'description' => 'The response parameters.'."\n", - 'type' => 'object', + [ + 'name' => 'EipAffinity', + 'in' => 'query', + 'allowEmptyValue' => true, + 'schema' => ['description' => 'Specifies whether to enable EIP affinity. Valid values:'."\n" + ."\n" + .'- **0**: disables EIP affinity.'."\n" + ."\n" + .'- **1**: enables EIP affinity.'."\n" + ."\n" + .'> After you enable EIP affinity, if the SNAT entry is associated with multiple EIPs or NAT IP addresses, the same client uses the same EIP or NAT IP address for access. Otherwise, the client randomly selects an EIP or NAT IP address from the associated ones for access.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1', 'title' => ''], + ], + [ + 'name' => 'NetworkInterfaceId', + 'in' => 'query', + 'allowEmptyValue' => true, + 'schema' => ['description' => 'The ID of the elastic network interfaces (ENIs).'."\n" + ."\n" + .'> The IPv4 addresses of the network interface controller (NIC) are used as the SNAT addresses.', 'type' => 'string', 'required' => false, 'example' => 'eni-gw8g131ef2dnbu3k****', 'title' => ''], + ], + [ + 'name' => 'DryRun', + 'in' => 'query', + 'schema' => ['description' => 'Specifies whether to perform a dry run. Valid values:'."\n" + ."\n" + .'- **true**: performs a dry run without modifying the SNAT entry. The system checks the required parameters, request format, and service limits. If the check fails, the corresponding error is returned. If the check succeeds, the `DryRunOperation` error code is returned.'."\n" + ."\n" + .'- **false** (default): performs a dry run and sends the request. After the check succeeds, a 2xx HTTP status code is returned and the SNAT entry is modified.', 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => 'The response body.', + 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '8AA5CE21-2E6A-4530-BDF5-F055849476E6', - ], - 'IpAddress' => [ - 'description' => 'The public IP address of the gateway device in the data center.'."\n", - 'type' => 'string', - 'example' => '139.32.XX.XX', - ], - 'Description' => [ - 'description' => 'The description of the customer gateway.'."\n", - 'type' => 'string', - 'example' => 'desctest', - ], - 'CustomerGatewayId' => [ - 'description' => 'The ID of the customer gateway.'."\n", - 'type' => 'string', - 'example' => 'cgw-bp1pvpl9r9adju6l5****', - ], - 'CreateTime' => [ - 'description' => 'The timestamp generated when the customer gateway was created.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1492747187000', - ], - 'Name' => [ - 'description' => 'The name of the customer gateway.'."\n", - 'type' => 'string', - 'example' => 'nametest', - ], - 'ResourceGroupId' => [ - 'description' => 'The ID of the resource group to which the customer gateway belongs.'."\n" - ."\n" - .'You can call the [ListResourceGroups](~~158855~~) operation to query resource groups.'."\n", - 'type' => 'string', - 'example' => 'rg-acfmzs372yg****', - ], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '2315DEB7-5E92-423A-91F7-4C1EC9AD****', 'title' => ''], ], + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidName', - 'errorMessage' => 'The name is not valid', - ], - [ - 'errorCode' => 'InvalidDescription', - 'errorMessage' => 'The description is not valid', - ], - [ - 'errorCode' => 'OperationDenied.MissingAsn', - 'errorMessage' => 'The autonomous system number of the customer gateway is mandatory when BGP authentication key is specified.', - ], - [ - 'errorCode' => 'InvalidAuthkey.Malformed', - 'errorMessage' => 'The specified BGP authentication key (%s) is malformed.', - ], - [ - 'errorCode' => 'OperationDenied.VpnFinancialLocked', - 'errorMessage' => 'The associated VPN gateway is financially locked. You cannot update the attributes of the customer gateway.', - ], - [ - 'errorCode' => 'OperationDenied.VpnConfiguring', - 'errorMessage' => 'The associated VPN gateway is being configured. You cannot update the attributes of the customer gateway.', - ], - ], - 403 => [ - [ - 'errorCode' => 'Forbbiden.SubUser', - 'errorMessage' => 'User not authorized to operate on the specified resource as your account is created by another user.', - ], - [ - 'errorCode' => 'Forbidden', - 'errorMessage' => 'User not authorized to operate on the specified resource.', - ], + ['errorCode' => 'InvalidSnatIp.Malformed', 'errorMessage' => 'The specified SnatIp is not a valid IP address.', 'description' => ''], + ['errorCode' => 'Forbidden.SourceVSwitchId.Duplicated', 'errorMessage' => 'The specified SourceCIDRis duplicated.', 'description' => ''], + ['errorCode' => 'Forbidden.IpUsedInForwardTable', 'errorMessage' => 'The specified SnatIp already used in forward table', 'description' => ''], + ['errorCode' => 'OperationUnsupported.EipForSnatPool', 'errorMessage' => 'The Eip cannot support snat pool', 'description' => ''], + ['errorCode' => 'InvalidParameter.Name.Malformed', 'errorMessage' => 'The specified Name is not valid.', 'description' => ''], + ['errorCode' => 'IncorretSnatEntryStatus', 'errorMessage' => 'The Specified SnatEntry is not stable status, can not operation', 'description' => ''], + ['errorCode' => 'EIP_NOT_IN_GATEWAY', 'errorMessage' => 'The Eip not in nat gateway', 'description' => ''], + ['errorCode' => 'InvalidParameter.SnatIp', 'errorMessage' => 'Error public ip must in same bandwidth package.', 'description' => ''], + ['errorCode' => 'QuotaExceeded.SnatIp', 'errorMessage' => 'Public ip number exceeds quota.', 'description' => ''], + ['errorCode' => 'InvalidSnatEntryId.NotFound', 'errorMessage' => 'Specified SNAT entry does not exist.', 'description' => ''], + ['errorCode' => 'IncorrectStatus.SnatEntry', 'errorMessage' => 'The Specified SnatEntry is not stable status, can not operation', 'description' => 'The specified SNAT entries are not in a stable state and cannot be operated.'], + ['errorCode' => 'OperationFailed.CanNotUseEipInDnat', 'errorMessage' => 'Operation failed because the eip can not used by forward entry.', 'description' => ''], + ['errorCode' => 'OperationUnsupported.EipNatGWCheck', 'errorMessage' => 'Operation unsupported because the relation check of eip and nat gateway is failed.', 'description' => ''], + ['errorCode' => 'ResourceNotFound.SnatEntry', 'errorMessage' => 'Specified SNAT entry does not exist.', 'description' => ''], + ['errorCode' => 'IncorrectStatus.NatIp', 'errorMessage' => 'Specified NatIp does not exist.', 'description' => ''], + ['errorCode' => 'OperationFailed.CanNotUseNatIpInDnat', 'errorMessage' => 'Operation failed because the NatIp can not used by forward entry.', 'description' => ''], + ['errorCode' => 'IncorrectStatus.NATGW', 'errorMessage' => 'NATGW status is invalid.', 'description' => 'The NAT gateway is in an invalid state.'], + ['errorCode' => 'OperationUnsupported.EipInBinding', 'errorMessage' => 'Create snat entry with eip in associating status is unsupported.', 'description' => 'You cannot use an associated EIP when you create an SNAT entry.'], + ['errorCode' => 'OperationUnsupported.EipNatBWPCheck', 'errorMessage' => 'The EIP is not associated with a NAT service plan.', 'description' => 'The EIP is not associated with a NAT service plan.'], + ['errorCode' => 'IllegalParam.NetworkInterfaceId', 'errorMessage' => 'The param of NetworkInterfaceId is illegal.', 'description' => 'Invalid NetworkInterfaceId value.'], + ['errorCode' => 'OperationFailed.SnatIpPoolBwpRules', 'errorMessage' => 'The operation failed because the IP in Snat entryl was added to multiple NAT bandwidth packets.', 'description' => 'The operation failed because the IP in the SNAT rule IP address pool was added to multiple NAT bandwidth packets.'], + ['errorCode' => 'OperationFailed.SnatIpPoolCbwpRules', 'errorMessage' => 'The operation failed because the SNAT rule IPs are added to multi bandwidth packages.', 'description' => 'The operation failed because the SNAT rule IP address pool was added to multiple bandwidth packages.'], + ['errorCode' => 'OperationFailed.SnatIpsTooMany', 'errorMessage' => 'The maximum number of IP addresses is exceeded in the SNAT pool.', 'description' => 'The maximum number of IP addresses is exceeded in the SNAT pool.'], + ['errorCode' => 'OperationFailed.SnatIpsCheck', 'errorMessage' => 'The operation fails because some IPs address in the SNAT entry are not added to common bandwidth packet.', 'description' => 'The operation fails because the IP address in the Snat rule IP address pool is not added to the shared bandwidth packet.'], ], - [ - [ - 'errorCode' => 'InvalidCustomerGatewayInstanceId.NotFound', - 'errorMessage' => 'The specified customer gateway instance id does not exist.', - ], + 404 => [ + ['errorCode' => 'InvalidRegionId.NotFound', 'errorMessage' => 'The specified RegionId does not exist in our records.', 'description' => ''], + ['errorCode' => 'InvalidSnatTableId.NotFound', 'errorMessage' => 'Specified SNAT table does not exist.', 'description' => ''], + ['errorCode' => 'InvalidSnatEntryId.NotFound', 'errorMessage' => 'Specified SNAT entry does not exist.', 'description' => ''], + ['errorCode' => 'InvalidSnatIp.NotFound', 'errorMessage' => 'Specified SnatIp does not found on the NAT Gateway', 'description' => ''], + ['errorCode' => 'ResourceNotFound.NatIp', 'errorMessage' => 'Specified NatIp does not found on the NAT Gateway', 'description' => ''], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"8AA5CE21-2E6A-4530-BDF5-F055849476E6\\",\\n \\"IpAddress\\": \\"139.32.XX.XX\\",\\n \\"Description\\": \\"desctest\\",\\n \\"CustomerGatewayId\\": \\"cgw-bp1pvpl9r9adju6l5****\\",\\n \\"CreateTime\\": 1492747187000,\\n \\"Name\\": \\"nametest\\",\\n \\"ResourceGroupId\\": \\"rg-acfmzs372yg****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 8AA5CE21-2E6A-4530-BDF5-F055849476E6\\n 139.32.XX.XX\\n desctest\\n cgw-bp1pvpl9r9adju6l5****\\n 1492747187000\\n nametest\\n","errorExample":""}]', - 'title' => 'ModifyCustomerGatewayAttribute', - 'description' => '* When you call **ModifyCustomerGatewayAttribute**, if a value is assigned to **AuthKey**, the operation is asynchronous. After a request is sent, the system returns a request ID and runs the task in the background. You can call [DescribeVpnGateway](~~73720~~) to query the status of the task.'."\n" + 'title' => 'Modify a specified SNAT entry', + 'description' => '**ModifySnatEntry** is an asynchronous operation. After you send a request, the system returns a request ID, but the SNAT entry has not been modified yet. The modification task is still running in the background. You can call [DescribeSnatTableEntries](~~42677~~) to query the status of the SNAT entry:'."\n" ."\n" - .' * If a VPN gateway is in the **updating** state, the configurations are being modified.'."\n" - .' * If a VPN gateway is in the **active** state, the configurations are modified.'."\n" + .'- If the SNAT entry is in the **Pending** state, the SNAT entry is being modified. In this state, you can only perform query operations and cannot perform other operations.'."\n" ."\n" - .'* When you call **ModifyCustomerGatewayAttribute**, if no value is assigned to **AuthKey**, the operation is synchronous.'."\n" + .'- If the SNAT entry is in the **Available** state, the SNAT entry has been modified.'."\n" ."\n" - .'* You cannot repeatedly call **ModifyCustomerGatewayAttribute** to modify the configurations of a customer gateway within the specified period of time.'."\n", + .'> If any SNAT entry in an SNAT table is in the **Pending** state, you cannot modify SNAT entries in the SNAT table.'."\n" + ."\n\n" + .'The **ModifySnatEntry** operation does not support concurrent modifications of a specified SNAT entry within the same SNAT entry instance.', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeCustomerGateway' => [ - 'summary' => 'Queries details of a customer gateway.', - 'methods' => [ - 'post', - 'get', + 'changeSet' => [ + ['createdAt' => '2024-12-03T02:23:00.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2024-08-09T10:09:59.000Z', 'description' => 'Error codes changed, Request parameters changed'], + ['createdAt' => '2024-05-06T03:02:14.000Z', 'description' => 'Error codes changed, Request parameters changed'], + ['createdAt' => '2024-01-18T07:07:57.000Z', 'description' => 'Error codes changed, Response parameters changed'], + ['createdAt' => '2023-03-01T06:45:54.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2022-11-07T11:48:28.000Z', 'description' => 'Error codes changed'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ModifySnatEntry'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:ModifySnatEntry', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'SnatTable', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:snattable/{#SnatTableId}'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"2315DEB7-5E92-423A-91F7-4C1EC9AD****\\"\\n}","type":"json"}]', + ], + 'ModifySslVpnClientCert' => [ + 'summary' => 'Modifies the name of an SSL-VPN client certificate.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', - 'systemTags' => [ - 'operationType' => 'get', - ], + 'operationType' => 'readAndWrite', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'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 and cannot exceed 64 characters in length.'."\n" + ."\n" + .'> 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.'."\n", 'type' => 'string', 'required' => false, 'example' => '02fb3da4-130e-11e9-8e44-0016e04115b', 'title' => ''], + ], [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region where the customer gateway is deployed.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-shanghai', - ], + 'schema' => ['description' => 'The ID of the region where the SSL client certificate is created.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'CustomerGatewayId', + 'name' => 'SslVpnClientCertId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the customer gateway.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cgw-bp1pvpl9r9adju6l5****', - ], + 'schema' => ['description' => 'The ID of the SSL client certificate.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'vsc-bp1n8wcf134yl0osrc****', 'title' => ''], + ], + [ + 'name' => 'Name', + 'in' => 'query', + 'schema' => ['description' => 'The new name of the SSL client certificate. This parameter cannot be left empty.'."\n" + ."\n" + .'The name must be 1 to 100 characters in length and cannot start with `http://` or `https://`.'."\n", 'type' => 'string', 'required' => false, 'example' => 'cert2', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => 'The response parameters.'."\n", 'type' => 'object', 'properties' => [ - 'Asn' => [ - 'description' => 'The autonomous system number (ASN) of the gateway device in the data center.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '65535', - ], - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => 'A0457BC9-6C0F-4437-AB9D-FB2EABC1D6A2', - ], - 'IpAddress' => [ - 'description' => 'The IP address of the gateway device in the data center.'."\n", - 'type' => 'string', - 'example' => '139.32.XX.XX', - ], - 'Description' => [ - 'description' => 'The description of the customer gateway.'."\n", - 'type' => 'string', - 'example' => 'desctest', - ], - 'CustomerGatewayId' => [ - 'description' => 'The ID of the customer gateway.'."\n", - 'type' => 'string', - 'example' => 'cgw-bp1pvpl9r9adju6l5****', - ], - 'CreateTime' => [ - 'description' => 'The timestamp generated when the customer gateway was created. Unit: milliseconds.'."\n" - ."\n" - .'This value is a UNIX timestamp representing the number of milliseconds that have elapsed since the epoch time January 1, 1970, 00:00:00 UTC.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1492747187000', - ], - 'Name' => [ - 'description' => 'The name of the customer gateway.'."\n", - 'type' => 'string', - 'example' => 'nametest', - ], - 'AuthKey' => [ - 'description' => 'The authentication key of the Border Gateway Protocol (BGP) routing protocol for the gateway device in the data center.'."\n", - 'type' => 'string', - 'example' => 'AuthKey****', - ], - 'Tags' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'Tag' => [ - 'description' => 'The list of tags added to the customer gateway.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => 'The tag key.'."\n", - 'type' => 'string', - 'example' => 'TagKey', - ], - 'Value' => [ - 'description' => 'The tag value.'."\n", - 'type' => 'string', - 'example' => 'TagValue', - ], - ], - ], - ], - ], - ], - 'ResourceGroupId' => [ - 'description' => 'The ID of the resource group to which the customer gateway belongs.'."\n" - ."\n" - .'You can call the [ListResourceGroups](~~158855~~) operation to query resource groups.'."\n", - 'type' => 'string', - 'example' => 'rg-acfmzs372yg****', - ], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '606998F0-B94D-48FE-8316-ACA81BB230DA', 'title' => ''], + 'Name' => ['description' => 'The name of the SSL client certificate.'."\n", 'type' => 'string', 'example' => 'cert2', 'title' => ''], + 'SslVpnClientCertId' => ['description' => 'The ID of the SSL client certificate.'."\n", 'type' => 'string', 'example' => 'vsc-bp1n8wcf134yl0osr****', 'title' => ''], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InvalidName', 'errorMessage' => 'The name is not valid', 'description' => ''], + ], 403 => [ - [ - 'errorCode' => 'Forbidden.SubUser', - 'errorMessage' => 'User not authorized to operate on the specified resource as your account is created by another user.', - ], - [ - 'errorCode' => 'Forbidden', - 'errorMessage' => 'User not authorized to operate on the specified resource.', - ], + ['errorCode' => 'Forbbiden.SubUser', 'errorMessage' => 'User not authorized to operate on the specified resource as your account is created by another user.', 'description' => ''], + ['errorCode' => 'Forbidden', 'errorMessage' => 'User not authorized to operate on the specified resource.', 'description' => 'You do not have the permissions to manage the specified resource. Apply for the permissions and try again.'], ], [ - [ - 'errorCode' => 'InvalidCustomerGatewayInstanceId.NotFound', - 'errorMessage' => 'The specified customer gateway instance id does not exist.', - ], + ['errorCode' => 'InvalidRegionId.NotFound', 'errorMessage' => 'The specified region is not found during access authentication.', 'description' => 'The specified area is not found during authentication.'], + ['errorCode' => 'InvalidSslVpnClientCertId.NotFound', 'errorMessage' => 'The specified SSL VPN client cert id does not exist.', 'description' => ''], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Asn\\": 65535,\\n \\"RequestId\\": \\"A0457BC9-6C0F-4437-AB9D-FB2EABC1D6A2\\",\\n \\"IpAddress\\": \\"139.32.XX.XX\\",\\n \\"Description\\": \\"desctest\\",\\n \\"CustomerGatewayId\\": \\"cgw-bp1pvpl9r9adju6l5****\\",\\n \\"CreateTime\\": 1492747187000,\\n \\"Name\\": \\"nametest\\",\\n \\"AuthKey\\": \\"AuthKey****\\",\\n \\"Tags\\": {\\n \\"Tag\\": [\\n {\\n \\"Key\\": \\"TagKey\\",\\n \\"Value\\": \\"TagValue\\"\\n }\\n ]\\n },\\n \\"ResourceGroupId\\": \\"rg-acfmzs372yg****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 65535\\n A0457BC9-6C0F-4437-AB9D-FB2EABC1D6A2\\n 139.32.XX.XX\\n desctest\\n cgw-bp1pvpl9r9adju6l5****\\n 1492747187000\\n nametest\\n AuthKey****\\n \\n TagKey\\n TagValue\\n \\n","errorExample":""}]', - 'title' => 'DescribeCustomerGateway', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'ModifySslVpnClientCert', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"606998F0-B94D-48FE-8316-ACA81BB230DA\\",\\n \\"Name\\": \\"cert2\\",\\n \\"SslVpnClientCertId\\": \\"vsc-bp1n8wcf134yl0osr****\\"\\n}","errorExample":"{\\n \\"SslVpnClientCertId\\": \\"vsc-bp1n8wcf134yl0osrcg98\\",\\n \\"Name\\": \\"test\\",\\n \\"RequestId\\": \\"606998F0-B94D-48FE-8316-ACA81BB230DA\\"\\n}"},{"type":"xml","example":"\\n\\n vsc-bp1n8wcf134yl0osr****\\n cert2\\n 606998F0-B94D-48FE-8316-ACA81BB230DA\\n","errorExample":"\\n\\n vsc-bp1n8wcf134yl0osrcg98\\n test\\n 606998F0-B94D-48FE-8316-ACA81BB230DA\\n"}]', ], - 'DescribeCustomerGateways' => [ - 'summary' => 'Queries customer gateways.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'ModifySslVpnServer' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', - 'systemTags' => [ - 'operationType' => 'list', - 'riskType' => 'none', - 'chargeType' => 'free', - ], + 'operationType' => 'readAndWrite', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => ['description' => 'The client token that is used to ensure the idempotency of the request.'."\n" + ."\n" + .'Generate a parameter value from your client to ensure uniqueness across different requests. ClientToken supports only ASCII characters.'."\n" + ."\n" + .'> If you do not specify this parameter, the system automatically uses the **RequestId** of the API request as the **ClientToken**. The **RequestId** of each API request is different.', 'type' => 'string', 'required' => false, 'example' => '02fb3da4-130e-11e9-8e44-0016e04115b', 'title' => ''], + ], [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region where the customer gateway is deployed.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-shanghai', - ], + 'schema' => ['description' => 'The region ID of the VPN gateway.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query region IDs.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'CustomerGatewayId', + 'name' => 'SslVpnServerId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the customer gateway.'."\n" - ."\n" - .'> If you do not specify a customer gateway ID, the system queries all customer gateways in the current region by default.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'cgw-bp1pvpl9r9adju6l5****', - ], + 'schema' => ['description' => 'The ID of the SSL-VPN server instance.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'vss-bp18q7hzj6largv4v****', 'title' => ''], ], [ - 'name' => 'PageNumber', + 'name' => 'Name', 'in' => 'query', - 'schema' => [ - 'description' => 'The page number. Default value: **1**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', - 'default' => '1', - ], + 'schema' => ['description' => 'The name of the SSL-VPN server.'."\n" + ."\n" + .'The name must be 1 to 100 characters in length and cannot start with `http://` or `https://`.', 'type' => 'string', 'required' => false, 'example' => 'test', 'title' => ''], ], [ - 'name' => 'PageSize', + 'name' => 'ClientIpPool', + 'in' => 'query', + 'schema' => ['description' => 'The client CIDR block.'."\n" + ."\n" + .'This is the CIDR block used to allocate IP addresses to the virtual network interface of the client, not the existing internal CIDR block of the client.'."\n" + ."\n" + .'When the client accesses the local end through an SSL-VPN connection, the VPN gateway allocates an IP address from the specified client CIDR block to the client. The client uses the allocated IP address to access cloud resources.'."\n" + ."\n" + .'When you specify the client CIDR block, make sure that the number of IP addresses in the client CIDR block is at least four times the number of SSL connections of the current VPN gateway.'."\n" + .'
'."\n" + .'Click to view the reason.'."\n" + .'For example, if the client CIDR block you specify is 192.168.0.0/24, when the system allocates IP addresses to the client, it first divides a subnet with a 30-bit subnet mask from the 192.168.0.0/24 CIDR block, such as 192.168.0.4/30, and then allocates one IP address from 192.168.0.4/30 for the client to use. The remaining three IP addresses are occupied by the system to ensure network communication. In this case, one client consumes 4 IP addresses. Therefore, to ensure that all your clients can be allocated IP addresses, make sure that the number of IP addresses in the client CIDR block you specify is at least four times the number of SSL connections of the VPN gateway.'."\n" + .'
'."\n" + ."\n" + .'
'."\n" + .'Click to view unsupported CIDR blocks.'."\n" + ."\n" + .'- 100.64.0.0~100.127.255.255'."\n" + .'- 127.0.0.0~127.255.255.255'."\n" + .'- 169.254.0.0~169.254.255.255'."\n" + .'- 224.0.0.0~239.255.255.255'."\n" + .'- 255.0.0.0~255.255.255.255'."\n" + ."\n" + .'
'."\n" + ."\n" + .'
'."\n" + .'Click to view recommended client CIDR blocks for each SSL connection count.'."\n" + ."\n" + .'- If the number of SSL connections is 5, the subnet mask of the client CIDR block should be less than or equal to 27 bits. For example: 10.0.0.0/27 or 10.0.0.0/26.'."\n" + .'- If the number of SSL connections is 10, the subnet mask of the client CIDR block should be less than or equal to 26 bits. For example: 10.0.0.0/26 or 10.0.0.0/25.'."\n" + .'- If the number of SSL connections is 20, the subnet mask of the client CIDR block should be less than or equal to 25 bits. For example: 10.0.0.0/25 or 10.0.0.0/24.'."\n" + .'- If the number of SSL connections is 50, the subnet mask of the client CIDR block should be less than or equal to 24 bits. For example: 10.0.0.0/24 or 10.0.0.0/23.'."\n" + .'- If the number of SSL connections is 100, the subnet mask of the client CIDR block should be less than or equal to 23 bits. For example: 10.0.0.0/23 or 10.0.0.0/22.'."\n" + .'- If the number of SSL connections is 200, the subnet mask of the client CIDR block should be less than or equal to 22 bits. For example: 10.0.0.0/22 or 10.0.0.0/21.'."\n" + .'- If the number of SSL connections is 500, the subnet mask of the client CIDR block should be less than or equal to 21 bits. For example: 10.0.0.0/21 or 10.0.0.0/20.'."\n" + .'- If the number of SSL connections is 1000, the subnet mask of the client CIDR block should be less than or equal to 20 bits. For example: 10.0.0.0/20 or 10.0.0.0/19.'."\n" + ."\n" + .'
'."\n" + ."\n" + .'> - The subnet mask of the client CIDR block must be between 16 and 29 bits.'."\n" + .'> - Make sure that the client CIDR block does not overlap with the local subnet, VPC CIDR block, or any route CIDR blocks associated with the client terminal.'."\n" + .'> - When specifying the client CIDR block, we recommend that you use the 10.0.0.0/8, 172.16.0.0/12, and 192.168.0.0/16 CIDR blocks and their subnets. If you need to specify a public CIDR block as the client CIDR block, you must set the public CIDR block as a user CIDR block of the VPC to ensure that the VPC can access the public CIDR block. For more information about user CIDR blocks, see [VPC FAQ](~~185311~~).'."\n" + .'> - After the SSL server is created, the system automatically adds routes for the client CIDR block to the route table of the VPC instance. Do not manually add routes for the client CIDR block to the route table of the VPC instance. Otherwise, SSL-VPN connection traffic transmission will be abnormal.', 'type' => 'string', 'required' => false, 'example' => '10.30.30.0/24', 'title' => ''], + ], + [ + 'name' => 'LocalSubnet', + 'in' => 'query', + 'schema' => ['description' => 'The local subnet.'."\n" + ."\n" + .'The CIDR block that the client needs to access through the SSL-VPN connection.'."\n" + ."\n" + .'The local subnet can be the CIDR block of a VPC, a vSwitch, an IDC interconnected with the VPC through Express Connect, or a cloud service such as Object Storage Service (OSS).'."\n" + ."\n" + .'The subnet mask of the local subnet must be between 8 and 32 bits. The following CIDR blocks cannot be specified as local subnets:'."\n" + ."\n" + .'- 127.0.0.0~127.255.255.255'."\n" + .'- 169.254.0.0~169.254.255.255'."\n" + .'- 224.0.0.0~239.255.255.255'."\n" + .'- 255.0.0.0~255.255.255.255', 'type' => 'string', 'required' => false, 'example' => '10.20.20.0/24', 'title' => ''], + ], + [ + 'name' => 'Proto', + 'in' => 'query', + 'schema' => ['description' => 'The protocol used by the SSL-VPN server. Valid values:'."\n" + ."\n" + .'- **TCP** (default): TCP protocol.'."\n" + ."\n" + .'- **UDP**: UDP protocol.', 'type' => 'string', 'required' => false, 'example' => 'UDP', 'title' => ''], + ], + [ + 'name' => 'Cipher', + 'in' => 'query', + 'schema' => ['description' => 'The encryption algorithm used by SSL-VPN. Valid values:'."\n" + ."\n" + .'- **AES-128-CBC** (default): AES-128-CBC algorithm.'."\n" + ."\n" + .'- **AES-192-CBC**: AES-192-CBC algorithm.'."\n" + ."\n" + .'- **AES-256-CBC**: AES-256-CBC algorithm.'."\n" + ."\n" + .'- **none**: No encryption algorithm is used.', 'type' => 'string', 'required' => false, 'example' => 'AES-128-CBC', 'title' => ''], + ], + [ + 'name' => 'Port', + 'in' => 'query', + 'schema' => ['description' => 'The port used by the SSL-VPN server. Valid values: **1** to **65535**. Default value: **1194**.'."\n" + ."\n" + .'The following ports are not supported: **22**, **2222**, **22222**, **9000**, **9001**, **9002**, **7505**, **80**, **443**, **53**, **68**, **123**, **4510**, **4560**, **500**, and **4500**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1194', 'title' => ''], + ], + [ + 'name' => 'Compress', + 'in' => 'query', + 'schema' => ['description' => 'Specifies whether to compress the communication. Valid values:'."\n" + ."\n" + .'- **true** (default): Compresses the communication.'."\n" + ."\n" + .'- **false**: Does not compress the communication.', 'type' => 'boolean', 'required' => false, 'example' => 'true', 'title' => ''], + ], + [ + 'name' => 'EnableMultiFactorAuth', + 'in' => 'query', + 'schema' => ['description' => 'Specifies whether to enable two-factor authentication. If you choose to enable two-factor authentication, you also need to configure **IDaaSInstanceId**, **IDaaSRegionId**, and **IDaaSApplicationId**. Valid values:'."\n" + ."\n" + .'- **true**: Enabled.'."\n" + ."\n" + .'- **false**: Not enabled.'."\n" + ."\n" + .'>- If you are using the two-factor authentication feature for the first time, complete the [authorization](https://ram.console.aliyun.com/role/authorization?request=%7B%22Services%22%3A%5B%7B%22Service%22%3A%22VPN%22%2C%22Roles%22%3A%5B%7B%22RoleName%22%3A%22AliyunVpnAccessingIdaasRole%22%2C%22TemplateId%22%3A%22IdaasRole%22%7D%5D%7D%5D%2C%22ReturnUrl%22%3A%22https%3A%2F%2Fvpc.console.aliyun.com%2Fsslvpn%2Fcn-shanghai%2Fvpn-servers%22%7D) before creating the SSL server.'."\n" + .'>- When creating an SSL server in the UAE (Dubai) region, we recommend that you bind an IDaaS EIAM 2.0 instance in the Singapore region to reduce cross-region latency.'."\n" + .'>- IDaaS EIAM 1.0 instances are no longer available for purchase. If your Alibaba Cloud account has existing IDaaS EIAM 1.0 instances, you can still bind them after enabling two-factor authentication. If your Alibaba Cloud account does not have IDaaS EIAM 1.0 instances, only IDaaS EIAM 2.0 instances can be bound after enabling two-factor authentication.', 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], + ], + [ + 'name' => 'IDaaSInstanceId', + 'in' => 'query', + 'schema' => ['description' => 'The ID of the IDaaS EIAM instance.', 'type' => 'string', 'required' => false, 'example' => 'idaas-cn-hangzhou-****', 'title' => ''], + ], + [ + 'name' => 'IDaaSRegionId', + 'in' => 'query', + 'schema' => ['description' => 'The region ID of the IDaaS EIAM instance.', 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou', 'title' => ''], + ], + [ + 'name' => 'IDaaSApplicationId', + 'in' => 'query', + 'schema' => ['description' => 'The ID of the IDaaS application.'."\n" + ."\n" + .'- If you bind an IDaaS EIAM 2.0 instance, you must enter the IDaaS application ID.'."\n" + .'- If you bind an IDaaS EIAM 1.0 instance, you do not need to enter the IDaaS application ID.', 'type' => 'string', 'required' => false, 'example' => 'app_my6g4qmvnwxzj2f****', 'title' => ''], + ], + [ + 'name' => 'DryRun', + 'in' => 'query', + 'schema' => ['description' => 'Specifies whether to perform only a dry run, without actually modifying the configuration. Valid values:'."\n" + .'- **true**: Sends a check request without modifying the SSL server configuration. The check items include whether all required parameters are specified, request format, and service limits. If the check fails, the corresponding error is returned. If the check passes, the error code `DryRunOperation` is returned.'."\n" + .'- **false** (default): Sends a normal request. After the check passes, an HTTP 2xx status code is returned, and the operation is performed.', 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], + ], + [ + 'name' => 'DnsServers', 'in' => 'query', + 'schema' => ['type' => 'string', 'description' => '', 'title' => '', 'example' => ''], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => 'The number of entries per page. Maximum value: **50**. Default value: **10**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '10', - 'default' => '10', + 'description' => 'The response parameters.', + 'type' => 'object', + 'properties' => [ + 'InternetIp' => ['description' => 'The public IP address.', 'type' => 'string', 'example' => '47.98.XX.XX', 'title' => ''], + 'IDaaSInstanceId' => ['description' => 'The ID of the IDaaS EIAM instance.', 'type' => 'string', 'example' => 'idaas-cn-hangzhou-****', 'title' => ''], + 'CreateTime' => ['description' => 'The creation time of the SSL-VPN server.', 'type' => 'integer', 'format' => 'int64', 'example' => '1492753580000', 'title' => ''], + 'VpnGatewayId' => ['description' => 'The ID of the VPN gateway instance.', 'type' => 'string', 'example' => 'vpn-bp1q8bgx4xnkm2ogj****', 'title' => ''], + 'Compress' => ['description' => 'Indicates whether communication is compressed.', 'type' => 'boolean', 'example' => 'false', 'title' => ''], + 'Port' => ['description' => 'The port of the SSL-VPN server.', 'type' => 'integer', 'format' => 'int32', 'example' => '1194', 'title' => ''], + 'LocalSubnet' => ['description' => 'The local subnet.', 'type' => 'string', 'example' => '10.20.20.0/24', 'title' => ''], + 'RegionId' => ['description' => 'The region ID of the SSL-VPN server.', 'type' => 'string', 'example' => 'cn-hangzhou', 'title' => ''], + 'Cipher' => ['description' => 'The encryption algorithm used.', 'type' => 'string', 'example' => 'AES-128-CBC', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'DF11D6F6-E35A-41C3-9B20-6FC8A901FE65', 'title' => ''], + 'Connections' => ['description' => 'The current number of connections.', 'type' => 'integer', 'format' => 'int32', 'example' => '0', 'title' => ''], + 'SslVpnServerId' => ['description' => 'The ID of the SSL-VPN server.', 'type' => 'string', 'example' => 'vss-bp18q7hzj6largv4v****', 'title' => ''], + 'MaxConnections' => ['description' => 'The maximum number of connections.', 'type' => 'integer', 'format' => 'int32', 'example' => '5', 'title' => ''], + 'Name' => ['description' => 'The name of the SSL-VPN server.', 'type' => 'string', 'example' => 'test', 'title' => ''], + 'EnableMultiFactorAuth' => ['description' => 'Indicates whether two-factor authentication is enabled.'."\n" + ."\n" + .'- **true**: Enabled.'."\n" + ."\n" + .'- **false** (default): Not enabled.', 'type' => 'boolean', 'example' => 'false', 'title' => ''], + 'ClientIpPool' => ['description' => 'The client CIDR block.', 'type' => 'string', 'example' => '10.30.30.0/24', 'title' => ''], + 'Proto' => ['description' => 'The protocol used by the SSL-VPN server.', 'type' => 'string', 'example' => 'UDP', 'title' => ''], + 'ResourceGroupId' => ['description' => 'The ID of the resource group to which the SSL-VPN server belongs.'."\n" + ."\n" + .'The resource group of the SSL-VPN server is the same as that of the associated VPN gateway instance. You can call the [ListResourceGroups](~~158855~~) operation to query resource group information.', 'type' => 'string', 'example' => 'rg-acfmzs372yg****', 'title' => ''], + 'IDaaSApplicationId' => ['description' => 'The ID of the IDaaS application.', 'type' => 'string', 'example' => 'app_my6g4qmvnwxzj2f****', 'title' => ''], + 'IDaaSInstanceVersion' => ['description' => 'The version of the IDaaS EIAM instance.'."\n" + ."\n" + .'- This parameter is returned only when the SSL server is bound to an IDaaS EIAM 2.0 instance. The only valid value is **EIAM 2.0**.'."\n" + .'- If the SSL server is bound to an IDaaS EIAM 1.0 instance, this parameter is not returned.', 'type' => 'string', 'example' => 'EIAM 2.0', 'title' => ''], + ], + 'title' => '', + 'example' => '', ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InvalidName', 'errorMessage' => 'The name is not valid', 'description' => ''], + ['errorCode' => 'VpnGateway.Configuring', 'errorMessage' => 'The specified service is configuring.', 'description' => ''], + ['errorCode' => 'VpnGateway.FinancialLocked', 'errorMessage' => 'The specified service is financial locked.', 'description' => ''], + ['errorCode' => 'IpConflict', 'errorMessage' => 'Client IP pool conflict with local IP range.', 'description' => 'The client IP pool conflicts with the local IP range.'], + ['errorCode' => 'SslVpnServer.AddRouteError', 'errorMessage' => 'Add route error whose destination is client IP pool, please check vpc route entry and relevant quota.', 'description' => 'The system failed to add the route that points to the client CIDR block. View the VPC route and quota.'], + ['errorCode' => 'ClientIpPool.NetmaskInvalid', 'errorMessage' => 'The netmask length of client IP pool must be greater than or equal to 16 and less than or equal to 29.', 'description' => 'The subnet mask of the client IP pool must range from 16 to 29.'], + ['errorCode' => 'ClientIpPool.SubnetInvalid', 'errorMessage' => 'The specified client IP pool cannot be used.', 'description' => 'The client CIDR block is unavailable.'], + ['errorCode' => 'MissingParameter.IDaaSInstanceId', 'errorMessage' => 'The input parameter IDaaSInstanceId is mandatory when enable multi-factor authentication.', 'description' => 'You must set the IDaaSInstanceId parameter when you enable two-factor authentication.'], + ['errorCode' => 'OperationFailed.GetIDaaSInfo', 'errorMessage' => 'Failed to get secret key from your IDaaS instance.', 'description' => ''], + ['errorCode' => 'OperationFailed.NoRamPermission', 'errorMessage' => 'Vpn Service has no permission to operate your IDaaS instances.', 'description' => 'The VPN service does not have the permissions to manage your IDaaS instance.'], + ['errorCode' => 'OperationUnsupported.NotSupportMultiFactorAuth', 'errorMessage' => 'Current version of the VPN does not support multi-factor authentication.', 'description' => ''], + ['errorCode' => 'SystemBusy', 'errorMessage' => 'The system is busy. Please try again later.', 'description' => ''], + ['errorCode' => 'SslVpnServerPort.Illegal', 'errorMessage' => 'The server port is not in the range of [1-65535].', 'description' => 'The port of the SSL-VPN server must be from 1 to 65535.'], + ['errorCode' => 'EnableHaCheck.SslVpnServerClientCidrContainsVpcRouteDest', 'errorMessage' => 'Ssl vpn client cidr contains vpc route prefix. The vpc route prefix is %s.', 'description' => 'The prefix %s in the VPC route table falls within the CIDR block of the SSL client.'], + ['errorCode' => 'InvalidInstanceId.NotFound', 'errorMessage' => 'InstanceId is not found.', 'description' => 'The Express Connect circuit ID is invalid.'], + ['errorCode' => 'VpnRouteEntry.Conflict', 'errorMessage' => 'The specified route entry has conflict.', 'description' => 'Route conflicts exist.'], + ['errorCode' => 'IllegalParam.IDaaSApplicationId', 'errorMessage' => 'The specified IDaaS application Id is not illegal, the application instance needs to be created based on the dedicated SSL VPN template.', 'description' => 'The specified IDaaS application instance ID is invalid. The application instance must be created based on the dedicated SSL VPN template.'], + ['errorCode' => 'MissingParam.IDaaSApplicationId', 'errorMessage' => 'The input parameter IDaaSApplicationId is mandatory when enable multi-factor authentication.', 'description' => 'Enter the IDaaSApplicationId parameters when starting two-factor authentication.'], + ['errorCode' => 'SslVpnIDaaS2.NotSupport', 'errorMessage' => 'Current version of the VPN does not support IDaaS2.0.', 'description' => 'The current version of the VPN instance does not support IDaaS2.0.'], + ['errorCode' => 'MissingParam.IDaaSRegionId', 'errorMessage' => 'The input parameter IDaaSRegionId is mandatory when enable multi-factor authentication.', 'description' => 'Enter the IDaaSRegionId parameters when starting two-factor authentication.'], + ['errorCode' => 'DryRunOperation', 'errorMessage' => 'Request validation has been passed with DryRun flag set.', 'description' => 'The request passed the dry run.'], + ['errorCode' => 'IllegalParam.LocalSubnet', 'errorMessage' => 'The specified "LocalSubnet" (%s) is invalid.', 'description' => 'The specified "LocalSubnet" (%s) is invalid.'], + ], + 403 => [ + ['errorCode' => 'Forbbiden.SubUser', 'errorMessage' => 'User not authorized to operate on the specified resource as your account is created by another user.', 'description' => ''], + ['errorCode' => 'Forbidden', 'errorMessage' => 'User not authorized to operate on the specified resource.', 'description' => 'You do not have the permissions to manage the specified resource. Apply for the permissions and try again.'], + ], [ - 'name' => 'Tag', + ['errorCode' => 'InvalidRegionId.NotFound', 'errorMessage' => 'The specified region is not found during access authentication.', 'description' => 'The specified area is not found during authentication.'], + ['errorCode' => 'InvalidIDaaSInstanceId.NotFound', 'errorMessage' => 'The specified IDaaS instance ID does not exist.', 'description' => 'The specified IDaaS instance does not exist.'], + ['errorCode' => 'InvalidIDaaSApplicationId.NotFound', 'errorMessage' => 'The specified IDaaS application Id does not exist.', 'description' => 'The ID of the specified IDaaS application instance does not exist.'], + ], + ], + 'staticInfo' => ['returnType' => 'asynchronous', 'callback' => 'Vpc::2016-04-28::DescribeVpnGateway', 'callbackInterval' => 2000, 'maxCallbackTimes' => 60], + 'title' => 'Modify the configuration of an SSL-VPN server', + 'summary' => 'Calls the ModifySslVpnServer operation to modify the configuration of an SSL-VPN server.', + 'description' => '- If you want to enable two-factor authentication for the SSL server, first make sure the VPN gateway instance supports this feature. You may need to upgrade the VPN gateway instance. For more information, see [SSL-VPN two-factor authentication supports IDaaS EIAM 2.0](~~2785320~~).'."\n" + .'- When only the **Name** of the SSL-VPN server is modified, this operation is synchronous. If configurations other than **Name** are also modified, this operation is asynchronous.'."\n" + .'- When the **ModifySslVpnServer** operation is asynchronous, the system first returns a request ID, but the configuration of the SSL-VPN server has not been modified yet, and the modification task is still in progress in the background. You can call the [DescribeVpnGateway](~~2794055~~) operation to query the status of the VPN gateway instance associated with the SSL-VPN server to confirm the modification status of the SSL-VPN server configuration:'."\n" + .' - When the VPN gateway instance is in the **updating** state, the configuration of the SSL-VPN server is being modified.'."\n" + .' - When the VPN gateway instance is in the **active** state, the configuration of the SSL-VPN server has been modified successfully.'."\n" + ."\n" + .'- The **ModifySslVpnServer** operation does not support concurrent modification of SSL-VPN server configurations under the same VPN gateway.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2025-05-23T06:50:35.000Z', 'description' => 'Error codes changed, Request parameters changed'], + ['createdAt' => '2024-05-10T02:03:16.000Z', 'description' => 'Error codes changed, Request parameters changed, Response parameters changed'], + ['createdAt' => '2024-01-04T07:17:09.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-10-19T07:04:02.000Z', 'description' => 'Error codes changed, Response parameters changed'], + ['createdAt' => '2023-05-30T06:58:57.000Z', 'description' => 'Error codes changed'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ModifySslVpnServer'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], + ], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:ModifySslVpnServer', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'SslVpnServer', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:sslvpnserver/{#SslVpnServerId}'], + ], + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"InternetIp\\": \\"47.98.XX.XX\\",\\n \\"IDaaSInstanceId\\": \\"idaas-cn-hangzhou-****\\",\\n \\"CreateTime\\": 1492753580000,\\n \\"VpnGatewayId\\": \\"vpn-bp1q8bgx4xnkm2ogj****\\",\\n \\"Compress\\": false,\\n \\"Port\\": 1194,\\n \\"LocalSubnet\\": \\"10.20.20.0/24\\",\\n \\"RegionId\\": \\"cn-hangzhou\\",\\n \\"Cipher\\": \\"AES-128-CBC\\",\\n \\"RequestId\\": \\"DF11D6F6-E35A-41C3-9B20-6FC8A901FE65\\",\\n \\"Connections\\": 0,\\n \\"SslVpnServerId\\": \\"vss-bp18q7hzj6largv4v****\\",\\n \\"MaxConnections\\": 5,\\n \\"Name\\": \\"test\\",\\n \\"EnableMultiFactorAuth\\": false,\\n \\"ClientIpPool\\": \\"10.30.30.0/24\\",\\n \\"Proto\\": \\"UDP\\",\\n \\"ResourceGroupId\\": \\"rg-acfmzs372yg****\\",\\n \\"IDaaSApplicationId\\": \\"app_my6g4qmvnwxzj2f****\\",\\n \\"IDaaSInstanceVersion\\": \\"EIAM 2.0\\"\\n}","type":"json"}]', + ], + 'ModifyTunnelAttribute' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'readAndWrite', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free'], + 'parameters' => [ + [ + 'name' => 'ClientToken', 'in' => 'query', - 'style' => 'repeatList', + 'allowEmptyValue' => true, + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'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.'."\n" + ."\n" + .'> If you do not specify this parameter, the system automatically uses the **RequestId** as the **ClientToken**. The **RequestId** may be different for each request.', 'type' => 'string', 'required' => false, 'example' => '02fb3da4-130e-11e9-8e44-0016e04115b', 'title' => ''], + ], + [ + 'name' => 'TunnelOptionsSpecification', + 'in' => 'query', + 'style' => 'flat', 'schema' => [ - 'description' => 'The tags to be added to the customer gateway.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => 'The key of the tag. The tag key cannot be an empty string.'."\n" + 'description' => 'The tunnel configuration to modify.', + 'type' => 'object', + 'properties' => [ + 'EnableDpd' => ['description' => 'Specifies whether to enable the Dead Peer Detection (DPD) feature. Valid values:'."\n" + ."\n" + .'- **true**: Enabled. The initiator of the IPsec-VPN connection sends DPD packets to check whether the peer is alive. If no correct response is received within the specified period of time, the connection fails. The ISAKMP SA and the corresponding IPsec SA are deleted, and the tunnel is also deleted.'."\n" + ."\n" + .'- **false**: Disabled. The initiator of the IPsec-VPN connection does not send DPD packets.', 'type' => 'boolean', 'required' => false, 'example' => 'true', 'title' => ''], + 'EnableNatTraversal' => ['description' => 'Specifies whether to enable NAT traversal. Valid values:'."\n" + ."\n" + .'- **true**: Enabled. After NAT traversal is enabled, the verification of the UDP port number is removed during IKE negotiations, and the NAT gateway device in the VPN tunnel can be discovered.'."\n" + ."\n" + .'- **false**: Disabled.', 'type' => 'boolean', 'required' => false, 'example' => 'true', 'title' => ''], + 'RemoteCaCertificate' => ['description' => 'The CA certificate of the peer when you use an IPsec-VPN connection with a Chinese SM VPN gateway.', 'type' => 'string', 'required' => false, 'example' => '-----BEGIN CERTIFICATE----- MIIB7zCCAZW**** -----END CERTIFICATE-----', 'title' => ''], + 'TunnelBgpConfig' => [ + 'description' => 'The BGP configuration of the tunnel to modify.'."\n" + ."\n" + .'If BGP was not previously enabled for the tunnel, call the [ModifyVpnConnectionAttribute](~~120381~~) operation to enable BGP for the tunnel and add the BGP configuration.', + 'type' => 'object', + 'properties' => [ + 'LocalAsn' => ['description' => 'The autonomous system number (ASN) of the local end of the tunnel. Valid values: **1** to **4294967295**.', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '65530', 'title' => ''], + 'LocalBgpIp' => ['description' => 'The BGP IP address of the local end of the tunnel. The IP address must fall within the **TunnelCidr** CIDR block.', 'type' => 'string', 'required' => false, 'example' => '169.254.11.1', 'title' => ''], + 'TunnelCidr' => ['description' => 'The CIDR block of the BGP IP address on the local end of the tunnel.'."\n" ."\n" - .'The tag key can be up to 64 characters in length and cannot contain `http://` or `https://`. The tag key cannot start with `aliyun` or `acs:`.'."\n" + .'The CIDR block must be a CIDR block with a mask length of 30 within 169.254.0.0/16 and cannot be 169.254.0.0/30, 169.254.1.0/30, 169.254.2.0/30, 169.254.3.0/30, 169.254.4.0/30, 169.254.5.0/30, 169.254.6.0/30, or 169.254.169.252/30.'."\n" ."\n" - .'You can specify at most 20 tag keys at a time.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'TagKey', + .'> The IPsec tunnel CIDR block of each IPsec-VPN connection under a VPN gateway instance must be unique.', 'type' => 'string', 'required' => false, 'example' => '169.254.11.0/30', 'title' => ''], ], - 'Value' => [ - 'description' => 'The value of the tag.'."\n" + 'required' => false, + 'title' => '', + 'example' => '', + ], + 'TunnelIkeConfig' => [ + 'description' => 'The IKE phase (Phase 1) configuration of the tunnel to modify.', + 'type' => 'object', + 'properties' => [ + 'IkeAuthAlg' => ['description' => 'The authentication algorithm used in Phase 1 negotiations.'."\n" ."\n" - .'The tag value can be up to 128 characters in length. It can be an empty string. It cannot start with `aliyun` or `acs:`, and cannot contain `http://` or `https://`.'."\n" + .''."\n" ."\n" - .'Each tag key corresponds to one tag value. You can specify at most 20 tag values at a time.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'TagValue', + .'- If the IPsec-VPN connection is associated with a standard VPN gateway, valid values are **md5**, **sha1**, **sha256**, **sha384**, and **sha512**.'."\n" + .'- If the IPsec-VPN connection is associated with a Chinese SM VPN gateway, the value is **sm3**.'."\n" + ."\n" + .''."\n" + ."\n\n" + .''."\n" + ."\n" + .'Valid values: **md5**, **sha1**, **sha256**, **sha384**, and **sha512**.'."\n" + ."\n" + .'.', 'type' => 'string', 'required' => false, 'example' => 'sha1', 'title' => ''], + 'IkeEncAlg' => ['description' => 'The encryption algorithm used in Phase 1 negotiations.'."\n" + ."\n" + .''."\n" + ."\n" + .'- If the IPsec-VPN connection is associated with a standard VPN gateway, valid values are **aes**, **aes192**, **aes256**, **des**, and **3des**. '."\n" + .'- If the IPsec-VPN connection is associated with a Chinese SM VPN gateway, the value is **sm4**.'."\n" + ."\n" + .''."\n" + ."\n" + .''."\n" + ."\n" + .'Valid values: **aes**, **aes192**, **aes256**, **des**, and **3des**. '."\n" + ."\n" + .'.', 'type' => 'string', 'required' => false, 'example' => 'aes', 'title' => ''], + 'IkeLifetime' => ['description' => 'The lifetime of the SA negotiated in Phase 1. Unit: seconds. Valid values: **0** to **86400**.', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '86400', 'title' => ''], + 'IkeMode' => ['description' => 'The negotiation mode of the IKE version. Valid values:'."\n" + ."\n" + .'- **main**: main mode. This mode offers high security during negotiations.'."\n" + .'- **aggressive**: aggressive mode. This mode supports fast negotiations and a higher success rate.', 'type' => 'string', 'required' => false, 'example' => 'main', 'title' => ''], + 'IkePfs' => ['description' => 'The Diffie-Hellman key exchange algorithm used in Phase 1 negotiations. Valid values: **group1**, **group2**, **group5**, and **group14**.', 'type' => 'string', 'required' => false, 'example' => 'group2', 'title' => ''], + 'IkeVersion' => ['description' => 'The version of the IKE protocol. Valid values: **ikev1** and **ikev2**.', 'type' => 'string', 'required' => false, 'example' => 'ikev2', 'title' => ''], + 'LocalId' => ['description' => 'The identifier of the local end of the tunnel. The identifier can be up to 100 characters in length and cannot contain spaces. It supports FQDN and IP formats. Default value: the IP address of the tunnel.', 'type' => 'string', 'required' => false, 'example' => '47.XX.XX.87', 'title' => ''], + 'Psk' => ['description' => 'The pre-shared key used for identity authentication between the tunnel and the peer.'."\n" + .' '."\n" + .' - The key must be 1 to 100 characters in length and can contain digits, uppercase letters, lowercase letters, and the following characters. It cannot contain spaces. ```~!`@#$%^&*()_-+={}[]|;:\',.<>/?```'."\n" + .' - If you do not specify a pre-shared key, the system generates a random 16-character string as the pre-shared key. You can call the [DescribeVpnConnection](~~120374~~) operation to query the pre-shared key that is automatically generated by the system.'."\n" + .' > The pre-shared keys configured on the tunnel and the peer must be the same. Otherwise, the tunnel cannot be established.', 'type' => 'string', 'required' => false, 'example' => '123456****', 'title' => ''], + 'RemoteId' => ['description' => 'The identifier of the peer end of the tunnel. The identifier can be up to 100 characters in length and cannot contain spaces. It supports FQDN and IP formats. Default value: the IP address of the customer gateway instance associated with the tunnel.', 'type' => 'string', 'required' => false, 'example' => '47.XX.XX.207', 'title' => ''], ], + 'required' => false, + 'title' => '', + 'example' => '', ], - 'required' => false, + 'TunnelIpsecConfig' => [ + 'description' => 'The IPsec phase (Phase 2) configuration of the tunnel to modify.', + 'type' => 'object', + 'properties' => [ + 'IpsecAuthAlg' => ['description' => 'The authentication algorithm used in Phase 2 negotiations.'."\n" + ."\n" + .''."\n" + ."\n" + .'- If the IPsec-VPN connection is associated with a standard VPN gateway, valid values are **md5**, **sha1**, **sha256**, **sha384**, and **sha512**.'."\n" + .'- If the IPsec-VPN connection is associated with a Chinese SM VPN gateway, the value is **sm3**.'."\n" + ."\n" + .''."\n" + ."\n" + .''."\n" + ."\n" + .'Valid values: **md5**, **sha1**, **sha256**, **sha384**, and **sha512**.'."\n" + ."\n" + .'.', 'type' => 'string', 'required' => false, 'example' => 'sha1', 'title' => ''], + 'IpsecEncAlg' => ['description' => 'The encryption algorithm used in Phase 2 negotiations.'."\n" + ."\n" + .''."\n" + ."\n" + .'- If the IPsec-VPN connection is associated with a standard VPN gateway, valid values are **aes**, **aes192**, **aes256**, **des**, and **3des**. '."\n" + .'- If the IPsec-VPN connection is associated with a Chinese SM VPN gateway, the value is **sm4**.'."\n" + ."\n" + .''."\n" + ."\n" + .''."\n" + ."\n" + .'Valid values: **aes**, **aes192**, **aes256**, **des**, and **3des**. '."\n" + ."\n" + .'.', 'type' => 'string', 'required' => false, 'example' => 'aes', 'title' => ''], + 'IpsecLifetime' => ['description' => 'The lifetime of the SA negotiated in Phase 2. Unit: seconds. Valid values: **0** to **86400**.', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '86400', 'title' => ''], + 'IpsecPfs' => ['description' => 'The Diffie-Hellman key exchange algorithm used in Phase 2 negotiations. Valid values: **disabled**, **group1**, **group2**, **group5**, and **group14**.', 'type' => 'string', 'required' => false, 'example' => 'group2', 'title' => ''], + ], + 'required' => false, + 'title' => '', + 'example' => '', + ], + 'CustomerGatewayId' => ['description' => 'The instance ID of the customer gateway associated with the tunnel.', 'type' => 'string', 'required' => false, 'example' => 'cgw-1nmwbpgrp7ssqm1yn****', 'title' => ''], ], 'required' => false, - 'maxItems' => 20, + 'title' => '', + 'example' => '', ], ], [ - 'name' => 'ResourceGroupId', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the resource group to which the customer gateway belongs.'."\n" - ."\n" - .'You can call the [ListResourceGroups](~~158855~~) operation to query the resource group list.', - 'type' => 'string', - 'required' => false, - 'example' => 'rg-acfmzs372yg****', - ], + 'schema' => ['description' => 'The region ID of the IPsec-VPN connection.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the region ID.', 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou', 'title' => ''], + ], + [ + 'name' => 'VpnConnectionId', + 'in' => 'query', + 'schema' => ['description' => 'The ID of the IPsec-VPN connection.', 'type' => 'string', 'required' => true, 'example' => 'vco-gw69vm1i71y354****', 'title' => ''], + ], + [ + 'name' => 'TunnelId', + 'in' => 'query', + 'allowEmptyValue' => false, + 'schema' => ['description' => 'The tunnel ID.', 'type' => 'string', 'required' => true, 'example' => 'tun-gbyz2e070xzo93****', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => 'The response parameters.'."\n", + 'description' => 'The response parameters.', 'type' => 'object', 'properties' => [ - 'PageSize' => [ - 'description' => 'The number of entries returned per page.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => 'E82612A9-CB90-4D7E-B394-1DB7F6509B29', - ], - 'PageNumber' => [ - 'description' => 'The page number.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', + 'TunnelId' => ['description' => 'The tunnel ID.', 'type' => 'string', 'example' => 'tun-gbyz2e070xzo93****', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'E6F36FF0-9544-3AEE-8673-A4647D50064C', 'title' => ''], + 'TunnelIkeConfig' => [ + 'description' => 'The IKE phase (Phase 1) configuration of the tunnel.', + 'type' => 'object', + 'properties' => [ + 'IkeAuthAlg' => ['description' => 'The IKE authentication algorithm.', 'type' => 'string', 'example' => 'sha1', 'title' => ''], + 'IkeEncAlg' => ['description' => 'The IKE encryption algorithm.', 'type' => 'string', 'example' => 'aes', 'title' => ''], + 'IkeLifetime' => ['description' => 'The IKE lifetime. Unit: seconds.', 'type' => 'integer', 'format' => 'int64', 'example' => '86400', 'title' => ''], + 'IkeMode' => ['description' => 'The IKE negotiation mode.'."\n" + ."\n" + .'- **main**: main mode. This mode offers high security during negotiations.'."\n" + .'- **aggressive**: aggressive mode. This mode supports fast negotiations and a higher success rate.', 'type' => 'string', 'example' => 'main', 'title' => ''], + 'IkePfs' => ['description' => 'The DH group.', 'type' => 'string', 'example' => 'group2', 'title' => ''], + 'IkeVersion' => ['description' => 'The IKE protocol version.'."\n" + ."\n" + .'- **ikev1**'."\n" + .'- **ikev2**'."\n" + ."\n" + .'Compared with IKEv1, IKEv2 simplifies the SA negotiation process and provides better support for multi-CIDR-block scenarios.', 'type' => 'string', 'example' => 'ikev2', 'title' => ''], + 'LocalId' => ['description' => 'The identifier of the local end of the tunnel. It supports FQDN and IP formats. Default value: the IP address of the current tunnel.', 'type' => 'string', 'example' => '47.XX.XX.87', 'title' => ''], + 'Psk' => ['description' => 'The pre-shared key.', 'type' => 'string', 'example' => '123456****', 'title' => ''], + 'RemoteId' => ['description' => 'The identifier of the peer end of the tunnel. It supports FQDN and IP formats. Default value: the IP address of the customer gateway instance associated with the tunnel.', 'type' => 'string', 'example' => '47.XX.XX.207', 'title' => ''], + ], + 'title' => '', + 'example' => '', ], - 'TotalCount' => [ - 'description' => 'The number of returned entries.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', + 'TunnelIpsecConfig' => [ + 'description' => 'The IPsec phase (Phase 2) configuration of the tunnel.', + 'type' => 'object', + 'properties' => [ + 'IpsecAuthAlg' => ['description' => 'The IPsec authentication algorithm.', 'type' => 'string', 'example' => 'sha1', 'title' => ''], + 'IpsecEncAlg' => ['description' => 'The IPsec encryption algorithm.', 'type' => 'string', 'example' => 'aes', 'title' => ''], + 'IpsecLifetime' => ['description' => 'The IPsec lifetime. Unit: seconds.', 'type' => 'integer', 'format' => 'int64', 'example' => '86400', 'title' => ''], + 'IpsecPfs' => ['description' => 'The DH group.', 'type' => 'string', 'example' => 'group2', 'title' => ''], + ], + 'title' => '', + 'example' => '', ], - 'CustomerGateways' => [ + 'TunnelBgpConfig' => [ + 'description' => 'The BGP configuration of the tunnel.', 'type' => 'object', - 'itemNode' => true, 'properties' => [ - 'CustomerGateway' => [ - 'description' => 'The information about customer gateways.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'IpAddress' => [ - 'description' => 'The IP address of the gateway device in the data center.'."\n", - 'type' => 'string', - 'example' => '139.32.XX.XX', - ], - 'Asn' => [ - 'description' => 'The autonomous system number (ASN) of the gateway device in the data center.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '65530', - ], - 'Description' => [ - 'description' => 'The description of the customer gateway.'."\n", - 'type' => 'string', - 'example' => 'desctest', - ], - 'CustomerGatewayId' => [ - 'description' => 'The customer gateway ID.'."\n", - 'type' => 'string', - 'example' => 'cgw-bp1pvpl9r9adju6l5****', - ], - 'CreateTime' => [ - 'description' => 'The time when the customer gateway was created. Unit: millisecond.'."\n" - ."\n" - .'This value is a UNIX timestamp representing the number of milliseconds that have elapsed since January 1, 1970, 00:00:00 UTC.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1492747187000', - ], - 'Name' => [ - 'description' => 'The name of the customer gateway.'."\n", - 'type' => 'string', - 'example' => 'nametest', - ], - 'AuthKey' => [ - 'description' => 'The authentication key that is used to connect to the gateway device in the data center by using Border Gateway Protocol (BGP).'."\n", - 'type' => 'string', - 'example' => 'AuthKey****', - ], - 'Tags' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'Tag' => [ - 'description' => 'The tags that are added to the customer gateway.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => 'The key of the tag.'."\n", - 'type' => 'string', - 'example' => 'TagKey', - ], - 'Value' => [ - 'description' => 'The value of the tag.'."\n", - 'type' => 'string', - 'example' => 'TagValue', - ], - ], - ], - ], - ], - ], - 'ResourceGroupId' => [ - 'description' => 'The ID of the resource group to which the customer gateway belongs.'."\n" - ."\n" - .'You can call the [ListResourceGroups](~~158855~~) operation to query resource groups.'."\n", - 'type' => 'string', - 'example' => 'rg-acfmzs372yg****', - ], - ], - ], - ], + 'EnableBgp' => ['description' => 'The enabling status of BGP.'."\n" + ."\n" + .'- **true**: Enabled.'."\n" + ."\n" + .'- **false**: Disabled.', 'type' => 'boolean', 'example' => 'true', 'title' => ''], + 'LocalAsn' => ['description' => 'The autonomous system number (ASN) of the local end of the tunnel.', 'type' => 'integer', 'format' => 'int64', 'example' => '65530', 'title' => ''], + 'LocalBgpIp' => ['description' => 'The BGP IP address of the local end of the tunnel.', 'type' => 'string', 'example' => '169.254.11.1', 'title' => ''], + 'PeerAsn' => ['description' => 'The autonomous system number (ASN) of the peer end of the tunnel.', 'type' => 'integer', 'format' => 'int64', 'example' => '65531', 'title' => ''], + 'PeerBgpIp' => ['description' => 'The BGP IP address of the peer end of the tunnel.', 'type' => 'string', 'example' => '169.254.11.2', 'title' => ''], + 'TunnelCidr' => ['description' => 'The CIDR block of the tunnel BGP IP address.', 'type' => 'string', 'example' => '169.254.11.0/30', 'title' => ''], ], + 'title' => '', + 'example' => '', ], + 'EnableNatTraversal' => ['description' => 'Indicates whether NAT traversal is enabled. Valid values:'."\n" + ."\n" + .'- **false**: disabled.'."\n" + ."\n" + .'- **true**: enabled.', 'type' => 'boolean', 'example' => 'true', 'title' => ''], + 'EnableDpd' => ['description' => 'Indicates whether the Dead Peer Detection (DPD) feature is enabled.'."\n" + ."\n" + .'- **false**: disabled.'."\n" + ."\n" + .'- **true**: enabled.', 'type' => 'boolean', 'example' => 'true', 'title' => ''], + 'RemoteCaCertificate' => ['description' => 'The CA certificate of the peer when an IPsec-VPN connection is created with a Chinese SM VPN gateway.', 'type' => 'string', 'example' => '-----BEGIN CERTIFICATE----- MIIB7zCCAZW**** -----END CERTIFICATE-----', 'title' => ''], + 'CustomerGatewayId' => ['description' => 'The instance ID of the customer gateway associated with the tunnel.', 'type' => 'string', 'example' => 'cgw-p0wx48ayhrygitm80****', 'title' => ''], + 'Role' => ['description' => 'The role of the tunnel.'."\n" + ."\n" + .'- **master**: the active tunnel.'."\n" + .'- **slave**: the standby tunnel.', 'type' => 'string', 'example' => 'master', 'title' => ''], + 'ZoneNo' => ['description' => 'The zone of the tunnel.', 'type' => 'string', 'example' => 'cn-hangzhou-h', 'title' => ''], + 'InternetIp' => ['description' => 'The IP address of the tunnel.', 'type' => 'string', 'example' => '47.XX.XX.87', 'title' => ''], + 'State' => ['description' => 'The status of the tunnel.'."\n" + ."\n" + .'- **active**: available.'."\n" + .'- **updating**: being updated.'."\n" + .'- **deleting**: being deleted.', 'type' => 'string', 'example' => 'active', 'title' => ''], ], + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'Forbidden.TagKey.Duplicated', - 'errorMessage' => 'The specified tag key already exists.', - ], - [ - 'errorCode' => 'SizeLimitExceeded.TagNum', - 'errorMessage' => 'The maximum number of tags is exceeded.', - ], - [ - 'errorCode' => 'InvalidParameter.TagValue', - 'errorMessage' => 'The specified parameter TagValue is invalid.', - ], - [ - 'errorCode' => 'InvalidParameter.TagKey', - 'errorMessage' => 'The specified parameter TagKey is invalid.', - ], - [ - 'errorCode' => 'Duplicated.TagKey', - 'errorMessage' => 'The specified parameter TagKey is duplicated.', - ], + ['errorCode' => 'VpnGateway.Configuring', 'errorMessage' => 'The specified service is configuring.', 'description' => ''], + ['errorCode' => 'VpnGateway.FinancialLocked', 'errorMessage' => 'The specified service is financial locked.', 'description' => ''], + ['errorCode' => 'InvalidName', 'errorMessage' => 'The name is not valid', 'description' => ''], + ['errorCode' => 'VpnRouteEntry.AlreadyExists', 'errorMessage' => 'The specified route entry is already exist.', 'description' => 'The route already exists.'], + ['errorCode' => 'VpnRouteEntry.Conflict', 'errorMessage' => 'The specified route entry has conflict.', 'description' => 'Route conflicts exist.'], + ['errorCode' => 'NotSupportVpnConnectionParameter.IpsecPfs', 'errorMessage' => 'The specified vpn connection ipsec Ipsec Pfs is not support.', 'description' => 'The PFS parameter set for the IPsec-VPN connection is not supported.'], + ['errorCode' => 'NotSupportVpnConnectionParameter.IpsecAuthAlg', 'errorMessage' => 'The specified vpn connection ipsec Auth Alg is not support.', 'description' => 'The authentication algorithm specified for the IPsec-VPN connection is not supported.'], + ['errorCode' => 'VpnConnectionParamInvalid.SameVpnAndCgwDifferentIkeConfigs', 'errorMessage' => 'IPSec connections associated with the same user gateway and VPN gateway should have the same pre-shared key and IKE configuration.', 'description' => 'The pre-shared key and IKE parameters must be the same for IPsec-VPN connections that are associated with the same VPN gateway and customer gateway.'], + ['errorCode' => 'VpnConnectionParamInvalid.SameVpnAndCgwTrafficSelectorOverlap', 'errorMessage' => 'Traffic selectors of IPSec connections associated with the same user gateway and VPN gateway should not overlap.', 'description' => 'The protected data flows of IPsec-VPN connections that are associated with the same VPN gateway and customer gateway cannot overlap.'], + ['errorCode' => 'IllegalParam.LocalAsn', 'errorMessage' => 'The param of LocalAsn is illegal', 'description' => 'The LocalAsn parameter is set to an invalid value.'], + ['errorCode' => 'IllegalParam.LocalBgpIp', 'errorMessage' => 'The specified LocalBgpIp is invalid.', 'description' => 'The local BGP IP address is invalid.'], + ['errorCode' => 'VpnGateway.task.conflict', 'errorMessage' => 'The VPN is in the configuration state, please wait a while before operating.', 'description' => 'The VPN is in the configuration state, please wait a while before operating.'], + ['errorCode' => 'ModifyIkeV1WithMultiRoutes.Invalid', 'errorMessage' => 'Failed to modify VPN connection parameters. Multi-network is configured while using IkeV1 protocol.', 'description' => 'Failed to modify VPN connection parameters. Multi-network is configured while using IkeV1 protocol.'], + ['errorCode' => 'EncAlgInvalid.DesIncompatible', 'errorMessage' => 'Des/3des in IkeEncAlg and IpsecEncAlg does not support multi algorithm.', 'description' => 'Des/3des in IkeEncAlg and IpsecEncAlg does not support multi algorithm.'], + ['errorCode' => 'IkeVersionInvalid.GcmIncompatible', 'errorMessage' => 'Ikev1 does not support IkeEncAlg of gcm16.', 'description' => 'Ikev1 does not support IkeEncAlg of gcm16.'], + ['errorCode' => 'CustomerGateway.ConflictVpnIp', 'errorMessage' => 'The specified customer gateway has conflict with vpn gateway ip.', 'description' => 'The specified customer gateway has conflict with vpn gateway ip.'], ], 403 => [ - [ - 'errorCode' => 'Forbbiden.SubUser', - 'errorMessage' => 'User not authorized to operate on the specified resource as your account is created by another user.', - ], - [ - 'errorCode' => 'Forbidden', - 'errorMessage' => 'User not authorized to operate on the specified resource.', - ], + ['errorCode' => 'Forbbiden.SubUser', 'errorMessage' => 'User not authorized to operate on the specified resource as your account is created by another user.', 'description' => ''], + ['errorCode' => 'Forbidden', 'errorMessage' => 'User not authorized to operate on the specified resource.', 'description' => 'You do not have the permissions to manage the specified resource. Apply for the permissions and try again.'], + ], + [ + ['errorCode' => 'InvalidVpnConnectionInstanceId.NotFound', 'errorMessage' => 'The specified vpn connection instance id does not exist.', 'description' => 'The specified vpn connection instance id does not exist.'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'staticInfo' => ['returnType' => 'asynchronous', 'callback' => 'Vpc::2016-04-28::DescribeVpnGateway', 'callbackInterval' => 1000, 'maxCallbackTimes' => 30], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"PageSize\\": 10,\\n \\"RequestId\\": \\"E82612A9-CB90-4D7E-B394-1DB7F6509B29\\",\\n \\"PageNumber\\": 1,\\n \\"TotalCount\\": 1,\\n \\"CustomerGateways\\": {\\n \\"CustomerGateway\\": [\\n {\\n \\"IpAddress\\": \\"139.32.XX.XX\\",\\n \\"Asn\\": 65530,\\n \\"Description\\": \\"desctest\\",\\n \\"CustomerGatewayId\\": \\"cgw-bp1pvpl9r9adju6l5****\\",\\n \\"CreateTime\\": 1492747187000,\\n \\"Name\\": \\"nametest\\",\\n \\"AuthKey\\": \\"AuthKey****\\",\\n \\"Tags\\": {\\n \\"Tag\\": [\\n {\\n \\"Key\\": \\"TagKey\\",\\n \\"Value\\": \\"TagValue\\"\\n }\\n ]\\n },\\n \\"ResourceGroupId\\": \\"rg-acfmzs372yg****\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 10\\n E82612A9-CB90-4D7E-B394-1DB7F6509B29\\n 1\\n 1\\n \\n 139.32.XX.XX\\n 65530\\n desctest\\n cgw-bp1pvpl9r9adju6l5****\\n 1492747187000\\n nametest\\n AuthKey****\\n \\n TagKey\\n TagValue\\n \\n \\n","errorExample":""}]', - 'title' => 'DescribeCustomerGateways', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'CreateVpnConnection' => [ - 'summary' => 'Creates an IPsec-VPN connection.', - 'methods' => [ - 'post', - 'get', + 'title' => 'Modify VPN tunnel information', + 'summary' => 'Calls the ModifyTunnelAttribute operation to modify the tunnel configuration of a highly available VPN gateway.', + 'changeSet' => [ + ['createdAt' => '2024-10-24T11:19:58.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2024-01-04T07:17:11.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-08-21T12:20:02.000Z', 'description' => 'Error codes changed'], ], - 'schemes' => [ - 'http', - 'https', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ModifyTunnelAttribute'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], + ], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:ModifyTunnelAttribute', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VpnConnection', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vpnconnection/{#VpnConnectionId}'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"TunnelId\\": \\"tun-gbyz2e070xzo93****\\",\\n \\"RequestId\\": \\"E6F36FF0-9544-3AEE-8673-A4647D50064C\\",\\n \\"TunnelIkeConfig\\": {\\n \\"IkeAuthAlg\\": \\"sha1\\",\\n \\"IkeEncAlg\\": \\"aes\\",\\n \\"IkeLifetime\\": 86400,\\n \\"IkeMode\\": \\"main\\",\\n \\"IkePfs\\": \\"group2\\",\\n \\"IkeVersion\\": \\"ikev2\\",\\n \\"LocalId\\": \\"47.XX.XX.87\\",\\n \\"Psk\\": \\"123456****\\",\\n \\"RemoteId\\": \\"47.XX.XX.207\\"\\n },\\n \\"TunnelIpsecConfig\\": {\\n \\"IpsecAuthAlg\\": \\"sha1\\",\\n \\"IpsecEncAlg\\": \\"aes\\",\\n \\"IpsecLifetime\\": 86400,\\n \\"IpsecPfs\\": \\"group2\\"\\n },\\n \\"TunnelBgpConfig\\": {\\n \\"EnableBgp\\": true,\\n \\"LocalAsn\\": 65530,\\n \\"LocalBgpIp\\": \\"169.254.11.1\\",\\n \\"PeerAsn\\": 65531,\\n \\"PeerBgpIp\\": \\"169.254.11.2\\",\\n \\"TunnelCidr\\": \\"169.254.11.0/30\\"\\n },\\n \\"EnableNatTraversal\\": true,\\n \\"EnableDpd\\": true,\\n \\"RemoteCaCertificate\\": \\"-----BEGIN CERTIFICATE----- MIIB7zCCAZW**** -----END CERTIFICATE-----\\",\\n \\"CustomerGatewayId\\": \\"cgw-p0wx48ayhrygitm80****\\",\\n \\"Role\\": \\"master\\",\\n \\"ZoneNo\\": \\"cn-hangzhou-h\\",\\n \\"InternetIp\\": \\"47.XX.XX.87\\",\\n \\"State\\": \\"active\\"\\n}","type":"json"}]', + ], + 'ModifyVRouterAttribute' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -68177,1012 +52088,424 @@ ], 'operationType' => 'readAndWrite', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'create', - 'riskType' => 'none', - 'chargeType' => 'free', - ], + 'systemTags' => ['operationType' => 'update'], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region where the IPsec-VPN connection is created. You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-shanghai', - ], - ], - [ - 'name' => 'ClientToken', - 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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.'."\n" - ."\n" - .'> 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.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '02fb3da4-130e-11e9-8e44-001****', - ], + 'schema' => ['description' => 'The region ID of the vRouter.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou'], ], [ - 'name' => 'CustomerGatewayId', + 'name' => 'VRouterId', 'in' => 'query', - 'schema' => [ - 'description' => 'When you create an IPsec-VPN connection in single-tunnel mode, this parameter is required.'."\n" - ."\n" - .'The ID of the customer gateway.'."\n", - 'type' => 'string', - 'required' => false, - 'docRequired' => false, - 'example' => 'cgw-p0w2jemrcj5u61un8****', - ], + 'schema' => ['description' => 'The vRouter ID.'."\n", 'type' => 'string', 'required' => true, 'example' => 'vrt-gw0p7zigake75znix****'], ], [ - 'name' => 'VpnGatewayId', + 'name' => 'VRouterName', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the VPN gateway.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'vpn-bp1q8bgx4xnkm****', - ], + 'schema' => ['description' => 'The name of the vRouter.'."\n" + ."\n" + .'The name must be 1 to 128 characters in length and cannot start with `http://` or `https://`.'."\n", 'type' => 'string', 'required' => false, 'example' => 'VRouter-1'], ], [ - 'name' => 'Name', + 'name' => 'Description', 'in' => 'query', - 'schema' => [ - 'description' => 'The name of the IPsec-VPN connection.'."\n" - ."\n" - .'The name must be 1 to 100 characters in length and cannot start with `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'IPsec', - ], + 'schema' => ['description' => 'The description of the vRouter.'."\n" + ."\n" + .'The description must be 1 to 256 characters in length, and cannot start with `http://` or `https://`.'."\n", 'type' => 'string', 'required' => false, 'example' => 'My VRouter'], ], - [ - 'name' => 'LocalSubnet', - 'in' => 'query', + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => 'The CIDR block of the virtual private cloud (VPC) that needs to communicate with the on-premises database. The CIDR block is used in Phase 2 negotiations.'."\n" - ."\n" - .'Separate multiple CIDR blocks with commas (,). Example: 192.168.1.0/24,192.168.2.0/24.'."\n" - ."\n" - .'The following routing modes are supported:'."\n" - ."\n" - .'* If you set **LocalSubnet** and **RemoteSubnet** to 0.0.0.0/0, the routing mode of the IPsec-VPN connection is set to Destination Routing Mode.'."\n" - .'* If you set **LocalSubnet** and **RemoteSubnet** to specific CIDR blocks, the routing mode of the IPsec-VPN connection is set to Protected Data Flows.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => '10.10.1.0/24,10.10.2.0/24', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B45'], + ], + 'description' => '', ], ], - [ - 'name' => 'RemoteSubnet', - 'in' => 'query', - 'schema' => [ - 'description' => 'The CIDR block of the on-premises database that needs to communicate with the VPC. The CIDR block is used in Phase 2 negotiations.'."\n" - ."\n" - .'Separate multiple CIDR blocks with commas (,). Example: 192.168.3.0/24,192.168.4.0/24.'."\n" - ."\n" - .'The following routing modes are supported:'."\n" - ."\n" - .'* If you set **LocalSubnet** and **RemoteSubnet** to 0.0.0.0/0, the routing mode of the IPsec-VPN connection is set to Destination Routing Mode.'."\n" - .'* If you set **LocalSubnet** and **RemoteSubnet** to specific CIDR blocks, the routing mode of the IPsec-VPN connection is set to Protected Data Flows.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => '10.10.3.0/24,10.10.4.0/24', - ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InvalidVRouterName.Malformed', 'errorMessage' => 'Specified virtual router name is not valid.', 'description' => ''], + ['errorCode' => 'InvalidVRouterDescription.Malformed', 'errorMessage' => 'Specified virtual router description is not valid.', 'description' => 'The router description is invalid.'], + ['errorCode' => 'MissingParameter', 'errorMessage' => 'Miss mandatory parameter.', 'description' => ''], + ['errorCode' => 'InvalidDescription.Malformed', 'errorMessage' => 'Invalid description.', 'description' => ''], + ['errorCode' => 'Forbidden.VRouterNotFound', 'errorMessage' => 'Specified virtual router is not found during access authentication.', 'description' => ''], + ], + 404 => [ + ['errorCode' => 'InvalidVRouterId.NotFound', 'errorMessage' => 'Specified virtual router does not exist.', 'description' => ''], ], + ], + 'title' => 'ModifyVRouterAttribute', + 'summary' => 'Modifies the name and description of a vRouter.', + 'description' => 'You cannot repeatedly call the **ModifyVRouterAttribute** operation within a specific period of time.'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2023-04-26T03:45:51.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2022-06-23T11:09:56.000Z', 'description' => 'Error codes changed'], + ], + 'ramActions' => [], + ], + 'ModifyVSwitchAttribute' => [ + 'summary' => 'Modifies the name, description, and IPv6 settings of a vSwitch.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'EffectImmediately', + 'AK' => [], + ], + ], + 'operationType' => 'readAndWrite', + 'systemTags' => ['operationType' => 'update'], + 'parameters' => [ + [ + 'name' => 'VSwitchId', 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to immediately start IPsec negotiations. Valid values:'."\n" - ."\n" - .'* **true**: immediately starts IPsec negotiations.'."\n" - .'* **false** (default): starts IPsec negotiations when inbound traffic is detected.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - 'default' => 'false', - ], + 'schema' => ['description' => 'The ID of the vSwitch.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'vsw-25nacdfvue4****', 'title' => ''], ], [ - 'name' => 'IkeConfig', + 'name' => 'VSwitchName', 'in' => 'query', - 'schema' => [ - 'description' => 'This parameter is supported if you create an IPsec-VPN connection in single-tunnel mode.'."\n" - ."\n" - .'The configurations of Phase 1 negotiations:'."\n" - ."\n" - .'* **IkeConfig.Psk**: the pre-shared key that is used for identity authentication between the VPN gateway and the on-premises data center.'."\n" - ."\n" - .' * The key cannot contain spaces. The key must be 1 to 100 characters in length, and can contain digits, letters, and the following special characters: ``~!\\`@#$%^&*()_-+={}[]|;:\',.<>/?``'."\n" - ."\n" - .' * If you do not specify a pre-shared key, the system randomly generates a 16-bit string as the pre-shared key. You can call the [DescribeVpnConnection](~~2526951~~) operation to query the pre-shared key that is automatically generated by the system.'."\n" - ."\n" - .' > The pre-shared key of the IPsec-VPN connection must be the same as the authentication key of the on-premises data center. Otherwise, connections between the on-premises data center and the VPN gateway cannot be established.'."\n" - ."\n" - .'* **IkeConfig.IkeVersion**: the version of the Internet Key Exchange (IKE) protocol. Valid values: **ikev1** and **ikev2**. Default value: **ikev1**.'."\n" - ."\n" - .' Compared with IKEv1, IKEv2 simplifies the security association (SA) negotiation process and provides better support for scenarios with multiple CIDR blocks.'."\n" - ."\n" - .'* **IkeConfig.IkeMode**: the negotiation mode of IKE. Valid values: **main** and **aggressive**. Default value: **main**.'."\n" - ."\n" - .' * **main:** This mode offers higher security during negotiations.'."\n" - .' * **aggressive:** This mode is faster and has a higher success rate.'."\n" - ."\n" - .'* **IkeConfig.IkeEncAlg**: the encryption algorithm that is used in Phase 1 negotiations.'."\n" - ."\n" - .' Valid values: **aes**, **aes192**, **aes256**, **des**, and **3des**. Default value: **aes**.'."\n" - ."\n" - .'* **IkeConfig.IkeAuthAlg**: the authentication algorithm that is used in Phase 1 negotiations.'."\n" - ."\n" - .' Valid values: **md5**, **sha1**, **sha256**, **sha384**, and **sha512**. Default value: **md5**.'."\n" - ."\n" - .'* **IkeConfig.IkePfs**: the Diffie-Hellman key exchange algorithm that is used in Phase 1 negotiations. Valid values: **group1**, **group2**, **group5**, and **group14**. Default value: **group2**.'."\n" - ."\n" - .'* **IkeConfig.IkeLifetime**: the SA lifetime as a result of Phase 1 negotiations. Unit: seconds Valid values: **0** to **86400**. Default value: **86400**.'."\n" - ."\n" - .'* **IkeConfig.LocalId**: the identifier of the VPN gateway. It can be up to 100 characters in length and cannot contain space characters. The default value is the IP address of the VPN gateway.'."\n" - ."\n" - .'* **IkeConfig.RemoteId**: the identifier of the customer gateway. It can be up to 100 characters in length and cannot contain space characters. The default value is the IP address of the customer gateway.', - 'type' => 'string', - 'required' => false, - 'example' => '{"Psk":"1234****","IkeVersion":"ikev1","IkeMode":"main","IkeEncAlg":"aes","IkeAuthAlg":"sha1","IkePfs":"group2","IkeLifetime":86400,"LocalId":"47.XX.XX.1","RemoteId":"47.XX.XX.2"}', - ], + 'schema' => ['description' => 'The new name for the vSwitch.'."\n" + ."\n" + .'The name must be 1 to 128 characters in length, and cannot start with `http://` or `https://`.'."\n", 'type' => 'string', 'required' => false, 'example' => 'VSwitch-1', 'title' => ''], ], [ - 'name' => 'IpsecConfig', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'This parameter is available if you create an IPsec-VPN connection in single-tunnel mode.'."\n" - ."\n" - .'The configurations of Phase 2 negotiations:'."\n" - ."\n" - .'* **IpsecConfig.IpsecEncAlg**: the encryption algorithm that is used in Phase 2 negotiations.'."\n" - ."\n" - .' Valid values: **aes**, **aes192**, **aes256**, **des**, and **3des**. Default value: **aes**.'."\n" - ."\n" - .'* **IpsecConfig. IpsecAuthAlg**: the authentication algorithm that is used in Phase 2 negotiations.'."\n" - ."\n" - .' Valid values: **md5**, **sha1**, **sha256**, **sha384**, and **sha512**. Default value: **md5**.'."\n" - ."\n" - .'* **IpsecConfig. IpsecPfs**: the DH key exchange algorithm that is used in Phase 2 negotiations. Valid values: **disabled**, **group1**, **group2**, **group5**, and **group14**. Default value: **group2**.'."\n" - ."\n" - .'* **IpsecConfig. IpsecLifetime**: the SA lifetime that is determined by Phase 2 negotiations. Unit: seconds. Valid values: **0** to **86400**. Default value: **86400**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '{"IpsecEncAlg":"aes","IpsecAuthAlg":"sha1","IpsecPfs":"group2","IpsecLifetime":86400}', - ], + 'schema' => ['description' => 'The ID of the region where the vSwitch is deployed. You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'HealthCheckConfig', + 'name' => 'Description', 'in' => 'query', - 'schema' => [ - 'description' => 'This parameter is available if you create an IPsec-VPN connection in single-tunnel mode.'."\n" - ."\n" - .'The health check configuration:'."\n" - ."\n" - .'* **HealthCheckConfig.enable**: specifies whether to enable health checks. Valid values: **true** and **false**. Default value: false.'."\n" - .'* **HealthCheckConfig.dip**: the destination IP address configured for health checks.'."\n" - .'* **HealthCheckConfig.sip:** the source IP address that is used for health checks.'."\n" - .'* **HealthCheckConfig.interval**: the time interval of health check retries. Unit: seconds. Default value: **3**.'."\n" - .'* **HealthCheckConfig.retry**: the maximum number of health check retries. Default value: **3**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '{"enable":"true","dip":"192.168.10.1","sip":"10.10.1.1","interval":"3","retry":"3"}', - ], + 'schema' => ['description' => 'The new description for the vSwitch.'."\n" + ."\n" + .'The description must be 1 to 256 characters in length and cannot start with `http://` or `https://`.'."\n", 'type' => 'string', 'required' => false, 'example' => 'This is my vswitch.', 'title' => ''], ], [ - 'name' => 'AutoConfigRoute', + 'name' => 'Ipv6CidrBlock', 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to automatically configure routes. Valid values:'."\n" - ."\n" - .'* **true** (default)'."\n" - .'* **false**'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], + 'schema' => ['description' => 'The last eight bits of the IPv6 CIDR block of the vSwitch. Valid values: **0** to **255**.'."\n" + ."\n" + .'You can set this parameter only when the IPv6 feature is enabled for the virtual private cloud (VPC) to which the vSwitch belongs.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '10', 'title' => ''], ], [ - 'name' => 'EnableDpd', + 'name' => 'EnableIPv6', 'in' => 'query', - 'schema' => [ - 'description' => 'This parameter is available if you create an IPsec-VPN connection in single-tunnel mode.'."\n" - ."\n" - .'Specifies whether to enable the dead peer detection (DPD) feature. Valid values:'."\n" - ."\n" - .'* **true** (default) The initiator of the IPsec-VPN connection sends DPD packets to verify the existence and availability of the peer. If no feedback is received from the peer within a specified period of time, the connection fails. ISAKMP SAs and IPsec SAs are deleted. The IPsec tunnel is also deleted.'."\n" - .'* **false**'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], + 'schema' => ['description' => 'Specifies whether to enable the IPv6 feature for the vSwitch. Valid values:'."\n" + ."\n" + .'* **true**: enables the IPv6 feature.'."\n" + .'* **false**: disables the IPv6 feature. This is the default value.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], ], [ - 'name' => 'EnableNatTraversal', + 'name' => 'VpcIpv6CidrBlock', 'in' => 'query', + 'schema' => ['description' => 'The IPv6 CIDR block of the VPC to which the vSwitch belongs.'."\n" + ."\n" + .'You can set this parameter only when the IPv6 feature is enabled for the VPC.'."\n", 'type' => 'string', 'required' => false, 'example' => '2408:XXXX:312:3e00::/56', 'title' => ''], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => 'This parameter is available if you create an IPsec-VPN connection in single-tunnel mode.'."\n" - ."\n" - .'Specifies whether to enable NAT traversal. Valid values:'."\n" - ."\n" - .'* **true** (default) After NAT traversal is enabled, the initiator does not check the UDP ports during IKE negotiations and can automatically discover NAT gateway devices along the VPN tunnel.'."\n" - .'* **false**'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => '0ED8D006-F706-4D23-88ED-E11ED28DCAC0', 'title' => ''], + ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InvalidVSwitchName.Malformed', 'errorMessage' => 'Specified virtual switch name is not valid.', 'description' => 'The format of the specified vSwitch name is invalid. Specify the name in the valid format.'], + ['errorCode' => 'InvalidVSwitchDiscription.Malformed', 'errorMessage' => 'Specified virtual switch description is not valid.', 'description' => 'The format of the vSwitch description is invalid.'], + ['errorCode' => 'Forbidden.VRouterNotFound', 'errorMessage' => 'specified virtual switch is not found during access authentication.', 'description' => 'The specified vSwitch is not found during access authentication.'], + ['errorCode' => 'UnsupportedFeature.CloudBoxIpv6', 'errorMessage' => 'The IPv6 feature is not supported by cloud box.', 'description' => 'You cannot create an IPv6 address for a CloudBox instance.'], + ['errorCode' => 'OperationFailed.Ipv6InstanceExist', 'errorMessage' => 'Operation failed because vswitch has ipv6 instance.', 'description' => 'IPv6 instances exist in the vSwitch.'], + ['errorCode' => 'IncorrectStatus.VpcRouteEntry', 'errorMessage' => 'The status of the specified routeEntry is invalid.', 'description' => 'The status of the VPC route entry is invalid.'], + ['errorCode' => 'OperationFailed.IPv6Disabled', 'errorMessage' => 'Operation failed because IPv6 is not enabled for the vSwitch.', 'description' => 'The IPv6 feature is disabled.'], + ['errorCode' => 'ParamExclusive.DisableIpv6AndIpv6CidrBlock', 'errorMessage' => 'DisableIpv6 and Ipv6Cidr are mutually exclusive.', 'description' => 'You cannot modify Ipv6Cidr and DisableIpv6 at the same time.'], + ['errorCode' => 'IncorrectStatus.cbnStatus', 'errorMessage' => 'Current CBN status does not support this operation.', 'description' => 'The status of the CEN instance is invalid.'], + ['errorCode' => 'DependencyViolation.IPv6CidrReservation', 'errorMessage' => 'The specified resource of [%s] depends on [%s], so the operation cannot be completed.', 'description' => 'The specified resource of [%s] depends on [%s], so the operation cannot be completed.'], + ['errorCode' => 'IllegalParam.VpcIpv6CidrBlock', 'errorMessage' => 'The parameter of VpcIPv6CidrBlock is illegal.', 'description' => ''], + ['errorCode' => 'OperationFailed.Ipv6AlreadyEnabled', 'errorMessage' => 'Operation failed because the IPv6 is enabled already.', 'description' => ''], + ['errorCode' => 'OperationFailed.Ipv6CidrBlockExisted', 'errorMessage' => 'Operation failed because the specified IPv6 CIDR block is used already.', 'description' => ''], + ['errorCode' => 'IllegalParam.Ipv6CidrBlock', 'errorMessage' => 'The parameter of Ipv6CidrBlock is illegal.', 'description' => ''], + ['errorCode' => 'InvalidDescription.Malformed', 'errorMessage' => 'The specified Description is wrongly formed.', 'description' => 'The error message returned because the Description parameter is set to an invalid value.'], + ['errorCode' => 'OperationFailed.VpcIpv6Disabled', 'errorMessage' => 'Operation failed because the VPC has not enabled IPv6.', 'description' => ''], + ['errorCode' => 'IncorrectStatus.VSwitch', 'errorMessage' => 'The specified vSwitch status is invalid.', 'description' => 'The virtual switch status is abnormal.'], + ['errorCode' => 'OperationFailed.Ipv6CidrBlockUsed', 'errorMessage' => 'Operation failed because the specified IPv6 CIDR block is used already.', 'description' => ''], + ['errorCode' => 'TaskConflict', 'errorMessage' => 'The operation is too frequent. Please wait a moment and try again.', 'description' => 'The system is unavailable. Try again later.'], + ], + 404 => [ + ['errorCode' => 'InvalidVSwitchId.NotFound', 'errorMessage' => 'The specified virtual switch does not exists.', 'description' => ''], + ], + 500 => [ + ['errorCode' => 'SystemBusy', 'errorMessage' => 'The system is busy. Please try again later.', 'description' => 'The system is busy. Please try again later.'], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"0ED8D006-F706-4D23-88ED-E11ED28DCAC0\\"\\n}","type":"json"}]', + 'title' => 'ModifyVSwitchAttribute', + 'description' => '- **ModifyVSwitchAttribute**接口属于异步接口,即系统会返回一个请求ID,但该交换机的配置信息尚未修改成功,系统后台的修改任务仍在进行。您可以调用[DescribeVSwitchAttributes](~~94567~~)查询交换机的修改状态:'."\n" + .' - 当交换机的状态处于**Pending**状态时,表示交换机的配置信息正在修改中。'."\n" + .' - 当交换机状态处于**Available**状态时,表示交换机可用。'."\n" + .'- **ModifyVSwitchAttribute**接口不支持并发修改同一个交换机的配置信息。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2025-03-27T03:53:13.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2025-02-18T11:12:26.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-11-07T03:23:16.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-10-08T10:07:47.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-08-24T07:18:02.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-06-30T05:52:50.000Z', 'description' => 'Error codes changed'], + ], + 'ramActions' => [ [ - 'name' => 'BgpConfig', - 'in' => 'query', - 'schema' => [ - 'description' => 'This parameter is supported if you create an IPsec-VPN connection in single-tunnel mode.'."\n" - ."\n" - .'BGP configuration:'."\n" - ."\n" - .'* **BgpConfig.EnableBgp**: specifies whether to enable BGP. Valid values: **true** and **false** (default).'."\n" - ."\n" - .'* **BgpConfig.LocalAsn:** the autonomous system number (ASN) on the Alibaba Cloud side. Valid values: **1** to **4294967295**. Default value: **45104**.'."\n" - ."\n" - .' You can enter a value in two segments separated by a period (.). Each segment is 16 bits in length. Enter the number in each segment in decimal format.'."\n" - ."\n" - .' For example, if you enter 123.456, the ASN is 8061384. The ASN is calculated by using the following formula: 123 × 65536 + 456 = 8061384.'."\n" - ."\n" - .'* **BgpConfig.TunnelCidr**: The CIDR block of the IPsec tunnel. The CIDR block must fall within 169.254.0.0/16 and the mask of the CIDR block must be 30 bits in length. The CIDR block cannot be 169.254.0.0/30, 169.254.1.0/30, 169.254.2.0/30, 169.254.3.0/30, 169.254.4.0/30, 169.254.5.0/30, 169.254.6.0/30, or 169.254.169.252/30.'."\n" - ."\n" - .' > The CIDR block of the IPsec tunnel for each IPsec-VPN connection on a VPN gateway must be unique.'."\n" - ."\n" - .'* **LocalBgpIp**: the BGP address on the Alibaba Cloud side. It must be an IP address that falls within the CIDR block of the IPsec tunnel.'."\n" - ."\n" - .'> - Before you add BGP configurations, we recommend that you learn about how BGP works and the limits. For more information, see [Configure BGP dynamic routing](~~2638220~~).'."\n" - .'> - We recommend that you use a private ASN to establish BGP connections to Alibaba Cloud. Refer to the relevant documentation for the private ASN range.', - 'type' => 'string', - 'required' => false, - 'example' => '{"EnableBgp":"true","LocalAsn":"45104","TunnelCidr":"169.254.11.0/30","LocalBgpIp":"169.254.11.1"}', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:ModifyVSwitchAttribute', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VSwitch', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vswitch/{#VSwitchId}'], + ], ], ], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ModifyVSwitchAttribute'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], + ], + ], + 'ModifyVSwitchCidrReservationAttribute' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'readAndWrite', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free'], + 'parameters' => [ [ - 'name' => 'RemoteCaCertificate', + 'name' => 'VSwitchCidrReservationId', 'in' => 'query', - 'schema' => [ - 'description' => 'This parameter is available if you create an IPsec-VPN connection in single-tunnel mode.'."\n" - ."\n" - .'The certificate authority (CA) certificate. If the VPN gateway is of the ShangMi (SM) type, you need to configure a CA certificate for the peer gateway device.'."\n" - ."\n" - .'* If an SM VPN gateway is used to create the IPsec-VPN connection, this parameter is required.'."\n" - .'* If a standard VPN gateway is used to create the IPsec-VPN connection, leave this parameter empty.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '-----BEGIN CERTIFICATE----- MIIB7zCCAZW**** -----END CERTIFICATE-----', - ], + 'schema' => ['description' => 'The ID of the reserved CIDR block.'."\n", 'type' => 'string', 'required' => true, 'example' => 'vcr-bp1m12saqteraw3rp****', 'title' => ''], ], [ - 'name' => 'Tags', + 'name' => 'VSwitchCidrReservationName', 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => 'The tag value.'."\n" - ."\n" - .'The tag value can be an empty string and cannot exceed 128 characters in length. It cannot start with `aliyun` or `acs:`, and cannot contain `http://` or `https://`.'."\n" - ."\n" - .'Each tag key corresponds to one tag value. You can specify up to 20 tag values in each call.', - 'type' => 'array', - 'items' => [ - 'description' => 'The tag value.', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => 'The tag key. The tag key cannot be an empty string.'."\n" - ."\n" - .'It can be at most 64 characters in length, and cannot contain `http://` or `https://`. It cannot start with `aliyun` or `acs:`.'."\n" - ."\n" - .'You can specify at most 20 tag keys in each call.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'TagKey', - ], - 'Value' => [ - 'description' => 'The tag value.'."\n" - ."\n" - .'The tag value can be an empty string and cannot exceed 128 characters in length. It cannot start with `aliyun` or `acs:`, and cannot contain `http://` or `https://`.'."\n" - ."\n" - .'Each tag key corresponds to one tag value. You can specify at most 20 tag values in each call.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'TagValue', - ], - ], - 'required' => false, - ], - 'required' => false, - 'maxItems' => 21, - ], + 'schema' => ['description' => 'The new name of the reserved CIDR block.'."\n" + ."\n" + .'The name must be 2 to 128 characters in length and can contain letters, digits, underscores (\\_), and hyphens (-). It must start with a letter.'."\n", 'type' => 'string', 'required' => false, 'example' => 'ReservationName', 'title' => ''], ], [ - 'name' => 'TunnelOptionsSpecification', - 'in' => 'formData', - 'allowEmptyValue' => true, - 'style' => 'flat', - 'schema' => [ - 'description' => 'The tunnel configurations.'."\n" - ."\n" - .'* You can specify parameters in the **TunnelOptionsSpecification** array when you create an IPsec-VPN connection in dual tunnel mode.'."\n" - .'* When you create an IPsec-VPN connection in dual tunnel mode, you must add configurations of the active and standby tunnels for the IPsec-VPN connection. Each IPsec-VPN connection supports only one active tunnel and one standby tunnel.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The tunnel configuration.'."\n", - 'type' => 'object', - 'properties' => [ - 'CustomerGatewayId' => [ - 'description' => 'The ID of the customer gateway that is associated with the tunnel.'."\n" - ."\n" - .'> - This parameter is required when you create an IPsec-VPN connection in dual-tunnel mode.'."\n" - .'> - You can specify parameters in the **TunnelOptionsSpecification** array when you create an IPsec-VPN connection in dual tunnel mode.'."\n" - .'> - When you create an IPsec-VPN connection in dual tunnel mode, you must add configurations of the active and standby tunnels for the IPsec-VPN connection. Each IPsec-VPN connection supports only one active tunnel and one standby tunnel.', - 'type' => 'string', - 'required' => false, - 'example' => 'cgw-p0wy363lucf1uyae8****', - ], - 'EnableDpd' => [ - 'description' => 'Specifies whether to enable the Dead Peer Detection (DPD) feature for the tunnel. Valid values:'."\n" - ."\n" - .'* **true** (default): enables DPD. The initiator of the IPsec-VPN connection sends DPD packets to check the existence and availability of the peer. If no feedback is received from the peer within the specified period of time, the connection fails. In this case, ISAKMP SA and IPsec SA are deleted. The security tunnel is also deleted.'."\n" - .'* **false**: disables DPD. The initiator of the IPsec-VPN connection does not send DPD packets.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], - 'EnableNatTraversal' => [ - 'description' => 'Specifies whether to enable NAT traversal for the tunnel. Valid values:'."\n" - ."\n" - .'* **true** (default): enables NAT traversal. After NAT traversal is enabled, the initiator does not check the UDP ports during IKE negotiations and can automatically discover NAT gateway devices along the IPsec-VPN tunnel.'."\n" - .'* **false**: disables NAT traversal.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], - 'RemoteCaCertificate' => [ - 'description' => 'If the VPN gateway uses an SM certificate, you need to configure the CA certificate used by the IPsec peer.'."\n" - ."\n" - .'* If the VPN gateway uses an SM certificate, this parameter is required.'."\n" - .'* If the VPN gateway does not use an SM certificate, leave this parameter empty.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '-----BEGIN CERTIFICATE----- MIIB7zCCAZW**** -----END CERTIFICATE-----', - ], - 'Role' => [ - 'description' => 'The role of the tunnel. Valid values:'."\n" - ."\n" - .'* **master**: The tunnel is an active tunnel.'."\n" - .'* **slave**: The tunnel is a standby tunnel.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'master', - ], - 'TunnelBgpConfig' => [ - 'description' => 'The Border Gateway Protocol (BGP) configurations of the tunnel.'."\n", - 'type' => 'object', - 'properties' => [ - 'LocalAsn' => [ - 'description' => 'The autonomous system number (ASN) of the tunnel on the Alibaba Cloud side. Valid values: **1** to **4294967295**. Default value: **45104**.'."\n" - ."\n" - .'> - If you set **EnableTunnelsBgp** to **true**, you must set this parameter.'."\n" - .'> - Before you add BGP configurations, we recommend that you learn about how BGP dynamic routing works and the limits. For more information, see [Configure BGP dynamic routing](~~2638220~~).'."\n" - .'> - We recommend that you use a private ASN to establish BGP connections to Alibaba Cloud. For information about the range of private ASNs, see the relevant documentation.', - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '65530', - ], - 'LocalBgpIp' => [ - 'description' => 'The BGP IP address of the tunnel on the Alibaba Cloud side. The address is an IP address that falls within the BGP CIDR block.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '169.254.10.1', - ], - 'TunnelCidr' => [ - 'description' => 'The BGP CIDR block of the tunnel. The CIDR block must fall within 169.254.0.0/16 and the mask of the CIDR block must be 30 bits in length. The CIDR block cannot be 169.254.0.0/30, 169.254.1.0/30, 169.254.2.0/30, 169.254.3.0/30, 169.254.4.0/30, 169.254.5.0/30, 169.254.6.0/30, or 169.254.169.252/30.'."\n" - ."\n" - .'> The BGP CIDR block of each tunnel must be unique on a VPN gateway.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '169.254.10.0/30', - ], - ], - 'required' => false, - ], - 'TunnelIkeConfig' => [ - 'description' => 'The configurations of Phase 1 negotiations.'."\n", - 'type' => 'object', - 'properties' => [ - 'IkeAuthAlg' => [ - 'description' => 'The authentication algorithm that is used in Phase 1 negotiations.'."\n" - ."\n" - .'Valid values: **md5**, **sha1**, **sha256**, **sha384**, and **sha512**. Default value: **md5**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'md5', - ], - 'IkeEncAlg' => [ - 'description' => 'The encryption algorithm that is used in Phase 1 negotiations.'."\n" - ."\n" - .'Valid values: **aes**, **aes192**, **aes256**, **des**, and **3des**. Default value: **aes**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'aes', - ], - 'IkeLifetime' => [ - 'description' => 'The SA lifetime as a result of Phase 1 negotiations. Unit: seconds'."\n" - ."\n" - .'Valid values: **0** to **86400**. Default value: **86400**.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '86400', - ], - 'IkeMode' => [ - 'description' => 'The negotiation mode of IKE. Valid values: **main** and **aggressive**. Default value: **main**.'."\n" - ."\n" - .'* **main:** This mode offers higher security during negotiations.'."\n" - .'* **aggressive:** This mode is faster and has a higher success rate.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'main', - ], - 'IkePfs' => [ - 'description' => 'The Diffie-Hellman key exchange algorithm that is used in Phase 1 negotiations. Default value: **group2**.\\'."\n" - .'Valid values: **group1**, **group2**, **group5**, and **group14**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'group2', - ], - 'IkeVersion' => [ - 'description' => 'The version of the IKE protocol. Valid values: **ikev1** and **ikev2**. Default value: **ikev1**.'."\n" - ."\n" - .'Compared with IKEv1, IKEv2 simplifies the SA negotiation process and provides better support for scenarios with multiple CIDR blocks.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'ikev1', - ], - 'LocalId' => [ - 'description' => 'The identifier of the tunnel on the Alibaba Cloud side, which is used in Phase 1 negotiations. The identifier cannot exceed 100 characters in length and cannot contain space characters. The default value is the IP address of the tunnel.'."\n" - ."\n" - .'**LocalId** supports fully qualified domain names (FQDNs). If you use an FQDN, we recommend that you set the negotiation mode to **aggressive**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '47.21.XX.XX', - ], - 'Psk' => [ - 'description' => 'The pre-shared key that is used for identity authentication between the tunnel and the tunnel peer.'."\n" - ."\n" - .'* The key cannot contain spaces. The key must be 1 to 100 characters in length, and can contain digits, letters, and the following special characters: ``~!\\`@#$%^&*()_-+={}[]|;:\',.<>/?``'."\n" - .'* If you do not specify a pre-shared key, the system randomly generates a 16-bit string as the pre-shared key. You can call the [DescribeVpnConnection](~~2526951~~) operation to query the pre-shared key that is automatically generated by the system.'."\n" - ."\n" - .'> The tunnel and the tunnel peer must use the same pre-shared key. Otherwise, the tunnel cannot be established.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '123456****', - ], - 'RemoteId' => [ - 'description' => 'The identifier of the tunnel peer, which is used in Phase 1 negotiations. The identifier cannot exceed 100 characters in length and cannot contain space characters. The default value is the IP address of the customer gateway that is associated with the tunnel.'."\n" - ."\n" - .'**RemoteId** supports FQDNs. If you use an FQDN, we recommend that you set the negotiation mode to **aggressive**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '47.42.XX.XX', - ], - ], - 'required' => false, - ], - 'TunnelIpsecConfig' => [ - 'description' => 'The configurations of Phase 2 negotiations.'."\n", - 'type' => 'object', - 'properties' => [ - 'IpsecAuthAlg' => [ - 'description' => 'The authentication algorithm that is used in Phase 2 negotiations.'."\n" - ."\n" - .'Valid values: **md5**, **sha1**, **sha256**, **sha384**, and **sha512**. Default value: **md5**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'md5', - ], - 'IpsecEncAlg' => [ - 'description' => 'The encryption algorithm that is used in Phase 2 negotiations.'."\n" - ."\n" - .'Valid values: **aes**, **aes192**, **aes256**, **des**, and **3des**. Default value: **aes**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'aes', - ], - 'IpsecLifetime' => [ - 'description' => 'The SA lifetime as a result of Phase 2 negotiations. Unit: seconds'."\n" - ."\n" - .'Valid values: **0** to **86400**. Default value: **86400**.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '86400', - ], - 'IpsecPfs' => [ - 'description' => 'The Diffie-Hellman key exchange algorithm that is used in Phase 2 negotiations. Default value: **group2**.'."\n" - ."\n" - .'Valid values: **disabled**, **group1**, **group2**, **group5**, and **group14**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'group2', - ], - ], - 'required' => false, - ], - ], - 'required' => false, - ], - 'required' => false, - ], + 'name' => 'VSwitchCidrReservationDescription', + 'in' => 'query', + 'schema' => ['description' => 'The new description of the reserved CIDR block. The default value is empty.'."\n" + ."\n" + .'The description must be 2 to 256 characters in length. It must start with a letter and cannot start with `http://` or `https://`.'."\n", 'type' => 'string', 'required' => false, 'example' => 'ReservationDescription', 'title' => ''], ], [ - 'name' => 'EnableTunnelsBgp', + 'name' => 'RegionId', 'in' => 'query', - 'allowEmptyValue' => true, - 'schema' => [ - 'description' => 'This parameter is available if you create an IPsec-VPN connection in dual-tunnel mode.'."\n" - ."\n" - .'Specifies whether to enable the BGP feature for the tunnel. Valid values: **true** and **false**. Default value: false.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], + 'schema' => ['description' => 'The ID of the region where the vSwitch is deployed.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ 'name' => 'DryRun', 'in' => 'query', - 'schema' => [ - 'type' => 'boolean', - ], + 'schema' => ['description' => 'Specifies whether to perform a dry run of the request. Valid values:'."\n" + .'- **true**: Sends a dry run request without creating any resource (performing the API operation). The system checks whether required parameters are specified, whether the request format is valid, and whether business limits are met. If the check fails, an error is returned. If the check passes, the error code `DryRunOperation` is returned.'."\n" + .'- **false** (default): Sends a normal request. If the check passes, an HTTP 2xx status code is returned and the operation is performed.', 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], + ], + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => ['description' => 'A client token used to ensure the idempotence of the request.'."\n" + ."\n" + .'Generate a unique value from your client for this parameter to guarantee uniqueness across different requests. ClientToken supports only ASCII characters.'."\n" + ."\n" + .'> If you do not specify this parameter, the system automatically uses the **RequestId** of the API request as the **ClientToken**. The **RequestId** may differ for each API request.', 'type' => 'string', 'required' => false, 'example' => '02fb3da4-230e-11e9-8e44-0016e04115b', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => 'The returned data.'."\n", + 'description' => 'The request ID.'."\n", 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '082AD562-B8DB-4BB2-861F-DA1FCA01FD76', - ], - 'VpnConnectionId' => [ - 'description' => 'The ID of the IPsec-VPN connection.'."\n", - 'type' => 'string', - 'example' => 'vco-bp15oes1py4i6****', - ], - 'Name' => [ - 'description' => 'The name of the IPsec-VPN connection.'."\n", - 'type' => 'string', - 'example' => 'test', - ], - 'CreateTime' => [ - 'description' => 'The timestamp generated when the IPsec-VPN connection was established. Unit: milliseconds.'."\n" - ."\n" - .'This value is a UNIX timestamp representing the number of milliseconds that have elapsed since the epoch time January 1, 1970, 00:00:00 UTC.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1544666102000', - ], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B45', 'title' => ''], ], + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'Resource.QuotaFull', - 'errorMessage' => 'The quota of resource is full', - ], - [ - 'errorCode' => 'InvalidVpnConnection.AlreadyExists', - 'errorMessage' => 'Vpn connection already exists.', - ], - [ - 'errorCode' => 'VpnGateway.Configuring', - 'errorMessage' => 'The specified service is configuring.', - ], - [ - 'errorCode' => 'VpnGateway.FinancialLocked', - 'errorMessage' => 'The specified service is financial locked.', - ], - [ - 'errorCode' => 'VpnGateway.IpsecVpnDisabled', - 'errorMessage' => 'The vpn gateway does not enable IPSec VPN.', - ], - [ - 'errorCode' => 'VpnRouteEntry.AlreadyExists', - 'errorMessage' => 'The specified route entry is already exist.', - ], - [ - 'errorCode' => 'VpnRouteEntry.Conflict', - 'errorMessage' => 'The specified route entry has conflict.', - ], - [ - 'errorCode' => 'NotSupportVpnConnectionParameter.IpsecPfs', - 'errorMessage' => 'The specified vpn connection ipsec Ipsec Pfs is not support.', - ], - [ - 'errorCode' => 'NotSupportVpnConnectionParameter.IpsecAuthAlg', - 'errorMessage' => 'The specified vpn connection ipsec Auth Alg is not support.', - ], - [ - 'errorCode' => 'VpnRouteEntry.ConflictSSL', - 'errorMessage' => 'The specified route entry has conflict with SSL client.', - ], - [ - 'errorCode' => 'VpnRouteEntry.BackupRoute', - 'errorMessage' => 'Validate backup route entry failed.', - ], - [ - 'errorCode' => 'VpnRouteEntry.InvalidWeight', - 'errorMessage' => 'Invalid route entry weight value.', - ], - [ - 'errorCode' => 'InvalidParameter.VpnConnectionName', - 'errorMessage' => 'The specified vpn connection name is invalid.', - ], - [ - 'errorCode' => 'OperationUnsupported.SetDPD', - 'errorMessage' => 'Current version of the VPN does not support setting DPD.', - ], - [ - 'errorCode' => 'OperationUnsupported.SetNatTraversal', - 'errorMessage' => 'Current version of the VPN does not support setting NAT traversal.', - ], - [ - 'errorCode' => 'QuotaExceeded.PolicyBasedRoute', - 'errorMessage' => 'The maximum number of policy-based routes is exceeded. Existing routes: %s. Routes to be created: %s. Maximum routes: %s.', - ], - [ - 'errorCode' => 'MissingParameter.TunnelCidr', - 'errorMessage' => 'The parameter TunnelCidr is mandatory when BGP is enabled.', - ], - [ - 'errorCode' => 'OperationUnsupported.EnableBgp', - 'errorMessage' => 'Current version of the VPN does not support enable BGP.', - ], - [ - 'errorCode' => 'MissingParam.CustomerGatewayAsn', - 'errorMessage' => 'Asn of customer gateway is mandatory when BGP is enabled.', - ], - [ - 'errorCode' => 'IllegalParam.LocalAsn', - 'errorMessage' => 'The specified LocalAsn is invalid.', - ], - [ - 'errorCode' => 'IllegalParam.BgpConfig', - 'errorMessage' => 'The specified BgpConfig is invalid.', - ], - [ - 'errorCode' => 'IllegalParam.EnableBgp', - 'errorMessage' => 'VPN connection must enable BGP when VPN gateway has enabled BGP.', - ], - [ - 'errorCode' => 'IllegalParam.TunnelCidr', - 'errorMessage' => 'The specified TunnelCidr is invalid.', - ], - [ - 'errorCode' => 'InvalidLocalBgpIp.Malformed', - 'errorMessage' => 'The specified LocalBgpIp is malformed.', - ], - [ - 'errorCode' => 'IllegalParam.LocalBgpIp', - 'errorMessage' => 'The specified LocalBgpIp is invalid.', - ], - [ - 'errorCode' => 'IllegalParam.LocalSubnet', - 'errorMessage' => 'The specified "LocalSubnet" (%s) is invalid.', - ], - [ - 'errorCode' => 'IllegalParam.RemoteSubnet', - 'errorMessage' => 'The specified "RemoteSubnet" (%s) is invalid.', - ], - [ - 'errorCode' => 'OperationFailed.MissCertificate', - 'errorMessage' => 'The VPN gateway has not associated any certificates.', - ], - [ - 'errorCode' => 'MissingParam.RemoteId', - 'errorMessage' => 'The remote ID is mandatory when creating national standard VPN connection.', - ], - [ - 'errorCode' => 'OperationFailed.CenLevelNotSupport', - 'errorMessage' => 'When the VPC to which the VPN gateway belongs is attached to a FULL-mode CEN, the VPN gateway cannot enable BGP.', - ], - [ - 'errorCode' => 'CustomerGateway.ConflictRouteEntry', - 'errorMessage' => 'The specified customer gateway has conflict with route entry.', - ], - [ - 'errorCode' => 'VpnTask.CONFLICT', - 'errorMessage' => 'Vpn task has conflict.', - ], - [ - 'errorCode' => 'Forbidden.TagKey.Duplicated', - 'errorMessage' => 'The specified tag key already exists.', - ], - [ - 'errorCode' => 'SizeLimitExceeded.TagNum', - 'errorMessage' => 'The maximum number of tags is exceeded.', - ], - [ - 'errorCode' => 'InvalidParameter.TagValue', - 'errorMessage' => 'The specified parameter TagValue is invalid.', - ], - [ - 'errorCode' => 'InvalidParameter.TagKey', - 'errorMessage' => 'The specified parameter TagKey is invalid.', - ], - [ - 'errorCode' => 'Duplicated.TagKey', - 'errorMessage' => 'The specified parameter TagKey is duplicated.', - ], - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', - ], - [ - 'errorCode' => 'InvalidTunnelCidr.Malformed', - 'errorMessage' => 'The specified TunnelCidr is malformed.', - ], - [ - 'errorCode' => 'VpnConnectionParamInvalid.SameVpnAndCgwDifferentIkeConfigs', - 'errorMessage' => 'IPSec connections associated with the same user gateway and VPN gateway should have the same pre-shared key and IKE configuration.', - ], - [ - 'errorCode' => 'VpnConnectionParamInvalid.SameVpnAndCgwTrafficSelectorOverlap', - 'errorMessage' => 'Traffic selectors of IPSec connections associated with the same user gateway and VPN gateway should not overlap.', - ], - [ - 'errorCode' => 'CustomerGateway.ConflictVpnIp', - 'errorMessage' => 'The customer gateway associated with the IPSec connection should not have the same IP address as the VPN gateway.', - ], - [ - 'errorCode' => 'VpnGateway.IPsecServerAndVpnConnectionConflict', - 'errorMessage' => 'The IPSec connection and IPSec server cannot be configured on the same VPN gateway at the same time.', - ], - [ - 'errorCode' => 'InvalidSslVpnServerCertId.NotFound', - 'errorMessage' => 'The parameter is incorrect. The corresponding SSL VPN server certificate cannot be found.', - ], - [ - 'errorCode' => 'MissingParameter.TunnelOptionsSpecification', - 'errorMessage' => 'The required parameters are missing when creating a tunnel for dual-tunnel VPN.', - ], - [ - 'errorCode' => 'CreateDbrRoutesQuotaFull.QuotaFull', - 'errorMessage' => 'The number of created destination routes exceeds the quota limit.', - ], - [ - 'errorCode' => 'CreatePbrRoutesQuotaFull.QuotaFull', - 'errorMessage' => 'The number of policy routes exceeds the quota limit.', - ], - [ - 'errorCode' => 'CreateVpnConnectionsQuotaFull.QuotaFull', - 'errorMessage' => 'The number of VPN connections exceeds the quota limit.', - ], - [ - 'errorCode' => 'DryRunOperation', - 'errorMessage' => 'Request validation has been passed with DryRun flag set.', - ], - [ - 'errorCode' => 'OperationFailed.OpenCdtServiceFirst', - 'errorMessage' => 'The operation is failed because of %s.', - ], - [ - 'errorCode' => 'EncAlgInvalid.DesIncompatible', - 'errorMessage' => 'Des/3des in IkeEncAlg and IpsecEncAlg does not support multi algorithm.', - ], - [ - 'errorCode' => 'IkeVersionInvalid.GcmIncompatible', - 'errorMessage' => 'Ikev1 does not support IkeEncAlg of gcm16.', - ], - ], - 403 => [ - [ - 'errorCode' => 'Forbbiden.SubUser', - 'errorMessage' => 'User not authorized to operate on the specified resource as your account is created by another user.', - ], - [ - 'errorCode' => 'Forbidden', - 'errorMessage' => 'User not authorized to operate on the specified resource.', - ], + ['errorCode' => 'ResourceNotFound.CidrReservation', 'errorMessage' => 'ResourceNotFound.CidrReservation', 'description' => 'The error message returned because VSwitchCidrReservation is set to an invalid value.'], + ['errorCode' => 'IllegalParamFormat', 'errorMessage' => 'IllegalParamFormat', 'description' => 'The parameter format is invalid.'], ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'Modify the name and description of a reserved CIDR block for a vSwitch', + 'summary' => 'Modify the name and description of a reserved CIDR block for a vSwitch.', + 'description' => 'The **ModifyVSwitchCidrReservationAttribute** API does not support concurrent modification of the name and description of a reserved CIDR block within the same vSwitch.', + 'changeSet' => [ + ['createdAt' => '2024-07-24T09:40:24.000Z', 'description' => 'Request parameters changed'], + ], + 'ramActions' => [ [ - [ - 'errorCode' => 'InvalidCustomerGatewayInstanceId.NotFound', - 'errorMessage' => 'The specified customer gateway instance id does not exist.', - ], - [ - 'errorCode' => 'InvalidVpnGatewayInstanceId.NotFound', - 'errorMessage' => 'The specified vpn gateway instance id does not exist.', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:ModifyVSwitchCidrReservationAttribute', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VSwitchCidrReservation', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vswitchcidrreservation/{#VSwitchCidrReservationId}'], + ], ], ], ], - 'staticInfo' => [ - 'returnType' => 'asynchronous', - 'callback' => 'Vpc::2016-04-28::DescribeVpnGateway', - 'callbackInterval' => 2000, - 'maxCallbackTimes' => 60, - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"082AD562-B8DB-4BB2-861F-DA1FCA01FD76\\",\\n \\"VpnConnectionId\\": \\"vco-bp15oes1py4i6****\\",\\n \\"Name\\": \\"test\\",\\n \\"CreateTime\\": 1544666102000\\n}","errorExample":""},{"type":"xml","example":"\\n 082AD562-B8DB-4BB2-861F-DA1FCA01FD76\\n vco-bp15oes1py4i6****\\n test\\n 1544666102000\\n","errorExample":""}]', - 'title' => 'CreateVpnConnection', - 'description' => '* If the VPN gateway supports the dual-tunnel mode, you can specify the following parameters in addition to the required parameters when you call `CreateVpnConnection`:'."\n" - ."\n" - .' **ClientToken**, **Name**, **EffectImmediately**, **AutoConfigRoute**, **Tags** array, **TunnelOptionsSpecification** array, and **EnableTunnelsBgp**.'."\n" - ."\n" - .' For more information about the regions and zones that support the dual-tunnel mode, see [IPsec-VPN connections support the dual-tunnel mode](~~2358946~~).'."\n" - ."\n" - .'* If the VPN gateway supports only the dual-tunnel mode, you can specify the following parameters in addition to the required parameters when you call `CreateVpnConnection`:'."\n" - ."\n" - .' **ClientToken**, **CustomerGatewayId**, **Name**, **EffectImmediately**, **IkeConfig**, **IpsecConfig**, **HealthCheckConfig**, **AutoConfigRoute**, **EnableDpd**, **EnableNatTraversal**, **BgpConfig**, **RemoteCaCertificate**, and **Tags** array.'."\n" - ."\n" - .'* **CreateVpnConnection** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call [DescribeVpnGateway](~~73720~~) to query the status of the task.'."\n" - ."\n" - .' * If the VPN gateway is in the **updating** state, the IPsec-VPN connection is being created.'."\n" - .' * If the VPN gateway is in the **active** state, the IPsec-VPN connection is created.'."\n" - ."\n" - .'* You cannot call **CreateVpnConnection** to create multiple IPsec-VPN connections associated with a VPN gateway at the same time.'."\n", - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'DeleteVpnConnection' => [ - 'summary' => 'Deletes an IPsec-VPN connection.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '1200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ModifyVSwitchCidrReservationAttribute'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B45\\"\\n}","type":"json"}]', + ], + 'ModifyVcoRouteEntryWeight' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', - 'systemTags' => [ - 'operationType' => 'delete', - ], + 'operationType' => 'readAndWrite', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region where the IPsec-VPN connection is created.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The region ID of the IPsec-VPN connection.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'ClientToken', + 'name' => 'VpnConnectionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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.'."\n" - ."\n" - .'> 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.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '02fb3da4-130e-11e9-8e44-0016e04115b', - ], + 'schema' => ['description' => 'The ID of the IPsec-VPN connection.'."\n", 'type' => 'string', 'required' => true, 'example' => 'vco-p0w2jpkhi2eeop6q6****', 'title' => ''], ], [ - 'name' => 'VpnConnectionId', + 'name' => 'RouteDest', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the IPsec-VPN connection.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'vco-bp1bbi27hojx80nck****', - ], + 'schema' => ['description' => 'The destination CIDR block of the destination-based route that you want to modify.'."\n", 'type' => 'string', 'required' => true, 'example' => '192.168.10.0/24', 'title' => ''], + ], + [ + 'name' => 'Weight', + 'in' => 'query', + 'schema' => ['description' => 'The current weight of the destination-based route that you want to modify. Valid values:'."\n" + ."\n" + .'* **0**: a low priority'."\n" + .'* **100**: a high priority'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '100', 'title' => ''], + ], + [ + 'name' => 'NewWeight', + 'in' => 'query', + 'schema' => ['description' => 'The new weight of the destination-based route that you want to modify. Valid values:'."\n" + ."\n" + .'* **0**: a low priority'."\n" + .'* **100**: a high priority'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '0', 'title' => ''], + ], + [ + 'name' => 'NextHop', + 'in' => 'query', + 'schema' => ['description' => 'The next hop of the destination-based route that you want to modify.'."\n", 'type' => 'string', 'required' => true, 'example' => 'vco-p0w2jpkhi2eeop6q6****', 'title' => ''], + ], + [ + 'name' => 'OverlayMode', + 'in' => 'query', + 'schema' => ['description' => 'The tunneling protocol. Set the value to **Ipsec**, which specifies the IPsec tunneling protocol.'."\n", 'type' => 'string', 'required' => false, 'example' => 'Ipsec', 'title' => ''], + ], + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'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.'."\n" + ."\n" + .'> 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.'."\n", 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-4266****', 'title' => ''], ], ], 'responses' => [ 200 => [ - 'headers' => [], 'schema' => [ + 'title' => 'BaseResponse4OpenApi', + 'description' => 'The response parameters.'."\n", 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '606998F0-B94D-48FE-8316-ACA81BB230DA', - ], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '9496F8A-82F4-3130-A51A-2266ACC799B4', 'title' => ''], ], - 'description' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'VpnGateway.Configuring', - 'errorMessage' => 'The specified service is configuring.', - ], - [ - 'errorCode' => 'VpnTask.CONFLICT', - 'errorMessage' => 'Vpn task has conflict.', - ], - [ - 'errorCode' => 'VpnGateway.FinancialLocked', - 'errorMessage' => 'The specified service is financial locked.', - ], - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', - ], - [ - 'errorCode' => 'InvalidVpnGatewayInstanceId.NotFound', - 'errorMessage' => 'The specified vpn gateway instance id does not exist.', - ], + ['errorCode' => 'Resource.QuotaFull', 'errorMessage' => 'The quota of resource is full', 'description' => ''], + ['errorCode' => 'VpnConnection.Configuring', 'errorMessage' => 'The specified service is configuring.', 'description' => 'The service is being configured. Try again later.'], + ['errorCode' => 'VpnConnection.FinancialLocked', 'errorMessage' => 'The specified service is financial locked.', 'description' => 'The error message returned because the service is locked due to overdue payments.'], + ['errorCode' => 'VpnRouteEntry.AlreadyExists', 'errorMessage' => 'The specified route entry is already exist.', 'description' => 'The route already exists.'], + ['errorCode' => 'VpnRouteEntry.Conflict', 'errorMessage' => 'The specified route entry has conflict.', 'description' => 'Route conflicts exist.'], + ['errorCode' => 'TaskConflict', 'errorMessage' => 'The operation is too frequent, please wait a moment and try again.', 'description' => 'Your requests are too frequent. Try again later.'], ], 403 => [ - [ - 'errorCode' => 'Forbbiden.SubUser', - 'errorMessage' => 'User not authorized to operate on the specified resource as your account is created by another user.', - ], - [ - 'errorCode' => 'Forbidden', - 'errorMessage' => 'User not authorized to operate on the specified resource.', - ], + ['errorCode' => 'Forbbiden.SubUser', 'errorMessage' => 'User not authorized to operate on the specified resource as your account is created by another user.', 'description' => ''], + ['errorCode' => 'Forbidden', 'errorMessage' => 'User not authorized to operate on the specified resource.', 'description' => 'You do not have the permissions to manage the specified resource. Apply for the permissions and try again.'], ], [ - [ - 'errorCode' => 'InvalidVpnConnectionInstanceId.NotFound', - 'errorMessage' => 'The specified vpn connection instance id does not exist.', - ], + ['errorCode' => 'InvalidVpnConnectionInstanceId.NotFound', 'errorMessage' => 'The specified vpn connection instance id does not exist.', 'description' => 'The specified vpn connection instance id does not exist.'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"606998F0-B94D-48FE-8316-ACA81BB230DA\\"\\n}","errorExample":"{\\n \\"RequestId\\":\\"606998F0-B94D-48FE-8316-ACA81BB230DA\\"\\n}"},{"type":"xml","example":"\\n\\n 606998F0-B94D-48FE-8316-ACA81BB230DA\\n","errorExample":"\\n\\n 606998F0-B94D-48FE-8316-ACA81BB230DA\\n"}]', - 'title' => 'DeleteVpnConnection', - 'description' => '* **DeleteVpnConnection** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call the [DescribeVpnGateway](~~73720~~) operation to query the status of a VPN gateway.'."\n" - ."\n" - .' * If a VPN gateway is in the **updating** state, the IPsec-VPN connection is being deleted.'."\n" - .' * If a VPN gateway is in the **active** state, the IPsec-VPN connection has been deleted.'."\n" + 'staticInfo' => ['returnType' => 'asynchronous', 'callback' => 'Vpc::2016-04-28::DescribeVpnConnection', 'callbackInterval' => 1000, 'maxCallbackTimes' => 30], + 'title' => 'ModifyVcoRouteEntryWeight', + 'summary' => 'Modifies the weight of a destination-based route for an IPsec-VPN connection.', + 'description' => '* **ModifyVcoRouteEntryWeight** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call the [DescribeVpnConnection](~~53046~~) operation to query the status of the associated IPsec-VPN connection and determine whether the weight of the specified destination-based route is modified.'."\n" ."\n" - .'* You cannot call the **DeleteVpnConnection** operation to delete multiple IPsec-VPN connections for a VPN gateway at a time.'."\n" + .' * If the IPsec-VPN connection is in the **updating** state, the weight of the destination-based route is being modified.'."\n" + .' * If the IPsec-VPN connection is in the **attached** state, the weight of the destination-based route is modified.'."\n" ."\n" - .'> After an IPsec-VPN connection between a data center and Alibaba Cloud is deleted, the connection between the data center and Alibaba Cloud is closed.'."\n", - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'ModifyVpnConnectionAttribute' => [ - 'summary' => 'Modifies the configuration of an IPsec-VPN connection.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + .'* You cannot repeatedly call the **ModifyVcoRouteEntryWeight** operation for the same IPsec-VPN connection within the specified period of time.'."\n", + 'changeSet' => [ + ['createdAt' => '2022-12-13T03:56:52.000Z', 'description' => 'Error codes changed'], ], + 'ramActions' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"9496F8A-82F4-3130-A51A-2266ACC799B4\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 9496F8A-82F4-3130-A51A-2266ACC799B4\\n","errorExample":""}]', + ], + 'ModifyVirtualBorderRouterAttribute' => [ + 'summary' => 'You can invoke the ModifyVirtualBorderRouterAttribute API to modify the configuration of a virtual border router (VBR).', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -69190,281 +52513,799 @@ ], 'operationType' => 'readAndWrite', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'update', - 'riskType' => 'none', - 'chargeType' => 'free', - ], + 'systemTags' => ['operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', 'autoTest' => true, 'tenantRelevance' => 'tenant'], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region in which the IPsec-VPN connection is created.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => ' cn-shanghai', - ], + 'schema' => ['description' => 'The region ID of the VBR.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-shanghai', 'title' => ''], ], [ - 'name' => 'ClientToken', + 'name' => 'VbrId', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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.'."\n" - ."\n" - .'> If you do not specify this parameter, the system automatically uses the value of **RequestId** as the value of **ClientToken**. The **request ID** may be different for each request.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '02fb3da4-130e-11e9-8e44-0016e04115b', - ], + 'schema' => ['description' => 'The VBR ID.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'vbr-bp1lhl0taikrte****', 'title' => ''], ], [ - 'name' => 'VpnConnectionId', + 'name' => 'VlanId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the IPsec-VPN connection.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'vco-bp1bbi27hojx80nck****', - ], + 'schema' => ['description' => 'The VLAN ID of the VBR. Valid values: **0 to 2999**.'."\n" + ."\n" + .'> This parameter is available only to Express Connect owners. The VLAN IDs of VBRs on the same Express Connect circuit must be unique.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '0', 'title' => ''], + ], + [ + 'name' => 'CircuitCode', + 'in' => 'query', + 'schema' => ['description' => 'The circuit code of the Express Connect circuit. The circuit code is provided by the connectivity provider.'."\n" + ."\n" + .'> Only the owner of the Express Connect circuit can set this property.'."\n", 'type' => 'string', 'required' => false, 'example' => 'longtel001', 'title' => ''], + ], + [ + 'name' => 'LocalGatewayIp', + 'in' => 'query', + 'schema' => ['description' => 'The IP address of the VBR.'."\n" + ."\n" + .'Only the owner of the VBR can set or modify this parameter.'."\n", 'type' => 'string', 'required' => false, 'example' => '192.168.XX.XX', 'title' => ''], + ], + [ + 'name' => 'PeerGatewayIp', + 'in' => 'query', + 'schema' => ['description' => 'The IP address of the gateway device in the data center.'."\n" + ."\n" + .'Only the owner of the VBR can set or modify this parameter.'."\n", 'type' => 'string', 'required' => false, 'example' => '192.168.XX.X', 'title' => ''], + ], + [ + 'name' => 'PeeringSubnetMask', + 'in' => 'query', + 'schema' => ['description' => 'The subnet mask for the IP addresses of the gateway devices on the Alibaba Cloud side and on the customer side. Only the owner of the VBR can set or modify this parameter.'."\n" + ."\n" + .'The two IP addresses must fall within the same subnet.'."\n", 'type' => 'string', 'required' => false, 'example' => '255.255.255.252', 'title' => ''], + ], + [ + 'name' => 'MinTxInterval', + 'in' => 'query', + 'schema' => ['description' => 'The time interval to send BFD packets. Valid values: **200 to 1000**. Unit: milliseconds.'."\n", 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '300', 'title' => ''], + ], + [ + 'name' => 'MinRxInterval', + 'in' => 'query', + 'schema' => ['description' => 'The time interval to receive BFD packets. Valid values: **200 to 1000**. Unit: milliseconds.'."\n", 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '300', 'title' => ''], + ], + [ + 'name' => 'DetectMultiplier', + 'in' => 'query', + 'schema' => ['description' => 'The maximum number of dropped packets that is allowed by the receiver when the initiator transmits packets. This value can be used to check whether a connection works as expected.'."\n" + ."\n" + .'Valid values: **3 to 10**.'."\n", 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '3', 'title' => ''], + ], + [ + 'name' => 'Description', + 'in' => 'query', + 'schema' => ['description' => 'The description of the VBR.'."\n" + ."\n" + .'It must be 2 to 256 characters in length. It must start with a letter but cannot start with `http://` or `https://`.'."\n", 'type' => 'string', 'required' => false, 'example' => 'desc', 'title' => ''], ], [ 'name' => 'Name', 'in' => 'query', + 'schema' => ['description' => 'The name of the VBR.'."\n" + ."\n" + .'The name must be 2 to 128 characters in length, and can contain letters, digits, underscores (\\_), and hyphens (-). The name must start with a letter. It cannot start with `http://` or `https://`.'."\n", 'type' => 'string', 'required' => false, 'example' => 'VBR', 'title' => ''], + ], + [ + 'name' => 'AssociatedPhysicalConnections', + 'in' => 'query', + 'schema' => ['description' => 'The information about the Express Connect circuit associated with the VBR, including the following parameters:'."\n" + ."\n" + .'* **CircuitCode**: the circuit code provided by the connectivity provider for the Express Connect circuit.'."\n" + .'* **LocalGatewayIp**: the IP address of the gateway device on the Alibaba Cloud side.'."\n" + .'* **PeerGatewayIp**: the IP address of the gateway device on the customer side.'."\n" + .'* **PeeringSubnetMask**: the subnet mask for the IP addresses of gateway devices on the Alibaba Cloud side and the customer side.'."\n" + .'* **PhysicalConnectionId**: the ID of the Express Connect circuit.'."\n", 'type' => 'string', 'required' => false, 'example' => '['."\n" + .' {'."\n" + .' "VlanId": "5",'."\n" + .' "CircuitCode": "longtel001",'."\n" + .' "LocalGatewayIp": "192.168.XX.XX",'."\n" + .' "PeerGatewayIp": "192.168.XX.XX",'."\n" + .' "PeeringSubnetMask": "255.255.255.252",'."\n" + .' "LocalIpv6GatewayIp": "fd00:XXXX:1030:3f41::1",'."\n" + .' "PeerIpv6GatewayIp": "fd00:XXXX:1030:3f41::2",'."\n" + .' "PeeringIpv6SubnetMask": "fd00:0:1030:3f41::/126",'."\n" + .' "ipv6Enable": true,'."\n" + .' "PhysicalConnectionId": "pc-kojok19****"'."\n" + .' }'."\n" + .']', 'title' => ''], + ], + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'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.'."\n" + ."\n" + .'> 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.'."\n", 'type' => 'string', 'required' => false, 'example' => '02fb3da4-130e-11e9-8e44-00****', 'title' => ''], + ], + [ + 'name' => 'LocalIpv6GatewayIp', + 'in' => 'query', + 'schema' => ['description' => 'The IPv6 address of the VBR.'."\n", 'type' => 'string', 'required' => false, 'example' => '2001:XXXX:3c4d:0015:0000:0000:0000:1a2b', 'title' => ''], + ], + [ + 'name' => 'PeerIpv6GatewayIp', + 'in' => 'query', + 'schema' => ['description' => 'The IPv6 address of the gateway device in the data center.'."\n" + ."\n" + .'* Only the owner of the VBR can set or modify this property.'."\n" + .'* This property is required when you create a VBR for the owner of the Express Connect circuit. You can ignore this property when you create a VBR for another Alibaba Cloud account.'."\n", 'type' => 'string', 'required' => false, 'example' => '2001:XXXX:3c4d:0015:0000:0000:0000:2a2b', 'title' => ''], + ], + [ + 'name' => 'PeeringIpv6SubnetMask', + 'in' => 'query', + 'schema' => ['description' => 'The subnet mask of the IPv6 addresses of the VBR and the gateway device in the data center.'."\n" + ."\n" + .'The two IPv6 addresses must fall within the same subnet.'."\n", 'type' => 'string', 'required' => false, 'example' => '2408:4004:cc:400::/56', 'title' => ''], + ], + [ + 'name' => 'EnableIpv6', + 'in' => 'query', + 'schema' => ['description' => 'Specifies whether to enable IPv6. Valid values:'."\n" + ."\n" + .'* **true**'."\n" + .'* **false** (default)'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], + ], + [ + 'name' => 'Bandwidth', + 'in' => 'query', + 'schema' => ['description' => 'The bandwidth value. Unit: Mbit/s.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '100', 'title' => ''], + ], + [ + 'name' => 'SitelinkEnable', + 'in' => 'query', + 'schema' => ['description' => 'Indicates whether to allow service access between data centers. Valid values:'."\n" + ."\n" + .'- **true**'."\n" + .'- **false**', 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], + ], + [ + 'name' => 'Mtu', + 'in' => 'query', + 'schema' => ['description' => 'The MTU value supported by the VBR. Valid values: 1500 and 8500.'."\n" + ."\n" + .'This value can be set only when the VBR is attached to an ECR. The value also affects all other VBRs and VPCs in the same ECR.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1500', 'title' => ''], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => 'The name of the IPsec-VPN connection.'."\n" - ."\n" - .'The name must be 1 to 100 characters in length and cannot start with `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'nametest', + 'description' => 'The request ID.'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '980960B0-2969-40BF-8542-EBB34FD358AB', 'title' => ''], + ], + 'title' => '', + 'example' => '', ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'IllegalParam.AssociatedPhysicalConnections', 'errorMessage' => 'The specified AssociatedPhysicalConnections is illegal.', 'description' => 'The specified AssociatedPhysicalConnections is illegal.'], + ['errorCode' => 'IllegalParam.IpAddress', 'errorMessage' => 'The specified IpAddress is illegal.', 'description' => 'The specified IpAddress is illegal'], + ['errorCode' => 'IllegalParam.CidrBlock', 'errorMessage' => 'The specified CidrBlock is illegal.', 'description' => 'The operation failed because CidrBlock is set to an invalid value.'], + ['errorCode' => 'InvalidVbrId.NotFound', 'errorMessage' => 'The specified VirutalBorderRouter is not found.', 'description' => ''], + ['errorCode' => 'IllegalParam.MinTxInterval', 'errorMessage' => 'The specified MinTxInterval is not in proper range.', 'description' => 'The specified MinTxInterval is not in the proper range.'], + ['errorCode' => 'IllegalParam.MinRxInterval', 'errorMessage' => 'The specified MinRxInterval is not in proper range.', 'description' => 'The specified MinRxInterval is not in the proper range.'], + ['errorCode' => 'IllegalParam.DetectMultiplier', 'errorMessage' => 'The specified DetectMultiplier is not in proper range.', 'description' => 'DetectMultiplier parameters are not in the proper range.'], + ['errorCode' => 'InvalidVlanId.Used', 'errorMessage' => 'The specified VlanId has been used.', 'description' => ''], + ['errorCode' => 'Duplicated.LocalGatewayIp', 'errorMessage' => 'The specified LocalGatewayIps are duplicated.', 'description' => ''], + ['errorCode' => 'Duplicated.PeerGatewayIp', 'errorMessage' => 'The specified PeerGatewayIp are duplicated.', 'description' => ''], + ['errorCode' => 'IllegalParam.LocalGatewayIp', 'errorMessage' => 'The specified LocalGatewayIp already exists.', 'description' => ''], + ['errorCode' => 'IllegalParam.PeerGatewayIp', 'errorMessage' => 'The specified PeerGatewayIp already exists.', 'description' => ''], + ['errorCode' => 'InvalidCircuitCode.Malformed', 'errorMessage' => 'The specified CircuitCode is not valid.', 'description' => ''], + ['errorCode' => 'InvalidVlanId.Malformed', 'errorMessage' => 'The specified VlanId is not valid.', 'description' => ''], + ['errorCode' => 'InvalidIp.Malformed', 'errorMessage' => 'The specified ip address is not valid.', 'description' => ''], + ['errorCode' => 'InvalidPeeringSubnetMask.Malformed', 'errorMessage' => 'The specified PeeringSubnetMask is not valid.', 'description' => 'PeeringSubnetMask is set to an invalid value.'], + ['errorCode' => 'InvalidName.Malformed', 'errorMessage' => 'The specified Name is not valid.', 'description' => 'The Name parameter is set to an invalid value.'], + ['errorCode' => 'InvalidDescription.Malformed', 'errorMessage' => 'The specifid Description is not valid.', 'description' => 'The Description parameter is set to an invalid value.'], + ['errorCode' => 'MissingParameter', 'errorMessage' => 'LocalGatewayIp, peerGatewayIp and peeringSubnetMask must not be null.', 'description' => 'The following parameters are required but not set: LocalGatewayIp, peerGatewayIp, and peeringSubnetMask.'], + ['errorCode' => 'InvalidIp.NotSameSubnet', 'errorMessage' => 'Local gateway ip and peer gateway ip are not in the same subnet.', 'description' => 'The IP addresses of the local gateway and the peer gateway do not fall within the same subnet.'], + ['errorCode' => 'InvalidParameter', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'OperationFailed.VlanIdInUse', 'errorMessage' => 'Operation failed because vlanId is in use.', 'description' => 'The VLAN ID is already used.'], + ['errorCode' => 'IncorrectStatus.VirtualBorderRouter', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'OperationUnsupported.IPV6ForThisRegion', 'errorMessage' => 'This Region do not support IPV6.', 'description' => 'The region does not support IPv6.'], + ['errorCode' => 'OperationFailed.PconnTrafficNotEnable', 'errorMessage' => 'The operation is failed because of PconnTrafficNotEnable.', 'description' => 'Billing for outbound data transfer is disabled.'], + ['errorCode' => 'OperationDenied.VBRAssociateVPconn', 'errorMessage' => 'The operation is not allowed because of VBRAssociateVPconn.', 'description' => 'The operation failed because you cannot associate a VBR with the hosted connection.'], + ['errorCode' => 'OperationFailed.PhysicalConnectionFinancialLocked', 'errorMessage' => 'Update failed, the physical connection is financial locked.', 'description' => 'The shared port is locked due to overdue payments and you cannot modify the VLAN.'], + ['errorCode' => 'OperationFailed.PhysicalConnectionTerminated', 'errorMessage' => 'Update failed, the physical connection is terminated.', 'description' => 'The shared port is disabled and you cannot modify the VLAN.'], + ['errorCode' => 'OperationFailed.VbrBandWidthMust0InVlan0Vbr', 'errorMessage' => 'The operation is failed because of VbrBandWidthMust0InVlan0Vbr.', 'description' => 'Operation failed, speed limit configuration is not allowed.'], + ['errorCode' => 'MissingParam.DetectMultiplier', 'errorMessage' => 'The parameter DetectMultiplier is mandatory.', 'description' => 'Missing parameter DetectMultiplier. When configuring BFD packets, you need to configure three parameters: the sending interval, the receiving interval, and the detection time multiple.'], + ['errorCode' => 'MissingParam.MinRxInterval', 'errorMessage' => 'The parameter MinRxInterval is mandatory.', 'description' => 'Missing parameter MinRxInterval. When configuring BFD packets, you need to configure three parameters: the sending interval, the receiving interval, and the detection time multiple.'], + ['errorCode' => 'MissingParam.MinTxInterval', 'errorMessage' => 'The parameter MinTxInterval is mandatory.', 'description' => 'Missing parameter MinTxInterval. When configuring BFD packets, you need to configure three parameters: the sending interval, the receiving interval, and the detection time multiple.'], + ['errorCode' => 'DuplicatedParam.LocalGatewayIp', 'errorMessage' => 'The LocalGatewayIp values are duplicated.', 'description' => 'The error message returned because a duplicate IP address is used for communication. Change the IP address and try again.'], + ['errorCode' => 'Forbidden.VbrNotAllowModifySiteLink', 'errorMessage' => 'Can not modify virtualBorderRouter site link, please call PD to authorize.', 'description' => ''], + ['errorCode' => 'OperationUnsupported.VirtualBorderRouterEnableIPv6', 'errorMessage' => 'The operation failed. The device or region does not support IPv6 functions.', 'description' => 'The operation failed because the device or region does not support IPv6.'], + ['errorCode' => 'OperationFailed.PconnAllocateVlan0', 'errorMessage' => 'Vlan 0 Vbr cannot share the physical connection with another Vbr.', 'description' => 'The operation failed because VLAN 0 is set to a VBR associated with the Express Connect circuit and you cannot set VLAN 0 to other VBRs.'], + ['errorCode' => 'IllegalParam.VlanId', 'errorMessage' => 'The parameter VlanId is illegal.', 'description' => 'The operation failed because VlanId is set to an invalid value.'], + ['errorCode' => 'OperationFailed.VbrLocked', 'errorMessage' => 'The VBR is locked.', 'description' => 'The border router is locked, please try again later.'], + ['errorCode' => 'IllegalParam.%s', 'errorMessage' => 'The param of %s is illegal.', 'description' => 'The parameter is invalid.'], + ['errorCode' => 'OperationDenied.NotInWhiteList', 'errorMessage' => 'User does not have permission to turn on jumbo frames.', 'description' => ''], + ['errorCode' => 'IncorrectStatus.Ecr', 'errorMessage' => 'The express connect router is not in a steady state and cannot operate.', 'description' => ''], + ['errorCode' => 'ResourceInConfiguring.NodeId', 'errorMessage' => 'The express connect router subinstance is not in a steady state and cannot operate.', 'description' => ''], + ['errorCode' => 'UnsupportedFeature.JumboFrame', 'errorMessage' => 'The jumbo frame feature is not supported in the current region.', 'description' => ''], + ], + 403 => [ + ['errorCode' => 'Forbidden.CircuitCodeNotAllowedByCaller', 'errorMessage' => 'The caller is not allowed to modify.', 'description' => ''], + ['errorCode' => 'Forbidden.LocalGatewayIpNotAllowedByCaller', 'errorMessage' => 'The caller is not allowed to specify the LocalGatewayIp parameter.', 'description' => ''], + ['errorCode' => 'Forbidden.PeerGatewayIpNotAllowedByCaller', 'errorMessage' => 'The caller is not allowed to specify the PeerGatewayIp parameter.', 'description' => ''], + ['errorCode' => 'Forbidden.PeeringSubnetMaskNotAllowedByCaller', 'errorMessage' => 'The caller is not allowed to specify the PeeringSubnetMask parameter.', 'description' => ''], + ['errorCode' => 'Forbidden.VlanIdNotAllowedByCaller', 'errorMessage' => 'The caller is not allowed to specify the VlanId.', 'description' => ''], + ['errorCode' => 'Forbidden.NameNotAllowedByCaller', 'errorMessage' => 'The caller is not allowed to specify the Name parameter.', 'description' => ''], + ['errorCode' => 'Forbidden.DescriptionNotAllowedByCaller', 'errorMessage' => 'The caller is not allowed to specify the Description parameter.', 'description' => ''], + ], [ - 'name' => 'LocalSubnet', + ['errorCode' => 'InvalidRegionId.NotFound', 'errorMessage' => 'The specified RegionId is not found.', 'description' => 'The specified region ID is invalid. Check whether the service is available in the specified region.'], + ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'Modify the configuration of a virtual border router (VBR)', + 'description' => '* **VlanId** can only be modified by the owner of the Express Connect circuit.'."\n" + ."\n" + .'* The same VLAN ID under the same Express Connect circuit cannot be used by two VBRs simultaneously.'."\n" + ."\n" + .'* A VBR in the **terminated** status retains its VLAN ID exclusively for 7 days, during which no other VBR can use it. After 7 days, the VLAN ID becomes available for other VBRs.'."\n" + ."\n" + .'* VBR instances owned by other accounts cannot configure **LocalGatewayIp**, **PeerGatewayIp**, or **PeeringSubnetMask**.'."\n" + ."\n" + .'* **PeeringSubnetMask** supports subnet masks from /24 to /30 (255.255.255.0 to 255.255.255.252).'."\n" + ."\n" + .'* **LocalGatewayIp** and **PeerGatewayIp** must belong to the same network segment. For example: LocalGatewayIp: 192.168.XX.XX, PeerGatewayIp: 192.168.XX.XX, PeeringSubnetMask: 255.255.255.248.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2025-03-19T10:32:29.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-06-28T02:56:12.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-05-08T02:53:52.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-01-04T01:43:50.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-12-26T12:30:41.000Z', 'description' => 'Error codes changed, Request parameters changed, Response parameters changed'], + ['createdAt' => '2021-07-30T09:21:18.000Z', 'description' => 'Error codes changed'], + ], + 'ramActions' => [], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"980960B0-2969-40BF-8542-EBB34FD358AB\\"\\n}","type":"json"}]', + 'translator' => 'machine', + ], + 'ModifyVpcAttribute' => [ + 'summary' => 'Modifies the name and description of a virtual private cloud (VPC).', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'readAndWrite', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'high', + 'chargeType' => 'free', + 'abilityTreeCode' => '37912', + 'abilityTreeNodes' => ['FEATUREvpcK3NXU2'], + ], + 'parameters' => [ + [ + 'name' => 'VpcId', + 'in' => 'query', + 'schema' => ['description' => 'The ID of the VPC that you want to modify.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'vpc-bp1qtbach57ywecf****', 'title' => ''], + ], + [ + 'name' => 'Description', + 'in' => 'query', + 'schema' => ['description' => 'The new description of the VPC.'."\n" + ."\n" + .'The description must be 1 to 256 characters in length, and cannot start with `http://` or `https://`.'."\n", 'type' => 'string', 'required' => false, 'example' => 'This is my VPC.', 'title' => ''], + ], + [ + 'name' => 'VpcName', + 'in' => 'query', + 'schema' => ['description' => 'The new name of the VPC.'."\n" + ."\n" + .'The name must be 1 to 128 characters in length and cannot start with `http://` or `https://`.'."\n", 'type' => 'string', 'required' => false, 'example' => 'Vpc-1', 'title' => ''], + ], + [ + 'name' => 'CidrBlock', + 'in' => 'query', + 'schema' => ['description' => 'The new IPv4 CIDR block of the VPC.'."\n" + ."\n" + .'You can specify a larger or smaller IPv4 CIDR block than the IPv4 CIDR block of the VPC. The subnet mask must be 8 to 28 bits in length. If you specify a smaller IPv4 CIDR block and existing IP addresses do not fall within the CIDR block, the modification fails.'."\n" + ."\n" + .'> If you modify the CIDR block of a VPC, your existing services are not affected.'."\n", 'type' => 'string', 'required' => false, 'example' => '192.168.0.0/24', 'title' => ''], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => ['description' => 'The region ID of the VPC.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou', 'title' => ''], + ], + [ + 'name' => 'EnableIPv6', + 'in' => 'query', + 'schema' => ['description' => 'Specifies whether to enable IPv6 CIDR blocks. Valid values:'."\n" + ."\n" + .'* **true**'."\n" + .'* **false** (default)'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], + ], + [ + 'name' => 'Ipv6CidrBlock', + 'in' => 'query', + 'schema' => ['description' => 'The IPv6 CIDR block of the VPC.'."\n", 'type' => 'string', 'required' => false, 'example' => '2408:XXXX:0:6a::/56', 'title' => ''], + ], + [ + 'name' => 'Ipv6Isp', + 'in' => 'query', + 'schema' => ['description' => 'The type of IPv6 CIDR block. Valid values:'."\n" + ."\n" + .'* **BGP** (default)'."\n" + .'* **ChinaMobile**'."\n" + .'* **ChinaUnicom**'."\n" + .'* **ChinaTelecom**'."\n" + ."\n" + .'> If your Alibaba Cloud account is allowed to activate single-ISP bandwidth, you can set this parameter to **ChinaTelecom**, **ChinaUnicom**, or **ChinaMobile**.'."\n", 'type' => 'string', 'required' => false, 'example' => 'BGP', 'title' => ''], + ], + [ + 'name' => 'EnableDnsHostname', 'in' => 'query', + 'schema' => ['description' => 'Specifies whether to enable the DNS hostname feature. Valid values:'."\n" + ."\n" + .'* **false** (default): disabled.'."\n" + .'* **true**: enabled.', 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => 'The CIDR block used to connect the virtual private cloud (VPC) to the data center. The CIDR block is used in Phase 2 negotiations.'."\n" - ."\n" - .'Separate multiple CIDR blocks with commas (,). Example: 192.168.1.0/24,192.168.2.0/24.'."\n" - ."\n" - .'The following routing modes are supported:'."\n" - ."\n" - .'* If you set **LocalSubnet** and **RemoteSubnet** to 0.0.0.0/0, the routing mode of the IPsec-VPN connection is set to Destination Routing Mode.'."\n" - .'* If you set **LocalSubnet** and **RemoteSubnet** to specific CIDR blocks, the routing mode of the IPsec-VPN connection is set to Protected Data Flows.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '10.1.1.0/24,10.1.2.0/24', + 'description' => 'The request ID.'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '43B72D30-25E1-4FA3-96A8-89374A521D1A', 'title' => ''], + ], + 'title' => '', + 'example' => '', ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'Forbidden.VpcNotFound', 'errorMessage' => 'Specified VPC does not exist.', 'description' => ''], + ['errorCode' => 'InvalidDescription.Malformed', 'errorMessage' => 'description not valid..', 'description' => ''], + ['errorCode' => 'InvalidVpcName.Malformed', 'errorMessage' => 'Specified VPC name is not valid.', 'description' => ''], + ['errorCode' => 'InvalidVpcDiscription.Malformed', 'errorMessage' => 'Specified VPC description is not valid.', 'description' => ''], + ['errorCode' => 'InvalidParameter', 'errorMessage' => 'Specified UserCidr invalid format.', 'description' => ''], + ['errorCode' => 'InvalidUserCidr.Quota', 'errorMessage' => 'Specified UserCidr number is greater than 3.', 'description' => ''], + ['errorCode' => 'InvalidUserCidr.Malformed', 'errorMessage' => 'Specified UserCidr overlapping in of 100.64.0.0/10.', 'description' => 'The user CIDR block that you specify overlaps with 100.64.0.0/10.'], + ['errorCode' => 'InvalidVpcId.NotFound', 'errorMessage' => 'Specified VPC name is not valid.', 'description' => ''], + ['errorCode' => 'IncorrectVpcStatus', 'errorMessage' => 'Current VPC status does not support this operation.', 'description' => ''], + ['errorCode' => 'IllegalCidrBlock', 'errorMessage' => 'Some subnet cidrBlock is not in the cidrBlock.', 'description' => ''], + ['errorCode' => 'InvalidRegion.Malformed', 'errorMessage' => 'Specified RegionId is not vaild.', 'description' => ''], + ['errorCode' => 'InvalidCidrBlock.Malformed', 'errorMessage' => 'Specified CIDR block is not valid.', 'description' => ''], + ['errorCode' => 'OperationUnsupported.DisableIpv6', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'OperationUnsupported.Ipv6Feature', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'ParamExclusive.EnableIpv6AndCidrBlock', 'errorMessage' => 'EnableIpv6 and CidrBlock is mutually exclusive.', 'description' => ''], + ['errorCode' => 'OperationFailed.ClassicLinkEnabled', 'errorMessage' => 'Operation failed because classicLink is enabled.', 'description' => ''], + ['errorCode' => 'OperationFailed.IpV6VSwitchInuse', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'OperationFailed.Ipv6GatewayInUse', 'errorMessage' => 'The IPv6 gateway is in use.', 'description' => 'You cannot modify the VPC attributes because the IPv6 gateway is in use.'], + ['errorCode' => 'OperationFailed.QueryCenIpv6Status', 'errorMessage' => 'Failed to query the IPv6 status of the specified VPC in CEN.', 'description' => 'The operation failed because the system failed to query the IPv6 status of the VPC that is attached to the CEN instance.'], + ['errorCode' => 'OperationUnsupported.CenIpv6Enabled', 'errorMessage' => 'The IPv6 feature is enabled in CEN.', 'description' => 'The IPv6 feature is already enabled for CEN.'], + ['errorCode' => 'UnsupportedFeature.Ipv6Isp', 'errorMessage' => 'The Ipv6Isp feature is not supported.', 'description' => 'The specified IPv6 ISP is not supported.'], + ['errorCode' => 'ResourceNotEnough.Ipv6Cidr', 'errorMessage' => 'The specified resource ipv6 cidr is not enough.', 'description' => 'Insufficient IPv6 CIDR block resources.'], + ['errorCode' => 'OperationFailed.IPv6CidrNotReserved', 'errorMessage' => 'The IPv6 CIDR block is not reserved.', 'description' => ''], + ['errorCode' => 'IllegalParam.Ipv6Cidr', 'errorMessage' => 'The specified Ipv6CidrBlock is invalid.', 'description' => 'Ipv6CidrBlock is set to an invalid value.'], + ['errorCode' => 'InvalidIpv6Instance.NotFound', 'errorMessage' => 'The specified resource of InvalidIpv6Instance is not found.', 'description' => 'The error message returned because the IPv6 resource is not found.'], + ['errorCode' => 'ExclusiveParam.EnableIpv6AndCidrBlock', 'errorMessage' => 'The param of EnableIpv6 and CidrBlock are mutually exclusive.', 'description' => 'The param of EnableIpv6 and CidrBlock are mutually exclusive.'], + ['errorCode' => 'UnsupportedFeature.VpcDnsHostname', 'errorMessage' => 'The feature of vpc dns hostname is unsupported.', 'description' => 'The VPC private domain name function does not take effect in the current region.'], + ['errorCode' => 'OperationFailed.Ipv6RouteEntryUsing', 'errorMessage' => 'VPC exist IPv6 Route Entry, cannot disable IPv6.', 'description' => 'The VPC has an IPv6 route, and IPv6 must not be disabled.'], + ['errorCode' => 'OperationFailed.ModifyVpcDnsHostname', 'errorMessage' => 'Operation failed because DnsHostName resource is in transient state, please try again later.', 'description' => 'dns domain name resource is unstable, please try again later.'], + ['errorCode' => 'IncorrectStatus.VpcDnsHostnameStatus', 'errorMessage' => 'The DnsHostname status of vpc does not support this operation.', 'description' => 'The private domain name status of the current VPC does not support this operation.'], + ['errorCode' => 'OperationFailed.ConflictWithSecondaryCidr', 'errorMessage' => 'The modified cidr is conflict with the secondary cidr.', 'description' => ''], + ], + 404 => [ + ['errorCode' => 'InvalidVpcId.NotFound', 'errorMessage' => 'Specified VPC does not exist.', 'description' => ''], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"43B72D30-25E1-4FA3-96A8-89374A521D1A\\"\\n}","type":"json"}]', + 'title' => 'ModifyVpcAttribute', + 'description' => '## [](#)Description'."\n" + ."\n" + .'You cannot repeatedly call the **ModifyVpcAttribute** operation to modify the name and description of a VPC within the specified period of time.'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2025-03-05T11:25:26.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2025-02-25T08:18:05.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2025-02-14T03:57:19.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2025-01-16T03:36:40.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-10-10T06:14:59.000Z', 'description' => 'Error codes changed, Request parameters changed'], + ['createdAt' => '2024-08-27T02:00:39.000Z', 'description' => 'Error codes changed, Request parameters changed'], + ['createdAt' => '2024-08-06T03:05:34.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-02-01T02:17:13.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-12-14T07:39:32.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-07-05T07:33:20.000Z', 'description' => 'Error codes changed'], + ], + 'ramActions' => [], + ], + 'ModifyVpcPrefixList' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'RemoteSubnet', + 'AK' => [], + ], + ], + 'operationType' => 'readAndWrite', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free'], + 'parameters' => [ + [ + 'name' => 'PrefixListId', + 'in' => 'query', + 'schema' => ['description' => 'The ID of the prefix list.'."\n", 'type' => 'string', 'required' => true, 'example' => 'pl-0b7hwu67****', 'title' => ''], + ], + [ + 'name' => 'PrefixListName', + 'in' => 'query', + 'schema' => ['description' => 'The new name of the prefix list.'."\n" + ."\n" + .'The name must be 1 to 128 characters in length, and cannot start with `http://` or `https://`.'."\n", 'type' => 'string', 'required' => false, 'example' => 'newname', 'title' => ''], + ], + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'You can use the client to generate the value, but you must make sure that it is unique among different requests. The token can contain only ASCII characters.'."\n" + ."\n" + .'> If you do not specify this parameter, the system uses **RequestId** as **ClientToken**. **RequestId** may be different for each API request.'."\n", 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-426655440000', 'title' => ''], + ], + [ + 'name' => 'DryRun', + 'in' => 'query', + 'schema' => ['description' => 'Specifies whether to only precheck the request. Valid values:'."\n" + ."\n" + .'* **true**: checks the request without performing the operation. The system prechecks the required parameters, request syntax, and limits. If the request fails the precheck, an error message is returned. If the request passes the precheck, the `DryRunOperation` error code is returned.'."\n" + .'* **false** (default): sends the request. If the request passes the check, a 2xx HTTP status code is returned and the operation is performed.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], + ], + [ + 'name' => 'AddPrefixListEntry', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => 'The CIDR block on the data center side. This CIDR block is used in Phase 2 negotiations.'."\n" - ."\n" - .'Separate multiple CIDR blocks with commas (,). Example: 192.168.3.0/24,192.168.4.0/24.'."\n" - ."\n" - .'The following routing modes are supported:'."\n" - ."\n" - .'* If you set **LocalSubnet** and **RemoteSubnet** to 0.0.0.0/0, the routing mode of the IPsec-VPN connection is set to Destination Routing Mode.'."\n" - .'* If you set **LocalSubnet** and **RemoteSubnet** to specific CIDR blocks, the routing mode of the IPsec-VPN connection is set to Protected Data Flows.'."\n", - 'type' => 'string', + 'description' => 'The information about CIDR blocks to be added to the prefix list.', + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'Cidr' => ['description' => 'The CIDR block to be added to the prefix list.'."\n" + ."\n" + .'> If the CIDR block already exists in the prefix list, you can only modify the description of the CIDR block by setting the **AddPrefixListEntry.N.Description** parameter.'."\n", 'type' => 'string', 'required' => false, 'example' => '172.16.0.0/12', 'title' => ''], + 'Description' => ['description' => 'The description of the CIDR block to be added to the prefix list.'."\n" + ."\n" + .'The description must be 1 to 128 characters in length, and cannot start with `http://` or `https://`.', 'type' => 'string', 'required' => false, 'example' => 'newcidr', 'title' => ''], + ], + 'required' => false, + 'title' => '', + 'example' => '', + ], 'required' => false, - 'example' => '10.2.1.0/24,10.2.2.0/24', + 'maxItems' => 1000, + 'title' => '', + 'example' => '', ], ], [ - 'name' => 'EffectImmediately', + 'name' => 'RemovePrefixListEntry', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => 'Specifies whether to immediately start IPsec negotiations after the configuration takes effect. Valid values:'."\n" - ."\n" - .'* **true**: immediately starts IPsec negotiations after the configuration takes effect.'."\n" - .'* **false**: IPsec negotiations start when inbound traffic is detected.'."\n", - 'type' => 'boolean', + 'description' => 'The information about CIDR blocks to be deleted to the prefix list.', + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'Cidr' => ['description' => 'The CIDR block that you want to delete from the prefix list.'."\n", 'type' => 'string', 'required' => false, 'example' => '192.168.0.0/16', 'title' => ''], + 'Description' => ['description' => 'The description of the CIDR block that you want to delete.'."\n", 'type' => 'string', 'required' => false, 'example' => 'cidr', 'title' => ''], + ], + 'required' => false, + 'title' => '', + 'example' => '', + ], 'required' => false, - 'example' => 'false', + 'maxItems' => 1000, + 'title' => '', + 'example' => '', ], ], [ - 'name' => 'IkeConfig', + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => ['description' => 'The region ID of the prefix list.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], + ], + [ + 'name' => 'PrefixListDescription', 'in' => 'query', + 'schema' => ['description' => 'The new description of the prefix list.'."\n" + ."\n" + .'The description must be 1 to 256 characters in length, and cannot start with `http://` or `https://`.'."\n", 'type' => 'string', 'required' => false, 'example' => 'newdescription', 'title' => ''], + ], + [ + 'name' => 'MaxEntries', + 'in' => 'query', + 'schema' => ['description' => 'The maximum number of CIDR blocks supported by the prefix list after the configuration of the prefix list is modified.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '20', 'title' => ''], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => 'This parameter is supported if you modify the configurations of an IPsec-VPN connection in single-tunnel mode.'."\n" - ."\n" - .'The configurations of Phase 1 negotiations:'."\n" - ."\n" - .'* **IkeConfig.Psk**: The pre-shared key that is used for identity authentication between the VPN gateway and the on-premises data center.'."\n" - ."\n" - .' * The key cannot contain space characters. The key must be 1 to 100 characters in length, and can contain digits, letters, and the following special characters: ``~!`@#$%^&*()_-+={}[]|;:\',.<>/?``'."\n" - .' * If you do not specify a pre-shared key, the system randomly generates a 16-bit string as the pre-shared key. You can call the [DescribeVpnConnection](~~2526951~~) operation to query the pre-shared key that is automatically generated by the system.'."\n" - ."\n" - .' > The pre-shared key of the IPsec-VPN connection must be the same as the authentication key of the on-premises data center. Otherwise, connections between the on-premises data center and the VPN gateway cannot be established.'."\n" - ."\n" - .'* **IkeConfig.IkeVersion**: the version of the Internet Key Exchange (IKE) protocol. Valid values: **ikev1** and **ikev2**.'."\n" - ."\n" - .' Compared with IKEv1, IKEv2 simplifies the security association (SA) negotiation process and provides better support for scenarios with multiple CIDR blocks.'."\n" - ."\n" - .'* **IkeConfig.IkeMode**: the negotiation mode of IKE. Valid values: **main** and **aggressive**.'."\n" - ."\n" - .' * **main:** This mode offers higher security during negotiations.'."\n" - .' * **aggressive:** This mode supports faster negotiations and a higher success rate.'."\n" - ."\n" - .'* **IkeConfig.IkeEncAlg**: the encryption algorithm that is used in Phase 1 negotiations.'."\n" - ."\n" - .' Valid values: **aes**, **aes192**, **aes256**, **des**, and **3des**.'."\n" - ."\n" - .'* **IkeConfig.IkeAuthAlg**: the authentication algorithm that is used in Phase 1 negotiations.'."\n" - ."\n" - .' Valid values: **md5**, **sha1**, **sha256**, **sha384**, and **sha512**.'."\n" - ."\n" - .'* **IkeConfig.IkePfs**: the Diffie-Hellman key exchange algorithm that is used in Phase 1 negotiations. Valid values: **group1**, **group2**, **group5**, and **group14**.'."\n" - ."\n" - .'* **IkeConfig.IkeLifetime**: the SA lifetime as a result of Phase 1 negotiations. Unit: seconds Valid values: **0 to 86400**.'."\n" - ."\n" - .'* **IkeConfig.LocalId**: the identifier of the VPN gateway. The identifier cannot exceed 100 characters in length and cannot contain space characters. The default value is the IP address of the VPN gateway.'."\n" - ."\n" - .'* **IkeConfig.RemoteId**: the identifier of the customer gateway. The identifier cannot exceed 100 characters in length and cannot contain space characters. The default value is the IP address of the customer gateway.', - 'type' => 'string', - 'required' => false, - 'example' => '{"Psk":"pgw6dy7d1i8i****","IkeVersion":"ikev1","IkeMode":"main","IkeEncAlg":"aes","IkeAuthAlg":"sha1","IkePfs":"group2","IkeLifetime":86400,"LocalId":"116.64.XX.XX","RemoteId":"139.18.XX.XX"}', + 'type' => 'object', + 'properties' => [ + 'PrefixListId' => ['description' => 'The ID of the prefix list.'."\n", 'type' => 'string', 'example' => 'pl-0b7hwu67****', 'title' => ''], + 'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B45', 'title' => ''], + ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'ResourceNotFound.PrefixList', 'errorMessage' => 'The specified resource of prefixList is not found.', 'description' => 'The prefix list does not exist.'], + ['errorCode' => 'OperationFailed.CidrCountExceedMaxCount', 'errorMessage' => 'The operation is failed because of cidrCountExceedMaxCount.', 'description' => ''], + ['errorCode' => 'OperationDenied.RemoveCountExceedExistCount', 'errorMessage' => 'The operation is not allowed because of remove-count exceed exist-count.', 'description' => ''], + ['errorCode' => 'DuplicatedParam.CidrBlock', 'errorMessage' => 'The param of cidrBlock is duplicated.', 'description' => 'The error message returned because a duplicate CIDR block is specified.'], + ['errorCode' => 'IllegalParam.CidrBlock', 'errorMessage' => 'The param of cidrBlock is illegal.', 'description' => 'The error message returned because the value of the cidrBlock parameter is invalid.'], + ['errorCode' => 'IllegalParam.CidrName', 'errorMessage' => 'The param of cidrName is illegal.', 'description' => ''], + ['errorCode' => 'OperationDenied.SystemPrefixList', 'errorMessage' => 'This is not allowed to operate system prefixList.', 'description' => ''], + ['errorCode' => 'OperationFailed.OperateShareResource', 'errorMessage' => 'This is not allowed to operate shared prefixList.', 'description' => ''], + ['errorCode' => 'IncorrectStatus.PrefixList', 'errorMessage' => 'The status of prefixList is incorrect.', 'description' => 'The prefix list is in an unstable state.'], + ['errorCode' => 'QuotaExceeded.PrefixListCidrCount', 'errorMessage' => 'The quota of prefixList entry maxEntry count is exceeded.', 'description' => 'The number of allowed routes exceeds the upper limit.'], + ['errorCode' => 'QuotaExceeded', 'errorMessage' => 'Route entry quota exceeded in associated route table.', 'description' => 'The maximum number of routes supported by the prefix list exceeds the maximum number of routes supported by the associated route table.'], + ['errorCode' => 'OperationDenied.QuotaExceededWithNetworkAcl', 'errorMessage' => 'If the prefix list increases MaxEntries, the quota for the maximum number of entries for the associated network ACL instance %s is exceeded.', 'description' => 'If the prefix list increases the maximum number of entries, the quota for the maximum number of entries for the associated network ACL instance is exceeded.'], + ['errorCode' => 'ServiceUnavailable', 'errorMessage' => 'The request has failed due to a temporary failure of the server.', 'description' => 'The request failed due to a temporary server error.'], + ], + ], + 'staticInfo' => ['returnType' => 'asynchronous', 'callback' => 'Vpc::2016-04-28::ListPrefixLists', 'callbackInterval' => 3000, 'maxCallbackTimes' => 10], + 'title' => 'ModifyVpcPrefixList', + 'summary' => 'Modifies the configuration of a prefix list.', + 'description' => '- **ModifyVpcPrefixList**接口属于异步接口,即系统返回一个请求ID,但该前缀列表实例的配置信息尚未修改成功,系统后台的修改任务仍在进行。您可以调用[ListPrefixLists](~~311535~~)查询前缀列表实例的状态。'."\n" + .' - 当前缀列表实例处于**Modifying**状态时,表示前缀列表实例的配置信息正在修改中。'."\n" + .' - 当前缀列表实例处于**Created**状态时,表示前缀列表实例的配置信息修改成功。'."\n" + .' - 前缀列表实例的配置信息修改成功后,您可以调用[GetVpcPrefixListAssociations](~~445478~~)接口查询前缀列表的关联关系来确定关联的资源是否使用的是修改后的CIDR地址块,当前缀列表的关联状态即**Status**参数取值为**Created**时,表示关联的资源使用的CIDR地址块为修改后的CIDR地址块。'."\n" + ."\n" + .'- **ModifyVpcPrefixList**接口不支持并发修改同一个前缀列表实例的配置信息。', + 'changeSet' => [ + ['createdAt' => '2022-07-18T12:44:59.000Z', 'description' => 'OpenAPI offline'], + ], + 'ramActions' => [], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"PrefixListId\\": \\"pl-0b7hwu67****\\",\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B45\\"\\n}","type":"json"}]', + 'translator' => 'manual', + ], + 'ModifyVpnAttachmentAttribute' => [ + 'summary' => 'Modifies the configuration of an IPsec-VPN connection.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'readAndWrite', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', 'tenantRelevance' => 'tenant'], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => ['description' => 'The ID of the region in which the IPsec-VPN connection is established.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'example' => 'cn-hangzhou', 'title' => ''], + ], + [ + 'name' => 'VpnConnectionId', + 'in' => 'query', + 'schema' => ['description' => 'The ID of the IPsec-VPN connection.'."\n", 'type' => 'string', 'required' => true, 'example' => 'vco-p0w5112fgnl2ihlmf****', 'title' => ''], + ], + [ + 'name' => 'Name', + 'in' => 'query', + 'schema' => ['description' => 'The name of the IPsec-VPN connection.'."\n" + ."\n" + .'The name must be 1 to 100 characters in length and cannot start with `http://` or `https://`.'."\n", 'type' => 'string', 'required' => false, 'example' => 'nametest', 'title' => ''], + ], + [ + 'name' => 'LocalSubnet', + 'in' => 'query', + 'schema' => ['description' => 'The CIDR block of the virtual private cloud (VPC) that communicates with the data center. The CIDR block is used in Phase 2 negotiations.'."\n" + ."\n" + .'Separate multiple CIDR blocks with commas (,). Example: 192.168.1.0/24,192.168.2.0/24.'."\n" + ."\n" + .'The following routing modes are supported:'."\n" + ."\n" + .'* If you set **LocalSubnet** and **RemoteSubnet** to 0.0.0.0/0, the routing mode of the IPsec-VPN connection is set to Destination Routing Mode.'."\n" + .'* If you set **LocalSubnet** and **RemoteSubnet** to specific CIDR blocks, the routing mode of the IPsec-VPN connection is set to Protected Data Flows.'."\n", 'type' => 'string', 'required' => false, 'example' => '10.1.1.0/24,10.1.2.0/24', 'title' => ''], + ], + [ + 'name' => 'RemoteSubnet', + 'in' => 'query', + 'schema' => ['description' => 'The CIDR block of the data center that communicates with the VPC. This CIDR block is used in Phase 2 negotiations.'."\n" + ."\n" + .'Separate multiple CIDR blocks with commas (,). Example: 192.168.3.0/24,192.168.4.0/24.'."\n" + ."\n" + .'The following routing modes are supported:'."\n" + ."\n" + .'* If you set **LocalSubnet** and **RemoteSubnet** to 0.0.0.0/0, the routing mode of the IPsec-VPN connection is set to Destination Routing Mode.'."\n" + .'* If you set **LocalSubnet** and **RemoteSubnet** to specific CIDR blocks, the routing mode of the IPsec-VPN connection is set to Protected Data Flows.'."\n", 'type' => 'string', 'required' => false, 'example' => '10.1.3.0/24,10.1.4.0/24', 'title' => ''], + ], + [ + 'name' => 'EffectImmediately', + 'in' => 'query', + 'schema' => ['description' => 'Specifies whether to immediately start IPsec negotiations after the configuration takes effect. Valid values:'."\n" + ."\n" + .'* **true**: immediately starts IPsec negotiations after the configuration is complete.'."\n" + .'* **false**: starts IPsec negotiations when inbound traffic is detected.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], + ], + [ + 'name' => 'IkeConfig', + 'in' => 'query', + 'schema' => ['description' => 'This parameter is supported if you modify the configurations of an IPsec-VPN connection in single-tunnel mode.'."\n" + ."\n" + .'The configuration of Phase 1 negotiations:'."\n" + ."\n" + .'* **IkeConfig.Psk**: The pre-shared key that is used for identity authentication between the Alibaba Cloud IPsec connection and the on-premises data center.'."\n" + ."\n" + .' * The key must be 1 to 100 characters in length, and can contain digits, and letters. The key cannot contain spaces. ``~!`@#$%^&*()_-+={}[]|;:\',.<>/?``'."\n" + .' * If you do not specify a pre-shared key, the system randomly generates a 16-bit string as the pre-shared key. You can call the [DescribeVpnConnection](~~120374~~) operation to query the pre-shared key that is automatically generated by the system.'."\n" + ."\n" + .' > The pre-shared key of the IPsec-VPN connection must be the same as the authentication key of the on-premises data center. Otherwise, connections between the on-premises data center and the VPN gateway cannot be established.'."\n" + ."\n" + .'* **IkeConfig.IkeVersion**: the version of the Internet Key Exchange (IKE) protocol. Valid values: **ikev1** and **ikev2**.'."\n" + ."\n" + .'* **IkeConfig.IkeMode**: the negotiation mode. Valid values: **main** and **aggressive**.'."\n" + ."\n" + .'* **IkeConfig.IkeEncAlg:** the encryption algorithm that is used in Phase 1 negotiations. Valid values: **aes**, **aes192**, **aes256**, **des**, and **3des**.'."\n" + ."\n" + .'* **IkeConfig.IkeAuthAlg**: the authentication algorithm that is used in Phase 1 negotiations. Valid values: **md5**, **sha1**, **sha256**, **sha384**, and **sha512**.'."\n" + ."\n" + .'* **IkeConfig.IkePfs**: the Diffie-Hellman key exchange algorithm that is used in Phase 1 negotiations. Valid values: **group1**, **group2**, **group5**, and **group14**.'."\n" + ."\n" + .'* **IkeConfig.IkeLifetime**: the SA lifetime as a result of Phase 1 negotiations. Unit: seconds. Valid values: **0** to **86400**.'."\n" + ."\n" + .'* **IkeConfig.LocalId**: the identifier on the Alibaba Cloud side. The identifier cannot exceed 100 characters in length and cannot contain spaces.'."\n" + ."\n" + .'* **IkeConfig.RemoteId**: the identifier of the data center. It cannot exceed 100 characters in length and cannot contain spaces.', 'type' => 'string', 'required' => false, 'example' => '{"Psk":"1234****","IkeVersion":"ikev1","IkeMode":"main","IkeEncAlg":"aes","IkeAuthAlg":"sha1","IkePfs":"group2","IkeLifetime":86400,"LocalId":"47.XX.XX.1","RemoteId":"47.XX.XX.2"}', 'title' => ''], + ], [ 'name' => 'IpsecConfig', 'in' => 'query', - 'schema' => [ - 'description' => 'You can specify this parameter if you modify the configuration of a single-tunnel IPsec-VPN connection.'."\n" - ."\n" - .'The configuration of Phase 2 negotiations:'."\n" - ."\n" - .'* **IpsecConfig.IpsecEncAlg**: the encryption algorithm that is used in Phase 2 negotiations.'."\n" - ."\n" - .' Valid values: **aes**, **aes192**, **aes256**, **des**, and **3des**.'."\n" - ."\n" - .'* **IpsecConfig. IpsecAuthAlg**: the authentication algorithm that is used in Phase 2 negotiations.'."\n" - ."\n" - .' Valid values: **md5**, **sha1**, **sha256**, **sha384**, and **sha512**.'."\n" - ."\n" - .'* **IpsecConfig. IpsecPfs**: the DH key exchange algorithm that is used in Phase 1 negotiations. If you specify this parameter, packets of all protocols are forwarded. Valid values: **disabled**, **group1**, **group2**, **group5**, and **group14**.'."\n" - ."\n" - .'* **IpsecConfig. IpsecLifetime:** the SA lifetime that is determined by Phase 2 negotiations. Unit: seconds. Valid values: **0 to 86400**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '{"IpsecEncAlg":"aes","IpsecAuthAlg":"sha1","IpsecPfs":"group2","IpsecLifetime":86400}', - ], + 'schema' => ['description' => 'This parameter is supported if you modify the configurations of an IPsec-VPN connection in single-tunnel mode.'."\n" + ."\n" + .'The configuration of Phase 2 negotiations:'."\n" + ."\n" + .'* **IpsecConfig.IpsecEncAlg:** the encryption algorithm that is used in Phase 2 negotiations. Valid values: **aes**, **aes192**, **aes256**, **des**, and **3des**.'."\n" + .'* **IpsecConfig. IpsecAuthAlg:** the authentication algorithm that is used in Phase 2 negotiations. Valid values: **md5**, **sha1**, **sha256**, **sha384**, and **sha512**.'."\n" + .'* **IpsecConfig. IpsecPfs:** the Diffie-Hellman key exchange algorithm that is used in Phase 2 negotiations. Valid values: **disabled**, **group1**, **group2**, **group5**, and **group14**.'."\n" + .'* **IkeConfig.IkeLifetime**: the SA lifetime determined by Phase 2 negotiations. Unit: seconds. Valid values: **0** to **86400**.'."\n", 'type' => 'string', 'required' => false, 'example' => '{"IpsecEncAlg":"aes","IpsecAuthAlg":"sha1","IpsecPfs":"group2","IpsecLifetime":86400}', 'title' => ''], + ], + [ + 'name' => 'BgpConfig', + 'in' => 'query', + 'schema' => ['description' => 'This parameter is supported if you modify the configurations of an IPsec-VPN connection in single-tunnel mode.'."\n" + ."\n" + .'BGP configuration:'."\n" + ."\n" + .'* **BgpConfig.EnableBgp**: specifies whether to enable BGP. Valid values:'."\n" + ."\n" + .' * **true**'."\n" + .' * **false**'."\n" + ."\n" + .'* **BgpConfig.LocalAsn**: the autonomous system number (ASN) on the Alibaba Cloud side. Valid values: **1** to **4294967295**.'."\n" + ."\n" + .' You can enter a value in two segments separated by a period (.). Each segment is 16 bits in length. Enter the number in each segment in decimal format.'."\n" + ."\n" + .' For example, if you enter 123.456, the ASN is 8061384. The ASN is calculated by using the following formula: 123 × 65536 + 456 = 8061384.'."\n" + ."\n" + .'* **BgpConfig.TunnelCidr**: The CIDR block of the IPsec tunnel. The CIDR block must fall into 169.254.0.0/16 and the mask of the CIDR block must be 30 bits in length. The CIDR block cannot be 169.254.0.0/30, 169.254.1.0/30, 169.254.2.0/30, 169.254.3.0/30, 169.254.4.0/30, 169.254.5.0/30, 169.254.6.0/30, or 169.254.169.252/30.'."\n" + ."\n" + .'* **LocalBgpIp**: the BGP address on the Alibaba Cloud side. It must be an IP address that falls within the CIDR block of the IPsec tunnel.'."\n" + ."\n" + .'> - Before you add BGP configurations, we recommend that you learn about how BGP works and the limits. For more information, see [Configure BGP dynamic routing](~~445767~~).'."\n" + .'> - We recommend that you use a private ASN to establish BGP connections to Alibaba Cloud. Refer to the relevant documentation for the private ASN range.', 'type' => 'string', 'required' => false, 'example' => '{"EnableBgp":"true","LocalAsn":"45104","TunnelCidr":"169.254.11.0/30","LocalBgpIp":"169.254.11.1"}', 'title' => ''], ], [ 'name' => 'HealthCheckConfig', 'in' => 'query', - 'schema' => [ - 'description' => 'You can specify this parameter if you modify the configuration of a single-tunnel IPsec-VPN connection.'."\n" - ."\n" - .'The health check configuration:'."\n" - ."\n" - .'* **HealthCheckConfig.enable**: specifies whether to enable health checks. Valid values: **true** and **false**.'."\n" - .'* **HealthCheckConfig.dip**: the destination IP address that is used for health checks.'."\n" - .'* **HealthCheckConfig.sip**: the source IP address that is used for health checks.'."\n" - .'* **HealthCheckConfig.interval**: the interval between two consecutive health checks. Unit: seconds.'."\n" - .'* **HealthCheckConfig.retry**: the maximum number of health check retries.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '{"enable":"true","dip":"192.168.1.1","sip":"10.1.1.1","interval":"3","retry":"3"}', - ], + 'schema' => ['description' => 'This parameter is supported if you modify the configurations of an IPsec-VPN connection in single-tunnel mode.'."\n" + ."\n" + .'The health check configurations:'."\n" + ."\n" + .'* **HealthCheckConfig.enable**: specifies whether to enable the health check feature. Valid values:'."\n" + ."\n" + .' * **true**'."\n" + .' * **false**'."\n" + ."\n" + .'* **HealthCheckConfig.dip**: the destination IP address configured for health checks. Specify the IP address of the data center with which the VPC can access through the IPsec-VPN connection.'."\n" + ."\n" + .'* **HealthCheckConfig.sip**: the source IP address configured for health checks. The IP address of the VPC with which the data center can access through the IPsec-VPN connection.'."\n" + ."\n" + .'* **HealthCheckConfig.interval**: the interval between two consecutive health checks. Unit: seconds.'."\n" + ."\n" + .'* **HealthCheckConfig.retry:** the maximum number of health check retries.'."\n" + ."\n" + .'* **HealthCheckConfig.Policy**: specifies whether to withdraw advertised routes when health checks fail. Valid values:'."\n" + ."\n" + .' * **revoke_route**'."\n" + .' * **reserve_route**'."\n", 'type' => 'string', 'required' => false, 'example' => '{"enable":"true","dip":"192.168.1.1","sip":"10.1.1.1","interval":"3","retry":"3","Policy": "revoke_route"}', 'title' => ''], ], [ 'name' => 'AutoConfigRoute', 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to automatically advertise routes. Valid values:'."\n" - ."\n" - .'* **true**'."\n" - .'* **false**'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], + 'schema' => ['description' => 'Specifies whether to automatically configure routes. Valid values:'."\n" + ."\n" + .'* **true**'."\n" + .'* **false**'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'true', 'title' => ''], ], [ 'name' => 'EnableDpd', 'in' => 'query', - 'schema' => [ - 'description' => 'You can specify this parameter if you modify the configuration of a single-tunnel IPsec-VPN connection.'."\n" - ."\n" - .'Specifies whether to enable the dead peer detection (DPD) feature. Valid values:'."\n" - ."\n" - .'* **true:**: enables the DPD feature. The initiator of the IPsec-VPN connection sends DPD packets to check the existence and availability of the peer. If no feedback is received from the peer within a specific period of time, the connection fails. Then, the ISAKMP SA, IPsec SA, and IPsec tunnel are deleted.'."\n" - .'* **false**: disables the DPD feature. The initiator of the IPsec-VPN connection does not send DPD packets.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], + 'schema' => ['description' => 'This parameter is supported if you modify the configurations of an IPsec-VPN connection in single-tunnel mode.'."\n" + ."\n" + .'Specifies whether to enable dead peer detection (DPD). Valid values:'."\n" + ."\n" + .'* **true**: enables DPD. The initiator of the IPsec-VPN connection sends DPD packets to check the existence and availability of the peer. If no feedback is received from the peer within the specified period of time, the connection fails. In this case, ISAKMP SA and IPsec SA are deleted, along with the security tunnel.'."\n" + .'* **false**: disables DPD. The initiator of the IPsec-VPN connection does not send DPD packets.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'true', 'title' => ''], ], [ 'name' => 'EnableNatTraversal', 'in' => 'query', - 'schema' => [ - 'description' => 'You can specify this parameter if you modify the configuration of a single-tunnel IPsec-VPN connection.'."\n" - ."\n" - .'Specifies whether to enable NAT traversal. Valid values:'."\n" - ."\n" - .'* **true** After NAT traversal is enabled, the initiator does not check the UDP ports during IKE negotiations and can automatically discover NAT gateway devices along the IPsec tunnel.'."\n" - .'* **false**'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], + 'schema' => ['description' => 'This parameter is supported if you modify the configurations of an IPsec-VPN connection in single-tunnel mode.'."\n" + ."\n" + .'Specifies whether to enable NAT traversal. Valid values:'."\n" + ."\n" + .'* **true**: enables NAT traversal. After NAT traversal is enabled, the initiator does not check the UDP ports during IKE negotiations and can automatically discover NAT gateway devices along the IPsec-VPN tunnel.'."\n" + .'* **false**: disables NAT traversal.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'true', 'title' => ''], ], [ - 'name' => 'BgpConfig', + 'name' => 'RemoteCaCert', 'in' => 'query', - 'schema' => [ - 'description' => 'This parameter is supported if you modify the configurations of an IPsec-VPN connection in single-tunnel mode.'."\n" - ."\n" - .'BGP configuration:'."\n" - ."\n" - .'* **BgpConfig.EnableBgp**: specifies whether to enable BGP. Valid values: **true** and **false**.'."\n" - ."\n" - .'* **BgpConfig.LocalAsn:** the autonomous system number (ASN) on the Alibaba Cloud side. Valid values: **1** to **4294967295**.'."\n" - ."\n" - .' You can enter a value in two segments separated by a period (.). Each segment is 16 bits in length. Enter the number in each segment in decimal format.'."\n" - ."\n" - .' For example, if you enter 123.456, the ASN is 8061384. The ASN is calculated by using the following formula: 123 × 65536 + 456 = 8061384.'."\n" - ."\n" - .'* **BgpConfig.TunnelCidr**: The CIDR block of the IPsec tunnel. The CIDR block must fall within 169.254.0.0/16 and the mask of the CIDR block must be 30 bits in length. The CIDR block cannot be 169.254.0.0/30, 169.254.1.0/30, 169.254.2.0/30, 169.254.3.0/30, 169.254.4.0/30, 169.254.5.0/30, 169.254.6.0/30, or 169.254.169.252/30.'."\n" - ."\n" - .' > The CIDR block of the IPsec tunnel for each IPsec-VPN connection on a VPN gateway must be unique.'."\n" - ."\n" - .'* **LocalBgpIp**: the BGP address on the Alibaba Cloud side. It must be an IP address that falls within the CIDR block of the IPsec tunnel.'."\n" - ."\n" - .'> - This parameter is required when the VPN gateway has dynamic BGP enabled.'."\n" - .'> - Before you add BGP configurations, we recommend that you learn about how BGP dynamic routing works and the limits. For more information, see [Configure BGP dynamic routing](~~2638220~~).'."\n" - .'> - We recommend that you use a private ASN to establish BGP connections to Alibaba Cloud. For information about the range of private ASNs, see the relevant documentation.', - 'type' => 'string', - 'required' => false, - 'example' => '{"EnableBgp":"true","LocalAsn":"65530","TunnelCidr":"169.254.11.0/30","LocalBgpIp":"169.254.11.1"}', - ], + 'schema' => ['type' => 'string', 'required' => false, 'description' => 'The peer CA certificate when a ShangMi (SM) VPN gateway is used to create the IPsec-VPN connection.'."\n", 'example' => '-----BEGIN CERTIFICATE----- MIIB7zCCAZW**** -----END CERTIFICATE-----', 'title' => ''], ], [ - 'name' => 'RemoteCaCertificate', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'You can specify this parameter if you modify the configuration of a single-tunnel IPsec-VPN connection.'."\n" - ."\n" - .'If the VPN gateway uses a ShangMi (SM) certificate, you can modify the CA certificate used by the IPsec peer.'."\n" - ."\n" - .'If the VPN gateway does not use an SM certificate, you cannot specify this parameter.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '-----BEGIN CERTIFICATE----- MIIB7zCCAZW**** -----END CERTIFICATE-----', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'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.'."\n" + ."\n" + .'> If you do not specify this parameter, the system automatically uses the value of **RequestId** as the value of **ClientToken**. The **request ID** may be different for each request.'."\n", 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-4266****', 'title' => ''], + ], + [ + 'name' => 'NetworkType', + 'in' => 'query', + 'schema' => ['description' => 'The network type of the IPsec-VPN connection. Valid values:'."\n" + ."\n" + .'* **public**: an encrypted connection over the Internet'."\n" + .'* **private**: an encrypted connection over private networks'."\n", 'type' => 'string', 'required' => false, 'example' => 'public', 'title' => ''], + ], + [ + 'name' => 'CustomerGatewayId', + 'in' => 'query', + 'schema' => ['description' => 'The customer gateways to be associated with the IPsec-VPN connections.'."\n" + ."\n" + .'> Only single-tunnel IPsec-VPN connections support this parameter.'."\n", 'type' => 'string', 'required' => false, 'example' => 'cgw-p0w2jemrcj5u61un8****', 'title' => ''], ], [ 'name' => 'TunnelOptionsSpecification', @@ -69474,378 +53315,830 @@ 'schema' => [ 'description' => 'The tunnel configurations.'."\n" ."\n" - .'You can specify parameters in the **TunnelOptionsSpecification** array when you modify the configurations of an IPsec-VPN connection in dual-tunnel mode. You can modify the configurations of both the active and standby tunnels of the IPsec-VPN connection.'."\n", + .'You can specify parameters in the **TunnelOptionsSpecification** array when you modify the configurations of an IPsec-VPN connection in dual-tunnel mode. You can modify the configurations of the two tunnels of the IPsec-VPN connection.'."\n", 'type' => 'array', 'items' => [ - 'description' => 'The tunnel configurations.'."\n", + 'description' => 'The tunnel configuration.'."\n", 'type' => 'object', 'properties' => [ - 'TunnelId' => [ - 'description' => 'The tunnel ID.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'tun-opsqc4d97wni27****', - ], - 'CustomerGatewayId' => [ - 'description' => 'The ID of the customer gateway associated with the tunnel.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'cgw-1nmwbpgrp7ssqm1yn****', - ], - 'Role' => [ - 'description' => 'The tunnel role. Valid values:'."\n" - ."\n" - .'* **master**: The tunnel is an active tunnel.'."\n" - .'* **slave**: The tunnel is a standby tunnel.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'master', - ], - 'EnableDpd' => [ - 'description' => 'Specifies whether to enable the Dead Peer Detection (DPD) feature for the tunnel. Valid values:'."\n" - ."\n" - .'* **true**: enables DPD. The initiator of the IPsec-VPN connection sends DPD packets to check the existence and availability of the peer. If no feedback is received from the peer within the specified period of time, the connection fails. In this case, ISAKMP SA and IPsec SA are deleted. The security tunnel is also deleted.'."\n" - .'* **false**: disables DPD. The initiator of the IPsec-VPN connection does not send DPD packets.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], - 'EnableNatTraversal' => [ - 'description' => 'Specifies whether to enable NAT traversal for the tunnel. Valid values:'."\n" - ."\n" - .'* **true**: enables NAT traversal. After NAT traversal is enabled, the initiator does not check the UDP ports during IKE negotiations and can automatically discover NAT gateway devices along the IPsec-VPN tunnel.'."\n" - .'* **false**: disables NAT traversal.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], - 'RemoteCaCertificate' => [ - 'description' => 'If the VPN gateway uses an SM certificate, you can modify the CA certificate used by the IPsec peer.'."\n" - ."\n" - .'If the VPN gateway does not use an SM certificate, this parameter is not supported.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '-----BEGIN CERTIFICATE----- MIIB7zCCAZW**** -----END CERTIFICATE-----', - ], + 'TunnelId' => ['description' => 'The tunnel ID.'."\n", 'type' => 'string', 'required' => false, 'example' => 'tun-0jod7plwf2a0o9lvu****', 'title' => ''], + 'CustomerGatewayId' => ['description' => 'The ID of the customer gateway that is associated with the tunnel.'."\n" + ."\n" + .'> This parameter is only supported in dual-tunnel IPsec-VPN connections.'."\n", 'type' => 'string', 'required' => false, 'example' => 'cgw-p0w2jemrcj5u61un8****', 'title' => ''], + 'TunnelIndex' => ['description' => 'The order in which the tunnel was created.'."\n" + ."\n" + .'* **1**: Tunnel 1.'."\n" + .'* **2**: Tunnel 2.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1', 'title' => ''], + 'EnableDpd' => ['description' => 'Specifies whether to enable the Dead Peer Detection (DPD) feature for the tunnel. Valid values:'."\n" + ."\n" + .'* **true**: enables DPD. The initiator of the IPsec-VPN connection sends DPD packets to check the existence and availability of the peer. If no feedback is received from the peer within the specified period of time, the connection fails. In this case, ISAKMP SA and IPsec SA are deleted along with the security tunnel.'."\n" + .'* **false**: disables DPD. The initiator of the IPsec-VPN connection does not send DPD packets.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'true', 'title' => ''], + 'EnableNatTraversal' => ['description' => 'Specifies whether to enable NAT traversal for the tunnel. Valid values:'."\n" + ."\n" + .'* **true**: enables NAT traversal. After NAT traversal is enabled, the initiator does not check the UDP ports during IKE negotiations and can automatically discover NAT gateway devices along the IPsec-VPN tunnel.'."\n" + .'* **false**: disables NAT traversal.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'true', 'title' => ''], 'TunnelBgpConfig' => [ - 'description' => 'The Border Gateway Protocol (BGP) configurations of the tunnel.'."\n", + 'description' => 'Add BGP configurations for the tunnel.'."\n" + ."\n" + .'> If you enable BGP for an IPsec-VPN connection, you must set **EnableTunnelsBgp** parameter to **true**.'."\n", 'type' => 'object', 'properties' => [ - 'LocalAsn' => [ - 'description' => 'The ASN of the tunnel on the Alibaba Cloud side. Valid values: **1** to **4294967295**. Default value: **45104**.'."\n" - ."\n" - .'> You can specify this parameter only if **EnableTunnelsBgp** is set to **true**.'."\n" - ."\n" - .'* Before you add BGP configurations, we recommend that you learn about how BGP dynamic routing works and the limits. For more information, see [Configure BGP dynamic routing](~~2638220~~).'."\n" - ."\n" - .'* We recommend that you use a private ASN to establish BGP connections to Alibaba Cloud. For information about the range of private ASNs, see the relevant documentation.', - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '65530', - ], - 'LocalBgpIp' => [ - 'description' => 'The BGP IP address of the tunnel on the Alibaba Cloud side. The address is an IP address that falls within the BGP CIDR block.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '169.254.10.1', - ], - 'TunnelCidr' => [ - 'description' => 'The BGP CIDR block of the tunnel.'."\n" - ."\n" - .'The CIDR block must fall within 169.254.0.0/16 and the mask of the CIDR block must be 30 bits in length. The CIDR block cannot be 169.254.0.0/30, 169.254.1.0/30, 169.254.2.0/30, 169.254.3.0/30, 169.254.4.0/30, 169.254.5.0/30, 169.254.6.0/30, or 169.254.169.252/30.'."\n" - ."\n" - .'> The BGP CIDR block of each tunnel must be unique on a VPN gateway.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '169.254.10.0/30', - ], + 'LocalAsn' => ['description' => 'The autonomous system number (ASN) of the tunnel on the Alibaba Cloud side. Valid values: **1** to **4294967295**. Default value: **45104**.'."\n" + ."\n" + .'> We recommend that you use a private ASN to establish BGP connections to Alibaba Cloud. Refer to the relevant documentation for the private ASN range.'."\n", 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '65530', 'title' => ''], + 'LocalBgpIp' => ['description' => 'The BGP IP address of the tunnel on the Alibaba Cloud side. The address is an IP address that falls within the BGP CIDR block.'."\n", 'type' => 'string', 'required' => false, 'example' => '169.254.10.1', 'title' => ''], + 'TunnelCidr' => ['description' => 'The BGP CIDR block of the tunnel. The CIDR block must fall within 169.254.0.0/16 and the mask of the CIDR block must be 30 bits in length. The CIDR block cannot be 169.254.0.0/30, 169.254.1.0/30, 169.254.2.0/30, 169.254.3.0/30, 169.254.4.0/30, 169.254.5.0/30, 169.254.6.0/30, or 169.254.169.252/30.'."\n" + ."\n" + .'> The two tunnels of an IPsec connection must use different CIDR blocks.'."\n", 'type' => 'string', 'required' => false, 'example' => '169.254.10.0/30', 'title' => ''], ], 'required' => false, + 'title' => '', + 'example' => '', ], 'TunnelIkeConfig' => [ - 'description' => 'The configurations of Phase 1 negotiations.'."\n", + 'description' => 'The configuration of Phase 1 negotiations.'."\n", 'type' => 'object', 'properties' => [ - 'IkeAuthAlg' => [ - 'description' => 'The authentication algorithm that is used in Phase 1 negotiations.'."\n" - ."\n" - .'Valid values: **md5**, **sha1**, **sha256**, **sha384**, and **sha512**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'md5', - ], - 'IkeEncAlg' => [ - 'description' => 'The encryption algorithm that is used in Phase 1 negotiations.'."\n" - ."\n" - .'Valid values: **aes**, **aes192**, **aes256**, **des**, and **3des**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'aes', - ], - 'IkeLifetime' => [ - 'description' => 'The SA lifetime as a result of Phase 1 negotiations. Unit: seconds Valid values: **0** to **86400**.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '86400', - ], - 'IkeMode' => [ - 'description' => 'The negotiation mode of IKE. Valid values:'."\n" - ."\n" - .'* **main:** This mode offers higher security during negotiations.'."\n" - .'* **aggressive:** This mode supports faster negotiations and a higher success rate.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'main', - ], - 'IkePfs' => [ - 'description' => 'The Diffie-Hellman key exchange algorithm that is used in Phase 1 negotiations. Valid values: **group1**, **group2**, **group5**, and **group14**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'group2', - ], - 'IkeVersion' => [ - 'description' => 'The version of the IKE protocol. Valid values: **ikev1** and **ikev2**.'."\n" - ."\n" - .'Compared with IKEv1, IKEv2 simplifies the SA negotiation process and provides better support for scenarios with multiple CIDR blocks.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'ikev1', - ], - 'LocalId' => [ - 'description' => 'The identifier on the Alibaba Cloud side, which is used in Phase 1 negotiations. The identifier cannot exceed 100 characters in length and cannot contain space characters. The default value is the IP address of the tunnel.'."\n" - ."\n" - .'**LocalId** supports fully qualified domain names (FQDNs). If you use an FQDN, we recommend that you set the negotiation mode to **aggressive**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '47.21.XX.XX', - ], - 'Psk' => [ - 'description' => 'The pre-shared key, which is used for identity authentication between the tunnel and the tunnel peer.'."\n" - ."\n" - .'* The key cannot contain space characters. The key must be 1 to 100 characters in length, and can contain digits, letters, and the following special characters: ``~!\\`@#$%^&*()_-+={}[]|;:\',.<>/?``'."\n" - .'* If you do not specify a pre-shared key, the system randomly generates a 16-bit string as the pre-shared key. You can call the [DescribeVpnConnection](~~2526951~~) operation to query the pre-shared key that is automatically generated by the system.'."\n" - ."\n" - .'> The tunnel and the tunnel peer must use the same pre-shared key. Otherwise, the tunnel cannot be built.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '123456****', - ], - 'RemoteId' => [ - 'description' => 'The identifier of the tunnel peer, which is used in Phase 1 negotiations. The identifier cannot exceed 100 characters in length and cannot contain space characters. The default value is the IP address of the customer gateway that is associated with the tunnel.'."\n" - ."\n" - .'**RemoteId** supports FQDNs. If you use an FQDN, we recommend that you set the negotiation mode to **aggressive**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '47.42.XX.XX', - ], + 'IkeAuthAlg' => ['description' => 'The authentication algorithm that is used in Phase 1 negotiations. Valid values: **md5**, **sha1**, **sha256**, **sha384**, and **sha512**.'."\n", 'type' => 'string', 'required' => false, 'example' => 'sha1', 'title' => ''], + 'IkeEncAlg' => ['description' => 'The encryption algorithm that is used in Phase 1 negotiations. Valid values: **aes**, **aes192**, **aes256**, **des**, and **3des**.'."\n", 'type' => 'string', 'required' => false, 'example' => 'aes', 'title' => ''], + 'IkeLifetime' => ['description' => 'The SA lifetime as a result of Phase 1 negotiations. Unit: seconds.'."\n" + ."\n" + .'Valid values: **0** to **86400**.'."\n", 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '86400', 'title' => ''], + 'IkeMode' => ['description' => 'The negotiation mode of IKE. Valid values: **main** and **aggressive**.'."\n" + ."\n" + .'* **main:** This mode offers higher security during negotiations.'."\n" + .'* **aggressive**: This mode is faster with a higher success rate.'."\n", 'type' => 'string', 'required' => false, 'example' => 'main', 'title' => ''], + 'IkePfs' => ['description' => 'The Diffie-Hellman key exchange algorithm that is used in Phase 1 negotiations. Valid values: **group1**, **group2**, **group5**, and **group14**.'."\n", 'type' => 'string', 'required' => false, 'example' => 'group2', 'title' => ''], + 'IkeVersion' => ['description' => 'The version of the IKE protocol. Valid values: **ikev1** and **ikev2**.'."\n" + ."\n" + .'Compared with IKEv1, IKEv2 simplifies the SA negotiation process and provides better support for scenarios with multiple CIDR blocks.'."\n", 'type' => 'string', 'required' => false, 'example' => 'ikev2', 'title' => ''], + 'LocalId' => ['description' => 'The identifier of the tunnel on the Alibaba Cloud side, which is used in Phase 1 negotiations. The identifier cannot exceed 100 characters in length and cannot contain spaces.'."\n" + ."\n" + .'**LocalId** supports fully qualified domain names (FQDNs). If you use an FQDN, we recommend that you set the negotiation mode to **aggressive**.'."\n", 'type' => 'string', 'required' => false, 'example' => '47.XX.XX.1', 'title' => ''], + 'Psk' => ['description' => 'The pre-shared key that is used for identity authentication between the tunnel and the tunnel peer.'."\n" + ."\n" + .'* The key must be 1 to 100 characters in length, and can contain digits, and letters. The key cannot contain spaces. ``~!\\`@#$%^&*()_-+={}[]|;:\',.<>/?``'."\n" + .'* If you do not specify a pre-shared key, the system randomly generates a 16-bit string as the pre-shared key. You can call the [DescribeVpnAttachments](~~2526939~~) operation to query the pre-shared key that is automatically generated by the system.'."\n" + ."\n" + .'> The tunnel and the tunnel peer must use the same pre-shared key. Otherwise, the tunnel cannot be established.'."\n", 'type' => 'string', 'required' => false, 'example' => '123456****', 'title' => ''], + 'RemoteId' => ['description' => 'The identifier of the tunnel peer, which is used in Phase 1 negotiations. The identifier cannot exceed 100 characters in length and cannot contain spaces.'."\n" + ."\n" + .'**RemoteId** supports FQDNs. If you use an FQDN, we recommend that you set the negotiation mode to **aggressive**.'."\n", 'type' => 'string', 'required' => false, 'example' => '47.XX.XX.2', 'title' => ''], ], 'required' => false, + 'title' => '', + 'example' => '', ], 'TunnelIpsecConfig' => [ - 'description' => 'The configurations of Phase 2 negotiations.'."\n", + 'description' => 'The configuration of Phase 2 negotiations.'."\n", 'type' => 'object', 'properties' => [ - 'IpsecAuthAlg' => [ - 'description' => 'The authentication algorithm that is used in Phase 2 negotiations.'."\n" - ."\n" - .'Valid values: **md5**, **sha1**, **sha256**, **sha384**, and **sha512**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'md5', - ], - 'IpsecEncAlg' => [ - 'description' => 'The encryption algorithm that is used in Phase 2 negotiations.'."\n" - ."\n" - .'Valid values: **aes**, **aes192**, **aes256**, **des**, and **3des**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'aes', - ], - 'IpsecLifetime' => [ - 'description' => 'The SA lifetime as a result of Phase 2 negotiations. Unit: seconds Valid values: **0** to **86400**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '86400', - ], - 'IpsecPfs' => [ - 'description' => 'The Diffie-Hellman key exchange algorithm that is used in Phase 2 negotiations.'."\n" - ."\n" - .'Valid values: **disabled**, **group1**, **group2**, **group5**, and **group14**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'group2', - ], + 'IpsecAuthAlg' => ['description' => 'The authentication algorithm that is used in Phase 2 negotiations.'."\n" + ."\n" + .'Valid values: **md5**, **sha1**, **sha256**, **sha384**, and **sha512**.'."\n", 'type' => 'string', 'required' => false, 'example' => 'sha1', 'title' => ''], + 'IpsecEncAlg' => ['description' => 'The encryption algorithm that is used in Phase 2 negotiations. Valid values: **aes**, **aes192**, **aes256**, **des**, and **3des**.'."\n", 'type' => 'string', 'required' => false, 'example' => 'aes', 'title' => ''], + 'IpsecLifetime' => ['description' => 'The SA lifetime as a result of Phase 2 negotiations. Unit: seconds.'."\n" + ."\n" + .'Valid values: **0** to **86400**.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '86400', 'title' => ''], + 'IpsecPfs' => ['description' => 'The Diffie-Hellman key exchange algorithm that is used in Phase 2 negotiations.'."\n" + ."\n" + .'Valid values: **disabled**, **group1**, **group2**, **group5**, and **group14**.'."\n", 'type' => 'string', 'required' => false, 'example' => 'group2', 'title' => ''], ], 'required' => false, + 'title' => '', + 'example' => '', ], ], 'required' => false, + 'title' => '', + 'example' => '', ], 'required' => false, + 'title' => '', + 'example' => '', ], ], [ 'name' => 'EnableTunnelsBgp', 'in' => 'query', 'allowEmptyValue' => true, - 'schema' => [ - 'description' => 'You can specify this parameter if you modify the configuration of a dual-tunnel IPsec-VPN connection.'."\n" - ."\n" - .'Specifies whether to enable BGP for the tunnel. Valid values: **true** and **false**.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], + 'schema' => ['description' => 'You can specify this parameter if you modify the configuration of a dual-tunnel IPsec-VPN connection.'."\n" + ."\n" + .'Specifies whether to enable the BGP feature for the tunnel. Valid values: **true** and **false**.'."\n" + ."\n" + .'> Before you add BGP configurations, we recommend that you learn about how BGP works and the limits. For more information, see [Configure BGP dynamic routing](~~445767~~).'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => 'The returned data.'."\n", - 'type' => 'object', + 'title' => 'PlainResponse4OpenApi', + 'description' => 'The response parameters.'."\n", + 'type' => 'object', 'properties' => [ - 'EnableNatTraversal' => [ - 'description' => 'Indicates whether NAT traversal is enabled for the IPsec-VPN connection. Valid values: Valid values:'."\n" - ."\n" - .'* **false**'."\n" - .'* **true**'."\n" + 'VpnConnectionId' => ['description' => 'The ID of the IPsec-VPN connection.'."\n", 'type' => 'string', 'example' => 'vco-p0w5112fgnl2ihlmf****', 'title' => ''], + 'CustomerGatewayId' => ['description' => 'The ID of the customer gateway associated with the IPsec-VPN connection.'."\n" + ."\n" + .'This parameter is returned only for single-tunnel IPsec-VPN connections.'."\n", 'type' => 'string', 'example' => 'cgw-p0w2jemrcj5u61un8****', 'title' => ''], + 'VpnGatewayId' => ['description' => 'The ID of the VPN gateway that is associated with the IPsec-VPN connection.'."\n" + ."\n" + .'**vpn-not-exist**: The IPsec-VPN connection is not associated with a VPN Gateway.'."\n", 'type' => 'string', 'example' => 'vpn-not-exist', 'title' => ''], + 'Name' => ['description' => 'The name of the IPsec-VPN connection.'."\n", 'type' => 'string', 'example' => 'nametest', 'title' => ''], + 'Description' => ['description' => 'The description of the IPsec-VPN connection.'."\n", 'type' => 'string', 'example' => 'desctest', 'title' => ''], + 'LocalSubnet' => ['description' => 'The CIDR block on the Alibaba Cloud side that communicates with the on-premises data center is required, such as CIDR blocks of VPCs.'."\n", 'type' => 'string', 'example' => '10.1.1.0/24,10.1.2.0/24', 'title' => ''], + 'RemoteSubnet' => ['description' => 'The CIDR block of the on-premises data center that communicates with Alibaba Cloud is required.'."\n", 'type' => 'string', 'example' => '10.1.3.0/24,10.1.4.0/24', 'title' => ''], + 'IkeConfig' => [ + 'description' => 'The configuration of Phase 1 negotiations.'."\n" ."\n" - .'This parameter is returned only for single-tunnel IPsec-VPN connections.'."\n", - 'type' => 'boolean', - 'example' => 'true', + .'**IkeConfig** parameters are returned only for single-tunnel IPsec-VPN connections.'."\n", + 'type' => 'object', + 'properties' => [ + 'Psk' => ['description' => 'Enter a pre-shared key that is used for identity authentication between Alibaba Cloud and the data center.'."\n" + ."\n" + .'> The pre-shared key of the IPsec-VPN connection must be the same as the authentication key of the on-premises data center. Otherwise, connections between the on-premises data center and Alibaba Cloud cannot be established.', 'type' => 'string', 'example' => '1234***', 'title' => ''], + 'IkeVersion' => ['description' => 'The version of the IKE protocol.'."\n" + ."\n" + .'* **ikev1**'."\n" + .'* **ikev2**'."\n" + ."\n" + .'Compared with IKEv1, IKEv2 simplifies the SA negotiation process and provides better support for scenarios with multiple CIDR blocks.'."\n", 'type' => 'string', 'example' => 'ikev1', 'title' => ''], + 'IkeMode' => ['description' => 'The IKE negotiation mode.'."\n" + ."\n" + .'* **main:** This mode offers higher security during negotiations.'."\n" + .'* **aggressive**: This mode is faster with a higher success rate.'."\n", 'type' => 'string', 'example' => 'main', 'title' => ''], + 'IkeEncAlg' => ['description' => 'The encryption algorithm that is used in Phase 1 negotiations.'."\n", 'type' => 'string', 'example' => 'aes', 'title' => ''], + 'IkeAuthAlg' => ['description' => 'The authentication algorithm that is used in Phase 1 negotiations.'."\n", 'type' => 'string', 'example' => 'sha1', 'title' => ''], + 'IkePfs' => ['description' => 'The DH key exchange algorithm that is used in Phase 1 negotiations.'."\n", 'type' => 'string', 'example' => 'group2', 'title' => ''], + 'IkeLifetime' => ['description' => 'The SA lifetime that is determined by Phase 1 negotiations. Unit: seconds.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '86400', 'title' => ''], + 'LocalId' => ['description' => 'The identifier of the IPsec-VPN connection on the Alibaba Cloud side.'."\n", 'type' => 'string', 'example' => '47.XX.XX.1', 'title' => ''], + 'RemoteId' => ['description' => 'The identifier of the IPsec-VPN connection on the data center side.'."\n", 'type' => 'string', 'example' => '47.XX.XX.2', 'title' => ''], + ], + 'title' => '', + 'example' => '', ], - 'CreateTime' => [ - 'description' => 'The timestamp generated when the IPsec-VPN connection was established. Unit: milliseconds.'."\n" + 'IpsecConfig' => [ + 'description' => 'The configuration of Phase 2 negotiations.'."\n" ."\n" - .'This value is a UNIX timestamp representing the number of milliseconds that have elapsed since the epoch time January 1, 1970, 00:00:00 UTC.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1492753817000', + .'**IpsecConfig** parameters are returned only for single-tunnel IPsec-VPN connections.'."\n", + 'type' => 'object', + 'properties' => [ + 'IpsecEncAlg' => ['description' => 'The encryption algorithm that is used in Phase 2 negotiations.'."\n", 'type' => 'string', 'example' => 'aes', 'title' => ''], + 'IpsecAuthAlg' => ['description' => 'The authentication algorithm that is used in Phase 2 negotiations.'."\n", 'type' => 'string', 'example' => 'md5', 'title' => ''], + 'IpsecPfs' => ['description' => 'The DH key exchange algorithm that is used in Phase 2 negotiations.'."\n", 'type' => 'string', 'example' => 'group2', 'title' => ''], + 'IpsecLifetime' => ['description' => 'The SA lifetime that is determined by Phase 2 negotiations. Unit: seconds.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '86400', 'title' => ''], + ], + 'title' => '', + 'example' => '', ], - 'EffectImmediately' => [ - 'description' => 'Indicates whether IPsec negotiations immediately start after the configuration takes effect. Valid values:'."\n" + 'CreateTime' => ['description' => 'The timestamp generated when the IPsec-VPN connection was established. Unit: milliseconds.'."\n" + ."\n" + .'This value is a UNIX timestamp representing the number of milliseconds that have elapsed since the epoch time January 1, 1970, 00:00:00 UTC.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '1658201810000', 'title' => ''], + 'EffectImmediately' => ['description' => 'Indicates whether IPsec negotiations immediately start after the configuration takes effect. Valid values:'."\n" + ."\n" + .'* **true**'."\n" + .'* **false**'."\n", 'type' => 'boolean', 'example' => 'false', 'title' => ''], + 'Status' => ['description' => 'The state of the IPsec-VPN connection. Valid values:'."\n" + ."\n" + .'* **ike_sa_not_established**: Phase 1 negotiations failed.'."\n" + .'* **ike_sa_established**: Phase 1 negotiations succeeded.'."\n" + .'* **ipsec_sa_not_established**: Phase 2 negotiations failed.'."\n" + .'* **ipsec_sa_established**: Phase 2 negotiations succeeded.'."\n", 'type' => 'string', 'example' => 'ike_sa_not_established', 'title' => ''], + 'VcoHealthCheck' => [ + 'description' => 'The health check configurations of the IPsec-VPN connection.'."\n" ."\n" - .'* **true**: IPsec negotiations immediately start after the configuration takes effect.'."\n" - .'* **false**: IPsec negotiations start when inbound traffic is detected.'."\n", - 'type' => 'boolean', - 'example' => 'false', - ], - 'VpnGatewayId' => [ - 'description' => 'The ID of the VPN gateway.'."\n", - 'type' => 'string', - 'example' => 'vpn-bp1q8bgx4xnkm2ogj****', - ], - 'LocalSubnet' => [ - 'description' => 'The CIDR block on the VPC side.'."\n", - 'type' => 'string', - 'example' => '10.1.1.0/24,10.1.2.0/24', - ], - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '7DB79D0C-5F27-4AB5-995B-79BE55102F90', - ], - 'VpnConnectionId' => [ - 'description' => 'The ID of the IPsec-VPN connection.'."\n", - 'type' => 'string', - 'example' => 'vco-bp1bbi27hojx80nck****', - ], - 'Description' => [ - 'description' => 'The description of the IPsec-VPN connection.'."\n", - 'type' => 'string', - 'example' => 'description', - ], - 'RemoteSubnet' => [ - 'description' => 'The CIDR block on the data center side.'."\n", - 'type' => 'string', - 'example' => '10.2.1.0/24,10.2.2.0/24', + .'**VcoHealthCheck** parameters are returned only for single-tunnel IPsec-VPC connections.'."\n", + 'type' => 'object', + 'properties' => [ + 'Enable' => ['description' => 'Indicates whether the health check feature is enabled for the IPsec-VPN connection. Valid values:'."\n" + ."\n" + .'* **true**'."\n" + .'* **false**'."\n", 'type' => 'string', 'example' => 'true', 'title' => ''], + 'Sip' => ['description' => 'The source IP address that is used for health checks.'."\n", 'type' => 'string', 'example' => '10.1.1.1', 'title' => ''], + 'Dip' => ['description' => 'The destination IP address that is used for health checks.'."\n", 'type' => 'string', 'example' => '192.168.1.1', 'title' => ''], + 'Interval' => ['description' => 'The interval between two consecutive health check retries. Unit: seconds.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '3', 'title' => ''], + 'Retry' => ['description' => 'The maximum number of health check retries.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '3', 'title' => ''], + 'Policy' => ['description' => 'Indicates whether advertised routes are withdrawn when the health check fails. Valid values:'."\n" + ."\n" + .'* **revoke_route**: Advertised routes are withdrawn.'."\n" + .'* **reserve_route**: Advertised routes are not withdrawn.'."\n", 'type' => 'string', 'example' => 'revoke_route', 'title' => ''], + ], + 'title' => '', + 'example' => '', ], - 'CustomerGatewayId' => [ - 'description' => 'The ID of the customer gateway associated with the IPsec-VPN connection.'."\n" + 'EnableDpd' => ['description' => 'Indicates whether the DPD feature is enabled for the IPsec-VPN connection.'."\n" + ."\n" + .'* **true**: The feature is enabled.'."\n" + .'* **false**: The feature is disabled.'."\n" + ."\n" + .'This parameter is returned only for single-tunnel IPsec-VPN connections.'."\n", 'type' => 'boolean', 'example' => 'true', 'title' => ''], + 'EnableNatTraversal' => ['description' => 'Specifies whether to enable NAT traversal for the IPsec-VPN connection.'."\n" + ."\n" + .'* **true**: The feature is enabled.'."\n" + .'* **false**: The feature is disabled.'."\n" + ."\n" + .'This parameter is returned only for single-tunnel IPsec-VPN connections.'."\n", 'type' => 'boolean', 'example' => 'true', 'title' => ''], + 'VpnBgpConfig' => [ + 'description' => 'The BGP configurations of the IPsec-VPN connection.'."\n" ."\n" - .'This parameter is returned only for single-tunnel IPsec-VPN connections.'."\n", - 'type' => 'string', - 'example' => 'cgw-p0w2jemrcj5u61un8****', + .'**VpnBgpConfig** parameters are returned only for single-tunnel IPsec-VPN connections.'."\n", + 'type' => 'object', + 'properties' => [ + 'EnableBgp' => ['description' => 'Indicates whether BGP is enabled for the IPsec-VPN connection. Valid values:'."\n" + ."\n" + .'* **true**'."\n" + .'* **false**'."\n", 'type' => 'string', 'example' => 'true', 'title' => ''], + 'TunnelCidr' => ['description' => 'The CIDR block of the IPsec tunnel.'."\n", 'type' => 'string', 'example' => '169.254.11.0/30', 'title' => ''], + 'LocalBgpIp' => ['description' => 'The BGP IP address on the Alibaba Cloud side.'."\n", 'type' => 'string', 'example' => '169.254.11.1', 'title' => ''], + 'PeerBgpIp' => ['description' => 'The BGP IP address on the data center side.'."\n", 'type' => 'string', 'example' => '169.254.11.2', 'title' => ''], + 'LocalAsn' => ['description' => 'The ASN on the Alibaba Cloud side.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '45104', 'title' => ''], + 'PeerAsn' => ['description' => 'The ASN on the data center side.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '65535', 'title' => ''], + 'Status' => ['description' => 'The negotiation state of BGP. Valid values:'."\n" + ."\n" + .'* **success**: normal'."\n" + .'* **false**: abnormal'."\n", 'type' => 'string', 'example' => 'false', 'title' => ''], + ], + 'title' => '', + 'example' => '', ], - 'Name' => [ - 'description' => 'The name of the IPsec-VPN connection.'."\n", - 'type' => 'string', - 'example' => 'nametest', + 'AttachType' => ['description' => 'The type of the resource that is associated with the IPsec-VPN connection. Valid values:'."\n" + ."\n" + .'* **CEN**: The IPsec-VPN connection is associated with a transit router.'."\n" + .'* **VPNGW**: The IPsec-VPN connection is associated with a VPN gateway.'."\n" + .'* **NO_ASSOCIATED**: The IPsec-VPN connection is not associated with any resource.'."\n", 'type' => 'string', 'example' => 'CEN', 'title' => ''], + 'NetworkType' => ['description' => 'The network type of the IPsec-VPN connection. Valid values:'."\n" + ."\n" + .'* **public**: an encrypted connection over the Internet'."\n" + .'* **private**: an encrypted connection over private networks'."\n", 'type' => 'string', 'example' => 'public', 'title' => ''], + 'AttachInstanceId' => ['description' => 'The ID of the Cloud Enterprise Network (CEN) instance to which the transit router associated with the IPsec-VPN connection belongs.'."\n", 'type' => 'string', 'example' => 'cen-c2r3m3zxkumoqz****', 'title' => ''], + 'Spec' => ['description' => 'The bandwidth specification of the IPsec-VPN connection.'."\n" + ."\n" + .'A value of **M** in the response indicates **Mbit/s**.'."\n", 'type' => 'string', 'example' => '1000M', 'title' => ''], + 'ResourceGroupId' => ['description' => 'The ID of the resource group to which the IPsec-VPN connection belongs.'."\n" + ."\n" + .'You can call the [ListResourceGroups](~~158855~~) operation to query resource groups.'."\n", 'type' => 'string', 'example' => 'rg-acfmzs372yg****', 'title' => ''], + 'TunnelOptionsSpecification' => [ + 'description' => 'The tunnel configurations of the IPsec-VPN connection.'."\n" + ."\n" + .'**TunnelOptionsSpecification** parameters are returned only for dual-tunnel IPsec-VPN connections.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The tunnel configurations.'."\n", + 'type' => 'object', + 'properties' => [ + 'CustomerGatewayId' => ['description' => 'The ID of the customer gateway that is associated with the tunnel.'."\n", 'type' => 'string', 'example' => 'cgw-p0w2jemrcj5u61un8****', 'title' => ''], + 'EnableDpd' => ['description' => 'Whether the DPD feature is enabled for the tunnel.'."\n" + ."\n" + .'* **true**: The feature is enabled.'."\n" + .'* **false**: The feature is disabled.'."\n", 'type' => 'boolean', 'example' => 'true', 'title' => ''], + 'EnableNatTraversal' => ['description' => 'Indicates whether traversal feature is enabled for the tunnel. Valid values:'."\n" + ."\n" + .'* **true**: The feature is enabled.'."\n" + .'* **false**: The feature is disabled.'."\n", 'type' => 'boolean', 'example' => 'true', 'title' => ''], + 'InternetIp' => ['description' => 'The IP address on the Alibaba Cloud side.'."\n", 'type' => 'string', 'example' => '47.XX.XX.66', 'title' => ''], + 'Role' => ['description' => 'The tunnel role. Valid values:'."\n" + ."\n" + .'* **master**: The tunnel is an active tunnel.'."\n" + .'* **slave**: The tunnel is a standby tunnel.'."\n", 'type' => 'string', 'example' => 'master', 'title' => ''], + 'TunnelId' => ['description' => 'The tunnel ID.'."\n", 'type' => 'string', 'example' => 'tun-0jod7plwf2a0o9lvu****', 'title' => ''], + 'TunnelIndex' => ['description' => 'The order in which the tunnel was created.'."\n" + ."\n" + .'* **1**: Tunnel 1.'."\n" + .'* **2**: Tunnel 2.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''], + 'State' => ['description' => 'The status of the tunnel. Valid values:'."\n" + ."\n" + .'* **active**: The tunnel is active.'."\n" + .'* **updating**: The tunnel is being updated.'."\n" + .'* **deleting:** The tunnel is being deleted.'."\n", 'type' => 'string', 'example' => 'active', 'title' => ''], + 'TunnelBgpConfig' => [ + 'description' => 'BGP configuration.'."\n", + 'type' => 'object', + 'properties' => [ + 'LocalAsn' => ['description' => 'The ASN on the Alibaba Cloud side.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '65530', 'title' => ''], + 'LocalBgpIp' => ['description' => 'The BGP IP address of the tunnel on the Alibaba Cloud side.'."\n", 'type' => 'string', 'example' => '169.254.10.1', 'title' => ''], + 'PeerAsn' => ['description' => 'The ASN of the tunnel peer.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '65531', 'title' => ''], + 'PeerBgpIp' => ['description' => 'The BGP IP address of the tunnel peer.'."\n", 'type' => 'string', 'example' => '169.254.10.2', 'title' => ''], + 'TunnelCidr' => ['description' => 'The BGP CIDR block of the tunnel.'."\n", 'type' => 'string', 'example' => '169.254.10.0/30', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'TunnelIkeConfig' => [ + 'description' => 'The configurations of Phase 1 negotiations.'."\n", + 'type' => 'object', + 'properties' => [ + 'IkeAuthAlg' => ['description' => 'The authentication algorithm in the IKE phase.'."\n", 'type' => 'string', 'example' => 'sha1', 'title' => ''], + 'IkeEncAlg' => ['description' => 'The encryption algorithm in the IKE phase.'."\n", 'type' => 'string', 'example' => 'aes', 'title' => ''], + 'IkeLifetime' => ['description' => 'The lifetime in the IKE phase. Unit: seconds.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '86400', 'title' => ''], + 'IkeMode' => ['description' => 'The negotiation mode of IKE. Valid values:'."\n" + ."\n" + .'* **main:** This mode offers higher security during negotiations.'."\n" + .'* **aggressive**: This mode is faster with a higher success rate.'."\n", 'type' => 'string', 'example' => 'main', 'title' => ''], + 'IkePfs' => ['description' => 'The Diffie-Hellman (DH) group in the IKE phase.'."\n", 'type' => 'string', 'example' => 'group2', 'title' => ''], + 'IkeVersion' => ['description' => 'The version of the IKE protocol.'."\n", 'type' => 'string', 'example' => 'ikev2', 'title' => ''], + 'LocalId' => ['description' => 'The identifier of the tunnel on the Alibaba Cloud side.'."\n", 'type' => 'string', 'example' => '47.XX.XX.1', 'title' => ''], + 'Psk' => ['description' => 'The pre-shared key.'."\n", 'type' => 'string', 'example' => '123456****', 'title' => ''], + 'RemoteId' => ['description' => 'The peer identifier.'."\n", 'type' => 'string', 'example' => '47.XX.XX.2', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'TunnelIpsecConfig' => [ + 'description' => 'The configurations of Phase 2 negotiations.'."\n", + 'type' => 'object', + 'properties' => [ + 'IpsecAuthAlg' => ['description' => 'The authentication algorithm in the IPsec phase.'."\n", 'type' => 'string', 'example' => 'sha1', 'title' => ''], + 'IpsecEncAlg' => ['description' => 'The encryption algorithm in the IPsec phase.'."\n", 'type' => 'string', 'example' => 'aes', 'title' => ''], + 'IpsecLifetime' => ['description' => 'The lifetime in the IPsec phase. Unit: seconds.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '86400', 'title' => ''], + 'IpsecPfs' => ['description' => 'The DH group in the IPsec phase.'."\n", 'type' => 'string', 'example' => 'group2', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + ], + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', ], - 'EnableDpd' => [ - 'description' => 'Indicates whether the DPD feature is enabled for the IPsec-VPN connection. Valid values:'."\n" + 'EnableTunnelsBgp' => ['description' => 'Specifies whether to enable Border Gateway Protocol (BGP) for tunnels.'."\n" + ."\n" + .'* **true**: The feature is enabled.'."\n" + .'* **false**: The feature is disabled.'."\n" + ."\n" + .'This parameter is returned only by dual-tunnel IPsec-VPN connections.'."\n", 'type' => 'boolean', 'example' => 'false', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '35822A84-867F-3936-A2E6-A4C4E3ED11C0', 'title' => ''], + ], + 'example' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'VpnConnection.Configuring', 'errorMessage' => 'The specified service is configuring.', 'description' => 'The service is being configured. Try again later.'], + ['errorCode' => 'VpnConnection.FinancialLocked', 'errorMessage' => 'The specified service is financial locked.', 'description' => 'The error message returned because the service is locked due to overdue payments.'], + ['errorCode' => 'InvalidName', 'errorMessage' => 'The name is not valid', 'description' => ''], + ['errorCode' => 'VpnRouteEntry.AlreadyExists', 'errorMessage' => 'The specified route entry is already exist.', 'description' => 'The route already exists.'], + ['errorCode' => 'VpnRouteEntry.Conflict', 'errorMessage' => 'The specified route entry has conflict.', 'description' => 'Route conflicts exist.'], + ['errorCode' => 'NotSupportVpnConnectionParameter.IpsecPfs', 'errorMessage' => 'The specified vpn connection ipsec Ipsec Pfs is not support.', 'description' => 'The PFS parameter set for the IPsec-VPN connection is not supported.'], + ['errorCode' => 'NotSupportVpnConnectionParameter.IpsecAuthAlg', 'errorMessage' => 'The specified vpn connection ipsec Auth Alg is not support.', 'description' => 'The authentication algorithm specified for the IPsec-VPN connection is not supported.'], + ['errorCode' => 'VpnRouteEntry.BackupRoute', 'errorMessage' => 'Validate backup route entry failed.', 'description' => 'Active/standby routes failed authentication.'], + ['errorCode' => 'VpnRouteEntry.InvalidWeight', 'errorMessage' => 'Invalid route entry weight value.', 'description' => 'The weight specified for the route is invalid.'], + ['errorCode' => 'MissingParameter.TunnelCidr', 'errorMessage' => 'The parameter TunnelCidr is mandatory when BGP is enabled.', 'description' => 'You must specify the tunnel CIDR block when you enable BGP.'], + ['errorCode' => 'OperationUnsupported.EnableBgp', 'errorMessage' => 'Current region does not support enable BGP.', 'description' => 'The error message returned because the current region does not support BGP.'], + ['errorCode' => 'MissingParam.CustomerGatewayAsn', 'errorMessage' => 'Asn of customer gateway is mandatory when BGP is enabled.', 'description' => 'The ASN of the customer gateway cannot be empty when you enable BGP.'], + ['errorCode' => 'IllegalParam.LocalAsn', 'errorMessage' => 'The specified LocalAsn is invalid.', 'description' => 'The local ASN is invalid.'], + ['errorCode' => 'IllegalParam.BgpConfig', 'errorMessage' => 'The specified BgpConfig is invalid.', 'description' => 'The BGP configuration is invalid.'], + ['errorCode' => 'IllegalParam.EnableBgp', 'errorMessage' => 'VPN connection must enable BGP when VPN gateway has enabled BGP.', 'description' => 'The error message returned because the VPN connection must use BGP if BGP is enabled for the VPN gateway.'], + ['errorCode' => 'IllegalParam.TunnelCidr', 'errorMessage' => 'The specified TunnelCidr is invalid.', 'description' => 'The TunnelCidr parameter is set to an invalid value.'], + ['errorCode' => 'InvalidLocalBgpIp.Malformed', 'errorMessage' => 'The specified LocalBgpIp is malformed.', 'description' => 'The local BGP IP address is in an abnormal state.'], + ['errorCode' => 'IllegalParam.LocalBgpIp', 'errorMessage' => 'The specified LocalBgpIp is invalid.', 'description' => 'The local BGP IP address is invalid.'], + ['errorCode' => 'IllegalParam.LocalSubnet', 'errorMessage' => 'The specified "LocalSubnet" (%s) is invalid.', 'description' => 'The specified "LocalSubnet" (%s) is invalid.'], + ['errorCode' => 'IllegalParam.RemoteSubnet', 'errorMessage' => 'The specified "RemoteSubnet" (%s) is invalid.', 'description' => 'The specified "RemoteSubnet" (%s) is invalid.'], + ['errorCode' => 'CustomerGateway.ConflictRouteEntry', 'errorMessage' => 'The specified customer gateway has conflict with route entry.', 'description' => 'The customer gateway conflicts with the current routes.'], + ['errorCode' => 'IllegalParam.NetworkType', 'errorMessage' => 'The specified NetworkType (%s) is invalid.', 'description' => 'The network type is invalid.'], + ['errorCode' => 'InvalidTunnelCidr.Malformed', 'errorMessage' => 'The specified TunnelCidr is malformed.', 'description' => 'The specified tunnel CIDR block is invalid.'], + ['errorCode' => 'VpnGateway.Configuring', 'errorMessage' => 'The specified service is configuring.', 'description' => ''], + ['errorCode' => 'VpnTask.CONFLICT', 'errorMessage' => 'Vpn task has conflict.', 'description' => 'The VPN operation conflicts. Try again later.'], + ['errorCode' => 'ModifyIkeV1WithMultiRoutes.Invalid', 'errorMessage' => 'Failed to modify VPN connection parameters. Multi-network is configured while using IkeV1 protocol.', 'description' => 'Failed to modify VPN connection parameters. Multi-network is configured while using IkeV1 protocol.'], + ['errorCode' => 'InvalidVpnGatewayInstanceId.NotFound', 'errorMessage' => 'The specified vpn gateway instance id does not exist.', 'description' => 'The specified VPN gateway does not exist. Check whether the specified VPN gateway is valid.'], + ['errorCode' => 'Resource.QuotaFull', 'errorMessage' => 'The resources you are operating have reached the upper limit of the quota. Please increase the quota or use other solutions to avoid it according to the VPN operation document.', 'description' => 'The resources you are operating have reached the upper limit of the quota. Please refer to the VPN operation document to increase the quota or use other schemes to avoid it.'], + ['errorCode' => 'CreateDbrRoutesQuotaFull.QuotaFull', 'errorMessage' => 'The number of created destination routes exceeds the quota limit.', 'description' => 'The number of created destination routes exceeds the quota limit.'], + ['errorCode' => 'CreatePbrRoutesQuotaFull.QuotaFull', 'errorMessage' => 'The number of policy routes exceeds the quota limit.', 'description' => 'The number of policy routes exceeds the quota limit.'], + ['errorCode' => 'EncAlgInvalid.DesIncompatible', 'errorMessage' => 'Des/3des in IkeEncAlg and IpsecEncAlg does not support multi algorithm.', 'description' => 'Des/3des in IkeEncAlg and IpsecEncAlg does not support multi algorithm.'], + ['errorCode' => 'IkeVersionInvalid.GcmIncompatible', 'errorMessage' => 'Ikev1 does not support IkeEncAlg of gcm16.', 'description' => 'Ikev1 does not support IkeEncAlg of gcm16.'], + ['errorCode' => 'CustomerGateway.ConflictVpnIp', 'errorMessage' => 'The specified customer gateway has conflict with vpn gateway ip.', 'description' => 'The specified customer gateway has conflict with vpn gateway ip.'], + ], + 403 => [ + ['errorCode' => 'Forbbiden.SubUser', 'errorMessage' => 'User not authorized to operate on the specified resource as your account is created by another user.', 'description' => ''], + ['errorCode' => 'Forbidden', 'errorMessage' => 'User not authorized to operate on the specified resource.', 'description' => 'You do not have the permissions to manage the specified resource. Apply for the permissions and try again.'], + ], + [ + ['errorCode' => 'InvalidVpnConnectionInstanceId.NotFound', 'errorMessage' => 'The specified vpn connection instance id does not exist.', 'description' => 'The specified vpn connection instance id does not exist.'], + ], + ], + 'staticInfo' => ['returnType' => 'asynchronous', 'callback' => 'Vpc::2016-04-28::DescribeVpnConnection', 'callbackInterval' => 1000, 'maxCallbackTimes' => 30], + 'title' => 'ModifyVpnAttachmentAttribute', + 'description' => '* When you modify a IPsec-VPN connection in dual-tunnel mode, you can configure the following parameters in addition to the required request parameters: **ClientToken**, **Name**, **LocalSubnet**, **RemoteSubnet**, **EffectImmediately**, **AutoConfigRoute**, **TunnelOptionsSpecification** array, and **EnableTunnelsBgp**.'."\n" + ."\n" + .'* When you modify a IPsec-VPN connection in single tunnel mode, you can configure the following parameters in addition to the required request parameters: **ClientToken**, **Name**, **LocalSubnet**, **RemoteSubnet**, **EffectImmediately**, **IkeConfig**, **IpsecConfig**, **HealthCheckConfig**, **AutoConfigRoute**, **EnableDpd**, **EnableNatTraversal**, **BgpConfig**, and **CustomerGatewayId**.'."\n" + ."\n" + .'* **ModifyVpnAttachmentAttribute** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call the [DescribeVpnConnection](~~53046~~) operation to query the status of the task:'."\n" + ."\n" + .' * If the IPsec-VPN connection is in the **updating** state, the IPsec-VPN connection is being modified.'."\n" + .' * If the IPsec-VPN connection is in the **attached** state, the IPsec-VPN connection is modified.'."\n" + ."\n" + .'* You cannot concurrently call **ModifyVpnAttachmentAttribute** within the specified period of time.'."\n" + ."\n" + .'* You cannot call **ModifyVpnAttachmentAttribute** to modify the gateway type of an IPsec-VPN connection.'."\n", + 'changeSet' => [ + ['createdAt' => '2024-11-28T10:47:51.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2024-11-26T05:48:53.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2024-11-25T02:24:17.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2024-10-24T11:19:59.000Z', 'description' => 'Error codes changed, Request parameters changed, Response parameters changed'], + ['createdAt' => '2024-01-04T07:17:11.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-10-19T08:26:51.000Z', 'description' => 'Response parameters changed, Response parameters changed'], + ['createdAt' => '2022-12-08T12:27:57.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2022-12-08T09:38:28.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2022-12-05T09:52:16.000Z', 'description' => 'Error codes changed'], + ], + 'ramActions' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"VpnConnectionId\\": \\"vco-p0w5112fgnl2ihlmf****\\",\\n \\"CustomerGatewayId\\": \\"cgw-p0w2jemrcj5u61un8****\\",\\n \\"VpnGatewayId\\": \\"vpn-not-exist\\",\\n \\"Name\\": \\"nametest\\",\\n \\"Description\\": \\"desctest\\",\\n \\"LocalSubnet\\": \\"10.1.1.0/24,10.1.2.0/24\\",\\n \\"RemoteSubnet\\": \\"10.1.3.0/24,10.1.4.0/24\\",\\n \\"IkeConfig\\": {\\n \\"Psk\\": \\"1234***\\",\\n \\"IkeVersion\\": \\"ikev1\\",\\n \\"IkeMode\\": \\"main\\",\\n \\"IkeEncAlg\\": \\"aes\\",\\n \\"IkeAuthAlg\\": \\"sha1\\",\\n \\"IkePfs\\": \\"group2\\",\\n \\"IkeLifetime\\": 86400,\\n \\"LocalId\\": \\"47.XX.XX.1\\",\\n \\"RemoteId\\": \\"47.XX.XX.2\\"\\n },\\n \\"IpsecConfig\\": {\\n \\"IpsecEncAlg\\": \\"aes\\",\\n \\"IpsecAuthAlg\\": \\"md5\\",\\n \\"IpsecPfs\\": \\"group2\\",\\n \\"IpsecLifetime\\": 86400\\n },\\n \\"CreateTime\\": 1658201810000,\\n \\"EffectImmediately\\": false,\\n \\"Status\\": \\"ike_sa_not_established\\",\\n \\"VcoHealthCheck\\": {\\n \\"Enable\\": \\"true\\",\\n \\"Sip\\": \\"10.1.1.1\\",\\n \\"Dip\\": \\"192.168.1.1\\",\\n \\"Interval\\": 3,\\n \\"Retry\\": 3,\\n \\"Policy\\": \\"revoke_route\\"\\n },\\n \\"EnableDpd\\": true,\\n \\"EnableNatTraversal\\": true,\\n \\"VpnBgpConfig\\": {\\n \\"EnableBgp\\": \\"true\\",\\n \\"TunnelCidr\\": \\"169.254.11.0/30\\",\\n \\"LocalBgpIp\\": \\"169.254.11.1\\",\\n \\"PeerBgpIp\\": \\"169.254.11.2\\",\\n \\"LocalAsn\\": 45104,\\n \\"PeerAsn\\": 65535,\\n \\"Status\\": \\"false\\"\\n },\\n \\"AttachType\\": \\"CEN\\",\\n \\"NetworkType\\": \\"public\\",\\n \\"AttachInstanceId\\": \\"cen-c2r3m3zxkumoqz****\\",\\n \\"Spec\\": \\"1000M\\",\\n \\"ResourceGroupId\\": \\"rg-acfmzs372yg****\\",\\n \\"TunnelOptionsSpecification\\": [\\n {\\n \\"CustomerGatewayId\\": \\"cgw-p0w2jemrcj5u61un8****\\",\\n \\"EnableDpd\\": true,\\n \\"EnableNatTraversal\\": true,\\n \\"InternetIp\\": \\"47.XX.XX.66\\",\\n \\"Role\\": \\"master\\",\\n \\"TunnelId\\": \\"tun-0jod7plwf2a0o9lvu****\\",\\n \\"TunnelIndex\\": 1,\\n \\"State\\": \\"active\\",\\n \\"TunnelBgpConfig\\": {\\n \\"LocalAsn\\": 65530,\\n \\"LocalBgpIp\\": \\"169.254.10.1\\",\\n \\"PeerAsn\\": 65531,\\n \\"PeerBgpIp\\": \\"169.254.10.2\\",\\n \\"TunnelCidr\\": \\"169.254.10.0/30\\"\\n },\\n \\"TunnelIkeConfig\\": {\\n \\"IkeAuthAlg\\": \\"sha1\\",\\n \\"IkeEncAlg\\": \\"aes\\",\\n \\"IkeLifetime\\": 86400,\\n \\"IkeMode\\": \\"main\\",\\n \\"IkePfs\\": \\"group2\\",\\n \\"IkeVersion\\": \\"ikev2\\",\\n \\"LocalId\\": \\"47.XX.XX.1\\",\\n \\"Psk\\": \\"123456****\\",\\n \\"RemoteId\\": \\"47.XX.XX.2\\"\\n },\\n \\"TunnelIpsecConfig\\": {\\n \\"IpsecAuthAlg\\": \\"sha1\\",\\n \\"IpsecEncAlg\\": \\"aes\\",\\n \\"IpsecLifetime\\": 86400,\\n \\"IpsecPfs\\": \\"group2\\"\\n }\\n }\\n ],\\n \\"EnableTunnelsBgp\\": false,\\n \\"RequestId\\": \\"35822A84-867F-3936-A2E6-A4C4E3ED11C0\\"\\n}","errorExample":""},{"type":"xml","example":"\\n vco-p0w5112fgnl2ihlmf****\\n cgw-p0w2jemrcj5u61un8****\\n nametest\\n desctest\\n 10.1.1.0/24,10.1.2.0/24\\n 10.1.3.0/24,10.1.4.0/24\\n \\n 1234***\\n ikev1\\n main\\n aes\\n sha1\\n group2\\n 86400\\n 47.XX.XX.1\\n 47.XX.XX.2\\n \\n \\n aes\\n md5\\n group2\\n 86400\\n \\n 1658201810000\\n false\\n ike_sa_not_established\\n \\n true\\n 10.1.1.1\\n 192.168.1.1\\n 3\\n 3\\n revoke_route\\n \\n true\\n true\\n \\n true\\n 169.254.11.0/30\\n 169.254.11.1\\n 169.254.11.2\\n 45104\\n 65535\\n false\\n \\n CEN\\n public\\n cen-c2r3m3zxkumoqz****\\n 1000M\\n 35822A84-867F-3936-A2E6-A4C4E3ED11C0\\n","errorExample":""}]', + ], + 'ModifyVpnConnectionAttribute' => [ + 'summary' => 'Modifies the configuration of an IPsec-VPN connection.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'readAndWrite', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free'], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => ['description' => 'The ID of the region in which the IPsec-VPN connection is created.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => ' cn-shanghai', 'title' => ''], + ], + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'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.'."\n" + ."\n" + .'> If you do not specify this parameter, the system automatically uses the value of **RequestId** as the value of **ClientToken**. The **request ID** may be different for each request.'."\n", 'type' => 'string', 'required' => false, 'example' => '02fb3da4-130e-11e9-8e44-0016e04115b', 'title' => ''], + ], + [ + 'name' => 'VpnConnectionId', + 'in' => 'query', + 'schema' => ['description' => 'The ID of the IPsec-VPN connection.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'vco-bp1bbi27hojx80nck****', 'title' => ''], + ], + [ + 'name' => 'Name', + 'in' => 'query', + 'schema' => ['description' => 'The name of the IPsec-VPN connection.'."\n" + ."\n" + .'The name must be 1 to 100 characters in length and cannot start with `http://` or `https://`.'."\n", 'type' => 'string', 'required' => false, 'example' => 'nametest', 'title' => ''], + ], + [ + 'name' => 'LocalSubnet', + 'in' => 'query', + 'schema' => ['description' => 'The CIDR block used to connect the virtual private cloud (VPC) to the data center. The CIDR block is used in Phase 2 negotiations.'."\n" + ."\n" + .'Separate multiple CIDR blocks with commas (,). Example: 192.168.1.0/24,192.168.2.0/24.'."\n" + ."\n" + .'The following routing modes are supported:'."\n" + ."\n" + .'* If you set **LocalSubnet** and **RemoteSubnet** to 0.0.0.0/0, the routing mode of the IPsec-VPN connection is set to Destination Routing Mode.'."\n" + .'* If you set **LocalSubnet** and **RemoteSubnet** to specific CIDR blocks, the routing mode of the IPsec-VPN connection is set to Protected Data Flows.'."\n", 'type' => 'string', 'required' => false, 'example' => '10.1.1.0/24,10.1.2.0/24', 'title' => ''], + ], + [ + 'name' => 'RemoteSubnet', + 'in' => 'query', + 'schema' => ['description' => 'The CIDR block on the data center side. This CIDR block is used in Phase 2 negotiations.'."\n" + ."\n" + .'Separate multiple CIDR blocks with commas (,). Example: 192.168.3.0/24,192.168.4.0/24.'."\n" + ."\n" + .'The following routing modes are supported:'."\n" + ."\n" + .'* If you set **LocalSubnet** and **RemoteSubnet** to 0.0.0.0/0, the routing mode of the IPsec-VPN connection is set to Destination Routing Mode.'."\n" + .'* If you set **LocalSubnet** and **RemoteSubnet** to specific CIDR blocks, the routing mode of the IPsec-VPN connection is set to Protected Data Flows.'."\n", 'type' => 'string', 'required' => false, 'example' => '10.2.1.0/24,10.2.2.0/24', 'title' => ''], + ], + [ + 'name' => 'EffectImmediately', + 'in' => 'query', + 'schema' => ['description' => 'Specifies whether to immediately start IPsec negotiations after the configuration takes effect. Valid values:'."\n" + ."\n" + .'* **true**: immediately starts IPsec negotiations after the configuration takes effect.'."\n" + .'* **false**: IPsec negotiations start when inbound traffic is detected.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], + ], + [ + 'name' => 'IkeConfig', + 'in' => 'query', + 'schema' => ['description' => 'This parameter is supported if you modify the configurations of an IPsec-VPN connection in single-tunnel mode.'."\n" + ."\n" + .'The configurations of Phase 1 negotiations:'."\n" + ."\n" + .'* **IkeConfig.Psk**: The pre-shared key that is used for identity authentication between the VPN gateway and the on-premises data center.'."\n" + ."\n" + .' * The key cannot contain space characters. The key must be 1 to 100 characters in length, and can contain digits, letters, and the following special characters: ``~!`@#$%^&*()_-+={}[]|;:\',.<>/?``'."\n" + .' * If you do not specify a pre-shared key, the system randomly generates a 16-bit string as the pre-shared key. You can call the [DescribeVpnConnection](~~2526951~~) operation to query the pre-shared key that is automatically generated by the system.'."\n" + ."\n" + .' > The pre-shared key of the IPsec-VPN connection must be the same as the authentication key of the on-premises data center. Otherwise, connections between the on-premises data center and the VPN gateway cannot be established.'."\n" + ."\n" + .'* **IkeConfig.IkeVersion**: the version of the Internet Key Exchange (IKE) protocol. Valid values: **ikev1** and **ikev2**.'."\n" + ."\n" + .' Compared with IKEv1, IKEv2 simplifies the security association (SA) negotiation process and provides better support for scenarios with multiple CIDR blocks.'."\n" + ."\n" + .'* **IkeConfig.IkeMode**: the negotiation mode of IKE. Valid values: **main** and **aggressive**.'."\n" + ."\n" + .' * **main:** This mode offers higher security during negotiations.'."\n" + .' * **aggressive:** This mode supports faster negotiations and a higher success rate.'."\n" + ."\n" + .'* **IkeConfig.IkeEncAlg**: the encryption algorithm that is used in Phase 1 negotiations.'."\n" + ."\n" + .' Valid values: **aes**, **aes192**, **aes256**, **des**, and **3des**.'."\n" + ."\n" + .'* **IkeConfig.IkeAuthAlg**: the authentication algorithm that is used in Phase 1 negotiations.'."\n" + ."\n" + .' Valid values: **md5**, **sha1**, **sha256**, **sha384**, and **sha512**.'."\n" + ."\n" + .'* **IkeConfig.IkePfs**: the Diffie-Hellman key exchange algorithm that is used in Phase 1 negotiations. Valid values: **group1**, **group2**, **group5**, and **group14**.'."\n" + ."\n" + .'* **IkeConfig.IkeLifetime**: the SA lifetime as a result of Phase 1 negotiations. Unit: seconds Valid values: **0 to 86400**.'."\n" + ."\n" + .'* **IkeConfig.LocalId**: the identifier of the VPN gateway. The identifier cannot exceed 100 characters in length and cannot contain space characters. The default value is the IP address of the VPN gateway.'."\n" + ."\n" + .'* **IkeConfig.RemoteId**: the identifier of the customer gateway. The identifier cannot exceed 100 characters in length and cannot contain space characters. The default value is the IP address of the customer gateway.', 'type' => 'string', 'required' => false, 'example' => '{"Psk":"pgw6dy7d1i8i****","IkeVersion":"ikev1","IkeMode":"main","IkeEncAlg":"aes","IkeAuthAlg":"sha1","IkePfs":"group2","IkeLifetime":86400,"LocalId":"116.64.XX.XX","RemoteId":"139.18.XX.XX"}', 'title' => ''], + ], + [ + 'name' => 'IpsecConfig', + 'in' => 'query', + 'schema' => ['description' => 'You can specify this parameter if you modify the configuration of a single-tunnel IPsec-VPN connection.'."\n" + ."\n" + .'The configuration of Phase 2 negotiations:'."\n" + ."\n" + .'* **IpsecConfig.IpsecEncAlg**: the encryption algorithm that is used in Phase 2 negotiations.'."\n" + ."\n" + .' Valid values: **aes**, **aes192**, **aes256**, **des**, and **3des**.'."\n" + ."\n" + .'* **IpsecConfig. IpsecAuthAlg**: the authentication algorithm that is used in Phase 2 negotiations.'."\n" + ."\n" + .' Valid values: **md5**, **sha1**, **sha256**, **sha384**, and **sha512**.'."\n" + ."\n" + .'* **IpsecConfig. IpsecPfs**: the DH key exchange algorithm that is used in Phase 1 negotiations. If you specify this parameter, packets of all protocols are forwarded. Valid values: **disabled**, **group1**, **group2**, **group5**, and **group14**.'."\n" + ."\n" + .'* **IpsecConfig. IpsecLifetime:** the SA lifetime that is determined by Phase 2 negotiations. Unit: seconds. Valid values: **0 to 86400**.'."\n", 'type' => 'string', 'required' => false, 'example' => '{"IpsecEncAlg":"aes","IpsecAuthAlg":"sha1","IpsecPfs":"group2","IpsecLifetime":86400}', 'title' => ''], + ], + [ + 'name' => 'HealthCheckConfig', + 'in' => 'query', + 'schema' => ['description' => 'You can specify this parameter if you modify the configuration of a single-tunnel IPsec-VPN connection.'."\n" + ."\n" + .'The health check configuration:'."\n" + ."\n" + .'* **HealthCheckConfig.enable**: specifies whether to enable health checks. Valid values: **true** and **false**.'."\n" + .'* **HealthCheckConfig.dip**: the destination IP address that is used for health checks.'."\n" + .'* **HealthCheckConfig.sip**: the source IP address that is used for health checks.'."\n" + .'* **HealthCheckConfig.interval**: the interval between two consecutive health checks. Unit: seconds.'."\n" + .'* **HealthCheckConfig.retry**: the maximum number of health check retries.'."\n", 'type' => 'string', 'required' => false, 'example' => '{"enable":"true","dip":"192.168.1.1","sip":"10.1.1.1","interval":"3","retry":"3"}', 'title' => ''], + ], + [ + 'name' => 'AutoConfigRoute', + 'in' => 'query', + 'schema' => ['description' => 'Specifies whether to automatically advertise routes. Valid values:'."\n" + ."\n" + .'* **true**'."\n" + .'* **false**'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'true', 'title' => ''], + ], + [ + 'name' => 'EnableDpd', + 'in' => 'query', + 'schema' => ['description' => 'You can specify this parameter if you modify the configuration of a single-tunnel IPsec-VPN connection.'."\n" + ."\n" + .'Specifies whether to enable the dead peer detection (DPD) feature. Valid values:'."\n" + ."\n" + .'* **true:**: enables the DPD feature. The initiator of the IPsec-VPN connection sends DPD packets to check the existence and availability of the peer. If no feedback is received from the peer within a specific period of time, the connection fails. Then, the ISAKMP SA, IPsec SA, and IPsec tunnel are deleted.'."\n" + .'* **false**: disables the DPD feature. The initiator of the IPsec-VPN connection does not send DPD packets.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'true', 'title' => ''], + ], + [ + 'name' => 'EnableNatTraversal', + 'in' => 'query', + 'schema' => ['description' => 'You can specify this parameter if you modify the configuration of a single-tunnel IPsec-VPN connection.'."\n" + ."\n" + .'Specifies whether to enable NAT traversal. Valid values:'."\n" + ."\n" + .'* **true** After NAT traversal is enabled, the initiator does not check the UDP ports during IKE negotiations and can automatically discover NAT gateway devices along the IPsec tunnel.'."\n" + .'* **false**'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'true', 'title' => ''], + ], + [ + 'name' => 'BgpConfig', + 'in' => 'query', + 'schema' => ['description' => 'This parameter is supported if you modify the configurations of an IPsec-VPN connection in single-tunnel mode.'."\n" + ."\n" + .'BGP configuration:'."\n" + ."\n" + .'* **BgpConfig.EnableBgp**: specifies whether to enable BGP. Valid values: **true** and **false**.'."\n" + ."\n" + .'* **BgpConfig.LocalAsn:** the autonomous system number (ASN) on the Alibaba Cloud side. Valid values: **1** to **4294967295**.'."\n" + ."\n" + .' You can enter a value in two segments separated by a period (.). Each segment is 16 bits in length. Enter the number in each segment in decimal format.'."\n" + ."\n" + .' For example, if you enter 123.456, the ASN is 8061384. The ASN is calculated by using the following formula: 123 × 65536 + 456 = 8061384.'."\n" + ."\n" + .'* **BgpConfig.TunnelCidr**: The CIDR block of the IPsec tunnel. The CIDR block must fall within 169.254.0.0/16 and the mask of the CIDR block must be 30 bits in length. The CIDR block cannot be 169.254.0.0/30, 169.254.1.0/30, 169.254.2.0/30, 169.254.3.0/30, 169.254.4.0/30, 169.254.5.0/30, 169.254.6.0/30, or 169.254.169.252/30.'."\n" + ."\n" + .' > The CIDR block of the IPsec tunnel for each IPsec-VPN connection on a VPN gateway must be unique.'."\n" + ."\n" + .'* **LocalBgpIp**: the BGP address on the Alibaba Cloud side. It must be an IP address that falls within the CIDR block of the IPsec tunnel.'."\n" + ."\n" + .'> - This parameter is required when the VPN gateway has dynamic BGP enabled.'."\n" + .'> - Before you add BGP configurations, we recommend that you learn about how BGP dynamic routing works and the limits. For more information, see [Configure BGP dynamic routing](~~2638220~~).'."\n" + .'> - We recommend that you use a private ASN to establish BGP connections to Alibaba Cloud. For information about the range of private ASNs, see the relevant documentation.', 'type' => 'string', 'required' => false, 'example' => '{"EnableBgp":"true","LocalAsn":"65530","TunnelCidr":"169.254.11.0/30","LocalBgpIp":"169.254.11.1"}', 'title' => ''], + ], + [ + 'name' => 'RemoteCaCertificate', + 'in' => 'query', + 'schema' => ['description' => 'You can specify this parameter if you modify the configuration of a single-tunnel IPsec-VPN connection.'."\n" + ."\n" + .'If the VPN gateway uses a ShangMi (SM) certificate, you can modify the CA certificate used by the IPsec peer.'."\n" + ."\n" + .'If the VPN gateway does not use an SM certificate, you cannot specify this parameter.'."\n", 'type' => 'string', 'required' => false, 'example' => '-----BEGIN CERTIFICATE----- MIIB7zCCAZW**** -----END CERTIFICATE-----', 'title' => ''], + ], + [ + 'name' => 'TunnelOptionsSpecification', + 'in' => 'formData', + 'allowEmptyValue' => true, + 'style' => 'flat', + 'schema' => [ + 'description' => 'The tunnel configurations.'."\n" + ."\n" + .'You can specify parameters in the **TunnelOptionsSpecification** array when you modify the configurations of an IPsec-VPN connection in dual-tunnel mode. You can modify the configurations of both the active and standby tunnels of the IPsec-VPN connection.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The tunnel configurations.'."\n", + 'type' => 'object', + 'properties' => [ + 'TunnelId' => ['description' => 'The tunnel ID.'."\n", 'type' => 'string', 'required' => false, 'example' => 'tun-opsqc4d97wni27****', 'title' => ''], + 'CustomerGatewayId' => ['description' => 'The ID of the customer gateway associated with the tunnel.'."\n", 'type' => 'string', 'required' => false, 'example' => 'cgw-1nmwbpgrp7ssqm1yn****', 'title' => ''], + 'Role' => ['description' => 'The tunnel role. Valid values:'."\n" ."\n" - .'* **false**'."\n" - .'* **true**'."\n" + .'* **master**: The tunnel is an active tunnel.'."\n" + .'* **slave**: The tunnel is a standby tunnel.'."\n", 'type' => 'string', 'required' => false, 'example' => 'master', 'title' => ''], + 'EnableDpd' => ['description' => 'Specifies whether to enable the Dead Peer Detection (DPD) feature for the tunnel. Valid values:'."\n" ."\n" - .'This parameter is returned only for single-tunnel IPsec-VPN connections.'."\n", - 'type' => 'boolean', - 'example' => 'true', - ], - 'IkeConfig' => [ - 'description' => 'The configuration of Phase 1 negotiations.'."\n" + .'* **true**: enables DPD. The initiator of the IPsec-VPN connection sends DPD packets to check the existence and availability of the peer. If no feedback is received from the peer within the specified period of time, the connection fails. In this case, ISAKMP SA and IPsec SA are deleted. The security tunnel is also deleted.'."\n" + .'* **false**: disables DPD. The initiator of the IPsec-VPN connection does not send DPD packets.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'true', 'title' => ''], + 'EnableNatTraversal' => ['description' => 'Specifies whether to enable NAT traversal for the tunnel. Valid values:'."\n" ."\n" - .'**IkeConfig** parameters are returned only for single-tunnel IPsec-VPN connections.'."\n", - 'type' => 'object', - 'properties' => [ - 'RemoteId' => [ - 'description' => 'The identifier on the data center side. The default value is the IP address of the customer gateway. The value can be a FQDN or an IP address.'."\n", - 'type' => 'string', - 'example' => '139.18.XX.XX', - ], - 'IkeLifetime' => [ - 'description' => 'The lifetime in the IKE phase. Unit: seconds.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '86400', - ], - 'IkeEncAlg' => [ - 'description' => 'The encryption algorithm in the IKE phase.'."\n", - 'type' => 'string', - 'example' => 'aes', - ], - 'LocalId' => [ - 'description' => 'The identifier on the VPC side. The default value is the IP address of the VPN gateway. The value can be an FQDN or an IP address.'."\n", - 'type' => 'string', - 'example' => '116.64.XX.XX', - ], - 'IkeMode' => [ - 'description' => 'The IKE negotiation mode.'."\n" + .'* **true**: enables NAT traversal. After NAT traversal is enabled, the initiator does not check the UDP ports during IKE negotiations and can automatically discover NAT gateway devices along the IPsec-VPN tunnel.'."\n" + .'* **false**: disables NAT traversal.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'true', 'title' => ''], + 'RemoteCaCertificate' => ['description' => 'If the VPN gateway uses an SM certificate, you can modify the CA certificate used by the IPsec peer.'."\n" + ."\n" + .'If the VPN gateway does not use an SM certificate, this parameter is not supported.'."\n", 'type' => 'string', 'required' => false, 'example' => '-----BEGIN CERTIFICATE----- MIIB7zCCAZW**** -----END CERTIFICATE-----', 'title' => ''], + 'TunnelBgpConfig' => [ + 'description' => 'The Border Gateway Protocol (BGP) configurations of the tunnel.'."\n", + 'type' => 'object', + 'properties' => [ + 'LocalAsn' => ['description' => 'The ASN of the tunnel on the Alibaba Cloud side. Valid values: **1** to **4294967295**. Default value: **45104**.'."\n" ."\n" - .'* **main**: This mode offers higher security during negotiations.'."\n" - .'* **aggressive**: This mode is faster and has a higher success rate.'."\n", - 'type' => 'string', - 'example' => 'main', - ], - 'IkeVersion' => [ - 'description' => 'The version of the IKE protocol.'."\n" + .'> You can specify this parameter only if **EnableTunnelsBgp** is set to **true**.'."\n" ."\n" - .'* **ikev1**'."\n" - .'* **ikev2**'."\n" + .'* Before you add BGP configurations, we recommend that you learn about how BGP dynamic routing works and the limits. For more information, see [Configure BGP dynamic routing](~~2638220~~).'."\n" ."\n" - .'Compared with IKEv1, IKEv2 simplifies the SA negotiation process and is more suitable for scenarios in which multiple CIDR blocks are used.'."\n", - 'type' => 'string', - 'example' => 'ikev1', - ], - 'IkePfs' => [ - 'description' => 'The DH group in the IKE phase.'."\n", - 'type' => 'string', - 'example' => 'group2', + .'* We recommend that you use a private ASN to establish BGP connections to Alibaba Cloud. For information about the range of private ASNs, see the relevant documentation.', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '65530', 'title' => ''], + 'LocalBgpIp' => ['description' => 'The BGP IP address of the tunnel on the Alibaba Cloud side. The address is an IP address that falls within the BGP CIDR block.'."\n", 'type' => 'string', 'required' => false, 'example' => '169.254.10.1', 'title' => ''], + 'TunnelCidr' => ['description' => 'The BGP CIDR block of the tunnel.'."\n" + ."\n" + .'The CIDR block must fall within 169.254.0.0/16 and the mask of the CIDR block must be 30 bits in length. The CIDR block cannot be 169.254.0.0/30, 169.254.1.0/30, 169.254.2.0/30, 169.254.3.0/30, 169.254.4.0/30, 169.254.5.0/30, 169.254.6.0/30, or 169.254.169.252/30.'."\n" + ."\n" + .'> The BGP CIDR block of each tunnel must be unique on a VPN gateway.'."\n", 'type' => 'string', 'required' => false, 'example' => '169.254.10.0/30', 'title' => ''], ], - 'Psk' => [ - 'description' => 'The pre-shared key.'."\n", - 'type' => 'string', - 'example' => 'pgw6dy7d1i8i****', + 'required' => false, + 'title' => '', + 'example' => '', + ], + 'TunnelIkeConfig' => [ + 'description' => 'The configurations of Phase 1 negotiations.'."\n", + 'type' => 'object', + 'properties' => [ + 'IkeAuthAlg' => ['description' => 'The authentication algorithm that is used in Phase 1 negotiations.'."\n" + ."\n" + .'Valid values: **md5**, **sha1**, **sha256**, **sha384**, and **sha512**.'."\n", 'type' => 'string', 'required' => false, 'example' => 'md5', 'title' => ''], + 'IkeEncAlg' => ['description' => 'The encryption algorithm that is used in Phase 1 negotiations.'."\n" + ."\n" + .'Valid values: **aes**, **aes192**, **aes256**, **des**, and **3des**.'."\n", 'type' => 'string', 'required' => false, 'example' => 'aes', 'title' => ''], + 'IkeLifetime' => ['description' => 'The SA lifetime as a result of Phase 1 negotiations. Unit: seconds Valid values: **0** to **86400**.'."\n", 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '86400', 'title' => ''], + 'IkeMode' => ['description' => 'The negotiation mode of IKE. Valid values:'."\n" + ."\n" + .'* **main:** This mode offers higher security during negotiations.'."\n" + .'* **aggressive:** This mode supports faster negotiations and a higher success rate.'."\n", 'type' => 'string', 'required' => false, 'example' => 'main', 'title' => ''], + 'IkePfs' => ['description' => 'The Diffie-Hellman key exchange algorithm that is used in Phase 1 negotiations. Valid values: **group1**, **group2**, **group5**, and **group14**.'."\n", 'type' => 'string', 'required' => false, 'example' => 'group2', 'title' => ''], + 'IkeVersion' => ['description' => 'The version of the IKE protocol. Valid values: **ikev1** and **ikev2**.'."\n" + ."\n" + .'Compared with IKEv1, IKEv2 simplifies the SA negotiation process and provides better support for scenarios with multiple CIDR blocks.'."\n", 'type' => 'string', 'required' => false, 'example' => 'ikev1', 'title' => ''], + 'LocalId' => ['description' => 'The identifier on the Alibaba Cloud side, which is used in Phase 1 negotiations. The identifier cannot exceed 100 characters in length and cannot contain space characters. The default value is the IP address of the tunnel.'."\n" + ."\n" + .'**LocalId** supports fully qualified domain names (FQDNs). If you use an FQDN, we recommend that you set the negotiation mode to **aggressive**.'."\n", 'type' => 'string', 'required' => false, 'example' => '47.21.XX.XX', 'title' => ''], + 'Psk' => ['description' => 'The pre-shared key, which is used for identity authentication between the tunnel and the tunnel peer.'."\n" + ."\n" + .'* The key cannot contain space characters. The key must be 1 to 100 characters in length, and can contain digits, letters, and the following special characters: ``~!\\`@#$%^&*()_-+={}[]|;:\',.<>/?``'."\n" + .'* If you do not specify a pre-shared key, the system randomly generates a 16-bit string as the pre-shared key. You can call the [DescribeVpnConnection](~~2526951~~) operation to query the pre-shared key that is automatically generated by the system.'."\n" + ."\n" + .'> The tunnel and the tunnel peer must use the same pre-shared key. Otherwise, the tunnel cannot be built.'."\n", 'type' => 'string', 'required' => false, 'example' => '123456****', 'title' => ''], + 'RemoteId' => ['description' => 'The identifier of the tunnel peer, which is used in Phase 1 negotiations. The identifier cannot exceed 100 characters in length and cannot contain space characters. The default value is the IP address of the customer gateway that is associated with the tunnel.'."\n" + ."\n" + .'**RemoteId** supports FQDNs. If you use an FQDN, we recommend that you set the negotiation mode to **aggressive**.'."\n", 'type' => 'string', 'required' => false, 'example' => '47.42.XX.XX', 'title' => ''], ], - 'IkeAuthAlg' => [ - 'description' => 'The authentication algorithm in the IKE phase.'."\n", - 'type' => 'string', - 'example' => 'sha1', + 'required' => false, + 'title' => '', + 'example' => '', + ], + 'TunnelIpsecConfig' => [ + 'description' => 'The configurations of Phase 2 negotiations.'."\n", + 'type' => 'object', + 'properties' => [ + 'IpsecAuthAlg' => ['description' => 'The authentication algorithm that is used in Phase 2 negotiations.'."\n" + ."\n" + .'Valid values: **md5**, **sha1**, **sha256**, **sha384**, and **sha512**.'."\n", 'type' => 'string', 'required' => false, 'example' => 'md5', 'title' => ''], + 'IpsecEncAlg' => ['description' => 'The encryption algorithm that is used in Phase 2 negotiations.'."\n" + ."\n" + .'Valid values: **aes**, **aes192**, **aes256**, **des**, and **3des**.'."\n", 'type' => 'string', 'required' => false, 'example' => 'aes', 'title' => ''], + 'IpsecLifetime' => ['description' => 'The SA lifetime as a result of Phase 2 negotiations. Unit: seconds Valid values: **0** to **86400**.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '86400', 'title' => ''], + 'IpsecPfs' => ['description' => 'The Diffie-Hellman key exchange algorithm that is used in Phase 2 negotiations.'."\n" + ."\n" + .'Valid values: **disabled**, **group1**, **group2**, **group5**, and **group14**.'."\n", 'type' => 'string', 'required' => false, 'example' => 'group2', 'title' => ''], ], + 'required' => false, + 'title' => '', + 'example' => '', + ], + ], + 'required' => false, + 'title' => '', + 'example' => '', + ], + 'required' => false, + 'title' => '', + 'example' => '', + ], + ], + [ + 'name' => 'EnableTunnelsBgp', + 'in' => 'query', + 'allowEmptyValue' => true, + 'schema' => ['description' => 'You can specify this parameter if you modify the configuration of a dual-tunnel IPsec-VPN connection.'."\n" + ."\n" + .'Specifies whether to enable BGP for the tunnel. Valid values: **true** and **false**.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'true', 'title' => ''], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => 'The returned data.'."\n", + 'type' => 'object', + 'properties' => [ + 'EnableNatTraversal' => ['description' => 'Indicates whether NAT traversal is enabled for the IPsec-VPN connection. Valid values: Valid values:'."\n" + ."\n" + .'* **false**'."\n" + .'* **true**'."\n" + ."\n" + .'This parameter is returned only for single-tunnel IPsec-VPN connections.'."\n", 'type' => 'boolean', 'example' => 'true', 'title' => ''], + 'CreateTime' => ['description' => 'The timestamp generated when the IPsec-VPN connection was established. Unit: milliseconds.'."\n" + ."\n" + .'This value is a UNIX timestamp representing the number of milliseconds that have elapsed since the epoch time January 1, 1970, 00:00:00 UTC.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '1492753817000', 'title' => ''], + 'EffectImmediately' => ['description' => 'Indicates whether IPsec negotiations immediately start after the configuration takes effect. Valid values:'."\n" + ."\n" + .'* **true**: IPsec negotiations immediately start after the configuration takes effect.'."\n" + .'* **false**: IPsec negotiations start when inbound traffic is detected.'."\n", 'type' => 'boolean', 'example' => 'false', 'title' => ''], + 'VpnGatewayId' => ['description' => 'The ID of the VPN gateway.'."\n", 'type' => 'string', 'example' => 'vpn-bp1q8bgx4xnkm2ogj****', 'title' => ''], + 'LocalSubnet' => ['description' => 'The CIDR block on the VPC side.'."\n", 'type' => 'string', 'example' => '10.1.1.0/24,10.1.2.0/24', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '7DB79D0C-5F27-4AB5-995B-79BE55102F90', 'title' => ''], + 'VpnConnectionId' => ['description' => 'The ID of the IPsec-VPN connection.'."\n", 'type' => 'string', 'example' => 'vco-bp1bbi27hojx80nck****', 'title' => ''], + 'Description' => ['description' => 'The description of the IPsec-VPN connection.'."\n", 'type' => 'string', 'example' => 'description', 'title' => ''], + 'RemoteSubnet' => ['description' => 'The CIDR block on the data center side.'."\n", 'type' => 'string', 'example' => '10.2.1.0/24,10.2.2.0/24', 'title' => ''], + 'CustomerGatewayId' => ['description' => 'The ID of the customer gateway associated with the IPsec-VPN connection.'."\n" + ."\n" + .'This parameter is returned only for single-tunnel IPsec-VPN connections.'."\n", 'type' => 'string', 'example' => 'cgw-p0w2jemrcj5u61un8****', 'title' => ''], + 'Name' => ['description' => 'The name of the IPsec-VPN connection.'."\n", 'type' => 'string', 'example' => 'nametest', 'title' => ''], + 'EnableDpd' => ['description' => 'Indicates whether the DPD feature is enabled for the IPsec-VPN connection. Valid values:'."\n" + ."\n" + .'* **false**'."\n" + .'* **true**'."\n" + ."\n" + .'This parameter is returned only for single-tunnel IPsec-VPN connections.'."\n", 'type' => 'boolean', 'example' => 'true', 'title' => ''], + 'IkeConfig' => [ + 'description' => 'The configuration of Phase 1 negotiations.'."\n" + ."\n" + .'**IkeConfig** parameters are returned only for single-tunnel IPsec-VPN connections.'."\n", + 'type' => 'object', + 'properties' => [ + 'RemoteId' => ['description' => 'The identifier on the data center side. The default value is the IP address of the customer gateway. The value can be a FQDN or an IP address.'."\n", 'type' => 'string', 'example' => '139.18.XX.XX', 'title' => ''], + 'IkeLifetime' => ['description' => 'The lifetime in the IKE phase. Unit: seconds.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '86400', 'title' => ''], + 'IkeEncAlg' => ['description' => 'The encryption algorithm in the IKE phase.'."\n", 'type' => 'string', 'example' => 'aes', 'title' => ''], + 'LocalId' => ['description' => 'The identifier on the VPC side. The default value is the IP address of the VPN gateway. The value can be an FQDN or an IP address.'."\n", 'type' => 'string', 'example' => '116.64.XX.XX', 'title' => ''], + 'IkeMode' => ['description' => 'The IKE negotiation mode.'."\n" + ."\n" + .'* **main**: This mode offers higher security during negotiations.'."\n" + .'* **aggressive**: This mode is faster and has a higher success rate.'."\n", 'type' => 'string', 'example' => 'main', 'title' => ''], + 'IkeVersion' => ['description' => 'The version of the IKE protocol.'."\n" + ."\n" + .'* **ikev1**'."\n" + .'* **ikev2**'."\n" + ."\n" + .'Compared with IKEv1, IKEv2 simplifies the SA negotiation process and is more suitable for scenarios in which multiple CIDR blocks are used.'."\n", 'type' => 'string', 'example' => 'ikev1', 'title' => ''], + 'IkePfs' => ['description' => 'The DH group in the IKE phase.'."\n", 'type' => 'string', 'example' => 'group2', 'title' => ''], + 'Psk' => ['description' => 'The pre-shared key.'."\n", 'type' => 'string', 'example' => 'pgw6dy7d1i8i****', 'title' => ''], + 'IkeAuthAlg' => ['description' => 'The authentication algorithm in the IKE phase.'."\n", 'type' => 'string', 'example' => 'sha1', 'title' => ''], ], + 'title' => '', + 'example' => '', ], 'IpsecConfig' => [ 'description' => 'The configuration of Phase 2 negotiations.'."\n" @@ -69853,28 +54146,13 @@ .'**IpsecConfig** parameters are returned only for single-tunnel IPsec-VPN connections.'."\n", 'type' => 'object', 'properties' => [ - 'IpsecAuthAlg' => [ - 'description' => 'The authentication algorithm in the IPsec phase.'."\n", - 'type' => 'string', - 'example' => 'sha1', - ], - 'IpsecLifetime' => [ - 'description' => 'The lifetime in the IPsec phase. Unit: seconds.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '86400', - ], - 'IpsecEncAlg' => [ - 'description' => 'The encryption algorithm in the IPsec phase.'."\n", - 'type' => 'string', - 'example' => 'aes', - ], - 'IpsecPfs' => [ - 'description' => 'The DH group in the IPsec phase.'."\n", - 'type' => 'string', - 'example' => 'group2', - ], + 'IpsecAuthAlg' => ['description' => 'The authentication algorithm in the IPsec phase.'."\n", 'type' => 'string', 'example' => 'sha1', 'title' => ''], + 'IpsecLifetime' => ['description' => 'The lifetime in the IPsec phase. Unit: seconds.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '86400', 'title' => ''], + 'IpsecEncAlg' => ['description' => 'The encryption algorithm in the IPsec phase.'."\n", 'type' => 'string', 'example' => 'aes', 'title' => ''], + 'IpsecPfs' => ['description' => 'The DH group in the IPsec phase.'."\n", 'type' => 'string', 'example' => 'group2', 'title' => ''], ], + 'title' => '', + 'example' => '', ], 'VcoHealthCheck' => [ 'description' => 'The health check configuration.'."\n" @@ -69882,37 +54160,17 @@ .'**VcoHealthCheck** parameters are returned only for single-tunnel IPsec-VPN connections.'."\n", 'type' => 'object', 'properties' => [ - 'Dip' => [ - 'description' => 'The destination IP address.'."\n", - 'type' => 'string', - 'example' => '192.168.1.1', - ], - 'Interval' => [ - 'description' => 'The interval between two consecutive health checks. Unit: seconds.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '3', - ], - 'Retry' => [ - 'description' => 'The maximum number of health check retries.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '3', - ], - 'Sip' => [ - 'description' => 'The source IP address that is used for health checks.'."\n", - 'type' => 'string', - 'example' => '10.1.1.1', - ], - 'Enable' => [ - 'description' => 'Indicates whether the health check feature is enabled for the IPsec-VPN connection.'."\n" - ."\n" - .'* **true**'."\n" - .'* **false**'."\n", - 'type' => 'string', - 'example' => 'true', - ], + 'Dip' => ['description' => 'The destination IP address.'."\n", 'type' => 'string', 'example' => '192.168.1.1', 'title' => ''], + 'Interval' => ['description' => 'The interval between two consecutive health checks. Unit: seconds.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '3', 'title' => ''], + 'Retry' => ['description' => 'The maximum number of health check retries.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '3', 'title' => ''], + 'Sip' => ['description' => 'The source IP address that is used for health checks.'."\n", 'type' => 'string', 'example' => '10.1.1.1', 'title' => ''], + 'Enable' => ['description' => 'Indicates whether the health check feature is enabled for the IPsec-VPN connection.'."\n" + ."\n" + .'* **true**'."\n" + .'* **false**'."\n", 'type' => 'string', 'example' => 'true', 'title' => ''], ], + 'title' => '', + 'example' => '', ], 'VpnBgpConfig' => [ 'description' => 'The BGP configuration.'."\n" @@ -69920,50 +54178,22 @@ .'**VpnBgpConfig** parameters are returned only for single-tunnel IPsec-VPN connections.'."\n", 'type' => 'object', 'properties' => [ - 'Status' => [ - 'description' => 'The negotiation state of BGP. Valid values:'."\n" - ."\n" - .'* **success**: normal'."\n" - .'* **false**: abnormal'."\n", - 'type' => 'string', - 'example' => 'success', - ], - 'PeerBgpIp' => [ - 'description' => 'The BGP IP address of the data center.'."\n", - 'type' => 'string', - 'example' => '169.254.11.2', - ], - 'TunnelCidr' => [ - 'description' => 'The BGP CIDR block of the IPsec-VPN connection.'."\n", - 'type' => 'string', - 'example' => '169.254.11.0/30', - ], - 'EnableBgp' => [ - 'description' => 'Indicates whether BGP is enabled. Valid values:'."\n" - ."\n" - .'* **true**'."\n" - .'* **false**'."\n", - 'type' => 'string', - 'example' => 'true', - ], - 'LocalBgpIp' => [ - 'description' => 'The BGP IP address on the Alibaba Cloud side.'."\n", - 'type' => 'string', - 'example' => '169.254.11.1', - ], - 'PeerAsn' => [ - 'description' => 'The ASN on the data center side.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '65531', - ], - 'LocalAsn' => [ - 'description' => 'The ASN on the Alibaba Cloud side.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '65530', - ], + 'Status' => ['description' => 'The negotiation state of BGP. Valid values:'."\n" + ."\n" + .'* **success**: normal'."\n" + .'* **false**: abnormal'."\n", 'type' => 'string', 'example' => 'success', 'title' => ''], + 'PeerBgpIp' => ['description' => 'The BGP IP address of the data center.'."\n", 'type' => 'string', 'example' => '169.254.11.2', 'title' => ''], + 'TunnelCidr' => ['description' => 'The BGP CIDR block of the IPsec-VPN connection.'."\n", 'type' => 'string', 'example' => '169.254.11.0/30', 'title' => ''], + 'EnableBgp' => ['description' => 'Indicates whether BGP is enabled. Valid values:'."\n" + ."\n" + .'* **true**'."\n" + .'* **false**'."\n", 'type' => 'string', 'example' => 'true', 'title' => ''], + 'LocalBgpIp' => ['description' => 'The BGP IP address on the Alibaba Cloud side.'."\n", 'type' => 'string', 'example' => '169.254.11.1', 'title' => ''], + 'PeerAsn' => ['description' => 'The ASN on the data center side.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '65531', 'title' => ''], + 'LocalAsn' => ['description' => 'The ASN on the Alibaba Cloud side.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '65530', 'title' => ''], ], + 'title' => '', + 'example' => '', ], 'TunnelOptionsSpecification' => [ 'type' => 'object', @@ -69978,400 +54208,160 @@ 'description' => 'The tunnel configurations of the IPsec-VPN connection.', 'type' => 'object', 'properties' => [ - 'CustomerGatewayId' => [ - 'description' => 'The ID of the customer gateway associated with the tunnel.'."\n", - 'type' => 'string', - 'example' => 'cgw-p0wy363lucf1uyae8****', - ], - 'EnableDpd' => [ - 'description' => 'Indicates whether the DPD feature is enabled for the tunnel. Valid values:'."\n" - ."\n" - .'* **false**'."\n" - .'* **true**'."\n", - 'type' => 'boolean', - 'example' => 'true', - ], - 'EnableNatTraversal' => [ - 'description' => 'Indicates whether NAT traversal is enabled for the tunnel. Valid values:'."\n" - ."\n" - .'* **false**'."\n" - .'* **true**'."\n", - 'type' => 'boolean', - 'example' => 'true', - ], - 'InternetIp' => [ - 'description' => 'The IP address on the Alibaba Cloud side.'."\n", - 'type' => 'string', - 'example' => '47.21.XX.XX', - ], - 'RemoteCaCertificate' => [ - 'description' => 'The CA certificate of the tunnel peer.'."\n" - ."\n" - .'This parameter is returned only if the VPN gateway is of the SM type.'."\n", - 'type' => 'string', - 'example' => '-----BEGIN CERTIFICATE----- MIIB7zCCAZW**** -----END CERTIFICATE-----', - ], - 'Role' => [ - 'description' => 'The tunnel role. Valid values:'."\n" - ."\n" - .'* **master**: The tunnel is an active tunnel.'."\n" - .'* **slave**: The tunnel is a standby tunnel.'."\n", - 'type' => 'string', - 'example' => 'master', - ], - 'State' => [ - 'description' => 'The tunnel status. Valid values:'."\n" - ."\n" - .'* **active**'."\n" - .'* **updating**'."\n" - .'* **deleting**'."\n", - 'type' => 'string', - 'example' => 'active', - ], + 'CustomerGatewayId' => ['description' => 'The ID of the customer gateway associated with the tunnel.'."\n", 'type' => 'string', 'example' => 'cgw-p0wy363lucf1uyae8****', 'title' => ''], + 'EnableDpd' => ['description' => 'Indicates whether the DPD feature is enabled for the tunnel. Valid values:'."\n" + ."\n" + .'* **false**'."\n" + .'* **true**'."\n", 'type' => 'boolean', 'example' => 'true', 'title' => ''], + 'EnableNatTraversal' => ['description' => 'Indicates whether NAT traversal is enabled for the tunnel. Valid values:'."\n" + ."\n" + .'* **false**'."\n" + .'* **true**'."\n", 'type' => 'boolean', 'example' => 'true', 'title' => ''], + 'InternetIp' => ['description' => 'The IP address on the Alibaba Cloud side.'."\n", 'type' => 'string', 'example' => '47.21.XX.XX', 'title' => ''], + 'RemoteCaCertificate' => ['description' => 'The CA certificate of the tunnel peer.'."\n" + ."\n" + .'This parameter is returned only if the VPN gateway is of the SM type.'."\n", 'type' => 'string', 'example' => '-----BEGIN CERTIFICATE----- MIIB7zCCAZW**** -----END CERTIFICATE-----', 'title' => ''], + 'Role' => ['description' => 'The tunnel role. Valid values:'."\n" + ."\n" + .'* **master**: The tunnel is an active tunnel.'."\n" + .'* **slave**: The tunnel is a standby tunnel.'."\n", 'type' => 'string', 'example' => 'master', 'title' => ''], + 'State' => ['description' => 'The tunnel status. Valid values:'."\n" + ."\n" + .'* **active**'."\n" + .'* **updating**'."\n" + .'* **deleting**'."\n", 'type' => 'string', 'example' => 'active', 'title' => ''], 'TunnelBgpConfig' => [ 'description' => 'The BGP configuration.'."\n", 'type' => 'object', 'properties' => [ - 'LocalAsn' => [ - 'description' => 'The ASN of the tunnel on the Alibaba Cloud side.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '65530', - ], - 'LocalBgpIp' => [ - 'description' => 'The BGP IP address of the tunnel on the Alibaba Cloud side.'."\n", - 'type' => 'string', - 'example' => '169.254.10.1', - ], - 'PeerAsn' => [ - 'description' => 'The ASN of the tunnel peer.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '65531', - ], - 'PeerBgpIp' => [ - 'description' => 'The BGP IP address of the tunnel peer.'."\n", - 'type' => 'string', - 'example' => '169.254.10.2', - ], - 'TunnelCidr' => [ - 'description' => 'The BGP CIDR block of the tunnel.'."\n", - 'type' => 'string', - 'example' => '169.254.10.0/30', - ], + 'LocalAsn' => ['description' => 'The ASN of the tunnel on the Alibaba Cloud side.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '65530', 'title' => ''], + 'LocalBgpIp' => ['description' => 'The BGP IP address of the tunnel on the Alibaba Cloud side.'."\n", 'type' => 'string', 'example' => '169.254.10.1', 'title' => ''], + 'PeerAsn' => ['description' => 'The ASN of the tunnel peer.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '65531', 'title' => ''], + 'PeerBgpIp' => ['description' => 'The BGP IP address of the tunnel peer.'."\n", 'type' => 'string', 'example' => '169.254.10.2', 'title' => ''], + 'TunnelCidr' => ['description' => 'The BGP CIDR block of the tunnel.'."\n", 'type' => 'string', 'example' => '169.254.10.0/30', 'title' => ''], ], + 'title' => '', + 'example' => '', ], - 'TunnelId' => [ - 'description' => 'The tunnel ID.'."\n", - 'type' => 'string', - 'example' => 'tun-opsqc4d97wni27****', - ], + 'TunnelId' => ['description' => 'The tunnel ID.'."\n", 'type' => 'string', 'example' => 'tun-opsqc4d97wni27****', 'title' => ''], 'TunnelIkeConfig' => [ 'description' => 'The configuration of Phase 1 negotiations.'."\n", 'type' => 'object', 'properties' => [ - 'IkeAuthAlg' => [ - 'description' => 'The authentication algorithm in the IKE phase.'."\n", - 'type' => 'string', - 'example' => 'sha1', - ], - 'IkeEncAlg' => [ - 'description' => 'The encryption algorithm in the IKE phase.'."\n", - 'type' => 'string', - 'example' => 'aes', - ], - 'IkeLifetime' => [ - 'description' => 'The lifetime in the IKE phase. Unit: seconds.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '86400', - ], - 'IkeMode' => [ - 'description' => 'The IKE negotiation mode.'."\n" - ."\n" - .'* **main:** This mode offers higher security during negotiations.'."\n" - .'* **aggressive**: This mode is faster and has a higher success rate.'."\n", - 'type' => 'string', - 'example' => 'main', - ], - 'IkePfs' => [ - 'description' => 'The DH group in the IKE phase.'."\n", - 'type' => 'string', - 'example' => 'group2', - ], - 'IkeVersion' => [ - 'description' => 'The version of the IKE protocol.'."\n", - 'type' => 'string', - 'example' => 'ikev1', - ], - 'LocalId' => [ - 'description' => 'The identifier of the tunnel on the Alibaba Cloud side.'."\n", - 'type' => 'string', - 'example' => '47.21.XX.XX', - ], - 'Psk' => [ - 'description' => 'The pre-shared key.'."\n", - 'type' => 'string', - 'example' => '123456****', - ], - 'RemoteId' => [ - 'description' => 'The identifier of the tunnel peer.'."\n", - 'type' => 'string', - 'example' => '47.42.XX.XX', - ], + 'IkeAuthAlg' => ['description' => 'The authentication algorithm in the IKE phase.'."\n", 'type' => 'string', 'example' => 'sha1', 'title' => ''], + 'IkeEncAlg' => ['description' => 'The encryption algorithm in the IKE phase.'."\n", 'type' => 'string', 'example' => 'aes', 'title' => ''], + 'IkeLifetime' => ['description' => 'The lifetime in the IKE phase. Unit: seconds.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '86400', 'title' => ''], + 'IkeMode' => ['description' => 'The IKE negotiation mode.'."\n" + ."\n" + .'* **main:** This mode offers higher security during negotiations.'."\n" + .'* **aggressive**: This mode is faster and has a higher success rate.'."\n", 'type' => 'string', 'example' => 'main', 'title' => ''], + 'IkePfs' => ['description' => 'The DH group in the IKE phase.'."\n", 'type' => 'string', 'example' => 'group2', 'title' => ''], + 'IkeVersion' => ['description' => 'The version of the IKE protocol.'."\n", 'type' => 'string', 'example' => 'ikev1', 'title' => ''], + 'LocalId' => ['description' => 'The identifier of the tunnel on the Alibaba Cloud side.'."\n", 'type' => 'string', 'example' => '47.21.XX.XX', 'title' => ''], + 'Psk' => ['description' => 'The pre-shared key.'."\n", 'type' => 'string', 'example' => '123456****', 'title' => ''], + 'RemoteId' => ['description' => 'The identifier of the tunnel peer.'."\n", 'type' => 'string', 'example' => '47.42.XX.XX', 'title' => ''], ], + 'title' => '', + 'example' => '', ], 'TunnelIpsecConfig' => [ 'description' => 'The configuration of Phase 2 negotiations.'."\n", 'type' => 'object', 'properties' => [ - 'IpsecAuthAlg' => [ - 'description' => 'The authentication algorithm in the IPsec phase.'."\n", - 'type' => 'string', - 'example' => 'sha1', - ], - 'IpsecEncAlg' => [ - 'description' => 'The encryption algorithm in the IPsec phase.'."\n", - 'type' => 'string', - 'example' => 'aes', - ], - 'IpsecLifetime' => [ - 'description' => 'The lifetime in the IPsec phase. Unit: seconds.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '86400', - ], - 'IpsecPfs' => [ - 'description' => 'The DH group in the IPsec phase.'."\n", - 'type' => 'string', - 'example' => 'group2', - ], + 'IpsecAuthAlg' => ['description' => 'The authentication algorithm in the IPsec phase.'."\n", 'type' => 'string', 'example' => 'sha1', 'title' => ''], + 'IpsecEncAlg' => ['description' => 'The encryption algorithm in the IPsec phase.'."\n", 'type' => 'string', 'example' => 'aes', 'title' => ''], + 'IpsecLifetime' => ['description' => 'The lifetime in the IPsec phase. Unit: seconds.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '86400', 'title' => ''], + 'IpsecPfs' => ['description' => 'The DH group in the IPsec phase.'."\n", 'type' => 'string', 'example' => 'group2', 'title' => ''], ], + 'title' => '', + 'example' => '', ], - 'ZoneNo' => [ - 'description' => 'The zone of the tunnel.'."\n", - 'type' => 'string', - 'example' => 'ap-southeast-5a', - ], + 'ZoneNo' => ['description' => 'The zone of the tunnel.'."\n", 'type' => 'string', 'example' => 'ap-southeast-5a', 'title' => ''], ], + 'title' => '', + 'example' => '', ], + 'title' => '', + 'example' => '', ], ], + 'description' => '', + 'title' => '', + 'example' => '', ], - 'EnableTunnelsBgp' => [ - 'description' => 'Indicates whether BGP is enabled for the tunnel. Valid values:'."\n" - ."\n" - .'* **true**'."\n" - .'* **false**'."\n" - ."\n" - .'This parameter is returned only by dual-tunnel IPsec-VPN connections.'."\n", - 'type' => 'boolean', - 'example' => 'true', - ], - 'ResourceGroupId' => [ - 'description' => 'The ID of the resource group to which the IPsec-VPN connection belongs.'."\n" - ."\n" - .'The IPsec-VPN connection and the VPN gateway associated with the IPsec-VPN connection belong to the same resource group. You can call the [ListResourceGroups](~~158855~~) operation to query resource groups.'."\n", - 'type' => 'string', - 'example' => 'rg-acfmzs372yg****', - ], + 'EnableTunnelsBgp' => ['description' => 'Indicates whether BGP is enabled for the tunnel. Valid values:'."\n" + ."\n" + .'* **true**'."\n" + .'* **false**'."\n" + ."\n" + .'This parameter is returned only by dual-tunnel IPsec-VPN connections.'."\n", 'type' => 'boolean', 'example' => 'true', 'title' => ''], + 'ResourceGroupId' => ['description' => 'The ID of the resource group to which the IPsec-VPN connection belongs.'."\n" + ."\n" + .'The IPsec-VPN connection and the VPN gateway associated with the IPsec-VPN connection belong to the same resource group. You can call the [ListResourceGroups](~~158855~~) operation to query resource groups.'."\n", 'type' => 'string', 'example' => 'rg-acfmzs372yg****', 'title' => ''], ], + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'VpnGateway.Configuring', - 'errorMessage' => 'The specified service is configuring.', - ], - [ - 'errorCode' => 'VpnGateway.FinancialLocked', - 'errorMessage' => 'The specified service is financial locked.', - ], - [ - 'errorCode' => 'InvalidName', - 'errorMessage' => 'The name is not valid', - ], - [ - 'errorCode' => 'VpnRouteEntry.AlreadyExists', - 'errorMessage' => 'The specified route entry is already exist.', - ], - [ - 'errorCode' => 'VpnRouteEntry.Conflict', - 'errorMessage' => 'The specified route entry has conflict.', - ], - [ - 'errorCode' => 'NotSupportVpnConnectionParameter.IpsecPfs', - 'errorMessage' => 'The specified vpn connection ipsec Ipsec Pfs is not support.', - ], - [ - 'errorCode' => 'NotSupportVpnConnectionParameter.IpsecAuthAlg', - 'errorMessage' => 'The specified vpn connection ipsec Auth Alg is not support.', - ], - [ - 'errorCode' => 'VpnRouteEntry.ConflictSSL', - 'errorMessage' => 'The specified route entry has conflict with SSL client.', - ], - [ - 'errorCode' => 'VpnRouteEntry.BackupRoute', - 'errorMessage' => 'Validate backup route entry failed.', - ], - [ - 'errorCode' => 'VpnRouteEntry.InvalidWeight', - 'errorMessage' => 'Invalid route entry weight value.', - ], - [ - 'errorCode' => 'QuotaExceeded.PBR', - 'errorMessage' => 'The policy-based routes has reached the upper limit.', - ], - [ - 'errorCode' => 'OperationUnsupported.SetDPD', - 'errorMessage' => 'Current version of the VPN does not support setting DPD.', - ], - [ - 'errorCode' => 'OperationUnsupported.SetNatTraversal', - 'errorMessage' => 'Current version of the VPN does not support setting NAT traversal.', - ], - [ - 'errorCode' => 'QuotaExceeded.PolicyBasedRoute', - 'errorMessage' => 'The maximum number of policy-based routes is exceeded. Existing routes: %s. Routes to be created: %s. Maximum routes: %s.', - ], - [ - 'errorCode' => 'MissingParameter.TunnelCidr', - 'errorMessage' => 'The parameter TunnelCidr is mandatory when BGP is enabled.', - ], - [ - 'errorCode' => 'OperationUnsupported.EnableBgp', - 'errorMessage' => 'Current version of the VPN does not support enable BGP.', - ], - [ - 'errorCode' => 'MissingParam.CustomerGatewayAsn', - 'errorMessage' => 'Asn of customer gateway is mandatory when BGP is enabled.', - ], - [ - 'errorCode' => 'IllegalParam.LocalAsn', - 'errorMessage' => 'The specified LocalAsn is invalid.', - ], - [ - 'errorCode' => 'IllegalParam.BgpConfig', - 'errorMessage' => 'The specified BgpConfig is invalid.', - ], - [ - 'errorCode' => 'IllegalParam.EnableBgp', - 'errorMessage' => 'VPN connection must enable BGP when VPN gateway has enabled BGP.', - ], - [ - 'errorCode' => 'IllegalParam.TunnelCidr', - 'errorMessage' => 'The specified TunnelCidr is invalid.', - ], - [ - 'errorCode' => 'InvalidLocalBgpIp.Malformed', - 'errorMessage' => 'The specified LocalBgpIp is malformed.', - ], - [ - 'errorCode' => 'IllegalParam.LocalBgpIp', - 'errorMessage' => 'The specified LocalBgpIp is invalid.', - ], - [ - 'errorCode' => 'IllegalParam.LocalSubnet', - 'errorMessage' => 'The specified "LocalSubnet" (%s) is invalid.', - ], - [ - 'errorCode' => 'IllegalParam.RemoteSubnet', - 'errorMessage' => 'The specified "RemoteSubnet" (%s) is invalid.', - ], - [ - 'errorCode' => 'OperationFailed.CenLevelNotSupport', - 'errorMessage' => 'When the VPC to which the VPN gateway belongs is attached to a FULL-mode CEN, the VPN gateway cannot enable BGP.', - ], - [ - 'errorCode' => 'InvalidTunnelCidr.Malformed', - 'errorMessage' => 'The specified TunnelCidr is malformed.', - ], - [ - 'errorCode' => 'CustomerGateway.ConflictRouteEntry', - 'errorMessage' => 'The specified customer gateway has conflict with route entry.', - ], - [ - 'errorCode' => 'VpnTask.CONFLICT', - 'errorMessage' => 'Vpn task has conflict.', - ], - [ - 'errorCode' => 'OperationFailed.RouteConflictWithIPsecServer', - 'errorMessage' => 'Operation failed because the route to create conflicts with the client IP pool of the IPsec server.', - ], - [ - 'errorCode' => 'IllegalParam.TunnelId', - 'errorMessage' => 'The specified TunnelId is invalid.', - ], - [ - 'errorCode' => 'IllegalParam.Role', - 'errorMessage' => 'The specified Role is invalid.', - ], - [ - 'errorCode' => 'VpnConnectionParamInvalid.SameVpnAndCgwDifferentIkeConfigs', - 'errorMessage' => 'IPSec connections associated with the same user gateway and VPN gateway should have the same pre-shared key and IKE configuration.', - ], - [ - 'errorCode' => 'VpnConnectionParamInvalid.SameVpnAndCgwTrafficSelectorOverlap', - 'errorMessage' => 'Traffic selectors of IPSec connections associated with the same user gateway and VPN gateway should not overlap.', - ], - [ - 'errorCode' => 'ModifyIkeV1WithMultiRoutes.Invalid', - 'errorMessage' => 'Failed to modify VPN connection parameters. Multi-network is configured while using IkeV1 protocol.', - ], - [ - 'errorCode' => 'Vco.StatusNotSupport', - 'errorMessage' => 'The current VPN connection state does not support this operation.', - ], - [ - 'errorCode' => 'IkeVersionInvalid.GcmIncompatible', - 'errorMessage' => 'Ikev1 does not support IkeEncAlg of gcm16.', - ], - [ - 'errorCode' => 'EncAlgInvalid.DesIncompatible', - 'errorMessage' => 'Des/3des in IkeEncAlg and IpsecEncAlg does not support multi algorithm.', - ], - [ - 'errorCode' => 'CustomerGateway.ConflictVpnIp', - 'errorMessage' => 'The specified customer gateway has conflict with vpn gateway ip.', - ], + ['errorCode' => 'VpnGateway.Configuring', 'errorMessage' => 'The specified service is configuring.', 'description' => ''], + ['errorCode' => 'VpnGateway.FinancialLocked', 'errorMessage' => 'The specified service is financial locked.', 'description' => ''], + ['errorCode' => 'InvalidName', 'errorMessage' => 'The name is not valid', 'description' => ''], + ['errorCode' => 'VpnRouteEntry.AlreadyExists', 'errorMessage' => 'The specified route entry is already exist.', 'description' => 'The route already exists.'], + ['errorCode' => 'VpnRouteEntry.Conflict', 'errorMessage' => 'The specified route entry has conflict.', 'description' => 'Route conflicts exist.'], + ['errorCode' => 'NotSupportVpnConnectionParameter.IpsecPfs', 'errorMessage' => 'The specified vpn connection ipsec Ipsec Pfs is not support.', 'description' => 'The PFS parameter set for the IPsec-VPN connection is not supported.'], + ['errorCode' => 'NotSupportVpnConnectionParameter.IpsecAuthAlg', 'errorMessage' => 'The specified vpn connection ipsec Auth Alg is not support.', 'description' => 'The authentication algorithm specified for the IPsec-VPN connection is not supported.'], + ['errorCode' => 'VpnRouteEntry.ConflictSSL', 'errorMessage' => 'The specified route entry has conflict with SSL client.', 'description' => 'The route conflicts with the SSL client.'], + ['errorCode' => 'VpnRouteEntry.BackupRoute', 'errorMessage' => 'Validate backup route entry failed.', 'description' => 'Active/standby routes failed authentication.'], + ['errorCode' => 'VpnRouteEntry.InvalidWeight', 'errorMessage' => 'Invalid route entry weight value.', 'description' => 'The weight specified for the route is invalid.'], + ['errorCode' => 'QuotaExceeded.PBR', 'errorMessage' => 'The policy-based routes has reached the upper limit.', 'description' => 'The number of policy-based routes has reached the upper limit.'], + ['errorCode' => 'OperationUnsupported.SetDPD', 'errorMessage' => 'Current version of the VPN does not support setting DPD.', 'description' => 'The VPN gateway version does not support DPD.'], + ['errorCode' => 'OperationUnsupported.SetNatTraversal', 'errorMessage' => 'Current version of the VPN does not support setting NAT traversal.', 'description' => 'The VPN gateway version does not support NAT traversal.'], + ['errorCode' => 'QuotaExceeded.PolicyBasedRoute', 'errorMessage' => 'The maximum number of policy-based routes is exceeded. Existing routes: %s. Routes to be created: %s. Maximum routes: %s.', 'description' => 'The quota of policy-based routes is reached. Existing routes: %s. Routes to be created: %s. Quota: %s.'], + ['errorCode' => 'MissingParameter.TunnelCidr', 'errorMessage' => 'The parameter TunnelCidr is mandatory when BGP is enabled.', 'description' => 'You must specify the tunnel CIDR block when you enable BGP.'], + ['errorCode' => 'OperationUnsupported.EnableBgp', 'errorMessage' => 'Current version of the VPN does not support enable BGP.', 'description' => 'The current version of the VPN gateway does not support BGP.'], + ['errorCode' => 'MissingParam.CustomerGatewayAsn', 'errorMessage' => 'Asn of customer gateway is mandatory when BGP is enabled.', 'description' => 'The ASN of the customer gateway cannot be empty when you enable BGP.'], + ['errorCode' => 'IllegalParam.LocalAsn', 'errorMessage' => 'The specified LocalAsn is invalid.', 'description' => 'The local ASN is invalid.'], + ['errorCode' => 'IllegalParam.BgpConfig', 'errorMessage' => 'The specified BgpConfig is invalid.', 'description' => 'The BGP configuration is invalid.'], + ['errorCode' => 'IllegalParam.EnableBgp', 'errorMessage' => 'VPN connection must enable BGP when VPN gateway has enabled BGP.', 'description' => 'The error message returned because the VPN connection must use BGP if BGP is enabled for the VPN gateway.'], + ['errorCode' => 'IllegalParam.TunnelCidr', 'errorMessage' => 'The specified TunnelCidr is invalid.', 'description' => 'The TunnelCidr parameter is set to an invalid value.'], + ['errorCode' => 'InvalidLocalBgpIp.Malformed', 'errorMessage' => 'The specified LocalBgpIp is malformed.', 'description' => 'The local BGP IP address is in an abnormal state.'], + ['errorCode' => 'IllegalParam.LocalBgpIp', 'errorMessage' => 'The specified LocalBgpIp is invalid.', 'description' => 'The local BGP IP address is invalid.'], + ['errorCode' => 'IllegalParam.LocalSubnet', 'errorMessage' => 'The specified "LocalSubnet" (%s) is invalid.', 'description' => 'The specified "LocalSubnet" (%s) is invalid.'], + ['errorCode' => 'IllegalParam.RemoteSubnet', 'errorMessage' => 'The specified "RemoteSubnet" (%s) is invalid.', 'description' => 'The specified "RemoteSubnet" (%s) is invalid.'], + ['errorCode' => 'OperationFailed.CenLevelNotSupport', 'errorMessage' => 'When the VPC to which the VPN gateway belongs is attached to a FULL-mode CEN, the VPN gateway cannot enable BGP.', 'description' => 'When the VPC to which the VPN gateway belongs is attached to a FULL-mode CEN, the VPN gateway cannot enable BGP.'], + ['errorCode' => 'InvalidTunnelCidr.Malformed', 'errorMessage' => 'The specified TunnelCidr is malformed.', 'description' => 'The specified tunnel CIDR block is invalid.'], + ['errorCode' => 'CustomerGateway.ConflictRouteEntry', 'errorMessage' => 'The specified customer gateway has conflict with route entry.', 'description' => 'The customer gateway conflicts with the current routes.'], + ['errorCode' => 'VpnTask.CONFLICT', 'errorMessage' => 'Vpn task has conflict.', 'description' => 'The VPN operation conflicts. Try again later.'], + ['errorCode' => 'OperationFailed.RouteConflictWithIPsecServer', 'errorMessage' => 'Operation failed because the route to create conflicts with the client IP pool of the IPsec server.', 'description' => 'Operation failed because the route to create conflicts with the client IP pool of the IPsec server.'], + ['errorCode' => 'IllegalParam.TunnelId', 'errorMessage' => 'The specified TunnelId is invalid.', 'description' => 'TunnelId is set to an invalid value.'], + ['errorCode' => 'IllegalParam.Role', 'errorMessage' => 'The specified Role is invalid.', 'description' => 'Role is set to an invalid value.'], + ['errorCode' => 'VpnConnectionParamInvalid.SameVpnAndCgwDifferentIkeConfigs', 'errorMessage' => 'IPSec connections associated with the same user gateway and VPN gateway should have the same pre-shared key and IKE configuration.', 'description' => 'The pre-shared key and IKE parameters must be the same for IPsec-VPN connections that are associated with the same VPN gateway and customer gateway.'], + ['errorCode' => 'VpnConnectionParamInvalid.SameVpnAndCgwTrafficSelectorOverlap', 'errorMessage' => 'Traffic selectors of IPSec connections associated with the same user gateway and VPN gateway should not overlap.', 'description' => 'The protected data flows of IPsec-VPN connections that are associated with the same VPN gateway and customer gateway cannot overlap.'], + ['errorCode' => 'ModifyIkeV1WithMultiRoutes.Invalid', 'errorMessage' => 'Failed to modify VPN connection parameters. Multi-network is configured while using IkeV1 protocol.', 'description' => 'Failed to modify VPN connection parameters. Multi-network is configured while using IkeV1 protocol.'], + ['errorCode' => 'Vco.StatusNotSupport', 'errorMessage' => 'The current VPN connection state does not support this operation.', 'description' => 'The operation cannot be performed when the VPN connection is in the current state.'], + ['errorCode' => 'IkeVersionInvalid.GcmIncompatible', 'errorMessage' => 'Ikev1 does not support IkeEncAlg of gcm16.', 'description' => 'Ikev1 does not support IkeEncAlg of gcm16.'], + ['errorCode' => 'EncAlgInvalid.DesIncompatible', 'errorMessage' => 'Des/3des in IkeEncAlg and IpsecEncAlg does not support multi algorithm.', 'description' => 'Des/3des in IkeEncAlg and IpsecEncAlg does not support multi algorithm.'], + ['errorCode' => 'CustomerGateway.ConflictVpnIp', 'errorMessage' => 'The specified customer gateway has conflict with vpn gateway ip.', 'description' => 'The specified customer gateway has conflict with vpn gateway ip.'], ], 403 => [ - [ - 'errorCode' => 'Forbbiden.SubUser', - 'errorMessage' => 'User not authorized to operate on the specified resource as your account is created by another user.', - ], - [ - 'errorCode' => 'Forbidden', - 'errorMessage' => 'User not authorized to operate on the specified resource.', - ], + ['errorCode' => 'Forbbiden.SubUser', 'errorMessage' => 'User not authorized to operate on the specified resource as your account is created by another user.', 'description' => ''], + ['errorCode' => 'Forbidden', 'errorMessage' => 'User not authorized to operate on the specified resource.', 'description' => 'You do not have the permissions to manage the specified resource. Apply for the permissions and try again.'], ], [ - [ - 'errorCode' => 'InvalidVpnConnectionInstanceId.NotFound', - 'errorMessage' => 'The specified vpn connection instance id does not exist.', - ], + ['errorCode' => 'InvalidVpnConnectionInstanceId.NotFound', 'errorMessage' => 'The specified vpn connection instance id does not exist.', 'description' => 'The specified vpn connection instance id does not exist.'], ], 500 => [ - [ - 'errorCode' => 'OperationFailed.RouteConflictWithIPsecServer', - 'errorMessage' => 'Operation failed because the specified route conflicts with IPsec server.', - ], + ['errorCode' => 'OperationFailed.RouteConflictWithIPsecServer', 'errorMessage' => 'Operation failed because the specified route conflicts with IPsec server.', 'description' => 'The route conflicts with the IPsec server.'], ], ], - 'staticInfo' => [ - 'returnType' => 'asynchronous', - 'callback' => 'Vpc::2016-04-28::DescribeVpnGateway', - 'callbackInterval' => 2000, - 'maxCallbackTimes' => 30, - ], + 'staticInfo' => ['returnType' => 'asynchronous', 'callback' => 'Vpc::2016-04-28::DescribeVpnGateway', 'callbackInterval' => 2000, 'maxCallbackTimes' => 30], 'eventInfo' => [ 'enable' => false, 'eventNames' => [], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"EnableNatTraversal\\": true,\\n \\"CreateTime\\": 1492753817000,\\n \\"EffectImmediately\\": false,\\n \\"VpnGatewayId\\": \\"vpn-bp1q8bgx4xnkm2ogj****\\",\\n \\"LocalSubnet\\": \\"10.1.1.0/24,10.1.2.0/24\\",\\n \\"RequestId\\": \\"7DB79D0C-5F27-4AB5-995B-79BE55102F90\\",\\n \\"VpnConnectionId\\": \\"vco-bp1bbi27hojx80nck****\\",\\n \\"Description\\": \\"description\\",\\n \\"RemoteSubnet\\": \\"10.2.1.0/24,10.2.2.0/24\\",\\n \\"CustomerGatewayId\\": \\"cgw-p0w2jemrcj5u61un8****\\",\\n \\"Name\\": \\"nametest\\",\\n \\"EnableDpd\\": true,\\n \\"IkeConfig\\": {\\n \\"RemoteId\\": \\"139.18.XX.XX\\",\\n \\"IkeLifetime\\": 86400,\\n \\"IkeEncAlg\\": \\"aes\\",\\n \\"LocalId\\": \\"116.64.XX.XX\\",\\n \\"IkeMode\\": \\"main\\",\\n \\"IkeVersion\\": \\"ikev1\\",\\n \\"IkePfs\\": \\"group2\\",\\n \\"Psk\\": \\"pgw6dy7d1i8i****\\",\\n \\"IkeAuthAlg\\": \\"sha1\\"\\n },\\n \\"IpsecConfig\\": {\\n \\"IpsecAuthAlg\\": \\"sha1\\",\\n \\"IpsecLifetime\\": 86400,\\n \\"IpsecEncAlg\\": \\"aes\\",\\n \\"IpsecPfs\\": \\"group2\\"\\n },\\n \\"VcoHealthCheck\\": {\\n \\"Dip\\": \\"192.168.1.1\\",\\n \\"Interval\\": 3,\\n \\"Retry\\": 3,\\n \\"Sip\\": \\"10.1.1.1\\",\\n \\"Enable\\": \\"true\\"\\n },\\n \\"VpnBgpConfig\\": {\\n \\"Status\\": \\"success\\",\\n \\"PeerBgpIp\\": \\"169.254.11.2\\",\\n \\"TunnelCidr\\": \\"169.254.11.0/30\\",\\n \\"EnableBgp\\": \\"true\\",\\n \\"LocalBgpIp\\": \\"169.254.11.1\\",\\n \\"PeerAsn\\": 65531,\\n \\"LocalAsn\\": 65530\\n },\\n \\"TunnelOptionsSpecification\\": {\\n \\"TunnelOptions\\": [\\n {\\n \\"CustomerGatewayId\\": \\"cgw-p0wy363lucf1uyae8****\\",\\n \\"EnableDpd\\": true,\\n \\"EnableNatTraversal\\": true,\\n \\"InternetIp\\": \\"47.21.XX.XX\\",\\n \\"RemoteCaCertificate\\": \\"-----BEGIN CERTIFICATE----- MIIB7zCCAZW**** -----END CERTIFICATE-----\\",\\n \\"Role\\": \\"master\\",\\n \\"State\\": \\"active\\",\\n \\"TunnelBgpConfig\\": {\\n \\"LocalAsn\\": 65530,\\n \\"LocalBgpIp\\": \\"169.254.10.1\\",\\n \\"PeerAsn\\": 65531,\\n \\"PeerBgpIp\\": \\"169.254.10.2\\",\\n \\"TunnelCidr\\": \\"169.254.10.0/30\\"\\n },\\n \\"TunnelId\\": \\"tun-opsqc4d97wni27****\\",\\n \\"TunnelIkeConfig\\": {\\n \\"IkeAuthAlg\\": \\"sha1\\",\\n \\"IkeEncAlg\\": \\"aes\\",\\n \\"IkeLifetime\\": 86400,\\n \\"IkeMode\\": \\"main\\",\\n \\"IkePfs\\": \\"group2\\",\\n \\"IkeVersion\\": \\"ikev1\\",\\n \\"LocalId\\": \\"47.21.XX.XX\\",\\n \\"Psk\\": \\"123456****\\",\\n \\"RemoteId\\": \\"47.42.XX.XX\\"\\n },\\n \\"TunnelIpsecConfig\\": {\\n \\"IpsecAuthAlg\\": \\"sha1\\",\\n \\"IpsecEncAlg\\": \\"aes\\",\\n \\"IpsecLifetime\\": 86400,\\n \\"IpsecPfs\\": \\"group2\\"\\n },\\n \\"ZoneNo\\": \\"ap-southeast-5a\\"\\n }\\n ]\\n },\\n \\"EnableTunnelsBgp\\": true,\\n \\"ResourceGroupId\\": \\"rg-acfmzs372yg****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n true\\n 1492753817000\\n false\\n vpn-bp1q8bgx4xnkm2ogj****\\n 10.1.1.0/24,10.1.2.0/24\\n 7DB79D0C-5F27-4AB5-995B-79BE55102F90\\n vco-bp1bbi27hojx80nck****\\n description\\n 10.2.1.0/24,10.2.2.0/24\\n cgw-p0w2jemrcj5u61un8****\\n nametest\\n true\\n \\n 139.18.XX.XX\\n 86400\\n aes\\n 116.64.XX.XX\\n main\\n ikev1\\n group2\\n pgw6dy7d1i8i****\\n sha1\\n \\n \\n sha1\\n 86400\\n aes\\n group2\\n \\n \\n 192.168.1.1\\n 3\\n 3\\n 10.1.1.1\\n true\\n \\n \\n success\\n 169.254.11.2\\n 169.254.11.0/30\\n true\\n 169.254.11.1\\n 65531\\n 65530\\n \\n","errorExample":""}]', 'title' => 'ModifyVpnConnectionAttribute', 'description' => '* If you want to modify a IPsec-VPN connection in dual-tunnel mode, call the `ModifyVpnConnectionAttribute` operation. You can modify the required parameters and the following request parameters:'."\n" ."\n" @@ -70390,17 +54380,21 @@ 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2024-10-24T11:19:58.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2024-01-04T07:17:10.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-10-23T08:44:35.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-10-19T08:26:51.000Z', 'description' => 'Error codes changed, Request parameters changed, Response parameters changed'], + ['createdAt' => '2023-08-01T06:15:52.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2023-06-30T12:44:25.000Z', 'description' => 'Request parameters changed, Response parameters changed'], + ['createdAt' => '2022-12-08T09:38:29.000Z', 'description' => 'Error codes changed'], + ], + 'ramActions' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"EnableNatTraversal\\": true,\\n \\"CreateTime\\": 1492753817000,\\n \\"EffectImmediately\\": false,\\n \\"VpnGatewayId\\": \\"vpn-bp1q8bgx4xnkm2ogj****\\",\\n \\"LocalSubnet\\": \\"10.1.1.0/24,10.1.2.0/24\\",\\n \\"RequestId\\": \\"7DB79D0C-5F27-4AB5-995B-79BE55102F90\\",\\n \\"VpnConnectionId\\": \\"vco-bp1bbi27hojx80nck****\\",\\n \\"Description\\": \\"description\\",\\n \\"RemoteSubnet\\": \\"10.2.1.0/24,10.2.2.0/24\\",\\n \\"CustomerGatewayId\\": \\"cgw-p0w2jemrcj5u61un8****\\",\\n \\"Name\\": \\"nametest\\",\\n \\"EnableDpd\\": true,\\n \\"IkeConfig\\": {\\n \\"RemoteId\\": \\"139.18.XX.XX\\",\\n \\"IkeLifetime\\": 86400,\\n \\"IkeEncAlg\\": \\"aes\\",\\n \\"LocalId\\": \\"116.64.XX.XX\\",\\n \\"IkeMode\\": \\"main\\",\\n \\"IkeVersion\\": \\"ikev1\\",\\n \\"IkePfs\\": \\"group2\\",\\n \\"Psk\\": \\"pgw6dy7d1i8i****\\",\\n \\"IkeAuthAlg\\": \\"sha1\\"\\n },\\n \\"IpsecConfig\\": {\\n \\"IpsecAuthAlg\\": \\"sha1\\",\\n \\"IpsecLifetime\\": 86400,\\n \\"IpsecEncAlg\\": \\"aes\\",\\n \\"IpsecPfs\\": \\"group2\\"\\n },\\n \\"VcoHealthCheck\\": {\\n \\"Dip\\": \\"192.168.1.1\\",\\n \\"Interval\\": 3,\\n \\"Retry\\": 3,\\n \\"Sip\\": \\"10.1.1.1\\",\\n \\"Enable\\": \\"true\\"\\n },\\n \\"VpnBgpConfig\\": {\\n \\"Status\\": \\"success\\",\\n \\"PeerBgpIp\\": \\"169.254.11.2\\",\\n \\"TunnelCidr\\": \\"169.254.11.0/30\\",\\n \\"EnableBgp\\": \\"true\\",\\n \\"LocalBgpIp\\": \\"169.254.11.1\\",\\n \\"PeerAsn\\": 65531,\\n \\"LocalAsn\\": 65530\\n },\\n \\"TunnelOptionsSpecification\\": {\\n \\"TunnelOptions\\": [\\n {\\n \\"CustomerGatewayId\\": \\"cgw-p0wy363lucf1uyae8****\\",\\n \\"EnableDpd\\": true,\\n \\"EnableNatTraversal\\": true,\\n \\"InternetIp\\": \\"47.21.XX.XX\\",\\n \\"RemoteCaCertificate\\": \\"-----BEGIN CERTIFICATE----- MIIB7zCCAZW**** -----END CERTIFICATE-----\\",\\n \\"Role\\": \\"master\\",\\n \\"State\\": \\"active\\",\\n \\"TunnelBgpConfig\\": {\\n \\"LocalAsn\\": 65530,\\n \\"LocalBgpIp\\": \\"169.254.10.1\\",\\n \\"PeerAsn\\": 65531,\\n \\"PeerBgpIp\\": \\"169.254.10.2\\",\\n \\"TunnelCidr\\": \\"169.254.10.0/30\\"\\n },\\n \\"TunnelId\\": \\"tun-opsqc4d97wni27****\\",\\n \\"TunnelIkeConfig\\": {\\n \\"IkeAuthAlg\\": \\"sha1\\",\\n \\"IkeEncAlg\\": \\"aes\\",\\n \\"IkeLifetime\\": 86400,\\n \\"IkeMode\\": \\"main\\",\\n \\"IkePfs\\": \\"group2\\",\\n \\"IkeVersion\\": \\"ikev1\\",\\n \\"LocalId\\": \\"47.21.XX.XX\\",\\n \\"Psk\\": \\"123456****\\",\\n \\"RemoteId\\": \\"47.42.XX.XX\\"\\n },\\n \\"TunnelIpsecConfig\\": {\\n \\"IpsecAuthAlg\\": \\"sha1\\",\\n \\"IpsecEncAlg\\": \\"aes\\",\\n \\"IpsecLifetime\\": 86400,\\n \\"IpsecPfs\\": \\"group2\\"\\n },\\n \\"ZoneNo\\": \\"ap-southeast-5a\\"\\n }\\n ]\\n },\\n \\"EnableTunnelsBgp\\": true,\\n \\"ResourceGroupId\\": \\"rg-acfmzs372yg****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n true\\n 1492753817000\\n false\\n vpn-bp1q8bgx4xnkm2ogj****\\n 10.1.1.0/24,10.1.2.0/24\\n 7DB79D0C-5F27-4AB5-995B-79BE55102F90\\n vco-bp1bbi27hojx80nck****\\n description\\n 10.2.1.0/24,10.2.2.0/24\\n cgw-p0w2jemrcj5u61un8****\\n nametest\\n true\\n \\n 139.18.XX.XX\\n 86400\\n aes\\n 116.64.XX.XX\\n main\\n ikev1\\n group2\\n pgw6dy7d1i8i****\\n sha1\\n \\n \\n sha1\\n 86400\\n aes\\n group2\\n \\n \\n 192.168.1.1\\n 3\\n 3\\n 10.1.1.1\\n true\\n \\n \\n success\\n 169.254.11.2\\n 169.254.11.0/30\\n true\\n 169.254.11.1\\n 65531\\n 65530\\n \\n","errorExample":""}]', ], - 'ModifyTunnelAttribute' => [ - 'summary' => 'Modifies a VPN tunnel.', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'ModifyVpnGatewayAttribute' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -70408,2701 +54402,1204 @@ ], 'operationType' => 'readAndWrite', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'update', - 'riskType' => 'none', - 'chargeType' => 'free', - ], + 'systemTags' => ['operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => ['description' => 'The region ID of the VPN gateway instance. You can call [DescribeRegions](~~36063~~) to query the most recent region list.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], + ], [ 'name' => 'ClientToken', 'in' => 'query', - 'allowEmptyValue' => true, - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'You can use the client to generate a token, but you must make sure that the token is unique among different requests. The client token can contain only ASCII characters.'."\n" - ."\n" - .'> If you do not specify this parameter, the system automatically uses the value of **RequestId** as the **client token**. The value of **RequestId** is different for each API request.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '02fb3da4-130e-11e9-8e44-0016e04115b', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'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.'."\n" + ."\n" + .'> If you do not specify this parameter, the system automatically uses the **RequestId** of the API request as the **ClientToken**. The **RequestId** may be different for each API request.', 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-4266****', 'title' => ''], ], [ - 'name' => 'TunnelOptionsSpecification', + 'name' => 'VpnGatewayId', 'in' => 'query', - 'style' => 'flat', + 'schema' => ['description' => 'The ID of the VPN gateway instance.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'vpn-bp1q8bgx4xnkm2ogj****', 'title' => ''], + ], + [ + 'name' => 'Name', + 'in' => 'query', + 'schema' => ['description' => 'The new name of the VPN gateway. '."\n" + ."\n" + .'The name must be 2 to 100 characters in length and cannot start with `http://` or `https://`. It must start with an uppercase or lowercase letter and can contain uppercase and lowercase letters, digits, underscores (\\_), hyphens (-), and periods (.). Other special characters are not supported.', 'type' => 'string', 'required' => false, 'example' => 'myvpn', 'title' => ''], + ], + [ + 'name' => 'Description', + 'in' => 'query', + 'schema' => ['description' => 'The new description of the VPN gateway. '."\n" + .' '."\n" + .'The description must be 1 to 100 characters in length.', 'type' => 'string', 'required' => false, 'example' => 'test', 'title' => ''], + ], + [ + 'name' => 'AutoPropagate', + 'in' => 'query', + 'schema' => ['description' => 'Specifies whether to enable routing automatic propagation for the VPN gateway. Valid values:'."\n" + ."\n" + .'- **true**: enabled.'."\n" + ."\n" + .' After routing automatic propagation is enabled, the VPN gateway instance performs automatic learning of system routes from the system route table of the VPC-connected instance and automatically propagates routes of the on-premises data center to the system route table of the VPC-connected instance.'."\n" + .'- **false**: disabled.'."\n" + .' '."\n" + .' Before you disable routing automatic propagation, make sure that the BGP dynamic route feature is disabled for all IPsec-VPN connections under the VPN gateway.', 'type' => 'boolean', 'required' => false, 'example' => 'true', 'title' => ''], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => 'The tunnel configurations.'."\n", + 'description' => 'The response parameters.', 'type' => 'object', 'properties' => [ - 'EnableDpd' => [ - 'description' => 'Specifies whether to enable dead peer detection (DPD). Valid values:'."\n" - ."\n" - .'* **true** The IPsec initiator sends DPD packets to check the IPsec peer is alive. If no response is received from the peer within a specified period of time, the IPsec peer is considered disconnected. Then, the ISAKMP SA, IPsec SA, and IPsec tunnel are deleted.'."\n" - .'* **false**: DPD is disabled. The IPsec initiator does not send DPD packets.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], - 'EnableNatTraversal' => [ - 'description' => 'Specifies whether to enable NAT traversal. Valid values:'."\n" - ."\n" - .'* **true**: enables NAT traversal. After NAT traversal is enabled, the initiator does not check the UDP ports during IKE negotiations and can automatically discover NAT gateway devices along the IPsec-VPN tunnel.'."\n" - .'* **false**: disables NAT traversal.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], - 'RemoteCaCertificate' => [ - 'description' => 'The peer certificate authority (CA) certificate when you want to attach the IPsec connection to a virtual private network (VPN) gateway that uses a ShangMi (SM) certificate.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '-----BEGIN CERTIFICATE----- MIIB7zCCAZW**** -----END CERTIFICATE-----', - ], - 'TunnelBgpConfig' => [ - 'description' => 'The Border Gateway Protocol (BGP) configurations of the tunnel.'."\n" - ."\n" - .'If the BGP feature is not enabled for the tunnel, you must call the [ModifyVpnConnectionAttribute](~~120381~~) operation to enable the feature and configure BGP.'."\n", - 'type' => 'object', - 'properties' => [ - 'LocalAsn' => [ - 'description' => 'The local autonomous system number (ASN). Valid values: **1** to **4294967295**.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '65530', - ], - 'LocalBgpIp' => [ - 'description' => 'The BGP IP address of the tunnel. The address needs to be an IP address within the **TunnelCidr**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '169.254.11.1', - ], - 'TunnelCidr' => [ - 'description' => 'The CIDR block of the tunnel.'."\n" - ."\n" - .'The CIDR block must fall within 169.254.0.0/16 and the mask of the CIDR block must be 30 bits in length. The CIDR block cannot be 169.254.0.0/30, 169.254.1.0/30, 169.254.2.0/30, 169.254.3.0/30, 169.254.4.0/30, 169.254.5.0/30, 169.254.6.0/30, or 169.254.169.252/30.'."\n" - ."\n" - .'> The CIDR block of the IPsec tunnel for each IPsec-VPN connection on a VPN gateway must be unique.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '169.254.11.0/30', - ], - ], - 'required' => false, - ], - 'TunnelIkeConfig' => [ - 'description' => 'The configurations of IKE Phase 1.'."\n", - 'type' => 'object', - 'properties' => [ - 'IkeAuthAlg' => [ - 'description' => 'The authentication algorithm that is used in IKE Phase 1 negotiations.'."\n" - ."\n\n" - .''."\n" - ."\n" - .'* If an IPsec-VPN gateway is associated with a standard VPN gateway, the valid values are **md5**, **sha1**, **sha256**, **sha384**, and **sha512**.'."\n" - .'* If the IPsec-VPN gateway is associated with an SSL-VPN gateway, the valid value is **sm3**.'."\n" - ."\n" - .''."\n" - .''."\n" - ."\n" - .'Valid values: **md5**, **sha1**, **sha256**, **sha384**, and **sha512**.'."\n" - ."\n" - .'', - 'type' => 'string', - 'required' => false, - 'example' => 'sha1', - ], - 'IkeEncAlg' => [ - 'description' => 'The encryption algorithm that is used in IKE Phase 1 negotiations.'."\n" - ."\n" - .''."\n" - ."\n" - .'* If an IPsec-VPN gateway is associated with a standard VPN gateway, the valid values are **aes**, **aes192**, **aes256**, **des**, and **3des**.'."\n" - .'* If the IPsec-VPN gateway is associated with an SSL-VPN gateway, set the value to **sm4**.'."\n" - ."\n" - .''."\n" - .''."\n" - ."\n" - .'Valid values: **aes**, **aes192**, **aes256**, **des**, and **3des**.'."\n" - ."\n" - .'', - 'type' => 'string', - 'required' => false, - 'example' => 'aes', - ], - 'IkeLifetime' => [ - 'description' => 'The SA lifetime as a result of Phase 1 negotiations. Unit: seconds Valid values: **0 to 86400**.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '86400', - ], - 'IkeMode' => [ - 'description' => 'The negotiation mode of IKE. Valid values:'."\n" - ."\n" - .'* **main:** This mode offers higher security during negotiations.'."\n" - .'* **aggressive**: This mode is faster and has a higher success rate.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'main', - ], - 'IkePfs' => [ - 'description' => 'The Diffie-Hellman key exchange algorithm that is used in Phase 1 negotiations. Valid values: **group1**, **group2**, **group5**, and **group14**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'group2', - ], - 'IkeVersion' => [ - 'description' => 'The version of the IKE protocol. Valid values: **ikev1** and **ikev2**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'ikev2', - ], - 'LocalId' => [ - 'description' => 'The tunnel identifier. The identifier can be up to 100 characters in length and cannot contain spaces. It supports fully qualified domain names (FQDNs) and IP addresses. The default value is the IP address of the tunnel.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '47.XX.XX.87', - ], - 'Psk' => [ - 'description' => 'The pre-shared key that is used to verify identities between the tunnel and peer.'."\n" - ."\n" - .'* The key must be 1 to 100 characters in length, and can contain digits, and letters. It cannot contain spaces. ``~!`@#$%^&*()_-+={}[]|;:\',.<>/?``'."\n" - .'* If you do not specify a pre-shared key, the system randomly generates a 16-bit string as the key. You can call the [DescribeVpnConnection](~~120374~~) operation to query the pre-shared key that is automatically generated by the system.'."\n" - ."\n" - .'> The pre-shared key that is configured for the tunnel and the tunnel peer must be the same. Otherwise, the system cannot establish the tunnel.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '123456****', - ], - 'RemoteId' => [ - 'description' => 'The peer identifier. The identifier can be up to 100 characters in length, and cannot contain spaces. It supports FQDNs and IP addresses. The default identifier is the IP address of the customer gateway associated with the tunnel.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '47.XX.XX.207', - ], - ], - 'required' => false, - ], - 'TunnelIpsecConfig' => [ - 'description' => 'The configurations of IPsec Phase 2.'."\n", - 'type' => 'object', - 'properties' => [ - 'IpsecAuthAlg' => [ - 'description' => 'The authentication algorithm that is used in IPsec Phase 2 negotiations.'."\n" - ."\n" - .''."\n" - ."\n" - .'* If an IPsec-VPN gateway is associated with a standard VPN gateway, the valid values are **md5**, **sha1**, **sha256**, **sha384**, and **sha512**.'."\n" - .'* If the IPsec-VPN gateway is associated with an SSL-VPN gateway, set the value to **sm3**.'."\n" - ."\n" - .''."\n" - ."\n" - .''."\n" - ."\n" - .'Valid values: **md5**, **sha1**, **sha256**, **sha384**, and **sha512**.'."\n" - ."\n" - .'', - 'type' => 'string', - 'required' => false, - 'example' => 'sha1', - ], - 'IpsecEncAlg' => [ - 'description' => 'The encryption algorithm that is used in IPsec Phase 2 negotiations.'."\n" - ."\n" - .''."\n" - ."\n" - .'* If an IPsec-VPN gateway is associated with a standard VPN gateway, the valid values are **aes**, **aes192**, **aes256**, **des**, and **3des**.'."\n" - .'* If the IPsec connection is attached to a VPN gateway that uses an SM certificate, set the value to **sm4**.'."\n" - ."\n" - .''."\n" - ."\n" - .''."\n" - ."\n" - .'Valid values: **aes**, **aes192**, **aes256**, **des**, and **3des**.'."\n" - ."\n" - .'', - 'type' => 'string', - 'required' => false, - 'example' => 'aes', - ], - 'IpsecLifetime' => [ - 'description' => 'The SA lifetime as a result of Phase 2 negotiations. Unit: seconds Valid values: **0 to 86400**.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '86400', - ], - 'IpsecPfs' => [ - 'description' => 'The Diffie-Hellman key exchange algorithm that is used in Phase 2 negotiations. Valid values: **disabled**, **group1**, **group2**, **group5**, and **group14**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'group2', - ], - ], - 'required' => false, - ], - 'CustomerGatewayId' => [ - 'description' => 'The ID of the customer gateway associated with the tunnel.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'cgw-1nmwbpgrp7ssqm1yn****', - ], + 'VpcId' => ['description' => 'The ID of the VPC to which the VPN gateway instance belongs.', 'type' => 'string', 'example' => 'vpc-bp1ub1yt9cvakoel****', 'title' => ''], + 'Status' => ['description' => 'The status of the VPN gateway. Valid values:'."\n" + ."\n" + .'- **init**: initializing.'."\n" + .'- **provisioning**: preparing.'."\n" + .'- **active**: Normal.'."\n" + .'- **updating**: updating.'."\n" + .'- **deleting**: deleting.', 'type' => 'string', 'example' => 'active', 'title' => ''], + 'InternetIp' => ['description' => '- If the VPN gateway instance supports single-tunnel IPsec-VPN connections, this address is the IP address of the VPN gateway instance and can be used to create IPsec-VPN connections or SSL-VPN connections.'."\n" + ."\n" + .'- If the VPN gateway instance supports dual-tunnel IPsec-VPN connections, this address is the first IP address used to create IPsec-VPN connections and cannot be used to create SSL-VPN connections.'."\n" + ."\n" + .' If the VPN gateway instance supports dual-tunnel IPsec-VPN connections, the system assigns two IPsec IP addresses to the VPN gateway instance for creating dual-tunnel IPsec-VPN connections.', 'type' => 'string', 'example' => '116.62.XX.XX', 'title' => ''], + 'Spec' => ['description' => 'The bandwidth specification of the VPN gateway instance. Unit: Mbit/s.', 'type' => 'string', 'example' => '5M', 'title' => ''], + 'CreateTime' => ['description' => 'The timestamp when the VPN gateway instance was created. Unit: milliseconds.'."\n" + ."\n" + .'The timestamp follows the UNIX timestamp format, which represents the total number of milliseconds that have elapsed since January 1, 1970, 00:00:00 UTC to the time when the VPN gateway instance was created.', 'type' => 'integer', 'format' => 'int64', 'example' => '1492753580000', 'title' => ''], + 'AutoPropagate' => ['description' => 'Indicates whether BGP routes are automatically propagated to the VPC. Valid values:'."\n" + ."\n" + .'- **true**: automatic propagation is enabled.'."\n" + ."\n" + .'- **false**: automatic propagation is not enabled.', 'type' => 'boolean', 'example' => 'true', 'title' => ''], + 'VpnGatewayId' => ['description' => 'The ID of the VPN gateway instance.', 'type' => 'string', 'example' => 'vpn-bp1q8bgx4xnkm2ogj****', 'title' => ''], + 'IntranetIp' => ['description' => 'The private IP address of the vSwitch occupied by the system when the VPN gateway instance was deployed.'."\n" + ."\n" + .'This parameter is returned only for VPN gateway instances that support single-tunnel IPsec-VPN connections and have the IPsec-VPN feature enabled.', 'type' => 'string', 'example' => '172.16.10.46', 'title' => ''], + 'EndTime' => ['description' => 'The timestamp when the VPN gateway instance expires. Unit: milliseconds.'."\n" + ."\n" + .'The timestamp follows the UNIX timestamp format, which represents the total number of milliseconds that have elapsed since January 1, 1970, 00:00:00 UTC to the time when the VPN gateway instance expires.', 'type' => 'integer', 'format' => 'int64', 'example' => '1495382400000', 'title' => ''], + 'VSwitchId' => ['description' => 'The ID of the vSwitch associated with the VPN gateway instance.', 'type' => 'string', 'example' => 'vsw-bp1y9ovl1cu9ou4tv****', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B457', 'title' => ''], + 'Description' => ['description' => 'The description of the VPN gateway instance.', 'type' => 'string', 'example' => 'test', 'title' => ''], + 'EnableBgp' => ['description' => 'The enabling status of the BGP feature for the VPN gateway. Valid values:'."\n" + ."\n" + .'- **true**: enabled.'."\n" + ."\n" + .'- **false**: not enabled.', 'type' => 'boolean', 'example' => 'true', 'title' => ''], + 'BusinessStatus' => ['description' => 'The billing status of the VPN gateway instance. Valid values:'."\n" + ."\n" + .'- **Normal**: Normal.'."\n" + .'- **FinancialLocked**: locked due to overdue payment.', 'type' => 'string', 'example' => 'Normal', 'title' => ''], + 'Name' => ['description' => 'The name of the VPN gateway instance.', 'type' => 'string', 'example' => 'test', 'title' => ''], + 'DisasterRecoveryInternetIp' => ['description' => 'The second IP address assigned by the system to the VPN gateway instance for creating IPsec-VPN connections.'."\n" + ."\n" + .'This parameter is returned only for VPN gateway instances that support dual-tunnel IPsec-VPN connections.', 'type' => 'string', 'example' => '116.11.XX.XX', 'title' => ''], + 'DisasterRecoveryVSwitchId' => ['description' => 'The ID of the second vSwitch associated with the VPN gateway instance.'."\n" + ."\n" + .'This parameter is returned only for VPN gateway instances that support dual-tunnel IPsec-VPN connections.', 'type' => 'string', 'example' => 'vsw-p0w95ql6tmr2ludkt****', 'title' => ''], + 'SslVpnInternetIp' => ['description' => 'The IP address of the SSL-VPN connection.'."\n" + ."\n" + .'This parameter is returned only when the SSL-VPN feature is enabled for a VPN gateway instance that supports dual-tunnel IPsec-VPN connections and uses the public network type.', 'type' => 'string', 'example' => '116.33.XX.XX', 'title' => ''], + 'ResourceGroupId' => ['description' => 'The ID of the resource group to which the VPN gateway instance belongs.'."\n" + ."\n" + .'You can call [ListResourceGroups](~~158855~~) to query resource group information.', 'type' => 'string', 'example' => 'rg-acfmzs372yg****', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InvalidName', 'errorMessage' => 'The name is not valid', 'description' => ''], + ['errorCode' => 'InvalidDescription', 'errorMessage' => 'The description is not valid', 'description' => ''], + ['errorCode' => 'OperationUnsupported.EnableBgp', 'errorMessage' => 'Current version of the VPN does not support enable BGP.', 'description' => 'The current version of the VPN gateway does not support BGP.'], + ['errorCode' => 'OperationFailed.VpnConnectionExist', 'errorMessage' => 'Auto propagate cannot be closed when VPN connections with BGP enabled exist.', 'description' => 'Auto propagation cannot be closed when VPN connections with BGP enabled exist.'], + ['errorCode' => 'InvalidVpnGatewayInstanceId.NotFound', 'errorMessage' => 'The specified vpn gateway instance id does not exist.', 'description' => 'The specified VPN gateway does not exist. Check whether the specified VPN gateway is valid.'], + ['errorCode' => 'VpnGateway.Configuring', 'errorMessage' => 'The specified service is configuring.', 'description' => ''], + ['errorCode' => 'OperationFailed.CenLevelNotSupport', 'errorMessage' => 'When the VPC to which the VPN gateway belongs is attached to a FULL-mode CEN, the VPN gateway cannot enable BGP.', 'description' => 'When the VPC to which the VPN gateway belongs is attached to a FULL-mode CEN, the VPN gateway cannot enable BGP.'], + ['errorCode' => 'OperationFailed.VpcRoutePropagationDisable', 'errorMessage' => 'The VPC system routing table does not enable the acceptance of propagated routes.', 'description' => 'The VPC system route table is not enabled to accept the propagation route.'], + ['errorCode' => 'OperationFailed.VpcRoutePublishEnabledInTR', 'errorMessage' => 'A VPC supports at most one dynamic route learning source. In the forwarding router, disable route synchronization for the VPC.', 'description' => 'A VPC supports at most one dynamic route learning source. In the forwarding router, disable route synchronization for the VPC.'], + ['errorCode' => 'OperationFailed.VpcRoutePublishEnabledInECR', 'errorMessage' => 'VPC supports only one dynamic route learning source at most. Please remove the VPC from ECR.', 'description' => 'A VPC supports at most one dynamic route learning source. Remove the VPC from ECR'], + ['errorCode' => 'OperationFailed.BondingVpnNotSupportBGP', 'errorMessage' => 'The architecture does not support BGP capabilities (single tunnel bonding architecture VPN gateway).', 'description' => 'the architecture does not support the bgp capability (single-tunnel bonding vpn gateway)'], + ['errorCode' => 'OperationFailed.StaleBGPRoutes', 'errorMessage' => 'BGP routes are still there and automatic route propagation cannot be disabled.', 'description' => 'Automatic route propagation cannot be disabled because a BGP route is left.'], + ], + 403 => [ + ['errorCode' => 'Forbidden.SubUser', 'errorMessage' => 'User not authorized to operate on the specified resource as your account is created by another user.', 'description' => 'The error message returned because you are unauthorized to perform this operation on the specified resource. Acquire the required permissions and try again.'], + ['errorCode' => 'Forbidden', 'errorMessage' => 'User not authorized to operate on the specified resource.', 'description' => 'You do not have the permissions to manage the specified resource. Apply for the permissions and try again.'], + ], + [ + ['errorCode' => 'InvalidVpnGatewayInstanceId.NotFound', 'errorMessage' => 'The specified vpn gateway instance id does not exist.', 'description' => ''], + ], + ], + 'staticInfo' => ['returnType' => 'asynchronous', 'callback' => 'Vpc::2016-04-28::DescribeVpnGateway', 'callbackInterval' => 3000, 'maxCallbackTimes' => 120], + 'title' => 'Modify the name, description, or routing automatic propagation of a VPN gateway', + 'summary' => 'Invokes the ModifyVpnGatewayAttribute operation to modify the name, description, or routing automatic propagation feature of a VPN gateway.', + 'description' => '- **ModifyVpnGatewayAttribute** is an asynchronous operation. After you call this operation, the system returns the VPN gateway information, but the configuration has not been modified yet. The modification task is still running in the background. You can call [DescribeVpnGateway](~~73720~~) to query the modification status of the VPN gateway configuration:'."\n" + .' - If the VPN gateway is in the **updating** state, the configuration is being modified.'."\n" + .' - If the VPN gateway is in the **active** state, the configuration has been modified.'."\n" + .'- **ModifyVpnGatewayAttribute** does not support concurrent modifications to the configuration of the same VPN gateway.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2025-05-23T06:50:33.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-10-19T07:04:00.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2023-06-30T12:44:27.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2022-12-27T03:28:33.000Z', 'description' => 'Error codes changed'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ModifyVpnGatewayAttribute'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], + ], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:ModifyVpnGatewayAttribute', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VpnGateway', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vpngateway/{#VpnGatewayId}'], ], - 'required' => false, ], ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"VpcId\\": \\"vpc-bp1ub1yt9cvakoel****\\",\\n \\"Status\\": \\"active\\",\\n \\"InternetIp\\": \\"116.62.XX.XX\\",\\n \\"Spec\\": \\"5M\\",\\n \\"CreateTime\\": 1492753580000,\\n \\"AutoPropagate\\": true,\\n \\"VpnGatewayId\\": \\"vpn-bp1q8bgx4xnkm2ogj****\\",\\n \\"IntranetIp\\": \\"172.16.10.46\\",\\n \\"EndTime\\": 1495382400000,\\n \\"VSwitchId\\": \\"vsw-bp1y9ovl1cu9ou4tv****\\",\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B457\\",\\n \\"Description\\": \\"test\\",\\n \\"EnableBgp\\": true,\\n \\"BusinessStatus\\": \\"Normal\\",\\n \\"Name\\": \\"test\\",\\n \\"DisasterRecoveryInternetIp\\": \\"116.11.XX.XX\\",\\n \\"DisasterRecoveryVSwitchId\\": \\"vsw-p0w95ql6tmr2ludkt****\\",\\n \\"SslVpnInternetIp\\": \\"116.33.XX.XX\\",\\n \\"ResourceGroupId\\": \\"rg-acfmzs372yg****\\"\\n}","type":"json"}]', + ], + 'ModifyVpnPbrRouteEntryAttribute' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'readAndWrite', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free'], + 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region in which the IPsec connection is established.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the region ID.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The region ID of the VPN gateway instance.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the region ID.', 'type' => 'string', 'required' => true, 'example' => 'cn-heyuan', 'title' => ''], ], [ - 'name' => 'VpnConnectionId', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the IPsec connection.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'vco-gw69vm1i71y354****', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'You can use the client to generate the token, but you must make sure that the token is unique among different requests. The ClientToken value can contain only ASCII characters.'."\n" + ."\n" + .'> If you do not specify this parameter, the system uses the **RequestId** of the API request as the **ClientToken**. The **RequestId** may be different for each API request.', 'type' => 'string', 'required' => false, 'example' => 'd7d24a21-f4ba-4454-9173-b3****', 'title' => ''], ], [ - 'name' => 'TunnelId', + 'name' => 'VpnGatewayId', 'in' => 'query', - 'allowEmptyValue' => false, - 'schema' => [ - 'description' => 'The tunnel ID.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'tun-gbyz2e070xzo93****', - ], + 'schema' => ['description' => 'The instance ID of the VPN gateway.', 'type' => 'string', 'required' => true, 'example' => 'vpn-bp1a3kqjiiq9legfx****', 'title' => ''], + ], + [ + 'name' => 'RouteSource', + 'in' => 'query', + 'schema' => ['description' => 'The source CIDR block of the policy-based route.', 'type' => 'string', 'required' => true, 'example' => '192.168.1.0/24', 'title' => ''], + ], + [ + 'name' => 'RouteDest', + 'in' => 'query', + 'schema' => ['description' => 'The destination CIDR block of the policy-based route.', 'type' => 'string', 'required' => true, 'example' => '10.0.0.0/24', 'title' => ''], + ], + [ + 'name' => 'NextHop', + 'in' => 'query', + 'schema' => ['description' => 'The next hop of the policy-based route.', 'type' => 'string', 'required' => true, 'example' => 'vco-bp15oes1py4i66rmd****', 'title' => ''], + ], + [ + 'name' => 'Priority', + 'in' => 'query', + 'schema' => ['description' => 'The original policy priority of the policy-based route. Valid values: **1** to **100**.'."\n" + ."\n" + .'A smaller value indicates a higher priority.', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '5', 'title' => ''], + ], + [ + 'name' => 'NewPriority', + 'in' => 'query', + 'schema' => ['description' => 'The new policy priority of the policy-based route. Valid values: **1** to **100**.'."\n" + ."\n" + .'A smaller value indicates a higher priority.'."\n" + ."\n" + .'If you do not specify this parameter, the policy priority of the policy-based route is not modified.'."\n" + ."\n" + .'> You must specify at least one of the **NewPriority** and **NewWeight** parameters.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '10', 'title' => ''], + ], + [ + 'name' => 'Weight', + 'in' => 'query', + 'schema' => ['description' => 'The original weight of the policy-based route. Valid values:'."\n" + ."\n" + .'- **100**: The IPsec-VPN connection associated with the policy-based route serves as the active link.'."\n" + .'- **0**: The IPsec-VPN connection associated with the policy-based route serves as the standby link.', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '100', 'title' => ''], + ], + [ + 'name' => 'NewWeight', + 'in' => 'query', + 'schema' => ['description' => 'The new weight of the policy-based route. Valid values:'."\n" + ."\n" + .'- **100**: The IPsec-VPN connection associated with the policy-based route serves as the active link.'."\n" + .'- **0**: The IPsec-VPN connection associated with the policy-based route serves as the standby link.'."\n" + ."\n" + .'If you do not specify this parameter, the weight of the policy-based route is not modified.'."\n" + .'> You must specify at least one of the **NewPriority** and **NewWeight** parameters.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '0', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => 'The returned data.'."\n", + 'description' => 'The response parameters.', 'type' => 'object', 'properties' => [ - 'TunnelId' => [ - 'description' => 'The tunnel ID.'."\n", - 'type' => 'string', - 'example' => 'tun-gbyz2e070xzo93****', - ], - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => 'E6F36FF0-9544-3AEE-8673-A4647D50064C', - ], - 'TunnelIkeConfig' => [ - 'description' => 'The Phase 1 configuration.'."\n", - 'type' => 'object', - 'properties' => [ - 'IkeAuthAlg' => [ - 'description' => 'The IKE authentication algorithm.'."\n", - 'type' => 'string', - 'example' => 'sha1', - ], - 'IkeEncAlg' => [ - 'description' => 'The IKE encryption algorithm.'."\n", - 'type' => 'string', - 'example' => 'aes', - ], - 'IkeLifetime' => [ - 'description' => 'The IKE lifetime. Unit: seconds.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '86400', - ], - 'IkeMode' => [ - 'description' => 'The IKE negotiation mode.'."\n" - ."\n" - .'* **main:** This mode offers higher security during negotiations.'."\n" - .'* **aggressive**: This mode is faster and has a higher success rate.'."\n", - 'type' => 'string', - 'example' => 'main', - ], - 'IkePfs' => [ - 'description' => 'The DH group.'."\n", - 'type' => 'string', - 'example' => 'group2', - ], - 'IkeVersion' => [ - 'description' => 'The IKE version.'."\n" - ."\n" - .'* **ikev1**'."\n" - .'* **ikev2**'."\n" - ."\n" - .'Compared with IKEv1, IKEv2 simplifies the SA negotiation process and provides better support for scenarios with multiple CIDR blocks.'."\n", - 'type' => 'string', - 'example' => 'ikev2', - ], - 'LocalId' => [ - 'description' => 'The tunnel identifier. The identifier supports FQDNs and IP addresses. The default value is the tunnel IP address.'."\n", - 'type' => 'string', - 'example' => '47.XX.XX.87', - ], - 'Psk' => [ - 'description' => 'The pre-shared key.'."\n", - 'type' => 'string', - 'example' => '123456****', - ], - 'RemoteId' => [ - 'description' => 'The peer identifier. The identifier supports FQDNs and IP addresses. The default identifier is the IP address of the customer gateway associated with the tunnel.'."\n", - 'type' => 'string', - 'example' => '47.XX.XX.207', - ], - ], - ], - 'TunnelIpsecConfig' => [ - 'description' => 'The configurations of IPsec Phase 2.'."\n", - 'type' => 'object', - 'properties' => [ - 'IpsecAuthAlg' => [ - 'description' => 'The IPsec authentication algorithm.'."\n", - 'type' => 'string', - 'example' => 'sha1', - ], - 'IpsecEncAlg' => [ - 'description' => 'The IPsec encryption algorithm.'."\n", - 'type' => 'string', - 'example' => 'aes', - ], - 'IpsecLifetime' => [ - 'description' => 'The IPsec lifetime. Unit: seconds.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '86400', - ], - 'IpsecPfs' => [ - 'description' => 'The DH group.'."\n", - 'type' => 'string', - 'example' => 'group2', - ], - ], - ], - 'TunnelBgpConfig' => [ - 'description' => 'The BGP configuration.'."\n", - 'type' => 'object', - 'properties' => [ - 'EnableBgp' => [ - 'description' => 'Indicates whether the BGP feature is enabled. Valid values:'."\n" - ."\n" - .'* **true**'."\n" - .'* **false**'."\n", - 'type' => 'boolean', - 'example' => 'true', - ], - 'LocalAsn' => [ - 'description' => 'The local ASN.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '65530', - ], - 'LocalBgpIp' => [ - 'description' => 'The BGP IP address of the tunnel.'."\n", - 'type' => 'string', - 'example' => '169.254.11.1', - ], - 'PeerAsn' => [ - 'description' => 'The peer ASN.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '65531', - ], - 'PeerBgpIp' => [ - 'description' => 'The BGP IP address of the peer.'."\n", - 'type' => 'string', - 'example' => '169.254.11.2', - ], - 'TunnelCidr' => [ - 'description' => 'The CIDR block to which the tunnel BGP IP address belongs.'."\n", - 'type' => 'string', - 'example' => '169.254.11.0/30', - ], - ], - ], - 'EnableNatTraversal' => [ - 'description' => 'Indicates whether NAT traversal is enabled. Valid values:'."\n" - ."\n" - .'* **false**'."\n" - .'* **true**'."\n", - 'type' => 'boolean', - 'example' => 'true', - ], - 'EnableDpd' => [ - 'description' => 'Indicates whether DPD is enabled. Valid values:'."\n" - ."\n" - .'* **false**'."\n" - .'* **true**'."\n", - 'type' => 'boolean', - 'example' => 'true', - ], - 'RemoteCaCertificate' => [ - 'description' => 'The peer CA certificate when a VPN gateway that uses an SM certificate is used to create the IPsec connection.'."\n", - 'type' => 'string', - 'example' => '-----BEGIN CERTIFICATE----- MIIB7zCCAZW**** -----END CERTIFICATE-----', - ], - 'CustomerGatewayId' => [ - 'description' => 'The ID of the customer gateway associated with the customer gateway.'."\n", - 'type' => 'string', - 'example' => 'cgw-p0wx48ayhrygitm80****', - ], - 'Role' => [ - 'description' => 'The tunnel role. Valid values:'."\n" - ."\n" - .'* **master**'."\n" - .'* **slave**'."\n", - 'type' => 'string', - 'example' => 'master', - ], - 'ZoneNo' => [ - 'description' => 'The tunnel zone.'."\n", - 'type' => 'string', - 'example' => 'cn-hangzhou-h', - ], - 'InternetIp' => [ - 'description' => 'The tunnel IP address.'."\n", - 'type' => 'string', - 'example' => '47.XX.XX.87', - ], - 'State' => [ - 'description' => 'The tunnel status. Valid values:'."\n" - ."\n" - .'* **active**'."\n" - .'* **updating**'."\n" - .'* **deleting**'."\n", - 'type' => 'string', - 'example' => 'active', - ], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '5BE01CD7-5A50-472D-AC14-CA181C5C03BE', 'title' => ''], ], + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'VpnGateway.Configuring', - 'errorMessage' => 'The specified service is configuring.', - ], - [ - 'errorCode' => 'VpnGateway.FinancialLocked', - 'errorMessage' => 'The specified service is financial locked.', - ], - [ - 'errorCode' => 'InvalidName', - 'errorMessage' => 'The name is not valid', - ], - [ - 'errorCode' => 'VpnRouteEntry.AlreadyExists', - 'errorMessage' => 'The specified route entry is already exist.', - ], - [ - 'errorCode' => 'VpnRouteEntry.Conflict', - 'errorMessage' => 'The specified route entry has conflict.', - ], - [ - 'errorCode' => 'NotSupportVpnConnectionParameter.IpsecPfs', - 'errorMessage' => 'The specified vpn connection ipsec Ipsec Pfs is not support.', - ], - [ - 'errorCode' => 'NotSupportVpnConnectionParameter.IpsecAuthAlg', - 'errorMessage' => 'The specified vpn connection ipsec Auth Alg is not support.', - ], - [ - 'errorCode' => 'VpnConnectionParamInvalid.SameVpnAndCgwDifferentIkeConfigs', - 'errorMessage' => 'IPSec connections associated with the same user gateway and VPN gateway should have the same pre-shared key and IKE configuration.', - ], - [ - 'errorCode' => 'VpnConnectionParamInvalid.SameVpnAndCgwTrafficSelectorOverlap', - 'errorMessage' => 'Traffic selectors of IPSec connections associated with the same user gateway and VPN gateway should not overlap.', - ], - [ - 'errorCode' => 'IllegalParam.LocalAsn', - 'errorMessage' => 'The param of LocalAsn is illegal', - ], - [ - 'errorCode' => 'IllegalParam.LocalBgpIp', - 'errorMessage' => 'The specified LocalBgpIp is invalid.', - ], - [ - 'errorCode' => 'VpnGateway.task.conflict', - 'errorMessage' => 'The VPN is in the configuration state, please wait a while before operating.', - ], - [ - 'errorCode' => 'ModifyIkeV1WithMultiRoutes.Invalid', - 'errorMessage' => 'Failed to modify VPN connection parameters. Multi-network is configured while using IkeV1 protocol.', - ], - [ - 'errorCode' => 'EncAlgInvalid.DesIncompatible', - 'errorMessage' => 'Des/3des in IkeEncAlg and IpsecEncAlg does not support multi algorithm.', - ], - [ - 'errorCode' => 'IkeVersionInvalid.GcmIncompatible', - 'errorMessage' => 'Ikev1 does not support IkeEncAlg of gcm16.', - ], - [ - 'errorCode' => 'CustomerGateway.ConflictVpnIp', - 'errorMessage' => 'The specified customer gateway has conflict with vpn gateway ip.', - ], + ['errorCode' => 'Resource.QuotaFull', 'errorMessage' => 'The quota of resource is full', 'description' => ''], + ['errorCode' => 'VpnGateway.Configuring', 'errorMessage' => 'The specified service is configuring.', 'description' => ''], + ['errorCode' => 'VpnGateway.FinancialLocked', 'errorMessage' => 'The specified service is financial locked.', 'description' => ''], + ['errorCode' => 'VpnRouteEntry.AlreadyExists', 'errorMessage' => 'The specified route entry is already exist.', 'description' => 'The route already exists.'], + ['errorCode' => 'VpnRouteEntry.Conflict', 'errorMessage' => 'The specified route entry has conflict.', 'description' => 'Route conflicts exist.'], + ['errorCode' => 'VpnPbrRouteEntryPriority.NotSupport', 'errorMessage' => 'Current version of the VPN does not support setting pbr route entry priority.', 'description' => 'The VPN gateway version does not allow you to specify priorities for policy-based routes.'], + ['errorCode' => 'VpnRouteEntry.SrcDestWeightConflict', 'errorMessage' => 'The VPN gateway does not support Policy-based routing with the same source CIDR, destination CIDR and weight.', 'description' => 'VPN Gateway does not support policy-based routes that have the same source CIDR block, destination CIDR block, and weight.'], + ['errorCode' => 'VpnRouteEntry.SamePriorityPbrRoutePrefixOverlap', 'errorMessage' => 'The source CIDR and destination CIDR of Policy-based routes with the same priority cannot overlap.', 'description' => 'VPN Gateway does not support policy-based routes that have the same priority and overlapping source CIDR blocks and destination CIDR blocks.'], + ['errorCode' => 'VpnRouteEntry.SrcDestConflict', 'errorMessage' => 'The VPN gateway does not support Policy-based routing with the same source CIDR and destination CIDR.', 'description' => 'The source CIDR block and destination CIDR block of a policy-based route for a dual-tunnel VPN gateway cannot be the same.'], + ['errorCode' => 'VpnPbrRouteEntry.NotSupport', 'errorMessage' => 'Current version of the VPN does not support pbr route entry.', 'description' => 'Current version of the VPN does not support pbr route entry.'], ], 403 => [ - [ - 'errorCode' => 'Forbbiden.SubUser', - 'errorMessage' => 'User not authorized to operate on the specified resource as your account is created by another user.', - ], - [ - 'errorCode' => 'Forbidden', - 'errorMessage' => 'User not authorized to operate on the specified resource.', + ['errorCode' => 'Forbbiden.SubUser', 'errorMessage' => 'User not authorized to operate on the specified resource as your account is created by another user.', 'description' => ''], + ['errorCode' => 'Forbidden', 'errorMessage' => 'User not authorized to operate on the specified resource.', 'description' => 'You do not have the permissions to manage the specified resource. Apply for the permissions and try again.'], + ], + [ + ['errorCode' => 'InvalidVpnGatewayInstanceId.NotFound', 'errorMessage' => 'The specified vpn gateway instance id does not exist.', 'description' => ''], + ], + ], + 'staticInfo' => ['returnType' => 'asynchronous', 'callback' => 'Vpc::2016-04-28::DescribeVpnGateway', 'callbackInterval' => 1000, 'maxCallbackTimes' => 30], + 'title' => 'Modify the weight and policy priority of a policy-based route', + 'summary' => 'Modifies the weight and policy priority of a policy-based route by calling the ModifyVpnPbrRouteEntryAttribute operation.', + 'description' => '- **ModifyVpnPbrRouteEntryAttribute** is used to modify both the weight and policy priority of a policy-based route that supports policy priority.'."\n" + ."\n" + .' - To modify only the weight of a policy-based route, call the [ModifyVpnPbrRouteEntryWeight](~~127249~~) operation.'."\n" + .' - To modify only the policy priority of a policy-based route, call the [ModifyVpnPbrRouteEntryPriority](~~466870~~) operation.'."\n" + .' - If your policy-based route does not support policy priority, you can only call the [ModifyVpnPbrRouteEntryWeight](~~127249~~) operation to modify the weight of the policy-based route.'."\n" + .' > For VPN gateway instances that support dual-tunnel mode IPsec-VPN connections, you can only call this operation to modify the priority of policy-based routes.'."\n" + ."\n" + .'- **ModifyVpnPbrRouteEntryAttribute** is an asynchronous operation. After you send a request, the system returns a request ID, but the policy-based route has not been modified yet. The modification node is still running in the background. You can invoke the [DescribeVpnGateway](~~73720~~) operation to query the instance status of the VPN gateway to determine the modification status of the policy-based routing:'."\n" + .' - If the VPN gateway instance is in the **updating** state, the policy-based route is being modified.'."\n" + .' - If the VPN gateway instance is in the **active** state, the policy-based route has been modified.'."\n" + .'- **ModifyVpnPbrRouteEntryAttribute** does not support concurrent modifications of policy-based routes under the same VPN gateway instance.', + 'changeSet' => [ + ['createdAt' => '2023-08-02T07:08:10.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2022-12-08T09:38:28.000Z', 'description' => 'Error codes changed'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ModifyVpnPbrRouteEntryAttribute'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], + ], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:ModifyVpnPbrRouteEntryAttribute', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VpnGateway', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vpngateway/{#VpnGatewayId}'], + ], ], ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"5BE01CD7-5A50-472D-AC14-CA181C5C03BE\\"\\n}","type":"json"}]', + ], + 'ModifyVpnPbrRouteEntryPriority' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'readAndWrite', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free'], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => ['description' => 'The region ID of the VPN gateway instance.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query region IDs.', 'type' => 'string', 'required' => true, 'example' => 'cn-henyuan', 'title' => ''], + ], + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'You can use the client to generate the token, but you must make sure that the token is unique among different requests. The ClientToken parameter supports only ASCII characters.'."\n" + ."\n" + .'> If you do not specify this parameter, the system uses the **RequestId** of the API request as the **ClientToken**. The **RequestId** of each API request is different.', 'type' => 'string', 'required' => false, 'example' => 'd7d24a21-f4ba-4454-9173-b3****', 'title' => ''], + ], + [ + 'name' => 'VpnGatewayId', + 'in' => 'query', + 'schema' => ['description' => 'The ID of the VPN gateway instance.', 'type' => 'string', 'required' => true, 'example' => 'vpn-bp1a3kqjiiq9legfx****', 'title' => ''], + ], + [ + 'name' => 'RouteSource', + 'in' => 'query', + 'schema' => ['description' => 'The source CIDR block of the policy-based route.', 'type' => 'string', 'required' => true, 'example' => '192.168.1.0/24', 'title' => ''], + ], + [ + 'name' => 'RouteDest', + 'in' => 'query', + 'schema' => ['description' => 'The destination CIDR block of the policy-based route.', 'type' => 'string', 'required' => true, 'example' => '10.0.0.0/24', 'title' => ''], + ], + [ + 'name' => 'NextHop', + 'in' => 'query', + 'schema' => ['description' => 'The next hop of the policy-based route.', 'type' => 'string', 'required' => true, 'example' => 'vco-bp15oes1py4i66rmd****', 'title' => ''], + ], + [ + 'name' => 'Priority', + 'in' => 'query', + 'schema' => ['description' => 'The original priority of the policy-based route. Valid values: **1** to **100**.'."\n" + ."\n" + .'A smaller value indicates a higher priority.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '5', 'title' => ''], + ], + [ + 'name' => 'NewPriority', + 'in' => 'query', + 'schema' => ['description' => 'The new priority of the policy-based route. Valid values: **1** to **100**.'."\n" + ."\n" + .'A smaller value indicates a higher priority.', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '10', 'title' => ''], + ], [ - [ - 'errorCode' => 'InvalidVpnConnectionInstanceId.NotFound', - 'errorMessage' => 'The specified vpn connection instance id does not exist.', + 'name' => 'Weight', + 'in' => 'query', + 'schema' => ['description' => 'The weight of the policy-based route.', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '100', 'title' => ''], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => 'The response parameters.', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '5BE01CD7-5A50-472D-AC14-CA181C5C03BE', 'title' => ''], + ], + 'title' => '', + 'example' => '', ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'Resource.QuotaFull', 'errorMessage' => 'The quota of resource is full', 'description' => ''], + ['errorCode' => 'VpnGateway.Configuring', 'errorMessage' => 'The specified service is configuring.', 'description' => ''], + ['errorCode' => 'VpnGateway.FinancialLocked', 'errorMessage' => 'The specified service is financial locked.', 'description' => ''], + ['errorCode' => 'VpnRouteEntry.AlreadyExists', 'errorMessage' => 'The specified route entry is already exist.', 'description' => 'The route already exists.'], + ['errorCode' => 'VpnRouteEntry.Conflict', 'errorMessage' => 'The specified route entry has conflict.', 'description' => 'Route conflicts exist.'], + ['errorCode' => 'VpnPbrRouteEntryPriority.NotSupport', 'errorMessage' => 'Current version of the VPN does not support setting pbr route entry priority.', 'description' => 'The VPN gateway version does not allow you to specify priorities for policy-based routes.'], + ['errorCode' => 'VpnRouteEntry.SamePriorityPbrRoutePrefixOverlap', 'errorMessage' => 'The source CIDR and destination CIDR of Policy-based routes with the same priority cannot overlap.', 'description' => 'VPN Gateway does not support policy-based routes that have the same priority and overlapping source CIDR blocks and destination CIDR blocks.'], + ['errorCode' => 'VpnRouteEntry.SrcDestConflict', 'errorMessage' => 'The VPN gateway does not support Policy-based routing with the same source CIDR and destination CIDR.', 'description' => 'The source CIDR block and destination CIDR block of a policy-based route for a dual-tunnel VPN gateway cannot be the same.'], + ['errorCode' => 'VpnRouteEntry.SrcDestWeightConflict', 'errorMessage' => 'The VPN gateway does not support Policy-based routing with the same source CIDR, destination CIDR and weight.', 'description' => 'VPN Gateway does not support policy-based routes that have the same source CIDR block, destination CIDR block, and weight.'], + ['errorCode' => 'VpnPbrRouteEntry.NotSupport', 'errorMessage' => 'Current version of the VPN does not support pbr route entry.', 'description' => 'Current version of the VPN does not support pbr route entry.'], + ], + 403 => [ + ['errorCode' => 'Forbbiden.SubUser', 'errorMessage' => 'User not authorized to operate on the specified resource as your account is created by another user.', 'description' => ''], + ['errorCode' => 'Forbidden', 'errorMessage' => 'User not authorized to operate on the specified resource.', 'description' => 'You do not have the permissions to manage the specified resource. Apply for the permissions and try again.'], + ], + [ + ['errorCode' => 'InvalidVpnGatewayInstanceId.NotFound', 'errorMessage' => 'The specified vpn gateway instance id does not exist.', 'description' => ''], + ], ], - 'eventInfo' => [ - 'enable' => false, - 'eventNames' => [], + 'staticInfo' => ['returnType' => 'asynchronous', 'callback' => 'Vpc::2016-04-28::DescribeVpnGateway', 'callbackInterval' => 2000, 'maxCallbackTimes' => 60], + 'title' => 'ModifyVpnPbrRouteEntryPriority', + 'summary' => 'Calls the ModifyVpnPbrRouteEntryPriority operation to modify the priority of a policy-based route.', + 'description' => '- The **ModifyVpnPbrRouteEntryPriority** operation is asynchronous. After you send the request, the system returns a request ID, but the policy-based route has not been modified yet. The modification task is still running in the background. You can call the [DescribeVpnGateway](~~73720~~) operation to query the status of the VPN gateway instance to determine the modification status of the policy-based route:'."\n" + .' - If the VPN gateway instance is in the **updating** state, the policy-based route is being modified.'."\n" + .' - If the VPN gateway instance is in the **active** state, the policy-based route is modified.'."\n" + .'- The **ModifyVpnPbrRouteEntryPriority** operation does not support concurrent modifications to policy-based routes of the same VPN gateway instance.', + 'changeSet' => [ + ['createdAt' => '2023-10-19T07:04:02.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2022-12-08T09:38:28.000Z', 'description' => 'Error codes changed'], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"TunnelId\\": \\"tun-gbyz2e070xzo93****\\",\\n \\"RequestId\\": \\"E6F36FF0-9544-3AEE-8673-A4647D50064C\\",\\n \\"TunnelIkeConfig\\": {\\n \\"IkeAuthAlg\\": \\"sha1\\",\\n \\"IkeEncAlg\\": \\"aes\\",\\n \\"IkeLifetime\\": 86400,\\n \\"IkeMode\\": \\"main\\",\\n \\"IkePfs\\": \\"group2\\",\\n \\"IkeVersion\\": \\"ikev2\\",\\n \\"LocalId\\": \\"47.XX.XX.87\\",\\n \\"Psk\\": \\"123456****\\",\\n \\"RemoteId\\": \\"47.XX.XX.207\\"\\n },\\n \\"TunnelIpsecConfig\\": {\\n \\"IpsecAuthAlg\\": \\"sha1\\",\\n \\"IpsecEncAlg\\": \\"aes\\",\\n \\"IpsecLifetime\\": 86400,\\n \\"IpsecPfs\\": \\"group2\\"\\n },\\n \\"TunnelBgpConfig\\": {\\n \\"EnableBgp\\": true,\\n \\"LocalAsn\\": 65530,\\n \\"LocalBgpIp\\": \\"169.254.11.1\\",\\n \\"PeerAsn\\": 65531,\\n \\"PeerBgpIp\\": \\"169.254.11.2\\",\\n \\"TunnelCidr\\": \\"169.254.11.0/30\\"\\n },\\n \\"EnableNatTraversal\\": true,\\n \\"EnableDpd\\": true,\\n \\"RemoteCaCertificate\\": \\"-----BEGIN CERTIFICATE----- MIIB7zCCAZW**** -----END CERTIFICATE-----\\",\\n \\"CustomerGatewayId\\": \\"cgw-p0wx48ayhrygitm80****\\",\\n \\"Role\\": \\"master\\",\\n \\"ZoneNo\\": \\"cn-hangzhou-h\\",\\n \\"InternetIp\\": \\"47.XX.XX.87\\",\\n \\"State\\": \\"active\\"\\n}","errorExample":""},{"type":"xml","example":"\\n tun-gbyz2e070xzo93****\\n E6F36FF0-9544-3AEE-8673-A4647D50064C\\n \\n sha1\\n aes\\n 86400\\n main\\n group2\\n ikev2\\n 47.XX.XX.87\\n 123456****\\n 47.XX.XX.207\\n \\n \\n sha1\\n aes\\n 86400\\n group2\\n \\n \\n true\\n 65530\\n 169.254.11.1\\n 65531\\n 169.254.11.2\\n 169.254.11.0/30\\n \\n true\\n true\\n -----BEGIN CERTIFICATE----- MIIB7zCCAZW**** -----END CERTIFICATE-----\\n cgw-p0wx48ayhrygitm80****\\n master\\n ap-southeast-2b\\n 47.XX.XX.87\\n active\\n","errorExample":""}]', - 'title' => 'ModifyTunnelAttribute', - ], - 'DescribeVpnConnection' => [ - 'summary' => 'Queries the detailed information about an IPsec-VPN connection.', - 'methods' => [ - 'post', - 'get', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ModifyVpnPbrRouteEntryPriority'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:ModifyVpnPbrRouteEntryPriority', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VpnGateway', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vpngateway/{#VpnGatewayId}'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"5BE01CD7-5A50-472D-AC14-CA181C5C03BE\\"\\n}","type":"json"}]', + ], + 'ModifyVpnPbrRouteEntryWeight' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'readAndWrite', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'get', - 'riskType' => 'none', - 'chargeType' => 'free', - ], + 'systemTags' => ['operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region where the IPsec-VPN connection is created.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The ID of the region where the VPN gateway is created. You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'VpnConnectionId', + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'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.'."\n" + ."\n" + .'> 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.'."\n", 'type' => 'string', 'required' => false, 'example' => 'd7d24a21-f4ba-4454-9173-b3828dae492b', 'title' => ''], + ], + [ + 'name' => 'VpnGatewayId', + 'in' => 'query', + 'schema' => ['description' => 'The ID of the VPN gateway.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'vpn-bp1a3kqjiiq9legfx****', 'title' => ''], + ], + [ + 'name' => 'RouteSource', + 'in' => 'query', + 'schema' => ['description' => 'The source CIDR block of the policy-based route.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '192.168.1.0/24', 'title' => ''], + ], + [ + 'name' => 'RouteDest', + 'in' => 'query', + 'schema' => ['description' => 'The destination CIDR block of the policy-based route.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '10.0.0.0/24', 'title' => ''], + ], + [ + 'name' => 'NextHop', + 'in' => 'query', + 'schema' => ['description' => 'The next hop of the policy-based route.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'vco-bp15oes1py4i66rmd**** ', 'title' => ''], + ], + [ + 'name' => 'Weight', + 'in' => 'query', + 'schema' => ['description' => 'The original weight of the policy-based route. Valid values:'."\n" + ."\n" + .'* **100**: The IPsec-VPN connection associated with the policy-based route serves as an active connection.'."\n" + .'* **0**: The IPsec-VPN connection associated with the policy-based route serves as a standby connection.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => true, 'docRequired' => true, 'example' => '0', 'title' => ''], + ], + [ + 'name' => 'NewWeight', + 'in' => 'query', + 'schema' => ['description' => 'The new weight of the policy-based route. Valid values:'."\n" + ."\n" + .'* **100**: The IPsec-VPN connection associated with the policy-based route serves as an active connection.'."\n" + .'* **0**: The IPsec-VPN connection associated with the policy-based route serves as a standby connection.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => true, 'docRequired' => true, 'example' => '100', 'title' => ''], + ], + [ + 'name' => 'OverlayMode', + 'in' => 'query', + 'schema' => ['description' => 'The tunneling protocol. The value is set to **Ipsec**, which indicates the IPsec tunneling protocol.'."\n", 'type' => 'string', 'required' => false, 'example' => 'Ipsec', 'title' => ''], + ], + [ + 'name' => 'Priority', 'in' => 'query', + 'schema' => ['description' => 'The priority of the policy-based route.'."\n" + ."\n" + .'* If the route was not assigned a priority, this parameter is optional.'."\n" + ."\n" + .'* If the route was assigned a priority, this parameter is optional.'."\n" + ."\n" + .' If you specify this parameter, set the value to the priority that was assigned to the policy-based route. Otherwise, the operation fails.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '10', 'title' => ''], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => 'The ID of the IPsec-VPN connection.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'vco-bp1bbi27hojx80nck****', + 'description' => 'The response parameters.'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '5BE01CD7-5A50-472D-AC14-CA181C5C03BE ', 'title' => ''], + ], + 'title' => '', + 'example' => '', ], ], ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'Resource.QuotaFull', 'errorMessage' => 'The quota of resource is full', 'description' => ''], + ['errorCode' => 'VpnGateway.Configuring', 'errorMessage' => 'The specified service is configuring.', 'description' => ''], + ['errorCode' => 'VpnGateway.FinancialLocked', 'errorMessage' => 'The specified service is financial locked.', 'description' => ''], + ['errorCode' => 'VpnRouteEntry.AlreadyExists', 'errorMessage' => 'The specified route entry is already exist.', 'description' => 'The route already exists.'], + ['errorCode' => 'VpnRouteEntry.Conflict', 'errorMessage' => 'The specified route entry has conflict.', 'description' => 'Route conflicts exist.'], + ['errorCode' => 'VpnRouteEntry.SrcDestWeightConflict', 'errorMessage' => 'The VPN gateway does not support Policy-based routing with the same source CIDR, destination CIDR and weight.', 'description' => 'VPN Gateway does not support policy-based routes that have the same source CIDR block, destination CIDR block, and weight.'], + ['errorCode' => 'VpnRouteEntry.SamePriorityPbrRoutePrefixOverlap', 'errorMessage' => 'The source CIDR and destination CIDR of Policy-based routes with the same priority cannot overlap.', 'description' => 'VPN Gateway does not support policy-based routes that have the same priority and overlapping source CIDR blocks and destination CIDR blocks.'], + ['errorCode' => 'VpnRouteEntry.SrcDestConflict', 'errorMessage' => 'The VPN gateway does not support Policy-based routing with the same source CIDR and destination CIDR.', 'description' => 'The source CIDR block and destination CIDR block of a policy-based route for a dual-tunnel VPN gateway cannot be the same.'], + ['errorCode' => 'VpnPbrRouteEntry.NotSupport', 'errorMessage' => 'Current version of the VPN does not support pbr route entry.', 'description' => 'Current version of the VPN does not support pbr route entry.'], + ], + 403 => [ + ['errorCode' => 'Forbbiden.SubUser', 'errorMessage' => 'User not authorized to operate on the specified resource as your account is created by another user.', 'description' => ''], + ['errorCode' => 'Forbidden', 'errorMessage' => 'User not authorized to operate on the specified resource.', 'description' => 'You do not have the permissions to manage the specified resource. Apply for the permissions and try again.'], + ], + [ + ['errorCode' => 'InvalidVpnGatewayInstanceId.NotFound', 'errorMessage' => 'The specified vpn gateway instance id does not exist.', 'description' => ''], + ], + ], + 'staticInfo' => ['returnType' => 'asynchronous', 'callback' => 'Vpc::2016-04-28::DescribeVpnGateway', 'callbackInterval' => 1000, 'maxCallbackTimes' => 30], + 'title' => 'ModifyVpnPbrRouteEntryWeight', + 'summary' => 'Modifies the weight of a policy-based route of a VPN gateway.', + 'description' => '* **ModifyVpnPbrRouteEntryWeight** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call [DescribeVpnGateway](~~73720~~) to query the status of the task.'."\n" + ."\n" + .' * If a VPN gateway is in the **updating** state, the policy-based route entry is being modified.'."\n" + .' * If a VPN gateway is in the **active** state, the policy-based route entry is modified.'."\n" + ."\n" + .'* You cannot repeatedly call the **ModifyVpnPbrRouteEntryWeight** operation for the same VPN gateway within the specified period of time.'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2023-08-02T07:08:09.000Z', 'description' => 'Error codes changed'], + ], + 'ramActions' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"5BE01CD7-5A50-472D-AC14-CA181C5C03BE\\\\t\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 5BE01CD7-5A50-472D-AC14-CA181C5C03BE\\t\\n","errorExample":""}]', + ], + 'ModifyVpnRouteEntryWeight' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'readAndWrite', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free'], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => ['description' => 'The ID of the region where the VPN gateway is created. You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], + ], + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'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.'."\n" + ."\n" + .'> 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.'."\n", 'type' => 'string', 'required' => false, 'example' => 'd7d24a21-f4ba-4454-9173-b3828dae492b', 'title' => ''], + ], + [ + 'name' => 'VpnGatewayId', + 'in' => 'query', + 'schema' => ['description' => 'The ID of the VPN gateway.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'vpn-bp1a3kqjiiq9legfx****', 'title' => ''], + ], + [ + 'name' => 'RouteDest', + 'in' => 'query', + 'schema' => ['description' => 'The destination CIDR block of the destination-based route.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '10.0.0.0/24', 'title' => ''], + ], + [ + 'name' => 'NextHop', + 'in' => 'query', + 'schema' => ['description' => 'The next hop of the destination-based route.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'vco-bp15oes1py4i66rmd**** ', 'title' => ''], + ], + [ + 'name' => 'Weight', + 'in' => 'query', + 'schema' => ['description' => 'The original weight of the destination-based route. Valid values:'."\n" + ."\n" + .'* **0**: a low priority'."\n" + .'* **100**: a high priority'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => true, 'docRequired' => true, 'example' => '0', 'title' => ''], + ], + [ + 'name' => 'NewWeight', + 'in' => 'query', + 'schema' => ['description' => 'The new weight of the destination-based route. Valid values:'."\n" + ."\n" + .'* **0**: a low priority'."\n" + .'* **100**: a high priority'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => true, 'docRequired' => true, 'example' => '100', 'title' => ''], + ], + [ + 'name' => 'OverlayMode', + 'in' => 'query', + 'schema' => ['description' => 'The tunneling protocol. Set the value to **Ipsec**.'."\n", 'type' => 'string', 'required' => false, 'example' => 'Ipsec', 'title' => ''], + ], + ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => 'The results returned.'."\n", 'type' => 'object', 'properties' => [ - 'Status' => [ - 'description' => 'The state of the IPsec-VPN connection. Valid values:'."\n" - ."\n" - .'* **ike_sa_not_established**: Phase 1 negotiations failed.'."\n" - .'* **ike_sa_established**: Phase 1 negotiations succeeded.'."\n" - .'* **ipsec_sa_not_established**: Phase 2 negotiations failed.'."\n" - .'* **ipsec_sa_established**: Phase 2 negotiations succeeded.'."\n", - 'type' => 'string', - 'example' => 'ike_sa_not_established', - ], - 'RemoteCaCertificate' => [ - 'description' => 'The certificate authority (CA) certificate of the peer.'."\n", - 'type' => 'string', - 'example' => '-----BEGIN CERTIFICATE----- MIIB7zCCAZW****', - ], - 'EnableNatTraversal' => [ - 'description' => 'Indicates whether NAT traversal is enabled for the IPsec-VPN connection. Valid values:'."\n" - ."\n" - .'* **true**'."\n" - .'* **false**'."\n" - ."\n" - .'After NAT traversal is enabled, the initiator does not check the UDP ports during IKE negotiations and can automatically discover NAT gateway devices along the IPsec tunnel.'."\n", - 'type' => 'boolean', - 'example' => 'true', - ], - 'CreateTime' => [ - 'description' => 'The timestamp generated when the IPsec-VPN connection was established. Unit: milliseconds.'."\n" - ."\n" - .'This value is a UNIX timestamp representing the number of milliseconds that have elapsed since the epoch time January 1, 1970, 00:00:00 UTC.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1492753817000', - ], - 'EffectImmediately' => [ - 'description' => 'Indicates whether IPsec negotiations immediately start after the configuration takes effect. Valid values:'."\n" - ."\n" - .'* **true**: Negotiations are reinitiated after the configuration is changed.'."\n" - .'* **false**: Negotiations are reinitiated after traffic is detected.'."\n", - 'type' => 'boolean', - 'example' => 'true', - ], - 'VpnGatewayId' => [ - 'description' => 'The ID of the VPN gateway.'."\n", - 'type' => 'string', - 'example' => 'vpn-bp1q8bgx4xnkm2ogj****', - ], - 'LocalSubnet' => [ - 'description' => 'The CIDR block on the Alibaba Cloud side.'."\n" - ."\n" - .'Multiple CIDR blocks are separated by commas (,).'."\n", - 'type' => 'string', - 'example' => '10.0.0.0/8', - ], - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => 'F2310D45-BCF6-4E2E-9082-B4503844BA4C', - ], - 'VpnConnectionId' => [ - 'description' => 'The ID of the IPsec-VPN connection.'."\n", - 'type' => 'string', - 'example' => 'vco-bp1bbi27hojx80nck****', - ], - 'RemoteSubnet' => [ - 'description' => 'The CIDR block on the data center side.'."\n" - ."\n" - .'Multiple CIDR blocks are separated by commas (,).'."\n", - 'type' => 'string', - 'example' => '192.168.0.0/16', - ], - 'CustomerGatewayId' => [ - 'description' => 'The ID of the customer gateway associated with the IPsec-VPN connection.'."\n", - 'type' => 'string', - 'example' => 'cgw-bp1mvj4g9kogwwcxk****', - ], - 'Name' => [ - 'description' => 'The name of the IPsec-VPN connection.'."\n", - 'type' => 'string', - 'example' => 'ipsec1', - ], - 'EnableDpd' => [ - 'description' => 'Indicates whether the dead peer detection (DPD) feature is enabled for the IPsec-VPN connection. Valid values:'."\n" - ."\n" - .'* **false**'."\n" - .'* **true**'."\n" - ."\n" - .'After you enable the DPD feature, the initiator of the IPsec-VPN connection sends DPD packets to check the existence and availability of the peer. If no response is received from the peer within a specified period of time, the connection fails. Then, the ISAKMP security association (SA), IPsec SA, and IPsec tunnel are deleted.'."\n", - 'type' => 'boolean', - 'example' => 'true', - ], - 'IkeConfig' => [ - 'description' => 'The configuration of Phase 1 negotiations.'."\n", - 'type' => 'object', - 'properties' => [ - 'RemoteId' => [ - 'description' => 'The identifier of the IPsec-VPN connection on the data center side.'."\n", - 'type' => 'string', - 'example' => '139.34.XX.XX', - ], - 'IkeLifetime' => [ - 'description' => 'The lifetime in the IKE phase. Unit: seconds.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '86400', - ], - 'IkeEncAlg' => [ - 'description' => 'The encryption algorithm in the IKE phase.'."\n", - 'type' => 'string', - 'example' => 'aes', - ], - 'LocalId' => [ - 'description' => 'The identifier of the IPsec-VPN connection on the Alibaba Cloud side.'."\n", - 'type' => 'string', - 'example' => '116.28.XX.XX', - ], - 'IkeMode' => [ - 'description' => 'The IKE negotiation mode.'."\n" - ."\n" - .'* **main**: This mode offers higher security during negotiations.'."\n" - .'* **aggressive**: This mode is faster and has a higher success rate.'."\n", - 'type' => 'string', - 'example' => 'main', - ], - 'IkeVersion' => [ - 'description' => 'The version of the IKE protocol.'."\n" - ."\n" - .'* **ikev1**'."\n" - .'* **ikev2**'."\n" - ."\n" - .'Compared with IKEv1, IKEv2 simplifies the SA negotiation process and is more suitable for scenarios in which multiple CIDR blocks are used.'."\n", - 'type' => 'string', - 'example' => 'ikev1', - ], - 'IkePfs' => [ - 'description' => 'The Diffie-Hellman (DH) group in the IKE phase.'."\n", - 'type' => 'string', - 'example' => 'group2', - ], - 'Psk' => [ - 'description' => 'The pre-shared key.'."\n", - 'type' => 'string', - 'example' => 'pgw6dy****', - ], - 'IkeAuthAlg' => [ - 'description' => 'The authentication algorithm in the IKE phase.'."\n", - 'type' => 'string', - 'example' => 'sha1', - ], - ], - ], - 'IpsecConfig' => [ - 'description' => 'The configuration of Phase 2 negotiations.'."\n", - 'type' => 'object', - 'properties' => [ - 'IpsecAuthAlg' => [ - 'description' => 'The authentication algorithm in the IPsec phase.'."\n", - 'type' => 'string', - 'example' => 'sha1', - ], - 'IpsecLifetime' => [ - 'description' => 'The lifetime in the IPsec phase. Unit: seconds.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '86400', - ], - 'IpsecEncAlg' => [ - 'description' => 'The encryption algorithm in the IPsec phase.'."\n", - 'type' => 'string', - 'example' => 'aes', - ], - 'IpsecPfs' => [ - 'description' => 'The DH group in the IPsec phase.'."\n", - 'type' => 'string', - 'example' => 'group2', - ], - ], - ], - 'VcoHealthCheck' => [ - 'description' => 'The health check information about the IPsec-VPN connection.'."\n", - 'type' => 'object', - 'properties' => [ - 'Status' => [ - 'description' => 'The state of the health check. Valid values:'."\n" - ."\n" - .'* **failed**'."\n" - .'* **success**: normal'."\n", - 'type' => 'string', - 'example' => 'failed', - ], - 'Dip' => [ - 'description' => 'The destination IP address.'."\n", - 'type' => 'string', - 'example' => '10.0.0.1', - ], - 'Interval' => [ - 'description' => 'The interval between two consecutive health checks. Unit: seconds.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '3', - ], - 'Retry' => [ - 'description' => 'The maximum number of health check retries.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '3', - ], - 'Sip' => [ - 'description' => 'The source IP address.'."\n", - 'type' => 'string', - 'example' => '192.168.1.1', - ], - 'Enable' => [ - 'description' => 'Indicates whether the health check feature is enabled for the IPsec-VPN connection. Valid values:'."\n" - ."\n" - .'* **false**'."\n" - .'* **true**'."\n", - 'type' => 'string', - 'example' => 'true', - ], - 'Policy' => [ - 'description' => 'Indicates whether advertised routes are withdrawn when the health check fails. Valid values:'."\n" - ."\n" - .'* **revoke_route**: Advertised routes are withdrawn.'."\n" - .'* **reserve_route**: Advertised routes are not withdrawn.'."\n", - 'type' => 'string', - 'example' => 'revoke_route', - ], - ], - ], - 'VpnBgpConfig' => [ - 'description' => 'The Border Gateway Protocol (BGP) configuration of the IPsec-VPN connection.'."\n", - 'type' => 'object', - 'properties' => [ - 'Status' => [ - 'description' => 'The negotiation state of the BGP routing protocol. Valid values:'."\n" - ."\n" - .'* **success**: normal'."\n" - .'* **failed**'."\n", - 'type' => 'string', - 'example' => 'success', - ], - 'PeerBgpIp' => [ - 'description' => 'The BGP IP address of the peer.'."\n", - 'type' => 'string', - 'example' => '169.254.11.1', - ], - 'TunnelCidr' => [ - 'description' => 'The BGP CIDR block of the IPsec-VPN connection. The CIDR block falls within 169.254.0.0/16. The subnet mask of the CIDR block must be 30 bits in length.'."\n", - 'type' => 'string', - 'example' => '169.254.11.0/30', - ], - 'EnableBgp' => [ - 'description' => 'Indicates whether BGP is enabled. Valid values:'."\n" - ."\n" - .'* **true**'."\n" - .'* **false**'."\n", - 'type' => 'string', - 'example' => 'true', - ], - 'LocalBgpIp' => [ - 'description' => 'The BGP IP address on the Alibaba Cloud side.'."\n", - 'type' => 'string', - 'example' => '169.254.11.2', - ], - 'PeerAsn' => [ - 'description' => 'The autonomous system number (ASN) of the peer.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '65530', - ], - 'LocalAsn' => [ - 'description' => 'The ASN on the Alibaba Cloud side.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '65531', - ], - 'AuthKey' => [ - 'description' => 'The authentication key of the BGP routing protocol.'."\n", - 'type' => 'string', - 'example' => 'AuthKey****', - ], - ], - ], - 'AttachType' => [ - 'description' => 'The type of the resource that is associated with the IPsec-VPN connection. Valid values:'."\n" - ."\n" - .'* **CEN**: indicates that the IPsec-VPN connection is associated with a transit router of a Cloud Enterprise Network (CEN) instance.'."\n" - .'* **NO_ASSOCIATED**: indicates that the IPsec-VPN connection is not associated with any resource.'."\n" - .'* **VPNGW**: indicates that the IPsec-VPN connection is associated with a VPN gateway.'."\n", - 'type' => 'string', - 'example' => 'CEN', - ], - 'NetworkType' => [ - 'description' => 'The network type of the IPsec-VPN connection. Valid values:'."\n" - ."\n" - .'* **public**: an encrypted connection over the Internet'."\n" - .'* **private**: an encrypted connection over private networks'."\n", - 'type' => 'string', - 'example' => 'public', - ], - 'AttachInstanceId' => [ - 'description' => 'The ID of the CEN instance to which the transit router belongs.'."\n", - 'type' => 'string', - 'example' => 'cen-lxxpbpalc776qz****', - ], - 'Spec' => [ - 'description' => 'The bandwidth specification of the IPsec-VPN connection. Unit: **Mbit/s**.'."\n", - 'type' => 'string', - 'example' => '1000M', - ], - 'State' => [ - 'description' => 'The association state of the IPsec-VPN connection. Valid values:'."\n" - ."\n" - .'* **active**: The IPsec-VPN connection is associated with a VPN gateway.'."\n" - .'* **init**: The IPsec-VPN connection is not associated with any resource and is being initialized.'."\n" - .'* **attaching**: The IPsec-VPN connection is being associated with a transit router.'."\n" - .'* **attached**: The IPsec-VPN connection is associated with a transit router.'."\n" - .'* **detaching**: The IPsec-VPN connection is being disassociated from a transit router.'."\n" - .'* **financialLocked**: The IPsec-VPN connection is locked due to overdue payments.'."\n" - .'* **provisioning**: The IPsec-VPN connection is being prepared.'."\n" - .'* **updating**: The IPsec-VPN connection is being updated.'."\n" - .'* **Upgrading**: The IPsec-VPN connection is being upgraded.'."\n" - .'* **deleted**: The IPsec-VPN connection is deleted.'."\n", - 'type' => 'string', - 'example' => 'attached', - ], - 'ZoneNo' => [ - 'description' => 'The ID of the zone where the IPsec-VPN connection is deployed.'."\n" - ."\n" - .'You can call [DescribeZones](~~36064~~) to query zone IDs and mapping between zone IDs and zone names.'."\n", - 'type' => 'string', - 'example' => 'cn-hangzhou-h', - ], - 'InternetIp' => [ - 'description' => 'The gateway IP address of the IPsec-VPN connection.'."\n", - 'type' => 'string', - 'example' => '47.XX.XX.162', - ], - 'TransitRouterId' => [ - 'description' => 'The ID of the transit router with which the IPsec-VPN connection is associated.'."\n", - 'type' => 'string', - 'example' => 'tr-p0we2edef9qr44a85****', - ], - 'TransitRouterName' => [ - 'description' => 'The name of the transit router.'."\n", - 'type' => 'string', - 'example' => 'nametest', - ], - 'CrossAccountAuthorized' => [ - 'description' => 'Indicates whether the IPsec-VPN connection is associated with a transit router that belongs to another Alibaba Cloud account. Valid values:'."\n" - ."\n" - .'* **true**'."\n" - .'* **false**'."\n", - 'type' => 'boolean', - 'example' => 'false', - ], - 'Tags' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'Tag' => [ - 'description' => 'The list of tags added to the IPsec-VPN connection.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The tag information.', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => 'The tag key.'."\n", - 'type' => 'string', - 'example' => 'TagKey', - ], - 'Value' => [ - 'description' => 'The tag value.'."\n", - 'type' => 'string', - 'example' => 'TagValue', - ], - ], - ], - ], - ], - ], - 'TunnelOptionsSpecification' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'TunnelOptions' => [ - 'description' => 'The tunnel configurations of the IPsec-VPN connection.'."\n" - ."\n" - .'Parameters in **TunnelOptionsSpecification** are returned only if you query an IPsec-VPN connection in dual-tunnel mode.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The tunnel configurations.'."\n", - 'type' => 'object', - 'properties' => [ - 'TunnelId' => [ - 'description' => 'The tunnel ID.'."\n", - 'type' => 'string', - 'example' => 'tun-opsqc4d97wni27****', - ], - 'CustomerGatewayId' => [ - 'description' => 'The ID of the customer gateway associated with the tunnel.'."\n", - 'type' => 'string', - 'example' => 'cgw-p0wy363lucf1uyae8****', - ], - 'EnableDpd' => [ - 'description' => 'Indicates whether the DPD feature is enabled for the tunnel. Valid values:'."\n" - ."\n" - .'* **false**'."\n" - .'* **true**'."\n", - 'type' => 'string', - 'example' => 'true', - ], - 'EnableNatTraversal' => [ - 'description' => 'Indicates whether NAT traversal is enabled for the tunnel. Valid values:'."\n" - ."\n" - .'* **false**'."\n" - .'* **true**'."\n", - 'type' => 'string', - 'example' => 'true', - ], - 'InternetIp' => [ - 'description' => 'The tunnel IP address.'."\n", - 'type' => 'string', - 'example' => '47.21.XX.XX', - ], - 'RemoteCaCertificate' => [ - 'description' => 'The CA certificate of the tunnel peer.'."\n" - ."\n" - .'This parameter is returned only if the VPN gateway is of the ShangMi (SM) type.'."\n", - 'type' => 'string', - 'example' => '-----BEGIN CERTIFICATE----- MIIB7zCCAZW**** -----END CERTIFICATE-----', - ], - 'Role' => [ - 'description' => 'The tunnel role. Valid values:'."\n" - ."\n" - .'* **master**: The tunnel is an active tunnel.'."\n" - .'* **slave**: The tunnel is a standby tunnel.'."\n", - 'type' => 'string', - 'example' => 'master', - ], - 'TunnelIndex' => [ - 'description' => 'The order in which the tunnel is created.'."\n" - ."\n" - .'* **1**: Tunnel 1.'."\n" - .'* **2**: Tunnel 2.'."\n" - ."\n" - .'> This parameter is returned only if the IPsec-VPN connection is associated with a transit router.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'State' => [ - 'description' => 'The tunnel status. Valid values:'."\n" - ."\n" - .'* **active**'."\n" - .'* **updating**'."\n" - .'* **deleting**'."\n", - 'type' => 'string', - 'example' => 'active', - ], - 'Status' => [ - 'description' => 'The state of the IPsec-VPN connection. Valid values:'."\n" - ."\n" - .'* **ike_sa_not_established**: Phase 1 negotiations failed.'."\n" - .'* **ike_sa_established**: Phase 1 negotiations succeeded.'."\n" - .'* **ipsec_sa_not_established**: Phase 2 negotiations failed.'."\n" - .'* **ipsec_sa_established**: Phase 2 negotiations succeeded.'."\n", - 'type' => 'string', - 'example' => 'ipsec_sa_established', - ], - 'TunnelBgpConfig' => [ - 'description' => 'The BGP configurations.'."\n", - 'type' => 'object', - 'properties' => [ - 'BgpStatus' => [ - 'description' => 'The negotiation state of BGP. Valid values:'."\n" - ."\n" - .'* **success**'."\n" - .'* **false**'."\n", - 'type' => 'string', - 'example' => 'success', - ], - 'LocalAsn' => [ - 'description' => 'The ASN on the Alibaba Cloud side.'."\n", - 'type' => 'string', - 'example' => '65530', - ], - 'LocalBgpIp' => [ - 'description' => 'The BGP address on the Alibaba Cloud side.'."\n", - 'type' => 'string', - 'example' => '169.254.10.1', - ], - 'PeerAsn' => [ - 'description' => 'The ASN of the tunnel peer.'."\n", - 'type' => 'string', - 'example' => '65531', - ], - 'PeerBgpIp' => [ - 'description' => 'The BGP IP address of the tunnel peer.'."\n", - 'type' => 'string', - 'example' => '169.254.10.2', - ], - 'TunnelCidr' => [ - 'description' => 'The BGP CIDR block of the tunnel.'."\n", - 'type' => 'string', - 'example' => '169.254.10.0/30', - ], - ], - ], - 'TunnelIkeConfig' => [ - 'description' => 'The configuration of Phase 1 negotiations.'."\n", - 'type' => 'object', - 'properties' => [ - 'IkeAuthAlg' => [ - 'description' => 'The authentication algorithm in the IKE phase.'."\n", - 'type' => 'string', - 'example' => 'sha1', - ], - 'IkeEncAlg' => [ - 'description' => 'The encryption algorithm in the IKE phase.'."\n", - 'type' => 'string', - 'example' => 'aes', - ], - 'IkeLifetime' => [ - 'description' => 'The lifetime in the IKE phase. Unit: seconds.'."\n", - 'type' => 'string', - 'example' => '86400', - ], - 'IkeMode' => [ - 'description' => 'The IKE negotiation mode.'."\n" - ."\n" - .'* **main**: This mode offers higher security during negotiations.'."\n" - .'* **aggressive**: This mode is faster and has a higher success rate.'."\n", - 'type' => 'string', - 'example' => 'main', - ], - 'IkePfs' => [ - 'description' => 'The Diffie-Hellman (DH) group in the IKE phase.'."\n", - 'type' => 'string', - 'example' => 'group2', - ], - 'IkeVersion' => [ - 'description' => 'The version of the IKE protocol.'."\n", - 'type' => 'string', - 'example' => 'ikev1', - ], - 'LocalId' => [ - 'description' => 'The identifier of the tunnel on the Alibaba Cloud side.'."\n", - 'type' => 'string', - 'example' => '47.21.XX.XX', - ], - 'Psk' => [ - 'description' => 'The pre-shared key.'."\n", - 'type' => 'string', - 'example' => '123456****', - ], - 'RemoteId' => [ - 'description' => 'The identifier of the tunnel peer.'."\n", - 'type' => 'string', - 'example' => '47.42.XX.XX', - ], - ], - ], - 'TunnelIpsecConfig' => [ - 'description' => 'The configurations of Phase 2 negotiations.'."\n", - 'type' => 'object', - 'properties' => [ - 'IpsecAuthAlg' => [ - 'description' => 'The authentication algorithm in the IPsec phase.'."\n", - 'type' => 'string', - 'example' => 'sha1', - ], - 'IpsecEncAlg' => [ - 'description' => 'The encryption algorithm in the IPsec phase.'."\n", - 'type' => 'string', - 'example' => 'aes', - ], - 'IpsecLifetime' => [ - 'description' => 'The lifetime in the IPsec phase. Unit: seconds.'."\n", - 'type' => 'string', - 'example' => '86400', - ], - 'IpsecPfs' => [ - 'description' => 'The DH group in the IPsec phase.'."\n", - 'type' => 'string', - 'example' => 'group2', - ], - ], - ], - 'ZoneNo' => [ - 'description' => 'The zone where the tunnel is deployed.'."\n" - ."\n" - .'You can call [DescribeZones](~~36064~~) to query zone IDs.'."\n", - 'type' => 'string', - 'example' => 'cn-hangzhou-i', - ], - ], - ], - ], - ], - ], - 'EnableTunnelsBgp' => [ - 'description' => 'Indicates whether BGP is enabled for the tunnel. Valid values:'."\n" - ."\n" - .'* **true**'."\n" - .'* **false**'."\n", - 'type' => 'boolean', - 'example' => 'true', - ], - 'ResourceGroupId' => [ - 'description' => 'The ID of the resource group to which the IPsec-VPN connection belongs.'."\n" - ."\n" - .'You can call the [ListResourceGroups](~~158855~~) operation to query the resource group information.', - 'type' => 'string', - 'example' => 'rg-acfmzs372yg****', - ], - 'TunnelBandwidth' => [ - 'title' => '用于说明VPN单条隧道的带宽规格,取值:'."\n" - .'Standard(默认值):标准型,默认带宽1Gbps'."\n" - .'Large(大型):大型,默认带宽3Gbps', - 'type' => 'string', - ], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '5BE01CD7-5A50-472D-AC14-CA181C5C03BE ', 'title' => ''], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ + 400 => [ + ['errorCode' => 'Resource.QuotaFull', 'errorMessage' => 'The quota of resource is full', 'description' => ''], + ['errorCode' => 'VpnGateway.Configuring', 'errorMessage' => 'The specified service is configuring.', 'description' => ''], + ['errorCode' => 'VpnGateway.FinancialLocked', 'errorMessage' => 'The specified service is financial locked.', 'description' => ''], + ['errorCode' => 'VpnRouteEntry.AlreadyExists', 'errorMessage' => 'The specified route entry is already exist.', 'description' => 'The route already exists.'], + ['errorCode' => 'VpnRouteEntry.Conflict', 'errorMessage' => 'The specified route entry has conflict.', 'description' => 'Route conflicts exist.'], + ['errorCode' => 'VpnRouteEntry.BackupRoute', 'errorMessage' => 'Validate backup route entry failed.', 'description' => 'Active/standby routes failed authentication.'], + ], 403 => [ - [ - 'errorCode' => 'Forbbiden.SubUser', - 'errorMessage' => 'User not authorized to operate on the specified resource as your account is created by another user.', - ], - [ - 'errorCode' => 'Forbidden', - 'errorMessage' => 'User not authorized to operate on the specified resource.', - ], + ['errorCode' => 'Forbbiden.SubUser', 'errorMessage' => 'User not authorized to operate on the specified resource as your account is created by another user.', 'description' => ''], + ['errorCode' => 'Forbidden', 'errorMessage' => 'User not authorized to operate on the specified resource.', 'description' => 'You do not have the permissions to manage the specified resource. Apply for the permissions and try again.'], ], [ - [ - 'errorCode' => 'InvalidVpnConnectionInstanceId.NotFound', - 'errorMessage' => 'The specified vpn connection instance id does not exist.', - ], + ['errorCode' => 'InvalidVpnGatewayInstanceId.NotFound', 'errorMessage' => 'The specified vpn gateway instance id does not exist.', 'description' => ''], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'eventInfo' => [ - 'enable' => false, - 'eventNames' => [], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Status\\": \\"ike_sa_not_established\\",\\n \\"RemoteCaCertificate\\": \\"-----BEGIN CERTIFICATE----- MIIB7zCCAZW****\\",\\n \\"EnableNatTraversal\\": true,\\n \\"CreateTime\\": 1492753817000,\\n \\"EffectImmediately\\": true,\\n \\"VpnGatewayId\\": \\"vpn-bp1q8bgx4xnkm2ogj****\\",\\n \\"LocalSubnet\\": \\"10.0.0.0/8\\",\\n \\"RequestId\\": \\"F2310D45-BCF6-4E2E-9082-B4503844BA4C\\",\\n \\"VpnConnectionId\\": \\"vco-bp1bbi27hojx80nck****\\",\\n \\"RemoteSubnet\\": \\"192.168.0.0/16\\",\\n \\"CustomerGatewayId\\": \\"cgw-bp1mvj4g9kogwwcxk****\\",\\n \\"Name\\": \\"ipsec1\\",\\n \\"EnableDpd\\": true,\\n \\"IkeConfig\\": {\\n \\"RemoteId\\": \\"139.34.XX.XX\\",\\n \\"IkeLifetime\\": 86400,\\n \\"IkeEncAlg\\": \\"aes\\",\\n \\"LocalId\\": \\"116.28.XX.XX\\",\\n \\"IkeMode\\": \\"main\\",\\n \\"IkeVersion\\": \\"ikev1\\",\\n \\"IkePfs\\": \\"group2\\",\\n \\"Psk\\": \\"pgw6dy****\\",\\n \\"IkeAuthAlg\\": \\"sha1\\"\\n },\\n \\"IpsecConfig\\": {\\n \\"IpsecAuthAlg\\": \\"sha1\\",\\n \\"IpsecLifetime\\": 86400,\\n \\"IpsecEncAlg\\": \\"aes\\",\\n \\"IpsecPfs\\": \\"group2\\"\\n },\\n \\"VcoHealthCheck\\": {\\n \\"Status\\": \\"failed\\",\\n \\"Dip\\": \\"10.0.0.1\\",\\n \\"Interval\\": 3,\\n \\"Retry\\": 3,\\n \\"Sip\\": \\"192.168.1.1\\",\\n \\"Enable\\": \\"true\\",\\n \\"Policy\\": \\"revoke_route\\"\\n },\\n \\"VpnBgpConfig\\": {\\n \\"Status\\": \\"success\\",\\n \\"PeerBgpIp\\": \\"169.254.11.1\\",\\n \\"TunnelCidr\\": \\"169.254.11.0/30\\",\\n \\"EnableBgp\\": \\"true\\",\\n \\"LocalBgpIp\\": \\"169.254.11.2\\",\\n \\"PeerAsn\\": 65530,\\n \\"LocalAsn\\": 65531,\\n \\"AuthKey\\": \\"AuthKey****\\"\\n },\\n \\"AttachType\\": \\"CEN\\",\\n \\"NetworkType\\": \\"public\\",\\n \\"AttachInstanceId\\": \\"cen-lxxpbpalc776qz****\\",\\n \\"Spec\\": \\"1000M\\",\\n \\"State\\": \\"attached\\",\\n \\"ZoneNo\\": \\"cn-hangzhou-h\\",\\n \\"InternetIp\\": \\"47.XX.XX.162\\",\\n \\"TransitRouterId\\": \\"tr-p0we2edef9qr44a85****\\",\\n \\"TransitRouterName\\": \\"nametest\\",\\n \\"CrossAccountAuthorized\\": false,\\n \\"Tags\\": {\\n \\"Tag\\": [\\n {\\n \\"Key\\": \\"TagKey\\",\\n \\"Value\\": \\"TagValue\\"\\n }\\n ]\\n },\\n \\"TunnelOptionsSpecification\\": {\\n \\"TunnelOptions\\": [\\n {\\n \\"TunnelId\\": \\"tun-opsqc4d97wni27****\\",\\n \\"CustomerGatewayId\\": \\"cgw-p0wy363lucf1uyae8****\\",\\n \\"EnableDpd\\": \\"true\\",\\n \\"EnableNatTraversal\\": \\"true\\",\\n \\"InternetIp\\": \\"47.21.XX.XX\\",\\n \\"RemoteCaCertificate\\": \\"-----BEGIN CERTIFICATE----- MIIB7zCCAZW**** -----END CERTIFICATE-----\\",\\n \\"Role\\": \\"master\\",\\n \\"TunnelIndex\\": 1,\\n \\"State\\": \\"active\\",\\n \\"Status\\": \\"ipsec_sa_established\\",\\n \\"TunnelBgpConfig\\": {\\n \\"BgpStatus\\": \\"success\\",\\n \\"LocalAsn\\": \\"65530\\",\\n \\"LocalBgpIp\\": \\"169.254.10.1\\",\\n \\"PeerAsn\\": \\"65531\\",\\n \\"PeerBgpIp\\": \\"169.254.10.2\\",\\n \\"TunnelCidr\\": \\"169.254.10.0/30\\"\\n },\\n \\"TunnelIkeConfig\\": {\\n \\"IkeAuthAlg\\": \\"sha1\\",\\n \\"IkeEncAlg\\": \\"aes\\",\\n \\"IkeLifetime\\": \\"86400\\",\\n \\"IkeMode\\": \\"main\\",\\n \\"IkePfs\\": \\"group2\\",\\n \\"IkeVersion\\": \\"ikev1\\",\\n \\"LocalId\\": \\"47.21.XX.XX\\",\\n \\"Psk\\": \\"123456****\\",\\n \\"RemoteId\\": \\"47.42.XX.XX\\"\\n },\\n \\"TunnelIpsecConfig\\": {\\n \\"IpsecAuthAlg\\": \\"sha1\\",\\n \\"IpsecEncAlg\\": \\"aes\\",\\n \\"IpsecLifetime\\": \\"86400\\",\\n \\"IpsecPfs\\": \\"group2\\"\\n },\\n \\"ZoneNo\\": \\"cn-hangzhou-i\\"\\n }\\n ]\\n },\\n \\"EnableTunnelsBgp\\": true,\\n \\"ResourceGroupId\\": \\"rg-acfmzs372yg****\\",\\n \\"TunnelBandwidth\\": \\"Standard\\"\\n}","errorExample":""},{"type":"xml","example":"\\n ike_sa_not_established\\n -----BEGIN CERTIFICATE----- MIIB7zCCAZW****\\n true\\n 1492753817000\\n true\\n vpn-bp1q8bgx4xnkm2ogj****\\n active\\n 10.0.0.0/8\\n F2310D45-BCF6-4E2E-9082-B4503844BA4C\\n vco-bp1bbi27hojx80nck****\\n 192.168.0.0/16\\n cgw-bp1mvj4g9kogwwcxk****\\n ipsec1\\n true\\n \\n 139.34.XX.XX\\n 86400\\n aes\\n 116.28.XX.XX\\n main\\n ikev1\\n group2\\n pgw6dy****\\n sha1\\n \\n \\n sha1\\n 86400\\n aes\\n group2\\n \\n \\n failed\\n 10.0.0.1\\n 3\\n 3\\n 192.168.1.1\\n true\\n \\n \\n success\\n 169.254.11.1\\n 169.254.11.0/30\\n true\\n 169.254.11.2\\n 65530\\n 65531\\n AuthKey****\\n \\n","errorExample":""}]', - 'title' => 'DescribeVpnConnection', + 'staticInfo' => ['returnType' => 'asynchronous', 'callback' => 'Vpc::2016-04-28::DescribeVpnGateway', 'callbackInterval' => 1000, 'maxCallbackTimes' => 30], + 'title' => 'ModifyVpnRouteEntryWeight', + 'summary' => 'Modifies the weight of a destination-based route.', + 'description' => '* In scenarios where a VPN gateway has an active and a standby destination-based route, if you need to modify the weight of the active destination-based route, you must first delete the standby destination-based route. After you modify the active destination-based route, configure a standby destination-based route. If you need to modify the weight of the standby destination-based route, you also need to delete the active destination-based route first. After you modify the standby destination-based route, configure an active destination-based route. For more information about how to delete a destination-based route, see [DeleteVpnRouteEntry](~~2526961~~).'."\n" + ."\n" + .'* **ModifyVpnRouteEntryWeight** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call [DescribeVpnGateway](~~73720~~) to query the status of the task.'."\n" + ."\n" + .' * If the VPN gateway is in the **updating** state, the weight of the destination-based route is being modified.'."\n" + .' * If the VPN gateway is in the **active** state, the weight of the destination-based route is modified.'."\n" + ."\n" + .'* You cannot repeatedly call the **ModifyVpnRouteEntryWeight** operation to modify the weight of destination-based route for the same VPN gateway within the specified period of time.'."\n", 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeVpnConnections' => [ - 'summary' => 'Queries IPsec-VPN connections.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [ + ['createdAt' => '2023-08-02T07:08:07.000Z', 'description' => 'Error codes changed'], ], + 'ramActions' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"5BE01CD7-5A50-472D-AC14-CA181C5C03BE\\\\t\\"\\n}","errorExample":""},{"type":"xml","example":"\\r\\n 5BE01CD7-5A50-472D-AC14-CA181C5C03BE\\r\\n","errorExample":""}]', + ], + 'MoveResourceGroup' => [ + 'summary' => 'Modifies the resource group to which a cloud resource belongs.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', - 'systemTags' => [ - 'operationType' => 'list', - 'riskType' => 'none', - 'chargeType' => 'free', - ], + 'operationType' => 'readAndWrite', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ + [ + 'name' => 'ResourceId', + 'in' => 'query', + 'schema' => ['description' => 'The instance ID of the cloud resource for which you want to modify the resource group.', 'type' => 'string', 'required' => true, 'example' => 'vpc-hp31psbg8ec3023s6****', 'title' => ''], + ], + [ + 'name' => 'ResourceType', + 'in' => 'query', + 'schema' => ['description' => 'The type of the cloud resource for which you want to modify the resource group. Valid values:'."\n" + ."\n" + .'- **Vpc**: virtual private cloud (VPC)'."\n" + .'- **Eip**: elastic IP address (EIP)'."\n" + .'- **BandwidthPackage**: Internet Shared Bandwidth'."\n" + .'- **PrefixList**: prefix list'."\n" + .'- **PublicIpAddressPool**: IPAM pool'."\n" + .'- **FlowLog**: flow log'."\n" + .'- **HaVip**: high-availability (HA) virtual IP address'."\n" + .'- **TrafficMirrorFilter**: traffic mirror filter'."\n" + .'- **TrafficMirrorSession**: traffic mirror session'."\n" + .'- **IPv4Gateway**: IPv4 gateway'."\n" + .'- **IPv6Gateway**: IPv6 gateway'."\n" + .'- **IPv6Address**: IPv6 address'."\n" + .'- **DhcpOptionsSet**: DHCP options set'."\n" + .'- **GatewayEndpoint**: gateway endpoint', 'type' => 'string', 'required' => true, 'example' => 'vpc', 'title' => ''], + ], + [ + 'name' => 'NewResourceGroupId', + 'in' => 'query', + 'schema' => ['description' => 'The ID of the resource group to which you want to move the cloud resource instance.'."\n" + ."\n" + .'> A resource group is a mechanism for managing resources by group within an Alibaba Cloud account. Resource groups help you address complex resource grouping and authorization management issues within a single cloud account. For more information, see [What is Resource Management?](~~94475~~).', 'type' => 'string', 'required' => true, 'example' => 'rg-acfm3peow3k****', 'title' => ''], + ], [ 'name' => 'RegionId', 'in' => 'query', + 'schema' => ['description' => 'The region ID of the cloud resource.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the region ID.', 'type' => 'string', 'required' => true, 'example' => 'cn-hangzhou', 'title' => ''], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => 'The ID of the region where the IPsec-VPN connection is created.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', + 'description' => 'The request ID.', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '611CB80C-B6A9-43DB-9E38-0B0AC3D9B58F', 'title' => ''], + ], 'title' => '', + 'example' => '', ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InvalidResourceGroupId', 'errorMessage' => 'The specified ResourceGroupId does not exist.', 'description' => 'The specified resource group ID does not exist.'], + ['errorCode' => 'InvalidResourceId.NotFound', 'errorMessage' => 'The specified ResourceId does not exist.', 'description' => ''], + ['errorCode' => 'IllegalParam.ResourceType', 'errorMessage' => 'Invalid Resource Type value.', 'description' => 'The ResourceType parameter is not supported or set to an invalid value.'], + ['errorCode' => 'OperationFailed.InstanceStatusNotAllowed', 'errorMessage' => 'The current status of the resource does not support this operation.', 'description' => 'The resource in this state does not support the current operation.'], + ['errorCode' => 'IncorrectStatus.Vpc', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => 'The instance is in an invalid state.'], + ['errorCode' => 'Forbidden.OperateManagedFlowLog', 'errorMessage' => 'Authentication is failed for operate managed flowlog.', 'description' => 'Authentication failed when operating the managed flow log.'], + ], + 404 => [ + ['errorCode' => 'InvalidBandwidthPackageId.NotFound', 'errorMessage' => 'The specified bandwidthPackage resourceId does not exist in our records.', 'description' => 'The error message returned because the specified EIP bandwidth plan does not exist.'], + ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'Modify the resource group of a cloud resource', + 'description' => 'The **ChangeResourceGroup** operation does not support concurrent modifications of the resource group for Express Connect circuit resources within the same Express Connect circuit instance.', + 'changeSet' => [ + ['createdAt' => '2023-08-09T12:09:36.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2023-07-18T07:25:12.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-05-17T09:49:59.000Z', 'description' => 'Error codes changed'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '60', 'countWindow' => 60, 'regionId' => '*', 'api' => 'MoveResourceGroup'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], + ], + 'ramActions' => [ [ - 'name' => 'VpnGatewayId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the VPN gateway.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'vpn-bp1q8bgx4xnkx****', - 'title' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:MoveResourceGroup', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'conditional', 'product' => 'VPC', 'resourceType' => 'BandwidthPackage', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:bandwidthpackage/{#BandwidthPackageId}'], + ['validationType' => 'conditional', 'product' => 'VPC', 'resourceType' => 'Eip', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:eip/{#AllocationId}'], + ['validationType' => 'conditional', 'product' => 'VPC', 'resourceType' => 'VPC', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vpc/{#VpcId}'], + ['validationType' => 'conditional', 'product' => 'VPC', 'resourceType' => 'PrefixList', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:prefixlist/{#PrefixListId}'], + ['validationType' => 'conditional', 'product' => 'VPC', 'resourceType' => 'GatewayEndpoint', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:gatewayendpoint/{#GatewayEndpointId}'], + ['validationType' => 'conditional', 'product' => 'VPC', 'resourceType' => 'DhcpOptionsSet', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:dhcpoptionsset/{#DhcpOptionsSetId}'], + ['validationType' => 'conditional', 'product' => 'VPC', 'resourceType' => 'FlowLog', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:flowlog/{#FlowLogId}'], + ['validationType' => 'conditional', 'product' => 'VPC', 'resourceType' => 'HaVip', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:havip/{#HaVipId}'], + ['validationType' => 'conditional', 'product' => 'VPC', 'resourceType' => 'Ipv4Gateway', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:ipv4gateway/{#Ipv4GatewayId}'], + ['validationType' => 'conditional', 'product' => 'VPC', 'resourceType' => 'Ipv6Gateway', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:ipv6gateway/{#Ipv6GatewayId}'], + ['validationType' => 'conditional', 'product' => 'VPC', 'resourceType' => 'PublicIpAddressPool', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:publicipaddresspool/{#PublicIpAddressPoolId}'], + ['validationType' => 'conditional', 'product' => 'VPC', 'resourceType' => 'TrafficMirrorFilter', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:trafficmirrorfilter/{#TrafficMirrorFilterId}'], + ['validationType' => 'conditional', 'product' => 'VPC', 'resourceType' => 'TrafficMirrorSession', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:trafficmirrorsession/{#TrafficMirrorSessionId}'], + ], ], ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"611CB80C-B6A9-43DB-9E38-0B0AC3D9B58F\\"\\n}","type":"json"}]', + ], + 'MoveVpnResourceGroup' => [ + 'methods' => ['post'], + 'schemes' => ['https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free'], + 'parameters' => [ [ - 'name' => 'CustomerGatewayId', + 'name' => 'InstanceId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the customer gateway.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'cgw-bp1mvj4g9kogw****', - 'title' => '', - ], + 'schema' => ['description' => 'The instance ID of the resource.', 'type' => 'string', 'required' => true, 'example' => 'vpn-8vb3lzn7biepthri8****', 'title' => ''], ], [ - 'name' => 'PageNumber', + 'name' => 'ResourceType', 'in' => 'query', - 'schema' => [ - 'description' => 'The page number of the page to return. Default value: **1**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', - 'default' => '1', - 'title' => '', - ], + 'schema' => ['description' => 'The resource type. Valid values:'."\n" + ."\n" + .'- **VpnGateway**: VPN gateway instance.'."\n" + ."\n" + .' After you change the resource group of a VPN gateway instance, the resource group of the IPsec server, SSL server, SSL client certificate, and IPsec-VPN connections (IPsec-VPN connections associated with the VPN gateway instance) under the VPN gateway instance is also changed.'."\n" + .'- **CustomerGateway**: customer gateway instance.'."\n" + .'- **VpnAttachment**: IPsec-VPN connection instance.'."\n" + .' '."\n" + .' This refers to IPsec-VPN connections associated with a transit router instance or IPsec-VPN connections that are not associated with any resource.', 'type' => 'string', 'required' => true, 'example' => 'VpnGateway', 'title' => ''], ], [ - 'name' => 'PageSize', + 'name' => 'NewResourceGroupId', + 'in' => 'query', + 'schema' => ['description' => 'The ID of the new resource group to which the resource belongs.', 'type' => 'string', 'required' => true, 'example' => 'rg-acfmzs372yg****', 'title' => ''], + ], + [ + 'name' => 'RegionId', 'in' => 'query', + 'schema' => ['description' => 'The region ID of the resource.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the region ID.', 'type' => 'string', 'required' => true, 'example' => 'cn-zhangjiakou', 'title' => ''], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => 'The number of entries returned on each page. Default value: **10**. Valid values: **1** to **50**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '10', - 'default' => '10', 'title' => '', + 'description' => 'The response parameters.', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['title' => '', 'description' => 'The request ID.', 'type' => 'string', 'example' => '89ED47AF-3319-566E-A5F5-94E3F47F54A8'], + ], + 'example' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InvalidInstanceId.NotFound', 'errorMessage' => 'InstanceId is not found.', 'description' => 'The Express Connect circuit ID is invalid.'], + ['errorCode' => 'InvalidResourceGroupId', 'errorMessage' => 'The specified ResourceGroupId does not exist.', 'description' => 'The specified resource group ID does not exist.'], + ['errorCode' => 'InvalidResourceId.NotFound', 'errorMessage' => 'The specified ResourceId does not exist.', 'description' => ''], + ['errorCode' => 'IllegalParam.ResourceType', 'errorMessage' => 'Invalid Resource Type value.', 'description' => 'The ResourceType parameter is not supported or set to an invalid value.'], + ], + 403 => [ + ['errorCode' => 'Forbidden', 'errorMessage' => 'User not authorized to operate on the specified resource.', 'description' => 'You do not have the permissions to manage the specified resource. Apply for the permissions and try again.'], + ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'Modify the resource group of a VPN gateway resource', + 'summary' => 'Modifies the resource group to which a VPN gateway resource belongs.', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'MoveVpnResourceGroup'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], + ], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:MoveVpnResourceGroup', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'All Resource', 'arn' => '*'], + ], ], ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"89ED47AF-3319-566E-A5F5-94E3F47F54A8\\"\\n}","type":"json"}]', + ], + 'OpenFlowLogService' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'VpnConnectionId', + 'AK' => [], + ], + ], + 'operationType' => 'readAndWrite', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'create', 'riskType' => 'none', 'chargeType' => 'free'], + 'parameters' => [ + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'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.'."\n" + ."\n" + .'> If you do not set this parameter, the system automatically set **ClientToken** to the value of **RequestId**. The value of **RequestId** for each API request is different.'."\n", 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-426655440000'], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => ['description' => 'The region ID of the flow log.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou'], + ], + [ + 'name' => 'RegionId', 'in' => 'query', + 'schema' => ['description' => 'The region ID of the flow log.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou'], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => 'The ID of the IPsec-VPN connection.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'vco-bp10lz7aejumd****', - 'title' => '', + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => '28CF47AB-B6C0-5FA2-80C7-2B28826A92CB'], + 'Code' => ['description' => 'The HTTP status code.'."\n", 'type' => 'string', 'example' => '200'], + 'Message' => ['description' => 'The information returned after the flow log feature is enabled.'."\n", 'type' => 'string', 'example' => 'successful'], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'OperationFailed.ExceedPurchaseLimit', 'errorMessage' => 'You have reached the limit of purchase quantity.', 'description' => ''], + ['errorCode' => 'Forbidden.RAM', 'errorMessage' => 'User not authorized to operate on the specified resource, or this API doesn\'t support RAM.', 'description' => ''], + ['errorCode' => 'OperationFailed.AliGroupUserCanNotBuyInnerCommodity', 'errorMessage' => 'Vpc_flowlog_public has no group cloud product label, and users within the group are not allowed to purchase.', 'description' => 'vpc_flowlog_public does not have a merchandise tag and cannot be purchased by an internal group user.'], + ['errorCode' => 'OperationFailed.QuotaNotEnough', 'errorMessage' => 'Your quota is insufficient. Please contact your channel partner to increase your quota', 'description' => ''], + ['errorCode' => 'Order.NoRealNameAuthentication', 'errorMessage' => 'Real-name verification has not been completed for the account.', 'description' => 'You have not performed real-name authentication. Please go to the account center to complete real-name authentication.'], + ['errorCode' => 'OperationFailed.BasicInfoUncompleted', 'errorMessage' => 'You have not completed your basic personal information, please complete the information and try again.', 'description' => 'Your basic information is incomplete. Specify the information and try again.'], + ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'OpenFlowLogService', + 'summary' => 'Enables the flow log feature.', + 'description' => '* You cannot repeatedly call the **OpenFlowLogService** operation within the specified period of time by using an Alibaba Cloud account.'."\n" + .'* You can call the [GetFlowLogServiceStatus](~~449624~~) operation to query the status of the flow log feature.', + 'changeSet' => [ + ['createdAt' => '2023-03-16T06:10:40.000Z', 'description' => 'Error codes changed, Response parameters changed'], + ['createdAt' => '2022-08-29T11:03:13.000Z', 'description' => 'Error codes changed, Response parameters changed'], + ], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'vpc:OpenFlowLogService', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'FlowLogService', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:flowlog/*'], + ], ], ], + ], + ], + 'OpenPhysicalConnectionService' => [ + 'summary' => 'Enables billing for outbound data transfer.', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'Tag', + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'create'], + 'parameters' => [ + [ + 'name' => 'RegionId', 'in' => 'query', - 'style' => 'repeatList', + 'schema' => ['title' => '', 'description' => 'The ID of the region where the Express Connect circuit is deployed.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'example' => 'cn-hangzhou'], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => 'The tag value.'."\n" - ."\n" - .'The tag value can be an empty string and cannot exceed 128 characters in length. It cannot start with `aliyun` or `acs:`, and cannot contain `http://` or `https://`.'."\n" - ."\n" - .'Each tag key corresponds to one tag value. You can specify up to 20 tag values in each call.', - 'type' => 'array', - 'items' => [ - 'description' => 'The tag value.', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => 'The tag key. The tag key cannot be an empty string.'."\n" - ."\n" - .'It can be at most 64 characters in length, and cannot contain `http://` or `https://`. It cannot start with `aliyun` or `acs:`.'."\n" - ."\n" - .'You can specify at most 20 tag keys in each call.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'TagKey', - 'title' => '', - ], - 'Value' => [ - 'description' => 'The tag value.'."\n" - ."\n" - .'The tag value can be an empty string and cannot exceed 128 characters in length. It cannot start with `aliyun` or `acs:`, and cannot contain `http://` or `https://`.'."\n" - ."\n" - .'Each tag key corresponds to one tag value. You can specify at most 20 tag values in each call.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'TagValue', - 'title' => '', - ], - ], - 'required' => false, - 'title' => '', - 'example' => '', + 'title' => 'Schema of Response', + 'description' => 'Schema of Response', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['title' => 'Id of the request', 'description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B45'], ], - 'required' => false, - 'maxItems' => 21, - 'title' => '', 'example' => '', ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'PURCHASE_QUANTITY_LIMIT', 'errorMessage' => 'Your purchase quantity exceeds the maximum limit.', 'description' => ''], + ['errorCode' => 'InvalidOperation.OrderOpened', 'errorMessage' => 'You have already open the service. Go to the console to start using it.', 'description' => 'The cloud traffic service has been activated. Go to the console to use it.'], + ], + ], + 'title' => 'OpenPhysicalConnectionService', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2024-04-03T03:52:02.000Z', 'description' => 'Error codes changed'], + ], + 'ramActions' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B45\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 54B48E3D-DF70-471B-AA93-08E683A1B45\\n","errorExample":""}]', + ], + 'OpenPublicIpAddressPoolService' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'readAndWrite', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'create', 'riskType' => 'none', 'chargeType' => 'free', 'autoTest' => false, 'tenantRelevance' => 'publicInformation'], + 'parameters' => [ [ - 'name' => 'ResourceGroupId', + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'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.'."\n" + ."\n" + .'> If you do not specify this parameter, the system automatically uses the **RequestId** of the API request as the **ClientToken**. The **RequestId** of each API request is different.', 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-426655442455', 'title' => ''], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => ['description' => 'The region ID of the IP address pool.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], + ], + [ + 'name' => 'RegionId', 'in' => 'query', + 'schema' => ['description' => 'The region ID of the IP address pool.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => 'The ID of the resource group to which the IPsec-VPN connection belongs.'."\n" - ."\n" - .'You can call the [ListResourceGroups](~~158855~~) operation to query the resource group ID.', - 'type' => 'string', - 'required' => false, - 'example' => 'rg-acfmzs372yg****', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '28CF47AB-B6C0-5FA2-80C7-2B37726A92CB', 'title' => ''], + 'Code' => ['description' => 'The status code.', 'type' => 'string', 'example' => '200', 'title' => ''], + 'Message' => ['description' => 'The message returned when the IP address pool feature is activated.', 'type' => 'string', 'example' => 'successful', 'title' => ''], + ], + 'description' => '', 'title' => '', + 'example' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'OperationFailed.ExceedPurchaseLimit', 'errorMessage' => 'You have reached the limit of purchase quantity.', 'description' => ''], + ['errorCode' => 'Forbidden.RAM', 'errorMessage' => 'User not authorized to operate on the specified resource', 'description' => ''], + ['errorCode' => 'OperationFailed.QuotaNotEnough', 'errorMessage' => 'Your quota is insufficient. Please contact your channel partner to increase your quota', 'description' => ''], + ['errorCode' => 'Order.NoRealNameAuthentication', 'errorMessage' => 'Real-name verification has not been completed for the account.', 'description' => 'You have not performed real-name authentication. Please go to the account center to complete real-name authentication.'], + ['errorCode' => 'OperationFailed.BasicInfoUncompleted', 'errorMessage' => 'You have not completed your basic personal information, please complete the information and try again.', 'description' => 'Your basic information is incomplete. Specify the information and try again.'], + ['errorCode' => 'Forbidden.OpenPublicIpAddressPool', 'errorMessage' => 'Authentication is failed for opening public ip address pool. Please apply for permission at the quota center.', 'description' => 'Failed to activate the IP address pool service. Please go to the quota center to apply for permission.'], + ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'Activate the IP address pool feature', + 'summary' => 'Calls the OpenPublicIpAddressPoolService operation to activate the IP address pool feature.', + 'description' => '- The **OpenPublicIpAddressPoolService** operation does not support concurrent activation of the IP address pool feature within the same Alibaba Cloud account.'."\n" + ."\n" + .'- You can call the GetPublicIpAddressPoolServiceStatu operation to query the activation status of the IP address pool feature.', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'OpenPublicIpAddressPoolService'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], + ], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'vpc:OpenPublicIpAddressPoolService', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'All Resource', 'arn' => '*'], + ], ], ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"28CF47AB-B6C0-5FA2-80C7-2B37726A92CB\\",\\n \\"Code\\": \\"200\\",\\n \\"Message\\": \\"successful\\"\\n}","type":"json"}]', + ], + 'OpenTrafficMirrorService' => [ + 'summary' => 'Enables traffic mirror.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], + ], + [ + 'APP' => [], + ], + [ + 'PrivateKey' => [], + ], + [ + 'BearerToken' => [], + ], + ], + 'operationType' => 'readAndWrite', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'create', 'riskType' => 'none', 'chargeType' => 'free', 'autoTest' => false, 'notSupportAutoTestReason' => '服务开通接口,不可重入', 'tenantRelevance' => 'publicInformation'], + 'parameters' => [ + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'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.'."\n" + ."\n" + .'> 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.'."\n", 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-426655442222', 'title' => ''], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => ['description' => 'The ID of the region to which the mirrored traffic belongs.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => false, 'docRequired' => false, 'example' => 'cn-hangzhou', 'title' => ''], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => ['description' => 'The ID of the region to which the mirrored traffic belongs.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => false, 'docRequired' => false, 'example' => 'cn-hangzhou', 'title' => ''], + ], + ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => 'The response parameters.'."\n", + 'description' => 'The returned data.'."\n", 'type' => 'object', 'properties' => [ - 'PageSize' => [ - 'description' => 'The number of entries returned per page.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - 'title' => '', - ], - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '238752DC-0693-49BE-9C85-711D5691D3E5', - 'title' => '', - ], - 'PageNumber' => [ - 'description' => 'The page number.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - 'title' => '', - ], - 'TotalCount' => [ - 'description' => 'The total number of entries returned.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '2', - 'title' => '', - ], - 'VpnConnections' => [ - 'description' => '', - 'type' => 'object', - 'items' => [ - 'description' => 'IPsec连接的配置信息。', - 'type' => 'object', - 'properties' => [ - 'Status' => [ - 'name' => 'Status', - 'description' => 'IPsec连接的状态。'."\n" - ."\n" - .'- **ike_sa_not_established**:第一阶段协商失败。'."\n" - ."\n" - .'- **ike_sa_established**:第一阶段协商成功。'."\n" - ."\n" - .'- **ipsec_sa_not_established**:第二阶段协商失败。'."\n" - ."\n" - .'- **ipsec_sa_established**:第二阶段协商成功。', - 'visibility' => 'Public', - 'type' => 'string', - 'example' => 'ipsec_sa_established', - 'backendName' => 'status', - ], - 'EnableNatTraversal' => [ - 'name' => 'EnableNatTraversal', - 'description' => 'IPsec连接是否已开启NAT穿越功能。'."\n" - ."\n" - .'- **true**:开启NAT穿越功能。'."\n" - ."\n" - .' 开启后,IKE协商过程会删除对UDP端口号的验证过程,同时实现对VPN隧道中NAT网关设备的发现功能。'."\n" - ."\n" - .'- **false**:不开启NAT穿越功能。', - 'visibility' => 'Public', - 'type' => 'boolean', - 'example' => 'true', - 'backendName' => 'enableNatTraversal', - ], - 'RemoteCaCertificate' => [ - 'name' => 'RemoteCaCertificate', - 'description' => '对端的CA证书。', - 'visibility' => 'Public', - 'type' => 'string', - 'example' => '-----BEGIN CERTIFICATE----- MIIB7zCCAZW**** -----END CERTIFICATE-----', - 'backendName' => 'remoteCaCert', - ], - 'CreateTime' => [ - 'name' => 'CreateTime', - 'description' => '创建IPsec连接的时间戳。单位:毫秒。'."\n" - ."\n" - .'时间戳的格式采用Unix时间戳,表示从格林威治时间1970年01月01日00时00分00秒至创建IPsec连接时的总时长。', - 'visibility' => 'Public', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1492753817000', - 'backendName' => 'createTime', - ], - 'EffectImmediately' => [ - 'name' => 'EffectImmediately', - 'description' => 'IPsec连接的配置是否立即生效。'."\n" - ."\n" - .'- **true**:是,配置变更完成后触发重连。'."\n" - .'- **false**:否,有流量时触发重连。', - 'visibility' => 'Public', - 'type' => 'boolean', - 'example' => 'true', - 'backendName' => 'effectImmediately', - ], - 'VpnGatewayId' => [ - 'name' => 'VpnGatewayId', - 'description' => 'VPN网关的实例ID。', - 'visibility' => 'Public', - 'type' => 'string', - 'example' => 'vpn-bp1q8bgx4xnkm****', - 'backendName' => 'vpnGatewayId', - ], - 'LocalSubnet' => [ - 'name' => 'LocalSubnet', - 'description' => 'IPsec连接阿里云侧的网段。'."\n" - ."\n" - .'在多个网段的情况下,网段之间使用半角逗号(,)分隔。', - 'visibility' => 'Public', - 'type' => 'string', - 'example' => '192.168.0.0/16,172.17.0.0/16', - 'backendName' => 'localSubnet', - ], - 'VpnConnectionId' => [ - 'name' => 'VpnConnectionId', - 'description' => 'IPsec连接的ID。', - 'visibility' => 'Public', - 'type' => 'string', - 'example' => 'vco-bp10lz7aejumd****', - 'backendName' => 'instanceId', - ], - 'RemoteSubnet' => [ - 'name' => 'RemoteSubnet', - 'description' => '本地数据中心侧的网段。'."\n" - ."\n" - .'在多个网段的情况下,网段之间使用半角逗号(,)分隔。', - 'visibility' => 'Public', - 'type' => 'string', - 'example' => '10.0.0.0/8,172.16.0.0/16', - 'backendName' => 'remoteSubnet', - ], - 'CustomerGatewayId' => [ - 'name' => 'CustomerGatewayId', - 'description' => 'IPsec连接关联的用户网关的实例ID。', - 'visibility' => 'Public', - 'type' => 'string', - 'example' => 'cgw-bp1mvj4g9kogw****', - 'backendName' => 'customerGatewayId', - ], - 'Name' => [ - 'name' => 'Name', - 'description' => 'IPsec连接的名称。', - 'visibility' => 'Public', - 'type' => 'string', - 'example' => 'nametest', - 'backendName' => 'name', - ], - 'EnableDpd' => [ - 'name' => 'EnableDpd', - 'description' => 'IPsec连接是否已开启DPD(对等体存活检测)功能。'."\n" - ."\n" - .'- **true**:开启DPD功能。'."\n" - ."\n" - .' IPsec发起端会发送DPD报文用来检测对端的设备是否存活,如果在设定时间内未收到正确回应则认为对端已经断线,IPsec将删除ISAKMP SA和相应的IPsec SA,安全隧道同样也会被删除。'."\n" - ."\n" - .'- **false**:不开启DPD功能,IPsec发起端不会发送DPD探测报文。', - 'visibility' => 'Public', - 'type' => 'boolean', - 'example' => 'true', - 'backendName' => 'enableDpd', - ], - 'IkeConfig' => [ - 'name' => 'IkeConfig', - 'description' => '第一阶段协商的配置。', - 'visibility' => 'Public', - 'type' => 'object', - 'properties' => [ - 'RemoteId' => [ - 'name' => 'RemoteId', - 'description' => 'IPsec连接阿里云侧的标识。', - 'visibility' => 'Public', - 'type' => 'string', - 'example' => '139.17.XX.XX', - 'backendName' => 'remoteId', - ], - 'IkeLifetime' => [ - 'name' => 'IkeLifetime', - 'description' => 'IKE阶段生存时间。单位:秒。', - 'visibility' => 'Public', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '86400', - 'backendName' => 'ikeLifetime', - ], - 'IkeEncAlg' => [ - 'name' => 'IkeEncAlg', - 'description' => 'IKE阶段加密算法。', - 'visibility' => 'Public', - 'type' => 'string', - 'example' => 'aes', - 'backendName' => 'ikeEncAlg', - ], - 'LocalId' => [ - 'name' => 'LocalId', - 'description' => 'IPsec连接对端本地数据中心侧的标识。', - 'visibility' => 'Public', - 'type' => 'string', - 'example' => '116.64.XX.XX', - 'backendName' => 'localId', - ], - 'IkeMode' => [ - 'name' => 'IkeMode', - 'description' => 'IKE阶段协商模式。'."\n" - ."\n" - .'- **main**:主模式,协商过程安全性高。'."\n" - .'- **aggressive**:野蛮模式,协商快速且协商成功率高。'."\n" - ."\n", - 'visibility' => 'Public', - 'type' => 'string', - 'example' => 'main', - 'backendName' => 'ikeMode', - ], - 'IkeVersion' => [ - 'name' => 'IkeVersion', - 'description' => 'IKE协议版本。'."\n" - ."\n" - .'- **ikev1**'."\n" - .'- **ikev2**'."\n" - ."\n" - .'相对于IKEv1版本,IKEv2版本简化了SA的协商过程并且对于多网段的场景提供了更好的支持。', - 'visibility' => 'Public', - 'type' => 'string', - 'example' => 'ikev1', - 'backendName' => 'ikeVersion', - ], - 'IkePfs' => [ - 'name' => 'IkePfs', - 'description' => 'IKE阶段DH分组。', - 'visibility' => 'Public', - 'type' => 'string', - 'example' => 'group2', - 'backendName' => 'ikePfs', - ], - 'Psk' => [ - 'name' => 'Psk', - 'description' => '预共享密钥。', - 'visibility' => 'Public', - 'type' => 'string', - 'example' => 'pgw6dy7****', - 'backendName' => 'psk', - ], - 'IkeAuthAlg' => [ - 'name' => 'IkeAuthAlg', - 'description' => 'IKE阶段认证算法。', - 'visibility' => 'Public', - 'type' => 'string', - 'example' => 'sha1', - 'backendName' => 'ikeAuthAlg', - ], - ], - 'backendName' => 'ikeConfig', - ], - 'IpsecConfig' => [ - 'name' => 'IpsecConfig', - 'description' => '第二阶段协商的配置。', - 'visibility' => 'Public', - 'type' => 'object', - 'properties' => [ - 'IpsecAuthAlg' => [ - 'name' => 'IpsecAuthAlg', - 'description' => 'IPsec阶段认证算法。', - 'visibility' => 'Public', - 'type' => 'string', - 'example' => 'sha1', - 'backendName' => 'ipsecAuthAlg', - ], - 'IpsecLifetime' => [ - 'name' => 'IpsecLifetime', - 'description' => 'IPsec阶段生存时间。单位:秒。', - 'visibility' => 'Public', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '86400', - 'backendName' => 'ipsecLifetime', - ], - 'IpsecEncAlg' => [ - 'name' => 'IpsecEncAlg', - 'description' => 'IPsec阶段加密算法。', - 'visibility' => 'Public', - 'type' => 'string', - 'example' => 'aes', - 'backendName' => 'ipsecEncAlg', - ], - 'IpsecPfs' => [ - 'name' => 'IpsecPfs', - 'description' => 'IPsec阶段DH分组。', - 'visibility' => 'Public', - 'type' => 'string', - 'example' => 'group2', - 'backendName' => 'ipsecPfs', - ], - ], - 'backendName' => 'ipsecConfig', - ], - 'VcoHealthCheck' => [ - 'name' => 'VcoHealthCheck', - 'description' => 'IPsec连接的健康检查配置。', - 'visibility' => 'Public', - 'type' => 'object', - 'properties' => [ - 'Status' => [ - 'name' => 'Status', - 'description' => '健康检查状态。'."\n" - ."\n" - .'- **success**:正常。'."\n" - .'- **failed**:异常。', - 'visibility' => 'Public', - 'type' => 'string', - 'example' => 'success', - 'backendName' => 'status', - ], - 'Dip' => [ - 'name' => 'Dip', - 'description' => '目的IP地址。', - 'visibility' => 'Public', - 'type' => 'string', - 'example' => '192.168.0.1', - 'backendName' => 'dip', - ], - 'Interval' => [ - 'name' => 'Interval', - 'description' => '健康检查的时间间隔。单位:秒。', - 'visibility' => 'Public', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '2', - 'backendName' => 'interval', - ], - 'Retry' => [ - 'name' => 'Retry', - 'description' => '健康检查的重试发包次数。', - 'visibility' => 'Public', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '3', - 'backendName' => 'retry', - ], - 'Sip' => [ - 'name' => 'Sip', - 'description' => '源IP地址。', - 'visibility' => 'Public', - 'type' => 'string', - 'example' => '192.168.0.50', - 'backendName' => 'sip', - ], - 'Enable' => [ - 'name' => 'Enable', - 'description' => '健康检查的开启状态。'."\n" - ."\n" - .'- **true**:已开启。'."\n" - ."\n" - .'- **false**:未开启。', - 'visibility' => 'Public', - 'type' => 'string', - 'example' => 'true', - 'backendName' => 'enable', - ], - 'Policy' => [ - 'name' => 'Policy', - 'description' => '健康检查失败时是否撤销已发布的路由。'."\n" - ."\n" - .'- **revoke_route**:撤销路由。'."\n" - .'- **reserve_route**:不撤销路由。', - 'type' => 'string', - 'example' => 'revoke_route', - 'backendName' => 'policy', - ], - ], - 'backendName' => 'vcoHealthCheck', - ], - 'VpnBgpConfig' => [ - 'name' => 'VpnBgpConfig', - 'description' => 'IPsec连接BGP路由协议的配置。', - 'visibility' => 'Public', - 'type' => 'object', - 'properties' => [ - 'Status' => [ - 'name' => 'Status', - 'description' => 'BGP路由协议的协商状态。'."\n" - ."\n" - .'- **success**:正常。'."\n" - ."\n" - .'- **false**:异常。', - 'visibility' => 'Public', - 'type' => 'string', - 'example' => 'success', - 'backendName' => 'status', - ], - 'PeerBgpIp' => [ - 'name' => 'PeerBgpIp', - 'description' => '对端BGP地址。', - 'visibility' => 'Public', - 'type' => 'string', - 'example' => '169.254.10.1', - 'backendName' => 'peerBgpIp', - ], - 'TunnelCidr' => [ - 'name' => 'TunnelCidr', - 'description' => 'IPsec连接BGP网段。该网段是一个在169.254.0.0/16内的子网掩码长度为30的网段。', - 'visibility' => 'Public', - 'type' => 'string', - 'example' => '169.254.10.0/30', - 'backendName' => 'tunnelCidr', - ], - 'LocalBgpIp' => [ - 'name' => 'LocalBgpIp', - 'description' => '阿里云侧BGP地址。', - 'visibility' => 'Public', - 'type' => 'string', - 'example' => '169.254.10.2', - 'backendName' => 'localBgpIp', - ], - 'PeerAsn' => [ - 'name' => 'PeerAsn', - 'description' => '对端自治系统号。', - 'visibility' => 'Public', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '65530', - 'backendName' => 'peerAsn', - ], - 'LocalAsn' => [ - 'name' => 'LocalAsn', - 'description' => '阿里云侧自治系统号。', - 'visibility' => 'Public', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '65531', - 'backendName' => 'localAsn', - ], - 'AuthKey' => [ - 'name' => 'AuthKey', - 'description' => 'BGP路由协议的认证密钥。', - 'type' => 'string', - 'example' => 'AuthKey****', - 'backendName' => 'authKey', - ], - ], - 'backendName' => 'bgpModel', - ], - 'AttachType' => [ - 'name' => 'AttachType', - 'description' => 'IPsec连接绑定的资源类型。'."\n" - ."\n" - .'- **CEN**:表示IPsec连接已绑定云企业网实例下的转发路由器实例。'."\n" - .'- **NO_ASSOCIATED**:表示IPsec连接未绑定任何资源。'."\n" - .'- **VPNGW**:表示IPsec连接绑定了VPN网关实例。', - 'type' => 'string', - 'example' => 'CEN', - 'backendName' => 'attachType', - ], - 'NetworkType' => [ - 'name' => 'NetworkType', - 'description' => 'IPsec连接的网络类型。'."\n" - ."\n" - .'- **public**:公网,表示IPsec连接通过公网建立加密通信通道。'."\n" - .'- **private**:私网,表示IPsec连接通过私网建立加密通信通道。', - 'type' => 'string', - 'example' => 'public', - 'backendName' => 'networkType', - ], - 'AttachInstanceId' => [ - 'name' => 'AttachInstanceId', - 'description' => '转发路由器实例所属的云企业网实例ID。', - 'type' => 'string', - 'example' => 'cen-lxxpbpalc776qz****', - 'backendName' => 'attachInstanceId', - ], - 'Spec' => [ - 'name' => 'Spec', - 'description' => 'IPsec连接的带宽规格。单位:**Mbps**。', - 'type' => 'string', - 'example' => '1000M', - 'backendName' => 'spec', - ], - 'State' => [ - 'name' => 'State', - 'description' => 'IPsec连接与转发路由器实例的绑定状态。'."\n" - ."\n" - .'- **active**:IPsec连接已与VPN网关实例绑定,状态正常。'."\n" - .'- **init**:IPsec连接未绑定任何资源,IPsec连接初始化。'."\n" - .'- **attaching**:IPsec连接与转发路由器实例绑定中。'."\n" - .'- **attached**:IPsec连接已与转发路由器实例绑定。'."\n" - .'- **detaching**:IPsec连接与转发路由器实例解绑中。'."\n" - .'- **financialLocked**:欠费锁定。'."\n" - .'- **provisioning**:资源准备中。'."\n" - .'- **updating**:更新中。'."\n" - .'- **upgrading**:升级中。'."\n" - .'- **deleted**:已删除。', - 'type' => 'string', - 'example' => 'attached', - 'backendName' => 'state', - ], - 'TransitRouterId' => [ - 'name' => 'TransitRouterId', - 'description' => 'IPsec连接绑定的转发路由器实例ID。', - 'type' => 'string', - 'example' => 'tr-p0we2edef9qr44a85****', - 'backendName' => 'transitRouterId', - ], - 'TransitRouterName' => [ - 'name' => 'TransitRouterName', - 'description' => '转发路由器实例的名称。', - 'type' => 'string', - 'example' => 'nametest', - 'backendName' => 'transitRouterName', - ], - 'CrossAccountAuthorized' => [ - 'name' => 'CrossAccountAuthorized', - 'description' => 'IPsec连接是否绑定了跨账号的转发路由器实例。'."\n" - ."\n" - .'- **true**:是。'."\n" - .'- **false**:否。', - 'type' => 'boolean', - 'example' => 'false', - 'backendName' => 'crossAccountAuthorized', - ], - 'InternetIp' => [ - 'name' => 'InternetIp', - 'description' => 'IPsec连接的网关IP地址。'."\n" - ."\n" - .'> 仅IPsec连接绑定转发路由器实例时会返回当前参数。', - 'type' => 'string', - 'example' => '10.XX.XX.10', - 'backendName' => 'internetIp', - ], - 'Tag' => [ - 'name' => 'Tag', - 'description' => 'IPsec连接绑定的标签列表。', - 'visibility' => 'Public', - 'type' => 'array', - 'items' => [ - 'description' => '标签信息。', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'name' => 'Key', - 'description' => '标签键。', - 'type' => 'string', - 'example' => 'TagKey', - 'backendName' => 'tagKey', - ], - 'Value' => [ - 'name' => 'Value', - 'description' => '标签值。', - 'type' => 'string', - 'example' => 'TagValue', - 'backendName' => 'tagValue', - ], - ], - 'extendType' => 'true', - ], - 'backendName' => 'tags', - 'itemName' => 'Tag', - ], - 'TunnelOptionsSpecification' => [ - 'name' => 'TunnelOptionsSpecification', - 'description' => 'IPsec连接的隧道配置信息。'."\n" - ."\n" - .'仅查询双隧道模式的IPsec连接会返回**TunnelOptionsSpecification**数组下的参数。', - 'visibility' => 'Public', - 'type' => 'array', - 'items' => [ - 'description' => '隧道的配置信息。', - 'visibility' => 'Public', - 'type' => 'object', - 'properties' => [ - 'TunnelId' => [ - 'name' => 'TunnelId', - 'description' => '隧道ID。', - 'visibility' => 'Public', - 'type' => 'string', - 'example' => 'tun-opsqc4d97wni27****', - 'backendName' => 'tunnelId', - ], - 'CustomerGatewayId' => [ - 'name' => 'CustomerGatewayId', - 'description' => '隧道关联的用户网关ID。', - 'visibility' => 'Public', - 'type' => 'string', - 'example' => 'cgw-p0wy363lucf1uyae8****', - 'backendName' => 'customerGatewayId', - ], - 'EnableDpd' => [ - 'name' => 'EnableDpd', - 'description' => '隧道是否已开启DPD(对等体存活检测)功能。'."\n" - .'- **false**:未开启。'."\n" - .'- **true**:已开启。', - 'visibility' => 'Public', - 'type' => 'string', - 'example' => 'true', - 'backendName' => 'enableDpd', - ], - 'EnableNatTraversal' => [ - 'name' => 'EnableNatTraversal', - 'description' => '隧道是否已开启NAT穿越功能。'."\n" - ."\n" - .'- **false**:未开启。'."\n" - .'- **true**:已开启。', - 'visibility' => 'Public', - 'type' => 'string', - 'example' => 'true', - 'backendName' => 'enableNatTraversal', - ], - 'InternetIp' => [ - 'name' => 'InternetIp', - 'description' => '隧道的IP地址。', - 'visibility' => 'Public', - 'type' => 'string', - 'example' => '47.21.XX.XX', - 'backendName' => 'internetIp', - ], - 'RemoteCaCertificate' => [ - 'name' => 'RemoteCaCertificate', - 'description' => '隧道对端的CA证书。'."\n" - ."\n" - .'仅VPN网关实例的类型为国密型时才会返回当前参数。', - 'visibility' => 'Public', - 'type' => 'string', - 'example' => '-----BEGIN CERTIFICATE----- MIIB7zCCAZW**** -----END CERTIFICATE-----', - 'backendName' => 'remoteCaCertificate', - ], - 'Role' => [ - 'name' => 'Role', - 'description' => '隧道的角色。'."\n" - ."\n" - .'- **master**:表示当前隧道为主隧道。'."\n" - .'- **slave**:表示当前隧道为备隧道。', - 'visibility' => 'Public', - 'type' => 'string', - 'example' => 'master', - 'backendName' => 'locationRole', - ], - 'TunnelIndex' => [ - 'name' => 'TunnelIndex', - 'description' => '隧道的创建顺序。'."\n" - .'- **1**:第一条隧道。'."\n" - .'- **2**:第二条隧道。'."\n" - ."\n" - .'> 仅IPsec连接绑定转发路由器时会返回该参数。', - 'visibility' => 'Public', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - 'backendName' => 'tunnelIndex', - ], - 'State' => [ - 'name' => 'State', - 'description' => '隧道的状态。'."\n" - ."\n" - .'- **active**:状态正常。'."\n" - .'- **updating**:更新中。'."\n" - .'- **deleting**:删除中。', - 'visibility' => 'Public', - 'type' => 'string', - 'example' => 'active', - 'backendName' => 'state', - ], - 'Status' => [ - 'name' => 'Status', - 'description' => 'IPsec连接的状态。'."\n" - ."\n" - .'- **ike_sa_not_established**:第一阶段协商失败。'."\n" - ."\n" - .'- **ike_sa_established**:第一阶段协商成功。'."\n" - ."\n" - .'- **ipsec_sa_not_established**:第二阶段协商失败。'."\n" - ."\n" - .'- **ipsec_sa_established**:第二阶段协商成功。', - 'visibility' => 'Public', - 'type' => 'string', - 'example' => 'ipsec_sa_established', - 'backendName' => 'tunnelStatus', - ], - 'TunnelBgpConfig' => [ - 'name' => 'TunnelBgpConfig', - 'description' => '隧道的BGP配置信息。', - 'visibility' => 'Public', - 'type' => 'object', - 'properties' => [ - 'BgpStatus' => [ - 'name' => 'BgpStatus', - 'description' => 'BGP的协商状态。'."\n" - ."\n" - .'- **success**:正常。'."\n" - .'- **failed**:异常。', - 'visibility' => 'Public', - 'type' => 'string', - 'example' => 'success', - 'backendName' => 'bgpStatus', - ], - 'LocalAsn' => [ - 'name' => 'LocalAsn', - 'description' => '隧道本端(阿里云侧)的自治系统号。', - 'visibility' => 'Public', - 'type' => 'string', - 'example' => '65530', - 'backendName' => 'localAsn', - ], - 'LocalBgpIp' => [ - 'name' => 'LocalBgpIp', - 'description' => '隧道本端(阿里云侧)的BGP地址。', - 'visibility' => 'Public', - 'type' => 'string', - 'example' => '169.254.10.1', - 'backendName' => 'localBgpIp', - ], - 'PeerAsn' => [ - 'name' => 'PeerAsn', - 'description' => '隧道对端的自治系统号。', - 'visibility' => 'Public', - 'type' => 'string', - 'example' => '65531', - 'backendName' => 'peerAsn', - ], - 'PeerBgpIp' => [ - 'name' => 'PeerBgpIp', - 'description' => '隧道对端的BGP地址。', - 'visibility' => 'Public', - 'type' => 'string', - 'example' => '169.254.10.2', - 'backendName' => 'peerBgpIp', - ], - 'TunnelCidr' => [ - 'name' => 'TunnelCidr', - 'description' => '隧道的BGP网段。', - 'visibility' => 'Public', - 'type' => 'string', - 'example' => '169.254.10.0/30', - 'backendName' => 'tunnelCidr', - ], - ], - 'backendName' => 'tunnelBgpConfig', - ], - 'TunnelIkeConfig' => [ - 'name' => 'TunnelIkeConfig', - 'description' => '第一阶段协商的配置。', - 'visibility' => 'Public', - 'type' => 'object', - 'properties' => [ - 'IkeAuthAlg' => [ - 'name' => 'IkeAuthAlg', - 'description' => 'IKE阶段认证算法。', - 'visibility' => 'Public', - 'type' => 'string', - 'example' => 'sha1', - 'backendName' => 'ikeAuthAlg', - ], - 'IkeEncAlg' => [ - 'name' => 'IkeEncAlg', - 'description' => 'IKE阶段加密算法。', - 'visibility' => 'Public', - 'type' => 'string', - 'example' => 'aes', - 'backendName' => 'ikeEncAlg', - ], - 'IkeLifetime' => [ - 'name' => 'IkeLifetime', - 'description' => 'IKE阶段生存时间。单位:秒。', - 'visibility' => 'Public', - 'type' => 'string', - 'example' => '86400', - 'backendName' => 'ikeLifetime', - ], - 'IkeMode' => [ - 'name' => 'IkeMode', - 'description' => 'IKE协商模式。'."\n" - ."\n" - .'- **main**:主模式,协商过程安全性高。'."\n" - .'- **aggressive**:野蛮模式,协商快速且协商成功率高。', - 'visibility' => 'Public', - 'type' => 'string', - 'example' => 'main', - 'backendName' => 'ikeMode', - ], - 'IkePfs' => [ - 'name' => 'IkePfs', - 'description' => 'IKE阶段DH分组。', - 'visibility' => 'Public', - 'type' => 'string', - 'example' => 'group2', - 'backendName' => 'ikePfs', - ], - 'IkeVersion' => [ - 'name' => 'IkeVersion', - 'description' => 'IKE协议版本。', - 'visibility' => 'Public', - 'type' => 'string', - 'example' => 'ikev1', - 'backendName' => 'ikeVersion', - ], - 'LocalId' => [ - 'name' => 'LocalId', - 'description' => '隧道本端(阿里云侧)的标识。', - 'visibility' => 'Public', - 'type' => 'string', - 'example' => '47.21.XX.XX', - 'backendName' => 'leftId', - ], - 'Psk' => [ - 'name' => 'Psk', - 'description' => '预共享密钥。', - 'visibility' => 'Public', - 'type' => 'string', - 'example' => '123456****', - 'backendName' => 'psk', - ], - 'RemoteId' => [ - 'name' => 'RemoteId', - 'description' => '隧道对端的标识。', - 'visibility' => 'Public', - 'type' => 'string', - 'example' => '47.42.XX.XX', - 'backendName' => 'rightId', - ], - ], - 'backendName' => 'tunnelIkeConfig', - ], - 'TunnelIpsecConfig' => [ - 'name' => 'TunnelIpsecConfig', - 'description' => '第二阶段协商的配置。', - 'visibility' => 'Public', - 'type' => 'object', - 'properties' => [ - 'IpsecAuthAlg' => [ - 'name' => 'IpsecAuthAlg', - 'description' => 'IPsec阶段认证算法。', - 'visibility' => 'Public', - 'type' => 'string', - 'example' => 'sha1', - 'backendName' => 'ipsecAuthAlg', - ], - 'IpsecEncAlg' => [ - 'name' => 'IpsecEncAlg', - 'description' => 'IPsec阶段加密算法。', - 'visibility' => 'Public', - 'type' => 'string', - 'example' => 'aes', - 'backendName' => 'ipsecEncAlg', - ], - 'IpsecLifetime' => [ - 'name' => 'IpsecLifetime', - 'description' => 'IPsec阶段生存时间。单位:秒。', - 'visibility' => 'Public', - 'type' => 'string', - 'example' => '86400', - 'backendName' => 'ipsecLifetime', - ], - 'IpsecPfs' => [ - 'name' => 'IpsecPfs', - 'description' => 'IPsec阶段DH分组。', - 'visibility' => 'Public', - 'type' => 'string', - 'example' => 'group2', - 'backendName' => 'ipsecPfs', - ], - ], - 'backendName' => 'tunnelIpsecConfig', - ], - 'ZoneNo' => [ - 'name' => 'ZoneNo', - 'description' => '隧道部署的可用区。', - 'visibility' => 'Public', - 'type' => 'string', - 'example' => 'ap-southeast-5a', - 'backendName' => 'zoneNo', - ], - ], - 'extendType' => 'true', - ], - 'backendName' => 'tunnelOptionsList', - 'itemName' => 'TunnelOptions', - ], - 'EnableTunnelsBgp' => [ - 'name' => 'EnableTunnelsBgp', - 'description' => '隧道BGP的开启状态。'."\n" - ."\n" - .'- **true**:已开启。'."\n" - .'- **false**:未开启。', - 'visibility' => 'Public', - 'type' => 'boolean', - 'example' => 'true', - 'backendName' => 'enableTunnelsBgp', - ], - 'ResourceGroupId' => [ - 'name' => 'ResourceGroupId', - 'description' => 'IPsec连接所属的资源组ID。'."\n" - ."\n" - .'您可以调用[ListResourceGroups](~~158855~~)接口查询资源组信息。', - 'type' => 'string', - 'example' => 'rg-acfmzs372yg****', - 'backendName' => 'resourceGroupId', - ], - 'TunnelBandwidth' => [ - 'name' => 'TunnelBandwidth', - 'title' => '用于说明VPN单条隧道的带宽规格,取值:'."\n" - .'Standard(默认值):标准型,默认带宽1Gbps'."\n" - .'Large(大型):大型,默认带宽3Gbps', - 'description' => '用于说明VPN单条隧道的带宽规格,取值:'."\n" - .'Standard(默认值):标准型,默认带宽1Gbps'."\n" - .'Large(大型):大型,默认带宽3Gbps', - 'type' => 'string', - 'example' => 'Standard', - 'backendName' => 'tunnelBandwidth', - ], - ], - 'extendType' => 'true', - ], - 'title' => '', - 'example' => '', - 'itemNode' => true, - 'properties' => [ - 'VpnConnection' => [ - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Status' => [ - 'type' => 'string', - ], - 'EnableNatTraversal' => [ - 'type' => 'boolean', - ], - 'RemoteCaCertificate' => [ - 'type' => 'string', - ], - 'CreateTime' => [ - 'type' => 'integer', - 'format' => 'int64', - ], - 'EffectImmediately' => [ - 'type' => 'boolean', - ], - 'VpnGatewayId' => [ - 'type' => 'string', - ], - 'LocalSubnet' => [ - 'type' => 'string', - ], - 'VpnConnectionId' => [ - 'type' => 'string', - ], - 'RemoteSubnet' => [ - 'type' => 'string', - ], - 'CustomerGatewayId' => [ - 'type' => 'string', - ], - 'Name' => [ - 'type' => 'string', - ], - 'EnableDpd' => [ - 'type' => 'boolean', - ], - 'IkeConfig' => [ - 'type' => 'object', - 'properties' => [ - 'RemoteId' => [ - 'type' => 'string', - ], - 'IkeLifetime' => [ - 'type' => 'integer', - 'format' => 'int64', - ], - 'IkeEncAlg' => [ - 'type' => 'string', - ], - 'LocalId' => [ - 'type' => 'string', - ], - 'IkeMode' => [ - 'type' => 'string', - ], - 'IkeVersion' => [ - 'type' => 'string', - ], - 'IkePfs' => [ - 'type' => 'string', - ], - 'Psk' => [ - 'type' => 'string', - ], - 'IkeAuthAlg' => [ - 'type' => 'string', - ], - ], - ], - 'IpsecConfig' => [ - 'type' => 'object', - 'properties' => [ - 'IpsecAuthAlg' => [ - 'type' => 'string', - ], - 'IpsecLifetime' => [ - 'type' => 'integer', - 'format' => 'int64', - ], - 'IpsecEncAlg' => [ - 'type' => 'string', - ], - 'IpsecPfs' => [ - 'type' => 'string', - ], - ], - ], - 'VcoHealthCheck' => [ - 'type' => 'object', - 'properties' => [ - 'Status' => [ - 'type' => 'string', - ], - 'Dip' => [ - 'type' => 'string', - ], - 'Interval' => [ - 'type' => 'integer', - 'format' => 'int32', - ], - 'Retry' => [ - 'type' => 'integer', - 'format' => 'int32', - ], - 'Sip' => [ - 'type' => 'string', - ], - 'Enable' => [ - 'type' => 'string', - ], - 'Policy' => [ - 'type' => 'string', - ], - ], - ], - 'VpnBgpConfig' => [ - 'type' => 'object', - 'properties' => [ - 'Status' => [ - 'type' => 'string', - ], - 'PeerBgpIp' => [ - 'type' => 'string', - ], - 'TunnelCidr' => [ - 'type' => 'string', - ], - 'LocalBgpIp' => [ - 'type' => 'string', - ], - 'PeerAsn' => [ - 'type' => 'integer', - 'format' => 'int64', - ], - 'LocalAsn' => [ - 'type' => 'integer', - 'format' => 'int64', - ], - 'AuthKey' => [ - 'type' => 'string', - ], - ], - ], - 'AttachType' => [ - 'type' => 'string', - ], - 'NetworkType' => [ - 'type' => 'string', - ], - 'AttachInstanceId' => [ - 'type' => 'string', - ], - 'Spec' => [ - 'type' => 'string', - ], - 'State' => [ - 'type' => 'string', - ], - 'TransitRouterId' => [ - 'type' => 'string', - ], - 'TransitRouterName' => [ - 'type' => 'string', - ], - 'CrossAccountAuthorized' => [ - 'type' => 'boolean', - ], - 'InternetIp' => [ - 'type' => 'string', - ], - 'Tag' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'Tag' => [ - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'type' => 'string', - ], - 'Value' => [ - 'type' => 'string', - ], - ], - ], - ], - ], - ], - 'TunnelOptionsSpecification' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'TunnelOptions' => [ - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'TunnelId' => [ - 'type' => 'string', - ], - 'CustomerGatewayId' => [ - 'type' => 'string', - ], - 'EnableDpd' => [ - 'type' => 'string', - ], - 'EnableNatTraversal' => [ - 'type' => 'string', - ], - 'InternetIp' => [ - 'type' => 'string', - ], - 'RemoteCaCertificate' => [ - 'type' => 'string', - ], - 'Role' => [ - 'type' => 'string', - ], - 'TunnelIndex' => [ - 'type' => 'integer', - 'format' => 'int32', - ], - 'State' => [ - 'type' => 'string', - ], - 'Status' => [ - 'type' => 'string', - ], - 'TunnelBgpConfig' => [ - 'type' => 'object', - 'properties' => [ - 'BgpStatus' => [ - 'type' => 'string', - ], - 'LocalAsn' => [ - 'type' => 'string', - ], - 'LocalBgpIp' => [ - 'type' => 'string', - ], - 'PeerAsn' => [ - 'type' => 'string', - ], - 'PeerBgpIp' => [ - 'type' => 'string', - ], - 'TunnelCidr' => [ - 'type' => 'string', - ], - ], - ], - 'TunnelIkeConfig' => [ - 'type' => 'object', - 'properties' => [ - 'IkeAuthAlg' => [ - 'type' => 'string', - ], - 'IkeEncAlg' => [ - 'type' => 'string', - ], - 'IkeLifetime' => [ - 'type' => 'string', - ], - 'IkeMode' => [ - 'type' => 'string', - ], - 'IkePfs' => [ - 'type' => 'string', - ], - 'IkeVersion' => [ - 'type' => 'string', - ], - 'LocalId' => [ - 'type' => 'string', - ], - 'Psk' => [ - 'type' => 'string', - ], - 'RemoteId' => [ - 'type' => 'string', - ], - ], - ], - 'TunnelIpsecConfig' => [ - 'type' => 'object', - 'properties' => [ - 'IpsecAuthAlg' => [ - 'type' => 'string', - ], - 'IpsecEncAlg' => [ - 'type' => 'string', - ], - 'IpsecLifetime' => [ - 'type' => 'string', - ], - 'IpsecPfs' => [ - 'type' => 'string', - ], - ], - ], - 'ZoneNo' => [ - 'type' => 'string', - ], - ], - ], - ], - ], - ], - 'EnableTunnelsBgp' => [ - 'type' => 'boolean', - ], - 'ResourceGroupId' => [ - 'type' => 'string', - ], - 'TunnelBandwidth' => [ - 'title' => '用于说明VPN单条隧道的带宽规格,取值:'."\n" - .'Standard(默认值):标准型,默认带宽1Gbps'."\n" - .'Large(大型):大型,默认带宽3Gbps', - 'type' => 'string', - ], - ], - ], - ], - ], - ], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '4FCCF008-4C13-4231-BE77-D5203801A9E2', 'title' => ''], + 'Code' => ['description' => 'The error code.'."\n", 'type' => 'string', 'example' => '200', 'title' => ''], + 'Message' => ['description' => 'The information returned after traffic mirror is enabled.', 'type' => 'string', 'example' => 'successful', 'title' => ''], ], 'title' => '', 'example' => '', @@ -73111,1289 +55608,796 @@ ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'Forbidden.TagKey.Duplicated', - 'errorMessage' => 'The specified tag key already exists.', - ], - [ - 'errorCode' => 'SizeLimitExceeded.TagNum', - 'errorMessage' => 'The maximum number of tags is exceeded.', - ], - [ - 'errorCode' => 'InvalidParameter.TagValue', - 'errorMessage' => 'The specified parameter TagValue is invalid.', - ], - [ - 'errorCode' => 'InvalidParameter.TagKey', - 'errorMessage' => 'The specified parameter TagKey is invalid.', - ], - [ - 'errorCode' => 'Duplicated.TagKey', - 'errorMessage' => 'The specified parameter TagKey is duplicated.', - ], - ], - 403 => [ - [ - 'errorCode' => 'Forbbiden.SubUser', - 'errorMessage' => 'User not authorized to operate on the specified resource as your account is created by another user.', - ], - [ - 'errorCode' => 'Forbidden', - 'errorMessage' => 'User not authorized to operate on the specified resource.', - ], + ['errorCode' => 'OperationFailed.ExceedPurchaseLimit', 'errorMessage' => 'You have reached the limit of purchase quantity.', 'description' => ''], + ['errorCode' => 'Forbidden.RAM', 'errorMessage' => 'User not authorized to operate on the specified resource', 'description' => ''], + ['errorCode' => 'OperationFailed.AliGroupUserCanNotBuyInnerCommodity', 'errorMessage' => 'Vpc_flowlog_public has no group cloud product label, and users within the group are not allowed to purchase.', 'description' => 'vpc_flowlog_public does not have a merchandise tag and cannot be purchased by an internal group user.'], + ['errorCode' => 'OperationFailed.QuotaNotEnough', 'errorMessage' => 'Your quota is insufficient. Please contact your channel partner to increase your quota', 'description' => ''], + ['errorCode' => 'Order.NoRealNameAuthentication', 'errorMessage' => 'Real-name verification has not been completed for the account.', 'description' => 'You have not performed real-name authentication. Please go to the account center to complete real-name authentication.'], + ['errorCode' => 'OperationFailed.BasicInfoUncompleted', 'errorMessage' => 'You have not completed your basic personal information, please complete the information and try again.', 'description' => 'Your basic information is incomplete. Specify the information and try again.'], + ['errorCode' => 'OperationDenied.TrafficMirrorServiceOpened', 'errorMessage' => 'The operation is not allowed because the traffic mirror service has been opened.', 'description' => 'The traffic mirroring service has been activated. Do not repeat the operation.'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"PageSize\\": 10,\\n \\"RequestId\\": \\"238752DC-0693-49BE-9C85-711D5691D3E5\\",\\n \\"PageNumber\\": 1,\\n \\"TotalCount\\": 2,\\n \\"VpnConnections\\": {\\n \\"VpnConnection\\": [\\n {\\n \\"Status\\": \\"ipsec_sa_established\\",\\n \\"EnableNatTraversal\\": true,\\n \\"RemoteCaCertificate\\": \\"-----BEGIN CERTIFICATE----- MIIB7zCCAZW**** -----END CERTIFICATE-----\\",\\n \\"CreateTime\\": 1492753817000,\\n \\"EffectImmediately\\": true,\\n \\"VpnGatewayId\\": \\"vpn-bp1q8bgx4xnkm****\\",\\n \\"LocalSubnet\\": \\"192.168.0.0/16,172.17.0.0/16\\",\\n \\"VpnConnectionId\\": \\"vco-bp10lz7aejumd****\\",\\n \\"RemoteSubnet\\": \\"10.0.0.0/8,172.16.0.0/16\\",\\n \\"CustomerGatewayId\\": \\"cgw-bp1mvj4g9kogw****\\",\\n \\"Name\\": \\"nametest\\",\\n \\"EnableDpd\\": true,\\n \\"IkeConfig\\": {\\n \\"RemoteId\\": \\"139.17.XX.XX\\",\\n \\"IkeLifetime\\": 86400,\\n \\"IkeEncAlg\\": \\"aes\\",\\n \\"LocalId\\": \\"116.64.XX.XX\\",\\n \\"IkeMode\\": \\"main\\",\\n \\"IkeVersion\\": \\"ikev1\\",\\n \\"IkePfs\\": \\"group2\\",\\n \\"Psk\\": \\"pgw6dy7****\\",\\n \\"IkeAuthAlg\\": \\"sha1\\"\\n },\\n \\"IpsecConfig\\": {\\n \\"IpsecAuthAlg\\": \\"sha1\\",\\n \\"IpsecLifetime\\": 86400,\\n \\"IpsecEncAlg\\": \\"aes\\",\\n \\"IpsecPfs\\": \\"group2\\"\\n },\\n \\"VcoHealthCheck\\": {\\n \\"Status\\": \\"success\\",\\n \\"Dip\\": \\"192.168.0.1\\",\\n \\"Interval\\": 2,\\n \\"Retry\\": 3,\\n \\"Sip\\": \\"192.168.0.50\\",\\n \\"Enable\\": \\"true\\",\\n \\"Policy\\": \\"revoke_route\\"\\n },\\n \\"VpnBgpConfig\\": {\\n \\"Status\\": \\"success\\",\\n \\"PeerBgpIp\\": \\"169.254.10.1\\",\\n \\"TunnelCidr\\": \\"169.254.10.0/30\\",\\n \\"LocalBgpIp\\": \\"169.254.10.2\\",\\n \\"PeerAsn\\": 65530,\\n \\"LocalAsn\\": 65531,\\n \\"AuthKey\\": \\"AuthKey****\\"\\n },\\n \\"AttachType\\": \\"CEN\\",\\n \\"NetworkType\\": \\"public\\",\\n \\"AttachInstanceId\\": \\"cen-lxxpbpalc776qz****\\",\\n \\"Spec\\": \\"1000M\\",\\n \\"State\\": \\"attached\\",\\n \\"TransitRouterId\\": \\"tr-p0we2edef9qr44a85****\\",\\n \\"TransitRouterName\\": \\"nametest\\",\\n \\"CrossAccountAuthorized\\": false,\\n \\"InternetIp\\": \\"10.XX.XX.10\\",\\n \\"Tag\\": {\\n \\"Tag\\": [\\n {\\n \\"Key\\": \\"TagKey\\",\\n \\"Value\\": \\"TagValue\\"\\n }\\n ]\\n },\\n \\"TunnelOptionsSpecification\\": {\\n \\"TunnelOptions\\": [\\n {\\n \\"TunnelId\\": \\"tun-opsqc4d97wni27****\\",\\n \\"CustomerGatewayId\\": \\"cgw-p0wy363lucf1uyae8****\\",\\n \\"EnableDpd\\": \\"true\\",\\n \\"EnableNatTraversal\\": \\"true\\",\\n \\"InternetIp\\": \\"47.21.XX.XX\\",\\n \\"RemoteCaCertificate\\": \\"-----BEGIN CERTIFICATE----- MIIB7zCCAZW**** -----END CERTIFICATE-----\\",\\n \\"Role\\": \\"master\\",\\n \\"TunnelIndex\\": 1,\\n \\"State\\": \\"active\\",\\n \\"Status\\": \\"ipsec_sa_established\\",\\n \\"TunnelBgpConfig\\": {\\n \\"BgpStatus\\": \\"success\\",\\n \\"LocalAsn\\": \\"65530\\",\\n \\"LocalBgpIp\\": \\"169.254.10.1\\",\\n \\"PeerAsn\\": \\"65531\\",\\n \\"PeerBgpIp\\": \\"169.254.10.2\\",\\n \\"TunnelCidr\\": \\"169.254.10.0/30\\"\\n },\\n \\"TunnelIkeConfig\\": {\\n \\"IkeAuthAlg\\": \\"sha1\\",\\n \\"IkeEncAlg\\": \\"aes\\",\\n \\"IkeLifetime\\": \\"86400\\",\\n \\"IkeMode\\": \\"main\\",\\n \\"IkePfs\\": \\"group2\\",\\n \\"IkeVersion\\": \\"ikev1\\",\\n \\"LocalId\\": \\"47.21.XX.XX\\",\\n \\"Psk\\": \\"123456****\\",\\n \\"RemoteId\\": \\"47.42.XX.XX\\"\\n },\\n \\"TunnelIpsecConfig\\": {\\n \\"IpsecAuthAlg\\": \\"sha1\\",\\n \\"IpsecEncAlg\\": \\"aes\\",\\n \\"IpsecLifetime\\": \\"86400\\",\\n \\"IpsecPfs\\": \\"group2\\"\\n },\\n \\"ZoneNo\\": \\"ap-southeast-5a\\"\\n }\\n ]\\n },\\n \\"EnableTunnelsBgp\\": true,\\n \\"ResourceGroupId\\": \\"rg-acfmzs372yg****\\",\\n \\"TunnelBandwidth\\": \\"Standard\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 10\\n 238752DC-0693-49BE-9C85-711D5691D3E5\\n 1\\n 2\\n \\n ipsec_sa_established\\n true\\n -----BEGIN CERTIFICATE----- MIIB7zCCAZW**** -----END CERTIFICATE----- \\n 1492753817000\\n true\\n vpn-bp1q8bgx4xnkm****\\n active\\n 192.168.0.0/16,172.17.0.0/16\\n vco-bp10lz7aejumd****\\n 10.0.0.0/8,172.16.0.0/16\\n cgw-bp1mvj4g9kogw****\\n nametest\\n true\\n \\n 139.17.XX.XX\\n 86400\\n aes\\n 116.64.XX.XX\\n main\\n ikev1\\n group2\\n pgw6dy7****\\n sha1\\n \\n \\n sha1\\n 86400\\n aes\\n group2\\n \\n \\n success\\n 192.168.0.1\\n 2\\n 3\\n 192.168.0.50\\n true\\n \\n \\n success\\n 169.254.10.1\\n 169.254.10.0/30\\n 169.254.10.2\\n 65530\\n 65531\\n AuthKey****\\n \\n \\n TagKey\\n TagValue\\n \\n \\n","errorExample":""}]', - 'title' => 'DescribeVpnConnections', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'OpenTrafficMirrorService', + 'description' => '流量镜像功能是按照地域粒度开通,**OpenTrafficMirrorService**接口不支持在同一个地域内并发开通流量镜像功能。', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DownloadVpnConnectionConfig' => [ - 'summary' => 'Queries the configuration of an IPsec-VPN connection.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [ + ['createdAt' => '2023-06-16T02:03:28.000Z', 'description' => 'Error codes changed, Request parameters changed, Response parameters changed'], ], + 'ramActions' => [], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"4FCCF008-4C13-4231-BE77-D5203801A9E2\\",\\n \\"Code\\": \\"200\\",\\n \\"Message\\": \\"successful\\"\\n}","type":"json"}]', + 'translator' => 'manual', + ], + 'PublishVpcRouteEntries' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', - 'systemTags' => [ - 'operationType' => 'get', - ], + 'operationType' => 'readAndWrite', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', + 'schema' => ['description' => 'The region ID of the instance. You can call the DescribeRegions operation to query the region ID.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], + ], + [ + 'name' => 'RouteEntries', + 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => 'The ID of the region where the IPsec-VPN connection is created.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-shanghai', + 'description' => 'The list of route entries to publish. A maximum of 50 routes can be specified.', + 'type' => 'array', + 'items' => [ + 'description' => 'The list of route entries to publish.', + 'type' => 'object', + 'properties' => [ + 'RouteTableId' => ['description' => 'The route table ID of the route entry.', 'type' => 'string', 'required' => true, 'example' => 'vtb-2ze3jgygk9bmsj23s****', 'title' => ''], + 'DestinationCidrBlock' => ['description' => 'The destination CIDR block of the route entry.', 'type' => 'string', 'required' => true, 'example' => '121.41.165.123/32', 'title' => ''], + ], + 'required' => false, + 'title' => '', + 'example' => '', + ], + 'required' => false, + 'maxItems' => 50, + 'minItems' => 1, + 'title' => '', + 'example' => '', ], ], [ - 'name' => 'VpnConnectionId', + 'name' => 'TargetType', + 'in' => 'query', + 'schema' => ['description' => 'The type of the route publish target.', 'type' => 'string', 'required' => true, 'example' => 'ECR', 'title' => ''], + ], + [ + 'name' => 'TargetInstanceId', + 'in' => 'query', + 'schema' => ['description' => 'The publish route entry target instance ID.', 'type' => 'string', 'required' => true, 'example' => 'ecr-dhw2xsds5****', 'title' => ''], + ], + [ + 'name' => 'DryRun', 'in' => 'query', + 'schema' => ['description' => 'Specifies whether to perform a dry run. Valid values:'."\n" + ."\n" + .'- **true**: performs a dry run without publishing route entries. The system checks the AccessKey pair, Resource Access Management (RAM) user authorization, and required parameters. If the check fails, the corresponding error is returned. If the check passes, the error code `DryRunOperation` is returned.'."\n" + ."\n" + .'- **false** (default): sends a Normal request. After the request passes the check, a 2xx HTTP status code is returned and the resource status is queried.', 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => 'The ID of the IPsec-VPN connection.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'vco-bp1bbi27hojx80nck****', + 'title' => '', + 'description' => 'Schema of Response', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '980960B0-2969-40BF-8542-EBB34FD358AB', 'title' => ''], + ], + 'example' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'IncorrectStatus.Vpc', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => 'The instance is in an invalid state.'], + ['errorCode' => 'ResourceNotFound.RouteEntry', 'errorMessage' => 'The specified resource routeEntry is not found.', 'description' => 'The specified route entry does not exist'], + ['errorCode' => 'IncorrectStatus.RouteEntry', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => 'Route entry is in non-steady state'], + ['errorCode' => 'Forbidden.OperateCustomRouteTable', 'errorMessage' => 'The operation is forbidden because publish route entry in custom route table.', 'description' => 'The operation is prohibited because it is not allowed to publish route entries in the custom route table.'], + ['errorCode' => 'IncorrectStatus.RouteEntryPublishStatus', 'errorMessage' => 'Route entry publish status is incorrect.', 'description' => 'The route publish status of the route entry is incorrect.'], + ['errorCode' => 'ResourceNotAssociated.TargetInstance', 'errorMessage' => 'The target instance is not associated with vpc.', 'description' => ''], + ['errorCode' => 'OperationDenied.UnsupportedTargetType', 'errorMessage' => 'The operation is not allowed because the target type is not supported.', 'description' => 'The operation was rejected because the type of the route publication target is not currently supported.'], + ['errorCode' => 'IncorrectStatus.RouteTable', 'errorMessage' => 'The route table is in an invalid state.', 'description' => 'The specified routing table is in the wrong state'], + ['errorCode' => 'OperationUnsupported.PublishSystemRouteEntry', 'errorMessage' => 'Publishing system route entry is unsupported.', 'description' => 'Publishing system routes is not supported.'], + ['errorCode' => 'OperationUnsupported.UnsupportedNextHop', 'errorMessage' => 'Unsupported nexthop type for route entry publish operation.', 'description' => 'The next hop type of the route entry does not support publishing.'], + ['errorCode' => 'OperationUnsupported.PublishPrefixListRouteEntry', 'errorMessage' => 'Publishing prefix list route entry is unsupported.', 'description' => 'Publishing route prefix list routes is not supported.'], + ['errorCode' => 'InvalidRouteTableId.NotFound', 'errorMessage' => 'Specified route table does not exist.', 'description' => ''], + ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'Publish VPC routes', + 'summary' => 'Publishes VPC routes to external components.', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '600', 'countWindow' => 60, 'regionId' => '*', 'api' => 'PublishVpcRouteEntries'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], + ], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:PublishVpcRouteEntries', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'RouteTable', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:routetable/{#RouteTableId}'], + ], ], ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"980960B0-2969-40BF-8542-EBB34FD358AB\\"\\n}","type":"json"}]', + ], + 'PublishVpnRouteEntry' => [ + 'summary' => 'Calls the PublishVpnRouteEntry operation to publish destination routes or policy routes to the system route table of a VPC, or withdraw published destination routes or policy routes from the VPC system route table.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'readAndWrite', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free'], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => ['description' => 'The region ID of the VPN gateway instance.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query region IDs.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], + ], + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'The value of this parameter is generated by the client. Make sure that the value is unique among different requests. The maximum length is 64 ASCII characters.'."\n" + ."\n" + .'> If you do not specify this parameter, the system uses the **RequestId** of the API request as the **ClientToken**. The **RequestId** of each API request is different.', 'type' => 'string', 'required' => false, 'example' => 'd7d24a21-f4ba-4454-9173-b382****', 'title' => ''], + ], + [ + 'name' => 'VpnGatewayId', + 'in' => 'query', + 'schema' => ['description' => 'The ID of the VPN gateway instance.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'vpn-bp1a3kqjiiq9legfx****', 'title' => ''], + ], + [ + 'name' => 'RouteDest', + 'in' => 'query', + 'schema' => ['description' => 'The destination CIDR block of the VPN gateway route entry.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '10.0.0.0/24', 'title' => ''], + ], + [ + 'name' => 'NextHop', + 'in' => 'query', + 'schema' => ['description' => 'The next hop of the VPN gateway route entry.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'vco-bp15oes1py4i66rmd****', 'title' => ''], + ], + [ + 'name' => 'RouteType', + 'in' => 'query', + 'schema' => ['description' => 'The type of the VPN gateway route entry. Valid values:'."\n" + ."\n" + .'- **pbr**: policy-based route.'."\n" + ."\n" + .'- **dbr**: destination-based route.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'pbr', 'title' => ''], + ], + [ + 'name' => 'PublishVpc', + 'in' => 'query', + 'schema' => ['description' => 'Specifies whether to publish or withdraw the route. Valid values:'."\n" + ."\n" + .'- **true**: publishes the route.'."\n" + ."\n" + .' If this parameter is set to **true**, the destination route or policy route is published to the system route table of the VPC.'."\n" + ."\n" + .'- **false**: withdraws the route.'."\n" + ."\n" + .' If this parameter is set to **false**, the published destination route or policy route is withdrawn from the VPC system route table.'."\n" + ."\n\n" + .'> If the policy route table and destination route table contain route entries with the same destination CIDR block, and both route entries are published to the same VPC, when you withdraw the route entry from the policy route table, the route entry in the destination route table is also withdrawn. When you withdraw the route entry from the destination route table, the route entry in the policy route table is also withdrawn.', 'type' => 'boolean', 'required' => true, 'docRequired' => true, 'example' => 'true', 'title' => ''], + ], + ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => 'The returned data.'."\n", + 'description' => 'The response parameters.', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '0C68048B-0F70-40DA-B8AE-1B79B5CF62E3', - ], - 'VpnConnectionConfig' => [ - 'description' => 'The configurations of the peer gateway device.'."\n", - 'type' => 'object', - 'properties' => [ - 'Remote' => [ - 'description' => 'The identifier of the VPN gateway.'."\n", - 'type' => 'string', - 'example' => '116.62.XX.XX', - ], - 'Local' => [ - 'description' => 'The identifier of the customer gateway.'."\n", - 'type' => 'string', - 'example' => '139.196.XX.XX', - ], - 'RemoteSubnet' => [ - 'description' => 'The CIDR block on the virtual private cloud (VPC) side.'."\n", - 'type' => 'string', - 'example' => '192.168.0.0/16', - ], - 'LocalSubnet' => [ - 'description' => 'The CIDR block on the data center side.'."\n", - 'type' => 'string', - 'example' => '10.0.0.0/8', - ], - 'IkeConfig' => [ - 'description' => 'The configurations of Phase 1 negotiations.'."\n", - 'type' => 'object', - 'properties' => [ - 'RemoteId' => [ - 'description' => 'The identifier of the VPN gateway. FQDN and IP formats are supported. The default value is the IP address of the VPN gateway.'."\n", - 'type' => 'string', - 'example' => '139.196.XX.XX', - ], - 'IkeLifetime' => [ - 'description' => 'The lifetime in the IKE phase. Unit: seconds.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '86400', - ], - 'IkeEncAlg' => [ - 'description' => 'The encryption algorithm in the IKE phase.'."\n", - 'type' => 'string', - 'example' => 'aes', - ], - 'LocalId' => [ - 'description' => 'The identifier of the customer gateway. FQDN and IP formats are supported. The default value is the IP address of the customer gateway.'."\n", - 'type' => 'string', - 'example' => '116.62.XX.XX', - ], - 'IkeMode' => [ - 'description' => 'The IKE negotiation mode. Valid values:'."\n" - ."\n" - .'* **main**: This mode offers higher security during negotiations.'."\n" - .'* **aggressive**: This mode is faster and has a higher success rate.'."\n", - 'type' => 'string', - 'example' => 'main', - ], - 'IkeVersion' => [ - 'description' => 'The IKE version.'."\n", - 'type' => 'string', - 'example' => 'ikev1', - ], - 'IkePfs' => [ - 'description' => 'The DH group in the IKE phase.'."\n", - 'type' => 'string', - 'example' => 'group2', - ], - 'Psk' => [ - 'description' => 'The pre-shared key.'."\n", - 'type' => 'string', - 'example' => 'pgw6dy7d1i8i****', - ], - 'IkeAuthAlg' => [ - 'description' => 'The authentication algorithm in the IKE phase.'."\n", - 'type' => 'string', - 'example' => 'sha1', - ], - ], - ], - 'IpsecConfig' => [ - 'description' => 'The configurations of Phase 2 negotiations.'."\n", - 'type' => 'object', - 'properties' => [ - 'IpsecAuthAlg' => [ - 'description' => 'The authentication algorithm in the IPsec phase.'."\n", - 'type' => 'string', - 'example' => 'sha1', - ], - 'IpsecEncAlg' => [ - 'description' => 'The encryption algorithm in the IPsec phase.'."\n", - 'type' => 'string', - 'example' => 'aes', - ], - 'IpsecLifetime' => [ - 'description' => 'The lifetime in the IPsec phase. Unit: seconds.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '86400', - ], - 'IpsecPfs' => [ - 'description' => 'The DH group in the IPsec phase.'."\n", - 'type' => 'string', - 'example' => 'group2', - ], - ], - ], - 'TunnelsConfig' => [ - 'description' => '', - 'type' => 'object', - 'items' => [ - 'description' => '隧道的配置信息。', - 'type' => 'object', - 'properties' => [ - 'TunnelId' => [ - 'name' => 'TunnelId', - 'description' => '隧道ID。', - 'visibility' => 'Public', - 'type' => 'string', - 'example' => 'tun-opsqc4d97wni27****', - 'backendName' => 'tunnelId', - ], - 'Local' => [ - 'name' => 'Local', - 'description' => '本地IDC侧隧道的标识。', - 'visibility' => 'Public', - 'type' => 'string', - 'example' => '47.21.XX.XX', - 'backendName' => 'local', - ], - 'Remote' => [ - 'name' => 'Remote', - 'description' => '阿里云侧隧道的标识。', - 'visibility' => 'Public', - 'type' => 'string', - 'example' => '47.24.XX.XX', - 'backendName' => 'remote', - ], - 'IkeConfig' => [ - 'name' => 'IkeConfig', - 'description' => '第一阶段协商的配置信息。 ', - 'visibility' => 'Public', - 'type' => 'object', - 'properties' => [ - 'Psk' => [ - 'name' => 'Psk', - 'description' => '预共享密钥。', - 'visibility' => 'Public', - 'type' => 'string', - 'example' => 'pgw6dy7d1i8i****', - 'backendName' => 'psk', - ], - 'IkeVersion' => [ - 'name' => 'IkeVersion', - 'description' => 'IKE协议的版本。', - 'visibility' => 'Public', - 'type' => 'string', - 'example' => 'ikev2', - 'backendName' => 'ikeVersion', - ], - 'IkeMode' => [ - 'name' => 'IkeMode', - 'description' => 'IKE协商模式。'."\n" - ."\n" - .'- **main**:主模式,协商过程安全性高。'."\n" - .'- **aggressive**:野蛮模式,协商快速且协商成功率高。', - 'visibility' => 'Public', - 'type' => 'string', - 'example' => 'main', - 'backendName' => 'ikeMode', - ], - 'IkeEncAlg' => [ - 'name' => 'IkeEncAlg', - 'description' => 'IKE阶段加密算法。', - 'visibility' => 'Public', - 'type' => 'string', - 'example' => 'aes', - 'backendName' => 'ikeEncAlg', - ], - 'IkeAuthAlg' => [ - 'name' => 'IkeAuthAlg', - 'description' => 'IKE阶段认证算法。', - 'visibility' => 'Public', - 'type' => 'string', - 'example' => 'sha1', - 'backendName' => 'ikeAuthAlg', - ], - 'IkePfs' => [ - 'name' => 'IkePfs', - 'description' => 'IKE阶段DH分组。', - 'visibility' => 'Public', - 'type' => 'string', - 'example' => 'group2', - 'backendName' => 'ikePfs', - ], - 'IkeLifetime' => [ - 'name' => 'IkeLifetime', - 'description' => 'IKE阶段生存时间。单位:秒。', - 'visibility' => 'Public', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '86400', - 'backendName' => 'ikeLifetime', - ], - 'LocalId' => [ - 'name' => 'LocalId', - 'description' => '本地IDC侧隧道的标识。', - 'visibility' => 'Public', - 'type' => 'string', - 'example' => '47.21.XX.XX', - 'backendName' => 'localId', - ], - 'RemoteId' => [ - 'name' => 'RemoteId', - 'description' => '阿里云侧隧道的标识。', - 'visibility' => 'Public', - 'type' => 'string', - 'example' => '47.24.XX.XX', - 'backendName' => 'remoteId', - ], - ], - 'backendName' => 'ikeConfig', - ], - 'IpsecConfig' => [ - 'name' => 'IpsecConfig', - 'description' => '第二阶段协商的配置信息。 ', - 'visibility' => 'Public', - 'type' => 'object', - 'properties' => [ - 'IpsecAuthAlg' => [ - 'name' => 'IpsecAuthAlg', - 'description' => 'IPsec阶段认证算法。', - 'type' => 'string', - 'example' => 'sha1', - 'backendName' => 'ipsecAuthAlg', - ], - 'IpsecEncAlg' => [ - 'name' => 'IpsecEncAlg', - 'description' => 'IPsec阶段加密算法。', - 'visibility' => 'Public', - 'type' => 'string', - 'example' => 'aes', - 'backendName' => 'ipsecEncAlg', - ], - 'IpsecPfs' => [ - 'name' => 'IpsecPfs', - 'description' => 'IPsec阶段DH分组。', - 'visibility' => 'Public', - 'type' => 'string', - 'example' => 'group2', - 'backendName' => 'ipsecPfs', - ], - 'IpsecLifetime' => [ - 'name' => 'IpsecLifetime', - 'description' => 'IPsec阶段生存时间。单位:秒。', - 'visibility' => 'Public', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '86400', - 'backendName' => 'ipsecLifetime', - ], - ], - 'backendName' => 'ipsecConfig', - ], - ], - 'extendType' => 'true', - ], - 'itemNode' => true, - 'properties' => [ - 'TunnelConfig' => [ - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'TunnelId' => [ - 'type' => 'string', - ], - 'Local' => [ - 'type' => 'string', - ], - 'Remote' => [ - 'type' => 'string', - ], - 'IkeConfig' => [ - 'type' => 'object', - 'properties' => [ - 'Psk' => [ - 'type' => 'string', - ], - 'IkeVersion' => [ - 'type' => 'string', - ], - 'IkeMode' => [ - 'type' => 'string', - ], - 'IkeEncAlg' => [ - 'type' => 'string', - ], - 'IkeAuthAlg' => [ - 'type' => 'string', - ], - 'IkePfs' => [ - 'type' => 'string', - ], - 'IkeLifetime' => [ - 'type' => 'integer', - 'format' => 'int64', - ], - 'LocalId' => [ - 'type' => 'string', - ], - 'RemoteId' => [ - 'type' => 'string', - ], - ], - ], - 'IpsecConfig' => [ - 'type' => 'object', - 'properties' => [ - 'IpsecAuthAlg' => [ - 'type' => 'string', - ], - 'IpsecEncAlg' => [ - 'type' => 'string', - ], - 'IpsecPfs' => [ - 'type' => 'string', - ], - 'IpsecLifetime' => [ - 'type' => 'integer', - 'format' => 'int64', - ], - ], - ], - ], - ], - ], - ], - ], - 'BgpConfigs' => [ - 'type' => 'object', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'LocalAsn' => [ - 'name' => 'LocalAsn', - 'type' => 'string', - 'backendName' => 'localAsn', - ], - 'LocalBgpIp' => [ - 'name' => 'LocalBgpIp', - 'type' => 'string', - 'backendName' => 'localBgpIp', - ], - 'PeerAsn' => [ - 'name' => 'PeerAsn', - 'type' => 'string', - 'backendName' => 'peerAsn', - ], - 'PeerBgpIp' => [ - 'name' => 'PeerBgpIp', - 'type' => 'string', - 'backendName' => 'peerBgpIp', - ], - 'TunnelCidr' => [ - 'name' => 'TunnelCidr', - 'type' => 'string', - 'backendName' => 'tunnelCidr', - ], - 'TunnelId' => [ - 'name' => 'TunnelId', - 'type' => 'string', - 'backendName' => 'tunnelId', - ], - ], - 'extendType' => 'true', - ], - 'itemNode' => true, - 'properties' => [ - 'BgpConfig' => [ - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'LocalAsn' => [ - 'type' => 'string', - ], - 'LocalBgpIp' => [ - 'type' => 'string', - ], - 'PeerAsn' => [ - 'type' => 'string', - ], - 'PeerBgpIp' => [ - 'type' => 'string', - ], - 'TunnelCidr' => [ - 'type' => 'string', - ], - 'TunnelId' => [ - 'type' => 'string', - ], - ], - ], - ], - ], - ], - ], - ], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '5BE01CD7-5A50-472D-AC14-CA181C5C03BE ', 'title' => ''], ], + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ + 400 => [ + ['errorCode' => 'Resource.QuotaFull', 'errorMessage' => 'The quota of resource is full', 'description' => ''], + ['errorCode' => 'VpnGateway.Configuring', 'errorMessage' => 'The specified service is configuring.', 'description' => ''], + ['errorCode' => 'VpnGateway.FinancialLocked', 'errorMessage' => 'The specified service is financial locked.', 'description' => ''], + ['errorCode' => 'VpnRouteEntry.AlreadyExists', 'errorMessage' => 'The specified route entry is already exist.', 'description' => 'The route already exists.'], + ['errorCode' => 'VpnRouteEntry.Conflict', 'errorMessage' => 'The specified route entry has conflict.', 'description' => 'Route conflicts exist.'], + ['errorCode' => 'InvalidVpnRouteEntry.NotFound', 'errorMessage' => 'The specified route entry does not exist.', 'description' => 'The error message returned because the specified route does not exist.'], + ['errorCode' => 'OperationFailed.InvalidStatus', 'errorMessage' => 'Route entry is not allowed to operate in current status.', 'description' => 'You are not allowed to manage the route in the current state.'], + ['errorCode' => 'OperationFailed.RouteConflict', 'errorMessage' => 'Operation failed because there is already a route in VPC route table to another VPN on the same network block.', 'description' => 'Operation failed because there is already a route in VPC route table to another VPN on the same network block.'], + ['errorCode' => 'OperationFailed.InvalidCidrBlock', 'errorMessage' => 'Operation failed because the specified network block is invalid.', 'description' => 'The CIDR block is invalid.'], + ['errorCode' => 'QuotaExceeded.VpnRouteEntry', 'errorMessage' => 'The number of route entries to the VPN gateway in the VPC routing table has reached the quota limit.', 'description' => 'The number of route entries to the VPN gateway in the VPC routing table has reached the quota limit.'], + ['errorCode' => 'TaskConflict', 'errorMessage' => 'The operation is too frequent, please wait a moment and try again.', 'description' => 'Your requests are too frequent. Try again later.'], + ['errorCode' => 'IllegalParam.CidrBlock', 'errorMessage' => 'The specified CidrBlock is illegal.', 'description' => 'The operation failed because CidrBlock is set to an invalid value.'], + ['errorCode' => 'QuotaExceeded', 'errorMessage' => 'Route entry quota exceeded in this route table.', 'description' => ''], + ['errorCode' => 'MissingParameter', 'errorMessage' => 'Miss mandatory parameter.', 'description' => ''], + ['errorCode' => 'InvalidCidrBlock.Malformed', 'errorMessage' => 'Specified CIDR block is not valid.', 'description' => ''], + ['errorCode' => 'InvalidCIDRBlock.Duplicate', 'errorMessage' => 'Specified CIDR block is already exists.', 'description' => ''], + ['errorCode' => 'IncorrectVpcStatus', 'errorMessage' => 'Current VPC status does not support this operation.', 'description' => ''], + ['errorCode' => 'IncorrectInstanceStatus', 'errorMessage' => 'Current instance status does not support this operation.', 'description' => ''], + ['errorCode' => 'IncorrectRouteEntryStatus', 'errorMessage' => 'Some route entry status blocked this operation.', 'description' => ''], + ['errorCode' => 'IncorrectVSwitchStatus', 'errorMessage' => 'The current virtual switch status does not support this operation.', 'description' => 'The error message returned because the vSwitch is in the Pending state and cannot be deleted.'], + ['errorCode' => 'InvalidCidrBlock', 'errorMessage' => 'Specified CIDR block is not valid.', 'description' => 'Possible reasons for error reporting:'."\n" + .'1. You are not in the whitelist of the 10.0.0.0/8 CIDR block and cannot use this CIDR block.'."\n" + .'2. The target CIDR block of the added custom route cannot belong to the CIDR block of all vSwitches under the same VPC.'."\n" + .'3. Because 100.64.0.0/10 is a cloud service address, you cannot add this CIDR block to point to the IDC under the cloud.'."\n" + .'4. Except for 100.64.0.0/10, the detailed route network segments such as 100.64.0.0/11 and 100.96.0.0/11 cannot be used in the IDC under the cloud.'], + ['errorCode' => 'InvalidNextHopType', 'errorMessage' => 'Specified parameter "NextHopType" is not valid', 'description' => ''], + ['errorCode' => 'InvalidNextHop.NotFound', 'errorMessage' => 'Specified next hop does not exist.', 'description' => ''], + ['errorCode' => 'InvalidVRouter.NotFound', 'errorMessage' => 'vRouter not exists.', 'description' => ''], + ['errorCode' => 'InvalidVPC.NotFound', 'errorMessage' => 'vpc not exists.', 'description' => ''], + ['errorCode' => 'InvalidNexthopTypeAndList.BothNull', 'errorMessage' => 'both nexthopType and nextHopList are null.', 'description' => ''], + ['errorCode' => 'InvalidNexthopTypeAndList.BothNotNull', 'errorMessage' => 'both nexthopType and nextHopList are not null.', 'description' => ''], + ['errorCode' => 'InvalidRouterInterface', 'errorMessage' => 'invalid router interface.', 'description' => ''], + ['errorCode' => 'InvalidOppositeRouterType', 'errorMessage' => 'nexthop list cannot only contain router interface whose opposite router interface is on vbr.', 'description' => ''], + ['errorCode' => 'InvalidNexthopListSize', 'errorMessage' => 'nexthop size is illegal. Must be between 2 and 4.', 'description' => 'You must specify two to four router interfaces as next hops.'], + ['errorCode' => 'InvalidEntryRuleQuota.NotFound', 'errorMessage' => 'Route entry quota rule not exists.', 'description' => ''], + ['errorCode' => 'Forbidden.CheckEntryRuleQuota', 'errorMessage' => 'Route entry quota rule check error.', 'description' => ''], + ['errorCode' => 'InvalidVBRStatus', 'errorMessage' => 'invalid virtual border router status.', 'description' => ''], + ['errorCode' => 'InvalidPhysicalConnectionBusinessStatus', 'errorMessage' => 'invalid physical connection business status.', 'description' => ''], + ['errorCode' => 'IncorrectHaVipStatus', 'errorMessage' => 'This operation is denied because satus of the specified HaVip is neither Available nor InUse.', 'description' => 'You cannot perform the operation when the specified HAVIP is in the Available or InUse state.'], + ['errorCode' => 'CountLimitExceed.HaVipRouteEntry', 'errorMessage' => 'There can be 5 route entry to HaVip at most in one route table.', 'description' => 'The number of route entries that point to the HAVIP has reached the upper limit.'], + ['errorCode' => 'InvalidRouteEntry.Duplicate', 'errorMessage' => 'The route entry already exist.', 'description' => ''], + ['errorCode' => 'INVALID_WEIGHT_PARAM', 'errorMessage' => 'Specified value of weight invalid', 'description' => ''], + ['errorCode' => 'FORBIDDEN_USE_VPC_AS_INTERNET_GATEWAY', 'errorMessage' => 'The Specified CIDR must be in vpc CIDR.', 'description' => ''], + ['errorCode' => 'INVALID_VPC_ID', 'errorMessage' => 'The Specified VpcId not match.', 'description' => 'The specified VPC does not exist.'], + ['errorCode' => 'InvalidRouteEntrySize', 'errorMessage' => 'The Specified routerEntry size not legal.', 'description' => 'You must specify two to four router interfaces as next hops if you want to configure ECMP routing.'], + ['errorCode' => 'RouteConflict.AlreadyExist', 'errorMessage' => 'Route conflict exists in routing table.', 'description' => 'Route conflicts exist in the route table.'], + ['errorCode' => 'InvalidRouteEntryName.Malformed', 'errorMessage' => 'Specified RouteEntry name is not valid.', 'description' => 'The new name of the route is invalid.'], + ['errorCode' => 'Duplicated.VpcNextHop', 'errorMessage' => 'Route entry nexthop duplicate.', 'description' => 'Duplicate next hops are specified.'], + ['errorCode' => 'InvalidNexthop.DirectEni', 'errorMessage' => 'The direct Eni cannot be nexthop.', 'description' => 'An ENI in cut-through mode cannot be specified as a next hop.'], + ['errorCode' => 'InvalidAttachment.NotFound', 'errorMessage' => 'The attachment is not found.', 'description' => 'The specified transit router does not exist.'], + ['errorCode' => 'OperationFailed.ActiveNetworkInterfaceNotFound', 'errorMessage' => 'No active network interface is found on the attachment.', 'description' => 'No ENI is available on the specified transit router.'], + ['errorCode' => 'InvalidNetworkInterface.NotFound', 'errorMessage' => 'The network interface is not found on the attachment.', 'description' => 'No ENI is associated with the specified transit router.'], + ['errorCode' => 'OperationFailed.QueryAttachmentInfo', 'errorMessage' => 'Failed to query attachment information.', 'description' => 'The system fails to query the transit router.'], + ['errorCode' => 'IllegalParam.AttachmentId', 'errorMessage' => 'The attachment is invalid.', 'description' => 'The specified transit router is invalid.'], + ['errorCode' => 'OperationFailed.NotSupportIPV6', 'errorMessage' => 'The specified next hop does not support IPv6.', 'description' => 'The specified next hop does not support IPv6.'], + ['errorCode' => 'IncorrectStatus.Ipv6Address', 'errorMessage' => 'The IPv6 address of the specified next hop is being assigned or deleted.', 'description' => 'The IPv6 address that is specified as the next hop is being created or being deleted.'], + ['errorCode' => 'OperationUnsupported.Ipv6EntryOnPrimaryNetworkInterface', 'errorMessage' => 'You cannot create IPv6 route entries on a primary network interface.', 'description' => 'You cannot create an IPv6 route whose next hop is a primary ENI.'], + ['errorCode' => 'OperationUnsupported.SpecifyIpOnIpv6Entry', 'errorMessage' => 'You cannot specify the private IP address when you create IPv6 route entries.', 'description' => 'You cannot specify a private IPv6 address as the destination CIDR block.'], + ['errorCode' => 'OperationUnsupported.MutipleIpv6Address', 'errorMessage' => 'You cannot specify a next hop that has bound multiple IPv6 addresses.', 'description' => 'You cannot specify a next hop that is assigned multiple IPv6 addresses.'], + ['errorCode' => 'OperationDenied.Ipv6EntryOnCustomTable', 'errorMessage' => 'You cannot create any IPv6 route entry on a custom route table.', 'description' => ''], + ], 403 => [ - [ - 'errorCode' => 'Forbbiden.SubUser', - 'errorMessage' => 'User not authorized to operate on the specified resource as your account is created by another user.', - ], - [ - 'errorCode' => 'Forbidden', - 'errorMessage' => 'User not authorized to operate on the specified resource.', - ], + ['errorCode' => 'Forbbiden.SubUser', 'errorMessage' => 'User not authorized to operate on the specified resource as your account is created by another user.', 'description' => ''], + ['errorCode' => 'Forbidden', 'errorMessage' => 'User not authorized to operate on the specified resource.', 'description' => 'You do not have the permissions to manage the specified resource. Apply for the permissions and try again.'], ], [ - [ - 'errorCode' => 'InvalidVpnConnectionInstanceId.NotFound', - 'errorMessage' => 'The specified vpn connection instance id does not exist.', - ], + ['errorCode' => 'InvalidVpnGatewayInstanceId.NotFound', 'errorMessage' => 'The specified vpn gateway instance id does not exist.', 'description' => ''], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"0C68048B-0F70-40DA-B8AE-1B79B5CF62E3\\",\\n \\"VpnConnectionConfig\\": {\\n \\"Remote\\": \\"116.62.XX.XX\\",\\n \\"Local\\": \\"139.196.XX.XX\\",\\n \\"RemoteSubnet\\": \\"192.168.0.0/16\\",\\n \\"LocalSubnet\\": \\"10.0.0.0/8\\",\\n \\"IkeConfig\\": {\\n \\"RemoteId\\": \\"116.62.XX.XX\\",\\n \\"IkeLifetime\\": 86400,\\n \\"IkeEncAlg\\": \\"aes\\",\\n \\"LocalId\\": \\"139.196.XX.XX\\",\\n \\"IkeMode\\": \\"main\\",\\n \\"IkeVersion\\": \\"ikev2\\",\\n \\"IkePfs\\": \\"group2\\",\\n \\"Psk\\": \\"pgw6dy7d1i8i****\\",\\n \\"IkeAuthAlg\\": \\"sha1\\"\\n },\\n \\"IpsecConfig\\": {\\n \\"IpsecAuthAlg\\": \\"sha1\\",\\n \\"IpsecEncAlg\\": \\"aes\\",\\n \\"IpsecLifetime\\": 86400,\\n \\"IpsecPfs\\": \\"group2\\"\\n },\\n \\"TunnelsConfig\\": {\\n \\"TunnelConfig\\": [\\n {\\n \\"TunnelId\\": \\"tun-opsqc4d97wni27****\\",\\n \\"Local\\": \\"47.21.XX.XX\\",\\n \\"Remote\\": \\"47.24.XX.XX\\",\\n \\"IkeConfig\\": {\\n \\"Psk\\": \\"pgw6dy7d1i8i****\\",\\n \\"IkeVersion\\": \\"ikev2\\",\\n \\"IkeMode\\": \\"main\\",\\n \\"IkeEncAlg\\": \\"aes\\",\\n \\"IkeAuthAlg\\": \\"sha1\\",\\n \\"IkePfs\\": \\"group2\\",\\n \\"IkeLifetime\\": 86400,\\n \\"LocalId\\": \\"47.21.XX.XX\\",\\n \\"RemoteId\\": \\"47.24.XX.XX\\"\\n },\\n \\"IpsecConfig\\": {\\n \\"IpsecAuthAlg\\": \\"sha1\\",\\n \\"IpsecEncAlg\\": \\"aes\\",\\n \\"IpsecPfs\\": \\"group2\\",\\n \\"IpsecLifetime\\": 86400\\n }\\n }\\n ]\\n },\\n \\"BgpConfigs\\": {\\n \\"BgpConfig\\": [\\n {\\n \\"LocalAsn\\": \\"1219002\\",\\n \\"LocalBgpIp\\": \\"169.254.20.2\\",\\n \\"PeerAsn\\": \\"1219001\\",\\n \\"PeerBgpIp\\": \\"169.254.20.1\\",\\n \\"TunnelCidr\\": \\"169.254.20.0/30\\",\\n \\"TunnelId\\": \\"tun-900ghtunmhp75r14wh\\"\\n }\\n ]\\n }\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 0C68048B-0F70-40DA-B8AE-1B79B5CF62E3\\n \\n 116.62.XX.XX\\n 139.196.XX.XX\\n 192.168.0.0/16\\n 10.0.0.0/8\\n \\n 139.196.XX.XX\\n 86400\\n aes\\n 116.62.XX.XX\\n main\\n ikev1\\n group2\\n pgw6dy7d1i8i****\\n sha1\\n \\n \\n sha1\\n 86400\\n aes\\n group2\\n \\n \\n","errorExample":""}]', - 'title' => 'DownloadVpnConnectionConfig', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'Publish or withdraw VPN routes', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeVpnConnectionLogs' => [ - 'summary' => 'Queries logs of IPsec-VPN connections.', - 'methods' => [ - 'post', - 'get', + 'changeSet' => [ + ['createdAt' => '2023-07-21T09:24:31.000Z', 'description' => 'Error codes changed'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '60', 'countWindow' => 60, 'regionId' => '*', 'api' => 'PublishVpnRouteEntry'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:PublishVpnRouteEntry', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VpnGateway', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vpngateway/{#VpnGatewayId}'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"5BE01CD7-5A50-472D-AC14-CA181C5C03BE\\\\t\\"\\n}","type":"json"}]', + ], + 'RecoverPhysicalConnection' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', - 'systemTags' => [ - 'operationType' => 'list', - ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'update'], 'parameters' => [ [ - 'name' => 'RegionId', + 'name' => 'InstanceId', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the IPsec-VPN connection.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'eu-central-1', - ], + 'schema' => ['title' => '', 'description' => 'The instance ID of the Express Connect circuit.'."\n" + ."\n" + .'> Currently, only shared Express Connect circuits can be recovered.', 'type' => 'string', 'required' => true, 'example' => 'pc-bp1mrgfbtmc9brre7****'], ], [ - 'name' => 'VpnConnectionId', + 'name' => 'Token', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the IPsec-VPN connection.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'vco-m5evqnds4y459flt3****', - ], + 'schema' => ['title' => '', 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'The client generates the value of this parameter. The value must be unique among different requests and cannot exceed 64 ASCII characters in length.', 'type' => 'string', 'required' => false, 'example' => 'CBCE910E-D396-4944-8****'], ], [ - 'name' => 'From', + 'name' => 'DryRun', 'in' => 'query', - 'schema' => [ - 'description' => 'The start time of the flow log. This value is a UNIX timestamp representing the number of milliseconds that have elapsed since January 1, 1970, 00:00:00 UTC.'."\n" - ."\n" - .'> If you specify **From**, you must specify **To** or **MinutePeriod**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1671003744', - ], + 'schema' => ['title' => '', 'description' => 'Specifies whether to perform a dry run. Valid values:'."\n" + ."\n" + .'- **true**: performs a dry run without recovering access to the Express Connect circuit. The system checks the required parameters, request format, and instance status. If the check fails, the corresponding error is returned. If the check succeeds, the request ID is returned.'."\n" + .'- **false** (default): sends the request. After the request passes the check, access to the Express Connect circuit is recovered.', 'type' => 'boolean', 'required' => false, 'example' => 'false'], ], [ - 'name' => 'To', + 'name' => 'RegionId', 'in' => 'query', + 'schema' => ['description' => 'The region ID of the Express Connect circuit.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the region ID.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => 'The end time of the flow log. This value is a UNIX timestamp representing the number of milliseconds that have elapsed since January 1, 1970, 00:00:00 UTC.'."\n" - ."\n" - .'> If you specify **To**, you must specify **From** or **MinutePeriod**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1671004344', + 'title' => '', + 'description' => 'The response.', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['title' => '', 'description' => 'The request ID.', 'type' => 'string', 'example' => 'CD14EA74-E9C3-59A9-942A-DFEC7E12818D'], + ], + 'example' => '', ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'IncorrectStatus.PhysicalConnection', 'errorMessage' => 'The status of %s is incorrect.', 'description' => 'The operation failed because the status of the Express Connect circuit is invalid.'], + ['errorCode' => 'ResourceNotFound', 'errorMessage' => 'The specified resource %s is not found.', 'description' => 'The specified resource %s is not found.'], + ['errorCode' => 'OperationDenied.TerminateVirtualPhysicalConnection', 'errorMessage' => 'The operation is not allowed because of TerminateVirtualPhysicalConnection.', 'description' => 'The VirtualPhysicalConnection does not have permission or is in arrears, the operation is not allowed'], + ['errorCode' => 'OperationDenied.PconnNotAllowRecover', 'errorMessage' => 'Exclusive physical connection does not allow recovery.', 'description' => 'The current resource cannot perform this operation. Please contact the duty officer for assistance.'], + ], + ], + 'title' => 'Recover access to an express connect circuit', + 'summary' => 'Recovers access to an Express Connect circuit by calling the RecoverPhysicalConnection operation.', + 'description' => '### Operation description'."\n" + ."\n" + .'You can call the RecoverPhysicalConnection operation to recover access to an Express Connect circuit that has been terminated. Currently, only shared Express Connect circuits can be recovered.', + 'changeSet' => [ + ['createdAt' => '2024-06-13T08:13:13.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-01-04T01:43:50.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2021-09-27T03:23:37.000Z', 'description' => 'OpenAPI offline'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'RecoverPhysicalConnection'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], + ], + 'ramActions' => [ [ - 'name' => 'MinutePeriod', - 'in' => 'query', - 'schema' => [ - 'description' => 'The interval at which log data is collected. Valid values: **1** to **10**. Unit: minutes.'."\n" - ."\n" - .'> If you do not specify **From** and **To**, you must specify **MinutePeriod**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '10', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:RecoverPhysicalConnection', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'PhysicalConnection', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:physicalconnection/{#physicalconnectionId}'], + ], ], ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"CD14EA74-E9C3-59A9-942A-DFEC7E12818D\\"\\n}","type":"json"}]', + ], + 'RecoverVirtualBorderRouter' => [ + 'summary' => 'Enables a disabled virtual border router (VBR).', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'PageNumber', + 'AK' => [], + ], + ], + 'deprecated' => false, + 'systemTags' => ['operationType' => 'update'], + 'parameters' => [ + [ + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The page number. Default value: **1**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', - 'default' => '1', - ], + 'schema' => ['description' => 'The region ID of the VBR.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-shanghai', 'title' => ''], ], [ - 'name' => 'PageSize', + 'name' => 'VbrId', 'in' => 'query', - 'schema' => [ - 'description' => 'The number of entries per page. Valid values: **1** to **50**. Default value: **10**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '10', - 'default' => '10', - ], + 'schema' => ['description' => 'The ID of the VBR.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'vbr-bp1lhl0taikrte****', 'title' => ''], ], [ - 'name' => 'TunnelId', + 'name' => 'ClientToken', 'in' => 'query', - 'allowEmptyValue' => true, - 'schema' => [ - 'description' => 'The ID of the IPsec-VPN connection.'."\n" - ."\n" - .'This parameter is available only for a dual-tunnel IPsec-VPN connection.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'tun-opsqc4d97wni27****', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'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 and cannot exceed 64 characters in length.'."\n", 'type' => 'string', 'required' => false, 'example' => '02fb3da4-130e-11e9-8e44-0016e04115b', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => 'The returned data.'."\n", 'type' => 'object', 'properties' => [ - 'PageSize' => [ - 'description' => 'The number of entries per page.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'PageNumber' => [ - 'description' => 'The page number.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => 'CF161502-4959-5C3B-B499-09B87BA931D9', - ], - 'Count' => [ - 'description' => 'The number of entries on the current page.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'IsCompleted' => [ - 'description' => 'Indicates whether the log is accurate. Valid values:'."\n" - ."\n" - .'* **true**'."\n" - .'* **false**'."\n", - 'type' => 'boolean', - 'example' => 'true', - ], - 'Data' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'Logs' => [ - 'description' => 'The log list.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'An array of strings.'."\n" - ."\n" - .'Each item in the array is a log entry.'."\n", - 'type' => 'string', - 'example' => '"Logs": [ "2022-12-14 15:52:28 vco-m5evqnds4y459flt3**** [DEBUG]: isakmp_inf.c:1514:isakmp****", "2022-12-14 15:52:28 vco-m5evqnds4y459flt3**** [DEBUG]: oakley.c:2832:oak****", "2022-12-14 15:52:28 vco-m5evqnds4y459flt3**** [DEBUG]: oakley.c:2833:oak****" ]', - ], - ], - ], - ], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '4EC47282-1B74-4534-BD0E-403F3EE64CAF', 'title' => ''], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'QueryVpnConnectionLog.NotFound', - 'errorMessage' => 'the connection log of the vpn connection is not found.', - ], + ['errorCode' => 'InvalidOperation.OperationNotAllowedInState', 'errorMessage' => 'The specified VirutalBorderRouter is in invalid state', 'description' => ''], + ['errorCode' => 'OperationFailed.VlanIdAlreadyInUse', 'errorMessage' => 'The specifed vlanId has been used.', 'description' => ''], + ['errorCode' => 'OperationFailed.PconnTrafficNotEnable', 'errorMessage' => 'The operation is failed because of PconnTrafficNotEnable.', 'description' => 'Billing for outbound data transfer is disabled.'], ], 403 => [ - [ - 'errorCode' => 'Forbbiden.SubUser', - 'errorMessage' => 'User not authorized to operate on the specified resource as your account is created by another user.', - ], - [ - 'errorCode' => 'Forbidden', - 'errorMessage' => 'User not authorized to operate on the specified resource.', - ], + ['errorCode' => 'Forbidden.OperationRecoverNotAllowedByUser', 'errorMessage' => 'The caller is not allowed to recover the specified VirtualBorderRouter.', 'description' => 'The caller is not allowed to recover the specified VirtualBorderRouter.'], ], [ - [ - 'errorCode' => 'InvalidVpnConnectionInstanceId.NotFound', - 'errorMessage' => 'The specified vpn connection instance id does not exist.', - ], + ['errorCode' => 'InvalidRegionId.NotFound', 'errorMessage' => 'The RegionId provided does not exist in our records.', 'description' => ''], + ['errorCode' => 'InvalidVbrId.NotFound', 'errorMessage' => 'The specified VirutalBorderRouter is not found.', 'description' => ''], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"PageSize\\": 10,\\n \\"PageNumber\\": 1,\\n \\"RequestId\\": \\"CF161502-4959-5C3B-B499-09B87BA931D9\\",\\n \\"Count\\": 10,\\n \\"IsCompleted\\": true,\\n \\"Data\\": {\\n \\"Logs\\": [\\n \\"\\\\\\"Logs\\\\\\": [ \\\\\\"2022-12-14 15:52:28 vco-m5evqnds4y459flt3**** [DEBUG]: isakmp_inf.c:1514:isakmp****\\\\\\", \\\\\\"2022-12-14 15:52:28 vco-m5evqnds4y459flt3**** [DEBUG]: oakley.c:2832:oak****\\\\\\", \\\\\\"2022-12-14 15:52:28 vco-m5evqnds4y459flt3**** [DEBUG]: oakley.c:2833:oak****\\\\\\" ]\\"\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 10\\n CF161502-4959-5C3B-B499-09B87BA931D9\\n 1\\n true\\n \\n 2022-12-14 15:52:28 vco-m5evqnds4y459flt3**** [DEBUG]: isakmp_inf.c:1514:isakmp_info_send_r_u(): DPD monitoring....\\n 2022-12-14 15:52:28 vco-m5evqnds4y459flt3**** [DEBUG]: oakley.c:2832:oakley_newiv2(): compute IV for phase2\\n 2022-12-14 15:52:28 vco-m5evqnds4y459flt3**** [DEBUG]: oakley.c:2833:oakley_newiv2(): phase1 last IV:\\n 2022-12-14 15:52:28 vco-m5evqnds4y459flt3**** [DEBUG]: algorithm.c:381:alg_oakley_hashdef(): hash(sha1)\\n 2022-12-14 15:52:28 vco-m5evqnds4y459flt3**** [DEBUG]: algorithm.c:524:alg_oakley_encdef(): encryption(aes)\\n 2022-12-14 15:52:28 vco-m5evqnds4y459flt3**** [DEBUG]: oakley.c:2867:oakley_newiv2(): phase2 IV computed:\\n 2022-12-14 15:52:28 vco-m5evqnds4y459flt3**** [DEBUG]: oakley.c:657:oakley_compute_hash1(): HASH with:\\n 2022-12-14 15:52:28 vco-m5evqnds4y459flt3**** [DEBUG]: algorithm.c:464:alg_oakley_hmacdef(): hmac(hmac_sha1)\\n 2022-12-14 15:52:28 vco-m5evqnds4y459flt3**** [DEBUG]: oakley.c:667:oakley_compute_hash1(): HASH computed:\\n 2022-12-14 15:52:28 vco-m5evqnds4y459flt3**** [DEBUG]: oakley.c:3035:oakley_do_encrypt(): begin encryption.\\n \\n 10\\n","errorExample":""}]', - 'title' => 'DescribeVpnConnectionLogs', + 'title' => 'RecoverVirtualBorderRouter', + 'description' => 'After you call this operation, the VBR changes from the **terminated** state to the **recovering** state. After the operation is performed, the VBR enters the **active** state.'."\n" + ."\n" + .'When you call this operation, take note of the following items:'."\n" + ."\n" + .'* Only the owner of the Express Connect circuit can call this operation.'."\n" + .'* The Express Connect circuit to which the VBR connects must be in the **Enabled** state.'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"4EC47282-1B74-4534-BD0E-403F3EE64CAF\\"\\n}","errorExample":"{ \\n \\"RequestId\\": \\"0ED8D006-F706-4D23-88ED-E11ED28DCAC0\\"\\n}"},{"type":"xml","example":"\\n\\n 0ED8D006-F706-4D23-88ED-E11ED28DCAC0\\n","errorExample":"\\n\\n 0ED8D006-F706-4D23-88ED-E11ED28DCAC0\\n"}]', ], - 'DiagnoseVpnConnections' => [ - 'summary' => 'Diagnoses IPsec-VPN connections.', - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'ReleaseEipAddress' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'get', - ], + 'operationType' => 'readAndWrite', + 'systemTags' => ['operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', 'autoTest' => true, 'tenantRelevance' => 'tenant'], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'allowEmptyValue' => false, - 'schema' => [ - 'description' => 'The region ID of the IPsec-VPN connection.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cn-qingdao', - ], + 'schema' => ['description' => 'The region ID of the EIP to release. You can call [DescribeRegions](~~36063~~) to query the region ID.', 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'VpnGatewayId', + 'name' => 'AllocationId', 'in' => 'query', + 'schema' => ['description' => 'The ID of the EIP to release.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'eip-2zeerraiwb7uj6i0d****', 'title' => ''], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => 'The ID of the VPN gateway.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'vpn-bp10hz6b0mbp39flt****', + 'description' => 'The response parameters.', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '748C38F6-9A3D-482E-83FB-DB6C39C68AEA', 'title' => ''], + ], + 'title' => '', + 'example' => '', ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'IncorrectEipStatus', 'errorMessage' => 'Current elastic IP status does not support this operation.', 'description' => ''], + ['errorCode' => 'TaskConflict.AssociateGlobalAccelerationInstance', 'errorMessage' => 'Operate too frequent.', 'description' => ''], + ['errorCode' => 'InvalidOperation.DeletionProtection', 'errorMessage' => 'The instance cannnot delete because of deletion protecion.', 'description' => ''], + ['errorCode' => 'Forbidden.ReleaseSegmentEip', 'errorMessage' => 'Release single segment eip is forbidden.', 'description' => ''], + ['errorCode' => 'Forbidden', 'errorMessage' => 'The eip instance owner error', 'description' => 'The EIP does not belong to your account. Check whether you are authorized to perform the operation on the EIP.'], + ['errorCode' => 'Mismatch.%sAnd%s', 'errorMessage' => 'The %s and %s are mismatched.', 'description' => 'The parameter does not match. Check the parameter.'], + ], + 404 => [ + ['errorCode' => 'InvalidAllocationId.NotFound', 'errorMessage' => 'Specified allocation ID is not found.', 'description' => ''], + ], + ], + 'staticInfo' => ['returnType' => 'asynchronous', 'callback' => 'Vpc::2016-04-28::DescribeEipAddresses', 'callbackInterval' => 3, 'maxCallbackTimes' => 10], + 'title' => 'Release a specified EIP', + 'summary' => 'Releases a specified elastic IP address (EIP).', + 'description' => 'Before you begin:'."\n" + ."\n" + .'- Before releasing an EIP, make sure the following conditions are met:'."\n" + ."\n" + .' - Only EIPs in the **Available** state can be released.'."\n" + ."\n" + .' - Only EIPs that use the pay-as-you-go billing method can be released. Subscription EIPs cannot be released.'."\n" + ."\n" + .'- The **ReleaseEipAddress** operation is asynchronous. After you invoke this operation, the system returns a request ID, but the EIP instance has not been released yet. The release node continues to execute in the background. You can invoke [DescribeEipAddresses](~~120193~~) to query the status of the EIP instance:'."\n" + ."\n" + .' - If the EIP instance is in the **Releasing** state, the EIP instance is being released. In this state, you can only execute query operations and cannot execute other operations.'."\n" + ."\n" + .' - If the EIP instance cannot be found, the EIP instance has been released.'."\n" + ."\n" + .'- The **ReleaseEipAddress** operation does not support concurrent release of the same EIP instance.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2022-11-28T03:45:29.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2022-11-17T11:38:45.000Z', 'description' => 'Error codes changed'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '600', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ReleaseEipAddress'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], + ], + 'ramActions' => [ [ - 'name' => 'VpnConnectionIds', - 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => 'The IDs of IPsec-VPN connections.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The ID of the IPsec-VPN connection.'."\n" - ."\n" - .'> This parameter is required if the IPsec-VPN connection is in single-tunnel mode.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'vco-bp1spxu8hlcvpd7ry****', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:ReleaseEipAddress', + 'authLevel' => 'resource', + 'actionConditions' => [ + ['conditionKey' => 'vpc:tag', 'validationType' => 'always'], + ], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'Address', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:eip/{#AllocationId}'], ], - 'required' => false, - 'maxItems' => 51, ], ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"748C38F6-9A3D-482E-83FB-DB6C39C68AEA\\"\\n}","type":"json"}]', + ], + 'ReleaseEipSegmentAddress' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'TunnelIds', + 'AK' => [], + ], + ], + 'operationType' => 'readAndWrite', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'delete', 'riskType' => 'none', 'chargeType' => 'free', 'autoTest' => true, 'tenantRelevance' => 'tenant'], + 'parameters' => [ + [ + 'name' => 'RegionId', 'in' => 'query', - 'allowEmptyValue' => true, - 'style' => 'repeatList', - 'schema' => [ - 'description' => 'The list of tunnel IDs.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The tunnel ID.'."\n" - ."\n" - .'> This parameter is required if the IPsec-VPN connection is in dual-tunnel mode.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'tun-64n1sr9dig64k6****', - ], - 'required' => false, - 'maxItems' => 100, - ], + 'schema' => ['description' => 'The region ID of the contiguous EIPs. You can call [DescribeRegions](~~36063~~) to query the region ID.', 'type' => 'string', 'required' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'PageNumber', + 'name' => 'SegmentInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => 'The page number. Default value: **1**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', - ], + 'schema' => ['description' => 'The instance ID of the contiguous EIP group to release.'."\n" + ."\n" + .'The system releases all EIPs in the contiguous EIP group.', 'type' => 'string', 'required' => true, 'example' => 'eipsg-2zett8ba055tbsxme****', 'title' => ''], ], [ - 'name' => 'PageSize', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The number of entries per page. Default value: **10**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '10', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'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.'."\n" + ."\n" + .'> If you do not specify this parameter, the system automatically uses the **RequestId** of the API request as the **ClientToken**. The **RequestId** may be different for each API request.', 'type' => 'string', 'required' => false, 'example' => '02fb3da4-130e-11e9-8e44-001sdfg', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'The response parameters.'."\n", + 'description' => 'The response parameters.', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => 'B8094E1E-935B-1397-96A8-4F87A5D1BF29', - ], - 'PageNumber' => [ - 'description' => 'The page number.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'PageSize' => [ - 'description' => 'The number of entries per page.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'TotalCount' => [ - 'description' => 'The number of entries returned.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'VpnConnections' => [ - 'description' => 'The diagnostic information.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'MismatchRemoteParam' => [ - 'description' => 'If the parameter values configured for the IPsec-VPN connection and the peer gateway device do not match, this parameter indicates the value of the parameter configured for the peer gateway device.'."\n", - 'type' => 'string', - 'example' => 'SHA', - ], - 'MismatchLocalParam' => [ - 'description' => 'If the values of the parameters configured for the IPsec-VPN connection and the peer gateway device do not match, this parameter indicates the value of the parameters configured for the IPsec-VPN connection.'."\n", - 'type' => 'string', - 'example' => 'SHA256', - ], - 'VpnConnectionId' => [ - 'description' => 'The ID of the IPsec-VPN connection.'."\n", - 'type' => 'string', - 'example' => 'vco-bp1spxu8hlcvpd7ry****', - ], - 'SourceLog' => [ - 'description' => 'The log information about the error.'."\n", - 'type' => 'string', - 'example' => '2023-01-13 11:39:21 vco-bp1spxu8hlcvpd7ry**** [PROTO_ERR]: ikev1.c:1433:isakmp_ph1resend(): phase1 negotiation failed due to time up. [{remote id:4}{ph1: 172.16.0.88[500] <=> 192.168.0.206[500], 172.16.0.88 <=> 192.168.0.206}]', - ], - 'FailedReasonCode' => [ - 'description' => 'The error code.'."\n", - 'type' => 'string', - 'example' => 'Phase1NegotiationTimeout', - ], - 'FailedTime' => [ - 'description' => 'The timestamp when the current error occurred on the IPsec-VPN connection. Unit: millisecond.'."\n" - ."\n" - .'This value is a UNIX timestamp representing the number of milliseconds that have elapsed since January 1, 1970, 00:00:00 UTC.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1673581161000', - ], - 'FailedReason' => [ - 'description' => 'The cause of the error.'."\n", - 'type' => 'string', - 'example' => 'Phase1 negotiation timeout', - ], - 'Severity' => [ - 'description' => 'The error level. Valid values:'."\n" - ."\n" - .'* **Critical**'."\n" - .'* **Warn**'."\n" - .'* **Normal**'."\n", - 'type' => 'string', - 'example' => 'Warn', - ], - 'TunnelId' => [ - 'description' => 'The tunnel ID.'."\n", - 'type' => 'string', - 'example' => 'tun-64n1sr9dig64k6****', - ], - ], - ], - ], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'F7A6301A-64BA-41EC-8284-8F4838C15D1F', 'title' => ''], ], + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParameter', - 'errorMessage' => 'The parameter is invalid.', - ], + ['errorCode' => 'IncorrectEipStatus', 'errorMessage' => 'Current elastic IP status does not support this operation.', 'description' => ''], + ['errorCode' => 'Forbidden.ChargeTypeIsPrepaid', 'errorMessage' => 'It\'s forbidden to release a prepaid EIP', 'description' => ''], + ['errorCode' => 'Forbidden', 'errorMessage' => 'The eip instance owener error', 'description' => 'The EIP does not belong to your account. Check whether you have the permissions to perform the operation on the EIP.'], + ['errorCode' => 'TaskConflict.AssociateGlobalAccelerationInstance', 'errorMessage' => 'Operate too frequent.', 'description' => ''], + ['errorCode' => 'InvalidOperation.DeletionProtection', 'errorMessage' => 'The instance cannnot delete because of deletion protecion.', 'description' => ''], + ['errorCode' => 'OperationFailed.InstanceNotExist', 'errorMessage' => 'Operation failed because eip segment instance not exist.', 'description' => ''], + ['errorCode' => 'OperationFailed.EipNumInconsistent', 'errorMessage' => 'Operation failed because the number of eip is inconsistent.', 'description' => ''], + ['errorCode' => 'OperationFailed.EipStatusInvalid', 'errorMessage' => 'Operation failed because eip instance status invalid.', 'description' => 'The operation failed because the status of the EIP is invalid.'], + ['errorCode' => 'OperationFailed.EipInBwp', 'errorMessage' => 'Operation failed because eip instance has been added to the bandwidth package.', 'description' => ''], + ['errorCode' => 'Forbidden.EipInBwp', 'errorMessage' => 'The EIP has been associated with an EIP bandwidth plan.', 'description' => 'You cannot delete the contiguous EIP group because EIPs in the group are associated with an EIP bandwidth plan.'], ], - 403 => [ - [ - 'errorCode' => 'Forbidden', - 'errorMessage' => 'User not authorized to operate on the specified resource.', - ], + 404 => [ + ['errorCode' => 'InvalidAllocationId.NotFound', 'errorMessage' => 'Specified allocation ID is not found.', 'description' => ''], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'Release contiguous eIPs', + 'summary' => 'Releases contiguous Elastic IP addresses (EIPs) by calling ReleaseEipSegmentAddress.', + 'description' => '- The **ReleaseEipSegmentAddress** operation releases all EIPs in a contiguous EIP group.'."\n" + ."\n" + .'- Before you call **ReleaseEipSegmentAddress**, make sure that:'."\n" + ."\n" + .' - All EIPs in the contiguous EIP group are in the unassociated state. To disassociate an EIP from a cloud resource, call [UnassociateEipAddress](~~2518066~~).'."\n" + ."\n" + .' - No EIPs in the contiguous EIP group are added to an Internet Shared Bandwidth instance. To remove an EIP from an Internet Shared Bandwidth instance, call [RemoveCommonBandwidthPackageIp](~~2518602~~).'."\n" + ."\n" + .'- **ReleaseEipSegmentAddress** is an asynchronous operation. After you call this operation, the system returns a request ID, but the contiguous EIPs are not yet released. The release task continues to run in the background. You can call [DescribeEipSegment](~~156063~~) to query the status of the contiguous EIP group: '."\n" + .' - If the contiguous EIP group is in the **Releasing** state, the contiguous EIPs are being released. In this state, you can only perform query operations.'."\n" + .' - If the contiguous EIP group cannot be found, the contiguous EIPs are released.'."\n" + ."\n" + .'- **ReleaseEipSegmentAddress** does not support concurrent release of the same contiguous EIP group.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2023-06-26T06:23:08.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-05-15T06:29:29.000Z', 'description' => 'Error codes changed'], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"B8094E1E-935B-1397-96A8-4F87A5D1BF29\\",\\n \\"PageNumber\\": 1,\\n \\"PageSize\\": 10,\\n \\"TotalCount\\": 1,\\n \\"VpnConnections\\": [\\n {\\n \\"MismatchRemoteParam\\": \\"SHA\\",\\n \\"MismatchLocalParam\\": \\"SHA256\\",\\n \\"VpnConnectionId\\": \\"vco-bp1spxu8hlcvpd7ry****\\",\\n \\"SourceLog\\": \\"2023-01-13 11:39:21 vco-bp1spxu8hlcvpd7ry**** [PROTO_ERR]: ikev1.c:1433:isakmp_ph1resend(): phase1 negotiation failed due to time up. [{remote id:4}{ph1: 172.16.0.88[500] <=> 192.168.0.206[500], 172.16.0.88 <=> 192.168.0.206}]\\",\\n \\"FailedReasonCode\\": \\"Phase1NegotiationTimeout\\",\\n \\"FailedTime\\": 1673581161000,\\n \\"FailedReason\\": \\"Phase1 negotiation timeout\\",\\n \\"Severity\\": \\"Warn\\",\\n \\"TunnelId\\": \\"tun-64n1sr9dig64k6****\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\n 1\\n B8094E1E-935B-1397-96A8-4F87A5D1BF29\\n 50\\n 1\\n \\n \\n Phase1NegotiationTimeout\\n Phase1 negotiation timeout\\n Warn\\n vco-bp1spxu8hlcvpd7ry****\\n 1673581161000\\n \\n 2023-01-13 11:39:21 vco-bp1spxu8hlcvpd7ry**** [PROTO_ERR]: ikev1.c:1433:isakmp_ph1resend(): phase1 negotiation failed due to time up. [{remote id:4}{ph1: 172.16.0.88[500] <=> 192.168.0.206[500], 172.16.0.88 <=> 192.168.0.206}]\\n \\n","errorExample":""}]', - 'title' => 'DiagnoseVpnConnections', - 'description' => '* If the IPsec-VPN connection is in single-tunnel mode, the request parameter `VpnConnectionIds` is required when you call the **DiagnoseVpnConnections** operation.'."\n" - .'* If the IPsec-VPN connection is in dual-tunnel mode, the request parameter `TunnelIds` is required when you call the **DiagnoseVpnConnections** operation.'."\n" - .'* After you call the **DiagnoseVpnConnections** operation, if the current IPsec-VPN connection is faulty, the operation returns the corresponding error code (**FailedReasonCode**) and log (**SourceLog**). You can troubleshoot based on the error code and log information. For more information, see [Common errors and troubleshooting methods for IPsec-VPN connections](~~477862~~).'."\n", - ], - 'CreateVpnRouteEntry' => [ - 'summary' => 'Creates a destination-based route entry for a VPN gateway.', - 'methods' => [ - 'post', - 'get', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '60', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ReleaseEipSegmentAddress'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'vpc:ReleaseEipSegmentAddress', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'SegmentAddress', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:eip/{#AllocationId}'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"F7A6301A-64BA-41EC-8284-8F4838C15D1F\\"\\n}","type":"json"}]', + ], + 'ReleaseIpv6Address' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'readAndWrite', + 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'create', + 'operationType' => 'delete', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '192336', + 'abilityTreeNodes' => ['FEATUREvpc3GHR3P'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region where the VPN gateway is created.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The region ID.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'ClientToken', + 'name' => 'Ipv6AddressId', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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.'."\n" - ."\n" - .'> 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.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'd7d24a21-f4ba-4454-9173-b3828dae****', - ], + 'schema' => ['description' => 'The ID of the IPv6 address.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'ipv6-2zen5j4axcp5l5qyy****', 'title' => ''], ], [ - 'name' => 'VpnGatewayId', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the VPN gateway.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'vpn-bp1a3kqjiiq9legfx****', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'You can use the client to generate the value, but you must ensure that it is unique among different requests. The token can contain only ASCII characters and cannot exceed 64 characters in length.'."\n" + ."\n" + .'> 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.'."\n", 'type' => 'string', 'required' => false, 'example' => '0c593ea1-3bea-11e9-b96b-88e9fe63****', 'title' => ''], ], [ - 'name' => 'RouteDest', + 'name' => 'DryRun', 'in' => 'query', - 'schema' => [ - 'description' => 'The destination CIDR block of the destination-based route.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => '10.0.0.0/24', - ], + 'schema' => ['description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values:'."\n" + ."\n" + .'* **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 precheck, the `DryRunOperation` error code is returned.'."\n" + .'* **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.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], ], [ - 'name' => 'NextHop', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The next hop of the destination-based route.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'vco-bp15oes1py4i66rmd****', - ], - ], - [ - 'name' => 'Weight', - 'in' => 'query', - 'schema' => [ - 'description' => 'The weight of the destination-based route. Valid values:'."\n" - ."\n" - .'* **100**: a high priority'."\n" - .'* **0**: a low priority'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'docRequired' => true, - 'example' => '0', - ], - ], - [ - 'name' => 'PublishVpc', - 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to advertise the destination-based route to a virtual private cloud (VPC) route table. Valid values:'."\n" - ."\n" - .'* **true**'."\n" - .'* **false**'."\n", - 'type' => 'boolean', - 'required' => true, - 'docRequired' => true, - 'example' => 'true', - ], - ], - [ - 'name' => 'Description', - 'in' => 'query', - 'schema' => [ - 'description' => 'The description of the destination-based route.'."\n" - ."\n" - .'The description must be **1** to **100** characters in length, and cannot start with `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'mytest', - ], - ], - [ - 'name' => 'OverlayMode', - 'in' => 'query', - 'schema' => [ - 'description' => 'The tunneling protocol. The value is set to **Ipsec**, which indicates the IPsec tunneling protocol.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'Ipsec', - ], - ], - [ - 'name' => 'DryRun', - 'in' => 'query', - 'schema' => [ - 'type' => 'boolean', - ], + 'schema' => ['description' => 'The region ID.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => 'The returned data.'."\n", 'type' => 'object', 'properties' => [ - 'NextHop' => [ - 'description' => 'The next hop of the destination-based route.'."\n", - 'type' => 'string', - 'example' => 'vco-bp15oes1py4i66rmd****', - ], - 'Weight' => [ - 'description' => 'The weight of the destination-based route. Valid values:'."\n" - ."\n" - .'* **100**: a high priority'."\n" - .'* **0**: a low priority'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '0', - ], - 'RouteDest' => [ - 'description' => 'The destination CIDR block of the destination-based route.'."\n", - 'type' => 'string', - 'example' => '10.0.0.0/24', - ], - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '5BE01CD7-5A50-472D-AC14-CA181C5C03BE', - ], - 'Description' => [ - 'description' => 'The description of the destination-based route.'."\n", - 'type' => 'string', - 'example' => 'mytest', - ], - 'State' => [ - 'description' => 'The status of the destination-based route.'."\n" - ."\n" - .'* **published**: advertised to the VPC route table.'."\n" - .'* **normal**: not advertised to the VPC route table.'."\n", - 'type' => 'string', - 'example' => 'published', - ], - 'CreateTime' => [ - 'description' => 'The timestamp when the destination-based route was created. Unit: milliseconds.'."\n" - ."\n" - .'This value is a UNIX timestamp representing the number of milliseconds that have elapsed since the epoch time January 1, 1970, 00:00:00 UTC.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1492747187000', - ], - 'OverlayMode' => [ - 'description' => 'The tunneling protocol. The value is set to **Ipsec**, which indicates the IPsec tunneling protocol.'."\n", - 'type' => 'string', - 'example' => 'Ipsec', - ], - 'VpnInstanceId' => [ - 'description' => 'The ID of the VPN gateway.'."\n", - 'type' => 'string', - 'example' => 'vpn-bp1a3kqjiiq9legfx****', - ], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => 'C44F62BE-9CE7-4277-B117-69243F3988BF', 'title' => ''], ], + 'description' => '', + 'title' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'Resource.QuotaFull', - 'errorMessage' => 'The quota of resource is full', - ], - [ - 'errorCode' => 'VpnGateway.Configuring', - 'errorMessage' => 'The specified service is configuring.', - ], - [ - 'errorCode' => 'VpnGateway.FinancialLocked', - 'errorMessage' => 'The specified service is financial locked.', - ], - [ - 'errorCode' => 'VpnRouteEntry.AlreadyExists', - 'errorMessage' => 'The specified route entry is already exist.', - ], - [ - 'errorCode' => 'VpnRouteEntry.Conflict', - 'errorMessage' => 'The specified route entry has conflict.', - ], - [ - 'errorCode' => 'VpnRouteEntry.ConflictSSL', - 'errorMessage' => 'The specified route entry has conflict with SSL client.', - ], - [ - 'errorCode' => 'VpnRouteEntry.BackupRoute', - 'errorMessage' => 'Validate backup route entry failed.', - ], - [ - 'errorCode' => 'VpnRouteEntry.InvalidWeight', - 'errorMessage' => 'Invalid route entry weight value.', - ], - [ - 'errorCode' => 'InvalidNextHop.NotFound', - 'errorMessage' => 'The specified NextHop does not exist.', - ], - [ - 'errorCode' => 'IllegalParam.RouteDest', - 'errorMessage' => 'The specified RouteDest is invalid', - ], - [ - 'errorCode' => 'OperationFailed.RouteConflict', - 'errorMessage' => 'Operation failed because there is already a route in VPC route table to another VPN on the same network block.', - ], - [ - 'errorCode' => 'OperationFailed.InvalidCidrBlock', - 'errorMessage' => 'Operation failed because the specified network block is invalid.', - ], - [ - 'errorCode' => 'QuotaExceeded.VpnRouteEntry', - 'errorMessage' => 'The number of route entries to the VPN gateway in the VPC routing table has reached the quota limit.', - ], - [ - 'errorCode' => 'TaskConflict', - 'errorMessage' => 'The operation is too frequent, please wait a moment and try again.', - ], - [ - 'errorCode' => 'VpnTask.CONFLICT', - 'errorMessage' => 'Vpn task has conflict.', - ], - [ - 'errorCode' => 'IncorrectVpcStatus', - 'errorMessage' => 'Current VPC status does not support this operation.', - ], - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', - ], - [ - 'errorCode' => 'InvalidCidrBlock.Malformed', - 'errorMessage' => 'Specified CIDR block is not valid.', - ], - [ - 'errorCode' => 'DryRunOperation', - 'errorMessage' => 'Request validation has been passed with DryRun flag set.', - ], + ['errorCode' => 'DependencyViolation.Ipv6InternetBandwidth', 'errorMessage' => 'The specified resource of %s depends on %s, so the operation cannot be completed.', 'description' => 'The specified resource is dependent on other resources and the current operation is not allowed.'], + ['errorCode' => 'OperationFailed.AssociationExist', 'errorMessage' => 'Operation failed because the existence of an association.', 'description' => 'The operation failed because there is a bind operation failure.'], + ['errorCode' => 'OperationFailed.ResourceInBinding', 'errorMessage' => 'The operation is failed because of the resource is in binding.', 'description' => 'The operation failed because the resource is in binding.'], + ['errorCode' => 'IncorrectStatus.Ipv6Instance', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => 'The IPv6 address is in an unstable state. Try again later.'], ], - 403 => [ - [ - 'errorCode' => 'Forbbiden.SubUser', - 'errorMessage' => 'User not authorized to operate on the specified resource as your account is created by another user.', - ], - [ - 'errorCode' => 'Forbidden', - 'errorMessage' => 'User not authorized to operate on the specified resource.', - ], + 404 => [ + ['errorCode' => 'ResourceNotFound.Ipv6InstanceId', 'errorMessage' => 'The specified resource of %s is not found.', 'description' => 'The specified IPv6 instance ID does not exist. Please check whether your input is correct.'], ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'ReleaseIpv6Address', + 'summary' => 'Releases an idle IPv6 address.', + 'changeSet' => [ + ['createdAt' => '2024-06-28T01:52:06.000Z', 'description' => 'Error codes changed'], + ], + 'ramActions' => [ [ - [ - 'errorCode' => 'InvalidVpnGatewayInstanceId.NotFound', - 'errorMessage' => 'The specified vpn gateway instance id does not exist.', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'vpc:ReleaseIpv6Address', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'Ipv6Address', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:ipv6address/{#Ipv6AddressId}'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"NextHop\\": \\"vco-bp15oes1py4i66rmd****\\",\\n \\"Weight\\": 0,\\n \\"RouteDest\\": \\"10.0.0.0/24\\",\\n \\"RequestId\\": \\"5BE01CD7-5A50-472D-AC14-CA181C5C03BE\\",\\n \\"Description\\": \\"mytest\\",\\n \\"State\\": \\"published\\",\\n \\"CreateTime\\": 1492747187000,\\n \\"OverlayMode\\": \\"Ipsec\\",\\n \\"VpnInstanceId\\": \\"vpn-bp1a3kqjiiq9legfx****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n vco-bp15oes1py4i66rmd****\\n 0\\n 10.0.0.0/24\\n 5BE01CD7-5A50-472D-AC14-CA181C5C03BE\\n mytest\\n published\\n 1492747187000\\n Ipsec\\n vpn-bp1a3kqjiiq9legfx****\\n","errorExample":""}]', - 'title' => 'CreateVpnRouteEntry', - 'description' => '* **CreateVpnRouteEntry** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call [DescribeVpnGateway](~~73720~~) to query the status of the task.'."\n" - ."\n" - .' * If a VPN gateway is in the **updating** state, the destination-based route entry is being created.'."\n" - .' * If a VPN gateway is in the **active** state, the destination-based route entry has been created.'."\n" - ."\n" - .'* You cannot repeatedly call **CreateVpnRouteEntry** to create a destination-based route entry for a VPN gateway within the specified period of time.'."\n", - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"C44F62BE-9CE7-4277-B117-69243F3988BF\\"\\n}","type":"json"}]', ], - 'PublishVpnRouteEntry' => [ - 'summary' => 'Advertises a VPN route to a VPC.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'RemoveCommonBandwidthPackageIp' => [ + 'summary' => 'Disassociates an EIP from an Internet Shared Bandwidth instance.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -74401,667 +56405,304 @@ ], 'operationType' => 'readAndWrite', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'update', - ], + 'systemTags' => ['operationType' => 'delete', 'riskType' => 'none', 'chargeType' => 'free', 'autoTest' => true, 'tenantRelevance' => 'tenant'], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region where the VPN gateway is created.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['type' => 'string', 'description' => 'The region ID of the Internet Shared Bandwidth instance. '."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) API to obtain the region ID. ', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'ClientToken', + 'name' => 'BandwidthPackageId', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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 and cannot exceed 64 characters in length.'."\n" - ."\n" - .'> 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.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'd7d24a21-f4ba-4454-9173-b382****', - ], + 'schema' => ['type' => 'string', 'description' => 'The ID of the Internet Shared Bandwidth instance. ', 'required' => true, 'docRequired' => true, 'example' => 'cbwp-2ze2ic1xd2qeqk145****', 'title' => ''], ], [ - 'name' => 'VpnGatewayId', + 'name' => 'IpInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the VPN gateway.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'vpn-bp1a3kqjiiq9legfx****', - ], + 'schema' => ['type' => 'string', 'description' => 'The ID of the EIP instance. '."\n" + ."\n" + .'You can call the [DescribeEipAddresses](~~36018~~) API to query the ID of the EIP instance. ', 'required' => true, 'docRequired' => true, 'example' => 'eip-2zeerraiwb7uj6i0d****', 'title' => ''], ], [ - 'name' => 'RouteDest', + 'name' => 'ClientToken', 'in' => 'query', + 'schema' => ['type' => 'string', 'description' => 'A client token used to ensure the idempotence of the request. '."\n" + ."\n" + .'Generate a unique value for this parameter from your client to guarantee uniqueness across different requests. ClientToken supports only ASCII characters. '."\n" + ."\n" + .'> If you do not specify this parameter, the system automatically uses the **RequestId** of the API request as the **ClientToken**. The **RequestId** may differ for each API request. ', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-426655440000', 'title' => ''], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => 'The destination CIDR block of the VPN gateway route.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => '10.0.0.0/24', + 'description' => 'The list of returned information. ', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['type' => 'string', 'description' => 'The request ID. ', 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B45', 'title' => ''], + ], + 'title' => '', + 'example' => '', ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'IpInstanceId.NotBandwidthPackage', 'errorMessage' => 'The specified IpInstanceId does not in bandwidthPackage.', 'description' => ''], + ['errorCode' => 'DependencyViolation.ip', 'errorMessage' => 'The specified BandwidthPackageId has eip in it.', 'description' => ''], + ['errorCode' => 'EIP_BIND_NATGATEWAY', 'errorMessage' => 'The eip have bind natgateway.', 'description' => ''], + ['errorCode' => 'IncorrectStatus.Eip', 'errorMessage' => 'Eip status error.', 'description' => ''], + ['errorCode' => 'OperationFailed.SnatPoolIp', 'errorMessage' => 'Multi ip in snat pool cannot remove ip from bandwidth package.', 'description' => ''], + ['errorCode' => 'DependencyViolation.RouteEntry', 'errorMessage' => 'vpc route table has route entry.', 'description' => ''], + ['errorCode' => 'OperationFailed.DistibuteLock', 'errorMessage' => 'Distibute lock fail.', 'description' => 'The operation is locked by another request;'], + ['errorCode' => 'Trade_Sync_Create_Sub_ERROR', 'errorMessage' => 'SyncOrderToSub error.', 'description' => ''], + ['errorCode' => 'FAILED_INVOKE_INNER_API', 'errorMessage' => 'Failed to invoke inner api.', 'description' => ''], + ['errorCode' => 'InvalidIP.IpInSnatPool', 'errorMessage' => 'Multi ip in snat pool cannot remove ip from bandwidth package.', 'description' => ''], + ['errorCode' => 'InvalidInstanceId.NotFound', 'errorMessage' => 'The specified bandwidthPackageId does not exist in our records.', 'description' => ''], + ['errorCode' => 'OperationUnsupported.IpNotInCbwp', 'errorMessage' => 'The specified eip not exist in the commonBandwidthPackage.', 'description' => 'The EIP is not associated with the EIP bandwidth plan.'], + ['errorCode' => 'InvalidIpInstanceId.Malformed', 'errorMessage' => 'The specified IpInstanceId is invalid.', 'description' => ''], + ['errorCode' => 'OperationUnsupported.EipBindRemote', 'errorMessage' => 'Eip bind remote ecs/slb, cannot remove it from bandwidthPackage.', 'description' => ''], + ['errorCode' => 'InvalidBandwidthPackageId.NotFound', 'errorMessage' => 'The specified BandwidthPackageId not exist.', 'description' => ''], + ['errorCode' => 'InvalidEIPStatus.BizDisabled', 'errorMessage' => 'The EIP has been locked.', 'description' => 'The error message returned because the EIP is locked.'], + ['errorCode' => 'Forbidden.FinancialLocked', 'errorMessage' => 'The ip business status is invalid.', 'description' => 'The error message returned because the instance has overdue payments.'], + ['errorCode' => 'OperationFailed.SystemBusy', 'errorMessage' => 'Operation failed because system is busy.', 'description' => 'The error message returned because the system is busy. Try again later.'], + ], + 404 => [ + ['errorCode' => 'InvalidRegionId.NotFound', 'errorMessage' => 'The specified RegionId does not exist in our records.', 'description' => ''], + ['errorCode' => 'InvalidBandwidthPackageId.NotFound', 'errorMessage' => 'The specified bandwidthPackageId does not exist in our records.', 'description' => ''], + ], + ], + 'staticInfo' => ['returnType' => 'asynchronous', 'callback' => 'Vpc::2016-04-28::DescribeCommonBandwidthPackages', 'callbackInterval' => 3, 'maxCallbackTimes' => 10], + 'title' => 'RemoveCommonBandwidthPackageIp', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2023-06-26T06:23:10.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2022-11-29T10:25:34.000Z', 'description' => 'Error codes changed'], + ], + 'ramActions' => [], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B45\\"\\n}","type":"json"}]', + ], + 'RemoveGlobalAccelerationInstanceIp' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'NextHop', + 'AK' => [], + ], + ], + 'systemTags' => ['operationType' => 'delete'], + 'parameters' => [ + [ + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The next hop of the VPN gateway route.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'vco-bp15oes1py4i66rmd****', - ], + 'schema' => ['description' => 'The ID of the region where the shared-bandwidth instance is located.'."\n" + ."\n" + .'To query the region ID, call DescribeRegions.'."\n", 'type' => 'string', 'required' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'RouteType', + 'name' => 'GlobalAccelerationInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => 'The type of the VPN gateway route. Valid values:'."\n" - ."\n" - .'* **pbr**: policy-based route'."\n" - .'* **dbr**: destination-based route'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'pbr', - ], + 'schema' => ['description' => 'The ID of the shared-bandwidth instance.'."\n", 'type' => 'string', 'required' => true, 'example' => 'ga-m5ex47zwya1sejyni****', 'title' => ''], ], [ - 'name' => 'PublishVpc', + 'name' => 'IpInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to advertise the VPN gateway route to the VPC route table. Valid values:'."\n" - ."\n" - .'* **true**'."\n" - .'* **false**'."\n", - 'type' => 'boolean', - 'required' => true, - 'docRequired' => true, - 'example' => 'true', - ], + 'schema' => ['description' => 'The ID of the EIP.'."\n" + ."\n" + .'To query the EIP ID, call DescribeEipAddresses.'."\n", 'type' => 'string', 'required' => true, 'example' => 'eip-bp13e9i2qst4g6jzi****', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => 'The returned data.'."\n", 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '5BE01CD7-5A50-472D-AC14-CA181C5C03BE ', - ], + 'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => '5BE01CD7-5A50-472D-AC14-CA181C5C03BE', 'title' => ''], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'Resource.QuotaFull', - 'errorMessage' => 'The quota of resource is full', - ], - [ - 'errorCode' => 'VpnGateway.Configuring', - 'errorMessage' => 'The specified service is configuring.', - ], - [ - 'errorCode' => 'VpnGateway.FinancialLocked', - 'errorMessage' => 'The specified service is financial locked.', - ], - [ - 'errorCode' => 'VpnRouteEntry.AlreadyExists', - 'errorMessage' => 'The specified route entry is already exist.', - ], - [ - 'errorCode' => 'VpnRouteEntry.Conflict', - 'errorMessage' => 'The specified route entry has conflict.', - ], - [ - 'errorCode' => 'InvalidVpnRouteEntry.NotFound', - 'errorMessage' => 'The specified route entry does not exist.', - ], - [ - 'errorCode' => 'OperationFailed.InvalidStatus', - 'errorMessage' => 'Route entry is not allowed to operate in current status.', - ], - [ - 'errorCode' => 'OperationFailed.RouteConflict', - 'errorMessage' => 'Operation failed because there is already a route in VPC route table to another VPN on the same network block.', - ], - [ - 'errorCode' => 'OperationFailed.InvalidCidrBlock', - 'errorMessage' => 'Operation failed because the specified network block is invalid.', - ], - [ - 'errorCode' => 'QuotaExceeded.VpnRouteEntry', - 'errorMessage' => 'The number of route entries to the VPN gateway in the VPC routing table has reached the quota limit.', - ], - [ - 'errorCode' => 'TaskConflict', - 'errorMessage' => 'The operation is too frequent, please wait a moment and try again.', - ], - [ - 'errorCode' => 'IllegalParam.CidrBlock', - 'errorMessage' => 'The specified CidrBlock is illegal.', - ], - [ - 'errorCode' => 'QuotaExceeded', - 'errorMessage' => 'Route entry quota exceeded in this route table.', - ], - [ - 'errorCode' => 'MissingParameter', - 'errorMessage' => 'Miss mandatory parameter.', - ], - [ - 'errorCode' => 'InvalidCidrBlock.Malformed', - 'errorMessage' => 'Specified CIDR block is not valid.', - ], - [ - 'errorCode' => 'InvalidCIDRBlock.Duplicate', - 'errorMessage' => 'Specified CIDR block is already exists.', - ], - [ - 'errorCode' => 'IncorrectVpcStatus', - 'errorMessage' => 'Current VPC status does not support this operation.', - ], - [ - 'errorCode' => 'IncorrectInstanceStatus', - 'errorMessage' => 'Current instance status does not support this operation.', - ], - [ - 'errorCode' => 'IncorrectRouteEntryStatus', - 'errorMessage' => 'Some route entry status blocked this operation.', - ], - [ - 'errorCode' => 'IncorrectVSwitchStatus', - 'errorMessage' => 'The current virtual switch status does not support this operation.', - ], - [ - 'errorCode' => 'InvalidCidrBlock', - 'errorMessage' => 'Specified CIDR block is not valid.', - ], - [ - 'errorCode' => 'InvalidNextHopType', - 'errorMessage' => 'Specified parameter "NextHopType" is not valid', - ], - [ - 'errorCode' => 'InvalidNextHop.NotFound', - 'errorMessage' => 'Specified next hop does not exist.', - ], - [ - 'errorCode' => 'InvalidVRouter.NotFound', - 'errorMessage' => 'vRouter not exists.', - ], - [ - 'errorCode' => 'InvalidVPC.NotFound', - 'errorMessage' => 'vpc not exists.', - ], - [ - 'errorCode' => 'InvalidNexthopTypeAndList.BothNull', - 'errorMessage' => 'both nexthopType and nextHopList are null.', - ], - [ - 'errorCode' => 'InvalidNexthopTypeAndList.BothNotNull', - 'errorMessage' => 'both nexthopType and nextHopList are not null.', - ], - [ - 'errorCode' => 'InvalidRouterInterface', - 'errorMessage' => 'invalid router interface.', - ], - [ - 'errorCode' => 'InvalidOppositeRouterType', - 'errorMessage' => 'nexthop list cannot only contain router interface whose opposite router interface is on vbr.', - ], - [ - 'errorCode' => 'InvalidNexthopListSize', - 'errorMessage' => 'nexthop size is illegal. Must be between 2 and 4.', - ], - [ - 'errorCode' => 'InvalidEntryRuleQuota.NotFound', - 'errorMessage' => 'Route entry quota rule not exists.', - ], - [ - 'errorCode' => 'Forbidden.CheckEntryRuleQuota', - 'errorMessage' => 'Route entry quota rule check error.', - ], - [ - 'errorCode' => 'InvalidVBRStatus', - 'errorMessage' => 'invalid virtual border router status.', - ], - [ - 'errorCode' => 'InvalidPhysicalConnectionBusinessStatus', - 'errorMessage' => 'invalid physical connection business status.', - ], - [ - 'errorCode' => 'IncorrectHaVipStatus', - 'errorMessage' => 'This operation is denied because satus of the specified HaVip is neither Available nor InUse.', - ], - [ - 'errorCode' => 'CountLimitExceed.HaVipRouteEntry', - 'errorMessage' => 'There can be 5 route entry to HaVip at most in one route table.', - ], - [ - 'errorCode' => 'InvalidRouteEntry.Duplicate', - 'errorMessage' => 'The route entry already exist.', - ], - [ - 'errorCode' => 'INVALID_WEIGHT_PARAM', - 'errorMessage' => 'Specified value of weight invalid', - ], - [ - 'errorCode' => 'FORBIDDEN_USE_VPC_AS_INTERNET_GATEWAY', - 'errorMessage' => 'The Specified CIDR must be in vpc CIDR.', - ], - [ - 'errorCode' => 'INVALID_VPC_ID', - 'errorMessage' => 'The Specified VpcId not match.', - ], - [ - 'errorCode' => 'InvalidRouteEntrySize', - 'errorMessage' => 'The Specified routerEntry size not legal.', - ], - [ - 'errorCode' => 'RouteConflict.AlreadyExist', - 'errorMessage' => 'Route conflict exists in routing table.', - ], - [ - 'errorCode' => 'InvalidRouteEntryName.Malformed', - 'errorMessage' => 'Specified RouteEntry name is not valid.', - ], - [ - 'errorCode' => 'Duplicated.VpcNextHop', - 'errorMessage' => 'Route entry nexthop duplicate.', - ], - [ - 'errorCode' => 'InvalidNexthop.DirectEni', - 'errorMessage' => 'The direct Eni cannot be nexthop.', - ], - [ - 'errorCode' => 'InvalidAttachment.NotFound', - 'errorMessage' => 'The attachment is not found.', - ], - [ - 'errorCode' => 'OperationFailed.ActiveNetworkInterfaceNotFound', - 'errorMessage' => 'No active network interface is found on the attachment.', - ], - [ - 'errorCode' => 'InvalidNetworkInterface.NotFound', - 'errorMessage' => 'The network interface is not found on the attachment.', - ], - [ - 'errorCode' => 'OperationFailed.QueryAttachmentInfo', - 'errorMessage' => 'Failed to query attachment information.', - ], - [ - 'errorCode' => 'IllegalParam.AttachmentId', - 'errorMessage' => 'The attachment is invalid.', - ], - [ - 'errorCode' => 'OperationFailed.NotSupportIPV6', - 'errorMessage' => 'The specified next hop does not support IPv6.', - ], - [ - 'errorCode' => 'IncorrectStatus.Ipv6Address', - 'errorMessage' => 'The IPv6 address of the specified next hop is being assigned or deleted.', - ], - [ - 'errorCode' => 'OperationUnsupported.Ipv6EntryOnPrimaryNetworkInterface', - 'errorMessage' => 'You cannot create IPv6 route entries on a primary network interface.', - ], - [ - 'errorCode' => 'OperationUnsupported.SpecifyIpOnIpv6Entry', - 'errorMessage' => 'You cannot specify the private IP address when you create IPv6 route entries.', - ], - [ - 'errorCode' => 'OperationUnsupported.MutipleIpv6Address', - 'errorMessage' => 'You cannot specify a next hop that has bound multiple IPv6 addresses.', - ], - [ - 'errorCode' => 'OperationDenied.Ipv6EntryOnCustomTable', - 'errorMessage' => 'You cannot create any IPv6 route entry on a custom route table.', - ], - ], - 403 => [ - [ - 'errorCode' => 'Forbbiden.SubUser', - 'errorMessage' => 'User not authorized to operate on the specified resource as your account is created by another user.', - ], - [ - 'errorCode' => 'Forbidden', - 'errorMessage' => 'User not authorized to operate on the specified resource.', - ], + ['errorCode' => 'IpInstanceId.NotBandwidthPackage', 'errorMessage' => 'The specified IpInstanceId does not in bandwidthPackage.', 'description' => ''], + ['errorCode' => 'DependencyViolation.ip', 'errorMessage' => 'The specified BandwidthPackageId has eip in it.', 'description' => ''], + ['errorCode' => 'EIP_BIND_NATGATEWAY', 'errorMessage' => 'The eip have bind natgateway.', 'description' => ''], + ['errorCode' => 'IpInstanceId.StatusNotAvailable', 'errorMessage' => 'The specified Eip Status is not Available, Cannot remove from GlobalAcceleration.', 'description' => ''], + ['errorCode' => 'OperationUnsupported.IpNotInCbwp', 'errorMessage' => 'The specified eip is not in commonbandwidthPackage.', 'description' => ''], ], - [ - [ - 'errorCode' => 'InvalidVpnGatewayInstanceId.NotFound', - 'errorMessage' => 'The specified vpn gateway instance id does not exist.', - ], + 404 => [ + ['errorCode' => 'InvalidRegionId.NotFound', 'errorMessage' => 'The specified RegionId does not exist in our records.', 'description' => ''], + ['errorCode' => 'InvalidBandwidthPackageId.NotFound', 'errorMessage' => 'The specified bandwidthPackageId does not exist in our records.', 'description' => ''], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"5BE01CD7-5A50-472D-AC14-CA181C5C03BE\\\\t\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 5BE01CD7-5A50-472D-AC14-CA181C5C03BE\\t\\n","errorExample":""}]', - 'title' => 'PublishVpnRouteEntry', + 'title' => 'Remove an EIP from a bandwidth-sharing instance', + 'summary' => 'Invoke the RemoveGlobalAccelerationInstanceIp API to remove an elastic IP address (EIP) from a bandwidth-sharing instance.', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DeleteVpnRouteEntry' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'vpc:RemoveGlobalAccelerationInstanceIp', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"5BE01CD7-5A50-472D-AC14-CA181C5C03BE\\"\\n}","type":"json"}]', + ], + 'RemoveIPv6TranslatorAclListEntry' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'readAndWrite', - 'systemTags' => [], + 'systemTags' => ['operationType' => 'delete'], 'parameters' => [ - [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region where the VPN gateway is created. You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou ', - ], - ], [ 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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.'."\n" - ."\n" - .'> 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.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'd7d24a21-f4ba-4454-9173-b3828dae492b ', - ], - ], - [ - 'name' => 'VpnGatewayId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the VPN gateway.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'vpn-bp1a3kqjiiq9legfx****', - ], - ], - [ - 'name' => 'RouteDest', - 'in' => 'query', - 'schema' => [ - 'description' => 'The destination CIDR block of the destination-based route.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => '10.0.0.0/24 ', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'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.'."\n", 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-426655440000', 'title' => ''], ], [ - 'name' => 'NextHop', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The next hop of the destination-based route.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'vco-bp15oes1py4i66rmd****', - ], + 'schema' => ['description' => 'The region of the ACL.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'Weight', + 'name' => 'AclId', 'in' => 'query', - 'schema' => [ - 'description' => 'The weight of the destination-based route. Valid values:'."\n" - ."\n" - .'* **0**: a low priority'."\n" - .'* **100**: a high priority'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'docRequired' => true, - 'example' => '0', - ], + 'schema' => ['description' => 'The ID of the ACL to which the ACL entry belongs.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'ipv6transacl-bp1de2****', 'title' => ''], ], [ - 'name' => 'OverlayMode', + 'name' => 'AclEntryId', 'in' => 'query', - 'schema' => [ - 'description' => 'The tunneling protocol. Set the value to **Ipsec**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'Ipsec', - ], + 'schema' => ['description' => 'The ID of the ACL entry to be deleted.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'ipv6transaclentry-bp105jrs****', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'description' => 'The returned data.'."\n", 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '5BE01CD7-5A50-472D-AC14-CA181C5C03BE ', - ], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B45', 'title' => ''], ], - 'description' => '', + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'Resource.QuotaFull', - 'errorMessage' => 'The quota of resource is full', - ], - [ - 'errorCode' => 'VpnGateway.Configuring', - 'errorMessage' => 'The specified service is configuring.', - ], - [ - 'errorCode' => 'VpnGateway.FinancialLocked', - 'errorMessage' => 'The specified service is financial locked.', - ], - [ - 'errorCode' => 'VpnRouteEntry.AlreadyExists', - 'errorMessage' => 'The specified route entry is already exist.', - ], - [ - 'errorCode' => 'VpnRouteEntry.Conflict', - 'errorMessage' => 'The specified route entry has conflict.', - ], - [ - 'errorCode' => 'VpnRouteEntry.Configuring', - 'errorMessage' => 'The specified route entry is configuring.', - ], - [ - 'errorCode' => 'InvalidRouteEntry.NotFound', - 'errorMessage' => 'The specified route entry does not exist.', - ], - [ - 'errorCode' => 'VpnTask.CONFLICT', - 'errorMessage' => 'Vpn task has conflict.', - ], - [ - 'errorCode' => 'TaskConflict', - 'errorMessage' => 'The operation is too frequent, please wait a moment and try again.', - ], + ['errorCode' => 'InvalidIPv6TranslatorAclId.NotFound', 'errorMessage' => 'The specified ipv6 translator acl instance id does not exist.', 'description' => ''], + ['errorCode' => 'InvalidIPv6TranslatorAclEntryId.NotFound', 'errorMessage' => 'The specified ipv6 translator acl entry id does not exist.', 'description' => ''], + ['errorCode' => 'IPv6TranslatorAcl.DeleteLastEntry', 'errorMessage' => 'The last acl entry can not be deleted when ipv6 translator acl is be used.', 'description' => ''], ], 403 => [ - [ - 'errorCode' => 'Forbbiden.SubUser', - 'errorMessage' => 'User not authorized to operate on the specified resource as your account is created by another user.', - ], - [ - 'errorCode' => 'Forbidden', - 'errorMessage' => 'User not authorized to operate on the specified resource.', - ], - ], - [ - [ - 'errorCode' => 'InvalidVpnGatewayInstanceId.NotFound', - 'errorMessage' => 'The specified vpn gateway instance id does not exist.', - ], + ['errorCode' => 'Forbbiden.SubUser', 'errorMessage' => 'User not authorized to operate on the specified resource as your account is created by another user.', 'description' => ''], + ['errorCode' => 'Forbidden', 'errorMessage' => 'User not authorized to operate on the specified resource.', 'description' => 'You do not have the permissions to manage the specified resource. Apply for the permissions and try again.'], ], ], - 'staticInfo' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"5BE01CD7-5A50-472D-AC14-CA181C5C03BE\\\\t\\"\\n}","errorExample":""},{"type":"xml","example":"\\r\\n 5BE01CD7-5A50-472D-AC14-CA181C5C03BE\\r\\n","errorExample":""}]', - 'title' => 'DeleteVpnRouteEntry', - 'summary' => 'Deletes a destination-based route from a VPN gateway.', - 'description' => '* **DeleteVpnRouteEntry** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call [DescribeVpnGateway](~~73720~~) to query the status of the task.'."\n" - ."\n" - .' * If a VPN gateway is in the **updating** state, the destination-based route is being deleted.'."\n" - .' * If the VPN gateway is in the **active** state, the destination-based route is deleted.'."\n" - ."\n" - .'* You cannot repeatedly call **DeleteVpnRouteEntry** to delete a destination-based route from a VPN gateway within the specified period of time.'."\n", + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B45\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 54B48E3D-DF70-471B-AA93-08E683A1B45\\n","errorExample":""}]', + 'title' => 'RemoveIPv6TranslatorAclListEntry', + 'summary' => 'Deletes an IP entry from an ACL.', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'ModifyVpnRouteEntryWeight' => [ - 'methods' => [ - 'post', - 'get', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'vpc:RemoveIPv6TranslatorAclListEntry', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'Ipv6Translator', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:ipv6trans/{#Ipv6TranslatorId}'], + ], + ], + ], ], - 'schemes' => [ - 'http', - 'https', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'RemoveIPv6TranslatorAclListEntry'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], ], + ], + 'RemoveSourcesFromTrafficMirrorSession' => [ + 'summary' => 'Deletes a traffic mirror source from a traffic mirror session.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'readAndWrite', - 'systemTags' => [], + 'deprecated' => false, + 'systemTags' => ['operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'paid'], 'parameters' => [ - [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region where the VPN gateway is created. You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], - ], [ 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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.'."\n" - ."\n" - .'> 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.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'd7d24a21-f4ba-4454-9173-b3828dae492b', - ], - ], - [ - 'name' => 'VpnGatewayId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the VPN gateway.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'vpn-bp1a3kqjiiq9legfx****', - ], - ], - [ - 'name' => 'RouteDest', - 'in' => 'query', - 'schema' => [ - 'description' => 'The destination CIDR block of the destination-based route.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => '10.0.0.0/24', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'You can use the client to generate the value, but you must make sure that the value is unique among different requests. The token can contain only ASCII characters and cannot exceed 64 characters in length.'."\n" + ."\n" + .'> If you do not set this parameter, the system uses **RequestId** as **ClientToken**. **RequestId** may be different for each API request.'."\n", 'type' => 'string', 'required' => false, 'example' => '0c593ea1-3bea-11e9-b96b-88e9fe63****', 'title' => ''], ], [ - 'name' => 'NextHop', + 'name' => 'DryRun', 'in' => 'query', - 'schema' => [ - 'description' => 'The next hop of the destination-based route.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'vco-bp15oes1py4i66rmd**** ', - ], + 'schema' => ['description' => 'Specifies whether to check the request without performing the operation. Valid values:'."\n" + ."\n" + .'* **true**: checks the request without performing the operation. The system checks the required parameters, request format, and limits. If the request fails the check, an error message is returned. If the request passes the check, the `DryRunOperation` error code is returned.'."\n" + .'* **false** (default): sends the request. After the request passes the check, the operation is performed.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], ], [ - 'name' => 'Weight', + 'name' => 'TrafficMirrorSessionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The original weight of the destination-based route. Valid values:'."\n" - ."\n" - .'* **0**: a low priority'."\n" - .'* **100**: a high priority'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'docRequired' => true, - 'example' => '0', - ], + 'schema' => ['description' => 'The ID of the traffic mirror session from which you want to delete a traffic mirror source.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'tms-j6cla50buc44ap8tu****', 'title' => ''], ], [ - 'name' => 'NewWeight', + 'name' => 'TrafficMirrorSourceIds', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => 'The new weight of the destination-based route. Valid values:'."\n" - ."\n" - .'* **0**: a low priority'."\n" - .'* **100**: a high priority'."\n", - 'type' => 'integer', - 'format' => 'int32', + 'description' => 'The ID of the traffic mirror source to be deleted. Maximum value of N: 10.', + 'type' => 'array', + 'items' => ['description' => 'The ID of the traffic mirror source to be deleted. Maximum value of **N**: **10**.'."\n", 'type' => 'string', 'required' => false, 'example' => 'eni-j6c8znm5l1yt4sox****', 'title' => ''], 'required' => true, - 'docRequired' => true, - 'example' => '100', + 'example' => 'eni-j6c8znm5l1yt4sox****', + 'maxLength' => 128, + 'maxItems' => 30, + 'title' => '', ], ], [ - 'name' => 'OverlayMode', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The tunneling protocol. Set the value to **Ipsec**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'Ipsec', - ], + 'schema' => ['description' => 'The ID of the region to which the traffic mirror session belongs. You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list. For more information about regions that support traffic mirror, see [Overview of traffic mirror](~~207513~~).', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hongkong', 'title' => ''], ], ], 'responses' => [ @@ -75069,363 +56710,169 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '5BE01CD7-5A50-472D-AC14-CA181C5C03BE ', - ], + 'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => 'A33B2C6A-89D1-4DEA-A807-A6E8CC552484', 'title' => ''], ], 'description' => '', + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'Resource.QuotaFull', - 'errorMessage' => 'The quota of resource is full', - ], - [ - 'errorCode' => 'VpnGateway.Configuring', - 'errorMessage' => 'The specified service is configuring.', - ], - [ - 'errorCode' => 'VpnGateway.FinancialLocked', - 'errorMessage' => 'The specified service is financial locked.', - ], - [ - 'errorCode' => 'VpnRouteEntry.AlreadyExists', - 'errorMessage' => 'The specified route entry is already exist.', - ], - [ - 'errorCode' => 'VpnRouteEntry.Conflict', - 'errorMessage' => 'The specified route entry has conflict.', - ], - [ - 'errorCode' => 'VpnRouteEntry.BackupRoute', - 'errorMessage' => 'Validate backup route entry failed.', - ], - ], - 403 => [ - [ - 'errorCode' => 'Forbbiden.SubUser', - 'errorMessage' => 'User not authorized to operate on the specified resource as your account is created by another user.', - ], - [ - 'errorCode' => 'Forbidden', - 'errorMessage' => 'User not authorized to operate on the specified resource.', - ], - ], - [ - [ - 'errorCode' => 'InvalidVpnGatewayInstanceId.NotFound', - 'errorMessage' => 'The specified vpn gateway instance id does not exist.', - ], - ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"5BE01CD7-5A50-472D-AC14-CA181C5C03BE\\\\t\\"\\n}","errorExample":""},{"type":"xml","example":"\\r\\n 5BE01CD7-5A50-472D-AC14-CA181C5C03BE\\r\\n","errorExample":""}]', - 'title' => 'ModifyVpnRouteEntryWeight', - 'summary' => 'Modifies the weight of a destination-based route.', - 'description' => '* In scenarios where a VPN gateway has an active and a standby destination-based route, if you need to modify the weight of the active destination-based route, you must first delete the standby destination-based route. After you modify the active destination-based route, configure a standby destination-based route. If you need to modify the weight of the standby destination-based route, you also need to delete the active destination-based route first. After you modify the standby destination-based route, configure an active destination-based route. For more information about how to delete a destination-based route, see [DeleteVpnRouteEntry](~~2526961~~).'."\n" - ."\n" - .'* **ModifyVpnRouteEntryWeight** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call [DescribeVpnGateway](~~73720~~) to query the status of the task.'."\n" - ."\n" - .' * If the VPN gateway is in the **updating** state, the weight of the destination-based route is being modified.'."\n" - .' * If the VPN gateway is in the **active** state, the weight of the destination-based route is modified.'."\n" - ."\n" - .'* You cannot repeatedly call the **ModifyVpnRouteEntryWeight** operation to modify the weight of destination-based route for the same VPN gateway within the specified period of time.'."\n", + ['errorCode' => 'IncorrectBusinessStatus.TrafficMirror', 'errorMessage' => 'The business status of traffic mirror is incorrect.', 'description' => 'Traffic mirroring is in an invalid state.'], + ['errorCode' => 'OptInRequired.TrafficMirror', 'errorMessage' => 'You need to subscribe to the traffic mirror service first.', 'description' => 'Traffic mirroring is disabled.'], + ['errorCode' => 'DuplicatedParam.SourceInstanceIds', 'errorMessage' => 'The parameter of source instance IDs contains duplicate values.', 'description' => 'Duplicate values are set for TrafficMirrorSourceIds.N.'], + ['errorCode' => 'ResourceNotFound.TrafficMirrorSession', 'errorMessage' => 'The specified resource of traffic mirror session is not found.', 'description' => ''], + ['errorCode' => 'IncorrectStatus.TrafficMirrorSession', 'errorMessage' => 'The status of traffic mirror session is incorrect.', 'description' => ''], + ['errorCode' => 'ResourceNotAssociated.TrafficMirrorSource', 'errorMessage' => 'The specified traffic mirror source and session are not associated.', 'description' => ''], + ['errorCode' => 'ResourceNotFound.NetworkInterface', 'errorMessage' => 'The specified resource of network interface is not found.', 'description' => 'The specified ENI does not exist.'], + ['errorCode' => 'ResourceNotFound.EcsInstance', 'errorMessage' => 'The specified resource of ECS instance is not found.', 'description' => ''], + ], + ], + 'staticInfo' => ['returnType' => 'asynchronous', 'callback' => 'Vpc::2016-04-28::ListTrafficMirrorSessions', 'callbackInterval' => 3000, 'maxCallbackTimes' => 10], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"A33B2C6A-89D1-4DEA-A807-A6E8CC552484\\"\\n}","type":"json"}]', + 'title' => 'RemoveSourcesFromTrafficMirrorSession', + 'description' => '- **RemoveSourcesFromTrafficMirrorSession**接口属于异步接口,即系统返回一个请求ID,但该镜像源尚未删除成功,系统后台的删除任务仍在进行。您可以调用[ListTrafficMirrorSessions](~~261367~~)查询镜像会话的状态:'."\n" + .' - 当镜像会话处于**Modifying**状态时,表示镜像源正在删除中。'."\n" + .' - 当镜像会话处于**Created**状态时,表示镜像源删除成功。'."\n" + .'- **RemoveSourcesFromTrafficMirrorSession**接口不支持并发删除同一个镜像会话中的镜像源。', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeVpnRouteEntries' => [ - 'summary' => 'Queries destination-based and BGP route entries of a VPN gateway.', - 'methods' => [ - 'post', - 'get', + 'changeSet' => [ + ['createdAt' => '2023-03-16T08:04:23.000Z', 'description' => 'Request parameters changed'], + ], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:RemoveSourcesFromTrafficMirrorSession', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'TrafficMirrorSession', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:trafficmirrorsession/{#TrafficMirrorSessionId}'], + ], + ], + ], ], - 'schemes' => [ - 'http', - 'https', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '600', 'countWindow' => 60, 'regionId' => '*', 'api' => 'RemoveSourcesFromTrafficMirrorSession'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], ], + ], + 'ReplaceVpcDhcpOptionsSet' => [ + 'summary' => 'Replaces the DHCP options set that is associated with a virtual private cloud (VPC).', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', - 'systemTags' => [ - 'operationType' => 'get', - ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region where the VPN gateway is created.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The region to which the DHCP options set belongs. You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'VpnGatewayId', + 'name' => 'DhcpOptionsSetId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the VPN gateway.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'vpn-bp1cmw7jh1nfe43m9****', - ], + 'schema' => ['description' => 'The ID of the new DHCP options set.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'dopt-o6w0df4epg9zo8isy****', 'title' => ''], ], [ - 'name' => 'PageNumber', + 'name' => 'VpcId', 'in' => 'query', - 'schema' => [ - 'description' => 'The number of the page to return. Default value: **1**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', - 'default' => '1', - ], + 'schema' => ['description' => 'The ID of the associated VPC.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'vpc-dsferghthth****', 'title' => ''], ], [ - 'name' => 'PageSize', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The number of entries to return on each page. Maximum value: **50**. Default value: **10**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '10', - 'default' => '10', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'You can use the client to generate the value, but you must make sure that it is unique among different requests. The client token can contain only ASCII characters.'."\n" + ."\n" + .'> If you do not set this parameter, the system uses **RequestId** as **ClientToken**. **RequestId** may be different for each API request.'."\n", 'type' => 'string', 'required' => false, 'example' => '0c593ea1-3bea-11e9-b96b-88e9fe637760', 'title' => ''], ], [ - 'name' => 'RouteEntryType', + 'name' => 'DryRun', 'in' => 'query', - 'schema' => [ - 'description' => 'The type of the route entry. Valid values:'."\n" - ."\n" - .'* **Custom**: custom'."\n" - .'* **System**: system'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'System', - ], + 'schema' => ['description' => 'Specifies whether to check the request without performing the operation. Valid values:'."\n" + ."\n" + .'* **true**: checks the request without performing the operation. The system checks whether your AccessKey pair is valid, whether the Resource Access Management (RAM) user is authorized, and whether the required parameters are set. If the request fails to pass the check, the corresponding error message is returned. If the request passes the check, the DryRunOperation error code is returned.'."\n" + .'* **false** (default): sends the request. If the request passes the check, a 2XX HTTP status code is returned and the operation is performed.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => 'The response parameters.'."\n", 'type' => 'object', 'properties' => [ - 'PageSize' => [ - 'description' => 'The number of entries returned per page.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => 'BF3995A6-FA4F-4C74-B90F-89ECF4BFF4D5', - ], - 'PageNumber' => [ - 'description' => 'The page number of the returned page.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'TotalCount' => [ - 'description' => 'The total number of entries returned.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'VpnRouteEntries' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'VpnRouteEntry' => [ - 'description' => 'The route entry list.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The route details.'."\n", - 'type' => 'object', - 'properties' => [ - 'RouteEntryType' => [ - 'description' => 'The type of the route entry. Valid values:'."\n" - ."\n" - .'* **Custom**: custom'."\n" - .'* **System**: system'."\n", - 'type' => 'string', - 'example' => 'System', - ], - 'NextHop' => [ - 'description' => 'The next hop of the route entry.'."\n", - 'type' => 'string', - 'example' => 'vco-bp1tui07ob10fmuro****', - ], - 'Weight' => [ - 'description' => 'The weight of the route entry. Valid values: **0** and **100**.'."\n" - ."\n" - .'* **0**: a low priority'."\n" - .'* **100**: a high priority'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '100', - ], - 'RouteDest' => [ - 'description' => 'The destination CIDR block of the route entry.'."\n", - 'type' => 'string', - 'example' => '10.0.0.0/24', - ], - 'AsPath' => [ - 'description' => 'The AS path of the route entry.'."\n", - 'type' => 'string', - 'example' => '65501,65001,60011', - ], - 'State' => [ - 'description' => 'The status of the route entry. Valid values:'."\n" - ."\n" - .'* **published**: advertised'."\n" - .'* **normal**: not advertised'."\n", - 'type' => 'string', - 'example' => 'normal', - ], - 'CreateTime' => [ - 'description' => 'The timestamp when the route entry was created.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1563874074000', - ], - 'Community' => [ - 'description' => 'The community attributes of the route entry.'."\n", - 'type' => 'string', - 'example' => '65001:1000,65501:2000', - ], - 'Source' => [ - 'description' => 'The source of the BGP route. Valid values:'."\n" - ."\n" - .'* **CLOUD**: advertised from a cloud service associated with the VPN gateway.'."\n" - .'* **VPN_BGP**: indicates that the current route is learned by using BGP of the VPN gateway. For example, the BGP is used to learn the route of the on-premises data center.'."\n", - 'type' => 'string', - 'example' => '192.168.10.0/24', - ], - 'VpnInstanceId' => [ - 'description' => 'The ID of the VPN gateway.'."\n", - 'type' => 'string', - 'example' => 'vpn-bp1cmw7jh1nfe43m9****', - ], - 'NextHopTunnelId' => [ - 'description' => 'The ID of the tunnel associated with the next hop. '."\n" - ."\n\n" - .'> This parameter is returned only if the VPN gateway supports the dual-tunnel mode.', - 'type' => 'string', - 'example' => 'tun-36cfgpwjn58axj****', - ], - ], - ], - ], - ], - ], - 'VpnRouteCounts' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'VpnRouteCount' => [ - 'description' => 'The information about route entries of the VPN gateway in dual-tunnel mode.'."\n" - ."\n" - .'> This parameter is returned only if the VPN gateway supports IPsec-VPN connections in dual-tunnel mode.', - 'type' => 'array', - 'items' => [ - 'description' => 'The information about the routes.'."\n", - 'type' => 'object', - 'properties' => [ - 'RouteEntryType' => [ - 'description' => 'The route type. Valid values:'."\n" - ."\n" - .'* **custom** (default): destination-based route.'."\n" - .'* **bgp** : BGP route entry.'."\n", - 'type' => 'string', - 'example' => 'bgp', - ], - 'RouteCount' => [ - 'description' => 'The number of route entries.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '3', - ], - 'Source' => [ - 'description' => 'The source of the BGP route. Valid values:'."\n" - ."\n" - .'* **CLOUD**: advertised from a cloud service associated with the VPN gateway.'."\n" - .'* **VPN_BGP**: indicates that the current route is learned by using BGP of the VPN gateway. For example, the BGP is used to learn the route of the on-premises data center.'."\n", - 'type' => 'string', - 'example' => 'VPN_BGP', - ], - ], - ], - ], - ], - ], + 'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => '0ED8D006-F706-4D23-88ED-E11ED28DCAC0', 'title' => ''], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'IllegalParam.RouteEntryType', - 'errorMessage' => 'The specified "RouteEntryType" is invalid.', - ], - [ - 'errorCode' => 'InvalidVpnInstanceId.NotFound', - 'errorMessage' => 'The specified VPN was not found.', - ], - [ - 'errorCode' => 'InvalidVpnGatewayInstanceId.NotFound', - 'errorMessage' => 'The specified vpn gateway instance id does not exist.', - ], - ], - 403 => [ - [ - 'errorCode' => 'Forbbiden.SubUser', - 'errorMessage' => 'User not authorized to operate on the specified resource as your account is created by another user.', - ], - [ - 'errorCode' => 'Forbidden', - 'errorMessage' => 'User not authorized to operate on the specified resource.', - ], + ['errorCode' => 'OperationFailed.AttachmentNotExist', 'errorMessage' => 'The current VPC is not attahced to a DHCP options set.', 'description' => 'The VPC is not associated with a DHCP options set.'], + ['errorCode' => 'IncorrectStatus.VpcDhcpOptionsSet', 'errorMessage' => 'The dhcpOptionsSet status of VPC does not support this operation.', 'description' => 'The DHCP options set that is associated with the VPC is being configured. As a result, the DHCP options set does not support this operation.'], + ['errorCode' => 'AttrMismatching.VpcDhcpOptionsSetId', 'errorMessage' => 'The dhcpOptionsSetId does not match the VPC.', 'description' => 'The ID of the DHCP options set does not match the VPC. Check whether the specified DHCP options set is associated with the VPC.'], + ['errorCode' => 'TaskConflict', 'errorMessage' => 'The operation is too frequent. Please wait a moment and try again.', 'description' => 'The system is unavailable. Try again later.'], + ['errorCode' => 'InvalidVpcId.NotFound', 'errorMessage' => 'Specified value of VpcId is not found in our record.', 'description' => ''], + ['errorCode' => 'InvalidDhcpOptionsSetId.NotFound', 'errorMessage' => 'The specified dhcpOptionsSetId does not exist.', 'description' => 'The DHCP options set does not exist. Check whether the parameter is set to a valid value.'], + ['errorCode' => 'IncorrectStatus.DhcpOptionsSet', 'errorMessage' => 'The DhcpOptionsSet status does not support this operation.', 'description' => 'The DHCP options set that is associated with the VPC is being configured. As a result, the DHCP options set does not support this operation. You can perform the operation after the status of the DHCP options set is stable.'], ], ], - 'eventInfo' => [ - 'enable' => false, - 'eventNames' => [], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"PageSize\\": 10,\\n \\"RequestId\\": \\"BF3995A6-FA4F-4C74-B90F-89ECF4BFF4D5\\",\\n \\"PageNumber\\": 1,\\n \\"TotalCount\\": 1,\\n \\"VpnRouteEntries\\": {\\n \\"VpnRouteEntry\\": [\\n {\\n \\"RouteEntryType\\": \\"custom\\",\\n \\"NextHop\\": \\"vco-bp1tui07ob10fmuro****\\",\\n \\"Weight\\": 100,\\n \\"RouteDest\\": \\"10.0.0.0/24\\",\\n \\"AsPath\\": \\"65501,65001,60011\\",\\n \\"State\\": \\"normal\\",\\n \\"CreateTime\\": 1563874074000,\\n \\"Community\\": \\"65001:1000,65501:2000\\",\\n \\"Source\\": \\"CLOUD\\",\\n \\"VpnInstanceId\\": \\"vpn-bp1cmw7jh1nfe43m9****\\",\\n \\"NextHopTunnelId\\": \\"tun-36cfgpwjn58axj****\\"\\n }\\n ]\\n },\\n \\"VpnRouteCounts\\": {\\n \\"VpnRouteCount\\": [\\n {\\n \\"RouteEntryType\\": \\"bgp\\",\\n \\"RouteCount\\": 3,\\n \\"Source\\": \\"VPN_BGP\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 10\\n BF3995A6-FA4F-4C74-B90F-89ECF4BFF4D5\\n 1\\n 1\\n \\n custom\\n vco-bp1tui07ob10fmuro****\\n 100\\n 10.0.0.0/24\\n normal\\n 1563874074000\\n vpn-bp1cmw7jh1nfe43m9****\\n tun-36cfgpwjn58axj****\\n \\n","errorExample":""}]', - 'title' => 'DescribeVpnRouteEntries', + 'staticInfo' => ['returnType' => 'asynchronous', 'callback' => 'Vpc::2016-04-28::GetDhcpOptionsSet', 'callbackInterval' => 3000, 'maxCallbackTimes' => 10], + 'title' => 'ReplaceVpcDhcpOptionsSet', + 'description' => '* The **ReplaceVpcDhcpOptionsSet** operation is asynchronous. After you send the request, the system returns a request ID. However, the operation is still being performed in the system background. You can call the [DescribeVpcAttribute](~~94565~~) operation to query the status of a DHCP options set:'."\n" + ."\n" + .' * If the DHCP options set is in the **Pending** state, the DHCP options set is being replaced.'."\n" + .' * If the DHCP options set is in the **InUse** state, the DHCP options set is replaced.'."\n" + ."\n" + .'* You cannot repeatedly call the **ReplaceVpcDhcpOptionsSet** operation to replace the DHCP options set associated with a VPC within the specified period of time.', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'CreateVpnPbrRouteEntry' => [ - 'summary' => 'Creates a policy-based route for a VPN gateway.', - 'methods' => [ - 'post', - 'get', + 'changeSet' => [ + ['createdAt' => '2023-07-12T15:28:50.000Z', 'description' => 'Error codes changed'], + ], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:ReplaceVpcDhcpOptionsSet', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'DhcpOptionsSet', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:dhcpoptionsset/{#DhcpOptionsSetId}'], + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VPC', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vpc/{#VpcId}'], + ], + ], + ], ], - 'schemes' => [ - 'http', - 'https', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"0ED8D006-F706-4D23-88ED-E11ED28DCAC0\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 0ED8D006-F706-4D23-88ED-E11ED28DCAC0\\n","errorExample":""}]', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ReplaceVpcDhcpOptionsSet'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], ], + ], + 'RetryVpcPrefixListAssociation' => [ + 'summary' => 'Re-applies a prefix list.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -75433,2351 +56880,1235 @@ ], 'operationType' => 'readAndWrite', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'create', - 'riskType' => 'high', - 'chargeType' => 'free', - ], + 'systemTags' => ['operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ - 'name' => 'RegionId', + 'name' => 'PrefixListId', 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to advertise the policy-based route to a virtual private cloud (VPC) route table. Valid values:'."\n" - ."\n" - .'* **true**: The route is advertised to the VPC system route table, but not to a VPC custom route table.'."\n" - ."\n" - .' You can manually add the route the a VPC custom route table. For more information, see [CreateRouteEntry](~~448722~~).'."\n" - ."\n" - .'* **false**: Do not advertise the route to the route table.'."\n" - ."\n" - .' You must manually add a policy-based route that points to the VPN gateway in the VPC custom and system route table. Otherwise, the VPC cannot access resources in the CIDR block through an IPsec-VPN connection.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The ID of the prefix list that you want to re-apply.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'pl-0b7hwu67****', 'title' => ''], ], [ - 'name' => 'ClientToken', + 'name' => 'ResourceType', 'in' => 'query', - 'schema' => [ - 'description' => 'The description of the policy-based route.'."\n" - ."\n" - .'The description must be 1 to 100 characters in length, and cannot start with http:// or https://.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'd7d24a21-f4ba-4454-9173-b3****', - ], + 'schema' => ['description' => 'The type of the resource with which the prefix list is associated. Valid values:'."\n" + ."\n" + .'* **vpcRouteTable**: VPC route table'."\n" + .'* **trRouteTable**: route table of a transit router'."\n", 'type' => 'string', 'required' => true, 'example' => 'vpcRouteTable', 'title' => ''], ], [ - 'name' => 'VpnGatewayId', + 'name' => 'ResourceId', 'in' => 'query', - 'schema' => [ - 'description' => 'The tunneling protocol. Set the value to **Ipsec**.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'vpn-bp1a3kqjiiq9legfx****', - ], + 'schema' => ['description' => 'The ID of the associated resource.'."\n", 'type' => 'string', 'required' => true, 'example' => 'vtb-bp1drpcfz9srr393h****', 'title' => ''], ], [ - 'name' => 'RouteSource', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The priority of the policy-based route. Valid values: **1** to **100**. Default value: **10**.'."\n" - ."\n" - .'A smaller value indicates a higher priority.', - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => '192.168.1.0/24', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'You can use the client to generate the value, but you must make sure that it is unique among different requests. The token can contain only ASCII characters.'."\n" + ."\n" + .'> If you do not set this parameter, the system automatically uses **RequestId** as **ClientToken**. **RequestId** may be different for each API request.'."\n", 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-426655440000', 'title' => ''], ], [ - 'name' => 'RouteDest', + 'name' => 'DryRun', 'in' => 'query', - 'schema' => [ - 'description' => 'The response parameters.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => '10.0.0.0/24', - ], + 'schema' => ['description' => 'Specifies whether to only precheck the request. Valid values:'."\n" + ."\n" + .'* **true**: prechecks the request without associating the prefix list. The system prechecks the required parameters, request syntax, and limits. If the request fails the precheck, an error message is returned. If the request passes the precheck, the `DryRunOperation` error code is returned.'."\n" + .'* **false**: sends the request. If the request passes the precheck, a 2xx HTTP status code is returned and the prefix list is associated. This is the default value.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], ], [ - 'name' => 'NextHop', + 'name' => 'RegionId', 'in' => 'query', + 'schema' => ['description' => 'The region ID of the prefix list that you want to re-apply.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => 'The next hop of the policy-based route.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'vco-bp15oes1py4i66rmd****', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => '4EC47282-1B74-4534-BD0E-403F3EE64CAF', 'title' => ''], + ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'UnsupportedRegion', 'errorMessage' => 'The feature of prefixList entry is not supported in this region.', 'description' => ''], + ['errorCode' => 'OperationDenied.SystemPrefixList', 'errorMessage' => 'The operation is not allowed because of SystemPrefixList.', 'description' => 'You cannot manage the system prefix list.'], + ['errorCode' => 'OperationFailed.OperateShareResource', 'errorMessage' => 'This is not allowed to operate shared prefixList.', 'description' => ''], + ['errorCode' => 'IncorrectStatus.PrefixList', 'errorMessage' => 'The status of prefixList is incorrect.', 'description' => 'The prefix list is in an unstable state.'], + ['errorCode' => 'OperationFailed.NotExistAssociateRelation', 'errorMessage' => 'The operation is failed because of association not exist.', 'description' => ''], + ['errorCode' => 'ResourceNotFound.PrefixList', 'errorMessage' => 'The specified resource of prefixList is not found.', 'description' => 'The prefix list does not exist.'], + ], + ], + 'staticInfo' => ['returnType' => 'asynchronous', 'callback' => 'Vpc::2016-04-28::GetVpcPrefixListAssociations', 'callbackInterval' => 3000, 'maxCallbackTimes' => 10], + 'title' => 'RetryVpcPrefixListAssociation', + 'description' => '* If you modify the information about a prefix list but the modification is not automatically applied to the route table that is associated with the prefix list, you can call this operation to apply the latest prefix list to the associated route table.'."\n" + ."\n" + .'* The **RetryVpcPrefixListAssociation** operation is asynchronous. After you send the request, the system returns a request ID. However, the operation is still being performed in the background. You can call the [GetVpcPrefixListAssociations](~~445478~~) to check whether the prefix list is re-applied.'."\n" + ."\n" + .' * If the prefix list is in the **Modifying** state, the prefix list is being re-applied.'."\n" + .' * If the prefix list is in the **ModifyFailed** state, the prefix list fails to be re-applied.'."\n" + .' * If the prefix list is in the **Created** state, the prefix list is re-applied.'."\n" + ."\n" + .'* After you call the **RetryVpcPrefixListAssociation** operation to re-apply a prefix list, you cannot call the operation again until the current task is complete.', + 'changeSet' => [ + ['createdAt' => '2023-09-21T07:57:21.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2022-07-18T12:44:59.000Z', 'description' => 'OpenAPI offline'], + ], + 'ramActions' => [ [ - 'name' => 'Weight', - 'in' => 'query', - 'schema' => [ - 'description' => 'The weight of the policy-based route. Valid values:'."\n" - ."\n" - .'* **100**: The IPsec-VPN connection associated with the policy-based route serves as an active connection.'."\n" - .'* **0**: The IPsec-VPN connection associated with the policy-based route serves as a standby connection.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'docRequired' => true, - 'example' => '0', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:RetryVpcPrefixListAssociation', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'PrefixList', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:prefixlist/{#PrefixListId}'], + ], ], ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"4EC47282-1B74-4534-BD0E-403F3EE64CAF\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 4EC47282-1B74-4534-BD0E-403F3EE64CAF\\n","errorExample":""}]', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '600', 'countWindow' => 60, 'regionId' => '*', 'api' => 'RetryVpcPrefixListAssociation'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], + ], + ], + 'RevokeInstanceFromCen' => [ + 'summary' => 'Revokes the permissions granted to a Cloud Enterprise Network (CEN) instance on a network instance.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'readAndWrite', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free'], + 'parameters' => [ [ - 'name' => 'PublishVpc', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The destination CIDR block of the policy-based route.'."\n", - 'type' => 'boolean', - 'required' => true, - 'docRequired' => true, - 'example' => 'true', - ], + 'schema' => ['description' => 'The ID of the region where the network instance is deployed.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'Description', + 'name' => 'InstanceId', 'in' => 'query', - 'schema' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'desctest', - ], + 'schema' => ['description' => 'The ID of the network instance.'."\n", 'type' => 'string', 'required' => true, 'example' => 'vpc-uf6o8d1dj8sjwxi6o****', 'title' => ''], ], [ - 'name' => 'OverlayMode', + 'name' => 'InstanceType', 'in' => 'query', - 'schema' => [ - 'description' => 'The description of the policy-based route.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'Ipsec', - ], + 'schema' => ['description' => 'The type of the network instance. Valid values:'."\n" + ."\n" + .'* **VPC**'."\n" + .'* **VBR**'."\n" + .'* **CCN**'."\n", 'type' => 'string', 'required' => true, 'example' => 'VPC', 'title' => ''], ], [ - 'name' => 'Priority', + 'name' => 'CenId', 'in' => 'query', - 'schema' => [ - 'description' => 'The status of the policy-based route. Valid values:'."\n" - ."\n" - .'* **published**: advertised to the VPC route table.'."\n" - .'* **normal**: not advertised to the VPC route table.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '10', - ], + 'schema' => ['description' => 'The ID of the CEN instance to which the network instance is attached.'."\n", 'type' => 'string', 'required' => true, 'example' => 'cen-7qthudw0ll6jmc****', 'title' => ''], ], [ - 'name' => 'DryRun', + 'name' => 'CenOwnerId', 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to only precheck the request. Valid values:'."\n" - ."\n" - .'* **true**: prechecks the request without performing the operation. The system prechecks the required parameters, request syntax, and limits. If the request fails to pass the precheck, an error message is returned. If the request passes the precheck, the `DryRunOperation` error code is returned.'."\n" - .'* **false** (default): sends the request. After the request passes the precheck, a 2xx HTTP status code is returned and the operation is performed.', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['description' => 'The user ID (UID) of the Alibaba Cloud account to which the CEN instance belongs.', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '123456789', 'title' => ''], + ], + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'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.'."\n" + ."\n" + .'> 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.'."\n", 'type' => 'string', 'required' => false, 'example' => '0c593ea1-3bea-11e9-b96b-88e9fe637760', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => 'The time when the policy-based route was created.'."\n" - ."\n" - .'This value is a UNIX timestamp representing the number of milliseconds that have elapsed since January 1, 1970, 00:00:00 UTC.'."\n", 'type' => 'object', 'properties' => [ - 'NextHop' => [ - 'description' => 'The tunneling protocol. The value is **Ipsec**.'."\n", - 'type' => 'string', - 'example' => 'vco-bp15oes1py4i66rmd****', - ], - 'Weight' => [ - 'description' => 'The source CIDR block of the policy-based route.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '0', - ], - 'RouteDest' => [ - 'description' => 'The VPN gateway ID.'."\n", - 'type' => 'string', - 'example' => '10.0.0.0/24', - ], - 'RequestId' => [ - 'description' => 'The priority of the policy-based route.'."\n", - 'type' => 'string', - 'example' => '5BE01CD7-5A50-472D-AC14-CA181C5C03BE', - ], - 'Description' => [ - 'description' => 'The description of the route.', - 'type' => 'string', - 'example' => 'desctest', - ], - 'State' => [ - 'description' => 'The status of the policy-based route.'."\n" - ."\n" - .'* **published**: advertised to the VPC route table.'."\n" - .'* **normal**: not advertised to the VPC route table.', - 'type' => 'string', - 'example' => 'normal', - ], - 'CreateTime' => [ - 'description' => 'The timestamp generated when the policy-based route was created. Unit: milliseconds.'."\n" - ."\n" - .'This value is a UNIX timestamp representing the number of milliseconds that have elapsed since the epoch time January 1, 1970, 00:00:00 UTC.', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1492747187000', - ], - 'OverlayMode' => [ - 'description' => 'The tunneling protocol. The value is set to **Ipsec**, which indicates the IPsec tunneling protocol.'."\n", - 'type' => 'string', - 'example' => 'Ipsec', - ], - 'RouteSource' => [ - 'description' => 'The source CIDR block of the policy-based route.'."\n", - 'type' => 'string', - 'example' => '192.168.1.0/24', - ], - 'VpnInstanceId' => [ - 'description' => 'The ID of the VPN gateway.'."\n", - 'type' => 'string', - 'example' => 'vpn-bp1cmw7jh1nfe43m9****', - ], - 'Priority' => [ - 'description' => 'The priority of the policy-based route.', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E', 'title' => ''], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'Resource.QuotaFull', - 'errorMessage' => 'The quota of resource is full', - ], - [ - 'errorCode' => 'VpnGateway.FinancialLocked', - 'errorMessage' => 'The specified service is financial locked.', - ], - [ - 'errorCode' => 'VpnRouteEntry.AlreadyExists', - 'errorMessage' => 'The specified route entry is already exist.', - ], - [ - 'errorCode' => 'VpnRouteEntry.Conflict', - 'errorMessage' => 'The specified route entry has conflict.', - ], - [ - 'errorCode' => 'VpnRouteEntry.ConflictSSL', - 'errorMessage' => 'The specified route entry has conflict with SSL client.', - ], - [ - 'errorCode' => 'VpnRouteEntry.BackupRoute', - 'errorMessage' => 'Validate backup route entry failed.', - ], - [ - 'errorCode' => 'VpnRouteEntry.InvalidWeight', - 'errorMessage' => 'Invalid route entry weight value.', - ], - [ - 'errorCode' => 'InvalidNextHop.NotFound', - 'errorMessage' => 'The specified NextHop does not exist.', - ], - [ - 'errorCode' => 'IllegalParam.RouteDest', - 'errorMessage' => 'The specified RouteDest is invalid', - ], - [ - 'errorCode' => 'OperationFailed.RouteConflict', - 'errorMessage' => 'Operation failed because there is already a route in VPC route table to another VPN on the same network block.', - ], - [ - 'errorCode' => 'OperationFailed.InvalidCidrBlock', - 'errorMessage' => 'Operation failed because the specified network block is invalid.', - ], - [ - 'errorCode' => 'QuotaExceeded.VpnRouteEntry', - 'errorMessage' => 'The number of route entries to the VPN gateway in the VPC routing table has reached the quota limit.', - ], - [ - 'errorCode' => 'VpnPbrRouteEntryPriority.NotSupport', - 'errorMessage' => 'Current version of the VPN does not support setting custom pbr route entry priority.', - ], - [ - 'errorCode' => 'TaskConflict', - 'errorMessage' => 'The operation is too frequent, please wait a moment and try again.', - ], - [ - 'errorCode' => 'VpnTask.CONFLICT', - 'errorMessage' => 'Vpn task has conflict.', - ], - [ - 'errorCode' => 'VpnGateway.Configuring', - 'errorMessage' => 'The specified service is configuring.', - ], - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', - ], - [ - 'errorCode' => 'VpnRouteEntry.SrcDestWeightConflict', - 'errorMessage' => 'The VPN gateway does not support Policy-based routing with the same source CIDR, destination CIDR and weight.', - ], - [ - 'errorCode' => 'VpnRouteEntry.SamePriorityPbrRoutePrefixOverlap', - 'errorMessage' => 'The source CIDR and destination CIDR of Policy-based routes with the same priority cannot overlap.', - ], - [ - 'errorCode' => 'VpnRouteEntry.SrcDestConflict', - 'errorMessage' => 'The VPN gateway does not support Policy-based routing with the same source CIDR and destination CIDR.', - ], - [ - 'errorCode' => 'CreatePbrRoutesQuotaFull.QuotaFull', - 'errorMessage' => 'The number of policy routes exceeds the quota limit.', - ], - [ - 'errorCode' => 'InvalidCidrBlock.Malformed', - 'errorMessage' => 'Specified CIDR block is not valid.', - ], - [ - 'errorCode' => 'DryRunOperation', - 'errorMessage' => 'Request validation has been passed with DryRun flag set.', - ], - [ - 'errorCode' => 'VpnPbrRouteEntry.NotSupport', - 'errorMessage' => 'Current version of the VPN does not support pbr route entry.', - ], + ['errorCode' => 'IncorrectStatus', 'errorMessage' => 'Current Instance status does not support this operation.', 'description' => ''], + ['errorCode' => 'TaskConflict', 'errorMessage' => 'The operation is too frequent, TaskConflict.', 'description' => 'The system is unavailable. Try again later.'], + ['errorCode' => 'IncorrectStatus.cbnStatus', 'errorMessage' => 'Current CBN status does not support this operation.', 'description' => 'The status of the CEN instance is invalid.'], + ['errorCode' => 'OperationDenied.InstanceAttachCen', 'errorMessage' => 'Operation denied because instance association CEN.', 'description' => 'Operation failed due to instance association CEN'], ], - 403 => [ - [ - 'errorCode' => 'Forbbiden.SubUser', - 'errorMessage' => 'User not authorized to operate on the specified resource as your account is created by another user.', - ], - [ - 'errorCode' => 'Forbidden', - 'errorMessage' => 'User not authorized to operate on the specified resource.', - ], - ], - [ - [ - 'errorCode' => 'InvalidVpnGatewayInstanceId.NotFound', - 'errorMessage' => 'The specified vpn gateway instance id does not exist.', - ], + 404 => [ + ['errorCode' => 'InvalidInstanceId.NotFound', 'errorMessage' => 'Specified Instance does not exist.', 'description' => ''], + ['errorCode' => 'InstanceType.Invalid', 'errorMessage' => 'Specified type is not valid.', 'description' => ''], + ['errorCode' => 'InvalidRegionId.NotFound', 'errorMessage' => 'The RegionId provided does not exist in our records.', 'description' => ''], ], ], - 'staticInfo' => [ - 'returnType' => 'asynchronous', - 'callback' => 'Vpc::2016-04-28::DescribeVpnGateway', - 'callbackInterval' => 1000, - 'maxCallbackTimes' => 10, - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"NextHop\\": \\"vco-bp15oes1py4i66rmd****\\",\\n \\"Weight\\": 0,\\n \\"RouteDest\\": \\"10.0.0.0/24\\",\\n \\"RequestId\\": \\"5BE01CD7-5A50-472D-AC14-CA181C5C03BE\\",\\n \\"Description\\": \\"desctest\\",\\n \\"State\\": \\"normal\\",\\n \\"CreateTime\\": 1492747187000,\\n \\"OverlayMode\\": \\"Ipsec\\",\\n \\"RouteSource\\": \\"192.168.1.0/24\\",\\n \\"VpnInstanceId\\": \\"vpn-bp1cmw7jh1nfe43m9****\\",\\n \\"Priority\\": 10\\n}","errorExample":""},{"type":"xml","example":"\\n vco-bp15oes1py4i66rmd****\\n 0\\n 10.0.0.0/24\\n 5BE01CD7-5A50-472D-AC14-CA181C5C03BE\\n desctest\\n normal\\n 1492747187000\\n Ipsec\\n 192.168.1.0/24\\n vpn-bp1cmw7jh1nfe43m9****\\n 10\\n","errorExample":""}]', - 'title' => 'CreateVpnPbrRouteEntry', - 'description' => 'Creates a policy-based route for a VPN gateway.', + 'title' => 'RevokeInstanceFromCen', + 'description' => '- **RevokeInstanceFromCen**接口是VPC的API,所以调用该接口必须使用`vpc.aliyuncs.com`域名。API version为`2016-04-28`。'."\n" + ."\n" + .'- **RevokeInstanceFromCen**接口不支持在同一个VPC、VBR或者CCN中并发撤销网络实例对指定云企业网实例的授权。', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DeleteVpnPbrRouteEntry' => [ - 'summary' => 'Deletes a policy-based route from a VPN gateway.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [ + ['createdAt' => '2025-03-23T02:32:42.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-09-21T07:57:21.000Z', 'description' => 'Error codes changed'], ], + 'ramActions' => [], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E\\"\\n}","type":"json"}]', + ], + 'RevokeInstanceFromVbr' => [ + 'summary' => 'Revokes the permissions granted to a virtual border router (VBR) on a virtual private cloud (VPC).', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', - 'systemTags' => [ - 'operationType' => 'delete', - 'riskType' => 'high', - 'chargeType' => 'free', - ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region where the VPN gateway is created. You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], - ], - [ - 'name' => 'ClientToken', - 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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.'."\n" - ."\n" - .'> 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.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-4266****', - ], - ], - [ - 'name' => 'VpnGatewayId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the VPN gateway.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'vpn-bp1a3kqjiiq9legfx****', - ], - ], - [ - 'name' => 'RouteSource', - 'in' => 'query', - 'schema' => [ - 'description' => 'The source CIDR block of the policy-based route.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => '192.168.1.0/24', - ], + 'schema' => ['description' => 'The ID of the region where the VPC is deployed.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'RouteDest', + 'name' => 'VbrOwnerUid', 'in' => 'query', - 'schema' => [ - 'description' => 'The destination CIDR block of the policy-based route.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => '10.0.0.0/24', - ], + 'schema' => ['description' => 'The ID of the Alibaba Cloud account to which the VBR belongs.'."\n", 'type' => 'string', 'required' => true, 'example' => '1210123456123456', 'title' => ''], ], [ - 'name' => 'NextHop', + 'name' => 'VbrInstanceIds', 'in' => 'query', + 'style' => 'simple', 'schema' => [ - 'description' => 'The next hop of the policy-based route.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'vco-bp15oes1py4i66rmd****', + 'description' => 'The IDs of the VBRs for which you want to revoke the permissions.'."\n", + 'type' => 'array', + 'items' => ['description' => 'The VBR ID. You can specify multiple VBRs and separate them with commas (,).'."\n" + ."\n" + .'* If you set **GrantType** to **ALL**, this parameter is optional. Permissions on the VPC are revoked for all VBRs in the specified region.'."\n" + .'* If you set **GrantType** to **Specify**, this parameter is required. Permissions on the VPC are revoked for the specified VBRs.'."\n", 'type' => 'string', 'required' => false, 'example' => 'vbr-m5ex0xf63xk8s5bob****,vbr-bp1h6efd7a5g66xxd****', 'title' => ''], + 'required' => false, + 'title' => '', + 'example' => '', ], ], [ - 'name' => 'Weight', + 'name' => 'InstanceId', 'in' => 'query', - 'schema' => [ - 'description' => 'The weight of the policy-based route. Valid values:'."\n" - ."\n" - .'You can call [DescribeVpnPbrRouteEntries](~~2526959~~) to query weights of policy-based routes.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'docRequired' => true, - 'example' => '0', - ], + 'schema' => ['description' => 'The VPC ID.'."\n", 'type' => 'string', 'required' => true, 'example' => 'vpc-bp1brjuegjc88v3u9****', 'title' => ''], ], [ - 'name' => 'OverlayMode', + 'name' => 'GrantType', 'in' => 'query', - 'schema' => [ - 'description' => 'The tunneling protocol. Set the value to **Ipsec**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'Ipsec', - ], + 'schema' => ['description' => 'The VBRs for which you want to revoke permissions on the VPC. Valid values:'."\n" + ."\n" + .'* **ALL**: Permissions on the VPC are revoked for all VBRs in the specified region. **VbrInstanceIds** can be left empty.'."\n" + .'* **Specify**: Permissions on the VPC are revoked for the specified VBRs. **VbrInstanceIds** must be assigned a value.'."\n", 'type' => 'string', 'required' => true, 'example' => 'ALL', 'title' => ''], ], [ - 'name' => 'Priority', + 'name' => 'VbrRegionNo', 'in' => 'query', - 'schema' => [ - 'description' => 'The priority of the policy-based route.'."\n" - ."\n" - .'* If the route was not assigned a priority, this parameter is optional.'."\n" - ."\n" - .'* If the route was assigned a priority, this parameter is optional.'."\n" - ."\n" - .' If you specify this parameter, set the value to the priority configured for the policy-based route. Otherwise, the operation cannot be performed.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '10', - ], + 'schema' => ['description' => 'The ID of the region where the VBR is deployed.'."\n", 'type' => 'string', 'required' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => 'The response parameters.'."\n", + 'description' => 'The returned data.'."\n", 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '5BE01CD7-5A50-472D-AC14-CA181C5C03BE', - ], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '45B7AA4A-4658-5FFC-90DD-9B8729F301BB', 'title' => ''], ], + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'Resource.QuotaFull', - 'errorMessage' => 'The quota of resource is full', - ], - [ - 'errorCode' => 'VpnGateway.Configuring', - 'errorMessage' => 'The specified service is configuring.', - ], - [ - 'errorCode' => 'VpnGateway.FinancialLocked', - 'errorMessage' => 'The specified service is financial locked.', - ], - [ - 'errorCode' => 'VpnRouteEntry.AlreadyExists', - 'errorMessage' => 'The specified route entry is already exist.', - ], - [ - 'errorCode' => 'VpnRouteEntry.Conflict', - 'errorMessage' => 'The specified route entry has conflict.', - ], - [ - 'errorCode' => 'VpnRouteEntry.Configuring', - 'errorMessage' => 'The specified route entry is configuring.', - ], - [ - 'errorCode' => 'InvalidRouteEntry.NotFound', - 'errorMessage' => 'The specified route entry does not exist.', - ], - [ - 'errorCode' => 'TaskConflict', - 'errorMessage' => 'The operation is too frequent, please wait a moment and try again.', - ], - [ - 'errorCode' => 'VpnTask.CONFLICT', - 'errorMessage' => 'Vpn task has conflict.', - ], - [ - 'errorCode' => 'VpnPbrRouteEntry.NotSupport', - 'errorMessage' => 'Current version of the VPN does not support pbr route entry.', - ], - ], - 403 => [ - [ - 'errorCode' => 'Forbbiden.SubUser', - 'errorMessage' => 'User not authorized to operate on the specified resource as your account is created by another user.', - ], - [ - 'errorCode' => 'Forbidden', - 'errorMessage' => 'User not authorized to operate on the specified resource.', - ], + ['errorCode' => 'Instance.StatusError', 'errorMessage' => 'The status of instance error. ', 'description' => ''], + ['errorCode' => 'InvalidParam.NotNull', 'errorMessage' => 'The parameter must not be null.', 'description' => ''], + ['errorCode' => 'Parameter.Illegal', 'errorMessage' => 'The parameter is illegal.', 'description' => 'The parameter is invalid.'], ], - [ - [ - 'errorCode' => 'InvalidVpnGatewayInstanceId.NotFound', - 'errorMessage' => 'The specified vpn gateway instance id does not exist.', - ], + 404 => [ + ['errorCode' => 'Instance.NotExist', 'errorMessage' => 'The instance not exist.', 'description' => ''], + ['errorCode' => 'EcGrantRelation.NotExist', 'errorMessage' => 'The ec grant relation not exist.', 'description' => 'The Express Connect circuit is not authorized.'], ], ], - 'staticInfo' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"5BE01CD7-5A50-472D-AC14-CA181C5C03BE\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 5BE01CD7-5A50-472D-AC14-CA181C5C03BE\\n","errorExample":""}]', - 'title' => 'DeleteVpnPbrRouteEntry', - 'description' => '* **DeleteVpnPbrRouteEntry** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call [DescribeVpnGateway](~~73720~~) to query the status of the task.'."\n" - ."\n" - .' * If a VPN gateway is in the **updating** state, the policy-based route is being deleted.'."\n" - .' * If a VPN gateway is in the **active** state, the policy-based route has been deleted.'."\n" - ."\n" - .'* You cannot repeatedly call **DeleteVpnPbrRouteEntry** to delete a policy-based route within the specified period of time.'."\n", - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'RevokeInstanceFromVbr', + 'changeSet' => [], + 'ramActions' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"45B7AA4A-4658-5FFC-90DD-9B8729F301BB\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 45B7AA4A-4658-5FFC-90DD-9B8729F301BB\\n","errorExample":""}]', ], - 'ModifyVpnPbrRouteEntryWeight' => [ - 'summary' => 'Modifies the weight of a policy-based route of a VPN gateway.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'SecondApplyPhysicalConnectionLOA' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', - 'systemTags' => [ - 'operationType' => 'update', - 'riskType' => 'none', - 'chargeType' => 'free', - ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'none', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ - 'name' => 'RegionId', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region where the VPN gateway is created. You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'You can use the client to generate the token, but you must make sure that the token is unique among different requests.'."\n" + ."\n" + .'> 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.'."\n", 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-426655440000', 'title' => ''], ], [ - 'name' => 'ClientToken', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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.'."\n" - ."\n" - .'> 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.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'd7d24a21-f4ba-4454-9173-b3828dae492b', - ], + 'schema' => ['description' => 'The region where the Express Connect circuit is deployed. You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'VpnGatewayId', + 'name' => 'Bandwidth', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the VPN gateway.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'vpn-bp1a3kqjiiq9legfx****', - ], + 'schema' => ['description' => 'The bandwidth of the Express Connect circuit. Unit: Mbit/s.'."\n" + ."\n" + .'Valid values: **2** to **10240**.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '3', 'default' => '100', 'title' => ''], ], [ - 'name' => 'RouteSource', + 'name' => 'PeerLocation', 'in' => 'query', - 'schema' => [ - 'description' => 'The source CIDR block of the policy-based route.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => '192.168.1.0/24', - ], + 'schema' => ['description' => 'The geographic location where the Express Connect circuit is deployed.'."\n", 'type' => 'string', 'required' => false, 'example' => '杭州', 'title' => ''], ], [ - 'name' => 'RouteDest', + 'name' => 'InstanceId', 'in' => 'query', - 'schema' => [ - 'description' => 'The destination CIDR block of the policy-based route.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => '10.0.0.0/24', - ], + 'schema' => ['description' => 'The ID of the Express Connect circuit.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'pc-bp1qrb3044eqi****', 'title' => ''], ], [ - 'name' => 'NextHop', + 'name' => 'CompanyName', 'in' => 'query', - 'schema' => [ - 'description' => 'The next hop of the policy-based route.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'vco-bp15oes1py4i66rmd**** ', - ], + 'schema' => ['description' => 'The name of the customer company that requires the Express Connect circuit.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'company', 'title' => ''], ], [ - 'name' => 'Weight', + 'name' => 'LineType', 'in' => 'query', - 'schema' => [ - 'description' => 'The original weight of the policy-based route. Valid values:'."\n" - ."\n" - .'* **100**: The IPsec-VPN connection associated with the policy-based route serves as an active connection.'."\n" - .'* **0**: The IPsec-VPN connection associated with the policy-based route serves as a standby connection.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'docRequired' => true, - 'example' => '0', - ], + 'schema' => ['description' => 'The type of Express Connect circuit. Valid values:'."\n" + ."\n" + .'* **MSTP**'."\n" + .'* **MPLSVPN**'."\n" + .'* **FIBRE**'."\n" + .'* **Other**'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'FIBRE', 'title' => ''], ], [ - 'name' => 'NewWeight', + 'name' => 'Si', 'in' => 'query', - 'schema' => [ - 'description' => 'The new weight of the policy-based route. Valid values:'."\n" - ."\n" - .'* **100**: The IPsec-VPN connection associated with the policy-based route serves as an active connection.'."\n" - .'* **0**: The IPsec-VPN connection associated with the policy-based route serves as a standby connection.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'docRequired' => true, - 'example' => '100', - ], + 'schema' => ['description' => 'The construction company.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '阿里', 'title' => ''], ], [ - 'name' => 'OverlayMode', + 'name' => 'ConstructionTime', 'in' => 'query', - 'schema' => [ - 'description' => 'The tunneling protocol. The value is set to **Ipsec**, which indicates the IPsec tunneling protocol.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'Ipsec', - ], + 'schema' => ['description' => 'The time when construction started. Specify the time in the ISO 8601 standard in the YYYY-MM-DDThh:mm:ssZ format. The time is displayed in UTC.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '2022-02-28T16:00:00Z', 'title' => ''], ], [ - 'name' => 'Priority', + 'name' => 'PMInfo', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => 'The priority of the policy-based route.'."\n" - ."\n" - .'* If the route was not assigned a priority, this parameter is optional.'."\n" - ."\n" - .'* If the route was assigned a priority, this parameter is optional.'."\n" - ."\n" - .' If you specify this parameter, set the value to the priority that was assigned to the policy-based route. Otherwise, the operation fails.'."\n", - 'type' => 'integer', - 'format' => 'int32', + 'description' => 'The information about the construction engineer.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'PMCertificateNo' => ['description' => 'The ID number of the construction engineer. You can specify the ID number of an ID card or an international passport.'."\n" + ."\n" + .'You can configure information for up to 16 construction engineers.'."\n", 'type' => 'string', 'required' => false, 'docRequired' => true, 'example' => '5****************9 '."\n", 'title' => ''], + 'PMName' => ['description' => 'The name of the construction engineer.'."\n", 'type' => 'string', 'required' => false, 'docRequired' => true, 'example' => '张三', 'title' => ''], + 'PMCertificateType' => ['description' => 'The type of the identity document of the construction engineer. Valid values:'."\n" + ."\n" + .'* **IDCard**'."\n" + .'* **Passport**'."\n", 'type' => 'string', 'required' => false, 'docRequired' => true, 'example' => 'IDCard', 'title' => ''], + 'PMGender' => ['description' => 'The gender of the construction engineer.'."\n", 'type' => 'string', 'required' => false, 'docRequired' => true, 'example' => 'Male', 'title' => ''], + 'PMContactInfo' => ['description' => 'The contact information about the construction engineer.'."\n", 'type' => 'string', 'required' => false, 'docRequired' => true, 'example' => '1390000****', 'title' => ''], + ], + 'required' => false, + 'docRequired' => true, + 'title' => '', + 'example' => '', + ], 'required' => false, - 'example' => '10', + 'maxItems' => 16, + 'title' => '', + 'example' => '', ], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => 'The response parameters.'."\n", 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '5BE01CD7-5A50-472D-AC14-CA181C5C03BE ', - ], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => 'A47BD386-7FDE-42C4-8D22-C6223D18AA1C '."\n", 'title' => ''], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'Resource.QuotaFull', - 'errorMessage' => 'The quota of resource is full', - ], - [ - 'errorCode' => 'VpnGateway.Configuring', - 'errorMessage' => 'The specified service is configuring.', - ], - [ - 'errorCode' => 'VpnGateway.FinancialLocked', - 'errorMessage' => 'The specified service is financial locked.', - ], - [ - 'errorCode' => 'VpnRouteEntry.AlreadyExists', - 'errorMessage' => 'The specified route entry is already exist.', - ], - [ - 'errorCode' => 'VpnRouteEntry.Conflict', - 'errorMessage' => 'The specified route entry has conflict.', - ], - [ - 'errorCode' => 'VpnRouteEntry.SrcDestWeightConflict', - 'errorMessage' => 'The VPN gateway does not support Policy-based routing with the same source CIDR, destination CIDR and weight.', - ], - [ - 'errorCode' => 'VpnRouteEntry.SamePriorityPbrRoutePrefixOverlap', - 'errorMessage' => 'The source CIDR and destination CIDR of Policy-based routes with the same priority cannot overlap.', - ], - [ - 'errorCode' => 'VpnRouteEntry.SrcDestConflict', - 'errorMessage' => 'The VPN gateway does not support Policy-based routing with the same source CIDR and destination CIDR.', - ], - [ - 'errorCode' => 'VpnPbrRouteEntry.NotSupport', - 'errorMessage' => 'Current version of the VPN does not support pbr route entry.', - ], - ], - 403 => [ - [ - 'errorCode' => 'Forbbiden.SubUser', - 'errorMessage' => 'User not authorized to operate on the specified resource as your account is created by another user.', - ], - [ - 'errorCode' => 'Forbidden', - 'errorMessage' => 'User not authorized to operate on the specified resource.', - ], - ], - [ - [ - 'errorCode' => 'InvalidVpnGatewayInstanceId.NotFound', - 'errorMessage' => 'The specified vpn gateway instance id does not exist.', - ], - ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"5BE01CD7-5A50-472D-AC14-CA181C5C03BE\\\\t\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 5BE01CD7-5A50-472D-AC14-CA181C5C03BE\\t\\n","errorExample":""}]', - 'title' => 'ModifyVpnPbrRouteEntryWeight', - 'description' => '* **ModifyVpnPbrRouteEntryWeight** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call [DescribeVpnGateway](~~73720~~) to query the status of the task.'."\n" - ."\n" - .' * If a VPN gateway is in the **updating** state, the policy-based route entry is being modified.'."\n" - .' * If a VPN gateway is in the **active** state, the policy-based route entry is modified.'."\n" - ."\n" - .'* You cannot repeatedly call the **ModifyVpnPbrRouteEntryWeight** operation for the same VPN gateway within the specified period of time.'."\n", - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', + ['errorCode' => 'OperationFailed.PconnTrafficNotEnable', 'errorMessage' => 'The operation is failed because of PconnTrafficNotEnable.', 'description' => 'Billing for outbound data transfer is disabled.'], + ['errorCode' => 'IllegalParam.Bandwidth', 'errorMessage' => 'Invalid Bandwidth.', 'description' => 'The bandwidth of the Express Connect circuit is invalid.'], + ['errorCode' => 'IllegalParam.CompanyLocalizedName', 'errorMessage' => 'Invalid CompanyLocalizedName.', 'description' => 'The localized name of the company is invalid.'], + ['errorCode' => 'IllegalParam.CompanyName', 'errorMessage' => 'Invalid CompanyName.', 'description' => 'The company name is invalid.'], + ['errorCode' => 'IllegalParam.LineType', 'errorMessage' => 'Invalid LineType.', 'description' => 'The Express Connect circuit type is invalid.'], + ['errorCode' => 'IllegalParam.PeerLocation', 'errorMessage' => 'Invalid PeerLocation.', 'description' => 'The location of the Express Connect circuit is invalid.'], + ['errorCode' => 'IllegalParam.PmCertificateType', 'errorMessage' => 'Invalid PmCertificateType.', 'description' => 'The certificate type of the engineer is invalid.'], + ['errorCode' => 'IllegalParam.PmCertificateNo', 'errorMessage' => 'Invalid PmCertificateNo.', 'description' => 'The certificate number of the engineer is invalid.'], + ['errorCode' => 'IllegalParam.PmContactInfo', 'errorMessage' => 'Invalid PmContactInfo.', 'description' => 'The contact information about the engineer is invalid.'], + ['errorCode' => 'IllegalParam.PmGender', 'errorMessage' => 'Invalid PmGender.', 'description' => 'The engineer gender is invalid.'], + ['errorCode' => 'IllegalParam.PmName', 'errorMessage' => 'Invalid PmName.', 'description' => 'The engineer name is invalid.'], + ['errorCode' => 'IllegalParam.Si', 'errorMessage' => 'Invalid Si.', 'description' => 'The construction company is invalid.'], + ['errorCode' => 'InvalidInstanceId.NotFound', 'errorMessage' => 'InstanceId is not found.', 'description' => 'The Express Connect circuit ID is invalid.'], + ['errorCode' => 'IncorrectStatus.PhysicalConnection', 'errorMessage' => 'Invalid physical connection status.', 'description' => 'The Express Connect circuit is in an invalid state.'], + ['errorCode' => 'IncorrectStatus.PhysicalConnectionLOA', 'errorMessage' => 'Invalid Express Connect circuit LOA status.', 'description' => 'The construction status of the Express Connect circuit is invalid.'], + ['errorCode' => 'OperationDenied.LOAForVirtualPhysicalConnection', 'errorMessage' => 'The operation is not allowed because of LOAForVirtualPhysicalConnection.', 'description' => 'The shared Express Connect circuit does not allow construction.'], + ['errorCode' => 'MissingParam.InstanceId', 'errorMessage' => 'The parameter InstanceId is mandatory.', 'description' => 'You must specify the Express Connect circuit ID.'], + ['errorCode' => 'MissingParam.ConstructionTime', 'errorMessage' => 'The parameter ConstructionTime is mandatory.', 'description' => 'You must specify the start time.'], + ['errorCode' => 'MissingParam.PMInfo', 'errorMessage' => 'The parameter PMInfo is mandatory.', 'description' => 'You must specify the engineer information.'], + ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'SecondApplyPhysicalConnectionLOA', + 'summary' => 'If your application for a Letter of Authorization (LOA) by calling the ApplyPhysicalConnectionLOA operation is denied, you can call this operation to apply again.', + 'changeSet' => [], + 'ramActions' => [], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"A47BD386-7FDE-42C4-8D22-C6223D18AA1C\\\\t\\\\n\\"\\n}","type":"json"}]', ], - 'ModifyVpnPbrRouteEntryPriority' => [ - 'summary' => 'Modifies the priority of a policy-based route.', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'SetHighDefinitionMonitorLogStatus' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'readAndWrite', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'update', - 'riskType' => 'none', - 'chargeType' => 'free', - ], + 'systemTags' => [], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region where the VPN gateway is created.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cn-henyuan', - ], + 'schema' => ['description' => 'The region ID of the instance.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'ClientToken', + 'name' => 'LogProject', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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.'."\n" - ."\n" - .'> 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.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'd7d24a21-f4ba-4454-9173-b3****', - ], + 'schema' => ['description' => 'The name of the Simple Log Service (SLS) project.'."\n", 'type' => 'string', 'required' => true, 'example' => 'hdmonitor-cn-shenzhen', 'title' => ''], ], [ - 'name' => 'VpnGatewayId', + 'name' => 'LogStore', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the VPN gateway.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'vpn-bp1a3kqjiiq9legfx****', - ], + 'schema' => ['description' => 'The name of the Logstore.'."\n", 'type' => 'string', 'required' => true, 'example' => 'hdmonitor', 'title' => ''], ], [ - 'name' => 'RouteSource', + 'name' => 'InstanceId', 'in' => 'query', - 'schema' => [ - 'description' => 'The source CIDR block of the policy-based route.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => '192.168.1.0/24', - ], + 'schema' => ['description' => 'The ID of the instance for which you want to configure fine-grained monitoring.'."\n", 'type' => 'string', 'required' => true, 'example' => 'eip-wz9fi6qboho9fwgx7****', 'title' => ''], ], [ - 'name' => 'RouteDest', + 'name' => 'InstanceType', 'in' => 'query', - 'schema' => [ - 'description' => 'The destination CIDR block of the policy-based route.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => '10.0.0.0/24', - ], + 'schema' => ['description' => 'The instance type. Set the value to **EIP**.'."\n", 'type' => 'string', 'required' => false, 'example' => 'EIP', 'default' => 'EIP', 'title' => ''], ], [ - 'name' => 'NextHop', + 'name' => 'Status', 'in' => 'query', + 'schema' => ['description' => 'The status of fine-grained monitoring. Valid values:'."\n" + ."\n" + .'* **ON**'."\n" + .'* **OFF**'."\n", 'type' => 'string', 'required' => true, 'example' => 'ON', 'title' => ''], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => 'The next hop of the policy-based route.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'vco-bp15oes1py4i66rmd****', + 'description' => 'The response parameters.'."\n", + 'type' => 'object', + 'properties' => [ + 'Success' => ['description' => 'Indicates whether the operation is performed. Valid values:'."\n" + ."\n" + .'* **true**'."\n" + .'* **false**'."\n", 'type' => 'string', 'example' => 'true', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B457', 'title' => ''], + ], + 'title' => '', + 'example' => '', ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InvalidInstanceId', 'errorMessage' => 'Instance does not exist.', 'description' => 'The error message returned because the specified instance does not exist.'], + ['errorCode' => 'ProjectOrLogstoreNotExist', 'errorMessage' => 'The specified project or logstore does not exist.', 'description' => 'The error message returned because the specified project or Logstore does not exist.'], + ['errorCode' => 'SourceProjectNotExist', 'errorMessage' => 'The Source Project or logstore does not exist.', 'description' => 'The error message returned because the source project or Logstore does not exist.'], + ['errorCode' => 'Unauthorized', 'errorMessage' => 'This api does not support sub user or role.', 'description' => 'The error message returned because you cannot call this operation as a RAM user.'], + ['errorCode' => 'ParameterInvalid', 'errorMessage' => 'Invalid parameter.', 'description' => 'The error message returned because a parameter is invalid.'], + ['errorCode' => 'InvalidAction.NotSupport', 'errorMessage' => 'This region does not support this action.', 'description' => ''], + ['errorCode' => 'RuleExist', 'errorMessage' => 'The rule has already existed.', 'description' => ''], + ['errorCode' => 'InvalidHdMonitorStatus', 'errorMessage' => 'Current instance status is not valid for this action.', 'description' => ''], + ['errorCode' => 'HdMonitorEipNumberOverLimit', 'errorMessage' => 'This user has reached the maximum Eip number of high definination.', 'description' => ''], + ['errorCode' => 'InvalidAllocationId.NotFound', 'errorMessage' => 'Specified allocation id is not found.', 'description' => ''], + ], + ], + 'title' => 'SetHighDefinitionMonitorLogStatus', + 'summary' => 'Configures fine-grained monitoring for an elastic IP address (EIP).', + 'description' => 'You cannot repeatedly call **SetHighDefinitionMonitorLogStatus** within a specific period of time.'."\n", + 'changeSet' => [ + ['createdAt' => '2023-06-09T08:58:31.000Z', 'description' => 'Error codes changed'], + ], + 'ramActions' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Success\\": \\"true\\",\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B457\\"\\n}","errorExample":""},{"type":"xml","example":"\\n true\\n 54B48E3D-DF70-471B-AA93-08E683A1B457\\n","errorExample":""}]', + ], + 'StartFailoverTestJob' => [ + 'summary' => 'Calls the StartFailoverTestJob operation to start an Express Connect failover test job.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'readAndWrite', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free'], + 'parameters' => [ [ - 'name' => 'Priority', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The original priority of the policy-based route. Valid values: **1** to **100**.'."\n" - ."\n" - .'A smaller value indicates a higher priority.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '5', - ], + 'schema' => ['description' => 'The region ID of the failover test job. '."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query region IDs.', 'type' => 'string', 'required' => false, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'NewPriority', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The new priority of the policy-based route. Valid values: **1** to **100**.'."\n" - ."\n" - .'A smaller value indicates a higher priority.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'example' => '10', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'You can use the client to generate the token, but you must make sure that the token is unique among different requests. The ClientToken value can contain only ASCII characters.'."\n" + ."\n" + .'> If you do not specify this parameter, the system automatically uses the **RequestId** of the API request as the **ClientToken**. The **RequestId** may be different for each API request.', 'type' => 'string', 'required' => false, 'docRequired' => true, 'example' => '123e4567-e89b-12d3-a456-426655440000'."\n", 'title' => ''], ], [ - 'name' => 'Weight', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The weight of the policy-based route. Valid values:'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'example' => '100', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'You can use the client to generate the token, but you must make sure that the token is unique among different requests. The ClientToken value can contain only ASCII characters.'."\n" + ."\n" + .'> If you do not specify this parameter, the system automatically uses the **RequestId** of the API request as the **ClientToken**. The **RequestId** may be different for each API request.', 'type' => 'string', 'required' => false, 'docRequired' => true, 'example' => '123e4567-e89b-12d3-a456-426655440000'."\n", 'title' => ''], + ], + [ + 'name' => 'JobId', + 'in' => 'query', + 'schema' => ['title' => '', 'description' => 'The ID of the failover test job.', 'type' => 'string', 'required' => true, 'example' => 'ftj-bp1yh6mvi13aq3g8w****'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => 'The response parameters.'."\n", + 'description' => 'The response parameters.', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '5BE01CD7-5A50-472D-AC14-CA181C5C03BE', - ], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'C44F62BE-9CE7-4277-B117-69243F3988BF'."\n", 'title' => ''], ], + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'Resource.QuotaFull', - 'errorMessage' => 'The quota of resource is full', - ], - [ - 'errorCode' => 'VpnGateway.Configuring', - 'errorMessage' => 'The specified service is configuring.', - ], - [ - 'errorCode' => 'VpnGateway.FinancialLocked', - 'errorMessage' => 'The specified service is financial locked.', - ], - [ - 'errorCode' => 'VpnRouteEntry.AlreadyExists', - 'errorMessage' => 'The specified route entry is already exist.', - ], - [ - 'errorCode' => 'VpnRouteEntry.Conflict', - 'errorMessage' => 'The specified route entry has conflict.', - ], - [ - 'errorCode' => 'VpnPbrRouteEntryPriority.NotSupport', - 'errorMessage' => 'Current version of the VPN does not support setting pbr route entry priority.', - ], - [ - 'errorCode' => 'VpnRouteEntry.SamePriorityPbrRoutePrefixOverlap', - 'errorMessage' => 'The source CIDR and destination CIDR of Policy-based routes with the same priority cannot overlap.', - ], - [ - 'errorCode' => 'VpnRouteEntry.SrcDestConflict', - 'errorMessage' => 'The VPN gateway does not support Policy-based routing with the same source CIDR and destination CIDR.', - ], - [ - 'errorCode' => 'VpnRouteEntry.SrcDestWeightConflict', - 'errorMessage' => 'The VPN gateway does not support Policy-based routing with the same source CIDR, destination CIDR and weight.', - ], - [ - 'errorCode' => 'VpnPbrRouteEntry.NotSupport', - 'errorMessage' => 'Current version of the VPN does not support pbr route entry.', - ], + ['errorCode' => 'IllegalParam.JobId', 'errorMessage' => 'The specified parameter JobId is illegal.', 'description' => 'The entered failover test job ID is invalid.'], + ['errorCode' => 'IncorrectStatus.OnlyForInit', 'errorMessage' => 'Only the init status failover test job can be started.', 'description' => 'Only the fault drill task to be drilled can be modified or started.'], + ['errorCode' => 'EcFailoverTestJobResourceInAnotherProcessingJob', 'errorMessage' => 'There is another processing failover test job.', 'description' => 'The current user already has a failover test job in progress. Please complete it and try again.'], + ['errorCode' => 'IllegalParam.ResourceId', 'errorMessage' => 'The input parameter resource ID is invalid.', 'description' => 'The input parameter resource ID is invalid.'], + ['errorCode' => 'IncorrectStatus.ResourceId', 'errorMessage' => 'The specified resource status is invalid.', 'description' => 'The resource status corresponding to the entered resource ID is invalid.'], + ['errorCode' => 'IncorrectBusinessStatus.ResourceId', 'errorMessage' => 'The specified resource business status is invalid.', 'description' => 'The entered resource is in arrears.'], + ['errorCode' => 'VpconnNotAssociatedVbr', 'errorMessage' => 'The specified vpconn is not associated with vbr.', 'description' => 'The entered virtual physical connection is not associated with a virtual border router.'], + ['errorCode' => 'VpconnWithVlan0NotSupportShutdown', 'errorMessage' => 'The specified virtualPhysicalConnection with vlan 0 does not support shutdown.', 'description' => 'The shared physical connection of VLAN 0 does not support failover test.'], + ['errorCode' => 'PconnContainsMoreThanOneVpconn', 'errorMessage' => 'The specified physicalConnection contains more than one virtualPhysicalConnection.', 'description' => 'A physical line that contains more than one shared physical line does not support failover test.'], + ['errorCode' => 'PconnContailsMoreThanOneAcrossCountVbr', 'errorMessage' => 'The specified physicalConnection contains more than one virtualBorderRouter which is across count.', 'description' => 'Physical connections that contain more than one cross-account VBR do not support failover test.'], + ['errorCode' => 'EcFailoverTestJobConflict', 'errorMessage' => 'The current failover test job task is in operation, please try again later.', 'description' => 'The current failover test job task is in operation, please try again later.'], + ['errorCode' => 'AnotherJobTesting', 'errorMessage' => 'There is another job which is testing.', 'description' => 'The same user can only perform one fault drill task in the same region at the same time.'], ], - 403 => [ - [ - 'errorCode' => 'Forbbiden.SubUser', - 'errorMessage' => 'User not authorized to operate on the specified resource as your account is created by another user.', - ], - [ - 'errorCode' => 'Forbidden', - 'errorMessage' => 'User not authorized to operate on the specified resource.', - ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'Start an express connect failover test job', + 'description' => 'Only failover test jobs in the **Pending** state can be started.', + 'changeSet' => [ + ['createdAt' => '2024-07-19T02:56:58.000Z', 'description' => 'Error codes changed'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '600', 'countWindow' => 60, 'regionId' => '*', 'api' => 'StartFailoverTestJob'], ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], + ], + 'ramActions' => [ [ - [ - 'errorCode' => 'InvalidVpnGatewayInstanceId.NotFound', - 'errorMessage' => 'The specified vpn gateway instance id does not exist.', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:StartFailoverTestJob', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VirtualBorderRouter', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:virtualborderrouter/{#VbrId}'], + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'PhysicalConnection', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:physicalconnection/{#PhysicalConnectionId}'], + ], ], ], ], - 'staticInfo' => [ - 'returnType' => 'asynchronous', - 'callback' => 'Vpc::2016-04-28::DescribeVpnGateway', - 'callbackInterval' => 2000, - 'maxCallbackTimes' => 60, - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"5BE01CD7-5A50-472D-AC14-CA181C5C03BE\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 5BE01CD7-5A50-472D-AC14-CA181C5C03BE\\n","errorExample":""}]', - 'title' => 'ModifyVpnPbrRouteEntryPriority', - 'description' => '* **ModifyVpnPbrRouteEntryPriority** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call [DescribeVpnGateway](~~73720~~) to query the status of the task.'."\n" - ."\n" - .' * If a VPN gateway is in the **updating** state, the policy-based route entry is being modified.'."\n" - .' * If the VPN gateway is in the **active** state, the policy-based route is created.'."\n" - ."\n" - .'* You cannot repeatedly call the **ModifyVpnPbrRouteEntryPriority** operation for the same VPN gateway within the specified period of time.'."\n", + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"C44F62BE-9CE7-4277-B117-69243F3988BF\\\\n\\"\\n}","type":"json"}]', ], - 'ModifyVpnPbrRouteEntryAttribute' => [ - 'summary' => 'Modifies the weight and priority of a policy-based route.', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'StopFailoverTestJob' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'readAndWrite', - 'systemTags' => [ - 'operationType' => 'update', - 'riskType' => 'none', - 'chargeType' => 'free', - ], + 'deprecated' => false, + 'systemTags' => ['operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the VPN gateway.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cn-heyuan', - ], + 'schema' => ['description' => 'The region ID of the failover test.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.', 'type' => 'string', 'required' => false, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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.'."\n" - ."\n" - .'> 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.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'd7d24a21-f4ba-4454-9173-b3****', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'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.'."\n" + ."\n" + .'> 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.'."\n", 'type' => 'string', 'required' => false, 'docRequired' => true, 'example' => '123e4567-e89b-12d3-a456-426655440000'."\n", 'title' => ''], ], [ - 'name' => 'VpnGatewayId', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the VPN gateway.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'vpn-bp1a3kqjiiq9legfx****', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'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.'."\n" + ."\n" + .'> 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.'."\n", 'type' => 'string', 'required' => false, 'docRequired' => true, 'example' => '123e4567-e89b-12d3-a456-426655440000'."\n", 'title' => ''], ], [ - 'name' => 'RouteSource', + 'name' => 'JobId', 'in' => 'query', - 'schema' => [ - 'description' => 'The source CIDR block of the policy-based route.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => '192.168.1.0/24', - ], + 'schema' => ['title' => '', 'description' => 'The ID of the failover test.', 'type' => 'string', 'required' => true, 'example' => 'ftj-bp1yh6mvi13aq3g8w****'], ], - [ - 'name' => 'RouteDest', - 'in' => 'query', + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => 'The destination CIDR block of the policy-based route.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => '10.0.0.0/24', + 'description' => 'The request ID.', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'C44F62BE-9CE7-4277-B117-69243F3988BF'."\n", 'title' => ''], + ], + 'title' => '', + 'example' => '', ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'IllegalParam.JobId', 'errorMessage' => 'The specified parameter JobId is illegal.', 'description' => 'The entered failover test job ID is invalid.'], + ['errorCode' => 'IncorrectStatus.OnlyForTesting', 'errorMessage' => 'Only the failover test job in the testing state can be stopped.', 'description' => 'Only the failover test job in the testing state can be stopped.'], + ['errorCode' => 'EcFailoverTestJobConflict', 'errorMessage' => 'The current failover test job task is in operation, please try again later.', 'description' => 'The current failover test job task is in operation, please try again later.'], + ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'StopFailoverTestJob', + 'summary' => 'Terminates a failover test.', + 'description' => '只支持结束处于**演练中**状态的故障演练任务。', + 'changeSet' => [ + ['createdAt' => '2024-07-19T02:56:58.000Z', 'description' => 'Error codes changed'], + ], + 'ramActions' => [], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"C44F62BE-9CE7-4277-B117-69243F3988BF\\\\n\\"\\n}","type":"json"}]', + ], + 'SwitchActiveRouteTarget' => [ + 'path' => '/', + 'methods' => ['post'], + 'schemes' => ['https'], + 'security' => [ [ - 'name' => 'NextHop', - 'in' => 'query', - 'schema' => [ - 'description' => 'The next hop of the policy-based route.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'vco-bp15oes1py4i66rmd****', - ], + 'AK' => [], ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', 'autoTest' => true, 'tenantRelevance' => 'tenant'], + 'parameters' => [ [ - 'name' => 'Priority', + 'name' => 'RouteTargetGroupId', 'in' => 'query', - 'schema' => [ - 'description' => 'The original priority of the policy-based route. Valid values: **1** to **100**.'."\n" - ."\n" - .'A smaller value indicates a higher priority.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'example' => '5', - ], + 'schema' => ['description' => 'The instance ID of the RouteTargetGroup.', 'type' => 'string', 'required' => true, 'example' => 'rtg-xxxx', 'title' => ''], ], [ - 'name' => 'NewPriority', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The new priority of the policy-based route. Valid values: **1** to **100**.'."\n" - ."\n" - .'A smaller value indicates a higher priority.'."\n" - ."\n" - .'If you do not specify this parameter, the priority of the policy-based route is not modified.'."\n" - ."\n" - .'> You must specify at least one of **NewPriority** and **NewWeight**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '10', - ], + 'schema' => ['description' => 'The region ID where the RouteTargetGroup is located.'."\n" + ."\n" + .'You can obtain the region ID by calling the [DescribeRegions](~~36063~~) API.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'Weight', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The original weight of the policy-based route. Valid values:'."\n" - ."\n" - .'* **100**: The IPsec-VPN connection associated with the policy-based route serves as an active connection.'."\n" - .'* **0**: The IPsec-VPN connection associated with the policy-based route serves as a standby connection.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'example' => '100', - ], + 'schema' => ['description' => 'Client token, used to ensure the idempotence of the request. Generate a unique value for this parameter from your client to ensure that it is unique across different requests. The ClientToken only supports ASCII characters. Note: If you do not specify this, the system will automatically use the RequestId of the API request as the ClientToken identifier. The RequestId may differ for each API request.', 'type' => 'string', 'required' => false, 'example' => '0c593ea1-3bea-11e9-b96b-88e9fe6****', 'title' => ''], ], [ - 'name' => 'NewWeight', + 'name' => 'Tag', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => 'The new weight of the policy-based route. Valid values:'."\n" - ."\n" - .'* **100**: The IPsec-VPN connection associated with the policy-based route serves as the active connection.'."\n" - .'* **0**: The IPsec-VPN connection associated with the policy-based route serves as the standby connection.'."\n" - ."\n" - .'If you do not specify this parameter, the weight of the policy-based route is not modified.'."\n" - ."\n" - .'> You must specify at least one of **NewPriority** and **NewWeight**.'."\n", - 'type' => 'integer', - 'format' => 'int32', + 'description' => 'Resource tags.', + 'type' => 'array', + 'items' => [ + 'description' => 'List of resource tags.', + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => 'The key of the resource tag. Up to 20 tag keys are supported. If you need to pass this value, you cannot input an empty string.'."\n" + ."\n" + .'Each tag key can have up to 128 characters and cannot start with `aliyun` or `acs:`. It also cannot contain `http://` or `https://`.', 'type' => 'string', 'required' => false, 'example' => 'FinanceDept', 'title' => ''], + 'Value' => ['description' => 'The value of the resource tag. Up to 20 tag values are supported. If you need to pass this value, you can input an empty string. A maximum of 128 characters is allowed. The value cannot start with `aliyun` or `acs:`, and it must not contain `http://` or `https://`.', 'type' => 'string', 'required' => false, 'example' => 'FinanceJoshua', 'title' => ''], + ], + 'required' => false, + 'title' => '', + 'example' => '', + ], 'required' => false, - 'example' => '0', + 'maxItems' => 21, + 'title' => '', + 'example' => '', ], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => 'The response parameters.'."\n", + 'title' => '', + 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '5BE01CD7-5A50-472D-AC14-CA181C5C03BE', - ], + 'RequestId' => ['description' => 'Request ID.', 'type' => 'string', 'example' => 'C1221A1F-2ACD-4592-8F27-474E02883159', 'title' => ''], ], + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'Resource.QuotaFull', - 'errorMessage' => 'The quota of resource is full', - ], - [ - 'errorCode' => 'VpnGateway.Configuring', - 'errorMessage' => 'The specified service is configuring.', - ], - [ - 'errorCode' => 'VpnGateway.FinancialLocked', - 'errorMessage' => 'The specified service is financial locked.', - ], - [ - 'errorCode' => 'VpnRouteEntry.AlreadyExists', - 'errorMessage' => 'The specified route entry is already exist.', - ], - [ - 'errorCode' => 'VpnRouteEntry.Conflict', - 'errorMessage' => 'The specified route entry has conflict.', - ], - [ - 'errorCode' => 'VpnPbrRouteEntryPriority.NotSupport', - 'errorMessage' => 'Current version of the VPN does not support setting pbr route entry priority.', - ], - [ - 'errorCode' => 'VpnRouteEntry.SrcDestWeightConflict', - 'errorMessage' => 'The VPN gateway does not support Policy-based routing with the same source CIDR, destination CIDR and weight.', - ], - [ - 'errorCode' => 'VpnRouteEntry.SamePriorityPbrRoutePrefixOverlap', - 'errorMessage' => 'The source CIDR and destination CIDR of Policy-based routes with the same priority cannot overlap.', - ], - [ - 'errorCode' => 'VpnRouteEntry.SrcDestConflict', - 'errorMessage' => 'The VPN gateway does not support Policy-based routing with the same source CIDR and destination CIDR.', - ], - [ - 'errorCode' => 'VpnPbrRouteEntry.NotSupport', - 'errorMessage' => 'Current version of the VPN does not support pbr route entry.', - ], - ], - 403 => [ - [ - 'errorCode' => 'Forbbiden.SubUser', - 'errorMessage' => 'User not authorized to operate on the specified resource as your account is created by another user.', - ], - [ - 'errorCode' => 'Forbidden', - 'errorMessage' => 'User not authorized to operate on the specified resource.', - ], + ['errorCode' => 'ResourceNotFound.RouteTargetGroup', 'errorMessage' => 'The specified resource of %s is not found.', 'description' => 'The specified resource% s does not exist.'], + ['errorCode' => 'IncorrectStatus.RouteTargetGroup', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => 'The current state of the RouteTargetGroup prohibits the operation.'], + ['errorCode' => 'OperationDenied.SwitchToAbnormalMember', 'errorMessage' => 'The operation is not allowed because of the inability to switch the RouteTargetMember when the disabled member is in an unhealthy state.', 'description' => 'The operation is not allowed because of the inability to switch the RouteTargetMember when the disabled member is in an unhealthy state.'], ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'SwitchActiveRouteTarget', + 'summary' => 'Switch Active and Standby For RouteTargetGroup.', + 'description' => 'Switch Active and Standby For RouteTargetGroup.', + 'changeSet' => [], + 'ramActions' => [ [ - [ - 'errorCode' => 'InvalidVpnGatewayInstanceId.NotFound', - 'errorMessage' => 'The specified vpn gateway instance id does not exist.', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:SwitchActiveRouteTarget', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'RouteTargetGroup', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:routetargetgroup/{#RouteTargetGroupId}'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"5BE01CD7-5A50-472D-AC14-CA181C5C03BE\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 5BE01CD7-5A50-472D-AC14-CA181C5C03BE\\n","errorExample":""}]', - 'title' => 'ModifyVpnPbrRouteEntryAttribute', - 'description' => '* You can call the **ModifyVpnPbrRouteEntryAttribute** operation to modify the weight and priority of a policy-based route.'."\n" - ."\n" - .' * If you want to modify only the weight of a policy-based route, call [ModifyVpnPbrRouteEntryWeight](~~127249~~).'."\n" - .' * If you want to modify only the priority of a policy-based route, call [ModifyVpnPbrRouteEntryPriority](~~466870~~).'."\n" - .' * If a policy-based route does not support priorities, you can only call [ModifyVpnPbrRouteEntryWeight](~~127249~~) to modify its weight.'."\n" - ."\n" - .'* The **ModifyVpnPbrRouteEntryAttribute** operation is asynchronous. After you send a request, the system returns a request ID, but the operation is still being performed in the system background. You can call [DescribeVpnGateway](~~73720~~) to query the status of a VPN gateway.'."\n" - ."\n" - .' * If a VPN gateway is in the **updating** state, the policy-based route entry is being modified.'."\n" - .' * If a VPN gateway is in the **active** state, the policy-based route entry is modified.'."\n" - ."\n" - .'* You cannot repeatedly call the **ModifyVpnPbrRouteEntryAttribute** operation for the same VPN gateway within the specified period of time.'."\n", - ], - 'DescribeVpnPbrRouteEntries' => [ - 'summary' => 'Queries policy-based routes configured for a VPN gateway.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"C1221A1F-2ACD-4592-8F27-474E02883159\\"\\n}","type":"json"}]', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'SwitchActiveRouteTarget'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], ], + ], + 'TagResources' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', - 'systemTags' => [ - 'operationType' => 'get', - ], + 'operationType' => 'readAndWrite', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ - 'name' => 'RegionId', + 'name' => 'ResourceType', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the VPN gateway.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-zhangjiakou', - ], + 'schema' => ['description' => 'The resource type. Valid values:'."\n" + ."\n" + .'* **VPC**: a VPC'."\n" + .'* **VSWITCH**: a vSwitch'."\n" + .'* **ROUTETABLE**: a route table'."\n" + .'* **EIP**: an EIP'."\n" + .'* **VpnGateway**: a VPN gateway'."\n" + .'* **NATGATEWAY**: a NAT gateway'."\n" + .'* **COMMONBANDWIDTHPACKAGE**: an EIP bandwidth plan'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'VPC', 'title' => ''], ], [ - 'name' => 'VpnGatewayId', + 'name' => 'ResourceId', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => 'The ID of the VPN gateway.'."\n", - 'type' => 'string', + 'description' => 'The resource ID. You can specify at most 20 IDs.'."\n", + 'type' => 'array', + 'items' => ['description' => 'The resource ID. You can specify up to 20 resource IDs.'."\n" + ."\n" + .'> When you call this operation, **ResourceId.N** is required.'."\n", 'type' => 'string', 'required' => false, 'example' => 'vpc-bp16qjewdsunr41m1****', 'title' => ''], 'required' => true, 'docRequired' => true, - 'example' => 'vpn-bp1a3kqjiiq9legfx****', + 'example' => 'vpc-bp16qjewdsunr41m1****', + 'maxItems' => 51, + 'title' => '', ], ], [ - 'name' => 'PageNumber', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The page number. Default value: **1**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', - 'default' => '1', - ], + 'schema' => ['description' => 'The region ID of the resource.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'PageSize', + 'name' => 'Tag', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => 'The number of entries per page. Maximum value: **50**. Default value: **10**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '10', - 'default' => '10', + 'description' => 'The tag information.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => 'The key of the tag that is added to the resource. You can specify at most 20 tag keys.'."\n" + ."\n" + .'The key cannot exceed 128 characters in length. The key cannot start with `aliyun` or `acs:` and cannot contain `http://` or `https://`.'."\n" + ."\n" + .'> When you call this operation, the **Tag.N.Key** parameter is required and cannot be an empty string.', 'type' => 'string', 'required' => false, 'example' => 'FinanceDept', 'title' => ''], + 'Value' => ['description' => 'The value of the tag that is added to the resource. You can specify at most 20 tag values.'."\n" + ."\n" + .'The tag value cannot exceed 128 characters in length. The value cannot start with `aliyun` or `acs:`, and cannot contain `http://` or `https://`.'."\n" + ."\n" + .'> When you call this operation, the **Tag.N.Value** parameter is required and can be an empty string.', 'type' => 'string', 'required' => false, 'example' => 'FinanceJoshua', 'title' => ''], + ], + 'required' => false, + 'title' => '', + 'example' => '', + ], + 'required' => true, + 'docRequired' => true, + 'example' => 'TagResources', + 'maxItems' => 21, + 'title' => '', ], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => 'The response parameters.'."\n", + 'description' => '', 'type' => 'object', 'properties' => [ - 'PageSize' => [ - 'description' => 'The number of entries per page.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '5BE01CD7-5A50-472D-AC14-CA181C5C03BE ', - ], - 'PageNumber' => [ - 'description' => 'The page number.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'TotalCount' => [ - 'description' => 'The number of entries returned.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'VpnPbrRouteEntries' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'VpnPbrRouteEntry' => [ - 'description' => 'The list of policy-based routes.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'NextHop' => [ - 'description' => 'The next hop of the policy-based route.'."\n", - 'type' => 'string', - 'example' => 'vco-bp15oes1py4i66rmd**** ', - ], - 'Weight' => [ - 'description' => 'The weight of the policy-based route.'."\n" - ."\n" - .'For a VPN gateway that supports IPsec-VPN connections in single-tunnel mode, the weight of a policy-based route indicates the priority of the route.'."\n" - ."\n" - .'* **100**: a high priority If multiple policy-based routes with the same source CIDR block and destination CIDR block exist, the IPsec-VPN connection associated with the policy-based route is the active connection.'."\n" - .'* **0**: a low priority If multiple policy-based routes with the same source CIDR block and destination CIDR block exist, the IPsec-VPN connection associated with the policy-based route is the standby connection.'."\n" - ."\n" - .'> For a VPN gateway that does not support IPsec-VPN connections in single-tunnel mode, this parameter does not take effect.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '0', - ], - 'RouteDest' => [ - 'description' => 'The destination CIDR block of the policy-based route.'."\n", - 'type' => 'string', - 'example' => '10.0.0.0/24', - ], - 'State' => [ - 'description' => 'The status of the policy-based route. Valid values:'."\n" - ."\n" - .'* **published**: advertised to the VPC route table.'."\n" - .'* **normal**: not advertised to the VPC route table.'."\n", - 'type' => 'string', - 'example' => 'published', - ], - 'CreateTime' => [ - 'description' => 'The time when the policy-based route was created. Unit: millisecond.'."\n" - ."\n" - .'This value is a UNIX timestamp representing the number of milliseconds that have elapsed since January 1, 1970, 00:00:00 UTC.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1492747187000', - ], - 'VpnInstanceId' => [ - 'description' => 'The ID of the VPN gateway.'."\n", - 'type' => 'string', - 'example' => 'vpn-bp1a3kqjiiq9legfx****', - ], - 'RouteSource' => [ - 'description' => 'The source CIDR block of the policy-based route.'."\n", - 'type' => 'string', - 'example' => '192.168.0.0/24', - ], - 'Priority' => [ - 'description' => 'The priority of the policy-based route.'."\n" - ."\n" - .'A smaller value indicates a higher priority.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'NextHopTunnelId' => [ - 'description' => 'The ID of the tunnel associated with the next hop of the policy-based route.'."\n" - ."\n" - .'This parameter is returned only if the VPN gateway supports IPsec-VPN connections in dual-tunnel mode.'."\n", - 'type' => 'string', - 'example' => 'tun-opsqc4d97wni2****', - ], - ], - ], - ], - ], - ], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => 'C46FF5A8-C5F0-4024-8262-B16B639225A0', 'title' => ''], ], + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidVpnInstanceId.NotFound', - 'errorMessage' => 'The specified VPN was not found.', - ], - [ - 'errorCode' => 'InvalidVpnGatewayInstanceId.NotFound', - 'errorMessage' => 'The specified vpn gateway instance id does not exist.', - ], + ['errorCode' => 'InvalidTagKey', 'errorMessage' => 'The tag keys are not valid.', 'description' => 'The tag index is invalid.'], + ['errorCode' => 'InvalidTagValue', 'errorMessage' => 'The tag values are not valid.', 'description' => 'The tag value is invalid.'], + ['errorCode' => 'MissingParam', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'InvalidInstanceType.NotFound', 'errorMessage' => 'The instance type is not found', 'description' => 'The instance type is not found.'], + ['errorCode' => 'InvalidInstanceIds.NotFound', 'errorMessage' => 'The instanceIds are not found', 'description' => 'The instance ID is not found.'], + ['errorCode' => 'Forbidden.TagKeys', 'errorMessage' => 'The request do not allow to operate the tag keys', 'description' => 'You do not have the permissions to set the TagKeys parameter.'], + ['errorCode' => 'QuotaExceeded.TagNum', 'errorMessage' => 'Custom Tags quota exceeded', 'description' => 'The upper limit is reached.'], + ['errorCode' => 'InvalidTagScope.NotFound', 'errorMessage' => 'The tag scope is not found', 'description' => 'The resource scope is invalid.'], + ['errorCode' => 'Forbidden.NotAllowedCategary', 'errorMessage' => 'The System tag is not valid', 'description' => 'The error message returned because the system tag is invalid.'], + ['errorCode' => 'Forbidden.TagKey.Duplicated', 'errorMessage' => 'The specified tag key already exists.', 'description' => 'The tag resources are duplicate.'], + ['errorCode' => 'SizeLimitExceeded.TagNum', 'errorMessage' => 'The maximum number of tags is exceeded.', 'description' => 'The number of tags has reached the upper limit.'], + ['errorCode' => 'SizeLimitExceeded.ResourceId', 'errorMessage' => 'The maximum number of resource IDs is exceeded.', 'description' => 'The number of resource group IDs has reached the upper limit.'], + ['errorCode' => 'MissingParameter.TagValue', 'errorMessage' => 'The input parameter TagValue that is mandatory for processing this request is not supplied.', 'description' => 'The TagValue parameter is not set.'], + ['errorCode' => 'MissingParameter.TagKey', 'errorMessage' => 'The input parameter TagKey that is mandatory for processing this request is not supplied.', 'description' => 'The TagKey parameter is not set.'], + ['errorCode' => 'MissingParam.Tags', 'errorMessage' => 'You must specify the Tags parameter.', 'description' => 'The error message returned because the Tags parameter is not set.'], + ['errorCode' => 'DuplicatedParam.ResourceIds', 'errorMessage' => 'The parameter of ResourceIds contains duplicate values.', 'description' => ''], ], 403 => [ - [ - 'errorCode' => 'Forbbiden.SubUser', - 'errorMessage' => 'User not authorized to operate on the specified resource as your account is created by another user.', - ], - [ - 'errorCode' => 'Forbidden', - 'errorMessage' => 'User not authorized to operate on the specified resource.', - ], + ['errorCode' => 'Forbidden', 'errorMessage' => 'User not authorized to operate on the specified resource.', 'description' => 'You do not have the permissions to manage the specified resource. Apply for the permissions and try again.'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"PageSize\\": 10,\\n \\"RequestId\\": \\"5BE01CD7-5A50-472D-AC14-CA181C5C03BE\\",\\n \\"PageNumber\\": 1,\\n \\"TotalCount\\": 1,\\n \\"VpnPbrRouteEntries\\": {\\n \\"VpnPbrRouteEntry\\": [\\n {\\n \\"NextHop\\": \\"vco-bp15oes1py4i66rmd****\\",\\n \\"Weight\\": 100,\\n \\"RouteDest\\": \\"10.0.0.0/24\\",\\n \\"State\\": \\"published\\",\\n \\"CreateTime\\": 1492747187000,\\n \\"VpnInstanceId\\": \\"vpn-bp1a3kqjiiq9legfx****\\",\\n \\"RouteSource\\": \\"192.168.0.0/24\\",\\n \\"Priority\\": 10,\\n \\"NextHopTunnelId\\": \\"tun-opsqc4d97wni2****\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 10\\n 5BE01CD7-5A50-472D-AC14-CA181C5C03BE\\n 1\\n 1\\n \\n vco-bp15oes1py4i66rmd****\\n 100\\n 10.0.0.0/24\\n published\\n 1492747187000\\n vpn-bp1a3kqjiiq9legfx****\\n 192.168.0.0/24\\n 10\\n tun-opsqc4d97wni2****\\n \\n","errorExample":""}]', - 'title' => 'DescribeVpnPbrRouteEntries', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'TagResources', + 'summary' => 'Creates and adds tags to resources.', + 'description' => 'Tags are used to classify instances. Each tag consists of a key-value pair. Before you use tags, take note of the following limits:'."\n" + ."\n" + .'* The keys of tags that are added to the same instance must be unique.'."\n" + ."\n" + .'* You cannot create tags without adding them to instances. All tags must be added to instances.'."\n" + ."\n" + .'* Tag information is not shared across regions.'."\n" + ."\n" + .' For example, you cannot view the tags that are created in the China (Hangzhou) region from the China (Shanghai) region.'."\n" + ."\n" + .'* Virtual private clouds (VPCs), route tables, vSwitches, and elastic IP addresses (EIPs) that belong to the same Alibaba Cloud account and are deployed in the same region share tag information with each other.'."\n" + ."\n" + .' For example, if you added a tag to a VPC, the tag is available to vSwitches, route tables, and EIPs that belong to the same account and are deployed in the same region in which the VPC is created. You can select this tag from the editing page without the need to enter the tag again. You can modify the key and the value of a tag or remove a tag from an instance. After you delete an instance, all tags that are added to the instance are deleted.'."\n" + ."\n" + .'* You can add up to 20 tags to each instance. Before you add a tag to an instance, the system automatically checks the number of existing tags. An error message is returned if the maximum number of tags is reached.', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'CreateVpnAttachment' => [ - 'summary' => 'Creates an IPsec-VPN connection. After you create the IPsec-VPN connection, you can associate the IPsec-VPN connection with a transit router.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [ + ['createdAt' => '2023-07-28T01:53:52.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2023-07-10T06:55:02.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2023-04-06T11:04:07.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2023-03-23T02:20:38.000Z', 'description' => 'Error codes changed, Response parameters changed'], ], + 'ramActions' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"C46FF5A8-C5F0-4024-8262-B16B639225A0\\"\\n}","errorExample":""},{"type":"xml","example":"\\n C46FF5A8-C5F0-4024-8262-B16B639225A0\\n","errorExample":""}]', + ], + 'TagResourcesForExpressConnect' => [ + 'summary' => 'Creates and binds tags to specified Express Connect circuit instances by calling the TagResourcesForExpressConnect operation.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'write', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'create', - 'riskType' => 'high', - 'chargeType' => 'paid', - ], + 'systemTags' => ['operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the IPsec-VPN connection.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cn-hangzhou', - ], - ], - [ - 'name' => 'Name', + 'name' => 'ResourceType', 'in' => 'query', - 'schema' => [ - 'description' => 'The name of the IPsec-VPN connection.'."\n" - ."\n" - .'The name must be 1 to 100 characters in length and cannot start with `http://` or `https://`.', - 'type' => 'string', - 'required' => false, - 'example' => 'nametest', - ], + 'schema' => ['description' => 'The resource type. Valid values:'."\n" + .'- **PHYSICALCONNECTION**: Express Connect circuit instance.'."\n" + .'- **VIRTUALBORDERROUTER**: Virtual Border Router.'."\n" + .'- **ROUTERINTERFACE**: VBR uplink.'."\n" + .'- **TRAFFICQOS**: QoS policy.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'PHYSICALCONNECTION', 'title' => ''], ], [ - 'name' => 'CustomerGatewayId', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The customer gateway ID.'."\n" - ."\n" - .'> This parameter is required only when you create a single-tunnel IPsec-VPN connection.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'cgw-p0w2jemrcj5u61un8****', - ], + 'schema' => ['description' => 'The region ID of the resource to which you want to create and bind tags.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the region ID.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'NetworkType', + 'name' => 'ResourceId', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'title' => 'public/private', - 'description' => 'The network type of the IPsec-VPN connection. Valid values:'."\n" - ."\n" - .'* **public** (default)'."\n" - .'* **private**'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'public', + 'description' => 'The resource ID. You can specify up to 20 resource IDs.', + 'type' => 'array', + 'items' => ['description' => 'The resource ID. You can specify up to 20 resource IDs.', 'type' => 'string', 'required' => false, 'example' => 'pc-bp16qjewdsunr41m1****', 'title' => ''], + 'required' => true, + 'maxItems' => 21, + 'title' => '', + 'example' => '', ], ], [ - 'name' => 'LocalSubnet', + 'name' => 'Tag', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'title' => '路由模式为感兴趣流模式时,设置本端ip和对端ip', - 'description' => 'The CIDR block on the VPC side. The CIDR block is used in Phase 2 negotiations.'."\n" - ."\n" - .'Separate multiple CIDR blocks with commas (,). Example: 192.168.1.0/24,192.168.2.0/24.'."\n" - ."\n" - .'The following routing modes are supported:'."\n" - ."\n" - .'* If you set **LocalSubnet** and **RemoteSubnet** to 0.0.0.0/0, the routing mode of the IPsec-VPN connection is set to Destination Routing Mode.'."\n" - .'* If you set **LocalSubnet** and **RemoteSubnet** to specific CIDR blocks, the routing mode of the IPsec-VPN connection is set to Protected Data Flows.'."\n", - 'type' => 'string', + 'description' => 'The list of resource tags.', + 'type' => 'array', + 'items' => [ + 'description' => 'The list of resource tags.', + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => 'The tag key of the resource. You can specify up to 20 tag keys. The tag key cannot be an empty string.'."\n" + ."\n" + .'The tag key can be up to 128 characters in length and cannot start with `aliyun` or `acs:`. It cannot contain `http://` or `https://`.', 'type' => 'string', 'required' => false, 'example' => 'FinanceDept', 'title' => ''], + 'Value' => ['description' => 'The tag value of the resource. You can specify up to 20 tag values. The tag value can be an empty string.'."\n" + ."\n" + .'The tag value can be up to 128 characters in length and cannot start with `aliyun` or `acs:`. It cannot contain `http://` or `https://`.', 'type' => 'string', 'required' => false, 'example' => 'FinanceJoshua', 'title' => ''], + ], + 'required' => false, + 'title' => '', + 'example' => '', + ], 'required' => true, - 'example' => '10.1.1.0/24,10.1.2.0/24', + 'maxItems' => 21, + 'title' => '', + 'example' => '', ], ], - [ - 'name' => 'RemoteSubnet', - 'in' => 'query', + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => 'The CIDR block on the data center side. This CIDR block is used in Phase 2 negotiations.'."\n" - ."\n" - .'Separate multiple CIDR blocks with commas (,). Example: 192.168.3.0/24,192.168.4.0/24.'."\n" - ."\n" - .'The following routing modes are supported:'."\n" - ."\n" - .'* If you set **LocalSubnet** and **RemoteSubnet** to 0.0.0.0/0, the routing mode of the IPsec-VPN connection is set to Destination Routing Mode.'."\n" - .'* If you set **LocalSubnet** and **RemoteSubnet** to specific CIDR blocks, the routing mode of the IPsec-VPN connection is set to Protected Data Flows.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => '10.1.3.0/24,10.1.4.0/24', + 'description' => 'The request ID.', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B45', 'title' => ''], + ], + 'title' => '', + 'example' => '', ], ], - [ - 'name' => 'EffectImmediately', - 'in' => 'query', - 'schema' => [ - 'title' => '立即生效', - 'description' => 'Specifies whether to immediately start IPsec negotiations after the configuration takes effect. Valid values:'."\n" - ."\n" - .'* **true**: immediately starts IPsec negotiations after the configuration is complete.'."\n" - .'* **false** (default): starts IPsec negotiations when inbound traffic is received.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], - ], - [ - 'name' => 'IkeConfig', - 'in' => 'query', - 'schema' => [ - 'description' => 'This parameter is supported if you create an IPsec-VPN connection in single-tunnel mode.'."\n" - ."\n" - .'The configurations of Phase 1 negotiations:'."\n" - ."\n" - .'* **IkeConfig.Psk**: the pre-shared key that is used for identity authentication between the VPN gateway and the on-premises data center.'."\n" - ."\n" - .' * The key cannot contain space characters. The key must be 1 to 100 characters in length, and can contain digits, letters, and the following special characters: ``~!`@#$%^&*()_-+={}[]|;:\',.<>/?``'."\n" - .' * If you do not specify a pre-shared key, the system randomly generates a 16-bit string as the pre-shared key. You can call the [DescribeVpnConnection](~~2526951~~) operation to query the pre-shared key that is automatically generated by the system.'."\n" - ."\n" - .' > The pre-shared key of the IPsec-VPN connection must be the same as the authentication key of the on-premises data center. Otherwise, connections between the on-premises data center and the VPN gateway cannot be established.'."\n" - ."\n" - .'* **IkeConfig.IkeVersion**: the version of the Internet Key Exchange (IKE) protocol. Valid values: **ikev1** and **ikev2**. Default value: **ikev1**.'."\n" - ."\n" - .'* **IkeConfig.IkeMode**: the negotiation mode. Valid values: **main** and **aggressive**. Default value: **main**.'."\n" - ."\n" - .'* **IkeConfig.IkeEncAlg:** the encryption algorithm that is used in Phase 1 negotiations. Valid values: **aes**, **aes192**, **aes256**, **des**, and **3des**. Default value: **aes**.'."\n" - ."\n" - .'* **IkeConfig.IkeAuthAlg**: the authentication algorithm that is used in Phase 1 negotiations. Valid values: **md5**, **sha1**, **sha256**, **sha384**, and **sha512**. Default value: **md5**.'."\n" - ."\n" - .'* **IkeConfig.IkePfs**: the Diffie-Hellman key exchange algorithm that is used in Phase 1 negotiations. Valid values: **group1**, **group2**, **group5**, and **group14**. Default value: **group2**.'."\n" - ."\n" - .'* **IkeConfig.IkeLifetime**: the SA lifetime as a result of Phase 1 negotiations. Unit: seconds. Valid values: **0** to **86400**. Default value: **86400**.'."\n" - ."\n" - .'* **IkeConfig.LocalId**: the identifier on the Alibaba Cloud side. The identifier cannot exceed 100 characters in length and cannot contain space characters. This parameter is empty by default.'."\n" - ."\n" - .'* **IkeConfig.RemoteId**: the identifier on the data center side. The identifier cannot exceed 100 characters in length and cannot contain space characters. The default value is the IP address of the customer gateway.', - 'type' => 'string', - 'required' => false, - 'example' => '{"Psk":"1234****","IkeVersion":"ikev1","IkeMode":"main","IkeEncAlg":"aes","IkeAuthAlg":"sha1","IkePfs":"group2","IkeLifetime":86400,"LocalId":"47.XX.XX.1","RemoteId":"47.XX.XX.2"}', - ], - ], - [ - 'name' => 'IpsecConfig', - 'in' => 'query', - 'schema' => [ - 'description' => 'This parameter is supported if you create an IPsec-VPN connection in single-tunnel mode.'."\n" - ."\n" - .'The configurations of Phase 2 negotiations:'."\n" - ."\n" - .'* **IpsecConfig.IpsecEncAlg**: the encryption algorithm that is used in Phase 2 negotiations. Valid values: **aes**, **aes192**, **aes256**, **des**, and **3des**. Default value: **aes**.'."\n" - .'* **IpsecConfig. IpsecAuthAlg**: the authentication algorithm that is used in Phase 2 negotiations. Valid values: **md5**, **sha1**, **sha256**, **sha384**, and **sha512**. Default value: **md5**.'."\n" - .'* **IpsecConfig. IpsecPfs**: The Diffie-Hellman key exchange algorithm used in the second phase negotiation. Valid values: **disabled**, **group1**, **group2**, **group5**, and **group14**. Default value: **group2**.'."\n" - .'* **IkeConfig.IkeLifetime**: the SA lifetime determined by Phase 2 negotiations. Unit: seconds. Valid values: **0** to **86400**. Default value: **86400**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '{"IpsecEncAlg":"aes","IpsecAuthAlg":"sha1","IpsecPfs":"group2","IpsecLifetime":86400}', - ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InvalidTagKey', 'errorMessage' => 'The tag keys are not valid.', 'description' => 'The tag index is invalid.'], + ['errorCode' => 'InvalidTagValue', 'errorMessage' => 'The tag values are not valid.', 'description' => 'The tag value is invalid.'], + ['errorCode' => 'InvalidInstanceType.NotFound', 'errorMessage' => 'The instance type is not found', 'description' => 'The instance type is not found.'], + ['errorCode' => 'InvalidInstanceIds.NotFound', 'errorMessage' => 'The instanceIds are not found', 'description' => 'The instance ID is not found.'], + ['errorCode' => 'Forbidden.TagKeys', 'errorMessage' => 'The request do not allow to operate the tag keys', 'description' => 'You do not have the permissions to set the TagKeys parameter.'], + ['errorCode' => 'QuotaExceeded.TagNum', 'errorMessage' => 'Custom Tags quota exceeded', 'description' => 'The upper limit is reached.'], + ['errorCode' => 'InvalidTagScope.NotFound', 'errorMessage' => 'The tag scope is not found', 'description' => 'The resource scope is invalid.'], + ['errorCode' => 'Forbidden.TagKey.Duplicated', 'errorMessage' => 'The specified tag key already exists.', 'description' => 'The tag resources are duplicate.'], + ['errorCode' => 'SizeLimitExceeded.TagNum', 'errorMessage' => 'The maximum number of tags is exceeded.', 'description' => 'The number of tags has reached the upper limit.'], + ['errorCode' => 'SizeLimitExceeded.ResourceId', 'errorMessage' => 'The maximum number of resource IDs is exceeded.', 'description' => 'The number of resource group IDs has reached the upper limit.'], + ['errorCode' => 'MissingParameter.TagValue', 'errorMessage' => 'The input parameter TagValue that is mandatory for processing this request is not supplied.', 'description' => 'The TagValue parameter is not set.'], + ['errorCode' => 'MissingParameter.TagKey', 'errorMessage' => 'The input parameter TagKey that is mandatory for processing this request is not supplied.', 'description' => 'The TagKey parameter is not set.'], ], - [ - 'name' => 'BgpConfig', - 'in' => 'query', - 'schema' => [ - 'description' => 'This parameter is supported when you create an IPsec-VPN connection in single-tunnel mode.'."\n" - ."\n" - .'BGP configuration:'."\n" - ."\n" - .'* **BgpConfig.EnableBgp**: specifies whether to enable BGP. Valid values: **true** and **false** (default).'."\n" - ."\n" - .'* **BgpConfig.LocalAsn**: the ASN on the Alibaba Cloud side. Valid values: **1** to **4294967295**. Default value: **45104**.'."\n" - ."\n" - .' You can enter a value in two segments separated by a period (.). Each segment is 16 bits in length. Enter the number in each segment in decimal format.'."\n" - ."\n" - .' For example, if you enter 123.456, the ASN is 8061384. The ASN is calculated by using the following formula: 123 × 65536 + 456 = 8061384.'."\n" - ."\n" - .'* **BgpConfig.TunnelCidr**: The CIDR block of the IPsec tunnel. The CIDR block must fall into 169.254.0.0/16 and the mask of the CIDR block must be 30 bits in length. The CIDR block cannot be 169.254.0.0/30, 169.254.1.0/30, 169.254.2.0/30, 169.254.3.0/30, 169.254.4.0/30, 169.254.5.0/30, 169.254.6.0/30, or 169.254.169.252/30.'."\n" - ."\n" - .'* **LocalBgpIp**: the BGP address on the Alibaba Cloud side. It must be an IP address that falls within the CIDR block of the IPsec tunnel.'."\n" - ."\n" - .'> - Before you add BGP configurations, we recommend that you learn about how BGP works and the limits. For more information, see [Configure BGP dynamic routing](~~445767~~).'."\n" - .'> - We recommend that you use a private ASN to establish BGP connections to Alibaba Cloud. Refer to the relevant documentation for the private ASN range.', - 'type' => 'string', - 'required' => false, - 'example' => '{"EnableBgp":"true","LocalAsn":"45104","TunnelCidr":"169.254.11.0/30","LocalBgpIp":"169.254.11.1"}', - ], + 403 => [ + ['errorCode' => 'Forbidden', 'errorMessage' => 'User not authorized to operate on the specified resource.', 'description' => 'You do not have the permissions to manage the specified resource. Apply for the permissions and try again.'], ], - [ - 'name' => 'HealthCheckConfig', - 'in' => 'query', - 'schema' => [ - 'description' => 'This parameter is supported if you create an IPsec-VPN connection in single-tunnel mode.'."\n" - ."\n" - .'The health check configurations:'."\n" - ."\n" - .'* **HealthCheckConfig.enable**: indicates whether the health check is enabled. Valid values: **true** and **false** (default).'."\n" - ."\n" - .'* **HealthCheckConfig.dip**: the destination IP address configured for health checks. Enter the IP address of the on-premises data center that the VPC can access through the IPsec connection.'."\n" - ."\n" - .'* **HealthCheckConfig.sip**: the source IP address configured for health checks. Enter the IP address of the VPC that the on-premises data center can access through the IPsec connection.'."\n" - ."\n" - .'* **HealthCheckConfig.interval**: the time interval of health check retries. Unit: seconds. Default value: **3**.'."\n" - ."\n" - .'* **HealthCheckConfig.retry**: the maximum number of health check retries. Default value: **3**.'."\n" - ."\n" - .'* **HealthCheckConfig.Policy**: specifies whether to withdraw published routes when health checks fail. Valid values:'."\n" - ."\n" - .' * **revoke_route** (default): withdraws published routes.'."\n" - .' * **reserve_route**: does not withdraw published routes.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '{"enable":"true","dip":"192.168.1.1","sip":"10.1.1.1","interval":"3","retry":"3","Policy": "revoke_route"}', - ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'Create and bind tags to specified express connect circuit instances', + 'description' => 'Tags are labels that you assign to instances. Each tag consists of a key-value pair. Take note of the following items when you use tags: '."\n" + ."\n" + .'- The tag key of each tag on an instance must be unique.'."\n" + ."\n" + .'- Tags cannot exist without being bound to an instance. Empty tags that are not bound to instances are not supported.'."\n" + ."\n" + .'- Tag information is not shared across regions. '."\n" + ."\n" + .' For example, tags created in the China (Hangzhou) region are not visible in the China (Shanghai) region.'."\n" + ."\n" + .'- You can bind up to 20 tags to a single instance. Before binding tags, Alibaba Cloud checks the number of existing tags on the resource. If the limit is exceeded, an error message is returned.', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'TagResourcesForExpressConnect'], ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], + ], + 'ramActions' => [ [ - 'name' => 'AutoConfigRoute', - 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to automatically configure routes. Valid values:'."\n" - ."\n" - .'* **true** (default)'."\n" - .'* **false**'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:TagResourcesForExpressConnect', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'PhysicalConnection', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:physicalconnection/{#PhysicalConnectionId}'], + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VirtualBorderRouter', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:virtualborderrouter/{#VbrId}'], + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'RouterInterface', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:routerinterface/{#RouterInterfaceId}'], + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'TrafficQos', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:trafficqos/{#QosId}'], + ], ], ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B45\\"\\n}","type":"json"}]', + ], + 'TerminatePhysicalConnection' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'EnableDpd', - 'in' => 'query', - 'schema' => [ - 'description' => 'This parameter is supported if you create an IPsec-VPN connection in single-tunnel mode.'."\n" - ."\n" - .'Specifies whether to enable DPD. Valid values: Valid values:'."\n" - ."\n" - .'* **true** (default): enables DPD. The initiator of the IPsec-VPN connection sends DPD packets to check the existence and availability of the peer. If no feedback is received from the peer within the specified period of time, the connection fails. In this case, ISAKMP SA and IPsec SA are deleted along with the security tunnel.'."\n" - .'* **false**: disables DPD. The initiator of the IPsec-VPN connection does not send DPD packets.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], + 'AK' => [], ], + ], + 'deprecated' => false, + 'systemTags' => ['operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free'], + 'parameters' => [ [ - 'name' => 'EnableNatTraversal', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'This parameter is supported if you create an IPsec-VPN connection in single-tunnel mode.'."\n" - ."\n" - .'Specifies whether to enable NAT traversal. Valid values:'."\n" - ."\n" - .'* **true** (default): enables NAT traversal. After NAT traversal is enabled, the initiator does not check the UDP ports during IKE negotiations and can automatically discover NAT gateway devices along the IPsec-VPN tunnel.'."\n" - .'* **false**: disables NAT traversal.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], + 'schema' => ['description' => 'The region ID of the Express Connect circuit.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'RemoteCaCert', + 'name' => 'PhysicalConnectionId', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => false, - 'description' => 'The peer CA certificate when a ShangMi (SM) VPN gateway is used to create the IPsec-VPN connection.'."\n", - 'example' => '-----BEGIN CERTIFICATE----- MIIB7zCCAZW**** -----END CERTIFICATE-----', - ], + 'schema' => ['description' => 'The ID of the Express Connect circuit.'."\n", 'type' => 'string', 'required' => true, 'example' => 'pc-119mfjzm****', 'title' => ''], ], [ 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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.'."\n" - ."\n" - .'> 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.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-4266****', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'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.'."\n" + ."\n" + .'> 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.'."\n", 'type' => 'string', 'required' => false, 'example' => '02fb3da4-130e-11e9-8e44-0016e04115b', 'title' => ''], ], - [ - 'name' => 'Tags', - 'in' => 'query', - 'style' => 'repeatList', + ], + 'responses' => [ + 200 => [ + 'headers' => [], 'schema' => [ - 'description' => 'The tag value.'."\n" - ."\n" - .'The tag value can be an empty string and cannot exceed 128 characters in length. It cannot start with `aliyun` or `acs:`, and cannot contain `http://` or `https://`.'."\n" - ."\n" - .'Each tag key corresponds to one tag value. You can specify up to 20 tag values in each call.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => 'The tag key. The tag key cannot be an empty string.'."\n" - ."\n" - .'It can be at most 64 characters in length, and cannot contain `http://` or `https://`. It cannot start with `aliyun` or `acs:`.'."\n" - ."\n" - .'You can specify at most 20 tag keys in each call.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'TagKey', - ], - 'Value' => [ - 'description' => 'The tag value.'."\n" - ."\n" - .'The tag value can be an empty string and cannot exceed 128 characters in length. It cannot start with `aliyun` or `acs:`, and cannot contain `http://` or `https://`.'."\n" - ."\n" - .'Each tag key corresponds to one tag value. You can specify at most 20 tag values in each call.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'TagValue', - ], - ], - 'required' => false, + 'description' => 'The request ID.'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '4EC47282-1B74-4534-BD0E-403F3EE64CAF', 'title' => ''], ], - 'required' => false, - 'maxItems' => 21, + 'title' => '', + 'example' => '', ], ], - [ - 'name' => 'ResourceGroupId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the resource group to which the IPsec-VPN connection belongs.'."\n" - ."\n" - .'* You can call the [ListResourceGroups](~~158855~~) operation to query resource group IDs.'."\n" - .'* If you do not specify a resource group ID, the IPsec-VPN connection belongs to the default resource group.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'rg-acfmzs372yg****', - ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'Forbidden.NotAllowedInState', 'errorMessage' => 'The request does not allow in this state.', 'description' => ''], + ['errorCode' => 'Forbidden.VbrAttached', 'errorMessage' => 'Cannot terminate physical connection when virtual border routers are still attached.', 'description' => ''], + ['errorCode' => 'OperationFailed.VpconnAttached', 'errorMessage' => 'Cannot terminate physical connection when vpconn are still attached.', 'description' => 'The shared port still exists and the physical port cannot be disabled.'], + ['errorCode' => 'OperationDenied.MacsecAttached', 'errorMessage' => 'The operation is not allowed because of MacsecAttached.', 'description' => 'The current operation is rejected because there is still a MACSec key binding on the physical connection.'], + ['errorCode' => 'OperationFailed.ResourceLockedBySystem', 'errorMessage' => 'The specified resource is locked by system.', 'description' => 'The operating resource is locked by the system and cannot be operated temporarily.'], + ], + 404 => [ + ['errorCode' => 'InvalidRegionId.NotFound', 'errorMessage' => 'The RegionId provided does not exist in our records.', 'description' => ''], + ['errorCode' => 'InvalidPhysicalConnectionId.NotFound', 'errorMessage' => 'The PhysicalConnectionId provided does not exist in our records.', 'description' => ''], ], + ], + 'title' => 'TerminatePhysicalConnection', + 'summary' => 'Disables an Express Connect circuit after it is enabled.', + 'description' => 'After you call this operation, the specified Express Connect circuit changes to the **Terminating** state. After the Express Connect circuit is disabled, it changes to the **Terminated** state. When you call this operation, take note of the following limits:'."\n" + ."\n" + .'* You can only disable an Express Connect circuit that is in the **Enabled** state.'."\n" + .'* Before you disable an Express Connect circuit, you must delete the virtual border routers (VBRs) associated with it.'."\n", + 'changeSet' => [], + 'ramActions' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"4EC47282-1B74-4534-BD0E-403F3EE64CAF\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 4EC47282-1B74-4534-BD0E-403F3EE64CAF\\n","errorExample":"\\n{\\n \\"RequestId\\": \\"513E0A50-4F2D-4CBE-BF35-40559DF65D79\\"\\n}"}]', + 'operationType' => 'write', + ], + 'TerminateVirtualBorderRouter' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'TunnelOptionsSpecification', - 'in' => 'formData', - 'allowEmptyValue' => true, - 'style' => 'flat', - 'schema' => [ - 'description' => 'The tunnel configurations.'."\n" - ."\n" - .'* You can specify parameters in the **TunnelOptionsSpecification** array when you create an IPsec-VPN connection in dual tunnel mode.'."\n" - .'* When you create a IPsec-VPN connection in dual-tunnel mode, you must add both tunnels to IPsec-VPN connection to ensure that the IPsec-VPN connection has connection redundancy. Each IPsec-VPN connection supports only two tunnels.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The tunnel configuration.'."\n", - 'type' => 'object', - 'properties' => [ - 'CustomerGatewayId' => [ - 'description' => 'The ID of the customer gateway that is associated with the tunnel.'."\n" - ."\n" - .'> This parameter is required when you create a dual-tunnel IPsec-VPN connection.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'cgw-p0w2jemrcj5u61un8****', - ], - 'EnableDpd' => [ - 'description' => 'Specifies whether to enable the DPD feature for the tunnel. Valid values:'."\n" - ."\n" - .'* **true** (default): enables DPD. The initiator of the IPsec-VPN connection sends DPD packets to check the existence and availability of the peer. If no feedback is received from the peer within the specified period of time, the connection fails. In this case, ISAKMP SA and IPsec SA are deleted along with the security tunnel.'."\n" - .'* **false**: disables DPD. The initiator of the IPsec-VPN connection does not send DPD packets.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], - 'EnableNatTraversal' => [ - 'description' => 'Specifies whether to enable NAT traversal for the tunnel. Valid values:'."\n" - ."\n" - .'* **true** (default): enables NAT traversal. After NAT traversal is enabled, the initiator does not check the UDP ports during IKE negotiations and can automatically discover NAT gateway devices along the IPsec-VPN tunnel.'."\n" - .'* **false**: disables NAT traversal.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], - 'TunnelIndex' => [ - 'description' => 'The order in which the tunnel was created.'."\n" - ."\n" - .'* **1**: Tunnel 1.'."\n" - .'* **2**: Tunnel 2.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', - ], - 'TunnelBgpConfig' => [ - 'description' => 'The BGP configurations of the tunnel.'."\n" - ."\n" - .'> If you enable BGP for an IPsec-VPN connection, you must set **EnableTunnelsBgp** parameter to **true**.'."\n", - 'type' => 'object', - 'properties' => [ - 'LocalAsn' => [ - 'description' => 'The ANS of the tunnel on the Alibaba Cloud side. Valid values: **1** to **4294967295**. Default value: **45104**.'."\n" - ."\n" - .'> We recommend that you use a private ASN to establish BGP connections to Alibaba Cloud. Refer to the relevant documentation for the private ASN range.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '65530', - ], - 'LocalBgpIp' => [ - 'description' => 'The BGP IP address of the tunnel on the Alibaba Cloud side. The address is an IP address that falls within the BGP CIDR block.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '169.254.10.1', - ], - 'TunnelCidr' => [ - 'description' => 'The BGP CIDR block of the tunnel. The CIDR block must fall into 169.254.0.0/16 and the mask of the CIDR block must be 30 bits in length. The CIDR block cannot be 169.254.0.0/30, 169.254.1.0/30, 169.254.2.0/30, 169.254.3.0/30, 169.254.4.0/30, 169.254.5.0/30, 169.254.6.0/30, or 169.254.169.252/30.'."\n" - ."\n" - .'> The two tunnels of an IPsec-VPN connection must use different CIDR blocks.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '169.254.10.0/30', - ], - ], - 'required' => false, - ], - 'TunnelIkeConfig' => [ - 'description' => 'The configurations of Phase 1 negotiations.'."\n", - 'type' => 'object', - 'properties' => [ - 'IkeAuthAlg' => [ - 'description' => 'The authentication algorithm that is used in Phase 1 negotiations. Valid values: **md5**, **sha1**, **sha256**, **sha384**, and **sha512**. Default value: **sha1**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'sha1', - ], - 'IkeEncAlg' => [ - 'description' => 'The encryption algorithm that is used in Phase 1 negotiations. Valid values: **aes**, **aes192**, **aes256**, **des**, and **3des**. Default value: **aes**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'aes', - ], - 'IkeLifetime' => [ - 'description' => 'The SA lifetime as a result of Phase 1 negotiations. Unit: seconds.'."\n" - ."\n" - .'Valid values: **0** to **86400**. Default value: **86400**.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '86400', - ], - 'IkeMode' => [ - 'description' => 'The negotiation mode of IKE. Valid values: **main** and **aggressive**. Default value: **main**.'."\n" - ."\n" - .'* **main:** This mode offers higher security during negotiations.'."\n" - .'* **aggressive**: This mode is faster with a higher success rate.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'main', - ], - 'IkePfs' => [ - 'description' => 'The Diffie-Hellman key exchange algorithm that is used in Phase 1 negotiations. Default value: **group2**.\\'."\n" - .'Valid values: **group1**, **group2**, **group5**, and **group14**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'group2', - ], - 'IkeVersion' => [ - 'description' => 'The version of the IKE protocol. Valid values: **ikev1** and **ikev2**. Default value: **ikev2**.'."\n" - ."\n" - .'Compared with IKEv1, IKEv2 simplifies the SA negotiation process and provides better support for scenarios with multiple CIDR blocks.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'ikev2', - ], - 'LocalId' => [ - 'description' => 'The identifier of the tunnel on the Alibaba Cloud side, which is used in Phase 1 negotiations. The identifier cannot exceed 100 characters in length and cannot contain spaces. The default value is the IP address of the tunnel.'."\n" - ."\n" - .'**LocalId** supports fully qualified domain names (FQDNs). If you use an FQDN, we recommend that you set the negotiation mode to **aggressive**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '47.XX.XX.1', - ], - 'Psk' => [ - 'description' => 'The pre-shared key that is used for identity authentication between the tunnel and the tunnel peer.'."\n" - ."\n" - .'* The key cannot contain spaces. The key must be 1 to 100 characters in length, and can contain digits, letters, and the following special characters: ``~!\\`@#$%^&*()_-+={}[]|;:\',.<>/?``'."\n" - .'* If you do not specify a pre-shared key, the system randomly generates a 16-bit string as the pre-shared key. You can call the [DescribeVpnAttachments](~~2526939~~) operation to query the pre-shared key that is automatically generated by the system.'."\n" - ."\n" - .'> The tunnel and the tunnel peer must use the same pre-shared key. Otherwise, the tunnel cannot be established.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '123456****', - ], - 'RemoteId' => [ - 'description' => 'The identifier of the tunnel peer, which is used in Phase 1 negotiations. The identifier cannot exceed 100 characters in length and cannot contain spaces. The default value is the IP address of the customer gateway that is associated with the tunnel.'."\n" - ."\n" - .'**RemoteId** supports FQDNs. If you use an FQDN, we recommend that you set the negotiation mode to **aggressive**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '47.XX.XX.2', - ], - ], - 'required' => false, - ], - 'TunnelIpsecConfig' => [ - 'description' => 'The configurations of Phase 2 negotiations.'."\n", - 'type' => 'object', - 'properties' => [ - 'IpsecAuthAlg' => [ - 'description' => 'The authentication algorithm that is used in Phase 2 negotiations.'."\n" - ."\n" - .'Valid values: **md5**, **sha1**, **sha256**, **sha384**, and **sha512**. Default value: **sha1**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'sha1', - ], - 'IpsecEncAlg' => [ - 'description' => 'The encryption algorithm that is used in Phase 2 negotiations. Valid values: **aes**, **aes192**, **aes256**, **des**, and **3des**. Default value: **aes**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'aes', - ], - 'IpsecLifetime' => [ - 'description' => 'The SA lifetime as a result of Phase 2 negotiations. Unit: seconds.'."\n" - ."\n" - .'Valid values: **0** to **86400**. Default value: **86400**.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '86400', - ], - 'IpsecPfs' => [ - 'description' => 'The Diffie-Hellman key exchange algorithm that is used in Phase 2 negotiations. Default value: **group2**.'."\n" - ."\n" - .'Valid values: **disabled**, **group1**, **group2**, **group5**, and **group14**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'group2', - ], - ], - 'required' => false, - ], - ], - 'required' => false, - ], - 'required' => false, - ], + 'AK' => [], ], + ], + 'deprecated' => false, + 'systemTags' => ['operationType' => 'update'], + 'parameters' => [ [ - 'name' => 'EnableTunnelsBgp', + 'name' => 'RegionId', 'in' => 'query', - 'allowEmptyValue' => true, - 'schema' => [ - 'description' => 'This parameter is available if you create an IPsec-VPN connection in dual-tunnel mode.'."\n" - ."\n" - .'Specifies whether to enable the BGP feature for the tunnel. Valid values: **true** and **false**. Default value: false.'."\n" - ."\n" - .'> Before you add BGP configurations, we recommend that you learn about how BGP works and the limits. For more information, see [Configure BGP dynamic routing](~~445767~~)'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['description' => 'The region ID of the VBR.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'example' => 'cn-shanghai', 'title' => ''], ], [ - 'name' => 'DryRun', + 'name' => 'VbrId', 'in' => 'query', - 'schema' => [ - 'type' => 'boolean', - ], + 'schema' => ['description' => 'The ID of the VBR.'."\n", 'type' => 'string', 'required' => true, 'example' => 'vbr-bp15zckdt37pq72****', 'title' => ''], ], [ - 'name' => 'TunnelBandwidth', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'title' => '用于说明VPN单条隧道的带宽规格,取值:'."\n" - .'Standard(默认值):标准型,默认带宽1Gbps'."\n" - .'Large(大型):大型,默认带宽3Gbps', - 'type' => 'string', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'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.'."\n" + ."\n" + .'> 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.'."\n", 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-426655440000', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => 'The returned data.'."\n", + 'description' => 'The request ID.'."\n", 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '88187252-0E26-3C4D-9D1D-32A04454EBBA', - ], - 'VpnConnectionId' => [ - 'description' => 'The ID of the IPsec-VPN connection.'."\n", - 'type' => 'string', - 'example' => 'vco-p0wb09rama8qwwgfn****', - ], - 'Name' => [ - 'description' => 'The name of the IPsec-VPN connection.'."\n", - 'type' => 'string', - 'example' => 'nametest', - ], - 'CreateTime' => [ - 'description' => 'The timestamp generated when the IPsec-VPN connection was established. Unit: milliseconds.'."\n" - ."\n" - .'This value is a UNIX timestamp representing the number of milliseconds that have elapsed since the epoch time January 1, 1970, 00:00:00 UTC.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1658201810000', - ], - 'Code' => [ - 'description' => 'The status code returned by the current operation. **200** indicates that the operation is successful.'."\n", - 'type' => 'string', - 'example' => '200', - ], - 'Message' => [ - 'description' => 'The information returned by the current operation.'."\n", - 'type' => 'string', - 'example' => 'successful', - ], - 'Success' => [ - 'description' => 'Indicates whether the current operation is successful.'."\n" - ."\n" - .'* **true**'."\n" - .'* **false**'."\n", - 'type' => 'boolean', - 'example' => 'true', - ], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '4EC47282-1B74-4534-BD0E-403F3EE64CAF', 'title' => ''], ], + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'Resource.QuotaFull', - 'errorMessage' => 'The quota of resource is full', - ], - [ - 'errorCode' => 'InvalidVpnConnection.AlreadyExists', - 'errorMessage' => 'Vpn connection already exists.', - ], - [ - 'errorCode' => 'VpnRouteEntry.AlreadyExists', - 'errorMessage' => 'The specified route entry is already exist.', - ], - [ - 'errorCode' => 'VpnRouteEntry.Conflict', - 'errorMessage' => 'The specified route entry has conflict.', - ], - [ - 'errorCode' => 'NotSupportVpnConnectionParameter.IpsecPfs', - 'errorMessage' => 'The specified vpn connection ipsec Ipsec Pfs is not support.', - ], - [ - 'errorCode' => 'NotSupportVpnConnectionParameter.IpsecAuthAlg', - 'errorMessage' => 'The specified vpn connection ipsec Auth Alg is not support.', - ], - [ - 'errorCode' => 'VpnRouteEntry.BackupRoute', - 'errorMessage' => 'Validate backup route entry failed.', - ], - [ - 'errorCode' => 'VpnRouteEntry.InvalidWeight', - 'errorMessage' => 'Invalid route entry weight value.', - ], - [ - 'errorCode' => 'InvalidParameter.VpnConnectionName', - 'errorMessage' => 'The specified vpn connection name is invalid.', - ], - [ - 'errorCode' => 'QuotaExceeded.PolicyBasedRoute', - 'errorMessage' => 'The maximum number of policy-based routes is exceeded. Existing routes: %s. Routes to be created: %s. Maximum routes: %s.', - ], - [ - 'errorCode' => 'MissingParameter.TunnelCidr', - 'errorMessage' => 'The parameter TunnelCidr is mandatory when BGP is enabled.', - ], - [ - 'errorCode' => 'OperationUnsupported.EnableBgp', - 'errorMessage' => 'Current region does not support enable BGP.', - ], - [ - 'errorCode' => 'MissingParam.CustomerGatewayAsn', - 'errorMessage' => 'Asn of customer gateway is mandatory when BGP is enabled.', - ], - [ - 'errorCode' => 'IllegalParam.LocalAsn', - 'errorMessage' => 'The specified LocalAsn is invalid.', - ], - [ - 'errorCode' => 'InvalidParameter.BgpConfig', - 'errorMessage' => 'The specified BgpConfig is invalid.', - ], - [ - 'errorCode' => 'IllegalParam.EnableBgp', - 'errorMessage' => 'VPN connection must enable BGP when VPN gateway has enabled BGP.', - ], - [ - 'errorCode' => 'IllegalParam.TunnelCidr', - 'errorMessage' => 'The specified TunnelCidr is invalid.', - ], - [ - 'errorCode' => 'InvalidLocalBgpIp.Malformed', - 'errorMessage' => 'The specified LocalBgpIp is malformed.', - ], - [ - 'errorCode' => 'IllegalParam.LocalBgpIp', - 'errorMessage' => 'The specified LocalBgpIp is invalid.', - ], - [ - 'errorCode' => 'IllegalParam.LocalSubnet', - 'errorMessage' => 'The specified "LocalSubnet" (%s) is invalid.', - ], - [ - 'errorCode' => 'IllegalParam.RemoteSubnet', - 'errorMessage' => 'The specified "RemoteSubnet" (%s) is invalid.', - ], - [ - 'errorCode' => 'OperationFailed.MissCertificate', - 'errorMessage' => 'The VPN connecton has not associated any certificates.', - ], - [ - 'errorCode' => 'MissingParam.RemoteId', - 'errorMessage' => 'The remote ID is mandatory when creating national standard VPN connection.', - ], - [ - 'errorCode' => 'CustomerGateway.ConflictRouteEntry', - 'errorMessage' => 'The specified customer gateway has conflict with route entry.', - ], - [ - 'errorCode' => 'VpnTask.CONFLICT', - 'errorMessage' => 'Vpn task has conflict.', - ], - [ - 'errorCode' => 'Forbidden.TagKey.Duplicated', - 'errorMessage' => 'The specified tag key already exists.', - ], - [ - 'errorCode' => 'OperationFailed.NoAvailableAmount', - 'errorMessage' => 'The available amount of your account is less than 0, please recharge before attempting to purchase.', - ], - [ - 'errorCode' => 'SizeLimitExceeded.TagNum', - 'errorMessage' => 'The maximum number of tags is exceeded.', - ], - [ - 'errorCode' => 'InvalidParameter.TagValue', - 'errorMessage' => 'The specified parameter TagValue is invalid.', - ], - [ - 'errorCode' => 'InvalidParameter.TagKey', - 'errorMessage' => 'The specified parameter TagKey is invalid.', - ], - [ - 'errorCode' => 'Duplicated.TagKey', - 'errorMessage' => 'The specified parameter TagKey is duplicated.', - ], - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', - ], - [ - 'errorCode' => 'InvalidTunnelCidr.Malformed', - 'errorMessage' => 'The specified TunnelCidr is malformed.', - ], - [ - 'errorCode' => 'CustomerGateway.ConflictVpnIp', - 'errorMessage' => 'The customer gateway associated with the IPSec connection should not have the same IP address as the VPN gateway.', - ], - [ - 'errorCode' => 'MissingParameter.TunnelOptionsSpecification', - 'errorMessage' => 'The required parameters are missing when creating a tunnel for dual-tunnel VPN.', - ], - [ - 'errorCode' => 'CreateDbrRoutesQuotaFull.QuotaFull', - 'errorMessage' => 'The number of created destination routes exceeds the quota limit.', - ], - [ - 'errorCode' => 'DryRunOperation', - 'errorMessage' => 'Request validation has been passed with DryRun flag set.', - ], - [ - 'errorCode' => 'VpnConnection.InvalidCreateTunnelOptions', - 'errorMessage' => 'The master and slave tunnels must be created at the same time.', - ], - [ - 'errorCode' => 'OperationUnsupported.LargeTunnelBandwidth', - 'errorMessage' => 'Large tunnelBandwidth VpnAttachment is unsupported.', - ], - [ - 'errorCode' => 'IllegalParam.TunnelBandwidth', - 'errorMessage' => 'TunnelBandwidth is illegal.', - ], - [ - 'errorCode' => 'EncAlgInvalid.DesIncompatible', - 'errorMessage' => 'Des/3des in IkeEncAlg and IpsecEncAlg does not support multi algorithm.', - ], - [ - 'errorCode' => 'OperationFailed.OpenCdtServiceFirst', - 'errorMessage' => 'The operation is failed because of %s.', - ], - [ - 'errorCode' => 'IkeVersionInvalid.GcmIncompatible', - 'errorMessage' => 'Ikev1 does not support IkeEncAlg of gcm16.', - ], + ['errorCode' => 'InvalidOperation.OperationNotAllowedInState', 'errorMessage' => 'The specified VirutalBorderRouter is in invalid state.', 'description' => ''], ], 403 => [ - [ - 'errorCode' => 'Forbbiden.SubUser', - 'errorMessage' => 'User not authorized to operate on the specified resource as your account is created by another user.', - ], - [ - 'errorCode' => 'Forbidden', - 'errorMessage' => 'User not authorized to operate on the specified resource.', - ], + ['errorCode' => 'Forbidden.OperationTerminateNotAllowedByUser', 'errorMessage' => 'The caller is not allowed to terminate the specified VirtualBorderRouter.', 'description' => 'The caller is not allowed to terminate the specified VirtualBorderRouter.'], ], [ - [ - 'errorCode' => 'InvalidCustomerGatewayInstanceId.NotFound', - 'errorMessage' => 'The specified customer gateway instance id does not exist.', - ], + ['errorCode' => 'InvalidRegionId.NotFound', 'errorMessage' => 'The RegionId provided does not exist in our records.', 'description' => ''], + ['errorCode' => 'InvalidVbrId.NotFound', 'errorMessage' => 'The specified VirutalBorderRouter is not found.', 'description' => ''], ], ], - 'staticInfo' => [ - 'returnType' => 'asynchronous', - 'callback' => 'Vpc::2016-04-28::DescribeVpnConnection', - 'callbackInterval' => 2000, - 'maxCallbackTimes' => 10, - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"88187252-0E26-3C4D-9D1D-32A04454EBBA\\",\\n \\"VpnConnectionId\\": \\"vco-p0wb09rama8qwwgfn****\\",\\n \\"Name\\": \\"nametest\\",\\n \\"CreateTime\\": 1658201810000,\\n \\"Code\\": \\"200\\",\\n \\"Message\\": \\"successful\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n 88187252-0E26-3C4D-9D1D-32A04454EBBA\\n vco-p0wb09rama8qwwgfn****\\n nametest\\n 1658201810000\\n 200\\n true\\n successful\\n","errorExample":""}]', - 'title' => 'CreateVpnAttachment', - 'description' => '* By default, the IPsec-VPN connection created by calling the `CreateVpnAttachment` operation is not bound to any resources. You can call the [CreateTransitRouterVpnAttachment](~~443993~~) operation to bind the IPsec-VPN connection to a transit router.'."\n" - ."\n" - .'* If you want to associate an IPsec-VPN connection with a transit router, you can create a dual-tunnel connection in some regions. For more information, see [Dual-tunnel IPsec-VPN connections](~~2853535~~).'."\n" - ."\n" - .' * When you create a IPsec-VPN connection in dual tunnel mode, you can configure the following request parameters in addition to the required parameters: **ClientToken**, **Name**, **NetworkType**, **EffectImmediately**, **AutoConfigRoute**, **Tags** array, **ResourceGroupId**, **TunnelOptionsSpecification** array, and **EnableTunnelsBgp**.'."\n" - .' * When you create a IPsec-VPN connection in single tunnel mode, you can configure the following request parameters in addition to the required parameters: **ClientToken**, **CustomerGatewayId**, **NetworkType**, **Name**, **EffectImmediately**, **IkeConfig**, **IpsecConfig**, **HealthCheckConfig**, **AutoConfigRoute**, **EnableDpd**, **EnableNatTraversal**, **BgpConfig**, **Tags** array, and **ResourceGroupId**.'."\n" - ."\n" - .'### [](#)Prerequisites'."\n" - ."\n" - .'Before you create an IPsec-VPN connection, you must create a customer gateway in the region where you want to create the IPsec-VPN connection. For more information, see [CreateCustomerGateway](~~120368~~).'."\n" + 'title' => 'TerminateVirtualBorderRouter', + 'summary' => 'Terminates a virtual border router (VBR).', + 'description' => 'After you call this operation, the VBR enters the **terminating** state from the **active** state. After the VBR is terminated, the VBR enters the **terminated** state.'."\n" ."\n" - .'If you want to add BGP configurations to an IPsec-VPN connection, make sure that an autonomous system number (ASN) is assigned to the customer gateway.'."\n", + .'> Only the owner of an Express Connect circuit can call this operation.'."\n", + 'changeSet' => [], + 'ramActions' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"4EC47282-1B74-4534-BD0E-403F3EE64CAF\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 4EC47282-1B74-4534-BD0E-403F3EE64CAF\\n","errorExample":""}]', ], - 'CreateVcoRouteEntry' => [ - 'summary' => 'Adds a destination-based route for an IPsec-VPN connection.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'TransformEipSegmentToPublicIpAddressPool' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -77785,282 +58116,106 @@ ], 'operationType' => 'readAndWrite', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'create', - 'riskType' => 'high', - 'chargeType' => 'free', - ], + 'systemTags' => ['operationType' => 'create', 'riskType' => 'none', 'chargeType' => 'free', 'autoTest' => true, 'tenantRelevance' => 'tenant'], 'parameters' => [ [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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.'."\n" - ."\n" - .'> 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.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cn-hangzhou', - ], - ], - [ - 'name' => 'VpnConnectionId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The response parameters.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'vco-p0w2jpkhi2eeop6q6****', - ], - ], - [ - 'name' => 'RouteDest', + 'name' => 'InstanceId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the IPsec-VPN connection.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => '192.168.10.0/24', - ], + 'allowEmptyValue' => false, + 'schema' => ['description' => 'The instance ID of the contiguous EIP group to migrate.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'eipsg-2zett8ba055tbsxme****', 'title' => ''], ], [ - 'name' => 'Weight', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The destination CIDR block of the destination-based route.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'example' => '100', - ], + 'schema' => ['description' => 'The region ID of the contiguous EIP group. You can call the [DescribeRegions](~~36063~~) operation to query the region ID.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'NextHop', + 'name' => 'Name', 'in' => 'query', - 'schema' => [ - 'description' => 'The next hop of the destination-based route.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'vco-p0w2jpkhi2eeop6q6****', - ], + 'allowEmptyValue' => false, + 'schema' => ['description' => 'The name of the IP address pool instance.'."\n" + ."\n" + .'The name must be 0 to 128 characters in length and cannot start with `http://` or `https://`.', 'type' => 'string', 'required' => false, 'example' => 'AddressPoolName', 'title' => ''], ], [ 'name' => 'Description', 'in' => 'query', - 'schema' => [ - 'description' => 'The weight of the destination-based route. Valid values:'."\n" - ."\n" - .'* **0**: a low priority.'."\n" - .'* **100**: a high priority.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'desctest', - ], + 'schema' => ['description' => 'The description of the IP address pool instance.'."\n" + ."\n" + .'The description must be 0 to 256 characters in length and cannot start with `http://` or `https://`.', 'type' => 'string', 'required' => false, 'example' => 'AddressPoolDescription', 'title' => ''], ], [ - 'name' => 'OverlayMode', + 'name' => 'ResourceGroupId', 'in' => 'query', - 'schema' => [ - 'description' => 'The tunneling protocol.'."\n" - ."\n" - .'The value is set to **Ipsec**, which indicates the IPsec tunneling protocol.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'Ipsec', - ], + 'schema' => ['description' => 'The resource group ID of the IP address pool.', 'type' => 'string', 'required' => false, 'example' => 'rg-acfmxazb4pcdvf****', 'title' => ''], ], [ 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The status of the destination-based route.'."\n" - ."\n" - .'Only **published** is returned, which indicates that the current route is published to the transit router.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-4266****', - ], - ], - [ - 'name' => 'DryRun', - 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to only precheck the request. Valid values:'."\n" - ."\n" - .'* **true**: prechecks the request without performing the operation. The system prechecks the required parameters, request syntax, and limits. If the request fails to pass the precheck, an error message is returned. If the request passes the precheck, the `DryRunOperation` error code is returned.'."\n" - .'* **false** (default): sends the request. After the request passes the precheck, a 2xx HTTP status code is returned and the operation is performed.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'You can use the client to generate the token, but you must make sure that the token is unique among different requests. The ClientToken value can contain only ASCII characters.'."\n" + ."\n" + .'> If you do not specify this parameter, the system uses the **RequestId** of the API request as the **ClientToken**. The **RequestId** may be different for each API request.', 'type' => 'string', 'required' => false, 'example' => '02fb3da4-130e-11****', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'PlainResponse4OpenApi', - 'description' => 'The timestamp when the destination-based route was created. Unit: milliseconds.'."\n" - ."\n" - .'This value is a UNIX timestamp representing the number of milliseconds that have elapsed since January 1, 1970, 00:00:00 UTC.'."\n", 'type' => 'object', 'properties' => [ - 'VpnConnectionId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => 'vco-p0w2jpkhi2eeop6q6****', - ], - 'RouteDest' => [ - 'description' => 'The description of the destination-based route.'."\n", - 'type' => 'string', - 'example' => '192.168.10.0/24', - ], - 'NextHop' => [ - 'description' => '', - 'type' => 'string', - 'example' => 'vco-p0w2jpkhi2eeop6q6****', - ], - 'Weight' => [ - 'description' => '', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '100', - ], - 'OverlayMode' => [ - 'description' => '', - 'type' => 'string', - 'example' => 'Ipsec', - ], - 'State' => [ - 'description' => '', - 'type' => 'string', - 'example' => 'published', - ], - 'CreateTime' => [ - 'description' => '', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1658387202664', - ], - 'RequestId' => [ - 'description' => '', - 'type' => 'string', - 'example' => 'CFC4D13B-E680-3985-95B1-87AA155481DF', - ], - 'Description' => [ - 'description' => '', - 'type' => 'string', - 'example' => 'desctest', - ], + 'PublicIpAddressPoolId' => ['description' => 'The instance ID of the IP address pool.', 'type' => 'string', 'example' => 'pippool-6wetvn6fumkgycssx****', 'title' => ''], + 'ResourceGroupId' => ['description' => 'The resource group ID of the IP address pool.', 'type' => 'string', 'example' => 'rg-acfmxazb4pcdvf****', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '4EC47282-1B74-4534-BD0E-403F3EE64CAF', 'title' => ''], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'Resource.QuotaFull', - 'errorMessage' => 'The quota of resource is full', - ], - [ - 'errorCode' => 'VpnConnection.Configuring', - 'errorMessage' => 'The specified service is configuring.', - ], - [ - 'errorCode' => 'VpnConnection.FinancialLocked', - 'errorMessage' => 'The specified service is financial locked.', - ], - [ - 'errorCode' => 'VpnRouteEntry.AlreadyExists', - 'errorMessage' => 'The specified route entry is already exist.', - ], - [ - 'errorCode' => 'VpnRouteEntry.Conflict', - 'errorMessage' => 'The specified route entry has conflict.', - ], - [ - 'errorCode' => 'VpnRouteEntry.ConflictSSL', - 'errorMessage' => 'The specified route entry has conflict with SSL client.', - ], - [ - 'errorCode' => 'VpnRouteEntry.BackupRoute', - 'errorMessage' => 'Validate backup route entry failed.', - ], - [ - 'errorCode' => 'InvalidNextHop.NotFound', - 'errorMessage' => 'The specified NextHop does not exist.', - ], - [ - 'errorCode' => 'IllegalParam.RouteDest', - 'errorMessage' => 'The specified RouteDest is invalid', - ], - [ - 'errorCode' => 'OperationFailed.InvalidCidrBlock', - 'errorMessage' => 'Operation failed because the specified network block is invalid.', - ], - [ - 'errorCode' => 'QuotaExceeded.VpnRouteEntry', - 'errorMessage' => 'The number of route entries to the VPN gateway in the VPC routing table has reached the quota limit.', - ], - [ - 'errorCode' => 'TaskConflict', - 'errorMessage' => 'The operation is too frequent, please wait a moment and try again.', - ], - [ - 'errorCode' => 'Resource.PbrRouteQuotaFull', - 'errorMessage' => 'The quota of Policy-based route is full.', - ], - [ - 'errorCode' => 'CreatePbrRoutesQuotaFull.QuotaFull', - 'errorMessage' => 'The number of policy routes exceeds the quota limit.', - ], - [ - 'errorCode' => 'CreateDbrRoutesQuotaFull.QuotaFull', - 'errorMessage' => 'The number of created destination routes exceeds the quota limit.', - ], - [ - 'errorCode' => 'DryRunOperation', - 'errorMessage' => 'Request validation has been passed with DryRun flag set.', - ], + ['errorCode' => 'Forbidden.RAM', 'errorMessage' => 'The user is not authorized to operate on the specified resource, or the API operation does not support RAM.', 'description' => 'The RAM authentication failed.'], + ['errorCode' => 'IllegalParam.Name', 'errorMessage' => 'The param of Name [%s] is illegal.', 'description' => 'The error message returned because the Name parameter is set to an invalid value. Specify a valid value and try again.'], + ['errorCode' => 'IllegalParam.Description', 'errorMessage' => 'The param of Description [%s] is illegal.', 'description' => 'The error message returned because the Description parameter is set to an invalid value. Specify a valid values and try again.'], + ['errorCode' => 'Forbidden.CreatePublicIpAddressPool', 'errorMessage' => 'Authentication is failed for creating public ip address pool.', 'description' => 'The error message returned because you cannot create an IP address pool. Check whether you have the relevant permissions.'], + ['errorCode' => 'QuotaExceeded.PublicIpAddressPool', 'errorMessage' => 'The quota of PublicIpAddressPool is exceeded.', 'description' => 'The error message returned because the number of your IP address pools has reached the upper limit. Request a quota increase.'], + ['errorCode' => 'IncorrectBusinessStatus.PublicIpAddressPool', 'errorMessage' => 'The business status of publicIpAddressPool is incorrect.', 'description' => 'The current service status does not support creating an IP address pool instance.'], + ['errorCode' => 'OptInRequired.PublicIpAddressPool', 'errorMessage' => 'You are not authorized to use the requested service of publicIpAddressPool. Ensure that you have subscribed to the service you are trying to use.', 'description' => 'You are not authorized to use the requested IP address pool service. Make sure you have subscribed to the service you are trying to use.'], + ['errorCode' => 'QuotaExceeded.PoolIpQuantity', 'errorMessage' => 'The quota of PoolIpQuantity is exceeded.', 'description' => 'The number of IP addresses in the pool has reached the upper limit.'], + ['errorCode' => 'ResourceNotFound.EipSegment', 'errorMessage' => 'The specified resource of Eip Segment is not found.', 'description' => 'The passed-in consecutive EIP group instances do not exist.'], ], - 403 => [ - [ - 'errorCode' => 'Forbbiden.SubUser', - 'errorMessage' => 'User not authorized to operate on the specified resource.', - ], - [ - 'errorCode' => 'Forbidden', - 'errorMessage' => 'User not authorized to operate on the specified resource.', - ], + ], + 'staticInfo' => ['returnType' => 'asynchronous', 'callback' => 'Vpc::2016-04-28::ListPublicIpAddressPools', 'callbackInterval' => 3000, 'maxCallbackTimes' => 10], + 'title' => 'Migrate a contiguous EIP group to an IP address pool', + 'summary' => 'Migrates a contiguous Elastic IP Address (EIP) group to an IP address pool.', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'TransformEipSegmentToPublicIpAddressPool'], ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], + ], + 'ramActions' => [ [ - [ - 'errorCode' => 'InvalidVpnConnectionInstanceId.NotFound', - 'errorMessage' => 'The specified vpn connection instance id does not exist.', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'vpc:TransformEipSegmentToPublicIpAddressPool', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'All Resource', 'arn' => '*'], + ], ], ], ], - 'staticInfo' => [ - 'returnType' => 'asynchronous', - 'callback' => 'Vpc::2016-04-28::DescribeVpnConnection', - 'callbackInterval' => 1000, - 'maxCallbackTimes' => 10, - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"VpnConnectionId\\": \\"vco-p0w2jpkhi2eeop6q6****\\",\\n \\"RouteDest\\": \\"192.168.10.0/24\\",\\n \\"NextHop\\": \\"vco-p0w2jpkhi2eeop6q6****\\",\\n \\"Weight\\": 100,\\n \\"OverlayMode\\": \\"Ipsec\\",\\n \\"State\\": \\"published\\",\\n \\"CreateTime\\": 1658387202664,\\n \\"RequestId\\": \\"CFC4D13B-E680-3985-95B1-87AA155481DF\\",\\n \\"Description\\": \\"desctest\\"\\n}","errorExample":""},{"type":"xml","example":"\\n vco-p0w2jpkhi2eeop6q6****\\n 192.168.10.0/24\\n vco-p0w2jpkhi2eeop6q6****\\n 100\\n Ipsec\\n published\\n 1658387202664\\n CFC4D13B-E680-3985-95B1-87AA155481DF\\n desctest\\n","errorExample":""}]', - 'title' => 'CreateVcoRouteEntry', - 'description' => 'Adds a destination-based route for an IPsec-VPN connection.', + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"PublicIpAddressPoolId\\": \\"pippool-6wetvn6fumkgycssx****\\",\\n \\"ResourceGroupId\\": \\"rg-acfmxazb4pcdvf****\\",\\n \\"RequestId\\": \\"4EC47282-1B74-4534-BD0E-403F3EE64CAF\\"\\n}","type":"json"}]', ], - 'DeleteVpnAttachment' => [ - 'summary' => 'Deletes an IPsec-VPN connection.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'UnTagResources' => [ + 'summary' => 'Removes tags from resources.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -78068,2484 +58223,1345 @@ ], 'operationType' => 'readAndWrite', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'delete', - ], + 'systemTags' => ['operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ - 'name' => 'RegionId', + 'name' => 'ResourceType', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the IPsec-VPN connection.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The resource type. Valid values:'."\n" + ."\n" + .'* **VPC**'."\n" + .'* **VSWITCH**'."\n" + .'* **ROUTETABLE**'."\n" + .'* **EIP**'."\n" + .'* **VpnGateway**'."\n" + .'* **NATGATEWAY**'."\n" + .'* **COMMONBANDWIDTHPACKAGE**: EIP bandwidth plan'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'VPC', 'title' => ''], ], [ - 'name' => 'VpnConnectionId', + 'name' => 'All', + 'in' => 'query', + 'schema' => ['description' => 'Specifies whether to remove all tags from the specified resource. Valid values:'."\n" + ."\n" + .'* **true**'."\n" + .'* **false** (default)'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], + ], + [ + 'name' => 'ResourceId', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => 'The ID of the IPsec-VPN connection.'."\n", - 'type' => 'string', + 'description' => 'The resource ID. You can specify up to 20 resource IDs.'."\n", + 'type' => 'array', + 'items' => ['description' => 'The resource ID. You can specify up to 20 resource IDs.'."\n", 'type' => 'string', 'required' => false, 'example' => 'vpc-bp16qjewdsunr41m1****', 'title' => ''], 'required' => true, - 'example' => 'vco-p0w7gtr14m09r9lkr****', + 'docRequired' => true, + 'example' => 'vpc-bp16qjewdsunr41m1****', + 'maxItems' => 51, + 'title' => '', ], ], [ - 'name' => 'ClientToken', + 'name' => 'TagKey', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + 'description' => 'The key of the tag that you want to remove. You can specify at most 20 tag keys. It can be an empty string.'."\n" ."\n" - .'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.'."\n" + .'The key cannot exceed 64 characters in length, and can contain digits, periods (.), underscores (\\_), and hyphens (-). The key must start with a letter but cannot start with `aliyun` or `acs:`. The key cannot contain `http://` or `https://`.'."\n", + 'type' => 'array', + 'items' => ['description' => 'The key of the tag that you want to remove. You can specify at most 20 tag keys. It can be an empty string.'."\n" ."\n" - .'> 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.'."\n", - 'type' => 'string', + .'The key cannot exceed 64 characters in length, and can contain digits, periods (.), underscores (\\_), and hyphens (-). The key must start with a letter but cannot start with `aliyun` or `acs:`. The key cannot contain `http://` or `https://`.'."\n", 'type' => 'string', 'required' => false, 'example' => 'FinanceDept', 'title' => ''], 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-4266****', + 'example' => 'FinanceDept', + 'maxItems' => 21, + 'title' => '', ], ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => ['description' => 'The region ID of the resource.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou ', 'title' => ''], + ], ], 'responses' => [ 200 => [ - 'headers' => [], 'schema' => [ - 'title' => 'BaseResponse4OpenApi', - 'description' => 'The response parameters.'."\n", + 'description' => 'The request ID.'."\n", 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '29440C49-398F-3D06-BA8B-E3CD13F3246D', - ], - 'Code' => [ - 'description' => 'The status code returned by the current operation. **200** indicates that the operation is successful.'."\n", - 'type' => 'string', - 'example' => '200', - ], - 'Success' => [ - 'description' => 'Indicates whether the current operation is successful.'."\n" - ."\n" - .'* **true**'."\n" - .'* **false**'."\n", - 'type' => 'boolean', - 'example' => 'true', - ], - 'Message' => [ - 'description' => 'The information returned by the current operation.'."\n", - 'type' => 'string', - 'example' => 'successful', - ], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => 'C46FF5A8-C5F0-4024-8262-B16B639225A0 ', 'title' => ''], ], + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'VpnConnection.Configuring', - 'errorMessage' => 'The specified service is configuring.', - ], - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', - ], - [ - 'errorCode' => 'Vco.StatusNotSupport', - 'errorMessage' => 'The current VCO status does not support operations such as modification and deletion.', - ], - [ - 'errorCode' => 'CrossAccountAuthorizedVco.NotAllowDelete', - 'errorMessage' => 'Current vpn connection is cross account authorized to cen, should delete cross account authorization first.', - ], + ['errorCode' => 'InvalidTagKey', 'errorMessage' => 'The tag keys are not valid.', 'description' => 'The tag index is invalid.'], + ['errorCode' => 'InvalidTagValue', 'errorMessage' => 'The tag values are not valid.', 'description' => 'The tag value is invalid.'], + ['errorCode' => 'MissingParam', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'InvalidInstanceType.NotFound', 'errorMessage' => 'The instance type is not found', 'description' => 'The instance type is not found.'], + ['errorCode' => 'InvalidInstanceIds.NotFound', 'errorMessage' => 'The instanceIds are not found', 'description' => 'The instance ID is not found.'], + ['errorCode' => 'Forbidden.TagKeys', 'errorMessage' => 'The request do not allow to operate the tag keys', 'description' => 'You do not have the permissions to set the TagKeys parameter.'], + ['errorCode' => 'QuotaExceeded.TagNum', 'errorMessage' => 'Custom Tags quota exceeded', 'description' => 'The upper limit is reached.'], + ['errorCode' => 'Forbidden.NotAllowedCategary', 'errorMessage' => 'The System tag is not valid', 'description' => 'The error message returned because the system tag is invalid.'], + ['errorCode' => 'Forbidden.TagKey.Duplicated', 'errorMessage' => 'The specified tag key already exists.', 'description' => 'The tag resources are duplicate.'], + ['errorCode' => 'SizeLimitExceeded.TagNum', 'errorMessage' => 'The maximum number of tags is exceeded.', 'description' => 'The number of tags has reached the upper limit.'], + ['errorCode' => 'SizeLimitExceeded.ResourceId', 'errorMessage' => 'The maximum number of resource IDs is exceeded.', 'description' => 'The number of resource group IDs has reached the upper limit.'], + ['errorCode' => 'DuplicatedParam.ResourceIds', 'errorMessage' => 'The parameter of ResourceIds contains duplicate values.', 'description' => ''], ], 403 => [ - [ - 'errorCode' => 'Forbbiden.SubUser', - 'errorMessage' => 'User not authorized to operate on the specified resource as your account is created by another user. ', - ], - [ - 'errorCode' => 'Forbidden ', - 'errorMessage' => 'User not authorized to operate on the specified resource. ', - ], - ], - [ - [ - 'errorCode' => 'InvalidVpnConnectionInstanceId.NotFound ', - 'errorMessage' => 'The specified vpn connection instance id does not exist. ', - ], + ['errorCode' => 'Forbidden', 'errorMessage' => 'User not authorized to operate on the specified resource.', 'description' => 'You do not have the permissions to manage the specified resource. Apply for the permissions and try again.'], ], ], - 'eventInfo' => [ - 'enable' => false, - 'eventNames' => [], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'UnTagResources', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2023-07-28T01:53:52.000Z', 'description' => 'Request parameters changed, Response parameters changed'], + ['createdAt' => '2023-07-10T06:55:02.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2023-05-16T09:35:26.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-03-23T02:20:38.000Z', 'description' => 'Error codes changed'], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"29440C49-398F-3D06-BA8B-E3CD13F3246D\\",\\n \\"Code\\": \\"200\\",\\n \\"Success\\": true,\\n \\"Message\\": \\"successful\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 29440C49-398F-3D06-BA8B-E3CD13F3246D\\n 200\\n true\\n successful\\n","errorExample":""}]', - 'title' => 'DeleteVpnAttachment', - 'description' => '* If an IPsec-VPN connection is associated with a transit router, you must disassociate the transit router from the IPsec-VPN connection before you delete the IPsec-VPN connection. For more information, see [DeleteTransitRouterVpnAttachment](~~468251~~).'."\n" - .'* If an IPsec-VPN connection is not associated with a resource, you can call `DeleteVpnAttachment` to directly delete the IPsec-VPN connection.'."\n", + 'ramActions' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"C46FF5A8-C5F0-4024-8262-B16B639225A0\\\\t\\"\\n}","errorExample":""},{"type":"xml","example":"\\n C46FF5A8-C5F0-4024-8262-B16B639225A0\\t\\n","errorExample":""}]', ], - 'DeleteVcoRouteEntry' => [ - 'summary' => 'Deletes a destination-based route from an IPsec-VPN connection.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'UnassociateEipAddress' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'readAndWrite', - 'deprecated' => false, - 'systemTags' => [], + 'systemTags' => ['operationType' => 'delete', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ - 'name' => 'RegionId', + 'name' => 'Force', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the IPsec-VPN connection.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'Specifies whether to forcefully disassociate the EIP when the EIP is associated with a NAT gateway that has DNAT or SNAT entries configured. Valid values:'."\n" + ."\n" + .'- **false** (default): does not forcefully disassociate the EIP.'."\n" + ."\n" + .'- **true**: forcefully disassociates the EIP.', 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], ], [ - 'name' => 'VpnConnectionId', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the IPsec-VPN attachment.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'vco-p0w5112fgnl2ihlmf****', - ], + 'schema' => ['description' => 'The region ID of the EIP to disassociate.'."\n" + .' You can call [DescribeRegions](~~36063~~) to query the region ID.', 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'RouteDest', + 'name' => 'AllocationId', 'in' => 'query', - 'schema' => [ - 'description' => 'The destination CIDR block of the destination-based route that you want to delete.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => '192.168.10.0/24', - ], + 'schema' => ['description' => 'The ID of the EIP to disassociate.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'eip-2zeerraiwb7uj6i0d****', 'title' => ''], ], [ - 'name' => 'Weight', + 'name' => 'InstanceId', 'in' => 'query', - 'schema' => [ - 'description' => 'The weight of the destination-based route that you want to delete. Valid values:'."\n" - ."\n" - .'* **0**: a low priority'."\n" - .'* **100**: a high priority'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'example' => '100', - ], + 'schema' => ['description' => 'The ID of the cloud resource instance from which to disassociate the EIP.'."\n" + .'You can enter the instance ID of a NAT gateway, Classic Load Balancer (CLB) instance, ECS instance, secondary elastic network interface controller (NIC) instance, high-availability virtual IP address instance, or an IP address.', 'type' => 'string', 'required' => false, 'example' => 'i-hp3akk9irtd69jad****', 'title' => ''], ], [ - 'name' => 'NextHop', + 'name' => 'InstanceType', 'in' => 'query', - 'schema' => [ - 'description' => 'The next hop of the destination-based route that you want to delete.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'vco-p0w5112fgnl2ihlmf****', - ], + 'schema' => ['description' => 'The type of the cloud resource from which to disassociate the EIP. Valid values: '."\n" + ."\n" + .'- **EcsInstance** (default): an ECS instance in a virtual private cloud (VPC). '."\n" + ."\n" + .'- **SlbInstance**: an SLB instance in a virtual private cloud (VPC). '."\n" + ."\n" + .'- **NetworkInterface**: a secondary elastic network interface controller (NIC) in a virtual private cloud (VPC).'."\n" + ."\n" + .'- **Nat**: a NAT gateway. '."\n" + ."\n" + .'- **HaVip**: a high-availability virtual IP address.'."\n" + .'- **IpAddress**: an IP address.', 'type' => 'string', 'required' => false, 'example' => 'EcsInstance', 'title' => ''], ], [ - 'name' => 'OverlayMode', + 'name' => 'PrivateIpAddress', 'in' => 'query', - 'schema' => [ - 'description' => 'The tunneling protocol. Set the value to **Ipsec**, which specifies the IPsec tunneling protocol.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'Ipsec', - ], + 'schema' => ['description' => 'The private IP address of the ECS instance or secondary elastic network interface controller (NIC) instance from which to disassociate the EIP.', 'type' => 'string', 'required' => false, 'example' => '192.XX.XX.2', 'title' => ''], ], [ 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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.'."\n" - ."\n" - .'> 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.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-4266****', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'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.'."\n" + ."\n" + .'> If you do not specify this parameter, the system automatically uses the **RequestId** as the **ClientToken**. The **RequestId** may be different for each API request.', 'type' => 'string', 'required' => false, 'example' => '02fb3da4-130e-11**** ', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'BaseResponse4OpenApi', - 'description' => 'The response parameters.'."\n", + 'description' => 'The response parameters.', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '9208DDD8-0930-3CE6-AF7F-732B4E67B3DD', - ], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '0ED8D006-F706-4D23-88ED-E11ED28DCAC0', 'title' => ''], ], + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'Resource.QuotaFull', - 'errorMessage' => 'The quota of resource is full', - ], - [ - 'errorCode' => 'VpnConnection.Configuring', - 'errorMessage' => 'The specified service is configuring.', - ], - [ - 'errorCode' => 'VpnConnection.FinancialLocked', - 'errorMessage' => 'The specified service is financial locked.', - ], - [ - 'errorCode' => 'VpnRouteEntry.AlreadyExists', - 'errorMessage' => 'The specified route entry is already exist.', - ], - [ - 'errorCode' => 'VpnRouteEntry.Conflict', - 'errorMessage' => 'The specified route entry has conflict.', - ], - [ - 'errorCode' => 'InvalidRouteEntry.NotFound', - 'errorMessage' => 'The specified route entry does not exist.', - ], - [ - 'errorCode' => 'TaskConflict', - 'errorMessage' => 'The operation is too frequent, please wait a moment and try again.', - ], + ['errorCode' => 'IncorrectEipStatus', 'errorMessage' => 'Current elastic IP status does not support this operation.', 'description' => ''], + ['errorCode' => 'InvalidInstanceId.NotFound', 'errorMessage' => 'Specified instance does not exist.', 'description' => ''], + ['errorCode' => 'IncorrectInstanceStatus', 'errorMessage' => 'The current status of instance does not support this operation.', 'description' => ''], + ['errorCode' => 'InvalidInstanceType.ValueNotSupported', 'errorMessage' => 'The specified value of InstanceType is not supported.', 'description' => ''], + ['errorCode' => 'IncorrectHaVipStatus', 'errorMessage' => 'This operation is denied because satus of the specified HaVip is neither Available nor InUse.', 'description' => 'You cannot perform the operation when the specified HAVIP is in the Available or InUse state.'], + ['errorCode' => 'OperationDenied', 'errorMessage' => 'Eip of default vpc not allow this operation', 'description' => ''], + ['errorCode' => 'InvalidParameter', 'errorMessage' => 'The specified parameter is not valid.', 'description' => ''], + ['errorCode' => 'TaskConflict', 'errorMessage' => 'The eip operate too frequent, TaskConflict.', 'description' => 'Operations are too frequent and tasks conflict with each other.'], + ['errorCode' => 'InvalidBindingStatus', 'errorMessage' => 'The eip binding status invalid.', 'description' => ''], + ['errorCode' => 'Forbidden.FinancialLocked', 'errorMessage' => 'The ip business status is invalid.', 'description' => 'The error message returned because the instance has overdue payments.'], + ['errorCode' => 'InvalidIpStatus.HasBeenUsedBySnatTable', 'errorMessage' => 'The removed ip address has been used by snat table.', 'description' => ''], + ['errorCode' => 'InvalidIpStatus.HasBeenUsedByForwardEntry', 'errorMessage' => 'The specified address has been used by forwardTable.', 'description' => ''], + ['errorCode' => 'Eni.Attached', 'errorMessage' => 'The eni should be detached from ecs when associating with direct eip.', 'description' => 'If the ENI is associated with an EIP in cut-through mode, you must disassociate the ENI from the ECS instance.'], + ['errorCode' => 'InvalidEIPStatus.BizDisabled', 'errorMessage' => 'The EIP has been locked.', 'description' => 'The error message returned because the EIP is locked.'], + ['errorCode' => 'InvalidStatus.EcsStatusNotSupport', 'errorMessage' => 'The special instance status Pending is not support operate', 'description' => 'The operation is not supported because the instance is suspended.'], + ['errorCode' => 'InvalidStatus.EniStatusNotSupport', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'InvalidStatus.SnatOrDnat', 'errorMessage' => 'Operation failed because snat or dnat in unstable status.', 'description' => 'The EIP failed to be disassociated because the SNAT or DNAT entry is in an unstable state.'], + ['errorCode' => 'DependencyViolation.SnatEntry', 'errorMessage' => 'The specified eip is in ip pool.', 'description' => ''], + ['errorCode' => '%s', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'InvalidStatus.NotAllow', 'errorMessage' => 'Bind instance status invalid', 'description' => 'The status of the associated instance is invalid.'], + ['errorCode' => 'Forbidden', 'errorMessage' => 'The eip instance owener error', 'description' => 'The EIP does not belong to your account. Check whether you have the permissions to perform the operation on the EIP.'], + ['errorCode' => 'InvalidLoadBalancerId.NotFound', 'errorMessage' => 'LoadBalancerId does not exist.', 'description' => 'The ID of the SLB instance does not exist.'], + ['errorCode' => 'OperationFailed.SystemBusy', 'errorMessage' => 'Operation failed because system is busy.', 'description' => 'The error message returned because the system is busy. Try again later.'], ], - 403 => [ - [ - 'errorCode' => 'Forbbiden.SubUser', - 'errorMessage' => 'User not authorized to operate on the specified resource as your account is created by another user.', - ], - [ - 'errorCode' => 'Forbidden', - 'errorMessage' => 'User not authorized to operate on the specified resource.', - ], + 404 => [ + ['errorCode' => 'InvalidAllocationId.NotFound', 'errorMessage' => 'Specified allocation ID is not found', 'description' => 'The specified EIP does not exist. Check whether the specified value is valid.'], + ['errorCode' => 'InvalidBindInstance.NotFound', 'errorMessage' => 'The specified bind instance does not exist.', 'description' => ''], + ], + ], + 'title' => 'Disassociate an EIP from a cloud resource', + 'summary' => 'Disassociates an elastic IP address (EIP) from a cloud resource.', + 'description' => '- The **UnassociateEipAddress** operation is asynchronous. After you call this operation, the system returns a request ID, but the EIP is not immediately disassociated. The disassociation task runs in the background. You can call [DescribeEipAddresses](~~120193~~) to query the status of the EIP: '."\n" + .' - If the EIP is in the **Unassociating** state, the EIP is being disassociated. In this state, you can only perform query operations.'."\n" + .' - If the EIP is in the **Available** state, the EIP is disassociated.'."\n" + .'- The **UnassociateEipAddress** operation does not support concurrent disassociation of the same EIP.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2023-06-26T06:23:10.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2022-11-25T03:42:37.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2022-11-17T11:38:45.000Z', 'description' => 'Error codes changed'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'UnassociateEipAddress'], ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], + ], + 'ramActions' => [ [ - [ - 'errorCode' => 'InvalidVpnConnectionInstanceId.NotFound', - 'errorMessage' => 'The specified vpn connection instance id does not exist.', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'vpc:UnassociateEipAddress', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'conditional', 'product' => 'VPC', 'resourceType' => 'Instance', 'arn' => 'acs:ecs:{#regionId}:{#accountId}:instance/{#InstanceId}'], + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'Address', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:eip/{#AllocationId}'], + ['validationType' => 'conditional', 'product' => 'VPC', 'resourceType' => 'HaVip', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:havip/{#HaVipId}'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"9208DDD8-0930-3CE6-AF7F-732B4E67B3DD\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 9208DDD8-0930-3CE6-AF7F-732B4E67B3DD\\n","errorExample":""}]', - 'title' => 'DeleteVcoRouteEntry', - 'description' => '* **DeleteVcoRouteEntry** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call the [DescribeVpnConnection](~~53046~~) operation to query the status of the task.'."\n" - ."\n" - .' * If the IPsec-VPN connection is in the **updating** state, the route is being deleted.'."\n" - .' * If the IPsec-VPN connection is in the **attached** state, the route is deleted.'."\n" - ."\n" - .'* You cannot repeatedly call the **DeleteVcoRouteEntry** operation within a specific time period.'."\n", + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"0ED8D006-F706-4D23-88ED-E11ED28DCAC0\\"\\n}","type":"json"}]', ], - 'ModifyVpnAttachmentAttribute' => [ - 'summary' => 'Modifies the configuration of an IPsec-VPN connection.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'UnassociateGlobalAccelerationInstance' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'update', - 'riskType' => 'none', - 'chargeType' => 'free', - 'tenantRelevance' => 'tenant', - ], + 'systemTags' => ['operationType' => 'delete'], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region in which the IPsec-VPN connection is established.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The region ID of the GA instance.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'VpnConnectionId', + 'name' => 'GlobalAccelerationInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the IPsec-VPN connection.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'vco-p0w5112fgnl2ihlmf****', - ], + 'schema' => ['description' => 'The ID of the GA instance.'."\n", 'type' => 'string', 'required' => true, 'example' => 'ga-1sxeedefrr33****', 'title' => ''], ], [ - 'name' => 'Name', + 'name' => 'InstanceType', 'in' => 'query', + 'schema' => ['description' => 'The backend server type. Valid values:'."\n" + ."\n" + .'* **RemoteEcsInstance**: Elastic Compute Service (ECS) instance'."\n" + .'* **RemoteSlbInstance**: Server Load Balancer (SLB) instance'."\n" + .'* **RemoteEniInstance**: elastic network interface (ENI)'."\n", 'type' => 'string', 'required' => false, 'example' => 'RemoteEcsInstance', 'title' => ''], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => 'The name of the IPsec-VPN connection.'."\n" - ."\n" - .'The name must be 1 to 100 characters in length and cannot start with `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'nametest', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => 'BD5BCEE8-F62C-40C2-9AC3-89XXXXXXXXX', 'title' => ''], + ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'IncorrectGlobalAccelerationInstanceIdStatus', 'errorMessage' => 'Current GlobalAccelerationInstance status does not support this operation.', 'description' => ''], + ['errorCode' => 'Forbidden.FinancialLocked', 'errorMessage' => 'The ip business status is invalid.', 'description' => 'The error message returned because the instance has overdue payments.'], + ['errorCode' => 'Forbbiden.InvaildOwner', 'errorMessage' => 'The GlobalAccelerationInstance owener error', 'description' => ''], + ], + 404 => [ + ['errorCode' => 'InvalidRegionId.NotFound', 'errorMessage' => 'The specified region is not supported.', 'description' => ''], + ['errorCode' => 'InvalidGlobalAccelerationInstanceId.NotFound', 'errorMessage' => 'The specified GlobalAccelerationInstanceId is not found.', 'description' => ''], + ], + ], + 'title' => 'UnassociateGlobalAccelerationInstance', + 'summary' => 'Disassociates a Global Accelerator (GA) instance from a backend server.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [ [ - 'name' => 'LocalSubnet', - 'in' => 'query', - 'schema' => [ - 'description' => 'The CIDR block of the virtual private cloud (VPC) that communicates with the data center. The CIDR block is used in Phase 2 negotiations.'."\n" - ."\n" - .'Separate multiple CIDR blocks with commas (,). Example: 192.168.1.0/24,192.168.2.0/24.'."\n" - ."\n" - .'The following routing modes are supported:'."\n" - ."\n" - .'* If you set **LocalSubnet** and **RemoteSubnet** to 0.0.0.0/0, the routing mode of the IPsec-VPN connection is set to Destination Routing Mode.'."\n" - .'* If you set **LocalSubnet** and **RemoteSubnet** to specific CIDR blocks, the routing mode of the IPsec-VPN connection is set to Protected Data Flows.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '10.1.1.0/24,10.1.2.0/24', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'vpc:UnassociateGlobalAccelerationInstance', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'All Resource', 'arn' => '*'], + ], ], ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"BD5BCEE8-F62C-40C2-9AC3-89XXXXXXXXX\\"\\n}","errorExample":"\\n\\n BD5BCEE8-F62C-40C2-9AC3-89XXXXXXXXX\\n"},{"type":"xml","example":"\\n BD5BCEE8-F62C-40C2-9AC3-89XXXXXXXXX\\n","errorExample":"{\\n \\"RequestId\\": \\"BD5BCEE8-F62C-40C2-9AC3-89XXXXXXXXX\\"\\n}"}]', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'UnassociateGlobalAccelerationInstance'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], + ], + ], + 'UnassociateHaVip' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'RemoteSubnet', - 'in' => 'query', - 'schema' => [ - 'description' => 'The CIDR block of the data center that communicates with the VPC. This CIDR block is used in Phase 2 negotiations.'."\n" - ."\n" - .'Separate multiple CIDR blocks with commas (,). Example: 192.168.3.0/24,192.168.4.0/24.'."\n" - ."\n" - .'The following routing modes are supported:'."\n" - ."\n" - .'* If you set **LocalSubnet** and **RemoteSubnet** to 0.0.0.0/0, the routing mode of the IPsec-VPN connection is set to Destination Routing Mode.'."\n" - .'* If you set **LocalSubnet** and **RemoteSubnet** to specific CIDR blocks, the routing mode of the IPsec-VPN connection is set to Protected Data Flows.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '10.1.3.0/24,10.1.4.0/24', - ], + 'AK' => [], ], + ], + 'operationType' => 'readAndWrite', + 'systemTags' => ['operationType' => 'delete'], + 'parameters' => [ [ - 'name' => 'EffectImmediately', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to immediately start IPsec negotiations after the configuration takes effect. Valid values:'."\n" - ."\n" - .'* **true**: immediately starts IPsec negotiations after the configuration is complete.'."\n" - .'* **false**: starts IPsec negotiations when inbound traffic is detected.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request. 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 and cannot exceed 64 characters in length.'."\n", 'type' => 'string', 'required' => false, 'example' => '0c593ea1-3bea-11e9-b96b-88e9fe63****', 'title' => ''], ], [ - 'name' => 'IkeConfig', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'This parameter is supported if you modify the configurations of an IPsec-VPN connection in single-tunnel mode.'."\n" - ."\n" - .'The configuration of Phase 1 negotiations:'."\n" - ."\n" - .'* **IkeConfig.Psk**: The pre-shared key that is used for identity authentication between the Alibaba Cloud IPsec connection and the on-premises data center.'."\n" - ."\n" - .' * The key must be 1 to 100 characters in length, and can contain digits, and letters. The key cannot contain spaces. ``~!`@#$%^&*()_-+={}[]|;:\',.<>/?``'."\n" - .' * If you do not specify a pre-shared key, the system randomly generates a 16-bit string as the pre-shared key. You can call the [DescribeVpnConnection](~~120374~~) operation to query the pre-shared key that is automatically generated by the system.'."\n" - ."\n" - .' > The pre-shared key of the IPsec-VPN connection must be the same as the authentication key of the on-premises data center. Otherwise, connections between the on-premises data center and the VPN gateway cannot be established.'."\n" - ."\n" - .'* **IkeConfig.IkeVersion**: the version of the Internet Key Exchange (IKE) protocol. Valid values: **ikev1** and **ikev2**.'."\n" - ."\n" - .'* **IkeConfig.IkeMode**: the negotiation mode. Valid values: **main** and **aggressive**.'."\n" - ."\n" - .'* **IkeConfig.IkeEncAlg:** the encryption algorithm that is used in Phase 1 negotiations. Valid values: **aes**, **aes192**, **aes256**, **des**, and **3des**.'."\n" - ."\n" - .'* **IkeConfig.IkeAuthAlg**: the authentication algorithm that is used in Phase 1 negotiations. Valid values: **md5**, **sha1**, **sha256**, **sha384**, and **sha512**.'."\n" - ."\n" - .'* **IkeConfig.IkePfs**: the Diffie-Hellman key exchange algorithm that is used in Phase 1 negotiations. Valid values: **group1**, **group2**, **group5**, and **group14**.'."\n" - ."\n" - .'* **IkeConfig.IkeLifetime**: the SA lifetime as a result of Phase 1 negotiations. Unit: seconds. Valid values: **0** to **86400**.'."\n" - ."\n" - .'* **IkeConfig.LocalId**: the identifier on the Alibaba Cloud side. The identifier cannot exceed 100 characters in length and cannot contain spaces.'."\n" - ."\n" - .'* **IkeConfig.RemoteId**: the identifier of the data center. It cannot exceed 100 characters in length and cannot contain spaces.', - 'type' => 'string', - 'required' => false, - 'example' => '{"Psk":"1234****","IkeVersion":"ikev1","IkeMode":"main","IkeEncAlg":"aes","IkeAuthAlg":"sha1","IkePfs":"group2","IkeLifetime":86400,"LocalId":"47.XX.XX.1","RemoteId":"47.XX.XX.2"}', - ], + 'schema' => ['description' => 'The region ID of the HAVIP.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-shanghai', 'title' => ''], ], [ - 'name' => 'IpsecConfig', + 'name' => 'HaVipId', 'in' => 'query', - 'schema' => [ - 'description' => 'This parameter is supported if you modify the configurations of an IPsec-VPN connection in single-tunnel mode.'."\n" - ."\n" - .'The configuration of Phase 2 negotiations:'."\n" - ."\n" - .'* **IpsecConfig.IpsecEncAlg:** the encryption algorithm that is used in Phase 2 negotiations. Valid values: **aes**, **aes192**, **aes256**, **des**, and **3des**.'."\n" - .'* **IpsecConfig. IpsecAuthAlg:** the authentication algorithm that is used in Phase 2 negotiations. Valid values: **md5**, **sha1**, **sha256**, **sha384**, and **sha512**.'."\n" - .'* **IpsecConfig. IpsecPfs:** the Diffie-Hellman key exchange algorithm that is used in Phase 2 negotiations. Valid values: **disabled**, **group1**, **group2**, **group5**, and **group14**.'."\n" - .'* **IkeConfig.IkeLifetime**: the SA lifetime determined by Phase 2 negotiations. Unit: seconds. Valid values: **0** to **86400**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '{"IpsecEncAlg":"aes","IpsecAuthAlg":"sha1","IpsecPfs":"group2","IpsecLifetime":86400}', - ], + 'schema' => ['description' => 'The ID of the HAVIP that you want to disassociate.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'havip-2zeo05qre24nhrqpy****', 'title' => ''], ], [ - 'name' => 'BgpConfig', + 'name' => 'InstanceId', 'in' => 'query', - 'schema' => [ - 'description' => 'This parameter is supported if you modify the configurations of an IPsec-VPN connection in single-tunnel mode.'."\n" - ."\n" - .'BGP configuration:'."\n" - ."\n" - .'* **BgpConfig.EnableBgp**: specifies whether to enable BGP. Valid values:'."\n" - ."\n" - .' * **true**'."\n" - .' * **false**'."\n" - ."\n" - .'* **BgpConfig.LocalAsn**: the autonomous system number (ASN) on the Alibaba Cloud side. Valid values: **1** to **4294967295**.'."\n" - ."\n" - .' You can enter a value in two segments separated by a period (.). Each segment is 16 bits in length. Enter the number in each segment in decimal format.'."\n" - ."\n" - .' For example, if you enter 123.456, the ASN is 8061384. The ASN is calculated by using the following formula: 123 × 65536 + 456 = 8061384.'."\n" - ."\n" - .'* **BgpConfig.TunnelCidr**: The CIDR block of the IPsec tunnel. The CIDR block must fall into 169.254.0.0/16 and the mask of the CIDR block must be 30 bits in length. The CIDR block cannot be 169.254.0.0/30, 169.254.1.0/30, 169.254.2.0/30, 169.254.3.0/30, 169.254.4.0/30, 169.254.5.0/30, 169.254.6.0/30, or 169.254.169.252/30.'."\n" - ."\n" - .'* **LocalBgpIp**: the BGP address on the Alibaba Cloud side. It must be an IP address that falls within the CIDR block of the IPsec tunnel.'."\n" - ."\n" - .'> - Before you add BGP configurations, we recommend that you learn about how BGP works and the limits. For more information, see [Configure BGP dynamic routing](~~445767~~).'."\n" - .'> - We recommend that you use a private ASN to establish BGP connections to Alibaba Cloud. Refer to the relevant documentation for the private ASN range.', - 'type' => 'string', - 'required' => false, - 'example' => '{"EnableBgp":"true","LocalAsn":"45104","TunnelCidr":"169.254.11.0/30","LocalBgpIp":"169.254.11.1"}', - ], + 'schema' => ['description' => 'The ID of the ECS instance or ENI from which you want to disassociate the HAVIP.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'i-faf344422ffsfad****', 'title' => ''], ], [ - 'name' => 'HealthCheckConfig', + 'name' => 'Force', 'in' => 'query', - 'schema' => [ - 'description' => 'This parameter is supported if you modify the configurations of an IPsec-VPN connection in single-tunnel mode.'."\n" - ."\n" - .'The health check configurations:'."\n" - ."\n" - .'* **HealthCheckConfig.enable**: specifies whether to enable the health check feature. Valid values:'."\n" - ."\n" - .' * **true**'."\n" - .' * **false**'."\n" - ."\n" - .'* **HealthCheckConfig.dip**: the destination IP address configured for health checks. Specify the IP address of the data center with which the VPC can access through the IPsec-VPN connection.'."\n" - ."\n" - .'* **HealthCheckConfig.sip**: the source IP address configured for health checks. The IP address of the VPC with which the data center can access through the IPsec-VPN connection.'."\n" - ."\n" - .'* **HealthCheckConfig.interval**: the interval between two consecutive health checks. Unit: seconds.'."\n" - ."\n" - .'* **HealthCheckConfig.retry:** the maximum number of health check retries.'."\n" - ."\n" - .'* **HealthCheckConfig.Policy**: specifies whether to withdraw advertised routes when health checks fail. Valid values:'."\n" - ."\n" - .' * **revoke_route**'."\n" - .' * **reserve_route**'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '{"enable":"true","dip":"192.168.1.1","sip":"10.1.1.1","interval":"3","retry":"3","Policy": "revoke_route"}', - ], + 'schema' => ['description' => 'Specifies whether to forcefully disassociate the HAVIP from the ECS instance or ENI. Valid values:'."\n" + ."\n" + .'* **True**'."\n" + .'* **False** (default)'."\n" + ."\n" + .'> If you set the value to **False**, you cannot disassociate the HAVIP from the primary instance.'."\n", 'type' => 'string', 'required' => false, 'example' => 'True', 'title' => ''], ], [ - 'name' => 'AutoConfigRoute', + 'name' => 'InstanceType', 'in' => 'query', + 'schema' => ['description' => 'The type of the instance from which you want to disassociate the HAVIP. Valid values:'."\n" + ."\n" + .'* **EcsInstance**: an ECS instance'."\n" + .'* **NetworkInterface**: an ENI'."\n" + ."\n" + .'> If you want to disassociate the HAVIP from an ENI, this parameter is required.'."\n", 'type' => 'string', 'required' => false, 'example' => 'EcsInstance', 'title' => ''], + ], + ], + 'responses' => [ + 200 => [ + 'headers' => [], 'schema' => [ - 'description' => 'Specifies whether to automatically configure routes. Valid values:'."\n" - ."\n" - .'* **true**'."\n" - .'* **false**'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => 'C44F62BE-9CE7-4277-B117-69243F3988BF', 'title' => ''], + ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'IncorrectHaVipStatus', 'errorMessage' => 'HaVip can be operated by this action only when it\'s status is InUse.', 'description' => ''], + ['errorCode' => 'IncorrectInstanceStatus', 'errorMessage' => 'ECS instance can be operated by this action only when it\'s status is Running or Stopped.', 'description' => ''], + ['errorCode' => 'ResourceNotAssociated', 'errorMessage' => 'The HaVip and ECS instance are not associated.', 'description' => ''], + ['errorCode' => 'Forbidden.UnassociateMaster', 'errorMessage' => 'Unassociating a master instance is not allowed unless the parameter Force is True.', 'description' => ''], + ['errorCode' => 'HA.VIP.NOT.ASSOCIATED.WITH.INSTANCE', 'errorMessage' => 'ha vip not associated with instance.', 'description' => ''], + ['errorCode' => 'OperationFailed.DistibuteLock', 'errorMessage' => 'Distibute lock fail.', 'description' => 'The operation is locked by another request;'], + ['errorCode' => 'OperationFailed.QueryNetworkInterfaceInfo', 'errorMessage' => 'Failed to query network interface information.', 'description' => 'The system failed to query ENI information.'], + ['errorCode' => 'IllegalParam.InstanceType', 'errorMessage' => 'The specified instance type is invalid. Only ECS instances and network interface are allowed.', 'description' => 'The type of the associated instance does not support this operation.'], + ['errorCode' => 'InvalidNetworkInterfaceId.NotFound', 'errorMessage' => 'The network interface is not found.', 'description' => 'The ENI does not exist.'], + ['errorCode' => 'ResourceNotFound.Instance', 'errorMessage' => 'The specified binding resource is not found.', 'description' => ''], + ['errorCode' => 'Forbidden.HaVip', 'errorMessage' => 'No permissions to perform operations on HAVIPs. Please apply for privilege--vpc_privilege_allow_buy_havip_instance.', 'description' => 'The error message returned because you do not have the permissions to manage the HAVIP. Go to the Quota Center page to acquire the permissions.'], + ['errorCode' => 'InvalidRegionId.NotFound', 'errorMessage' => 'The RegionId provided does not exist in our records.', 'description' => ''], + ], + 404 => [ + ['errorCode' => 'InvalidHaVipId.NotFound', 'errorMessage' => 'The specified HaVip does not exist in the specified region.', 'description' => 'The specified HAVIP does not exist in the specified region. Check whether the specified region is correct.'], + ['errorCode' => 'InvalidInstanceId.NotFound', 'errorMessage' => 'The specified Instance does not exist in the specified region.', 'description' => ''], + ], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error.', 'description' => ''], + ], + ], + 'title' => 'UnassociateHaVip', + 'summary' => 'Disassociates a high-availability virtual IP address (HaVip) from an Elastic Compute Service (ECS) in a virtual private cloud (VPC) or from an elastic network interface (ENI).', + 'description' => '在调用本接口将HaVip与专有网络ECS实例或弹性网卡解绑时,请注意: '."\n" + .'- 要解绑的ECS实例的状态必须为**运行中**或**停止**。 '."\n" + .'- 要解绑的HaVip状态必须为**Available**或**InUse**。'."\n" + .'- **UnassociateHaVip**接口属于异步接口,即系统会返回一个请求ID,但该HaVip尚未解绑成功,系统后台的解绑任务仍在进行。您可以调用[DescribeHaVips](~~114611~~)查询HaVip的解绑状态:'."\n" + .' - 当HaVip处于**Unassociating**状态时,表示HaVip正在解绑中。'."\n" + .' - 当HaVip处于**Inuse**或者**Available**状态时,表示HaVip解绑成功。'."\n" + .'- **UnassociateHaVip**接口不支持并发解绑同一个HaVip。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2023-01-11T06:07:05.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-01-10T15:26:10.000Z', 'description' => 'Error codes changed, Response parameters changed'], + ['createdAt' => '2021-11-16T13:33:39.000Z', 'description' => 'Error codes changed'], + ], + 'ramActions' => [ [ - 'name' => 'EnableDpd', - 'in' => 'query', - 'schema' => [ - 'description' => 'This parameter is supported if you modify the configurations of an IPsec-VPN connection in single-tunnel mode.'."\n" - ."\n" - .'Specifies whether to enable dead peer detection (DPD). Valid values:'."\n" - ."\n" - .'* **true**: enables DPD. The initiator of the IPsec-VPN connection sends DPD packets to check the existence and availability of the peer. If no feedback is received from the peer within the specified period of time, the connection fails. In this case, ISAKMP SA and IPsec SA are deleted, along with the security tunnel.'."\n" - .'* **false**: disables DPD. The initiator of the IPsec-VPN connection does not send DPD packets.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'vpc:UnassociateHaVip', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'Instance', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:instance/{#InstanceId}'], + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'HaVip', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:havip/{#HaVipId}'], + ], ], ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"C44F62BE-9CE7-4277-B117-69243F3988BF\\"\\n}","type":"json"}]', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'UnassociateHaVip'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], + ], + ], + 'UnassociateNetworkAcl' => [ + 'summary' => 'Disassociates a network ACL from a vSwitch by calling the UnassociateNetworkAcl operation.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'EnableNatTraversal', - 'in' => 'query', - 'schema' => [ - 'description' => 'This parameter is supported if you modify the configurations of an IPsec-VPN connection in single-tunnel mode.'."\n" - ."\n" - .'Specifies whether to enable NAT traversal. Valid values:'."\n" - ."\n" - .'* **true**: enables NAT traversal. After NAT traversal is enabled, the initiator does not check the UDP ports during IKE negotiations and can automatically discover NAT gateway devices along the IPsec-VPN tunnel.'."\n" - .'* **false**: disables NAT traversal.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], + 'AK' => [], ], + ], + 'operationType' => 'readAndWrite', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free'], + 'parameters' => [ [ - 'name' => 'RemoteCaCert', + 'name' => 'Resource', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'type' => 'string', + 'description' => 'The information about the associated resources.', + 'type' => 'array', + 'items' => [ + 'description' => 'The information about the associated resources.', + 'type' => 'object', + 'properties' => [ + 'ResourceType' => ['description' => 'The type of the associated resource to disassociate. Set the value to **VSwitch**.'."\n" + ."\n" + .'Valid values of **N**: **0** to **29**. You can disassociate up to 30 resources at a time.', 'type' => 'string', 'docRequired' => true, 'required' => true, 'example' => 'VSwitch', 'title' => ''], + 'ResourceId' => ['description' => 'The ID of the associated resource to disassociate.', 'type' => 'string', 'docRequired' => true, 'required' => true, 'example' => 'vsw-bp1de348lntdw****', 'title' => ''], + ], + 'required' => false, + 'title' => '', + 'example' => '', + ], 'required' => false, - 'description' => 'The peer CA certificate when a ShangMi (SM) VPN gateway is used to create the IPsec-VPN connection.'."\n", - 'example' => 'c20ycDI1NnYxIENBIChURVNUIFN****', + 'maxItems' => 100, + 'title' => '', + 'example' => '', ], ], [ - 'name' => 'ClientToken', + 'name' => 'NetworkAclId', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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.'."\n" - ."\n" - .'> If you do not specify this parameter, the system automatically uses the value of **RequestId** as the value of **ClientToken**. The **request ID** may be different for each request.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-4266****', - ], + 'schema' => ['description' => 'The ID of the network ACL to disassociate from the associated resources.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'nacl-a2do9e413e0sp****', 'title' => ''], ], [ - 'name' => 'NetworkType', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The network type of the IPsec-VPN connection. Valid values:'."\n" - ."\n" - .'* **public**: an encrypted connection over the Internet'."\n" - .'* **private**: an encrypted connection over private networks'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'public', - ], + 'schema' => ['description' => 'The region ID of the network ACL.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'CustomerGatewayId', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The customer gateways to be associated with the IPsec-VPN connections.'."\n" - ."\n" - .'> Only single-tunnel IPsec-VPN connections support this parameter.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'cgw-p0w2jemrcj5u61un8****', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'The client generates the value. The value must be unique among different requests and cannot exceed 64 ASCII characters in length.'."\n" + ."\n" + .'> If you do not specify this parameter, the system uses the **RequestId** of the API request as the **ClientToken**. The **RequestId** may be different for each API request.', 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-426655440000', 'title' => ''], ], [ - 'name' => 'TunnelOptionsSpecification', - 'in' => 'formData', - 'allowEmptyValue' => true, - 'style' => 'flat', - 'schema' => [ - 'description' => 'The tunnel configurations.'."\n" - ."\n" - .'You can specify parameters in the **TunnelOptionsSpecification** array when you modify the configurations of an IPsec-VPN connection in dual-tunnel mode. You can modify the configurations of the two tunnels of the IPsec-VPN connection.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The tunnel configuration.'."\n", - 'type' => 'object', - 'properties' => [ - 'TunnelId' => [ - 'description' => 'The tunnel ID.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'tun-0jod7plwf2a0o9lvu****', - ], - 'CustomerGatewayId' => [ - 'description' => 'The ID of the customer gateway that is associated with the tunnel.'."\n" - ."\n" - .'> This parameter is only supported in dual-tunnel IPsec-VPN connections.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'cgw-p0w2jemrcj5u61un8****', - ], - 'TunnelIndex' => [ - 'description' => 'The order in which the tunnel was created.'."\n" - ."\n" - .'* **1**: Tunnel 1.'."\n" - .'* **2**: Tunnel 2.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', - ], - 'EnableDpd' => [ - 'description' => 'Specifies whether to enable the Dead Peer Detection (DPD) feature for the tunnel. Valid values:'."\n" - ."\n" - .'* **true**: enables DPD. The initiator of the IPsec-VPN connection sends DPD packets to check the existence and availability of the peer. If no feedback is received from the peer within the specified period of time, the connection fails. In this case, ISAKMP SA and IPsec SA are deleted along with the security tunnel.'."\n" - .'* **false**: disables DPD. The initiator of the IPsec-VPN connection does not send DPD packets.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], - 'EnableNatTraversal' => [ - 'description' => 'Specifies whether to enable NAT traversal for the tunnel. Valid values:'."\n" - ."\n" - .'* **true**: enables NAT traversal. After NAT traversal is enabled, the initiator does not check the UDP ports during IKE negotiations and can automatically discover NAT gateway devices along the IPsec-VPN tunnel.'."\n" - .'* **false**: disables NAT traversal.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], - 'TunnelBgpConfig' => [ - 'description' => 'Add BGP configurations for the tunnel.'."\n" - ."\n" - .'> If you enable BGP for an IPsec-VPN connection, you must set **EnableTunnelsBgp** parameter to **true**.'."\n", - 'type' => 'object', - 'properties' => [ - 'LocalAsn' => [ - 'description' => 'The autonomous system number (ASN) of the tunnel on the Alibaba Cloud side. Valid values: **1** to **4294967295**. Default value: **45104**.'."\n" - ."\n" - .'> We recommend that you use a private ASN to establish BGP connections to Alibaba Cloud. Refer to the relevant documentation for the private ASN range.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '65530', - ], - 'LocalBgpIp' => [ - 'description' => 'The BGP IP address of the tunnel on the Alibaba Cloud side. The address is an IP address that falls within the BGP CIDR block.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '169.254.10.1', - ], - 'TunnelCidr' => [ - 'description' => 'The BGP CIDR block of the tunnel. The CIDR block must fall within 169.254.0.0/16 and the mask of the CIDR block must be 30 bits in length. The CIDR block cannot be 169.254.0.0/30, 169.254.1.0/30, 169.254.2.0/30, 169.254.3.0/30, 169.254.4.0/30, 169.254.5.0/30, 169.254.6.0/30, or 169.254.169.252/30.'."\n" - ."\n" - .'> The two tunnels of an IPsec connection must use different CIDR blocks.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '169.254.10.0/30', - ], - ], - 'required' => false, - ], - 'TunnelIkeConfig' => [ - 'description' => 'The configuration of Phase 1 negotiations.'."\n", - 'type' => 'object', - 'properties' => [ - 'IkeAuthAlg' => [ - 'description' => 'The authentication algorithm that is used in Phase 1 negotiations. Valid values: **md5**, **sha1**, **sha256**, **sha384**, and **sha512**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'sha1', - ], - 'IkeEncAlg' => [ - 'description' => 'The encryption algorithm that is used in Phase 1 negotiations. Valid values: **aes**, **aes192**, **aes256**, **des**, and **3des**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'aes', - ], - 'IkeLifetime' => [ - 'description' => 'The SA lifetime as a result of Phase 1 negotiations. Unit: seconds.'."\n" - ."\n" - .'Valid values: **0** to **86400**.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '86400', - ], - 'IkeMode' => [ - 'description' => 'The negotiation mode of IKE. Valid values: **main** and **aggressive**.'."\n" - ."\n" - .'* **main:** This mode offers higher security during negotiations.'."\n" - .'* **aggressive**: This mode is faster with a higher success rate.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'main', - ], - 'IkePfs' => [ - 'description' => 'The Diffie-Hellman key exchange algorithm that is used in Phase 1 negotiations. Valid values: **group1**, **group2**, **group5**, and **group14**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'group2', - ], - 'IkeVersion' => [ - 'description' => 'The version of the IKE protocol. Valid values: **ikev1** and **ikev2**.'."\n" - ."\n" - .'Compared with IKEv1, IKEv2 simplifies the SA negotiation process and provides better support for scenarios with multiple CIDR blocks.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'ikev2', - ], - 'LocalId' => [ - 'description' => 'The identifier of the tunnel on the Alibaba Cloud side, which is used in Phase 1 negotiations. The identifier cannot exceed 100 characters in length and cannot contain spaces.'."\n" - ."\n" - .'**LocalId** supports fully qualified domain names (FQDNs). If you use an FQDN, we recommend that you set the negotiation mode to **aggressive**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '47.XX.XX.1', - ], - 'Psk' => [ - 'description' => 'The pre-shared key that is used for identity authentication between the tunnel and the tunnel peer.'."\n" - ."\n" - .'* The key must be 1 to 100 characters in length, and can contain digits, and letters. The key cannot contain spaces. ``~!\\`@#$%^&*()_-+={}[]|;:\',.<>/?``'."\n" - .'* If you do not specify a pre-shared key, the system randomly generates a 16-bit string as the pre-shared key. You can call the [DescribeVpnAttachments](~~2526939~~) operation to query the pre-shared key that is automatically generated by the system.'."\n" - ."\n" - .'> The tunnel and the tunnel peer must use the same pre-shared key. Otherwise, the tunnel cannot be established.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '123456****', - ], - 'RemoteId' => [ - 'description' => 'The identifier of the tunnel peer, which is used in Phase 1 negotiations. The identifier cannot exceed 100 characters in length and cannot contain spaces.'."\n" - ."\n" - .'**RemoteId** supports FQDNs. If you use an FQDN, we recommend that you set the negotiation mode to **aggressive**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '47.XX.XX.2', - ], - ], - 'required' => false, - ], - 'TunnelIpsecConfig' => [ - 'description' => 'The configuration of Phase 2 negotiations.'."\n", - 'type' => 'object', - 'properties' => [ - 'IpsecAuthAlg' => [ - 'description' => 'The authentication algorithm that is used in Phase 2 negotiations.'."\n" - ."\n" - .'Valid values: **md5**, **sha1**, **sha256**, **sha384**, and **sha512**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'sha1', - ], - 'IpsecEncAlg' => [ - 'description' => 'The encryption algorithm that is used in Phase 2 negotiations. Valid values: **aes**, **aes192**, **aes256**, **des**, and **3des**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'aes', - ], - 'IpsecLifetime' => [ - 'description' => 'The SA lifetime as a result of Phase 2 negotiations. Unit: seconds.'."\n" - ."\n" - .'Valid values: **0** to **86400**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '86400', - ], - 'IpsecPfs' => [ - 'description' => 'The Diffie-Hellman key exchange algorithm that is used in Phase 2 negotiations.'."\n" - ."\n" - .'Valid values: **disabled**, **group1**, **group2**, **group5**, and **group14**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'group2', - ], - ], - 'required' => false, - ], - ], - 'required' => false, - ], - 'required' => false, - ], + 'name' => 'DryRun', + 'in' => 'query', + 'schema' => ['description' => 'Specifies whether to perform a dry run. Valid values:'."\n" + .'* **true**: performs a dry run. The system checks the request for potential issues without performing the actual operation.'."\n" + .'* **false** (default): performs the actual request.', 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], ], [ - 'name' => 'EnableTunnelsBgp', + 'name' => 'RegionId', 'in' => 'query', - 'allowEmptyValue' => true, - 'schema' => [ - 'description' => 'You can specify this parameter if you modify the configuration of a dual-tunnel IPsec-VPN connection.'."\n" - ."\n" - .'Specifies whether to enable the BGP feature for the tunnel. Valid values: **true** and **false**.'."\n" - ."\n" - .'> Before you add BGP configurations, we recommend that you learn about how BGP works and the limits. For more information, see [Configure BGP dynamic routing](~~445767~~).'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['description' => 'The region ID of the network ACL.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'PlainResponse4OpenApi', - 'description' => 'The response parameters.'."\n", + 'description' => 'The response parameters.', 'type' => 'object', 'properties' => [ - 'VpnConnectionId' => [ - 'description' => 'The ID of the IPsec-VPN connection.'."\n", - 'type' => 'string', - 'example' => 'vco-p0w5112fgnl2ihlmf****', - ], - 'CustomerGatewayId' => [ - 'description' => 'The ID of the customer gateway associated with the IPsec-VPN connection.'."\n" - ."\n" - .'This parameter is returned only for single-tunnel IPsec-VPN connections.'."\n", - 'type' => 'string', - 'example' => 'cgw-p0w2jemrcj5u61un8****', - ], - 'VpnGatewayId' => [ - 'description' => 'The ID of the VPN gateway that is associated with the IPsec-VPN connection.'."\n" - ."\n" - .'**vpn-not-exist**: The IPsec-VPN connection is not associated with a VPN Gateway.'."\n", - 'type' => 'string', - 'example' => 'vpn-p0wa1c1018pmeb6cu****', - ], - 'Name' => [ - 'description' => 'The name of the IPsec-VPN connection.'."\n", - 'type' => 'string', - 'example' => 'nametest', - ], - 'Description' => [ - 'description' => 'The description of the IPsec-VPN connection.'."\n", - 'type' => 'string', - 'example' => 'desctest', - ], - 'LocalSubnet' => [ - 'description' => 'The CIDR block on the Alibaba Cloud side that communicates with the on-premises data center is required, such as CIDR blocks of VPCs.'."\n", - 'type' => 'string', - 'example' => '10.1.1.0/24,10.1.2.0/24', - ], - 'RemoteSubnet' => [ - 'description' => 'The CIDR block of the on-premises data center that communicates with Alibaba Cloud is required.'."\n", - 'type' => 'string', - 'example' => '10.1.3.0/24,10.1.4.0/24', - ], - 'IkeConfig' => [ - 'description' => 'The configuration of Phase 1 negotiations.'."\n" - ."\n" - .'**IkeConfig** parameters are returned only for single-tunnel IPsec-VPN connections.'."\n", - 'type' => 'object', - 'properties' => [ - 'Psk' => [ - 'description' => 'Enter a pre-shared key that is used for identity authentication between Alibaba Cloud and the data center.'."\n" - ."\n" - .'> The pre-shared key of the IPsec-VPN connection must be the same as the authentication key of the on-premises data center. Otherwise, connections between the on-premises data center and Alibaba Cloud cannot be established.', - 'type' => 'string', - 'example' => '1234***', - ], - 'IkeVersion' => [ - 'description' => 'The version of the IKE protocol.'."\n" - ."\n" - .'* **ikev1**'."\n" - .'* **ikev2**'."\n" - ."\n" - .'Compared with IKEv1, IKEv2 simplifies the SA negotiation process and provides better support for scenarios with multiple CIDR blocks.'."\n", - 'type' => 'string', - 'example' => 'ikev1', - ], - 'IkeMode' => [ - 'description' => 'The IKE negotiation mode.'."\n" - ."\n" - .'* **main:** This mode offers higher security during negotiations.'."\n" - .'* **aggressive**: This mode is faster with a higher success rate.'."\n", - 'type' => 'string', - 'example' => 'main', - ], - 'IkeEncAlg' => [ - 'description' => 'The encryption algorithm that is used in Phase 1 negotiations.'."\n", - 'type' => 'string', - 'example' => 'aes', - ], - 'IkeAuthAlg' => [ - 'description' => 'The authentication algorithm that is used in Phase 1 negotiations.'."\n", - 'type' => 'string', - 'example' => 'sha1', - ], - 'IkePfs' => [ - 'description' => 'The DH key exchange algorithm that is used in Phase 1 negotiations.'."\n", - 'type' => 'string', - 'example' => 'group2', - ], - 'IkeLifetime' => [ - 'description' => 'The SA lifetime that is determined by Phase 1 negotiations. Unit: seconds.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '86400', - ], - 'LocalId' => [ - 'description' => 'The identifier of the IPsec-VPN connection on the Alibaba Cloud side.'."\n", - 'type' => 'string', - 'example' => '47.XX.XX.1', - ], - 'RemoteId' => [ - 'description' => 'The identifier of the IPsec-VPN connection on the data center side.'."\n", - 'type' => 'string', - 'example' => '47.XX.XX.2', - ], - ], - ], - 'IpsecConfig' => [ - 'description' => 'The configuration of Phase 2 negotiations.'."\n" - ."\n" - .'**IpsecConfig** parameters are returned only for single-tunnel IPsec-VPN connections.'."\n", - 'type' => 'object', - 'properties' => [ - 'IpsecEncAlg' => [ - 'description' => 'The encryption algorithm that is used in Phase 2 negotiations.'."\n", - 'type' => 'string', - 'example' => 'aes', - ], - 'IpsecAuthAlg' => [ - 'description' => 'The authentication algorithm that is used in Phase 2 negotiations.'."\n", - 'type' => 'string', - 'example' => 'md5', - ], - 'IpsecPfs' => [ - 'description' => 'The DH key exchange algorithm that is used in Phase 2 negotiations.'."\n", - 'type' => 'string', - 'example' => 'group2', - ], - 'IpsecLifetime' => [ - 'description' => 'The SA lifetime that is determined by Phase 2 negotiations. Unit: seconds.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '86400', - ], - ], - ], - 'CreateTime' => [ - 'description' => 'The timestamp generated when the IPsec-VPN connection was established. Unit: milliseconds.'."\n" - ."\n" - .'This value is a UNIX timestamp representing the number of milliseconds that have elapsed since the epoch time January 1, 1970, 00:00:00 UTC.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1658201810000', - ], - 'EffectImmediately' => [ - 'description' => 'Indicates whether IPsec negotiations immediately start after the configuration takes effect. Valid values:'."\n" - ."\n" - .'* **true**'."\n" - .'* **false**'."\n", - 'type' => 'boolean', - 'example' => 'false', - ], - 'Status' => [ - 'description' => 'The state of the IPsec-VPN connection. Valid values:'."\n" - ."\n" - .'* **ike_sa_not_established**: Phase 1 negotiations failed.'."\n" - .'* **ike_sa_established**: Phase 1 negotiations succeeded.'."\n" - .'* **ipsec_sa_not_established**: Phase 2 negotiations failed.'."\n" - .'* **ipsec_sa_established**: Phase 2 negotiations succeeded.'."\n", - 'type' => 'string', - 'example' => 'ike_sa_not_established', - ], - 'VcoHealthCheck' => [ - 'description' => 'The health check configurations of the IPsec-VPN connection.'."\n" - ."\n" - .'**VcoHealthCheck** parameters are returned only for single-tunnel IPsec-VPC connections.'."\n", - 'type' => 'object', - 'properties' => [ - 'Enable' => [ - 'description' => 'Indicates whether the health check feature is enabled for the IPsec-VPN connection. Valid values:'."\n" - ."\n" - .'* **true**'."\n" - .'* **false**'."\n", - 'type' => 'string', - 'example' => 'true', - ], - 'Sip' => [ - 'description' => 'The source IP address that is used for health checks.'."\n", - 'type' => 'string', - 'example' => '10.1.1.1', - ], - 'Dip' => [ - 'description' => 'The destination IP address that is used for health checks.'."\n", - 'type' => 'string', - 'example' => '192.168.1.1', - ], - 'Interval' => [ - 'description' => 'The interval between two consecutive health check retries. Unit: seconds.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '3', - ], - 'Retry' => [ - 'description' => 'The maximum number of health check retries.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '3', - ], - 'Policy' => [ - 'description' => 'Indicates whether advertised routes are withdrawn when the health check fails. Valid values:'."\n" - ."\n" - .'* **revoke_route**: Advertised routes are withdrawn.'."\n" - .'* **reserve_route**: Advertised routes are not withdrawn.'."\n", - 'type' => 'string', - 'example' => 'revoke_route', - ], - ], - ], - 'EnableDpd' => [ - 'description' => 'Indicates whether the DPD feature is enabled for the IPsec-VPN connection.'."\n" - ."\n" - .'* **true**: The feature is enabled.'."\n" - .'* **false**: The feature is disabled.'."\n" - ."\n" - .'This parameter is returned only for single-tunnel IPsec-VPN connections.'."\n", - 'type' => 'boolean', - 'example' => 'true', - ], - 'EnableNatTraversal' => [ - 'description' => 'Specifies whether to enable NAT traversal for the IPsec-VPN connection.'."\n" - ."\n" - .'* **true**: The feature is enabled.'."\n" - .'* **false**: The feature is disabled.'."\n" - ."\n" - .'This parameter is returned only for single-tunnel IPsec-VPN connections.'."\n", - 'type' => 'boolean', - 'example' => 'true', - ], - 'VpnBgpConfig' => [ - 'description' => 'The BGP configurations of the IPsec-VPN connection.'."\n" - ."\n" - .'**VpnBgpConfig** parameters are returned only for single-tunnel IPsec-VPN connections.'."\n", - 'type' => 'object', - 'properties' => [ - 'EnableBgp' => [ - 'description' => 'Indicates whether BGP is enabled for the IPsec-VPN connection. Valid values:'."\n" - ."\n" - .'* **true**'."\n" - .'* **false**'."\n", - 'type' => 'string', - 'example' => 'true', - ], - 'TunnelCidr' => [ - 'description' => 'The CIDR block of the IPsec tunnel.'."\n", - 'type' => 'string', - 'example' => '169.254.11.0/30', - ], - 'LocalBgpIp' => [ - 'description' => 'The BGP IP address on the Alibaba Cloud side.'."\n", - 'type' => 'string', - 'example' => '169.254.11.1', - ], - 'PeerBgpIp' => [ - 'description' => 'The BGP IP address on the data center side.'."\n", - 'type' => 'string', - 'example' => '169.254.11.2', - ], - 'LocalAsn' => [ - 'description' => 'The ASN on the Alibaba Cloud side.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '45104', - ], - 'PeerAsn' => [ - 'description' => 'The ASN on the data center side.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '65535', - ], - 'Status' => [ - 'description' => 'The negotiation state of BGP. Valid values:'."\n" - ."\n" - .'* **success**: normal'."\n" - .'* **false**: abnormal'."\n", - 'type' => 'string', - 'example' => 'false', - ], - ], - ], - 'AttachType' => [ - 'description' => 'The type of the resource that is associated with the IPsec-VPN connection. Valid values:'."\n" - ."\n" - .'* **CEN**: The IPsec-VPN connection is associated with a transit router.'."\n" - .'* **VPNGW**: The IPsec-VPN connection is associated with a VPN gateway.'."\n" - .'* **NO_ASSOCIATED**: The IPsec-VPN connection is not associated with any resource.'."\n", - 'type' => 'string', - 'example' => 'CEN', - ], - 'NetworkType' => [ - 'description' => 'The network type of the IPsec-VPN connection. Valid values:'."\n" - ."\n" - .'* **public**: an encrypted connection over the Internet'."\n" - .'* **private**: an encrypted connection over private networks'."\n", - 'type' => 'string', - 'example' => 'public', - ], - 'AttachInstanceId' => [ - 'description' => 'The ID of the Cloud Enterprise Network (CEN) instance to which the transit router associated with the IPsec-VPN connection belongs.'."\n", - 'type' => 'string', - 'example' => 'cen-c2r3m3zxkumoqz****', - ], - 'Spec' => [ - 'description' => 'The bandwidth specification of the IPsec-VPN connection.'."\n" - ."\n" - .'A value of **M** in the response indicates **Mbit/s**.'."\n", - 'type' => 'string', - 'example' => '1000M', - ], - 'ResourceGroupId' => [ - 'description' => 'The ID of the resource group to which the IPsec-VPN connection belongs.'."\n" - ."\n" - .'You can call the [ListResourceGroups](~~158855~~) operation to query resource groups.'."\n", - 'type' => 'string', - 'example' => 'rg-acfmzs372yg****', - ], - 'TunnelOptionsSpecification' => [ - 'description' => 'The tunnel configurations of the IPsec-VPN connection.'."\n" - ."\n" - .'**TunnelOptionsSpecification** parameters are returned only for dual-tunnel IPsec-VPN connections.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The tunnel configurations.'."\n", - 'type' => 'object', - 'properties' => [ - 'CustomerGatewayId' => [ - 'description' => 'The ID of the customer gateway that is associated with the tunnel.'."\n", - 'type' => 'string', - 'example' => 'cgw-p0w2jemrcj5u61un8****', - ], - 'EnableDpd' => [ - 'description' => 'Whether the DPD feature is enabled for the tunnel.'."\n" - ."\n" - .'* **true**: The feature is enabled.'."\n" - .'* **false**: The feature is disabled.'."\n", - 'type' => 'boolean', - 'example' => 'true', - ], - 'EnableNatTraversal' => [ - 'description' => 'Indicates whether traversal feature is enabled for the tunnel. Valid values:'."\n" - ."\n" - .'* **true**: The feature is enabled.'."\n" - .'* **false**: The feature is disabled.'."\n", - 'type' => 'boolean', - 'example' => 'true', - ], - 'InternetIp' => [ - 'description' => 'The IP address on the Alibaba Cloud side.'."\n", - 'type' => 'string', - 'example' => '47.XX.XX.66', - ], - 'Role' => [ - 'description' => 'The tunnel role. Valid values:'."\n" - ."\n" - .'* **master**: The tunnel is an active tunnel.'."\n" - .'* **slave**: The tunnel is a standby tunnel.'."\n", - 'type' => 'string', - 'example' => 'master', - ], - 'TunnelId' => [ - 'description' => 'The tunnel ID.'."\n", - 'type' => 'string', - 'example' => 'tun-0jod7plwf2a0o9lvu****', - ], - 'TunnelIndex' => [ - 'description' => 'The order in which the tunnel was created.'."\n" - ."\n" - .'* **1**: Tunnel 1.'."\n" - .'* **2**: Tunnel 2.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'State' => [ - 'description' => 'The status of the tunnel. Valid values:'."\n" - ."\n" - .'* **active**: The tunnel is active.'."\n" - .'* **updating**: The tunnel is being updated.'."\n" - .'* **deleting:** The tunnel is being deleted.'."\n", - 'type' => 'string', - 'example' => 'active', - ], - 'TunnelBgpConfig' => [ - 'description' => 'BGP configuration.'."\n", - 'type' => 'object', - 'properties' => [ - 'LocalAsn' => [ - 'description' => 'The ASN on the Alibaba Cloud side.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '65530', - ], - 'LocalBgpIp' => [ - 'description' => 'The BGP IP address of the tunnel on the Alibaba Cloud side.'."\n", - 'type' => 'string', - 'example' => '169.254.10.1', - ], - 'PeerAsn' => [ - 'description' => 'The ASN of the tunnel peer.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '65531', - ], - 'PeerBgpIp' => [ - 'description' => 'The BGP IP address of the tunnel peer.'."\n", - 'type' => 'string', - 'example' => '169.254.10.2', - ], - 'TunnelCidr' => [ - 'description' => 'The BGP CIDR block of the tunnel.'."\n", - 'type' => 'string', - 'example' => '169.254.10.0/30', - ], - ], - ], - 'TunnelIkeConfig' => [ - 'description' => 'The configurations of Phase 1 negotiations.'."\n", - 'type' => 'object', - 'properties' => [ - 'IkeAuthAlg' => [ - 'description' => 'The authentication algorithm in the IKE phase.'."\n", - 'type' => 'string', - 'example' => 'sha1', - ], - 'IkeEncAlg' => [ - 'description' => 'The encryption algorithm in the IKE phase.'."\n", - 'type' => 'string', - 'example' => 'aes', - ], - 'IkeLifetime' => [ - 'description' => 'The lifetime in the IKE phase. Unit: seconds.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '86400', - ], - 'IkeMode' => [ - 'description' => 'The negotiation mode of IKE. Valid values:'."\n" - ."\n" - .'* **main:** This mode offers higher security during negotiations.'."\n" - .'* **aggressive**: This mode is faster with a higher success rate.'."\n", - 'type' => 'string', - 'example' => 'main', - ], - 'IkePfs' => [ - 'description' => 'The Diffie-Hellman (DH) group in the IKE phase.'."\n", - 'type' => 'string', - 'example' => 'group2', - ], - 'IkeVersion' => [ - 'description' => 'The version of the IKE protocol.'."\n", - 'type' => 'string', - 'example' => 'ikev2', - ], - 'LocalId' => [ - 'description' => 'The identifier of the tunnel on the Alibaba Cloud side.'."\n", - 'type' => 'string', - 'example' => '47.XX.XX.1', - ], - 'Psk' => [ - 'description' => 'The pre-shared key.'."\n", - 'type' => 'string', - 'example' => '123456****', - ], - 'RemoteId' => [ - 'description' => 'The peer identifier.'."\n", - 'type' => 'string', - 'example' => '47.XX.XX.2', - ], - ], - ], - 'TunnelIpsecConfig' => [ - 'description' => 'The configurations of Phase 2 negotiations.'."\n", - 'type' => 'object', - 'properties' => [ - 'IpsecAuthAlg' => [ - 'description' => 'The authentication algorithm in the IPsec phase.'."\n", - 'type' => 'string', - 'example' => 'sha1', - ], - 'IpsecEncAlg' => [ - 'description' => 'The encryption algorithm in the IPsec phase.'."\n", - 'type' => 'string', - 'example' => 'aes', - ], - 'IpsecLifetime' => [ - 'description' => 'The lifetime in the IPsec phase. Unit: seconds.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '86400', - ], - 'IpsecPfs' => [ - 'description' => 'The DH group in the IPsec phase.'."\n", - 'type' => 'string', - 'example' => 'group2', - ], - ], - ], - ], - ], - ], - 'EnableTunnelsBgp' => [ - 'description' => 'Specifies whether to enable Border Gateway Protocol (BGP) for tunnels.'."\n" - ."\n" - .'* **true**: The feature is enabled.'."\n" - .'* **false**: The feature is disabled.'."\n" - ."\n" - .'This parameter is returned only by dual-tunnel IPsec-VPN connections.'."\n", - 'type' => 'boolean', - 'example' => 'false', - ], - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '35822A84-867F-3936-A2E6-A4C4E3ED11C0', - ], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'AD024BAA-2D91-48FD-810B-8FB7489B6EE6', 'title' => ''], ], + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'VpnConnection.Configuring', - 'errorMessage' => 'The specified service is configuring.', - ], - [ - 'errorCode' => 'VpnConnection.FinancialLocked', - 'errorMessage' => 'The specified service is financial locked.', - ], - [ - 'errorCode' => 'InvalidName', - 'errorMessage' => 'The name is not valid', - ], - [ - 'errorCode' => 'VpnRouteEntry.AlreadyExists', - 'errorMessage' => 'The specified route entry is already exist.', - ], - [ - 'errorCode' => 'VpnRouteEntry.Conflict', - 'errorMessage' => 'The specified route entry has conflict.', - ], - [ - 'errorCode' => 'NotSupportVpnConnectionParameter.IpsecPfs', - 'errorMessage' => 'The specified vpn connection ipsec Ipsec Pfs is not support.', - ], - [ - 'errorCode' => 'NotSupportVpnConnectionParameter.IpsecAuthAlg', - 'errorMessage' => 'The specified vpn connection ipsec Auth Alg is not support.', - ], - [ - 'errorCode' => 'VpnRouteEntry.BackupRoute', - 'errorMessage' => 'Validate backup route entry failed.', - ], - [ - 'errorCode' => 'VpnRouteEntry.InvalidWeight', - 'errorMessage' => 'Invalid route entry weight value.', - ], - [ - 'errorCode' => 'MissingParameter.TunnelCidr', - 'errorMessage' => 'The parameter TunnelCidr is mandatory when BGP is enabled.', - ], - [ - 'errorCode' => 'OperationUnsupported.EnableBgp', - 'errorMessage' => 'Current region does not support enable BGP.', - ], - [ - 'errorCode' => 'MissingParam.CustomerGatewayAsn', - 'errorMessage' => 'Asn of customer gateway is mandatory when BGP is enabled.', - ], - [ - 'errorCode' => 'IllegalParam.LocalAsn', - 'errorMessage' => 'The specified LocalAsn is invalid.', - ], - [ - 'errorCode' => 'IllegalParam.BgpConfig', - 'errorMessage' => 'The specified BgpConfig is invalid.', - ], - [ - 'errorCode' => 'IllegalParam.EnableBgp', - 'errorMessage' => 'VPN connection must enable BGP when VPN gateway has enabled BGP.', - ], - [ - 'errorCode' => 'IllegalParam.TunnelCidr', - 'errorMessage' => 'The specified TunnelCidr is invalid.', - ], - [ - 'errorCode' => 'InvalidLocalBgpIp.Malformed', - 'errorMessage' => 'The specified LocalBgpIp is malformed.', - ], - [ - 'errorCode' => 'IllegalParam.LocalBgpIp', - 'errorMessage' => 'The specified LocalBgpIp is invalid.', - ], - [ - 'errorCode' => 'IllegalParam.LocalSubnet', - 'errorMessage' => 'The specified "LocalSubnet" (%s) is invalid.', - ], - [ - 'errorCode' => 'IllegalParam.RemoteSubnet', - 'errorMessage' => 'The specified "RemoteSubnet" (%s) is invalid.', - ], - [ - 'errorCode' => 'CustomerGateway.ConflictRouteEntry', - 'errorMessage' => 'The specified customer gateway has conflict with route entry.', - ], - [ - 'errorCode' => 'IllegalParam.NetworkType', - 'errorMessage' => 'The specified NetworkType (%s) is invalid.', - ], - [ - 'errorCode' => 'InvalidTunnelCidr.Malformed', - 'errorMessage' => 'The specified TunnelCidr is malformed.', - ], - [ - 'errorCode' => 'VpnGateway.Configuring', - 'errorMessage' => 'The specified service is configuring.', - ], - [ - 'errorCode' => 'VpnTask.CONFLICT', - 'errorMessage' => 'Vpn task has conflict.', - ], - [ - 'errorCode' => 'ModifyIkeV1WithMultiRoutes.Invalid', - 'errorMessage' => 'Failed to modify VPN connection parameters. Multi-network is configured while using IkeV1 protocol.', - ], - [ - 'errorCode' => 'InvalidVpnGatewayInstanceId.NotFound', - 'errorMessage' => 'The specified vpn gateway instance id does not exist.', - ], - [ - 'errorCode' => 'Resource.QuotaFull', - 'errorMessage' => 'The resources you are operating have reached the upper limit of the quota. Please increase the quota or use other solutions to avoid it according to the VPN operation document.', - ], - [ - 'errorCode' => 'CreateDbrRoutesQuotaFull.QuotaFull', - 'errorMessage' => 'The number of created destination routes exceeds the quota limit.', - ], - [ - 'errorCode' => 'CreatePbrRoutesQuotaFull.QuotaFull', - 'errorMessage' => 'The number of policy routes exceeds the quota limit.', - ], - [ - 'errorCode' => 'EncAlgInvalid.DesIncompatible', - 'errorMessage' => 'Des/3des in IkeEncAlg and IpsecEncAlg does not support multi algorithm.', - ], - [ - 'errorCode' => 'IkeVersionInvalid.GcmIncompatible', - 'errorMessage' => 'Ikev1 does not support IkeEncAlg of gcm16.', - ], - [ - 'errorCode' => 'CustomerGateway.ConflictVpnIp', - 'errorMessage' => 'The specified customer gateway has conflict with vpn gateway ip.', - ], + ['errorCode' => 'ParameterMissing.AliUid', 'errorMessage' => 'ParameterMissing.AliUid', 'description' => ''], + ['errorCode' => 'ParameterMissing.Bid', 'errorMessage' => 'ParameterMissing.Bid', 'description' => ''], + ['errorCode' => 'ParameterMissing.RegionId', 'errorMessage' => 'ParameterMissing.RegionId', 'description' => ''], + ['errorCode' => 'ParameterEmpty.RegionId', 'errorMessage' => 'ParameterEmpty.RegionId', 'description' => ''], + ['errorCode' => 'ParameterMissing.NetworkAclId', 'errorMessage' => 'ParameterMissing.NetworkAclId', 'description' => ''], + ['errorCode' => 'ParameterEmpty.NetworkAclId', 'errorMessage' => 'ParameterEmpty.NetworkAclId', 'description' => ''], + ['errorCode' => 'ParameterMissing.Resources', 'errorMessage' => 'ParameterMissing.Resources', 'description' => ''], + ['errorCode' => 'ParameterEmpty.Resources', 'errorMessage' => 'ParameterEmpty.Resources', 'description' => ''], + ['errorCode' => 'InvalidNetworkAcl.NotFound', 'errorMessage' => 'The special Network Acl is not found.', 'description' => 'The network ACL is not found.'], + ['errorCode' => 'NetworkStatus.Modifying', 'errorMessage' => 'The special Network Acl is in modifying.', 'description' => 'The network ACL is being modified.'], + ['errorCode' => 'ResourceStatus.Error', 'errorMessage' => 'The binding instance is in middle status.', 'description' => 'The status of the instance is invalid.'], + ['errorCode' => 'InvalidResource.NotFound', 'errorMessage' => 'The binding instance is not found.', 'description' => ''], + ['errorCode' => 'InvalidResource.VpcError', 'errorMessage' => 'The network acl and resource not in same vpc.', 'description' => ''], + ['errorCode' => 'InvalidResource.NotBinding', 'errorMessage' => 'The resource has not been binded.', 'description' => ''], + ['errorCode' => 'NotSupport.NetworkAcl', 'errorMessage' => 'Network acl is not support now.', 'description' => ''], + ['errorCode' => 'Mismatch.NetworkAclAndVSwitch', 'errorMessage' => 'The specified network ACL and vSwitch are not matched.', 'description' => 'The error message returned because the specified network ACL is not associated with the vSwitch.'], + ['errorCode' => 'MissingParam.Resource', 'errorMessage' => 'Missing parameter Resource.', 'description' => 'Missing parameter Resource'], + ['errorCode' => 'OperationDenied.NetworkAclAttachmentInMiddleStatus', 'errorMessage' => 'The network ACL is being bound to or unbound from the switch.', 'description' => 'The network ACL is being bound to or unbound from the switch.'], ], - 403 => [ - [ - 'errorCode' => 'Forbbiden.SubUser', - 'errorMessage' => 'User not authorized to operate on the specified resource as your account is created by another user.', - ], - [ - 'errorCode' => 'Forbidden', - 'errorMessage' => 'User not authorized to operate on the specified resource.', - ], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error.', 'description' => ''], + ], + ], + 'staticInfo' => ['returnType' => 'asynchronous', 'callback' => 'Vpc::2016-04-28::DescribeNetworkAcls', 'callbackInterval' => 3000, 'maxCallbackTimes' => 10], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"AD024BAA-2D91-48FD-810B-8FB7489B6EE6\\"\\n}","type":"json"}]', + 'title' => 'Disassociate a network ACL from a vSwitch', + 'description' => '- **UnassociateNetworkAcl** is an asynchronous operation. After you send a request, the system returns a request ID, but the network ACL is not yet disassociated from the vSwitch. The disassociation task continues to run in the background. You can call [DescribeNetworkAclAttributes](~~116542~~) to query the disassociation status of the network ACL and the vSwitch:'."\n" + .' - If the network ACL and the vSwitch are in the **UNBINDING** state, the disassociation is in progress.'."\n" + .' - If no corresponding bindingrecord is found, the network ACL is disassociated from the vSwitch.'."\n" + .'- You cannot concurrently disassociate vSwitches from the same network ACL by calling the **UnassociateNetworkAcl** operation.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2024-12-13T02:34:41.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-11-14T07:59:30.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-11-24T05:37:29.000Z', 'description' => 'Request parameters changed, Response parameters changed'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '30', 'countWindow' => 60, 'regionId' => '*', 'api' => 'UnassociateNetworkAcl'], ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], + ], + 'ramActions' => [ [ - [ - 'errorCode' => 'InvalidVpnConnectionInstanceId.NotFound', - 'errorMessage' => 'The specified vpn connection instance id does not exist.', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:UnassociateNetworkAcl', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'NetworkAcl', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:networkacl/{#NetworkAclId}'], + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VSwitch', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vswitch/{#VSwitchId}'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"VpnConnectionId\\": \\"vco-p0w5112fgnl2ihlmf****\\",\\n \\"CustomerGatewayId\\": \\"cgw-p0w2jemrcj5u61un8****\\",\\n \\"VpnGatewayId\\": \\"vpn-not-exist\\",\\n \\"Name\\": \\"nametest\\",\\n \\"Description\\": \\"desctest\\",\\n \\"LocalSubnet\\": \\"10.1.1.0/24,10.1.2.0/24\\",\\n \\"RemoteSubnet\\": \\"10.1.3.0/24,10.1.4.0/24\\",\\n \\"IkeConfig\\": {\\n \\"Psk\\": \\"1234***\\",\\n \\"IkeVersion\\": \\"ikev1\\",\\n \\"IkeMode\\": \\"main\\",\\n \\"IkeEncAlg\\": \\"aes\\",\\n \\"IkeAuthAlg\\": \\"sha1\\",\\n \\"IkePfs\\": \\"group2\\",\\n \\"IkeLifetime\\": 86400,\\n \\"LocalId\\": \\"47.XX.XX.1\\",\\n \\"RemoteId\\": \\"47.XX.XX.2\\"\\n },\\n \\"IpsecConfig\\": {\\n \\"IpsecEncAlg\\": \\"aes\\",\\n \\"IpsecAuthAlg\\": \\"md5\\",\\n \\"IpsecPfs\\": \\"group2\\",\\n \\"IpsecLifetime\\": 86400\\n },\\n \\"CreateTime\\": 1658201810000,\\n \\"EffectImmediately\\": false,\\n \\"Status\\": \\"ike_sa_not_established\\",\\n \\"VcoHealthCheck\\": {\\n \\"Enable\\": \\"true\\",\\n \\"Sip\\": \\"10.1.1.1\\",\\n \\"Dip\\": \\"192.168.1.1\\",\\n \\"Interval\\": 3,\\n \\"Retry\\": 3,\\n \\"Policy\\": \\"revoke_route\\"\\n },\\n \\"EnableDpd\\": true,\\n \\"EnableNatTraversal\\": true,\\n \\"VpnBgpConfig\\": {\\n \\"EnableBgp\\": \\"true\\",\\n \\"TunnelCidr\\": \\"169.254.11.0/30\\",\\n \\"LocalBgpIp\\": \\"169.254.11.1\\",\\n \\"PeerBgpIp\\": \\"169.254.11.2\\",\\n \\"LocalAsn\\": 45104,\\n \\"PeerAsn\\": 65535,\\n \\"Status\\": \\"false\\"\\n },\\n \\"AttachType\\": \\"CEN\\",\\n \\"NetworkType\\": \\"public\\",\\n \\"AttachInstanceId\\": \\"cen-c2r3m3zxkumoqz****\\",\\n \\"Spec\\": \\"1000M\\",\\n \\"ResourceGroupId\\": \\"rg-acfmzs372yg****\\",\\n \\"TunnelOptionsSpecification\\": [\\n {\\n \\"CustomerGatewayId\\": \\"cgw-p0w2jemrcj5u61un8****\\",\\n \\"EnableDpd\\": true,\\n \\"EnableNatTraversal\\": true,\\n \\"InternetIp\\": \\"47.XX.XX.66\\",\\n \\"Role\\": \\"master\\",\\n \\"TunnelId\\": \\"tun-0jod7plwf2a0o9lvu****\\",\\n \\"TunnelIndex\\": 1,\\n \\"State\\": \\"active\\",\\n \\"TunnelBgpConfig\\": {\\n \\"LocalAsn\\": 65530,\\n \\"LocalBgpIp\\": \\"169.254.10.1\\",\\n \\"PeerAsn\\": 65531,\\n \\"PeerBgpIp\\": \\"169.254.10.2\\",\\n \\"TunnelCidr\\": \\"169.254.10.0/30\\"\\n },\\n \\"TunnelIkeConfig\\": {\\n \\"IkeAuthAlg\\": \\"sha1\\",\\n \\"IkeEncAlg\\": \\"aes\\",\\n \\"IkeLifetime\\": 86400,\\n \\"IkeMode\\": \\"main\\",\\n \\"IkePfs\\": \\"group2\\",\\n \\"IkeVersion\\": \\"ikev2\\",\\n \\"LocalId\\": \\"47.XX.XX.1\\",\\n \\"Psk\\": \\"123456****\\",\\n \\"RemoteId\\": \\"47.XX.XX.2\\"\\n },\\n \\"TunnelIpsecConfig\\": {\\n \\"IpsecAuthAlg\\": \\"sha1\\",\\n \\"IpsecEncAlg\\": \\"aes\\",\\n \\"IpsecLifetime\\": 86400,\\n \\"IpsecPfs\\": \\"group2\\"\\n }\\n }\\n ],\\n \\"EnableTunnelsBgp\\": false,\\n \\"RequestId\\": \\"35822A84-867F-3936-A2E6-A4C4E3ED11C0\\"\\n}","errorExample":""},{"type":"xml","example":"\\n vco-p0w5112fgnl2ihlmf****\\n cgw-p0w2jemrcj5u61un8****\\n nametest\\n desctest\\n 10.1.1.0/24,10.1.2.0/24\\n 10.1.3.0/24,10.1.4.0/24\\n \\n 1234***\\n ikev1\\n main\\n aes\\n sha1\\n group2\\n 86400\\n 47.XX.XX.1\\n 47.XX.XX.2\\n \\n \\n aes\\n md5\\n group2\\n 86400\\n \\n 1658201810000\\n false\\n ike_sa_not_established\\n \\n true\\n 10.1.1.1\\n 192.168.1.1\\n 3\\n 3\\n revoke_route\\n \\n true\\n true\\n \\n true\\n 169.254.11.0/30\\n 169.254.11.1\\n 169.254.11.2\\n 45104\\n 65535\\n false\\n \\n CEN\\n public\\n cen-c2r3m3zxkumoqz****\\n 1000M\\n 35822A84-867F-3936-A2E6-A4C4E3ED11C0\\n","errorExample":""}]', - 'title' => 'ModifyVpnAttachmentAttribute', - 'description' => '* When you modify a IPsec-VPN connection in dual-tunnel mode, you can configure the following parameters in addition to the required request parameters: **ClientToken**, **Name**, **LocalSubnet**, **RemoteSubnet**, **EffectImmediately**, **AutoConfigRoute**, **TunnelOptionsSpecification** array, and **EnableTunnelsBgp**.'."\n" - ."\n" - .'* When you modify a IPsec-VPN connection in single tunnel mode, you can configure the following parameters in addition to the required request parameters: **ClientToken**, **Name**, **LocalSubnet**, **RemoteSubnet**, **EffectImmediately**, **IkeConfig**, **IpsecConfig**, **HealthCheckConfig**, **AutoConfigRoute**, **EnableDpd**, **EnableNatTraversal**, **BgpConfig**, and **CustomerGatewayId**.'."\n" - ."\n" - .'* **ModifyVpnAttachmentAttribute** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call the [DescribeVpnConnection](~~53046~~) operation to query the status of the task:'."\n" - ."\n" - .' * If the IPsec-VPN connection is in the **updating** state, the IPsec-VPN connection is being modified.'."\n" - .' * If the IPsec-VPN connection is in the **attached** state, the IPsec-VPN connection is modified.'."\n" - ."\n" - .'* You cannot concurrently call **ModifyVpnAttachmentAttribute** within the specified period of time.'."\n" - ."\n" - .'* You cannot call **ModifyVpnAttachmentAttribute** to modify the gateway type of an IPsec-VPN connection.'."\n", ], - 'ModifyVcoRouteEntryWeight' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'UnassociatePhysicalConnectionFromVirtualBorderRouter' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', 'deprecated' => false, - 'systemTags' => [], + 'systemTags' => ['operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the IPsec-VPN connection.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The region ID of the Express Connect circuit.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'VpnConnectionId', + 'name' => 'VbrId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the IPsec-VPN connection.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'vco-p0w2jpkhi2eeop6q6****', - ], + 'schema' => ['description' => 'The ID of the VBR that you want to disassociate from the Express Connect circuit.'."\n", 'type' => 'string', 'required' => true, 'example' => 'vbr-bp16ksp61j7e0tkn*****', 'title' => ''], ], [ - 'name' => 'RouteDest', + 'name' => 'PhysicalConnectionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The destination CIDR block of the destination-based route that you want to modify.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => '192.168.10.0/24', - ], + 'schema' => ['description' => 'The ID of the Express Connect circuit.'."\n", 'type' => 'string', 'required' => true, 'example' => 'pc-bp1qrb3044eqixog****', 'title' => ''], ], [ - 'name' => 'Weight', + 'name' => 'ClientToken', 'in' => 'query', + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'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.'."\n" + ."\n" + .'> 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.'."\n", 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-426655440000', 'title' => ''], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => 'The current weight of the destination-based route that you want to modify. Valid values:'."\n" - ."\n" - .'* **0**: a low priority'."\n" - .'* **100**: a high priority'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'example' => '100', + 'description' => 'The request ID.'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '980960B0-2969-40BF-8542-EBB34FD358AB', 'title' => ''], + ], + 'title' => '', + 'example' => '', ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'PARAMETER_MUST_NOT_NULL', 'errorMessage' => 'The specified physical connection id or vbrId must not be null.', 'description' => ''], + ['errorCode' => 'PHYSICAL_NOT_ASSOCIATE_TO_VBR', 'errorMessage' => 'The specified PhysicalConnection have not associate to the vbr.', 'description' => 'No VBR is created for the Express Connect circuit.'], + ['errorCode' => 'ROUTER_INTERFACE_REFERED_BY_ROUTEENTRY', 'errorMessage' => 'The specified VlanInterface has been used by routeEntry.', 'description' => ''], + ['errorCode' => 'InvalidStatus.NotAllowed', 'errorMessage' => 'Invalid virtual border router status.', 'description' => ''], + ['errorCode' => 'PHYSICAL_NOT_ALLOW_ASSOCIATE_VBR', 'errorMessage' => 'The specified operation not allow.', 'description' => ''], + ['errorCode' => 'Forbidden.OperationNotAllowed', 'errorMessage' => 'The caller must be PhysicalConnection or VirtualBorderRouter\'s owner.', 'description' => ''], + ['errorCode' => 'OperationFailed.ResourceLockedBySystem', 'errorMessage' => 'The specified resource is locked by system.', 'description' => 'The operating resource is locked by the system and cannot be operated temporarily.'], + ], + 404 => [ + ['errorCode' => 'InvalidRegionId.NotFound', 'errorMessage' => 'The RegionId provided does not exist in our records.', 'description' => ''], + ['errorCode' => 'InvalidVbrId.NotFound', 'errorMessage' => 'The specified VirutalBorderRouter does not exist in our records.', 'description' => ''], + ], + ], + 'title' => 'UnassociatePhysicalConnectionFromVirtualBorderRouter', + 'summary' => 'Disassociates a virtual border router (VBR) from an Express Connect circuit.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"980960B0-2969-40BF-8542-EBB34FD358AB\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 980960B0-2969-40BF-8542-EBB34FD358AB\\n","errorExample":""}]', + 'operationType' => 'readAndWrite', + ], + 'UnassociateRouteTable' => [ + 'summary' => 'Disassociates a route table from a vSwitch.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'readAndWrite', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free'], + 'parameters' => [ [ - 'name' => 'NewWeight', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The new weight of the destination-based route that you want to modify. Valid values:'."\n" - ."\n" - .'* **0**: a low priority'."\n" - .'* **100**: a high priority'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'example' => '0', - ], + 'schema' => ['description' => 'The region ID of the virtual private cloud (VPC) to which the custom route table belongs.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'NextHop', + 'name' => 'RouteTableId', 'in' => 'query', - 'schema' => [ - 'description' => 'The next hop of the destination-based route that you want to modify.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'vco-p0w2jpkhi2eeop6q6****', - ], + 'schema' => ['description' => 'The ID of the route table.'."\n", 'type' => 'string', 'required' => true, 'example' => 'vtb-bp145q7glnuzdvzu2****', 'title' => ''], ], [ - 'name' => 'OverlayMode', + 'name' => 'VSwitchId', 'in' => 'query', - 'schema' => [ - 'description' => 'The tunneling protocol. Set the value to **Ipsec**, which specifies the IPsec tunneling protocol.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'Ipsec', - ], + 'schema' => ['description' => 'The ID of the vSwitch from which you want to disassociate the route table.'."\n", 'type' => 'string', 'required' => true, 'example' => 'vsw-25naue4****', 'title' => ''], ], [ 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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.'."\n" - ."\n" - .'> 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.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-4266****', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'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.'."\n" + ."\n" + .'> 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.'."\n", 'type' => 'string', 'required' => false, 'example' => '02fb3da4-130e-11e9-8e44-0016e04115b', 'title' => ''], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => ['description' => 'The region ID of the virtual private cloud (VPC) to which the custom route table belongs.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'BaseResponse4OpenApi', - 'description' => 'The response parameters.'."\n", 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '9496F8A-82F4-3130-A51A-2266ACC799B4', - ], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '62172DD5-6BAC-45DF-8D44-xxxxxxx', 'title' => ''], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'Resource.QuotaFull', - 'errorMessage' => 'The quota of resource is full', - ], - [ - 'errorCode' => 'VpnConnection.Configuring', - 'errorMessage' => 'The specified service is configuring.', - ], - [ - 'errorCode' => 'VpnConnection.FinancialLocked', - 'errorMessage' => 'The specified service is financial locked.', - ], - [ - 'errorCode' => 'VpnRouteEntry.AlreadyExists', - 'errorMessage' => 'The specified route entry is already exist.', - ], - [ - 'errorCode' => 'VpnRouteEntry.Conflict', - 'errorMessage' => 'The specified route entry has conflict.', - ], - [ - 'errorCode' => 'TaskConflict', - 'errorMessage' => 'The operation is too frequent, please wait a moment and try again.', - ], - ], - 403 => [ - [ - 'errorCode' => 'Forbbiden.SubUser', - 'errorMessage' => 'User not authorized to operate on the specified resource as your account is created by another user.', - ], - [ - 'errorCode' => 'Forbidden', - 'errorMessage' => 'User not authorized to operate on the specified resource.', - ], + ['errorCode' => 'InvalidRegionId.NotFound', 'errorMessage' => 'Specified value of RegionId is not supported.', 'description' => ''], + ['errorCode' => 'InvalidParameter.Action', 'errorMessage' => 'This vpc feature is not supported in this region', 'description' => ''], + ['errorCode' => 'IncorrectVSwitchStatus', 'errorMessage' => 'The current status of the virtual switch does not support this operation.', 'description' => ''], + ['errorCode' => 'OperationUnsupported.SystemRouteTable', 'errorMessage' => 'System route table can not be unassociated.', 'description' => 'You cannot disassociate the system route table.'], + ['errorCode' => 'InvalidStatus.VSwitch', 'errorMessage' => 'Specified vswitch is not in stable status and cannot operate.', 'description' => ''], ], - [ - [ - 'errorCode' => 'InvalidVpnConnectionInstanceId.NotFound', - 'errorMessage' => 'The specified vpn connection instance id does not exist.', - ], + 404 => [ + ['errorCode' => 'InvalidRouteTableId.NotFound', 'errorMessage' => 'Specified route table does not exist.', 'description' => ''], + ['errorCode' => 'InvalidVSwitchId.NotFound', 'errorMessage' => 'Specified VSwitch does not exist.', 'description' => ''], + ['errorCode' => 'InvalidBindingStatus.RouteTable', 'errorMessage' => 'The specified virtual switch and route table does not bind', 'description' => ''], + ['errorCode' => 'OperationFailed.VSwitchNotAssociate', 'errorMessage' => 'Specified vswitch is not associated with the routeTable and cannot operate.', 'description' => ''], ], ], - 'staticInfo' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"9496F8A-82F4-3130-A51A-2266ACC799B4\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 9496F8A-82F4-3130-A51A-2266ACC799B4\\n","errorExample":""}]', - 'title' => 'ModifyVcoRouteEntryWeight', - 'summary' => 'Modifies the weight of a destination-based route for an IPsec-VPN connection.', - 'description' => '* **ModifyVcoRouteEntryWeight** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call the [DescribeVpnConnection](~~53046~~) operation to query the status of the associated IPsec-VPN connection and determine whether the weight of the specified destination-based route is modified.'."\n" + 'title' => 'UnassociateRouteTable', + 'description' => '## [](#)References'."\n" ."\n" - .' * If the IPsec-VPN connection is in the **updating** state, the weight of the destination-based route is being modified.'."\n" - .' * If the IPsec-VPN connection is in the **attached** state, the weight of the destination-based route is modified.'."\n" + .'* **UnassociateRouteTable** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call the [DescribeVSwitchAttributes](~~94567~~) operation to query the status of the task.'."\n" ."\n" - .'* You cannot repeatedly call the **ModifyVcoRouteEntryWeight** operation for the same IPsec-VPN connection within the specified period of time.'."\n", - ], - 'DescribeVpnAttachments' => [ - 'summary' => 'Queries the IPsec-VPN connections associated with a transit router.', - 'methods' => [ - 'post', - 'get', + .' * If the vSwitch is in the **Pending** state, the route table is being disassociated.'."\n" + .' * If the vSwitch is in the **Available** state, the route table is disassociated.'."\n" + ."\n" + .'* You cannot repeatedly call the **UnassociateRouteTable** operation to disassociate a route table from a vSwitch within the specified period of time.'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:UnassociateRouteTable', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VSwitch', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vswitch/{#VSwitchId}'], + ], + ], + ], ], - 'schemes' => [ - 'http', - 'https', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"62172DD5-6BAC-45DF-8D44-xxxxxxx\\"\\n}","errorExample":"{\\n \\"RequestId\\": \\"62172DD5-6BAC-45DF-8D44-xxxxxxxx\\"\\n}"},{"type":"xml","example":"\\n\\n 62172DD5-6BAC-45DF-8D44-xxxxxxx\\n","errorExample":"\\n\\n 62172DD5-6BAC-45DF-8D44-xxxxxxx\\n"}]', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'UnassociateRouteTable'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], ], + ], + 'UnassociateVpcCidrBlock' => [ + 'summary' => 'Removes a secondary CIDR block from a virtual private cloud (VPC).', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'list', - 'riskType' => 'none', - 'chargeType' => 'free', - ], + 'systemTags' => ['operationType' => 'delete'], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region where the IPsec-VPN connection is established.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The region ID of the VPC to which the secondary CIDR block to be deleted belongs.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the region ID.', 'type' => 'string', 'required' => true, 'example' => 'ch-hangzhou', 'title' => ''], ], [ - 'name' => 'PageNumber', + 'name' => 'VpcId', 'in' => 'query', - 'schema' => [ - 'description' => 'The page number. Default value: **1**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', - ], + 'schema' => ['description' => 'The ID of the VPC from which you want to delete a secondary CIDR block.', 'type' => 'string', 'required' => true, 'example' => 'vpc-o6wrloqsdqc9io3mg****', 'title' => ''], ], [ - 'name' => 'PageSize', + 'name' => 'SecondaryCidrBlock', 'in' => 'query', - 'schema' => [ - 'description' => 'The number of entries per page. Default value: **10**. Valid values: **1** to **50**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '10', - ], + 'schema' => ['description' => 'The secondary IPv4 CIDR block to be deleted.'."\n" + ."\n" + .'> '."\n" + .'> - You must set one of the SecondaryCidrBlock and Ipv6CidrBlock parameters.', 'type' => 'string', 'required' => false, 'example' => '192.168.0.0/16', 'title' => ''], ], [ - 'name' => 'VpnConnectionId', + 'name' => 'IPv6CidrBlock', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the IPsec-VPN connection.'."\n" - ."\n" - .'> If you do not specify an IPsec-VPN connection ID, all IPsec-VPN connections associated with a transit router in the region are queried.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'vco-p0w2jpkhi2eeop6q6****', - ], + 'schema' => ['description' => 'The secondary IPv6 CIDR block to be deleted.'."\n" + ."\n" + .'> '."\n" + .'> - You must set one of the Ipv6CidrBlock and SecondaryCidrBlock parameters.', 'type' => 'string', 'required' => false, 'example' => '2408:XXXX:0:6a::/56', 'title' => ''], ], [ - 'name' => 'AttachType', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The type of resource that is associated with the IPsec-VPN connection. Default value: **CEN**.'."\n" - ."\n" - .'Set the value to **CEN**, which specifies to query IPsec-VPN connections associated with the transit router.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'CEN', - ], + 'schema' => ['description' => 'The region ID of the VPC to which the secondary CIDR block to be deleted belongs.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the region ID.', 'type' => 'string', 'required' => true, 'example' => 'ch-hangzhou', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'The response parameters.'."\n", + 'description' => '', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '9F0725BB-186A-3564-91C3-AAE48042F853', - ], - 'PageSize' => [ - 'description' => 'The number of entries per page.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'PageNumber' => [ - 'description' => 'The page number.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'TotalCount' => [ - 'description' => 'The number of returned entries.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'VpnAttachments' => [ - 'description' => 'The list of IPsec-VPN connections associated with the transit router.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The information about the IPsec-VPN connection associated with the transit router.'."\n", - 'type' => 'object', - 'properties' => [ - 'InstanceId' => [ - 'description' => 'The ID of the IPsec-VPN connection.'."\n", - 'type' => 'string', - 'example' => 'vco-p0w2jpkhi2eeop6q6****', - ], - 'Name' => [ - 'description' => 'The name of the IPsec-VPN connection.'."\n", - 'type' => 'string', - 'example' => 'nametest1', - ], - 'Description' => [ - 'description' => 'The description of the IPsec-VPN connection.'."\n", - 'type' => 'string', - 'example' => 'desctest', - ], - 'AttachType' => [ - 'description' => 'The type of resource that is associated with the IPsec-VPN connection. The value is set to **CEN**, which indicates that the IPsec-VPN connection is associated with a transit router.'."\n", - 'type' => 'string', - 'example' => 'CEN', - ], - 'TransitRouterId' => [ - 'description' => 'The ID of the transit router with which the IPsec-VPN connection is associated.'."\n", - 'type' => 'string', - 'example' => 'tr-p0wkh4yryb1dnanqw****', - ], - 'TransitRouterName' => [ - 'description' => 'The name of the transit router.'."\n", - 'type' => 'string', - 'example' => 'nametest2', - ], - 'CrossAccountAuthorized' => [ - 'description' => 'Indicates whether the IPsec-VPN connection is associated with a transit router that belongs to another Alibaba Cloud account. Valid values:'."\n" - ."\n" - .'* **true**'."\n" - .'* **false**'."\n", - 'type' => 'boolean', - 'example' => 'false', - ], - 'Tag' => [ - 'description' => 'The system tags of the IPsec-VPN connection.'."\n" - ."\n" - .'You can check whether an IPsec-VPN connection supports BGP based on the system tags.'."\n" - ."\n" - .'**BGPSupport**: indicates whether the IPsec-VPN connection supports BGP.'."\n" - ."\n" - .'* **true**'."\n" - .'* **false**'."\n", - 'type' => 'string', - 'example' => '{\\"description\\":\\"forwarding 1.7.22\\",\\"VisuallySsl\\":\\"true\\",\\"PbrPriority\\":\\"true\\",\\"BGPSupport\\":\\"true\\",\\"IDaaSNewVersion\\":\\"true\\"}', - ], - 'Tags' => [ - 'description' => 'The list of tags to be added to the IPsec-VPN connection.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The tag added to the resource.'."\n", - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => 'The tag key of the IPsec-VPN connection.'."\n", - 'type' => 'string', - 'example' => 'TagKey', - ], - 'Value' => [ - 'description' => 'The tag value of the IPsec-VPN connection.'."\n", - 'type' => 'string', - 'example' => 'TagValue', - ], - ], - ], - ], - 'TunnelBandwidth' => [ - 'title' => '用于说明VPN单条隧道的带宽规格,取值:'."\n" - .'Standard(默认值):标准型,默认带宽1Gbps'."\n" - .'Large(大型):大型,默认带宽3Gbps', - 'description' => 'Specifies the bandwidth specifications for a single tunnel in VPN attachment. Available options:'."\n" - .'- **Standard**: Standard, 1Gbps'."\n" - .'- **Large**: Large-sized, 3Gbps', - 'type' => 'string', - 'example' => 'Standard', - ], - ], - ], - ], + 'RequestId' => ['description' => 'The ID of the request.', 'type' => 'string', 'example' => 'C1221A1F-2ACD-4592-8F27-474E02883159', 'title' => ''], ], + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'Forbidden.TagKey.Duplicated', - 'errorMessage' => 'The specified tag key already exists.', - ], - [ - 'errorCode' => 'SizeLimitExceeded.TagNum', - 'errorMessage' => 'The maximum number of tags is exceeded.', - ], - [ - 'errorCode' => 'InvalidParameter.TagValue', - 'errorMessage' => 'The specified parameter TagValue is invalid.', - ], - [ - 'errorCode' => 'InvalidParameter.TagKey', - 'errorMessage' => 'The specified parameter TagKey is invalid.', - ], - [ - 'errorCode' => 'Duplicated.TagKey', - 'errorMessage' => 'The specified parameter TagKey is duplicated.', - ], + ['errorCode' => 'OperationFailed.Ipv6Gateway', 'errorMessage' => 'The operation is failed because of ipv6Gateway is in use.', 'description' => 'The operation failed because the IPv6 gateway is being used.'], + ['errorCode' => 'InvalidVpc.NotFound', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'IncorrectStatus.Vpc', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'ParamExclusive.SecondaryCidrAndIpv6Cidr', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'MissingParam.SecondaryCidrOrIpv6Cidr', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'InvalidSecondaryCidrBlock.NotFound', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'OperationFailed.CidrInUse', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'InvalidIpv6CidrBlock.NotFound', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'OperationFailed.IpV6VSwitchInuse', 'errorMessage' => 'Operation failed because some vswitch ipv6 is in use.', 'description' => ''], + ['errorCode' => 'MissingParam.SecondaryCidrBlockOrIpv6CidrBlock', 'errorMessage' => 'Either SecondaryCidrBlock or Ipv6CidrBlock must be specified.', 'description' => 'The secondary CIDR block or the IPv6 CIDR block is not specified.'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"9F0725BB-186A-3564-91C3-AAE48042F853\\",\\n \\"PageSize\\": 10,\\n \\"PageNumber\\": 1,\\n \\"TotalCount\\": 1,\\n \\"VpnAttachments\\": [\\n {\\n \\"InstanceId\\": \\"vco-p0w2jpkhi2eeop6q6****\\",\\n \\"Name\\": \\"nametest1\\",\\n \\"Description\\": \\"desctest\\",\\n \\"AttachType\\": \\"CEN\\",\\n \\"TransitRouterId\\": \\"tr-p0wkh4yryb1dnanqw****\\",\\n \\"TransitRouterName\\": \\"nametest2\\",\\n \\"CrossAccountAuthorized\\": false,\\n \\"Tag\\": \\"{\\\\\\\\\\\\\\"description\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"转发1.7.22\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"VisuallySsl\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"true\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"PbrPriority\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"true\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"BGPSupport\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"true\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"IDaaSNewVersion\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"true\\\\\\\\\\\\\\"}\\",\\n \\"Tags\\": [\\n {\\n \\"Key\\": \\"TagKey\\",\\n \\"Value\\": \\"TagValue\\"\\n }\\n ],\\n \\"TunnelBandwidth\\": \\"Standard\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\n 9F0725BB-186A-3564-91C3-AAE48042F853\\n 10\\n 1\\n 1\\n \\n vco-p0w2jpkhi2eeop6q6****\\n nametest1\\n CEN\\n tr-p0wkh4yryb1dnanqw****\\n nametest2\\n false\\n \\n","errorExample":""}]', - 'title' => 'DescribeVpnAttachments', - ], - 'DescribeVcoRouteEntries' => [ - 'summary' => 'Queries the routes of an IPsec-VPN connection.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'title' => 'UnassociateVpcCidrBlock', + 'description' => '- 删除VPC的附加网段前,请先删除以附加网段创建的交换机。更多信息,请参见[DeleteVSwitch](~~35746~~)。'."\n" + ."\n" + .'- **UnassociateVpcCidrBlock**接口不支持在同一个VPC下并发删除附加网段。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2023-08-24T07:18:02.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-07-10T01:47:39.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2022-11-03T13:35:20.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2021-08-16T09:15:55.000Z', 'description' => 'Error codes changed'], ], + 'ramActions' => [], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"C1221A1F-2ACD-4592-8F27-474E02883159\\"\\n}","type":"json"}]', + ], + 'UntagResourcesForExpressConnect' => [ + 'summary' => 'Removes tags from an Express Connect circuit at a time.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'write', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'list', - ], + 'systemTags' => ['operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ - 'name' => 'RegionId', + 'name' => 'ResourceType', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the IPsec-VPN connection.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent list of regions.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The type of the resource. Valid values:'."\n" + ."\n" + .'* **PHYSICALCONNECTION**: Express Connect circuit.'."\n" + .'* **VIRTUALBORDERROUTER**: virtual border router (VBR).'."\n" + .'* **ROUTERINTERFACE**: router interface.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'PHYSICALCONNECTION', 'title' => ''], ], [ - 'name' => 'VpnConnectionId', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the IPsec-VPN connection.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'vco-p0w2jpkhi2eeop6q6****', - ], - ], - [ - 'name' => 'RouteEntryType', - 'in' => 'query', - 'schema' => [ - 'description' => 'The route type. Valid values:'."\n" - ."\n" - .'* **custom** (default): a destination-based route'."\n" - .'* **bgp**: a BGP route'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'custom', - ], + 'schema' => ['description' => 'The ID of the region in which the resource is deployed.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to obtain the region ID.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'PageNumber', + 'name' => 'All', 'in' => 'query', - 'schema' => [ - 'description' => 'The number of the page to return. Default value: **1**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', - ], + 'schema' => ['description' => 'Specifies whether to remove all tags from the specified resource. Valid values:'."\n" + ."\n" + .'* **true**'."\n" + .'* **false** (default)'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], ], [ - 'name' => 'PageSize', + 'name' => 'ResourceId', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => 'The number of entries to return on each page. Default value: **10**. Valid values: **1** to **50**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '10', + 'description' => 'The IDs of the resources from which you want to remove tags.'."\n", + 'type' => 'array', + 'items' => ['description' => 'The resource ID. You can specify up to 20 resource IDs.'."\n", 'type' => 'string', 'required' => false, 'example' => 'pc-bp16qjewdsunr41m1****', 'title' => ''], + 'required' => true, + 'maxItems' => 21, + 'title' => '', + 'example' => '', ], ], [ - 'name' => 'ClientToken', + 'name' => 'TagKey', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'You can use the client to generate the value, but you must make sure that it is unique among all requests. ClientToken can contain only ASCII characters.'."\n" + 'description' => 'The tags to remove from the specified resource.'."\n", + 'type' => 'array', + 'items' => ['description' => 'The key of the tag to remove from the resource. You can specify up to 20 tag keys. The tag key cannot be an empty string.'."\n" ."\n" - .'> If you do not set this parameter, the system uses **RequestId** as **ClientToken**. The value of **RequestId** for each API request may be different.'."\n", - 'type' => 'string', + .'The tag key must be 1 to 128 characters in length and cannot contain `http://` or `https://`. The tag key cannot start with `aliyun` or `acs:`.'."\n", 'type' => 'string', 'required' => false, 'example' => 'FinanceDept', 'title' => ''], 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-4266****', + 'maxItems' => 21, + 'title' => '', + 'example' => '', ], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'PlainResponse4OpenApi', - 'description' => 'The response parameters.'."\n", + 'description' => 'The request ID.'."\n", 'type' => 'object', 'properties' => [ - 'TotalCount' => [ - 'description' => 'The number of entries returned.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'PageNumber' => [ - 'description' => 'The number of the returned page.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'PageSize' => [ - 'description' => 'The number of entries returned per page.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'VcoRouteEntries' => [ - 'description' => 'The list of route entries.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The information about the routes.'."\n", - 'type' => 'object', - 'properties' => [ - 'VpnConnectionId' => [ - 'description' => 'The ID of the IPsec-VPN connection.'."\n", - 'type' => 'string', - 'example' => 'vco-p0w2jpkhi2eeop6q6****', - ], - 'RouteDest' => [ - 'description' => 'The destination CIDR block of the route.'."\n", - 'type' => 'string', - 'example' => '192.168.10.0/24', - ], - 'NextHop' => [ - 'description' => 'The next hop of the route.'."\n", - 'type' => 'string', - 'example' => 'vco-p0w2jpkhi2eeop6q6****', - ], - 'Weight' => [ - 'description' => 'The weight of the destination-based route.'."\n" - ."\n" - .'> The current parameter has no effect.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '100', - ], - 'State' => [ - 'description' => 'The status of the route.'."\n" - ."\n" - .'* **published**: indicates that the current route is advertised to the transit router.'."\n" - .'* **Active**: indicates that the current BGP route is available.'."\n", - 'type' => 'string', - 'example' => 'published', - ], - 'RouteEntryType' => [ - 'description' => 'The route type. Valid values:'."\n" - ."\n" - .'* **custom**: a destination-based route'."\n" - .'* **bgp**: a BGP route'."\n", - 'type' => 'string', - 'example' => 'custom', - ], - 'CreateTime' => [ - 'description' => 'The timestamp when the route was created.'."\n" - ."\n" - .'This value is a UNIX timestamp representing the number of milliseconds that have elapsed since the epoch time January 1, 1970, 00:00:00 UTC.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1658217008000', - ], - 'AsPath' => [ - 'description' => 'The list of autonomous system (AS) numbers that the BGP route goes through.'."\n", - 'type' => 'string', - 'example' => '[12000]', - ], - 'Community' => [ - 'description' => 'The community value carried by the BGP route.'."\n", - 'type' => 'string', - 'example' => '65535:65510', - ], - 'Source' => [ - 'description' => 'The source of the BGP route. Valid values:'."\n" - ."\n" - .'* **CLOUD**: indicates that the current BGP route is learned by the IPsec-VPN connection from the transit router.'."\n" - .'* **VPN_BGP**: indicates that the current BGP route is learned by the IPsec-VPN connection from the data center.'."\n", - 'type' => 'string', - 'example' => 'CLOUD', - ], - 'NextHopTunnelIdList' => [ - 'description' => 'The list of next hops.'."\n" - ."\n" - .'> - This parameter is returned only by dual-tunnel IPsec connections.'."\n" - .'> - This parameter is returned only when the tunnel status is **Phase 2 Negotiation Successful**.', - 'type' => 'array', - 'items' => [ - 'description' => 'The tunnel ID.'."\n", - 'type' => 'string', - 'example' => 'tun-0jothw962cp3bvhbw****', - ], - ], - ], - ], - ], - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => 'E18980E8-C8C2-31BD-8156-AE2BBDEC87E1', - ], - 'VpnRouteCounts' => [ - 'description' => 'The information on route entries of the dual-tunnel IPsec connection.'."\n" - ."\n" - .'> This parameter is returned only for IPsec connections in dual-tunnel mode.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The information about the route entries.'."\n", - 'type' => 'object', - 'properties' => [ - 'RouteEntryType' => [ - 'description' => 'The route type. Valid values:'."\n" - ."\n" - .'* **custom**: destination-based route.'."\n" - .'* **bgp**: BGP route.'."\n", - 'type' => 'string', - 'example' => 'bgp', - ], - 'RouteCount' => [ - 'description' => 'The number of route entries.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '3', - ], - 'Source' => [ - 'description' => 'The source of the BGP route. Valid values:'."\n" - ."\n" - .'* **CLOUD**: The current BGP route is learned by the IPsec connection from the transit router.'."\n" - .'* **VPN_BGP**: The current BGP route is learned by the IPsec connection from the data center.'."\n", - 'type' => 'string', - 'example' => 'VPN_BGP', - ], - ], - ], - ], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => 'DE65F6B7-7566-4802-9007-96F2494AC512', 'title' => ''], ], + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'IllegalParam.RouteEntryType', - 'errorMessage' => 'The specified RouteEntryType is invalid.', - ], - [ - 'errorCode' => 'Vco.StatusNotSupport', - 'errorMessage' => 'The current VPN connection state does not support this operation.', - ], + ['errorCode' => 'InvalidTagKey', 'errorMessage' => 'The tag keys are not valid.', 'description' => 'The tag index is invalid.'], + ['errorCode' => 'InvalidTagValue', 'errorMessage' => 'The tag values are not valid.', 'description' => 'The tag value is invalid.'], + ['errorCode' => 'InvalidInstanceType.NotFound', 'errorMessage' => 'The instance type is not found', 'description' => 'The instance type is not found.'], + ['errorCode' => 'InvalidInstanceIds.NotFound', 'errorMessage' => 'The instanceIds are not found', 'description' => 'The instance ID is not found.'], + ['errorCode' => 'Forbidden.TagKeys', 'errorMessage' => 'The request do not allow to operate the tag keys', 'description' => 'You do not have the permissions to set the TagKeys parameter.'], + ['errorCode' => 'QuotaExceeded.TagNum', 'errorMessage' => 'Custom Tags quota exceeded', 'description' => 'The upper limit is reached.'], + ['errorCode' => 'Forbidden.TagKey.Duplicated', 'errorMessage' => 'The specified tag key already exists.', 'description' => 'The tag resources are duplicate.'], + ['errorCode' => 'SizeLimitExceeded.TagNum', 'errorMessage' => 'The maximum number of tags is exceeded.', 'description' => 'The number of tags has reached the upper limit.'], + ['errorCode' => 'SizeLimitExceeded.ResourceId', 'errorMessage' => 'The maximum number of resource IDs is exceeded.', 'description' => 'The number of resource group IDs has reached the upper limit.'], ], 403 => [ - [ - 'errorCode' => 'Forbbiden.SubUser', - 'errorMessage' => 'User not authorized to operate on the specified resource as your account is created by another user.', - ], - [ - 'errorCode' => 'Forbidden', - 'errorMessage' => 'User not authorized to operate on the specified resource.', - ], - ], - [ - [ - 'errorCode' => 'InvalidVpnConnectionInstanceId.NotFound', - 'errorMessage' => 'The specified vpn connection instance id does not exist.', - ], + ['errorCode' => 'Forbidden', 'errorMessage' => 'User not authorized to operate on the specified resource.', 'description' => 'You do not have the permissions to manage the specified resource. Apply for the permissions and try again.'], ], ], - 'eventInfo' => [ - 'enable' => false, - 'eventNames' => [], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"TotalCount\\": 1,\\n \\"PageNumber\\": 1,\\n \\"PageSize\\": 10,\\n \\"VcoRouteEntries\\": [\\n {\\n \\"VpnConnectionId\\": \\"vco-p0w2jpkhi2eeop6q6****\\",\\n \\"RouteDest\\": \\"192.168.10.0/24\\",\\n \\"NextHop\\": \\"vco-p0w2jpkhi2eeop6q6****\\",\\n \\"Weight\\": 100,\\n \\"State\\": \\"published\\",\\n \\"RouteEntryType\\": \\"custom\\",\\n \\"CreateTime\\": 1658217008000,\\n \\"AsPath\\": \\"[12000]\\",\\n \\"Community\\": \\"65535:65510\\",\\n \\"Source\\": \\"CLOUD\\",\\n \\"NextHopTunnelIdList\\": [\\n \\"tun-0jothw962cp3bvhbw****\\"\\n ]\\n }\\n ],\\n \\"RequestId\\": \\"E18980E8-C8C2-31BD-8156-AE2BBDEC87E1\\",\\n \\"VpnRouteCounts\\": [\\n {\\n \\"RouteEntryType\\": \\"bgp\\",\\n \\"RouteCount\\": 3,\\n \\"Source\\": \\"VPN_BGP\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\n 1\\n 10\\n E18980E8-C8C2-31BD-8156-AE2BBDEC87E1\\n 1\\n \\n 192.168.10.0/24\\n vco-p0w2jpkhi2eeop6q6****\\n published\\n custom\\n 1658217008000\\n vco-p0w2jpkhi2eeop6q6****\\n 100\\n \\n","errorExample":""}]', - 'title' => 'DescribeVcoRouteEntries', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'UntagResourcesForExpressConnect', + 'changeSet' => [], + 'ramActions' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"DE65F6B7-7566-4802-9007-96F2494AC512\\"\\n}","errorExample":""},{"type":"xml","example":"\\n DE65F6B7-7566-4802-9007-96F2494AC512\\n","errorExample":""}]', ], - 'CheckVpnBgpEnabled' => [ - 'summary' => 'Checks whether the region of an IPsec-VPN connection supports BGP.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'UpdateDhcpOptionsSetAttribute' => [ + 'summary' => 'Modifies the configuration of a DHCP options set.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'write', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'none', - 'tenantRelevance' => 'publicInformation', - ], + 'systemTags' => ['operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the IPsec-VPN connection.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The region where the DHCP options set is deployed. You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], + ], + [ + 'name' => 'DhcpOptionsSetId', + 'in' => 'query', + 'schema' => ['description' => 'The ID of the DHCP options set.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'dopt-o6w0df4epg9zo8isy****', 'title' => ''], + ], + [ + 'name' => 'DomainNameServers', + 'in' => 'query', + 'schema' => ['description' => 'The IP address of the DNS server. You can enter at most four DNS server IP addresses. Separate IP addresses with commas (,).'."\n" + ."\n" + .'> If you do not specify a DNS server IP address, Elastic Compute Service (ECS) instances use the IP addresses of the Alibaba Cloud DNS servers, which are 100.100.2.136 and 100.100.2.138.'."\n", 'type' => 'string', 'required' => false, 'example' => '192.XX.XX.123', 'title' => ''], + ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => ['description' => 'The root domain. For example, you can set the value to example.com.'."\n" + ."\n" + .'After a DHCP options set is associated with a virtual private cloud (VPC), the root domain in the DHCP options set is automatically synchronized with the ECS instances in the VPC.'."\n", 'type' => 'string', 'required' => false, 'example' => 'example.com', 'title' => ''], + ], + [ + 'name' => 'DhcpOptionsSetName', + 'in' => 'query', + 'schema' => ['description' => 'The name of the DHCP options set.'."\n" + ."\n" + .'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.'."\n", 'type' => 'string', 'required' => false, 'example' => 'name', 'title' => ''], + ], + [ + 'name' => 'DhcpOptionsSetDescription', + 'in' => 'query', + 'schema' => ['description' => 'Enter a description for the DHCP options set.'."\n" + ."\n" + .'The description must be 2 to 256 characters in length. It must start with a letter and cannot start with `http://` or `https://`. You can also leave the description empty.'."\n", 'type' => 'string', 'required' => false, 'example' => 'description', 'title' => ''], ], [ 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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.'."\n" - ."\n" - .'> 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.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-4266****', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'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.'."\n" + ."\n" + .'> If you do not set this parameter, **ClientToken** is set to the value of **RequestId**. The value of **RequestId** for each API request may be different.'."\n", 'type' => 'string', 'required' => false, 'example' => '0c593ea1-3bea-11e9-b96b-88e9fe637760', 'title' => ''], + ], + [ + 'name' => 'DryRun', + 'in' => 'query', + 'schema' => ['description' => 'Specifies whether to perform a dry run. Valid values:'."\n" + ."\n" + .'**true**: performs a dry run. The system checks the required parameters, request format, and 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.'."\n" + ."\n" + .'**false** (default): performs a dry run and sends the request. If the request passes the dry run, a 2xx HTTP status code is returned and the operation is performed.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], + ], + [ + 'name' => 'LeaseTime', + 'in' => 'query', + 'schema' => ['description' => 'The lease time of the IPv4 addresses for the DHCP options set.'."\n" + ."\n" + .'* If you use hours as the unit, valid values are **24h to 1176h** and **87600h to 175200h**. Default value: **87600h**.'."\n" + .'* If you use days as the unit, valid values are **1d to 49d** and **3650d to 7300d**. Default value: **3650d**.'."\n" + ."\n" + .'> If you specify a value, you must also specify the unit.'."\n", 'type' => 'string', 'required' => false, 'example' => '3650d', 'title' => ''], + ], + [ + 'name' => 'Ipv6LeaseTime', + 'in' => 'query', + 'schema' => ['description' => 'The lease time of the IPv6 addresses for the DHCP options set.'."\n" + ."\n" + .'* If you use hours as the unit, valid values are **24h to 1176h** and **87600h to 175200h**. Default value: **87600h**.'."\n" + .'* If you use days as the unit, valid values are **1d to 49d** and **3650d to 7300d**. Default value: **3650d**.'."\n" + ."\n" + .'> If you specify a value, you must also specify the unit.'."\n", 'type' => 'string', 'required' => false, 'example' => '3650d', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'The response parameters.'."\n", + 'description' => '', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => 'DF448D2E-215D-334F-B10D-7C3B087EF996', - ], - 'BgpEnabled' => [ - 'description' => 'Indicates whether the region supports BGP.'."\n" - ."\n" - .'* **true**'."\n" - .'* **false**'."\n", - 'type' => 'boolean', - 'example' => 'true', - ], + 'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => '0ED8D006-F706-4D23-88ED-E11ED28DCAC0', 'title' => ''], ], + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ - 403 => [ - [ - 'errorCode' => 'Forbidden', - 'errorMessage' => 'User not authorized to operate on the specified resource.', - ], + 400 => [ + ['errorCode' => 'InvalidDhcpOptionsSetId.NotFound', 'errorMessage' => 'The specified dhcpOptionsSetId does not exist.', 'description' => 'The DHCP options set does not exist. Check whether the parameter is set to a valid value.'], + ['errorCode' => 'IncorrectStatus.DhcpOptionsSet', 'errorMessage' => 'The DhcpOptionsSet status does not support this operation.', 'description' => 'The DHCP options set that is associated with the VPC is being configured. As a result, the DHCP options set does not support this operation. You can perform the operation after the status of the DHCP options set is stable.'], + ['errorCode' => 'IllegalParam.DomainNameServers', 'errorMessage' => 'The specified DomainNameServers is invalid.', 'description' => 'DomainNameServers is set to an invalid value.'], + ['errorCode' => 'IllegalParam.DomainName', 'errorMessage' => 'The specified DomainName is invalid.', 'description' => 'The error message returned because DomainName is set to an invalid value.'], + ['errorCode' => 'IllegalParam.DhcpOptionsSetName', 'errorMessage' => 'The specified DhcpOptionsSetName is invalid.', 'description' => 'DhcpOptionsSetName is set to an invalid value.'], + ['errorCode' => 'IllegalParam.DhcpOptionsSetDescription', 'errorMessage' => 'The specified DhcpOptionsSetDescription is invalid.', 'description' => 'DhcpOptionsSetDescription is set to an invalid value.'], + ['errorCode' => 'OperationUnsupported.DhcpLeaseTime', 'errorMessage' => 'The DhcpOptionsSet of this region does not support custom LeaseTime.', 'description' => 'DHCP options sets in the region do not support a custom lease time.'], + ['errorCode' => 'OperationUnsupported.DhcpOptionsSet', 'errorMessage' => 'The DHCP options set feature in this region is not supported.', 'description' => 'The current region does not support the DHCP options sets feature.'], + ['errorCode' => 'OperationDenied.ModifyDefaultDhcpOptionsSet', 'errorMessage' => 'The default DHCP options set is not allowed to be modified.', 'description' => 'The default DHCP options set is not allowed to be modified.'], + ['errorCode' => 'InvalidRegionId.NotFound', 'errorMessage' => 'The specified RegionId does not exist.', 'description' => 'The specified region does not exist.'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"DF448D2E-215D-334F-B10D-7C3B087EF996\\",\\n \\"BgpEnabled\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n DF448D2E-215D-334F-B10D-7C3B087EF996\\n true\\n","errorExample":""}]', - 'title' => 'CheckVpnBgpEnabled', + 'title' => 'UpdateDhcpOptionsSetAttribute', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2024-12-13T02:34:41.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-04-22T03:18:36.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-07-05T07:33:20.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2022-10-27T07:35:46.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2021-11-16T13:33:39.000Z', 'description' => 'Request parameters changed'], + ], + 'ramActions' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"0ED8D006-F706-4D23-88ED-E11ED28DCAC0\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 0ED8D006-F706-4D23-88ED-E11ED28DCAC0\\n","errorExample":""}]', ], - 'DescribeVpnCrossAccountAuthorizations' => [ - 'summary' => 'Queries the cross-account authorization information about an IPsec-VPN connection.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'UpdateEnhancedVpnGateway' => [ + 'summary' => 'Call UpdateEnhancedVpnGateway to modify the name, description, or automatic route propagation of an enhanced VPN gateway.', + 'path' => '', + 'methods' => ['post', 'get'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'readAndWrite', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'get', - ], + 'systemTags' => ['operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', 'autoTest' => true, 'tenantRelevance' => 'tenant'], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region to which the IPsec-VPN connection belongs.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the region ID.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The ID of the region where the enhanced VPN gateway is located. You can call the [DescribeRegions](~~36063~~) operation to obtain the region ID.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'VpnConnectionId', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the IPsec-VPN connection.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'vco-p0w2jpkhi2eeop6q6****', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'You can generate a token from your client to make sure that the token is unique among different requests. The client token can contain only ASCII characters.'."\n" + ."\n" + .'> If you do not specify a `ClientToken`, the system automatically uses the `RequestId` of the API request as the `ClientToken`. Each API request has a different `RequestId`.', 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-4266****', 'title' => ''], ], [ - 'name' => 'PageNumber', + 'name' => 'VpnGatewayId', 'in' => 'query', - 'schema' => [ - 'description' => 'The page number. Default value: **1**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', - ], + 'schema' => ['description' => 'The ID of the enhanced VPN gateway.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'vpn-bp1q8bgx4xnkm2ogj****', 'title' => ''], ], [ - 'name' => 'PageSize', + 'name' => 'Name', 'in' => 'query', - 'schema' => [ - 'description' => 'The number of entries to return per page. Default value: **10**. Valid values: **1** to **50**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '10', - ], + 'schema' => ['description' => 'The new name of the enhanced VPN gateway.'."\n" + ."\n" + .'The name must be 2 to 100 characters in length, and can contain letters, digits, underscores (\\_), and hyphens (-). It must start with a letter and cannot start with `http://` or `https://`.', 'type' => 'string', 'required' => false, 'example' => 'myvpn', 'title' => ''], ], [ - 'name' => 'ClientToken', + 'name' => 'Description', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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.'."\n" - ."\n" - .'> 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.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-4266****', - ], + 'schema' => ['description' => 'The new description of the enhanced VPN gateway.'."\n" + ."\n" + .'The description must be 1 to 100 characters in length.', 'type' => 'string', 'required' => false, 'example' => 'test', 'title' => ''], + ], + [ + 'name' => 'AutoPropagate', + 'in' => 'query', + 'schema' => ['description' => 'Specifies whether to enable automatic route propagation for the enhanced VPN gateway. Valid values:'."\n" + ."\n" + .'- **true**
'."\n" + .' The enhanced VPN gateway automatically learns system routes from the system route table of the VPC and propagates routes from the on-premises data center to the system route table of the VPC.
'."\n" + ."\n" + .'- **false**
'."\n" + .' Automatic route propagation is disabled. Before you disable this feature, make sure that BGP dynamic routing is disabled for all IPsec-VPN connections of the enhanced VPN gateway.
', 'type' => 'boolean', 'required' => false, 'example' => 'true', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'description' => 'The response data.', 'title' => 'Schema of Response', - 'description' => 'The response parameters.'."\n", 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => 'DB04E39A-6F0C-36AC-BCA0-B6D371B90062', - ], - 'TotalCount' => [ - 'description' => 'The number of entries returned.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'PageNumber' => [ - 'description' => 'The page number.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'PageSize' => [ - 'description' => 'The number of entries per page.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'CrossAccountAuthorizations' => [ - 'description' => 'The cross-account authorization information about the IPsec-VPN connection.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'VpnConnectionId' => [ - 'description' => 'The ID of the IPsec-VPN connection.'."\n", - 'type' => 'string', - 'example' => 'vco-p0w2jpkhi2eeop6q6****', - ], - 'BindUid' => [ - 'description' => 'The ID of the Alibaba Cloud account whose resources the IPsec-VPN connection is authorized to be associated with.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1210123456123456', - ], - 'BindProduct' => [ - 'description' => 'The type of resource that can be associated with the IPsec-VPN connection.'."\n" - ."\n" - .'Only **CEN** can be returned, which indicates that the IPsec-VPN connection is authorized to be associated with the transit router of a Cloud Enterprise Network (CEN) instance that belongs to another Alibaba Cloud account.'."\n", - 'type' => 'string', - 'example' => 'CEN', - ], - 'BindInstance' => [ - 'description' => 'The ID of the CEN instance.'."\n", - 'type' => 'string', - 'example' => 'cen-vv8h0t3klfpaae****', - ], - 'AliUid' => [ - 'description' => 'The ID of the Alibaba Cloud account to which the IPsec-VPN connection belongs.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1250123456123456', - ], - 'CreationTime' => [ - 'description' => 'The time when the authorization for the IPsec-VPN connection was created.'."\n" - ."\n" - .'This value is a UNIX timestamp representing the number of milliseconds that have elapsed since the epoch time January 1, 1970, 00:00:00 UTC.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1658201810000', + 'VpnType' => ['description' => 'The type of the Enhanced VPN Gateway.'."\n" + ."\n" + .'- **Normal** (default): standard type.', 'type' => 'string', 'example' => 'Normal', 'title' => ''], + 'Status' => ['description' => 'The status of the Enhanced VPN Gateway.'."\n" + ."\n" + .'- **init**: The gateway is being initialized.'."\n" + ."\n" + .'- **provisioning**: The gateway is being provisioned.'."\n" + ."\n" + .'- **active**: The gateway is active.'."\n" + ."\n" + .'- **updating**: The gateway is being updated.'."\n" + ."\n" + .'- **deleting**: The gateway is being deleted.', 'type' => 'string', 'example' => 'active', 'title' => ''], + 'VpcId' => ['description' => 'The ID of the VPC to which the Enhanced VPN Gateway belongs.', 'type' => 'string', 'example' => 'vpc-bp1ub1yt9cvakoel****', 'title' => ''], + 'CreateTime' => ['description' => 'The timestamp when the Enhanced VPN Gateway was created. Unit: milliseconds.
'."\n" + .'This value is a Unix timestamp that represents the number of milliseconds that have elapsed since 00:00:00 UTC on January 1, 1970.
', 'type' => 'integer', 'format' => 'int64', 'example' => '1492753580000', 'title' => ''], + 'AutoPropagate' => ['description' => 'Indicates whether BGP routes are automatically propagated to the VPC. Valid values:'."\n" + ."\n" + .'- **true**: Automatic propagation is enabled.'."\n" + ."\n" + .'- **false**: Automatic propagation is disabled.', 'type' => 'boolean', 'example' => 'true', 'title' => ''], + 'VpnGatewayId' => ['description' => 'The ID of the Enhanced VPN Gateway.', 'type' => 'string', 'example' => 'vpn-bp1q8bgx4xnkm2ogj****', 'title' => ''], + 'Tag' => ['description' => 'A JSON string that indicates the features supported by the Enhanced VPN Gateway.', 'type' => 'string', 'example' => '{"VpnEnableBgp": true}', 'title' => ''], + 'VSwitchId' => ['description' => 'The ID of the vSwitch associated with the Enhanced VPN Gateway.', 'type' => 'string', 'example' => 'vsw-bp1y9ovl1cu9ou4tv****', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B457', 'title' => ''], + 'EnableBgp' => ['description' => 'Indicates whether BGP is enabled for the Enhanced VPN Gateway. Valid values:
'."\n" + ."\n" + .'- **true**: Enabled.'."\n" + ."\n" + .'- **false**: Disabled.', 'type' => 'boolean', 'example' => 'true', 'title' => ''], + 'Name' => ['description' => 'The name of the Enhanced VPN Gateway.', 'type' => 'string', 'example' => 'test', 'title' => ''], + 'Description' => ['description' => 'The description of the Enhanced VPN Gateway.', 'type' => 'string', 'example' => 'test', 'title' => ''], + 'Tags' => [ + 'itemNode' => true, + 'description' => 'The tags of the Enhanced VPN Gateway.', + 'type' => 'object', + 'properties' => [ + 'Tag' => [ + 'description' => 'A list of tags.', + 'type' => 'array', + 'items' => [ + 'description' => 'The details of the tag.', + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => 'The tag key.', 'type' => 'string', 'example' => 'key1', 'title' => ''], + 'Value' => ['description' => 'The tag value.', 'type' => 'string', 'example' => 'val1', 'title' => ''], + ], + 'title' => '', + 'example' => '', ], + 'title' => '', + 'example' => '', + ], + ], + 'title' => '', + 'example' => '', + ], + 'NetworkType' => ['description' => 'The network type of the Enhanced VPN Gateway. Valid values:'."\n" + ."\n" + .'- **public** (default): a public gateway.', 'type' => 'string', 'example' => 'public', 'title' => ''], + 'DisasterRecoveryVSwitchId' => ['description' => 'The ID of the second vSwitch with which the Enhanced VPN Gateway is associated.', 'type' => 'string', 'example' => 'vsw-p0w95ql6tmr2ludkt****', 'title' => ''], + 'ResourceGroupId' => ['description' => 'The ID of the resource group to which the Enhanced VPN Gateway belongs.
'."\n" + .'You can call the [ListResourceGroups](~~158855~~) operation to query the details of resource groups.
', 'type' => 'string', 'example' => 'rg-acfmzs372yg****', 'title' => ''], + 'EniInstanceIds' => [ + 'itemNode' => true, + 'description' => 'The ENIs created for the Enhanced VPN Gateway.', + 'type' => 'object', + 'properties' => [ + 'EniInstanceId' => [ + 'description' => 'The list of ENI IDs.', + 'type' => 'array', + 'items' => ['description' => 'The ENI ID.', 'type' => 'string', 'example' => 'eni-uf6cwkwt0f6zuul5****', 'title' => ''], + 'title' => '', + 'example' => '', ], ], + 'title' => '', + 'example' => '', ], + 'GatewayType' => ['description' => 'The type of the Enhanced VPN Gateway. Only **Enhanced.SiteToSite** is returned, which indicates an enhanced site-to-site VPN gateway that supports only the IPsec-VPN feature.'."\n" + ."\n" + .'- **Enhanced.SiteToSite**, an enhanced site-to-cloud VPN that supports only the IPsec feature.', 'type' => 'string', 'example' => 'Enhanced.SiteToSite', 'title' => ''], ], + 'example' => '', ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"DB04E39A-6F0C-36AC-BCA0-B6D371B90062\\",\\n \\"TotalCount\\": 1,\\n \\"PageNumber\\": 1,\\n \\"PageSize\\": 10,\\n \\"CrossAccountAuthorizations\\": [\\n {\\n \\"VpnConnectionId\\": \\"vco-p0w2jpkhi2eeop6q6****\\",\\n \\"BindUid\\": 1210123456123456,\\n \\"BindProduct\\": \\"CEN\\",\\n \\"BindInstance\\": \\"cen-vv8h0t3klfpaae****\\",\\n \\"AliUid\\": 1250123456123456,\\n \\"CreationTime\\": 1658201810000\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\n DB04E39A-6F0C-36AC-BCA0-B6D371B90062\\n 1\\n 1\\n 10\\n \\n vco-p0w2jpkhi2eeop6q6****\\n 1210123456123456\\n CEN\\n cen-vv8h0t3klfpaae****\\n 1250123456123456\\n 1658201810000\\n \\n","errorExample":""}]', - 'title' => 'DescribeVpnCrossAccountAuthorizations', - ], - 'CreateSslVpnClientCert' => [ - 'summary' => 'Creates an SSL client certificate.', - 'methods' => [ - 'post', - 'get', + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InvalidName', 'errorMessage' => 'The name is not valid', 'description' => ''], + ['errorCode' => 'InvalidDescription', 'errorMessage' => 'The description is not valid', 'description' => ''], + ['errorCode' => 'OperationUnsupported.EnableBgp', 'errorMessage' => 'Current version of the VPN does not support enable BGP.', 'description' => 'The current version of the VPN gateway does not support BGP.'], + ['errorCode' => 'OperationFailed.VpnConnectionExist', 'errorMessage' => 'Auto propagate cannot be closed when VPN connections with BGP enabled exist.', 'description' => 'Auto propagation cannot be closed when VPN connections with BGP enabled exist.'], + ['errorCode' => 'InvalidVpnGatewayInstanceId.NotFound', 'errorMessage' => 'The specified vpn gateway instance id does not exist.', 'description' => 'The specified VPN gateway does not exist. Check whether the specified VPN gateway is valid.'], + ['errorCode' => 'VpnGateway.Configuring', 'errorMessage' => 'The specified service is configuring.', 'description' => ''], + ['errorCode' => 'OperationFailed.CenLevelNotSupport', 'errorMessage' => 'When the VPC to which the VPN gateway belongs is attached to a FULL-mode CEN, the VPN gateway cannot enable BGP.', 'description' => 'When the VPC to which the VPN gateway belongs is attached to a FULL-mode CEN, the VPN gateway cannot enable BGP.'], + ['errorCode' => 'OperationFailed.VpcRoutePropagationDisable', 'errorMessage' => 'The VPC system routing table does not enable the acceptance of propagated routes.', 'description' => 'The VPC system route table is not enabled to accept the propagation route.'], + ['errorCode' => 'OperationFailed.VpcRoutePublishEnabledInTR', 'errorMessage' => 'A VPC supports at most one dynamic route learning source. In the forwarding router, disable route synchronization for the VPC.', 'description' => 'A VPC supports at most one dynamic route learning source. In the forwarding router, disable route synchronization for the VPC.'], + ['errorCode' => 'OperationFailed.VpcRoutePublishEnabledInECR', 'errorMessage' => 'VPC supports only one dynamic route learning source at most. Please remove the VPC from ECR.', 'description' => 'A VPC supports at most one dynamic route learning source. Remove the VPC from ECR'], + ['errorCode' => 'OperationFailed.BondingVpnNotSupportBGP', 'errorMessage' => 'The architecture does not support BGP capabilities (single tunnel bonding architecture VPN gateway).', 'description' => 'the architecture does not support the bgp capability (single-tunnel bonding vpn gateway)'], + ['errorCode' => 'OperationFailed.StaleBGPRoutes', 'errorMessage' => 'BGP routes are still there and automatic route propagation cannot be disabled.', 'description' => 'Automatic route propagation cannot be disabled because a BGP route is left.'], + ], + 403 => [ + ['errorCode' => 'Forbidden.SubUser', 'errorMessage' => 'User not authorized to operate on the specified resource as your account is created by another user.', 'description' => 'The error message returned because you are unauthorized to perform this operation on the specified resource. Acquire the required permissions and try again.'], + ['errorCode' => 'Forbidden', 'errorMessage' => 'User not authorized to operate on the specified resource.', 'description' => 'You do not have the permissions to manage the specified resource. Apply for the permissions and try again.'], + ], + [ + ['errorCode' => 'InvalidVpnGatewayInstanceId.NotFound', 'errorMessage' => 'The specified vpn gateway instance id does not exist.', 'description' => ''], + ], + ], + 'staticInfo' => ['returnType' => 'asynchronous', 'callback' => 'Vpc::2016-04-28::DescribeVpnGateway', 'callbackInterval' => 6000, 'maxCallbackTimes' => 100], + 'title' => 'Modify the name, description, or automatic BGP route propagation feature of an enhanced VPN Gateway ', + 'description' => '- **UpdateEnhancedVpnGateway** is an asynchronous API. A call returns information about the Enhanced VPN Gateway, but the configuration is updated in the background. You can call [DescribeVpnGateway](~~73720~~) to check the status of the update:'."\n" + ."\n" + .' - If the Enhanced VPN Gateway\'s status is **updating**, the configuration update is in progress.'."\n" + ."\n" + .' - If the Enhanced VPN Gateway\'s status is **active**, the configuration update is complete.'."\n" + ."\n" + .'- **UpdateEnhancedVpnGateway** does not support concurrent updates on the same Enhanced VPN Gateway.', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:UpdateEnhancedVpnGateway', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VpnGateway', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vpngateway/{#VpnGatewayId}'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"VpnType\\": \\"Normal\\",\\n \\"Status\\": \\"active\\",\\n \\"VpcId\\": \\"vpc-bp1ub1yt9cvakoel****\\",\\n \\"CreateTime\\": 1492753580000,\\n \\"AutoPropagate\\": true,\\n \\"VpnGatewayId\\": \\"vpn-bp1q8bgx4xnkm2ogj****\\",\\n \\"Tag\\": \\"{\\\\\\"VpnEnableBgp\\\\\\": true}\\",\\n \\"VSwitchId\\": \\"vsw-bp1y9ovl1cu9ou4tv****\\",\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B457\\",\\n \\"EnableBgp\\": true,\\n \\"Name\\": \\"test\\",\\n \\"Description\\": \\"test\\",\\n \\"Tags\\": {\\n \\"Tag\\": [\\n {\\n \\"Key\\": \\"key1\\",\\n \\"Value\\": \\"val1\\"\\n }\\n ]\\n },\\n \\"NetworkType\\": \\"public\\",\\n \\"DisasterRecoveryVSwitchId\\": \\"vsw-p0w95ql6tmr2ludkt****\\",\\n \\"ResourceGroupId\\": \\"rg-acfmzs372yg****\\",\\n \\"EniInstanceIds\\": {\\n \\"EniInstanceId\\": [\\n \\"eni-uf6cwkwt0f6zuul5****\\"\\n ]\\n },\\n \\"GatewayType\\": \\"Enhanced.SiteToSite\\"\\n}","type":"json"}]', + ], + 'UpdateFailoverTestJob' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -80553,62 +59569,81 @@ ], 'operationType' => 'readAndWrite', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'create', - 'riskType' => 'none', - 'chargeType' => 'free', - ], + 'systemTags' => ['operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ - 'name' => 'ClientToken', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'You can use the client to generate the value, but you must make sure that it is unique among different requests. The token can contain only ASCII characters and cannot exceed 64 characters in length.'."\n" - ."\n" - .'> If you do not set this parameter, **ClientToken** is set to the value of **RequestId**. The value of **RequestId** may be different for each API request.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '02fb3da4-130e-11e9-8e44-0016e04115b', - ], + 'schema' => ['description' => 'The region ID of the failover test.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.', 'type' => 'string', 'required' => false, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'RegionId', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region where the VPN gateway is created.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'You can use the client to generate the value, but you must make sure that the value is unique among different requests. The token can contain only ASCII characters and cannot exceed 64 characters in length.'."\n" + ."\n" + .'> If you do not set this parameter, the system uses the value of **RequestId** as **ClientToken**. The value of **RequestId** for each API request is different.'."\n", 'type' => 'string', 'required' => false, 'docRequired' => true, 'example' => '123e4567-e89b-12d3-a456-426655440000'."\n", 'title' => ''], ], [ - 'name' => 'SslVpnServerId', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the SSL server.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'vss-m5et0q3iy1qex328w****', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'You can use the client to generate the value, but you must make sure that the value is unique among different requests. The token can contain only ASCII characters and cannot exceed 64 characters in length.'."\n" + ."\n" + .'> If you do not set this parameter, the system uses the value of **RequestId** as **ClientToken**. The value of **RequestId** for each API request is different.'."\n", 'type' => 'string', 'required' => false, 'docRequired' => true, 'example' => '123e4567-e89b-12d3-a456-426655440000'."\n", 'title' => ''], ], [ 'name' => 'Name', 'in' => 'query', + 'schema' => ['title' => '', 'description' => 'The name of the failover test.'."\n" + ."\n" + .'The name must be 0 to 128 characters in length and cannot start with `http://` or `https://`.', 'type' => 'string', 'required' => false, 'example' => 'test'], + ], + [ + 'name' => 'Description', + 'in' => 'query', + 'schema' => ['title' => '', 'description' => 'The description of the failover test.'."\n" + ."\n" + .'The description must be 0 to 256 characters in length and cannot start with `http://` or `https://`.', 'type' => 'string', 'required' => false, 'example' => 'test'], + ], + [ + 'name' => 'ResourceId', + 'in' => 'query', + 'allowEmptyValue' => false, + 'style' => 'repeatList', 'schema' => [ - 'description' => 'The name of the SSL client certificate.'."\n" - ."\n" - .'The name must be 1 to 100 characters in length, and cannot start with `http://` or `https://`.'."\n", - 'type' => 'string', + 'title' => '', + 'description' => 'The IDs of the failover test resources. You can add at most 16 resources.', + 'type' => 'array', + 'items' => ['description' => 'The ID of the resource.', 'type' => 'string', 'required' => false, 'example' => 'pc-uf66k4e8pq3r00jfq****', 'title' => ''], 'required' => false, - 'example' => 'SslVpnClientCert1', + 'maxItems' => 16, + 'minItems' => 1, + 'example' => '', ], ], + [ + 'name' => 'JobDuration', + 'in' => 'query', + 'schema' => ['title' => '', 'description' => 'The duration of the failover test. Unit: minutes. Valid values: **1** to **4320**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '4320', 'minimum' => '1', 'example' => '60'], + ], + [ + 'name' => 'JobId', + 'in' => 'query', + 'schema' => ['title' => '', 'description' => 'The ID of the failover test.', 'type' => 'string', 'required' => true, 'example' => 'ftj-bp1yh6mvi13aq3g8w****'], + ], + [ + 'name' => 'DryRun', + 'in' => 'query', + 'schema' => ['description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values:'."\n" + ."\n" + .'* **true**: performs only a dry run. 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.'."\n" + .'* **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.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], + ], ], 'responses' => [ 200 => [ @@ -80616,139 +59651,135 @@ 'description' => '', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => '079874CD-AEC1-43E6-AC03-ADD96B6E4907', - ], - 'Name' => [ - 'description' => 'The name of the SSL client certificate.'."\n", - 'type' => 'string', - 'example' => 'SslVpnClientCert', - ], - 'SslVpnClientCertId' => [ - 'description' => 'The ID of the SSL client certificate.'."\n", - 'type' => 'string', - 'example' => 'vsc-m5euof6s5jy8vs5kd****', - ], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => 'C44F62BE-9CE7-4277-B117-69243F3988BF'."\n", 'title' => ''], ], + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'Resource.QuotaFull', - 'errorMessage' => 'The quota of resource is full', - ], - [ - 'errorCode' => 'VpnGateway.Configuring', - 'errorMessage' => 'The specified service is configuring.', - ], - [ - 'errorCode' => 'VpnGateway.FinancialLocked', - 'errorMessage' => 'The specified service is financial locked.', - ], - [ - 'errorCode' => 'InvalidName', - 'errorMessage' => 'The name is not valid', - ], - [ - 'errorCode' => 'SslVpnClientCreateTimes.ReachLimits', - 'errorMessage' => 'The number of client cert creation operations reaches the upper limit.', - ], - [ - 'errorCode' => 'CreateSslCertsQuotaFull.QuotaFull', - 'errorMessage' => 'Create the number of SSL certificates that exceed the quota limit.', - ], - ], - 403 => [ - [ - 'errorCode' => 'Forbbiden.SubUser', - 'errorMessage' => 'User not authorized to operate on the specified resource as your account is created by another user.', - ], - [ - 'errorCode' => 'Forbidden', - 'errorMessage' => 'User not authorized to operate on the specified resource.', - ], - ], - [ - [ - 'errorCode' => 'InvalidSslVpnServerId.NotFound', - 'errorMessage' => 'The specified SSL VPN server id does not exist.', - ], - [ - 'errorCode' => 'InvalidRegionId.NotFound', - 'errorMessage' => 'The specified region is not found during access authentication.', - ], - ], + ['errorCode' => 'IllegalParam.Name', 'errorMessage' => 'The param of Name [%s] is illegal.', 'description' => 'The error message returned because the Name parameter is set to an invalid value. Specify a valid value and try again.'], + ['errorCode' => 'IllegalParam.Description', 'errorMessage' => 'The param of Description [%s] is illegal.', 'description' => 'The error message returned because the Description parameter is set to an invalid value. Specify a valid values and try again.'], + ['errorCode' => 'EcFailoverTestJobExceedMaxResourceNum', 'errorMessage' => 'The input resource number is exceeded the quota of 16.', 'description' => 'The failover test job can add up to 16 resources.'], + ['errorCode' => 'EcFailoverTestJobResourceInAnotherProcessingJob', 'errorMessage' => 'There is another processing failover test job.', 'description' => 'The current user already has a failover test job in progress. Please complete it and try again.'], + ['errorCode' => 'IllegalParam.ResourceId', 'errorMessage' => 'The input parameter resource ID is invalid.', 'description' => 'The input parameter resource ID is invalid.'], + ['errorCode' => 'IncorrectStatus.ResourceId', 'errorMessage' => 'The specified resource status is invalid.', 'description' => 'The resource status corresponding to the entered resource ID is invalid.'], + ['errorCode' => 'IncorrectBusinessStatus.ResourceId', 'errorMessage' => 'The specified resource business status is invalid.', 'description' => 'The entered resource is in arrears.'], + ['errorCode' => 'VpconnNotAssociatedVbr', 'errorMessage' => 'The specified vpconn is not associated with vbr.', 'description' => 'The entered virtual physical connection is not associated with a virtual border router.'], + ['errorCode' => 'VpconnWithVlan0NotSupportShutdown', 'errorMessage' => 'The specified virtualPhysicalConnection with vlan 0 does not support shutdown.', 'description' => 'The shared physical connection of VLAN 0 does not support failover test.'], + ['errorCode' => 'PconnContainsMoreThanOneVpconn', 'errorMessage' => 'The specified physicalConnection contains more than one virtualPhysicalConnection.', 'description' => 'A physical line that contains more than one shared physical line does not support failover test.'], + ['errorCode' => 'PconnContailsMoreThanOneAcrossCountVbr', 'errorMessage' => 'The specified physicalConnection contains more than one virtualBorderRouter which is across count.', 'description' => 'Physical connections that contain more than one cross-account VBR do not support failover test.'], + ['errorCode' => 'IllegalParam.JobDuration', 'errorMessage' => 'The specified parameter JobDuration is illegal.', 'description' => 'The task duration entered is illegal.'], + ['errorCode' => 'IllegalParam.JobId', 'errorMessage' => 'The specified parameter JobId is illegal.', 'description' => 'The entered failover test job ID is invalid.'], + ['errorCode' => 'IncorrectStatus.OnlyForInit', 'errorMessage' => 'Only the init status failover test job can be started.', 'description' => 'Only the fault drill task to be drilled can be modified or started.'], + ['errorCode' => 'MultiplePconnSingleVbrNotSupportShutdown', 'errorMessage' => 'Vbr for single vbr and multiple pconn scenarios does not support failover test job.', 'description' => 'The vbr of a single vbr and multiple pconn scenarios does not support failover test job.'], + ['errorCode' => 'EcFailoverTestJobConflict', 'errorMessage' => 'The current failover test job task is in operation, please try again later.', 'description' => 'The current failover test job task is in operation, please try again later.'], + ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'UpdateFailoverTestJob', + 'summary' => 'Updates a failover test.', + 'description' => '只支持更新处于**待演练**状态的故障演练任务。', + 'changeSet' => [ + ['createdAt' => '2024-07-19T02:56:58.000Z', 'description' => 'Error codes changed, Request parameters changed'], ], - 'staticInfo' => [ - 'returnType' => 'asynchronous', - 'callback' => 'Vpc::2016-04-28::DescribeVpnGateway', - 'callbackInterval' => 1000, - 'maxCallbackTimes' => 10, - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"606998F0-B94D-48FE-8316-ACA81BB230DA\\",\\n \\"Name\\": \\"SslVpnClientCert\\",\\n \\"SslVpnClientCertId\\": \\"vsc-m5euof6s5jy8vs5kd****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 606998F0-B94D-48FE-8316-ACA81BB230DA\\n SslVpnClientCert\\n vsc-m5euof6s5jy8vs5kd****\\n","errorExample":""}]', - 'title' => 'CreateSslVpnClientCert', - 'description' => 'Before you create an SSL client certificate, make sure that an SSL server is created on the VPN gateway. For more information, see [CreateSslVpnServer](~~2794075~~).'."\n", - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', + 'ramActions' => [], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"C44F62BE-9CE7-4277-B117-69243F3988BF\\\\n\\"\\n}","type":"json"}]', ], - 'DeleteSslVpnClientCert' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'UpdateGatewayRouteTableEntryAttribute' => [ + 'summary' => 'Modifies the next hop type and next hop of a gateway route table.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [], + 'operationType' => 'readAndWrite', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region where the SSL client certificate is created.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The region ID of the gateway route table that you want to modify.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the region ID.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'ap-southeast-6', 'title' => ''], + ], + [ + 'name' => 'IPv4GatewayRouteTableId', + 'in' => 'query', + 'schema' => ['description' => 'The ID of the gateway route table that you want to modify.', 'type' => 'string', 'required' => false, 'docRequired' => false, 'example' => 'vtb-5ts0ohchwkp3dydt2****', 'title' => ''], + ], + [ + 'name' => 'GatewayRouteTableId', + 'in' => 'query', + 'schema' => ['title' => '', 'description' => 'The ID of the gateway route table that you want to modify.', 'type' => 'string', 'required' => false, 'docRequired' => true, 'example' => 'vtb-5ts0ohchwkp3dydt2****'], ], [ 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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.'."\n" - ."\n" - .'> 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.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '02fb3da4-130e-11e9-8e44-0016e04115b', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'You can use the client to generate the token, but you must make sure that the token is unique among different requests. The ClientToken value can contain only ASCII characters.'."\n" + ."\n" + .'> If you do not specify this parameter, the system automatically uses the **RequestId** of the API request as the **ClientToken**. The **RequestId** may be different for each API request.', 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-426655440000', 'title' => ''], ], [ - 'name' => 'SslVpnClientCertId', + 'name' => 'DryRun', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the SSL client certificate.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'vsc-bp1n8wcf134yl0osr****', - ], + 'schema' => ['description' => 'Specifies whether to perform a dry run. Valid values:'."\n" + .'- **true**: performs a dry run without modifying the gateway route table. The system checks the required parameters, request format, 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.'."\n" + .'- **false** (default): performs a dry run and sends the request. If the request passes the dry run, an HTTP 2xx status code is returned and the gateway route table is modified.', 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], + ], + [ + 'name' => 'DestinationCidrBlock', + 'in' => 'query', + 'schema' => ['description' => 'The destination CIDR block of the route entry in the gateway route table.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '47.100.XX.XX/16', 'title' => ''], + ], + [ + 'name' => 'NextHopType', + 'in' => 'query', + 'schema' => ['description' => 'The next hop type of the route that you want to modify. Valid values:'."\n" + ."\n" + .'- **Instance**: ECS instance.'."\n" + .'- **NetworkInterface**: elastic network interface controller (NIC) instance.'."\n" + ."\n" + .'- **Local**: local.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'Instance', 'title' => ''], + ], + [ + 'name' => 'NextHopId', + 'in' => 'query', + 'schema' => ['description' => 'The instance ID of the next hop that you want to modify.'."\n" + ."\n" + .'- If **NextHopType** is set to **Instance**, set **NextHopId** to the ID of an ECS instance.'."\n" + .'- If **NextHopType** is set to **NetworkInterface**, set **NextHopId** to the ID of an elastic network interface controller (NIC) instance.'."\n" + .'- If **NextHopType** is set to **Local**, leave **NextHopId** empty, which indicates a local next hop.'."\n" + ."\n" + .'> If the next hop type of the route is **Instance** or **NetworkInterface** and you want to modify the next hop, you must first change **NextHopType** to **Local**, and then change **NextHopType** to **Instance** or **NetworkInterface** and specify the **NextHopId**. You cannot directly change the next hop from one network interface controller (NIC) or ECS instance to another network interface controller (NIC) or ECS instance when the next hop type is network interface controller (NIC) or ECS instance.', 'type' => 'string', 'required' => false, 'example' => 'i-bp18xq9yguxoxe7m****', 'title' => ''], + ], + [ + 'name' => 'Name', + 'in' => 'query', + 'schema' => ['description' => 'The name of the gateway route table.'."\n" + ."\n" + .'The name must be 2 to 128 characters in length and must start with a letter or Chinese character. It can contain digits, periods (.), underscores (_), and hyphens (-).', 'type' => 'string', 'required' => false, 'example' => 'test', 'title' => ''], + ], + [ + 'name' => 'Description', + 'in' => 'query', + 'schema' => ['description' => 'The description of the gateway route table.'."\n" + ."\n" + .'The description must be 2 to 256 characters in length and must start with a letter or Chinese character. It cannot start with `http://` or `https://`.', 'type' => 'string', 'required' => false, 'example' => 'new', 'title' => ''], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => ['description' => 'The region ID of the gateway route table that you want to modify.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the region ID.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'ap-southeast-6', 'title' => ''], ], ], 'responses' => [ @@ -80756,788 +59787,803 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '606998F0-B94D-48FE-8316-ACA81BB230DA', - ], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B45', 'title' => ''], ], 'description' => '', + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'VpnGateway.Configuring', - 'errorMessage' => 'The specified service is configuring.', - ], + ['errorCode' => 'OperationDenied.UpdateGatewayRouteEntry', 'errorMessage' => 'The operation is not allowed because of need switch to local first.', 'description' => 'The system failed to modify the route. You must first set the next hop to a local route before you can set a custom next hop.'], + ['errorCode' => 'IllegalParam.DestCidrBlock', 'errorMessage' => 'The destCidrBlock is invalid.', 'description' => 'The specified destination address is invalid.'], + ['errorCode' => 'ResourceNotFound.NetworkInterface', 'errorMessage' => 'The specified resource nextHop is not found.', 'description' => 'The next hop instance does not exist.'], + ['errorCode' => 'ResourceNotFound.RouteEntry', 'errorMessage' => 'The specified resource routeEntry is not found.', 'description' => 'The specified route entry does not exist'], + ['errorCode' => 'IncorrectStatus.RouteEntry', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => 'Route entry is in non-steady state'], + ['errorCode' => 'IncorrectStatus.Vswitch', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => 'The status of the specified vSwitch is incorrect.'], + ['errorCode' => 'ResourceNotFound.Instance', 'errorMessage' => 'The specified resource nextHop is not found.', 'description' => 'The next hop instance does not exist.'], + ['errorCode' => 'IncorrectStatus.NextHop', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => 'Specified next hop resource'], + ['errorCode' => 'OperationDenied.NextHopTypeNonsupport', 'errorMessage' => 'The operation is not allowed because of nextHopType is nonsupport.', 'description' => 'Specifying the next hop of the resource type is not supported.'], + ['errorCode' => 'OperationDenied.LocalEntryCanOnlyModifyNextHop', 'errorMessage' => 'Only the nextHop parameter can be modified for a local route entry.', 'description' => 'You can modify only the next hop of a local route.'], + ['errorCode' => 'ExclusiveParam.NextHopTypeAndNextHopId', 'errorMessage' => 'The param of nextHopType and nextHopId are mutually exclusive.', 'description' => 'The next hop type does not match the next hop instance.'], + ['errorCode' => 'ResourceNotFound.RouteTable', 'errorMessage' => 'The specified resource gatewayRouteTable is not found.', 'description' => 'The gateway route table does not exist.'], + ['errorCode' => 'InvalidRouterInterfaceId.NotFound', 'errorMessage' => 'The specified RouterInterfaceId does not exist in our record.', 'description' => ''], + ['errorCode' => 'OperationUnsupported.OnlySupportNormalNetworkInterface', 'errorMessage' => 'Next hop only supports binding normal network Interface.', 'description' => 'Next hop only supports binding to common ENIs'], + ['errorCode' => 'UnsupportedRegion', 'errorMessage' => 'The feature is not supported in current region.', 'description' => 'The feature is not supported in the current region.'], + ['errorCode' => 'UnsupportedFeature.Ipv6GatewayRouteTable', 'errorMessage' => 'The feature of %s is not supported.', 'description' => 'The border gateway route table cannot be associated with the gateway.'], + ['errorCode' => 'OperationDenied.TrAttachmentIpv6Disabled', 'errorMessage' => 'The operation is not allowed because tr attachment Ipv6 is disabled.', 'description' => 'The operation is not allowed because tr attachment Ipv6 is disabled.'], + ['errorCode' => 'InvalidAttachment.NotFound', 'errorMessage' => 'The attachment is not found.', 'description' => 'The specified transit router does not exist.'], + ['errorCode' => 'BothEmptyParam.GatewayRouteTableIdAndIpv4GatewayRouteTableId', 'errorMessage' => 'The parameter GatewayRouteTableId and Ipv4GatewayRouteTableId cannot be empty at the same time. We recommend that you use GatewayRouteTableId.', 'description' => 'The parameter GatewayRouteTableId and Ipv4GatewayRouteTableId cannot be empty at the same time. We recommend that you use GatewayRouteTableId.'], + ['errorCode' => 'OperationUnsupported.Ipv6EntryOnPrimaryNetworkInterface', 'errorMessage' => 'You cannot create IPv6 route entries on a primary network interface.', 'description' => 'You cannot create an IPv6 route whose next hop is a primary ENI.'], ], - 403 => [ - [ - 'errorCode' => 'Forbbiden.SubUser', - 'errorMessage' => 'User not authorized to operate on the specified resource as your account is created by another user.', - ], - [ - 'errorCode' => 'Forbidden', - 'errorMessage' => 'User not authorized to operate on the specified resource.', - ], + 404 => [ + ['errorCode' => 'ResourceNotFound.GatewayLoadBalancerEndpoint', 'errorMessage' => 'GatewayLoadBalancerEndpoint instance not found.', 'description' => 'GatewayLoadBalancerEndpoint instance not found.'], + ], + ], + 'title' => 'Modify the next hop type and next hop of a gateway route table', + 'changeSet' => [ + ['createdAt' => '2025-02-28T03:16:18.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2025-02-20T10:04:55.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2025-02-19T03:25:13.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-12-31T01:51:55.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-09-03T02:21:01.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-12-19T02:49:08.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2023-12-08T08:53:53.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-07-20T13:04:55.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-05-05T08:44:55.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2022-01-19T08:55:17.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2021-11-02T02:19:49.000Z', 'description' => 'OpenAPI offline'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'UpdateGatewayRouteTableEntryAttribute'], ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], + ], + 'ramActions' => [ [ - [ - 'errorCode' => 'InvalidRegionId.NotFound', - 'errorMessage' => 'The specified region is not found during access authentication.', - ], - [ - 'errorCode' => 'InvalidSslVpnClientCertId.NotFound', - 'errorMessage' => 'The specified SSL VPN client cert id does not exist.', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:UpdateGatewayRouteTableEntryAttribute', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'RouteTable', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:routetable/{#RouteTableId}'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"606998F0-B94D-48FE-8316-ACA81BB230DA\\"\\n}","errorExample":"{\\n \\"RequestId\\":\\"606998F0-B94D-48FE-8316-ACA81BB230DA\\"\\n}"},{"type":"xml","example":"\\n\\n 606998F0-B94D-48FE-8316-ACA81BB230DA\\n","errorExample":"\\n\\n 606998F0-B94D-48FE-8316-ACA81BB230DA\\n"}]', - 'title' => 'DeleteSslVpnClientCert', - 'summary' => 'Deletes an SSL client certificate.', - 'description' => '* If you delete an SSL client certificate, all SSL-VPN client connections to the SSL server are disconnected. You need to reinitiate connections from SSL clients.'."\n" - ."\n" - .' For example, SSL client certificate 1 and SSL client certificate 2 are created on an SSL server. After you delete certificate 1, all client connections associated with certificate 1 and certificate 2 are disconnected from the SSL server.'."\n" - ."\n" - .' * If clients associated with certificate 1 require SSL-VPN connections, you need to install other certificates on the clients and reinitiate connections from the clients.'."\n" - .' * If clients associated with certificate 2 require SSL-VPN connections, you can directly reinitiate connections from the clients.'."\n" - ."\n" - .'* **DeleteSslVpnClientCert** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call the [DescribeVpnGateway](~~2794055~~) operation to query the status of the task.'."\n" - ."\n" - .' * If the VPN gateway is in the **updating** state, the SSL client certificate is being deleted.'."\n" - .' * If the VPN gateway is in the **active** state, the SSL client certificate is deleted.'."\n" - ."\n" - .'* You cannot call **DeleteSslVpnClientCert** within the specified period of time.'."\n", - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B45\\"\\n}","type":"json"}]', ], - 'ModifySslVpnClientCert' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'UpdateIpsecServer' => [ + 'summary' => 'Modifies the configuration of an IPsec server.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [], + 'operationType' => 'readAndWrite', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ - 'name' => 'ClientToken', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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 and cannot exceed 64 characters in length.'."\n" - ."\n" - .'> 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.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '02fb3da4-130e-11e9-8e44-0016e04115b', - ], + 'schema' => ['description' => 'The ID of the region where the IPsec server is created.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-shanghai', 'title' => ''], ], [ - 'name' => 'RegionId', + 'name' => 'IpsecServerId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region where the SSL client certificate is created.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The IPsec server ID.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'iss-bp1bo3xuvcxo7ixll****', 'title' => ''], ], [ - 'name' => 'SslVpnClientCertId', + 'name' => 'LocalSubnet', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the SSL client certificate.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'vsc-bp1n8wcf134yl0osrc****', - ], + 'schema' => ['description' => 'The local CIDR blocks, which are the CIDR blocks of the virtual private cloud (VPC) for the client to access.'."\n" + ."\n" + .'Multiple CIDR blocks are separated with commas (,). Example: 192.168.1.0/24,192.168.2.0/24.'."\n", 'type' => 'string', 'required' => false, 'example' => '192.168.0.0/24,172.17.0.0/16', 'title' => ''], ], [ - 'name' => 'Name', + 'name' => 'ClientIpPool', 'in' => 'query', - 'schema' => [ - 'description' => 'The new name of the SSL client certificate. This parameter cannot be left empty.'."\n" - ."\n" - .'The name must be 1 to 100 characters in length and cannot start with `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'cert2', - ], + 'schema' => ['description' => 'The client CIDR block from which an IP address is allocated to the virtual network interface controller (NIC) of the client.'."\n" + ."\n" + .'> The client CIDR block must not overlap with the CIDR blocks of the VPC.'."\n", 'type' => 'string', 'required' => false, 'example' => '10.0.0.0/24', 'title' => ''], + ], + [ + 'name' => 'IpsecServerName', + 'in' => 'query', + 'schema' => ['description' => 'The name of the IPsec server.'."\n" + ."\n" + .'It must be 1 to 100 characters in length.'."\n", 'type' => 'string', 'required' => false, 'example' => 'test', 'maxLength' => 100, 'title' => ''], + ], + [ + 'name' => 'EffectImmediately', + 'in' => 'query', + 'schema' => ['description' => 'Specifies whether to delete the negotiated IPsec tunnel and initiate the negotiation again. Valid values:'."\n" + ."\n" + .'* **true**: immediately initiates negotiations after the configuration is complete.'."\n" + .'* **false**: initiates negotiations when inbound traffic is detected.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], + ], + [ + 'name' => 'IkeConfig', + 'in' => 'query', + 'schema' => ['description' => 'The configuration of Phase 1 negotiations. Valid values:'."\n" + ."\n" + .'* **IkeVersion**: The IKE version. Valid values: **ikev1** and **ikev2**.'."\n" + .'* **IkeMode**: The IKE negotiation mode. Default value: **main**.'."\n" + .'* **IkeEncAlg**: the encryption algorithm that is used in Phase 1 negotiation. Default value: **aes**.'."\n" + .'* **IkeAuthAlg**: the authentication algorithm that is used in Phase 1 negotiation. Default value: **sha1**.'."\n" + .'* **IkePfs**: The Diffie-Hellman key exchange algorithm that is used in Phase 1 negotiations. Default value: **group2**.'."\n" + .'* **IkeLifetime**: The SA lifetime determined by Phase 1 negotiations. Unit: seconds. Valid values: **0** to **86400**. Default value: **86400**.'."\n" + .'* **LocalId**: The identifier of the IPsec server. Only FQDN and IP address formats are supported.'."\n" + .'* **RemoteId**: the peer identifier. Only FQDN and IP address formats are supported.'."\n", 'type' => 'string', 'required' => false, 'example' => '{"IkeVersion":"ikev2","IkeMode":"main","IkeEncAlg":"aes","IkeAuthAlg":"sha1","IkePfs":"group2","IkeLifetime":86400}', 'title' => ''], + ], + [ + 'name' => 'IpsecConfig', + 'in' => 'query', + 'schema' => ['description' => 'The configuration of Phase 2 negotiation. Valid values:'."\n" + ."\n" + .'* **IpsecEncAlg**: the encryption algorithm that is used in Phase 2 negotiation. Default value: **aes**.'."\n" + .'* **IpsecAuthAlg**: the authentication algorithm that is used in Phase 2 negotiation. Default value: **sha1**.'."\n" + .'* **IpsecPfs**: forwards packets of all protocols. The Diffie-Hellman key exchange algorithm that is used in Phase 2 negotiation. Default value: **group2**.'."\n" + .'* **IpsecLifetime**: the SA lifetime determined by Phase 2 negotiation. Unit: seconds. Valid values: **0** to **86400**. Default value: **86400**.'."\n", 'type' => 'string', 'required' => false, 'example' => '{"IpsecEncAlg":"aes","IpsecAuthAlg":"sha1","IpsecPfs":"group2","IpsecLifetime":86400}', 'title' => ''], + ], + [ + 'name' => 'PskEnabled', + 'in' => 'query', + 'schema' => ['description' => 'Specifies whether to enable pre-shared key authentication. If you set the value to **true**, pre-shared key authentication is enabled.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'true', 'title' => ''], + ], + [ + 'name' => 'Psk', + 'in' => 'query', + 'schema' => ['description' => 'The pre-shared key.'."\n" + ."\n" + .'The pre-shared key that is used for authentication between the IPsec server and the client. The key must be 1 to 100 characters in length.'."\n" + ."\n" + .'You can call [ListIpsecServers](~~2794120~~) to query keys generated by the system.'."\n" + ."\n" + .'> The pre-shared key of the IPsec server key must be the same as that of the client. Otherwise, the connection between the IPsec server and the client cannot be established.'."\n", 'type' => 'string', 'required' => false, 'example' => 'Cfd123****', 'title' => ''], + ], + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'You can use the client to generate a value, and you must make sure that each request has a unique token value. The client token can contain only ASCII characters.'."\n" + ."\n" + .'> If you do not specify this parameter, the system automatically uses the value of **RequestId** as the value of **ClientToken**. The **request ID** may be different for each request.'."\n", 'type' => 'string', 'required' => false, 'example' => 'e4567-e89b-12d3-a456-42665544****', 'title' => ''], + ], + [ + 'name' => 'DryRun', + 'in' => 'query', + 'schema' => ['description' => 'Specifies whether to only precheck this request. Valid values:'."\n" + ."\n" + .'* **true**: prechecks the request without modifying the configurations of the IPsec server. The system checks the required parameters, request format, and service limits. If the request fails to pass the precheck, an error code is returned. If the request passes the precheck, the `DryRunOperation` error code is returned.'."\n" + .'* **false**: sends the request. This is the default value. If the request passes the precheck, the system modifies the configurations of the IPsec server.'."\n", 'type' => 'string', 'required' => false, 'example' => 'false', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'description' => 'The returned results.'."\n", 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '606998F0-B94D-48FE-8316-ACA81BB230DA', - ], - 'Name' => [ - 'description' => 'The name of the SSL client certificate.'."\n", - 'type' => 'string', - 'example' => 'cert2', - ], - 'SslVpnClientCertId' => [ - 'description' => 'The ID of the SSL client certificate.'."\n", - 'type' => 'string', - 'example' => 'vsc-bp1n8wcf134yl0osr****', - ], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => 'B61C08E5-403A-46A2-96C1-F7B1216DB10C', 'title' => ''], ], - 'description' => '', + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidName', - 'errorMessage' => 'The name is not valid', - ], + ['errorCode' => 'VpnGateway.Configuring', 'errorMessage' => 'The specified service is configuring.', 'description' => ''], + ['errorCode' => 'VpnGateway.FinancialLocked', 'errorMessage' => 'The specified service is financial locked.', 'description' => ''], + ['errorCode' => 'OperationUnsupported.IpsecPfs', 'errorMessage' => 'The specified IPsec Pfs is unsupported.', 'description' => 'The specified IPsec PFS property is not supported.'], + ['errorCode' => 'IllegalParam.AuthMethod', 'errorMessage' => 'One authentication method (Psk or IDaaS) should be specified at least.', 'description' => 'You must specify at least one authentication method, such as PSK or IDaaS.'], + ['errorCode' => 'IllegalParam.LocalSubnet', 'errorMessage' => 'The specified "LocalSubnet" (%s) is invalid.', 'description' => 'The specified "LocalSubnet" (%s) is invalid.'], + ['errorCode' => 'IllegalParam.ClientIpPool', 'errorMessage' => 'The specified "ClientIpPool" (%s) is invalid.', 'description' => ''], + ['errorCode' => 'MissingParam.IDaaSInstanceId', 'errorMessage' => 'The input parameter IDaaSInstanceId is mandatory when enable multi-factor authentication.', 'description' => 'You must specify the IDaaS instance ID when two-factor authentication is enabled.'], + ['errorCode' => 'OperationFailed.NoRamPermission', 'errorMessage' => 'Vpn Service has no permission to operate your IDaaS instances.', 'description' => 'The VPN service does not have the permissions to manage your IDaaS instance.'], + ['errorCode' => 'OperationFailed.AddVpcRoute', 'errorMessage' => 'It\'s failed to add VPC route after this operation.', 'description' => ''], + ['errorCode' => 'ClientIpPool.NetmaskInvalid', 'errorMessage' => 'The netmask length of client IP pool must be greater than or equal to 16 and less than or equal to 29.', 'description' => 'The subnet mask of the client IP pool must range from 16 to 29.'], + ['errorCode' => 'VpnRouteEntry.Conflict', 'errorMessage' => 'The specified client IP pool conflicts with VPN connection or SSL server.', 'description' => 'The specified client IP pool conflicts with the VPN connection or the SSL server.'], + ['errorCode' => 'ClientIpPool.SubnetInvalid', 'errorMessage' => 'The specified client IP pool cannot be used.', 'description' => 'The client CIDR block is unavailable.'], + ['errorCode' => 'InvalidClientIpPool.Conflict', 'errorMessage' => 'The specified client IP pool conflicts with other resources in the same VPC.', 'description' => 'The client CIDR block conflicts with resources in the VPC.'], + ['errorCode' => 'SystemBusy', 'errorMessage' => 'The system is busy. Please try again later.', 'description' => ''], ], 403 => [ - [ - 'errorCode' => 'Forbbiden.SubUser', - 'errorMessage' => 'User not authorized to operate on the specified resource as your account is created by another user.', - ], - [ - 'errorCode' => 'Forbidden', - 'errorMessage' => 'User not authorized to operate on the specified resource.', - ], + ['errorCode' => 'Forbidden', 'errorMessage' => 'User not authorized to operate on the specified resource.', 'description' => 'You do not have the permissions to manage the specified resource. Apply for the permissions and try again.'], ], [ - [ - 'errorCode' => 'InvalidRegionId.NotFound', - 'errorMessage' => 'The specified region is not found during access authentication.', - ], - [ - 'errorCode' => 'InvalidSslVpnClientCertId.NotFound', - 'errorMessage' => 'The specified SSL VPN client cert id does not exist.', - ], + ['errorCode' => 'InvalidIpsecServerId.NotFound', 'errorMessage' => 'The specified IPsec server ID (%s) does not exist.', 'description' => ''], + ['errorCode' => 'InvalidIDaaSInstanceId.NotFound', 'errorMessage' => 'The specified IDaaS instance ID does not exist.', 'description' => 'The specified IDaaS instance does not exist.'], + ], + 409 => [ + ['errorCode' => 'OperationConflict', 'errorMessage' => 'The operation against this instance is too frequent, please try again later.', 'description' => 'Operations are too frequently performed on the instance. Try again later.'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"606998F0-B94D-48FE-8316-ACA81BB230DA\\",\\n \\"Name\\": \\"cert2\\",\\n \\"SslVpnClientCertId\\": \\"vsc-bp1n8wcf134yl0osr****\\"\\n}","errorExample":"{\\n \\"SslVpnClientCertId\\": \\"vsc-bp1n8wcf134yl0osrcg98\\",\\n \\"Name\\": \\"test\\",\\n \\"RequestId\\": \\"606998F0-B94D-48FE-8316-ACA81BB230DA\\"\\n}"},{"type":"xml","example":"\\n\\n vsc-bp1n8wcf134yl0osr****\\n cert2\\n 606998F0-B94D-48FE-8316-ACA81BB230DA\\n","errorExample":"\\n\\n vsc-bp1n8wcf134yl0osrcg98\\n test\\n 606998F0-B94D-48FE-8316-ACA81BB230DA\\n"}]', - 'title' => 'ModifySslVpnClientCert', - 'summary' => 'Modifies the name of an SSL-VPN client certificate.', + 'staticInfo' => ['returnType' => 'asynchronous', 'callback' => 'Vpc::2016-04-28::DescribeVpnGateway', 'callbackInterval' => 2000, 'maxCallbackTimes' => 60], + 'title' => 'UpdateIpsecServer', + 'description' => '* If you modify only **IpsecServerName** of the IPsec server, this operation is synchronous. If you modify other parameters besides **IpsecServerName**, this operation is asynchronous.'."\n" + ."\n" + .'* If **UpdateIpsecServer** is an asynchronous operation, after a request is sent, the system returns a request ID and runs the task in the background. You can call the [DescribeVpnGateway](~~2794055~~) operation to query the status of the task.'."\n" + ."\n" + .' * If the VPN gateway is in the **updating** state, the IPsec server is being modified.'."\n" + .' * If the VPN gateway is in the **active** state, the IPsec server is modified.'."\n" + ."\n" + .'* You cannot repeatedly call **UpdateIpsecServer** within the specified period of time.'."\n", 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"B61C08E5-403A-46A2-96C1-F7B1216DB10C\\"\\n}","errorExample":""},{"type":"xml","example":"\\r\\nB61C08E5-403A-46A2-96C1-F7B1216DB10C\\r\\n","errorExample":""}]', ], - 'DescribeSslVpnClientCerts' => [ - 'summary' => 'Queries SSL client certificates.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'UpdateIpv4GatewayAttribute' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', - 'systemTags' => [ - 'operationType' => 'list', - ], + 'operationType' => 'readAndWrite', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ - 'name' => 'RegionId', + 'name' => 'Ipv4GatewayId', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the SSL client certificate.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The ID of the IPv4 gateway whose name or description you want to modify.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'ipv4gw-5tsnc6s4ogsedtp3k****'], ], [ - 'name' => 'SslVpnServerId', + 'name' => 'Ipv4GatewayName', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the SSL server.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'vss-bp18q7hzj6largv4v****', - ], + 'schema' => ['description' => 'The new name of the IPv4 gateway.'."\n", 'type' => 'string', 'required' => false, 'example' => 'newname'], ], [ - 'name' => 'SslVpnClientCertId', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the SSL client certificate.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'vsc-bp1n8wcf134yl0osr****', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'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.'."\n" + ."\n" + .'> 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.'."\n", 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-426655440000'], ], [ - 'name' => 'Name', + 'name' => 'DryRun', 'in' => 'query', - 'schema' => [ - 'description' => 'The name of the SSL client certificate.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'cert1', - ], + 'schema' => ['description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values:'."\n" + ."\n" + .'* **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.'."\n" + .'* **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.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false'], ], [ - 'name' => 'PageNumber', + 'name' => 'Ipv4GatewayDescription', 'in' => 'query', - 'schema' => [ - 'description' => 'The page number. Default value: **1**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', - 'default' => '1', - ], + 'schema' => ['description' => 'The new description of the IPv4 gateway.'."\n", 'type' => 'string', 'required' => false, 'example' => 'new'], ], [ - 'name' => 'PageSize', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The number of entries per page. Default value: **10**. Valid values: **1** to **50**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '10', - 'default' => '10', - ], + 'schema' => ['description' => 'The region ID of the IPv4 gateway whose name or description you want to modify.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'ap-southeast-6'], ], [ - 'name' => 'ResourceGroupId', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the resource group to which the SSL client certificate belongs.'."\n" - ."\n" - .'The SSL client certificate and its associated SSL server belong to the same resource group. You can call the [DescribeSslVpnServers](~~2794078~~) operation to query the ID of the resource group to which the SSL server belongs.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'rg-acfmzs372yg****', - ], + 'schema' => ['description' => 'The region ID of the IPv4 gateway whose name or description you want to modify.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'ap-southeast-6'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => 'The response parameters.'."\n", + 'description' => '', 'type' => 'object', 'properties' => [ - 'PageSize' => [ - 'description' => 'The number of entries per page.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '5BE01CD7-5A50-472D-AC14-CA181C5C03BE', - ], - 'PageNumber' => [ - 'description' => 'The number of the page to return.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'TotalCount' => [ - 'description' => 'The number of entries returned.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'SslVpnClientCertKeys' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'SslVpnClientCertKey' => [ - 'description' => 'The information about the SSL client certificates.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'Status' => [ - 'description' => 'The status of the SSL client certificate. Valid values:'."\n" - ."\n" - .'* **expiring-soon**: The certificate expires in one week.'."\n" - .'* **normal**'."\n" - .'* **expired**'."\n", - 'type' => 'string', - 'example' => 'normal', - ], - 'EndTime' => [ - 'description' => 'The timestamp generated when the SSL client certificate expires. Unit: milliseconds.'."\n" - ."\n" - .'This value is a UNIX timestamp representing the number of milliseconds that have elapsed since January 1, 1970, 00:00:00 UTC.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1494966335000', - ], - 'CreateTime' => [ - 'description' => 'The timestamp generated when the SSL client certificate was created. Unit: milliseconds.'."\n" - ."\n" - .'This value is a UNIX timestamp representing the number of milliseconds that have elapsed since January 1, 1970, 00:00:00 UTC.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1492747187000', - ], - 'SslVpnClientCertId' => [ - 'description' => 'The ID of the SSL client certificate.'."\n", - 'type' => 'string', - 'example' => 'vsc-bp1n8wcf134yl0osr****', - ], - 'SslVpnServerId' => [ - 'description' => 'The ID of the SSL server.'."\n", - 'type' => 'string', - 'example' => 'vss-bp18q7hzj6largv4v****', - ], - 'Name' => [ - 'description' => 'The name of the SSL client certificate.'."\n", - 'type' => 'string', - 'example' => 'cert1', - ], - 'RegionId' => [ - 'description' => 'The region ID of the SSL client certificate.'."\n", - 'type' => 'string', - 'example' => 'cn-hangzhou', - ], - 'ResourceGroupId' => [ - 'description' => 'The ID of the resource group to which the SSL client certificate belongs.'."\n" - ."\n" - .'You can call the [ListResourceGroups](~~158855~~) operation to query resource groups.'."\n", - 'type' => 'string', - 'example' => 'rg-acfmzs372yg****', - ], - ], - ], - ], - ], - ], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '671CEB03-C98D-5916-950C-C55B0BD06621'], ], ], ], ], 'errorCodes' => [ - 403 => [ - [ - 'errorCode' => 'Forbbiden.SubUser', - 'errorMessage' => 'User not authorized to operate on the specified resource as your account is created by another user.', - ], - [ - 'errorCode' => 'Forbidden', - 'errorMessage' => 'User not authorized to operate on the specified resource.', - ], + 400 => [ + ['errorCode' => 'ResourceNotFound.Ipv4Gateway', 'errorMessage' => 'The specified resource ipv4Gateway is not found.', 'description' => 'The IPv4 gateway is not found and cannot be deleted.'], + ['errorCode' => 'IncorrectStatus.Ipv4Gateway', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => 'The IPv4 gateway is in an invalid state. Try again later.'], ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'UpdateIpv4GatewayAttribute', + 'summary' => 'Modifies the description or name of an IPv4 gateway.', + 'description' => 'You cannot repeatedly call the **UpdateIpv4GatewayAttribute** operation to modify the name or description of an IPv4 gateway within the specified period of time.', + 'changeSet' => [ + ['createdAt' => '2021-11-02T02:19:49.000Z', 'description' => 'OpenAPI offline'], + ], + 'ramActions' => [ [ - [ - 'errorCode' => 'InvalidRegionId.NotFound', - 'errorMessage' => 'The specified region is not found during access authentication.', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:UpdateIpv4GatewayAttribute', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'Ipv4Gateway', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:ipv4gateway/{#ipv4gatewayId}'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"PageSize\\": 10,\\n \\"RequestId\\": \\"5BE01CD7-5A50-472D-AC14-CA181C5C03BE\\",\\n \\"PageNumber\\": 1,\\n \\"TotalCount\\": 1,\\n \\"SslVpnClientCertKeys\\": {\\n \\"SslVpnClientCertKey\\": [\\n {\\n \\"Status\\": \\"normal\\",\\n \\"EndTime\\": 1494966335000,\\n \\"CreateTime\\": 1492747187000,\\n \\"SslVpnClientCertId\\": \\"vsc-bp1n8wcf134yl0osr****\\",\\n \\"SslVpnServerId\\": \\"vss-bp18q7hzj6largv4v****\\",\\n \\"Name\\": \\"cert1\\",\\n \\"RegionId\\": \\"cn-hangzhou\\",\\n \\"ResourceGroupId\\": \\"rg-acfmzs372yg****\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 10\\n 5BE01CD7-5A50-472D-AC14-CA181C5C03BE\\n 1\\n 1\\n \\n normal\\n 1494966335000\\n 1492747187000\\n vsc-bp1n8wcf134yl0osr****\\n vss-bp18q7hzj6largv4v****\\n cert1\\n cn-hangzhou\\n \\n","errorExample":""}]', - 'title' => 'DescribeSslVpnClientCerts', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"671CEB03-C98D-5916-950C-C55B0BD06621\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 671CEB03-C98D-5916-950C-C55B0BD06621\\n","errorExample":""}]', ], - 'DescribeSslVpnClientCert' => [ - 'summary' => 'Queries the details of an SSL client certificate.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'UpdateNatGatewayNatType' => [ + 'summary' => 'Upgrades a standard NAT gateway to an enhanced NAT gateway.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'get', - 'riskType' => 'none', - 'chargeType' => 'free', - ], + 'operationType' => 'readAndWrite', + 'deprecated' => true, + 'systemTags' => ['operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the SSL client certificate. You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The ID of the region where the NAT gateway that you want to upgrade is deployed.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-qingdao', 'title' => ''], ], [ - 'name' => 'SslVpnClientCertId', + 'name' => 'NatGatewayId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the SSL client certificate that you want to query.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'vsc-bp17r58rjf5r1gjyr****', - ], + 'schema' => ['description' => 'The ID of the standard NAT gateway to be upgraded.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'ngw-bp1b0lic8uz4r6vf2****', 'title' => ''], + ], + [ + 'name' => 'VSwitchId', + 'in' => 'query', + 'schema' => ['description' => 'The vSwitch to which the enhanced Internet NAT gateway belongs.'."\n" + ."\n" + .'> If you do not set this parameter, the system generates an Internet NAT gateway in a random vSwitch of a virtual private cloud (VPC).'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'vsw-bp17nszybg8epodke****', 'title' => ''], + ], + [ + 'name' => 'NatType', + 'in' => 'query', + 'schema' => ['description' => 'The type of Internet NAT gateway. Set the value to **Enhanced**, which specifies an enhanced Internet NAT gateway.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'Enhanced', 'title' => ''], + ], + [ + 'name' => 'DryRun', + 'in' => 'query', + 'schema' => ['description' => 'Specifies whether to only precheck this request. Valid values:'."\n" + ."\n" + .'**true**: prechecks the request without upgrading the Internet NAT gateway. The system checks whether your AccessKey pair is valid, whether RAM users are granted required permissions, and whether the required parameters are set. If the request fails to pass the precheck, an error code is returned. If the request passes the precheck, the `DryRunOperation` error code is returned.'."\n" + ."\n" + .'**false**: sends the API request. This is the default value. After the request passes the precheck, a 2XX HTTP status code is returned and the Internet NAT gateway is upgraded.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], + ], + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'You can use the client to generate a value, and you must make sure that each request has a unique token value. The client token can contain only ASCII characters.'."\n" + ."\n" + .'> If you do not specify this parameter, the system automatically uses the value of **RequestId** as the value of **ClientToken**. The **request ID** may be different for each request.'."\n", 'type' => 'string', 'required' => false, 'example' => '0c593ea1-3bea-11e9-b96b-88e9fe637760', 'title' => ''], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => ['description' => 'The ID of the region where the NAT gateway that you want to upgrade is deployed.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-qingdao', 'title' => ''], ], ], 'responses' => [ 200 => [ + 'headers' => [], 'schema' => [ - 'description' => 'The response parameters.'."\n", 'type' => 'object', 'properties' => [ - 'Status' => [ - 'description' => 'The status of the SSL client certificate. Valid values:'."\n" - ."\n" - .'* **expiring-soon**'."\n" - .'* **normal**'."\n" - .'* **expired**'."\n", - 'type' => 'string', - 'example' => 'normal', - ], - 'CreateTime' => [ - 'description' => 'The timestamp that indicates when the SSL client certificate was created. Unit: milliseconds.'."\n" - ."\n" - .'This value is a UNIX timestamp representing the number of milliseconds that have elapsed since the epoch time January 1, 1970, 00:00:00 UTC.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1552550980000', - ], - 'ClientKey' => [ - 'description' => 'The client key.'."\n", - 'type' => 'string', - 'example' => 'The key of the client', - ], - 'RegionId' => [ - 'description' => 'The ID of the region where the SSL client certificate is created.'."\n", - 'type' => 'string', - 'example' => 'cn-hangzhou', - ], - 'ClientConfig' => [ - 'description' => 'The client configuration.'."\n", - 'type' => 'string', - 'example' => 'Client configuration', - ], - 'EndTime' => [ - 'description' => 'The timestamp that indicates when the SSL client certificate expires. Unit: milliseconds.'."\n" - ."\n" - .'This value is a UNIX timestamp representing the number of milliseconds that have elapsed since the epoch time January 1, 1970, 00:00:00 UTC.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1647158980000', - ], - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '5BE01CD7-5A50-472D-AC14-CA181C5C03BE', - ], - 'ClientCert' => [ - 'description' => 'The client certificate.'."\n", - 'type' => 'string', - 'example' => 'Client certificate', - ], - 'CaCert' => [ - 'description' => 'The CA certificate.'."\n", - 'type' => 'string', - 'example' => 'CA certificate', - ], - 'SslVpnClientCertId' => [ - 'description' => 'The ID of the SSL client certificate.'."\n", - 'type' => 'string', - 'example' => 'vsc-bp13k5mp4tg8v3z9b****', - ], - 'SslVpnServerId' => [ - 'description' => 'The ID of the SSL server.'."\n", - 'type' => 'string', - 'example' => 'vss-bp155e9yclsg1xgq4****', - ], - 'Name' => [ - 'description' => 'The name of the SSL client certificate.'."\n", - 'type' => 'string', - 'example' => 'nametest', - ], - 'ResourceGroupId' => [ - 'description' => 'The ID of the resource group to which the SSL client certificate belongs.'."\n" - ."\n" - .'The SSL client certificate and the SSL server associated with the SSL client certificate belong to the same resource group. You can call the [ListResourceGroups](~~158855~~) operation to query resource groups.'."\n", - 'type' => 'string', - 'example' => 'rg-acfmzs372yg****', - ], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '0ED8D006-F706-4D23-88ED-E11ED28DCAC0', 'title' => ''], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidInstanceId.NotFound', - 'errorMessage' => 'The InstanceId is not found.', - ], - ], - 403 => [ - [ - 'errorCode' => 'Forbbiden.SubUser', - 'errorMessage' => 'User not authorized to operate on the specified resource as your account is created by another user.', - ], - [ - 'errorCode' => 'Forbidden', - 'errorMessage' => 'User not authorized to operate on the specified resource.', - ], + ['errorCode' => 'OperationUnsupported.NatConvert', 'errorMessage' => 'The NAT gateway conversion function is not supported.', 'description' => 'The NAT gateway conversion function is not supported.'], + ['errorCode' => 'OperationFailed.VpcNotExist', 'errorMessage' => 'The specified VPC does not exist.', 'description' => 'The specified VPC does not exist.'], + ['errorCode' => 'OperationFailed.VswNotExist', 'errorMessage' => 'The specified VSwitch does not exist.', 'description' => 'The specified VSwitch does not exist.'], + ['errorCode' => 'OperationFailed.NatTypeNotEnhanced', 'errorMessage' => 'Operation failed because the specified NAT gateway type is not enhanced.', 'description' => 'Operation failed because the specified NAT gateway type is not enhanced.'], + ['errorCode' => 'OperationFailed.NatGwBindWithBandwidthPackage', 'errorMessage' => 'Operation failed because the NAT gateway is bound to bandwidth packages.', 'description' => 'Operation failed because the NAT gateway is bound to bandwidth packages.'], + ['errorCode' => 'IncorrectStatus.NatGateway', 'errorMessage' => 'The status of NAT gateway is incorrect.', 'description' => 'The status of NAT gateway is incorrect.'], + ['errorCode' => 'OperationFailed.EipInMiddleStatus', 'errorMessage' => 'Operation failed because the status of EIP associated with the specified NAT gateway is abnormal.', 'description' => 'Operation failed because the status of EIP associated with the specified NAT gateway is abnormal.'], + ['errorCode' => 'OperationFailed.SnatInMiddleStatus', 'errorMessage' => 'Operation failed because the status of the SNAT entry of the specified NAT gateway is abnormal.', 'description' => 'Operation failed because the status of the SNAT entry of the specified NAT gateway is abnormal.'], + ['errorCode' => 'OperationFailed.DnatInMiddleStatus', 'errorMessage' => 'Operation failed because the status of the DNAT entry associated with the NAT gateway is abnormal.', 'description' => 'Operation failed because the status of the DNAT entry associated with the NAT gateway is abnormal.'], + ['errorCode' => 'OperationFailed.NatGwRouteInMiddleStatus', 'errorMessage' => 'Operation failed because the status of the route entry associated with the NAT gateway is abnormal.', 'description' => 'Operation failed because the status of the route entry associated with the NAT gateway is abnormal.'], + ['errorCode' => 'OperationFailed.EnhancedInventoryNotEnough', 'errorMessage' => 'The enhanced NAT gateway inventory is insufficient in the specified zone.', 'description' => 'The stock of enhanced NAT gateways is insufficient in the specified zone.'], + ['errorCode' => 'OperationFailed.EnhancedUserIsUnAuthorized', 'errorMessage' => 'Operation failed because the user is not authorized to create an enhanced NAT gateway.', 'description' => 'Operation failed because the user is not authorized to create an enhanced NAT gateway.'], + ['errorCode' => 'OperationFailed.EnhancedRegion', 'errorMessage' => 'Operation failed because enhanced NAT gateways are not available for sale in the specified region.', 'description' => 'Operation failed because enhanced NAT gateways are not available for sale in the specified region.'], + ['errorCode' => 'OperationFailed.EnhancedQuotaExceed', 'errorMessage' => 'Operation failed because the maximum number of enhanced NAT gateways in the same VPC is exceeded.', 'description' => 'Operation failed because the maximum number of enhanced NAT gateways in the same VPC is exceeded.'], + ['errorCode' => 'InvalidBandwidthPackageIdNumber.NotSupported', 'errorMessage' => 'The number of BandwidthPackageIds exceeds the limit.', 'description' => 'The number of BandwidthPackageIds exceeds the limit.'], + ['errorCode' => 'OperationFailed.VswNotBelongToVpc', 'errorMessage' => 'Operation failed because the specified VSwitch is not bound to the same VPC with NAT gateway.', 'description' => 'The vSwitch and NAT gateway do not belong to the same VPC.'], + ['errorCode' => 'OperationUnsupported.VpcAttachedCen', 'errorMessage' => 'Operation failed because the VPC is attached to CEN.', 'description' => 'Operation failed because the VPC is attached to CEN.'], + ['errorCode' => 'OperationUnsupported.RouterInterfaceExist', 'errorMessage' => 'Operation failed because the VPC has a router interface.', 'description' => 'The VPC has a router interface.'], + ['errorCode' => 'OperationFailed.VRouterNotExist', 'errorMessage' => 'Operation failed because the VRouter does not exist.', 'description' => 'Operation failed because the VRouter does not exist.'], + ['errorCode' => 'OperationFailed.SnatQuotaExceed', 'errorMessage' => 'Operation failed because the maximum number of SNAT entry is exceeded.', 'description' => 'Operation failed because the maximum number of SNAT entry is exceeded.'], + ['errorCode' => 'OperationFailed.DnatQuotaExceed', 'errorMessage' => 'Operation failed because the maximum number of forward entry is exceeded.', 'description' => 'Operation failed because the maximum number of forward entry is exceeded.'], + ['errorCode' => 'OperationFailed.VswBindedRouteTable', 'errorMessage' => 'The operation failed because a custom route table that contains subnet routes is associated with the specified VSwitch.', 'description' => 'The specified vSwitch is associated with a subnet route table.'], + ['errorCode' => 'OperationFailed.VswBindedAcl', 'errorMessage' => 'The operation failed because a network ACL is associated with the specified VSwitch.', 'description' => 'The specified vSwitch is associated with a network ACL.'], + ['errorCode' => 'Forbidden.Convert', 'errorMessage' => 'User does not have permission to operate.', 'description' => ''], + ['errorCode' => 'NATGW_NOT_EXIST', 'errorMessage' => 'The specified NAT gateway does not exist.', 'description' => 'The specified NAT gateway does not exist.'], ], - [ - [ - 'errorCode' => 'InvalidRegionId.NotFound', - 'errorMessage' => 'The specified region is not found during access authentication.', - ], + 404 => [ + ['errorCode' => 'InvalidRegionId.NotFound', 'errorMessage' => 'The specified RegionId does not exist in our records.', 'description' => ''], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'staticInfo' => ['noSubstitutionReason' => '无替代API,历史原因导致该API被标记为弃用。'], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Status\\": \\"normal\\",\\n \\"CreateTime\\": 1552550980000,\\n \\"ClientKey\\": \\"-----BEGIN RSA PRIVATE KEY-----\\\\nMIIEpAI****ZzNFhuM/za==\\\\n-----END RSA PRIVATE KEY-----\\",\\n \\"RegionId\\": \\"cn-hangzhou\\",\\n \\"ClientConfig\\": \\"client\\\\ndev tun\\\\nproto tcp\\\\nremote 120.XX.XX.33 1194\\\\nresolv-retry infinite\\\\nnobind\\\\npersist-key\\\\npersist-tun\\\\nca ca.crt\\\\ncert vsc-bp15t7****.crt\\\\nkey vsc-bp15t7****.key\\\\ncipher AES-128-CBC\\\\n;comp-lzo\\\\nverb 4\\",\\n \\"EndTime\\": 1647158980000,\\n \\"RequestId\\": \\"5BE01CD7-5A50-472D-AC14-CA181C5C03BE\\",\\n \\"ClientCert\\": \\"-----BEGIN CERTIFICATE-----\\\\nMIIDR****A==\\\\n-----END CERTIFICATE-----\\",\\n \\"CaCert\\": \\"-----BEGIN CERTIFICATE-----\\\\nMIID****r4w=\\\\n-----END CERTIFICATE-----\\",\\n \\"SslVpnClientCertId\\": \\"vsc-bp13k5mp4tg8v3z9b****\\",\\n \\"SslVpnServerId\\": \\"vss-bp155e9yclsg1xgq4****\\",\\n \\"Name\\": \\"nametest\\",\\n \\"ResourceGroupId\\": \\"rg-acfmzs372yg****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n normal\\n 1552550980000\\n 客户端密钥\\n cn-hangzhou\\n 客户端配置\\n 1647158980000\\n 5BE01CD7-5A50-472D-AC14-CA181C5C03BE\\n 客户端证书\\n CA证书\\n vsc-bp13k5mp4tg8v3z9b****\\n vss-bp155e9yclsg1xgq4****\\n nametest\\n","errorExample":""}]', - 'title' => 'DescribeSslVpnClientCert', + 'title' => 'UpdateNatGatewayNatType', + 'description' => 'Before you call this operation, take note of the following limits:'."\n" + ."\n" + .'* **UpdateNatGatewayNatType** is an asynchronous operation. After you send a request to call this operation, the system returns a request ID and the NAT gateway is still being upgraded in the backend. You can call the GetNatGatewayConvertStatus operation to query the upgrade progress of a NAT gateway. For more information, see [GetNatGatewayConvertStatus](~~184744~~).'."\n" + ."\n" + .' * If the NAT gateway is in the **processing** state, the NAT gateway is being upgraded. You can only query the status of the NAT gateway but cannot perform other operations.'."\n" + .' * If the NAT gateway is in the **successful** state, the NAT gateway is upgraded.'."\n" + .' * If the NAT gateway is in the **failed** state, the system failed to upgrade the NAT gateway.'."\n" + ."\n" + .'* You cannot repeatedly call the **UpdateNatGatewayNatType** operation for the same VPN gateway within the specified period of time.'."\n" + ."\n" + .'* The billing method and billable items remain the same after the upgrade.'."\n" + ."\n" + .'* It takes about five minutes to upgrade a standard NAT gateway to an enhanced NAT gateway. During the upgrade, transient connection errors may occur once or twice. The service can be recovered by reconnection. You can determine whether to enable automatic reconnection or use manual reconnection based on your business requirements.'."\n" + ."\n" + .'* You can only upgrade standard NAT gateways to enhanced NAT gateways. You are not allowed to downgrade enhanced NAT gateways to standard NAT gateways.', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeSslVpnClients' => [ - 'methods' => [ - 'get', - 'post', + 'changeSet' => [ + ['createdAt' => '2024-10-18T10:15:13.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-03-01T06:45:55.000Z', 'description' => 'Response parameters changed'], + ], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:UpdateNatGatewayNatType', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'NatGateway', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:natgateway/{#NatGatewayId}'], + ], + ], + ], ], - 'schemes' => [ - 'http', - 'https', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"0ED8D006-F706-4D23-88ED-E11ED28DCAC0\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 0ED8D006-F706-4D23-88ED-E11ED28DCAC0\\n","errorExample":""}]', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'UpdateNatGatewayNatType'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], ], + ], + 'UpdateNetworkAclEntries' => [ + 'summary' => 'Updates the rules of a network access control list (ACL).', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'readAndWrite', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'list', - ], + 'systemTags' => ['operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ - 'name' => 'RegionId', + 'name' => 'IngressAclEntries', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => 'The region ID of the VPN gateway.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'eu-central-1', + 'description' => 'The information about the inbound rules.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The information about the inbound rules.'."\n", + 'type' => 'object', + 'properties' => [ + 'NetworkAclEntryId' => ['description' => 'The ID of the inbound rule.'."\n" + ."\n" + .'Valid values of **N**: **0** to **99**. You can specify at most 100 inbound rule IDs.'."\n", 'type' => 'string', 'required' => false, 'example' => 'nae-2zepn32de59j8m4****', 'title' => ''], + 'EntryType' => ['description' => 'The rule type. Set the value to **custom**.'."\n", 'type' => 'string', 'required' => false, 'example' => 'custom', 'title' => ''], + 'NetworkAclEntryName' => ['description' => 'The name of the inbound rule.'."\n" + ."\n" + .'The name must be 1 to 128 characters in length and cannot start with `http://` or `https://`.'."\n", 'type' => 'string', 'required' => false, 'example' => 'acl-3', 'title' => ''], + 'Policy' => [ + 'description' => 'The access control policy. Valid values:'."\n" + ."\n" + .'* **accept**: allows network traffic.'."\n" + .'* **drop**'."\n", + 'enumValueTitles' => ['drop' => 'drop', 'accept' => 'accept'], + 'type' => 'string', + 'required' => false, + 'example' => 'accept', + 'title' => '', + ], + 'SourceCidrIp' => ['description' => 'The source CIDR block. Alternatively, a prefix list ID can be provided.', 'type' => 'string', 'required' => false, 'example' => '10.0.0.0/24'."\n" + .'pl-xxxxxx', 'title' => ''], + 'IpVersion' => [ + 'description' => 'The IP version:'."\n" + ."\n" + .'* **IPv4**'."\n" + .'* **IPv6**'."\n", + 'enumValueTitles' => ['IPv6' => 'IPv6', 'IPv4' => 'IPv4'], + 'type' => 'string', + 'required' => false, + 'example' => 'IPv4', + 'title' => '', + ], + 'Description' => ['description' => 'The description of the inbound rule.'."\n" + ."\n" + .'The description must be 1 to 256 characters in length and cannot start with `http://` or `https://`.'."\n", 'type' => 'string', 'required' => false, 'example' => 'This is IngressAclEntries.', 'title' => ''], + 'Protocol' => [ + 'description' => 'Protocol type. Valid values:'."\n" + ."\n" + .'* **icmp**'."\n" + .'* **gre**'."\n" + .'* **tcp**'."\n" + .'* **udp**'."\n" + .'* **all**'."\n" + .'* **icmpv6**'."\n", + 'enumValueTitles' => ['all' => 'all', 'tcp' => 'tcp', 'udp' => 'udp', 'gre' => 'gre', 'icmp' => 'icmp', 'icmpv6' => 'icmpv6'], + 'type' => 'string', + 'required' => false, + 'example' => 'all', + 'title' => '', + ], + 'Port' => ['description' => 'The source port range of the inbound rule.'."\n" + ."\n" + .'* If **Protocol** is set to **all**, **icmp**, or **gre**, the port range is -1/-1, which indicates all ports are available.'."\n" + .'* If **Protocol** is set to **tcp** or **udp**, valid port numbers are **1** to **65535**. Format: **1/200** (port 1 to 200) or **80/80** (port 80).'."\n", 'type' => 'string', 'required' => false, 'example' => '-1/-1', 'title' => ''], + ], + 'required' => false, + 'title' => '', + 'example' => '', + ], + 'required' => false, + 'maxItems' => 1000, + 'title' => '', + 'example' => '', ], ], [ - 'name' => 'VpnGatewayId', + 'name' => 'EgressAclEntries', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => 'The ID of the VPN gateway.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'vpn-gw8gfb947ctddabja****', + 'description' => 'The information about the outbound rules.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The information about the outbound rules.'."\n", + 'type' => 'object', + 'properties' => [ + 'NetworkAclEntryId' => ['description' => 'The ID of the outbound rule.'."\n" + ."\n" + .'Valid values of **N**: **0** to **99**. You can specify at most 100 outbound rule IDs.'."\n", 'type' => 'string', 'required' => false, 'example' => 'nae-2zecs97e0brcge46****', 'title' => ''], + 'EntryType' => ['description' => 'The rule type. Set the value to **custom**.'."\n", 'type' => 'string', 'required' => false, 'example' => 'custom', 'title' => ''], + 'NetworkAclEntryName' => ['description' => 'The name of the outbound rule.'."\n" + ."\n" + .'The name must be 1 to 128 characters in length and cannot start with `http://` or `https://`.'."\n", 'type' => 'string', 'required' => false, 'example' => 'acl-2', 'title' => ''], + 'Policy' => [ + 'description' => 'The access control policy. Valid values:'."\n" + ."\n" + .'* **accept**'."\n" + .'* **drop**'."\n", + 'enumValueTitles' => ['drop' => 'drop', 'accept' => 'accept'], + 'type' => 'string', + 'required' => false, + 'example' => 'accept', + 'title' => '', + ], + 'Description' => ['description' => 'The description of the outbound rule.'."\n" + ."\n" + .'The description must be 1 to 256 characters in length and cannot start with `http://` or `https://`.'."\n", 'type' => 'string', 'required' => false, 'example' => 'This is EgressAclEntries.', 'title' => ''], + 'Protocol' => [ + 'description' => 'The protocol type. Valid values:'."\n" + ."\n" + .'* **icmp**'."\n" + .'* **gre**'."\n" + .'* **tcp**'."\n" + .'* **udp**'."\n" + .'* **all**'."\n" + .'* **icmpv6**'."\n", + 'enumValueTitles' => ['all' => 'all', 'tcp' => 'tcp', 'udp' => 'udp', 'gre' => 'gre', 'icmp' => 'icmp', 'icmpv6' => 'icmpv6'], + 'type' => 'string', + 'required' => false, + 'example' => 'all', + 'title' => '', + ], + 'DestinationCidrIp' => ['description' => 'The destination CIDR block. Alternatively, a prefix list ID can be provided.', 'type' => 'string', 'required' => false, 'example' => '10.0.0.0/24'."\n" + .'pl-xxxxxx', 'title' => ''], + 'IpVersion' => [ + 'description' => 'The IP version:'."\n" + ."\n" + .'* **IPv4**'."\n" + .'* **IPv6**'."\n", + 'enumValueTitles' => ['IPv6' => 'IPv6', 'IPv4' => 'IPv4'], + 'type' => 'string', + 'required' => false, + 'example' => 'IPv4', + 'title' => '', + ], + 'Port' => ['description' => 'The destination port range of the outbound traffic.'."\n" + ."\n" + .'* If **Protocol** is set to **all**, **icmp**, or **gre**, the port range is -1/-1, which indicates all ports are available.'."\n" + .'* If **Protocol** is set to **tcp** or **udp**, valid port numbers are **1** to **65535**. Format: **1/200** (port 1 to 200) or **80/80** (port 80).'."\n", 'type' => 'string', 'required' => false, 'example' => '-1/-1', 'title' => ''], + ], + 'required' => false, + 'title' => '', + 'example' => '', + ], + 'required' => false, + 'maxItems' => 1000, + 'title' => '', + 'example' => '', ], ], [ - 'name' => 'PageNumber', + 'name' => 'UpdateIngressAclEntries', 'in' => 'query', - 'schema' => [ - 'description' => 'The page number. Default value: **1**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', - 'default' => '1', - ], + 'schema' => ['description' => 'Specifies whether to update inbound rules. Valid values:'."\n" + ."\n" + .'* **true**'."\n" + .'* **false** (default)'."\n" + ."\n" + .'> This parameter cannot be used to add inbound rules to ACLs. If you want to add more inbound rules to ACLs, you must specify both the existing rule and the rule that you want to add when you call this API operation. If you specify only the rule that you want to add, it overwrites the existing rule.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], ], [ - 'name' => 'PageSize', + 'name' => 'UpdateEgressAclEntries', 'in' => 'query', - 'schema' => [ - 'description' => 'The number of entries per page. Valid values: **1** to **50**. Default value: **10**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '10', - 'default' => '10', - ], + 'schema' => ['description' => 'Specifies whether to update outbound rules. Valid values:'."\n" + ."\n" + .'* **true**'."\n" + .'* **false** (default)'."\n" + ."\n" + .'> This parameter cannot be used to add outbound rules to ACLs. If you want to add more outbound rules to ACLs, specify both the existing rule and the rule that you want to add when you call this API operation. If you specify only the rule that you want to add, it overwrites the existing rule.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], + ], + [ + 'name' => 'NetworkAclId', + 'in' => 'query', + 'schema' => ['description' => 'The ID of the network ACL.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'nacl-bp1lhl0taikrzxsc****', 'title' => ''], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => ['description' => 'The region ID of the network ACL.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], + ], + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'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.'."\n" + ."\n" + .'> 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.'."\n", 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-426655440000', 'title' => ''], + ], + [ + 'name' => 'DryRun', + 'in' => 'query', + 'schema' => ['description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values:'."\n" + ."\n" + .'* **true**: performs a dry run. The system checks the request for potential issues, including the AccessKey pair, the permissions of the RAM user, and the required parameters. 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.'."\n" + .'* **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.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'true', 'title' => ''], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => ['description' => 'The region ID of the network ACL.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => 'The response parameters.'."\n", 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '885E117D-06A9-38A3-8DD2-40BDAC429FFC', - ], - 'VpnGatewayId' => [ - 'description' => 'The ID of the VPN gateway.'."\n", - 'type' => 'string', - 'example' => 'vpn-gw8gfb947ctddabja****', - ], - 'PageNumber' => [ - 'description' => 'The page number.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'PageSize' => [ - 'description' => 'The number of entries per page.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'TotalCount' => [ - 'description' => 'The number of returned entries.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'RegionId' => [ - 'description' => 'The region ID.'."\n", - 'type' => 'string', - 'example' => 'eu-central-1', - ], - 'ClientInfoList' => [ - 'description' => 'The list of clients.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The information of clients.', - 'type' => 'object', - 'properties' => [ - 'Status' => [ - 'description' => 'The status of the SSL-VPN connection.'."\n" - ."\n" - .'The value is set to **online**, which indicates that the client has connected to Alibaba Cloud through an SSL-VPN connection.'."\n", - 'type' => 'string', - 'example' => 'online', - ], - 'PrivateIp' => [ - 'description' => 'The private IP address allocated to the client by the VPN gateway when the client established an SSL-VPN connection to Alibaba Cloud.'."\n", - 'type' => 'string', - 'example' => '10.10.10.10', - ], - 'SendBytes' => [ - 'description' => 'The amount of data transferred from the VPN gateway to the client through the SSL-VPN connection. Unit: bytes.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '57144', - ], - 'ConnectedTime' => [ - 'description' => 'The timestamp that indicates when the client connected to Alibaba Cloud through an SSL-VPN connection. Unit: milliseconds.'."\n" - ."\n" - .'This value is a UNIX timestamp representing the number of milliseconds that have elapsed since January 1, 1970, 00:00:00 UTC.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1670985008000', - ], - 'CommonName' => [ - 'description' => 'The SSL client certificate used by the client.'."\n" - ."\n" - .'> If the client uses two-factor authentication to establish an SSL-VPN connection to Alibaba Cloud, the return value is the username of the client.'."\n", - 'type' => 'string', - 'example' => 'CN=vsc-gw8gkh6gtilf1whgc****', - ], - 'Ip' => [ - 'description' => 'The actual public IP address used by the client when the client established an SSL-VPN connection to Alibaba Cloud.'."\n", - 'type' => 'string', - 'example' => '8.XX.XX.15', - ], - 'ReceiveBytes' => [ - 'description' => 'The amount of data transferred from the client to the VPN gateway through the SSL-VPN connection. Unit: bytes.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '60782', - ], - 'Port' => [ - 'description' => 'The port used by the client when the client established an SSL-VPN connection to Alibaba Cloud.'."\n", - 'type' => 'string', - 'example' => '4****', - ], - ], - ], - ], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '1170A5A0-E760-4331-9133-A7D38D973215', 'title' => ''], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidVpnGatewayInstanceId.NotFound', - 'errorMessage' => 'The specified vpn gateway instance id does not exist.', - ], - [ - 'errorCode' => 'InvalidInstanceId.NotFound', - 'errorMessage' => 'The specified instance id does not exist.', - ], + ['errorCode' => 'ParameterMissing.AliUid', 'errorMessage' => 'ParameterMissing.AliUid', 'description' => ''], + ['errorCode' => 'ParameterMissing.Bid', 'errorMessage' => 'ParameterMissing.Bid', 'description' => ''], + ['errorCode' => 'ParameterMissing.RegionId', 'errorMessage' => 'ParameterMissing.RegionId', 'description' => ''], + ['errorCode' => 'ParameterEmpty.RegionId', 'errorMessage' => 'ParameterEmpty.RegionId', 'description' => ''], + ['errorCode' => 'ParameterMissing.NetworkAclId', 'errorMessage' => 'ParameterMissing.NetworkAclId', 'description' => ''], + ['errorCode' => 'ParameterEmpty.NetworkAclId', 'errorMessage' => 'ParameterEmpty.NetworkAclId', 'description' => ''], + ['errorCode' => 'ParameterMissing.Port', 'errorMessage' => 'ParameterMissing.Port', 'description' => ''], + ['errorCode' => 'ParameterIllegal.Port', 'errorMessage' => 'ParameterIllegal.Port', 'description' => ''], + ['errorCode' => 'ParameterIllegal.Policy', 'errorMessage' => 'ParameterIllegal.Policy', 'description' => ''], + ['errorCode' => 'ParameterMissing.Policy', 'errorMessage' => 'ParameterMissing.Policy', 'description' => ''], + ['errorCode' => 'ParameterIllegal.Protocol', 'errorMessage' => 'ParameterIllegal.Protocol', 'description' => ''], + ['errorCode' => 'ParameterMissing.Protocol', 'errorMessage' => 'ParameterMissing.Protocol', 'description' => ''], + ['errorCode' => 'ParameterLengthIllegal.Name', 'errorMessage' => 'ParameterLengthIllegal.Name', 'description' => 'The length of the rule name is invalid.'], + ['errorCode' => 'ParameterIllegal.Name', 'errorMessage' => 'ParameterIllegal.Name', 'description' => 'The name of the entry is invalid.'], + ['errorCode' => 'ParameterLengthIllegal.Description', 'errorMessage' => 'ParameterLengthIllegal.Description', 'description' => ''], + ['errorCode' => 'ParameterIllegal.Description', 'errorMessage' => 'ParameterIllegal.Description', 'description' => ''], + ['errorCode' => 'ParameterIllegal.SourceCidrIp', 'errorMessage' => 'ParameterIllegal.SourceCidrIp', 'description' => ''], + ['errorCode' => 'ParameterMissing.SourceCidrIp', 'errorMessage' => 'ParameterMissing.SourceCidrIp', 'description' => ''], + ['errorCode' => 'ParameterIllegal.DestinationCidrIp', 'errorMessage' => 'ParameterIllegal.DestinationCidrIp', 'description' => ''], + ['errorCode' => 'ParameterMissing.DestinationCidrIp', 'errorMessage' => 'ParameterMissing.DestinationCidrIp', 'description' => ''], + ['errorCode' => 'QuotaExceed.NetworkAclEntry', 'errorMessage' => 'Network acl entry is over limit.', 'description' => 'The number of rules in the network ACL has reached the upper limit'], + ['errorCode' => 'InvalidNetworkAcl.NotFound', 'errorMessage' => 'The special Network Acl is not found.', 'description' => 'The network ACL is not found.'], + ['errorCode' => 'NetworkStatus.Modifying', 'errorMessage' => 'The special Network Acl is in modifying.', 'description' => 'The network ACL is being modified.'], + ['errorCode' => 'ResourceStatus.Error', 'errorMessage' => 'The binding instance is in middle status.', 'description' => 'The status of the instance is invalid.'], + ['errorCode' => 'NotSupport.NetworkAcl', 'errorMessage' => 'Network acl is not support now.', 'description' => ''], + ['errorCode' => 'IllegalParam.IngressAclEntryId', 'errorMessage' => 'The specified IngressAclEntryId is invalid.', 'description' => 'The specified IngressAclEntryId is invalid.'], + ['errorCode' => 'IllegalParam.EgressAclEntryId', 'errorMessage' => 'The specified EgressAclEntryId is invalid.', 'description' => 'The specified EgressAclEntryId is invalid.'], + ['errorCode' => 'OperationDenied.VpcIpv6NotEnabled', 'errorMessage' => 'IPv6 has not been enabled for the VPC.', 'description' => 'The error message returned because the VPC does not support IPv6 and the operation is denied.'], + ['errorCode' => 'IllegalParam.SourceCidrIp', 'errorMessage' => 'Param SourceCidrIp is illegal.', 'description' => 'Illegal parameters: Source CIDR'], + ['errorCode' => 'IllegalParam.Policy', 'errorMessage' => 'Param Policy illegal.', 'description' => 'Illegal parameter: Policy'], + ['errorCode' => 'IllegalParam.Protocol', 'errorMessage' => 'Param Protocol illegal.', 'description' => 'Illegal parameter: Protocol.'], + ['errorCode' => 'IllegalParam.DestinationCidrIp', 'errorMessage' => 'Param DestinationCidrIp illegal.', 'description' => 'Illegal parameter: destination CIDR.'], + ['errorCode' => 'IllegalParam.IpVersion', 'errorMessage' => 'Param IpVersion illegal.', 'description' => 'Illegal parameter: IpVersion'], + ['errorCode' => 'IllegalParam.PortRange', 'errorMessage' => 'The specified port range is invalid.', 'description' => 'The port range is invalid.'], + ['errorCode' => 'ResourceNotFound.PrefixList', 'errorMessage' => 'The specified resource of prefixList is not found.', 'description' => 'The prefix list does not exist.'], + ['errorCode' => 'OperationDenied.IpVersionInconsistencyWithPrefixList', 'errorMessage' => 'The ip version of the prefix list %s you passed in is inconsistent with the actual ip version of the prefix list.', 'description' => 'the ip version of the prefix list you passed in is inconsistent with the actual ip version of the prefix list.'], + ['errorCode' => 'OperationDenied.SystemPrefixList', 'errorMessage' => 'The operation is not allowed because of SystemPrefixList.', 'description' => 'You cannot manage the system prefix list.'], + ['errorCode' => 'IncorrectStatus.PrefixList', 'errorMessage' => 'The status of prefixList is incorrect.', 'description' => 'The prefix list is in an unstable state.'], + ['errorCode' => 'UnsupportedRegion.PrefixListEntry', 'errorMessage' => 'The feature of prefixList entry is not supported in this region.', 'description' => ''], + ['errorCode' => 'OperationDenied.NetworkAclAttachmentInMiddleStatus', 'errorMessage' => 'The network ACL is being bound to or unbound from the switch.', 'description' => 'The network ACL is being bound to or unbound from the switch.'], ], - 403 => [ - [ - 'errorCode' => 'Forbbiden.SubUser', - 'errorMessage' => 'User not authorized to operate on the specified resource as your account is created by another user.', - ], - [ - 'errorCode' => 'Forbidden', - 'errorMessage' => 'User not authorized to operate on the specified resource.', - ], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error.', 'description' => ''], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"885E117D-06A9-38A3-8DD2-40BDAC429FFC\\",\\n \\"VpnGatewayId\\": \\"vpn-gw8gfb947ctddabja****\\",\\n \\"PageNumber\\": 1,\\n \\"PageSize\\": 10,\\n \\"TotalCount\\": 1,\\n \\"RegionId\\": \\"eu-central-1\\",\\n \\"ClientInfoList\\": [\\n {\\n \\"Status\\": \\"online\\",\\n \\"PrivateIp\\": \\"10.10.10.10\\",\\n \\"SendBytes\\": 57144,\\n \\"ConnectedTime\\": 1670985008000,\\n \\"CommonName\\": \\"CN=vsc-gw8gkh6gtilf1whgc****\\",\\n \\"Ip\\": \\"8.XX.XX.15\\",\\n \\"ReceiveBytes\\": 60782,\\n \\"Port\\": \\"4****\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\n 1\\n 885E117D-06A9-38A3-8DD2-40BDAC429FFC\\n 10\\n vpn-gw8gfb947ctddabja****\\n 1\\n eu-central-1\\n \\n online\\n 57144\\n 10.10.10.10\\n 8.XX.XX.15\\n 4****\\n 1670985008000\\n CN=vsc-gw8gkh6gtilf1whgc****\\n 60782\\n \\n","errorExample":""}]', - 'title' => 'DescribeSslVpnClients', - 'summary' => 'Queries the clients that have connected to a VPN gateway through SSL-VPN connections.', - 'description' => 'If your VPN gateway was created before December 10, 2022, you need to upgrade the VPN gateway to the latest version to view the connection information about SSL clients. For more information, see [Upgrade a VPN gateway](~~2671058~~).'."\n" - ."\n" - .'If your VPN gateway was created after December 10, 2022, you can view the connection information about SSL clients by default.'."\n", - ], - 'CreateSslVpnServer' => [ - 'summary' => 'Creates an SSL server.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'staticInfo' => ['returnType' => 'asynchronous', 'callback' => 'Vpc::2016-04-28::DescribeNetworkAcls', 'callbackInterval' => 3000, 'maxCallbackTimes' => 10], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"1170A5A0-E760-4331-9133-A7D38D973215\\"\\n}","type":"json"}]', + 'title' => 'UpdateNetworkAclEntries', + 'description' => '- **UpdateNetworkAclEntries**接口属于异步接口,即系统返回一个请求ID,但该网络ACL规则尚未更新成功,系统后台的更新任务仍在进行。您可以调用[DescribeNetworkAclAttributes](~~116542~~)查询网络ACL规则的更新状态:'."\n" + .' - 当网络ACL规则处于**Modifying**状态时,表示网络ACL规则正在更新中。'."\n" + .' - 当网络ACL规则处于**Available**状态时,表示网络ACL规则更新成功。'."\n" + .'- **UpdateNetworkAclEntries**接口不支持并发更新同一个网络ACL规则。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2024-10-25T13:40:05.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-03-26T11:08:48.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-11-24T05:37:29.000Z', 'description' => 'Error codes changed, Request parameters changed'], ], + 'ramActions' => [], + 'translator' => 'manual', + ], + 'UpdatePublicIpAddressPoolAttribute' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -81545,273 +60591,276 @@ ], 'operationType' => 'readAndWrite', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'create', - 'riskType' => 'none', - 'chargeType' => 'free', - ], + 'systemTags' => ['operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', 'autoTest' => true, 'tenantRelevance' => 'tenant'], 'parameters' => [ [ - 'name' => 'ClientToken', + 'name' => 'PublicIpAddressPoolId', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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.'."\n" - ."\n" - .'> 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.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '02fb3da4-130e-11e9-8e44-0016e04115b', - 'title' => '', - ], + 'schema' => ['description' => 'The ID of the IP address pool.'."\n", 'type' => 'string', 'required' => true, 'example' => 'pippool-6wetvn6fumkgycssx****', 'title' => ''], ], [ - 'name' => 'RegionId', + 'name' => 'Name', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the VPN gateway.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-shanghai', - 'title' => '', - ], + 'schema' => ['description' => 'The name of the IP address pool.'."\n" + ."\n" + .'This parameter is optional. The name must be 1 to 128 characters in length, and can contain digits, periods (.), underscores (\\_), and hyphens (-). The name must start with a letter but cannot start with `http://` or `https://`.'."\n", 'type' => 'string', 'required' => false, 'example' => 'AddressPoolName', 'title' => ''], ], [ - 'name' => 'VpnGatewayId', + 'name' => 'Description', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the VPN gateway.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'vpn-bp1hgim8by0kc9nga****', - 'title' => '', - ], + 'schema' => ['description' => 'The description of the IP address pool.'."\n" + ."\n" + .'This parameter is optional. If you enter a description, the description must be 2 to 256 characters in length, and cannot start with http:// or https://.'."\n", 'type' => 'string', 'required' => false, 'example' => 'AddressPoolDescription', 'title' => ''], ], [ - 'name' => 'Name', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The SSL server name.'."\n" - ."\n" - .'The name must be 1 to 100 characters in length and cannot start with `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'sslvpnname', - 'title' => '', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'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.'."\n" + ."\n" + .'> 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.'."\n", 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-426655440000', 'title' => ''], ], [ - 'name' => 'ClientIpPool', + 'name' => 'DryRun', 'in' => 'query', - 'schema' => [ - 'description' => 'The client CIDR block.'."\n" - ."\n" - .'The CIDR block from which an IP address is allocated to the virtual network interface controller (NIC) of the client, rather than the private CIDR block.'."\n" - ."\n" - .'If the client accesses the SSL server over an SSL-VPN connection, the VPN gateway assigns an IP address from the specified client CIDR block for the client to access cloud resources.'."\n" - ."\n" - .'Make sure that the number of IP addresses in the client CIDR block is at least four times the maximum number of SSL-VPN connections supported by the VPN gateway.'."\n" - ."\n" - .'**Click to view the reason.**'."\n" - ."\n" - .'For example, if you specify 192.168.0.0/24 as the client CIDR block, the system first divides a subnet CIDR block with a subnet mask of 30 from 192.168.0.0/24, such as 192.168.0.4/30. This subnet provides up to four IP addresses. Then, the system allocates an IP address from 192.168.0.4/30 to the client and uses the other three IP addresses to ensure network communication. In this case, one client consumes four IP addresses. Therefore, to ensure that an IP address is assigned to your client, the number of IP addresses in the client CIDR block must be at least four times the maximum number of SSL-VPN connections supported by the VPN gateway with which the SSL server is associated.'."\n" - ."\n" - .'**Click to view the CIDR blocks that are not supported.**'."\n" - ."\n" - .'* 100.64.0.0~100.127.255.255'."\n" - .'* 127.0.0.0~127.255.255.255'."\n" - .'* 169.254.0.0~169.254.255.255'."\n" - .'* 224.0.0.0~239.255.255.255'."\n" - .'* 255.0.0.0~255.255.255.255'."\n" - ."\n" - .'**Click to view the recommended client CIDR blocks for different numbers of SSL-VPN connections.**'."\n" - ."\n" - .'* If the number of SSL-VPN connections is 5, we recommend that you specify a client CIDR block with a subnet mask that is less than or equal to 27 bits in length. Examples: 10.0.0.0/27 and 10.0.0.0/26.'."\n" - .'* If the number of SSL-VPN connections is 10, we recommend that you specify a client CIDR block with a subnet mask that is less than or equal to 26 bits in length. Examples: 10.0.0.0/26 and 10.0.0.0/25.'."\n" - .'* If the number of SSL-VPN connections is 20, we recommend that you specify a client CIDR block with a subnet mask that is less than or equal to 25 bits in length. Examples: 10.0.0.0/25 and 10.0.0.0/24.'."\n" - .'* If the number of SSL-VPN connections is 50, we recommend that you specify a client CIDR block with a subnet mask that is less than or equal to 24 bits in length. Examples: 10.0.0.0/24 and 10.0.0.0/23.'."\n" - .'* If the number of SSL-VPN connections is 100, we recommend that you specify a client CIDR block with a subnet mask that is less than or equal to 23 bits in length. Examples: 10.0.0.0/23 and 10.0.0.0/22.'."\n" - .'* If the number of SSL-VPN connections is 200, we recommend that you specify a client CIDR block with a subnet mask that is less than or equal to 22 bits in length. Examples: 10.0.0.0/22 and 10.0.0.0/21.'."\n" - .'* If the number of SSL-VPN connections is 500, we recommend that you specify a client CIDR block with a subnet mask that is less than or equal to 21 bits in length. Examples: 10.0.0.0/21 and 10.0.0.0/20.'."\n" - .'* If the number of SSL-VPN connections is 1,000, we recommend that you specify a client CIDR block with a subnet mask that is less than or equal to 20 bits in length. Examples: 10.0.0.0/20 and 10.0.0.0/19.'."\n" - ."\n" - .'> '."\n" - ."\n" - .'* The subnet mask of the client CIDR block must be 16 to 29 bits in length.'."\n" - ."\n" - .'* Make sure that the client CIDR block does not overlap with the local CIDR block, the VPC CIDR block, or route CIDR blocks associated with the client.'."\n" - ."\n" - .'* We recommend that you use 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16, or one of their subnets as the client CIDR block. If you want to specify a public CIDR block as the client CIDR block, you must specify the public CIDR block as the user CIDR block of the virtual private cloud (VPC). This way, the VPC can access the public CIDR block. For more information, see [VPC FAQs](~~185311~~).'."\n" - ."\n" - .'* After you create an SSL server, the system automatically adds routes that point to the client CIDR block to the VPC route table. Do not manually add routes that point to the client CIDR block. Otherwise, SSL-VPN connections cannot work as expected.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => '192.168.1.0/24', - 'title' => '', - ], + 'schema' => ['description' => 'Specifies whether to perform a dry run, without performing the actual request. Valid values:'."\n" + ."\n" + .'* **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.'."\n" + .'* **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.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], ], [ - 'name' => 'LocalSubnet', + 'name' => 'RegionId', 'in' => 'query', + 'schema' => ['description' => 'The region ID of the IP address pool that you want to modify.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-chengdu', 'title' => ''], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => 'The local CIDR block.'."\n" - ."\n" - .'The CIDR block that your client needs to access by using the SSL-VPN connection.'."\n" - ."\n" - .'This value can be the CIDR block of a VPC, a vSwitch, a data center that is connected to a VPC by using an Express Connect circuit, or an Alibaba Cloud service such as Object Storage Service (OSS).'."\n" - ."\n" - .'The subnet mask of the specified local CIDR block must be 8 to 32 bits in length. You cannot specify the following CIDR blocks as the local CIDR blocks:'."\n" - ."\n" - .'* 127.0.0.0~127.255.255.255'."\n" - .'* 169.254.0.0~169.254.255.255'."\n" - .'* 224.0.0.0~239.255.255.255'."\n" - .'* 255.0.0.0~255.255.255.255'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => '10.0.0.0/8', + 'description' => 'The response parameters.'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '4EC47282-1B74-4534-BD0E-403F3EE64CAF', 'title' => ''], + ], 'title' => '', + 'example' => '', ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'IllegalParam.Name ', 'errorMessage' => 'The param of Name [%s] is illegal.', 'description' => ''], + ['errorCode' => 'IllegalParam.Description', 'errorMessage' => 'The param of Description [%s] is illegal.', 'description' => 'The error message returned because the Description parameter is set to an invalid value. Specify a valid values and try again.'], + ['errorCode' => 'ResourceNotFound.PublicIpAddressPool', 'errorMessage' => 'The specified resource of PublicIpAddressPool [%s] is not found.', 'description' => 'The specified public IP address pool does not exist.'], + ['errorCode' => 'OperationDenied.OperateSharedResource', 'errorMessage' => 'The operation is not allowed because of the PublicIpAddressPool is a shared resource.', 'description' => 'The public IP address pool is a shared resource and cannot be modified.'], + ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'UpdatePublicIpAddressPoolAttribute', + 'summary' => 'Modifies the attributes of an IP address pool.', + 'description' => 'You cannot repeatedly call the **UpdatePublicIpAddressPoolAttribute** operation to modify the attributes of an IP address pool within the specified period of time.'."\n", + 'changeSet' => [ + ['createdAt' => '2022-11-24T13:02:53.000Z', 'description' => 'Error codes changed'], + ], + 'ramActions' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"4EC47282-1B74-4534-BD0E-403F3EE64CAF\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 4EC47282-1B74-4534-BD0E-403F3EE64CAF\\n","errorExample":""}]', + ], + 'UpdateRouteTargetGroup' => [ + 'path' => '', + 'methods' => ['post'], + 'schemes' => ['https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', 'autoTest' => true, 'tenantRelevance' => 'tenant'], + 'parameters' => [ [ - 'name' => 'Proto', + 'name' => 'RouteTargetGroupId', 'in' => 'query', - 'schema' => [ - 'description' => 'The protocol that is used by the SSL server. Valid values:'."\n" - ."\n" - .'* **TCP** (default)'."\n" - .'* **UDP**'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'UDP', - 'title' => '', - ], + 'schema' => ['description' => 'The routing target group instance ID.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'rtg-xxx', 'title' => ''], ], [ - 'name' => 'Cipher', + 'name' => 'RouteTargetGroupName', + 'in' => 'query', + 'schema' => ['description' => 'The name of the route target group.'."\n" + ."\n" + .'The name must be 1 to 128 characters in length and cannot start with http:// or https://.', 'type' => 'string', 'required' => false, 'docRequired' => false, 'example' => 'myRouteTargetGroupName', 'title' => ''], + ], + [ + 'name' => 'RouteTargetGroupDescription', + 'in' => 'query', + 'schema' => ['description' => 'The description of the route target group. '."\n" + ."\n" + .'The description must be 1 to 256 characters in length and cannot start with http:// or https://.', 'type' => 'string', 'required' => false, 'docRequired' => false, 'example' => 'myRouteTargetGroupDescription', 'title' => ''], + ], + [ + 'name' => 'RouteTargetMemberList', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => 'The encryption algorithm that is used by the SSL-VPN connection.'."\n" - ."\n" - .'* If the client uses Tunnelblick or OpenVPN 2.4.0 or later, the SSL server dynamically negotiates with the client about the encryption algorithm and uses the most secure encryption algorithm that is supported by the SSL server and the client. The encryption algorithm that you specify for the SSL server does not take effect.'."\n" + 'description' => 'The member list of the route target group.'."\n" ."\n" - .'* If the client uses OpenVPN of a version that is earlier than 2.4.0, the SSL server and the client use the encryption algorithm that you specify for the SSL server. You can specify one of the following encryption algorithms for the SSL server:'."\n" + .'In active/standby mode, the following limits apply to route target group members:'."\n" ."\n" - .' * **AES-128-CBC** (default)'."\n" - .' * **AES-192-CBC**'."\n" - .' * **AES-256-CBC**'."\n" - .' * **none**'."\n", - 'type' => 'string', + .'1. The number of route target group members must be 2.'."\n" + .'2. The route target group members must belong to different zones.', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'MemberId' => ['description' => 'The instance ID of the route target group member.', 'type' => 'string', 'required' => false, 'example' => 'ep-xxxx', 'title' => ''], + 'MemberType' => ['description' => 'The member type of the route target group.'."\n" + ."\n" + .'Currently supported type:'."\n" + ."\n" + .'- **GatewayLoadBalancerEndpoint**'."\n" + ."\n" + .'In active/standby mode, all members of the route target group must be of the same type.', 'type' => 'string', 'required' => false, 'example' => 'GatewayLoadBalancerEndpoint', 'title' => ''], + 'Weight' => ['description' => 'The weight of the route target group member. Valid values:'."\n" + ."\n" + .'- 100: The member is the active instance.'."\n" + .'- 0: The member is the standby instance.'."\n" + ."\n" + .'The weight can only be set during creation and cannot be modified.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '100', 'title' => ''], + ], + 'required' => false, + 'description' => '', + 'title' => '', + 'example' => '', + ], 'required' => false, - 'example' => 'AES-128-CBC', + 'maxItems' => 16, 'title' => '', + 'example' => '', ], ], [ - 'name' => 'Port', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The port that is used by the SSL server. Valid values of port numbers: **1** to **65535**. Default value: **1194**.'."\n" - ."\n" - .'The following ports are not supported: **22**, **2222**, **22222**, **9000**, **9001**, **9002**, **7505**, **80**, **443**, **53**, **68**, **123**, **4510**, **4560**, **500**, and **4500**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1194', - 'title' => '', - ], + 'schema' => ['description' => 'The region ID of the route target group instance. You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'Compress', + 'name' => 'ClientToken', 'in' => 'query', + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request. 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. If you do not specify this parameter, the system automatically uses the RequestId value as the ClientToken value. The RequestId value may be different for each API request.', 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-426655440000', 'title' => ''], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => 'Specifies whether to enable data compression. Valid values:'."\n" - ."\n" - .'* **true**'."\n" - .'* **false** (default)'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', 'title' => '', + 'description' => 'Schema of Response', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['title' => '', 'description' => 'Id of the request', 'type' => 'string', 'example' => '0ED8D006-F706-4D23-88ED-E11ED28DCAC'], + ], + 'example' => '', ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'ResourceNotFound.RouteTargetGroup', 'errorMessage' => 'The specified resource of %s is not found.', 'description' => 'The specified resource% s does not exist.'], + ['errorCode' => 'IncorrectStatus.RouteTargetGroup', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => 'The current state of the RouteTargetGroup prohibits the operation.'], + ['errorCode' => 'Mismatch.GroupVpcIdAndInstanceVpcId', 'errorMessage' => 'The RouteTargetGroup VPC %s and the RouteTargetConfig VPC %s are mismatched.', 'description' => 'The VPC to which the route target group belongs is different from the VPC to which the route target configuration instance belongs.'], + ['errorCode' => 'OperationDenied.UpdateMemberType', 'errorMessage' => 'The operation is not allowed because of the inability to update memberType.', 'description' => 'The operation is not allowed because of the inability to update memberType.'], + ['errorCode' => 'OperationDenied.MemberWithSameAz', 'errorMessage' => 'The operation is not allowed because of all members being in the same availability zone.', 'description' => 'The operation is not allowed because of all members being in the same availability zone.'], + ['errorCode' => 'OperationDenied.UpdateEnableRouteTargetMember', 'errorMessage' => 'The operation is not allowed because of the inability to update the RouteTargetMember when it is in the enabled state.', 'description' => 'The operation is not allowed because of the inability to update the RouteTargetMember when it is in the enabled state.'], + ['errorCode' => 'OperationDenied.NatGatewayIcmpReplyDisabled', 'errorMessage' => 'NAT gateway ICMP reply is disabled.', 'description' => 'The NAT gateway in the route target group must enable the ICMP return function to ensure that ICMP detection packets can be responded to normally.'], + ['errorCode' => 'OperationDenied.NatGatewayNotSingleAZ', 'errorMessage' => 'NAT gateway must be in SingleAZ mode.', 'description' => 'A route target group only supports NAT gateways of a single AZ type.'], + ['errorCode' => 'ResourceNotFound.NatGatewayVSwitch', 'errorMessage' => 'The VSwitch information associated with the selected NAT gateway was not found.', 'description' => 'VSwitch information associated with the selected NAT gateway was not found.'], + ['errorCode' => 'ResourceNotFound.NatGateway', 'errorMessage' => 'The selected NAT gateway was not found when creating or modifying the route target group.', 'description' => 'The selected NAT gateway resource is not discovered when creating or modifying the routing target group.'], + ], + 404 => [ + ['errorCode' => 'ResourceNotFound.GatewayLoadBalancerEndpoint', 'errorMessage' => 'GatewayLoadBalancerEndpoint instance not found.', 'description' => 'GatewayLoadBalancerEndpoint instance not found.'], + ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'Update a route target group', + 'summary' => 'Updates the information of a route target group instance, including the name, description, and disabled members.', + 'description' => '- **UpdateRouteTargetGroup** is an asynchronous operation. After you send a request, the system returns a request ID, but the route target group has not been updated yet. The update task is still running in the background. You can call ListRouteTargetGroup to query the update status of the route target group:'."\n" + .' - If the route target group is in the **Updating** state, the route target group is being updated.'."\n" + .' - If the route target group is in the **Available**, **Unavailable**, **Switched**, or **Abnormal** state, the route target group has been updated.', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'UpdateRouteTargetGroup'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], + ], + 'ramActions' => [ [ - 'name' => 'EnableMultiFactorAuth', - 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to enable two-factor authentication. To enable two-factor authentication, you need to specify `IDaaSInstanceId`, `IDaaSRegionId`, and `IDaaSApplicationId`. Valid values:'."\n" - ."\n" - .'* **true**: enables this feature.'."\n" - .'* **false** (default): disables this feature.'."\n" - ."\n" - .'> '."\n" - ."\n" - .'* If you use two-factor authentication for the first time, you must first complete [authorization](https://ram.console.aliyun.com/role/authorization?request=%7B%22Services%22%3A%5B%7B%22Service%22%3A%22VPN%22%2C%22Roles%22%3A%5B%7B%22RoleName%22%3A%22AliyunVpnAccessingIdaasRole%22%2C%22TemplateId%22%3A%22IdaasRole%22%7D%5D%7D%5D%2C%22ReturnUrl%22%3A%22https%3A%2F%2Fvpc.console.aliyun.com%2Fsslvpn%2Fcn-shanghai%2Fvpn-servers%22%7D) .'."\n" - ."\n" - .'* When you create an SSL server in the UAE (Dubai) region, we recommend that you associate the SSL server with an IDaaS EIAM 2.0 instance in Singapore to reduce latency.'."\n" - ."\n" - .'* IDaaS EIAM 1.0 instances are no longer for purchase. If your Alibaba Cloud account has IDaaS EIAM 1.0 instances, the IDaaS EIAM 1.0 instances can be associated after two-factor authentication is enabled. If your Alibaba Cloud account does not have IDaaS EIAM 1.0 instances, only IDaaS EIAM 2.0 instances can be associated after two-factor authentication is enabled.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - 'title' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:UpdateRouteTargetGroup', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'RouteTargetGroup', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:routetargetgroup/{#RouteTargetGroupId}'], + ], ], ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"0ED8D006-F706-4D23-88ED-E11ED28DCAC\\"\\n}","type":"json"}]', + ], + 'UpdateTrafficMirrorFilterAttribute' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'readAndWrite', + 'systemTags' => ['operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free'], + 'parameters' => [ [ - 'name' => 'IDaaSInstanceId', + 'name' => 'TrafficMirrorFilterId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the IDaaS EIAM instance.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'idaas-cn-hangzhou-p****', - 'title' => '', - ], + 'schema' => ['description' => 'The ID of the filter.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'tmf-j6cmls82xnc86vtpe****', 'title' => ''], ], [ - 'name' => 'IDaaSRegionId', + 'name' => 'TrafficMirrorFilterDescription', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the IDaaS EIAM instance.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou', - 'title' => '', - ], + 'schema' => ['description' => 'The description of the filter.'."\n" + ."\n" + .'The description must be 1 to 256 characters in length and cannot start with `http://` or `https://`.'."\n", 'type' => 'string', 'required' => false, 'example' => 'This is a new filter.', 'title' => ''], ], [ - 'name' => 'IDaaSApplicationId', + 'name' => 'TrafficMirrorFilterName', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the IDaaS application.'."\n" - ."\n" - .'* If an IDaaS EIAM 2.0 instance is associated, you need to specify an IDaaS application ID.'."\n" - .'* If an IDaaS EIAM 1.0 instance is associated, you do not need to specify an IDaaS application ID.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'app_my6g4qmvnwxzj2f****', - 'title' => '', - ], + 'schema' => ['description' => 'The name of the filter.'."\n" + ."\n" + .'The name must be 1 to 128 characters in length and cannot start with `http://` or `https://`.'."\n", 'type' => 'string', 'required' => false, 'example' => 'test', 'title' => ''], + ], + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'You can use the client to generate the value, but you must make sure that it is unique among different requests. The token can contain only ASCII characters.'."\n" + ."\n" + .'> If you do not specify this parameter, the system uses **RequestId** as **ClientToken**. **RequestId** may be different for each API request.'."\n", 'type' => 'string', 'required' => false, 'example' => '0c593ea1-3bea-11e9-b96b-88e9fe637760', 'title' => ''], ], [ 'name' => 'DryRun', 'in' => 'query', - 'schema' => [ - 'type' => 'boolean', - 'required' => false, - 'description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values: Valid Values:'."\n" - ."\n" - .'* **true**: performs only a dry run. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and instance status. If the request fails the dry run, an error message is returned. If the request passes the dry run, `DryRunOperation` is returned.'."\n" - .'* **false** (default): performs a dry run and performs the actual request. If the request passes the dry run, the operation is performed.', - 'title' => '', - 'example' => 'false', - ], + 'schema' => ['description' => 'Specifies whether to check the request without performing the operation. Valid values:'."\n" + ."\n" + .'* **true**: checks the request without performing the operation. The system checks the required parameters, request syntax, and limits. If the request fails the check, an error message is returned. If the request passes the check, the `DryRunOperation` error code is returned.'."\n" + .'* **false** (default): sends the request. If the request passes the check, a 2xx HTTP status code is returned and the operation is performed.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => ['description' => 'The ID of the region to which the mirrored traffic belongs.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list. For more information about regions that support traffic mirror, see [Overview of traffic mirror](~~207513~~).', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hongkong', 'title' => ''], ], ], 'responses' => [ @@ -81819,235 +60868,131 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'SslVpnServerId' => [ - 'description' => 'The ID of the SSL server.'."\n", - 'type' => 'string', - 'example' => 'vss-bp18q7hzj6largv4v****', - 'title' => '', - ], - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => 'E98A9651-7098-40C7-8F85-C818D1EBBA85', - 'title' => '', - ], - 'Name' => [ - 'description' => 'The SSL server name.'."\n", - 'type' => 'string', - 'example' => 'test', - 'title' => '', - ], + 'RequestId' => ['description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => '5816D35F-94D5-48CE-838F-2327C8EE8D49', 'title' => ''], ], 'description' => '', 'title' => '', - 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'Resource.QuotaFull', - 'errorMessage' => 'The quota of resource is full', - ], - [ - 'errorCode' => 'InvalidName', - 'errorMessage' => 'The name is not valid', - ], - [ - 'errorCode' => 'VpnGateway.Configuring', - 'errorMessage' => 'The specified service is configuring.', - ], - [ - 'errorCode' => 'VpnGateway.FinancialLocked', - 'errorMessage' => 'The specified service is financial locked.', - ], - [ - 'errorCode' => 'SslVpnServer.AlreadyExist', - 'errorMessage' => 'The SSL VPN server of specified vpn gateway already exists.', - ], - [ - 'errorCode' => 'VpnRouteEntry.Conflict', - 'errorMessage' => 'The specified route entry has conflict.', - ], - [ - 'errorCode' => 'IpConflict', - 'errorMessage' => 'Client IP pool conflict with local IP range.', - ], - [ - 'errorCode' => 'SslVpnServer.AddRouteError', - 'errorMessage' => 'Add route error whose destination is client IP pool, please check vpc route entry and relevant quota.', - ], - [ - 'errorCode' => 'ClientIpPool.NetmaskInvalid', - 'errorMessage' => 'The netmask length of client IP pool must be greater than or equal to 16 and less than or equal to 29.', - ], - [ - 'errorCode' => 'ClientIpPool.SubnetInvalid', - 'errorMessage' => 'The specified client IP pool cannot be used.', - ], - [ - 'errorCode' => 'MissingParameter.IDaaSInstanceId', - 'errorMessage' => 'The input parameter IDaaSInstanceId is mandatory when enable multi-factor authentication.', - ], - [ - 'errorCode' => 'OperationFailed.NoRamPermission', - 'errorMessage' => 'Vpn Service has no permission to operate your IDaaS instances.', - ], - [ - 'errorCode' => 'OperationUnsupported.NotSupportMultiFactorAuth', - 'errorMessage' => 'Current version of the VPN does not support multi-factor authentication.', - ], - [ - 'errorCode' => 'QuotaExceeded.VpnRouteEntry', - 'errorMessage' => 'The number of route entries to the VPN gateway in the VPC routing table has reached the quota limit.', - ], - [ - 'errorCode' => 'SystemBusy', - 'errorMessage' => 'The system is busy. Please try again later.', - ], - [ - 'errorCode' => 'SslVpnServerPort.Illegal', - 'errorMessage' => 'The server port is not in the range of [1-65535].', - ], - [ - 'errorCode' => 'EnableHaCheck.SslVpnServerClientCidrContainsVpcRouteDest', - 'errorMessage' => 'Ssl vpn client cidr contains vpc route prefix. The vpc route prefix is %s.', - ], - [ - 'errorCode' => 'VpnGateway.SslVpnDisabled', - 'errorMessage' => 'The VPN gateway has not enabled SSL VPN.', - ], - [ - 'errorCode' => 'IllegalParam.LocalSubnet', - 'errorMessage' => 'The specified "LocalSubnet" (%s) is invalid.', - ], - [ - 'errorCode' => 'IllegalParam.IDaaSApplicationId', - 'errorMessage' => 'The specified IDaaS application Id is not illegal, the application instance needs to be created based on the dedicated SSL VPN template.', - ], - [ - 'errorCode' => 'SslVpnIDaaS2.NotSupport', - 'errorMessage' => 'Current version of the VPN does not support IDaaS2.0.', - ], - [ - 'errorCode' => 'MissingParam.IDaaSApplicationId', - 'errorMessage' => 'The input parameter IDaaSApplicationId is mandatory when enable multi-factor authentication.', - ], - [ - 'errorCode' => 'MissingParam.IDaaSRegionId', - 'errorMessage' => 'The input parameter IDaaSRegionId is mandatory when enable multi-factor authentication.', - ], - [ - 'errorCode' => 'DryRunOperation', - 'errorMessage' => 'Request validation has been passed with DryRun flag set.', - ], - ], - 403 => [ - [ - 'errorCode' => 'Forbbiden.SubUser', - 'errorMessage' => 'User not authorized to operate on the specified resource as your account is created by another user.', - ], - [ - 'errorCode' => 'Forbidden', - 'errorMessage' => 'User not authorized to operate on the specified resource.', - ], + ['errorCode' => 'ResourceNotFound.TrafficMirrorFilter', 'errorMessage' => 'The specified resource of traffic mirror filter is not found.', 'description' => 'The specified filter does not exist.'], + ['errorCode' => 'IncorrectStatus.TrafficMirrorFilter', 'errorMessage' => 'The status of traffic mirror filter is incorrect.', 'description' => 'The filter is in an invalid state.'], ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"5816D35F-94D5-48CE-838F-2327C8EE8D49\\"\\n}","type":"json"}]', + 'title' => 'UpdateTrafficMirrorFilterAttribute', + 'summary' => 'Modifies the configuration of a filter for traffic mirror.', + 'changeSet' => [], + 'ramActions' => [ [ - [ - 'errorCode' => 'InvalidRegionId.NotFound', - 'errorMessage' => 'The specified region is not found during access authentication.', - ], - [ - 'errorCode' => 'InvalidVpnGatewayInstanceId.NotFound', - 'errorMessage' => 'The specified vpn gateway instance id does not exist.', - ], - [ - 'errorCode' => 'InvalidIDaaSInstanceId.NotFound', - 'errorMessage' => 'The specified IDaaS instance ID does not exist.', - ], - [ - 'errorCode' => 'InvalidIDaaSApplicationId.NotFound', - 'errorMessage' => 'The specified IDaaS application Id does not exist.', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:UpdateTrafficMirrorFilterAttribute', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'TrafficMirrorFilter', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:trafficmirrorfilter/{#TrafficMirrorFilterId}'], + ], ], ], ], - 'staticInfo' => [ - 'returnType' => 'asynchronous', - 'callback' => 'Vpc::2016-04-28::DescribeVpnGateway', - 'callbackInterval' => 2000, - 'maxCallbackTimes' => 60, - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"SslVpnServerId\\": \\"vss-bp18q7hzj6largv4v****\\",\\n \\"RequestId\\": \\"E98A9651-7098-40C7-8F85-C818D1EBBA85\\",\\n \\"Name\\": \\"test\\"\\n}","errorExample":"{\\n \\"RequestId\\": \\"E98A9651-7098-40C7-8F85-C818D1EBBA85\\",\\n \\"SslVpnServerId\\": \\"vss-bp18q7hzj6largv4vk2fe\\",\\n \\"Name\\": \\"test\\"\\n}"},{"type":"xml","example":"\\n E98A9651-7098-40C7-8F85-C818D1EBBA85\\n vss-bp18q7hzj6largv4v****\\n test\\n","errorExample":"\\n\\n E98A9651-7098-40C7-8F85-C818D1EBBA85\\n vss-bp18q7hzj6largv4vk2fe\\n test\\n"}]', - 'title' => 'CreateSslVpnServer', - 'description' => '* **CreateSslVpnServer** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call the [DescribeVpnGateway](~~2794055~~) operation to query the status of the task.'."\n" - ."\n" - .' * If the VPN gateway is in the **updating** state, the SSL server is being created.'."\n" - .' * If the VPN gateway is in the **active** state, the SSL server is created.'."\n" - ."\n" - .'* You cannot repeatedly call the **CreateSslVpnServer** operation within the specified period of time.'."\n" - ."\n" - .'### [](#prerequisite)[](#)Prerequisite'."\n" - ."\n" - .'* A VPN gateway is created, and the SSL-VPN feature is enabled for the VPN gateway. For more information, see [CreateVpnGateway](~~2794049~~) .'."\n" - .'* If you want to enable two-factor authentication for the SSL server, make sure that the VPN gateway supports two-factor authentication. You may need to upgrade the VPN gateway. For more information, see [Two-factor authentication supports IDaaS EIAM 2.0](~~2785320~~).', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', ], - 'DeleteSslVpnServer' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'UpdateTrafficMirrorFilterRuleAttribute' => [ + 'summary' => 'Modifies the configuration of an inbound or outbound rule for traffic mirror.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [], + 'operationType' => 'readAndWrite', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ - 'name' => 'RegionId', + 'name' => 'TrafficMirrorFilterRuleId', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the SSL server.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The ID of the inbound or outbound rule.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'tmr-j6c89rzmtd3hhdugq****', 'title' => ''], ], [ 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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.'."\n" - ."\n" - .'> 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.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '02fb3da4-130e-11e9-8e44-0016e04115b', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'You can use the client to generate the value, but you must make sure that it is unique among different requests. The client token can contain only ASCII characters.'."\n" + ."\n" + .'> If you do not set this parameter, the system uses **RequestId** as **ClientToken**. **RequestId** may be different for each API request.', 'type' => 'string', 'required' => false, 'example' => '0c593ea1-3bea-11e9-b96b-88e9fe637760', 'title' => ''], ], [ - 'name' => 'SslVpnServerId', + 'name' => 'DryRun', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the SSL server.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'vss-bp18q7hzj6largv4v****', - ], + 'schema' => ['description' => 'Specifies whether to check the request without performing the operation. Valid values:'."\n" + ."\n" + .'- **true**: only checks the API request. The configuration of the inbound or outbound rule is not modified. The system checks the required parameters, request syntax, and limits. If the request fails to pass the check, an error message is returned. If the request passes the precheck, the `DryRunOperation` error code is returned.'."\n" + ."\n" + .'- **false**: sends the request. This is the default value. If the request passes the check, a 2xx HTTP status code is returned and the configuration of the inbound or outbound rule is modified.', 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], + ], + [ + 'name' => 'Priority', + 'in' => 'query', + 'schema' => ['description' => 'The new priority of the inbound or outbound rule. A smaller value indicates a higher priority.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1', 'title' => ''], + ], + [ + 'name' => 'Protocol', + 'in' => 'query', + 'schema' => ['description' => 'The new protocol that is used by the traffic to be mirrored by the inbound or outbound rule. Valid values:'."\n" + ."\n" + .'- **ALL**: all protocols'."\n" + ."\n" + .'- **ICMP**: Internet Control Message Protocol (ICMP)'."\n" + ."\n" + .'- **TCP**: TCP'."\n" + ."\n" + .'- **UDP**: User Datagram Protocol (UDP)', 'type' => 'string', 'required' => false, 'example' => 'ICMP', 'title' => ''], + ], + [ + 'name' => 'RuleAction', + 'in' => 'query', + 'schema' => ['description' => 'The new action of the inbound or outbound rule. Valid values:'."\n" + ."\n" + .'- **accept**: accepts network traffic.'."\n" + ."\n" + .'- **drop**: drops network traffic.', 'type' => 'string', 'required' => false, 'example' => 'accept', 'title' => ''], + ], + [ + 'name' => 'DestinationCidrBlock', + 'in' => 'query', + 'schema' => ['description' => 'The new destination CIDR block of the inbound or outbound traffic.', 'type' => 'string', 'required' => false, 'example' => '10.0.0.0/24', 'title' => ''], + ], + [ + 'name' => 'SourceCidrBlock', + 'in' => 'query', + 'schema' => ['description' => 'The new source CIDR block of the inbound or outbound traffic.', 'type' => 'string', 'required' => false, 'example' => '0.0.0.0/0', 'title' => ''], + ], + [ + 'name' => 'DestinationPortRange', + 'in' => 'query', + 'schema' => ['description' => 'The new destination port range of the inbound or outbound traffic.'."\n" + ."\n" + .'> If you set **Protocol** to **ICMP**, you cannot change the port range.', 'type' => 'string', 'required' => false, 'example' => '-1/-1', 'title' => ''], + ], + [ + 'name' => 'SourcePortRange', + 'in' => 'query', + 'schema' => ['description' => 'The new source port range of the inbound or outbound traffic.'."\n" + ."\n" + .'> If you set **Protocol** to **ICMP**, you cannot change the port range.', 'type' => 'string', 'required' => false, 'example' => '22/40', 'title' => ''], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => ['description' => 'The ID of the region to which the mirrored traffic belongs.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list. For more information about regions that support traffic mirroring, see [Overview of traffic mirroring](~~207513~~).', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hongkong', 'title' => ''], ], ], 'responses' => [ @@ -82055,1091 +61000,480 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '606998F0-B94D-48FE-8316-ACA81BB230DA', - ], + 'RequestId' => ['description' => 'The ID of the request.', 'type' => 'string', 'example' => '02EB8585-D4DC-4E29-A0F4-7C588C82863C', 'title' => ''], ], 'description' => '', + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'VpnGateway.Configuring', - 'errorMessage' => 'The specified service is configuring.', - ], - [ - 'errorCode' => 'VpnGateway.FinancialLocked', - 'errorMessage' => 'The specified service is financial locked.', - ], - ], - 403 => [ - [ - 'errorCode' => 'Forbbiden.SubUser', - 'errorMessage' => 'User not authorized to operate on the specified resource as your account is created by another user.', - ], - [ - 'errorCode' => 'Forbidden', - 'errorMessage' => 'User not authorized to operate on the specified resource.', - ], - ], - [ - [ - 'errorCode' => 'InvalidRegionId.NotFound', - 'errorMessage' => 'The specified region is not found during access authentication.', - ], - [ - 'errorCode' => 'InvalidSslVpnServerId.NotFound', - 'errorMessage' => 'The specified SSL VPN server id does not exist.', - ], + ['errorCode' => 'ResourceNotFound.TrafficMirrorRule', 'errorMessage' => 'The specified resource of traffic mirror rule is not found.', 'description' => ''], + ['errorCode' => 'IncorrectStatus.TrafficMirrorRule', 'errorMessage' => 'The status of traffic mirror rule is incorrect.', 'description' => 'The filter rule is in an invalid state.'], + ['errorCode' => 'DuplicatedParam.Priority', 'errorMessage' => 'The specified priority conflicts with the existing priority.', 'description' => 'The specified priority is the same as an existing one.'], + ['errorCode' => 'IllegalParam.Protocol', 'errorMessage' => 'The specified Protocol is invalid.', 'description' => 'The protocol is invalid.'], + ['errorCode' => 'IllegalParam.SourceCidrBlock', 'errorMessage' => 'The param of SourceCidrBlock is illegal.', 'description' => 'The param of SourceCidrBlock is illegal.'], + ['errorCode' => 'IllegalParam.DestinationCidrBlock', 'errorMessage' => 'The param of DestinationCidrBlock is illegal.', 'description' => 'The param of DestinationCidrBlock is illegal.'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"606998F0-B94D-48FE-8316-ACA81BB230DA\\"\\n}","errorExample":"{\\n \\"RequestId\\":\\"606998F0-B94D-48FE-8316-ACA81BB230DA\\"\\n}"},{"type":"xml","example":"\\n\\n 606998F0-B94D-48FE-8316-ACA81BB230DA\\n","errorExample":"\\n\\n 606998F0-B94D-48FE-8316-ACA81BB230DA\\n"}]', - 'title' => 'DeleteSslVpnServer', - 'summary' => 'Deletes an SSL server. The system automatically deletes all SSL client certificates that are associated with the SSL server. In this case, the SSL-VPN connections of the clients on which the SSL client certificates are installed are automatically disconnected.', - 'description' => '* **DeleteSslVpnServer** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call the [DescribeVpnGateway](~~2794055~~) operation to query the status of the task.'."\n" + 'title' => 'UpdateTrafficMirrorFilterRuleAttribute', + 'description' => '- The **UpdateTrafficMirrorFilterRuleAttribute** operation is asynchronous. After you send the request, the system returns a request ID. However, the operation is still being performed in the system background. You can call the [ListTrafficMirrorFilters](~~261353~~) operation to query the status of an inbound or outbound rule:'."\n" ."\n" - .' * If the VPN gateway is in the **updating** state, the SSL server is being deleted.'."\n" - .' * If the VPN gateway is in the **active** state, the SSL server is deleted.'."\n" + .' - If the rule is in the **Modifying** state, the rule is being modified.'."\n" ."\n" - .'* You cannot repeatedly call the **DeleteSslVpnServer** operation to delete an SSL server from the same VPN gateway within the specified period of time.', + .' - If the rule is in the **Created** state, the rule is modified.'."\n" + ."\n" + .'- You cannot repeatedly call the **UpdateTrafficMirrorFilterRuleAttribute** operation to modify an inbound or outbound rule within the specified period of time.', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'ModifySslVpnServer' => [ - 'summary' => 'Modifies the configurations of an SSL server.', - 'methods' => [ - 'post', - 'get', + 'changeSet' => [ + ['createdAt' => '2025-04-25T09:57:12.000Z', 'description' => 'Error codes changed'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '600', 'countWindow' => 60, 'regionId' => '*', 'api' => 'UpdateTrafficMirrorFilterRuleAttribute'], + ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:UpdateTrafficMirrorFilterRuleAttribute', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'TrafficMirrorFilter', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:trafficmirrorfilter/{#TrafficMirrorFilterId}'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"02EB8585-D4DC-4E29-A0F4-7C588C82863C\\"\\n}","type":"json"}]', + ], + 'UpdateTrafficMirrorSessionAttribute' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'readAndWrite', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'update', - 'riskType' => 'none', - 'chargeType' => 'free', - ], + 'systemTags' => ['operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ - 'name' => 'ClientToken', - 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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.'."\n" - ."\n" - .'> If you do not specify this parameter, the system automatically uses the **request ID** as the **client token**. The **request ID** is different for each request.', - 'type' => 'string', - 'required' => false, - 'example' => '02fb3da4-130e-11e9-8e44-0016e04115b', - ], - ], - [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the VPN gateway.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], - ], - [ - 'name' => 'SslVpnServerId', + 'name' => 'TrafficMirrorSessionDescription', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the SSL server.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'vss-bp18q7hzj6largv4v****', - ], + 'schema' => ['description' => 'The new description of the traffic mirror session.'."\n" + ."\n" + .'The description must be 1 to 256 characters in length and cannot start with `http://` or `https://`.'."\n", 'type' => 'string', 'required' => false, 'example' => 'This is a new session.', 'title' => ''], ], [ - 'name' => 'Name', + 'name' => 'TrafficMirrorSessionName', 'in' => 'query', - 'schema' => [ - 'description' => 'The name of the SSL server.'."\n" - ."\n" - .'The name must be 1 to 100 characters in length and cannot start with `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'test', - ], + 'schema' => ['description' => 'The new name of the traffic mirror session.'."\n" + ."\n" + .'The name must be 1 to 128 characters in length, and cannot start with `http://` or `https://`.'."\n", 'type' => 'string', 'required' => false, 'example' => 'abc', 'title' => ''], ], [ - 'name' => 'ClientIpPool', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The client CIDR block.'."\n" - ."\n" - .'The CIDR block from which an IP address is allocated to the virtual network interface controller (NIC) of the client, rather than the private CIDR block.'."\n" - ."\n" - .'If the client accesses the SSL server over an SSL-VPN connection, the VPN gateway assigns an IP address from the specified client CIDR block for the client to access cloud resources.'."\n" - ."\n" - .'Make sure that the number of IP addresses in the client CIDR block is at least four times the maximum number of SSL-VPN connections supported by the VPN gateway.'."\n" - ."\n" - .'
'."\n" - .'Click to view the reason.'."\n" - ."\n" - .'For example, if you specify 192.168.0.0/24 as the client CIDR block, the system first divides a subnet CIDR block with a subnet mask of 30 from 192.168.0.0/24, such as 192.168.0.4/30. This subnet provides up to four IP addresses. Then, the system allocates an IP address from 192.168.0.4/30 to the client and uses the other three IP addresses to ensure network communication. In this case, one client consumes four IP addresses. Therefore, to ensure that an IP address is assigned to your client, the number of IP addresses in the client CIDR block must be at least four times the maximum number of SSL-VPN connections supported by the VPN gateway with which the SSL server is associated.'."\n" - .'
'."\n" - .'
'."\n" - .'Click to view the CIDR blocks that are not supported.'."\n" - ."\n" - .'* 100.64.0.0~100.127.255.255'."\n" - .'* 127.0.0.0~127.255.255.255'."\n" - .'* 169.254.0.0~169.254.255.255'."\n" - .'* 224.0.0.0~239.255.255.255'."\n" - .'* 255.0.0.0~255.255.255.255'."\n" - .'
'."\n" - .'
'."\n" - .'Click to view the recommended client CIDR blocks for different numbers of SSL-VPN connections.'."\n" - ."\n" - .'* If the number of SSL-VPN connections is 5, we recommend that you specify a client CIDR block with a subnet mask that is less than or equal to 27 bits in length. Examples: 10.0.0.0/27 and 10.0.0.0/26.'."\n" - .'* If the number of SSL-VPN connections is 10, we recommend that you specify a client CIDR block with a subnet mask that is less than or equal to 26 bits in length. Examples: 10.0.0.0/26 and 10.0.0.0/25.'."\n" - .'* If the number of SSL-VPN connections is 20, we recommend that you specify a client CIDR block with a subnet mask that is less than or equal to 25 bits in length. Examples: 10.0.0.0/25 and 10.0.0.0/24.'."\n" - .'* If the number of SSL-VPN connections is 50, we recommend that you specify a client CIDR block with a subnet mask that is less than or equal to 24 bits in length. Examples: 10.0.0.0/24 and 10.0.0.0/23.'."\n" - .'* If the number of SSL-VPN connections is 100, we recommend that you specify a client CIDR block with a subnet mask that is less than or equal to 23 bits in length. Examples: 10.0.0.0/23 and 10.0.0.0/22.'."\n" - .'* If the number of SSL-VPN connections is 200, we recommend that you specify a client CIDR block with a subnet mask that is less than or equal to 22 bits in length. Examples: 10.0.0.0/22 and 10.0.0.0/21.'."\n" - .'* If the number of SSL-VPN connections is 500, we recommend that you specify a client CIDR block with a subnet mask that is less than or equal to 21 bits in length. Examples: 10.0.0.0/21 and 10.0.0.0/20.'."\n" - .'* If the number of SSL-VPN connections is 1,000, we recommend that you specify a client CIDR block with a subnet mask that is less than or equal to 20 bits in length. Examples: 10.0.0.0/20 and 10.0.0.0/19.'."\n" - .'
'."\n" - ."\n" - .'> - The subnet mask of the client CIDR block must be 16 to 29 bits in length.'."\n" - .'> - Make sure that the client CIDR block does not overlap with the local CIDR block, the VPC CIDR block, or route CIDR blocks associated with the client.'."\n" - .'> - We recommend that you use 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16, or one of their subnets as the client CIDR block. If you want to specify a public CIDR block as the client CIDR block, you must specify the public CIDR block as the user CIDR block of the virtual private cloud (VPC). This way, the VPC can access the public CIDR block. For more information, see [VPC FAQs](~~185311~~).'."\n" - .'> - After you create an SSL server, the system automatically adds routes that point to the client CIDR block to the VPC route table. Do not manually add routes that point to the client CIDR block. Otherwise, SSL-VPN connections cannot work as expected.', - 'type' => 'string', - 'required' => false, - 'example' => '10.30.30.0/24', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'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.'."\n" + ."\n" + .'> 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.'."\n", 'type' => 'string', 'required' => false, 'example' => '0c593ea1-3bea-11e9-b96b-88e9fe63****', 'title' => ''], ], [ - 'name' => 'LocalSubnet', + 'name' => 'DryRun', 'in' => 'query', - 'schema' => [ - 'description' => 'The local CIDR block.'."\n" - ."\n" - .'The CIDR block that your client needs to access by using the SSL-VPN connection.'."\n" - ."\n" - .'This value can be the CIDR block of a VPC, a vSwitch, a data center that is connected to a VPC by using an Express Connect circuit, or an Alibaba Cloud service such as Object Storage Service (OSS).'."\n" - ."\n" - .'The subnet mask of the specified local CIDR block must be 8 to 32 bits in length. You cannot specify the following CIDR blocks as the local CIDR blocks:'."\n" - ."\n" - .'* 127.0.0.0~127.255.255.255'."\n" - .'* 169.254.0.0~169.254.255.255'."\n" - .'* 224.0.0.0~239.255.255.255'."\n" - .'* 255.0.0.0~255.255.255.255', - 'type' => 'string', - 'required' => false, - 'example' => '10.20.20.0/24', - ], + 'schema' => ['description' => 'Specifies whether to perform a dry run. Valid values:'."\n" + ."\n" + .'* **true**: performs 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.'."\n" + .'* **false**: sends the request. If the request passes the check, a 2xx HTTP status code is returned and the operation is performed. This is the default value.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], ], [ - 'name' => 'Proto', + 'name' => 'TrafficMirrorSessionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The protocol that is used by the SSL server. Valid values:'."\n" - ."\n" - .'* **TCP** (default)'."\n" - .'* **UDP**'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'UDP', - ], + 'schema' => ['description' => 'The ID of the traffic mirror session.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'tms-j6cla50buc44ap8tu****', 'title' => ''], ], [ - 'name' => 'Cipher', + 'name' => 'TrafficMirrorTargetId', 'in' => 'query', - 'schema' => [ - 'description' => 'The encryption algorithm that is used in the SSL-VPN connection. Valid values:'."\n" - ."\n" - .'* **AES-128-CBC** (default)'."\n" - .'* **AES-192-CBC**'."\n" - .'* **AES-256-CBC**'."\n" - .'* **none**'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'AES-128-CBC', - ], + 'schema' => ['description' => 'The ID of the traffic mirror destination.'."\n", 'type' => 'string', 'required' => false, 'example' => 'eni-j6c2fp57q8rr47rp*****', 'title' => ''], ], [ - 'name' => 'Port', + 'name' => 'TrafficMirrorTargetType', 'in' => 'query', - 'schema' => [ - 'description' => 'The port that is used by the SSL server. Valid values of port numbers: **1** to **65535**. Default value: **1194**.'."\n" - ."\n" - .'The following ports are not supported: **22**, **2222**, **22222**, **9000**, **9001**, **9002**, **7505**, **80**, **443**, **53**, **68**, **123**, **4510**, **4560**, **500**, and **4500**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1194', - ], + 'schema' => ['description' => 'The new type of the traffic mirror destination. Valid values:'."\n" + ."\n" + .'* **NetworkInterface**: an elastic network interface (ENI)'."\n" + .'* **SLB**: an internal-facing Server Load Balancer (SLB) instance'."\n", 'type' => 'string', 'required' => false, 'example' => 'NetworkInterface', 'title' => ''], ], [ - 'name' => 'Compress', + 'name' => 'TrafficMirrorFilterId', 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to enable data compression. Valid values:'."\n" - ."\n" - .'* **true** (default)'."\n" - .'* **false**'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], + 'schema' => ['description' => 'The ID of the traffic mirror filter.'."\n", 'type' => 'string', 'required' => false, 'example' => 'tmf-j6cmls82xnc86vtpe****', 'title' => ''], ], [ - 'name' => 'EnableMultiFactorAuth', + 'name' => 'VirtualNetworkId', 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to enable two-factor authentication. To enable two-factor authentication, you need to specify **IDaaSInstanceId**, **IDaaSRegionId**, and **IDaaSApplicationId**. Valid values:'."\n" - ."\n" - .'* **true**: enables the feature.'."\n" - .'* **false**: disables the feature.'."\n" - ."\n" - .'> - If you use two-factor authentication for the first time, you must first complete [authorization](https://ram.console.aliyun.com/role/authorization?request=%7B%22Services%22%3A%5B%7B%22Service%22%3A%22VPN%22%2C%22Roles%22%3A%5B%7B%22RoleName%22%3A%22AliyunVpnAccessingIdaasRole%22%2C%22TemplateId%22%3A%22IdaasRole%22%7D%5D%7D%5D%2C%22ReturnUrl%22%3A%22https%3A%2F%2Fvpc.console.aliyun.com%2Fsslvpn%2Fcn-shanghai%2Fvpn-servers%22%7D).'."\n" - .'> - When you create an SSL server in the UAE (Dubai) region, we recommend that you associate the SSL server with an IDaaS EIAM 2.0 instance in Singapore to reduce latency.'."\n" - .'> - IDaaS EIAM 1.0 instances are no longer available for purchase. If your Alibaba Cloud account has IDaaS EIAM 1.0 instances, the IDaaS EIAM 1.0 instances can be associated after two-factor authentication is enabled. If your Alibaba Cloud account does not have IDaaS EIAM 1.0 instances, only IDaaS EIAM 2.0 instances can be associated after two-factor authentication is enabled.', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['description' => 'The VXLAN network identifier (VNI) that is used to distinguish different mirrored traffic. Valid values: **0** to **16777215**.'."\n" + ."\n" + .'You can use VNIs to identify mirrored traffic from different sessions at the traffic mirror destination. If you do not specify a VNI, the system randomly allocates a VNI. If you want the system to randomly allocate a VNI, ignore this parameter.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '10', 'title' => ''], ], [ - 'name' => 'IDaaSInstanceId', + 'name' => 'Priority', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the IDaaS EIAM instance.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'idaas-cn-hangzhou-****', - ], + 'schema' => ['description' => 'The new priority of the traffic mirror session. Valid values: **1** to **32766**.'."\n" + ."\n" + .'A smaller value indicates a higher priority. You cannot specify identical priorities for traffic mirror sessions that are created in the same region by using the same account.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '2', 'title' => ''], ], [ - 'name' => 'IDaaSRegionId', + 'name' => 'PacketLength', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the IDaaS EIAM instance.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The maximum transmission unit (MTU).'."\n" + ."\n" + .'Valid values: **64 to 9600**. Default value: **1500**.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1500', 'title' => ''], ], [ - 'name' => 'IDaaSApplicationId', + 'name' => 'Enabled', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the IDaaS application.'."\n" - ."\n" - .'* If an IDaaS EIAM 2.0 instance is associated, you need to specify an IDaaS application ID.'."\n" - .'* If an IDaaS EIAM 1.0 instance is associated, you do not need to specify an IDaaS application ID.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'app_my6g4qmvnwxzj2f****', - ], + 'schema' => ['description' => 'Specifies whether to enable the traffic mirror session. Valid values:'."\n" + ."\n" + .'* **false** (default)'."\n" + .'* **true**'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], ], [ - 'name' => 'DryRun', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'type' => 'boolean', - 'required' => false, - 'description' => 'Specifies whether to only precheck the request. Valid values:'."\n" - ."\n" - .'* **true**: prechecks the request without performing the operation. The system prechecks the required parameters, request syntax, and limits. If the request fails to pass the precheck, an error message is returned. If the request passes the precheck, the `DryRunOperation` error code is returned.'."\n" - .'* **false** (default): sends the request. After the request passes the precheck, a 2xx HTTP status code is returned and the operation is performed.', - 'example' => 'false', - ], + 'schema' => ['description' => 'The region ID of the traffic mirror session. You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list. For more information about the regions that support traffic mirror, see [Overview of traffic mirror](~~207513~~).', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hongkong', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => 'The results returned.'."\n", + 'description' => '', 'type' => 'object', 'properties' => [ - 'InternetIp' => [ - 'description' => 'The public IP address.'."\n", - 'type' => 'string', - 'example' => '47.98.XX.XX', - ], - 'IDaaSInstanceId' => [ - 'description' => 'The ID of the IDaaS EIAM instance.'."\n", - 'type' => 'string', - 'example' => 'idaas-cn-hangzhou-****', - ], - 'CreateTime' => [ - 'description' => 'The time when the SSL server was created.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1492753580000', - ], - 'VpnGatewayId' => [ - 'description' => 'The ID of the VPN gateway.'."\n", - 'type' => 'string', - 'example' => 'vpn-bp1q8bgx4xnkm2ogj****', - ], - 'Compress' => [ - 'description' => 'Indicates whether data compression is enabled.'."\n", - 'type' => 'boolean', - 'example' => 'false', - ], - 'Port' => [ - 'description' => 'The port that is used by the SSL server.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1194', - ], - 'LocalSubnet' => [ - 'description' => 'The local CIDR block.'."\n", - 'type' => 'string', - 'example' => '10.20.20.0/24', - ], - 'RegionId' => [ - 'description' => 'The ID of the region where the SSL server is created.'."\n", - 'type' => 'string', - 'example' => 'cn-hangzhou', - ], - 'Cipher' => [ - 'description' => 'The encryption algorithm.'."\n", - 'type' => 'string', - 'example' => 'AES-128-CBC', - ], - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => 'DF11D6F6-E35A-41C3-9B20-6FC8A901FE65', - ], - 'Connections' => [ - 'description' => 'The total number of current connections.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '0', - ], - 'SslVpnServerId' => [ - 'description' => 'The ID of the SSL server.'."\n", - 'type' => 'string', - 'example' => 'vss-bp18q7hzj6largv4v****', - ], - 'MaxConnections' => [ - 'description' => 'The maximum number of connections.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '5', - ], - 'Name' => [ - 'description' => 'The name of the SSL server.'."\n", - 'type' => 'string', - 'example' => 'test', - ], - 'EnableMultiFactorAuth' => [ - 'description' => 'Indicates whether two-factor authentication is enabled.'."\n" - ."\n" - .'* **true**'."\n" - .'* **false** (default)'."\n", - 'type' => 'boolean', - 'example' => 'false', - ], - 'ClientIpPool' => [ - 'description' => 'The client CIDR block.'."\n", - 'type' => 'string', - 'example' => '10.30.30.0/24', - ], - 'Proto' => [ - 'description' => 'The protocol that is used by the SSL server.', - 'type' => 'string', - 'example' => 'UDP', - ], - 'ResourceGroupId' => [ - 'description' => 'The ID of the resource group to which the SSL server belongs.'."\n" - ."\n" - .'The SSL server and the VPN gateway associated with the SSL server belong to the same resource group. You can call the [ListResourceGroups](~~158855~~) operation to query resource groups.'."\n", - 'type' => 'string', - 'example' => 'rg-acfmzs372yg****', - ], - 'IDaaSApplicationId' => [ - 'description' => 'The ID of the IDaaS application.'."\n", - 'type' => 'string', - 'example' => 'app_my6g4qmvnwxzj2f****', - ], - 'IDaaSInstanceVersion' => [ - 'description' => 'The version of the IDaaS EIAM instance.'."\n" - ."\n" - .'* This parameter is returned only if the SSL server is associated with an IDaaS EIAM 2.0 instance. Only **EIAM 2.0** is returned.'."\n" - .'* If the SSL server is associated with an IDaaS EIAM 1.0 instance, no value is returned.'."\n", - 'type' => 'string', - 'example' => 'EIAM 2.0', - ], + 'RequestId' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '64DCAF03-E2C7-479A-ACEA-38B79876B006', 'title' => ''], ], + 'title' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidName', - 'errorMessage' => 'The name is not valid', - ], - [ - 'errorCode' => 'VpnGateway.Configuring', - 'errorMessage' => 'The specified service is configuring.', - ], - [ - 'errorCode' => 'VpnGateway.FinancialLocked', - 'errorMessage' => 'The specified service is financial locked.', - ], - [ - 'errorCode' => 'IpConflict', - 'errorMessage' => 'Client IP pool conflict with local IP range.', - ], - [ - 'errorCode' => 'SslVpnServer.AddRouteError', - 'errorMessage' => 'Add route error whose destination is client IP pool, please check vpc route entry and relevant quota.', - ], - [ - 'errorCode' => 'ClientIpPool.NetmaskInvalid', - 'errorMessage' => 'The netmask length of client IP pool must be greater than or equal to 16 and less than or equal to 29.', - ], - [ - 'errorCode' => 'ClientIpPool.SubnetInvalid', - 'errorMessage' => 'The specified client IP pool cannot be used.', - ], - [ - 'errorCode' => 'MissingParameter.IDaaSInstanceId', - 'errorMessage' => 'The input parameter IDaaSInstanceId is mandatory when enable multi-factor authentication.', - ], - [ - 'errorCode' => 'OperationFailed.GetIDaaSInfo', - 'errorMessage' => 'Failed to get secret key from your IDaaS instance.', - ], - [ - 'errorCode' => 'OperationFailed.NoRamPermission', - 'errorMessage' => 'Vpn Service has no permission to operate your IDaaS instances.', - ], - [ - 'errorCode' => 'OperationUnsupported.NotSupportMultiFactorAuth', - 'errorMessage' => 'Current version of the VPN does not support multi-factor authentication.', - ], - [ - 'errorCode' => 'SystemBusy', - 'errorMessage' => 'The system is busy. Please try again later.', - ], - [ - 'errorCode' => 'SslVpnServerPort.Illegal', - 'errorMessage' => 'The server port is not in the range of [1-65535].', - ], - [ - 'errorCode' => 'EnableHaCheck.SslVpnServerClientCidrContainsVpcRouteDest', - 'errorMessage' => 'Ssl vpn client cidr contains vpc route prefix. The vpc route prefix is %s.', - ], - [ - 'errorCode' => 'InvalidInstanceId.NotFound', - 'errorMessage' => 'InstanceId is not found.', - ], - [ - 'errorCode' => 'VpnRouteEntry.Conflict', - 'errorMessage' => 'The specified route entry has conflict.', - ], - [ - 'errorCode' => 'IllegalParam.IDaaSApplicationId', - 'errorMessage' => 'The specified IDaaS application Id is not illegal, the application instance needs to be created based on the dedicated SSL VPN template.', - ], - [ - 'errorCode' => 'MissingParam.IDaaSApplicationId', - 'errorMessage' => 'The input parameter IDaaSApplicationId is mandatory when enable multi-factor authentication.', - ], - [ - 'errorCode' => 'SslVpnIDaaS2.NotSupport', - 'errorMessage' => 'Current version of the VPN does not support IDaaS2.0.', - ], - [ - 'errorCode' => 'MissingParam.IDaaSRegionId', - 'errorMessage' => 'The input parameter IDaaSRegionId is mandatory when enable multi-factor authentication.', - ], - [ - 'errorCode' => 'DryRunOperation', - 'errorMessage' => 'Request validation has been passed with DryRun flag set.', - ], - [ - 'errorCode' => 'IllegalParam.LocalSubnet', - 'errorMessage' => 'The specified "LocalSubnet" (%s) is invalid.', - ], + ['errorCode' => 'IncorrectBusinessStatus.TrafficMirror', 'errorMessage' => 'The business status of traffic mirror is incorrect.', 'description' => 'Traffic mirroring is in an invalid state.'], + ['errorCode' => 'OptInRequired.TrafficMirror', 'errorMessage' => 'You need to subscribe to the traffic mirror service first.', 'description' => 'Traffic mirroring is disabled.'], + ['errorCode' => 'DuplicatedParam.Priority', 'errorMessage' => 'The specified priority conflicts with the existing priority.', 'description' => 'The specified priority is the same as an existing one.'], + ['errorCode' => 'ResourceNotFound.TrafficMirrorSession', 'errorMessage' => 'The specified resource of traffic mirror session is not found.', 'description' => ''], + ['errorCode' => 'IncorrectStatus.TrafficMirrorSession', 'errorMessage' => 'The status of traffic mirror session is incorrect.', 'description' => ''], + ['errorCode' => 'ResourceNotFound.TrafficMirrorFilter', 'errorMessage' => 'The specified resource of traffic mirror filter is not found.', 'description' => 'The specified filter does not exist.'], + ['errorCode' => 'IncorrectStatus.TrafficMirrorFilter', 'errorMessage' => 'The status of traffic mirror filter is incorrect.', 'description' => 'The filter is in an invalid state.'], + ['errorCode' => 'QuotaExceeded.FilterRelatedSession', 'errorMessage' => 'The quota of the number of traffic mirror sessions related to one filter is exceeded.', 'description' => 'The number of traffic mirror sessions associated with the filter has reached the upper limit.'], + ['errorCode' => 'ResourceNotFound.NetworkInterface', 'errorMessage' => 'The specified resource of network interface is not found.', 'description' => 'The specified ENI does not exist.'], + ['errorCode' => 'ResourceNotFound.EcsInstance', 'errorMessage' => 'The specified resource of ECS instance is not found.', 'description' => ''], + ['errorCode' => 'ResourceNotFound.Slb', 'errorMessage' => 'The specified resource of SLB is not found.', 'description' => ''], + ['errorCode' => 'OperationDenied.SlbNotInVpc', 'errorMessage' => 'The specified SLB is not in any VPC.', 'description' => ''], + ['errorCode' => 'QuotaExceeded.NetworkInterfaceRelatedSession', 'errorMessage' => 'The quota of the number of traffic mirror sessions related to one network interface is exceeded.', 'description' => 'The number of traffic mirror sessions associated with an ENI has reached the upper limit.'], + ['errorCode' => 'QuotaExceeded.SlbRelatedSession', 'errorMessage' => 'The quota of the number of traffic mirror sessions related to one SLB is exceeded.', 'description' => 'The number of traffic mirror sessions associated with an SLB instance has reached the upper limit.'], + ['errorCode' => 'OperationDenied.EcsNotSupportTrafficMirror', 'errorMessage' => 'The ECS instance does not support traffic mirroring.', 'description' => ''], + ['errorCode' => 'OperationDenied.DuplicateRole', 'errorMessage' => 'The network interface must not be the source and the target of traffic mirror sessions at the same time.', 'description' => ''], + ['errorCode' => 'InvalidLoadBalancerId.NotFound', 'errorMessage' => 'The specified resource of load balancer is not found.', 'description' => 'The SLB instance does not exist.'], + ['errorCode' => 'OperationDenied.FreeNetworkInterface', 'errorMessage' => 'The network interface is not attached to any ECS instance.', 'description' => 'The ENI is not associated with an ECS instance.'], + ['errorCode' => 'OperationDenied.ClassicSLB', 'errorMessage' => 'The operation is not allowed because of ClassicSLB.', 'description' => 'The error message returned because you cannot perform the operation on a CLB instance.'], + ['errorCode' => 'QuotaExceeded.SourceNumPerTarget', 'errorMessage' => 'The maximum number of traffic mirror sources for a target is exceeded.', 'description' => 'The number of traffic mirror sources associated with the image exceeds the upper limit.'], + ['errorCode' => 'OperationFailed.NotSupportBizType', 'errorMessage' => 'The specified instance type does not support the operation.', 'description' => 'The specified instance type does not support the operation.'], + ['errorCode' => 'OperationDenied.UnsupportedTargetType', 'errorMessage' => 'Traffic mirror target must be SLB if traffic mirror sources contain nat gateway network interface.', 'description' => 'When a NAT gateway NIC exists in the traffic mirroring source, the traffic mirroring purpose must be SLB type.'], + ['errorCode' => 'OperationDenied.TargetTypeNotSupportBondEni', 'errorMessage' => 'Operation denied because of target type can not be Bond Network Interface.', 'description' => 'Operation denied because of target type can not be Bond Network Interface.'], + ['errorCode' => 'OperationDenied.TargetTypeNotSupportGatewayLoadBalancerEndpoint', 'errorMessage' => 'Operation denied because of target type can not be GatewayLoadBalancerEndpoint.', 'description' => 'Gateway-based load balancing endpoints are not supported as traffic mirrors mu d'], + ['errorCode' => 'OperationDenied.InvalidTargetBondEniType', 'errorMessage' => 'The traffic mirroring target does not support the entered bond ENI type.', 'description' => 'The traffic mirroring target does not support the entered bond ENI type.'], + ['errorCode' => 'OperationDenied.TargetTypeNotSupportTrafficMirrorFullPacket', 'errorMessage' => 'The traffic mirror session target type does not support the feature of mirroring source full packet.', 'description' => 'The traffic mirror session target type does not support the feature of mirroring source full packet'], + ['errorCode' => 'OperationDenied.TrafficMirrorSessionSourceFullPacketNotSupport', 'errorMessage' => 'The traffic mirror session does not support the feature of mirroring source full packet.', 'description' => 'Traffic mirror currently does not support source full packet mirroring. TrafficMirrorSourceTruncateMode can only be set to 0, which is the default mode.'], ], - 403 => [ - [ - 'errorCode' => 'Forbbiden.SubUser', - 'errorMessage' => 'User not authorized to operate on the specified resource as your account is created by another user.', - ], - [ - 'errorCode' => 'Forbidden', - 'errorMessage' => 'User not authorized to operate on the specified resource.', - ], + 404 => [ + ['errorCode' => 'ResourceNotFound.GatewayLoadBalancerEndpoint', 'errorMessage' => 'GatewayLoadBalancerEndpoint instance not found.', 'description' => 'GatewayLoadBalancerEndpoint instance not found.'], ], + 500 => [ + ['errorCode' => 'OperationFailed.GetEniInfo', 'errorMessage' => 'The back-end service failed to query the NIC information.', 'description' => 'The back-end service failed to query the NIC information.'], + ], + ], + 'title' => 'UpdateTrafficMirrorSessionAttribute', + 'summary' => 'Modifies the configuration of a traffic mirror session.', + 'changeSet' => [ + ['createdAt' => '2025-05-09T07:44:49.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2025-02-08T09:45:32.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-10-25T13:40:06.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-09-11T02:36:44.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-01-15T05:37:07.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-08-03T05:30:57.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-07-05T07:33:20.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-04-14T10:13:04.000Z', 'description' => 'Error codes changed, Request parameters changed'], + ], + 'ramActions' => [ [ - [ - 'errorCode' => 'InvalidRegionId.NotFound', - 'errorMessage' => 'The specified region is not found during access authentication.', - ], - [ - 'errorCode' => 'InvalidIDaaSInstanceId.NotFound', - 'errorMessage' => 'The specified IDaaS instance ID does not exist.', - ], - [ - 'errorCode' => 'InvalidIDaaSApplicationId.NotFound', - 'errorMessage' => 'The specified IDaaS application Id does not exist.', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:UpdateTrafficMirrorSessionAttribute', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'TrafficMirrorSession', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:trafficmirrorsession/{#TrafficMirrorSessionId}'], + ['validationType' => 'conditional', 'product' => 'VPC', 'resourceType' => 'TrafficMirrorFilter', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:trafficmirrorfilter/{#TrafficMirrorFilterId}'], + ], ], ], ], - 'staticInfo' => [ - 'returnType' => 'asynchronous', - 'callback' => 'Vpc::2016-04-28::DescribeVpnGateway', - 'callbackInterval' => 2000, - 'maxCallbackTimes' => 60, - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"InternetIp\\": \\"47.98.XX.XX\\",\\n \\"IDaaSInstanceId\\": \\"idaas-cn-hangzhou-****\\",\\n \\"CreateTime\\": 1492753580000,\\n \\"VpnGatewayId\\": \\"vpn-bp1q8bgx4xnkm2ogj****\\",\\n \\"Compress\\": false,\\n \\"Port\\": 1194,\\n \\"LocalSubnet\\": \\"10.20.20.0/24\\",\\n \\"RegionId\\": \\"cn-hangzhou\\",\\n \\"Cipher\\": \\"AES-128-CBC\\",\\n \\"RequestId\\": \\"DF11D6F6-E35A-41C3-9B20-6FC8A901FE65\\",\\n \\"Connections\\": 0,\\n \\"SslVpnServerId\\": \\"vss-bp18q7hzj6largv4v****\\",\\n \\"MaxConnections\\": 5,\\n \\"Name\\": \\"test\\",\\n \\"EnableMultiFactorAuth\\": false,\\n \\"ClientIpPool\\": \\"10.30.30.0/24\\",\\n \\"Proto\\": \\"UDP\\",\\n \\"ResourceGroupId\\": \\"rg-acfmzs372yg****\\",\\n \\"IDaaSApplicationId\\": \\"app_my6g4qmvnwxzj2f****\\",\\n \\"IDaaSInstanceVersion\\": \\"EIAM 2.0\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 47.98.XX.XX\\n idaas-cn-hangzhou-****\\n 1492753580000\\n vpn-bp1q8bgx4xnkm2ogj****\\n false\\n 1194\\n 10.20.20.0/24\\n cn-hangzhou\\n AES-128-CBC\\n DF11D6F6-E35A-41C3-9B20-6FC8A901FE65\\n 0\\n vss-bp18q7hzj6largv4v****\\n 5\\n test\\n false\\n 10.30.30.0/24\\n UDP\\n","errorExample":""}]', - 'title' => 'ModifySslVpnServer', - 'description' => '* To enable two-factor authentication for an SSL server, make sure that the VPN gateway supports two-factor authentication. You may need to upgrade the VPN gateway. For more information, see [Two-factor authentication supports IDaaS EIAM 2.0](~~2785320~~).'."\n" - ."\n" - .'* If you modify only **Name**, this operation is synchronous. If you modify other parameters besides **Name**, this operation is asynchronous.'."\n" - ."\n" - .'* **ModifySslVpnServer** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call the [DescribeVpnGateway](~~2794055~~) operation to query the status of the task.'."\n" - ."\n" - .' * If the VPN gateway is in the **updating** state, the SSL server is being modified.'."\n" - .' * If the VPN gateway is in the **active** state, the SSL server is modified.'."\n" - ."\n" - .'* You cannot repeatedly call **ModifySslVpnServer** within the specified period of time.', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"64DCAF03-E2C7-479A-ACEA-38B79876B006\\"\\n}","type":"json"}]', ], - 'DescribeSslVpnServers' => [ - 'summary' => 'Queries one or more SSL-VPN servers.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'UpdateVirtualBorderBandwidth' => [ + 'summary' => 'Calls the UpdateVirtualBorderBandwidth operation to update the bandwidth throttling for both the upstream and downstream routing directions on a Virtual Border Router (VBR).', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'write', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'list', - 'riskType' => 'none', - 'chargeType' => 'free', - ], + 'systemTags' => ['operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the SSL server.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], - ], - [ - 'name' => 'SslVpnServerId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the SSL server.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'vss-bp15j3du13gq1dgey****', - ], - ], - [ - 'name' => 'VpnGatewayId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the VPN gateway.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'vpn-bp1on0xae9d771ggi****', - ], - ], - [ - 'name' => 'Name', - 'in' => 'query', - 'schema' => [ - 'description' => 'The SSL server name.'."\n" - ."\n" - .'The name must be 1 to 100 characters in length and cannot start with `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'test', - ], + 'schema' => ['description' => 'The region ID of the VBR. '."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query region IDs.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-shanghai', 'title' => ''], ], [ - 'name' => 'PageNumber', + 'name' => 'VirtualBorderRouterId', 'in' => 'query', - 'schema' => [ - 'description' => 'The page number. Default value: **1**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', - 'default' => '1', - ], + 'schema' => ['description' => 'The instance ID of the VBR.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'vbr-bp15zckdt37pq72****', 'title' => ''], ], [ - 'name' => 'PageSize', + 'name' => 'Bandwidth', 'in' => 'query', - 'schema' => [ - 'description' => 'The number of entries per page. Maximum value: **50**. Default value: **10**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '10', - 'default' => '10', - ], + 'schema' => ['description' => 'The new bandwidth limit of the VBR. Unit: Mbit/s.', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'docRequired' => true, 'example' => '2', 'title' => ''], ], [ - 'name' => 'ResourceGroupId', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The resource group ID of the SSL server.'."\n" - ."\n" - .'The SSL server and its associated VPN gateway belong to the same resource group. You can call the [DescribeVpnGateway](~~2794055~~) operation to query the ID of the resource group to which the VPN gateway belongs.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'rg-acfmzs372yg****', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'You can use the client to generate the token, but you must make sure that the token is unique among different requests. The ClientToken value can contain only ASCII characters.'."\n" + ."\n" + .'> If you do not specify this parameter, the system automatically uses the **RequestId** of the API request as the **ClientToken**. The **RequestId** of each API request is different.', 'type' => 'string', 'required' => false, 'example' => '02fb3da4-130e-11e9-8e44-0016****', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => 'The response parameters.'."\n", 'type' => 'object', 'properties' => [ - 'PageSize' => [ - 'description' => 'The number of entries per page.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => 'D350187B-EA41-4577-950B-95434C8302E1', - ], - 'PageNumber' => [ - 'description' => 'The number of the page to return.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'TotalCount' => [ - 'description' => 'The number of entries returned.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'SslVpnServers' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'SslVpnServer' => [ - 'description' => 'The detailed information about the SSL-VPN servers.'."\n", - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'InternetIp' => [ - 'description' => 'The public IP address of the VPN gateway.'."\n", - 'type' => 'string', - 'example' => '47.5.XX.XX', - ], - 'IDaaSInstanceId' => [ - 'description' => 'The ID of the IDaaS EIAM instance.'."\n", - 'type' => 'string', - 'example' => 'idaas-cn-hangzhou-****', - ], - 'CreateTime' => [ - 'description' => 'The timestamp generated when the SSL-VPN server was created.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1613800884000', - ], - 'VpnGatewayId' => [ - 'description' => 'The ID of the VPN gateway.'."\n", - 'type' => 'string', - 'example' => 'vpn-bp1on0xae9d771ggi****', - ], - 'IDaaSRegionId' => [ - 'description' => 'The region ID of the IDaaS EIAM instance.'."\n", - 'type' => 'string', - 'example' => 'cn-hangzhou', - ], - 'Compress' => [ - 'description' => 'Indicates whether data compression is enabled. Valid values:'."\n" - ."\n" - .'* **true**'."\n" - .'* **false** (default)'."\n", - 'type' => 'boolean', - 'example' => 'false', - ], - 'Port' => [ - 'description' => 'The port that is used by the SSL-VPN server.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1194', - ], - 'LocalSubnet' => [ - 'description' => 'The local CIDR block.'."\n", - 'type' => 'string', - 'example' => '192.168.0.0/24', - ], - 'RegionId' => [ - 'description' => 'The region ID of the SSL server.'."\n", - 'type' => 'string', - 'example' => 'cn-hangzhou', - ], - 'Cipher' => [ - 'description' => 'The encryption algorithm.'."\n", - 'type' => 'string', - 'example' => 'AES-128-CBC', - ], - 'Connections' => [ - 'description' => 'The total number of current connections.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '0', - ], - 'SslVpnServerId' => [ - 'description' => 'The ID of the SSL server.'."\n", - 'type' => 'string', - 'example' => 'vss-bp15j3du13gq1dgey****', - ], - 'MaxConnections' => [ - 'description' => 'The maximum number of connections.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '5', - ], - 'Name' => [ - 'description' => 'The name of the SSL server.'."\n", - 'type' => 'string', - 'example' => 'test', - ], - 'EnableMultiFactorAuth' => [ - 'description' => 'Indicates whether two-factor authentication is enabled.'."\n" - ."\n" - .'* **true**'."\n" - .'* **false** (default)'."\n", - 'type' => 'boolean', - 'example' => 'true', - ], - 'ClientIpPool' => [ - 'description' => 'The client CIDR block.'."\n", - 'type' => 'string', - 'example' => '10.10.1.0/24', - ], - 'Proto' => [ - 'description' => 'The protocol that is used by the SSL server.'."\n", - 'type' => 'string', - 'example' => 'UDP', - ], - 'ResourceGroupId' => [ - 'description' => 'The resource group ID of the SSL server.'."\n" - ."\n" - .'You can call the [ListResourceGroups](~~158855~~) operation to query resource groups.'."\n", - 'type' => 'string', - 'example' => 'rg-acfmzs372yg****', - ], - 'IDaaSApplicationId' => [ - 'description' => 'The ID of the IDaaS application.'."\n", - 'type' => 'string', - 'example' => 'app_my6g4qmvnwxzj2f****', - ], - 'IDaaSInstanceVersion' => [ - 'description' => 'The version of the IDaaS EIAM instance.'."\n" - ."\n" - .'* This parameter is returned only if the SSL server is associated with an IDaaS EIAM 2.0 instance. Only **EIAM 2.0** is returned.'."\n" - .'* If the SSL server is associated with an IDaaS EIAM 1.0 instance, no value is returned.'."\n", - 'type' => 'string', - 'example' => 'EIAM 2.0', - ], - ], - ], - ], - ], - ], + 'Code' => ['description' => 'The response code.', 'type' => 'string', 'example' => '200', 'title' => ''], + 'HttpStatusCode' => ['description' => 'The HTTP status code.', 'type' => 'integer', 'format' => 'int32', 'example' => '200', 'title' => ''], + 'Message' => ['description' => 'The response message.', 'type' => 'string', 'example' => 'successful', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'AA4486A8-B6AE-469E-AB09-820EF8ECFA2B', 'title' => ''], + 'Success' => ['description' => 'Indicates whether the modification was successful. Valid values:'."\n" + ."\n" + .'- **true**: Successful.'."\n" + ."\n" + .'- **false**: Failed.', 'type' => 'boolean', 'example' => 'true', 'title' => ''], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ - 403 => [ - [ - 'errorCode' => 'Forbbiden.SubUser', - 'errorMessage' => 'User not authorized to operate on the specified resource as your account is created by another user.', - ], - [ - 'errorCode' => 'Forbidden', - 'errorMessage' => 'User not authorized to operate on the specified resource.', - ], + 400 => [ + ['errorCode' => 'OperationFailed.Vpconn', 'errorMessage' => 'The operation is failed because of Vpconn.', 'description' => 'You cannot set the Vpconn parameter.'], + ['errorCode' => 'MissingParam.InstanceId', 'errorMessage' => 'Missing param of InstanceId.', 'description' => 'The InstanceId parameter is not set.'], + ['errorCode' => 'InvalidInstanceId.NotFound', 'errorMessage' => 'InstanceId not found.', 'description' => 'The InstanceId is set to an invalid value.'], + ['errorCode' => 'MissingParam.Bandwidth', 'errorMessage' => 'Missing param of Bandwidth.', 'description' => 'The Bandwidth parameter is not set.'], + ['errorCode' => 'IllegalParam.Bandwidth', 'errorMessage' => 'Illegal Param of Bandwidth.', 'description' => 'The Bandwidth parameter is set to an invalid value.'], + ['errorCode' => 'MissingParam.regionNo', 'errorMessage' => 'Missing param of regionNo.', 'description' => ''], + ['errorCode' => 'QuotaExceeded.VirtualBorderRouterBandwidth', 'errorMessage' => 'Quota Exceeded of VirtualBorderRouterBandwidth', 'description' => 'The bandwidth of the VBR exceeds the upper limit.'], + ['errorCode' => 'OperationUnsupported.SetMultiPconnBandwidth', 'errorMessage' => 'Set Multi PhysicalConnection Bandwidth Unsupported.', 'description' => 'Bandwidth for multiple Express Connect circuits is not supported.'], + ['errorCode' => 'OperationUnsupported.ModifyBandwidth', 'errorMessage' => 'Modify Sale VirtualBorderRouter Bandwidth Unsupported.', 'description' => 'You cannot save the modified bandwidth parameter.'], + ['errorCode' => 'OperationFailed.PconnTrafficNotEnable', 'errorMessage' => 'The operation is failed because of PconnTrafficNotEnable.', 'description' => 'Billing for outbound data transfer is disabled.'], + ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'Modify bandwidth throttling on a VBR', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2021-11-16T13:33:38.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2021-09-27T03:23:37.000Z', 'description' => 'Error codes changed'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'UpdateVirtualBorderBandwidth'], ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], + ], + 'ramActions' => [ [ - [ - 'errorCode' => 'InvalidRegionId.NotFound', - 'errorMessage' => 'The specified region is not found during access authentication.', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:UpdateVirtualBorderBandwidth', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VirtualBorderRouter', 'arn' => 'acs:vpc:*:{#accountId}:virtualborderrouter/{#VirtualBorderRouterId}'], + ], ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"PageSize\\": 10,\\n \\"RequestId\\": \\"D350187B-EA41-4577-950B-95434C8302E1\\",\\n \\"PageNumber\\": 1,\\n \\"TotalCount\\": 1,\\n \\"SslVpnServers\\": {\\n \\"SslVpnServer\\": [\\n {\\n \\"InternetIp\\": \\"47.5.XX.XX\\",\\n \\"IDaaSInstanceId\\": \\"idaas-cn-hangzhou-****\\",\\n \\"CreateTime\\": 1613800884000,\\n \\"VpnGatewayId\\": \\"vpn-bp1on0xae9d771ggi****\\",\\n \\"IDaaSRegionId\\": \\"cn-hangzhou\\",\\n \\"Compress\\": false,\\n \\"Port\\": 1194,\\n \\"LocalSubnet\\": \\"192.168.0.0/24\\",\\n \\"RegionId\\": \\"cn-hangzhou\\",\\n \\"Cipher\\": \\"AES-128-CBC\\",\\n \\"Connections\\": 0,\\n \\"SslVpnServerId\\": \\"vss-bp15j3du13gq1dgey****\\",\\n \\"MaxConnections\\": 5,\\n \\"Name\\": \\"test\\",\\n \\"EnableMultiFactorAuth\\": true,\\n \\"ClientIpPool\\": \\"10.10.1.0/24\\",\\n \\"Proto\\": \\"UDP\\",\\n \\"ResourceGroupId\\": \\"rg-acfmzs372yg****\\",\\n \\"IDaaSApplicationId\\": \\"app_my6g4qmvnwxzj2f****\\",\\n \\"IDaaSInstanceVersion\\": \\"EIAM 2.0\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 10\\n D350187B-EA41-4577-950B-95434C8302E1\\n 1\\n 1\\n \\n 47.5.XX.XX\\n idaas-cn-hangzhou-****\\n 1613800884000\\n vpn-bp1on0xae9d771ggi****\\n cn-hangzhou\\n false\\n 1194\\n 192.168.0.0/24\\n cn-hangzhou\\n AES-128-CBC\\n 0\\n vss-bp15j3du13gq1dgey****\\n 5\\n test\\n true\\n 10.10.1.0/24\\n UDP\\n \\n","errorExample":""}]', - 'title' => 'DescribeSslVpnServers', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Code\\": \\"200\\",\\n \\"HttpStatusCode\\": 200,\\n \\"Message\\": \\"successful\\",\\n \\"RequestId\\": \\"AA4486A8-B6AE-469E-AB09-820EF8ECFA2B\\",\\n \\"Success\\": true\\n}","type":"json"}]', ], - 'DescribeVpnSslServerLogs' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'UpdateVirtualPhysicalConnection' => [ + 'summary' => 'This operation modifies a virtual physical connection.', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', - 'systemTags' => [ - 'operationType' => 'get', - ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region where the SSL server is created. You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], - ], - [ - 'name' => 'VpnSslServerId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the SSL server.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'vss-bp155e9yclsg1xgq4****', - ], - ], - [ - 'name' => 'SslVpnClientCertId', + 'name' => 'VlanId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the SSL client certificate.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'vsc-m5euof6s5jy8vs5kd****', - ], + 'schema' => ['description' => 'The VLAN ID of the virtual physical connection. Valid values: **0** to **2999**.'."\n" + ."\n" + .'- If you set the VLAN ID to **0**, the physical switch port of the Virtual Border Router (VBR) operates in Layer 3 routed interface mode. In this mode, one physical connection corresponds to one VBR.'."\n" + ."\n" + .'- If you set the VLAN ID to a value from **1** to **2999**, the physical switch port of the VBR uses a VLAN-based Layer 3 subinterface. In this mode, each VLAN ID corresponds to one VBR. The physical connection can be attached to VPCs that belong to different accounts. VBRs in different VLANs are isolated at Layer 2 and cannot communicate with each other.', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '1', 'title' => ''], ], [ - 'name' => 'From', + 'name' => 'InstanceId', 'in' => 'query', - 'schema' => [ - 'description' => 'The beginning of the time range to query. The value must be a unix timestamp. For example, 1600738962 specifies 09:42:42 (UTC+8) on September 22, 2020.'."\n" - ."\n" - .'> If you specify **From**, you must also specify **To** or **MinutePeriod**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1600738962', - ], + 'schema' => ['description' => 'The ID of the virtual physical connection instance.', 'type' => 'string', 'required' => true, 'example' => 'pc-bp1mrgfbtmc9brre7****', 'title' => ''], ], [ - 'name' => 'To', + 'name' => 'Token', 'in' => 'query', - 'schema' => [ - 'description' => 'The end of the time range to query. The value must be a unix timestamp. For example, 1600738962 specifies 09:42:42 (UTC+8) on September 22, 2020.'."\n" - ."\n" - .'> If you specify **To**, you must also specify **From** or **MinutePeriod**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1600738962', - ], + 'schema' => ['description' => 'The client token that ensures the idempotence of the request.'."\n" + ."\n" + .'A client-generated value that must be unique across requests. The client token can contain only ASCII characters.'."\n" + ."\n" + .'> If you do not specify this parameter, the system automatically uses the **RequestId** of the request as the **ClientToken**. The **RequestId** is different for each request.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'CBCE910E-D396-4944-8****'], ], [ - 'name' => 'MinutePeriod', + 'name' => 'DryRun', 'in' => 'query', - 'schema' => [ - 'description' => 'The interval at which log data is queried. Unit: minutes.'."\n" - ."\n" - .'> If both **From** and **To** are not specified, you must specify **MinutePeriod**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '10', - ], + 'schema' => ['title' => 'DryRun', 'description' => 'Specifies whether to perform a dry run. Valid values:'."\n" + ."\n" + .'- **true**: Performs a dry run to check for required parameters, the request format, and the instance status. The VLAN ID of the virtual physical connection is not modified. If the check fails, an error message is returned. If it passes, the request ID is returned.'."\n" + ."\n" + .'- **false** (default): Sends the request. If the check passes, the VLAN ID of the virtual physical connection is modified.', 'type' => 'boolean', 'required' => false, 'example' => 'false'], ], [ - 'name' => 'PageNumber', + 'name' => 'ExpectSpec', 'in' => 'query', - 'schema' => [ - 'description' => 'The number of the page to return. Default value: **1**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', - 'default' => '1', - ], + 'schema' => ['title' => 'ExpectSpec', 'description' => 'The expected bandwidth of the virtual physical connection. The new bandwidth takes effect only after the payment is complete.'."\n" + ."\n" + .'Valid values: **50M**, **100M**, **200M**, **300M**, **400M**, **500M**, **1G**, **2G**, **5G**, **8G**, and **10G**.'."\n" + ."\n" + .''."\n" + ."\n" + .'> Bandwidth settings of **2G**, **5G**, **8G**, and **10G** are not enabled by default. To use these settings, contact your account manager.'."\n" + ."\n" + .''."\n" + ."\n" + .''."\n" + ."\n" + .'> Bandwidth settings of **2G**, **5G**, **8G**, and **10G** are not enabled by default. To use these settings, contact your account manager.'."\n" + ."\n" + .''."\n" + ."\n" + .'Units: **M** indicates Mbps and **G** indicates Gbps.', 'type' => 'string', 'required' => false, 'example' => '50M'], ], [ - 'name' => 'PageSize', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The number of entries to return on each page. Maximum value: **50**. Default value: **10**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '10', - 'default' => '10', - ], + 'schema' => ['description' => 'The ID of the region where the virtual physical connection is deployed.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to obtain region IDs.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => '', + 'title' => 'Schema of Response', + 'description' => 'The response object.', 'type' => 'object', 'properties' => [ - 'PageSize' => [ - 'description' => 'The number of entries returned per page.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'PageNumber' => [ - 'description' => 'The page number of the returned page.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => 'DEDAC5B1-9292-5BF7-BDDF-61BA58CFB2FB', - ], - 'Count' => [ - 'description' => 'The number of log entries.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'IsCompleted' => [ - 'description' => 'Indicates whether the log is accurate. Valid values:'."\n" - ."\n" - .'* **true**: accurate'."\n" - .'* **false**: inaccurate'."\n", - 'type' => 'boolean', - 'example' => 'true', - ], - 'Data' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'Logs' => [ - 'description' => 'Log information list.', - 'type' => 'array', - 'items' => [ - 'description' => 'An array of strings.'."\n" - ."\n" - .'Each item in the array is a log entry.', - 'type' => 'string', - 'example' => '"Logs": [ "Mon Feb 28 14:05:51 2022 us=421630 MULTI: multi_create_instance called", "Mon Feb 28 14:05:51 2022 us=421744 112.XX.XX.128:42522 Re-using SSL/TLS context", "Mon Feb 28 14:05:51 2022 us=421834 112.XX.XX.128:42522 Control Channel MTU par****", "Mon Feb 28 14:05:51 2022 us=421850 112.XX.XX.128:42522 Data Channel MTU par****", "Mon Feb 28 14:05:51 2022 us=421901 112.XX.XX.128:42522 Local Option****", "Mon Feb 28 14:05:51 2022 us=421917 112.XX.XX.128:42522 Expected Remote Option****", "Mon Feb 28 14:05:51 2022 us=421951 112.XX.XX.128:42522 TLS: Initial packet from****", "Mon Feb 28 14:05:51 2022 us=581413 112.XX.XX.128:42522 VERIFY OK****", "Mon Feb 28 14:05:51 2022 us=581662 112.XX.XX.128:42522 VERIFY OK****", "Mon Feb 28 14:05:51 2022 us=621071 112.XX.XX.128:42522 peer info****" ]', - ], - ], - ], - ], + 'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.', 'type' => 'string', 'example' => '7035627E-1C1D-5BC7-A830-F897A35912D1'], + 'Success' => ['description' => 'Indicates whether the VLAN ID of the virtual physical connection was successfully modified.'."\n" + ."\n" + .'- **true**: The VLAN ID was modified.'."\n" + ."\n" + .'- **false**: The VLAN ID was not modified.', 'type' => 'string', 'title' => '', 'example' => 'true'], ], + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidSslVpnClientCertId.NotFound', - 'errorMessage' => 'The specified SSL VPN client id does not exist.', - ], - [ - 'errorCode' => 'ParamExclusive.SslVpnServerIdAndSslVpnClientCertId', - 'errorMessage' => 'The specified SSL VPN client does not belong to the specified SSL VPN server.', - ], - ], - 403 => [ - [ - 'errorCode' => 'Forbbiden.SubUser', - 'errorMessage' => 'User not authorized to operate on the specified resource as your account is created by another user.', - ], - [ - 'errorCode' => 'Forbidden', - 'errorMessage' => 'User not authorized to operate on the specified resource.', - ], + ['errorCode' => 'IllegalParam.VlanId', 'errorMessage' => 'The param of VlanId is illegal.', 'description' => 'The VlanId parameter is set to an invalid value.'], + ['errorCode' => 'ResourceNotFound.PhysicalConnectionId', 'errorMessage' => 'The specified PhysicalConnectionId [%s] is not found.', 'description' => 'PhysicalConnectionId is set to an invalid value.'], + ['errorCode' => 'ResourceNotEnough.Bandwidth', 'errorMessage' => 'The specified resource of Bandwidth is not enough.', 'description' => 'The specified resource of Bandwidth is insufficient.'], + ['errorCode' => 'IllegalParam.Bandwidth', 'errorMessage' => 'The param of bandwidth is illegal.', 'description' => 'The Bandwidth parameter is set to an invalid value.'], + ['errorCode' => 'Forbidden.PhysicalConnection', 'errorMessage' => 'Only parent physical connection account is allowed to modify the virtual physical connection.', 'description' => 'You can modify only the physical port to which the shared port belongs.'], + ['errorCode' => 'OperationFailed.PhysicalConnectionFinancialLocked', 'errorMessage' => 'Update failed, the physical connection is financial locked.', 'description' => 'The shared port is locked due to overdue payments and you cannot modify the VLAN.'], + ['errorCode' => 'OperationFailed.PhysicalConnectionTerminated', 'errorMessage' => 'Update failed, the physical connection is terminated.', 'description' => 'The shared port is disabled and you cannot modify the VLAN.'], + ['errorCode' => 'OperationDenied.CreateVpconn', 'errorMessage' => 'You are not allowed to create virtual physical connection. Please contact your CBM.', 'description' => 'If you do not have permission to create a shared line, please contact the business manager.'], + ['errorCode' => 'IncorrectStatus.VBR', 'errorMessage' => 'The status of VBR is incorrect.', 'description' => 'The operation failed because the status of the VBR is invalid.'], + ['errorCode' => 'IllegalParam.Spec', 'errorMessage' => 'The param of Spec is illegal.', 'description' => 'The Spec parameter is set to an invalid value.'], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"7035627E-1C1D-5BC7-A830-F897A35912D1\\",\\n \\"Success\\": \\"true\\"\\n}","type":"json"}]', + 'title' => 'UpdateVirtualPhysicalConnection', + 'changeSet' => [ + ['createdAt' => '2024-08-01T04:02:59.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2024-06-13T08:13:13.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-12-21T05:47:23.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2022-12-05T08:06:02.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2021-11-16T13:33:38.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2021-09-27T03:23:37.000Z', 'description' => 'OpenAPI offline'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'UpdateVirtualPhysicalConnection'], ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], + ], + 'ramActions' => [ [ - [ - 'errorCode' => 'InvalidSslVpnServerId.NotFound', - 'errorMessage' => 'The specified SSL VPN server id does not exist.', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:UpdateVirtualPhysicalConnection', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'PhysicalConnection', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:physicalconnection/{#physicalconnectionId}'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"PageSize\\": 10,\\n \\"PageNumber\\": 1,\\n \\"RequestId\\": \\"DEDAC5B1-9292-5BF7-BDDF-61BA58CFB2FB\\",\\n \\"Count\\": 10,\\n \\"IsCompleted\\": true,\\n \\"Data\\": {\\n \\"Logs\\": [\\n \\"\\\\\\"Logs\\\\\\": [ \\\\\\"Mon Feb 28 14:05:51 2022 us=421630 MULTI: multi_create_instance called\\\\\\", \\\\\\"Mon Feb 28 14:05:51 2022 us=421744 112.XX.XX.128:42522 Re-using SSL/TLS context\\\\\\", \\\\\\"Mon Feb 28 14:05:51 2022 us=421834 112.XX.XX.128:42522 Control Channel MTU par****\\\\\\", \\\\\\"Mon Feb 28 14:05:51 2022 us=421850 112.XX.XX.128:42522 Data Channel MTU par****\\\\\\", \\\\\\"Mon Feb 28 14:05:51 2022 us=421901 112.XX.XX.128:42522 Local Option****\\\\\\", \\\\\\"Mon Feb 28 14:05:51 2022 us=421917 112.XX.XX.128:42522 Expected Remote Option****\\\\\\", \\\\\\"Mon Feb 28 14:05:51 2022 us=421951 112.XX.XX.128:42522 TLS: Initial packet from****\\\\\\", \\\\\\"Mon Feb 28 14:05:51 2022 us=581413 112.XX.XX.128:42522 VERIFY OK****\\\\\\", \\\\\\"Mon Feb 28 14:05:51 2022 us=581662 112.XX.XX.128:42522 VERIFY OK****\\\\\\", \\\\\\"Mon Feb 28 14:05:51 2022 us=621071 112.XX.XX.128:42522 peer info****\\\\\\" ]\\"\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 10\\n DEDAC5B1-9292-5BF7-BDDF-61BA58CFB2FB\\n 1\\n true\\n \\n Mon Feb 28 14:05:51 2022 us=421630 MULTI: multi_create_instance called\\n Mon Feb 28 14:05:51 2022 us=421744 112.XX.XX.128:42522 Re-using SSL/TLS context\\n Mon Feb 28 14:05:51 2022 us=421834 112.XX.XX.128:42522 Control Channel MTU par****\\n Mon Feb 28 14:05:51 2022 us=421850 112.XX.XX.128:42522 Data Channel MTU par****\\n Mon Feb 28 14:05:51 2022 us=421901 112.XX.XX.128:42522 Local Option****\\n Mon Feb 28 14:05:51 2022 us=421917 112.XX.XX.128:42522 Expected Remote Option****\\n Mon Feb 28 14:05:51 2022 us=421951 112.XX.XX.128:42522 TLS: Initial packet from****\\n Mon Feb 28 14:05:51 2022 us=581413 112.XX.XX.128:42522 VERIFY OK****\\n Mon Feb 28 14:05:51 2022 us=581662 112.XX.XX.128:42522 VERIFY OK****\\n Mon Feb 28 14:05:51 2022 us=621071 112.XX.XX.128:42522 peer info****\\n \\n 10\\n","errorExample":""}]', - 'title' => 'DescribeVpnSslServerLogs', - 'summary' => 'Queries the log of an SSL server.', ], - 'CreateIpsecServer' => [ - 'summary' => 'Creates an IPsec server.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'UpdateVpcGatewayEndpointAttribute' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -83147,17242 +61481,12609 @@ ], 'operationType' => 'readAndWrite', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'create', - ], + 'systemTags' => ['operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ - 'name' => 'RegionId', + 'name' => 'EndpointId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region where the VPN gateway is deployed.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['title' => '', 'description' => 'The ID of the gateway endpoint that you want to modify.'."\n", 'type' => 'string', 'required' => true, 'example' => 'vpce-bp1w1dmdqjpwul0v3****'], ], [ - 'name' => 'VpnGatewayId', + 'name' => 'EndpointName', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the VPN gateway.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'vpn-bp17lofy9fd0dnvzv****', - ], + 'schema' => ['title' => '', 'description' => 'The new name of the gateway endpoint.'."\n" + ."\n" + .'The name must be 1 to 128 characters in length.'."\n", 'type' => 'string', 'required' => false, 'example' => 'update'], ], [ - 'name' => 'LocalSubnet', + 'name' => 'EndpointDescription', 'in' => 'query', - 'schema' => [ - 'description' => 'The local CIDR blocks, which are the CIDR blocks of the virtual private cloud (VPC) for the client to access.'."\n" - ."\n" - .'Multiple CIDR blocks are separated with commas (,). Example: 192.168.1.0/24,192.168.2.0/24.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => '192.168.0.0/24', - ], + 'schema' => ['title' => '', 'description' => 'The new description of the gateway endpoint.'."\n" + ."\n" + .'The description must be 1 to 255 characters in length.'."\n", 'type' => 'string', 'required' => false, 'example' => 'updateendpoint'], ], [ - 'name' => 'ClientIpPool', + 'name' => 'PolicyDocument', 'in' => 'query', - 'schema' => [ - 'description' => 'The client CIDR block from which an IP address is allocated to the virtual network interface controller (NIC) of the client.'."\n" - ."\n" - .'> The client CIDR block must not overlap with the CIDR blocks of the VPC.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => '10.0.0.0/24', - ], + 'schema' => ['title' => '', 'description' => 'The access policy for the cloud service.'."\n" + ."\n" + .'For more information about the syntax and structure of the access policy, see [Policy syntax and structure](~~93739~~).'."\n", 'type' => 'string', 'required' => false, 'example' => '{ "Version" : "1", "Statement" : [ { "Effect" : "Allow", "Resource" : [ "*" ], "Action" : [ "*" ], "Principal" : [ "*" ] } ] }'], ], [ - 'name' => 'IpSecServerName', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The name of the IPsec server.'."\n" - ."\n" - .'The name must be 1 to 100 characters in length.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'test', - 'maxLength' => 100, - ], + 'schema' => ['title' => '', 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'You can use the client to generate the token, but you must make sure that the token is unique among all requests. The token can contain only ASCII characters.'."\n" + ."\n" + .'> If you do not set this parameter, the system uses **RequestId** as **ClientToken**. The value of **RequestId** of each API request may be different.'."\n", 'type' => 'string', 'required' => false, 'example' => '0c593ea1-3bea-11e9-b96b-88e9fe637760'], ], [ - 'name' => 'EffectImmediately', + 'name' => 'DryRun', 'in' => 'query', - 'schema' => [ - 'description' => 'Specify whether to start connection negotiations immediately. Valid values:'."\n" - ."\n" - .'* **true**: immediately initiates negotiations after the configuration is complete.'."\n" - .'* **false** (default): initiates negotiations when inbound traffic is detected. This is the default value.', - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], + 'schema' => ['title' => '', 'description' => 'Specifies whether to perform a dry run. Valid values:'."\n" + ."\n" + .'* **true**: performs a dry run. The system checks your AccessKey pair, the RAM user permissions, and the required parameters If the request fails the dry run, the corresponding error message is returned. If the request passes the dry run, the `DryRunOperation` error code is returned.'."\n" + .'* **false** (default): performs a dry run and sends the request. If the request passes the dry run, a 2xx HTTP status code is returned and the operation is performed.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false'], ], [ - 'name' => 'IkeConfig', + 'name' => 'RegionId', 'in' => 'query', + 'schema' => ['title' => '', 'description' => 'The region ID of the gateway endpoint.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", 'type' => 'string', 'required' => true, 'example' => 'cn-hangzhou'], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => 'The configuration of Phase 1 negotiation. Valid values:'."\n" - ."\n" - .'* **IkeVersion**: the IKE version. Valid values: **ikev1** and **ikev2**. Default value: **ikev2**.'."\n" - .'* **IkeMode**: the IKE negotiation mode. Default value: **main**.'."\n" - .'* **IkeEncAlg**: the encryption algorithm that is used in Phase 1 negotiation. Default value: **aes**.'."\n" - .'* **IkeAuthAlg**: the authentication algorithm that is used in Phase 1 negotiation. Default value: **sha1**.'."\n" - .'* **IkePfs**: the Diffie-Hellman key exchange algorithm that is used in Phase 1 negotiation. Default value: **group2**.'."\n" - .'* **IkeLifetime**: the security association (SA) lifetime determined by Phase 1 negotiation. Unit: seconds. Valid values: **0** to **86400**. Default value: **86400**.'."\n" - .'* **LocalId**: the identifier of the IPsec server. The value can be a fully qualified domain name (FQDN) or an IP address. The default value is the public IP address of the VPN gateway.'."\n" - .'* **RemoteId**: the peer identifier. The value can be an FQDN or an IP address. The default value is empty.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '{"IkeVersion":"ikev2","IkeMode":"main","IkeEncAlg":"aes","IkeAuthAlg":"sha1","IkePfs":"group2","IkeLifetime":86400}', + 'title' => 'Schema of Response', + 'description' => 'The returned information.'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['title' => 'Id of the request', 'description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => 'E9654534-5A38-5545-813F-0403D49042FB'], + ], + 'example' => '', ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'OperationFailed.ConcurrentOperation', 'errorMessage' => 'The operation is failed because of concurrent operation.', 'description' => ''], + ['errorCode' => 'IdempotentParameterMismatch', 'errorMessage' => 'The request uses the same client token as a previous, but non-identical request. Do not reuse a client token with different requests, unless the requests are identical.', 'description' => ''], + ['errorCode' => 'ResourceNotFound.GatewayEndpoint', 'errorMessage' => 'The specified resource gateway endpoint is not found.', 'description' => 'The error message returned because the specified gateway endpoint does not exist.'], + ['errorCode' => 'IllegalParam.PolicyDocument', 'errorMessage' => 'The param of PolicyDocument is illegal.', 'description' => ''], + ['errorCode' => 'IllegalParam.GatewayEndpointName', 'errorMessage' => 'The param of GatewayEndpointName is illegal.', 'description' => ''], + ['errorCode' => 'IllegalParam.GatewayEndpointDescription', 'errorMessage' => 'The param of GatewayEndpointDescription is illegal.', 'description' => ''], + ['errorCode' => 'SystemBusy', 'errorMessage' => 'System is busy, please try again later.', 'description' => ''], + ['errorCode' => 'Forbbiden', 'errorMessage' => 'User not authorized to operate on the specified resource.', 'description' => ''], + ['errorCode' => 'InvalidRegionId.NotFound', 'errorMessage' => 'The regionId provided does not exist in our records.', 'description' => 'The RegionId parameter is set to an invalid value. Specify a valid value and try again.'], + ['errorCode' => 'OperationDenied.PolicyDocument', 'errorMessage' => 'The gatewayEndpoint does not support policy.', 'description' => ''], + ['errorCode' => 'IncorrectStatus.GatewayEndpoint', 'errorMessage' => 'The status of GatewayEndpoint [%s] is incorrect.', 'description' => ''], + ['errorCode' => 'InvalidPolicy.WrongFormat', 'errorMessage' => 'Invalid input policy format.', 'description' => 'The format of the policy information is invalid.'], + ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'UpdateVpcGatewayEndpointAttribute', + 'summary' => 'Modifies the configuration of a gateway endpoint.', + 'description' => '* **UpdateVpcGatewayEndpointAttribute** is an asynchronous operation. After a request is sent, the system returns a **request ID** and runs the task in the background. You can call the [GetVpcGatewayEndpointAttribute](~~311017~~) operation to query the status of the task.'."\n" + ."\n" + .' * If the gateway endpoint is in the **Updating** state, it is being modified.'."\n" + .' * If the gateway endpoint is in the **Created** state, it is modified.'."\n" + ."\n" + .'* You cannot call the **UpdateVpcGatewayEndpointAttribute** operation within a specific period of time.'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2023-05-29T06:12:36.000Z', 'description' => 'Error codes changed'], + ], + 'ramActions' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"E9654534-5A38-5545-813F-0403D49042FB\\"\\n}","errorExample":""},{"type":"xml","example":"\\n E9654534-5A38-5545-813F-0403D49042FB\\n","errorExample":""}]', + ], + 'VpcDescribeVpcNatGatewayNetworkInterfaceQuota' => [ + 'summary' => 'Queries the number of endpoints (EPs) that can be created for reverse access on a VPC NAT gateway.', + 'methods' => ['post'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'IpsecConfig', - 'in' => 'query', - 'schema' => [ - 'description' => 'The configuration of Phase 2 negotiation. Valid values:'."\n" - ."\n" - .'* **IpsecEncAlg**: the encryption algorithm that is used in Phase 2 negotiation. Default value: **aes**.'."\n" - .'* **IpsecAuthAlg**: the authentication algorithm that is used in Phase 2 negotiation. Default value: **sha1**.'."\n" - .'* **IpsecPfs**: forwards packets of all protocols. The Diffie-Hellman key exchange algorithm that is used in Phase 2 negotiation. Default value: **group2**.'."\n" - .'* **IpsecLifetime**: the SA lifetime determined by Phase 2 negotiation. Unit: seconds. Valid values: **0** to **86400**. Default value: **86400**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '{"IpsecEncAlg":"aes","IpsecAuthAlg":"sha1","IpsecPfs":"group2","IpsecLifetime":86400}', - ], + 'AK' => [], ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free'], + 'parameters' => [ [ - 'name' => 'PskEnabled', + 'name' => 'ResourceUid', 'in' => 'query', - 'schema' => [ - 'description' => 'Indicates whether pre-shared key authentication is enabled. If you set the value to **true**, pre-shared key authentication is enabled.'."\n" - ."\n" - .'> This parameter is required.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], + 'schema' => ['description' => 'The ID of the Alibaba Cloud account that owns the resource.', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '132193271328****', 'title' => ''], ], [ - 'name' => 'Psk', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => 'The pre-shared key.'."\n" - ."\n" - .'The pre-shared key that is used for authentication between the IPsec-VPN server and the client. It must be 1 to 100 characters in length.'."\n" - ."\n" - .'If you do not specify a pre-shared key, the system randomly generates a 16-bit string as the pre-shared key. You can call [ListIpsecServers](~~2794120~~) to query keys generated by the system.'."\n" - ."\n" - .'> The pre-shared key of the IPsec server key must be the same as that of the client. Otherwise, the connection between the IPsec server and the client cannot be established.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'Cfd123****', - ], + 'schema' => ['description' => 'The client token that is used to ensure the idempotence of the request.'."\n" + ."\n" + .'You can use the client to generate the token, but you must make sure that the token is unique among different requests. The ClientToken parameter supports only ASCII characters.'."\n" + ."\n" + .'> If you do not specify this parameter, the system uses the **RequestId** of the API request as the **ClientToken**. The **RequestId** of each API request may be different.', 'type' => 'string', 'required' => false, 'example' => '123e4567-e89b-12d3-a456-426655440000', 'title' => ''], ], [ - 'name' => 'ClientToken', + 'name' => 'NatGatewayId', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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.'."\n" - ."\n" - .'> 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.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'd7d24a21-f4ba-4454-9173-b38****', - ], + 'schema' => ['title' => '', 'description' => 'The ID of the VPC NAT gateway to query.', 'type' => 'string', 'required' => false, 'example' => 'ngw-bp1uewa15k4iy5770****'], ], [ - 'name' => 'DryRun', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to only precheck this request. Valid values:'."\n" - ."\n" - .'* **true**: prechecks the request without creating the IPsec server. The system checks the required parameters, request format, and service limits. If the request fails to pass the precheck, an error code is returned. If the request passes the precheck, the `DryRunOperation` error code is returned.'."\n" - .'* **false** (default): sends the request. This is the default value. If the request passes the precheck, the system creates the IPsec server.', - 'type' => 'string', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['description' => 'The region ID of the VPC NAT gateway to query.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~448570~~) operation to query the most recent region list.', 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou', 'title' => ''], ], ], 'responses' => [ 200 => [ + 'headers' => [], 'schema' => [ - 'description' => 'The returned results.'."\n", + 'title' => '', + 'description' => 'The request ID.', 'type' => 'object', 'properties' => [ - 'CreationTime' => [ - 'description' => 'The time when the IPsec server was created.'."\n" - ."\n" - .'T is used as a delimiter. Z indicates that the time is in UTC.'."\n", - 'type' => 'string', - 'example' => '2021-02-22T03:24:28Z', - ], - 'IpsecServerId' => [ - 'description' => 'The IPsec server ID.'."\n", - 'type' => 'string', - 'example' => 'iss-bp1jougp8cfsbo8y9****', - ], - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '690A967E-D4CD-4B69-8C78-94FE828BA10B', - ], - 'IpsecServerName' => [ - 'description' => 'The IPsec server name.'."\n", - 'type' => 'string', - 'example' => 'test', - ], - 'VpnGatewayId' => [ - 'description' => 'The ID of the VPN gateway.'."\n", - 'type' => 'string', - 'example' => 'vpn-bp17lofy9fd0dnvzv****', - ], - 'RegionId' => [ - 'description' => 'The ID of the region where the VPN gateway is deployed.'."\n", - 'type' => 'string', - 'example' => 'cn-hangzhou', - ], + 'RequestId' => ['title' => '', 'description' => 'The request ID.', 'type' => 'string', 'example' => '611CB80C-B6A9-43DB-9E38-0B0AC3D9B58F'], + 'Quota' => ['title' => '', 'description' => 'The number of EPs that can be created.', 'type' => 'integer', 'format' => 'int64', 'example' => '2'], ], + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'OperationUnsupported.IPsecServer', - 'errorMessage' => 'The current version of the VPN gateway does not support IPsec server.', - ], - [ - 'errorCode' => 'VpnGateway.SslVpnDisabled', - 'errorMessage' => 'The VPN gateway has not enabled SSL VPN.', - ], - [ - 'errorCode' => 'VpnGateway.Configuring', - 'errorMessage' => 'The specified service is configuring.', - ], - [ - 'errorCode' => 'VpnGateway.FinancialLocked', - 'errorMessage' => 'The specified service is financial locked.', - ], - [ - 'errorCode' => 'OperationFailed.IPsecServerExist', - 'errorMessage' => 'An IPsec server already exists in the VPN gateway.', - ], - [ - 'errorCode' => 'OperationUnsupported.IpsecPfs', - 'errorMessage' => 'The specified IPsec Pfs is unsupported.', - ], - [ - 'errorCode' => 'IllegalParam.AuthMethod', - 'errorMessage' => 'One authentication method (Psk or IDaaS) should be specified at least.', - ], - [ - 'errorCode' => 'IllegalParam.LocalSubnet', - 'errorMessage' => 'The specified "LocalSubnet" (%s) is invalid.', - ], - [ - 'errorCode' => 'IllegalParam.ClientIpPool', - 'errorMessage' => 'The specified ClientIpPool (%s) is invalid.', - ], - [ - 'errorCode' => 'MissingParam.IDaaSInstanceId', - 'errorMessage' => 'The input parameter IDaaSInstanceId is mandatory when enable multi-factor authentication.', - ], - [ - 'errorCode' => 'OperationFailed.NoRamPermission', - 'errorMessage' => 'Vpn Service has no permission to operate your IDaaS instances.', - ], - [ - 'errorCode' => 'ClientIpPool.NetmaskInvalid', - 'errorMessage' => 'The netmask length of client IP pool must be greater than or equal to 16 and less than or equal to 29.', - ], - [ - 'errorCode' => 'VpnRouteEntry.Conflict', - 'errorMessage' => 'The specified client IP pool conflicts with VPN connection or SSL server.', - ], - [ - 'errorCode' => 'ClientIpPool.SubnetInvalid', - 'errorMessage' => 'The specified client IP pool cannot be used.', - ], - [ - 'errorCode' => 'InvalidClientIpPool.Conflict', - 'errorMessage' => 'The specified client IP pool conflicts with other resources in the same VPC.', - ], - [ - 'errorCode' => 'OperationFailed.AddVpcRoute', - 'errorMessage' => 'It is failed to add VPC route after this operation.', - ], - [ - 'errorCode' => 'QuotaExceeded.VpnRouteEntry', - 'errorMessage' => 'The number of route entries to the VPN gateway in the VPC routing table has reached the quota limit.', - ], - [ - 'errorCode' => 'SystemBusy', - 'errorMessage' => 'The system is busy. Please try again later.', - ], - [ - 'errorCode' => 'EnableHaCheck.IpsecServerCidrContainsVpcRouteDest', - 'errorMessage' => 'Ipsec server client cidr contains vpc route prefix. The vpc route prefix is %s.', - ], - [ - 'errorCode' => 'VpnGateway.IPsecServerAndVpnConnectionConflict', - 'errorMessage' => 'The IPSec connection and IPSec server cannot be configured on the same VPN gateway at the same time.', - ], - [ - 'errorCode' => 'EnableHaCheck.SslVpnServerClientCidrContainsVpcRouteDest', - 'errorMessage' => 'Ssl vpn client cidr contains vpc route prefix. The vpc route prefix is %s.', - ], + ['errorCode' => 'OperationDenied.PrivateLinkNotEnabled', 'errorMessage' => 'The NAT gateway is not enable for private link.', 'description' => 'The error message returned because the NAT gateway cannot use PrivateLink.'], ], - 403 => [ - [ - 'errorCode' => 'Forbidden', - 'errorMessage' => 'User not authorized to operate on the specified resource.', - ], + 404 => [ + ['errorCode' => 'ResourceNotFound.NatGateway', 'errorMessage' => 'The NatGateway instance not exist.', 'description' => 'The NAT gateway does not exist.'], ], - [ - [ - 'errorCode' => 'InvalidVpnGatewayInstanceId.NotFound', - 'errorMessage' => 'The specified vpn gateway instance id does not exist.', - ], - [ - 'errorCode' => 'InvalidIDaaSInstanceId.NotFound', - 'errorMessage' => 'The specified IDaaS instance ID does not exist.', - ], + ], + 'title' => 'Query the number of ePs available for reverse access on a VPC NAT gateway', + 'description' => 'Before you call this operation, make sure that you have created a VPC NAT gateway instance. For more information, see [CreateNatGateway](~~2522320~~).', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '1200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'VpcDescribeVpcNatGatewayNetworkInterfaceQuota'], ], - 409 => [ - [ - 'errorCode' => 'OperationConflict', - 'errorMessage' => 'The operation against this instance is too frequent, please try again later.', + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'vpc:VpcDescribeVpcNatGatewayNetworkInterfaceQuota', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'All Resource', 'arn' => '*'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"CreationTime\\": \\"2021-02-22T03:24:28Z\\",\\n \\"IpsecServerId\\": \\"iss-bp1jougp8cfsbo8y9****\\",\\n \\"RequestId\\": \\"690A967E-D4CD-4B69-8C78-94FE828BA10B\\",\\n \\"IpsecServerName\\": \\"test\\",\\n \\"VpnGatewayId\\": \\"vpn-bp17lofy9fd0dnvzv****\\",\\n \\"RegionId\\": \\"cn-hangzhou\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 2021-02-22T03:24:28Z\\n iss-bp1jougp8cfsbo8y9****\\n 690A967E-D4CD-4B69-8C78-94FE828BA10B\\n test\\n vpn-bp17lofy9fd0dnvzv****\\n cn-hangzhou\\n","errorExample":""}]', - 'title' => 'CreateIpsecServer', - 'description' => '* Before you create an IPsec server, you must create a VPN gateway and enable the SSL-VPN feature for the VPN gateway. For more information, see [CreateVpnGateway](~~2794049~~).'."\n" - ."\n" - .'* Before you create an IPsec server, make sure that no IPsec-VPN connection exists on the VPN gateway. For more information, see [DeleteVpnConnection](~~2526948~~).'."\n" - ."\n" - .'* **CreateIpsecServer** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call [DescribeVpnGateway](~~2794055~~) to query the status of the task.'."\n" - ."\n" - .' * If the VPN gateway is in the **updating** state, the IPsec server is being created.'."\n" - .' * If the VPN gateway is in the **active** state, the IPsec server is created.'."\n" - ."\n" - .'* You cannot repeatedly call **CreateIpsecServer** within the specified period of time.'."\n", - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"611CB80C-B6A9-43DB-9E38-0B0AC3D9B58F\\",\\n \\"Quota\\": 2\\n}","type":"json"}]', ], - 'DeleteIpsecServer' => [ - 'summary' => 'Deletes an IPsec server.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'WithdrawVpcPublishedRouteEntries' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'readAndWrite', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'delete', - ], + 'systemTags' => ['operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region where the IPsec server is created.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The region ID of the instance. You can call the DescribeRegions operation to query the region ID.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'IpsecServerId', + 'name' => 'RouteEntries', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => 'The ID of the IPsec server.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'iss-bp1jougp8cfsbo8y9****', + 'description' => 'The list of route entries to withdraw. You can specify up to 50 route entries.', + 'type' => 'array', + 'items' => [ + 'description' => 'The list of route entries to withdraw.', + 'type' => 'object', + 'properties' => [ + 'RouteTableId' => ['description' => 'The route table ID of the route entry.', 'type' => 'string', 'required' => true, 'example' => 'vtb-bp145q7glnuzd****', 'title' => ''], + 'DestinationCidrBlock' => ['description' => 'The destination CIDR block of the route entry.', 'type' => 'string', 'required' => true, 'example' => '10.0.0.0/24', 'title' => ''], + ], + 'required' => false, + 'title' => '', + 'example' => '', + ], + 'required' => false, + 'maxItems' => 50, + 'minItems' => 1, + 'title' => '', + 'example' => '', ], ], [ - 'name' => 'ClientToken', + 'name' => 'TargetType', 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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.'."\n" - ."\n" - .'> 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.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '02fb3da4-130e-11e9-8e44-00****', - ], + 'schema' => ['description' => 'The type of the route publish target.', 'type' => 'string', 'required' => true, 'example' => 'ECR', 'title' => ''], + ], + [ + 'name' => 'TargetInstanceId', + 'in' => 'query', + 'schema' => ['description' => 'The publish route entry target instance ID.', 'type' => 'string', 'required' => true, 'example' => 'ecr-dhw2xsds5****', 'title' => ''], ], [ 'name' => 'DryRun', 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values:'."\n" - ."\n" - .'* **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.'."\n" - .'* **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.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['description' => 'Specifies whether to perform a dry run. Valid values:'."\n" + .'- **true**: performs a dry run without withdrawing the VPC published routing entry. The system checks the required parameters, request format, and business limits. If the check fails, the corresponding error is returned. If the check passes, the error code `DryRunOperation` is returned.'."\n" + .'- **false** (default): sends a Normal request. If the check passes, an HTTP 2xx status code is returned and the operation is performed.', 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'title' => '', + 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '0ED8D006-F706-4D23-88ED-E11ED28DCAC0', - ], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '0ED8D006-F706-4D23-88ED-E11ED28DCAC0', 'title' => ''], ], - 'description' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'VpnGateway.Configuring', - 'errorMessage' => 'The specified service is configuring.', - ], + ['errorCode' => 'IncorrectStatus.Vpc', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => 'The instance is in an invalid state.'], + ['errorCode' => 'ResourceNotFound.RouteEntry', 'errorMessage' => 'The specified resource routeEntry is not found.', 'description' => 'The specified route entry does not exist'], + ['errorCode' => 'IncorrectStatus.RouteEntry', 'errorMessage' => 'The status of %s [%s] is incorrect.', 'description' => 'Route entry is in non-steady state'], + ['errorCode' => 'IncorrectStatus.RouteEntryPublishStatus', 'errorMessage' => 'Route entry publish status is incorrect.', 'description' => 'The route publish status of the route entry is incorrect.'], + ['errorCode' => 'Forbidden.OperateCustomRouteTable', 'errorMessage' => 'The operation is forbidden because publish route entry in custom route table.', 'description' => 'The operation is prohibited because it is not allowed to publish route entries in the custom route table.'], + ['errorCode' => 'ResourceNotAssociated.TargetInstance', 'errorMessage' => 'The target instance is not associated with vpc.', 'description' => ''], + ['errorCode' => 'OperationDenied.UnsupportedTargetType', 'errorMessage' => 'The operation is not allowed because the target type is not supported.', 'description' => 'The operation was rejected because the type of the route publication target is not currently supported.'], + ['errorCode' => 'IncorrectStatus.RouteTable', 'errorMessage' => 'The route table is in an invalid state.', 'description' => 'The specified routing table is in the wrong state'], + ['errorCode' => 'OperationUnsupported.PublishSystemRouteEntry', 'errorMessage' => 'Publishing system route entry is unsupported.', 'description' => 'Publishing system routes is not supported.'], + ['errorCode' => 'OperationUnsupported.UnsupportedNextHop', 'errorMessage' => 'Unsupported nexthop type for route entry publish operation.', 'description' => 'The next hop type of the route entry does not support publishing.'], + ['errorCode' => 'OperationUnsupported.PublishPrefixListRouteEntry', 'errorMessage' => 'Publishing prefix list route entry is unsupported.', 'description' => 'Publishing route prefix list routes is not supported.'], + ['errorCode' => 'MissingParam.RouteEntries', 'errorMessage' => 'The parameter RouteEntries is missing.', 'description' => 'Missing parameter RouteEntries'], + ['errorCode' => 'InvalidRouteTableId.NotFound', 'errorMessage' => 'Specified route table does not exist.', 'description' => ''], ], - 403 => [ - [ - 'errorCode' => 'Forbidden', - 'errorMessage' => 'User not authorized to operate on the specified resource.', - ], + ], + 'title' => 'Withdraw VPC published route entry', + 'summary' => 'Withdraws a VPC published routing entry.', + 'changeSet' => [ + ['createdAt' => '2025-03-03T12:54:15.000Z', 'description' => 'Error codes changed'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '600', 'countWindow' => 60, 'regionId' => '*', 'api' => 'WithdrawVpcPublishedRouteEntries'], ], + 'product' => ['code' => 'expressconnect', 'title' => '高速通道'], + ], + 'ramActions' => [ [ - [ - 'errorCode' => 'InvalidIpsecServerId.NotFound', - 'errorMessage' => 'The specified IPsec server ID (%s) does not exist.', - ], - ], - 409 => [ - [ - 'errorCode' => 'OperationConflict', - 'errorMessage' => 'The operation against this instance is too frequent, please try again later.', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:WithdrawVpcPublishedRouteEntries', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'RouteTable', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:routetable/{#RouteTableId}'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"0ED8D006-F706-4D23-88ED-E11ED28DCAC0\\"\\n}","errorExample":""},{"type":"xml","example":"\\r\\n0ED8D006-F706-4D23-88ED-E11ED28DCAC0\\r\\n","errorExample":""}]', - 'title' => 'DeleteIpsecServer', - 'description' => '* **DeleteIpsecServer** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call [DescribeVpnGateway](~~2794055~~) to query the status of the task.'."\n" - ."\n" - .' * If the VPN gateway is in the **updating** state, the IPsec server is being deleted.'."\n" - .' * If the VPN gateway is in the **active** state, the IPsec server is deleted.'."\n" - ."\n" - .'* You cannot call **DeleteIpsecServer** within the specified period of time.'."\n", - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"0ED8D006-F706-4D23-88ED-E11ED28DCAC0\\"\\n}","type":"json"}]', ], - 'UpdateIpsecServer' => [ - 'summary' => 'Modifies the configuration of an IPsec server.', - 'methods' => [ - 'post', - 'get', + ], + 'endpoints' => [ + ['regionId' => 'cn-beijing', 'regionName' => 'China (Beijing)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'vpc.cn-beijing.aliyuncs.com', 'endpoint' => 'vpc.cn-beijing.aliyuncs.com', 'vpc' => 'vpc-vpc.cn-beijing.aliyuncs.com'], + ['regionId' => 'cn-zhengzhou-jva', 'regionName' => 'Zhengzhou (China Unicom Joint Venture)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'vpc.cn-zhengzhou-jva.aliyuncs.com', 'endpoint' => 'vpc.cn-zhengzhou-jva.aliyuncs.com', 'vpc' => 'vpc-vpc.cn-zhengzhou-jva.aliyuncs.com'], + ['regionId' => 'cn-heyuan', 'regionName' => 'China (Heyuan)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'vpc.cn-heyuan.aliyuncs.com', 'endpoint' => 'vpc.cn-heyuan.aliyuncs.com', 'vpc' => 'vpc-vpc.cn-heyuan.aliyuncs.com'], + ['regionId' => 'cn-zhangjiakou', 'regionName' => 'China (Zhangjiakou)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'vpc.cn-zhangjiakou.aliyuncs.com', 'endpoint' => 'vpc.cn-zhangjiakou.aliyuncs.com', 'vpc' => 'vpc-vpc.cn-zhangjiakou.aliyuncs.com'], + ['regionId' => 'ap-northeast-2', 'regionName' => 'South Korea (Seoul)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'vpc.ap-northeast-2.aliyuncs.com', 'endpoint' => 'vpc.ap-northeast-2.aliyuncs.com', 'vpc' => 'vpc-vpc.ap-northeast-2.aliyuncs.com'], + ['regionId' => 'ap-northeast-1', 'regionName' => 'Japan (Tokyo)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'vpc.ap-northeast-1.aliyuncs.com', 'endpoint' => 'vpc.ap-northeast-1.aliyuncs.com', 'vpc' => 'vpc-vpc.ap-northeast-1.aliyuncs.com'], + ['regionId' => 'ap-southeast-1', 'regionName' => 'Singapore', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'vpc.ap-southeast-1.aliyuncs.com', 'endpoint' => 'vpc.ap-southeast-1.aliyuncs.com', 'vpc' => 'vpc-vpc.ap-southeast-1.aliyuncs.com'], + ['regionId' => 'ap-southeast-3', 'regionName' => 'Malaysia (Kuala Lumpur)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'vpc.ap-southeast-3.aliyuncs.com', 'endpoint' => 'vpc.ap-southeast-3.aliyuncs.com', 'vpc' => 'vpc-vpc.ap-southeast-3.aliyuncs.com'], + ['regionId' => 'ap-southeast-5', 'regionName' => 'Indonesia (Jakarta)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'vpc.ap-southeast-5.aliyuncs.com', 'endpoint' => 'vpc.ap-southeast-5.aliyuncs.com', 'vpc' => 'vpc-vpc.ap-southeast-5.aliyuncs.com'], + ['regionId' => 'ap-southeast-6', 'regionName' => 'Philippines (Manila)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'vpc.ap-southeast-6.aliyuncs.com', 'endpoint' => 'vpc.ap-southeast-6.aliyuncs.com', 'vpc' => 'vpc-vpc.ap-southeast-6.aliyuncs.com'], + ['regionId' => 'ap-southeast-7', 'regionName' => 'Thailand (Bangkok)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'vpc.ap-southeast-7.aliyuncs.com', 'endpoint' => 'vpc.ap-southeast-7.aliyuncs.com', 'vpc' => 'vpc-vpc.ap-southeast-7.aliyuncs.com'], + ['regionId' => 'ap-southeast-8', 'regionName' => 'Malaysia (Johor)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'vpc.ap-southeast-8.aliyuncs.com', 'endpoint' => 'vpc.ap-southeast-8.aliyuncs.com', 'vpc' => 'vpc-vpc.ap-southeast-8.aliyuncs.com'], + ['regionId' => 'cn-zhongwei', 'regionName' => 'China (Zhongwei)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'vpc.cn-zhongwei.aliyuncs.com', 'endpoint' => 'vpc.cn-zhongwei.aliyuncs.com', 'vpc' => 'vpc-vpc.cn-zhongwei.aliyuncs.com'], + ['regionId' => 'cn-wulanchabu', 'regionName' => 'China (Ulanqab)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'vpc.cn-wulanchabu.aliyuncs.com', 'endpoint' => 'vpc.cn-wulanchabu.aliyuncs.com', 'vpc' => 'vpc-vpc.cn-wulanchabu.aliyuncs.com'], + ['regionId' => 'cn-qingdao', 'regionName' => 'China (Qingdao)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'vpc.cn-qingdao.aliyuncs.com', 'endpoint' => 'vpc.cn-qingdao.aliyuncs.com', 'vpc' => 'vpc-vpc.cn-qingdao.aliyuncs.com'], + ['regionId' => 'cn-wuhan-lr', 'regionName' => 'China (Wuhan - Local Region)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'vpc.cn-wuhan-lr.aliyuncs.com', 'endpoint' => 'vpc.cn-wuhan-lr.aliyuncs.com', 'vpc' => 'vpc-vpc.cn-wuhan-lr.aliyuncs.com'], + ['regionId' => 'cn-shanghai', 'regionName' => 'China (Shanghai)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'vpc.cn-shanghai.aliyuncs.com', 'endpoint' => 'vpc.cn-shanghai.aliyuncs.com', 'vpc' => 'vpc-vpc.cn-shanghai.aliyuncs.com'], + ['regionId' => 'cn-hongkong', 'regionName' => 'China (Hong Kong)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'vpc.cn-hongkong.aliyuncs.com', 'endpoint' => 'vpc.cn-hongkong.aliyuncs.com', 'vpc' => 'vpc-vpc.cn-hongkong.aliyuncs.com'], + ['regionId' => 'cn-shenzhen', 'regionName' => 'China (Shenzhen)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'vpc.cn-shenzhen.aliyuncs.com', 'endpoint' => 'vpc.cn-shenzhen.aliyuncs.com', 'vpc' => 'vpc-vpc.cn-shenzhen.aliyuncs.com'], + ['regionId' => 'cn-nanjing', 'regionName' => 'China (Nanjing - Local Region)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'vpc.cn-nanjing.aliyuncs.com', 'endpoint' => 'vpc.cn-nanjing.aliyuncs.com', 'vpc' => 'vpc-vpc.cn-nanjing.aliyuncs.com'], + ['regionId' => 'cn-fuzhou', 'regionName' => 'China (Fuzhou - Local Region)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'vpc.cn-fuzhou.aliyuncs.com', 'endpoint' => 'vpc.cn-fuzhou.aliyuncs.com', 'vpc' => 'vpc-vpc.cn-fuzhou.aliyuncs.com'], + ['regionId' => 'cn-chengdu', 'regionName' => 'China (Chengdu)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'vpc.cn-chengdu.aliyuncs.com', 'endpoint' => 'vpc.cn-chengdu.aliyuncs.com', 'vpc' => 'vpc-vpc.cn-chengdu.aliyuncs.com'], + ['regionId' => 'cn-guangzhou', 'regionName' => 'China (Guangzhou)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'vpc.cn-guangzhou.aliyuncs.com', 'endpoint' => 'vpc.cn-guangzhou.aliyuncs.com', 'vpc' => 'vpc-vpc.cn-guangzhou.aliyuncs.com'], + ['regionId' => 'cn-huhehaote', 'regionName' => 'China (Hohhot)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'vpc.cn-huhehaote.aliyuncs.com', 'endpoint' => 'vpc.cn-huhehaote.aliyuncs.com', 'vpc' => 'vpc-vpc.cn-huhehaote.aliyuncs.com'], + ['regionId' => 'cn-hangzhou', 'regionName' => 'China (Hangzhou)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'vpc.cn-hangzhou.aliyuncs.com', 'endpoint' => 'vpc.cn-hangzhou.aliyuncs.com', 'vpc' => 'vpc-vpc.cn-hangzhou.aliyuncs.com'], + ['regionId' => 'us-southeast-1', 'regionName' => 'US(Atlanta)', 'areaId' => 'europeAmerica', 'areaName' => 'Europe & Americas', 'public' => 'vpc.us-southeast-1.aliyuncs.com', 'endpoint' => 'vpc.us-southeast-1.aliyuncs.com', 'vpc' => 'vpc-vpc.us-southeast-1.aliyuncs.com'], + ['regionId' => 'eu-west-1', 'regionName' => 'UK (London)', 'areaId' => 'europeAmerica', 'areaName' => 'Europe & Americas', 'public' => 'vpc.eu-west-1.aliyuncs.com', 'endpoint' => 'vpc.eu-west-1.aliyuncs.com', 'vpc' => 'vpc-vpc.eu-west-1.aliyuncs.com'], + ['regionId' => 'eu-west-2', 'regionName' => 'France (Paris)', 'areaId' => 'europeAmerica', 'areaName' => 'Europe & Americas', 'public' => 'vpc.eu-west-2.aliyuncs.com', 'endpoint' => 'vpc.eu-west-2.aliyuncs.com', 'vpc' => 'vpc-vpc.eu-west-2.aliyuncs.com'], + ['regionId' => 'eu-central-1', 'regionName' => 'Germany (Frankfurt)', 'areaId' => 'europeAmerica', 'areaName' => 'Europe & Americas', 'public' => 'vpc.eu-central-1.aliyuncs.com', 'endpoint' => 'vpc.eu-central-1.aliyuncs.com', 'vpc' => 'vpc-vpc.eu-central-1.aliyuncs.com'], + ['regionId' => 'us-east-1', 'regionName' => 'US (Virginia)', 'areaId' => 'europeAmerica', 'areaName' => 'Europe & Americas', 'public' => 'vpc.us-east-1.aliyuncs.com', 'endpoint' => 'vpc.us-east-1.aliyuncs.com', 'vpc' => 'vpc-vpc.us-east-1.aliyuncs.com'], + ['regionId' => 'us-west-1', 'regionName' => 'US (Silicon Valley)', 'areaId' => 'europeAmerica', 'areaName' => 'Europe & Americas', 'public' => 'vpc.us-west-1.aliyuncs.com', 'endpoint' => 'vpc.us-west-1.aliyuncs.com', 'vpc' => 'vpc-vpc.us-west-1.aliyuncs.com'], + ['regionId' => 'na-south-1', 'regionName' => 'Mexico', 'areaId' => 'europeAmerica', 'areaName' => 'Europe & Americas', 'public' => 'vpc.na-south-1.aliyuncs.com', 'endpoint' => 'vpc.na-south-1.aliyuncs.com', 'vpc' => 'vpc-vpc.na-south-1.aliyuncs.com'], + ['regionId' => 'me-east-1', 'regionName' => 'UAE (Dubai)', 'areaId' => 'middleEast', 'areaName' => 'Middle East', 'public' => 'vpc.me-east-1.aliyuncs.com', 'endpoint' => 'vpc.me-east-1.aliyuncs.com', 'vpc' => 'vpc-vpc.me-east-1.aliyuncs.com'], + ['regionId' => 'me-central-1', 'regionName' => 'Saudi Arabia (Riyadh)', 'areaId' => 'middleEast', 'areaName' => 'Middle East', 'public' => 'vpc.me-central-1.aliyuncs.com', 'endpoint' => 'vpc.me-central-1.aliyuncs.com', 'vpc' => 'vpc-vpc.me-central-1.aliyuncs.com'], + ['regionId' => 'cn-shenzhen-finance-1', 'regionName' => 'China South 1 Finance', 'areaId' => 'industryCloud', 'areaName' => 'Industry Cloud', 'public' => 'vpc.cn-shenzhen-finance-1.aliyuncs.com', 'endpoint' => 'vpc.cn-shenzhen-finance-1.aliyuncs.com', 'vpc' => 'vpc-vpc.cn-shenzhen-finance-1.aliyuncs.com'], + ['regionId' => 'cn-beijing-finance-1', 'regionName' => 'China North 2 Finance (Preview)', 'areaId' => 'industryCloud', 'areaName' => 'Industry Cloud', 'public' => 'vpc.cn-beijing-finance-1.aliyuncs.com', 'endpoint' => 'vpc.cn-beijing-finance-1.aliyuncs.com', 'vpc' => 'vpc-vpc.cn-beijing-finance-1.aliyuncs.com'], + ['regionId' => 'cn-shanghai-finance-1', 'regionName' => 'China East 2 Finance', 'areaId' => 'industryCloud', 'areaName' => 'Industry Cloud', 'public' => 'vpc.cn-shanghai-finance-1.aliyuncs.com', 'endpoint' => 'vpc.cn-shanghai-finance-1.aliyuncs.com', 'vpc' => 'vpc-vpc.cn-shanghai-finance-1.aliyuncs.com'], + ['regionId' => 'cn-heyuan-acdr-1', 'regionName' => 'Heyuan ACDR Auto', 'areaId' => 'industryCloud', 'areaName' => 'Industry Cloud', 'public' => 'vpc.cn-heyuan-acdr-1.aliyuncs.com', 'endpoint' => 'vpc.cn-heyuan-acdr-1.aliyuncs.com', 'vpc' => 'vpc-vpc.cn-heyuan-acdr-1.aliyuncs.com'], + ], + 'errorCodes' => [ + ['code' => 'Abs.InstanceNotExist', 'message' => 'The specified instance does not exist.', 'http_code' => 400, 'description' => 'The specified instance does not exist.'], + ['code' => 'Abs.InvalidBillingPeriod', 'message' => 'The specified billing period is invalid.', 'http_code' => 400, 'description' => 'The specified billing period is invalid.'], + ['code' => 'Abs.InvalidBillingType', 'message' => 'The specified billing type is invalid.', 'http_code' => 400, 'description' => 'The specified billing type is invalid.'], + ['code' => 'Abs.InvaliTableName.Malformed', 'message' => 'Table name format is invalid.', 'http_code' => 400, 'description' => 'The new name of the route table is invalid.'], + ['code' => 'Abs.Vpc.InnerServiceFailed', 'message' => 'Call inner service failed.', 'http_code' => 500, 'description' => 'Failed to call the internal service. Try again later.'], + ['code' => 'Abs.Vpc.InvalidName.Malformed', 'message' => 'The specified Name is not valid.', 'http_code' => 400, 'description' => 'The specified Name is invalid.'], + ['code' => 'ACCESS.DEVICE.NOT.ALLOW.WITHOUT.SP', 'message' => 'Access device not allow direct enable physical connection', 'http_code' => 400, 'description' => 'The access device is not allowed to use a physical port.'], + ['code' => 'AccessPoint.NotFound', 'message' => 'The input access point does not exist or does not have permission to view it.', 'http_code' => 400, 'description' => 'The input access point does not exist or does not have permission to view it.'], + ['code' => 'AccountBalanceForVpn.NotFull', 'message' => 'The user\'s account balance for purchasing the VPN is insufficient.', 'http_code' => 400, 'description' => 'The user\'s account balance for purchasing the VPN is insufficient.'], + ['code' => 'AccountMoneyValidateError', 'message' => 'The available amount of the account is insufficient.', 'http_code' => 400, 'description' => 'The account does not have sufficient balance.'], + ['code' => 'ACCOUNT_BALANCE_EXCEEDED', 'message' => 'User attempted to create a new order.but user account balance is insufficient.', 'http_code' => 400, 'description' => 'User attempted to create a new order.but user account balance is insufficient.'], + ['code' => 'ALIUID.NOT.ALLOW.WITHOUT.SP', 'message' => 'AliUid not allow direct enable physical connection', 'http_code' => 400, 'description' => 'You are not allowed to use a physical port when you use an Alibaba Cloud UID.'], + ['code' => 'AllocateIpFailed', 'message' => 'Alloc bandwidthPackage ips failed', 'http_code' => null, 'description' => 'An error occurred while allocating a public IP address for the EIP bandwidth plan.'], + ['code' => 'AnotherJobTesting', 'message' => 'There is another job which is testing.', 'http_code' => 400, 'description' => 'The same user can only perform one fault drill task in the same region at the same time.'], + ['code' => 'ARREARAGE', 'message' => null, 'http_code' => null, 'description' => 'The specified account has overdue payments.'], + ['code' => 'AttrMismatching.BandwidthPackageIpVersion', 'message' => 'The IpVersion of the IpInstance does not match the IpVersion of the BandwidthPackage.', 'http_code' => 400, 'description' => 'The IpVersion of the EIP instance does not match that of the Internet Shared Bandwidth instance.'], + ['code' => 'AttrMismatching.VpcDhcpOptionsSetId', 'message' => 'The dhcpOptionsSetId does not match the VPC.', 'http_code' => 400, 'description' => 'The ID of the DHCP options set does not match the VPC. Check whether the specified DHCP options set is associated with the VPC.'], + ['code' => 'AUTH.RAM_AUTH_FAILED', 'message' => null, 'http_code' => null, 'description' => 'An error occurred while verifying the RAM account identity.'], + ['code' => 'AvailableZoneNotExist', 'message' => 'Available zone not exist.', 'http_code' => 400, 'description' => 'The zone does not exist.'], + ['code' => 'BandwidthPackage.FinancialLocked', 'message' => 'The specified BandwidthPackage has been Financail Lock.', 'http_code' => null, 'description' => 'The specified bandwidth plan is locked due to overdue payments.'], + ['code' => 'BandwidthPackage.QuotaExceeded', 'message' => null, 'http_code' => null, 'description' => 'The number of EIP bandwidth plans exceeds the upper limit.'], + ['code' => 'BandwidthPackageId.InvalidBandwidth', 'message' => 'You cannot add the hybrid cloud EIP to the bandwidth package. The bandwidth of the bandwidth package is lower than the EIP bandwidth.', 'http_code' => 400, 'description' => 'You cannot associate an EIP in hybrid cloud mode with an EIP bandwidth plan that provides low bandwidth.'], + ['code' => 'BandwidthPackageId.InvalidBizStatus', 'message' => null, 'http_code' => null, 'description' => 'The EIP bandwidth plan is locked due to overdue payments.'], + ['code' => 'BandwidthPackageId.InvalidBizStatus', 'message' => 'The specified bandwidth package has an outstanding balance and has been locked. You cannot add any IP address.', 'http_code' => 400, 'description' => 'The specified bandwidth package has an outstanding balance and has been locked. You cannot add any IP address.'], + ['code' => 'BandwidthPackageOperation.conflict', 'message' => 'BandwidthPackage operation conflict', 'http_code' => null, 'description' => 'The operation on the EIP bandwidth plan conflicts with another operation.'], + ['code' => 'BindInstanceHasBandwidth', 'message' => 'The specified bind instance has bandwidth.', 'http_code' => 400, 'description' => 'The specified bound instance already has bandwidth.'], + ['code' => 'BIND_INSTANCE_HAVE_PORTMAP_OR_BIND_EIP', 'message' => 'The instance may have portMap or already bind eip.', 'http_code' => 400, 'description' => 'The ECS instance already has a port forwarding rule (DNAT). Delete the corresponding port forwarding rule before performing the operation.'], + ['code' => 'BIND_INSTANCE_OWENER_ERROR', 'message' => 'Cannot operate the eip.', 'http_code' => null, 'description' => 'You are unauthorized to manage the specified EIP.'], + ['code' => 'BothEmpty.TagsAndResources', 'message' => 'The specified Tags and ResourcesIds are not allow to both empty.', 'http_code' => 400, 'description' => 'The tags and resource groups cannot be empty at the same time.'], + ['code' => 'BothEmptyParam.GatewayRouteTableIdAndIpv4GatewayRouteTableId', 'message' => 'The parameter GatewayRouteTableId and Ipv4GatewayRouteTableId cannot be empty at the same time. We recommend that you use GatewayRouteTableId.', 'http_code' => 400, 'description' => 'The parameter GatewayRouteTableId and Ipv4GatewayRouteTableId cannot be empty at the same time. We recommend that you use GatewayRouteTableId.'], + ['code' => 'BothEmptyParam.Ipv6AddressIdAndIpv6InternetBandwidthId', 'message' => 'Either %s or %s should be specified.', 'http_code' => 400, 'description' => 'You cannot leave both Ipv6InstanceId and Ipv6InternetBandwidthId empty.'], + ['code' => 'BothEmptyParam.Ipv6AddressIdAndIpv6InternetBandwidthId', 'message' => 'Either Ipv6AddressId or Ipv6InternetBandwidthId should be specified.', 'http_code' => 400, 'description' => 'Input Ipv6AddressId and Ipv6InternetBandwidthId cannot be empty at the same time'], + ['code' => 'CashBookInsufficient', 'message' => 'No payment method is specified for your account or prepayment balance is insufficient.', 'http_code' => 400, 'description' => 'The error message returned because your account does not have a payment method configured or does not have sufficient balance.'], + ['code' => 'ClientIpPool.NetmaskInvalid', 'message' => 'The netmask length of client IP pool must be greater than or equal to 16 and less than or equal to 29.', 'http_code' => 400, 'description' => 'The subnet mask of the client IP pool must range from 16 to 29.'], + ['code' => 'ClientIpPool.SubnetInvalid', 'message' => 'The specified client IP pool cannot be used.', 'http_code' => 400, 'description' => 'The client CIDR block is unavailable.'], + ['code' => 'COMMODITY.INVALID_COMPONENT', 'message' => null, 'http_code' => null, 'description' => 'The specified instance component is invalid. Check the specified instance component.'], + ['code' => 'COMMODITY.INVALID_COMPONENT', 'message' => 'The instance component is invalid.', 'http_code' => 400, 'description' => 'The instance component is invalid.'], + ['code' => 'Conflict.CidrReservationMaskAndCidrReservationCidr', 'message' => 'The specified VSwitchCidrReservationMask and VSwitchCidrReservationCidr is conflict.', 'http_code' => 400, 'description' => 'The VSwitchCidrReservationMask value conflicts with the VSwitchCidrReservationCidr value. Adjust the values and try again.'], + ['code' => 'CountLimitExceed.HaVipInVpc', 'message' => 'Specified Vpc exceeds the quota of max number of ha-vip count.', 'http_code' => null, 'description' => 'The number of HAVIPs in the VPC has reached the upper limit.'], + ['code' => 'CountLimitExceed.HaVipOnInstance', 'message' => 'The amount of HaVip associated with the specified Instance reach its limits.', 'http_code' => 400, 'description' => 'The number of HAVIPs has reached the upper limit.'], + ['code' => 'CountLimitExceed.HaVipRouteEntry', 'message' => 'There can be 5 route entry to HaVip at most in one route table.', 'http_code' => 400, 'description' => 'The number of route entries that point to the HAVIP has reached the upper limit.'], + ['code' => 'CountLimitExceed.HaVipRouteEntry', 'message' => 'The count of route entry to HaVip in one route table is exceeded.', 'http_code' => 400, 'description' => 'The number of routes that point to the HAVIP in a route table exceeds the upper limit.'], + ['code' => 'CountLimitExceeded.AssociatedGlobalAccelerationInstanceOnBackendServer', 'message' => 'The count of GlobalAccelerationInstances can be associated on one BackendServer has reach the limit .', 'http_code' => null, 'description' => 'The number of GA instances associated with a backend server instance reaches the upper limit.'], + ['code' => 'CountLimitExceeded.HaVipOnECSInstance', 'message' => 'The amount of Instance associated with the specified HaVip reach its limits.', 'http_code' => 400, 'description' => 'The number of HAVIPs has reached the upper limit.'], + ['code' => 'CreateDbrRoutesQuotaFull.QuotaFull', 'message' => 'The number of created destination routes exceeds the quota limit.', 'http_code' => 400, 'description' => 'The number of created destination routes exceeds the quota limit.'], + ['code' => 'CreateOrderFailed', 'message' => null, 'http_code' => null, 'description' => 'The system failed to create the order.'], + ['code' => 'CreatePbrRoutesQuotaFull.QuotaFull', 'message' => 'The number of policy routes exceeds the quota limit.', 'http_code' => 400, 'description' => 'The number of policy routes exceeds the quota limit.'], + ['code' => 'CreateSslCertsQuotaFull.QuotaFull', 'message' => 'Create the number of SSL certificates that exceed the quota limit.', 'http_code' => 400, 'description' => 'Create the number of SSL certificates that exceed the quota limit.'], + ['code' => 'CreateVpnConnectionsQuotaFull.QuotaFull', 'message' => 'The number of VPN connections exceeds the quota limit.', 'http_code' => 400, 'description' => 'The number of VPN connections exceeds the quota limit.'], + ['code' => 'CreateVpnUserGatewayQuotaFull.QuotaFull', 'message' => 'The number of created VPN customer gateways exceeds the quota.', 'http_code' => 400, 'description' => 'The number of created VPN customer gateways exceeds the quota.'], + ['code' => 'CreateVSwitch.IncorrectStatus.cbnStatus', 'message' => 'Current CBN status does not support this operation.', 'http_code' => 400, 'description' => 'You cannot create a vSwitch when the CEN instance is in the current state.'], + ['code' => 'CreditPayInsufficientBalance', 'message' => 'The balance is insufficient, please contact your channel partner to increase the balance', 'http_code' => 400, 'description' => 'The quota is insufficient. Contact your partner to increase the quota.'], + ['code' => 'CrossAccountAuthorizedVco.NotAllowDelete', 'message' => 'Current vpn connection is cross account authorized to cen, should delete cross account authorization first.', 'http_code' => 400, 'description' => 'the current vpn connection instance is cross-account authorized to the cen of another account. you need to cancel the cross-account authorization before deleting the instance.'], + ['code' => 'CROSS_BID.FORBIDDEN', 'message' => 'Connect RouterInterface across bid is illegal', 'http_code' => null, 'description' => 'The cross-BID connection is invalid.'], + ['code' => 'CROSS_BID.FORBIDDEN', 'message' => 'Create VBR across bid is illegal', 'http_code' => 404, 'description' => 'You are not allowed to create a VBR for another Alibaba Cloud account.'], + ['code' => 'CustomerGateway.ConflictRouteEntry', 'message' => 'The specified customer gateway has conflict with route entry.', 'http_code' => 400, 'description' => 'The customer gateway conflicts with the current routes.'], + ['code' => 'CustomerGateway.ConflictVpnIp', 'message' => 'The customer gateway associated with the IPSec connection should not have the same IP address as the VPN gateway.', 'http_code' => 400, 'description' => 'The customer gateway and VPN gateway of an IPsec-VPN connection cannot use the same IP address.'], + ['code' => 'DeleteVSwitch.IncorrectStatus.cbnStatus', 'message' => 'Current CBN status does not support this operation.', 'http_code' => 400, 'description' => 'You cannot delete the vSwitch when the CEN instance is in the current state.'], + ['code' => 'DeletionProtection.AlreadyEnabled', 'message' => 'The resource deletion protection is already enabled.', 'http_code' => 400, 'description' => 'Deletion protection is enabled.'], + ['code' => 'DeletionProtection.NotExist', 'message' => 'The resource deletion protection is not found', 'http_code' => 404, 'description' => 'Deletion protection is disabled.'], + ['code' => 'DeletionProtection.OwnerError', 'message' => 'The resource owner error.', 'http_code' => 400, 'description' => 'The operation is not allowed because the resource does not belong to you.'], + ['code' => 'DeletionProtection.PrePaidNotSupport', 'message' => 'The prepaid resource is not support.', 'http_code' => 400, 'description' => 'Subscription resources are not supported.'], + ['code' => 'DeletionProtection.ResourceNotExist', 'message' => 'The resource is not exist.', 'http_code' => 400, 'description' => 'The resource does not exist.'], + ['code' => 'DeletionProtection.TypeNotSupport', 'message' => 'The resource is not support.', 'http_code' => 400, 'description' => 'This type of resource is not supported.'], + ['code' => 'DependencyViolation', 'message' => 'Resources deployed in the vSwitch have not been deleted.', 'http_code' => 400, 'description' => 'Failed to delete the vSwitch because resources attached to the vSwitch are not released.'], + ['code' => 'DependencyViolation', 'message' => 'Some route entry status blocked this operation.', 'http_code' => null, 'description' => 'The operation is not supported because the route table contains routes in the Pending or Modifying state.'], + ['code' => 'DependencyViolation.%s', 'message' => 'The specified resource of [%s] depends on [%s], so the operation cannot be completed.', 'http_code' => 400, 'description' => 'The specified resource of [%s] depends on [%s], so the operation cannot be completed.'], + ['code' => 'DependencyViolation.AppAccess', 'message' => 'Specified object has dependent resources app access.', 'http_code' => 400, 'description' => 'The VPC has a reverse access and cannot be deleted.'], + ['code' => 'DependencyViolation.Association', 'message' => 'The specified resource of [%s] depends on [%s], so the operation cannot be completed.', 'http_code' => 400, 'description' => 'The resource of the operation has dependencies. Please disassociate them first.'], + ['code' => 'DependencyViolation.BandwidthPackages', 'message' => 'There are BandwidthPackages on specified NatGateway not deleted.', 'http_code' => null, 'description' => 'NAT service plans are associated with the NAT gateway. Disassociate the NAT service plans from the NAT gateway and try again.'], + ['code' => 'DependencyViolation.BgpGroup', 'message' => 'bgp group exists, cannot delete vbr.', 'http_code' => 400, 'description' => 'The VBR is associated with a BGP group and cannot be deleted.'], + ['code' => 'DependencyViolation.BgpNetwork', 'message' => 'bgp network exists, cannot delete vbr.', 'http_code' => 400, 'description' => 'You cannot delete the VBR because the VBR has advertised BGP CIDR blocks.'], + ['code' => 'DependencyViolation.BgpPeer', 'message' => 'Specified object has dependent resources bgp peer.', 'http_code' => 404, 'description' => 'A dependent BGP peer exists.'], + ['code' => 'DependencyViolation.CloudService', 'message' => 'VSwitch cannot be deleted when uesd by cloud service.', 'http_code' => 400, 'description' => 'The error message returned because the vSwitch is being used by a cloud service and cannot be deleted. Check the use scenario of the cloud service.'], + ['code' => 'DependencyViolation.CloudServiceResource', 'message' => 'The VPC contains CloudServiceResource and cannot be deleted.', 'http_code' => 400, 'description' => 'The VPC cannot be deleted because it contains EPS resources.'], + ['code' => 'DependencyViolation.CustomRouteTable', 'message' => 'CustomRouteTable already exists.', 'http_code' => 400, 'description' => 'A dependency conflict exists because custom route tables are present.'], + ['code' => 'DependencyViolation.DhcpOptionsSet', 'message' => 'The VPC cannot be deleted when it is associated with dhcpOptionsSet.', 'http_code' => 400, 'description' => 'The VPC cannot be deleted when it is associated with dhcpOptionsSet.'], + ['code' => 'DependencyViolation.EgressRules', 'message' => 'The specified resource of %s depends on %s, so the operation cannot be completed.', 'http_code' => 400, 'description' => 'The specified resource is dependent on other resources and the current operation is not allowed.'], + ['code' => 'DependencyViolation.EIPS', 'message' => null, 'http_code' => null, 'description' => 'The specified NAT gateway is already associated with an EIP.'], + ['code' => 'DependencyViolation.EIPS', 'message' => 'There are Eips on specified NatGateway, please unbind it first.', 'http_code' => 400, 'description' => 'An EIP is associated with the NAT gateway. Disassociate the EIP from the NAT gateway first.'], + ['code' => 'DependencyViolation.EnhancedNatgw', 'message' => 'VSwitch cannot be deleted when natgw exist.', 'http_code' => 400, 'description' => 'You cannot delete the vSwitch because a NAT gateway exists in the vSwitch.'], + ['code' => 'DependencyViolation.ForwardEntry', 'message' => 'The ip has been used by ForwardEntry.', 'http_code' => null, 'description' => 'One or more specified public IP addresses are used by port forwarding rules. Delete the rules before you call this operation.'], + ['code' => 'DependencyViolation.ForwardEntry', 'message' => 'The specified BandwidthPackageId has dependent resource.', 'http_code' => 400, 'description' => 'The NAT service plan is associated with SNAT or DNAT entries. Delete them and try again.'], + ['code' => 'DependencyViolation.FullNatEntry', 'message' => 'The fullnat entry depends on this nat ip,so the operation cannot be completed.', 'http_code' => 400, 'description' => 'The operation failed because the FULLNAT entry depends on the NAT IP.'], + ['code' => 'DependencyViolation.GatewayEndpoint', 'message' => 'The VPC contains endpoints and cannot be deleted.', 'http_code' => 400, 'description' => 'The VPC contains endpoints and cannot be deleted. Delete the endpoints in the VPC and then delete the VPC.'], + ['code' => 'DependencyViolation.GatewayRouteTableRelation', 'message' => 'The specified resource of %s depends on %s, so the operation cannot be completed.', 'http_code' => 400, 'description' => 'The specified resource is dependent on other resources and the current operation is not allowed.'], + ['code' => 'DependencyViolation.GreTunnel', 'message' => 'There is Gre tunnel on specified vpn gateway not deleted.', 'http_code' => 400, 'description' => 'The error message returned because GRE tunnels are not deleted on the VPN gateway.'], + ['code' => 'DependencyViolation.HaVip', 'message' => 'VSwitch cannot be deleted when there are some HaVip dependent with it.', 'http_code' => 400, 'description' => 'The vSwitch is associated with an HAVIP and the vSwitch cannot be deleted.'], + ['code' => 'DependencyViolation.HaVipAssociatedWithEIP', 'message' => 'HaVip cannot be deleted when it is associated with EIP.', 'http_code' => null, 'description' => 'The HAVIP is associated with an EIP and cannot be deleted.'], + ['code' => 'DependencyViolation.HaVipReferedByRouteEntry', 'message' => 'HaVip cannot be deleted when it is refered by a route table entry as next hop.', 'http_code' => null, 'description' => 'The HAVIP serves as the next hop of a route entry and cannot be deleted. You must delete the route entry before you can delete the HAVIP.'], + ['code' => 'DependencyViolation.Instance', 'message' => 'Specified object has dependent resources', 'http_code' => null, 'description' => 'The VPC is associated with a resource.'], + ['code' => 'DependencyViolation.Instance', 'message' => 'ClassicLink Instances exist in VPC.', 'http_code' => 404, 'description' => 'Instances exist in the VPC and the VPC cannot be deleted.'], + ['code' => 'DependencyViolation.ip', 'message' => null, 'http_code' => null, 'description' => 'The specified NAT gateway is already associated with an EIP.'], + ['code' => 'DependencyViolation.IpPrefix', 'message' => 'DependencyViolation.IpPrefix', 'http_code' => 400, 'description' => 'The error message returned because a prefix list is assigned to the resource. Delete the prefix list and try again.'], + ['code' => 'DependencyViolation.Ips', 'message' => null, 'http_code' => null, 'description' => 'The specified EIP bandwidth plan is already associated.'], + ['code' => 'DependencyViolation.IpsecServer', 'message' => 'the resource cannot be deleted because the resource has an ipsec server dependency.', 'http_code' => 400, 'description' => 'the resource cannot be deleted because the resource has an ipsec server dependency.'], + ['code' => 'DependencyViolation.Ipv4Gateway', 'message' => 'The VPC cannot be deleted when it has ipv4Gateway.', 'http_code' => 400, 'description' => 'The VPC cannot be deleted because an IPv4 gateway exists in the VPC.'], + ['code' => 'DependencyViolation.Ipv6Address', 'message' => 'The specified resource of %s depends on %s, so the operation cannot be completed.', 'http_code' => 400, 'description' => 'The specified resource is dependent on other resources and the current operation is not allowed.'], + ['code' => 'DependencyViolation.IPv6CidrReservation', 'message' => 'The specified resource of [%s] depends on [%s], so the operation cannot be completed.', 'http_code' => 400, 'description' => 'The specified resource of [%s] depends on [%s], so the operation cannot be completed.'], + ['code' => 'DependencyViolation.Ipv6Gateway', 'message' => 'The VPC contains IPv6Gateway and cannot be deleted.', 'http_code' => 400, 'description' => 'The VPC cannot be deleted because it contains an IPv6 gateway.'], + ['code' => 'DependencyViolation.Ipv6InternetBandwidth', 'message' => 'The specified resource of %s depends on %s, so the operation cannot be completed.', 'http_code' => 400, 'description' => 'The specified resource is dependent on other resources and the current operation is not allowed.'], + ['code' => 'DependencyViolation.Ipv6InternetBandwidth', 'message' => 'The specified ipv6 instance already exist ipv6 internet bandwidth, so the operation cannot be completed.', 'http_code' => 400, 'description' => 'The IPv6 bandwidth of the specified IPv6 instance has been enabled. Release the IPv6 bandwidth after the operation.'], + ['code' => 'DependencyViolation.MulticastDomain', 'message' => 'VSwitch cannot be deleted when associated with multicast domain.', 'http_code' => 400, 'description' => 'The vSwitch is added to a multicast domain and cannot be deleted.'], + ['code' => 'DependencyViolation.NatGateway', 'message' => 'Specified object has dependent resources NatGateway.', 'http_code' => 400, 'description' => 'NAT gateways exist in the VPC and the VPC cannot be deleted. Delete the NAT gateways and try again.'], + ['code' => 'DependencyViolation.NatIp', 'message' => 'The specified resource of %s depends on %s, so the operation cannot be completed.', 'http_code' => 400, 'description' => 'You cannot perform the operation because the NAT gateway is associated with a NAT IP address.'], + ['code' => 'DependencyViolation.NatIpCidr', 'message' => 'The specified resource of %s depends on %s, so the operation cannot be completed.', 'http_code' => 400, 'description' => 'You cannot perform the operation because the NAT gateway is associated with a NAT CIDR block.'], + ['code' => 'DependencyViolation.NetworkAcl', 'message' => 'Specified object has dependent resources network acl.', 'http_code' => 400, 'description' => 'The specified object is associated with a network ACL.'], + ['code' => 'DependencyViolation.NetworkAcl', 'message' => 'VSwitch cannot be deleted when network acl exist.', 'http_code' => 400, 'description' => 'You cannot delete the vSwitch because a network ACL exists in the vSwitch.'], + ['code' => 'DependencyViolation.Nqa', 'message' => 'nqa exists, cannot delete vbr.', 'http_code' => 400, 'description' => 'You cannot delete the VBR because nqa exists.'], + ['code' => 'DependencyViolation.OppositeRouterInterface', 'message' => 'Failed to delete the VPC because it has peer router interfaces.', 'http_code' => 400, 'description' => 'The VPC failed to be deleted because a peer router interface exists in the VPC.'], + ['code' => 'DependencyViolation.PrefixListRelation', 'message' => 'The specified resource of prefixList depends on prefixList relation, so the operation cannot be completed.', 'http_code' => 400, 'description' => 'The prefix list cannot be deleted because it is still referenced.'], + ['code' => 'DependencyViolation.PrivateLinkMode', 'message' => 'Dependent resources exist.', 'http_code' => 400, 'description' => 'Dependent resources exist.'], + ['code' => 'DependencyViolation.PrivateLinkMode', 'message' => 'The specified resource of %s depends on %s, so the operation cannot be completed.', 'http_code' => 400, 'description' => 'The %s resource depends on %s.'], + ['code' => 'DependencyViolation.QosTable', 'message' => 'DependencyViolation.QosTable', 'http_code' => 400, 'description' => 'The QoS feature cannot be disabled for the NAT gateway because QoS rules are associated with the NAT gateway.'], + ['code' => 'DependencyViolation.RouteEntry', 'message' => 'Specified object has dependent resources', 'http_code' => 400, 'description' => 'The VPC cannot be deleted because custom routes exist in the VPC.'], + ['code' => 'DependencyViolation.RouteInterface', 'message' => 'Specified object has dependent route interface .', 'http_code' => null, 'description' => 'The specified vSwitch is connected to a router interface and cannot be deleted.'], + ['code' => 'DependencyViolation.RouterEntry', 'message' => 'The specified resource of %s depends on %s, so the operation cannot be completed.', 'http_code' => 400, 'description' => 'You cannot perform the operation because the NAT gateway is associated with a route entry.'], + ['code' => 'DependencyViolation.RouterInterface', 'message' => 'Specified object has dependent resources RouterInterface.', 'http_code' => null, 'description' => 'The object is already associated with a router interface.'], + ['code' => 'DependencyViolation.RouterInterfaceReferedByRouteEntry', 'message' => 'RouterInterface cannot be deleted when it is refered by a route table entry as next hop.', 'http_code' => 400, 'description' => 'The router interface is referenced as a next hop by a route entry and cannot be deleted. Delete the route entry before you can delete the router interface.'], + ['code' => 'DependencyViolation.RouterInterfaceReferedByRouteEntry', 'message' => 'The specified VirutalBorderRouter is refered by routeEntry.', 'http_code' => 400, 'description' => 'The VBR is already used.'], + ['code' => 'DependencyViolation.RouteTable', 'message' => 'VSwitch cannot be deleted when associated with route table.', 'http_code' => 400, 'description' => 'You cannot delete the vSwitch because a route table is associated with the vSwitch.'], + ['code' => 'DependencyViolation.SecurityGroup', 'message' => 'Specified object has dependent resources', 'http_code' => 400, 'description' => 'Security groups exist in the VPC and the VPC cannot be deleted. Delete the security groups and try again.'], + ['code' => 'DependencyViolation.SecurityGroup', 'message' => 'Specified object has dependent resources SecurityGroup.', 'http_code' => 400, 'description' => 'Security groups exist in the VPC and the VPC cannot be deleted. Delete the security groups and try again.'], + ['code' => 'DependencyViolation.SecurityGroup', 'message' => 'Security group [%s] exists in the VPC, so the VPC cannot be deleted.', 'http_code' => 400, 'description' => 'Security group [%s] exists in the VPC and the VPC cannot be deleted. Delete the security groups and try again.'."\n"], + ['code' => 'DependencyViolation.SharedIpv6InternetBandwidth', 'message' => 'The IPv6 gateway [%s] has IPv6 address [%s] that enabled internet from share user [%s], please delete it and try again later.', 'http_code' => 400, 'description' => 'The IPv6 gateway [%s] has IPv6 address [%s] that enabled internet from share user [%s], please delete it and try again later.'], + ['code' => 'DependencyViolation.ShareResource', 'message' => 'The specified resource of prefixList depends on share resource, so the operation cannot be completed.', 'http_code' => 400, 'description' => 'The prefix list cannot be deleted because it has sharing relationships.'], + ['code' => 'DependencyViolation.SNAT', 'message' => 'The vswitch cannot be deleted when used by snat.', 'http_code' => 400, 'description' => 'You cannot delete a vSwitch when SNAT is used.'], + ['code' => 'DependencyViolation.SnatEntry', 'message' => 'The ip has been used by SnatEntry.', 'http_code' => null, 'description' => 'One or more specified public IP addresses are used by SNAT entries. Delete the SNAT entries before you call this operation.'], + ['code' => 'DependencyViolation.SnatEntry', 'message' => 'The specified BandwidthPackageId has dependent resource.', 'http_code' => 400, 'description' => 'The NAT service plan is associated with SNAT or DNAT entries. Delete them and try again.'], + ['code' => 'DependencyViolation.SslVpnServer', 'message' => 'There is SSL VPN server on specified vpn gateway not deleted.', 'http_code' => 400, 'description' => 'The error message returned because SSL-VPN connections to the specified customer gateway are not deleted.'], + ['code' => 'DependencyViolation.TrafficMirrorSession', 'message' => 'Some traffic mirror sessions depend on the specified resource.', 'http_code' => 400, 'description' => 'The traffic mirror session depends on the current resource.'], + ['code' => 'DependencyViolation.TransitRouter', 'message' => 'Specified object has attached to Transit Router.', 'http_code' => 400, 'description' => 'The specified resource is dependent on other resources and the current operation is not allowed.'], + ['code' => 'DependencyViolation.Tunnel', 'message' => 'Specified object has dependent tunnel.', 'http_code' => null, 'description' => 'The VPC is associated with a tunnel.'], + ['code' => 'DependencyViolation.VpcAttachment', 'message' => 'DhcpOptionsSet cannot be deleted when it is attached to VPC.', 'http_code' => 400, 'description' => 'The DHCP options set is associated with a VPC and cannot be deleted.'], + ['code' => 'DependencyViolation.VpcEndpointService', 'message' => 'The specified resource of %s depends on %s, so the operation cannot be completed.', 'http_code' => 400, 'description' => 'You cannot perform the operation because the NAT gateway is associated with an endpoint service.'], + ['code' => 'DependencyViolation.VpnConnection', 'message' => 'There are VpnConnections on specified CustomerGateway not deleted.', 'http_code' => null, 'description' => 'The customer gateway has a VPN connection. Delete the VPN connection before you delete the customer gateway.'], + ['code' => 'DependencyViolation.VpnConnection', 'message' => 'There are vpn connections on specified customer gateway not deleted.', 'http_code' => 400, 'description' => 'The error message returned because VPN connections to the specified customer gateway are not deleted.'], + ['code' => 'DependencyViolation.VSwitch', 'message' => 'Specified object has dependent resources', 'http_code' => 400, 'description' => 'vSwitches exist in the VPC and the VPC cannot be deleted. Delete the vSwitches and try again.'], + ['code' => 'DependencyViolation.VSwitchCidrReservation', 'message' => 'VSwitch cannot be deleted when vswitch cidr reservation exist.', 'http_code' => 404, 'description' => 'The error message returned because a CIDR block is reserved for the vSwitch and the vSwitch cannot be deleted.'], + ['code' => 'Dnat.MultiSource.QuotaExceeded', 'message' => 'The destination port can not be mapped more. Because the destination port map count has exceeded quota', 'http_code' => 400, 'description' => 'The number of mappings for the destination IP port exceeds the quota.'], + ['code' => 'DryRunOperation', 'message' => 'Request validation has been passed with DryRun flag set.', 'http_code' => 400, 'description' => 'The request passed the dry run.'], + ['code' => 'Duplicated.ClientToken', 'message' => 'The param of ClientToken is duplicated.', 'http_code' => 400, 'description' => 'The specified ClientToken is duplicated.'], + ['code' => 'Duplicated.IpAddress', 'message' => 'IP [%s] is duplicated.', 'http_code' => 400, 'description' => 'The IP address is duplicate. See the API reference and specify a valid IP address.'], + ['code' => 'Duplicated.SecondaryCidrBlock', 'message' => 'The param of SecondaryCidrBlock is duplicated.', 'http_code' => 400, 'description' => 'The specified SecondaryCidrBlock is duplicated.'], + ['code' => 'Duplicated.TagKey', 'message' => 'The specified parameter TagKey is duplicated.', 'http_code' => 400, 'description' => 'The error message returned because the specified tag key already exists.'], + ['code' => 'Duplicated.VpcNextHop', 'message' => 'Route entry nexthop duplicate.', 'http_code' => 400, 'description' => 'Duplicate next hops are specified.'], + ['code' => 'DuplicatedParam.%s', 'message' => 'The param of %s is duplicated.', 'http_code' => 400, 'description' => 'The parameter is set to a duplicate value.'], + ['code' => 'DuplicatedParam.CidrBlock', 'message' => 'The param of cidrBlock is duplicated.', 'http_code' => 400, 'description' => 'The error message returned because a duplicate CIDR block is specified.'], + ['code' => 'DuplicatedParam.CidrBlockAndCidrMask', 'message' => 'CidrBlock and CidrMask cannot be specified at the same time.', 'http_code' => 400, 'description' => 'The system failed to add the CIDR block to the address pool because you cannot specify the CIDR block and the subnet mask at the same time.'], + ['code' => 'DuplicatedParam.ExternalPort', 'message' => 'The param of %s is duplicated.', 'http_code' => 400, 'description' => 'The DNAT public network port has been used repeatedly.'], + ['code' => 'DuplicatedParam.InternalPort', 'message' => 'The param of %s is duplicated.', 'http_code' => 400, 'description' => 'Duplicate or occupied InternalPort parameter'], + ['code' => 'DuplicatedParam.LocalGatewayIp', 'message' => 'Duplicated LocalGatewayIp values.', 'http_code' => 400, 'description' => 'The local IP address already exists.'], + ['code' => 'DuplicatedParam.LocalGatewayIp', 'message' => 'The LocalGatewayIp values are duplicated.', 'http_code' => 400, 'description' => 'The error message returned because a duplicate IP address is used for communication. Change the IP address and try again.'], + ['code' => 'DuplicatedParam.LocalGatewayIp', 'message' => 'The param is duplicated.', 'http_code' => 400, 'description' => 'The parameter is duplicated.'], + ['code' => 'DuplicatedParam.LocalIpAddress', 'message' => 'The LocalIpAddress already exists.', 'http_code' => 400, 'description' => 'The error message returned because you specified a duplicate local IP address. Change the local IP address and try again.'], + ['code' => 'DuplicatedParam.LocalIpv6Address', 'message' => 'The LocalIpv6Address already exists.', 'http_code' => 400, 'description' => 'The error message returned because you specified a duplicate local IP address. Change the local IP address and try again.'], + ['code' => 'DuplicatedParam.LocalIpv6GatewayIp', 'message' => 'Duplicated LocalIpv6GatewayIp values.', 'http_code' => 400, 'description' => 'The local IP address already exists.'], + ['code' => 'DuplicatedParam.PeerGatewayIp', 'message' => 'Duplicated PeerGatewayIp values.', 'http_code' => 400, 'description' => 'The peer IP address already exists.'], + ['code' => 'DuplicatedParam.PeerIpAddress', 'message' => 'The param of PeerIpAddress is duplicated.', 'http_code' => 400, 'description' => 'Duplicate IP addresses of BGP peers exist.'], + ['code' => 'DuplicatedParam.PeerIpAddress', 'message' => 'Duplicated peer IP addresses.', 'http_code' => 400, 'description' => 'The peer IP address already exists.'], + ['code' => 'DuplicatedParam.PeerIpAddress', 'message' => 'The param is duplicated.', 'http_code' => 400, 'description' => 'Duplicate parameter value'], + ['code' => 'DuplicatedParam.PeerIpv6Address', 'message' => 'The PeerIpv6Address already exists.', 'http_code' => 400, 'description' => 'The error message returned because you specified a duplicate peer IP address. Change the peer IP address and try again.'], + ['code' => 'DuplicatedParam.PeerIpv6GatewayIp', 'message' => 'Duplicated PeerIpv6GatewayIp values.', 'http_code' => 400, 'description' => 'The peer IP address already exists.'], + ['code' => 'DuplicatedParam.Priority', 'message' => 'The specified priority conflicts with the existing priority.', 'http_code' => 400, 'description' => 'The specified priority is the same as an existing one.'], + ['code' => 'DuplicatedParam.SourceInstanceIds', 'message' => 'The parameter of source instance IDs contains duplicate values.', 'http_code' => 400, 'description' => 'Duplicate values are set for TrafficMirrorSourceIds.N.'], + ['code' => 'DuplicatedParam.TrafficPath', 'message' => 'The param of trafficPath is duplicated.', 'http_code' => 400, 'description' => 'The value of TrafficPath.N is duplicate.'], + ['code' => 'EcAssociatedQoSPconnNotAllowCreateCrossAccountVbr', 'message' => 'The specified Pconn associated with Qos is not allowed to create cross account VBR.Please contact the business manager.', 'http_code' => 400, 'description' => 'Shared physical lines bound with QoS policies do not allow cross-account virtual border routers to be created. Contact the business manager.'], + ['code' => 'EcAssociatedQoSPconnNotAllowCreateVpconn', 'message' => 'The specified Pconn associated with Qos is not allowed to create Vpconn.Please contact the business manager.', 'http_code' => 400, 'description' => 'Exclusive physical lines bound with QoS policies are not allowed to create shared physical lines. Please contact the business manager.'], + ['code' => 'EcDeviceNotSupportQoS', 'message' => 'The specified Pconn is on the device which is not supported QoS.', 'http_code' => 400, 'description' => 'The device where the physical connection is located does not support the QoS feature.'], + ['code' => 'EcFailoverTestJobConflict', 'message' => 'The current failover test job task is in operation, please try again later.', 'http_code' => 400, 'description' => 'The current failover test job task is in operation, please try again later.'], + ['code' => 'EcFailoverTestJobExceedMaxResourceNum', 'message' => 'The input resource number is exceeded the quota of 16.', 'http_code' => 400, 'description' => 'The failover test job can add up to 16 resources.'], + ['code' => 'EcFailoverTestJobResourceInAnotherProcessingJob', 'message' => 'There is another processing failover test job.', 'http_code' => 400, 'description' => 'The current user already has a failover test job in progress. Please complete it and try again.'], + ['code' => 'EcFailToGetAp', 'message' => 'Fail to get access point details.', 'http_code' => 400, 'description' => 'Unable to query the corresponding access point information.'], + ['code' => 'EcGrantRelation.NotExist', 'message' => 'The ec grant relation not exist.', 'http_code' => 404, 'description' => 'The Express Connect circuit is not authorized.'], + ['code' => 'EcNotEnoughResource', 'message' => 'Insufficient access point resources.', 'http_code' => 400, 'description' => 'Insufficient Access Point Resources'], + ['code' => 'EcNotSupportRegion', 'message' => 'High reliable physical connection is not support in this region.', 'http_code' => 400, 'description' => 'Highly reliable physical lines are temporarily not supported for sale in the local region.'], + ['code' => 'EcPconnVbrMustContainsAll', 'message' => 'In the single VBR with multiple Pconn scene, all Pconn must be associated with the same Qos.', 'http_code' => 400, 'description' => 'In a single VBR and multiple Pconn scenarios, all Pconn must be bound to a QoS policy.'], + ['code' => 'EcPconnWithCrossAccountVbrNotAllowAssociateQoS', 'message' => 'The specified Pconn with cross account VBR is not allowed to associate with Qos.', 'http_code' => 400, 'description' => 'Exclusive physical connections that contain cross-account virtual border routers cannot bind QoS policies.'], + ['code' => 'EcPconnWithVpconnNotAllowAssociateQoS', 'message' => 'The specified Pconn with Vpconn is not allowed to associate with Qos.', 'http_code' => 400, 'description' => 'Exclusive physical lines that contain shared physical lines cannot be bound to QoS policies.'], + ['code' => 'EcQoSConflict', 'message' => 'The specified QoS is conflict with other QoS.', 'http_code' => 400, 'description' => 'The current QoS configuration conflicts with other configurations. Please try again later.'], + ['code' => 'EcQosRuleNotAllowV4AndV6', 'message' => 'QoS rules do not allow IPv4 and IPv6 addresses to be mixed and updated.', 'http_code' => 400, 'description' => 'Both IPv4 address configuration and IPv6 address configuration are not allowed in a QoS rule. If the original configuration network type is IPv4 and cannot be modified to IPv6 (or vice versa), please check and modify it.'], + ['code' => 'EcQoSWithPconnNotSupportDelete', 'message' => 'The Qos policy associated with Pconn cannot be deleted. Please disassociate it first.', 'http_code' => 400, 'description' => 'Your current QoS policy has been associated with a physical connection and cannot be deleted directly. Please disassociate it and try again.'], + ['code' => 'EipOperation.TooFrequently', 'message' => null, 'http_code' => null, 'description' => 'Associating EIPs with the EIP bandwidth plan too frequently. Try again later.'], + ['code' => 'EipOperation.TooFrequently', 'message' => 'The operation of adding EIP to the bandwidth package is too frequent. Please try again later.', 'http_code' => 400, 'description' => 'The operation of adding EIP to the bandwidth package is too frequent. Please try again later.'], + ['code' => 'EIP_BIND_NATGATEWAY', 'message' => null, 'http_code' => null, 'description' => 'The EIP is associated with a NAT gateway.'], + ['code' => 'EIP_CAN_NOT_ASSOCIATE_WITH_PUBLIC_IP', 'message' => 'instance already bind natpublicip', 'http_code' => null, 'description' => 'The instance is already assigned a public IP address.'], + ['code' => 'EIP_NOT_SUPPORT_SNAT_POOL', 'message' => null, 'http_code' => null, 'description' => 'The specified EIP cannot be added to the SNAT pool.'], + ['code' => 'EIP_UNDERSTOCK', 'message' => 'There are not enough eip in stock', 'http_code' => null, 'description' => 'The EIP inventory is insufficient.'], + ['code' => 'EnableHaCheck.IpsecConnectionBgpTunnelCidrConflict', 'message' => 'There are same bgp tunnel cidr in different connections. The cidr is %s.', 'http_code' => 400, 'description' => 'The same tunnel CIDR block exists in different IPsec tunnels that use BGP. The tunnel CIDR block is %s.'], + ['code' => 'EnableHaCheck.IpsecServerCidrContainsVpcRouteDest', 'message' => 'Ipsec server client cidr contains vpc route prefix. The vpc route prefix is %s.', 'http_code' => 400, 'description' => 'The prefix %s in the VPC route table falls within the CIDR block of the IPsec client.'], + ['code' => 'EnableHaCheck.PolicyBasedRoutePrefixConflict', 'message' => 'There are policy based routes with the same prefix. The prefix is %s.', 'http_code' => 400, 'description' => 'Policy-based routes with the same prefix exist. The prefix is %s.'], + ['code' => 'EnableHaCheck.RegionNotSupported', 'message' => 'Enabling HA Vpn is not supported in the specified region.', 'http_code' => 400, 'description' => 'The region does not support high availability.'], + ['code' => 'EnableHaCheck.RoutePrefixConflict', 'message' => 'There are routes with the same prefix. The prefix is %s.', 'http_code' => 400, 'description' => 'A route with the same prefix already exists: %s'], + ['code' => 'EnableHaCheck.RoutePrefixConflict', 'message' => 'There are routes with the same prefix, the prefix is %s.', 'http_code' => 400, 'description' => 'There are routes with the same prefix, the prefix is %s.'], + ['code' => 'EnableHaCheck.SslVpnServerClientCidrContainsVpcRouteDest', 'message' => 'Ssl vpn client cidr contains vpc route prefix. The vpc route prefix is %s.', 'http_code' => 400, 'description' => 'The prefix %s in the VPC route table falls within the CIDR block of the SSL client.'], + ['code' => 'EnableHaCheck.TypeInvalid', 'message' => 'The specified gateway type invalid.', 'http_code' => 400, 'description' => 'The VPN gateway type does not support high availability.'], + ['code' => 'EnableHaCheck.VpnTypeNotSupported', 'message' => 'Enabling HA Vpn Only Support Ipsec Vpn or Ssl Vpn.', 'http_code' => 400, 'description' => 'Only IPsec-VPN or SSL-VPN supports high availability.'], + ['code' => 'Eni.Attached', 'message' => 'The eni should be detached from ecs when associating with direct eip.', 'http_code' => 400, 'description' => 'If the ENI is associated with an EIP in cut-through mode, you must disassociate the ENI from the ECS instance.'], + ['code' => 'EXCEED_ASSOCIATE_MAX_NUM', 'message' => 'assocaite virtual boarder num too many.', 'http_code' => null, 'description' => 'The number of associated VBRs has reached the upper limit.'], + ['code' => 'ExclusiveParam.%sAnd%s', 'message' => 'The param of %s and %s are mutually exclusive.', 'http_code' => 400, 'description' => 'You cannot specify %s and %s at the same time.'], + ['code' => 'ExclusiveParam.AccessModeValueAndAccessTunnelType', 'message' => 'The specified param AccessModeValue and AccessTunnelType are mutually exclusive.', 'http_code' => 400, 'description' => 'The specified input AccessMode.ModeValue and AccessMode.TunnelType conflict'], + ['code' => 'ExclusiveParam.EnableIpv6AndCidrBlock', 'message' => 'The param of EnableIpv6 and CidrBlock are mutually exclusive.', 'http_code' => 400, 'description' => 'The param of EnableIpv6 and CidrBlock are mutually exclusive.'], + ['code' => 'ExclusiveParam.NextHopTypeAndNextHopId', 'message' => 'The param of nextHopType and nextHopId are mutually exclusive.', 'http_code' => 400, 'description' => 'The next hop type does not match the next hop instance.'], + ['code' => 'ExclusiveParam.PrivateLinkEnabledAndAccessMode', 'message' => 'The specified paramPrivateLinkEnabled and AccessMode are mutually exclusive.', 'http_code' => 400, 'description' => 'The specified input PrivateLinkEnabled conflicts with the AccessMode.'], + ['code' => 'ExclusiveParam.PrivateLinkModeAndAccessMode', 'message' => 'The specified param PrivateLinkMode and AccessMode are mutually exclusive.', 'http_code' => 400, 'description' => 'The specified input PrivateLinkMode conflicts with the AccessMode.'], + ['code' => 'ExclusiveParam.ZoneAndIpAddress', 'message' => 'The specified param Zone and IpAddress or InstanceId are mutually exclusive.', 'http_code' => 400, 'description' => 'The specified input zone conflicts with the IpAddress or InstanceId'], + ['code' => 'ExclusiveParam.ZoneAndPublicIpAddressPoolId', 'message' => 'The Zone and PublicIpAddressPoolId parameters are mutually exclusive.', 'http_code' => 400, 'description' => 'You cannot specify Zone and PublicIpAddressPoolId at the same time.'], + ['code' => 'Forbbiden', 'message' => 'The eip instance owener error', 'http_code' => null, 'description' => 'The EIP does not belong to your account. Check whether you are authorized to perform the operation on the EIP.'], + ['code' => 'Forbbiden', 'message' => 'The Router instance owener error', 'http_code' => null, 'description' => 'The router does not belong to your account.'], + ['code' => 'Forbbiden', 'message' => 'Active custom route in vpc.', 'http_code' => null, 'description' => 'You must add a custom route entry to the VPC.'], + ['code' => 'Forbbiden', 'message' => 'Specified RouteEntry cannot allowed delete by openApi.', 'http_code' => null, 'description' => 'You cannot call this operation to delete the specified route.'], + ['code' => 'Forbbiden', 'message' => 'The router does not belong to your account.', 'http_code' => 400, 'description' => 'The router does not belong to your account.'], + ['code' => 'Forbbiden', 'message' => 'User not authorized to operate on the specified resource.', 'http_code' => 403, 'description' => 'User not authorized to operate on the specified resource.'], + ['code' => 'Forbbiden.InvaildOwner', 'message' => 'Incorrect RouterInterface owner.', 'http_code' => 400, 'description' => 'The router does not belong to your account.'], + ['code' => 'Forbbiden.InvaildOwner', 'message' => 'The RouterInterface owener error', 'http_code' => 400, 'description' => 'The information about the router owner is invalid.'], + ['code' => 'Forbbiden.ModifyIdAndType', 'message' => 'Opposite is VBR', 'http_code' => null, 'description' => 'The peer is a VBR.'], + ['code' => 'Forbbiden.SubUser', 'message' => 'The specified action is not available for you.', 'http_code' => null, 'description' => 'You are not authorized to perform the operation.'], + ['code' => 'Forbbiden.SubUser', 'message' => 'User not authorized to operate on the specified resource as your account is created by another user.', 'http_code' => null, 'description' => 'You are unauthorized to perform this operation on the specified resource. Acquire the required permissions and try again.'], + ['code' => 'Forbbiden.SubUser', 'message' => 'User not authorized to operate on the specified resource.', 'http_code' => 403, 'description' => 'The error message returned because you do not have the permissions to manage the resource.'], + ['code' => 'Forbedden.NotSupportRAM', 'message' => 'This action does not support accessed by RAM mode.', 'http_code' => null, 'description' => 'You cannot call this operation as a RAM user.'], + ['code' => 'Forbidden', 'message' => 'User not authorized to operate on the specified resource.', 'http_code' => 403, 'description' => 'You do not have the permissions to manage the specified resource. Apply for the permissions and try again.'], + ['code' => 'Forbidden', 'message' => 'You do not have the permissions to manage the specified resource. Apply for the permissions and try again.', 'http_code' => 403, 'description' => 'You do not have the permissions to manage the resource. Apply for the permissions and try again.'], + ['code' => 'Forbidden', 'message' => 'The eip instance owener error', 'http_code' => 400, 'description' => 'The EIP does not belong to your account. Check whether you have the permissions to perform the operation on the EIP.'], + ['code' => 'Forbidden', 'message' => 'The eip instance owner error', 'http_code' => 400, 'description' => 'The EIP does not belong to your account. Check whether you are authorized to perform the operation on the EIP.'], + ['code' => 'Forbidden.AcceptRoleNotSupportPrePay', 'message' => 'Acception side ri not support chargetype for prepaid.', 'http_code' => 400, 'description' => 'The subscription billing method is not supported.'], + ['code' => 'Forbidden.AllocateEipSegmentAddress', 'message' => 'Authentication is failed for allocating eip segment address.', 'http_code' => 400, 'description' => 'Failed to apply for continuous EIP. The service has been offline. Please use the IP address pool service.'], + ['code' => 'Forbidden.Already.Bounded', 'message' => 'The specified instance already bounded', 'http_code' => null, 'description' => 'The specified instance is associated.'], + ['code' => 'Forbidden.AssociateToVBR', 'message' => 'The physical connection still associate to VBR.', 'http_code' => null, 'description' => 'The physical connection has configured a virtual border router.'], + ['code' => 'Forbidden.BillsOutstanding', 'message' => 'You cannot create more RouterInterface because you have bills outstanding.', 'http_code' => null, 'description' => 'You cannot create router interfaces. You have overdue payments.'], + ['code' => 'Forbidden.BillsOutstanding', 'message' => 'You cannot use this action because you have bills outstanding.', 'http_code' => null, 'description' => 'You have uncompleted payments and cannot call this operation.'], + ['code' => 'Forbidden.ChargeTypeIsPrepaid', 'message' => 'It\'s forbidden to release a prepaid EIP', 'http_code' => null, 'description' => 'You cannot release subscription EIPs.'], + ['code' => 'Forbidden.ChargeTypeIsPrepaid', 'message' => 'It’s forbidden to change prepaid EIP’s bandwidth by API. It can be changed on Aliyun web console.', 'http_code' => null, 'description' => 'You cannot call an API operation to modify the bandwidth of a subscription EIP. You can modify the bandwidth in the console.'], + ['code' => 'Forbidden.CheckEntryRuleQuota', 'message' => 'Route entry quota rule check error.', 'http_code' => null, 'description' => 'An error occurred when the system was checking the quota of route entries.'], + ['code' => 'Forbidden.CircuitCodeNotAllowedByCaller', 'message' => 'The caller is not allowed to modify.', 'http_code' => null, 'description' => 'You are not allowed to modify CircuitCode.'], + ['code' => 'Forbidden.CircuitCodeNotAllowedByCaller', 'message' => 'The caller is not allowed to specify the CircuitCode parameter.', 'http_code' => null, 'description' => 'You are not allowed to specify CircuitCode.'], + ['code' => 'Forbidden.Convert', 'message' => 'User does not have permission to operate.', 'http_code' => 400, 'description' => 'The user does not have permission to perform this operation.'], + ['code' => 'Forbidden.CreatePublicIpAddressPool', 'message' => 'Authentication is failed for creating public ip address pool.', 'http_code' => 400, 'description' => 'The error message returned because you cannot create an IP address pool. Check whether you have the relevant permissions.'], + ['code' => 'Forbidden.CrossBorder', 'message' => 'User not authorized to create cross border routerInterface.', 'http_code' => 400, 'description' => 'You do not have the permissions to create a cross-border router interface.'], + ['code' => 'Forbidden.DescriptionNotAllowedByCaller', 'message' => 'The caller is not allowed to specify the Description parameter.', 'http_code' => null, 'description' => 'You are not allowed to set Description.'], + ['code' => 'Forbidden.DestnationIpOutOfVpcCIDR', 'message' => 'The specified Internal Ip is Out of VPC CIDR.', 'http_code' => null, 'description' => 'The specified private IP address does not fall within the CIDR block of the VPC. Enter a private IP address that falls within the CIDR block of the VPC.'], + ['code' => 'Forbidden.DestnationIpOutOfVpcCIDR', 'message' => 'The specified Destination Ip is Out of VPC CIDR.', 'http_code' => null, 'description' => 'The specified private IP address does not fall within the CIDR block of the VPC. Enter a private IP address that falls within the CIDR block of the VPC.'], + ['code' => 'Forbidden.DisableRoutePropagation', 'message' => 'The operation of disable route propagation is forbidden.', 'http_code' => 400, 'description' => 'Shutting down route propagation for this routing table is not allowed.'], + ['code' => 'Forbidden.DiskNotFound', 'message' => 'The specified Disk is not found', 'http_code' => null, 'description' => 'The disk does not exist.'], + ['code' => 'Forbidden.EipInBwp', 'message' => 'The EIP has been associated with an EIP bandwidth plan.', 'http_code' => 400, 'description' => 'You cannot delete the contiguous EIP group because EIPs in the group are associated with an EIP bandwidth plan.'], + ['code' => 'Forbidden.EnableClassicLink', 'message' => null, 'http_code' => null, 'description' => 'ClassicLink can be enabled for a VPC whose CIDR block is 172.16.0.0/12, 192.168.0.0/16, or 10.0.0.0/8. For more information, see Features and limits of ClassicLink.'], + ['code' => 'Forbidden.ExternalIp.UsedInSnatTable', 'message' => 'The specified ExternalIp is already used in SnatTable', 'http_code' => null, 'description' => 'The specified EIP is already used by an SNAT entry. Select a different EIP or delete the SNAT entry.'], + ['code' => 'Forbidden.FinancialLocked', 'message' => 'The instance is locked due to outstanding payments.', 'http_code' => 400, 'description' => 'The instance has overdue payments.'], + ['code' => 'Forbidden.FinancialLocked', 'message' => 'The ip business status is invalid.', 'http_code' => 400, 'description' => 'The error message returned because the instance has overdue payments.'], + ['code' => 'Forbidden.FinancialLocked', 'message' => 'The router interface has been locked due to overdue payments.', 'http_code' => 400, 'description' => 'You cannot manage the router interface because the router interface is locked due to overdue payments.'], + ['code' => 'Forbidden.FinancialLocked', 'message' => 'The router interface is locked due to overdue payments.', 'http_code' => 400, 'description' => 'The router interface is locked for overdue payments.'], + ['code' => 'Forbidden.FinancialLocked', 'message' => 'RouterInterface can not be operated by this action when it\'s FinancialLocked.', 'http_code' => 400, 'description' => 'This operation cannot be performed when the routing interface is overdue.'], + ['code' => 'Forbidden.FinancileLocked', 'message' => 'This RouterInterface is financiel locked because of bills outstanding.', 'http_code' => null, 'description' => 'The router interface is locked due to overdue payments.'], + ['code' => 'Forbidden.GlobalAccelerationInstanceChargeTypeIsPrepaid', 'message' => null, 'http_code' => null, 'description' => 'You cannot release a subscription GA instance.'], + ['code' => 'Forbidden.HaVip', 'message' => 'No permissions to perform operations on HAVIPs. Please apply for privilege--vpc_privilege_allow_buy_havip_instance.', 'http_code' => 400, 'description' => 'The error message returned because you do not have the permissions to manage the HAVIP. Go to the Quota Center page to acquire the permissions.'], + ['code' => 'Forbidden.ImageNotFound', 'message' => 'The specified Image is not found', 'http_code' => null, 'description' => 'This image does not exist.'], + ['code' => 'Forbidden.InstanceNotFound', 'message' => 'The specified Instance is not found', 'http_code' => null, 'description' => 'The instance does not exist. Check the instance ID.'], + ['code' => 'Forbidden.InternalIpOutOfVpcCIDR', 'message' => 'The specified Internal Ip is Out of VPC CIDR.', 'http_code' => null, 'description' => 'The private IP address does not fall within the CIDR block of the VPC.'], + ['code' => 'Forbidden.IpHasBeenUsedInDnat', 'message' => 'The snat ip can not be used. Because it has been used in dnat', 'http_code' => 400, 'description' => 'You cannot specify the IP address in an SNAT entry because it is already specified in a DNAT entry.'], + ['code' => 'Forbidden.IpHasBeenUsedInDnat', 'message' => 'The SNAT entries cannot use this EIP. Because it is already used in DNAT entries (arbitrary port mapping).', 'http_code' => 400, 'description' => 'The SNAT entries cannot use this EIP. Because it is already used in DNAT entries (arbitrary port mapping).'], + ['code' => 'Forbidden.IpHasBeenUsedInSnat', 'message' => 'The source ip can not be used. Because it has been used in snat.', 'http_code' => 400, 'description' => 'You cannot specify the source IP address because it is already specified in an SNAT entry.'], + ['code' => 'Forbidden.IpUsedInForwardTable', 'message' => 'The specified SnatIp already used in forward table', 'http_code' => null, 'description' => 'The specified EIP is already used by a DNAT entry. Select another EIP or delete the DNAT rule that uses the specified EIP.'], + ['code' => 'Forbidden.LocalGatewayIpNotAllowedByCaller', 'message' => 'The caller is not allowed to specify the LocalGatewayIp parameter.', 'http_code' => null, 'description' => 'You are not allowed to specify LocalGatewayIp.'], + ['code' => 'Forbidden.ModifyEipBondType', 'message' => 'Authentication is failed for modify EIP bond type.', 'http_code' => 403, 'description' => 'The value of EipBindMode cannot be modified.'], + ['code' => 'Forbidden.MultiDirectEip', 'message' => 'No permission to bind multi direct eip.', 'http_code' => 400, 'description' => 'No permission to bind multi direct eip.'], + ['code' => 'Forbidden.MultiVlanRi', 'message' => 'Multiple vlan router interfaces are found.', 'http_code' => null, 'description' => 'Multiple VLAN router interfaces exist.'], + ['code' => 'Forbidden.NameNotAllowedByCaller', 'message' => 'The caller is not allowed to specify the Name parameter.', 'http_code' => null, 'description' => 'You do not have the permissions to set the Name parameter.'], + ['code' => 'Forbidden.NatPayBySpec', 'message' => 'Pay-by-specification NAT is no longer supported. Newly purchased pay-as-you-go NAT gateways only support the pay-by-CU metering method.', 'http_code' => 400, 'description' => 'Pay-by-specification NAT gateways are no longer available for purchase. Set InternetChargeType to PayByLcu.'], + ['code' => 'Forbidden.NoPermission', 'message' => 'User does not have permission to operate.', 'http_code' => 400, 'description' => 'You do not have the permissions to perform this operation.'], + ['code' => 'Forbidden.NoRiFound', 'message' => 'No vlan router interfaces are found.', 'http_code' => null, 'description' => 'No VLAN router interface is available.'], + ['code' => 'Forbidden.NotAllowedCategary', 'message' => 'The System tag is not valid', 'http_code' => 400, 'description' => 'The error message returned because the system tag is invalid.'], + ['code' => 'Forbidden.NotAllowedInState', 'message' => 'The request does not allow in this state.', 'http_code' => null, 'description' => 'The operation cannot be performed when the Express Connect circuit in the current state.'], + ['code' => 'Forbidden.NotInAllowDeleteStatus', 'message' => 'Only physical connection in the Cancelled, Rejected, Terminated, Allocated, or AllocationFailed states can be deleted.', 'http_code' => 400, 'description' => 'Only physical connection in the Cancelled, Rejected, Terminated, Allocated, or AllocationFailed states can be deleted.'], + ['code' => 'Forbidden.NotInRouterInterfaceCreateWhitelist', 'message' => 'Not in router interface create whitelist.', 'http_code' => null, 'description' => 'You are not included in the whitelist to create router interfaces.'], + ['code' => 'Forbidden.NotSameAccessDevice', 'message' => 'Vbr and physicalConnection are not on the same accessDevice.', 'http_code' => 400, 'description' => 'The VBR and Express Connect circuit do not belong to the same device.'], + ['code' => 'Forbidden.OnlyOneConnection', 'message' => 'Cannot connect concurrently between same routers', 'http_code' => null, 'description' => 'You cannot initiate a connection on the same router.'], + ['code' => 'Forbidden.OnlyOneConnection', 'message' => 'The Specified routers have a connection already', 'http_code' => null, 'description' => 'The router is already connected to a router interface.'], + ['code' => 'Forbidden.OpenPublicIpAddressPool', 'message' => 'Authentication is failed for opening public ip address pool. Please apply for permission at the quota center.', 'http_code' => 400, 'description' => 'Failed to activate the IP address pool service. Please go to the quota center to apply for permission.'], + ['code' => 'Forbidden.OperateCustomRouteTable', 'message' => 'The operation is forbidden because publish route entry in custom route table.', 'http_code' => 400, 'description' => 'The operation is prohibited because it is not allowed to publish route entries in the custom route table.'], + ['code' => 'Forbidden.OperateManagedFlowLog', 'message' => 'Authentication is failed for operate managed flowlog.', 'http_code' => 400, 'description' => 'Authentication failed when operating the managed flow log.'], + ['code' => 'Forbidden.OperateShareResource', 'message' => 'You cannot operate shared resources.', 'http_code' => 400, 'description' => 'Shared resources do not support this operation.'], + ['code' => 'Forbidden.OperationDeleteNotAllowedByUser', 'message' => 'The caller is not allowed to delete the specified VirtualBorderRouter.', 'http_code' => 403, 'description' => 'The caller is not allowed to delete the specified VirtualBorderRouter.'], + ['code' => 'Forbidden.OperationNotAllowedByUser', 'message' => 'The caller is not allowed to delete the specified VirtualBorderRouter.', 'http_code' => null, 'description' => 'You are not allowed to delete the VBR.'], + ['code' => 'Forbidden.OperationNotAllowedByUser', 'message' => 'The caller is not allowed to terminate the specified VirtualBorderRouter.', 'http_code' => null, 'description' => 'You are not allowed to disable the VBR.'], + ['code' => 'Forbidden.OperationNotAllowedByUser', 'message' => 'The caller is not allowed to recover the specified VirtualBorderRouter.', 'http_code' => null, 'description' => 'You are not allowed to restore the VBR.'], + ['code' => 'Forbidden.OperationRecoverNotAllowedByUser', 'message' => 'The caller is not allowed to recover the specified VirtualBorderRouter.', 'http_code' => 403, 'description' => 'The caller is not allowed to recover the specified VirtualBorderRouter.'], + ['code' => 'Forbidden.OperationTerminateNotAllowedByUser', 'message' => 'The caller is not allowed to terminate the specified VirtualBorderRouter.', 'http_code' => 403, 'description' => 'The caller is not allowed to terminate the specified VirtualBorderRouter.'], + ['code' => 'Forbidden.OwnerAliUid', 'message' => 'RAM account or Partner account is forbidden to be OwnerAliUid.', 'http_code' => 400, 'description' => 'You must set VbrOwnerId to the ID of a RAM user or a partner account. You cannot use the VBR owner account.'], + ['code' => 'Forbidden.PeerGatewayIpNotAllowedByCaller', 'message' => 'The caller is not allowed to specify the PeerGatewayIp parameter.', 'http_code' => null, 'description' => 'You do not have permissions to set the PeerGatewayIp parameter.'], + ['code' => 'Forbidden.PeeringSubnetMaskNotAllowedByCaller', 'message' => 'The caller is not allowed to specify the PeeringSubnetMask parameter.', 'http_code' => null, 'description' => 'You are not allowed to specify PeeringSubnetMask.'], + ['code' => 'Forbidden.PhysicalConnection', 'message' => 'Authentication is failed for PhysicalConnectionId', 'http_code' => 400, 'description' => 'You do not have the permissions to set the PhysicalConnectionId parameter.'], + ['code' => 'Forbidden.PhysicalConnection', 'message' => 'Only the parent physical connect account is allowed to update these parameters.', 'http_code' => 400, 'description' => 'You can modify these parameters for only the physical port to which the shared port belongs.'], + ['code' => 'Forbidden.PhysicalConnection', 'message' => 'Only parent physical connection account is allowed to modify the virtual physical connection.', 'http_code' => 400, 'description' => 'You can modify only the physical port to which the shared port belongs.'], + ['code' => 'Forbidden.RAM', 'message' => 'User not authorized to operate on the specified resource', 'http_code' => null, 'description' => 'The RAM user is unauthorized to perform the operation.'], + ['code' => 'Forbidden.RAM', 'message' => 'The user is not authorized to operate on the specified resource, or the API operation does not support RAM.', 'http_code' => 400, 'description' => 'The RAM authentication failed.'], + ['code' => 'Forbidden.RegionNotFound', 'message' => 'Specified region is not found during access authentication.', 'http_code' => null, 'description' => 'The specified region does not exist. Check whether the specified region ID is valid.'], + ['code' => 'Forbidden.RegionNotFound', 'message' => 'Specified instance is not found during access authentication.', 'http_code' => 404, 'description' => 'The error message returned because the region is not supported.'], + ['code' => 'Forbidden.RiskControl', 'message' => 'This operation is forbidden by Aliyun RiskControl system.', 'http_code' => null, 'description' => 'The operation is forbidden by the risk control system.'], + ['code' => 'Forbidden.SecurityGroupNotFound', 'message' => 'The specified SecurityGroup is not found', 'http_code' => null, 'description' => 'The security group does not exist.'], + ['code' => 'Forbidden.SnapshotNotFound', 'message' => 'The specified Snapshot is not found', 'http_code' => null, 'description' => 'The snapshot does not exist.'], + ['code' => 'Forbidden.SnatEntryCountLimited', 'message' => 'SNAT entry in the specified SNAT table reach it?s limit.', 'http_code' => null, 'description' => 'The number of SNAT entries has reached the upper limit.'], + ['code' => 'Forbidden.SnatEntryCountLimited', 'message' => 'SNAT entry in the specified SNAT table reach its limit.', 'http_code' => 400, 'description' => 'The number of SNAT entries has reached the upper limit.'], + ['code' => 'Forbidden.SourceVSwitchId.Duplicated', 'message' => 'The specified SourceCIDRis duplicated.', 'http_code' => null, 'description' => 'An SNAT entry is already created for the specified vSwitch.'], + ['code' => 'Forbidden.SourceVSwitchId.IncludeHaVip', 'message' => 'There is some HaVips under specified VSwitch', 'http_code' => 400, 'description' => 'The specified vSwitch is associated with HAVIPs.'], + ['code' => 'Forbidden.SubUser', 'message' => 'User not authorized to operate on the specified resource as your account is created by another user.', 'http_code' => 403, 'description' => 'The error message returned because you are unauthorized to perform this operation on the specified resource. Acquire the required permissions and try again.'], + ['code' => 'Forbidden.TagKey.Duplicated', 'message' => 'The specified tag key already exists.', 'http_code' => 400, 'description' => 'The tag resources are duplicate.'], + ['code' => 'Forbidden.TagKeys', 'message' => 'The request do not allow to operate the tag keys', 'http_code' => 400, 'description' => 'You do not have the permissions to set the TagKeys parameter.'], + ['code' => 'Forbidden.TagKeys', 'message' => 'The request does not allow operate this tagkeys', 'http_code' => 400, 'description' => 'The error message returned because you cannot manage the tag key by calling the operation.'], + ['code' => 'Forbidden.TransitRouterAttachmentExist', 'message' => 'The operation is not allowed because transit router attachment still exists.', 'http_code' => 400, 'description' => 'You are not allowed to delete the VPC because transit router connections exist.'], + ['code' => 'Forbidden.UnassociateMaster', 'message' => 'Unassociating a master instance is not allowed unless the parameter Force is True.', 'http_code' => null, 'description' => 'You cannot disassociate the HAVIP from a primary instance when Force is set to False.'], + ['code' => 'Forbidden.VbrAttached', 'message' => 'cannot terminate physical connection when virtual border routers are still attached.', 'http_code' => null, 'description' => 'Failed to disable the Express Connect circuit because the Express Connect circuit is associated with a VBR.'], + ['code' => 'Forbidden.VBRExists', 'message' => 'physical connection owner\'s vbr still exists.', 'http_code' => null, 'description' => 'The VBR of the Express Connect circuit still exists.'], + ['code' => 'Forbidden.VBRExists', 'message' => 'vbr owner\'s vbr still exists.', 'http_code' => null, 'description' => 'The VBR still exists.'], + ['code' => 'Forbidden.VBRExists', 'message' => 'The vbr still exists.', 'http_code' => 400, 'description' => 'The VBR still exists and the port cannot be deleted.'], + ['code' => 'Forbidden.VbrNotAllowModifySiteLink', 'message' => 'Can not modify virtualBorderRouter site link, please request authority.', 'http_code' => 400, 'description' => 'The cross-region connection of the border router cannot be modified. Please apply for permission.'], + ['code' => 'Forbidden.VlanIdNotAllowedByCaller', 'message' => 'The caller is not allowed to specify the VlanId.', 'http_code' => null, 'description' => 'You are not allowed to specify the VLAN ID.'], + ['code' => 'Forbidden.VpcNotFound', 'message' => 'Specified VPC can not found.', 'http_code' => 400, 'description' => 'The specified VPC does not exist.'], + ['code' => 'Forbidden.VpconnAliUid', 'message' => 'Vpconn UID is forbidden to belong to a RAM account or partner account.', 'http_code' => 400, 'description' => 'The UID of a shared port cannot be the UID of a RAM user or a partner account.'], + ['code' => 'Forbidden.VRouterNotFound', 'message' => 'specified virtual switch is not found during access authentication.', 'http_code' => 400, 'description' => 'The specified vSwitch is not found during access authentication.'], + ['code' => 'ForbiddenAction', 'message' => 'The user dose not supported this action.', 'http_code' => null, 'description' => 'You are not authorized to perform this operation.'], + ['code' => 'ForbiddenAction', 'message' => 'The user does not supported this action.', 'http_code' => 400, 'description' => 'You do not have the required permissions.'], + ['code' => 'ForbiddenAction', 'message' => 'The user does not support this action.', 'http_code' => 400, 'description' => 'You do not have the required permissions.'], + ['code' => 'ForbiddenRelease', 'message' => 'Forbidden to release a prepaid instance within validity period', 'http_code' => null, 'description' => 'You cannot release a subscription VPN gateway within the subscription duration.'], + ['code' => 'FORBIDDEN_USE_VPC_AS_INTERNET_GATEWAY', 'message' => 'The Specified CIDR must be in vpc CIDR.', 'http_code' => null, 'description' => 'The specified CIDR block must be a subset of the VPC CIDR block.'], + ['code' => 'Forbindden', 'message' => 'The specified Instance already bind eip', 'http_code' => null, 'description' => 'The ECS instance is associated with an EIP. Disassociate the EIP from the ECS instance before you create forwarding rules.'], + ['code' => 'ForwardEntry.Duplicated', 'message' => 'The specified ExternalIp', 'http_code' => null, 'description' => 'The IP address already exists. Enter a new IP address.'], + ['code' => 'FrequentPurchase.EIP', 'message' => 'The EIP is purchased too frequently.', 'http_code' => 400, 'description' => 'Frequent purchase and release of EIPs has been detected on your account. New purchases are temporarily unavailable.'], + ['code' => 'FUWU_BIZ_COMMODITY_VERIFY_FAIL', 'message' => '你购买的模块非法', 'http_code' => null, 'description' => 'The module that you purchased is invalid.'], + ['code' => 'GetNetworkInterfaceInfoError', 'message' => 'Failed to obtain information of secondary ENIs.', 'http_code' => 403, 'description' => 'The system failed to query information about the secondary ENI.'], + ['code' => 'HaveConnectionBetweenRouters', 'message' => 'Have connection between routers', 'http_code' => 400, 'description' => 'A connection is established between the two routers.'], + ['code' => 'IAbs.InvalidStatus.ValueNotSupported', 'message' => 'status is not supported.', 'http_code' => 400, 'description' => 'The status is invalid.'], + ['code' => 'Idempotence.Processing', 'message' => 'Idempotence request is processing.', 'http_code' => 400, 'description' => 'being processed by idempotent requests.'], + ['code' => 'IdempotentParameterMismatch', 'message' => 'Request uses a client token in a previous request but is not identical to that request.', 'http_code' => null, 'description' => 'The client token used in the request is invalid.'], + ['code' => 'IellgalParameter.OwnerAccount', 'message' => 'The specified parameter OwnerAccount is not valid.', 'http_code' => 400, 'description' => 'The specified parameter OwnerAccount is illegal.'], + ['code' => 'IllegalParam.%s', 'message' => 'The param of %s is illegal.', 'http_code' => 400, 'description' => 'The parameter is invalid.'], + ['code' => 'IllegalParam.AccessModeValue', 'message' => 'The request parameter AccessMode.ModeValue is illegal.', 'http_code' => 400, 'description' => 'The request parameter AccessMode.ModeValue is illegal.'], + ['code' => 'IllegalParam.AccessTunnelType', 'message' => 'The request parameter AccessMode.TunnelType is illegal.', 'http_code' => 400, 'description' => 'The request parameter AccessMode.TunnelType is illegal.'], + ['code' => 'IllegalParam.Action', 'message' => 'The specified Action is invalid.', 'http_code' => 400, 'description' => 'The action is invalid.'], + ['code' => 'IllegalParam.AddressPoolType', 'message' => 'The specified addressPoolType is invalid.', 'http_code' => 400, 'description' => 'The specified address pool type is invalid.'], + ['code' => 'IllegalParam.AddressType', 'message' => 'The specified AddressType is illegal.', 'http_code' => 400, 'description' => 'The specified input AddressType is illegal.'], + ['code' => 'IllegalParam.AggregationInterval', 'message' => 'The param of aggregationInterval is illegal.', 'http_code' => 400, 'description' => 'The sampling interval parameter is invalid.'], + ['code' => 'IllegalParam.AnyPortNotZero', 'message' => 'Any port port must be zero.', 'http_code' => 400, 'description' => 'You must set the destination port and source port to 0 when IpProtocol is set to Any.'], + ['code' => 'IllegalParam.Asn', 'message' => 'The specified Asn is invalid.', 'http_code' => 400, 'description' => 'The error message returned because the ASN is invalid.'], + ['code' => 'IllegalParam.AssociatedInstanceId', 'message' => 'The parameter of AssociatedInstanceId is illegal.', 'http_code' => 400, 'description' => 'The parameter AssociatedInstanceId is illegal.'], + ['code' => 'IllegalParam.AssociatedPhysicalConnections', 'message' => 'The specified AssociatedPhysicalConnections is illegal.', 'http_code' => 400, 'description' => 'The specified AssociatedPhysicalConnections is illegal.'], + ['code' => 'IllegalParam.AttachmentId', 'message' => 'The attachment is invalid.', 'http_code' => 400, 'description' => 'The specified transit router is invalid.'], + ['code' => 'IllegalParam.AuthMethod', 'message' => 'One authentication method (Psk or IDaaS) should be specified at least.', 'http_code' => 400, 'description' => 'You must specify at least one authentication method, such as PSK or IDaaS.'], + ['code' => 'IllegalParam.Bandwidth', 'message' => 'The specified Bandwidth is invalid.', 'http_code' => 400, 'description' => 'The specified bandwidth value is invalid.'], + ['code' => 'IllegalParam.Bandwidth', 'message' => 'The param of Bandwidth [%s] is illegal.', 'http_code' => 400, 'description' => 'The specified bandwidth value is invalid.'], + ['code' => 'IllegalParam.Bandwidth', 'message' => 'Illegal Param of Bandwidth.', 'http_code' => 400, 'description' => 'The Bandwidth parameter is set to an invalid value.'], + ['code' => 'IllegalParam.Bandwidth', 'message' => 'The param of bandwidth is illegal.', 'http_code' => 400, 'description' => 'The Bandwidth parameter is set to an invalid value.'], + ['code' => 'IllegalParam.Bandwidth', 'message' => '[%s]', 'http_code' => 400, 'description' => 'The bandwidth [%s] of the Express Connect circuit is invalid.'], + ['code' => 'IllegalParam.Bandwidth', 'message' => 'Invalid Bandwidth.', 'http_code' => 400, 'description' => 'The bandwidth of the Express Connect circuit is invalid.'], + ['code' => 'IllegalParam.Bandwidth', 'message' => 'The param of %s is illegal.', 'http_code' => 400, 'description' => 'Invalid Bandwidth value. See the API reference and specify a valid value.'], + ['code' => 'IllegalParam.BgpConfig', 'message' => 'The specified BgpConfig is invalid.', 'http_code' => 400, 'description' => 'The BGP configuration is invalid.'], + ['code' => 'IllegalParam.BgpGroupLocalAsn', 'message' => 'VBR BgpGroup localAsn must same with ECR asn.', 'http_code' => 400, 'description' => 'The LocalAsn of the VBR must be the same as the ASN of the ECR.'], + ['code' => 'IllegalParam.BgpGroupLocalAsn', 'message' => 'Vbr bgp group local asn must same with ecr asn.', 'http_code' => 400, 'description' => 'The Alibaba Cloud BGP AS number of the BGP group must be the same as that of the ECR.'], + ['code' => 'IllegalParam.ChargeType', 'message' => 'The param of %s is illegal.', 'http_code' => 400, 'description' => 'Invalid ChargeType value. See the API reference and specify a valid value.'], + ['code' => 'IllegalParam.ChargeType', 'message' => 'The parameter of ChargeType is illegal.', 'http_code' => 400, 'description' => 'The ChargeType parameter is invalid.'], + ['code' => 'IllegalParam.CidrBlock', 'message' => 'The param of (%s) is illegal.', 'http_code' => 400, 'description' => 'The CIDR block is invalid.'], + ['code' => 'IllegalParam.CidrBlock', 'message' => 'The specified CidrBlock is illegal.', 'http_code' => 400, 'description' => 'The operation failed because CidrBlock is set to an invalid value.'], + ['code' => 'IllegalParam.CidrBlock', 'message' => 'The param of cidrBlock is illegal.', 'http_code' => 400, 'description' => 'The error message returned because the value of the cidrBlock parameter is invalid.'], + ['code' => 'IllegalParam.CidrBlock', 'message' => 'The param of CidrBlock [%s] is illegal.', 'http_code' => 400, 'description' => 'The CidrBlock parameter is set to an invalid value.'], + ['code' => 'IllegalParam.CidrBlock', 'message' => 'The specified CidrBlock (%s) is illegal.', 'http_code' => 400, 'description' => 'The CidrBlock parameter is set to an invalid value.'], + ['code' => 'IllegalParam.CidrBlockMask', 'message' => 'The param of CidrBlock Mask [%s] is illegal.', 'http_code' => 400, 'description' => 'The subnet mask of the CIDR block is invalid.'], + ['code' => 'IllegalParam.CidrMask', 'message' => 'The input CIDR mask is illegal.', 'http_code' => 400, 'description' => 'The input CIDR mask is illegal.'], + ['code' => 'IllegalParam.CidrName', 'message' => 'The param of cidrName is illegal.', 'http_code' => 400, 'description' => 'The specified cidrName is invalid.'], + ['code' => 'IllegalParam.ClientIpPool', 'message' => 'The specified ClientIpPool (%s) is invalid.', 'http_code' => 400, 'description' => 'The client CIDR block (%s) is invalid.'], + ['code' => 'IllegalParam.ClientToken', 'message' => 'Token verify failed because client token length too long.', 'http_code' => 400, 'description' => 'The ClientToken parameter is set to an invalid value.'], + ['code' => 'IllegalParam.CompanyLocalizedName', 'message' => '[%s]', 'http_code' => 400, 'description' => 'The localized name [%s] of the company is invalid.'], + ['code' => 'IllegalParam.CompanyLocalizedName', 'message' => 'Invalid CompanyLocalizedName.', 'http_code' => 400, 'description' => 'The localized name of the company is invalid.'], + ['code' => 'IllegalParam.CompanyName', 'message' => '[%s]', 'http_code' => 400, 'description' => 'The company name [%s] is invalid.'], + ['code' => 'IllegalParam.CompanyName', 'message' => 'Invalid CompanyName.', 'http_code' => 400, 'description' => 'The company name is invalid.'], + ['code' => 'IllegalParam.CrossBorderBandwidth', 'message' => 'CrossBorder bandwidth error.', 'http_code' => 400, 'description' => 'The inter-region bandwidth plan is invalid.'], + ['code' => 'IllegalParam.Day', 'message' => 'The specified parameter day is illegal.', 'http_code' => 400, 'description' => 'The specified input parameter Day is invalid.'], + ['code' => 'IllegalParam.Description', 'message' => 'The param of Description [%s] is illegal.', 'http_code' => 400, 'description' => 'The error message returned because the Description parameter is set to an invalid value. Specify a valid values and try again.'], + ['code' => 'IllegalParam.Description', 'message' => 'The parameter of Description is illegal.', 'http_code' => 400, 'description' => 'The Description parameter is invalid.'], + ['code' => 'IllegalParam.DestCidrBlock', 'message' => 'The destCidrBlock is invalid.', 'http_code' => 400, 'description' => 'The specified destination address is invalid.'], + ['code' => 'IllegalParam.DestinationCidrBlock', 'message' => 'The param of DestinationCidrBlock is illegal.', 'http_code' => 400, 'description' => 'The param of DestinationCidrBlock is illegal.'], + ['code' => 'IllegalParam.DestinationCidrIp', 'message' => 'Param DestinationCidrIp illegal.', 'http_code' => 400, 'description' => 'Illegal parameter: destination CIDR.'], + ['code' => 'IllegalParam.DetectMultiplier', 'message' => 'The specified DetectMultiplier is not in proper range.', 'http_code' => 400, 'description' => 'DetectMultiplier parameters are not in the proper range.'], + ['code' => 'IllegalParam.DhcpOptionsSetDescription', 'message' => 'The specified DhcpOptionsSetDescription is invalid.', 'http_code' => 400, 'description' => 'DhcpOptionsSetDescription is set to an invalid value.'], + ['code' => 'IllegalParam.DhcpOptionsSetName', 'message' => 'The specified DhcpOptionsSetName is invalid.', 'http_code' => 400, 'description' => 'DhcpOptionsSetName is set to an invalid value.'], + ['code' => 'IllegalParam.DomainName', 'message' => 'The specified DomainName is invalid.', 'http_code' => 400, 'description' => 'DomainName is set to an invalid value.'], + ['code' => 'IllegalParam.DomainName', 'message' => 'The specified DomainName is invalid.', 'http_code' => 400, 'description' => 'The error message returned because DomainName is set to an invalid value.'], + ['code' => 'IllegalParam.DomainNameServers', 'message' => 'The specified DomainNameServers is invalid.', 'http_code' => 400, 'description' => 'DomainNameServers is set to an invalid value.'], + ['code' => 'IllegalParam.EgressAclEntryId', 'message' => 'The specified EgressAclEntryId is invalid.', 'http_code' => 400, 'description' => 'The specified EgressAclEntryId is invalid.'], + ['code' => 'IllegalParam.EnableBgp', 'message' => 'VPN connection must enable BGP when VPN gateway has enabled BGP.', 'http_code' => 400, 'description' => 'The error message returned because the VPN connection must use BGP if BGP is enabled for the VPN gateway.'], + ['code' => 'IllegalParam.EnableIpv6', 'message' => 'EnableIpv6 cannot be false when Ipv6CidrBlock is specified.', 'http_code' => 400, 'description' => 'EnableIpv6 cannot be false when Ipv6CidrBlock is specified'], + ['code' => 'IllegalParam.EnableIpv6', 'message' => 'The parameter of EnableIpv6 is illegal.', 'http_code' => 400, 'description' => 'The EnableIpv6 parameter is invalid.'], + ['code' => 'IllegalParam.Filter.Key', 'message' => 'The filter parameter Key is invalid.', 'http_code' => 400, 'description' => 'The filter parameter Key is invalid.'], + ['code' => 'IllegalParam.Filter.Value', 'message' => 'The filter parameter Value is illegal.', 'http_code' => 400, 'description' => 'The filter parameter Value is illegal.'], + ['code' => 'IllegalParam.FilterKey.ResourceType', 'message' => 'Filter parameters do not support entering only ResourceId or ResourceName without entering ResourceType.', 'http_code' => 400, 'description' => 'Filter parameters do not support entering only ResourceId or ResourceName without entering ResourceType.'], + ['code' => 'IllegalParam.GatewayType', 'message' => 'The param of %s is illegal.', 'http_code' => 400, 'description' => 'Invalid GatewayType value.'], + ['code' => 'IllegalParam.HcSourceIp', 'message' => 'The specified healthCheck Ip is not valid.', 'http_code' => 400, 'description' => 'The IP address used for health checks is invalid.'], + ['code' => 'IllegalParam.HealthcheckIp', 'message' => 'Healthcheck ip cannot equal with instance ip.', 'http_code' => 400, 'description' => 'The IP address configured for health checks cannot be the same as the IP address of the instance.'], + ['code' => 'IllegalParam.IDaaSApplicationId', 'message' => 'The specified IDaaS application Id is not illegal, the application instance needs to be created based on the dedicated SSL VPN template.', 'http_code' => 400, 'description' => 'The specified IDaaS application instance ID is invalid. The application instance must be created based on the dedicated SSL VPN template.'], + ['code' => 'IllegalParam.IngressAclEntryId', 'message' => 'The specified IngressAclEntryId is invalid.', 'http_code' => 400, 'description' => 'The specified IngressAclEntryId is invalid.'], + ['code' => 'IllegalParam.instanceId', 'message' => 'The param of InstanceId is illegal.', 'http_code' => 404, 'description' => 'The VBR switch group instance parameter is illegal.'], + ['code' => 'IllegalParam.InstanceType', 'message' => 'The specified instance type is invalid. Only ECS instances and network interface are allowed.', 'http_code' => 400, 'description' => 'The type of the associated instance does not support this operation.'], + ['code' => 'IllegalParam.InstanceType', 'message' => 'The parameter of InstanceType is illegal.', 'http_code' => 400, 'description' => 'The InstanceType parameter is invalid.'], + ['code' => 'IllegalParam.InternetChargeType', 'message' => 'The param of %s is illegal.', 'http_code' => 400, 'description' => 'Invalid InternetChargeType value. See the API reference and specify a valid value.'], + ['code' => 'IllegalParam.IpAddress', 'message' => 'The specified IP address (%s) is illegal.', 'http_code' => 400, 'description' => 'The IP address is invalid.'], + ['code' => 'IllegalParam.IpAddress', 'message' => 'The specified IpAddress (%s) is illegal.', 'http_code' => 400, 'description' => 'The IpAddress parameter is set to an invalid value.'], + ['code' => 'IllegalParam.IpAddress', 'message' => 'The param of %s is illegal.', 'http_code' => 400, 'description' => 'The IP address format is invalid. See the API reference and specify a valid IP address.'], + ['code' => 'IllegalParam.IpAddress', 'message' => 'The specified IpAddress is illegal.', 'http_code' => 400, 'description' => 'The specified IpAddress is illegal'], + ['code' => 'IllegalParam.IpamPool', 'message' => 'The specified IPAM pool cannot be empty.', 'http_code' => 400, 'description' => 'The IPAM pool cannot be empty.'], + ['code' => 'IllegalParam.Ipv4CidrMask', 'message' => 'The specified Ipv4CidrMask is illegal.', 'http_code' => 400, 'description' => 'Invalid Ipv4CidrMask.'], + ['code' => 'IllegalParam.Ipv6Address', 'message' => 'IllegalParam.Ipv6Address %s', 'http_code' => 400, 'description' => 'The error message returned because the IPv6 address is invalid.'], + ['code' => 'IllegalParam.Ipv6Address', 'message' => 'The param of %s is illegal.', 'http_code' => 400, 'description' => 'The IPv6 address is invalid.'], + ['code' => 'IllegalParam.Ipv6AddressId', 'message' => 'IllegalParam.Ipv6AddressId %s', 'http_code' => 400, 'description' => 'The error message returned because the ID of the IPv6 address is invalid.'], + ['code' => 'IllegalParam.Ipv6Cidr', 'message' => 'The specified Ipv6CidrBlock is invalid.', 'http_code' => 400, 'description' => 'Ipv6CidrBlock is set to an invalid value.'], + ['code' => 'IllegalParam.Ipv6CidrBlock', 'message' => 'The param of %s is illegal.', 'http_code' => 400, 'description' => 'IPv6 network segment is illegal'], + ['code' => 'IllegalParam.Ipv6CidrBlock', 'message' => 'The parameter of Ipv6CidrBlock is illegal.', 'http_code' => 400, 'description' => 'The Ipv6CidrBlock parameter is invalid.'], + ['code' => 'IllegalParam.Ipv6CidrType', 'message' => 'The parameter of IPv6CidrType is illegal.', 'http_code' => 400, 'description' => 'The IPv6CidrType parameter is invalid.'], + ['code' => 'IllegalParam.Ipv6Isp', 'message' => 'The specified Ipv6Isp is illegal.', 'http_code' => 400, 'description' => 'The specified Ipv6Isp is illegal.'], + ['code' => 'IllegalParam.Ipv6Prefix', 'message' => 'The param of Ipv6Prefix is illegal.', 'http_code' => 400, 'description' => 'The specified input Ipv6Prefix is illegal.'], + ['code' => 'IllegalParam.ipVersion', 'message' => 'The IP version does not match.', 'http_code' => 400, 'description' => 'The operation failed because the IP version does not match.'], + ['code' => 'IllegalParam.ipVersion', 'message' => 'The param of ipVersion is illegal', 'http_code' => 400, 'description' => 'The IP version is invalid.'], + ['code' => 'IllegalParam.IpVersion', 'message' => 'Param IpVersion illegal.', 'http_code' => 400, 'description' => 'Illegal parameter: IpVersion'], + ['code' => 'IllegalParam.IpVersion', 'message' => 'The param of IPV6 is illegal.', 'http_code' => 400, 'description' => 'The parameter IpVersion is abnormal. Please check the parameter and try again.'], + ['code' => 'IllegalParam.IpVersion', 'message' => 'The parameter of IpVersion is illegal.', 'http_code' => 400, 'description' => ''], + ['code' => 'IllegalParam.Isp', 'message' => 'The param of %s is illegal.', 'http_code' => 400, 'description' => 'The EIP cannot be allocated because the ISP is invalid.'], + ['code' => 'IllegalParam.Isp', 'message' => 'The param of Isp [%s] is illegal.', 'http_code' => 400, 'description' => 'The error message returned because the Isp parameter is set to an invalid value. Specify a valid value and try again.'], + ['code' => 'IllegalParam.JobDuration', 'message' => 'The specified parameter JobDuration is illegal.', 'http_code' => 400, 'description' => 'The task duration entered is illegal.'], + ['code' => 'IllegalParam.JobId', 'message' => 'The specified parameter JobId is illegal.', 'http_code' => 400, 'description' => 'The entered failover test job ID is invalid.'], + ['code' => 'IllegalParam.JobType', 'message' => 'The specified parameter JobType is illegal.', 'http_code' => 400, 'description' => 'The task type entered is illegal.'], + ['code' => 'IllegalParam.LeaseTime', 'message' => 'LeaseTime [%s] is illegal.', 'http_code' => 400, 'description' => 'The specified LeaseTime parameter is illegal'], + ['code' => 'IllegalParam.LineSPContactInfo', 'message' => 'LineSPContactInfo is illegal.', 'http_code' => 400, 'description' => 'The contact information of the operator\'s line operation and maintenance is illegal.'], + ['code' => 'IllegalParam.LineType', 'message' => '[%s]', 'http_code' => 400, 'description' => 'The Express Connect circuit type [%s] is invalid.'], + ['code' => 'IllegalParam.LineType', 'message' => 'Invalid LineType.', 'http_code' => 400, 'description' => 'The Express Connect circuit type is invalid.'], + ['code' => 'IllegalParam.LocalAsn', 'message' => 'The specified LocalAsn is invalid.', 'http_code' => 400, 'description' => 'The local ASN is invalid.'], + ['code' => 'IllegalParam.LocalAsn', 'message' => 'The param of LocalAsn is illegal', 'http_code' => 400, 'description' => 'The LocalAsn parameter is set to an invalid value.'], + ['code' => 'IllegalParam.LocalBgpIp', 'message' => 'The specified LocalBgpIp is invalid.', 'http_code' => 400, 'description' => 'The local BGP IP address is invalid.'], + ['code' => 'IllegalParam.LocalGatewayIpAndMask', 'message' => 'The LocalGatewayIpAndMask value is invalid.', 'http_code' => 400, 'description' => 'The error message returned because the IP address of the local gateway and the subnet mask are invalid. Specify a valid IP address and subnet mask and try again.'], + ['code' => 'IllegalParam.LocalSubnet', 'message' => 'The specified "LocalSubnet" (%s) is invalid.', 'http_code' => 400, 'description' => 'The specified "LocalSubnet" (%s) is invalid.'], + ['code' => 'IllegalParam.LogProjectOrLogStore', 'message' => 'The ProjectName and LogStoreName parameters are invalid and must be passed in at the same time or not passed at the same time.', 'http_code' => 400, 'description' => 'The ProjectName and LogStoreName parameters are invalid and must be passed in at the same time or not passed at the same time.'], + ['code' => 'IllegalParam.MaxResults', 'message' => 'MaxResults is invalid.', 'http_code' => 400, 'description' => 'The error message returned because MaxResults is set to an invalid value.'], + ['code' => 'IllegalParam.MinRxInterval', 'message' => 'The specified MinRxInterval is not in proper range.', 'http_code' => 400, 'description' => 'The specified MinRxInterval is not in the proper range.'], + ['code' => 'IllegalParam.MinTxInterval', 'message' => 'The specified MinTxInterval is not in proper range.', 'http_code' => 400, 'description' => 'The specified MinTxInterval is not in the proper range.'], + ['code' => 'IllegalParam.Mode', 'message' => 'The specified value of the parameter Mode is invalid.', 'http_code' => 400, 'description' => 'The specified value of the parameter Mode is invalid.'], + ['code' => 'IllegalParam.Mode', 'message' => 'The specified Mode is invalid.', 'http_code' => 400, 'description' => 'The specified Mode is invalid.'], + ['code' => 'IllegalParam.Mode', 'message' => 'The parameter of Mode is illegal.', 'http_code' => 400, 'description' => 'The parameter Mode is invalid.'], + ['code' => 'IllegalParam.Name', 'message' => 'The param of Name [%s] is illegal.', 'http_code' => 400, 'description' => 'The error message returned because the Name parameter is set to an invalid value. Specify a valid value and try again.'], + ['code' => 'IllegalParam.NatIpPort', 'message' => 'The param of NatIpPort is illegal.', 'http_code' => 400, 'description' => 'Invalid NatIpPort value.'], + ['code' => 'IllegalParam.NetworkInterfaceId', 'message' => 'The param of NetworkInterfaceId is illegal.', 'http_code' => 400, 'description' => 'Invalid NetworkInterfaceId value.'], + ['code' => 'IllegalParam.NetworkType', 'message' => 'The specified NetworkType (%s) is invalid.', 'http_code' => 400, 'description' => 'The network type is invalid.'], + ['code' => 'IllegalParam.NetworkType', 'message' => 'IllegalParam.NetworkType %s', 'http_code' => 400, 'description' => 'The error message returned because NetworkType is set to an invalid value.'], + ['code' => 'IllegalParam.NetworkType', 'message' => 'The param of %s is illegal.', 'http_code' => 400, 'description' => 'Invalid NetworkType value.'], + ['code' => 'IllegalParam.NextToken', 'message' => 'The specified NextToken is invalid.', 'http_code' => 400, 'description' => 'The specified NextToken is invalid.'], + ['code' => 'IllegalParam.NextTokenExpired', 'message' => 'The specified NextToken is invalid.', 'http_code' => 400, 'description' => 'The specified NextToken is invalid.'], + ['code' => 'IllegalParam.NextTokenExpired', 'message' => 'The parameter of NextTokenExpired is illegal.', 'http_code' => 400, 'description' => 'The NextTokenExpired parameter is invalid.'], + ['code' => 'IllegalParam.NoNameAuthentication', 'message' => 'Aliyun account has not passed the real name authentication and do not meet the purchase conditions.', 'http_code' => 400, 'description' => 'You have not passed the real name authentication and do not meet the purchase conditions. Please log in to the user center for real-name authentication.'], + ['code' => 'IllegalParam.OrderKey', 'message' => 'The specified OrderKey is invalid.', 'http_code' => 400, 'description' => 'The specified OrderKey is invalid.'], + ['code' => 'IllegalParam.OrderMode', 'message' => 'The param of OrderMode'."\0".' is illegal.', 'http_code' => 400, 'description' => 'The OrderMode parameter is set to an invalid value.'], + ['code' => 'IllegalParam.OrderMode', 'message' => 'The param of OrderMode is illegal.', 'http_code' => 400, 'description' => 'The OrderMode parameter is set to an invalid value.'], + ['code' => 'IllegalParam.OrderType', 'message' => 'The specified OrderType is invalid.', 'http_code' => 400, 'description' => 'The specified OrderType is invalid.'], + ['code' => 'IllegalParam.OwnerAliUid', 'message' => 'The specified AliUid is invalid.', 'http_code' => 400, 'description' => 'The user ID is invalid.'], + ['code' => 'IllegalParam.OwnerAliUid', 'message' => 'The param of VbrOwnerId'."\0".' is illegal.', 'http_code' => 400, 'description' => 'The VbrOwnerId parameter is set to an invalid value.'], + ['code' => 'IllegalParam.OwnerAliUid', 'message' => 'The param of VbrOwnerId is illegal.', 'http_code' => 400, 'description' => 'The UID of the resource owner is invalid.'], + ['code' => 'IllegalParam.PeerAsn', 'message' => 'The param of PeerAsn is illegal', 'http_code' => 400, 'description' => 'The PeerAsn parameter is set to an invalid value.'], + ['code' => 'IllegalParam.PeeringIpv6SubnetMask', 'message' => 'The PeeringIpv6SubnetMask value is invalid.', 'http_code' => 400, 'description' => 'The error message returned because the subnet mask is invalid. Specify a valid subnet mask and try again.'], + ['code' => 'IllegalParam.peerIpAddress', 'message' => 'The param of peerIpAddress is illegal', 'http_code' => 400, 'description' => 'The peerIpAddress parameter is set to an invalid value.'], + ['code' => 'IllegalParam.PeerIpAddress', 'message' => 'The param of PeerIpAddress is illegal.', 'http_code' => 400, 'description' => 'The peer IP address is invalid.'], + ['code' => 'IllegalParam.PeerLocation', 'message' => '[%s]', 'http_code' => 400, 'description' => 'The location [%s] of the Express Connect circuit is invalid.'], + ['code' => 'IllegalParam.PeerLocation', 'message' => 'Invalid PeerLocation.', 'http_code' => 400, 'description' => 'The location of the Express Connect circuit is invalid.'], + ['code' => 'IllegalParam.PmCertificateNo', 'message' => 'The specified PmCertificateNo (%s) is illegal.', 'http_code' => 400, 'description' => 'The PmCertificateNo parameter is set to an invalid value.'], + ['code' => 'IllegalParam.PmCertificateNo', 'message' => '[%s]', 'http_code' => 400, 'description' => 'The certificate number [%s] of the engineer is invalid.'], + ['code' => 'IllegalParam.PmCertificateNo', 'message' => 'Invalid PmCertificateNo.', 'http_code' => 400, 'description' => 'The certificate number of the engineer is invalid.'], + ['code' => 'IllegalParam.PmCertificateType', 'message' => '[%s]', 'http_code' => 400, 'description' => 'The certificate type [%s] of the engineer is invalid.'], + ['code' => 'IllegalParam.PmCertificateType', 'message' => 'Invalid PmCertificateType.', 'http_code' => 400, 'description' => 'The certificate type of the engineer is invalid.'], + ['code' => 'IllegalParam.PmContactInfo', 'message' => '[%s]', 'http_code' => 400, 'description' => 'The contact information [%s] about the engineer is invalid.'], + ['code' => 'IllegalParam.PmContactInfo', 'message' => 'Invalid PmContactInfo.', 'http_code' => 400, 'description' => 'The contact information about the engineer is invalid.'], + ['code' => 'IllegalParam.PmGender', 'message' => '[%s]', 'http_code' => 400, 'description' => 'The engineer gender [%s] is invalid.'], + ['code' => 'IllegalParam.PmGender', 'message' => 'Invalid PmGender.', 'http_code' => 400, 'description' => 'The engineer gender is invalid.'], + ['code' => 'IllegalParam.PmName', 'message' => '[%s]', 'http_code' => 400, 'description' => 'The engineer name [%s] is invalid.'], + ['code' => 'IllegalParam.PmName', 'message' => 'Invalid PmName.', 'http_code' => 400, 'description' => 'The engineer name is invalid.'], + ['code' => 'IllegalParam.Policy', 'message' => 'Param Policy illegal.', 'http_code' => 400, 'description' => 'Illegal parameter: Policy'], + ['code' => 'IllegalParam.PortRange', 'message' => 'The specified port range is invalid.', 'http_code' => 400, 'description' => 'The port range is invalid.'], + ['code' => 'IllegalParam.Priority', 'message' => 'The specified Priority is invalid.', 'http_code' => 400, 'description' => 'The priority is invalid.'], + ['code' => 'IllegalParam.Priority', 'message' => 'The specified Priority is illegal or the same as other mirroring sessions.', 'http_code' => 400, 'description' => 'The specified Priority is illegal or identical to another mirroring session'], + ['code' => 'IllegalParam.PrivateIpAddress', 'message' => 'The specified PrivateIpAddress is illegal.', 'http_code' => 400, 'description' => 'The specified PrivateIpAddress is invalid. Check the parameter constraints and try again after modification.'], + ['code' => 'IllegalParam.ProductType', 'message' => 'The specified ProductType is illegal.', 'http_code' => 400, 'description' => 'Illegal parameter ProductType'], + ['code' => 'IllegalParam.Protocol', 'message' => 'The specified Protocol is invalid.', 'http_code' => 400, 'description' => 'The protocol is invalid.'], + ['code' => 'IllegalParam.Protocol', 'message' => 'Param Protocol illegal.', 'http_code' => 400, 'description' => 'Illegal parameter: Protocol.'], + ['code' => 'IllegalParam.RegionId', 'message' => 'The specified regionId is illegal.', 'http_code' => 400, 'description' => 'The regionId parameter is set to an invalid value.'], + ['code' => 'IllegalParam.RemoteSubnet', 'message' => 'The specified "RemoteSubnet" (%s) is invalid.', 'http_code' => 400, 'description' => 'The specified "RemoteSubnet" (%s) is invalid.'], + ['code' => 'IllegalParam.ReservedCidrMask', 'message' => 'IllegalParam.ReservedCidrMask', 'http_code' => 400, 'description' => 'The error message returned because ReservedCidrMask is set to an invalid value. Specify a valid value and try again.'], + ['code' => 'IllegalParam.ResourceGroupId', 'message' => 'Invalid ResourceGroupld value.', 'http_code' => 400, 'description' => 'The specified resource group is invalid or does not exist.'], + ['code' => 'IllegalParam.ResourceId', 'message' => 'The input parameter resource ID is invalid.', 'http_code' => 400, 'description' => 'The input parameter resource ID is invalid.'], + ['code' => 'IllegalParam.ResourceOwnerId', 'message' => 'The param of resource owner ID is illegal.', 'http_code' => 400, 'description' => 'The parameter of resource owner ID is illegal.'], + ['code' => 'IllegalParam.ResourceType', 'message' => 'Invalid Resource Type value.', 'http_code' => 400, 'description' => 'The ResourceType parameter is not supported or set to an invalid value.'], + ['code' => 'IllegalParam.ResourceType', 'message' => 'Invalid %s value.', 'http_code' => 400, 'description' => 'ResourceType is set to an invalid value.'], + ['code' => 'IllegalParam.Role', 'message' => 'The specified Role is invalid.', 'http_code' => 400, 'description' => 'Role is set to an invalid value.'], + ['code' => 'IllegalParam.RouteDest', 'message' => 'The specified RouteDest is invalid', 'http_code' => 400, 'description' => 'The destination address is invalid.'], + ['code' => 'IllegalParam.RouteEntryCidrDuplicate', 'message' => 'The specified CIDR block already exists.', 'http_code' => 400, 'description' => 'A duplicate route CIDR block exists.'], + ['code' => 'IllegalParam.RouteEntryName', 'message' => 'The param of %s is illegal.', 'http_code' => 400, 'description' => 'The specified route name is invalid.'], + ['code' => 'IllegalParam.RouteEntryType', 'message' => 'The specified RouteEntryType is invalid.', 'http_code' => 400, 'description' => 'The error message returned because the specified route type is invalid.'], + ['code' => 'IllegalParam.RouteEntryType', 'message' => 'The parameter of RouteEntryType is illegal.', 'http_code' => 400, 'description' => 'The RouteEntryType parameter is invalid.'], + ['code' => 'IllegalParam.RouteLimit', 'message' => 'The operation is failed because of bgp group max route entry num quota exceed.', 'http_code' => 400, 'description' => 'The number of routes that can be received by each BGP peer in the BGP group exceeds the upper limit.'], + ['code' => 'IllegalParam.SecondaryCidrBlock', 'message' => 'SecondaryCidrBlock is illegal.', 'http_code' => 400, 'description' => 'The parameter about the secondary CIDR block is set to an invalid value.'], + ['code' => 'IllegalParam.SecondaryCidrBlock', 'message' => 'The parameter of SecondaryCidrBlock is illegal.', 'http_code' => 400, 'description' => 'The SecondaryCidrBlock parameter is invalid.'], + ['code' => 'IllegalParam.SecondaryCidrMask', 'message' => 'The specified Secondary CIDR Mask is illegal.', 'http_code' => 400, 'description' => 'Invalid SecondaryCidrMask.'], + ['code' => 'IllegalParam.SecurityProtectionTypes', 'message' => 'The param of securityProtectionTypes is illegal.', 'http_code' => 400, 'description' => 'The passed-in SecurityProtectionTypes parameter is invalid.'], + ['code' => 'IllegalParam.ServiceLocation', 'message' => 'The param of serviceLocation is illegal.', 'http_code' => 400, 'description' => 'The param of serviceLocation is illegal.'], + ['code' => 'IllegalParam.ServiceProvider', 'message' => 'The parameter of ServiceProvider is illegal.', 'http_code' => 400, 'description' => 'The ServiceProvider parameter is invalid.'], + ['code' => 'IllegalParam.SessionLogDeliveryDestination', 'message' => 'The specified Delivery Destination is illegal.', 'http_code' => 400, 'description' => 'The specified Delivery Destination(SessionLogDeliveryDestination) is illegal.'], + ['code' => 'IllegalParam.SessionLogDeliveryType', 'message' => 'The specified Delivery Type is illegal.', 'http_code' => 400, 'description' => 'The specified delivery type parameter SessionLogDeliveryType is illegal.'], + ['code' => 'IllegalParam.ShareType', 'message' => 'The specified parameter ShareType is illegal.', 'http_code' => 400, 'description' => 'ShareType is set to an invalid value.'], + ['code' => 'IllegalParam.Si', 'message' => '[%s]', 'http_code' => 400, 'description' => 'The construction company [%s] is invalid.'], + ['code' => 'IllegalParam.Si', 'message' => 'Invalid Si.', 'http_code' => 400, 'description' => 'The construction company is invalid.'], + ['code' => 'IllegalParam.SourceCidrBlock', 'message' => 'The param of SourceCidrBlock is illegal.', 'http_code' => 400, 'description' => 'The param of SourceCidrBlock is illegal.'], + ['code' => 'IllegalParam.SourceCidrIp', 'message' => 'Param SourceCidrIp is illegal.', 'http_code' => 400, 'description' => 'Illegal parameters: Source CIDR'], + ['code' => 'IllegalParam.Spec', 'message' => 'The parameter Spec is illegal.', 'http_code' => 400, 'description' => 'The operation failed because Spec is set to an invalid value.'], + ['code' => 'IllegalParam.Spec', 'message' => 'The param of Spec is illegal.', 'http_code' => 400, 'description' => 'The Spec parameter is set to an invalid value.'], + ['code' => 'IllegalParam.Spec', 'message' => 'The param of ExpectSpec is illegal', 'http_code' => 400, 'description' => 'The ExpectSpec parameter is set to an invalid value.'], + ['code' => 'IllegalParam.Spec', 'message' => 'The spec is illegal.', 'http_code' => 400, 'description' => 'The spec parameter is set to an invalid value.'], + ['code' => 'IllegalParam.Spec', 'message' => 'The parameter of UserCidr is illegal.', 'http_code' => 400, 'description' => 'The Spec parameter is invalid.'], + ['code' => 'IllegalParam.TargetType', 'message' => 'The parameter of TargetType is illegal.', 'http_code' => 400, 'description' => 'The parameter TargetType is illegal.'], + ['code' => 'IllegalParam.TrafficMirrorRuleId', 'message' => 'The specified traffic mirror rule instance ID is invalid.', 'http_code' => 400, 'description' => 'The traffic mirroring filter rule instance ID parameter is invalid.'], + ['code' => 'IllegalParam.TrafficPath', 'message' => 'The param of trafficPath is illegal.', 'http_code' => 400, 'description' => 'TrafficPath.N is set to an invalid value.'], + ['code' => 'IllegalParam.TunnelCidr', 'message' => 'The specified TunnelCidr is invalid.', 'http_code' => 400, 'description' => 'The TunnelCidr parameter is set to an invalid value.'], + ['code' => 'IllegalParam.TunnelId', 'message' => 'The specified TunnelId is invalid.', 'http_code' => 400, 'description' => 'TunnelId is set to an invalid value.'], + ['code' => 'IllegalParam.Type', 'message' => 'The parameter of Type is illegal.', 'http_code' => 400, 'description' => 'Illegal parameter Type.'], + ['code' => 'IllegalParam.UnsupportedAccessPoint', 'message' => 'The access point type does not support the creation of a highly reliable physical connection.', 'http_code' => 400, 'description' => 'You cannot create a high-availability Express Connect circuit for an access point of this type.'], + ['code' => 'IllegalParam.UserCidr', 'message' => 'UserCidr is not a valid or strict address.', 'http_code' => 400, 'description' => 'UserCidr is illegal.'], + ['code' => 'IllegalParam.UserCidr', 'message' => 'The parameter of UserCidr is illegal.', 'http_code' => 400, 'description' => 'The UserCidr parameter is invalid.'], + ['code' => 'IllegalParam.VlanId', 'message' => 'The parameter VlanId is illegal.', 'http_code' => 400, 'description' => 'The operation failed because VlanId is set to an invalid value.'], + ['code' => 'IllegalParam.VlanId', 'message' => 'The param of VlanId is illegal.', 'http_code' => 400, 'description' => 'The VlanId parameter is set to an invalid value.'], + ['code' => 'IllegalParam.VlanId', 'message' => 'vlan id has been used in physical connection', 'http_code' => 400, 'description' => 'The specified VLAN ID (VlanId) is already used.'], + ['code' => 'IllegalParam.VpcIpv6CidrBlock', 'message' => 'The parameter of VpcIPv6CidrBlock is illegal.', 'http_code' => 400, 'description' => 'The VpcIPv6CidrBlock parameter is invalid.'], + ['code' => 'IllegalParam.VpconnAliUid', 'message' => 'The specified VpconnAliUid is not illegal.', 'http_code' => 400, 'description' => 'The AliUid parameter of the Vpconn is invalid.'], + ['code' => 'IllegalParam.VpconnAliUid', 'message' => 'The specified AliUid of Vpconn is illegal.', 'http_code' => 400, 'description' => 'The AliUid parameter of the Express Connect circuit is set to an invalid value.'], + ['code' => 'IllegalParam.VRouterType', 'message' => 'The VRouterType is not supported.', 'http_code' => 400, 'description' => 'The VRouterType parameter is set to an invalid value.'], + ['code' => 'IllegalParam.VSwitchCidrReservationMask', 'message' => 'The param of VSwitchCidrReservationMask is illegal.', 'http_code' => 400, 'description' => 'The VSwitchCidrReservationMask value is invalid. Adjust the value and try again.'], + ['code' => 'IllegalParam.VSwitchCidrReservationMask', 'message' => 'The specified VSwitchCidrReservationMask must be greater than the VSwitch mask + 2.', 'http_code' => 400, 'description' => 'VSwitchCidrReservationMask must be at least 3 bits greater than the vSwitch mask.'], + ['code' => 'IllegalParam.VSwitchCidrReservationMask', 'message' => 'The specified VSwitchCidrReservationMask must be greater than the VSwitch mask by 1.', 'http_code' => 400, 'description' => 'The specified VSwitchCidrReservationMask must be greater than the VSwitch mask by 1.'], + ['code' => 'IllegalParam.VSwitchCidrReservationMask', 'message' => 'The specified VSwitchCidrReservationMask must be at least 2 bits greater than the vSwitch mask.', 'http_code' => 400, 'description' => 'The specified VSwitchCidrReservationMask must be at least 2 bits greater than the vSwitch mask.'], + ['code' => 'IllegalParam.Zone', 'message' => 'The specified zone is invalid.', 'http_code' => 400, 'description' => 'Zone is set to an invalid value.'], + ['code' => 'IllegalParam.ZoneId', 'message' => 'The parameter of ZoneId is illegal.', 'http_code' => 400, 'description' => 'The ZoneId parameter is invalid.'], + ['code' => 'IllegalParam.Zones', 'message' => 'The values of Zones [%s] are invalid.', 'http_code' => 400, 'description' => 'Zones is set to an invalid value.'], + ['code' => 'IllegalParamException.LocalGatewayIpAndMask', 'message' => 'The param of LocalGatewayIpAndMask is illegal.', 'http_code' => 400, 'description' => 'LocalGatewayIpAndMask is set to an invalid value.'], + ['code' => 'IllegalParamFormat', 'message' => 'IllegalParamFormat', 'http_code' => 400, 'description' => 'The parameter format is invalid.'], + ['code' => 'IllegalParamFormat', 'message' => 'The param of %s is illegal.', 'http_code' => 400, 'description' => 'The parameter is set to an invalid value.'], + ['code' => 'IllegalParamFormat.%s', 'message' => 'The param format of %s is illegal.', 'http_code' => 400, 'description' => 'The parameter mode is invalid.'], + ['code' => 'IllegalParamFormat.Description', 'message' => 'The specified description is invalid.', 'http_code' => 400, 'description' => 'The error message returned because the format of the description is invalid.'], + ['code' => 'IllegalParamFormat.DstCidrBlock', 'message' => 'The format of the specified destination CIDR block is invalid.', 'http_code' => 400, 'description' => 'The error message returned because the format of the destination CIDR block is invalid.'], + ['code' => 'IllegalParamFormat.DstCidrBlock', 'message' => 'The format of the specified dst CIDR block is invalid.', 'http_code' => 400, 'description' => 'The format of the destination CIDR block is invalid.'], + ['code' => 'IllegalParamFormat.DstPortRange', 'message' => 'The specified format of destination port range is invalid.', 'http_code' => 400, 'description' => 'The error message returned because the format of the destination port range is invalid.'], + ['code' => 'IllegalParamFormat.Name', 'message' => 'The specified Name is invalid.', 'http_code' => 400, 'description' => 'The error message returned because the format of the name is invalid.'], + ['code' => 'IllegalParamFormat.NatIp', 'message' => 'The param format of %s[%s] is illegal.', 'http_code' => 400, 'description' => 'The parameter format of NatIp is invalid. '], + ['code' => 'IllegalParamFormat.NatIpCidr', 'message' => 'The param format of NatIpCidr is illegal.', 'http_code' => 400, 'description' => 'The param format of NatIpCidr is illegal.'], + ['code' => 'IllegalParamFormat.OutIp', 'message' => 'The param format of OutIp is illegal.', 'http_code' => 400, 'description' => 'Invalid OutIp format.'], + ['code' => 'IllegalParamFormat.ReservedCidr', 'message' => 'IllegalParamFormat.ReservedCidr', 'http_code' => 400, 'description' => 'The format of the CIDR block is invalid.'], + ['code' => 'IllegalParamFormat.SrcCidrBlock', 'message' => 'The format of the specified source CIDR block is invalid.', 'http_code' => 400, 'description' => 'The error message returned because the format of the source CIDR block is invalid.'], + ['code' => 'IllegalParamFormat.SrcPortRange', 'message' => 'The format of the specified source port range is invalid.', 'http_code' => 400, 'description' => 'The error message returned because the format of the source port range is invalid.'], + ['code' => 'IllegalParamFormat.VSwitchCidrReservationCidr', 'message' => 'The param format of VSwitchCidrReservationCidr is illegal.', 'http_code' => 400, 'description' => 'The VSwitchCidrReservationCidr value is invalid.'], + ['code' => 'IllegalParamSize.AssociatedInstanceId', 'message' => 'The param size of AssociatedInstanceId is illegal.', 'http_code' => 400, 'description' => 'Illegal parameter AssociatedInstanceId length'], + ['code' => 'IllegalParamSize.EgressRules', 'message' => 'The number of egress rules is invalid.', 'http_code' => 400, 'description' => 'The number of outbound filter rules is invalid.'], + ['code' => 'IllegalParamSize.IngressRules', 'message' => 'The specified number of ingress rules is invalid.', 'http_code' => 400, 'description' => 'The number of inbound filter rules is invalid.'], + ['code' => 'IllegalParamSize.Rules', 'message' => 'The specified size of rules is invalid.', 'http_code' => 400, 'description' => 'The number of traffic mirroring filter rule parameters is invalid.'], + ['code' => 'IllegalParamSize.Zones', 'message' => 'An invalid number of zones is specified.', 'http_code' => 400, 'description' => 'Zones is set to an invalid value.'], + ['code' => 'IllegealParam.NextHopType', 'message' => 'The parameter NewNextHopType is illegal.', 'http_code' => 400, 'description' => 'The next hop type is invalid.'], + ['code' => 'IncorrcetRouteEntryStatus', 'message' => 'Some route entry status blocked this operation.', 'http_code' => null, 'description' => 'One or more routes in the route table are in the Pending or Modifying state.'], + ['code' => 'IncorrectBusinessStatus.FlowLog', 'message' => 'The business status of flowLog is incorrect.', 'http_code' => 400, 'description' => 'The error message returned because you cannot create flow logs in the current business state.'], + ['code' => 'IncorrectBusinessStatus.PconnIdList', 'message' => 'The business status of PconnIdList is incorrect.', 'http_code' => 400, 'description' => 'This operation cannot be performed because the current physical line is in arrears.'], + ['code' => 'IncorrectBusinessStatus.PublicIpAddressPool', 'message' => 'The business status of publicIpAddressPool is incorrect.', 'http_code' => 400, 'description' => 'The current service status does not support creating an IP address pool instance.'], + ['code' => 'IncorrectBusinessStatus.ResourceId', 'message' => 'The specified resource business status is invalid.', 'http_code' => 400, 'description' => 'The entered resource is in arrears.'], + ['code' => 'IncorrectBusinessStatus.TrafficMirror', 'message' => 'The business status of traffic mirror is incorrect.', 'http_code' => 400, 'description' => 'Traffic mirroring is in an invalid state.'], + ['code' => 'IncorrectClassicLinkStatus', 'message' => 'Specified VPC classicLink enabled.', 'http_code' => 404, 'description' => 'ClassicLink is already enabled for the VPC.'], + ['code' => 'IncorrectEipStatus', 'message' => 'Current elastic IP status does not support this operation', 'http_code' => null, 'description' => 'The status of the EIP does not support the operation.'], + ['code' => 'IncorrectEipStatus', 'message' => 'Current elastic IP status does not support this operation.', 'http_code' => null, 'description' => 'You cannot perform the operation when the specified EIP is in the current state.'], + ['code' => 'IncorrectGlobalAccelerationInstanceIdStatus', 'message' => 'Current GlobalAccelerationInstance status does not support this operation.', 'http_code' => null, 'description' => 'The GA instance in this state does not support this operation.'], + ['code' => 'IncorrectHaVipStatus', 'message' => 'HaVip can be operated by this action only when it\'s status is InUse.', 'http_code' => null, 'description' => 'The operation can be performed only when the HAVIP is in the InUse state.'], + ['code' => 'IncorrectHaVipStatus', 'message' => 'This operation is denied because satus of the specified HaVip is neither Available nor InUse.', 'http_code' => 400, 'description' => 'You cannot perform the operation when the specified HAVIP is in the Available or InUse state.'], + ['code' => 'IncorrectHaVipStatus', 'message' => 'HaVip can be operated by this action only when it’s status is Available or InUse.', 'http_code' => 400, 'description' => 'This operation can be performed only when the HAVIP is in the Available or InUse state.'], + ['code' => 'IncorrectHaVipStatus', 'message' => 'HaVip can be operated by this action only when its status is Available or InUse.', 'http_code' => 400, 'description' => 'You can manage an HAVIP only when the HAVIP is in the Available or In Use state.'], + ['code' => 'IncorrectHaVipStatus', 'message' => 'HaVip can be operated by this action only when it\'s status is Available or InUse.', 'http_code' => 400, 'description' => 'The operation supports only HAVIPs in the Available or InUse state.'], + ['code' => 'IncorrectInstanceStatus', 'message' => 'The current status of instance does not support this operation.', 'http_code' => null, 'description' => 'This operation cannot be performed while the instance is in the current state.'], + ['code' => 'IncorrectInstanceStatus', 'message' => 'The current status of the resource does not support this operation.', 'http_code' => null, 'description' => 'The specified resource is in a state that does not support the operation.'], + ['code' => 'IncorrectInstanceStatus', 'message' => 'ECS instance can be operated by this action only when it’s status is Running or Stopped.', 'http_code' => null, 'description' => 'The operation can be performed only when the ECS instance is in the Running or Stopped state.'], + ['code' => 'IncorrectInstanceStatus', 'message' => 'Current instance status does not support this operation.', 'http_code' => null, 'description' => 'This operation cannot be performed while the instance is in the current state.'], + ['code' => 'IncorrectInstanceStatus', 'message' => 'ECS instance can be operated by this action only when it\'s status is Running or Stopped.', 'http_code' => null, 'description' => 'You can do this operation only when the ECS instance is running or stopped.'], + ['code' => 'IncorrectOppositeInterfaceInfo', 'message' => 'Cannot connect on the same router', 'http_code' => null, 'description' => 'You are not allowed to connect to the same router.'], + ['code' => 'IncorrectOppositeInterfaceInfo', 'message' => 'The opposite RouterInterface information specified by OppositeInterfaceId/OppositeRouterId/OppositeRouterType/OppositeRouterOwnerId is wrong. Maybe the RouterInterface or Router does not exist', 'http_code' => null, 'description' => 'Based on the configuration of OppositeInterfaceId, OppositeRouterId, OppositeRouterType, and OppositeRouterOwnerId, the value of OppositeRouterInterface is invalid. The router or router interface may not exist.'], + ['code' => 'IncorrectOppositeInterfaceInfo', 'message' => 'The peer router interface information specified by OppositeInterfaceId/OppositeRouterId/OppositeRouterType/OppositeInterfaceOwnerId is invalid.', 'http_code' => 400, 'description' => 'The peer router interface specified by OppositeInterfaceId, OppositeRouterId, OppositeRouterType, and OppositeInterfaceOwnerId is invalid. The router interface or router may not exist, or the parameters do not match, or the router interface is not a receiver.'], + ['code' => 'IncorrectOppositeInterfaceInfo', 'message' => 'The opposite RouterInterface information specified by OppositeInterfaceId/OppositeRouterId/OppositeRouterType/OppositeInterfaceOwnerId is wrong.', 'http_code' => 400, 'description' => 'The router interface information specified by OppositeInterfaceId, OppositeRouterId, OppositeRouterType, and OppositeInterfaceOwnerId is invalid.'], + ['code' => 'IncorrectOppositeInterfaceInfo', 'message' => 'The opposite RouterInterface specified by OppositeInterfaceId/OppositeRouterId/OppositeRouterType/OppositeInterfaceOwnerId is wrong.', 'http_code' => 400, 'description' => 'The router interface information specified by OppositeInterfaceId, OppositeRouterId, OppositeRouterType, and OppositeInterfaceOwnerId is invalid.'], + ['code' => 'IncorrectOppositeInterfaceInfo.NotSet', 'message' => 'OppositeInterfaceId/OppositeRouterId/OppositeRouterType/OppositeRouterOwnerId must be all set.', 'http_code' => null, 'description' => 'You must set the following parameters: OppositeInterfaceId, OppositeRouterId, OppositeRouterType, and OppositeRouterOwnerId.'], + ['code' => 'IncorrectOppositeInterfaceInfo.NotSet', 'message' => 'OppositeInterfaceId, OppositeRouterId, OppositeRouterType, and OppositeInterfaceOwnerId are all required.', 'http_code' => 400, 'description' => 'You must specify the following parameters: OppositeInterfaceId, OppositeRouterId, OppositeRouterType, and OppositeInterfaceOwnerId.'], + ['code' => 'IncorrectOppositeInterfaceInfo.NotSet', 'message' => 'OppositeInterfaceId/OppositeRouterId/OppositeRouterType/OppositeInterfaceOwnerId must be all set.', 'http_code' => 400, 'description' => 'You must specify OppositeInterfaceId, OppositeRouterId, OppositeRouterType, and OppositeInterfaceOwnerId.'], + ['code' => 'IncorrectRIStatus', 'message' => 'RouterInterface can be operated by this action only when it\'s status is Active.', 'http_code' => 400, 'description' => 'You can perform this operation only when the router interface is in the Active state.'], + ['code' => 'IncorrectRIStatus', 'message' => 'RouterInterface can be operated by this action only when it\'s status is Idle.', 'http_code' => 400, 'description' => 'You can perform the operation only when the router interface is in the Idle state.'], + ['code' => 'IncorrectRIStatus', 'message' => 'RouterInterface can be operated by this action only when it\'s status is Inactive.', 'http_code' => 400, 'description' => 'You can perform the operation only when the router interface is in the Inactive state.'], + ['code' => 'IncorrectRole.NotInitiatingSide', 'message' => 'The specified RouterInterface is not InitiatingSide.', 'http_code' => null, 'description' => 'The specified router interface is not an initiator. Select an initiator router interface.'], + ['code' => 'IncorrectRouteEntryStatus', 'message' => 'Vpc NotStable route entry.', 'http_code' => null, 'description' => 'The operation is not supported because the route table contains routes in the Pending or Modifying state.'], + ['code' => 'IncorrectRouteEntryStatus', 'message' => 'The vpc has NotStable routeEntry status.', 'http_code' => null, 'description' => 'The operation is not supported because the route table contains routes in the Pending or Modifying state.'], + ['code' => 'IncorrectRouteEntryStatus', 'message' => 'VBR has NotStable route entry.', 'http_code' => null, 'description' => 'The operation is not supported because the route table contains routes in the Pending or Modifying state.'], + ['code' => 'IncorrectRouteEntryStatus', 'message' => 'Specified routeEntry status error.', 'http_code' => null, 'description' => 'The operation is not supported because the route table contains routes in the Pending or Modifying state.'], + ['code' => 'IncorrectRouteEntryStatus', 'message' => 'Some route entry status blocked this operation.', 'http_code' => null, 'description' => 'The operation is not supported because the route table contains routes in the Pending or Modifying state.'], + ['code' => 'IncorrectRouteTableStatus', 'message' => 'The current status of the route table does not support this operation.', 'http_code' => 404, 'description' => 'You cannot delete the route table in the current state.'], + ['code' => 'IncorrectRouteTableStatus.RouteEntryExist', 'message' => 'You cannot delete the specified route table because it still has custom route entry.', 'http_code' => 400, 'description' => 'You cannot delete the route table because custom routes exist in the route table.'], + ['code' => 'IncorrectRouteTableType', 'message' => 'Route table can be deleted by this action only when it is type is custom.', 'http_code' => 400, 'description' => 'You can call this operation to delete only custom route tables.'], + ['code' => 'IncorrectStatus', 'message' => 'RouterInterface can be operated by this action only when the status is Active', 'http_code' => null, 'description' => 'The operation can be performed only when the the router interface is in the Active state.'], + ['code' => 'IncorrectStatus', 'message' => 'RouterInterface can be operated by this action only when it\'s status is Inactive.', 'http_code' => null, 'description' => 'The operation can be performed only when the router interface is in the Inactive state.'], + ['code' => 'IncorrectStatus', 'message' => 'RouterInterface can be operated by this action only when it’s status is Idle.', 'http_code' => null, 'description' => 'The operation can be performed only when the router interface is in the Idle state.'], + ['code' => 'IncorrectStatus', 'message' => 'RouterInterface can be operated by this action only when it\'s status is Active.', 'http_code' => null, 'description' => 'The operation can be performed only when the the router interface is in the Active state.'], + ['code' => 'IncorrectStatus', 'message' => 'HaVip can be deleted only when it is status is Available.', 'http_code' => 400, 'description' => 'Failed to delete the HAVIP. You can delete the HAVIP only when its status is available.'], + ['code' => 'IncorrectStatus', 'message' => 'This openeration would be allowed only when status of this RouterInterface is Idle/Inactive.', 'http_code' => null, 'description' => 'You cannot perform the operation. You can perform the operation only when the router interface is in the Idle or Inactive state.'], + ['code' => 'IncorrectStatus', 'message' => 'Vswtich status not stable.', 'http_code' => null, 'description' => 'The VSwitch is in the status of Pending or Modifying. Please try again later.'], + ['code' => 'IncorrectStatus', 'message' => 'HaVip can be deleted only when status is Available or InUse.', 'http_code' => 400, 'description' => 'Failed to delete the HAVIP due to the HAVIP status.'], + ['code' => 'IncorrectStatus', 'message' => 'RouterInterface can be operated by this action only when the status is Active,idle or inactive.', 'http_code' => 400, 'description' => 'This operation is supported only when a router interface is in the Active, Idle, or Inactive state.'], + ['code' => 'IncorrectStatus.%s', 'message' => '%s [%s] status is invalid.', 'http_code' => 400, 'description' => 'The instance is in an invalid state.'], + ['code' => 'IncorrectStatus.BgpPeer', 'message' => 'Invalid BgpPeer status cannot operate.', 'http_code' => 400, 'description' => 'The status of the BGP peer does not support this operation.'], + ['code' => 'IncorrectStatus.BondRiConnection', 'message' => 'The BondRi state is unstable. Check the instance state and try again.', 'http_code' => 400, 'description' => 'The BondRi state is unstable. Check the instance state and try again.'], + ['code' => 'IncorrectStatus.cbnStatus', 'message' => 'Current CBN status does not support this operation.', 'http_code' => 400, 'description' => 'The status of the CEN instance is invalid.'], + ['code' => 'IncorrectStatus.CenRelation', 'message' => 'The status of Vpc in Cen is incorrect.', 'http_code' => 400, 'description' => 'The operation failed because the VPC attached to the CEN instance is in an unstable state.'], + ['code' => 'IncorrectStatus.CenStatus', 'message' => 'Cen status must not be middle status.', 'http_code' => 400, 'description' => 'Check the status of the CEN instance.'], + ['code' => 'IncorrectStatus.CidrReservation', 'message' => 'The status of the CIDR reservation is incorrect.', 'http_code' => 400, 'description' => 'The status of the reserved CIDR block does not support this operation. Try again later.'], + ['code' => 'IncorrectStatus.DhcpOptionsSet', 'message' => 'The DhcpOptionsSet status does not support this operation.', 'http_code' => 400, 'description' => 'The DHCP options set that is associated with the VPC is being configured. As a result, the DHCP options set does not support this operation. You can perform the operation after the status of the DHCP options set is stable.'], + ['code' => 'IncorrectStatus.EgressOnlyRule', 'message' => 'The status of the EgressOnlyRlue is incorrect.', 'http_code' => 400, 'description' => 'The specified IPv6 egress-only rule is in a transitional state.'], + ['code' => 'IncorrectStatus.EgressOnlyRule', 'message' => 'The status of the specified IPv6EgressOnlyRule is incorrect.', 'http_code' => 400, 'description' => 'The specified IPv6EgressOnlyRule is not in steady state.'."\n"], + ['code' => 'IncorrectStatus.Eip', 'message' => 'An EIP status error occurred.', 'http_code' => 400, 'description' => 'An EIP status error occurred.'], + ['code' => 'IncorrectStatus.EipAddress', 'message' => 'The status of the EIP is incorrect.', 'http_code' => 400, 'description' => 'The status of the EIP is incorrect.'], + ['code' => 'IncorrectStatus.flowlog', 'message' => 'Invalid flowlog status.', 'http_code' => 400, 'description' => 'The flow log cannot be disabled because it is in an invalid state.'], + ['code' => 'IncorrectStatus.ForwardEntry', 'message' => 'The status of %s [%s] is incorrect.', 'http_code' => 400, 'description' => 'The DNAT entry to be deleted is in an invalid state.'], + ['code' => 'IncorrectStatus.FullNatEntry', 'message' => 'The status of %s [%s] is incorrect.', 'http_code' => 400, 'description' => 'The status of FullNatEntry is incorrect.'], + ['code' => 'IncorrectStatus.GatewayRouteTable', 'message' => 'The status of %s [%s] is incorrect.', 'http_code' => 400, 'description' => 'The gateway route table is in an invalid state. Try again later.'], + ['code' => 'IncorrectStatus.InstanceStatusInvalid', 'message' => 'The specified Instance does not exist in our records.', 'http_code' => 400, 'description' => 'The instance status is invalid.'], + ['code' => 'IncorrectStatus.Ip', 'message' => 'The status of ip is incorrect.', 'http_code' => 400, 'description' => 'The status of the IP is incorrect.'], + ['code' => 'IncorrectStatus.Ipv4Gateway', 'message' => 'The status of Ipv4Gateway is incorrect.', 'http_code' => 500, 'description' => 'The error message returned because the IPv4 gateway is unstable.'], + ['code' => 'IncorrectStatus.Ipv4Gateway', 'message' => 'The status of %s [%s] is incorrect.', 'http_code' => 400, 'description' => 'The IPv4 gateway is in an invalid state. Try again later.'], + ['code' => 'IncorrectStatus.Ipv6Address', 'message' => 'The IPv6 address of the specified next hop is being assigned or deleted.', 'http_code' => 400, 'description' => 'The IPv6 address that is specified as the next hop is being created or being deleted.'], + ['code' => 'IncorrectStatus.Ipv6Gateway', 'message' => 'The status of %s [%s] is incorrect.', 'http_code' => 400, 'description' => 'The IPv6 gateway is in an unstable state. Try again later.'], + ['code' => 'IncorrectStatus.Ipv6Instance', 'message' => 'The status of %s [%s] is incorrect.', 'http_code' => 400, 'description' => 'The IPv6 address is in an unstable state. Try again later.'], + ['code' => 'IncorrectStatus.Ipv6InternetBandwidth', 'message' => 'The status of the IPv6InternetBandwidth is incorrect.', 'http_code' => 400, 'description' => 'The current state of the IPv6 Internet bandwidth does not support creating an IPv6 egress-only rule.'], + ['code' => 'IncorrectStatus.NatGateway', 'message' => 'The status of NAT gateway is incorrect.', 'http_code' => 400, 'description' => 'The status of NAT gateway is incorrect.'], + ['code' => 'IncorrectStatus.NatGateway', 'message' => 'The status of natgateway is incorrect.', 'http_code' => 400, 'description' => 'The status of the NAT gateway is invalid.'], + ['code' => 'IncorrectStatus.NatGateway', 'message' => '%The status of %s [%s] is incorrect.', 'http_code' => 400, 'description' => 'The NAT gateway is in an invalid state.'], + ['code' => 'IncorrectStatus.NatGateway', 'message' => 'The NatGateway instance is being deleted and needs to wait until the process is complete.', 'http_code' => 400, 'description' => 'The NAT Gateway instance is being deleted and cannot be repeatedly deleted. You need to wait for the deletion process to complete.'], + ['code' => 'IncorrectStatus.NatGateway', 'message' => 'The status of the specified NatGateway is incorrect.', 'http_code' => 400, 'description' => 'The specified NAT gateway is in a transitional state.'], + ['code' => 'IncorrectStatus.NATGW', 'message' => 'The status of the specified NAT gateway is abnormal.', 'http_code' => 400, 'description' => 'The status of the specified NAT gateway is abnormal.'], + ['code' => 'IncorrectStatus.NATGW', 'message' => 'NATGW status is invalid.', 'http_code' => 400, 'description' => 'The NAT gateway is in an invalid state.'], + ['code' => 'IncorrectStatus.NatIp', 'message' => 'The status of %s [%s] is incorrect.', 'http_code' => 400, 'description' => 'The status of NatIp is incorrect.'], + ['code' => 'IncorrectStatus.NetworkInterface', 'message' => 'The status of network interface is incorrect.', 'http_code' => 400, 'description' => 'The status of the ENI is invalid.'], + ['code' => 'IncorrectStatus.NetworkInterface', 'message' => 'The status of network interface is incorrect.', 'http_code' => 400, 'description' => 'The status of the ENI does not support this operation. Try again later.'], + ['code' => 'IncorrectStatus.NextHop', 'message' => 'The status of %s [%s] is incorrect.', 'http_code' => 400, 'description' => 'Specified next hop resource'], + ['code' => 'IncorrectStatus.null', 'message' => 'RouterInterface status is null.', 'http_code' => 400, 'description' => 'The status of the router interface is empty.'], + ['code' => 'IncorrectStatus.OnlyForInit', 'message' => 'Only the init status failover test job can be started.', 'http_code' => 400, 'description' => 'Only the fault drill task to be drilled can be modified or started.'], + ['code' => 'IncorrectStatus.OnlyForInitOrStopped', 'message' => 'Only failover test job in the status of init or stopped can be deleted.', 'http_code' => 400, 'description' => 'Only failover test job in the status of init or stopped can be deleted.'], + ['code' => 'IncorrectStatus.OnlyForTesting', 'message' => 'Only the failover test job in the testing state can be stopped.', 'http_code' => 400, 'description' => 'Only the failover test job in the testing state can be stopped.'], + ['code' => 'IncorrectStatus.PconnIdList', 'message' => 'The status of PconnIdList is incorrect.', 'http_code' => 400, 'description' => 'This operation cannot be performed because the current physical connection is in an abnormal state.'], + ['code' => 'IncorrectStatus.PhysicalConnection', 'message' => 'The specified PhysicalConnectionId is not in the Allocated state.', 'http_code' => 400, 'description' => 'The specified PhysicalConnectionId is not in the Allocated state.'], + ['code' => 'IncorrectStatus.PhysicalConnection', 'message' => 'The status of PhysicalConnection is incorrect.', 'http_code' => 400, 'description' => 'The operation failed because the status of the Express Connect circuit is invalid.'], + ['code' => 'IncorrectStatus.PhysicalConnection', 'message' => 'The status of %s is incorrect.', 'http_code' => 400, 'description' => 'The operation failed because the status of the Express Connect circuit is invalid.'], + ['code' => 'IncorrectStatus.PhysicalConnection', 'message' => 'The status of [%s] is incorrect.', 'http_code' => 400, 'description' => 'The operation failed because the status of the Express Connect circuit is invalid.'], + ['code' => 'IncorrectStatus.PhysicalConnection', 'message' => 'The specified PhysicalConnectionId is not in Allocated state.', 'http_code' => 400, 'description' => 'The PhysicalConnectionId parameter is not in the Allocated state.'], + ['code' => 'IncorrectStatus.PhysicalConnection', 'message' => 'The status (%s) does not support this operation.', 'http_code' => 400, 'description' => 'The instance status is invalid.'], + ['code' => 'IncorrectStatus.PhysicalConnection', 'message' => '[%s]', 'http_code' => 400, 'description' => 'The Express Connect circuit [%s] is in an invalid state.'], + ['code' => 'IncorrectStatus.PhysicalConnection', 'message' => 'Invalid physical connection status.', 'http_code' => 400, 'description' => 'The Express Connect circuit is in an invalid state.'], + ['code' => 'IncorrectStatus.PhysicalConnectionLOA', 'message' => '[%s]', 'http_code' => 400, 'description' => 'The construction status [%s] of the Express Connect circuit is invalid.'], + ['code' => 'IncorrectStatus.PhysicalConnectionLOA', 'message' => 'Invalid Express Connect circuit LOA status.', 'http_code' => 400, 'description' => 'The construction status of the Express Connect circuit is invalid.'], + ['code' => 'IncorrectStatus.PrefixList', 'message' => 'The status of prefixList is incorrect.', 'http_code' => 400, 'description' => 'The prefix list is in an unstable state.'], + ['code' => 'IncorrectStatus.PublicIpAddressPool', 'message' => 'The status of %s [%s] is incorrect.', 'http_code' => 400, 'description' => 'The EIP cannot be allocated because the IP address pool is in an invalid state.'], + ['code' => 'IncorrectStatus.PublicIpAddressPool', 'message' => 'The status of PublicIpAddressPool is incorrect.', 'http_code' => 400, 'description' => 'EIPs are not allowed to be allocated because the address pool is in an unstable state.'], + ['code' => 'IncorrectStatus.Qos', 'message' => 'The status of QoS is incorrect.', 'http_code' => 400, 'description' => 'The status of the QoS policy is abnormal and the operation cannot be performed. Try again later.'], + ['code' => 'IncorrectStatus.ResourceId', 'message' => 'The specified resource status is invalid.', 'http_code' => 400, 'description' => 'The resource status corresponding to the entered resource ID is invalid.'], + ['code' => 'IncorrectStatus.RouteEntry', 'message' => 'The status of %s [%s] is incorrect.', 'http_code' => 400, 'description' => 'Route entry is in non-steady state'], + ['code' => 'IncorrectStatus.RouteEntryPublishStatus', 'message' => 'Route entry publish status is incorrect.', 'http_code' => 400, 'description' => 'The route publish status of the route entry is incorrect.'], + ['code' => 'IncorrectStatus.RoutePropagationStatus', 'message' => 'Route table propagation status not stable. Please wait and try again.', 'http_code' => 400, 'description' => 'Route table propagation status not stable. Please wait and try again.'], + ['code' => 'IncorrectStatus.RouterEntry', 'message' => 'The status of %s [%s] is incorrect.', 'http_code' => 400, 'description' => 'The state of the RouterEntry is incorrect.'], + ['code' => 'IncorrectStatus.RouterInterface', 'message' => 'This openeration would not be allowed because status of this RouterInterface is not correct.', 'http_code' => 400, 'description' => 'The state of the router interface is abnormal.'], + ['code' => 'IncorrectStatus.RouterInterface', 'message' => 'This openeration would not be allowed because the status of this RouterInterface is not correct.', 'http_code' => 400, 'description' => 'The instance cannot be deleted in the current state. Wait until the status of the instance changes and try again.'], + ['code' => 'IncorrectStatus.RouterInterface', 'message' => 'The specified RouterInterface status is invalid.', 'http_code' => 400, 'description' => 'The router interface status is abnormal.'], + ['code' => 'IncorrectStatus.RouteTable', 'message' => 'The status of the specified route table is incorrect.', 'http_code' => 404, 'description' => 'The route table is in an invalid state.'], + ['code' => 'IncorrectStatus.RouteTable', 'message' => 'The route table is in an invalid state.', 'http_code' => 400, 'description' => 'The specified routing table is in the wrong state'], + ['code' => 'IncorrectStatus.RouteTableStatus', 'message' => 'The status of the specified RouteTable is incorrect.', 'http_code' => 400, 'description' => 'The route table status does not support this operation. Try again later.'], + ['code' => 'IncorrectStatus.SnatEntry', 'message' => 'The Specified SnatEntry is not stable status, can not operation', 'http_code' => 400, 'description' => 'The specified SNAT entries are not in a stable state and cannot be operated.'], + ['code' => 'IncorrectStatus.SystemPrefixList', 'message' => 'This is not allowed to operate system prefixList.', 'http_code' => 400, 'description' => 'Operations on the operating system prefix list are not allowed.'], + ['code' => 'IncorrectStatus.TrafficMirrorFilter', 'message' => 'The status of traffic mirror filter is incorrect.', 'http_code' => 400, 'description' => 'The filter is in an invalid state.'], + ['code' => 'IncorrectStatus.TrafficMirrorRule', 'message' => 'The status of traffic mirror rule is incorrect.', 'http_code' => 400, 'description' => 'The filter rule is in an invalid state.'], + ['code' => 'IncorrectStatus.TrafficMirrorSession', 'message' => 'The status of traffic mirror session is incorrect.', 'http_code' => 400, 'description' => 'The state of the traffic mirror session is incorrect.'], + ['code' => 'IncorrectStatus.VBR', 'message' => 'The status of VBR is incorrect.', 'http_code' => 400, 'description' => 'The operation failed because the status of the VBR is invalid.'], + ['code' => 'IncorrectStatus.VbrId', 'message' => 'The status of %s is incorrect.', 'http_code' => 400, 'description' => 'The status of the VBR is invalid.'], + ['code' => 'IncorrectStatus.VirtualPhysicalConnection', 'message' => 'The status of PhysicalConnection [%s] is incorrect.', 'http_code' => 400, 'description' => 'The status of the shared Express Connect circuit [%s] is invalid.'], + ['code' => 'IncorrectStatus.Vpc', 'message' => 'The status of %s [%s] is incorrect.', 'http_code' => 400, 'description' => 'The instance is in an invalid state.'], + ['code' => 'IncorrectStatus.Vpc', 'message' => 'Vpc status is invalid.', 'http_code' => 400, 'description' => 'The VPC is in an unstable state.'], + ['code' => 'IncorrectStatus.Vpc', 'message' => 'Vpc incorrect status.', 'http_code' => 400, 'description' => 'VPC is not in steady state.'], + ['code' => 'IncorrectStatus.Vpc', 'message' => 'The status of the specified VPC is incorrect.', 'http_code' => 400, 'description' => 'The specified VPC is not in a stable state.'], + ['code' => 'IncorrectStatus.VpcDhcpOptionsSet', 'message' => 'The dhcpOptionsSet status of VPC does not support this operation.', 'http_code' => 400, 'description' => 'The DHCP options set that is associated with the VPC is being configured. As a result, the DHCP options set does not support this operation.'], + ['code' => 'IncorrectStatus.VpcDhcpStatus', 'message' => 'The DhcpOptionsSet status of vpc does not support this operation.', 'http_code' => 400, 'description' => 'You cannot delete the VPC when the DHCP options set of the VPC is in the current state.'], + ['code' => 'IncorrectStatus.VpcDnsHostnameStatus', 'message' => 'The DnsHostname status of vpc does not support this operation.', 'http_code' => 400, 'description' => 'The private domain name status of the current VPC does not support this operation.'], + ['code' => 'IncorrectStatus.VpcPeer', 'message' => 'The status of %s [%s] is incorrect.', 'http_code' => 400, 'description' => 'The status of %s[%s] is invalid.'], + ['code' => 'IncorrectStatus.VpcRouteEntry', 'message' => 'The status of the specified routeEntry is invalid.', 'http_code' => 400, 'description' => 'The status of the VPC route entry is invalid.'], + ['code' => 'IncorrectStatus.VSWITCH', 'message' => 'The status of the specified VSwitch is invalid.', 'http_code' => 400, 'description' => 'The status of the specified VSwitch is invalid.'], + ['code' => 'IncorrectStatus.Vswitch', 'message' => 'The status of %s [%s] is incorrect.', 'http_code' => 400, 'description' => 'The status of the specified vSwitch is incorrect.'], + ['code' => 'IncorrectStatus.VSwitch', 'message' => 'The specified vSwitch status is invalid.', 'http_code' => 400, 'description' => 'The virtual switch status is abnormal.'], + ['code' => 'IncorrectVpcStatus', 'message' => 'Current VPC status does not support this operation.', 'http_code' => null, 'description' => 'This operation cannot be performed when the VPC is in the current state.'], + ['code' => 'IncorrectVSwitchId', 'message' => 'Specified vSwtich instance is not found during access authentication.', 'http_code' => 404, 'description' => 'The vSwitch is not found during the permission verification progress.'], + ['code' => 'IncorrectVSwitchStatus', 'message' => 'VSwitch Creation simultaneously is not supported.', 'http_code' => null, 'description' => 'The system failed to create the vSwitch and one or more vSwitches that belong to the VPC are in the Creating state.'], + ['code' => 'IncorrectVSwitchStatus', 'message' => 'Some virtual switch is modifying within the same VPC.', 'http_code' => 400, 'description' => 'Multiple vSwitches are in the Modifying state in the same VPC. Try again later.'], + ['code' => 'IncorrectVSwitchStatus', 'message' => 'The current virtual switch status does not support this operation.', 'http_code' => 400, 'description' => 'The error message returned because the vSwitch is in the Pending state and cannot be deleted.'], + ['code' => 'IncorretForwardEntryStatus', 'message' => 'Some Forward entry status blocked this operation..', 'http_code' => null, 'description' => 'The operation is not supported because one or more DNAT entries in the DNAT table are in the Pending or Modifying state.'], + ['code' => 'IncorretForwardEntryStatus', 'message' => 'The Specified forwardEntry is not stable status', 'http_code' => null, 'description' => 'The status of the DNAT entry is unstable.'], + ['code' => 'IncorretForwardEntryStatus', 'message' => 'The Specified forwardEntry is not exist', 'http_code' => null, 'description' => 'The specified DNAT entry does not exist.'], + ['code' => 'IncorretRouteEntryStatus', 'message' => null, 'http_code' => null, 'description' => 'You cannot create a route because vSwitches in the VPC are in the Adding, Modifying, or Deleting state.'], + ['code' => 'IncorretSnatEntryStatus', 'message' => 'Some Snat entry status blocked this operation..', 'http_code' => null, 'description' => 'One or more SNAT entries in the SNAT table are in the Pending or Modifying state.'], + ['code' => 'IncorretSnatEntryStatus', 'message' => 'The Specified SnatEntry is not stable status', 'http_code' => null, 'description' => 'The SNAT entry is in an unstable state.'], + ['code' => 'IncorretVSwitchStatus', 'message' => null, 'http_code' => null, 'description' => 'The system failed to create vSwitches because some vSwitches are in the Pending state.'], + ['code' => 'InnerError', 'message' => 'Internal system error.', 'http_code' => 400, 'description' => 'Internal System Error'], + ['code' => 'Instance.NotExist', 'message' => 'The instance not exist.', 'http_code' => 404, 'description' => 'The instance does not exist.'], + ['code' => 'INSTANCE.STATUS.NOT.ALLOW', 'message' => 'Instance status not allow', 'http_code' => 400, 'description' => 'The instance in the current state does not support the operation.'], + ['code' => 'Instance.StatusError', 'message' => 'The status of instance error.', 'http_code' => 400, 'description' => 'The status of the instance is invalid.'], + ['code' => 'InstanceExist.NatgwScheduledMigration', 'message' => 'The scheduled migration information of the NAT gateway already exists.', 'http_code' => 400, 'description' => 'The scheduled migration information of the NAT gateway already exists.'], + ['code' => 'InstanceNotExist.NatGatewayId', 'message' => 'The NAT gateway instance is not exist.', 'http_code' => 400, 'description' => 'The NAT Gateway instance does not exist.'], + ['code' => 'InstanceNotExist.NATGWSchedule', 'message' => 'The scheduled migration information of the NAT gateway does not exist.', 'http_code' => 400, 'description' => 'The scheduled migration information of the NAT gateway does not exist.'], + ['code' => 'InstanceNotExists', 'message' => 'Instance not exists.', 'http_code' => 404, 'description' => 'The instance to be deleted does not exist.'], + ['code' => 'INSTANCE_HAS_INACTIVE_CHANGE', 'message' => null, 'http_code' => null, 'description' => 'The system is processing changes.'], + ['code' => 'InsufficientBalance', 'message' => 'Your account does not have enough balance.', 'http_code' => null, 'description' => 'Your account balance is insufficient. Top up your account and try again.'], + ['code' => 'InsufficientBalance.Eip', 'message' => 'Your account does not have enough balance.', 'http_code' => null, 'description' => 'Your account balance is insufficient. Top up your account and try again.'], + ['code' => 'InsufficientEipCapacity', 'message' => 'Insufficient EIP capacity to fulfill your request.', 'http_code' => null, 'description' => 'The EIP quota is insufficient.'], + ['code' => 'INSUFFICIENT_BALANCE', 'message' => null, 'http_code' => null, 'description' => 'The account balance is insufficient.'], + ['code' => 'InternalError', 'message' => 'The request processing has failed due to some unknown error', 'http_code' => null, 'description' => 'An unknown error occurred.'], + ['code' => 'InternalError', 'message' => 'The request processing has failed due to some unknown error.', 'http_code' => 400, 'description' => 'An unknown error occurred.'], + ['code' => 'InternalError', 'message' => 'The request processing has failed due to some unknown error, exception or failure.', 'http_code' => 500, 'description' => 'An internal error occurred.'], + ['code' => 'InternalError', 'message' => 'Internal system error.', 'http_code' => 500, 'description' => 'Internal system error.'], + ['code' => 'INVAID.VBR.STATUS', 'message' => 'VBR status must be active', 'http_code' => 400, 'description' => 'The status of the VBR is invalid.'], + ['code' => 'Invalid.Grant', 'message' => 'Can not grant to other owner cen.', 'http_code' => 400, 'description' => 'You cannot attach the VBR to a CEN instance that belongs to another Alibaba Cloud account.'], + ['code' => 'Invalid.natgwNotExist', 'message' => 'The specified natgateway not exist.', 'http_code' => null, 'description' => 'The specified NAT gateway does not exist.'], + ['code' => 'Invalid.Status', 'message' => 'The device or interface status invalid, or has been used..', 'http_code' => 400, 'description' => 'The Status parameter is set to an invalid value.'], + ['code' => 'InvalidAccessKeyId.NotFound', 'message' => 'Specified access key is not found.', 'http_code' => 400, 'description' => 'The AccessKey pair is not found.'], + ['code' => 'InvalidAccessPoint.NotExist', 'message' => 'The accessPoint not exit', 'http_code' => null, 'description' => 'The access point does not exist.'], + ['code' => 'InvalidAccessPoint.NotMatch', 'message' => 'The accessPoint id is not matched', 'http_code' => null, 'description' => 'The specified ID of the access point is invalid.'], + ['code' => 'InvalidAccessPoint.ValueNotAllowed', 'message' => 'The non-vbr router interface cannot have access point configured.', 'http_code' => null, 'description' => 'You cannot configure access points for the router interface of a vRouter.'], + ['code' => 'InvalidAccessPoint.ValueNotAllowed', 'message' => 'The non-vbr opposite router interface cannot have opposite access point configured.', 'http_code' => null, 'description' => 'You cannot configure access points for the router interface of a non-VBR router.'], + ['code' => 'InvalidAccessPointId.NotEnabled', 'message' => 'Invalid access point status.', 'http_code' => 400, 'description' => 'The current access point does not have sufficient resources to support access. Contact your account manager.'], + ['code' => 'InvalidAccessPointId.NotFound', 'message' => 'The AccessPointId provided does not exist in our records.', 'http_code' => null, 'description' => 'AccessPointId is set to an invalid value.'], + ['code' => 'InvalidAccount.NotFound', 'message' => 'The account is invalid.', 'http_code' => 400, 'description' => 'The operation failed because an invalid account is used.'], + ['code' => 'InvalidAction.Denied', 'message' => 'Action is denied due to unfinished Eip configuration modification.', 'http_code' => 400, 'description' => 'The EIP configurations are not complete and the operation is denied.'], + ['code' => 'InvalidAliuid', 'message' => 'Invalid Aliuid.', 'http_code' => 400, 'description' => 'The Aliuid parameter is set to an invalid value.'], + ['code' => 'InvalidAllocationId.NotFound', 'message' => 'Specified allocation id is not found.', 'http_code' => null, 'description' => 'The error message returned because the specified EIP does not exist. Check whether the value of the parameter is valid.'], + ['code' => 'InvalidAllocationId.NotFound', 'message' => 'Specified allocation ID is not found..', 'http_code' => null, 'description' => 'The specified EIP does not exist. Check whether the value of the parameter is valid.'], + ['code' => 'InvalidAllocationId.NotFound', 'message' => 'Specified allocation ID is not found', 'http_code' => 404, 'description' => 'The specified EIP does not exist. Check whether the specified value is valid.'], + ['code' => 'InvalidAssociation.Duplicated', 'message' => 'Specified instance already is associated.', 'http_code' => null, 'description' => 'An EIP or a GA instance is already associated with the specified instance. You must disassociate the EIP or GA instance from the specified instance before you can perform the operation.'], + ['code' => 'InvalidAttachment.NotFound', 'message' => 'The attachment is not found.', 'http_code' => 400, 'description' => 'The specified transit router does not exist.'], + ['code' => 'InvalidAuthkey.Malformed', 'message' => 'The specified BGP authentication key (%s) is malformed.', 'http_code' => 400, 'description' => 'The BGP authentication key is invalid.'], + ['code' => 'InvalidAvailable.NoResource', 'message' => 'No resource in the available zone.', 'http_code' => 400, 'description' => 'No resource is available in the current zone.'], + ['code' => 'InvalidBackendServerId.NotFound', 'message' => 'The specified BackendServerId is not found.', 'http_code' => null, 'description' => 'The backend server instance does not exist.'], + ['code' => 'InvalidBackendServerId.NotInVPC', 'message' => 'The specified BackendServerId is not in VPC.', 'http_code' => null, 'description' => 'BackendServerId is not a VPC ID.'], + ['code' => 'InvalidBackendServerRegionId.EqualRegionId', 'message' => 'The specified BackendServerRegionId can not be the same as RegionId.', 'http_code' => null, 'description' => 'You cannot specify the same value for BackendServerRegionId and RegionId.'], + ['code' => 'InvalidBackendServerRegionId.Mismatch', 'message' => 'The specified BackendServerRegionId is not in the GlobalAccelerationInstance’s ServiceLocation.', 'http_code' => null, 'description' => 'The region specified by the BackendServerRegionId parameter does not belong to the service regions of the GA instance.'], + ['code' => 'InvalidBackendServerRegionId.NotFound', 'message' => 'The specified BackendServerRegionId is not found.', 'http_code' => null, 'description' => 'The specified backend server region ID does not exist.'], + ['code' => 'InvalidBackendServerType.NotFound', 'message' => 'The specified BackendServerType is not supported.', 'http_code' => null, 'description' => 'The specified backend server type is not supported.'], + ['code' => 'InvalidBandwidth', 'message' => 'invalid physical connection banwidth.', 'http_code' => null, 'description' => 'The specified maximum bandwidth of the Express Connect circuit is invalid.'], + ['code' => 'InvalidBandwidth.NotEnough', 'message' => 'bandwdith not enough.', 'http_code' => 400, 'description' => 'The bandwidth of the bandwidth plan is insufficient.'], + ['code' => 'InvalidBandwidth.NotEnough', 'message' => 'Bandwidth not enough.', 'http_code' => 400, 'description' => 'The bandwidth plan has insufficient bandwidth.'], + ['code' => 'InvalidBandwidth.ValueNotSupported', 'message' => 'The specified value of Bandwidth not supported.', 'http_code' => null, 'description' => 'The specified maximum bandwidth value is invalid.'], + ['code' => 'InvalidBandwidthPackageId.NotFound', 'message' => 'The specified bandwidthPackageId does not exist in our records.', 'http_code' => 400, 'description' => 'The ID of the specified EIP bandwidth plan does not exist.'], + ['code' => 'InvalidBandwidthPackageId.NotFound', 'message' => 'The specified bandwidthPackage resourceId does not exist in our records.', 'http_code' => 404, 'description' => 'The error message returned because the specified EIP bandwidth plan does not exist.'], + ['code' => 'InvalidBandwidthPackageIdNumber.NotSupported', 'message' => 'The number of BandwidthPackageIds exceeds the limit.', 'http_code' => 400, 'description' => 'The number of BandwidthPackageIds exceeds the limit.'], + ['code' => 'InvalidBgpAuthkey.Malformed', 'message' => 'Specified Bgp Group authkey is not valid.', 'http_code' => null, 'description' => 'The authentication key of the BGP group is invalid.'], + ['code' => 'InvalidBgpDescription.Malformed', 'message' => 'Specified Bgp Group description is not valid.', 'http_code' => null, 'description' => 'The description of the BGP group is invalid.'], + ['code' => 'InvalidBgpDiscription.Malformed', 'message' => 'Specified Bgp Group description is not valid.', 'http_code' => null, 'description' => 'The description of the BGP group is invalid.'], + ['code' => 'InvalidBgpGroup', 'message' => 'bgp group not exists', 'http_code' => null, 'description' => 'The BGP group does not exist.'], + ['code' => 'InvalidBgpGroup.LocalAsn', 'message' => 'VBR already attached to ECR, please delete it from ECR.', 'http_code' => 400, 'description' => 'The VBR has bound the ECR and is not allowed to modify the local AS. To modify the local AS, please unbind the ECR first.'], + ['code' => 'InvalidBgpGroup.LocalAsnInvalid', 'message' => 'The specified BgpGroup LocalAsn is invalid, only support 64512 to 65534 or 4200000000 to 4294967294, but cannot be 65025.', 'http_code' => 400, 'description' => 'The local ASN of the BGP group is invalid. You must set a value from 64512 to 65534 or from 420000000 to 429496729.'], + ['code' => 'InvalidBgpName.Malformed', 'message' => 'Specified Bgp Group name is not valid.', 'http_code' => null, 'description' => 'The name of the BGP group is invalid.'], + ['code' => 'InvalidBindingStatus', 'message' => 'The eip binding status invalid.', 'http_code' => null, 'description' => 'The EIP is in an invalid state.'], + ['code' => 'InvalidChargeType.ValueNotSupported', 'message' => 'The specified ChargeType is not supported.', 'http_code' => null, 'description' => 'The specified billing method is not supported. Specify a supported billing method.'], + ['code' => 'InvalidCidrBlock', 'message' => 'Specified CIDR block is not valid.', 'http_code' => 400, 'description' => 'Possible reasons for error reporting:'."\n" + .'1. You are not in the whitelist of the 10.0.0.0/8 CIDR block and cannot use this CIDR block.'."\n" + .'2. The target CIDR block of the added custom route cannot belong to the CIDR block of all vSwitches under the same VPC.'."\n" + .'3. Because 100.64.0.0/10 is a cloud service address, you cannot add this CIDR block to point to the IDC under the cloud.'."\n" + .'4. Except for 100.64.0.0/10, the detailed route network segments such as 100.64.0.0/11 and 100.96.0.0/11 cannot be used in the IDC under the cloud.'], + ['code' => 'InvalidCidrBlock', 'message' => 'Specified CIDR block is already exists.', 'http_code' => null, 'description' => 'The vSwitch CIDR block overlaps with another vSwitch CIDR block or with the destination CIDR block of a custom route entry. Try a different CIDR block that is not in use.'], + ['code' => 'InvalidCIDRBlock.Duplicate', 'message' => 'Specified CIDR block is already exists.', 'http_code' => null, 'description' => 'This CIDR block already exists in the routing table.'], + ['code' => 'InvalidCidrBlock.Malformed', 'message' => 'Specified CIDR block is not valid.', 'http_code' => null, 'description' => 'The format of the CIDR block is invalid.'], + ['code' => 'InvalidCidrBlock.Overlapped', 'message' => 'Specified CIDR block overlapped with other subnets.', 'http_code' => null, 'description' => 'The vSwitch CIDR block overlaps with another vSwitch CIDR block or with the destination CIDR block of a custom route entry. Try a different CIDR block that is not in use.'], + ['code' => 'InvalidCidrBlock.Overlapped', 'message' => 'Specified CIDR block overlapped with other entry.', 'http_code' => null, 'description' => 'The specified CIDR block overlaps the CIDR block of another VPC or a custom routing destination. Select a CIDR block that is not used.'], + ['code' => 'InvalidCircuitCode.Malformed', 'message' => 'The specified CircuitCode is not valid.', 'http_code' => null, 'description' => 'CircuitCode is set to an invalid value.'], + ['code' => 'InvalidCircuitCode.Malformed', 'message' => 'circuitCode is illegal.', 'http_code' => null, 'description' => 'The error message returned because CircuitCode is set to an invalid value.'], + ['code' => 'InvalidCirdrBlock.MaskLength', 'message' => 'Specified CIDR block is not valid .', 'http_code' => 400, 'description' => 'Invalid CIDR block.'], + ['code' => 'InvalidClientIpPool.Conflict', 'message' => 'The specified client IP pool conflicts with other resources in the same VPC.', 'http_code' => 400, 'description' => 'The client CIDR block conflicts with resources in the VPC.'], + ['code' => 'InvalidCommodity.NotFound', 'message' => 'Commodity is not exist.', 'http_code' => 400, 'description' => 'The Commodity parameter is set to an invalid value.'], + ['code' => 'InvalidCustomerGatewayInstanceId.NotFound', 'message' => 'The specified customer gateway instance id does not exist.', 'http_code' => 404, 'description' => 'The specified customer gateway does not exist. Check whether the ID of the customer gateway is correct.'], + ['code' => 'InvalidDescription', 'message' => 'The description is not valid', 'http_code' => null, 'description' => 'The format of the description is invalid.'], + ['code' => 'InvalidDescription.Malformed', 'message' => 'The Description is illeagl.', 'http_code' => 400, 'description' => 'The specified resource description is invalid. The description must be 2 to 256 characters in length and cannot start with http:// or https://.'], + ['code' => 'InvalidDescription.Malformed', 'message' => 'The specifid ‘Description’ is not valid.', 'http_code' => null, 'description' => 'The format of the description is invalid.'], + ['code' => 'InvalidDescription.Malformed', 'message' => 'The specifid "Description" is not valid.', 'http_code' => null, 'description' => 'The source description can be 2 to 256 characters in length. It cannot start with http:// and https://.'], + ['code' => 'InvalidDescription.Malformed', 'message' => 'The specifid ?Description? is not valid.', 'http_code' => 400, 'description' => 'The error message returned because the specified resource description is invalid. The description must be 2 to 256 characters in length and cannot start with http:// or https://.'], + ['code' => 'InvalidDescription.Malformed', 'message' => 'The Description is illegal.', 'http_code' => 400, 'description' => 'The description must be 2 to 256 characters in length and cannot start with http:// or https://.'], + ['code' => 'InvalidDescription.Malformed', 'message' => 'The specifid Description is not valid.', 'http_code' => 400, 'description' => 'The Description parameter is set to an invalid value.'], + ['code' => 'InvalidDescription.Malformed', 'message' => 'The specified Description is wrongly formed.', 'http_code' => 400, 'description' => 'The error message returned because the Description parameter is set to an invalid value.'], + ['code' => 'InvalidDescription.Malformed', 'message' => 'The specified Description is not valid.', 'http_code' => 400, 'description' => 'Parameter Description value is illegal'], + ['code' => 'InvalidDescription.Malformed', 'message' => 'The specified "Description" is not valid.', 'http_code' => 400, 'description' => 'The description can be 2 to 256 characters in length and cannot start with http:// and https.'], + ['code' => 'InvalidDeviceName.NotFound', 'message' => 'DeviceName is not found.', 'http_code' => 404, 'description' => 'The specified device is not found.'], + ['code' => 'InvalidDhcpOptionsSetId.NotFound', 'message' => 'The specified dhcpOptionsSetId does not exist.', 'http_code' => 400, 'description' => 'The DHCP options set does not exist. Check whether the parameter is set to a valid value.'], + ['code' => 'InvalidDomainNameServers.Malformed', 'message' => 'The specified format of DomainNameServers is invalid.', 'http_code' => 400, 'description' => 'The format of the value of DomainNameServers is invalid. Check whether the parameter is set to a valid value.'], + ['code' => 'InvalidEIPStatus.BizDisabled', 'message' => 'The EIP has been locked.', 'http_code' => 400, 'description' => 'The error message returned because the EIP is locked.'], + ['code' => 'InvalidEndTime.Malformed', 'message' => 'Specified end time is malformed.', 'http_code' => null, 'description' => 'EndTime is set to an invalid value.'], + ['code' => 'InvalidEndTime.Malformed', 'message' => 'The specified parameter "EndTime" is not valid.', 'http_code' => null, 'description' => 'EndTime is set to an invalid value.'], + ['code' => 'InvalidEniType.SlaveEni', 'message' => 'The eni type cannot be slave eni.', 'http_code' => 400, 'description' => 'The ENI type cannot be a secondary ENI.'], + ['code' => 'InvalidEntryRuleQuota.NotFound', 'message' => 'Route entry quota rule not exists.', 'http_code' => null, 'description' => 'The quota rules of route entries do not exist.'], + ['code' => 'InvalidExternalIp.Malformed', 'message' => 'The specified ExternalIp is not a valid IP address.', 'http_code' => null, 'description' => 'The specified EIP is invalid.'], + ['code' => 'InvalidExternalIp.NotFound', 'message' => 'Specified External Ip address does not found on the VRouter', 'http_code' => null, 'description' => 'The specified EIP does not exist.'], + ['code' => 'InvalidExternalPort.Malformed', 'message' => 'The specified ExternalPort is not a valid port.', 'http_code' => null, 'description' => 'The specified public port is invalid.'], + ['code' => 'InvalidFilterKey.NotFound', 'message' => null, 'http_code' => null, 'description' => 'The specified filter key is invalid.'], + ['code' => 'InvalidFilterKey.ValueNotSupported', 'message' => 'Specified filter key is not supported: Filter.X.key', 'http_code' => 404, 'description' => 'Filter.X.key is not supported.'], + ['code' => 'InvalidFilterValue', 'message' => null, 'http_code' => null, 'description' => 'The specified filter value is invalid.'], + ['code' => 'InvalidForwardEntryId.NotFound', 'message' => 'Specified forward entry ID does not exist', 'http_code' => null, 'description' => 'The specified DNAT entry does not exist.'], + ['code' => 'InvalidForwardTableId.NotFound', 'message' => 'Specified forward table does not exist.', 'http_code' => null, 'description' => 'The specified DNAT table does not exist. Check the parameter and try again.'], + ['code' => 'InvalidForwardTableId.NotFound', 'message' => 'Specified forwardTableId does not exist', 'http_code' => null, 'description' => 'The specified DNAT table does not exist. Check the parameter and try again.'], + ['code' => 'InvalidGlobalAccelerationInstanceDescription.Malformed', 'message' => 'The specified Description is not valid.', 'http_code' => null, 'description' => 'The description format is invalid.'], + ['code' => 'InvalidGlobalAccelerationInstanceId.NotFound', 'message' => 'The specified GlobalAccelerationInstanceId is not found.', 'http_code' => null, 'description' => 'The GA instance does not exist.'], + ['code' => 'InvalidGlobalAccelerationInstanceName.Malformed', 'message' => 'The specified Name is not valid.', 'http_code' => null, 'description' => 'The name format is invalid.'], + ['code' => 'InvalidHaVip.NotFound', 'message' => 'The specified HaVip does not exist.', 'http_code' => null, 'description' => 'This HAVIP does not exist.'], + ['code' => 'InvalidHaVipId.NotFound', 'message' => 'The specified HaVip does not exist in the specified region.', 'http_code' => 404, 'description' => 'The specified HAVIP does not exist in the specified region. Check whether the specified region is correct.'], + ['code' => 'InvalidHaVipId.NotFound', 'message' => 'The specified HaVip does not exist in the specified VPC.', 'http_code' => 404, 'description' => 'The specified HAVIP does not exist in the VPC.'], + ['code' => 'InvalidIAssociatedInstanceType.ValueNotSupported', 'message' => 'The specified value of AssociatedInstanceType is not supported.', 'http_code' => 400, 'description' => 'The AssociatedInstanceType parameter is set to an invalid value.'], + ['code' => 'InvalidIDaaSApplicationId.NotFound', 'message' => 'The specified IDaaS application Id does not exist.', 'http_code' => 404, 'description' => 'The ID of the specified IDaaS application instance does not exist.'], + ['code' => 'InvalidIDaaSInstanceId.NotFound', 'message' => 'The specified IDaaS instance ID does not exist.', 'http_code' => 404, 'description' => 'The specified IDaaS instance does not exist.'], + ['code' => 'InvalidIdempotenceParameter.Mismatch', 'message' => 'The specified parameters are different from before.', 'http_code' => null, 'description' => 'This client token is different from the previous one.'], + ['code' => 'InvalidInstance.NotBelong', 'message' => 'The instance to be associated with does not belong to your account.', 'http_code' => 400, 'description' => 'The instance does not belong to your account.'], + ['code' => 'InvalidInstance.NotExist', 'message' => 'The bound instance does not exist.', 'http_code' => 400, 'description' => 'The associated instance does not exist.'], + ['code' => 'InvalidInstance.NotFound', 'message' => 'The specified Instance does not exist in the specified region.', 'http_code' => 404, 'description' => 'The specified instance does not exist in the current region.'], + ['code' => 'InvalidInstance.StatusError', 'message' => 'The router instance owener error.', 'http_code' => null, 'description' => 'The instance is in an invalid state.'], + ['code' => 'InvalidInstance.StatusError', 'message' => 'The router instance status error.', 'http_code' => 400, 'description' => 'The status of the instance is invalid.'], + ['code' => 'InvalidInstanceId', 'message' => 'vswitch does not exist.', 'http_code' => 400, 'description' => 'The error message returned because the vSwitch does not exist.'], + ['code' => 'InvalidInstanceId', 'message' => 'Instance does not exist.', 'http_code' => 400, 'description' => 'The error message returned because the specified instance does not exist.'], + ['code' => 'InvalidInstanceId', 'message' => 'VPC does not exists.', 'http_code' => 400, 'description' => 'The error message returned because the VPC does not exist.'], + ['code' => 'InvalidInstanceId', 'message' => 'NetworkInterface does not exist.', 'http_code' => 400, 'description' => 'The error message returned because the ENI does not exist.'], + ['code' => 'InvalidInstanceId.NotFound', 'message' => 'The specified Instance does not exist in the specified region.', 'http_code' => null, 'description' => 'The instance does not exist in the region.'], + ['code' => 'InvalidInstanceId.NotFound', 'message' => 'Specified instance does not exist.', 'http_code' => null, 'description' => 'The instance does not exist. Check the instance ID.'], + ['code' => 'InvalidInstanceId.NotFound', 'message' => 'The InstanceId provided does not exist in our records.', 'http_code' => null, 'description' => 'The ECS instance does not exist in the VPC.'], + ['code' => 'InvalidInstanceId.NotFound', 'message' => 'The InstanceId is not found.', 'http_code' => 400, 'description' => 'The InstanceId is not found.'], + ['code' => 'InvalidInstanceId.NotFound', 'message' => 'The InstanceId provided does not exist.', 'http_code' => 400, 'description' => 'The specified instance does not exist.'], + ['code' => 'InvalidInstanceId.NotFound', 'message' => 'InstanceId not found.', 'http_code' => 400, 'description' => 'The InstanceId is set to an invalid value.'], + ['code' => 'InvalidInstanceId.NotFound', 'message' => '[%s]', 'http_code' => 400, 'description' => 'The Express Connect circuit [%s] does not exist.'], + ['code' => 'InvalidInstanceId.NotFound', 'message' => 'InstanceId is not found.', 'http_code' => 400, 'description' => 'The Express Connect circuit ID is invalid.'], + ['code' => 'InvalidInstanceId.NotFound', 'message' => 'The specified instance id does not exist.', 'http_code' => 400, 'description' => 'The specified instance ID does not exist.'], + ['code' => 'InvalidInstanceIds.NotFound', 'message' => 'The instanceIds are not found', 'http_code' => 400, 'description' => 'The instance ID is not found.'], + ['code' => 'InvalidInstanceOwner.Error', 'message' => 'The router instance owener error.', 'http_code' => null, 'description' => 'The VRouter does belong to your account.'], + ['code' => 'InvalidInstanceOwner.Error', 'message' => 'The router instance owner error.', 'http_code' => 400, 'description' => 'The instance owner information is invalid.'], + ['code' => 'InvalidInstanceType.NotFound', 'message' => 'The instance type is not found', 'http_code' => 400, 'description' => 'The instance type is not found.'], + ['code' => 'InvalidInstanceType.ValueNotSupported', 'message' => 'The specified value of InstanceType is not supported.', 'http_code' => null, 'description' => 'InstanceType is set to an invalid value.'], + ['code' => 'InvalidInstanId.NotFound', 'message' => 'Specified instance does not exist.', 'http_code' => null, 'description' => 'The specified instance does not exist.'], + ['code' => 'InvalidInternalIp.Malformed', 'message' => 'The specified InternalIp is not a valid IP address.', 'http_code' => null, 'description' => 'The specified destination private IP address is invalid.'], + ['code' => 'InvalidInternalPort.Malformed', 'message' => 'The specified InternalPort is not a valid port.', 'http_code' => null, 'description' => 'The specified private port is invalid.'], + ['code' => 'InvalidIp.Malformed', 'message' => 'The specified ip address is not valid.', 'http_code' => null, 'description' => 'The specified private IP address is invalid.'], + ['code' => 'InvalidIP.Malformed', 'message' => 'Ip malformed.', 'http_code' => null, 'description' => 'The format of the IP address is invalid.'], + ['code' => 'InvalidIp.NotInNatgw', 'message' => 'The specified Ip not belong to natgateway.', 'http_code' => null, 'description' => 'The specified EIP is not associated with the NAT gateway.'], + ['code' => 'InvalidIp.NotSameSubnet', 'message' => 'Local gateway ip and peer gateway ip are not in the same subnet.', 'http_code' => 400, 'description' => 'The IP addresses of the local gateway and the peer gateway do not fall within the same subnet.'], + ['code' => 'InvalidIpAddress.AlreadyExist', 'message' => 'Specified IpAddress is already exist.', 'http_code' => 400, 'description' => 'The IP address already exists. You cannot specify duplicate IP addresses by using the same account in the same region.'], + ['code' => 'InvalidIPAddress.AlreadyInUse', 'message' => 'The specified IPAddress is already used by other resource.', 'http_code' => 400, 'description' => 'The IP address is being used by other resources.'], + ['code' => 'InvalidIPAddress.AlreadyUsed', 'message' => 'The specified IPAddress is already used by other resource.', 'http_code' => null, 'description' => 'The specified IP address is in use.'], + ['code' => 'InvalidIPAddress.Malformed', 'message' => 'The specified IPAddress is not a valid or strict address.', 'http_code' => 400, 'description' => 'The specified IP address is invalid.'], + ['code' => 'InvalidIPAddress.NotAvailable', 'message' => 'The specified IPAddress is not available because it is a system reserved IPAddress.', 'http_code' => null, 'description' => 'The specified IP address is reserved by the system and cannot be used.'], + ['code' => 'InvalidIPAddress.OutOfRange', 'message' => 'The specified IPAddress is out of VSwitch CIDR.', 'http_code' => null, 'description' => 'The private IP address does not fall within the vSwitch CIDR block.'], + ['code' => 'InvalidIPAddress.OutOfVswCIDR', 'message' => 'The specified IPAddress is out of VSwitch CIDR.', 'http_code' => 400, 'description' => 'The IP address does not fall within the CIDR block of the vSwitch.'], + ['code' => 'InvalidIpAddress.WrongFormat', 'message' => 'Specified IpAddress is invalid.', 'http_code' => null, 'description' => 'The specified IP address is invalid.'], + ['code' => 'InvalidIpCount.ValueNotSupported', 'message' => 'The specified value of IpCount not supported.', 'http_code' => null, 'description' => 'IpCount is set to an invalid value.'], + ['code' => 'InvalidIpCount.ValueNotSupported', 'message' => 'Can not remove all ips of the bandwidthPackage.', 'http_code' => null, 'description' => 'You cannot remove all IP addresses from the bandwidth plan.'], + ['code' => 'InvalidIpInstanceId.NotFound', 'message' => null, 'http_code' => null, 'description' => 'The specified EIP does not exist.'], + ['code' => 'InvalidIpInstanceId.NotFound', 'message' => 'The specified Eip InstanceId does not exist in our records.', 'http_code' => 400, 'description' => 'The specified EIP does not exist.'], + ['code' => 'InvalidIpv6AddressId.NotFound', 'message' => 'The specified resource of %s is not found.', 'http_code' => 400, 'description' => 'The IPv6 address is not found.'], + ['code' => 'InvalidIpv6CidrBlock.Malformed', 'message' => 'Param Ipv6CidrBlock is malformed.', 'http_code' => 400, 'description' => 'IPv6 network segment is illegal'], + ['code' => 'InvalidIpv6CidrBlock.NotFound', 'message' => 'The specified IPv6CidrBlock was not found.', 'http_code' => 400, 'description' => 'The specified IPv6CidrBlock was not found.'], + ['code' => 'InvalidIpv6Gateway.NotFound', 'message' => 'The specified IPv6 gateway was not found.', 'http_code' => 400, 'description' => 'The specified IPv6 gateway was not found.'], + ['code' => 'InvalidIpv6GatewayId.NotFound', 'message' => 'The specified IPv6GatewayId was not found.', 'http_code' => 400, 'description' => 'The specified IPv6GatewayId was not found.'], + ['code' => 'InvalidIpv6Instance.NotFound', 'message' => 'The specified resource of InvalidIpv6Instance is not found.', 'http_code' => 400, 'description' => 'The error message returned because the IPv6 resource is not found.'], + ['code' => 'InvalidIpv6Instance.NotFound', 'message' => 'The specified Ipv6AddressId or Ipv6InternetBandwidthId is not found.', 'http_code' => 404, 'description' => 'The error message returned because Ipv6AddressId or Ipv6InternetBandwidthId is not set.'], + ['code' => 'InvalidIpv6Instance.NotFound', 'message' => 'The specified IPv6Instance was not found.', 'http_code' => 400, 'description' => 'The specified IPv6 instance was not found.'], + ['code' => 'InvalidIpv6ULACidrBlock.Malformed', 'message' => 'The specified IPv6ULACidrBlock is malformed.', 'http_code' => 400, 'description' => 'The format of the specified IPv6ULACidrBlock is invalid.'], + ['code' => 'InvalidLineOperator.Malformd', 'message' => 'The LineOperator provided was invalid.', 'http_code' => null, 'description' => 'The value of the LineOperator parameter is invalid.'], + ['code' => 'InvalidLoadBalancerId.NotFound', 'message' => 'The specified resource of load balancer is not found.', 'http_code' => 400, 'description' => 'The SLB instance does not exist.'], + ['code' => 'InvalidLoadBalancerId.NotFound', 'message' => 'LoadBalancerId does not exist.', 'http_code' => 400, 'description' => 'The ID of the SLB instance does not exist.'], + ['code' => 'InvalidLocalBgpIp.Malformed', 'message' => 'The specified LocalBgpIp is malformed.', 'http_code' => 400, 'description' => 'The local BGP IP address is in an abnormal state.'], + ['code' => 'InvalidLocalGatewayIp.Malformed', 'message' => 'The specified LocalGatewayIp is not valid.', 'http_code' => null, 'description' => 'The IP address of the local gateway is invalid.'], + ['code' => 'InvalidLockReason.NotFound', 'message' => 'The specified LockReason is not found', 'http_code' => null, 'description' => 'The reason why the instance is locked is unknown.'], + ['code' => 'InvalidName', 'message' => 'The name is not valid', 'http_code' => null, 'description' => 'The name format is invalid.'], + ['code' => 'InvalidName.Malformd', 'message' => 'The attribute name is illeagl.', 'http_code' => null, 'description' => 'Invalid name format.'], + ['code' => 'InvalidName.Malformd', 'message' => 'The attribute name is illegal.', 'http_code' => 400, 'description' => 'The property name is invalid.'], + ['code' => 'InvalidName.Malformed', 'message' => 'The specified ‘Name’ is not valid.', 'http_code' => null, 'description' => 'The name format is invalid.'], + ['code' => 'InvalidName.Malformed', 'message' => 'The specified "Name" is not valid.', 'http_code' => null, 'description' => 'The name format is invalid.'], + ['code' => 'InvalidName.Malformed', 'message' => 'The specified ?Name? is not valid.', 'http_code' => null, 'description' => 'The error message returned because the name format is invalid.'], + ['code' => 'InvalidName.Malformed', 'message' => 'The attribute name is illegal.', 'http_code' => 400, 'description' => 'The value of the Name parameter is invalid.'], + ['code' => 'InvalidName.Malformed', 'message' => 'The specified Name is not valid.', 'http_code' => 400, 'description' => 'The Name parameter is set to an invalid value.'], + ['code' => 'InvalidNatGatewayDescription.MalFormed', 'message' => 'NatGateway description is not valid.', 'http_code' => null, 'description' => 'The gateway description is invalid.'], + ['code' => 'InvalidNatGatewayId.NotFound', 'message' => 'The NatGatewayId not exist.', 'http_code' => null, 'description' => 'The value of the NatGatewayId parameter is invalid.'], + ['code' => 'InvalidNatGatewayId.NotFound', 'message' => 'The specified NatGatewayId does not exist in our records.', 'http_code' => null, 'description' => 'The value of the NatGatewayId parameter is invalid.'], + ['code' => 'InvalidNatGatewayName.MalFormed', 'message' => 'NatGateway name is not valid.', 'http_code' => null, 'description' => 'The gateway name is invalid.'], + ['code' => 'InvalidNetworkAcl.NotFound', 'message' => 'The special Network Acl is not found.', 'http_code' => 400, 'description' => 'The network ACL is not found.'], + ['code' => 'InvalidNetworkInterface.NotFound', 'message' => 'The network interface is not found on the attachment.', 'http_code' => 400, 'description' => 'No ENI is associated with the specified transit router.'], + ['code' => 'InvalidNetworkInterface.NotFound', 'message' => 'The specified network interface does not exist.', 'http_code' => 400, 'description' => 'The ID of the next hop ENI is not found.'], + ['code' => 'InvalidNetworkInterfaceId.NotFound', 'message' => 'The network interface is not found.', 'http_code' => 400, 'description' => 'The ENI does not exist.'], + ['code' => 'InvalidNextHop', 'message' => 'Specified nexthop and nexthop list cannot both null.', 'http_code' => null, 'description' => 'The next hop and next hop list cannot be empty at the same time.'], + ['code' => 'InvalidNexthop', 'message' => 'The Specified nexthop illage.', 'http_code' => null, 'description' => 'The next hop ID does not exist.'], + ['code' => 'InvalidNexthop.DirectEni', 'message' => 'The direct Eni cannot be nexthop.', 'http_code' => 400, 'description' => 'An ENI in cut-through mode cannot be specified as a next hop.'], + ['code' => 'InvalidNextHop.NotFound', 'message' => 'Specified next hop does not exist.', 'http_code' => null, 'description' => 'The specified next hop does not exist.'], + ['code' => 'InvalidNextHop.NotFound', 'message' => 'The specified NextHop does not exist.', 'http_code' => 400, 'description' => 'The specified next hop does not exist.'], + ['code' => 'InvalidNexthop.UnsupportedEniBizType', 'message' => 'The biz type of NetworkInterface is illegal.', 'http_code' => 400, 'description' => 'The biz type of NetworkInterface as the nexthop is illegal.'], + ['code' => 'InvalidNexthop.zhuhao', 'message' => 'The specified nexthop is illegal.', 'http_code' => 400, 'description' => 'The next hop of the route is invalid.'], + ['code' => 'InvalidNextHopId.NotFound', 'message' => 'Specified next hop does not exist.', 'http_code' => null, 'description' => 'The next hop does not exist.'], + ['code' => 'InvalidNextHopList.Size', 'message' => 'Has more than one nexthop.', 'http_code' => 400, 'description' => 'Has more than one nexthop.'], + ['code' => 'InvalidNexthopListSize', 'message' => 'nexthop size is illegal. Must be between 2 and 4.', 'http_code' => 400, 'description' => 'You must specify two to four router interfaces as next hops.'], + ['code' => 'InvalidNextHopType', 'message' => 'Specified parameter "NextHopType" is not valid', 'http_code' => null, 'description' => 'The specified next hop type is invalid.'], + ['code' => 'InvalidNextHopType', 'message' => 'Specified parameter "NextHopType" is not valid.', 'http_code' => 400, 'description' => 'Specified parameter "NextHopType" is not valid.'], + ['code' => 'InvalidNexthopTypeAndList.BothNotNull', 'message' => 'both nexthopType and nextHopList are not null.', 'http_code' => null, 'description' => 'You cannot leave both NextHopType and NextHopList empty.'], + ['code' => 'InvalidNexthopTypeAndList.BothNull', 'message' => 'both nexthopType and nextHopList are null.', 'http_code' => null, 'description' => 'NextHopType and NextHopList are not specified.'], + ['code' => 'InvalidNicOrVm.NotFound', 'message' => 'Bind nic or vm not exist.', 'http_code' => 400, 'description' => 'The bound NIC or VM does not exist.'], + ['code' => 'Invalidnull.NotFound', 'message' => '%s [%s] is not found.', 'http_code' => 400, 'description' => 'Resource is not found.'], + ['code' => 'InvalidOperation.OperationNotAllowedInState', 'message' => 'The specified VirutalBorderRouter is in invalid state', 'http_code' => null, 'description' => 'The status of the VBR interface does not support this operation.'], + ['code' => 'InvalidOperation.OperationNotAllowedInState', 'message' => 'The specified VirutalBorderRouter is in invalid state.', 'http_code' => null, 'description' => 'The specified VBR is in an invalid state. Check the status of the VBR.'], + ['code' => 'InvalidOperation.OrderOpened', 'message' => 'You have already open the service. Go to the console to start using it.', 'http_code' => 400, 'description' => 'The cloud traffic service has been activated. Go to the console to use it.'], + ['code' => 'InvalidOperation.RouterInterfaceNotDeleted', 'message' => 'The specified VirutalBorderRouter still has routerInterface.', 'http_code' => null, 'description' => 'The VBR is associated with a router interface.'], + ['code' => 'InvalidOpposite.NotFound', 'message' => 'The opposite does not exist.', 'http_code' => 400, 'description' => 'The peer does not exist.'], + ['code' => 'InvalidOpposite.NotFound', 'message' => 'The opposite does not exit.', 'http_code' => 400, 'description' => 'The peer does not exist.'], + ['code' => 'InvalidOppositeRegionId.NotFound', 'message' => 'The oppositeRegionId provided does not exist in our records.', 'http_code' => null, 'description' => 'The peer region does not exist.'], + ['code' => 'InvalidOppositeRouterType', 'message' => 'nexthop list cannot only contain router interface whose opposite router interface is on vbr.', 'http_code' => null, 'description' => 'The specified next hop is invalid. The peer router of the router interface that you specify as the next hop must be a VBR.'], + ['code' => 'InvalidOppositeRouterType.ValueNotSupported', 'message' => 'The specified OppositeRouterType is not valid.', 'http_code' => 400, 'description' => 'The value of the OppositeRouterType parameter is invalid.'], + ['code' => 'InvalidParam', 'message' => 'The Ecmp routerEntry with router interfaces local vgw vip not match.', 'http_code' => null, 'description' => 'The Ecmp routerEntry with router interfaces local vgw vip not match.'], + ['code' => 'InvalidParam', 'message' => 'The routerEntry input param is illegal.', 'http_code' => 400, 'description' => 'The input parameter of the modified route is illegal.'], + ['code' => 'InvalidParam.AvailableZoneId', 'message' => 'The specified AvailableZoneId did not retrieve the corresponding cluster IP address.', 'http_code' => 400, 'description' => 'The specified AvailableZoneId does not obtain the corresponding cluster IP address.'], + ['code' => 'InvalidParam.CloudInstanceType', 'message' => 'invalid cloud instance type', 'http_code' => 400, 'description' => 'The service type is invalid.'], + ['code' => 'InvalidParam.ModifyRouterInterface', 'message' => 'Modify routerinterface param invalide', 'http_code' => null, 'description' => 'A parameter that you set to modify the router interface is invalid.'], + ['code' => 'InvalidParam.ModifyRouterInterface', 'message' => 'Modify routerinterface param invalid', 'http_code' => 400, 'description' => 'The parameters for editing the router interface are invalid.'], + ['code' => 'InvalidParam.NotFound', 'message' => 'Parameter must not be null', 'http_code' => null, 'description' => 'A required parameter is not specified.'], + ['code' => 'InvalidParam.NotFound', 'message' => 'Parameter must not be null,uid, bid,regionNo, remoteRegionNo, routerId or accessPointId', 'http_code' => 400, 'description' => 'The parameter value cannot be null.'], + ['code' => 'InvalidParam.NotFound', 'message' => 'Parameters such as uid, bid, regionNo, remoteRegionNo or routerId cannot be null.', 'http_code' => 400, 'description' => 'Parameters such as uid, bid, regionNo, remoteRegionNo, and routerId cannot be empty'], + ['code' => 'InvalidParam.NotNull', 'message' => 'The parameter must not be null.', 'http_code' => null, 'description' => 'A required parameter is not specified.'], + ['code' => 'InvalidParam.NotNull', 'message' => 'SnatTableId and natGatewayId can not both be null', 'http_code' => 400, 'description' => 'SnatTableId and natGatewayId cannot be empty at the same time.'], + ['code' => 'InvalidParam.NotNull', 'message' => 'FullnatTableId and natGatewayId can not both be null', 'http_code' => 400, 'description' => 'FullnatTableId and natGateway cannot be empty at the same time.'], + ['code' => 'InvalidParam.NotNull', 'message' => 'ForwardTableId and natGatewayId can not both be null', 'http_code' => 400, 'description' => 'ForwardTableId and natGatewayId cannot be empty at the same time.'], + ['code' => 'InvalidParameter', 'message' => 'The parameter is invalid.', 'http_code' => 400, 'description' => 'The bandwidth value is invalid.'], + ['code' => 'InvalidParameter', 'message' => 'Specified CIDR block is not valid', 'http_code' => null, 'description' => 'The specified CIDR block is invalid.'], + ['code' => 'InvalidParameter', 'message' => 'Specified CIDR block is not valid in VPC.', 'http_code' => null, 'description' => 'The CIDR block does not fall within the VPC CIDR block.'], + ['code' => 'InvalidParameter', 'message' => 'Specified value of "Bandwidth" is not supported.', 'http_code' => null, 'description' => 'The specified bandwidth value is invalid.'], + ['code' => 'InvalidParameter', 'message' => 'Specified UserCidr Subnet mask is not valid .', 'http_code' => null, 'description' => 'The subnet mask of the user CIDR block is invalid.'], + ['code' => 'InvalidParameter', 'message' => 'Specified UserCidr invalid format.', 'http_code' => null, 'description' => 'The format of the user CIDR block is invalid.'], + ['code' => 'InvalidParameter', 'message' => 'The specified parameter is not valid.', 'http_code' => null, 'description' => 'The parameter is set to an invalid value.'], + ['code' => 'InvalidParameter', 'message' => 'Specified value of "Period" is not valid', 'http_code' => null, 'description' => 'Period is set to an invalid value.'], + ['code' => 'InvalidParameter', 'message' => 'The specified parameter is not valid', 'http_code' => null, 'description' => 'The parameter is set to an invalid value.'], + ['code' => 'InvalidParameter', 'message' => 'Specified value of InternetChargeType is not valid.', 'http_code' => 400, 'description' => 'InternetChargeType is set to an invalid value.'], + ['code' => 'InvalidParameter', 'message' => 'Specified value of "Bandwidth" is not valid.', 'http_code' => null, 'description' => 'The specified bandwidth value is invalid.'], + ['code' => 'InvalidParameter.Bandwidth', 'message' => null, 'http_code' => null, 'description' => 'The specified bandwidth value is invalid.'], + ['code' => 'InvalidParameter.BandwidthPackage.n.ISP.ValueNotSupport', 'message' => 'The specified ISP of BandwidthPackage is not valid.', 'http_code' => null, 'description' => 'The specified ISP of the EIP bandwidth plan is invalid.'], + ['code' => 'InvalidParameter.BgpConfig', 'message' => 'The specified BgpConfig is invalid.', 'http_code' => 400, 'description' => 'The error message returned because the BGP configuration is invalid.'], + ['code' => 'InvalidParameter.Description.Malformed', 'message' => 'The specified Description is not valid.', 'http_code' => null, 'description' => 'The specified description is invalid.'], + ['code' => 'InvalidParameter.EniInstanceId', 'message' => 'The specified EniInstanceId is invalid.', 'http_code' => 400, 'description' => 'The specified EniInstanceId is invalid.'], + ['code' => 'InvalidParameter.Mismatch', 'message' => 'Specified elastic IP address and ECS instance are not in the same region.', 'http_code' => null, 'description' => 'The EIP and ECS instance do not belong to the same region.'], + ['code' => 'InvalidParameter.Name.Malformed', 'message' => 'The specified Name is not valid.', 'http_code' => null, 'description' => 'The specified name format is invalid. Enter the name in the valid format.'], + ['code' => 'InvalidParameter.RegionId', 'message' => 'The EIP must be the same as the region of the bound instance.', 'http_code' => 400, 'description' => 'The EIP and the instance to be associated must belong to the same region.'], + ['code' => 'InvalidParameter.Spec.ValueNotSupported', 'message' => 'The specified Spec is not valid.', 'http_code' => null, 'description' => 'The specification is invalid.'], + ['code' => 'InvalidParameter.TagKey', 'message' => 'The specified parameter TagKey is invalid.', 'http_code' => 400, 'description' => 'The error message returned because the specified tag key is invalid.'], + ['code' => 'InvalidParameter.TagValue', 'message' => 'The specified parameter TagValue is invalid.', 'http_code' => 400, 'description' => 'The error message returned because the specified tag value is invalid.'], + ['code' => 'InvalidParameter.TooMany', 'message' => 'monitor parameter too many data required.', 'http_code' => 400, 'description' => 'There are multiple invalid input parameters.'], + ['code' => 'InvalidParameter.VpnConnectionName', 'message' => 'The specified vpn connection name is invalid.', 'http_code' => 400, 'description' => 'The VPN connection name does not meet the requirements.'], + ['code' => 'InvalidParams.AlreadyExists', 'message' => 'bgp network already exists', 'http_code' => 400, 'description' => 'The BGP network already exists.'], + ['code' => 'InvalidParams.NotFound', 'message' => 'instance not found', 'http_code' => null, 'description' => 'The specified instance does not exist.'], + ['code' => 'InvalidParams.NotFound', 'message' => 'vpc instance not found', 'http_code' => 400, 'description' => 'The VPC does not exist. Check whether the specified VPC is valid.'], + ['code' => 'InvalidParams.NotNull', 'message' => 'parameter must not null.', 'http_code' => null, 'description' => 'A required parameter is not specified.'], + ['code' => 'InvalidParams.NotNull', 'message' => 'invalid peer asn cannot equals aliyun asn:45104', 'http_code' => null, 'description' => 'The AS number cannot be the same as the AS number on the Alibaba Cloud side.'], + ['code' => 'InvalidParams.NotNull', 'message' => 'The parameter must not be null, name or description or icmpReplyEnabled', 'http_code' => 400, 'description' => 'The name, description, and ICMP proxy cannot be empty at the same time.'], + ['code' => 'InvalidParams.NotNull', 'message' => 'params must not null.', 'http_code' => 400, 'description' => 'The parameter is required.'], + ['code' => 'InvalidParams.PeerIpAddressInUse', 'message' => 'peer ip address in use', 'http_code' => null, 'description' => 'The peer IP address is in use.'], + ['code' => 'InvalidParams.PeerIpAddressInUse', 'message' => 'peer ip address in use ,cannot create bgp peer.', 'http_code' => 400, 'description' => 'The peer IP address is being used. Therefore, you cannot use it to create a BGP peer.'], + ['code' => 'InvalidParams.PeerIpAddressMustPointOut', 'message' => 'vbr has 0 or more than 1 subif', 'http_code' => null, 'description' => 'The VBR must have at least one subinterface to create a BGP.'], + ['code' => 'InvalidParams.PeerIpAddressMustPointOut', 'message' => 'vbr has 0 or more than 1 subif ,point out peerIpAddress.', 'http_code' => 400, 'description' => 'You must set the PeerIpAddress parameter.'], + ['code' => 'InvalidPeerAsn.Malformed', 'message' => 'invalid peer asn cannot equals aliyun asn:45104', 'http_code' => null, 'description' => 'The AS number cannot be the same as the AS number on the Alibaba Cloud side.'], + ['code' => 'InvalidPeerGatewayIp.Malformed', 'message' => 'The specified PeerGatewayIp is not valid.', 'http_code' => null, 'description' => 'PeerGatewayIp is set to an invalid value.'], + ['code' => 'InvalidPeeringSubnetMask.Malformed', 'message' => 'The specified PeeringSubnetMask is not valid.', 'http_code' => 400, 'description' => 'PeeringSubnetMask is set to an invalid value.'], + ['code' => 'InvalidPeerIpAddress', 'message' => 'multi pconn peer ip can not be null.', 'http_code' => null, 'description' => 'The IP addresses of multiple Express Connect circuits cannot be empty.'], + ['code' => 'InvalidPeerLocation.Malformd', 'message' => 'The PeerLocation provided was invalid.', 'http_code' => null, 'description' => 'PeerLocation is set to an invalid value.'], + ['code' => 'InvalidPeriod.ValueNotSupported', 'message' => 'The specified parameter "Period" is not valid.', 'http_code' => null, 'description' => 'Period is set to an invalid value.'], + ['code' => 'InvalidPhoneNum.Malformed', 'message' => 'The parameter PhoneNum is invalid.', 'http_code' => 400, 'description' => 'The parameter PhoneNum is invalid.'], + ['code' => 'InvalidPhysicalConnectionBandwidth.Malformed', 'message' => 'Specified PhysicalConnection Bandwidth is not valid.', 'http_code' => 400, 'description' => 'The bandwidth of the Express Connect circuit is set to an invalid value.'], + ['code' => 'InvalidPhysicalConnectionBusinessStatus', 'message' => 'invalid physical connection business status.', 'http_code' => null, 'description' => 'The Express Connect circuit is in an invalid state.'], + ['code' => 'InvalidPhysicalConnectionChargeType.Malformed', 'message' => 'Specified Physical Connection ChargeType is not valid.', 'http_code' => 400, 'description' => 'The InstanceChargeType parameter is set to an invalid value.'], + ['code' => 'InvalidPhysicalConnectionId.NotEnabled', 'message' => 'The specified PhysicalConnectionId is not in Enabled state.', 'http_code' => null, 'description' => 'The Express Connect circuit is in an invalid state. Check the Express Connect circuit and try again.'], + ['code' => 'InvalidPhysicalConnectionId.NotFound', 'message' => 'The specified PhysicalConnectionId is not found.', 'http_code' => 400, 'description' => 'The specified Express Connect circuit ID does not exist.'], + ['code' => 'InvalidPhysicalConnectionId.NotFound', 'message' => 'The specified PhysicalConnectionId does not belong to user.', 'http_code' => null, 'description' => 'The specified physical connection does not belong to your account.'], + ['code' => 'InvalidPhysicalConnectionId.NotFound', 'message' => 'The PhysicalConnectionId provided does not exist in our records.', 'http_code' => null, 'description' => 'The Express Connect circuit does not exist.'], + ['code' => 'InvalidPhysicalConnectionId.NotFound', 'message' => 'The specified physicalConnection is not found.', 'http_code' => 400, 'description' => 'The specified physicalConnection is not found.'], + ['code' => 'InvalidPhysicalConnectionId.NotFound', 'message' => 'The specified physicalConnection is not found', 'http_code' => 400, 'description' => 'The PhysicalConnectionId parameter is set to an invalid value.'], + ['code' => 'InvalidPhysicalConnectionId.NotMatched', 'message' => 'instance id not matched.', 'http_code' => null, 'description' => 'The instance ID does not match.'], + ['code' => 'InvalidPhysicalConnectionOperator.Malformed', 'message' => 'Specified PhysicalConnection Operator is not valid.', 'http_code' => 400, 'description' => 'The operation on the Express Connect circuit is invalid.'], + ['code' => 'InvalidPhysicalConnectionPeriod.Malformed', 'message' => 'Specified Physical Connection Period is not valid.', 'http_code' => 400, 'description' => 'The Period parameter is set to an invalid value.'], + ['code' => 'InvalidPhysicalConnectionPortType.Malformed', 'message' => 'Specified PhysicalConnection PortType is not valid.', 'http_code' => 400, 'description' => 'The port type of the Express Connect circuit is invalid.'], + ['code' => 'InvalidPolicy.WrongFormat', 'message' => 'Invalid input policy format.', 'http_code' => 400, 'description' => 'The format of the policy information is invalid.'], + ['code' => 'InvalidPortType.Malformd', 'message' => 'The PortType provided was invalid.', 'http_code' => null, 'description' => 'The specified port type is invalid.'], + ['code' => 'InvalidPortType.NotFound', 'message' => 'Specified port type is not found.', 'http_code' => 400, 'description' => 'The portType parameter is not set.'], + ['code' => 'InvalidPortType.NotFound', 'message' => 'There are no resources with the portType.', 'http_code' => 404, 'description' => 'The specified port type is invalid.'], + ['code' => 'InvalidPrice.NotFound', 'message' => 'Pricing plan result not found.', 'http_code' => 400, 'description' => 'The Price parameter is set to an invalid value.'], + ['code' => 'InvalidProtocal.ValueNotSupported', 'message' => 'The specified IpProtocol does not support.', 'http_code' => null, 'description' => 'The specified protocol is not supported.'], + ['code' => 'InvalidRedundantPhysicalConnection', 'message' => 'redundant physical connection doesn\'t belong to current user.', 'http_code' => null, 'description' => 'The specified redundant Express Connect circuit does not belong to your Alibaba Cloud account.'], + ['code' => 'InvalidRedundantPhysicalConnectionId.NotFound', 'message' => 'The RedundantPhysicalConnectionId does not found.', 'http_code' => null, 'description' => 'The specified redundant Express Connect circuit does not exist.'], + ['code' => 'InvalidRedundantPhysicalConnectionStatus', 'message' => 'invalid redundant physical connection status.', 'http_code' => null, 'description' => 'The redundant Express Connect circuit is in an invalid state.'], + ['code' => 'InvalidRegion.NotSupport', 'message' => 'The specified region does not support.', 'http_code' => null, 'description' => 'The specified region does not support.'], + ['code' => 'InvalidRegionId.NotFound', 'message' => 'The specified region not found.', 'http_code' => null, 'description' => 'RegionId is set to an invalid value. Check whether the service is available in the specified region and try again.'], + ['code' => 'InvalidRegionId.NotFound', 'message' => 'Specified value of "regionId" is not supported.', 'http_code' => null, 'description' => 'RegionId is set to an invalid value. Check whether the service is available in the specified region and try again.'], + ['code' => 'InvalidRegionId.NotFound', 'message' => 'The specified RegionId is not found.', 'http_code' => 404, 'description' => 'The specified region ID is invalid. Check whether the service is available in the specified region.'], + ['code' => 'InvalidRegionId.NotFound', 'message' => 'The specified RegionId does not exist in our records.', 'http_code' => 400, 'description' => 'The specified region ID does not exist.'], + ['code' => 'InvalidRegionId.NotFound', 'message' => 'The parameter wrong', 'http_code' => null, 'description' => 'The parameter value is invalid.'], + ['code' => 'InvalidRegionId.NotFound', 'message' => null, 'http_code' => null, 'description' => 'The specified region ID is invalid.'], + ['code' => 'InvalidRegionId.NotFound', 'message' => 'The regionId provided does not exist in our records.', 'http_code' => 404, 'description' => 'The RegionId parameter is set to an invalid value. Specify a valid value and try again.'], + ['code' => 'InvalidRegionId.NotFound', 'message' => 'The specified RegionId does not exist.', 'http_code' => 404, 'description' => 'The specified region does not exist.'], + ['code' => 'InvalidRegionId.NotFound', 'message' => 'The specified region is not found.', 'http_code' => 400, 'description' => 'The specified region does not exist.'], + ['code' => 'InvalidRegionId.NotFound', 'message' => 'The regionId provided does not exist in ec region list.', 'http_code' => 400, 'description' => 'The parameter is invalid.'], + ['code' => 'InvalidRegionId.NotFound', 'message' => 'The parameter wrong, pageNum or pageSize.', 'http_code' => 404, 'description' => 'The parameter is set to an invalid value.'], + ['code' => 'InvalidRegionId.NotFound', 'message' => 'The specified region is not found during access authentication.', 'http_code' => 404, 'description' => 'The specified area is not found during authentication.'], + ['code' => 'InvalidRegionId.NotFound', 'message' => 'The RegionId provided does not exist in our records.', 'http_code' => 404, 'description' => 'The parameter is invalid.'], + ['code' => 'InvalidRegionId.NotSupport', 'message' => 'The RegionId provided does not support in our records.', 'http_code' => null, 'description' => 'The specified region ID is invalid.'], + ['code' => 'InvalidRegionPair.NotReachable', 'message' => 'The specified OppositeRegion is not reachable by ExpressConnect from that region specified by "RegionId"', 'http_code' => null, 'description' => 'The specified region ID is invalid.'], + ['code' => 'invalidRemovedIpAddresses.NotFound', 'message' => 'Some of the specified value of RemovedIpAddress not found in specified BandwidthPackage.', 'http_code' => null, 'description' => 'An EIP in the EIP list is not associated with the EIP bandwidth plan. Check the EIP list.'], + ['code' => 'InvalidRemovedIpAddresses.NotFound', 'message' => 'Some of remove ip is not natPublicIp.', 'http_code' => null, 'description' => 'One or more public IP addresses to be removed are not associated with the NAT gateway.'], + ['code' => 'InvalidReservationTime.Malformed', 'message' => 'The parameter ReservationTime is invalid.', 'http_code' => 400, 'description' => 'The parameter ReservationTime is invalid.'], + ['code' => 'InvalidResource.BindingExist', 'message' => 'The binding instance has been binded.', 'http_code' => 400, 'description' => 'The instance is already in the Associated state.'], + ['code' => 'InvalidResourceGroupId', 'message' => 'The specified ResourceGroupId does not exist.', 'http_code' => 400, 'description' => 'The specified resource group ID does not exist.'], + ['code' => 'InvalidResourceId.NotFound', 'message' => 'This resourceId already has flowlog instance existed.', 'http_code' => 400, 'description' => 'A flow log is already enabled for the resource.'], + ['code' => 'InvalidResourceId.NotFound', 'message' => 'The specified ResourceId does not exist.', 'http_code' => 404, 'description' => 'The specified resource ID does not exist.'], + ['code' => 'InvalidRole.ValueNotSupported', 'message' => 'The specified Role is not valid.', 'http_code' => null, 'description' => 'The specified role is invalid.'], + ['code' => 'InvalidRouteEntry', 'message' => 'Specified routeEntry not exist.', 'http_code' => null, 'description' => 'The specified route entry does not exist.'], + ['code' => 'InvalidRouteEntry.Duplicate', 'message' => 'The route entry already exist.', 'http_code' => null, 'description' => 'The specified route entry already exists.'], + ['code' => 'InvalidRouteEntry.NotFound', 'message' => 'Route entry not exists.', 'http_code' => null, 'description' => 'The route entry does not exist.'], + ['code' => 'InvalidRouteEntry.NotFound', 'message' => 'The specified route entry does not exist.', 'http_code' => 400, 'description' => 'The error message returned because the specified route does not exist.'], + ['code' => 'InvalidRouteEntryId.NotFound', 'message' => 'The specified routeEntry does not exist.', 'http_code' => 400, 'description' => 'The specified routeEntry does not exist.'], + ['code' => 'InvalidRouteEntryId.NotFound', 'message' => 'Specified RouteEntryId does not exist.', 'http_code' => 400, 'description' => 'The specified route is not found.'], + ['code' => 'InvalidRouteEntryId.NotFound', 'message' => 'The specified resource of is not found.', 'http_code' => 404, 'description' => 'The specified route entry does not exist.'], + ['code' => 'InvalidRouteEntryName.Malformed', 'message' => 'Specified RouteEntry name is not valid.', 'http_code' => 400, 'description' => 'The new name of the route is invalid.'], + ['code' => 'InvalidRouteEntrySize', 'message' => 'The Specified routerEntry size not legal.', 'http_code' => 400, 'description' => 'You must specify two to four router interfaces as next hops if you want to configure ECMP routing.'], + ['code' => 'InvalidRouterId.AttacedToCEN', 'message' => 'Can not create ri when attaced to CEN.', 'http_code' => 404, 'description' => 'You cannot attach the router interface to the CEN instance.'], + ['code' => 'InvalidRouterId.NotFound', 'message' => 'The specified RouterId does not exist in our recored.', 'http_code' => null, 'description' => 'The specified router ID does not exist.'], + ['code' => 'InvalidRouterId.NotFound', 'message' => 'Param is not valid,this user does not have this router or aliuid bid regionNo and routerId must have something wrong.', 'http_code' => 400, 'description' => 'The RouterId parameter is set to an invalid value.'], + ['code' => 'InvalidRouterInterface', 'message' => 'invalid router interface.', 'http_code' => null, 'description' => 'The specified router interface does not exist.'], + ['code' => 'InvalidRouterInterfaceChargeType.Malformed', 'message' => 'The prepaid routerinterface can not delete.', 'http_code' => null, 'description' => 'You cannot delete a subscription router interface.'], + ['code' => 'InvalidRouterInterfaceChargeType.Malformed', 'message' => 'Specified RouterInterface ChargeType is not valid.', 'http_code' => 400, 'description' => 'The RouterInterface ChargeType parameter is set to an invalid value.'], + ['code' => 'InvalidRouterInterfaceId.NotFound', 'message' => 'The specified RouterInterfaceId does not exist in our records.', 'http_code' => null, 'description' => 'The specified router interface does not exist.'], + ['code' => 'InvalidRouterInterfaceId.NotFound', 'message' => 'The specified RouterInterfaceId does not exist in our record.', 'http_code' => null, 'description' => 'The specified router interface does not exist.'], + ['code' => 'InvalidRouterInterfaceId.NotFound', 'message' => 'The specified RouterInterface does not exist in our record.', 'http_code' => 400, 'description' => 'The specified RouterInterface instance does not exist.'], + ['code' => 'InvalidRouterInterfaceSpec.Malformed', 'message' => 'Specified RouterInterface spec is not valid.', 'http_code' => 400, 'description' => 'The RouterInterface Spec parameter is set to an invalid value.'], + ['code' => 'InvalidRouterType', 'message' => 'Cannot specify nexthop list in vbr\'s route table.', 'http_code' => 400, 'description' => 'The specified next hop does not exist in the VBR routing table'], + ['code' => 'InvalidRouterType.ValueNotSupported', 'message' => 'The specified RouterType is not valid.', 'http_code' => null, 'description' => 'The router type is invalid.'], + ['code' => 'InvalidRouterType.ValueNotSupported', 'message' => 'The specified RouterType is not valid', 'http_code' => null, 'description' => 'The router type is invalid.'], + ['code' => 'InvalidRouteTable.NotFound', 'message' => 'The specified routetable does not exist.', 'http_code' => 400, 'description' => 'The route table is not found.'], + ['code' => 'InvalidRouteTable.NotFound', 'message' => 'The specified RouteTable was not found.', 'http_code' => 400, 'description' => 'The specified route table was not found.'], + ['code' => 'InvalidRouteTableId.NotFound', 'message' => 'Specified route table does not exist.', 'http_code' => null, 'description' => 'The specified route table does not exist.'], + ['code' => 'InvalidSecondaryCidrBlock.NotFound', 'message' => 'SecondaryCidrBlock [%s] is not found.', 'http_code' => 400, 'description' => 'The secondary CIDR block to be deleted cannot be found.'], + ['code' => 'InvalidSecondaryCidrBlock.NotFound', 'message' => 'The specified SecondaryCidrBlock was not found.', 'http_code' => 400, 'description' => 'The specified secondary CIDR block is not found.'], + ['code' => 'InvalidServiceLocation.Mismatch', 'message' => 'The specified ServiceLocation does not match the region.', 'http_code' => null, 'description' => 'The specified service region does not match the current region.'], + ['code' => 'InvalidServiceLocation.ValueNotSupported', 'message' => 'The specified ServiceLocation is not supported.', 'http_code' => null, 'description' => 'The specified service region is not supported.'], + ['code' => 'InvalidSnatEntryId.NotFound', 'message' => 'Specified SNAT entry does not exist.', 'http_code' => null, 'description' => 'The specified SNAT entry does not exist. Check whether the SNAT entry is valid.'], + ['code' => 'InvalidSnatEntryId.NotFound', 'message' => 'Specified Snat entry ID does not exist', 'http_code' => null, 'description' => 'The specified SNAT entry does not exist. Check whether the SNAT entry is valid.'], + ['code' => 'InvalidSnatIp.Malformed', 'message' => 'The specified SnatIp is not a valid IP address.', 'http_code' => null, 'description' => 'The specified EIP is invalid.'], + ['code' => 'InvalidSnatIp.NotFound', 'message' => 'Specified SnatIp does not found on the NAT Gateway', 'http_code' => null, 'description' => 'The public IP address does not exist in the NAT gateway.'], + ['code' => 'InvalidSnatTableId.NotFound', 'message' => 'Specified SNAT table does not exist.', 'http_code' => null, 'description' => 'The specified SNAT table does not exist.'], + ['code' => 'InvalidSpec.ValudNotSupported', 'message' => 'The specified Spec is not supported.', 'http_code' => null, 'description' => 'The specification does not support this operation. Change the specification and try again.'], + ['code' => 'InvalidSpec.ValueNotSupported', 'message' => 'The specified Spec is not supported.', 'http_code' => 400, 'description' => 'The router interface specification is invalid.'], + ['code' => 'InvalidSslVpnServerCertId.NotFound', 'message' => 'The parameter is incorrect. The corresponding SSL VPN server certificate cannot be found.', 'http_code' => 400, 'description' => 'The parameter is incorrect. The corresponding SSL VPN server certificate cannot be found.'], + ['code' => 'InvalidStartTime.Malformed', 'message' => 'The specified parameter "StartTime" is not valid.', 'http_code' => null, 'description' => 'The start time is invalid.'], + ['code' => 'InvalidStartTime.Malformed', 'message' => 'Specified start time is malformed.', 'http_code' => null, 'description' => 'The start time is invalid.'], + ['code' => 'InvalidStartTime.TooEarly', 'message' => 'The specified parameter "StartTime" is too early.', 'http_code' => null, 'description' => 'The start time is invalid.'], + ['code' => 'InvalidStatus', 'message' => 'invalid physical connection status.', 'http_code' => null, 'description' => 'The Express Connect circuit is in an invalid state.'], + ['code' => 'InvalidStatus', 'message' => 'RouterInterface can be operated by this action only when the status is Active,Idle or Inactive.', 'http_code' => 400, 'description' => 'RouterInterface can be operated by this action only when the status is Active,Idle or Inactive.'], + ['code' => 'InvalidStatus.CannotOperate', 'message' => 'invalid status cannot operate', 'http_code' => null, 'description' => 'You cannot perform the operation when the specified resource is in the current state.'], + ['code' => 'InvalidStatus.EcsStatusNotSupport', 'message' => 'The special instance status Pending is not support operate', 'http_code' => 400, 'description' => 'The operation is not supported because the instance is suspended.'], + ['code' => 'InvalidStatus.EniStatusNotSupport', 'message' => 'The status of the specified Eni does not support the operation.', 'http_code' => 400, 'description' => 'The current ENI status does not support this operation.'], + ['code' => 'InvalidStatus.NatGateway', 'message' => 'nat gateway status is incorrect.', 'http_code' => 400, 'description' => 'the nat gateway status is incorrect.'], + ['code' => 'InvalidStatus.NotAllow', 'message' => 'Bind instance status invalid', 'http_code' => 400, 'description' => 'The status of the associated instance is invalid.'], + ['code' => 'InvalidStatus.NotAllowed', 'message' => 'The virtual border has been associated by physicalConnection.', 'http_code' => null, 'description' => 'The VBR is associated with an Express Connect circuit.'], + ['code' => 'InvalidStatus.NotAllowed', 'message' => 'Invalid virtual border router status.', 'http_code' => null, 'description' => 'The current VBR status does not support this operation.'], + ['code' => 'InvalidStatus.SnatOrDnat', 'message' => 'Operation failed because snat or dnat in unstable status.', 'http_code' => 400, 'description' => 'The EIP failed to be disassociated because the SNAT or DNAT entry is in an unstable state.'], + ['code' => 'InvalidStatus.StatusNotEnabled', 'message' => 'The physical connection status is invalid.', 'http_code' => null, 'description' => 'The status of the Express Connect circuit does not support this operation. Check the status of the Express Connect circuit.'], + ['code' => 'InvalidStatus.vbrAttatchToEcr', 'message' => 'Invalid virtual border router ecr status.', 'http_code' => 400, 'description' => 'VBR and ECR are bound, please unbind first'], + ['code' => 'InvalidTagKey', 'message' => 'The tag keys are not valid.', 'http_code' => 400, 'description' => 'The tag index is invalid.'], + ['code' => 'InvalidTagKey.Malformed', 'message' => 'The specified tag key is invalid.', 'http_code' => 400, 'description' => 'Invalid tag key value. Specify a valid tag key value and try again.'], + ['code' => 'InvalidTagScope.NotFound', 'message' => 'The tag scope is not found', 'http_code' => 400, 'description' => 'The resource scope is invalid.'], + ['code' => 'InvalidTagValue', 'message' => 'The tag values are not valid.', 'http_code' => 400, 'description' => 'The tag value is invalid.'], + ['code' => 'InvalidTransitRouterMode.NeedUpgrade', 'message' => 'TransitRouter need to upgrade.', 'http_code' => 400, 'description' => 'The transit router does not support this operation. Upgrade the transit router and try again.'], + ['code' => 'InvalidTunnelCidr.Malformed', 'message' => 'The specified TunnelCidr is malformed.', 'http_code' => 400, 'description' => 'The specified tunnel CIDR block is invalid.'], + ['code' => 'InvalidType.Malformd', 'message' => 'The Type provided was invalid.', 'http_code' => null, 'description' => 'Type is set to an invalid value.'], + ['code' => 'InvalidUserCidr.Malformed', 'message' => 'Specified UserCird status is wrong', 'http_code' => null, 'description' => 'UserCidr is set to an invalid value.'], + ['code' => 'InvalidUserCidr.Malformed', 'message' => 'Specified UserCidr overlapping in of 100.64.0.0/10.', 'http_code' => 400, 'description' => 'The user CIDR block that you specify overlaps with 100.64.0.0/10.'], + ['code' => 'InvalidUserCidr.Quota', 'message' => 'Specified UserCidr number is greater than 3.', 'http_code' => null, 'description' => 'The number of user CIDR blocks that you specify has reached the upper limit.'], + ['code' => 'InvalidUserCidr.Quota', 'message' => 'The number of user CIDR blocks that you specify has reached the quota limit.', 'http_code' => 400, 'description' => 'The number of user CIDR blocks has reached the upper limit.'], + ['code' => 'InvalidVbrId.NotFound', 'message' => 'The specified VirutalBorderRouter is not found.', 'http_code' => null, 'description' => 'The VBR does not exist. Check the VBR ID.'], + ['code' => 'InvalidVbrId.NotFound', 'message' => 'The specified VirutalBorderRouter or PhysicalConnection does not exist in our records.', 'http_code' => null, 'description' => 'The VBR or the Express Connect circuit does not exist.'], + ['code' => 'InvalidVbrId.NotFound', 'message' => 'The specified VirutalBorderRouter does not exist in our records.', 'http_code' => null, 'description' => 'The VBR does not exist. Check the VBR ID.'], + ['code' => 'InvalidVbrNetwork', 'message' => 'vbr netowrk not exists', 'http_code' => null, 'description' => 'The VBR does not exist. Check the VBR ID.'], + ['code' => 'InvalidVbrOwnerId.NotFound', 'message' => 'The specified VbrOwnerId is not valid.', 'http_code' => null, 'description' => 'VbrOwnerId is set to an invalid value.'], + ['code' => 'InvalidVBRStatus', 'message' => 'invalid virtual border router status.', 'http_code' => null, 'description' => 'The VBR is in an invalid state.'], + ['code' => 'InvalidVlanId.Malformed', 'message' => 'The specified VlanId is not valid.', 'http_code' => null, 'description' => 'VlanId is set to an invalid value.'], + ['code' => 'InvalidVlanId.Used', 'message' => 'The specified VlanId has been used.', 'http_code' => null, 'description' => 'The VLAN ID is in use.'], + ['code' => 'InvalidVPC.NotFound', 'message' => 'vpc not exists.', 'http_code' => null, 'description' => 'The VPC does not exist. Check whether the specified VPC is valid.'], + ['code' => 'InvalidVpc.NotFound', 'message' => 'The specified VPC is not found.', 'http_code' => 400, 'description' => ''], + ['code' => 'InvalidVpc.NotFound', 'message' => 'The specified VPC was not found.', 'http_code' => 400, 'description' => ''], + ['code' => 'InvalidVpcDiscription.Malformed', 'message' => 'Specified VPC description is not valid.', 'http_code' => null, 'description' => 'The format of the VPC description is invalid.'], + ['code' => 'InvalidVpcId.NotFound', 'message' => 'Specified value of VpcId is not found in our record.', 'http_code' => 404, 'description' => 'The VPC does not exist. Check whether the specified VPC is valid.'], + ['code' => 'InvalidVpcId.NotFound', 'message' => 'Specified VPC does not exist.', 'http_code' => null, 'description' => 'The specified VPC does not exist.'], + ['code' => 'InvalidVpcId.NotFound', 'message' => '%s [%s] is not found.', 'http_code' => 400, 'description' => 'The specified VpcId instance does not exist'], + ['code' => 'InvalidVpcId.NotFound', 'message' => 'The specified VPC was not found.', 'http_code' => 400, 'description' => 'The specified VPC-connected instance was not found.'], + ['code' => 'InvalidVpcIdNumber.NotSupported', 'message' => 'The number of vpcIds exceeds the limit.', 'http_code' => 400, 'description' => 'The value of the vpcId parameter has reached the upper limit.'], + ['code' => 'InvalidVpcName.Malformed', 'message' => 'Specified VPC name is not valid.', 'http_code' => null, 'description' => 'The format of the VPC name is invalid. Enter a valid VPC name and try again.'], + ['code' => 'InvalidVPCStatus', 'message' => 'vpc incorrect status.', 'http_code' => null, 'description' => 'The VPC is in an invalid state.'], + ['code' => 'InvalidVpnConnection.AlreadyExists', 'message' => 'Vpn connection already exists.', 'http_code' => null, 'description' => 'Vpn connection already exists.'], + ['code' => 'InvalidVpnConnectionInstanceId.NotFound', 'message' => 'The specified vpn connection instance id does not exist.', 'http_code' => 404, 'description' => 'The specified vpn connection instance id does not exist.'], + ['code' => 'InvalidVpnGatewayInstanceId.NotFound', 'message' => 'The specified vpn gateway instance id does not exist.', 'http_code' => 400, 'description' => 'The specified VPN gateway does not exist. Check whether the specified VPN gateway is valid.'], + ['code' => 'InvalidVpnInstanceId.NotFound', 'message' => 'The specified VPN was not found.', 'http_code' => 400, 'description' => 'The specified VPN instance was not found.'], + ['code' => 'InvalidVpnInternetIp.NotFound', 'message' => 'The specified VPN IP does not exist.', 'http_code' => 404, 'description' => 'The VPN gateway IP does not exist.'], + ['code' => 'InvalidVpnRouteEntry.NotFound', 'message' => 'The specified route entry does not exist.', 'http_code' => 400, 'description' => 'The error message returned because the specified route does not exist.'], + ['code' => 'InvalidVRouter.NotFound', 'message' => 'vRouter not exists.', 'http_code' => null, 'description' => 'The specified vRouter does not exist. Check whether the specified vRouter is valid.'], + ['code' => 'InvalidVRouterDescription.Malformed', 'message' => 'Specified virtual router description is not valid.', 'http_code' => 400, 'description' => 'The router description is invalid.'], + ['code' => 'InvalidVRouterDiscription.Malformed', 'message' => 'Specified virtual router description is not valid.', 'http_code' => null, 'description' => 'The description format of the specified vRouter is invalid.'], + ['code' => 'InvalidVRouterId.NotFound', 'message' => 'Specified virtual router does not exist.', 'http_code' => null, 'description' => 'The specified vRouter does not exist. Check whether the specified vRouter is valid.'], + ['code' => 'InvalidVRouterName.Malformed', 'message' => 'Specified virtual router name is not valid.', 'http_code' => null, 'description' => 'The name format of the specified vRouter is invalid.'], + ['code' => 'InvalidVSwitch.NotFound', 'message' => 'The specified vSwitch is not found.', 'http_code' => 400, 'description' => 'The specified vSwitch does not exist.'], + ['code' => 'InvalidVSwitchDiscription.Malformed', 'message' => 'Specified virtual switch description is not valid.', 'http_code' => null, 'description' => 'The vSwitch description is invalid.'], + ['code' => 'InvalidVSwitchDiscription.Malformed', 'message' => 'Specified virtual switch description is not valid.', 'http_code' => 400, 'description' => 'The format of the vSwitch description is invalid.'], + ['code' => 'InvalidVSwitchId.FirstVswitchIpNotEnough', 'message' => 'The ip of vswitch1 not enough.', 'http_code' => 400, 'description' => 'Insufficient number of available IPs in primary vSwitch.'], + ['code' => 'InvalidVSwitchId.FirstVswitchNotSupport', 'message' => 'The available zone of vswitch1 not supported.', 'http_code' => 400, 'description' => 'The zone where the primary vSwitch is located is not supported.'], + ['code' => 'InvalidVSwitchId.FirstVswitchNotSupport', 'message' => 'The zone of vSwitch does not support creating a ha-tunnel VPN.', 'http_code' => 400, 'description' => 'The zone of the vSwitch does not support a dual-tunnel VPN gateway. Specify another vSwitch.'], + ['code' => 'InvalidVSwitchId.NotFound', 'message' => 'The specified virtual switch does not exists.', 'http_code' => null, 'description' => 'The vSwitch does not exist.'], + ['code' => 'InvalidVSwitchId.NotFound', 'message' => 'The specified virtual switch not found.', 'http_code' => null, 'description' => 'The vSwitch does not exist.'], + ['code' => 'InvalidVSwitchId.NotFound', 'message' => 'VSwitch not exist.', 'http_code' => null, 'description' => 'The error message returned because the specified vSwitch does not exist. Check whether the specified vSwitch ID is valid.'], + ['code' => 'InvalidVSwitchId.NotFound', 'message' => 'The specified VSwitch does not exist in the specified region.', 'http_code' => null, 'description' => 'The vSwitch does not exist in the specified region.'], + ['code' => 'InvalidVSwitchId.SecondVswitchIpNotEnough', 'message' => 'The ip of vswitch2 not enough.', 'http_code' => 400, 'description' => 'Insufficient IP addresses are available in the standby vSwitch.'], + ['code' => 'InvalidVSwitchId.SecondVswitchNotSupport', 'message' => 'The available zone of vswitch2 not supported.', 'http_code' => 400, 'description' => 'The zone of the secondary vSwitch does not support the feature.'], + ['code' => 'InvalidVSwitchId.SecondVswitchNotSupport', 'message' => 'when creating a vpn gateway for this region, you cannot enter the second vswitch id.', 'http_code' => 400, 'description' => 'when creating a vpn gateway for this region, you cannot enter the second vswitch id.'], + ['code' => 'InvalidVSwitchId.VswitchIdShouldDifferent', 'message' => 'The VSwitch ids should be different.', 'http_code' => 400, 'description' => 'The primary zone cannot be the same as the secondary zone.'], + ['code' => 'InvalidVSwitchId.ZoneIdShouldDifferent', 'message' => 'Two vSwitches should belong to different Availability Zones.', 'http_code' => 400, 'description' => 'When you create a dual-tunnel VPN gateway, the two vSwitches that you specify must belong to different zones.'], + ['code' => 'InvalidVSwitchId.ZoneIdShouldDifferent', 'message' => 'the available zone of vswitch1 and vswitch2 should be different.', 'http_code' => 400, 'description' => 'When creating a double-tunnel VPN, the two zones of the inbound parameters should be different.'], + ['code' => 'InvalidVSwitchName.Malformed', 'message' => 'Specified virtual switch name is not valid.', 'http_code' => 400, 'description' => 'The format of the specified vSwitch name is invalid. Specify the name in the valid format.'], + ['code' => 'InvalidZoneId.DisasterZoneNotSupport', 'message' => 'the disaster available zone not support.', 'http_code' => 400, 'description' => 'the zone for dual-tunnel disaster recovery is not supported.'], + ['code' => 'InvalidZoneId.FirstZoneNotSupport', 'message' => 'the first available zone not support.', 'http_code' => 400, 'description' => 'The first available zone of the input parameter is not available.'], + ['code' => 'InvalidZoneId.NotFound', 'message' => 'Specified value of ZoneId is not exists.', 'http_code' => null, 'description' => 'The specified zone does not exist.'], + ['code' => 'InvalidZoneId.NotFound', 'message' => 'Specified zone does not exist.', 'http_code' => null, 'description' => 'The zone ID is invalid.'], + ['code' => 'InvalidZoneId.NotFound', 'message' => 'Can not find ZoneId for allocated ip.', 'http_code' => null, 'description' => 'The zone of the specified IP address is invalid.'], + ['code' => 'INVALID_COMPONENT', 'message' => null, 'http_code' => null, 'description' => 'This instance type is unavailable for this account.'], + ['code' => 'INVALID_PARAMETER', 'message' => 'The parameter invalid.', 'http_code' => null, 'description' => 'A parameter is set to an invalid value.'], + ['code' => 'INVALID_VPC_ID', 'message' => 'The Specified VpcId not match.', 'http_code' => 400, 'description' => 'The specified VPC does not exist.'], + ['code' => 'INVALID_WEIGHT_PARAM', 'message' => 'Specified value of weight invalid', 'http_code' => null, 'description' => 'The specified weight is invalid.'], + ['code' => 'InvokeError', 'message' => 'instance quota rule invoke error.', 'http_code' => 400, 'description' => 'Failed to get rule data, please wait zai shi'], + ['code' => 'Ip.Allocated', 'message' => 'The reserve ip has been allocated.', 'http_code' => 400, 'description' => 'Reserved IP addresses are already specified.'], + ['code' => 'IpConflict', 'message' => 'Client IP pool conflict with other SSL VPN server in the same VPC.', 'http_code' => 400, 'description' => 'The client IP address pool conflicts with SSL servers in the same VPC.'], + ['code' => 'IpConflict', 'message' => 'Client IP pool conflict with local IP range.', 'http_code' => 400, 'description' => 'The client IP pool conflicts with the local IP range.'], + ['code' => 'IpInstanceId.AlreadyInBandwidthPackage', 'message' => null, 'http_code' => null, 'description' => 'The EIP is already associated with the EIP bandwidth plan.'], + ['code' => 'IpInstanceId.AlreadyInBandwidthPackage', 'message' => 'The specified Eip InstanceId is already added to the bandwidth package.', 'http_code' => 400, 'description' => 'The EIP is already associated with an EIP bandwidth plan.'], + ['code' => 'IpInstanceId.AlreadyInBandwidthPackage', 'message' => 'The specified Eip InstanceId already in bandwidthPackage.', 'http_code' => 400, 'description' => 'The specified Eip InstanceId already in bandwidthPackage.'], + ['code' => 'IpInstanceId.AlreadyOutsideBandwidthPackage', 'message' => 'The eip instance is already outside bandwidth package.', 'http_code' => 400, 'description' => 'The eip instance is already outside bandwidth package.'], + ['code' => 'IpInstanceId.BizStatusInvalid', 'message' => null, 'http_code' => null, 'description' => 'The specified EIP is disabled.'], + ['code' => 'IpInstanceId.BizStatusInvalid', 'message' => 'The specified EIP BizStatus is incorrect.', 'http_code' => 400, 'description' => 'The EIP is in an invalid state.'], + ['code' => 'IpInstanceId.ChargeType.NotSupport', 'message' => null, 'http_code' => null, 'description' => 'The EIP uses the subscription billing method.'], + ['code' => 'IpInstanceId.ChargeType.NotSupport', 'message' => 'You cannot add subscription EIP instance to the bandwidth package.', 'http_code' => 400, 'description' => 'You cannot add subscription EIP instance to the bandwidth package.'], + ['code' => 'IpInstanceId.InvalidIpInternetChargeType', 'message' => 'You cannot add the hybrid cloud EIP to a pay by traffic bandwidth package.', 'http_code' => 400, 'description' => 'You cannot add the hybrid cloud EIP to a pay by traffic bandwidth package.'], + ['code' => 'IpInstanceId.NotBandwidthPackage', 'message' => null, 'http_code' => null, 'description' => 'The EIP is not associated with an EIP bandwidth plan.'], + ['code' => 'IpInstanceId.QuotaExceeded', 'message' => null, 'http_code' => null, 'description' => 'The number of EIPs associated with the EIP bandwidth plan exceeds the upper limit.'], + ['code' => 'IpInstanceId.QuotaExceeded', 'message' => 'The maximum number of EIP that you can add to the bandwidth package is exceeded.', 'http_code' => 400, 'description' => 'The maximum number of EIP that you can add to the bandwidth package is exceeded.'], + ['code' => 'LastTokenProcessing', 'message' => 'The last token request is processing.', 'http_code' => null, 'description' => 'A token request is being processed. Try again later.'], + ['code' => 'LimitationExceed.InterfaceNumberOnRouter', 'message' => 'Total number of RouterInterfaces on a Router exceeded.', 'http_code' => null, 'description' => 'The number of router interfaces reaches the quota.'], + ['code' => 'LinkRole.NotSupport', 'message' => 'This linkrole is not supported', 'http_code' => null, 'description' => 'This link is not supported.'], + ['code' => 'MaintenanceEvent.EventNotExist', 'message' => 'Maintenance event is not exist.', 'http_code' => 404, 'description' => 'Maintenance event is not exist.'], + ['code' => 'MaintenanceEvent.ExecuteTimeShouldBeforeLatestTime', 'message' => 'The specified execution time of event must be before the latest execution time.', 'http_code' => 400, 'description' => 'The specified execution time must be before the latest execution time.'], + ['code' => 'MCMS_VBR_EMPTY', 'message' => 'Specified region have no vbr.', 'http_code' => null, 'description' => 'No VBR exists in the region. Select another region and try again.'], + ['code' => 'MCMS_VPC_EMPTY', 'message' => 'Specified region have no vpc.', 'http_code' => null, 'description' => 'No VPC exists in the region. Specify another region and try again.'], + ['code' => 'Mismatch.%sAnd%s', 'message' => 'The %s and %s are mismatched.', 'http_code' => 400, 'description' => 'The parameter does not match. Check the parameter.'], + ['code' => 'Mismatch.CbwpZoneAndCloudBoxEipZone', 'message' => 'The CbwpZone and EipZone are mismatched.', 'http_code' => 400, 'description' => 'The EIP bandwidth plan of the cloud box does not match the zone of the EIP.'], + ['code' => 'Mismatch.CloudBoxCbwpZoneAndEipZone', 'message' => 'The CbwpZone and EipZone are mismatched.', 'http_code' => 400, 'description' => 'The EIP bandwidth plan of the cloud box does not match the zone of the EIP.'], + ['code' => 'Mismatch.EipSecurityProtectionTypeAndPoolSecurityProtectionType', 'message' => 'The EipSecurityProtectionType and PoolSecurityProtectionType are mismatched.', 'http_code' => 400, 'description' => 'The EIP protection type does not match the address pool protection type.'], + ['code' => 'Mismatch.EniIdAndRouteTableId', 'message' => 'The operation is not allowed because eni and route table not in same vpc.', 'http_code' => 400, 'description' => 'The operation is not allowed because eni and route table not in same vpc.'], + ['code' => 'Mismatch.HaVipIdAndRouteTableId', 'message' => 'The HaVip and RouteTable are mismatched.', 'http_code' => 400, 'description' => 'The specified HAVIP and route table do not belong to the same VPC.'], + ['code' => 'Mismatch.IpAndBandwidthPackage', 'message' => 'The IP does not match the bandwidth package and is not in the specified bandwidth package.', 'http_code' => 400, 'description' => 'The IP does not match the bandwidth package and is not in the specified bandwidth package.'], + ['code' => 'Mismatch.IpAndIsp', 'message' => 'The specified IP address does not match the ISP.', 'http_code' => 400, 'description' => 'The system failed to allocate the specified EIP because the ISP and IP address do not match.'], + ['code' => 'Mismatch.Ipv4GatewayIdAndRouteTableId', 'message' => 'The specified IPv4Gateway and RouteTable are not matched.', 'http_code' => 400, 'description' => 'The operation failed because the IPv4 gateway and route table do not belong to the same VPC.'], + ['code' => 'Mismatch.Ipv6AddressAndIpv6Gateway', 'message' => 'The %s and %s are mismatched.', 'http_code' => 400, 'description' => 'Specified Ipv6Address and Ipv6Gateway are not in the same VPC'], + ['code' => 'Mismatch.IpVersionAndIpamPoolIpVersion', 'message' => 'The input IpVersion is inconsistent with the IpVersion of the input IPAM pool.', 'http_code' => 400, 'description' => 'The input IpVersion is inconsistent with the IpVersion of the input IPAM pool.'], + ['code' => 'Mismatch.NatIpAndNatIpCidr', 'message' => 'The %s and %s are mismatched.', 'http_code' => 400, 'description' => 'The specified %s and %s do not match.'], + ['code' => 'Mismatch.NetworkAclAndVSwitch', 'message' => 'The specified network ACL and vSwitch are not matched.', 'http_code' => 400, 'description' => 'The error message returned because the specified network ACL is not associated with the vSwitch.'], + ['code' => 'Mismatch.ResourceRegionAndServiceRegion', 'message' => 'The region where the resource is located is inconsistent with the region where the service is called.', 'http_code' => 400, 'description' => 'The region where the resource is located is inconsistent with the region where the service is called.'], + ['code' => 'Mismatch.VSwitchAndPrivateIpAddress', 'message' => 'The vswitch and privateIpAddress are mismatched.', 'http_code' => 400, 'description' => 'The specified private IP address does not match the vSwitch.'], + ['code' => 'MissingParam', 'message' => 'MissingParameter %s', 'http_code' => 400, 'description' => 'The error message returned because one or more required parameters are not set.'], + ['code' => 'MissingParam', 'message' => 'Miss mandatory parameter.', 'http_code' => 400, 'description' => 'A required parameter is missing.'], + ['code' => 'MissingParam.%s', 'message' => 'The param of %s is missing.', 'http_code' => 400, 'description' => 'The required parameter is not set.'], + ['code' => 'MissingParam.Action', 'message' => 'You must specify Action.', 'http_code' => 400, 'description' => 'No action is specified.'], + ['code' => 'MissingParam.AliUid', 'message' => 'You must specify AliUid.', 'http_code' => 400, 'description' => 'You must specify AliUid.'], + ['code' => 'MissingParam.AliUid', 'message' => 'AliUid is missing.', 'http_code' => 400, 'description' => 'The AliUid parameter is not set.'], + ['code' => 'MissingParam.aliUid', 'message' => 'The param of aliUid is missing.', 'http_code' => 400, 'description' => ''], + ['code' => 'MissingParam.AssociatedInstanceId', 'message' => 'The param of AssociatedInstanceId is missing when AssociatedInstanceType is specified.', 'http_code' => 400, 'description' => 'Missing parameter AssociatedInstanceId'], + ['code' => 'MissingParam.Bandwidth', 'message' => 'You must specify Bandwidth.', 'http_code' => 400, 'description' => 'You must specify Bandwidth.'], + ['code' => 'MissingParam.Bandwidth', 'message' => 'Missing param of Bandwidth.', 'http_code' => 400, 'description' => 'The Bandwidth parameter is not set.'], + ['code' => 'MissingParam.bid', 'message' => 'The param of bid is missing.', 'http_code' => 400, 'description' => 'The bid parameter is missing.'], + ['code' => 'MissingParam.BindInstanceId', 'message' => 'The param of BindInstanceId is missing.', 'http_code' => 400, 'description' => 'The parameter BindInstanceId is missing.'], + ['code' => 'MissingParam.CidrBlockOrCidrMask', 'message' => 'CidrBlock or CidrMask is not specified.', 'http_code' => 400, 'description' => 'The system failed to add the CIDR block to the address pool because the CIDR block or the subnet mask is not specified.'], + ['code' => 'MissingParam.CidrOrCidrMask', 'message' => 'The CIDR or CIDR Mask must be input.', 'http_code' => 400, 'description' => 'The CIDR or CIDR Mask must be input.'], + ['code' => 'MissingParam.CidrReservationMaskOrCidrReservationCidr', 'message' => 'Either VSwitchCidrReservationMask or VSwitchCidrReservationCidr should be specified.', 'http_code' => 400, 'description' => 'You cannot leave both the VSwitchCidrReservationMask and VSwitchCidrReservationCidr parameters empty. Set a value and try again.'], + ['code' => 'MissingParam.ConstructionTime', 'message' => 'The parameter ConstructionTime is mandatory.', 'http_code' => 400, 'description' => 'You must specify the start time.'], + ['code' => 'MissingParam.context', 'message' => 'The param of context is missing.', 'http_code' => 400, 'description' => 'The context parameter is missing.'], + ['code' => 'MissingParam.CustomerGatewayAsn', 'message' => 'Asn of customer gateway is mandatory when BGP is enabled.', 'http_code' => 400, 'description' => 'The ASN of the customer gateway cannot be empty when you enable BGP.'], + ['code' => 'MissingParam.Description', 'message' => 'You must specify Description.', 'http_code' => 400, 'description' => 'You must specify Description.'], + ['code' => 'MissingParam.DstCidrBlock', 'message' => 'You must specify destination CIDR block.', 'http_code' => 400, 'description' => 'The error message returned because no destination CIDR block is specified.'], + ['code' => 'MissingParam.EnableIpv6', 'message' => 'The input parameter EnableIpv6 that is mandatory for processing this request is not supplied.', 'http_code' => 400, 'description' => 'Missing EnableIpv6 parameter'], + ['code' => 'MissingParam.EnableIpv6', 'message' => 'The param of EnableIpv6 is missing.', 'http_code' => 400, 'description' => 'The EnableIpv6 parameter is missing.'], + ['code' => 'MissingParam.FilterId', 'message' => 'You must specify filter instance ID.', 'http_code' => 400, 'description' => 'The filter instance ID parameter is not specified.'], + ['code' => 'MissingParam.FullnatTableIdOrNatGatewayId', 'message' => 'FullnatTableId and natGatewayId can not both be null', 'http_code' => 400, 'description' => 'FullnatTableId and natGatewayId cannot be empty at the same time.'], + ['code' => 'MissingParam.IDaaSApplicationId', 'message' => 'The input parameter IDaaSApplicationId is mandatory when enable multi-factor authentication.', 'http_code' => 400, 'description' => 'Enter the IDaaSApplicationId parameters when starting two-factor authentication.'], + ['code' => 'MissingParam.IDaaSInstanceId', 'message' => 'The input parameter IDaaSInstanceId is mandatory when enable multi-factor authentication.', 'http_code' => 400, 'description' => 'You must specify the IDaaS instance ID when two-factor authentication is enabled.'], + ['code' => 'MissingParam.IDaaSRegionId', 'message' => 'The input parameter IDaaSRegionId is mandatory when enable multi-factor authentication.', 'http_code' => 400, 'description' => 'Enter the IDaaSRegionId parameters when starting two-factor authentication.'], + ['code' => 'MissingParam.InstanceId', 'message' => 'You must specify InstanceId.', 'http_code' => 400, 'description' => 'Missing param of InstanceId.'], + ['code' => 'MissingParam.InstanceId', 'message' => 'Missing param of InstanceId.', 'http_code' => 400, 'description' => 'The InstanceId parameter is not set.'], + ['code' => 'MissingParam.InstanceId', 'message' => 'The parameter InstanceId is mandatory.', 'http_code' => 400, 'description' => 'You must specify the Express Connect circuit ID.'], + ['code' => 'MissingParam.InstanceId', 'message' => 'The param of InstanceId can\'t be null or empty.', 'http_code' => 400, 'description' => 'InstanceId cannot be empty'], + ['code' => 'MissingParam.Ipv6CidrBlock', 'message' => 'The parameter Ipv6CidrBlock is mandatory.', 'http_code' => 400, 'description' => 'The Ipv6CidrBlock parameter is required.'], + ['code' => 'MissingParam.Ipv6InstanceId', 'message' => 'The param of Ipv6InstanceId is missing.', 'http_code' => 400, 'description' => 'The error message returned because Ipv6InstanceId is not set.'], + ['code' => 'MissingParam.IpVersion', 'message' => 'The parameter IpVersion is missing.', 'http_code' => 400, 'description' => 'The parameter IpVersion is missing.'], + ['code' => 'MissingParam.Name', 'message' => 'You must specify Name.', 'http_code' => 400, 'description' => 'You must specify Name.'], + ['code' => 'MissingParam.NatGatewayId', 'message' => 'You must specify NatGatewayId.', 'http_code' => 400, 'description' => 'You must specify NatGatewayId.'], + ['code' => 'MissingParam.NetworkInterfaceId', 'message' => 'The input parameter NetworkInterfaceId that is mandatory for processing this request is not supplied.', 'http_code' => 400, 'description' => 'You need to specify NetworkInterfaceId parameters when creating a Snat rule for NAT with the private network link service enabled.'], + ['code' => 'MissingParam.NewNextHopId', 'message' => 'The parameter NewNextHopId is mandatory.', 'http_code' => 400, 'description' => 'The next hop instance ID is not specified when you modify the next hop.'], + ['code' => 'MissingParam.NewNextHopType', 'message' => 'The parameter NewNextHopType is mandatory.', 'http_code' => 400, 'description' => 'The next hop type is not specified when you modify the next hop.'], + ['code' => 'MissingParam.ParameterMustNotNull', 'message' => '%s, %s.', 'http_code' => 400, 'description' => 'Missing parameter that must be passed in.'], + ['code' => 'MissingParam.PeerIpAddress', 'message' => 'The param of PeerIpAddress is missing.', 'http_code' => 400, 'description' => 'The peer IP address is not specified.'], + ['code' => 'MissingParam.PhysicalConnectionId', 'message' => 'You must specify PhysicalConnectionId.', 'http_code' => 400, 'description' => 'You must specify PhysicalConnectionId.'], + ['code' => 'MissingParam.PhysicalConnectionId', 'message' => 'PhysicalConnectionId is missing.', 'http_code' => 400, 'description' => 'The PhysicalConnectionId is not set.'], + ['code' => 'MissingParam.PMInfo', 'message' => 'The parameter PMInfo is mandatory.', 'http_code' => 400, 'description' => 'You must specify the engineer information.'], + ['code' => 'MissingParam.Priority', 'message' => 'You must specify Priority.', 'http_code' => 400, 'description' => 'No priority is specified.'], + ['code' => 'MissingParam.Protocol', 'message' => 'You must specify Protocol.', 'http_code' => 400, 'description' => 'No protocol is specified.'], + ['code' => 'MissingParam.PublicIpAddressPoolId', 'message' => 'The parameter PublicIpAddressPoolId is missing.', 'http_code' => 400, 'description' => 'The parameter PublicIpAddressPoolId is missing.'], + ['code' => 'MissingParam.RegionNo', 'message' => 'You must specify RegionNo.', 'http_code' => 400, 'description' => 'You must specify RegionNo.'], + ['code' => 'MissingParam.RegionNo', 'message' => 'RegionNo is missing.', 'http_code' => 400, 'description' => 'The RegionNo parameter is not set.'], + ['code' => 'MissingParam.RemoteId', 'message' => 'The remote ID is mandatory when creating national standard VPN connection.', 'http_code' => 400, 'description' => 'The error message returned because the peer ID is not specified. You must specify the peer ID when you create a VPN connection encrypted by SM.'], + ['code' => 'MissingParam.ReservedCidrOrReservedCidrMask', 'message' => 'MissingParam.ReservedCidrOrReservedCidrMask', 'http_code' => 400, 'description' => 'The error message returned because you must set one of the ReservedCidr and ReservedCidrMask parameters.'], + ['code' => 'MissingParam.Resource', 'message' => 'Missing parameter Resource.', 'http_code' => 400, 'description' => 'Missing parameter Resource'], + ['code' => 'MissingParam.ResourceType', 'message' => 'The param of ResourceType is missing.', 'http_code' => 400, 'description' => 'ResourceType is not specified.'], + ['code' => 'MissingParam.RouteEntries', 'message' => 'The parameter RouteEntries is missing.', 'http_code' => 400, 'description' => 'Missing parameter RouteEntries'], + ['code' => 'MissingParam.RouteEntryId', 'message' => 'The param of %s is missing.', 'http_code' => 400, 'description' => 'Missing required parameters'], + ['code' => 'MissingParam.RouteEntryIdOrRouteTableDstCidr', 'message' => 'The request is missing required parameters. You must provide either the RouteEntryId or the combination of RouteTableId and DestinationCidrBlock to proceed. Please ensure that one of these parameter sets is included in your request.', 'http_code' => 400, 'description' => 'The request is missing a required parameter. You must provide RouteEntryId, or both RouteTableId and DestinationCidrBlock.'], + ['code' => 'MissingParam.RuleId', 'message' => 'You must specify rule instance ID.', 'http_code' => 400, 'description' => 'The traffic mirroring filter rule instance ID parameter is not specified.'], + ['code' => 'MissingParam.Rules', 'message' => 'You must specify rule instance ID.', 'http_code' => 400, 'description' => 'The traffic mirroring filter rule instance ID is not specified.'], + ['code' => 'MissingParam.ScheduledMigrationParam', 'message' => 'You must specify the parameters that are required for the scheduled migration.', 'http_code' => 400, 'description' => 'You must specify the parameters that are required for the scheduled migration.'], + ['code' => 'MissingParam.SecondaryCidrBlockOrIpv6CidrBlock', 'message' => 'Either SecondaryCidrBlock or Ipv6CidrBlock must be specified.', 'http_code' => 400, 'description' => 'The secondary CIDR block or the IPv6 CIDR block is not specified.'], + ['code' => 'MissingParam.SecondaryCidrMask', 'message' => 'The parameter SecondaryCidrMask must be input.', 'http_code' => 400, 'description' => 'SecondaryCidrMask is required.'], + ['code' => 'MissingParam.SecondaryCidrOrIpv6Cidr', 'message' => 'Either the SecondaryCidrBlock or the Ipv6CidrBlock parameter is required, but both cannot be entered simultaneously.', 'http_code' => 400, 'description' => 'When you add a secondary CIDR block to a VPC without using an IPAM pool, you must specify either SecondaryCidrBlock or Ipv6CidrBlock, but not both.'], + ['code' => 'MissingParam.SnatIp', 'message' => 'The input parameter SnatIp that is mandatory for processing this request is not supplied.', 'http_code' => 400, 'description' => 'You need to specify the SnatIp parameter when creating a Snat rule for public network NAT or private network NAT.'], + ['code' => 'MissingParam.SourceInstanceIds', 'message' => 'You must specify source instance ID.', 'http_code' => 400, 'description' => 'The traffic mirror source instance ID parameter is not specified.'], + ['code' => 'MissingParam.Spec', 'message' => 'The param of Spec is missing.', 'http_code' => 400, 'description' => 'The Spec parameter is not set.'], + ['code' => 'MissingParam.SrcCidrBlock', 'message' => 'You must specify source CIDR block.', 'http_code' => 400, 'description' => 'The error message returned because no source CIDR block is specified.'], + ['code' => 'MissingParam.Tags', 'message' => 'You must specify the Tags parameter.', 'http_code' => 400, 'description' => 'The error message returned because the Tags parameter is not set.'], + ['code' => 'MissingParam.Tags', 'message' => 'The Tags parameter is required.', 'http_code' => 400, 'description' => 'The error message returned because the Tags parameter is required.'], + ['code' => 'MissingParam.TimePoint', 'message' => 'You must specify TimePoint.', 'http_code' => 400, 'description' => 'You must specify TimePoint.'], + ['code' => 'MissingParam.TrafficAnalyzerIdOrLogProjectOrLogStore', 'message' => 'TrafficAnalyzerId and ProjectName and LogStoreName parameters are not passed in.', 'http_code' => 400, 'description' => 'TrafficAnalyzerId and ProjectName and LogStoreName parameters are not passed in.'], + ['code' => 'MissingParam.TrafficMirrorRules', 'message' => 'You must specify traffic mirror rules.', 'http_code' => 400, 'description' => 'No filter rule is specified.'], + ['code' => 'MissingParam.VbrHaIdOrVbrId', 'message' => 'Missing parameter VBR switch group instance ID or VBR instance ID.', 'http_code' => 400, 'description' => 'Missing parameter VBR switch group instance ID or VBR instance ID.'], + ['code' => 'MissingParam.VbrId', 'message' => 'You must specify VbrId.', 'http_code' => 400, 'description' => 'The vbrId parameter is not set.'], + ['code' => 'MissingParam.VpcId', 'message' => 'You must specify VpcId.', 'http_code' => 400, 'description' => 'You must specify VpcId.'], + ['code' => 'MissingParam.vpcId', 'message' => 'The parameter vpcId is mandatory.', 'http_code' => 400, 'description' => 'The vpcId parameter is required.'], + ['code' => 'MissingParam.VSwitchId', 'message' => 'The parameter VSwitchId is missing.', 'http_code' => 400, 'description' => 'The parameter VSwitchId is missing.'], + ['code' => 'MissingParam.Zones', 'message' => 'The Zones parameter is required.', 'http_code' => 400, 'description' => 'Zones is required.'], + ['code' => 'MissingParameter', 'message' => 'Missing mandatory parameter', 'http_code' => null, 'description' => 'Required parameters are not specified. Check whether you have specified all required parameters before you call this operation.'], + ['code' => 'MissingParameter', 'message' => 'Either nexthopId or nextHopList should be specified', 'http_code' => null, 'description' => 'nexthopId or nextHopList is not specified.'], + ['code' => 'MissingParameter', 'message' => 'The input parameter is mandatory for processing this request is not supplied.', 'http_code' => null, 'description' => 'Some required parameters are not specified. Specify all required parameters and try again.'], + ['code' => 'MissingParameter', 'message' => 'The input parameter \'PhysicalConnectionId\' that is mandatory for processing this request is not supplied.', 'http_code' => null, 'description' => 'PhysicalConnectionId is not specified.'], + ['code' => 'MissingParameter', 'message' => 'The input parameter \'VlanId\' that is mandatory for processing this request is not supplied.', 'http_code' => null, 'description' => 'VlanId is not specified.'], + ['code' => 'MissingParameter', 'message' => 'The input parameter \'LocalGatewayIp\' that is mandatory for processing this request is not supplied.', 'http_code' => null, 'description' => 'LocalGatewayIp is not specified.'], + ['code' => 'MissingParameter', 'message' => 'The input parameter \'PeerGatewayIp\' that is mandatory for processing this request is not supplied.', 'http_code' => null, 'description' => 'PeerGatewayIp is not specified.'], + ['code' => 'MissingParameter', 'message' => 'The input parameter \'PeeringSubnetMask\' that is mandatory for processing this request is not supplied.', 'http_code' => null, 'description' => 'PeeringSubnetMask is not specified.'], + ['code' => 'MissingParameter', 'message' => 'LocalGatewayIp', 'http_code' => null, 'description' => 'LocalGatewayIp is not specified.'], + ['code' => 'MissingParameter', 'message' => 'Miss mandatory parameter.', 'http_code' => null, 'description' => 'Some required parameters are not specified. Specify all required parameters and try again.'], + ['code' => 'MissingParameter', 'message' => null, 'http_code' => null, 'description' => 'Some required parameters are not specified. Specify all required parameters and try again.'], + ['code' => 'MissingParameter', 'message' => 'The input parameter OwnerId', 'http_code' => null, 'description' => 'Some required parameters are not specified.'], + ['code' => 'MissingParameter', 'message' => 'LocalGatewayIp, peerGatewayIp and peeringSubnetMask must not be null.', 'http_code' => 400, 'description' => 'The following parameters are required but not set: LocalGatewayIp, peerGatewayIp, and peeringSubnetMask.'], + ['code' => 'MissingParameter.bandwidth', 'message' => 'portType and bandWidth cannot be null at the same time.', 'http_code' => 400, 'description' => 'The error message returned because you cannot leave the port type and bandwidth value empty at the same time.'], + ['code' => 'MissingParameter.BandwidthPackage', 'message' => 'only support one BandwidthPackage be created with NatGateway.', 'http_code' => null, 'description' => 'You must specify an EIP bandwidth plan.'], + ['code' => 'MissingParameter.IDaaSInstanceId', 'message' => 'The input parameter IDaaSInstanceId is mandatory when enable multi-factor authentication.', 'http_code' => 400, 'description' => 'You must set the IDaaSInstanceId parameter when you enable two-factor authentication.'], + ['code' => 'MissingParameter.TagKey', 'message' => 'The input parameter TagKey that is mandatory for processing this request is not supplied.', 'http_code' => 400, 'description' => 'The TagKey parameter is not set.'], + ['code' => 'MissingParameter.TagValue', 'message' => 'The input parameter TagValue that is mandatory for processing this request is not supplied.', 'http_code' => 400, 'description' => 'The TagValue parameter is not set.'], + ['code' => 'MissingParameter.TunnelCidr', 'message' => 'The parameter TunnelCidr is mandatory when BGP is enabled.', 'http_code' => 400, 'description' => 'You must specify the tunnel CIDR block when you enable BGP.'], + ['code' => 'MissingParameter.TunnelOptionsSpecification', 'message' => 'The required parameters are missing when creating a tunnel for dual-tunnel VPN.', 'http_code' => 400, 'description' => 'The required parameters are missing when creating a tunnel for dual-tunnel VPN.'], + ['code' => 'ModifyIkeV1WithMultiRoutes.Invalid', 'message' => 'Failed to modify VPN connection parameters. Multi-network is configured while using IkeV1 protocol.', 'http_code' => 400, 'description' => 'Failed to modify VPN connection parameters. Multi-network is configured while using IkeV1 protocol.'], + ['code' => 'MultiplePconnSingleVbrNotSupportShutdown', 'message' => 'Vbr for single vbr and multiple pconn scenarios does not support failover test job.', 'http_code' => 400, 'description' => 'The vbr of a single vbr and multiple pconn scenarios does not support failover test job.'], + ['code' => 'NATGATEWAY_FINANCIALLOCKED', 'message' => null, 'http_code' => null, 'description' => 'The specified NAT gateway has expired.'], + ['code' => 'NATGW_MODIFY_SPEC_SAME', 'message' => 'The specified Spec is same with now.', 'http_code' => null, 'description' => 'The specified gateway size is the same as the current one.'], + ['code' => 'NATGW_NOT_EXIST', 'message' => 'The specified NAT gateway does not exist.', 'http_code' => 400, 'description' => 'The specified NAT gateway does not exist.'], + ['code' => 'NetworkAclExistBinding', 'message' => 'The Network Acl has bindings.', 'http_code' => 400, 'description' => 'The network ACL is associated with a resource.'], + ['code' => 'NetworkStatus.Modifying', 'message' => 'The special Network Acl is in modifying.', 'http_code' => 400, 'description' => 'The network ACL is being modified.'], + ['code' => 'NOCARD', 'message' => null, 'http_code' => null, 'description' => 'No payment card is associated.'], + ['code' => 'NoPermission.CreateServiceLinkedRole', 'message' => 'You are not authorized to create service linked role.', 'http_code' => 400, 'description' => 'You are not authorized to create a service-linked role.'], + ['code' => 'NotFound.BandwidthPackage', 'message' => 'BandwidthPackage is not exist.', 'http_code' => 400, 'description' => 'The specified bandwidth package is not exist.'], + ['code' => 'NotSupportLinkrole', 'message' => 'The router interface is not a VLAN interface for connection.', 'http_code' => 405, 'description' => 'You cannot activate the router interface because the router interface is on the user side.'], + ['code' => 'NotSupportLinkrole', 'message' => 'This RouterInterface is not a vlan interface for connection.', 'http_code' => 400, 'description' => 'The router interface is not a virtual interface for connection.'], + ['code' => 'NotSupportVpnConnectionParameter.IpsecAuthAlg', 'message' => 'The specified vpn connection ipsec Auth Alg is not support.', 'http_code' => 400, 'description' => 'The authentication algorithm specified for the IPsec-VPN connection is not supported.'], + ['code' => 'NotSupportVpnConnectionParameter.IpsecPfs', 'message' => 'The specified vpn connection ipsec Ipsec Pfs is not support.', 'http_code' => 400, 'description' => 'The PFS parameter set for the IPsec-VPN connection is not supported.'], + ['code' => 'NOT_ALLOW_USE_SOURCECIDR', 'message' => 'The User not in nat_scope_unlimited white list. Cannot use SourceCidr param.', 'http_code' => null, 'description' => 'The private IP address does not fall within the VPC CIDR block.'], + ['code' => 'NO_REAL_NAME_AUTHENTICATION', 'message' => null, 'http_code' => null, 'description' => 'The account has not completed real-name verification.'], + ['code' => 'nsupportedFeature.VpcNatSecurityProtectionEnabled', 'message' => 'The VPC NAT gateway is not support to enable security protection.', 'http_code' => 400, 'description' => 'You cannot enable security protection for the VPC NAT gateway.'], + ['code' => 'nvalidPhysicalConnectionPeriod.Malformed', 'message' => 'Specified Physical Connection Period is not valid.', 'http_code' => 400, 'description' => 'The Period parameter is set to an invalid value.'], + ['code' => 'OperationConflict', 'message' => 'Request was denied due to conflict with a previos request.', 'http_code' => 409, 'description' => 'The error message returned because your request is conflicting with another request. Try again later.'], + ['code' => 'OperationConflict', 'message' => 'The operation against this instance is too frequent, please try again later.', 'http_code' => 409, 'description' => 'Operations are too frequently performed on the instance. Try again later.'], + ['code' => 'OperationConflict', 'message' => 'Request was denied due to conflict with a previous request.', 'http_code' => 409, 'description' => 'The request conflicts with another one. Try again later.'], + ['code' => 'OperationDenied', 'message' => 'Eip of default vpc not allow this operation', 'http_code' => null, 'description' => 'The operation is not supported by EIPs in a default VPC.'], + ['code' => 'OperationDenied', 'message' => 'The operation is not supported in this status.', 'http_code' => null, 'description' => 'The status of the VPC is invalid and the operation cannot be performed.'], + ['code' => 'OperationDenied', 'message' => 'The snapshot creation for the specified disk is not finished yet.', 'http_code' => null, 'description' => 'The snapshot of the specified disk is being created.'], + ['code' => 'OperationDenied', 'message' => 'Specified operation is denied as route entry type is system.', 'http_code' => null, 'description' => 'The specified route is a system route.'], + ['code' => 'OperationDenied', 'message' => 'Specified instance is not in VPC.', 'http_code' => null, 'description' => 'The specified instance does not exist in the VPC.'], + ['code' => 'OperationDenied', 'message' => 'The user cannot allow to create natgw', 'http_code' => null, 'description' => 'You are not allowed to delete system routes.'], + ['code' => 'OperationDenied.AccountTypeRestricted', 'message' => 'The operation is denied because your account type is not supported.', 'http_code' => 400, 'description' => 'Your account type does not support this transaction.'], + ['code' => 'OperationDenied.AllTrafficPathOfManagedExist', 'message' => 'The resource you specified has created a flow log instance that collects the traffic of all scenarios. You cannot create a flow log instance that collects only some scenarios.', 'http_code' => 400, 'description' => 'The resource you specified has created a flow log instance that collects the traffic of all scenarios. You cannot create a flow log instance that collects only some scenarios.'], + ['code' => 'OperationDenied.AlreadyNewest', 'message' => 'The operation is denied because the firmware version of the VPN gateway is already the latest.', 'http_code' => 400, 'description' => 'The operation is denied because the firmware version of the VPN gateway is already the latest.'], + ['code' => 'OperationDenied.AssociateGatewayRouteTable', 'message' => 'The operation is not allowed because gateway route tables cannot be bound to a vSwitch.', 'http_code' => 400, 'description' => 'The vSwitch cannot be associated with a gateway route table.'], + ['code' => 'OperationDenied.AvailableCidrInsufficient', 'message' => 'The operation is not allowed because available CIDR is insufficient.', 'http_code' => 400, 'description' => 'The operation is not allowed because available CIDR is insufficient.'], + ['code' => 'OperationDenied.BetweenFinanceUserAndNormalUser', 'message' => 'Creating VPC connection between financial user and non-financial user is not allowed.', 'http_code' => 400, 'description' => 'Creating VPC connection between financial user and non-financial user is not allowed.'], + ['code' => 'OperationDenied.CenAttached', 'message' => 'The operation is not allowed because the VPC is attached to CEN.', 'http_code' => 400, 'description' => 'The operation is not allowed because the VPC is attached to a CEN instance.'], + ['code' => 'OperationDenied.CenTypeInvalid', 'message' => 'The operation is not allowed because of Cen type is invalid..', 'http_code' => 400, 'description' => 'You cannot add a route that points to a CEN instance of this type to the route table.'], + ['code' => 'OperationDenied.CidrInExcludeCidrs', 'message' => 'The operation is not allowed because the input CIDR is within the illegal CIDRs.', 'http_code' => 400, 'description' => 'The operation is not allowed because the input CIDR is within the illegal CIDRs.'."\n"], + ['code' => 'OperationDenied.CidrUnavailableInPool', 'message' => 'The operation is not allowed because the CIDR is unavailable in the IPAM pool.', 'http_code' => 400, 'description' => 'The operation is not allowed because the CIDR is unavailable in the IPAM pool.'], + ['code' => 'OperationDenied.ClassicSLB', 'message' => 'The operation is not allowed because of ClassicSLB.', 'http_code' => 400, 'description' => 'The error message returned because you cannot perform the operation on a CLB instance.'], + ['code' => 'OperationDenied.CloudBoxResourceExist', 'message' => 'The operation is not allowed because there are resources related to the cloud box in VPC.', 'http_code' => 400, 'description' => 'The operation is not allowed because CloudBox-related resources exist in the VPC.'], + ['code' => 'OperationDenied.CloudBoxVbrEntryAllowedInCustomRouteTable', 'message' => 'The operation is not allowed because only the custom routing table can add a routing entry with the next hop pointing to the cloud box type VBR.', 'http_code' => 400, 'description' => 'The operation is prohibited because only custom route tables can add route entries with the next hop pointing to a CloudBox-type VBR.'], + ['code' => 'OperationDenied.CloudBoxVbrEntryExist', 'message' => 'The operation is not allowed because the routing table has a route entry for the next hop to the cloud box VBR.', 'http_code' => 400, 'description' => 'The operation is not allowed because the route table contains route entries with the next hop pointing to a CloudBox VBR.'], + ['code' => 'OperationDenied.CloudBoxVSwitch', 'message' => 'The operation is not allowed because the vswitch is a cloud box type.', 'http_code' => 400, 'description' => 'The operation is prohibited because the vSwitch is of the CloudBox type.'], + ['code' => 'OperationDenied.CloudBoxVSwitchExist', 'message' => 'The operation is not allowed because a cloud box type vSwitch exists in VPC.', 'http_code' => 400, 'description' => 'The operation is not allowed because vSwitches of the CloudBox type exist in the VPC.'], + ['code' => 'OperationDenied.CloudBoxZone', 'message' => 'The operation is not allowed because the zone is a cloud box type.', 'http_code' => 400, 'description' => 'The operation is prohibited because the zone is of the CloudBox type.'], + ['code' => 'OperationDenied.CreateEcmpForPublishedRouteEntry', 'message' => 'Operation denied because of can not create EcmpRouteEntry for published RouteEntry.', 'http_code' => 400, 'description' => 'The published route does not support the creation of primary and secondary routes or load balancing routes.'], + ['code' => 'OperationDenied.CreateVpconn', 'message' => 'You are not allowed to create virtual physical connection. Please contact you CBM.', 'http_code' => 400, 'description' => 'You do not have the permissions to create a hosted connection. Contact your sales manager.'], + ['code' => 'OperationDenied.CreateVpconn', 'message' => 'You are not allowed to create virtual physical connection. Please contact your CBM.', 'http_code' => 400, 'description' => 'If you do not have permission to create a shared line, please contact the business manager.'], + ['code' => 'OperationDenied.DeleteGatewayEndpointRoute', 'message' => 'The operation is not allowed to delete route entry pointing gateway endpoint..', 'http_code' => 400, 'description' => 'You cannot delete a route that points to a gateway endpoint.'], + ['code' => 'OperationDenied.DeleteManagedRouteEntry', 'message' => 'The operation is not allowed because of route entry is managed.', 'http_code' => 400, 'description' => 'You cannot delete hosted routes.'], + ['code' => 'OperationDenied.DeleteShareResource', 'message' => 'This is not allowed to delete shared prefixList.', 'http_code' => 400, 'description' => 'A shared prefix list cannot be deleted.'], + ['code' => 'OperationDenied.DirectEipExist', 'message' => 'The operation is not allowed because of existing directEip.', 'http_code' => 400, 'description' => 'EIPs are associated with the VPC in cut-through mode or enhanced NAT gateways are deployed in the VPC.'], + ['code' => 'OperationDenied.DnatEntryStatusInvalid', 'message' => 'The NAT gateway has DNAT entry in invalid status.', 'http_code' => 400, 'description' => 'The DNAT entry associated with the NAT gateway is in an invalid state.'], + ['code' => 'OperationDenied.DuplicateRole', 'message' => 'The network interface must not be the source and the target of traffic mirror sessions at the same time.', 'http_code' => 400, 'description' => 'A network interface controller (NIC) cannot be used as both the source and destination of a traffic mirror session at the same time.'], + ['code' => 'OperationDenied.EcsNotSupportTrafficMirror', 'message' => 'The ECS instance does not support traffic mirroring.', 'http_code' => 400, 'description' => 'The ECS instance does not support the traffic mirroring feature.'], + ['code' => 'OperationDenied.EipBondTypeIsAlreadyNAT', 'message' => 'The EIP bond type is already NAT type.', 'http_code' => 400, 'description' => 'EipBindMode is already set to NAT.'], + ['code' => 'OperationDenied.EipStatusInvalid', 'message' => 'The NAT gateway has EIP in invalid status.', 'http_code' => 400, 'description' => 'The EIP associated with the NAT gateway is in an invalid state.'], + ['code' => 'OperationDenied.ExistDirectEip', 'message' => 'The operation is not allowed because of existing direct eip.', 'http_code' => 400, 'description' => 'You are not allowed to create an IPv4 gateway because an EIP in cut-through mode exists.'], + ['code' => 'OperationDenied.ExistPublicIpv6IpInVpc', 'message' => 'Operation denied because IPV6 public ip exists in VPC.', 'http_code' => 400, 'description' => 'The operation failed because the ipv6 public IP exists in the VPC.'], + ['code' => 'OperationDenied.ExistRouteTable1.0', 'message' => 'A route table with a lower version exists in the VPC. Please submit a ticket for processing.', 'http_code' => 400, 'description' => 'A route table with a lower version exists in the VPC. Please submit a ticket for processing.'], + ['code' => 'OperationDenied.ExistRouteTableV1', 'message' => 'The operation is not allowed because of existing RouteTable1.0.', 'http_code' => 400, 'description' => 'The operation is not allowed because of existing RouteTable1.0.'], + ['code' => 'OperationDenied.FlowLogDeliverFailed', 'message' => 'The operation is not allowed due to an invalid delivery address.', 'http_code' => 400, 'description' => 'The flow log cannot be started because the delivery address is invalid.'], + ['code' => 'OperationDenied.FreeNetworkInterface', 'message' => 'The network interface is not attached to any ECS instance.', 'http_code' => 400, 'description' => 'The ENI is not associated with an ECS instance.'], + ['code' => 'OperationDenied.GatewayAlreadyAssociated', 'message' => 'The operation is not allowed because of the specified resource %s is already associated.', 'http_code' => 400, 'description' => 'The operation is not allowed because the IPv4 gateway is in the Associated state.'], + ['code' => 'OperationDenied.GatewayAndTableNotInOneVpc', 'message' => 'The gateway and the route table are not in the same VPC.', 'http_code' => 400, 'description' => 'A gateway cannot be associated with a route table in a different VPC.'], + ['code' => 'OperationDenied.GatewayAndTableNotInOneVpc', 'message' => 'The operation is not allowed because of GatewayAndTableNotInOneVpc.', 'http_code' => 400, 'description' => 'The gateway route table and gateway do not belong to the same VPC.'], + ['code' => 'OperationDenied.GatewayAssociated', 'message' => 'You cannot delete the specified route table because it still associates with gateway.', 'http_code' => 400, 'description' => 'You cannot delete the route table because it is associated with a gateway.'], + ['code' => 'OperationDenied.GatewayRouteTableNotPermitted', 'message' => 'The operation is not allowed to create a route pointing to this nextHop type on gateway route table.', 'http_code' => 400, 'description' => 'You cannot create routes that point to instances of this type in the gateway route table.'], + ['code' => 'OperationDenied.IllegalNewNextHopType', 'message' => 'When modifying the next hop of a route of the local type, a new next hop type that is not supported is passed in.', 'http_code' => 400, 'description' => 'When modifying the next hop of a route of the local type, a new next hop type that is not supported is passed in.'], + ['code' => 'OperationDenied.IngressRoutingNotSupportAnycast', 'message' => 'The operation is not allowed because ingress routing not support anycast.', 'http_code' => 400, 'description' => 'The operation is not allowed because ingress routing not support anycast.'], + ['code' => 'OperationDenied.InstanceAttachCen', 'message' => 'Operation denied because instance association CEN.', 'http_code' => 400, 'description' => 'Operation failed due to instance association CEN'], + ['code' => 'OperationDenied.InvalidInstanceDeliverScope', 'message' => 'When modifying the delivery purpose of the FlowLog instance or starting and stopping NIS traffic analysis, you specify the type of delivery that is not allowed.', 'http_code' => 400, 'description' => 'When modifying the delivery purpose of the FlowLog instance or starting and stopping NIS traffic analysis, you specify the type of delivery that is not allowed.'], + ['code' => 'OperationDenied.InvalidSourceBondEniType', 'message' => 'The traffic mirroring source does not support the entered bond ENI type.', 'http_code' => 400, 'description' => 'The traffic mirroring source does not support the entered bond ENI type.'], + ['code' => 'OperationDenied.InvalidTargetBondEniType', 'message' => 'The traffic mirroring target does not support the entered bond ENI type.', 'http_code' => 400, 'description' => 'The traffic mirroring target does not support the entered bond ENI type.'], + ['code' => 'OperationDenied.IpamPoolNotInRegion', 'message' => 'The operation is not allowed because the IPAM pool not in specific region does not support creating VPC or associating CIDR for VPC.', 'http_code' => 400, 'description' => 'The operation is not allowed because the IPAM pool not in specific region does not support creating VPC or associating CIDR for VPC.'], + ['code' => 'OperationDenied.IpBelongToOtherUser', 'message' => 'The operation is not allowed because of ip belong to other user.', 'http_code' => 400, 'description' => 'Your application failed because the IP address belongs to another user.'], + ['code' => 'OperationDenied.Ipv4GatewayExist', 'message' => 'The operation is not allowed because of Ipv4GatewayExist.', 'http_code' => 500, 'description' => 'The EIP failed to be associated because IPv4 gateways exist in the VPC.'], + ['code' => 'OperationDenied.Ipv4GatewayNotActive', 'message' => 'The operation is not allowed because of ipv4Gateway [%s] is not active.', 'http_code' => 400, 'description' => 'The operation is not allowed because the IPv4 gateway is not activated.'], + ['code' => 'OperationDenied.Ipv6EntryOnCustomTable', 'message' => 'You cannot create any IPv6 route entry on a custom route table.', 'http_code' => 400, 'description' => 'IPv6 routes cannot be created on a custom route table.'], + ['code' => 'OperationDenied.ISPNotSupportDdosEnhanced', 'message' => 'The operation is not allowed because of DdosEnhanced is not supported by current isp.', 'http_code' => 400, 'description' => 'The current ISP does not support the creation of an enhanced security protection address pool.'], + ['code' => 'OperationDenied.L2EipBindIpAddress', 'message' => 'Operation is denied because this region does not support L2 EIP binding to IP address.', 'http_code' => 400, 'description' => 'This region does not support L2 EIP bindng to IP addresses.'], + ['code' => 'OperationDenied.LOAForVirtualPhysicalConnection', 'message' => 'The operation is not allowed because of LOAForVirtualPhysicalConnection.', 'http_code' => 400, 'description' => 'The shared Express Connect circuit does not allow construction.'], + ['code' => 'OperationDenied.LOAStatusNotAllowComplete', 'message' => 'The operation is not allowed because of LOAStatusNotAllowComplete.', 'http_code' => 400, 'description' => 'The LOA status of the port does not allow completion reporting or line O&M.'], + ['code' => 'OperationDenied.LocalEntryCanOnlyModifyNextHop', 'message' => 'Only the nextHop parameter can be modified for a local route entry.', 'http_code' => 400, 'description' => 'You can modify only the next hop of a local route.'], + ['code' => 'OperationDenied.LocalRouteEntryBoundToVSwitch', 'message' => 'The VSwitch to which the local route you modified belongs is bound to the current routing table. You are not allowed to modify its next hop.', 'http_code' => 400, 'description' => 'The VSwitch to which the local route you modified belongs is bound to the current routing table. You are not allowed to modify its next hop.'], + ['code' => 'OperationDenied.LocalRouteEntryInSystemRouteTable', 'message' => 'The Local Route Entry In System Route Table Can Not Be Modify.', 'http_code' => 400, 'description' => 'Modifying the Local route in the system routing table is prohibited.'], + ['code' => 'OperationDenied.LocalRouteEntryModified', 'message' => 'The next hop of a local route is modified.', 'http_code' => 400, 'description' => 'The next hop of the local type route has been modified.'], + ['code' => 'OperationDenied.LocalRouteEntryModified', 'message' => 'When you modify the next hop of a Local route in a custom routing table, the destination CIDR block of the Local route is exactly the same as the Cidr of a VSwitch bound to the routing table.', 'http_code' => 400, 'description' => 'When you modify the next hop of a Local route in a custom routing table, the destination CIDR block of the Local route is exactly the same as the Cidr of a VSwitch bound to the routing table.'], + ['code' => 'OperationDenied.MaskOfCidrIsNotAllowed', 'message' => 'The input mask or mask of the input CIDR is not allowed.', 'http_code' => 400, 'description' => 'The input mask or mask of the input CIDR is not allowed.'], + ['code' => 'OperationDenied.MissingAsn', 'message' => 'The autonomous system number of the customer gateway is mandatory when BGP authentication key is specified.', 'http_code' => 400, 'description' => 'The autonomous system number of the customer gateway is mandatory when BGP authentication key is specified.'], + ['code' => 'OperationDenied.ModifyDefaultDhcpOptionsSet', 'message' => 'The default DHCP options set is not allowed to be modified.', 'http_code' => 400, 'description' => 'The default DHCP options set is not allowed to be modified.'], + ['code' => 'OperationDenied.ModifyManagedRouteEntry', 'message' => 'The operation is not allowed because of route entry is managed.', 'http_code' => 400, 'description' => 'Hosted route cannot be modified.'], + ['code' => 'OperationDenied.NatGatewayStatusInvalid', 'message' => 'The NAT gateway status is invalid.', 'http_code' => 400, 'description' => 'The status of the NAT gateway does not support the operation.'], + ['code' => 'OperationDenied.NatgwExist', 'message' => 'The operation is not allowed because the NAT gateway exists in VPC.', 'http_code' => 400, 'description' => 'The operation is not allowed because NAT gateways exist in the VPC.'], + ['code' => 'OperationDenied.NeedPconnOwner', 'message' => 'The operation is denied.', 'http_code' => 400, 'description' => 'The deletion failed. Only the owner of a physical port can delete it.'], + ['code' => 'OperationDenied.NeedVpconnOwner', 'message' => 'The operation is denied.', 'http_code' => 400, 'description' => 'The deletion failed. Only the owner of a shared port can delete it.'], + ['code' => 'OperationDenied.NewNextHopNotSupportPublish', 'message' => 'New nexthop is not supported for published route entry.', 'http_code' => 400, 'description' => 'The route has been published to other components. The specified next hop type does not support route advertisement.'], + ['code' => 'OperationDenied.NextHopExist', 'message' => 'The operation is not allowed because the nexthop already exists.', 'http_code' => 400, 'description' => 'The next hop of the destination-based route that you want to modify already exists.'], + ['code' => 'OperationDenied.NextHopNotChanged', 'message' => 'The operation is not allowed because of NextHopNotChanged.', 'http_code' => 400, 'description' => 'The operation is not allowed because the next hop is not changed.'], + ['code' => 'OperationDenied.NextHopTypeNonsupport', 'message' => 'The operation is not allowed because of nextHopType is nonsupport.', 'http_code' => 400, 'description' => 'Specifying the next hop of the resource type is not supported.'], + ['code' => 'OperationDenied.NextHopTypeNotPermitted', 'message' => 'The operation is not allowed because the nextHop type is invalid.', 'http_code' => 400, 'description' => 'You are not allowed to create a route whose next hop is of this type.'], + ['code' => 'OperationDenied.NisTrafficAnalyzerAggregationIntervalMismatch', 'message' => 'The sampling interval of the FlowLog is greater than the sampling interval of the NIS Traffic Analyzer.', 'http_code' => 400, 'description' => 'The sampling interval of the FlowLog is greater than the sampling interval of the NIS Traffic Analyzer.'], + ['code' => 'OperationDenied.NisTrafficAnalyzerNotActive', 'message' => 'The specified NIS Traffic Analyzer is not enabled.', 'http_code' => 400, 'description' => 'The specified NIS Traffic Analyzer is not enabled.'], + ['code' => 'OperationDenied.NisTrafficAnalyzerNotFound', 'message' => 'The specified NIS Traffic Analyzer does not exist.', 'http_code' => 400, 'description' => 'The specified NIS Traffic Analyzer does not exist.'], + ['code' => 'OperationDenied.NoAvailablePrivateIp', 'message' => 'The operation is failed because of vSwitch has not availalbe private ip', 'http_code' => 400, 'description' => 'The vSwitch does not have sufficient private IP addresses.'], + ['code' => 'OperationDenied.NoEnoughAvailablePrivateIps', 'message' => 'The available private Ip number is not enough in your subnet.', 'http_code' => 400, 'description' => 'The number of private IP addresses in the subnet is insufficient.'], + ['code' => 'OperationDenied.NormalNatExist', 'message' => 'The operation is not allowed because of existing normalNat.', 'http_code' => 400, 'description' => 'Standard NAT gateways are deployed in the specified VPC.'], + ['code' => 'OperationDenied.NotAttachCen', 'message' => 'The operation is not allowed because the instance is not attached to a CEN instance.', 'http_code' => 400, 'description' => 'The operation is not allowed because the instance is not attached to CEN.'], + ['code' => 'OperationDenied.NotOpenDdosOriginProtectService', 'message' => 'The operation is not allowed because of you do not open Ddos Origin Protection Service', 'http_code' => 400, 'description' => 'You can not create an anti-DDoS Enhanced EIP because you do not open Ddos Origin Protection Service.'], + ['code' => 'OperationDenied.OperateSharedResource', 'message' => 'The operation is not allowed because of the PublicIpAddressPool is a shared resource.', 'http_code' => 400, 'description' => 'The public IP address pool is a shared resource and cannot be modified.'], + ['code' => 'OperationDenied.OperateShareResource', 'message' => 'The operation is not allowed because of OperateShareResource.', 'http_code' => 400, 'description' => 'Operating on shared resources causes the operation to fail'], + ['code' => 'OperationDenied.OtherCloudBoxVbrEntryExist', 'message' => 'The operation is not allowed because the routing table has a route entry for the next hop that points to a VBR other than this cloud box.', 'http_code' => 400, 'description' => 'The specified operation is not allowed because the route table contains a route whose next hop points to a Virtual Border Router (VBR) that does not belong to the current cloud box.'], + ['code' => 'OperationDenied.OtherSubnetCreating', 'message' => 'The operation is not allowed because a subnet is being created.', 'http_code' => 400, 'description' => 'The operation failed because another virtual subnet is being created.'], + ['code' => 'OperationDenied.OtherSubnetProcessing', 'message' => 'other subnet is processing.', 'http_code' => 400, 'description' => 'You cannot delete the vSwitch because other subnets are being managed.'], + ['code' => 'OperationDenied.PconnNotAllowRecover', 'message' => 'Exclusive physical connection does not allow recovery.', 'http_code' => 400, 'description' => 'The current resource cannot perform this operation. Please contact the duty officer for assistance.'], + ['code' => 'OperationDenied.PconnTrafficNotEnable', 'message' => 'Operation is not allowed because the outbound data transfer fees is not enabled.', 'http_code' => 400, 'description' => 'The operation is not allowed because outbound data transfer billing is disabled.'], + ['code' => 'OperationDenied.PrePaidInstance', 'message' => 'The operation is not allowed because prepaid instance is no longer supported.', 'http_code' => 400, 'description' => 'Prepaid instance is no longer supported.'], + ['code' => 'OperationDenied.PrivateLinkNotEnabled', 'message' => 'The NAT gateway is not enable for private link.', 'http_code' => 400, 'description' => 'The error message returned because the NAT gateway cannot use PrivateLink.'], + ['code' => 'OperationDenied.QueryCdt95Instance', 'message' => 'The operation is not allowed because of QueryCdt95Instance.', 'http_code' => 400, 'description' => 'The error message returned because you cannot query an EIP bandwidth plan connected to CDT.'], + ['code' => 'OperationDenied.RemoveCountExceedExistCount', 'message' => 'The operation is not allowed because of remove-count exceed exist-count.', 'http_code' => 400, 'description' => 'The number of CIDR blocks to delete exceeds the number of CIDR blocks in the prefix list.'], + ['code' => 'OperationDenied.RequestRegionInvalid', 'message' => 'The operation is not allowed because the request is not invoked in the region of the IPAM pool.', 'http_code' => 400, 'description' => 'The operation is not allowed because the request is not invoked in the region of the IPAM pool.'], + ['code' => 'OperationDenied.RouteEntryExist', 'message' => 'The operation is not allowed because of existing routeEntry point to ipv4Gateway.', 'http_code' => 400, 'description' => 'You cannot delete the IPv4 gateway because routes that point to the IPv4 gateway exist.'], + ['code' => 'OperationDenied.RouterInterfaceFromDifferentZones', 'message' => 'The operation is not allowed because the router interface resides in different zones.', 'http_code' => 400, 'description' => 'The specified operation is prohibited because the router interfaces are in different zones.'], + ['code' => 'OperationDenied.RouterInterfaceIpv6', 'message' => 'RouterInterface does not support IPv6.', 'http_code' => 400, 'description' => 'RouterInterface does not support IPv6.'], + ['code' => 'OperationDenied.RouterInterfaceIpv6NotEnabled', 'message' => 'Routerinterface does not support IPv6.', 'http_code' => 400, 'description' => 'The operation failed because the router interface does not support IPv6.'], + ['code' => 'OperationDenied.RouterInterfaceToDifferentVpc', 'message' => 'The operation is not allowed because the router interface is connected to different VPCs.', 'http_code' => 400, 'description' => 'The operation failed because the router interfaces point to different VPCs.'], + ['code' => 'OperationDenied.RouteTableAssociateNotCloudBoxVSwitch', 'message' => 'The operation is not allowed because of the routing table is bound to a non-cloud box type vswitch, and routing entries pointing to the cloud box VBR cannot be added.', 'http_code' => 400, 'description' => 'The operation is not allowed because the route table is associated with a non-CloudBox vSwitch. You cannot add routes that point to VBRs of the CloudBox instance.'], + ['code' => 'OperationDenied.RouteTableTypeIncorrect', 'message' => 'The operation is not allowed because of routeTableType is incorrect.', 'http_code' => 400, 'description' => 'The operation is not allowed because the type of route table is not supported.'], + ['code' => 'OperationDenied.RouteTableTypeIncorrect', 'message' => 'The operation is not allowed because of %s.', 'http_code' => 400, 'description' => 'The gateway route table is not a border gateway route table.'], + ['code' => 'OperationDenied.RouteTableTypeNotPermitted', 'message' => 'The operation is not allowed because the type of route table is not permitted.', 'http_code' => 400, 'description' => 'You cannot create routes for route tables of the specified type.'], + ['code' => 'OperationDenied.SlbNotInVpc', 'message' => 'The specified SLB is not in any VPC.', 'http_code' => 400, 'description' => 'The specified SLB instance does not belong to any VPC.'], + ['code' => 'OperationDenied.SnatEntryStatusInvalid', 'message' => 'The NAT gateway has SNAT entry in invalid status.', 'http_code' => 400, 'description' => 'The SNAT entry associated with the NAT gateway is in an invalid state.'], + ['code' => 'OperationDenied.SubnetRouteV1Exist', 'message' => 'The operation is not allowed because of existing subnetRouteV1.', 'http_code' => 400, 'description' => 'The subnet routes in the VPC do not meet the requirements.'], + ['code' => 'OperationDenied.SwitchToSystemRouteTable', 'message' => 'The associated route tables cannot be directly changed to system route tables.', 'http_code' => 400, 'description' => 'Failed to switch from the associated route table to the system route table.'], + ['code' => 'OperationDenied.SystemPrefixList', 'message' => 'The status of traffic mirror filter is incorrect.', 'http_code' => 400, 'description' => 'Operations on the operating system prefix list are not allowed.'], + ['code' => 'OperationDenied.SystemPrefixList', 'message' => 'The operation is not allowed because of SystemPrefixList.', 'http_code' => 400, 'description' => 'You cannot manage the system prefix list.'], + ['code' => 'OperationDenied.TargetTypeNotSupportBondEni', 'message' => 'Operation denied because of target type can not be Bond Network Interface.', 'http_code' => 400, 'description' => 'Operation denied because of target type can not be Bond Network Interface.'], + ['code' => 'OperationDenied.TargetTypeNotSupportGatewayLoadBalancerEndpoint', 'message' => 'Operation denied because of target type can not be GatewayLoadBalancerEndpoint.', 'http_code' => 400, 'description' => 'Gateway-based load balancing endpoints are not supported as traffic mirrors mu d'], + ['code' => 'OperationDenied.TargetTypeNotSupportSourceType', 'message' => 'The traffic mirroring target does not support the type of the traffic mirroring source.', 'http_code' => 400, 'description' => 'The traffic mirroring target does not support the type of the traffic mirroring source.'], + ['code' => 'OperationDenied.TargetTypeNotSupportTrafficMirrorFullPacket', 'message' => 'The traffic mirror session target type does not support the feature of mirroring source full packet.', 'http_code' => 400, 'description' => 'The traffic mirror session target type does not support the feature of mirroring source full packet'], + ['code' => 'OperationDenied.TerminateVirtualPhysicalConnection', 'message' => 'The operation is not allowed because of TerminateVirtualPhysicalConnection.', 'http_code' => 400, 'description' => 'The VirtualPhysicalConnection does not have permission or is in arrears, the operation is not allowed'], + ['code' => 'OperationDenied.TooManyDataQueried', 'message' => 'Specified operation is denied as too many data to return.', 'http_code' => null, 'description' => 'The number of data entries to be returned has reached the upper limit.'], + ['code' => 'OperationDenied.TrafficMirrorSessionSourceFullPacketNotSupport', 'message' => 'The traffic mirror session does not support the feature of mirroring source full packet.', 'http_code' => 400, 'description' => 'Traffic mirror currently does not support source full packet mirroring. TrafficMirrorSourceTruncateMode can only be set to 0, which is the default mode.'], + ['code' => 'OperationDenied.TrAttachmentIpv6Disabled', 'message' => 'The operation is not allowed because tr attachment Ipv6 is disabled.', 'http_code' => 400, 'description' => 'The operation is not allowed because tr attachment Ipv6 is disabled.'], + ['code' => 'OperationDenied.Unauthorized', 'message' => 'The operation is not allowed because the user is not in the whitelist.', 'http_code' => 400, 'description' => 'The operation is not allowed because you are not in the whitelist.'], + ['code' => 'OperationDenied.UneffectiveChargeOrderExisted', 'message' => 'The current operation is not allowed because there is an uneffective change order in your account.', 'http_code' => 400, 'description' => 'The operation is not allowed because your account has pending orders for specification changes.'], + ['code' => 'OperationDenied.UnexpectedRouteTable', 'message' => 'Operation is denied because only system route table supports publishing route entries.', 'http_code' => 400, 'description' => 'The operation was denied because only the system routing table supports publishing routes'], + ['code' => 'OperationDenied.UnsupportedEipBindMode', 'message' => 'The operation is not supported for the NAT gateway due to its EIP binding mode.', 'http_code' => 400, 'description' => 'The operation is not supported by the EIP binding mode of the NAT gateway.'], + ['code' => 'OperationDenied.UnsupportedTargetType', 'message' => 'Traffic mirror target must be SLB if traffic mirror sources contain nat gateway network interface.', 'http_code' => 400, 'description' => 'When a NAT gateway NIC exists in the traffic mirroring source, the traffic mirroring purpose must be SLB type.'], + ['code' => 'OperationDenied.UnsupportedTargetType', 'message' => 'The operation is not allowed because the target type is not supported.', 'http_code' => 400, 'description' => 'The operation was rejected because the type of the route publication target is not currently supported.'], + ['code' => 'OperationDenied.UpdateGatewayRouteEntry', 'message' => 'The operation is not allowed because of need switch to local first.', 'http_code' => 400, 'description' => 'The system failed to modify the route. You must first set the next hop to a local route before you can set a custom next hop.'], + ['code' => 'OperationDenied.UseGatewayRouteEntryQueryInterface', 'message' => 'Use listGatewayRouteTableEntries to describe gateway route entries.', 'http_code' => 400, 'description' => 'To query route entries in a gateway route table, use the listGatewayRouteTableEntries operation.'], + ['code' => 'OperationDenied.VBRAssociateVPconn', 'message' => 'The operation is not allowed because of VBRAssociateVPconn.', 'http_code' => 400, 'description' => 'The operation failed because you cannot associate a VBR with the hosted connection.'], + ['code' => 'OperationDenied.VbrAttachEcrInMiddleStatus', 'message' => 'The operation is not allowed because of VBR attach or detach ECR in middle status.', 'http_code' => 400, 'description' => 'The current operation cannot be performed because the VBR is in the process of loading or unloading the leased line gateway. Please wait a moment and try again.'], + ['code' => 'OperationDenied.VbrIdle', 'message' => 'The operation is not allowed because the next hop of the added routing entry is a VBR type RI at the opposite end, which cannot be in an idle state.', 'http_code' => 400, 'description' => 'The operation failed because the next hop of the added route is a router interface whose peer device is a VBR, and the VBR must not be in the Idle state.'], + ['code' => 'OperationDenied.VbrMisMatchCloudBox', 'message' => 'The operation is not allowed because the routing table is bound to a cloud box vswitch, and routing entries pointing to other cloud box VBRs cannot be added.', 'http_code' => 400, 'description' => 'The operation failed because the route table is associated with the vSwitch of a CloudBox instance. You cannot add routes that point to VBRs of other CloudBox instances.'], + ['code' => 'OperationDenied.VpcExistIpv4Gateway', 'message' => 'An IPv4 gateway already exists in the VPC.', 'http_code' => 400, 'description' => 'You are not allowed to create an IPv4 gateway in the VPC because an IPv4 gateway already exists in the VPC.'], + ['code' => 'OperationDenied.VpcIpv4GatewayEnabled', 'message' => 'The operation is not allowed because of the VPC of the NAT gateway has opened IPv4 Gateway.', 'http_code' => 404, 'description' => 'IPv4 gateways are enabled for the VPC where the NAT gateway resides and the operation is denied.'], + ['code' => 'OperationDenied.VpcIpv6NotEnabled', 'message' => 'IPv6 has not been enabled for the VPC.', 'http_code' => 400, 'description' => 'The error message returned because the VPC does not support IPv6 and the operation is denied.'], + ['code' => 'OperationDenied.VPconn', 'message' => 'The operation is not allowed because of VPconn.', 'http_code' => 400, 'description' => 'The operation failed because the hosted connection does not support the operation.'], + ['code' => 'OperationDenied.VPconn', 'message' => 'Vpconn is forbidden to create vbr for another account.', 'http_code' => 400, 'description' => 'You cannot create a VBR for another account.'], + ['code' => 'OperationDenied.VpconnVBRAssociatePconn', 'message' => 'The operation is not allowed because of VpconnVBRAssociatePconn.', 'http_code' => 400, 'description' => 'The operation failed because you cannot associate a VBR that is associated with a hosted connection with an Express Connect circuit.'], + ['code' => 'OperationDenied.VpcPeerExist', 'message' => 'The operation is not allowed because the VPC peer exists.', 'http_code' => 400, 'description' => 'The operation failed because VPC peering connections exist.'], + ['code' => 'OperationDenied.VpcPeerExists', 'message' => 'The operation is not allowed because the VpcPeer exists.', 'http_code' => 400, 'description' => 'The VPC has a VPC peering connection.'], + ['code' => 'OperationDenied.VpcPeerExists', 'message' => 'The operation is not allowed because of VpcPeerExists.', 'http_code' => 400, 'description' => 'The VPC has a VPC peering connection.'], + ['code' => 'OperationDenied.VpnConfiguring', 'message' => 'The associated VPN gateway is being configured. You cannot update the attributes of the customer gateway.', 'http_code' => 400, 'description' => 'The associated VPN gateway is being configured. You cannot update the attributes of the customer gateway.'], + ['code' => 'OperationDenied.VpnExist', 'message' => 'The operation is not allowed because of existing vpn.', 'http_code' => 400, 'description' => 'You are not allowed to create an IPv4 gateway because a VPN gateway already exists in the VPC.'], + ['code' => 'OperationDenied.VpnFinancialLocked', 'message' => 'The associated VPN gateway is financially locked. You cannot update the attributes of the customer gateway.', 'http_code' => 400, 'description' => 'The associated VPN gateway is financially locked. You cannot update the attributes of the customer gateway.'], + ['code' => 'OperationFailed.AccessDeviceDisabled', 'message' => 'Access device is disabled and can not create vbr.', 'http_code' => 404, 'description' => 'You cannot create a VBR because the access device is disabled.'], + ['code' => 'OperationFailed.AccessTunnelId', 'message' => 'AccessTunnelId param do operation failed.', 'http_code' => 500, 'description' => 'VPC NAT failed to generate tunnel ID. Try again later'], + ['code' => 'OperationFailed.ActiveNetworkInterfaceNotFound', 'message' => 'No active network interface is found on the attachment.', 'http_code' => 400, 'description' => 'No ENI is available on the specified transit router.'], + ['code' => 'OperationFailed.AddIpTaskInProcessing', 'message' => 'Operation failed because add ip to common bandwidth task in processing.', 'http_code' => 400, 'description' => 'You cannot delete the resource because EIPs are being associated with the EIP bandwidth plan.'], + ['code' => 'OperationFailed.AddressAlreadyAllocated', 'message' => 'The operation is failed because of AddressAlreadyAllocated.', 'http_code' => 400, 'description' => 'The specified address has already been assigned'], + ['code' => 'OperationFailed.AddressNotInVSwitchCidr', 'message' => 'The operation is failed because of %s.', 'http_code' => 400, 'description' => 'The specified IP address is not in the vSwitch CIDR block. Please modify it as described in the API document and try again.'], + ['code' => 'OperationFailed.AddVpcRoute', 'message' => 'It is failed to add VPC route after this operation.', 'http_code' => 400, 'description' => 'VPC routes failed to be added after the operation is performed.'], + ['code' => 'OperationFailed.AliGroupUserCanNotBuyInnerCommodity', 'message' => 'Vpc_flowlog_public has no group cloud product label, and users within the group are not allowed to purchase.', 'http_code' => 400, 'description' => 'vpc_flowlog_public does not have a merchandise tag and cannot be purchased by an internal group user.'], + ['code' => 'OperationFailed.AliGroupUserCanNotBuyInnerCommodity', 'message' => 'Vpc trafficmirror public has no group cloud product label, and users within the group are not allowed to purchase.', 'http_code' => 400, 'description' => 'vpc_trafficmirror_public does not have a merchandise tag and cannot be purchased by an internal group user.'], + ['code' => 'OperationFailed.AllocateEipSegment', 'message' => 'Operation failed because eip segment is out of stock.', 'http_code' => 400, 'description' => 'Insufficient inventory of continuous EIP.'], + ['code' => 'OperationFailed.AllocateNatIpPortFailed', 'message' => 'NatIpPort allocation failed.', 'http_code' => 400, 'description' => 'NatIpPort allocation failed.'], + ['code' => 'OperationFailed.AllocateUnfamiliarIp', 'message' => 'The operation failed because only IP addresses used within the last seven days can be allocated.', 'http_code' => 400, 'description' => 'Only IP addresses used within the last seven days can be used to apply for EIP.'], + ['code' => 'OperationFailed.AlreadyUsedIpContained', 'message' => 'The specified VSwitchCidrReservationCidr cannot contain already used IP addresses.', 'http_code' => 400, 'description' => 'The reserved CIDR block cannot contain used IP addresses.'], + ['code' => 'OperationFailed.AnotherAssociationExist', 'message' => 'The VPN gateway has associated with %s.', 'http_code' => 400, 'description' => 'The VPN gateway is already associated with a certificate of the same type.'], + ['code' => 'OperationFailed.AnyPortConfig', 'message' => 'Operation failed because any port correspondence any protocol', 'http_code' => 400, 'description' => 'The operation failed. There is a conflict with another entry, any port or any protocol type.'], + ['code' => 'OperationFailed.AssociationExist', 'message' => 'The association already exists.', 'http_code' => 400, 'description' => 'Operation is failed because the current resource is associated.'], + ['code' => 'OperationFailed.AssociationExist', 'message' => 'Operation failed because the existence of an association.', 'http_code' => 400, 'description' => 'The operation failed because there is a bind operation failure.'], + ['code' => 'OperationFailed.AttachmentExist', 'message' => 'The current VPC is already attached to a DHCP options set.', 'http_code' => 400, 'description' => 'The VPC is associated with a DHCP options set. You can associate a VPC with only one DHCP options set.'], + ['code' => 'OperationFailed.AttachmentNotExist', 'message' => 'The current VPC is not attahced to a DHCP options set.', 'http_code' => 400, 'description' => 'The VPC is not associated with a DHCP options set.'], + ['code' => 'OperationFailed.BandwidthExceedLimit', 'message' => 'The operation is forbidden because of BandwidthExceedLimit.', 'http_code' => 400, 'description' => 'The error message returned because the specified bandwidth exceeds the upper limit and the operation is denied.'], + ['code' => 'OperationFailed.BandwidthOrVlanIdEmpty', 'message' => 'The specified VBR bandwidth or VlanId is empty.', 'http_code' => 400, 'description' => 'The operation failed because the bandwidth or the VLAN ID of the VBR is empty.'], + ['code' => 'OperationFailed.BandwidthPackageNotEmpty', 'message' => 'Eip bandwidth package not empty.', 'http_code' => 400, 'description' => 'The EIP bandwidth plan cannot be deleted because EIPs are associated with the EIP bandwidth plan.'], + ['code' => 'OperationFailed.BasicInfoUncompleted', 'message' => 'Your information is incomplete. Complete your information before the operation.', 'http_code' => 500, 'description' => 'The error message returned because your basic information is incomplete. Complete your basic information and try again.'], + ['code' => 'OperationFailed.BasicInfoUncompleted', 'message' => 'You have not completed your basic personal information, please complete the information and try again.', 'http_code' => 400, 'description' => 'Your basic information is incomplete. Specify the information and try again.'], + ['code' => 'OperationFailed.BgpGroupLocalAsnMustSameEachOther', 'message' => 'VBR bgpGroup local asn must same each other.', 'http_code' => 400, 'description' => 'The BGP group AS numbers of the VBRs in the switching group must be consistent with each other.'], + ['code' => 'OperationFailed.BgpPeerConflictWithECR', 'message' => 'The BGP neighbor created by the previous VBR conflicts with the ECR configuration.', 'http_code' => 400, 'description' => 'The BGP neighbor created by the current VBR conflicts with the ECR configuration. Delete the BGP configuration and try again.'], + ['code' => 'OperationFailed.BondingVpnNotSupportBGP', 'message' => 'The architecture does not support BGP capabilities (single tunnel bonding architecture VPN gateway).', 'http_code' => 400, 'description' => 'the architecture does not support the bgp capability (single-tunnel bonding vpn gateway)'], + ['code' => 'OperationFailed.CannotConnectOtherOwnerInstance', 'message' => 'Can not connect with other owner VPC or CEN.', 'http_code' => 400, 'description' => 'Failed to bind the current resource to another account\'s VPC or CEN. Check whether you have the relevant permissions and try again.'], + ['code' => 'OperationFailed.CanNotUseEipInDnat', 'message' => 'Operation failed because the EIP cannot be used to create a forward entry.', 'http_code' => 400, 'description' => 'Operation failed because the EIP cannot be used to create a forward entry.'], + ['code' => 'OperationFailed.CenLevelNotSupport', 'message' => 'When the VPC to which the VPN gateway belongs is attached to a FULL-mode CEN, the VPN gateway cannot enable BGP.', 'http_code' => 400, 'description' => 'When the VPC to which the VPN gateway belongs is attached to a FULL-mode CEN, the VPN gateway cannot enable BGP.'], + ['code' => 'OperationFailed.CidrConflictWithPrefixList', 'message' => 'The specified CIDR block already exists in a prefixList route entry.', 'http_code' => 400, 'description' => 'The route conflicts with an existing prefix list route.'], + ['code' => 'OperationFailed.CidrCountExceedMaxCount', 'message' => 'The operation is failed because of cidrCountExceedMaxCount.', 'http_code' => 400, 'description' => 'The number of CIDR blocks specified exceeds the maximum allowed value of cidrMaxCount.'], + ['code' => 'OperationFailed.CidrInUse', 'message' => 'Operation failed because cidr is in use.', 'http_code' => 400, 'description' => 'The CIDR block is being used.'], + ['code' => 'OperationFailed.CidrInUse', 'message' => 'The operation failed because the CIDR block is already in use.', 'http_code' => 400, 'description' => 'The operation failed. The CIDR block is currently in use.'], + ['code' => 'OperationFailed.CidrNotEnoughInVSwitch', 'message' => 'No enough cidr to allocate in this vswitch.', 'http_code' => 400, 'description' => 'The specified vSwitch does not have sufficient CIDR blocks.'], + ['code' => 'OperationFailed.ClearAuthKeyForbidden', 'message' => 'The specific auth key is not empty.', 'http_code' => 400, 'description' => 'The specified key is not empty and cannot be cleared.'], + ['code' => 'OperationFailed.CommodityCodeInvalid', 'message' => 'Invalid CommodityCode.', 'http_code' => 400, 'description' => 'The commodity code is invalid. Modify the code and try again.'], + ['code' => 'OperationFailed.ConfigSessionLog', 'message' => 'Failed to configure the NAT session log delivery rule.', 'http_code' => 400, 'description' => 'Failed to configure the NAT session log delivery rule.'], + ['code' => 'OperationFailed.ConfigSessionLog', 'message' => 'Failed to configure session log due to a temporary failure of the server.', 'http_code' => 500, 'description' => 'Failed to configure session log due to an internal service error.'], + ['code' => 'OperationFailed.ConflictWithEntry', 'message' => 'The CidrBlock is conflict with routeEntry.', 'http_code' => 400, 'description' => 'The operation failed. The new CIDR block has a route conflict with an existing routing entry.'], + ['code' => 'OperationFailed.ContainForbiddenLabel', 'message' => 'There is a label that prohibits ordering, please contact your distributor for processing.', 'http_code' => 400, 'description' => 'There is a label that prohibits ordering, please contact your distributor for processing.'], + ['code' => 'OperationFailed.CreateNatIpCidrInVpcCidrBlock', 'message' => 'NAT CIDR blocks cannot be created in VPC CIDR blocks.', 'http_code' => 400, 'description' => 'The operation failed because a NAT CIDR block is created in a VPC CIDR block.'], + ['code' => 'OperationFailed.CreateNatIpCidrNotInUserCidr', 'message' => 'The operation is failed because of Creating NatIpCidr not in UserCidr.', 'http_code' => 400, 'description' => 'The operation failed because the NAT CIDR block does not fall within the user CIDR block.'], + ['code' => 'OperationFailed.CreditPayInsufficientBalance', 'message' => 'Your account does not have enough balance.', 'http_code' => 400, 'description' => 'Your account balance is negative. Top up your account before you can make a purchase.'], + ['code' => 'OperationFailed.DefaultNatIp', 'message' => 'The operation is failed because of default NatIP can not be deleted.', 'http_code' => 400, 'description' => 'You cannot delete the default NAT IP address.'], + ['code' => 'OperationFailed.DefaultNatIpCidr', 'message' => 'The operation is failed because of default NatIPCidr can not be deleted.', 'http_code' => 400, 'description' => 'The operation failed because you cannot delete the default CIDR block.'], + ['code' => 'OperationFailed.DefaultVpcExist', 'message' => 'A default VPC already exists in the region.', 'http_code' => 400, 'description' => 'The operation failed because the default VPC already exists.'], + ['code' => 'OperationFailed.DefaultVpcNotExist', 'message' => 'Operation failed because the default VPC does not exist.', 'http_code' => 400, 'description' => 'The operation failed because the default VPC does not exist.'], + ['code' => 'OperationFailed.DefaultVSwitchExist', 'message' => 'A default vSwitch already exists in the zone.', 'http_code' => 400, 'description' => 'The error message returned because the default vSwitch already exists in the current zone.'], + ['code' => 'OperationFailed.DescribeCenRoute', 'message' => 'An error occurred while querying the CEN route entry.', 'http_code' => 400, 'description' => 'CEN routes are abnormal.'], + ['code' => 'OperationFailed.DistibuteLock', 'message' => 'The resource is locked and cannot be operated.', 'http_code' => 400, 'description' => 'The resource is locked and cannot be operated.'], + ['code' => 'OperationFailed.DistibuteLock', 'message' => 'Distibute lock fail.', 'http_code' => 400, 'description' => 'The operation is locked by another request;'], + ['code' => 'OperationFailed.DnatInMiddleStatus', 'message' => 'Operation failed because the status of the DNAT entry associated with the NAT gateway is abnormal.', 'http_code' => 400, 'description' => 'Operation failed because the status of the DNAT entry associated with the NAT gateway is abnormal.'], + ['code' => 'OperationFailed.DnatPortRangeLimit', 'message' => 'port range mapping count of this ip must less than 64', 'http_code' => 400, 'description' => 'Each IP address can be mapped to at most 64 port ranges.'], + ['code' => 'OperationFailed.DnatPortRangeLimit', 'message' => 'port range mapping count of this ip must less than limit', 'http_code' => 400, 'description' => 'The number of port ranges to which each IP address maps has reached the upper limit.'], + ['code' => 'OperationFailed.DnatPortRangeLimit', 'message' => 'The maximum number of port ranges that can be specified is exceeded.', 'http_code' => 400, 'description' => 'The maximum number of port ranges that can be specified is exceeded.'], + ['code' => 'OperationFailed.DnatQuotaExceed', 'message' => 'Operation failed because the maximum number of forward entry is exceeded.', 'http_code' => 400, 'description' => 'Operation failed because the maximum number of forward entry is exceeded.'], + ['code' => 'OperationFailed.EcmpInvalidRouterInterfaceOppositeType', 'message' => 'Operation failed because the opposite type of the router interface is invalid for ECMP configuration.', 'http_code' => 400, 'description' => 'The operation failed because the peer type of the router interface is invalid for ECMP.'], + ['code' => 'OperationFailed.EcsMetricNotEnabled', 'message' => 'The feature is not enabled for enhanced NAT gateway.', 'http_code' => 400, 'description' => 'The feature is not enabled for enhanced NAT gateway.'], + ['code' => 'OperationFailed.EcsMigrating', 'message' => 'The operation is failed because of ECS is migrating.', 'http_code' => 500, 'description' => 'The error message returned because the ECS instance is being migrated.'], + ['code' => 'OperationFailed.EcsNetworkInterfaceQuotaNotSatisfy', 'message' => 'ECS network interface quota is not satisfy.', 'http_code' => 400, 'description' => 'The ECS ENI quota does not meet the requirements.'], + ['code' => 'OperationFailed.EipBindModeConflict', 'message' => 'Eips can not bind Eni with NAT mode and MULTI_BINDED mode at the same time.', 'http_code' => 500, 'description' => 'The error message returned because you cannot associate an EIP with an ENI in NAT mode and multi-EIP-to-ENI mode at the same time.'], + ['code' => 'OperationFailed.EipBoundOnInstance', 'message' => 'The operation is failed because of eip is bounded on instance.', 'http_code' => 400, 'description' => 'Failed to delete the instance because an EIP is associated with the instance.'], + ['code' => 'OperationFailed.EipInMiddleStatus', 'message' => 'Operation failed because the status of EIP associated with the specified NAT gateway is abnormal.', 'http_code' => 400, 'description' => 'Operation failed because the status of EIP associated with the specified NAT gateway is abnormal.'], + ['code' => 'OperationFailed.EipStatusInvalid', 'message' => 'Operation failed because eip instance status invalid.', 'http_code' => 400, 'description' => 'The operation failed because the status of the EIP is invalid.'], + ['code' => 'OperationFailed.Endpoint', 'message' => 'Operation failed because the RegionId is unavailable in this endpoint.', 'http_code' => 400, 'description' => 'The region does not belong to the service registration endpoint management scope.'], + ['code' => 'OperationFailed.EnhancedCheckInventory', 'message' => 'The NAT gateway in the current zone is not in service, or the resource inventory is insufficient.', 'http_code' => 500, 'description' => 'The NAT gateway in the current zone is not in service, or the resource inventory is insufficient.'], + ['code' => 'OperationFailed.EnhancedInventoryNotEnough', 'message' => 'The enhanced NAT gateway inventory is insufficient in the specified zone.', 'http_code' => 400, 'description' => 'The stock of enhanced NAT gateways is insufficient in the specified zone.'], + ['code' => 'OperationFailed.EnhancedQuotaExceed', 'message' => 'Operation failed because the maximum number of enhanced NAT gateways in the same VPC is exceeded.', 'http_code' => 400, 'description' => 'Operation failed because the maximum number of enhanced NAT gateways in the same VPC is exceeded.'], + ['code' => 'OperationFailed.EnhancedQuotaExceed', 'message' => 'Enhanced nat gateway per vpc quota is exceeded', 'http_code' => 400, 'description' => 'The quota for creating enhanced NAT gateways in the current VPC has been exceeded.'], + ['code' => 'OperationFailed.EnhancedRegion', 'message' => 'Operation failed because enhanced NAT gateways are not available for sale in the specified region.', 'http_code' => 400, 'description' => 'Operation failed because enhanced NAT gateways are not available for sale in the specified region.'], + ['code' => 'OperationFailed.EnhancedUserIsUnAuthorized', 'message' => 'Operation failed because the user is not authorized to create an enhanced NAT gateway.', 'http_code' => 400, 'description' => 'Operation failed because the user is not authorized to create an enhanced NAT gateway.'], + ['code' => 'OperationFailed.EniTypeNotSupport', 'message' => 'Operation failed because the ENI type is not supported.', 'http_code' => 400, 'description' => 'Operation failed because the ENI type is not supported.'], + ['code' => 'OperationFailed.ExceedPurchaseLimit', 'message' => 'You have reached the limit of purchase quantity.', 'http_code' => 400, 'description' => 'You have reached the maximum purchase quantity.'], + ['code' => 'OperationFailed.ExistIPv6Used', 'message' => 'The operation is failed because of some ipv6 in the ipv6 prefix is already in use.', 'http_code' => 400, 'description' => 'The operation failed because IPv6 is already in use in the IPv6 prefix'], + ['code' => 'OperationFailed.FailToGetStatus', 'message' => 'The operation is failed because of FailToGetStatus.', 'http_code' => 400, 'description' => 'Failed to obtain the resource status information of the high-speed channel. Please check the resource information and query again.'], + ['code' => 'OperationFailed.FilterParamUnderWrongRouteType', 'message' => 'Operation failed because only custom type support filter by routeEntryId or routeEntryName', 'http_code' => 400, 'description' => 'The operation failed because only custom routes support search by route ID or route name.'], + ['code' => 'OperationFailed.FilterParamUnderWrongRouteType', 'message' => 'Operation failed because only custom type support filter by routeEntryId or routeEntryName', 'http_code' => 400, 'description' => 'The operation failed. Only custom route entries support filtering by route entry ID or route entry name.'], + ['code' => 'OperationFailed.FinancialLocked', 'message' => 'The operation is forbidden because of financialLocked.', 'http_code' => 400, 'description' => 'The operation failed due to an overdue payment.'], + ['code' => 'OperationFailed.ForwardEntryNotAllowSrcIpEqualDstIp', 'message' => 'The source IP of forward entry is not allowed to equal destination IP.', 'http_code' => 400, 'description' => 'The public IP address of the DNAT entry is not allowed to be equal to the private IP address.'], + ['code' => 'OperationFailed.GetEniInfo', 'message' => 'The back-end service failed to query the NIC information.', 'http_code' => 500, 'description' => 'The back-end service failed to query the NIC information.'], + ['code' => 'OperationFailed.GetNfvServiceList', 'message' => 'The operation is failed because of get nfv serviceList failed.', 'http_code' => 400, 'description' => 'Failed to obtain the nfc service list.'], + ['code' => 'OperationFailed.HavipBoundPortmap', 'message' => 'Operation failed because Havip instance already bound portmap.', 'http_code' => 400, 'description' => 'The operation failed because the HaVip instance already has port mappings associated with it.'], + ['code' => 'OperationFailed.HcForInvalidRiType', 'message' => 'Healthchecksourceip and healthchecktargetip is only valid for vr ri that is connected to vbr.', 'http_code' => 400, 'description' => 'The IP address configured for health checks is invalid.'], + ['code' => 'OperationFailed.InformationIncomplete', 'message' => 'Your information is incomplete.', 'http_code' => 400, 'description' => 'The information that you entered is incomplete.'], + ['code' => 'OperationFailed.InstanceDismatchCurrentVpc', 'message' => 'The specified instance does not exist in current vpc.', 'http_code' => 404, 'description' => 'The specified instance does not exist in the VPC.'], + ['code' => 'OperationFailed.InstanceNotExist', 'message' => 'The ECS instance does not exist, or is not a VPC VM.', 'http_code' => 400, 'description' => 'The EIP failed to be associated with the ECS instance because the ECS instance does not exist or is not a VPC virtual machine.'], + ['code' => 'OperationFailed.InstanceStatusNotAllowed', 'message' => 'The current status of the resource does not support this operation.', 'http_code' => 400, 'description' => 'The resource in this state does not support the current operation.'], + ['code' => 'OperationFailed.InternalError', 'message' => 'The request processing has failed due to some unknown error.', 'http_code' => 400, 'description' => 'Unknown error. Please retry the operation. The error still exists. Please submit the work order for processing.'], + ['code' => 'OperationFailed.InternetBandwidthAlreadyExisted', 'message' => 'The operation is failed because of %s.', 'http_code' => 400, 'description' => 'Internet bandwidth is already enabled for the IPv6 address.'], + ['code' => 'OperationFailed.InternetBandwidthNonExist', 'message' => 'The operation is forbidden because of InternetBandwidthNonExist.', 'http_code' => 400, 'description' => 'The error message returned because the specified bandwidth is invalid and the operation is denied.'], + ['code' => 'OperationFailed.InternetBandwidthUnstable', 'message' => 'The operation is forbidden because of InternetBandwidthUnstable.', 'http_code' => 400, 'description' => 'The operation is prohibited because the bandwidth instance is in a transient state.'], + ['code' => 'OperationFailed.InvalidCidrBlock', 'message' => 'Operation failed because the specified network block is invalid.', 'http_code' => 400, 'description' => 'The CIDR block is invalid.'], + ['code' => 'OperationFailed.InvalidEcGrant', 'message' => 'The VBR have no grant to create EC.', 'http_code' => 400, 'description' => 'The VBR instance is not grant by the VPC instance. Please try again after grant.'], + ['code' => 'OperationFailed.InvalidNextHopType', 'message' => 'Operation failed because Ecmp routeEntry has more than one ri entry and can only support one non-ri entry.', 'http_code' => 400, 'description' => 'The system failed to create the route because the next hop of an ECMP route must not be a router interface.'], + ['code' => 'OperationFailed.InvalidNextHopType', 'message' => 'Operation failed because the specified nexthopType is invalid.', 'http_code' => 400, 'description' => 'The operation failed because the next hop type is invalid.'], + ['code' => 'OperationFailed.InvalidStatus', 'message' => 'Route entry is not allowed to operate in current status.', 'http_code' => 400, 'description' => 'You are not allowed to manage the route in the current state.'], + ['code' => 'OperationFailed.IpIsLocked', 'message' => 'The operation is failed because of ip is locked.', 'http_code' => 400, 'description' => 'Your application failed because the IP address is locked.'], + ['code' => 'OperationFailed.IpPrefixConflict', 'message' => 'The operation failed due to the IP prefix of the ENI.', 'http_code' => 400, 'description' => 'The operation conflicts with the IP address prefix of the ENI.'], + ['code' => 'OperationFailed.IpPrefixMustInVSwitchCidrReservation', 'message' => 'The specified ip prefix must in reserved segment the VSwitch.', 'http_code' => 400, 'description' => 'The specified prefix network segment must be within the reserved network segment of the switch'], + ['code' => 'OperationFailed.IPsecServerExist', 'message' => 'An IPsec server already exists in the VPN gateway.', 'http_code' => 400, 'description' => 'An IPsec server already exists in the VPN gateway.'], + ['code' => 'OperationFailed.Ipv4GatewayNotOpenedInVpc', 'message' => 'The operation is failed because Ipv4Gateway is not opened in Vpc.', 'http_code' => 400, 'description' => 'The error message returned because the VPC does not have IPv4 gateways enabled and the IP address failed to be associated with the EIP.'], + ['code' => 'OperationFailed.Ipv4GatewayUsedByEipBindIpAddress', 'message' => 'Failed to delete the IPv4 gateway because the EIP associated with a private IP address requires the IPv4 gateway to implement outbound Internet access.', 'http_code' => 400, 'description' => 'The EIP is associated with a private IP address and this feature requires an IPv4 gateway. Therefore, you cannot delete the IPv4 gateway.'], + ['code' => 'OperationFailed.Ipv6AddressAlreadyAllocated', 'message' => 'The operation is failed because of Ipv6AddressAlreadyAllocated.', 'http_code' => 400, 'description' => 'The specified ipv6 address has already been assigned'], + ['code' => 'OperationFailed.IPv6AddressAlreadyAllocated', 'message' => 'The operation is failed because of the ipv6 address specified was allocated.', 'http_code' => 400, 'description' => 'The specified IPv6 address is already allocated'], + ['code' => 'OperationFailed.Ipv6AlreadyEnabled', 'message' => 'Operation failed because the IPv6 is enabled already.', 'http_code' => 400, 'description' => 'The operation failed because IPv6 is already enabled.'], + ['code' => 'OperationFailed.Ipv6BandwidthExceedLimit', 'message' => 'Operation failed because the IPv6 bandwidth is beyond the limits of IPv6Gateway spec to modify.', 'http_code' => 400, 'description' => 'The operation failed because the bandwidth of the IPv6 instance exceeds the maximum bandwidth limit of the gateway specification to be modified.'], + ['code' => 'OperationFailed.Ipv6CidrBlockExisted', 'message' => 'Operation failed because the specified IPv6 CIDR block is used already.', 'http_code' => 400, 'description' => 'The operation failed because the specified IPv6 CIDR block is already in use.'], + ['code' => 'OperationFailed.Ipv6CidrBlockOverLapped', 'message' => 'The input IPv6 CIDR block overlaps with the existing ones.', 'http_code' => 400, 'description' => 'The input IPv6 CIDR block overlaps with the existing ones.'], + ['code' => 'OperationFailed.Ipv6CidrBlockUsed', 'message' => 'Operation failed because the specified IPv6 CIDR block is used already.', 'http_code' => 400, 'description' => 'The operation failed because the specified IPv6 CIDR block is already in use.'], + ['code' => 'OperationFailed.IPv6CidrNotReserved', 'message' => 'The IPv6 CIDR block is not reserved.', 'http_code' => 400, 'description' => 'The operation failed because the specified IPv6 CIDR block is not reserved.'], + ['code' => 'OperationFailed.IPv6Disabled', 'message' => 'Operation failed because IPv6 is not enabled for the vSwitch.', 'http_code' => 400, 'description' => 'The IPv6 feature is disabled.'], + ['code' => 'OperationFailed.Ipv6EgressRuleExisted', 'message' => 'An egress-only rule already exists for the IPv6 address.', 'http_code' => 400, 'description' => 'The IPv6 instance already has egress-only rules.'], + ['code' => 'OperationFailed.Ipv6Gateway', 'message' => 'The operation is failed because of ipv6Gateway is in use.', 'http_code' => 400, 'description' => 'The operation failed because the IPv6 gateway is being used.'], + ['code' => 'OperationFailed.Ipv6GatewayDisMatchIpv6Address', 'message' => 'The operation is failed because of %s.', 'http_code' => 400, 'description' => 'The IPv6 address and IPv6 gateway do not belong to the same VPC.'], + ['code' => 'OperationFailed.Ipv6GatewayInUse', 'message' => 'The IPv6 gateway is in use.', 'http_code' => 400, 'description' => 'You cannot modify the VPC attributes because the IPv6 gateway is in use.'], + ['code' => 'OperationFailed.Ipv6GatewayNotExist', 'message' => 'The operation is failed because of %s.', 'http_code' => 400, 'description' => 'No IPv6 gateway exists in the VPC to which the IPv6 address belongs. Create an IPv6 gateway and try again.'], + ['code' => 'OperationFailed.Ipv6InstanceExist', 'message' => 'Operation failed because vswitch has ipv6 instance.', 'http_code' => 400, 'description' => 'IPv6 instances exist in the vSwitch.'], + ['code' => 'OperationFailed.Ipv6RouteEntryUsing', 'message' => 'VPC exist IPv6 Route Entry, cannot disable IPv6.', 'http_code' => 400, 'description' => 'The VPC has an IPv6 route, and IPv6 must not be disabled.'], + ['code' => 'OperationFailed.IpV6VSwitchInuse', 'message' => 'Operation failed because some vswitch ipv6 is in use.', 'http_code' => 400, 'description' => 'The IPv6 vSwitch is still in use.'], + ['code' => 'OperationFailed.LastTokenProcessing', 'message' => 'A token request is being processed. Try again later.', 'http_code' => 400, 'description' => 'The last token request is being processed. Try again later.'], + ['code' => 'OperationFailed.LogDeliveryIsUnAuthorized', 'message' => 'Operation failed because the user is not authorized to deliver NAT session log.', 'http_code' => 400, 'description' => 'The operation failed because you did not grant the NAT session log delivery permission'], + ['code' => 'OperationFailed.MissCertificate', 'message' => 'The VPN gateway has not associated any certificates.', 'http_code' => 400, 'description' => 'The error message returned because the VPN gateway is not associated with a certificate.'], + ['code' => 'OperationFailed.MissCertificate', 'message' => 'The VPN connecton has not associated any certificates.', 'http_code' => 400, 'description' => 'The error message returned because the VPN gateway is not associated with a certificate.'], + ['code' => 'OperationFailed.ModifyVpcDnsHostname', 'message' => 'Operation failed because DnsHostName resource is in transient state, please try again later.', 'http_code' => 400, 'description' => 'dns domain name resource is unstable, please try again later.'], + ['code' => 'OperationFailed.NatArchitectrueNotMatch', 'message' => 'The operation is not supported because the NAT instance architecture does not match.', 'http_code' => 400, 'description' => 'The operation is not supported because the NAT instance architecture does not match.'], + ['code' => 'OperationFailed.NatGatewayNotExist', 'message' => 'The specified NatGateway does not exist.', 'http_code' => 400, 'description' => 'The specified NatGateway does not exist.'], + ['code' => 'OperationFailed.NatGwBandwidthQuotaExceed', 'message' => 'The total bandwidth of the EIP bound to the NAT gateway exceeds the quota.', 'http_code' => 400, 'description' => 'The total bandwidth of the EIP bound to the NAT gateway exceeds the quota.'], + ['code' => 'OperationFailed.NatGwBindWithBandwidthPackage', 'message' => 'Operation failed because the NAT gateway is bound to bandwidth packages.', 'http_code' => 400, 'description' => 'Operation failed because the NAT gateway is bound to bandwidth packages.'], + ['code' => 'OperationFailed.NatGwRouteInMiddleStatus', 'message' => 'Operation failed because the status of the route entry associated with the NAT gateway is abnormal.', 'http_code' => 400, 'description' => 'Operation failed because the status of the route entry associated with the NAT gateway is abnormal.'], + ['code' => 'OperationFailed.NatTypeInvalid', 'message' => 'Only enhanced NAT gateway supports the operation.', 'http_code' => 400, 'description' => 'Only enhanced NAT gateway supports the operation.'], + ['code' => 'OperationFailed.NatTypeNotEnhanced', 'message' => 'Operation failed because the specified NAT gateway type is not enhanced.', 'http_code' => 400, 'description' => 'Operation failed because the specified NAT gateway type is not enhanced.'], + ['code' => 'OperationFailed.NoAvailableAmount', 'message' => 'The available amount of your account is less than 0, please recharge before attempting to purchase.', 'http_code' => 400, 'description' => 'Your account balance is negative. Top up your account before you can make a purchase.'], + ['code' => 'OperationFailed.NoAvailableResource', 'message' => 'The Zone have no available resource.', 'http_code' => 400, 'description' => 'No resources are available in the region.'], + ['code' => 'OperationFailed.NoInternetBandwidth', 'message' => 'Operation failed because the ipv6 instance has no internet bandwidth.', 'http_code' => 400, 'description' => 'The operation is not supported because the IPv6 instance does not have Internet bandwidth.'], + ['code' => 'OperationFailed.NoNameAuthentication', 'message' => 'You have not passed the real name authentication and do not meet the purchase conditions. Please log in to the user center for real-name authentication.', 'http_code' => 400, 'description' => 'You have not passed the real name authentication and do not meet the purchase conditions. Please log in to the user center for real-name authentication.'], + ['code' => 'OperationFailed.NoPaymentMethod', 'message' => 'No payment method is specified for your account.', 'http_code' => 400, 'description' => 'No valid payment method exists in the account.'], + ['code' => 'OperationFailed.NoPermission', 'message' => 'You are not authorized to perform the operation.', 'http_code' => 400, 'description' => 'You are not authorized to perform the operation.'], + ['code' => 'OperationFailed.NoRamPermission', 'message' => 'Vpn Service has no permission to operate your IDaaS instances.', 'http_code' => 400, 'description' => 'The VPN service does not have the permissions to manage your IDaaS instance.'], + ['code' => 'OperationFailed.NormalInventoryNotEnough', 'message' => 'Operation failed because the inventory of standard NAT gateway is insufficient.', 'http_code' => 400, 'description' => 'Operation failed because the inventory of standard NAT gateway is insufficient.'], + ['code' => 'OperationFailed.NormalInventoryNotEnough', 'message' => 'Standard NAT gateways are no longer offered. You can create enhanced NAT gateways and set the correct natType.', 'http_code' => 500, 'description' => 'Create an enhanced NAT gateway and ensure that the NatType parameters are configured correctly.'], + ['code' => 'OperationFailed.NotConsistentWithVpconn', 'message' => 'VBR bandwidth is not consistent with vpconn', 'http_code' => 400, 'description' => 'The bandwidth value of the VBR is not the same as the bandwidth value of the hosted connection to which the VBR belongs.'], + ['code' => 'OperationFailed.NotConsistentWithVpconn', 'message' => 'The operation is failed because of NotConsistentWithVpconn.', 'http_code' => 400, 'description' => 'The error message returned because you cannot modify the bandwidth of a vRouter created on a shared port.'], + ['code' => 'OperationFailed.NotExistAssociateRelation', 'message' => 'The operation is failed because of association not exist.', 'http_code' => 400, 'description' => 'The operation to disassociate the route table from the gateway failed because no association exists.'], + ['code' => 'OperationFailed.NotExistAssociateRelation', 'message' => 'The operation is not failed because of not exist this associate relation.', 'http_code' => 400, 'description' => 'The system failed to disassociate the route table from the gateway because the route table is not associated with the gateway.'], + ['code' => 'OperationFailed.NotSupportBizType', 'message' => 'The specified instance type does not support the operation.', 'http_code' => 400, 'description' => 'The specified instance type does not support the operation.'], + ['code' => 'OperationFailed.NotSupportIPV6', 'message' => 'The specified next hop does not support IPv6.', 'http_code' => 400, 'description' => 'The specified next hop does not support IPv6.'], + ['code' => 'OperationFailed.NotSupportIPv6', 'message' => 'Router interface not support IPv6.', 'http_code' => 400, 'description' => 'The router interface does not support IPv6.'], + ['code' => 'OperationFailed.OpenCdtServiceFirst', 'message' => 'The operation is failed because of %s.', 'http_code' => 400, 'description' => 'The billing method requires CDT billing enabled. Enable CDT billing and try again.'], + ['code' => 'OperationFailed.OperateShareResource', 'message' => 'This is not allowed to operate shared prefixList.', 'http_code' => 400, 'description' => 'You cannot operate on a shared prefix list.'], + ['code' => 'OperationFailed.OperationLocked', 'message' => 'The operation failed because the nextHop instance is in the O&M lock state.', 'http_code' => 400, 'description' => 'The operation failed because the next hop instance is locked for O&M.'], + ['code' => 'OperationFailed.OperationLocked', 'message' => 'Operation failed because OperationLocked.', 'http_code' => 400, 'description' => 'The operation failed because the instance is locked due to O&M.'], + ['code' => 'OperationFailed.PconnAllocateVlan0', 'message' => 'Vlan 0 Vbr cannot share the physical connection with another Vbr.', 'http_code' => 400, 'description' => 'The operation failed because VLAN 0 is set to a VBR associated with the Express Connect circuit and you cannot set VLAN 0 to other VBRs.'], + ['code' => 'OperationFailed.PconnExistVlan0Vbr', 'message' => 'The physical connection has VLAN 0 VBR. You cannot create another VBR.', 'http_code' => 400, 'description' => 'You cannot create other VBRs for this Express Connect circuit because a VBR with VLAN 0 is already created for this Express Connect circuit.'], + ['code' => 'OperationFailed.PconnTrafficNotEnable', 'message' => 'The operation is failed because of PconnTrafficNotEnable.', 'http_code' => 400, 'description' => 'Billing for outbound data transfer is disabled.'], + ['code' => 'OperationFailed.PconnTrafficNotEnable', 'message' => 'The operation failed because Outbound Data Transfer service is not activated.', 'http_code' => 400, 'description' => 'The operation is failed because of PconnTrafficNotEnable.'], + ['code' => 'OperationFailed.PeerAsnCannotEqualsLocalAsn', 'message' => 'Peer ASN is illegal, peer ASN cannot equals to local ASN.', 'http_code' => 400, 'description' => 'When adding a BGPGroup, the peer autonomous system number cannot be the same as the local autonomous system number. Please check the parameters and try again.'], + ['code' => 'OperationFailed.PhysicalConnectionFinancialLocked', 'message' => 'Update failed, the physical connection is financial locked.', 'http_code' => 400, 'description' => 'The shared port is locked due to overdue payments and you cannot modify the VLAN.'], + ['code' => 'OperationFailed.PhysicalConnectionTerminated', 'message' => 'Update failed, the physical connection is terminated.', 'http_code' => 400, 'description' => 'The shared port is disabled and you cannot modify the VLAN.'], + ['code' => 'OperationFailed.PrivateIpAddressNotExist', 'message' => 'The operation failed because the PrivateIpAddress is not found.', 'http_code' => 400, 'description' => 'The specified private IP address is invalid.'], + ['code' => 'OperationFailed.PrivateLinkMode', 'message' => 'The NAT gateway is not support to change PrivateLinkMode.', 'http_code' => 400, 'description' => 'The NAT gateway is not support to change PrivateLinkMode.'], + ['code' => 'OperationFailed.QueryAccountInfo', 'message' => 'Query account info failed when create order.', 'http_code' => 500, 'description' => 'Failed to query the account information when the order is placed.'], + ['code' => 'OperationFailed.QueryAttachmentInfo', 'message' => 'Failed to query attachment information.', 'http_code' => 400, 'description' => 'The system fails to query the transit router.'], + ['code' => 'OperationFailed.QueryCenEntry', 'message' => 'Operation is denied because getting CEN route entry has failed.', 'http_code' => 400, 'description' => 'Operation is denied because getting CEN route entry has failed.'], + ['code' => 'OperationFailed.QueryCenIpv6Status', 'message' => 'Failed to query the IPv6 status of the specified VPC in CEN.', 'http_code' => 400, 'description' => 'The operation failed because the system failed to query the IPv6 status of the VPC that is attached to the CEN instance.'], + ['code' => 'OperationFailed.QueryNetworkInterfaceInfo', 'message' => 'Failed to query network interface information.', 'http_code' => 400, 'description' => 'The system failed to query ENI information.'], + ['code' => 'OperationFailed.QueryOrderError', 'message' => 'Failed to query order, error calling trade application.', 'http_code' => 400, 'description' => 'Failed to query order, error calling trade application.'], + ['code' => 'OperationFailed.QueryPrice', 'message' => 'Query price failed when create order.', 'http_code' => 400, 'description' => 'Failed to query the price when creating the order.'], + ['code' => 'OperationFailed.QuerySpInfo', 'message' => 'query resource by sp error', 'http_code' => 500, 'description' => 'Failed to query the instance order.'], + ['code' => 'OperationFailed.QuotaExceedPerTimeWindow', 'message' => 'The maximum number of scheduled migration within the specified time window is exceeded.', 'http_code' => 400, 'description' => 'The maximum number of scheduled migration within the specified time window is exceeded.'], + ['code' => 'OperationFailed.QuotaNotEnough', 'message' => 'Your quota is insufficient. Please contact your channel partner to increase your quota', 'http_code' => 400, 'description' => 'Your current quota is insufficient. Contact your channel partner to increase the quota.'], + ['code' => 'OperationFailed.QuotaNotEnough', 'message' => 'Your current quota is insufficient, please contact your channel partner to increase the quota for you.', 'http_code' => 400, 'description' => 'The quota is insufficient. Contact your channel partner to request a quota increase.'], + ['code' => 'OperationFailed.RegionDissolved', 'message' => 'The operation failed because the region is dissolved.', 'http_code' => 400, 'description' => 'Hello, Alibaba Cloud plans to optimize and adjust the current region. Cloud services in this region will stop operating. In order to ensure your business continuity and smooth transition of data migration, you cannot operate new orders. Thank you for your understanding and support.'], + ['code' => 'OperationFailed.RegionNotSupport', 'message' => 'The specified region does not support the feature.', 'http_code' => 400, 'description' => 'The specified region does not support the feature.'], + ['code' => 'OperationFailed.ReservedCidr', 'message' => 'OperationFailed.ReservedCidr', 'http_code' => 400, 'description' => 'The error message returned because the specified CIDR block does not meet the reservation requirements.'], + ['code' => 'OperationFailed.ResourceInBinding', 'message' => 'The operation is failed because of the resource is in binding.', 'http_code' => 400, 'description' => 'The operation failed because the resource is in binding.'], + ['code' => 'OperationFailed.ResourceIsShared', 'message' => 'The operation is failed because of PublicIpAddressPool is shared with other users.', 'http_code' => 400, 'description' => 'The public IP address pool is shared with another user and cannot be deleted.'], + ['code' => 'OperationFailed.ResourceNotEnough', 'message' => 'Insufficient resources.', 'http_code' => 500, 'description' => 'The resources that you request are insufficient. If you still want to request the resources, submit a ticket.'], + ['code' => 'OperationFailed.ResourceNotEnough', 'message' => 'The resources you have applied for are insufficient.', 'http_code' => 400, 'description' => 'The resources you have applied for are insufficient. If you still need to apply, please submit a work order for processing.'], + ['code' => 'OperationFailed.ResourceUidNotExist', 'message' => 'The operation is failed because of the resource uid does not exist.', 'http_code' => 400, 'description' => 'The operation is failed because of the resource uid does not exist.'], + ['code' => 'OperationFailed.RiskControl', 'message' => 'Risk control check failed.', 'http_code' => 400, 'description' => 'The error message returned because your payment method has security risks. Click the link for verification in your email or console message and submit your order after verification.'], + ['code' => 'OperationFailed.RouteConflict', 'message' => 'Operation failed because there is already a route in VPC route table to another VPN on the same network block.', 'http_code' => 400, 'description' => 'Operation failed because there is already a route in VPC route table to another VPN on the same network block.'], + ['code' => 'OperationFailed.RouteConflict', 'message' => 'Operation failed because there is already a route in VPC route table to a non-RI and non-VPN next hop on the same network block.', 'http_code' => 400, 'description' => 'Routes that point to resources other than the router interface or VPN gateway already exists on the same CIDR block in the route table of the VPC.'], + ['code' => 'OperationFailed.RouteConflict', 'message' => 'Operation failed because a specified route entry is already exist.', 'http_code' => 404, 'description' => 'The operation conflicts with an existing route.'], + ['code' => 'OperationFailed.RouteConflictWithIPsecServer', 'message' => 'Operation failed because the route to create conflicts with the client IP pool of the IPsec server.', 'http_code' => 400, 'description' => 'Operation failed because the route to create conflicts with the client IP pool of the IPsec server.'], + ['code' => 'OperationFailed.RouteConflictWithIPsecServer', 'message' => 'Operation failed because the specified route conflicts with IPsec server.', 'http_code' => 500, 'description' => 'The route conflicts with the IPsec server.'], + ['code' => 'OperationFailed.RouteEntryUnstable', 'message' => 'The operation is failed because of route entry related to it is unstable, please try later.', 'http_code' => 400, 'description' => 'Because the routing entry associated with the instance is unstable, please try again later'], + ['code' => 'OperationFailed.SaleValidate', 'message' => 'Validate sale condition with subArticle failed.', 'http_code' => 400, 'description' => 'Failed to validate the sales condition with a subproject.'], + ['code' => 'OperationFailed.ScopeActiveRouteEntryQuota', 'message' => 'Operation failed because the quota for active route entries in the scope has been exceeded.', 'http_code' => 400, 'description' => 'The operation failed because the quota for active route entries has been exceeded.'], + ['code' => 'OperationFailed.ScopeActiveRouteEntryType', 'message' => 'Operation failed because the type of the active route entry is not supported.', 'http_code' => 400, 'description' => 'The operation failed because this type of active route is not supported.'], + ['code' => 'OperationFailed.ScopeStandbyRouteEntryQuota', 'message' => 'Operation failed because the quota for standby route entries in the scope has been exceeded.', 'http_code' => 400, 'description' => 'The operation failed because the quota for standby route entries has been exceeded.'], + ['code' => 'OperationFailed.ServiceManaged', 'message' => 'Operation is forbidden because this instance belongs to Service manager.', 'http_code' => 404, 'description' => 'A managed instance does not support this operation.'], + ['code' => 'OperationFailed.SnatInMiddleStatus', 'message' => 'Operation failed because the status of the SNAT entry of the specified NAT gateway is abnormal.', 'http_code' => 400, 'description' => 'Operation failed because the status of the SNAT entry of the specified NAT gateway is abnormal.'], + ['code' => 'OperationFailed.SnatIpsTooMany', 'message' => 'The maximum number of IP addresses is exceeded in the SNAT pool.', 'http_code' => 400, 'description' => 'The maximum number of IP addresses is exceeded in the SNAT pool.'], + ['code' => 'OperationFailed.SnatQuotaExceed', 'message' => 'Operation failed because the maximum number of SNAT entry is exceeded.', 'http_code' => 400, 'description' => 'Operation failed because the maximum number of SNAT entry is exceeded.'], + ['code' => 'OperationFailed.SslNotSupport', 'message' => 'Enable ssl vpn with private networkType is unsupported.', 'http_code' => 400, 'description' => 'You cannot enable the SSL feature for a private VPN gateway.'], + ['code' => 'OperationFailed.StaleBGPRoutes', 'message' => 'BGP routes are still there and automatic route propagation cannot be disabled.', 'http_code' => 400, 'description' => 'Automatic route propagation cannot be disabled because a BGP route is left.'], + ['code' => 'OperationFailed.SyncOrderToSub', 'message' => 'SyncOrderToSub error.', 'http_code' => 400, 'description' => 'The operation failed.'], + ['code' => 'OperationFailed.SyncTradeResource', 'message' => 'Resource transaction information synchronization failed', 'http_code' => 500, 'description' => 'Failed to synchronize the resource transaction information.'], + ['code' => 'OperationFailed.SystemBusy', 'message' => 'Operation failed because system is busy.', 'http_code' => 400, 'description' => 'The error message returned because the system is busy. Try again later.'], + ['code' => 'OperationFailed.SystemReservedIpContained', 'message' => 'The specified VSwitchCidrReservationCidr cannot contain system reserved IP addresses.', 'http_code' => 400, 'description' => 'VSwitchCidrReservationCidr cannot contain a reserved IP address.'], + ['code' => 'OperationFailed.TargetUserPconnTrafficNotEnable', 'message' => 'The operation failed because of TargetUserPconnTrafficNotEnable.', 'http_code' => 400, 'description' => 'The operation failed because the user does not have outbound traffic enabled.'], + ['code' => 'OperationFailed.TokenInvalid', 'message' => 'Create order failed, because the token is invalid', 'http_code' => 400, 'description' => 'The system failed to generate the order because the token is invalid.'], + ['code' => 'OperationFailed.UnpaidBillsExist', 'message' => 'The account has unpaid bills. Please pay your overdue bill first.', 'http_code' => 400, 'description' => 'This account has unpaid orders.'], + ['code' => 'OperationFailed.UpgradeCdtServiceFirst', 'message' => 'The operation is failed because of cdt is not upgraded.', 'http_code' => 400, 'description' => 'The instance type you specified to purchase needs to be upgraded to CDT billing. Upgrade CDT and try again'], + ['code' => 'OperationFailed.UsedInRouteEntryNextHop', 'message' => 'The VPC also has a static route pointing to the ECR, and it is not allowed to disassociate the ECR.', 'http_code' => 400, 'description' => 'The VPC also has a static route pointing to the ECR, and it is not allowed to disassociate the ECR.'], + ['code' => 'OperationFailed.VbrBandWidthMust0InVlan0Vbr', 'message' => 'The operation is failed because of VbrBandWidthMust0InVlan0Vbr.', 'http_code' => 400, 'description' => 'Operation failed, speed limit configuration is not allowed.'], + ['code' => 'OperationFailed.VbrBindedPconn', 'message' => 'The operation failed because of VbrBindedPconn.', 'http_code' => 400, 'description' => 'The operation failed because a VBR is associated with the Express Connect circuit.'], + ['code' => 'OperationFailed.VbrBindedPconn', 'message' => 'The operation is failed because of VbrBindedPconn.', 'http_code' => 400, 'description' => 'A hosted connection is created for the VBR.'], + ['code' => 'OperationFailed.VbrLocked', 'message' => 'The VBR is locked.', 'http_code' => 400, 'description' => 'The border router is locked, please try again later.'], + ['code' => 'OperationFailed.VirtualPhysicalConnectionExistVBR', 'message' => 'The operation failed because of VirtualPhysicalConnectionExistVBR.', 'http_code' => 400, 'description' => 'The operation failed because a VBR is already associated with the hosted connection.'], + ['code' => 'OperationFailed.VirtualPhysicalConnectionExistVBR', 'message' => 'The virtual physical connect has already created another VBR.', 'http_code' => 400, 'description' => 'You cannot create another VBR for the hosted connection because a VBR is already created.'], + ['code' => 'OperationFailed.Vlan0VbrUnSharePconn', 'message' => 'VLAN 0 VBR cannot share the physical connection with another VBR.', 'http_code' => 400, 'description' => 'You cannot create a VBR with VLAN 0 for this Express Connect circuit because another VBR with VLAN 0 is already created for this Express Connect circuit.'], + ['code' => 'OperationFailed.VlanIdAlreadyInUse', 'message' => 'The specifed vlanId has been used.', 'http_code' => null, 'description' => 'The VLAN ID is in use.'], + ['code' => 'OperationFailed.VlanIdInUse', 'message' => 'Operation failed because vlanId is in use.', 'http_code' => 400, 'description' => 'The VLAN ID is already used.'], + ['code' => 'OperationFailed.VpcIpv6Disabled', 'message' => 'Operation failed because the VPC has not enabled IPv6.', 'http_code' => 400, 'description' => 'The operation is not supported because IPv6 is not enabled for the VPC.'], + ['code' => 'OperationFailed.VpcNotExist', 'message' => 'The specified VPC does not exist.', 'http_code' => 400, 'description' => 'The specified VPC does not exist.'], + ['code' => 'OperationFailed.VpcNotExist', 'message' => 'The operation is failed because of vpc is not found.', 'http_code' => 400, 'description' => 'The operation failed because the VPC is not found.'], + ['code' => 'OperationFailed.Vpconn', 'message' => 'The operation is failed because of Vpconn.', 'http_code' => 400, 'description' => 'You cannot set the Vpconn parameter.'], + ['code' => 'OperationFailed.VpconnAttached', 'message' => 'Cannot terminate physical connection when vpconn are still attached.', 'http_code' => 400, 'description' => 'The shared port still exists and the physical port cannot be disabled.'], + ['code' => 'OperationFailed.VPconnCreated', 'message' => 'The operation failed because VPconn is already created.', 'http_code' => 400, 'description' => 'The operation failed because the hosted connection is already created. Do not create again.'], + ['code' => 'OperationFailed.VPconnCreated', 'message' => 'The operation is failed because of VPconnCreated.', 'http_code' => 400, 'description' => 'You cannot create an Express Connect circuit.'], + ['code' => 'OperationFailed.VpcRoutePropagationDisable', 'message' => 'The VPC system routing table does not enable the acceptance of propagated routes.', 'http_code' => 400, 'description' => 'The VPC system route table is not enabled to accept the propagation route.'], + ['code' => 'OperationFailed.VpcRoutePublishEnabledInECR', 'message' => 'VPC supports only one dynamic route learning source at most. Please remove the VPC from ECR.', 'http_code' => 400, 'description' => 'A VPC supports at most one dynamic route learning source. Remove the VPC from ECR'], + ['code' => 'OperationFailed.VpcRoutePublishEnabledInTR', 'message' => 'A VPC supports at most one dynamic route learning source. In the forwarding router, disable route synchronization for the VPC.', 'http_code' => 400, 'description' => 'A VPC supports at most one dynamic route learning source. In the forwarding router, disable route synchronization for the VPC.'], + ['code' => 'OperationFailed.VpnConnectionExist', 'message' => 'Auto propagate cannot be closed when VPN connections with BGP enabled exist.', 'http_code' => 400, 'description' => 'Auto propagation cannot be closed when VPN connections with BGP enabled exist.'], + ['code' => 'OperationFailed.VRouterNotExist', 'message' => 'Operation failed because the VRouter does not exist.', 'http_code' => 400, 'description' => 'Operation failed because the VRouter does not exist.'], + ['code' => 'OperationFailed.VswBindedAcl', 'message' => 'The operation failed because a network ACL is associated with the specified VSwitch.', 'http_code' => 400, 'description' => 'The specified vSwitch is associated with a network ACL.'], + ['code' => 'OperationFailed.VswBindedRouteTable', 'message' => 'The operation failed because a custom route table that contains subnet routes is associated with the specified VSwitch.', 'http_code' => 400, 'description' => 'The specified vSwitch is associated with a subnet route table.'], + ['code' => 'OperationFailed.VswHasAcl', 'message' => 'Operation failed because the specified VSwitch is associated with a network ACL.', 'http_code' => 400, 'description' => 'Operation failed because the specified VSwitch is associated with a network ACL.'], + ['code' => 'OperationFailed.VswHasRouteTable', 'message' => 'Operation failed because the specified VSwitch is associated with a route table.', 'http_code' => 400, 'description' => 'Operation failed because the specified VSwitch is associated with a route table.'], + ['code' => 'OperationFailed.VSwitchCidrReservationCidr', 'message' => 'The specified VSwitchCidrReservationCidr conflicts with existed cidr reservation or vswitch cidr.', 'http_code' => 400, 'description' => 'The VSwitchCidrReservationCidr value conflicts with an existing VSwitchCidrReservation value.'], + ['code' => 'OperationFailed.VSwitchIpv6Disabled', 'message' => 'The operation is failed because of %s.', 'http_code' => 400, 'description' => 'IPv6 is not enabled for the vSwitch. Enable IPv6 and try again.'], + ['code' => 'OperationFailed.VSwitchNoAvailableIp', 'message' => 'Operation failed because the number of available IP addresses of the specified VSwitch is insufficient.', 'http_code' => 400, 'description' => 'Operation failed because the number of available IP addresses of the specified VSwitch is insufficient.'], + ['code' => 'OperationFailed.VSwitchNotFound', 'message' => 'The specified vSwitch does not exist.', 'http_code' => 400, 'description' => 'vSwitch is not found.'], + ['code' => 'OperationFailed.VSwitchNotInVpc', 'message' => 'The specified VSwitch and NAT gateway must be in the same VPC.', 'http_code' => 400, 'description' => 'The specified VSwitch and NAT gateway must be in the same VPC.'], + ['code' => 'OperationFailed.VSwitchStatusError', 'message' => 'The vSwitch is creating .', 'http_code' => 400, 'description' => 'The vSwitch is being created.'], + ['code' => 'OperationFailed.VswNotBelongToVpc', 'message' => 'Operation failed because the specified VSwitch is not bound to the same VPC with NAT gateway.', 'http_code' => 400, 'description' => 'The vSwitch and NAT gateway do not belong to the same VPC.'], + ['code' => 'OperationFailed.VswNotExist', 'message' => 'The specified VSwitch does not exist.', 'http_code' => 400, 'description' => 'The specified VSwitch does not exist.'], + ['code' => 'OperationFailed.ZoneIdInconsistent', 'message' => 'Operation failed because the ZoneId is inconsistent.', 'http_code' => 400, 'description' => 'The operation is not supported because the zone ID does not match.'], + ['code' => 'OperationUnsupport', 'message' => 'Operation is unsupport, not in vbr support custom local asn white list.', 'http_code' => 400, 'description' => 'The operation is not supported.'], + ['code' => 'OperationUnsupported.AccessDevice', 'message' => 'The AccessDevice is not supported.', 'http_code' => 400, 'description' => 'The operation does not support access to the device.'], + ['code' => 'OperationUnsupported.action', 'message' => 'This action is not support.', 'http_code' => 400, 'description' => 'The error message returned because the operation is not supported.'], + ['code' => 'OperationUnsupported.AdvancedFeature', 'message' => 'Advanced features of the vpc is unsupported.', 'http_code' => 400, 'description' => 'This advanced feature is not supported.'], + ['code' => 'OperationUnsupported.AllocateCountTooMuch', 'message' => '%s is unsupported.', 'http_code' => 400, 'description' => 'The number of IP addresses exceeds the upper limit. See the API reference and specify a valid value.'], + ['code' => 'OperationUnsupported.BindMultipleType', 'message' => 'You cannot bind HaVip to multiple instance types.', 'http_code' => 400, 'description' => 'You cannot associate the ECS instance and the ENI at the same time.'], + ['code' => 'OperationUnsupported.BindOnFreeNetworkInterface', 'message' => 'The network interface must be attached to an ECS instance.', 'http_code' => 400, 'description' => 'The ENI must be associated with an ECS instance.'], + ['code' => 'OperationUnsupported.BindOnMultipleVswitch', 'message' => 'The bound instance and HaVip must be on the same vSwitch.', 'http_code' => 400, 'description' => 'The instance to be associated and the HAVIP must belong to the same vSwitch.'], + ['code' => 'OperationUnsupported.BindOnSameEcs', 'message' => 'You cannot bind two network interfaces on the same ECS instance.', 'http_code' => 400, 'description' => 'You are not allowed to associate two ENIs of the same ECS instance.'], + ['code' => 'OperationUnsupported.BondingNetworkInterface', 'message' => 'The specified traffic mirror source is bonding eni without slave.', 'http_code' => 400, 'description' => 'The operation does not support a bond ENI without a slave ENI.'], + ['code' => 'OperationUnsupported.CenIpv6Enabled', 'message' => 'The IPv6 feature is enabled in CEN.', 'http_code' => 400, 'description' => 'The IPv6 feature is already enabled for CEN.'], + ['code' => 'OperationUnsupported.CidrConflict', 'message' => 'The specified CIDR block conflicts with an existing SNAT entry.', 'http_code' => 400, 'description' => 'The specified CIDR block conflicts with those in existing SNAT entries.'], + ['code' => 'OperationUnsupported.DestinationCidrBlockOverlapWithVSwitch', 'message' => 'The destination IPv6 network segment specified in the route entry overlaps with the vSwitch network segment.', 'http_code' => 400, 'description' => 'The error message returned because the destination IPv6 CIDR block of the route overlaps with the vSwitch CIDR block.'], + ['code' => 'OperationUnsupported.DestinationCidrBlockOverlapWithVSwitch', 'message' => 'The destination IPv6 network segment specified in the route entry overlaps with the vSwitch network segment。', 'http_code' => 400, 'description' => 'The error message returned because the destination IPv6 CIDR block of the route includes the vSwitch CIDR block.'], + ['code' => 'OperationUnsupported.DhcpLeaseTime', 'message' => 'The DhcpOptionsSet of this region does not support custom LeaseTime.', 'http_code' => 400, 'description' => 'DHCP options sets in the region do not support a custom lease time.'], + ['code' => 'OperationUnsupported.DhcpOptionsSet', 'message' => 'The DHCP options set feature in this region is not supported.', 'http_code' => 400, 'description' => 'The current region does not support the DHCP options sets feature.'], + ['code' => 'OperationUnsupported.DisableIpv6', 'message' => 'The operation is unsupported because IPv6 is not enabled.', 'http_code' => 400, 'description' => 'The current operation is not supported because the IPv6 feature is not enabled.'], + ['code' => 'OperationUnsupported.EgressOnlyRuleOnFreeIpv6Instance', 'message' => 'Creating ipv6 egress only rule on ipv6 instance that not associated with any resource is unsupported.', 'http_code' => 400, 'description' => 'Creating egress-only rules on unbound IPv6 instances is not supported'], + ['code' => 'OperationUnsupported.EgressRuleInDefaultSpec', 'message' => 'Egress-only rule is not supported. Please update the spec of IPv6 Gateway to Medium or Large.', 'http_code' => 400, 'description' => 'The free edition IPv6 gateway does not support creating egress-only rules. Upgrade the IPv6 gateway to Enterprise Edition or Enhanced Enterprise Edition.'], + ['code' => 'OperationUnsupported.EgressRuleVSwitch', 'message' => 'The specified VSwitch is not supported to create egress-only rule.', 'http_code' => 400, 'description' => 'The specified region does not support vSwitch-level egress-only rules.'], + ['code' => 'OperationUnsupported.EipInBinding', 'message' => 'Create snat entry with eip in associating status is unsupported.', 'http_code' => 400, 'description' => 'You cannot use an associated EIP when you create an SNAT entry.'], + ['code' => 'OperationUnsupported.EipNatBWPCheck', 'message' => 'The EIP is not associated with a NAT service plan.', 'http_code' => 400, 'description' => 'The EIP is not associated with a NAT service plan.'], + ['code' => 'OperationUnsupported.EipNatGWCheck', 'message' => 'Operation is not supported because the relation check of EIP and NAT gateway has failed.', 'http_code' => 400, 'description' => 'Operation is not supported because the relation check of EIP and NAT gateway has failed.'], + ['code' => 'OperationUnsupported.EnableBgp', 'message' => 'Current version of the VPN does not support enable BGP.', 'http_code' => 400, 'description' => 'The current version of the VPN gateway does not support BGP.'], + ['code' => 'OperationUnsupported.EnableBgp', 'message' => 'Current region does not support enable BGP.', 'http_code' => 400, 'description' => 'The error message returned because the current region does not support BGP.'], + ['code' => 'OperationUnsupported.EnhancedCURegion', 'message' => 'Pay-by-CU Enhanced NAT Gateway is not supported in this region.', 'http_code' => 400, 'description' => 'Pay-by-CU Enhanced NAT Gateway is not supported in this region.'], + ['code' => 'OperationUnsupported.EnhancedRegion', 'message' => 'Enhanced NAT Gateway is not supported in this region.', 'http_code' => 400, 'description' => 'Enhanced NAT Gateway is not supported in this region.'], + ['code' => 'OperationUnsupported.FinancialLocked', 'message' => 'The operation is forbidden because of financialLocked.', 'http_code' => 400, 'description' => 'The error message returned because the resource is locked due to overdue payments and the operation is denied.'], + ['code' => 'OperationUnsupported.ForwardEntry', 'message' => 'Duplicated destination ip port is unsupported.', 'http_code' => 400, 'description' => 'You cannot specify duplicate destination IP addresses or destination ports.'], + ['code' => 'OperationUnsupported.FreeIpv6Feature', 'message' => 'Free IPv6 feature in this region is unsupported.', 'http_code' => 400, 'description' => 'The current region does not support allocating free IPv6 address instances.'], + ['code' => 'OperationUnsupported.FreeIpv6PrefixFeature', 'message' => 'Free IPv6 prefix feature in this region is unsupported.', 'http_code' => 400, 'description' => 'Ipv6Prefix feature is not supported in this region'], + ['code' => 'OperationUnsupported.FreePrivateIpv6', 'message' => 'This operation does not support free private IPv6 addresses.', 'http_code' => 400, 'description' => 'This operation does not support free private IPv6 addresses.'], + ['code' => 'OperationUnsupported.HavipBindType', 'message' => 'You cannot bind HAVIP to network interface in the specified region.', 'http_code' => 400, 'description' => 'You are not allowed to associate ENIs in the specified region.'], + ['code' => 'OperationUnsupported.IpNotInCbwp', 'message' => 'The specified eip not exist in the commonBandwidthPackage.', 'http_code' => 400, 'description' => 'The EIP is not associated with the EIP bandwidth plan.'], + ['code' => 'OperationUnsupported.IpsecPfs', 'message' => 'The specified IPsec Pfs is unsupported.', 'http_code' => 400, 'description' => 'The specified IPsec PFS property is not supported.'], + ['code' => 'OperationUnsupported.IPsecServer', 'message' => 'The current version of the VPN gateway does not support IPsec server.', 'http_code' => 400, 'description' => 'The current version of the VPN gateway does not support IPsec server.'], + ['code' => 'OperationUnsupported.IpType', 'message' => 'The EIP type does not support the operation.', 'http_code' => 400, 'description' => 'You cannot add an EIP of this type.'], + ['code' => 'OperationUnsupported.Ipv6CidrBlock', 'message' => 'The specified IPv6 CIDR block is unsupported.', 'http_code' => 400, 'description' => 'The specified IPv6CidrBlock is not supported.'], + ['code' => 'OperationUnsupported.Ipv6EcmpRouteEntry', 'message' => 'The EcmpRouteEntry is not supported for IPv6.', 'http_code' => 400, 'description' => 'IPv6 does not support ECMP routing.'], + ['code' => 'OperationUnsupported.Ipv6EntryOnPrimaryNetworkInterface', 'message' => 'You cannot create IPv6 route entries on a primary network interface.', 'http_code' => 400, 'description' => 'You cannot create an IPv6 route whose next hop is a primary ENI.'], + ['code' => 'OperationUnsupported.Ipv6Feature', 'message' => 'The IPv6 feature is not supported in the region.', 'http_code' => 400, 'description' => 'This region does not support IPv6.'], + ['code' => 'OperationUnsupported.Ipv6Feature', 'message' => 'The IPv6 feature is not supported.', 'http_code' => 400, 'description' => 'The current operation does not support the IPv6 feature.'], + ['code' => 'OperationUnsupported.IPV6ForThisRegion', 'message' => 'This Region do not support IPV6.', 'http_code' => 400, 'description' => 'The region does not support IPv6.'], + ['code' => 'OperationUnsupported.Ipv6ForVBR', 'message' => 'IPv6 route entry is not supported for VirtualBorderRouter.', 'http_code' => 400, 'description' => 'The Virtual Border Router does not support IPv6 routes.'], + ['code' => 'OperationUnsupported.IPv6ULA', 'message' => 'The ULA IPv6 CIDR type is unsupported.', 'http_code' => 400, 'description' => 'The current operation does not support ULA addresses.'], + ['code' => 'OperationUnsupported.ModifyBandwidth', 'message' => 'You cannot modify the bandwidth of the VBR in sale.', 'http_code' => 400, 'description' => 'You cannot modify the bandwidth of a VBR in sale.'], + ['code' => 'OperationUnsupported.ModifyBandwidth', 'message' => 'Modify Sale VirtualBorderRouter Bandwidth Unsupported.', 'http_code' => 400, 'description' => 'You cannot save the modified bandwidth parameter.'], + ['code' => 'OperationUnsupported.MultipleIpv6Address', 'message' => 'Operation unsupported because specific route next hop instance has multiple IPv6 address.', 'http_code' => 400, 'description' => 'The operation is not supported because the specified route next hop instance is bound to multiple IPv6 addresses'], + ['code' => 'OperationUnsupported.MutipleIpv6Address', 'message' => 'You cannot specify a next hop that has bound multiple IPv6 addresses.', 'http_code' => 400, 'description' => 'You cannot specify a next hop that is assigned multiple IPv6 addresses.'], + ['code' => 'OperationUnsupported.NatConvert', 'message' => 'The NAT gateway conversion function is not supported.', 'http_code' => 400, 'description' => 'The NAT gateway conversion function is not supported.'], + ['code' => 'OperationUnsupported.NATGWBONDINGENI', 'message' => 'Operation is unsupported because the specified network interface is created with enhanced NAT gateway.', 'http_code' => 400, 'description' => 'Operation is unsupported because the specified network interface is created with enhanced NAT gateway.'], + ['code' => 'OperationUnsupported.NormalInventoryNotEnough', 'message' => 'Operation is unsupported because the inventory of standard NAT gateway is insufficient.', 'http_code' => 400, 'description' => 'Operation is unsupported because the inventory of standard NAT gateway is insufficient.'], + ['code' => 'OperationUnsupported.NotPConnOwner', 'message' => 'Only the owner of the leased line can update the bandwidth.', 'http_code' => 400, 'description' => 'Only the owner of the leased line can update the bandwidth.'], + ['code' => 'OperationUnsupported.OnlyOneIpv6GatewayInVpc', 'message' => 'Operation is not supported because a VPC is only allowed to have one IPv6 gateway.', 'http_code' => 400, 'description' => 'The operation is not supported because a VPC can have only one IPv6 gateway.'], + ['code' => 'OperationUnsupported.OnlySupportNormalNetworkInterface', 'message' => 'Next hop only supports binding normal network Interface.', 'http_code' => 400, 'description' => 'Next hop only supports binding to common ENIs'], + ['code' => 'OperationUnsupported.OnlyULA', 'message' => 'The IPv6 CIDR type can only be ULA.', 'http_code' => 400, 'description' => 'Only ULA-type IPv6 addresses are supported.'], + ['code' => 'OperationUnsupported.PayByLcuNatModifySpec', 'message' => 'The spec of payByLcu nat is unsupported to modify.', 'http_code' => 404, 'description' => 'Pay-as-you-go NAT gateways cannot be resized.'], + ['code' => 'OperationUnsupported.PrePaid', 'message' => '%s is unsupported.', 'http_code' => 400, 'description' => 'IPv6 Internet bandwidth does not support the subscription billing method. Change the billing method.'], + ['code' => 'OperationUnsupported.PrePaidPyByLcu', 'message' => 'The operation failed because the subscription NAT gateway does not support the pay-by-LCU billing method.', 'http_code' => 400, 'description' => 'The operation failed because the subscription NAT gateway does not support the pay-by-LCU billing method.'], + ['code' => 'OperationUnsupported.PrivateGUA', 'message' => 'This operation does not support private GUA addresses.', 'http_code' => 400, 'description' => 'This operation does not support private GUA addresses.'], + ['code' => 'OperationUnsupported.PublishPrefixListRouteEntry', 'message' => 'Publishing prefix list route entry is unsupported.', 'http_code' => 400, 'description' => 'Publishing route prefix list routes is not supported.'], + ['code' => 'OperationUnsupported.PublishSystemRouteEntry', 'message' => 'Publishing system route entry is unsupported.', 'http_code' => 400, 'description' => 'Publishing system routes is not supported.'], + ['code' => 'OperationUnsupported.Qos', 'message' => 'QoS is unsupported.', 'http_code' => 400, 'description' => 'Current user does not support creating QoS, please contact Business Manager'], + ['code' => 'OperationUnsupported.RegionAndServiceLocationNotMatch', 'message' => 'Operation is not supported because the region and service location do not match.', 'http_code' => 400, 'description' => 'Operation is not supported because the region and service location do not match.'], + ['code' => 'OperationUnsupported.ResourceGroupId', 'message' => 'ResourceGroup is not supported in this region.', 'http_code' => 400, 'description' => 'The operation is not supported. Resource group IDs are not supported in Alibaba Finance Cloud.'], + ['code' => 'OperationUnsupported.ResourceGroupId', 'message' => 'ResourceGroupId in financial region is unsupported.', 'http_code' => 400, 'description' => 'The operation is not supported because Alibaba Finance Cloud does not support resource group IDs.'], + ['code' => 'OperationUnsupported.RouterInterfaceExist', 'message' => 'Operation failed because the VPC has a router interface.', 'http_code' => 400, 'description' => 'The VPC has a router interface.'], + ['code' => 'OperationUnsupported.ScopeInvalidRouteType', 'message' => 'The specified route type is unsupported.', 'http_code' => 400, 'description' => 'This route type is not supported.'], + ['code' => 'OperationUnsupported.ServiceManaged', 'message' => 'Operation of %s is forbidden because this instance belongs to Service manager.', 'http_code' => 400, 'description' => 'The operation is not allowed. The instance belongs to a managed resource.'], + ['code' => 'OperationUnsupported.SetDPD', 'message' => 'Current version of the VPN does not support setting DPD.', 'http_code' => 400, 'description' => 'The VPN gateway version does not support DPD.'], + ['code' => 'OperationUnsupported.SetMultiPconnBandwidth', 'message' => 'You cannot set the bandwidth of VBR with multiple physical connections.', 'http_code' => 400, 'description' => 'You cannot specify bandwidth for a VBR associated with multiple Express Connect circuits.'], + ['code' => 'OperationUnsupported.SetMultiPconnBandwidth', 'message' => 'Set Multi PhysicalConnection Bandwidth Unsupported.', 'http_code' => 400, 'description' => 'Bandwidth for multiple Express Connect circuits is not supported.'], + ['code' => 'OperationUnsupported.SetNatTraversal', 'message' => 'Current version of the VPN does not support setting NAT traversal.', 'http_code' => 400, 'description' => 'The VPN gateway version does not support NAT traversal.'], + ['code' => 'OperationUnsupported.SkipConstruction', 'message' => 'You are not authorized to skip the construction.', 'http_code' => 400, 'description' => 'You are not authorized to skip the construction.'], + ['code' => 'OperationUnsupported.SkipConstruction', 'message' => 'You can not skip construction.', 'http_code' => 400, 'description' => 'You cannot skip the construction step.'], + ['code' => 'OperationUnsupported.SpecifyIpOnIpv6Entry', 'message' => 'You cannot specify the private IP address when you create IPv6 route entries.', 'http_code' => 400, 'description' => 'You cannot specify a private IPv6 address as the destination CIDR block.'], + ['code' => 'OperationUnsupported.SystemRouteTable', 'message' => 'System route table can not be unassociated.', 'http_code' => 404, 'description' => 'You cannot disassociate the system route table.'], + ['code' => 'OperationUnsupported.ULA', 'message' => '%s is unsupported.', 'http_code' => 400, 'description' => 'This operation does not support ULA addresses.'], + ['code' => 'OperationUnsupported.UnboundIpv6Feature', 'message' => 'The region does not support creating IPv6 addresses that are not bound to any resources.', 'http_code' => 400, 'description' => 'The region does not support creating IPv6 address instances that are not bound to resources.'], + ['code' => 'OperationUnsupported.UnboundIpv6PrefixFeature', 'message' => 'The region does not support creating IPv6 prefix that are not bound to any resources.', 'http_code' => 400, 'description' => 'This region does not support creating IPv6 prefix CIDR blocks that are not bound to resources.'], + ['code' => 'OperationUnsupported.UnsupportedNextHop', 'message' => 'Unsupported nexthop type for route entry publish operation.', 'http_code' => 400, 'description' => 'The next hop type of the route entry does not support publishing.'], + ['code' => 'OperationUnsupported.VBRAttachedCen', 'message' => 'Operation failed because the VBR is attached to CEN.', 'http_code' => 400, 'description' => 'The operation failed because the VBR is already associated with a Cloud Enterprise Network (CEN) instance.'], + ['code' => 'OperationUnsupported.VBRAttachedECR', 'message' => 'VBR already attached to ECR, please delete it from ECR.', 'http_code' => 400, 'description' => 'The VBR has been bound to ECR. Delete the VBR from ECR and try again.'], + ['code' => 'OperationUnsupported.VbrWithMultiPconn', 'message' => 'The vbr %s has multiple pconn.', 'http_code' => 400, 'description' => 'vbr is bound to multiple pconn'], + ['code' => 'OperationUnsupported.VirtualBorderRouterEnableIPv6', 'message' => 'The operation failed. The device or region does not support IPv6 functions.', 'http_code' => 400, 'description' => 'The operation failed because the device or region does not support IPv6.'], + ['code' => 'OperationUnsupported.VpcAttachedCen', 'message' => 'Operation failed because the VPC is attached to CEN.', 'http_code' => 400, 'description' => 'Operation failed because the VPC is attached to CEN.'], + ['code' => 'OppositeRouterInterfaceIsDeleted', 'message' => 'The opposite router interface is already deleted.', 'http_code' => 400, 'description' => 'The opposite router interface has been deleted'], + ['code' => 'OptInRequired.FlowLog', 'message' => 'You are not authorized to use the requested service of flowLog. Ensure that you have subscribed to the service you are trying to use.', 'http_code' => 400, 'description' => 'The error message returned because you do not have the permissions to use the flow log feature. Make sure that the flow log feature is already enabled.'], + ['code' => 'OptInRequired.PublicIpAddressPool', 'message' => 'You are not authorized to use the requested service of publicIpAddressPool. Ensure that you have subscribed to the service you are trying to use.', 'http_code' => 400, 'description' => 'You are not authorized to use the requested IP address pool service. Make sure you have subscribed to the service you are trying to use.'], + ['code' => 'OptInRequired.TrafficMirror', 'message' => 'You need to subscribe to the traffic mirror service first.', 'http_code' => 400, 'description' => 'Traffic mirroring is disabled.'], + ['code' => 'ORDER.ACCOUNT_STATUS_ILLEGAL', 'message' => null, 'http_code' => null, 'description' => 'The account status is invalid.'], + ['code' => 'ORDER.ARREARAGE', 'message' => null, 'http_code' => null, 'description' => 'The account balance is insufficient.'], + ['code' => 'ORDER.BID_USER_ ORDER_FORBIDDEN', 'message' => null, 'http_code' => null, 'description' => 'You cannot purchase preemptible instances with this account.'], + ['code' => 'ORDER.INSTANCE_HAS_INACTIVE_CHANGE', 'message' => null, 'http_code' => null, 'description' => 'Processing changes.'], + ['code' => 'ORDER.INST_HAS_UNPAID_ORDER', 'message' => null, 'http_code' => null, 'description' => 'The account has unpaid orders.'], + ['code' => 'ORDER.INST_HAS_UNSETTLED_BILLS', 'message' => null, 'http_code' => null, 'description' => 'The account has unpaid orders.'], + ['code' => 'Order.NoRealNameAuthentication', 'message' => 'Real-name verification has not been completed for the account.', 'http_code' => 400, 'description' => 'You have not performed real-name authentication. Please go to the account center to complete real-name authentication.'], + ['code' => 'ORDER.NOT_ENOUGH_ACTIVITY_STOCK', 'message' => null, 'http_code' => null, 'description' => 'The activity inventory is insufficient.'], + ['code' => 'ORDER.NO_REAL_NAME_AUTHENTICATION', 'message' => null, 'http_code' => null, 'description' => 'The account has not completed real-name verification.'], + ['code' => 'ORDER.OPEND', 'message' => null, 'http_code' => null, 'description' => 'The instance is enabled.'], + ['code' => 'ORDER.OPENED', 'message' => 'You have already open the service. Go to the console to start using it.', 'http_code' => 400, 'description' => 'The cloud traffic service has been activated. Go to the console to use it.'], + ['code' => 'ORDER.ORDER_AMOUNT_ILLEGAL', 'message' => null, 'http_code' => null, 'description' => 'The order amount is invalid.'], + ['code' => 'ORDER.PERIOD_INVALID', 'message' => null, 'http_code' => null, 'description' => 'The purchase cycle is invalid.'], + ['code' => 'ORDER.QUANTITY_INVALID', 'message' => 'User quota has exceeded the limit.', 'http_code' => 400, 'description' => 'The maximum number of EIPs you maintain is exceeded. You can go to quota management to increase the upper limit of EIPs.'], + ['code' => 'ORDER.QUOTA_EXCEEDED', 'message' => null, 'http_code' => null, 'description' => 'The number of instances that you purchased exceeds the upper limit.'], + ['code' => 'ORDER.SYS_CONSTRAINT_INVALID', 'message' => null, 'http_code' => null, 'description' => 'The order system has not passed constraint validation.'], + ['code' => 'OrderError', 'message' => 'Failed to create the order.', 'http_code' => 400, 'description' => 'The error message returned because the system failed to create the order. Try again later.'], + ['code' => 'OrderError.EIP', 'message' => 'Failed to place an order.', 'http_code' => 400, 'description' => 'Failed to place the order.'], + ['code' => 'OrderError.EIP', 'message' => 'The account failed to create an order.', 'http_code' => 400, 'description' => 'The account failed to create an order.'], + ['code' => 'OrderError.EIP', 'message' => 'The Account failed to create order.', 'http_code' => 400, 'description' => 'Failed to place the order.'], + ['code' => 'OrderFailed', 'message' => null, 'http_code' => null, 'description' => 'The system failed to create the order.'], + ['code' => 'OrderFailed.ConcurrentOperate', 'message' => 'Failed to create the order due to concurrent operations.', 'http_code' => 400, 'description' => 'Failed to create the order because concurrent operations are performed.'], + ['code' => 'PARAMETER.FULLNAT.NATGATEWAYID.ERROR', 'message' => 'natGatewayId is invalid', 'http_code' => 400, 'description' => 'natGatewayId is set to an invalid value.'], + ['code' => 'Parameter.Illegal', 'message' => 'The parameter is illegal.', 'http_code' => 400, 'description' => 'The parameter is invalid.'], + ['code' => 'ParameterIllegal', 'message' => 'ipCount', 'http_code' => null, 'description' => 'IpCount is set to an invalid value.'], + ['code' => 'ParameterIllegal.Name', 'message' => 'ParameterIllegal.Name', 'http_code' => 400, 'description' => 'The name of the entry is invalid.'], + ['code' => 'ParameterInvalid', 'message' => 'Invalid parameter.', 'http_code' => 400, 'description' => 'The error message returned because a parameter is invalid.'], + ['code' => 'ParameterLengthIllegal.Name', 'message' => 'ParameterLengthIllegal.Name', 'http_code' => 400, 'description' => 'The length of the rule name is invalid.'], + ['code' => 'ParameterMismatch.Role-Spec', 'message' => 'The specified Spec and Role mismatch.', 'http_code' => null, 'description' => 'The router interface specification and role do not match.'], + ['code' => 'PARAMETER_MUST_NOT_NULL', 'message' => 'The specified physical connection id or vbrId must not be null.', 'http_code' => null, 'description' => 'VbrId and PhysicalConnectionId are not specified.'], + ['code' => 'ParamExclusive.DisableIpv6AndIpv6CidrBlock', 'message' => 'DisableIpv6 and Ipv6Cidr are mutually exclusive.', 'http_code' => 400, 'description' => 'You cannot modify Ipv6Cidr and DisableIpv6 at the same time.'], + ['code' => 'ParamExclusive.IpInstanceIdAndBandwidthPackageId', 'message' => 'IpInstanceId and BandwidthPackageId is mutually exclusive.', 'http_code' => 400, 'description' => 'IpInstanceId and BandwidthPackageId are mutually exclusive.'], + ['code' => 'ParamExclusive.Ipv6AddressIdAndIpv6InternetBandwidthId', 'message' => 'Ipv6AddressId and Ipv6InternetBandwidthId is mutually exclusive.', 'http_code' => 400, 'description' => 'The error message returned because Ipv6AddressId and Ipv6InternetBandwidthId are not set for the same instance.'], + ['code' => 'ParamExclusive.RouteEntryIdAndRouteTableIdOrDestCidrBlock', 'message' => 'RouteEntryId and RouteTableIdOrDestCidrBlock is mutually exclusive.', 'http_code' => 400, 'description' => 'RouteEntryId and RouteTableIdOrDestCidrBlock are mutually exclusive.'], + ['code' => 'ParamExclusive.SnatIpAndNetworkInterfaceId', 'message' => 'SnatIp and NetworkInterfaceId is mutually exclusive when create a snat entry for nat.', 'http_code' => 400, 'description' => 'When you create an SNAT rule for a NAT Gateway instance, you cannot specify the SnatIp parameter and the NetworkInterfaceId parameter at the same time.'], + ['code' => 'ParamExclusive.VpnGatewayIdAndVpnConnectionId', 'message' => 'VpnGatewayId and VpnConnectionId is mutually exclusive.', 'http_code' => 400, 'description' => 'VpnGatewayId and VpnConnectionId are mutually exclusive.'], + ['code' => 'ParamsInvalid', 'message' => null, 'http_code' => null, 'description' => 'Invalid request parameters.'], + ['code' => 'PAY.ACCOUNT_BOOK_NOT_EXIST', 'message' => null, 'http_code' => null, 'description' => 'The specified account book does not exist.'], + ['code' => 'PAY.AMOUNT_LIMIT_EXCEEDED', 'message' => null, 'http_code' => null, 'description' => 'The amount exceeds the upper limit.'], + ['code' => 'PAY.COUPON_NOT_EXIST', 'message' => null, 'http_code' => null, 'description' => 'The coupon does not exist.'], + ['code' => 'PAY.COUPON_NOT_MEET_CONSUMPTION_RULE', 'message' => null, 'http_code' => null, 'description' => 'The specified coupon is invalid and cannot be used.'], + ['code' => 'PAY.CURRENCY_INCONSISTENCY', 'message' => null, 'http_code' => null, 'description' => 'The currency does not match.'], + ['code' => 'PAY.CURRENCY_NOT_SUPPORTED', 'message' => null, 'http_code' => null, 'description' => 'This account does not support the currency.'], + ['code' => 'PAY.GET_PAY_URL_ERROR', 'message' => null, 'http_code' => null, 'description' => 'An exception occurred while getting the top-up URL.'], + ['code' => 'PAY.INSUFFICIENT_BALANCE', 'message' => null, 'http_code' => null, 'description' => 'The account balance is insufficient.'], + ['code' => 'PAY.INSUFFICIENT_BALANCE', 'message' => 'The Account Balance is insufficient.', 'http_code' => 400, 'description' => 'The Account Balance is insufficient.'], + ['code' => 'PAY.INSUFFICIENT_BALANCE', 'message' => 'Your account does not have enough balance.', 'http_code' => 400, 'description' => 'Your account does not have enough balance.'], + ['code' => 'PAY.INVALID_AMOUNT', 'message' => null, 'http_code' => null, 'description' => 'The payment amount is invalid.'], + ['code' => 'PAY.INVALID_CREDIT_CARD', 'message' => null, 'http_code' => null, 'description' => 'The specified credit card is invalid.'], + ['code' => 'PAY.MAYI.WITHHOLDING.AGREEMENT.ILLEGAL', 'message' => 'User withhoding argeement is illegal.', 'http_code' => 400, 'description' => 'Invalid fees'], + ['code' => 'PAY.NO_CREDIT_CARD', 'message' => null, 'http_code' => null, 'description' => 'This account does not have a credit card added.'], + ['code' => 'PAY.PAYMENT_PARAMETER_INVALID', 'message' => null, 'http_code' => null, 'description' => 'The payment parameters are invalid.'], + ['code' => 'PAY.PAY_ORDER_FAILED', 'message' => null, 'http_code' => null, 'description' => 'The system failed to complete the payment. Try again later.'], + ['code' => 'PAY.QueryParentRelationshipFailed', 'message' => 'Lx failed to query the current user hosting relationship.', 'http_code' => 400, 'description' => 'Failed to query the current user hosting relationship.'], + ['code' => 'PAY.QUERY_QUOTA_BOOK_FAILED', 'message' => null, 'http_code' => null, 'description' => 'The system failed to query the user quota.'], + ['code' => 'PAY.REFUND_FAILED', 'message' => null, 'http_code' => null, 'description' => 'An error occurred while refunding.'], + ['code' => 'PAY.STORED_CARD_NOT_EXIST', 'message' => null, 'http_code' => null, 'description' => 'The specified stored-value card does not exist.'], + ['code' => 'PAY.TAX_CALC_FAILED', 'message' => null, 'http_code' => null, 'description' => 'The system failed to calculate tax.'], + ['code' => 'PAY.USER_DECLINED', 'message' => null, 'http_code' => null, 'description' => 'The user refuses to pay.'], + ['code' => 'PAY.WITHHOLDING_AGREEMENT_ILLEGAL', 'message' => null, 'http_code' => null, 'description' => 'The tax withholding agreement is invalid.'], + ['code' => 'PconnContailsMoreThanOneAcrossCountVbr', 'message' => 'The specified physicalConnection contains more than one virtualBorderRouter which is across count.', 'http_code' => 400, 'description' => 'Physical connections that contain more than one cross-account VBR do not support failover test.'], + ['code' => 'PconnContainsMoreThanOneVpconn', 'message' => 'The specified physicalConnection contains more than one virtualPhysicalConnection.', 'http_code' => 400, 'description' => 'A physical line that contains more than one shared physical line does not support failover test.'], + ['code' => 'PHYSICAL_NOT_ALLOW_ASSOCIATE_VBR', 'message' => 'The specified operation not allow.', 'http_code' => null, 'description' => 'The Express Connect circuit is associated with a VBR and the operation cannot be performed.'], + ['code' => 'PHYSICAL_NOT_ASSOCIATE_TO_VBR', 'message' => 'The specified PhysicalConnection have not associate to the vbr.', 'http_code' => 400, 'description' => 'No VBR is created for the Express Connect circuit.'], + ['code' => 'PRICE.INQUIRY_FAILED', 'message' => null, 'http_code' => null, 'description' => 'Pricing query failed.'], + ['code' => 'PRICE.INVALID_INQUIRY_PARAMETER', 'message' => null, 'http_code' => null, 'description' => 'The specified pricing query parameters are invalid.'], + ['code' => 'PRICE.PRICING_PLAN_NOT_FOUND', 'message' => null, 'http_code' => null, 'description' => 'The specified pricing scheme does not exist.'], + ['code' => 'PRICE.PRICING_PLAN_RESULT_NOT_FOUND', 'message' => null, 'http_code' => null, 'description' => 'The instance pricing plan is not matched. Submit a ticket.'], + ['code' => 'PRICE.PRICING_PLAN_RESULT_NOT_FOUND', 'message' => 'The instance pricing plan result is not found.', 'http_code' => 400, 'description' => 'The instance pricing plan result is not found.'], + ['code' => 'Price.SystemError', 'message' => 'Price inquiry failed.', 'http_code' => 400, 'description' => 'The error message returned because the inquiry failed. Try again later.'], + ['code' => 'PRICE.TAXING_ERROR', 'message' => null, 'http_code' => null, 'description' => 'The system failed to calculate tax.'], + ['code' => 'PRODUCT.INSTANCE_RELEASED', 'message' => null, 'http_code' => null, 'description' => 'The instance is released.'], + ['code' => 'PRODUCT.INSTANCE_TYPE_NOT_EXIST', 'message' => null, 'http_code' => null, 'description' => 'The specified instance type does not exist.'], + ['code' => 'PRODUCT.INSTANCE_TYPE_NOT_SUPPORTED', 'message' => null, 'http_code' => null, 'description' => 'This instance type is unavailable for this account.'], + ['code' => 'PRODUCT.INSUFFICIENT_STOCK', 'message' => null, 'http_code' => null, 'description' => 'The operation failed because resources are insufficient.'], + ['code' => 'PRODUCT.NOT_AVAILABLE_IZ', 'message' => null, 'http_code' => null, 'description' => 'The specified zone is not supported.'], + ['code' => 'ProjectOrLogstoreNotExist', 'message' => 'The specified project or logstore does not exist.', 'http_code' => 400, 'description' => 'The error message returned because the specified project or Logstore does not exist.'], + ['code' => 'PURCHASE.NO_VAILD_PURCHASE', 'message' => null, 'http_code' => null, 'description' => 'The purchase is invalid.'], + ['code' => 'PURCHASE.PURCHASE_QUERY_FAILED', 'message' => null, 'http_code' => null, 'description' => 'The specified purchase record cannot be found.'], + ['code' => 'PURCHASE.QUANTITY.LIMIT', 'message' => 'Your purchase quantity exceeds the maximum limit.', 'http_code' => 400, 'description' => 'The specified quantity exceeds the upper limit.'], + ['code' => 'QUANTITY_INVALID', 'message' => null, 'http_code' => null, 'description' => 'The number of instances exceeds the upper limit.'], + ['code' => 'QueryVpnConnectionLog.NotFound', 'message' => 'the connection log of the vpn connection is not found.', 'http_code' => 400, 'description' => 'the connection log of the vpn connection is not found.'], + ['code' => 'QuotaExceed.MultiBindedEip', 'message' => 'The number of multi binded eip is over limit.', 'http_code' => 400, 'description' => 'the number of multi-passthrough mode eips that can be bound exceeds the limit.'], + ['code' => 'QuotaExceed.NetworkAclEntry', 'message' => 'Network acl entry is over limit.', 'http_code' => 400, 'description' => 'The number of rules in the network ACL has reached the upper limit'], + ['code' => 'QuotaExceed.RouterInterface', 'message' => 'Living RouterInterface quota exceeded.', 'http_code' => null, 'description' => 'The number of active router interfaces has reached the upper limit.'], + ['code' => 'QuotaExceeded', 'message' => 'Route entry quota exceeded in this route table.', 'http_code' => null, 'description' => 'The number of route entries in the route table has reached the upper limit.'], + ['code' => 'QuotaExceeded', 'message' => 'Forward entry quota exceeded in this route table.', 'http_code' => 400, 'description' => 'A route table can only have 200 custom route entries at most.'], + ['code' => 'QuotaExceeded', 'message' => 'Route entry quota exceeded in associated route table.', 'http_code' => 400, 'description' => 'The maximum number of routes supported by the prefix list exceeds the maximum number of routes supported by the associated route table.'], + ['code' => 'QuotaExceeded', 'message' => 'RiPerUser quota exceeded', 'http_code' => 400, 'description' => 'The number of VPC peering connection router interfaces created by the current user has reached the upper limit.'], + ['code' => 'QuotaExceeded.AttachVpcNumber', 'message' => 'The maximum number of VPCs that can be attached to a DHCP options set is exceeded.', 'http_code' => 400, 'description' => 'The number of VPCs that can be associated with a DHCP options set reaches the upper limit.'], + ['code' => 'QuotaExceeded.BandwidthPackageCountOnNatGateway', 'message' => 'BandwidthPackage count limit on one NatGateway exceeded.', 'http_code' => null, 'description' => 'The number of NAT service plans has reached the upper limit. You can associate up to four NAT service plans with a NAT gateway.'], + ['code' => 'QuotaExceeded.BandwidthPackageIps', 'message' => 'The specified ipCount exceeded quota.', 'http_code' => 400, 'description' => 'The number of IP addresses has reached the upper limit. Request a quota increase on the Quota Management page.'], + ['code' => 'QuotaExceeded.Bgp', 'message' => 'bgp peer count per vbr quota exceed.', 'http_code' => 400, 'description' => 'The number of BGP peers in the VBR has reached the upper limit.'], + ['code' => 'QuotaExceeded.Bgp', 'message' => 'bgp group count per vbr quota exceed.', 'http_code' => null, 'description' => 'The number of BGP groups in the VBR has reached the upper limit.'], + ['code' => 'QuotaExceeded.BgpNetwork', 'message' => 'bgp network count per vbr quota exceed.', 'http_code' => null, 'description' => 'The number of BGP networks in the VBR has reached the upper limit.'], + ['code' => 'QuotaExceeded.CidrReservationCount', 'message' => 'The quota of VSwitchCidrReservation is exceeded.', 'http_code' => 400, 'description' => 'The VSwitchCidrReservation value exceeds the upper limit.'], + ['code' => 'QuotaExceeded.CidrReservationCount', 'message' => 'QuotaExceeded.CidrReservationCount', 'http_code' => 400, 'description' => 'The error message returned because the value of CidrReservation exceeds the upper limit.'], + ['code' => 'QuotaExceeded.CrossUserVBRPerUser', 'message' => 'Cross virtual boarder router per user quota exceed.', 'http_code' => 400, 'description' => 'The upper limit is reached.'], + ['code' => 'QuotaExceeded.DomainNameServers', 'message' => 'The maximum number of domain name servers cannot exceed 4.', 'http_code' => 400, 'description' => 'DomainNameServers is set to a value greater than four.'], + ['code' => 'QuotaExceeded.Eip', 'message' => 'Elastic IP address quota exceeded.', 'http_code' => 400, 'description' => 'The number of EIPs exceeds the quota limit. If you need more EIPs, you can apply to increase the EIPs quota or use NAT Gateway.'], + ['code' => 'QuotaExceeded.EipNumForModifyEipBondType', 'message' => 'The quota of %s is exceeded, binded: %s, quota: %s.', 'http_code' => 400, 'description' => 'The number of allowed EIPs reaches the upper limit when you modify the EIP association type.'], + ['code' => 'QuotaExceeded.FilterRelatedSession', 'message' => 'The quota of the number of traffic mirror sessions related to one filter is exceeded.', 'http_code' => 400, 'description' => 'The number of traffic mirror sessions associated with the filter has reached the upper limit.'], + ['code' => 'QuotaExceeded.FlowlogCount', 'message' => 'This user has reached the maximum instance number of flowlog.', 'http_code' => 400, 'description' => 'The number of flow logs reaches the upper limit.'], + ['code' => 'QuotaExceeded.ForwardEntrySessionManytoOne', 'message' => 'The dnat session quota is exceed.', 'http_code' => 400, 'description' => 'The number of DNAT sessions exceeds the upper limit.'], + ['code' => 'QuotaExceeded.freePconnPerAP', 'message' => 'free physical connections count excceeded.', 'http_code' => null, 'description' => 'The quota on Express Connect circuits is exhausted.'], + ['code' => 'QuotaExceeded.FreePhysicalConnectionPerAccessPoint', 'message' => 'Free physical connections count excceeded.', 'http_code' => 400, 'description' => 'If you exceed the quota of physical connections that users can create, contact the administrator to increase the quota and try again.'], + ['code' => 'QuotaExceeded.freevbr', 'message' => 'Free virtual boarder router quota exceed.', 'http_code' => null, 'description' => 'The number of VBRs exceeds the upper limit.'], + ['code' => 'QuotaExceeded.FullNatEntry', 'message' => 'The quota of %s is exceeded, usage %s/%s.', 'http_code' => 400, 'description' => 'The quota of FullNatEntry has been reached.'], + ['code' => 'QuotaExceeded.GatewayRouteTable', 'message' => 'The quota of Gateway Route Table is exceeded.', 'http_code' => 400, 'description' => 'The quota of the gateway route table created for a single VPC has reached the upper limit.'], + ['code' => 'QuotaExceeded.GlobalAccelerationInstance', 'message' => null, 'http_code' => null, 'description' => 'The number of GA instances reaches the upper limit.'], + ['code' => 'QuotaExceeded.GUAIpv6CidrBlock', 'message' => 'GUAIpv6CidrBlock quota exceeded.', 'http_code' => 400, 'description' => 'The value of GUAIpv6CidrBlock has reached the upper limit.'], + ['code' => 'QuotaExceeded.HaVip', 'message' => 'Living HaVip quota exceeded.', 'http_code' => null, 'description' => 'The number of active HAVIPs exceeds the upper limit.'], + ['code' => 'QuotaExceeded.IPv6CidrBlock', 'message' => 'The number of IPv6 CIDR blocks in the VPC exceeds the limit.', 'http_code' => 400, 'description' => 'The number of IPv6 CIDR blocks in the VPC exceeds the limit.'], + ['code' => 'QuotaExceeded.Ipv6EgressRules', 'message' => '%s quota exceeded.', 'http_code' => 400, 'description' => 'Ipv6EgressRules quantity quota exceeds limit'], + ['code' => 'QuotaExceeded.IPv6PrefixMask', 'message' => 'The quota of specifed ipv6 prefix mask is exceeded.', 'http_code' => 400, 'description' => 'The specified IPv6 prefix mask exceeds the quota.'], + ['code' => 'QuotaExceeded.NetworkInterfaceRelatedSession', 'message' => 'The quota of the number of traffic mirror sessions related to one network interface is exceeded.', 'http_code' => 400, 'description' => 'The number of traffic mirror sessions associated with an ENI has reached the upper limit.'], + ['code' => 'QuotaExceeded.Nqa', 'message' => 'nqa count per vbr quota exceed.', 'http_code' => null, 'description' => 'The number of Network Quality Analyzers (NQAs) has reached the upper limit that is supported by the VBR.'], + ['code' => 'QuotaExceeded.NumberOfEip', 'message' => 'Binded eip Quota exceed on this NatGw.', 'http_code' => 400, 'description' => 'The number of EIPs associated with the NAT gateway exceeds the upper limit.'], + ['code' => 'QuotaExceeded.PBR', 'message' => 'The policy-based routes has reached the upper limit.', 'http_code' => 400, 'description' => 'The number of policy-based routes has reached the upper limit.'], + ['code' => 'QuotaExceeded.pConnPerAP', 'message' => 'Physical connection count per ap quota exceed.', 'http_code' => null, 'description' => 'The number of Express Connect circuits that are connected to the specified access point has reached the upper limit.'], + ['code' => 'QuotaExceeded.PhysicalConnectionPerAccessPoint', 'message' => 'Physical connection count per ap quota exceed.', 'http_code' => 400, 'description' => 'Exceeds the quota of physical connections that can be purchased by a single access point. Contact the administrator to increase the quota.'], + ['code' => 'QuotaExceeded.PolicyBasedRoute', 'message' => 'The maximum number of policy-based routes is exceeded. Existing routes: %s. Routes to be created: %s. Maximum routes: %s.', 'http_code' => 400, 'description' => 'The quota of policy-based routes is reached. Existing routes: %s. Routes to be created: %s. Quota: %s.'], + ['code' => 'QuotaExceeded.PoolIpQuantity', 'message' => 'The quota of PoolIpQuantity is exceeded.', 'http_code' => 400, 'description' => 'The number of IP addresses in the pool has reached the upper limit.'], + ['code' => 'QuotaExceeded.PrefixesCount', 'message' => 'The quota of prefixes count is exceeded.', 'http_code' => 400, 'description' => 'The number of prefixes exceeds the quota limit.'], + ['code' => 'QuotaExceeded.PrefixListCidrCount', 'message' => 'The quota of prefixListMaxEntry count is exceeded.', 'http_code' => 400, 'description' => 'The value of entryCount exceeds the upper limit.'], + ['code' => 'QuotaExceeded.PrefixListCidrCount', 'message' => 'The quota of prefixList entry maxEntry count is exceeded.', 'http_code' => 400, 'description' => 'The number of allowed routes exceeds the upper limit.'], + ['code' => 'QuotaExceeded.PrefixListCount', 'message' => 'The quota of prefixList count is exceeded.', 'http_code' => 400, 'description' => 'The value of prefixList exceeds the upper limit.'], + ['code' => 'QuotaExceeded.PublicIpAddressPool', 'message' => 'The quota of PublicIpAddressPool is exceeded.', 'http_code' => 400, 'description' => 'The error message returned because the number of your IP address pools has reached the upper limit. Request a quota increase.'], + ['code' => 'QuotaExceeded.Qos', 'message' => 'The quota of QoS is exceeded.', 'http_code' => 400, 'description' => 'The number of QoS policies for the current user exceeds the limit. Please contact the business manager for resolution.'], + ['code' => 'QuotaExceeded.QosHighPriorityQueueCount', 'message' => 'The quota of QosHighPriorityQueueCount is exceeded.', 'http_code' => 400, 'description' => 'The number of high-priority queues in the QoS policy exceeds the specification. If you need to increase the quota, contact the business manager.'], + ['code' => 'QuotaExceeded.QosMediumPriorityQueueBandwidthPercent', 'message' => 'The quota of QosMediumPriorityQueueBandwidthPercent is exceeded.', 'http_code' => 400, 'description' => 'The sum of the bandwidth percentages of the normal priority queues in the QoS policy exceeds the specification.'], + ['code' => 'QuotaExceeded.QosMediumPriorityQueueCount', 'message' => 'The quota of QosMediumPriorityQueueCount is exceeded.', 'http_code' => 400, 'description' => 'The number of normal priority queues in the QoS policy exceeds the specification. If you need to increase the quota, contact the business manager.'], + ['code' => 'QuotaExceeded.QosRuleCount', 'message' => 'The quota of QosRuleCount is exceeded.', 'http_code' => 400, 'description' => 'The number of QoS rules in the QoS queue exceeds the limit. If you want to increase the quota, contact your business manager.'], + ['code' => 'QuotaExceeded.RegionDhcpOptionsSet', 'message' => 'The quota of dhcpOptionsSet in the region is exceeded.', 'http_code' => 400, 'description' => 'The number of DHCP options sets reaches the upper limit.'], + ['code' => 'QuotaExceeded.ReservedCidrMask', 'message' => 'QuotaExceeded.ReservedCidrMask', 'http_code' => 400, 'description' => 'The error message returned because ReservedCidrMask is set to an invalid value. Specify a valid value and try again.'], + ['code' => 'QuotaExceeded.RouteTable', 'message' => 'VPC RouteTable quota exceeded.', 'http_code' => 400, 'description' => 'The quota of VPC route tables is exhausted.'], + ['code' => 'QuotaExceeded.SameAccountVBRPerPconn', 'message' => 'Same account virtual boarder router per physicalConnection quota exceed.', 'http_code' => 400, 'description' => 'The number of VBRs exceeds the upper limit.'], + ['code' => 'QuotaExceeded.SessionNum', 'message' => 'The quota of the number of traffic mirror sessions is exceeded.', 'http_code' => 400, 'description' => 'The number of traffic mirror sessions has reached the upper limit.'], + ['code' => 'QuotaExceeded.SlbRelatedSession', 'message' => 'The quota of the number of traffic mirror sessions related to one SLB is exceeded.', 'http_code' => 400, 'description' => 'The number of traffic mirror sessions associated with an SLB instance has reached the upper limit.'], + ['code' => 'QuotaExceeded.SourceNumPerSession', 'message' => 'The quota of the number of traffic mirror sources per session is exceeded.', 'http_code' => 400, 'description' => 'The number of traffic mirror sources associated with a traffic mirror session has reached the upper limit.'], + ['code' => 'QuotaExceeded.SourceNumPerTarget', 'message' => 'The maximum number of traffic mirror sources for a target is exceeded.', 'http_code' => 400, 'description' => 'The number of traffic mirror sources associated with the image exceeds the upper limit.'], + ['code' => 'QuotaExceeded.TagNum', 'message' => 'Custom Tags quota exceeded', 'http_code' => 400, 'description' => 'The upper limit is reached.'], + ['code' => 'QuotaExceeded.TrafficMirrorFilter', 'message' => 'The maximum number of traffic image filters is exceeded.', 'http_code' => 400, 'description' => 'The number of filters has reached the upper limit.'], + ['code' => 'QuotaExceeded.TrafficMirrorRulesPerFilter', 'message' => 'The quota of the number of traffic mirror rules per filter is exceeded.', 'http_code' => 400, 'description' => 'The number of rules associated with the filter has reached the upper limit.'], + ['code' => 'QuotaExceeded.VBRBandwidth', 'message' => 'The VBR bandwidth must not exceed the physical connection bandwidth.', 'http_code' => 400, 'description' => 'The VBR bandwidth must not exceed the physical connection bandwidth.'], + ['code' => 'QuotaExceeded.VbrPerAccessDevice', 'message' => 'Virtual boarder router per access device quota exceed.', 'http_code' => 400, 'description' => 'The number of devices exceeds the upper limit.'], + ['code' => 'QuotaExceeded.vbrPerpConn', 'message' => 'Virtual boarder router per PhysicalConnection quota exceed.', 'http_code' => null, 'description' => 'The number of VBRs of each Express Connect circuit has reached the upper limit. Reduce the number of VBRs and try again.'], + ['code' => 'QuotaExceeded.VbrPerPconnPortSpec', 'message' => 'Quota exceed for current port spec', 'http_code' => 400, 'description' => 'The upper limit is reached.'], + ['code' => 'QuotaExceeded.VirtualBorderRouterBandwidth', 'message' => 'The quota for virtual border router bandwidth is exceeded.', 'http_code' => 400, 'description' => 'The quota for virtual border router bandwidth is exceeded.'], + ['code' => 'QuotaExceeded.VirtualBorderRouterBandwidth', 'message' => 'Quota Exceeded of VirtualBorderRouterBandwidth', 'http_code' => 400, 'description' => 'The bandwidth of the VBR exceeds the upper limit.'], + ['code' => 'QuotaExceeded.Vpc', 'message' => 'VPC quota exceeded.', 'http_code' => 400, 'description' => 'The number of VPCs in this account has reached the upper limit.'], + ['code' => 'QuotaExceeded.VPCONN', 'message' => 'The quota of VPCONN_COUNT_PER_PCONN is exceeded', 'http_code' => 400, 'description' => 'The number of shared ports created for an Express Connect circuit exceeds the upper limit.'], + ['code' => 'QuotaExceeded.VpnRouteEntry', 'message' => 'The number of route entries to the VPN gateway in the VPC routing table has reached the quota limit.', 'http_code' => 400, 'description' => 'The number of route entries to the VPN gateway in the VPC routing table has reached the quota limit.'], + ['code' => 'QuotaExceeded.VpnRouteEntry', 'message' => 'Vpn route entry quota exceeded.', 'http_code' => 400, 'description' => 'The system failed to create the route because the number of routes in the VPN gateway route table has reached the upper limit.'], + ['code' => 'QuotaExceeded.VSwitch', 'message' => 'Virtual switch quota exceeded.', 'http_code' => 400, 'description' => 'The number of vSwitches has reached the upper limit. Reduce the number of vSwitches and try again later.'], + ['code' => 'QuotaExceeded.VSwitchCidrReservationMask', 'message' => 'The quota of VSwitchCidrReservationMask is exceeded.', 'http_code' => 400, 'description' => 'The VSwitchCidrReservationMask value exceeds the upper limit. Adjust the value and try again.'], + ['code' => 'QuotaExceeded.VSwitchCidrReservationMask', 'message' => 'The operation is failed because of %s. The mask of the reserved subnet cidr exceeds the current default mask of IP Prefix, %s/%s.', 'http_code' => 400, 'description' => 'The operation failed because of the quota %s. The mask of the reserved CIDR block exceeds the default mask of the current IP Prefix, %s/%s.'], + ['code' => 'RealNameAuthenticationError', 'message' => 'Your account has not passed the real-name authentication yet.', 'http_code' => null, 'description' => 'Your account has not completed real-name verification. Complete real-name verification and try again.'], + ['code' => 'ReferredByRouteEntry.RouterInterface', 'message' => 'Router interface referred by route entry.', 'http_code' => 400, 'description' => 'The router interface is referenced by a route entry.'], + ['code' => 'ReserveIpFail', 'message' => 'Reserve eip failed.', 'http_code' => null, 'description' => 'The system failed to reserve the specified EIP.'], + ['code' => 'Resource.PbrRouteQuotaFull', 'message' => 'The quota of Policy-based route is full.', 'http_code' => 400, 'description' => 'Policy routing quota exceeded'], + ['code' => 'Resource.QuotaFull', 'message' => 'The quota of resource is full', 'http_code' => null, 'description' => 'The resource quota is exhausted.'], + ['code' => 'Resource.QuotaFull', 'message' => 'The resources you are operating have reached the upper limit of the quota. Please increase the quota or use other solutions to avoid it according to the VPN operation document.', 'http_code' => 400, 'description' => 'The resources you are operating have reached the upper limit of the quota. Please refer to the VPN operation document to increase the quota or use other schemes to avoid it.'], + ['code' => 'ResourceAlreadyAssociated.GatewayRouteTable', 'message' => 'The specified resource %s is already associated.', 'http_code' => 400, 'description' => 'The gateway route table is already associated with a gateway of the same type.'], + ['code' => 'ResourceAlreadyAssociated.Ipv4Gateway', 'message' => 'The specified resource %s is already associated.', 'http_code' => 400, 'description' => 'The IPv4 gateway is already associated.'], + ['code' => 'ResourceAlreadyAssociated.PconnQos', 'message' => 'The specified resource of PconnQos is already associated.', 'http_code' => 400, 'description' => 'The physical line has been bound to another QoS policy.'], + ['code' => 'ResourceAlreadyAssociated.PrefixList', 'message' => 'The operation failed because the specified prefixList route entry already exists.', 'http_code' => 400, 'description' => 'The operation failed because the prefix list route already exists.'], + ['code' => 'ResourceAlreadyAssociated.RouteTable', 'message' => 'The specified route table is already associated.', 'http_code' => 400, 'description' => 'The specified route table is already associated.'], + ['code' => 'ResourceAlreadyAssociated.TrafficMirrorSource', 'message' => 'The specified traffic mirror source and session are already associated.', 'http_code' => 400, 'description' => 'The specified traffic mirror source is already attached to the session.'], + ['code' => 'ResourceAlreadyAssociated.Vbr', 'message' => 'The specified Vbr is already added.', 'http_code' => 400, 'description' => 'The specified VBR is already associated.'], + ['code' => 'ResourceAlreadyExist.DefaultVSwitch', 'message' => 'The specified resource default vswitch already exists.', 'http_code' => 400, 'description' => 'The default vSwitch already exists.'], + ['code' => 'ResourceAlreadyExist.FullNatEntry', 'message' => 'The specified resource of %s is already exist.', 'http_code' => 400, 'description' => 'The FULLNAT rule already exists.'], + ['code' => 'ResourceAlreadyExist.NatIp', 'message' => 'The specified resource of NatIp has already exist.', 'http_code' => 400, 'description' => 'Configured NatIp already exists'], + ['code' => 'ResourceAlreadyExist.NatIpCidr', 'message' => 'The configured NatIpCidr already exists, or the IP address is overlap.', 'http_code' => 400, 'description' => 'The configured NatIpCidr already exists, or the IP address is overlap.'], + ['code' => 'ResourceAlreadyExist.NatQosEntry', 'message' => 'The specified natGateway qosEntry already exists', 'http_code' => 400, 'description' => 'This throttling rule already exists.'], + ['code' => 'ResourceInConfiguring', 'message' => 'The resource is being configured.', 'http_code' => 400, 'description' => 'Updating resources.'], + ['code' => 'ResourceInUse.Vbr', 'message' => 'The specified resource of [%s] is in use.', 'http_code' => 400, 'description' => 'The specified VBR is still in use.'], + ['code' => 'ResourceNotAssociated', 'message' => 'The HaVip and ECS instance are not associated.', 'http_code' => null, 'description' => 'The HAVIP is not bound to the ECS instance.'], + ['code' => 'ResourceNotAssociated.Cen', 'message' => 'The Vpc and Cen are not associated.', 'http_code' => 400, 'description' => 'Failed to attach the VPC to the CEN instance.'], + ['code' => 'ResourceNotAssociated.Ecr', 'message' => 'The ECR is not associated.', 'http_code' => 400, 'description' => 'The current resource is not associated with ECR and cannot perform this operation. Please check and try again.'], + ['code' => 'ResourceNotAssociated.TargetInstance', 'message' => 'The target instance is not associated with VPC.', 'http_code' => 400, 'description' => 'The destination instance of the route is not associated with the VPC.'], + ['code' => 'ResourceNotAssociated.TrafficMirrorSource', 'message' => 'The specified traffic mirror source and session are not associated.', 'http_code' => 400, 'description' => 'The specified traffic mirror source is not attached to the session.'], + ['code' => 'ResourceNotAssociated.VBR', 'message' => 'The specified resource of VBR is not associated.', 'http_code' => 400, 'description' => 'The specified connected router VBR is not associated with BondRI. Please confirm and try again.'], + ['code' => 'ResourceNotAvailable', 'message' => 'Resource you requested is not available in this region or zone.', 'http_code' => null, 'description' => 'You cannot create a vSwitch in the current region or zone.'], + ['code' => 'ResourceNotAvailable.NoZonesAvailable', 'message' => 'The availability zones of the input region are not available.', 'http_code' => 400, 'description' => 'the available area of the input region is unavailable.'], + ['code' => 'ResourceNotAvailable.Vpc', 'message' => 'Resource you requested is not available in this region or zone.', 'http_code' => null, 'description' => 'The resource you requested is not available in this region or zone.'], + ['code' => 'ResourceNotEnough.Bandwidth', 'message' => 'The specified resource of Bandwidth is not enough.', 'http_code' => 400, 'description' => 'The specified resource of Bandwidth is insufficient.'], + ['code' => 'ResourceNotEnough.CidrBlock', 'message' => 'Out of Resources: No matching CIDR block found.', 'http_code' => 400, 'description' => 'Out of Resources: No matching CIDR block found.'], + ['code' => 'ResourceNotEnough.CidrBlock', 'message' => 'The specified resource is not enough.', 'http_code' => 400, 'description' => 'The specified resource is not enough.'], + ['code' => 'ResourceNotEnough.CommonBandWidthPackage', 'message' => 'The specified resource commonBandWidthPackage is not enough.', 'http_code' => 400, 'description' => 'The specified resource commonBandWidthPackage is not enough.'], + ['code' => 'ResourceNotEnough.Ipv6Cidr', 'message' => 'The specified resource of Ipv6Cidr is not enough.', 'http_code' => 400, 'description' => 'IPv6 addresses are insufficient.'], + ['code' => 'ResourceNotEnough.Ipv6Cidr', 'message' => 'The specified resource ipv6 cidr is not enough.', 'http_code' => 400, 'description' => 'Insufficient IPv6 CIDR block resources.'], + ['code' => 'ResourceNotEnough.NatIp', 'message' => 'The specified resource of NatIp is not enough.', 'http_code' => 400, 'description' => 'Insufficient IP addresses in the specified CIDR block.'], + ['code' => 'ResourceNotEnough.SwitchAvailableIps', 'message' => 'The available private Ip number is not enough in your subnet.', 'http_code' => 400, 'description' => 'The number of private IP addresses in the subnet is insufficient.'], + ['code' => 'ResourceNotFound', 'message' => 'The specified resource %s is not found.', 'http_code' => 400, 'description' => 'The specified resource %s is not found.'], + ['code' => 'ResourceNotFound.%s', 'message' => 'The specified resource of %s is not found.', 'http_code' => 404, 'description' => 'The specified resource of %s is not found.'], + ['code' => 'ResourceNotFound.AccessPointId', 'message' => 'The specified resource of access point id is not found.', 'http_code' => 400, 'description' => 'The current access point information does not exist. Please check and try again.'], + ['code' => 'ResourceNotFound.BondRiConnection', 'message' => 'The specified resource of [%s] is not found.', 'http_code' => 400, 'description' => 'BondRi Connection not exist'], + ['code' => 'ResourceNotFound.BondRiConnection', 'message' => 'The specified resource of BondRI not found.', 'http_code' => 400, 'description' => 'The specified BondRI instance does not exist.'], + ['code' => 'ResourceNotFound.Cen', 'message' => 'The specified resource of Cen is not found.', 'http_code' => 400, 'description' => 'The operation failed because the CEN resources do not exist.'], + ['code' => 'ResourceNotFound.CidrBlock', 'message' => 'The specified CIDR block is not found.', 'http_code' => 400, 'description' => 'The error message returned because the specified CIDR block does not exist.'], + ['code' => 'ResourceNotFound.CidrReservation', 'message' => 'The specified resource of %s is not found', 'http_code' => 400, 'description' => 'The specified value for CidrReservation is invalid. Check the status of CidrReservation.'], + ['code' => 'ResourceNotFound.CidrReservation', 'message' => 'The specified resource of VSwitchCidrReservation is not found.', 'http_code' => 404, 'description' => 'The error message returned because VSwitchCidrReservation is set to an invalid value.'], + ['code' => 'ResourceNotFound.CidrReservation', 'message' => 'ResourceNotFound.CidrReservation', 'http_code' => 400, 'description' => 'The error message returned because VSwitchCidrReservation is set to an invalid value.'], + ['code' => 'ResourceNotFound.CidrReservation', 'message' => 'reserve segment not exist.', 'http_code' => 400, 'description' => 'The network segment does not exist.'], + ['code' => 'ResourceNotFound.EcsInstance', 'message' => 'The specified resource of ECS instance is not found.', 'http_code' => 400, 'description' => 'The specified ECS instance does not exist.'], + ['code' => 'ResourceNotFound.EipSegment', 'message' => 'The specified resource of Eip Segment is not found.', 'http_code' => 400, 'description' => 'The passed-in consecutive EIP group instances do not exist.'], + ['code' => 'ResourceNotFound.ForwardEntry', 'message' => 'The specified resource of %s is not found.', 'http_code' => 404, 'description' => 'The specified %s resource does not exist.'], + ['code' => 'ResourceNotFound.FullNatEntry', 'message' => 'The specified resource of %s is not found.', 'http_code' => 400, 'description' => 'The specified FullNatEntry parameter is not found.'], + ['code' => 'ResourceNotFound.FullNatEntry', 'message' => 'The specified resource of full nat entry is not found.', 'http_code' => 400, 'description' => 'The FULLNAT entry is not found.'], + ['code' => 'ResourceNotFound.FullNatTable', 'message' => 'The NAT gateway has no full nat table.', 'http_code' => 404, 'description' => 'No FULLNAT table is configured for the NAT gateway.'], + ['code' => 'ResourceNotFound.FullNatTableId', 'message' => 'The specified resource of %s is not found.', 'http_code' => 400, 'description' => 'The FullNat table does not exist.'], + ['code' => 'ResourceNotFound.GatewayEndpoint', 'message' => 'The specified resource gateway endpoint is not found.', 'http_code' => 400, 'description' => 'The error message returned because the specified gateway endpoint does not exist.'], + ['code' => 'ResourceNotFound.GatewayLoadBalancerEndpoint', 'message' => 'GatewayLoadBalancerEndpoint instance not found.', 'http_code' => 404, 'description' => 'GatewayLoadBalancerEndpoint instance not found.'], + ['code' => 'ResourceNotFound.GatewayRouteTable', 'message' => 'The specified resource GatewayRouteTable is not found.', 'http_code' => 400, 'description' => 'The gateway route table cannot be found.'], + ['code' => 'ResourceNotFound.Instance', 'message' => 'The specified resource nextHop is not found.', 'http_code' => 400, 'description' => 'The next hop instance does not exist.'], + ['code' => 'ResourceNotFound.Instance', 'message' => 'The specified binding resource is not found.', 'http_code' => 400, 'description' => 'The bindable resource does not exist.'], + ['code' => 'ResourceNotFound.Ip', 'message' => 'The specified ip is not found.', 'http_code' => 400, 'description' => 'The specified IP could not be found.'], + ['code' => 'ResourceNotFound.IpamPool', 'message' => 'The dependent IPAM pool is not found.', 'http_code' => 404, 'description' => 'The dependent IPAM pool is not found.'], + ['code' => 'ResourceNotFound.Ipv4Gateway', 'message' => 'The specified resource ipv4Gateway is not found.', 'http_code' => 400, 'description' => 'The IPv4 gateway is not found and cannot be deleted.'], + ['code' => 'ResourceNotFound.Ipv4Gateway', 'message' => 'Specified Ipv4Gateway does not exist.', 'http_code' => 400, 'description' => 'The specified IPv4 gateway is not found.'], + ['code' => 'ResourceNotFound.Ipv6Address', 'message' => 'The specified resource of %s is not found.', 'http_code' => 404, 'description' => 'The IPv6 address is not found.'], + ['code' => 'ResourceNotFound.Ipv6EgressOnlyRule', 'message' => 'The specified resource of IPv6 Gateway Rule is not found.', 'http_code' => 404, 'description' => 'The specified IPv6 egress-only rule instance does not exist.'], + ['code' => 'ResourceNotFound.Ipv6Gateway', 'message' => 'The specified resource of IPv6 Gateway is not found.', 'http_code' => 400, 'description' => 'The incoming IPv6 gateway instance does not exist.'], + ['code' => 'ResourceNotFound.Ipv6InstanceId', 'message' => 'The specified resource of %s is not found.', 'http_code' => 404, 'description' => 'The specified IPv6 instance ID does not exist. Please check whether your input is correct.'], + ['code' => 'ResourceNotFound.NatGateway', 'message' => 'The NatGateway instance not exist.', 'http_code' => 404, 'description' => 'The NAT gateway does not exist.'], + ['code' => 'ResourceNotFound.NatGateway', 'message' => 'The specific NAT gateway is not found.', 'http_code' => 404, 'description' => 'The specific NAT gateway is not found.'], + ['code' => 'ResourceNotFound.NatIp', 'message' => 'The specified resource of %s is not found.', 'http_code' => 400, 'description' => 'The specified NatIp parameter is not found.'], + ['code' => 'ResourceNotFound.NatIpCidr', 'message' => 'The specified resource of %s is not found.', 'http_code' => 400, 'description' => 'The specified %s resource does not exist.'], + ['code' => 'ResourceNotFound.NetworkInterface', 'message' => 'The specified resource of network interface is not found.', 'http_code' => 400, 'description' => 'The specified ENI does not exist.'], + ['code' => 'ResourceNotFound.NetworkInterface', 'message' => 'The specified resource nextHop is not found.', 'http_code' => 400, 'description' => 'The next hop instance does not exist.'], + ['code' => 'ResourceNotFound.NetworkInterface', 'message' => 'The specified resource of %s is not found.', 'http_code' => 400, 'description' => 'The error message returned because NetworkInterface is set to an invalid value.'], + ['code' => 'ResourceNotFound.NetworkInterfaceId', 'message' => 'The specified resource is not found.', 'http_code' => 400, 'description' => 'The specified resource is not found.'], + ['code' => 'ResourceNotFound.NextHop', 'message' => 'The specified resource nextHop is not found.', 'http_code' => 400, 'description' => 'The next hop instance does not exist.'], + ['code' => 'ResourceNotFound.PhysicalConnection', 'message' => 'The specified resource of %s is not found.', 'http_code' => 400, 'description' => 'The PhysicalConnection does not exist.'], + ['code' => 'ResourceNotFound.PhysicalConnectionId', 'message' => 'PhysicalConnection is not found.', 'http_code' => 400, 'description' => 'PhysicalConnectionId is set to an invalid value.'], + ['code' => 'ResourceNotFound.PhysicalConnectionId', 'message' => 'The specified PhysicalConnectionId [%s] is not found.', 'http_code' => 400, 'description' => 'PhysicalConnectionId is set to an invalid value.'], + ['code' => 'ResourceNotFound.PhysicalConnectionId', 'message' => 'The specified resource of [%s] is not found.', 'http_code' => 400, 'description' => 'The Express Connect circuit does not exist.'], + ['code' => 'ResourceNotFound.PrefixList', 'message' => 'The specified resource of prefixList is not found.', 'http_code' => 400, 'description' => 'The prefix list does not exist.'], + ['code' => 'ResourceNotFound.PrefixListRelation', 'message' => 'The specified resource of prefixList relation is not found.', 'http_code' => 400, 'description' => 'PrefixList association does not exist.'], + ['code' => 'ResourceNotFound.PublicIpAddressPool', 'message' => 'The specified resource of PublicIpAddressPool [%s] is not found.', 'http_code' => 400, 'description' => 'The specified public IP address pool does not exist.'], + ['code' => 'ResourceNotFound.QosTableIdOrNatGatewayId', 'message' => 'natGatewayId and qosTableId can not both be null', 'http_code' => 400, 'description' => 'natGatewayId and qosTableId cannot be empty at the same time.'], + ['code' => 'ResourceNotFound.RouteEntry', 'message' => 'The specified resource routeEntry is not found.', 'http_code' => 400, 'description' => 'The specified route entry does not exist'], + ['code' => 'ResourceNotFound.RouteTable', 'message' => 'The specified resource gatewayRouteTable is not found.', 'http_code' => 400, 'description' => 'The gateway route table does not exist.'], + ['code' => 'ResourceNotFound.Slb', 'message' => 'The specified resource of SLB is not found.', 'http_code' => 400, 'description' => 'The specified SLB instance does not exist.'], + ['code' => 'ResourceNotFound.SnatEntry', 'message' => 'Specified SNAT entry does not exist.', 'http_code' => 404, 'description' => 'The specified SNAT entry does not exist.'], + ['code' => 'ResourceNotFound.TargetInstance', 'message' => 'The specified target instance for traffic mirroring is not found.', 'http_code' => 400, 'description' => 'The specified traffic mirror destination does not exist.'], + ['code' => 'ResourceNotFound.TrafficMirrorFilter', 'message' => 'The specified resource of traffic mirror filter is not found.', 'http_code' => 400, 'description' => 'The specified filter does not exist.'], + ['code' => 'ResourceNotFound.TrafficMirrorRule', 'message' => 'The specified resource of traffic mirror rule is not found.', 'http_code' => 400, 'description' => 'The specified traffic mirror filter rule does not exist.'], + ['code' => 'ResourceNotFound.TrafficMirrorSession', 'message' => 'The specified resource of traffic mirror session is not found.', 'http_code' => 400, 'description' => 'The specified traffic mirror session does not exist.'], + ['code' => 'ResourceNotFound.VirtualBorderRouter', 'message' => 'The specified resource of %s is not found.', 'http_code' => 400, 'description' => 'Virtual Border Router does not exist'], + ['code' => 'ResourceNotFound.VpcPeer', 'message' => 'The specified resource of %s is not found.', 'http_code' => 400, 'description' => 'The peer VPC cannot be found.'], + ['code' => 'ResourceNotFound.VSwitch', 'message' => 'The specified resource of VSwitch is not found.', 'http_code' => 400, 'description' => 'The specified vSwitch does not exist.'], + ['code' => 'ResourceNotFound.VSwitch', 'message' => 'ResourceNotFound.VSwitch', 'http_code' => 400, 'description' => 'The error message returned because the specified vSwitch does not exist. Check whether the vSwitch is available.'], + ['code' => 'ResourceNotFound.VSwitch', 'message' => 'The specified resource of %s is not found.', 'http_code' => 404, 'description' => 'The specified vSwitch does not exist, please check your input is correct'], + ['code' => 'ResourceNotFound.VSwitch', 'message' => 'The vSwitch where the specified networkinterface is located does not exist.', 'http_code' => 400, 'description' => 'The switch where the ENI is located does not exist.'], + ['code' => 'ResourceNotFound.VSwitchCidrReservation', 'message' => 'The dependent vswitch cidr reservation is not found.', 'http_code' => 404, 'description' => 'Dependent resource vSwitchCidrReservation does not exist'], + ['code' => 'ResourceNotInResourceGroup', 'message' => 'The specified resource is not in the specified ResourceGroup.', 'http_code' => 400, 'description' => 'The specified resource does not belong to the resource group.'], + ['code' => 'ResourceQueryError', 'message' => 'The specified resource is queried error.', 'http_code' => 400, 'description' => 'An error occurred while querying the specified resource.'], + ['code' => 'ResourceQuotaExceeded.NatQosEntry', 'message' => 'The specified natGateway qosEntry quota exceed.', 'http_code' => 400, 'description' => 'The number of throttling entries for this NAT gateway has reached the upper limit.'], + ['code' => 'ResourceStatus.Error', 'message' => 'The binding instance is in middle status.', 'http_code' => 400, 'description' => 'The status of the instance is invalid.'], + ['code' => 'ResourceType.Unknown', 'message' => 'Unknown ResourceType.', 'http_code' => 400, 'description' => 'The resource type is invalid.'], + ['code' => 'RISK.RISK_CONTROL_REJECTION', 'message' => null, 'http_code' => null, 'description' => 'The account is disabled by the risk control system.'], + ['code' => 'RI_CREATE_ONE_LIMIT_BY_SYNC', 'message' => 'Create ri only one limit by sync.', 'http_code' => null, 'description' => 'You can create only one router interface at a time.'], + ['code' => 'RouteConflict', 'message' => 'Route conflict exists in routing table.', 'http_code' => 400, 'description' => 'There is a route conflict in the routing table.'], + ['code' => 'RouteConflict.AlreadyExist', 'message' => 'Route conflict exists in routing table.', 'http_code' => 400, 'description' => 'Route conflicts exist in the route table.'], + ['code' => 'RouterEntryConflict.Duplicated', 'message' => 'A route entry already exists', 'http_code' => null, 'description' => 'The route already exists.'], + ['code' => 'RouterInterfaceReferredByRouteEntry', 'message' => 'Router interface referred by route entry.', 'http_code' => 400, 'description' => 'There is a route to the router interface that cannot be deleted'], + ['code' => 'ROUTER_INTERFACE_REFERED_BY_ROUTEENTRY', 'message' => 'The specified VlanInterface has been used by routeEntry.', 'http_code' => null, 'description' => 'The VLAN interface is being used by a route entry.'], + ['code' => 'RuleExist', 'message' => 'The rule already exists.', 'http_code' => 400, 'description' => 'The error message returned because the rule already exists.'], + ['code' => 'SecurityGroup.NotExist', 'message' => 'The specified security group is not exist.', 'http_code' => 400, 'description' => 'The security group does not exist in this VPC.'], + ['code' => 'SecurityGroupType.NotSupported', 'message' => 'The specified security group type is not supported.', 'http_code' => 400, 'description' => 'The security group is already hosted and cannot be used.'], + ['code' => 'ServiceUnavailable', 'message' => 'The request has failed due to a temporary failure of the server.', 'http_code' => 400, 'description' => 'The request failed due to a temporary server error.'], + ['code' => 'SignatureNonceUsed', 'message' => 'Specified signature nonce was used already.', 'http_code' => 400, 'description' => 'The random number for the signature has been occupied.'], + ['code' => 'SizeLimitExceeded.ResourceId', 'message' => 'The maximum number of resource IDs is exceeded.', 'http_code' => 400, 'description' => 'The number of resource group IDs has reached the upper limit.'], + ['code' => 'SizeLimitExceeded.TagNum', 'message' => 'The maximum number of tags is exceeded.', 'http_code' => 400, 'description' => 'The number of tags has reached the upper limit.'], + ['code' => 'SNAT_IP_POOL_COUNT_TOO_MANY', 'message' => 'The Snat pool ip too many.', 'http_code' => null, 'description' => 'The number of IP addresses has reached the upper limit supported by the SNAT IP address pool.'], + ['code' => 'SourceProjectNotExist', 'message' => 'The Source Project or logstore does not exist.', 'http_code' => 400, 'description' => 'The error message returned because the source project or Logstore does not exist.'], + ['code' => 'SslVpnIDaaS2.NotSupport', 'message' => 'Current version of the VPN does not support IDaaS2.0.', 'http_code' => 400, 'description' => 'The current version of the VPN instance does not support IDaaS2.0.'], + ['code' => 'SslVpnServer.AddRouteError', 'message' => 'Add route error whose destination is client IP pool, please check vpc route entry and relevant quota.', 'http_code' => 400, 'description' => 'The system failed to add the route that points to the client CIDR block. View the VPC route and quota.'], + ['code' => 'SslVpnServer.AlreadyExist', 'message' => 'The SSL VPN server of specified vpn gateway already exists.', 'http_code' => 400, 'description' => 'The specified SSL server already exists on the VPN gateway.'], + ['code' => 'SslVpnServerPort.Illegal', 'message' => 'The server port is not in the range of [1-65535].', 'http_code' => 400, 'description' => 'The port of the SSL-VPN server must be from 1 to 65535.'], + ['code' => 'SystemBusy', 'message' => 'The system is busy. Please try again later.', 'http_code' => 500, 'description' => 'The system is busy. Please try again later.'], + ['code' => 'SystemQuotaConstraint.Filter.Key', 'message' => 'The number of keys in the filter parameter cannot exceed 5.', 'http_code' => 400, 'description' => 'The number of keys in the filter parameter cannot exceed 5.'], + ['code' => 'SystemQuotaConstraint.Filter.Value', 'message' => 'The number of values in a key in the filter parameter cannot exceed 5.', 'http_code' => 400, 'description' => 'The number of values in a key in the filter parameter cannot exceed 5.'], + ['code' => 'TaskConflict', 'message' => 'The eip operate too frequent', 'http_code' => null, 'description' => 'EIP operations are too frequent.'], + ['code' => 'TaskConflict', 'message' => 'The operation is too frequent. Please wait a moment and try again.', 'http_code' => 400, 'description' => 'The system is unavailable. Try again later.'], + ['code' => 'TaskConflict', 'message' => 'The operation is too frequent. Please try again later.', 'http_code' => 400, 'description' => 'The operation is too frequent. Please try again later.'], + ['code' => 'TaskConflict', 'message' => 'The eip operate too frequent, TaskConflict.', 'http_code' => 400, 'description' => 'Operations are too frequent and tasks conflict with each other.'], + ['code' => 'TaskConflict', 'message' => 'The operation is too frequent, TaskConflict.', 'http_code' => 400, 'description' => 'The system is unavailable. Try again later.'], + ['code' => 'TaskConflict', 'message' => 'The operation is too frequent, please wait a moment and try again.', 'http_code' => 400, 'description' => 'Your requests are too frequent. Try again later.'], + ['code' => 'TaskConflict.AssociateGlobalAccelerationInstance', 'message' => 'Operate too frequent.', 'http_code' => null, 'description' => 'The number of requests that you send exceeds the upper limit.'], + ['code' => 'Throttling', 'message' => 'Request was denied due to request throttling.', 'http_code' => null, 'description' => 'The traffic volume exceeds the quota. To increase the quota, submit a ticket.'], + ['code' => 'Throttling.User', 'message' => 'Request was denied due to user flow control.', 'http_code' => 400, 'description' => 'The request is denied due to client traffic throttling.'], + ['code' => 'Unauthorized', 'message' => 'This api does not support sub user or role.', 'http_code' => 400, 'description' => 'The error message returned because you cannot call this operation as a RAM user.'], + ['code' => 'Unavailable.Ipv6Cidr', 'message' => 'The specified resource ipv6 cidr is not available.', 'http_code' => 400, 'description' => 'The specified IPv6 CIDR block is unavailable.'], + ['code' => 'UnknownError', 'message' => 'The request processing has failed due to some unknown error.', 'http_code' => null, 'description' => 'An unknown error occurred. Try again later. If the error persists, submit a ticket.'], + ['code' => 'UnsupportedFeature.AccessModeValue', 'message' => 'The feature of AccessMode.ModeValue(%s) is not supported.', 'http_code' => 400, 'description' => 'This operation is not supported for the VPC NAT AccessMode.ModeValue attribute'], + ['code' => 'UnsupportedFeature.AllocateEipAddressWithZone', 'message' => 'The feature of AllocateEipAddressWithZone is not supported.', 'http_code' => 400, 'description' => 'You are not allowed to create an instance in a specified zone in the region.'], + ['code' => 'UnsupportedFeature.CloudBoxHaVip', 'message' => 'The HAVIP feature is not supported in cloud box.', 'http_code' => 400, 'description' => 'CloudBox does not support creating high-availability virtual IP addresses.'], + ['code' => 'UnsupportedFeature.CloudBoxIpv6', 'message' => 'The IPv6 feature is not supported by cloud box.', 'http_code' => 400, 'description' => 'You cannot create an IPv6 address for a CloudBox instance.'], + ['code' => 'UnsupportedFeature.CreatePrefixListEcmpRouteEntry', 'message' => 'The feature of creating ecmp route entry with prefixList is not supported.', 'http_code' => 400, 'description' => 'You cannot create ECMP routes by using a prefix list.'], + ['code' => 'UnsupportedFeature.DhcpOptionsSet', 'message' => 'The feature of dhcp options set is unsupported.', 'http_code' => 400, 'description' => 'The DHCP Options Set function does not take effect in the current region.'], + ['code' => 'UnsupportedFeature.EipBindIpAddress', 'message' => 'The feature of EipBindIpAddress is not supported.', 'http_code' => 400, 'description' => 'The error message returned because the EIP does not support the IpAddress parameter.'], + ['code' => 'UnsupportedFeature.EipBindPrefixIp', 'message' => 'The feature of EipBindPrefixIp is not supported.', 'http_code' => 400, 'description' => 'You cannot associate an EIP with a prefix list in the current region.'], + ['code' => 'UnsupportedFeature.EnableSessionLog', 'message' => 'The feature of EnableSessionLog is not supported.', 'http_code' => 400, 'description' => 'This instance does not support opening NAT Gateway session logs.'], + ['code' => 'UnsupportedFeature.FwNatInMutilBindedEipBindType', 'message' => 'The FW NAT in MUTIL_BINDED eip bind type is can not be created.', 'http_code' => 400, 'description' => 'If EipBindMode is set to MUTIL_BINDED, you cannot create the EIP.'], + ['code' => 'UnsupportedFeature.Geneve', 'message' => 'The feature of Geneve is not supported.', 'http_code' => 400, 'description' => 'The feature of Geneve is not supported.'], + ['code' => 'UnsupportedFeature.IcmpReplyEnabled', 'message' => 'The feature of IcmpReplyEnabled is not supported.', 'http_code' => 400, 'description' => 'The value of IcmpReplyEnabled cannot be modified.'], + ['code' => 'UnsupportedFeature.IndirectConvertForFwNat', 'message' => 'The security protection enabled NAT gateway is not support change EIP bond type.', 'http_code' => 400, 'description' => 'The value of EipBindMode cannot be modified for an Internet NAT gateway for which the security protection feature is enabled.'], + ['code' => 'UnsupportedFeature.IndirectConvertForVpcNat', 'message' => 'The VPC NAT gateway is not support to change EIP bond type.', 'http_code' => 400, 'description' => 'The error message returned because the value of the EipBindMode parameter cannot be modified for a VPC NAT gateway.'], + ['code' => 'UnsupportedFeature.InternetChargeTypeOnFreeIpv6Address', 'message' => 'The feature of %s is not supported.', 'http_code' => 400, 'description' => 'The status of the IPv6 address does not support the billing method. For more information, see the API reference.'], + ['code' => 'UnsupportedFeature.InternetChargeTypeOnStaticIsp', 'message' => 'The feature of %s is not supported.', 'http_code' => 400, 'description' => 'The IPv6 address is of the single ISP type and does not support the billing method.'], + ['code' => 'UnsupportedFeature.IPAM', 'message' => 'VPCs cannot be created by using IPAM.', 'http_code' => 400, 'description' => 'You cannot use IPAM to create a VPC.'], + ['code' => 'UnsupportedFeature.Ipam', 'message' => 'IPAM is not supported in this region.', 'http_code' => 400, 'description' => 'The IPAM feature is not supported in this region.'], + ['code' => 'UnsupportedFeature.Ipv4Gateway', 'message' => 'The feature of ipv4Gateway is not supported for [%s].', 'http_code' => 400, 'description' => 'The system failed to create the IPv4 gateway because IPv4 gateways are not supported.'], + ['code' => 'UnsupportedFeature.Ipv6GatewayRouteTable', 'message' => 'The feature of %s is not supported.', 'http_code' => 400, 'description' => 'The border gateway route table cannot be associated with the gateway.'], + ['code' => 'UnsupportedFeature.Ipv6Isp', 'message' => 'The Ipv6Isp feature is not supported.', 'http_code' => 400, 'description' => 'The specified IPv6 ISP is not supported.'], + ['code' => 'UnsupportedFeature.IpVersion', 'message' => 'The ipversion type is not supported.', 'http_code' => 400, 'description' => 'The specified ipVersion is not supported.'], + ['code' => 'UnsupportedFeature.Isp', 'message' => 'The feature of Isp is not supported.', 'http_code' => 400, 'description' => 'The ISP you specified is not currently supported.'], + ['code' => 'UnsupportedFeature.ModifyIpv6RouteEntryNextHop', 'message' => 'The current region does not support the feature of modifying the IPv6 route next hop.', 'http_code' => 400, 'description' => 'The operation failed because the current region does not support modifying the IPv6 route next hop.'], + ['code' => 'UnsupportedFeature.ModifyRouteEntryNextHop', 'message' => 'The current region does not support the function of modifying the route next hop.', 'http_code' => 400, 'description' => 'You cannot modify next hops in the current region.'], + ['code' => 'UnsupportedFeature.MutilBindedTypeNatEnableFw', 'message' => 'The NAT with Mutil-Binded Eip bind type is not support enable firewall.', 'http_code' => 400, 'description' => 'You cannot enable firewall for the NAT gateway because EIPs are associated with the NAT gateway in Multi-Binded mode.'], + ['code' => 'UnsupportedFeature.NatBandWidthPackage', 'message' => 'The feature of NatBandWidthPackage is not supported.', 'http_code' => 400, 'description' => 'The feature of NatBandWidthPackage is not supported.'], + ['code' => 'UnsupportedFeature.NatQosEntry', 'message' => 'The specified natGateway can not support the qos entry feature.', 'http_code' => 400, 'description' => 'This NAT gateway does not support bandwidth throttling.'], + ['code' => 'UnsupportedFeature.NextHopType', 'message' => 'The route type does not support modifying the next hop of the route.', 'http_code' => 400, 'description' => 'You cannot modify the next hop of the route.'], + ['code' => 'UnsupportedFeature.NextHopType', 'message' => 'The operation is not allowed because the NextHopType of specified RouteEntry is modified from Local type.', 'http_code' => 400, 'description' => 'The operation is not allowed because the next hop type of the route is modified from the Local type.'], + ['code' => 'UnsupportedFeature.NormalNatModifyEipBindMode', 'message' => 'The normal NAT gateway is not support to change EIP bond type.', 'http_code' => 400, 'description' => 'The value of EipBindMode cannot be modified for a standard NAT gateway.'], + ['code' => 'UnsupportedFeature.NormalTypeNatGateway', 'message' => 'Normal nat gateways do not support modifying the next hop of the route.', 'http_code' => 400, 'description' => 'You cannot modify the next hop of a route that points to a standard NAT gateway.'], + ['code' => 'UnsupportedFeature.PrivateLinkMode', 'message' => 'The feature of %s is not supported.', 'http_code' => 400, 'description' => 'The feature of reverse access is not supported.'], + ['code' => 'UnsupportedFeature.ReservedType', 'message' => 'The specified ReservedType is not supported.', 'http_code' => 400, 'description' => 'The ReservedType value is invalid.'], + ['code' => 'UnsupportedFeature.ReservedType', 'message' => 'UnsupportedFeature.ReservedType', 'http_code' => 400, 'description' => 'The error message returned because ReservedType is set to an invalid value. Specify a valid value and try again.'], + ['code' => 'UnsupportedFeature.RouterInterfaceIpv6', 'message' => 'The feature of ipv6 is not supported for the routerInterface.', 'http_code' => 400, 'description' => 'The router interface does not support ipv6'], + ['code' => 'UnsupportedFeature.RouterTableType', 'message' => 'The type of router table is not supported.', 'http_code' => 400, 'description' => 'The specified route table type is not supported.'], + ['code' => 'UnsupportedFeature.RouterType', 'message' => 'The feature of route type is not supported.', 'http_code' => 400, 'description' => 'The specified route table type is not supported.'], + ['code' => 'UnsupportedFeature.UserDefinedTrafficPath', 'message' => 'The feature of UserDefinedTrafficPath is not supported.', 'http_code' => 400, 'description' => 'The current user does not have the permissions to specify trafficPath.'], + ['code' => 'UnsupportedFeature.VpcAdvancedFeature', 'message' => 'UnsupportedFeature.VpcAdvancedFeature', 'http_code' => 400, 'description' => 'The error message returned because the VPC where the specified vSwitch is deployed does not support advanced VPC features. Specify another vSwitch and try again.'], + ['code' => 'UnsupportedFeature.VpcAdvancedFeature', 'message' => 'The VPC does not support some advanced features.', 'http_code' => 400, 'description' => 'The VPC does not support some advanced features. Please submit a ticket.'], + ['code' => 'UnsupportedFeature.VpcDnsHostname', 'message' => 'The feature of vpc dns hostname is unsupported.', 'http_code' => 400, 'description' => 'The VPC private domain name function does not take effect in the current region.'], + ['code' => 'UnsupportedFeature.VpcIpamIpv6', 'message' => 'The specified IPAM pool does not support the IPv6 feature.', 'http_code' => 400, 'description' => 'The specified IPAM pool does not support the IPv6 feature.'], + ['code' => 'UnsupportedFeature.VpcNatSecurityProtectionEnabled', 'message' => 'The VPC NAT gateway is not supported to enable security protection.', 'http_code' => 400, 'description' => 'You cannot enable security protection for the VPC NAT gateway.'], + ['code' => 'UnsupportedFeature.Vpconn', 'message' => 'The feature of Vpconn is not supported.', 'http_code' => 400, 'description' => 'The Express Connect circuit type is not supported.'], + ['code' => 'UnsupportedFeature.VpcPeerIpv6', 'message' => 'IPv6 route entries for VPC peering connections cannot be created in this region.', 'http_code' => 400, 'description' => 'The error message returned because the peer of the router interface is a VPC and you cannot create a route whose next hop type is IPv6 address in this region.'], + ['code' => 'UnsupportedFeature.VSwitchIpv6', 'message' => 'The ipv6 feature of switch is not supported.', 'http_code' => 400, 'description' => 'IPv6 is not enabled for the specified vSwitch.'], + ['code' => 'UnsupportedFeature.VSwitchIpv6', 'message' => 'UnsupportedFeature.VSwitchIpv6', 'http_code' => 400, 'description' => 'The error message returned because the specified vSwitch does not have IPv6 enabled.'], + ['code' => 'UnsupportedParameter', 'message' => null, 'http_code' => null, 'description' => 'A parameter is set to an invalid value.'], + ['code' => 'UnsupportedRegion', 'message' => 'The feature of prefixList entry is not supported in this region.', 'http_code' => 400, 'description' => 'This feature is not supported in the current region.'], + ['code' => 'UnsupportedRegion', 'message' => 'The feature is not supported in current region.', 'http_code' => 400, 'description' => 'The feature is not supported in the current region.'], + ['code' => 'UnsupportedRegion', 'message' => 'The feature of ipv4Gateway is not supported in the region.', 'http_code' => 400, 'description' => 'IPv4 gateways are not supported in this region.'], + ['code' => 'UnsupportedRegion', 'message' => 'UnsupportedRegion', 'http_code' => 400, 'description' => 'The error message returned because the current region does not support this feature.'], + ['code' => 'UnsupportedRegion.CloudBoxInternet', 'message' => 'The region does not support cloud box public network.', 'http_code' => 400, 'description' => 'The region does not support cloud box public network.'], + ['code' => 'UnsupportedRegion.PrefixListEntry', 'message' => 'The feature of prefixList entry is not supported in this region.', 'http_code' => 400, 'description' => 'Prefix list type routes are not supported in this region.'], + ['code' => 'UnsupportedZoneForFwNat', 'message' => 'The zone is unsupported for FW NAT.', 'http_code' => 404, 'description' => 'Protection-enabled NAT gateways are not supported in this zone.'], + ['code' => 'VBR.BANDWIDTH.EXCEED', 'message' => 'VBR bandwidth exceed for this physical connection.', 'http_code' => 400, 'description' => 'The bandwidth exceeds the upper limit.'], + ['code' => 'VbrBandwidthExceed', 'message' => 'VBR bandwidth exceed for this physical connection.', 'http_code' => 400, 'description' => 'The bandwidth of the VBR exceeds the upper limit supported by the Express Connect circuit.'], + ['code' => 'Vco.StatusNotSupport', 'message' => 'The current VPN connection state does not support this operation.', 'http_code' => 400, 'description' => 'The operation cannot be performed when the VPN connection is in the current state.'], + ['code' => 'Vco.StatusNotSupport', 'message' => 'The current VCO status does not support operations such as modification and deletion.', 'http_code' => 400, 'description' => 'The current VCO status does not support operations such as modification and deletion.'], + ['code' => 'VLAN.ID.HAS.BEEN.USED.IN.PHYSICAL.CONNECTION', 'message' => 'vlan id has been used in physical connection', 'http_code' => 400, 'description' => 'The VLAN ID is already used.'], + ['code' => 'VpconnNotAssociatedVbr', 'message' => 'The specified vpconn is not associated with vbr.', 'http_code' => 400, 'description' => 'The entered virtual physical connection is not associated with a virtual border router.'], + ['code' => 'VpconnWithVlan0NotSupportShutdown', 'message' => 'The specified virtualPhysicalConnection with vlan 0 does not support shutdown.', 'http_code' => 400, 'description' => 'The shared physical connection of VLAN 0 does not support failover test.'], + ['code' => 'VpcRouteConflict', 'message' => 'Route conflict exists in routing table.', 'http_code' => 400, 'description' => 'Route conflict exists in routing table.'], + ['code' => 'VpcStatusError', 'message' => 'The Vpc is creating .', 'http_code' => null, 'description' => 'The VPC is being created.'], + ['code' => 'VpcSubnet.NotFound', 'message' => 'Vpc subnet not exist.', 'http_code' => 400, 'description' => 'The VPC subnet does not exist.'], + ['code' => 'VpnConnection.Configuring', 'message' => 'The specified service is configuring.', 'http_code' => 400, 'description' => 'The service is being configured. Try again later.'], + ['code' => 'VpnConnection.FinancialLocked', 'message' => 'The specified service is financial locked.', 'http_code' => 400, 'description' => 'The error message returned because the service is locked due to overdue payments.'], + ['code' => 'VpnConnection.InvalidCreateTunnelOptions', 'message' => 'The master and slave tunnels must be created at the same time.', 'http_code' => 400, 'description' => 'The primary and secondary tunnels must be created at the same time.'], + ['code' => 'VpnConnection.SameVpnAndCgwDifferentIkeConfigs', 'message' => 'If the same VPN is not supported, different VPN connections are configured with different Ike configurations when the same customer gateway is used.', 'http_code' => 400, 'description' => 'If the same VPN is not supported, different VPN connections are configured with different Ike configurations when the same customer gateway is used.'], + ['code' => 'VpnConnectionParamInvalid.SameVpnAndCgwDifferentIkeConfigs', 'message' => 'IPSec connections associated with the same user gateway and VPN gateway should have the same pre-shared key and IKE configuration.', 'http_code' => 400, 'description' => 'The pre-shared key and IKE parameters must be the same for IPsec-VPN connections that are associated with the same VPN gateway and customer gateway.'], + ['code' => 'VpnConnectionParamInvalid.SameVpnAndCgwTrafficSelectorOverlap', 'message' => 'Traffic selectors of IPSec connections associated with the same user gateway and VPN gateway should not overlap.', 'http_code' => 400, 'description' => 'The protected data flows of IPsec-VPN connections that are associated with the same VPN gateway and customer gateway cannot overlap.'], + ['code' => 'VpnGateway.Configuring', 'message' => 'The specified service is configuring.', 'http_code' => null, 'description' => 'The service is being configured. Try again later.'], + ['code' => 'VpnGateway.Configuring', 'message' => 'The specified VPN gateway is being configured.', 'http_code' => 500, 'description' => 'The VPN gateway is being configured.'], + ['code' => 'VpnGateway.FinancialLocked', 'message' => 'The specified service is financial locked.', 'http_code' => null, 'description' => 'The service is suspended due to overdue payments. Top up your account first.'], + ['code' => 'VpnGateway.IPsecServerAndVpnConnectionConflict', 'message' => 'The IPSec connection and IPSec server cannot be configured on the same VPN gateway at the same time.', 'http_code' => 400, 'description' => 'You cannot configure an IPsec server and an IPsec-VPN connection at the same time for one VPN gateway.'], + ['code' => 'VpnGateway.IpsecVpnDisabled', 'message' => 'The vpn gateway does not enable IPSec VPN.', 'http_code' => 400, 'description' => 'The IPsec-VPN feature is not enabled for the VPN gateway.'], + ['code' => 'VpnGateway.SslVpnDisabled', 'message' => 'The VPN gateway has not enabled SSL VPN.', 'http_code' => 400, 'description' => 'The SSL-VPN feature is disabled for the VPN gateway.'], + ['code' => 'VpnGateway.task.conflict', 'message' => 'The VPN is in the configuration state, please wait a while before operating.', 'http_code' => 400, 'description' => 'The VPN is in the configuration state, please wait a while before operating.'], + ['code' => 'VpnPbrRouteEntryPriority.NotSupport', 'message' => 'Current version of the VPN does not support setting pbr route entry priority.', 'http_code' => 400, 'description' => 'The VPN gateway version does not allow you to specify priorities for policy-based routes.'], + ['code' => 'VpnPbrRouteEntryPriority.NotSupport', 'message' => 'Current version of the VPN does not support setting custom pbr route entry priority.', 'http_code' => 400, 'description' => 'The VPN gateway of the current version does not allow you to set route priorities.'], + ['code' => 'VpnRouteEntry.AlreadyExists', 'message' => 'The specified route entry is already exist.', 'http_code' => 400, 'description' => 'The route already exists.'], + ['code' => 'VpnRouteEntry.BackupRoute', 'message' => 'Validate backup route entry failed.', 'http_code' => 400, 'description' => 'Active/standby routes failed authentication.'], + ['code' => 'VpnRouteEntry.Configuring', 'message' => 'The specified route entry is configuring.', 'http_code' => 400, 'description' => 'The error message returned because the specified route is being configured.'], + ['code' => 'VpnRouteEntry.Conflict', 'message' => 'The specified route entry has conflict.', 'http_code' => 400, 'description' => 'Route conflicts exist.'], + ['code' => 'VpnRouteEntry.Conflict', 'message' => 'The specified client IP pool conflicts with VPN connection or SSL server.', 'http_code' => 400, 'description' => 'The specified client IP pool conflicts with the VPN connection or the SSL server.'], + ['code' => 'VpnRouteEntry.ConflictSSL', 'message' => 'The specified route entry has conflict with SSL client.', 'http_code' => 400, 'description' => 'The route conflicts with the SSL client.'], + ['code' => 'VpnRouteEntry.InvalidWeight', 'message' => 'Invalid route entry weight value.', 'http_code' => 400, 'description' => 'The weight specified for the route is invalid.'], + ['code' => 'VpnRouteEntry.SamePriorityPbrRoutePrefixOverlap', 'message' => 'The source CIDR and destination CIDR of Policy-based routes with the same priority cannot overlap.', 'http_code' => 400, 'description' => 'VPN Gateway does not support policy-based routes that have the same priority and overlapping source CIDR blocks and destination CIDR blocks.'], + ['code' => 'VpnRouteEntry.SrcDestConflict', 'message' => 'The VPN gateway does not support Policy-based routing with the same source CIDR and destination CIDR.', 'http_code' => 400, 'description' => 'The source CIDR block and destination CIDR block of a policy-based route for a dual-tunnel VPN gateway cannot be the same.'], + ['code' => 'VpnRouteEntry.SrcDestWeightConflict', 'message' => 'The VPN gateway does not support Policy-based routing with the same source CIDR, destination CIDR and weight.', 'http_code' => 400, 'description' => 'VPN Gateway does not support policy-based routes that have the same source CIDR block, destination CIDR block, and weight.'], + ['code' => 'VpnTask.CONFLICT', 'message' => 'Vpn task has conflict.', 'http_code' => 400, 'description' => 'The VPN operation conflicts. Try again later.'], + ['code' => 'VpnUnderStock', 'message' => 'There are not enough vpn gateways in stock', 'http_code' => null, 'description' => 'The VPN gateway inventory is insufficient.'], + ['code' => 'VRouterId.NotFound', 'message' => 'The VRouter not found.', 'http_code' => 404, 'description' => 'The specified vRouter cannot be found.'], + ['code' => 'VswitchStatusError', 'message' => 'The VSwitch is creating .', 'http_code' => null, 'description' => 'The operation is not supported when the vSwitch is being created.'], + ['code' => 'ZONE_NO_AVAILABLE_IP', 'message' => 'The Zone have no available ip.', 'http_code' => null, 'description' => 'No IP address is available in the zone.'], + ['code' => 'OperationDenied.UnSupportedBindTypeCloudInstance', 'message' => 'Internet bandwidth cannot be allocated to the IPv6 address bound to the cloud service instance.', 'http_code' => 400, 'description' => 'the ipv6 ip address associated with the cloud service instance cannot be used for internet bandwidth.'], + ['code' => 'OperationDenied.TrafficMirrorServiceOpened', 'message' => 'The operation is not allowed because the traffic mirror service has been opened.', 'http_code' => 400, 'description' => 'The traffic mirroring service has been activated. Do not repeat the operation.'], + ['code' => 'ResourceNotEnough.Ipv4Prefix', 'message' => 'The resource of %s is not enough.', 'http_code' => 400, 'description' => 'Insufficient Ipv4Prefix resources.'], + ['code' => 'ResourceNotFound.Ipv4Prefix', 'message' => 'The resource of s% is not found.', 'http_code' => 400, 'description' => 'The resource Ipv4Prefix does not exist.'], + ['code' => 'Mismatch.Ipv4PrefixAndCidrReservations', 'message' => 'The %s and %s are mismatched.', 'http_code' => 400, 'description' => 'The reserved network segments of the Ipv4Prefix and VSwitch do not match.'], + ['code' => 'IllegalParam.NatIp', 'message' => 'The param of %s is illegal.', 'http_code' => 400, 'description' => 'The parameter NatIp is illegal.'], + ['code' => 'IllegalParam.Ipv4Prefix', 'message' => 'The param of %s is illegal.', 'http_code' => 400, 'description' => 'The parameter Ipv4Prefix is illegal.'], + ['code' => 'ResourceAlreadyAssociated.Ipv4Prefix', 'message' => '%s is already associated.', 'http_code' => 400, 'description' => 'Ipv4Prefix have been allocated.'], + ['code' => 'ResourceAlreadyAssociated.NatIp', 'message' => 'The resource of %s was already associated.', 'http_code' => 400, 'description' => 'NatIp resources have been allocated.'], + ['code' => 'MissingParam.DhcpOptionsSetId', 'message' => 'Missing parameter DhcpOptionsSetId.', 'http_code' => 400, 'description' => 'Missing parameter DhcpOptionsSetId'], + ['code' => 'UnsupportedFeature.RouteTargetGroup', 'message' => 'The feature of RouteTargetGroup is not supported.', 'http_code' => 400, 'description' => 'The feature of RouteTargetGroup is not supported.'], + ['code' => 'ResourceNotFound.RouteTargetGroup', 'message' => 'The specified resource of %s is not found.', 'http_code' => 400, 'description' => 'The specified resource% s does not exist.'], + ['code' => 'MissingParam.MinRxInterval', 'message' => 'The parameter MinRxInterval is mandatory.', 'http_code' => 400, 'description' => 'Missing parameter MinRxInterval. When configuring BFD packets, you need to configure three parameters: the sending interval, the receiving interval, and the detection time multiple.'], + ['code' => 'MissingParam.MinTxInterval', 'message' => 'The parameter MinTxInterval is mandatory.', 'http_code' => 400, 'description' => 'Missing parameter MinTxInterval. When configuring BFD packets, you need to configure three parameters: the sending interval, the receiving interval, and the detection time multiple.'], + ['code' => 'MissingParam.DetectMultiplier', 'message' => 'The parameter DetectMultiplier is mandatory.', 'http_code' => 400, 'description' => 'Missing parameter DetectMultiplier. When configuring BFD packets, you need to configure three parameters: the sending interval, the receiving interval, and the detection time multiple.'], + ['code' => 'OperationFailed.ResourceNotEnough', 'message' => 'Insufficient resources.', 'http_code' => 400, 'description' => 'The resources that you request are insufficient. If you still want to request the resources, submit a ticket.'], + ['code' => 'ResourceNotFound.Ipv4Prefix', 'message' => 'The resource of s% is not found.', 'http_code' => 404, 'description' => 'The resource Ipv4Prefix does not exist.'], + ['code' => 'IllegalParam.Ipv4Prefix', 'message' => 'The param of s% is illegal, must be /28 network segment.', 'http_code' => 400, 'description' => 'The Ipv4Prefix parameter is invalid and must be in the/28 network segment.'], + ['code' => 'DependencyViolation.Ipv4Prefix', 'message' => 'The specified resource of %s depends on %s, so the operation cannot be completed.', 'http_code' => 400, 'description' => 'NatIp belongs to Ipv4Prefix and cannot be deleted separately. Please delete the Ipv4Prefix directly.'], + ['code' => 'IllegalParam.Ipv4Prefix', 'message' => 'The param of %s is illegal, must be /28 network segment.', 'http_code' => 400, 'description' => 'The parameter Ipv4Prefix is invalid and must be/28 network segment.'], + ['code' => 'DependencyViolation.SnatEntry', 'message' => 'The specified resource of %s depends on %s, so the operation cannot be completed.', 'http_code' => 400, 'description' => 'The SnatEntry associated with NatIp or Ipv4Prefix cannot be deleted. Delete the dependent Snat and delete it again.'], + ['code' => 'ResourceNotFound.Ipv4Prefix', 'message' => 'The specified resource of %s is not found.', 'http_code' => 404, 'description' => 'Resource Ipv4Prefix not found, please check that the Ipv4Prefix exists.'], + ['code' => 'ResourceAlreadyExist.Ipv4Prefix', 'message' => 'The specified resource of %s is already exist.', 'http_code' => 400, 'description' => 'This Ipv4Prefix has already been created. Do not re-create it.'], + ['code' => 'OperationDenied.ConfigWithSameAz', 'message' => 'The operation is not allowed because of all config in the same availableZone.', 'http_code' => 400, 'description' => 'The operation is not allowed because of all config in the same availableZone.'], + ['code' => 'OperationDenied.DiffInstanceType', 'message' => 'The operation is not allowed because of %s.', 'http_code' => 400, 'description' => 'The instance types configured for the route target group must be the same.'], + ['code' => 'Mismatch.GroupVpcIdAndInstanceVpcId', 'message' => 'The RouteTargetGroup VPC %s and the RouteTargetConfig VPC %s are mismatched.', 'http_code' => 400, 'description' => 'The VPC to which the route target group belongs is different from the VPC to which the route target configuration instance belongs.'], + ['code' => 'OperationDenied.UpdateEnableRouteTargetConfig', 'message' => 'The operation is not allowed because of The RouteTargetConfig which is in Enable status can not be update.', 'http_code' => 400, 'description' => 'The operation is not allowed because of The RouteTargetConfig which is in Enable status can not be update.'], + ['code' => 'IncorrectStatus.RouteTargetGroup', 'message' => 'The status of %s [%s] is incorrect.', 'http_code' => 400, 'description' => 'The current state of the RouteTargetGroup prohibits the operation.'], + ['code' => 'OperationDenied.UpdateConfigInstanceType', 'message' => 'The operation is not allowed because of can not update instance type.', 'http_code' => 400, 'description' => 'The operation is not allowed because of can not update instance type.'], + ['code' => 'IncorrectStatus.TransitRouter', 'message' => 'The status of transit router is not stable, so the operation cannot be completed.', 'http_code' => 400, 'description' => 'The resources associated with the VPC are not stable, such as CEN. Try again later.'], + ['code' => 'OperationDenied.NotSupportBondEniAsTrafficMirrorSource', 'message' => 'The operation is not allowed because bond eni cannot be the source of traffic mirror.', 'http_code' => 400, 'description' => 'Bond eni is not allowed to be the source of traffic mirror.'], + ['code' => 'InvalidRouteEntry.NotFound', 'message' => 'vpc route entry not exist.', 'http_code' => 400, 'description' => 'the vpc routing table entry does not exist'], + ['code' => 'OperationDenied.ExistVbrInPhysicalConnection', 'message' => 'It cannot be deleted when VBR exists.', 'http_code' => 400, 'description' => 'When a virtual border router exists under a physical port, it cannot be deleted.'], + ['code' => 'OperationDenied.NeedVpconnOwnerOrPconnOwner', 'message' => 'The deletion failed. Only the owner of virtual physical connection or physical connection can delete it.', 'http_code' => 400, 'description' => 'The deletion failed. Only the owner of virtual physical connection or physical connection can delete it.'], + ['code' => 'OperationDenied.PhysicalConnectionNotSupportMPBGPAndMPBGP-v6', 'message' => 'The operation is not allowed because this physical connection not support MPBGP and MPBGP-v6.', 'http_code' => 400, 'description' => 'The operation is not allowed because the current physical port does not support advanced capabilities such as MPBGP and MPBGP-v6.'], + ['code' => 'OperationDenied.QuotaExceededWithNetworkAcl', 'message' => 'If the prefix list increases MaxEntries, the quota for the maximum number of entries for the associated network ACL instance %s is exceeded.', 'http_code' => 400, 'description' => 'If the prefix list increases the maximum number of entries, the quota for the maximum number of entries for the associated network ACL instance is exceeded.'], + ['code' => 'OperationDenied.IpVersionInconsistencyWithPrefixList', 'message' => 'The ip version of the prefix list %s you passed in is inconsistent with the actual ip version of the prefix list.', 'http_code' => 400, 'description' => 'the ip version of the prefix list you passed in is inconsistent with the actual ip version of the prefix list.'], + ['code' => 'OperationFailed.InstanceNotSupport', 'message' => 'natgateway not support ipv4prefix.', 'http_code' => 400, 'description' => 'The gateway does not support Ipv4Prefix.'], + ['code' => 'QuotaExceeded.Ipv4Prefix', 'message' => 'The quota of %s is exceeded, usage %s/%s.', 'http_code' => 400, 'description' => 'Ipv4Prefix quota usage overflow.'], + ['code' => 'QuotaExceeded.NatIp', 'message' => 'The quota of %s is exceeded, usage %s/%s.', 'http_code' => 400, 'description' => 'NatIp and Ipv4Prefix quota use overflow.'], + ['code' => 'MissingParam.RelationKey', 'message' => 'The parameter RelationKey is mandatory.', 'http_code' => 400, 'description' => 'Parameters'], + ['code' => 'OperationDenied.ZoneIsRetiring', 'message' => 'The specified zone is being retired. You cannot create a vSwitch in a retiring zone.', 'http_code' => 400, 'description' => 'The specified zone is being retired. You cannot create a vSwitch in a retiring zone.'], + ['code' => 'OperationDenied.MemberWithSameAz', 'message' => 'The operation is not allowed because of all members being in the same availability zone.', 'http_code' => 400, 'description' => 'The operation is not allowed because of all members being in the same availability zone.'], + ['code' => 'OperationDenied.UpdateMemberType', 'message' => 'The operation is not allowed because of the inability to update memberType.', 'http_code' => 400, 'description' => 'The operation is not allowed because of the inability to update memberType.'], + ['code' => 'OperationDenied.UpdateEnableRouteTargetMember', 'message' => 'The operation is not allowed because of the inability to update the RouteTargetConfig when it is in the enabled state.', 'http_code' => 400, 'description' => 'The operation is not allowed because of the inability to update the RouteTargetConfig when it is in the enabled state.'], + ['code' => 'OperationDenied.NetworkAclAttachmentInMiddleStatus', 'message' => 'The network ACL is being bound to or unbound from the switch.', 'http_code' => 400, 'description' => 'The network ACL is being bound to or unbound from the switch.'], + ['code' => 'OperationDenied.ZoneIsDisabled', 'message' => 'The specified zone is disabled. You cannot create a vSwitch in a disabled zone.', 'http_code' => 400, 'description' => 'The specified zone is disabled. You cannot create a vSwitch in a disabled zone.'], + ['code' => 'OperationDenied.UpdateEnableRouteTargetMember', 'message' => 'The operation is not allowed because of the inability to update the RouteTargetMember when it is in the enabled state.', 'http_code' => 400, 'description' => 'The operation is not allowed because of the inability to update the RouteTargetMember when it is in the enabled state.'], + ['code' => 'OperationDenied.SwitchToAbnormalMember', 'message' => 'The operation is not allowed because of the inability to switch the RouteTargetMember when the disabled member is in an unhealthy state.', 'http_code' => 400, 'description' => 'The operation is not allowed because of the inability to switch the RouteTargetMember when the disabled member is in an unhealthy state.'], + ['code' => 'InvalidRegionId.NotFound', 'message' => 'The regionId provided does not exist in our records.', 'http_code' => 400, 'description' => 'The RegionId parameter is set to an invalid value. Specify a valid value and try again.'], + ['code' => 'InvalidRegionId.NotFound', 'message' => 'The specified RegionId is not found.', 'http_code' => 400, 'description' => 'The specified region ID is invalid. Check whether the service is available in the specified region.'], + ['code' => 'IncorrectClassicLinkStatus', 'message' => 'Specified VPC classicLink enabled.', 'http_code' => 400, 'description' => 'ClassicLink is already enabled for the VPC.'], + ['code' => 'DependencyViolation.Instance', 'message' => 'ClassicLink Instances exist in VPC.', 'http_code' => 400, 'description' => 'Instances exist in the VPC and the VPC cannot be deleted.'], + ['code' => 'InvalidRegionId.NotFound', 'message' => 'The specified RegionId does not exist.', 'http_code' => 400, 'description' => 'The specified region does not exist.'], + ['code' => 'IncorrectRouteTableStatus', 'message' => 'The current status of the route table does not support this operation.', 'http_code' => 400, 'description' => 'You cannot delete the route table in the current state.'], + ['code' => 'InvalidRouterId.AttacedToCEN', 'message' => 'Can not create ri when attaced to CEN.', 'http_code' => 400, 'description' => 'You cannot attach the router interface to the CEN instance.'], + ['code' => 'InvalidRegionId.NotFound', 'message' => 'The parameter wrong, pageNum or pageSize.', 'http_code' => 400, 'description' => 'The parameter is set to an invalid value.'], + ['code' => 'DependencyViolation.VSwitchCidrReservation', 'message' => 'VSwitch cannot be deleted when vswitch cidr reservation exist.', 'http_code' => 400, 'description' => 'The error message returned because a CIDR block is reserved for the vSwitch and the vSwitch cannot be deleted.'], + ['code' => 'Forbidden.RegionNotFound', 'message' => 'Specified instance is not found during access authentication.', 'http_code' => 400, 'description' => 'The error message returned because the region is not supported.'], + ['code' => 'OperationUnsupported.SystemRouteTable', 'message' => 'System route table can not be unassociated.', 'http_code' => 400, 'description' => 'You cannot disassociate the system route table.'], + ['code' => 'OperationFailed.RouteConflict', 'message' => 'Operation failed because a specified route entry is already exist.', 'http_code' => 400, 'description' => 'The operation conflicts with an existing route.'], + ['code' => 'OperationFailed.ServiceManaged', 'message' => 'Operation is forbidden because this instance belongs to Service manager.', 'http_code' => 400, 'description' => 'A managed instance does not support this operation.'], + ['code' => 'QuotaExceeded.RouteTargetGroup', 'message' => 'The quota of %s is exceeded, usage %s/%s.', 'http_code' => 400, 'description' => 'The quota of %s is exceeded, usage %s/%s.'], + ['code' => 'UnsupportedFeature.UserDefinedTrafficPathIpv6', 'message' => 'Dual-stack flow log instances do not support custom trafficPath.', 'http_code' => 400, 'description' => 'Dual-stack flow log instances do not support custom trafficPath.'], + ['code' => 'OperationFailed.TokenExpired', 'message' => 'The operation is failed because of TokenExpired.', 'http_code' => 400, 'description' => 'the specified eip allocation token has expired'], + ['code' => 'OperationDeny.VbrWithVlan0', 'message' => 'The specified VirtualBorderRouter with vlan 0 does not support shutdown.', 'http_code' => 400, 'description' => 'The entered VBR VLAN is 0. Fault drill is not supported. Please use the physical connection for fault drill.'], + ['code' => 'ExclusiveParam.AccessIpAndAccessDomain', 'message' => 'The specified AccessIp and AccessDomain are mutually exclusive.', 'http_code' => 400, 'description' => 'The specified input AccessIp conflicts with the AccessDomain.'], + ['code' => 'IllegalParam.AccessDomain', 'message' => 'The request parameter AccessDomain is illegal.', 'http_code' => 400, 'description' => 'The AccessDomain parameter in the request parameter is invalid.'], + ['code' => 'DependencyViolation.IpsecServer', 'message' => 'There is Ipsec VPN server on specified vpn gateway not deleted.', 'http_code' => 400, 'description' => 'The error message returned because the IPsec VPN server on specified vpn gateway is not deleted.'], + ['code' => 'VpnPbrRouteEntry.NotSupport', 'message' => 'Current version of the VPN does not support pbr route entry.', 'http_code' => 400, 'description' => 'Current version of the VPN does not support pbr route entry.'], + ['code' => 'OperationUnsupported.LargeTunnelBandwidth', 'message' => 'Large tunnelBandwidth VpnAttachment is unsupported.', 'http_code' => 400, 'description' => 'Large tunnelBandwidth VpnAttachment is unsupported.'], + ['code' => 'IllegalParam.TunnelBandwidth', 'message' => 'TunnelBandwidth is illegal.', 'http_code' => 400, 'description' => 'TunnelBandwidth is illegal.'], + ['code' => 'EncAlgInvalid.DesIncompatible', 'message' => 'Des/3des in IkeEncAlg and IpsecEncAlg does not support multi algorithm.', 'http_code' => 400, 'description' => 'Des/3des in IkeEncAlg and IpsecEncAlg does not support multi algorithm.'], + ['code' => 'CustomerGateway.ConflictVpnIp', 'message' => 'The specified customer gateway has conflict with vpn gateway ip.', 'http_code' => 400, 'description' => 'The specified customer gateway has conflict with vpn gateway ip.'], + ['code' => 'IkeVersionInvalid.GcmIncompatible', 'message' => 'Ikev1 does not support IkeEncAlg of gcm16.', 'http_code' => 400, 'description' => 'Ikev1 does not support IkeEncAlg of gcm16.'], + ['code' => 'IncorrectStatus.PhysicalConnection', 'message' => 'The status of %s [%s] is incorrect.', 'http_code' => 400, 'description' => 'The status of the physical connection does not support this operation.'], + ['code' => 'UnsupportedFeature.Macsec', 'message' => 'The feature of Macsec is not supported.', 'http_code' => 400, 'description' => 'The current physical connection does not support the MACSec feature.'], + ['code' => 'UnsupportedFeature.Macsec.CipherSuit', 'message' => 'The feature of Macsec.CipherSuit is not supported.', 'http_code' => 400, 'description' => 'The current physical connection supports MACSec, but the selected encryption algorithm is not supported.'], + ['code' => 'IncorrectStatus.PconnMacsec', 'message' => 'The status of %s [%s] is incorrect.', 'http_code' => 400, 'description' => 'The operation is not allowed because the MACSec key is in an unstable state.'], + ['code' => 'QuotaExceeded.PconnMacsec', 'message' => 'The quota of PconnMacsec is exceeded, usage 3/3.', 'http_code' => 400, 'description' => 'A physical connection supports binding up to three sets of MACSec keys.'], + ['code' => 'ResourceNotFound.PconnMacsec', 'message' => 'The specified resource of %s is not found.', 'http_code' => 400, 'description' => 'The Ckn to be disassociated does not exist.'], + ['code' => 'UnsupportedFeature.Macsec.CipherSuite', 'message' => 'The feature of Macsec.CipherSuite is not supported.', 'http_code' => 400, 'description' => 'The current physical connection supports MACSec, but does not support the selected encryption algorithm.'], + ['code' => 'OperationDenied.MacsecAttached', 'message' => 'The operation is not allowed because of MacsecAttached.', 'http_code' => 400, 'description' => 'The current operation is rejected because there is still a MACSec key binding on the physical connection.'], + ['code' => 'DependencyViolation.RouteEntry', 'message' => 'RouteEntry %s depends on the resource %s.', 'http_code' => 400, 'description' => 'The current resource is still relied upon by the routing entry.'], + ['code' => 'IncorrectStatus.TrafficMirrorSessionTarget', 'message' => 'The status of the target of the traffic mirror session is incorrect.', 'http_code' => 400, 'description' => 'The status of the intent of the traffic mirroring session is incorrect.'], + ['code' => 'IncorrectStatus.TrafficMirrorSessionSource', 'message' => 'Incorrect status for source of traffic mirror session.', 'http_code' => 400, 'description' => 'Incorrect state for source of traffic mirroring session'], + ['code' => 'OperationUnsupported.EipNatGWCheck', 'message' => 'The operation failed because the EIP is not bound to this NAT Gateway.', 'http_code' => 400, 'description' => 'The operation failed because the EIP is not bound to this NAT Gateway.'], + ['code' => 'OperationFailed.SnatIpPoolCbwpRules', 'message' => 'The operation failed because the SNAT rule IPs are added to multi bandwidth packages.', 'http_code' => 400, 'description' => 'The operation failed because the SNAT rule IP address pool was added to multiple bandwidth packages.'], + ['code' => 'IncorrectStatus.SnatEntry', 'message' => 'The SNAT rule status is invalid. Please try again later.', 'http_code' => 400, 'description' => 'The SNAT rule is in the intermediate state, or the status is abnormal. Please try again later.'], + ['code' => 'IncorrectStatus.NatIp', 'message' => 'NatIp status is invalid, please try again later.', 'http_code' => 400, 'description' => 'NatIp is in intermediate state, please try again later.'], + ['code' => 'OperationUnsupported.EipNatIpCheck', 'message' => 'The operation failed because the EIP is not bound to this NAT gateway.', 'http_code' => 400, 'description' => 'The operation failed because the EIP is not bound to this NAT gateway.'], + ['code' => 'OperationFailed.SnatIpPoolBwpRules', 'message' => 'The operation failed because the IP in Snat entryl was added to multiple NAT bandwidth packets.', 'http_code' => 400, 'description' => 'The operation failed because the IP in the SNAT rule IP address pool was added to multiple NAT bandwidth packets.'], + ['code' => 'OperationUnsupported.EnhancedRegion', 'message' => 'Region not support.', 'http_code' => 400, 'description' => 'The current region is temporarily not supported.'], + ['code' => 'OperationFailed.CreateNatGateway', 'message' => 'Failed to create the NAT gateway.', 'http_code' => 400, 'description' => 'Failed to create the NAT gateway.'], + ['code' => 'IncorrectStatus.RouteTableStatus', 'message' => 'The route table status is invaild. Please try again later.', 'http_code' => 400, 'description' => 'The routing table status does not support this operation. Please try again later.'], + ['code' => 'ZoneUnsupported.FullNatDomain', 'message' => 'The current zone does not support the configuration of the FullNat rule domain name.', 'http_code' => 400, 'description' => 'The current zone does not support the configuration of the FullNat rule domain name.'], + ['code' => 'InstanceUnsupported.FullNatDomain', 'message' => 'The current instance does not support the configuration of the FullNat rule domain name.', 'http_code' => 400, 'description' => 'The current instance does not support the configuration of the FullNat rule domain name.'], + ['code' => 'OrderError.BasicInfoUncompleted', 'message' => 'Order basic parameter is not completed.', 'http_code' => 400, 'description' => 'Order error, basic parameter information incomplete.'], + ['code' => 'OrderError.NoAvailablePaymentMethod', 'message' => 'Order payment parameter is not available.', 'http_code' => 400, 'description' => 'Order error. The payment type parameter is not available.'], + ['code' => 'OperationUnsupported.EnhancedCURegion', 'message' => 'Operation failed because of this region not unsupported.', 'http_code' => 400, 'description' => 'Operation failed due to unsupported pay-as-you-go region'], + ['code' => 'OperationUnsupported.User', 'message' => 'The current user does not support this operation.', 'http_code' => 400, 'description' => 'The current user does not support this operation.'], + ['code' => 'Instance.NotFound', 'message' => 'instance not found.', 'http_code' => 400, 'description' => 'The instance does not exist or does not belong to the current user.'], + ['code' => 'OperationFailed.SnatIpsCheck', 'message' => 'The operation fails because some IPs address in the SNAT entry are not added to common bandwidth packet.', 'http_code' => 400, 'description' => 'The operation fails because the IP address in the Snat rule IP address pool is not added to the shared bandwidth packet.'], + ['code' => 'NatInstance.NotFound', 'message' => 'Instance not found.', 'http_code' => 400, 'description' => 'The instance does not exist or does not belong to the current user.'], + ['code' => 'OperationUnsupported.Region', 'message' => 'Operation unsupport this region parameter.', 'http_code' => 400, 'description' => 'This operation does not support the region parameter'], + ['code' => 'OperationUnsupported.QueryCurrentMonthTraffic', 'message' => 'The operation is not allowed because current month traffic query is not supported under 95 billing mode.', 'http_code' => 400, 'description' => 'Querying the current month traffic data in the 95 billing mode is not supported.'], + ['code' => 'OperationFailed.MalformedPolicyDocument', 'message' => 'The policy format is invalid.', 'http_code' => 400, 'description' => 'The policy format is invalid.'], + ['code' => 'OperationFailed.ResourceLockedBySystem', 'message' => 'The specified resource is locked by system.', 'http_code' => 400, 'description' => 'The operating resource is locked by the system and cannot be operated temporarily.'], + ['code' => 'ParamExclusive.CidrBlockAndIpv6Only', 'message' => 'The combination of parameters is incorrect. ipv6only can only be used when the ipv4CidrBlock parameter is not set.', 'http_code' => 400, 'description' => 'CidrBlock or CidrMask cannot be specified in Ipv6Only mode.'], + ['code' => 'InvalidParameter.SingleZone', 'message' => 'Operation failed because current user not support create single zone nat.', 'http_code' => 400, 'description' => 'current user is not allowed to create a single az nat'], + ['code' => 'OperationDenied.AttachedToECR', 'message' => 'The operation is not allowed because the VPC is attached to ECR %s.', 'http_code' => 400, 'description' => 'The operation is not allowed because the VPC is attached to ECR %s.'], + ['code' => 'InvalidParameter.DeviceAdvancedCapacity', 'message' => 'Invalid physical connection device advanced capacity.', 'http_code' => 400, 'description' => 'The advanced port capability is temporarily not supported. Please confirm and try again.'], + ['code' => 'OperationFailed.Ipv4GatewayNotAssociatedWithGatewayRouteTable', 'message' => 'The operation failed because the specified IPv4 gateway of the VPC is not associated with any gateway route table.', 'http_code' => 400, 'description' => 'The operation failed because the specified IPv4 gateway of the VPC is not associated with any gateway route table.'], + ['code' => 'InvalidParam.RouterId', 'message' => 'The parameter value cannot be null.', 'http_code' => 400, 'description' => 'The router ID associated with the router interface cannot be empty. Check and try again.'], + ['code' => 'OperationDenied.RouterInterfaceStatusNotAllowed', 'message' => 'The operation is not allowed because of RouterInterfaceStatusNotAllowed.', 'http_code' => 400, 'description' => 'The router interface status is abnormal.'], + ['code' => 'OperationFailed.InvalidRouterType', 'message' => 'The operation is failed because of %s.', 'http_code' => 400, 'description' => 'Invalid router type.'], + ['code' => 'VpnDependencyViolation.VpnConnection', 'message' => 'There are vpn connections on specified vpn gateway not deleted.', 'http_code' => 400, 'description' => 'The error message returned because VPN connections to the specified vpn gateway are not deleted.'], + ['code' => 'OperationDenied.CidrMaskTooSmall', 'message' => 'The operation is denied because the CIDR mask %s is less than the allocationMinNetmask %s of the pool.', 'http_code' => 400, 'description' => 'The operation is denied because the CIDR mask %s is less than the allocationMinNetmask %s of the pool.'], + ['code' => 'OperationDenied.CidrMaskTooLarge', 'message' => 'The operation is denied because the CIDR mask %s is larger than the allocationMaxNetmask %s of the pool.', 'http_code' => 400, 'description' => 'The operation is denied because the CIDR mask %s is larger than the allocationMaxNetmask %s of the pool.'], + ['code' => 'OperationDenied.ExistsInRouteTargetGroup', 'message' => 'NatGateway cannot close icmp reply, because this nat gateway exists in route target group.', 'http_code' => 400, 'description' => 'The NAT gateway is referenced by the route destination group. You are not allowed to disable the ICMP Pickup function.'], + ['code' => 'DependencyViolation.RouteTargetGroup', 'message' => 'There are route target group on the NatGateway. please delete it first.', 'http_code' => 400, 'description' => 'The current NAT gateway has a routing target group reference. Delete the reference first.'], + ['code' => 'OperationFailed.Ipv6AddressNotBind', 'message' => 'The specified next hop has no IPv6 address.', 'http_code' => 400, 'description' => 'The next hop of an ipv6 route entry does not have any ipv6 address'], + ['code' => 'OperationDenied.NatGatewayNotSingleAZ', 'message' => 'NAT gateway must be in SingleAZ mode.', 'http_code' => 400, 'description' => 'A route target group only supports NAT gateways of a single AZ type.'], + ['code' => 'OperationDenied.NatGatewayIcmpReplyDisabled', 'message' => 'NAT gateway ICMP reply is disabled.', 'http_code' => 400, 'description' => 'The NAT gateway in the route target group must enable the ICMP return function to ensure that ICMP detection packets can be responded to normally.'], + ['code' => 'UnsupportedFeature.RouteTargetGroupForNat', 'message' => 'This region currently does not support NAT gateways as route target group members.', 'http_code' => 400, 'description' => 'The region does not support the NAT Gateway as a member of the route target group.'], + ['code' => 'ResourceNotFound.NatGateway', 'message' => 'The selected NAT gateway was not found when creating or modifying the route target group.', 'http_code' => 400, 'description' => 'The selected NAT gateway resource is not discovered when creating or modifying the routing target group.'], + ['code' => 'ResourceNotFound.NatGatewayVSwitch', 'message' => 'The VSwitch information associated with the selected NAT gateway was not found.', 'http_code' => 400, 'description' => 'VSwitch information associated with the selected NAT gateway was not found.'], + ['code' => 'OperationDenied.IllegalRouteTargetGroupMemberType', 'message' => 'This operation does not support route target groups with NAT gateway members.', 'http_code' => 400, 'description' => 'The current operation does not support routing target groups with members of the NAT gateway type.'], + ['code' => 'OperationFailed.IpNotExist', 'message' => 'The specified IP address does not exist.', 'http_code' => 400, 'description' => 'IP does not exist'], + ['code' => 'MissingParam.EcrInstanceId', 'message' => 'The param of EcrInstanceId is missing.', 'http_code' => 400, 'description' => 'The parameter EcrInstanceId is missing.'], + ['code' => 'InvalidParam.OwnerId', 'message' => 'The OwnerId parameter is invalid.', 'http_code' => 400, 'description' => 'The parameter OwnerId is invalid. Check whether the parameter is correct and try again.'], + ['code' => 'Throttling.DeepPageSkip', 'message' => 'Deep page skip throttled. Please reduce the page skip frequency or use sequential pagination.', 'http_code' => 400, 'description' => 'The number of deep pagination skip operations has triggered rate limiting. Reduce the frequency of deep page jumps, or use sequential paging.'], + ['code' => 'Conflict.VSwitchCidrReservationParam', 'message' => 'IpPrefixNumber cannot be used together with VSwitchCidrReservationCidr or VSwitchCidrReservationMask.', 'http_code' => 400, 'description' => 'IpPrefixNumber cannot be used together with VSwitchCidrReservationCidr or VSwitchCidrReservationMask.'], + ['code' => 'MissingParam.VSwitchCidrReservationParam', 'message' => 'One of IpPrefixNumber, VSwitchCidrReservationMask, or VSwitchCidrReservationCidr must be specified.', 'http_code' => 400, 'description' => 'One of IpPrefixNumber, VSwitchCidrReservationMask, or VSwitchCidrReservationCidr must be specified. '], + ['code' => 'IllegalParam.ReservedType', 'message' => 'IpPrefixNumber is only supported with Prefix reserved type.', 'http_code' => 400, 'description' => 'IpPrefixNumber is only supported with Prefix reserved type.'], + ['code' => 'InvalidVSwitchId.SecondVswitchNotSupport', 'message' => 'The zone of the DisasterRecoveryVSwitch does not support creating a ha-tunnel VPN.', 'http_code' => 400, 'description' => 'The zone of the DisasterRecoveryVSwitch does not support creating a ha-tunnel VPN.'], + ['code' => 'MissingParam.DisasterRecoveryVSwitchId', 'message' => 'The parameter DisasterRecoveryVSwitchId is missing.', 'http_code' => 400, 'description' => 'The parameter DisasterRecoveryVSwitchId is missing.'], + ['code' => 'InvalidDisasterRecoveryVSwitchId.NotFound', 'message' => 'The specified DisasterRecoveryVSwitchId does not exist in the specified region.', 'http_code' => 400, 'description' => 'The specified DisasterRecoveryVSwitchId does not exist in the specified region.'], + ['code' => 'CustomerGateway.AsnNotConfigured', 'message' => 'ASN of CustomerGateway is required when enabling BGP on an IPSec connection.', 'http_code' => 400, 'description' => 'When BGP is enabled for IPSec connection, ASN needs to be configured on the customer gateway.'], + ['code' => 'InvalidPbrRouteEntry.NotFound', 'message' => 'The specified PBR route entry does not exist.', 'http_code' => 404, 'description' => 'The specified PBR route does not exist.'], + ['code' => 'OperationDenied.CidrBlockOverlapped', 'message' => 'The operation is not allowed because the target CIDR block overlaps with %s.', 'http_code' => 400, 'description' => 'The target CIDR block overlaps with the existing CIDR block %s in the VPC.'], + ['code' => 'OperationDenied.TargetCidrAndOriginalCidrNotOverlap', 'message' => 'The operation is not allowed because the target CIDR block and the original CIDR block do not overlap.', 'http_code' => 400, 'description' => 'The target CIDR block does not overlap with the original CIDR block. The CIDR block resize requires an overlap between them.'], + ['code' => 'MissingParam.CidrBlockOrSecondaryCidrBlock', 'message' => 'The param of CidrBlockOrSecondaryCidrBlock is missing.', 'http_code' => 400, 'description' => 'At least one of the CidrBlock and SecondaryCidrBlock parameters must be specified.'], + ['code' => 'OperationDenied.CidrBlockInUse', 'message' => 'The operation is not allowed because the target CIDR block is in use by existing vSwitch(es) %s.', 'http_code' => 400, 'description' => 'The target CIDR block does not cover the existing vSwitch CIDR block %s after the CIDR block is shrunk.'], + ['code' => 'OperationDenied.OriginalCidrAndTargetCidrSame', 'message' => 'The operation is not allowed because the original CIDR block and the target CIDR block are the same.', 'http_code' => 400, 'description' => 'The target CIDR block is the same as the original CIDR block. Please specify a different CIDR block.'], + ['code' => 'MissingParam.NewSecondaryCidrBlock', 'message' => 'The param of NewSecondaryCidrBlock is missing.', 'http_code' => 400, 'description' => 'The NewSecondaryCidrBlock parameter is required when modifying a secondary CIDR block.'], + ['code' => 'OperationDenied.SecondaryCidrBlockNotFound', 'message' => 'The operation is not allowed because the specified secondary CIDR block is not found in the VPC.', 'http_code' => 400, 'description' => 'The specified secondary CIDR block does not exist in the current VPC.'], + ['code' => 'ParamExclusive.CidrBlockAndSecondaryCidrBlock', 'message' => 'The param of CidrBlock and SecondaryCidrBlock are mutually exclusive.', 'http_code' => 400, 'description' => 'The CidrBlock and SecondaryCidrBlock parameters are mutually exclusive and cannot be specified at the same time.'], + ['code' => 'CreatePconnFailed.AdvancedCapacity', 'message' => 'Create physical connection failed, no devices match the advanced capacity requirements.', 'http_code' => 400, 'description' => 'Failed to create a physical connection because there is no access device that meets the advanced capabilities of the device.'], + ['code' => 'CreatePconnFailed.OpticalModule', 'message' => 'Create physical connection failed, no devices match the optical module requirements.', 'http_code' => 400, 'description' => 'Failed to create a physical connection. There is no access device matching the input optical module.'], + ['code' => 'CreatePconnFailed.RedundantPconnId', 'message' => 'Create physical connection failed, no devices available after excluding redundant device.', 'http_code' => 400, 'description' => 'Failed to create a physical connection. No eligible access device has been excluded from the redundant connection.'], + ['code' => 'ParamExclusive.CidrBlockAndIpv6Only', 'message' => 'CidrBlock is mutually exclusive with Ipv6Only.', 'http_code' => 400, 'description' => 'CidrBlock and CidrMask are not allowed when Ipv6Only is set to true.'], + ['code' => 'Mismatch.ParamIpv6IspAndIpamPoolIpv6Isp', 'message' => 'The specified IPv6 ISP %s does not match the IPAM pool\'s IPv6 ISP %s.', 'http_code' => 400, 'description' => 'The specified IPv6 ISP does not match the IPv6 ISP configured in the IPAM pool.'], + ['code' => 'OperationDenied.Ipv6CidrBlockAndMaskMutuallyExclusive', 'message' => 'Ipv6CidrBlock and Ipv6CidrMask are mutually exclusive.', 'http_code' => 400, 'description' => 'Ipv6CidrBlock and Ipv6CidrMask are mutually exclusive. You must specify only one of them.'], + ['code' => 'OperationDenied.Ipv6CidrMaskInvalid', 'message' => 'The operation is not allowed because of %s.', 'http_code' => 400, 'description' => 'The operation is not allowed because the specified IPv6 CIDR mask is invalid, only %s is supported.'], + ['code' => 'MissingParam.CidrBlockOrCidrMask', 'message' => 'Either CidrBlock or CidrMask must be specified.', 'http_code' => 400, 'description' => 'Either CidrBlock or CidrMask must be specified for creating a non-IPv6-only VSwitch.'], + ['code' => 'MissingParam.Ipv6CidrBlockOrIpv6CidrMask', 'message' => 'Either Ipv6CidrBlock or Ipv6CidrMask must be specified.', 'http_code' => 400, 'description' => 'Either Ipv6CidrBlock or Ipv6CidrMask must be specified when IPv6 is enabled.'], + ['code' => 'OperationDenied.AvailableCidrInsufficient', 'message' => 'No available CIDR block can be allocated from the VPC.', 'http_code' => 400, 'description' => 'No available CIDR block can be allocated from the VPC for the requested mask.'], + ['code' => 'OperationDenied.CidrBlockAndMaskMutuallyExclusive', 'message' => 'CidrBlock and CidrMask are mutually exclusive.', 'http_code' => 400, 'description' => 'CidrBlock and CidrMask are mutually exclusive. You must specify only one of them.'], + ['code' => 'OperationDenied.HasSecondaryZone', 'message' => 'VSwitch has secondary zone can not operate IPv6.', 'http_code' => 400, 'description' => 'VSwitch with a secondary zone does not support IPv6 operations.'], + ['code' => 'OperationDenied.OriginalCidrNotFound', 'message' => 'The specified original CIDR block is not the primary or secondary CIDR block of the VPC.', 'http_code' => 400, 'description' => 'The specified original CIDR block is not the primary or secondary CIDR block of the VPC.'], + ['code' => 'IncorrectBusinessStatus.PhysicalConnection', 'message' => 'Invalid physical connection business status.', 'http_code' => 400, 'description' => 'The current business status of the physical connection does not support operations.'], + ['code' => 'UnsupportedFeature.DownDelayTime', 'message' => 'DownDelayTime is not supported for VirtualPhysicalConnection.', 'http_code' => 400, 'description' => 'The shared line does not support the configuration state switch delay command.'], + ['code' => 'InvalidParam.DownDelayTime', 'message' => 'The DownDelayTime value is invalid.', 'http_code' => 400, 'description' => 'State switch delay parameter value illegal'], + ['code' => 'UnsupportedFeature.LinkDelay.Device', 'message' => 'The access device does not support LinkDelay configuration.', 'http_code' => 400, 'description' => 'Access device does not support LinkDelay feature'], + ['code' => 'UnsupportedFeature.LinkDelay', 'message' => 'The feature of LinkDelay is not supported.', 'http_code' => 400, 'description' => 'Status switch delay command is not supported'], + ['code' => 'UnsupportedFeature.LinkDelay.Region', 'message' => 'LinkDelay feature is not enabled in region.', 'http_code' => 400, 'description' => 'The current region is not open state switching delay command characteristic switch'], + ['code' => 'Forbidden.MinimumHoldingPeriod', 'message' => 'The EIP is within its minimum holding period.', 'http_code' => 400, 'description' => 'Local ISP can only be released after 30 days of creation. If you want to delete it, please do so after 30 days.'."\n"], + ['code' => 'QuotaExceeded.PoolIpQuantity', 'message' => 'The quota of %s is exceeded, usage %s/%s.', 'http_code' => 400, 'description' => 'The number of IP addresses in the address pool exceeds the quota. If you need to increase the quota, please raise a ticket or contact your account manager.'], + ['code' => 'QuotaExceeded.EipQuota', 'message' => 'The quota of %s is exceeded, usage %s/%s.', 'http_code' => 400, 'description' => 'The Eip quantity quota exceeds the limit. If you need to increase the quota, please raise a ticket or contact your account manager.'], + ['code' => 'EquivalentCuExceeds.Maximum', 'message' => 'Equivalent CU %s exceeds maximum %s.', 'http_code' => 400, 'description' => 'Number of equivalent CUs exceeds the maximum limit.'], + ['code' => 'InvalidCu.ExceedMaximum', 'message' => 'CU %s exceeds maximum %s.', 'http_code' => 400, 'description' => 'The CU exceeds the maximum limit.'], + ['code' => 'InvalidCu.BelowMinimum', 'message' => 'CU %s is below minimum %s.', 'http_code' => 400, 'description' => 'CU is less than the minimum limit.'], + ], + 'changeSet' => [ + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'CreateRouteTable'], ], - 'schemes' => [ - 'http', - 'https', + 'createdAt' => '2025-05-21T02:51:03.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Request parameters changed', 'api' => 'CreateRouteEntries'], + ['description' => 'Request parameters changed', 'api' => 'CreateRouteEntry'], + ['description' => 'Request parameters changed', 'api' => 'DeleteRouteEntries'], + ['description' => 'Request parameters changed', 'api' => 'DeleteRouteEntry'], + ['description' => 'Request parameters changed', 'api' => 'ModifyRouteEntry'], + ], + 'createdAt' => '2025-05-16T02:31:10.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'DeleteIpv6Gateway'], ], - 'security' => [ - [ - 'AK' => [], - ], + 'createdAt' => '2025-05-12T09:56:23.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'CreateVSwitchCidrReservation'], ], - 'operationType' => 'readAndWrite', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'update', - 'riskType' => 'none', - 'chargeType' => 'free', + 'createdAt' => '2025-05-06T12:46:43.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'AllocateEipAddress'], + ['description' => 'Error codes changed', 'api' => 'AllocateIpv6InternetBandwidth'], ], - 'parameters' => [ - [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region where the IPsec server is created.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-shanghai', - ], - ], - [ - 'name' => 'IpsecServerId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The IPsec server ID.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'iss-bp1bo3xuvcxo7ixll****', - ], - ], - [ - 'name' => 'LocalSubnet', - 'in' => 'query', - 'schema' => [ - 'description' => 'The local CIDR blocks, which are the CIDR blocks of the virtual private cloud (VPC) for the client to access.'."\n" - ."\n" - .'Multiple CIDR blocks are separated with commas (,). Example: 192.168.1.0/24,192.168.2.0/24.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '192.168.0.0/24,172.17.0.0/16', - ], - ], - [ - 'name' => 'ClientIpPool', - 'in' => 'query', - 'schema' => [ - 'description' => 'The client CIDR block from which an IP address is allocated to the virtual network interface controller (NIC) of the client.'."\n" - ."\n" - .'> The client CIDR block must not overlap with the CIDR blocks of the VPC.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '10.0.0.0/24', - ], - ], - [ - 'name' => 'IpsecServerName', - 'in' => 'query', - 'schema' => [ - 'description' => 'The name of the IPsec server.'."\n" - ."\n" - .'It must be 1 to 100 characters in length.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'test', - 'maxLength' => 100, - ], - ], - [ - 'name' => 'EffectImmediately', - 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to delete the negotiated IPsec tunnel and initiate the negotiation again. Valid values:'."\n" - ."\n" - .'* **true**: immediately initiates negotiations after the configuration is complete.'."\n" - .'* **false**: initiates negotiations when inbound traffic is detected.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], - ], - [ - 'name' => 'IkeConfig', - 'in' => 'query', - 'schema' => [ - 'description' => 'The configuration of Phase 1 negotiations. Valid values:'."\n" - ."\n" - .'* **IkeVersion**: The IKE version. Valid values: **ikev1** and **ikev2**.'."\n" - .'* **IkeMode**: The IKE negotiation mode. Default value: **main**.'."\n" - .'* **IkeEncAlg**: the encryption algorithm that is used in Phase 1 negotiation. Default value: **aes**.'."\n" - .'* **IkeAuthAlg**: the authentication algorithm that is used in Phase 1 negotiation. Default value: **sha1**.'."\n" - .'* **IkePfs**: The Diffie-Hellman key exchange algorithm that is used in Phase 1 negotiations. Default value: **group2**.'."\n" - .'* **IkeLifetime**: The SA lifetime determined by Phase 1 negotiations. Unit: seconds. Valid values: **0** to **86400**. Default value: **86400**.'."\n" - .'* **LocalId**: The identifier of the IPsec server. Only FQDN and IP address formats are supported.'."\n" - .'* **RemoteId**: the peer identifier. Only FQDN and IP address formats are supported.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '{"IkeVersion":"ikev2","IkeMode":"main","IkeEncAlg":"aes","IkeAuthAlg":"sha1","IkePfs":"group2","IkeLifetime":86400}', - ], - ], - [ - 'name' => 'IpsecConfig', - 'in' => 'query', - 'schema' => [ - 'description' => 'The configuration of Phase 2 negotiation. Valid values:'."\n" - ."\n" - .'* **IpsecEncAlg**: the encryption algorithm that is used in Phase 2 negotiation. Default value: **aes**.'."\n" - .'* **IpsecAuthAlg**: the authentication algorithm that is used in Phase 2 negotiation. Default value: **sha1**.'."\n" - .'* **IpsecPfs**: forwards packets of all protocols. The Diffie-Hellman key exchange algorithm that is used in Phase 2 negotiation. Default value: **group2**.'."\n" - .'* **IpsecLifetime**: the SA lifetime determined by Phase 2 negotiation. Unit: seconds. Valid values: **0** to **86400**. Default value: **86400**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '{"IpsecEncAlg":"aes","IpsecAuthAlg":"sha1","IpsecPfs":"group2","IpsecLifetime":86400}', - ], - ], - [ - 'name' => 'PskEnabled', - 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to enable pre-shared key authentication. If you set the value to **true**, pre-shared key authentication is enabled.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], - ], - [ - 'name' => 'Psk', - 'in' => 'query', - 'schema' => [ - 'description' => 'The pre-shared key.'."\n" - ."\n" - .'The pre-shared key that is used for authentication between the IPsec server and the client. The key must be 1 to 100 characters in length.'."\n" - ."\n" - .'You can call [ListIpsecServers](~~2794120~~) to query keys generated by the system.'."\n" - ."\n" - .'> The pre-shared key of the IPsec server key must be the same as that of the client. Otherwise, the connection between the IPsec server and the client cannot be established.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'Cfd123****', - ], - ], - [ - 'name' => 'ClientToken', - 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'You can use the client to generate a value, and you must make sure that each request has a unique token value. The client token can contain only ASCII characters.'."\n" - ."\n" - .'> If you do not specify this parameter, the system automatically uses the value of **RequestId** as the value of **ClientToken**. The **request ID** may be different for each request.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'e4567-e89b-12d3-a456-42665544****', - ], - ], - [ - 'name' => 'DryRun', - 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to only precheck this request. Valid values:'."\n" - ."\n" - .'* **true**: prechecks the request without modifying the configurations of the IPsec server. The system checks the required parameters, request format, and service limits. If the request fails to pass the precheck, an error code is returned. If the request passes the precheck, the `DryRunOperation` error code is returned.'."\n" - .'* **false**: sends the request. This is the default value. If the request passes the precheck, the system modifies the configurations of the IPsec server.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'false', - ], - ], + 'createdAt' => '2025-04-29T08:20:14.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Request parameters changed', 'api' => 'CreateDhcpOptionsSet'], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'description' => 'The returned results.'."\n", - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => 'B61C08E5-403A-46A2-96C1-F7B1216DB10C', - ], - ], - ], - ], + 'createdAt' => '2025-04-29T05:54:01.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'CreateFlowLog'], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'VpnGateway.Configuring', - 'errorMessage' => 'The specified service is configuring.', - ], - [ - 'errorCode' => 'VpnGateway.FinancialLocked', - 'errorMessage' => 'The specified service is financial locked.', - ], - [ - 'errorCode' => 'OperationUnsupported.IpsecPfs', - 'errorMessage' => 'The specified IPsec Pfs is unsupported.', - ], - [ - 'errorCode' => 'IllegalParam.AuthMethod', - 'errorMessage' => 'One authentication method (Psk or IDaaS) should be specified at least.', - ], - [ - 'errorCode' => 'IllegalParam.LocalSubnet', - 'errorMessage' => 'The specified "LocalSubnet" (%s) is invalid.', - ], - [ - 'errorCode' => 'IllegalParam.ClientIpPool', - 'errorMessage' => 'The specified "ClientIpPool" (%s) is invalid.', - ], - [ - 'errorCode' => 'MissingParam.IDaaSInstanceId', - 'errorMessage' => 'The input parameter IDaaSInstanceId is mandatory when enable multi-factor authentication.', - ], - [ - 'errorCode' => 'OperationFailed.NoRamPermission', - 'errorMessage' => 'Vpn Service has no permission to operate your IDaaS instances.', - ], - [ - 'errorCode' => 'OperationFailed.AddVpcRoute', - 'errorMessage' => 'It\'s failed to add VPC route after this operation.', - ], - [ - 'errorCode' => 'ClientIpPool.NetmaskInvalid', - 'errorMessage' => 'The netmask length of client IP pool must be greater than or equal to 16 and less than or equal to 29.', - ], - [ - 'errorCode' => 'VpnRouteEntry.Conflict', - 'errorMessage' => 'The specified client IP pool conflicts with VPN connection or SSL server.', - ], - [ - 'errorCode' => 'ClientIpPool.SubnetInvalid', - 'errorMessage' => 'The specified client IP pool cannot be used.', - ], - [ - 'errorCode' => 'InvalidClientIpPool.Conflict', - 'errorMessage' => 'The specified client IP pool conflicts with other resources in the same VPC.', - ], - [ - 'errorCode' => 'SystemBusy', - 'errorMessage' => 'The system is busy. Please try again later.', - ], - ], - 403 => [ - [ - 'errorCode' => 'Forbidden', - 'errorMessage' => 'User not authorized to operate on the specified resource.', - ], - ], - [ - [ - 'errorCode' => 'InvalidIpsecServerId.NotFound', - 'errorMessage' => 'The specified IPsec server ID (%s) does not exist.', - ], - [ - 'errorCode' => 'InvalidIDaaSInstanceId.NotFound', - 'errorMessage' => 'The specified IDaaS instance ID does not exist.', - ], - ], - 409 => [ - [ - 'errorCode' => 'OperationConflict', - 'errorMessage' => 'The operation against this instance is too frequent, please try again later.', - ], - ], + 'createdAt' => '2025-04-27T01:54:37.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'CreateTrafficMirrorSession'], + ['description' => 'Error codes changed', 'api' => 'UpdateTrafficMirrorSessionAttribute'], ], - 'staticInfo' => [ - 'returnType' => 'asynchronous', - 'callback' => 'Vpc::2016-04-28::DescribeVpnGateway', - 'callbackInterval' => 2000, - 'maxCallbackTimes' => 60, + 'createdAt' => '2025-04-18T03:43:12.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'DeleteRouteEntry'], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"B61C08E5-403A-46A2-96C1-F7B1216DB10C\\"\\n}","errorExample":""},{"type":"xml","example":"\\r\\nB61C08E5-403A-46A2-96C1-F7B1216DB10C\\r\\n","errorExample":""}]', - 'title' => 'UpdateIpsecServer', - 'description' => '* If you modify only **IpsecServerName** of the IPsec server, this operation is synchronous. If you modify other parameters besides **IpsecServerName**, this operation is asynchronous.'."\n" - ."\n" - .'* If **UpdateIpsecServer** is an asynchronous operation, after a request is sent, the system returns a request ID and runs the task in the background. You can call the [DescribeVpnGateway](~~2794055~~) operation to query the status of the task.'."\n" - ."\n" - .' * If the VPN gateway is in the **updating** state, the IPsec server is being modified.'."\n" - .' * If the VPN gateway is in the **active** state, the IPsec server is modified.'."\n" - ."\n" - .'* You cannot repeatedly call **UpdateIpsecServer** within the specified period of time.'."\n", - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', + 'createdAt' => '2025-04-18T02:11:19.000Z', + 'description' => '', ], - 'ListIpsecServers' => [ - 'summary' => 'Queries IPsec servers.', - 'methods' => [ - 'post', - 'get', + [ + 'apis' => [ + ['description' => 'Response parameters changed', 'api' => 'DescribeIpv6GatewayAttribute'], + ['description' => 'Response parameters changed', 'api' => 'DescribeIpv6Gateways'], ], - 'schemes' => [ - 'http', - 'https', + 'createdAt' => '2025-04-17T08:31:23.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'CreateIpv6Gateway'], + ['description' => 'Error codes changed', 'api' => 'DeleteIpv6Gateway'], + ['description' => 'Response parameters changed', 'api' => 'DescribeIpv6GatewayAttribute'], + ['description' => 'Response parameters changed', 'api' => 'DescribeIpv6Gateways'], + ], + 'createdAt' => '2025-04-14T06:08:14.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'ModifyRouteEntry'], ], - 'security' => [ - [ - 'AK' => [], - ], + 'createdAt' => '2025-04-14T01:39:40.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed, Request parameters changed', 'api' => 'CreateTrafficMirrorFilter'], + ['description' => 'Error codes changed, Request parameters changed', 'api' => 'CreateTrafficMirrorFilterRules'], + ['description' => 'Response parameters changed', 'api' => 'ListTrafficMirrorFilters'], + ['description' => 'Error codes changed', 'api' => 'UpdateTrafficMirrorFilterRuleAttribute'], + ], + 'createdAt' => '2025-04-10T11:08:04.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'DeleteTrafficMirrorFilterRules'], ], - 'operationType' => 'read', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'list', - 'riskType' => 'none', - 'chargeType' => 'free', + 'createdAt' => '2025-04-09T05:41:56.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Request parameters changed', 'api' => 'DeleteVSwitch'], ], - 'parameters' => [ - [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region where the IPsec server is created.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], - ], - [ - 'name' => 'IpsecServerName', - 'in' => 'query', - 'schema' => [ - 'description' => 'The name of the IPsec server.'."\n" - ."\n" - .'The name must be 1 to 100 characters in length.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'test', - ], - ], - [ - 'name' => 'VpnGatewayId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the VPN gateway.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'vpn-bp1q8bgx4xnkm2ogj****', - ], - ], - [ - 'name' => 'NextToken', - 'in' => 'query', - 'schema' => [ - 'description' => 'The pagination token that is used in the next request to retrieve a new page of results. Valid values:'."\n" - ."\n" - .'* If this is your first request and no next requests are to be performed, you do not need to specify this parameter.'."\n" - .'* You must specify the token that is obtained from the previous query as the value of **NextToken**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'caeba0bbb2be03f84eb48b699f0a****', - ], - ], - [ - 'name' => 'MaxResults', - 'in' => 'query', - 'schema' => [ - 'description' => 'The number of entries to return on each page. Valid values: **1** to **20**. Default value: **10**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '10', - ], - ], - [ - 'name' => 'IpsecServerId', - 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => 'The ID of the IPsec server.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The ID of the IPsec server. Valid values of N: **1** to **20**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'iss-bp1bo3xuvcxo7ixll****', - ], - 'required' => false, - 'example' => 'iss-bp1bo3xuvcxo7ixll****', - 'maxLength' => 128, - 'minLength' => 0, - 'maxItems' => 20, - ], - ], - [ - 'name' => 'ResourceGroupId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the resource group to which the IPsec server belongs.'."\n" - ."\n" - .'The IPsec server and its associated VPN gateway belong to the same resource group. You can call [DescribeVpnGateway](~~2794055~~) to query the ID of the resource group to which the VPN gateway belongs.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'rg-acfmzs372yg****', - ], - ], + 'createdAt' => '2025-04-01T11:44:56.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'ModifyVSwitchAttribute'], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'NextToken' => [ - 'description' => 'A pagination token. It can be used in the next request to retrieve a new page of results. Valid values:'."\n" - ."\n" - .'* If no value is returned for **NextToken**, no next queries are sent.'."\n" - .'* If a value is returned for **NextToken**, the value can be used in the next request to retrieve a new page of results.'."\n", - 'type' => 'string', - 'example' => 'caeba0bbb2be03f84eb48b699f0a****', - ], - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B457', - ], - 'TotalCount' => [ - 'description' => 'The total number of entries returned.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'MaxResults' => [ - 'description' => 'The number of entries returned per page.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'IpsecServers' => [ - 'description' => 'The list of IPsec servers.'."\n", - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'CreationTime' => [ - 'description' => 'The time when the IPsec server was created.'."\n" - ."\n" - .'T is used as a delimiter. Z indicates that the time is in UTC.'."\n", - 'type' => 'string', - 'example' => '2018-12-03T10:11:55Z', - ], - 'OnlineClientCount' => [ - 'description' => 'The number of clients that are connected to the IPsec server.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'InternetIp' => [ - 'description' => 'The public IP address of the VPN gateway.'."\n", - 'type' => 'string', - 'example' => '47.22.XX.XX', - ], - 'IpsecServerName' => [ - 'description' => 'The name of the IPsec server.'."\n", - 'type' => 'string', - 'example' => 'test', - ], - 'IDaaSInstanceId' => [ - 'description' => 'The ID of the IDaaS instance.'."\n", - 'type' => 'string', - 'example' => 'idaas-cn-hangzhou-****', - ], - 'EffectImmediately' => [ - 'description' => 'Indicates whether the current IPsec tunnel is deleted and negotiations are reinitiated. Valid values:'."\n" - ."\n" - .'* **true**: immediately initiates negotiations after the configuration is completed.'."\n" - .'* **false**: initiates negotiations when inbound traffic is detected.'."\n", - 'type' => 'boolean', - 'example' => 'false', - ], - 'VpnGatewayId' => [ - 'description' => 'The ID of the VPN gateway.'."\n", - 'type' => 'string', - 'example' => 'vpn-bp1q8bgx4xnkm2ogj****', - ], - 'LocalSubnet' => [ - 'description' => 'The local CIDR blocks, which refer to the CIDR blocks on the virtual private cloud (VPC) side.'."\n", - 'type' => 'string', - 'example' => '192.168.0.0/16,172.17.0.0/16', - ], - 'Psk' => [ - 'description' => 'The pre-shared key.'."\n", - 'type' => 'string', - 'example' => 'pgw6dy7d****', - ], - 'RegionId' => [ - 'description' => 'The ID of the region where the IPsec server is created.'."\n", - 'type' => 'string', - 'example' => 'cn-hangzhou', - ], - 'PskEnabled' => [ - 'description' => 'Indicates whether pre-shared key authentication is enabled. Only **true** may be returned, which indicates that pre-shared key authentication is enabled.'."\n", - 'type' => 'boolean', - 'example' => 'true', - ], - 'IpsecServerId' => [ - 'description' => 'The IPsec server ID.'."\n", - 'type' => 'string', - 'example' => 'iss-bp1bo3xuvcxo7ixll****', - ], - 'MultiFactorAuthEnabled' => [ - 'description' => 'Indicates whether two-factor authentication is enabled. Valid values:'."\n" - ."\n" - .'* **true**'."\n" - .'* **false**: The feature is disabled.'."\n", - 'type' => 'boolean', - 'example' => 'true', - ], - 'MaxConnections' => [ - 'description' => 'The number of SSL-VPN connections supported by the VPN gateway.'."\n" - ."\n" - .'> The number of SSL-VPN connections specified in this parameter includes both SSL-VPN and IPsec-VPN connections. For example, you have five SSL-VPN connections and three SSL clients occupy three SSL-VPN connections. In this case, two clients can connect to the IPsec server.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '5', - ], - 'ClientIpPool' => [ - 'description' => 'The client CIDR block. It refers to the CIDR block that is allocated to the virtual interface of the client.'."\n", - 'type' => 'string', - 'example' => '10.0.0.0/24', - ], - 'IkeConfig' => [ - 'description' => 'The configurations of Phase 1 negotiations.'."\n", - 'type' => 'object', - 'properties' => [ - 'RemoteId' => [ - 'description' => 'The identifier of the customer gateway. Both fully qualified domain names (FQDNs) and IP addresses are supported. By default, this parameter is empty.'."\n", - 'type' => 'string', - 'example' => '139.67.XX.XX', - ], - 'IkeLifetime' => [ - 'description' => 'The IKE lifetime. Unit: seconds.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '86400', - ], - 'IkeEncAlg' => [ - 'description' => 'The IKE encryption algorithm.'."\n", - 'type' => 'string', - 'example' => 'aes', - ], - 'LocalId' => [ - 'description' => 'The ID of the IPsec server. The default value is the public IP address of the VPN gateway. Both FQDNs and IP addresses are supported.'."\n", - 'type' => 'string', - 'example' => '116.64.XX.XX', - ], - 'IkeMode' => [ - 'description' => 'The IKE negotiation mode. Valid values:'."\n" - ."\n" - .'**main**: This mode offers higher security during negotiations.'."\n", - 'type' => 'string', - 'example' => 'main', - ], - 'IkeVersion' => [ - 'description' => 'The IKE version.'."\n", - 'type' => 'string', - 'example' => 'ikev2', - ], - 'IkePfs' => [ - 'description' => 'The Diffie-Hellman key exchange algorithm.'."\n", - 'type' => 'string', - 'example' => 'group2', - ], - 'IkeAuthAlg' => [ - 'description' => 'The IKE authentication algorithm.'."\n", - 'type' => 'string', - 'example' => 'sha1', - ], - ], - ], - 'IpsecConfig' => [ - 'description' => 'The configurations of Phase 2 negotiations.'."\n", - 'type' => 'object', - 'properties' => [ - 'IpsecAuthAlg' => [ - 'description' => 'The IPsec authentication algorithm.'."\n", - 'type' => 'string', - 'example' => 'sha1', - ], - 'IpsecLifetime' => [ - 'description' => 'The IPsec lifetime. Unit: seconds.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '86400', - ], - 'IpsecEncAlg' => [ - 'description' => 'The IPsec encryption algorithm.'."\n", - 'type' => 'string', - 'example' => 'aes', - ], - 'IpsecPfs' => [ - 'description' => 'The Diffie-Hellman key exchange algorithm.'."\n", - 'type' => 'string', - 'example' => 'group2', - ], - ], - ], - 'ResourceGroupId' => [ - 'description' => 'The ID of the resource group to which the IPsec server belongs.'."\n" - ."\n" - .'You can call the [ListResourceGroups](~~158855~~) operation to query the resource group information.', - 'type' => 'string', - 'example' => 'rg-acfmzs372yg****', - ], - ], - ], - ], - ], - 'description' => '', - ], - ], + 'createdAt' => '2025-03-27T03:06:27.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'DescribeIpv6Addresses'], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'IllegalParam.NextToken', - 'errorMessage' => 'The specified NextToken is invalid.', - ], - ], - 403 => [ - [ - 'errorCode' => 'Forbidden', - 'errorMessage' => 'User not authorized to operate on the specified resource.', - ], - ], + 'createdAt' => '2025-03-25T06:30:02.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Request parameters changed', 'api' => 'AllocateEipAddress'], + ['description' => 'Request parameters changed, Response parameters changed', 'api' => 'AllocateEipAddressPro'], + ['description' => 'Request parameters changed', 'api' => 'CreateCommonBandwidthPackage'], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'createdAt' => '2025-03-24T07:26:28.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'RevokeInstanceFromCen'], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"NextToken\\": \\"caeba0bbb2be03f84eb48b699f0a****\\",\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B457\\",\\n \\"TotalCount\\": 10,\\n \\"MaxResults\\": 1,\\n \\"IpsecServers\\": [\\n {\\n \\"CreationTime\\": \\"2018-12-03T10:11:55Z\\",\\n \\"OnlineClientCount\\": 1,\\n \\"InternetIp\\": \\"47.22.XX.XX\\",\\n \\"IpsecServerName\\": \\"test\\",\\n \\"IDaaSInstanceId\\": \\"idaas-cn-hangzhou-****\\",\\n \\"EffectImmediately\\": false,\\n \\"VpnGatewayId\\": \\"vpn-bp1q8bgx4xnkm2ogj****\\",\\n \\"LocalSubnet\\": \\"192.168.0.0/16,172.17.0.0/16\\",\\n \\"Psk\\": \\"pgw6dy7d****\\",\\n \\"RegionId\\": \\"cn-hangzhou\\",\\n \\"PskEnabled\\": true,\\n \\"IpsecServerId\\": \\"iss-bp1bo3xuvcxo7ixll****\\",\\n \\"MultiFactorAuthEnabled\\": true,\\n \\"MaxConnections\\": 5,\\n \\"ClientIpPool\\": \\"10.0.0.0/24\\",\\n \\"IkeConfig\\": {\\n \\"RemoteId\\": \\"139.67.XX.XX\\",\\n \\"IkeLifetime\\": 86400,\\n \\"IkeEncAlg\\": \\"aes\\",\\n \\"LocalId\\": \\"116.64.XX.XX\\",\\n \\"IkeMode\\": \\"main\\",\\n \\"IkeVersion\\": \\"ikev2\\",\\n \\"IkePfs\\": \\"group2\\",\\n \\"IkeAuthAlg\\": \\"sha1\\"\\n },\\n \\"IpsecConfig\\": {\\n \\"IpsecAuthAlg\\": \\"sha1\\",\\n \\"IpsecLifetime\\": 86400,\\n \\"IpsecEncAlg\\": \\"aes\\",\\n \\"IpsecPfs\\": \\"group2\\"\\n },\\n \\"ResourceGroupId\\": \\"rg-acfmzs372yg****\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\n caeba0bbb2be03f84eb48b699f0a****\\n 54B48E3D-DF70-471B-AA93-08E683A1B457\\n 10\\n 1\\n \\n 2018-12-03T10:11:55Z\\n 1\\n 47.22.XX.XX\\n test\\n idaas-cn-hangzhou-****\\n false\\n vpn-bp1q8bgx4xnkm2ogj****\\n 192.168.0.0/16,172.17.0.0/16\\n pgw6dy7d****\\n cn-hangzhou\\n true\\n iss-bp1bo3xuvcxo7ixll****\\n true\\n 5\\n 10.0.0.0/24\\n \\n 139.67.XX.XX\\n 86400\\n aes\\n 116.64.XX.XX\\n main\\n ikev2\\n group2\\n sha1\\n \\n \\n sha1\\n 86400\\n aes\\n group2\\n \\n \\n","errorExample":""}]', - 'title' => 'ListIpsecServers', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', + 'createdAt' => '2025-03-21T10:57:43.000Z', + 'description' => '', ], - 'ListIpsecServerLogs' => [ - 'methods' => [ - 'post', - 'get', + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'DeleteRouteEntry'], ], - 'schemes' => [ - 'http', - 'https', + 'createdAt' => '2025-03-20T09:23:34.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Response parameters changed', 'api' => 'CreateNatIpCidr'], + ['description' => 'Response parameters changed', 'api' => 'DeleteFullNatEntry'], + ['description' => 'Response parameters changed', 'api' => 'DeleteNatIp'], + ['description' => 'Response parameters changed', 'api' => 'DeleteNatIpCidr'], + ['description' => 'Response parameters changed', 'api' => 'ListNatIpCidrs'], + ['description' => 'Response parameters changed', 'api' => 'ListNatIps'], + ['description' => 'Response parameters changed', 'api' => 'ModifyNatIpCidrAttribute'], + ], + 'createdAt' => '2025-03-20T07:55:10.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'AssociateRouteTableWithGateway'], + ['description' => 'Error codes changed', 'api' => 'ModifyRouteTableAttributes'], ], - 'security' => [ - [ - 'AK' => [], - ], + 'createdAt' => '2025-03-20T01:44:23.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'AddBgpNetwork'], + ['description' => 'Error codes changed', 'api' => 'AssociatePhysicalConnectionToVirtualBorderRouter'], + ['description' => 'Error codes changed, Response parameters changed', 'api' => 'CreateBgpPeer'], + ['description' => 'Error codes changed', 'api' => 'CreateRouterInterface'], + ['description' => 'Error codes changed', 'api' => 'DeleteRouterInterface'], + ['description' => 'Error codes changed', 'api' => 'ModifyVirtualBorderRouterAttribute'], + ], + 'createdAt' => '2025-03-19T09:07:15.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'CreateIpsecServer'], + ['description' => 'Error codes changed, Request parameters changed', 'api' => 'CreateSslVpnServer'], + ['description' => 'Error codes changed, Request parameters changed', 'api' => 'CreateVcoRouteEntry'], + ['description' => 'Error codes changed, Request parameters changed', 'api' => 'CreateVpnAttachment'], + ['description' => 'Error codes changed, Request parameters changed', 'api' => 'CreateVpnConnection'], + ['description' => 'Error codes changed, Request parameters changed', 'api' => 'CreateVpnPbrRouteEntry'], + ['description' => 'Error codes changed, Request parameters changed, Response parameters changed', 'api' => 'CreateVpnRouteEntry'], + ], + 'createdAt' => '2025-03-19T08:42:32.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'DeleteRouteEntries'], ], - 'operationType' => 'read', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'list', - 'tenantRelevance' => 'tenant', + 'createdAt' => '2025-03-19T08:30:33.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'CreateFlowLog'], ], - 'parameters' => [ - [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region where the IPsec server is created.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to obtain the region ID.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], - ], - [ - 'name' => 'IpsecServerId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the IPsec server.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'iss-2zei2n5q5zhirfh73****', - ], - ], - [ - 'name' => 'From', - 'in' => 'query', - 'schema' => [ - 'description' => 'The beginning of the time range to query. The value must be a UNIX timestamp. For example, 1671003744 specifies 15:42:24 (UTC+8) on December 14, 2022.'."\n" - ."\n" - .'> If you specify **From**, you must also specify **To** or **MinutePeriod**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1671003744', - ], - ], - [ - 'name' => 'To', - 'in' => 'query', - 'schema' => [ - 'description' => 'The end of the time range to query. The value must be a unix timestamp. For example, 1671004344 specifies 15:52:24 (UTC+8) on December 14, 2022.'."\n" - ."\n" - .'> If you specify **To**, you must also specify **From** or **MinutePeriod**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1671004344', - ], - ], - [ - 'name' => 'MinutePeriod', - 'in' => 'query', - 'schema' => [ - 'description' => 'The interval at which log data is queried. Valid values: **1** to **10**. Unit: minutes.'."\n" - ."\n" - .'> If both **From** and **To** are not specified, you must specify **MinutePeriod**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '10', - ], - ], - [ - 'name' => 'PageNumber', - 'in' => 'query', - 'schema' => [ - 'description' => 'The number of the page to return. Default value: **1**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', - ], - ], - [ - 'name' => 'PageSize', - 'in' => 'query', - 'schema' => [ - 'description' => 'The number of entries to return on each page. Valid values: **1** to **50**. Default value: **10**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '10', - ], - ], + 'createdAt' => '2025-03-13T07:49:26.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'ModifyRouteTableAttributes'], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'PageSize' => [ - 'description' => 'The number of entries returned per page.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'PageNumber' => [ - 'description' => 'The page number of the returned page.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => 'DEDAC5B1-9292-5BF7-BDDF-61BA58CFB2FB', - ], - 'Count' => [ - 'description' => 'The number of entries on the current page.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'IsCompleted' => [ - 'description' => 'Indicates whether the log is accurate. Valid values:'."\n" - ."\n" - .'* **true**: accurate'."\n" - .'* **false**: inaccurate'."\n", - 'type' => 'boolean', - 'example' => 'true', - ], - 'Data' => [ - 'description' => 'Log information list.', - 'type' => 'array', - 'items' => [ - 'description' => 'An array of strings.'."\n" - ."\n" - .'Each item in the array is a log entry.', - 'type' => 'string', - 'example' => '"2022-12-15 17:00:43 [INFO]: : iss-2zei2n5q5zhirfh73**** del ipsec policy successfully", "2022-12-15 17:00:43 [INFO]: : iss-2zei2n5q5zhirfh73**** add ipsec policy successfully"', - ], - ], - ], - ], - ], + 'createdAt' => '2025-03-12T11:31:37.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'ModifyVpcAttribute'], ], - 'errorCodes' => [ - 403 => [ - [ - 'errorCode' => 'Forbidden', - 'errorMessage' => 'User not authorized to operate on the specified resource.', - ], - ], - [ - [ - 'errorCode' => 'InvalidIpsecServerId.NotFound', - 'errorMessage' => 'The specified IPsec server ID (%s) does not exist.', - ], - ], + 'createdAt' => '2025-03-05T11:25:04.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'WithdrawVpcPublishedRouteEntries'], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"PageSize\\": 10,\\n \\"PageNumber\\": 1,\\n \\"RequestId\\": \\"DEDAC5B1-9292-5BF7-BDDF-61BA58CFB2FB\\",\\n \\"Count\\": 10,\\n \\"IsCompleted\\": true,\\n \\"Data\\": [\\n \\"\\\\\\"2022-12-15 17:00:43 [INFO]: : iss-2zei2n5q5zhirfh73**** del ipsec policy successfully\\\\\\", \\\\\\"2022-12-15 17:00:43 [INFO]: : iss-2zei2n5q5zhirfh73**** add ipsec policy successfully\\\\\\"\\"\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\n 10\\n B6DB370B-2CDB-5396-BD7C-EDCBA2756553\\n 1\\n true\\n 2022-12-15 17:00:43 [INFO]: : iss-2zei2n5q5zhirfh73**** del ipsec policy successfully\\n 2022-12-15 17:00:43 [INFO]: : iss-2zei2n5q5zhirfh73**** add ipsec policy successfully\\n 2022-12-15 17:04:20 iss-2zei2n5q5zhirfh73**** [INFO]: : nat keepalive msg send\\n 2022-12-15 17:04:20 iss-2zei2n5q5zhirfh73**** [DEBUG]: sockmisc.c:327:sendfromto(): sockname 192.168.1.70[500]\\n 2022-12-15 17:04:20 iss-2zei2n5q5zhirfh73**** [DEBUG]: sockmisc.c:329:sendfromto(): send packet from 192.168.1.70[500]\\n 2022-12-15 17:04:20 iss-2zei2n5q5zhirfh73**** [DEBUG]: sockmisc.c:331:sendfromto(): send packet to 223.XX.XX.215[17489]\\n 2022-12-15 17:04:20 iss-2zei2n5q5zhirfh73**** [DEBUG]: sockmisc.c:514:sendfromto(): 1 times of 1 bytes message will be sent to 223.XX.XX.215[17489]\\n 2022-12-15 17:04:20 iss-2zei2n5q5zhirfh73**** [INFO]: : nat keepalive msg send\\n 2022-12-15 17:04:20 iss-2zei2n5q5zhirfh73**** [DEBUG]: sockmisc.c:327:sendfromto(): sockname 192.168.1.70[4500]\\n 2022-12-15 17:04:20 iss-2zei2n5q5zhirfh73**** [DEBUG]: sockmisc.c:329:sendfromto(): send packet from 192.168.1.70[4500]\\n 10\\n","errorExample":""}]', - 'title' => 'ListIpsecServerLogs', - 'summary' => 'Queries the logs of an IPsec server.', + 'createdAt' => '2025-03-03T11:51:03.000Z', + 'description' => '', ], - 'AllocateIpv6Address' => [ - 'summary' => 'Assigns an IPv6 address.', - 'methods' => [ - 'post', - 'get', + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'ChangeResourceGroup'], ], - 'schemes' => [ - 'http', - 'https', + 'createdAt' => '2025-03-03T02:26:42.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'ModifyRouteTableAttributes'], ], - 'security' => [ - [ - 'AK' => [], - ], + 'createdAt' => '2025-02-28T09:02:54.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'UpdateGatewayRouteTableEntryAttribute'], ], - 'operationType' => 'readAndWrite', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'create', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeCode' => '192335', - 'abilityTreeNodes' => [ - 'FEATUREvpc3GHR3P', - ], + 'createdAt' => '2025-02-28T02:57:13.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Request parameters changed', 'api' => 'CreateFlowLog'], + ['description' => 'Response parameters changed', 'api' => 'DescribeFlowLogs'], + ['description' => 'Request parameters changed', 'api' => 'ModifyFlowLogAttribute'], ], - 'parameters' => [ - [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], - ], - [ - 'name' => 'VSwitchId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the vSwitch to which the IPv6 address belongs.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'vsw-asdfjlnaue4g****', - ], - ], - [ - 'name' => 'Ipv6Address', - 'in' => 'query', - 'schema' => [ - 'description' => 'The IPv6 address. The IPv6 address must be an idle one that falls within the vSwitch CIDR block.'."\n", - 'type' => 'string', - 'required' => false, - 'docRequired' => false, - 'example' => '2408:XXXX:153:3921:851c:c435:7b12:1c5f', - ], - ], - [ - 'name' => 'Ipv6AddressName', - 'in' => 'query', - 'schema' => [ - 'description' => 'The name of the IPv6 address.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'ipv6-name', - ], - ], - [ - 'name' => 'Ipv6AddressDescription', - 'in' => 'query', - 'schema' => [ - 'description' => 'The description of the IPv6 address.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'ipv6-description', - ], - ], - [ - 'name' => 'AddressType', - 'in' => 'query', - 'schema' => [ - 'description' => 'The type of the IPv6 address. Valid values:'."\n" - ."\n" - .'* IPv6Address (default): an IPv6 address.'."\n" - .'* IPv6Prefix: an IPv6 CIDR block.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'IPv6Address', - ], - ], - [ - 'name' => 'ResourceGroupId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The resource group ID. For more information about resource groups, see related documentation.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'rg-bp67acfmxazb4ph****', - ], - ], - [ - 'name' => 'Tag', - 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => 'The tag list.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => '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.'."\n" - ."\n" - .'The tag key can be up to 128 characters in length. It cannot start with `aliyun` or `acs:`, and cannot contain `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'FinanceDept', - ], - 'Value' => [ - 'description' => '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.'."\n" - ."\n" - .'The tag value can be up to 128 characters in length. It cannot start with aliyun or acs: and cannot contain http:// or https://.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'FinanceJoshua', - ], - ], - 'required' => false, - ], - 'required' => false, - 'maxItems' => 21, - ], - ], - [ - 'name' => 'ClientToken', - 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request. 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.'."\n" - ."\n" - .'> 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.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '02fb3da4-130e-11e9-8e44-0016e04****', - ], - ], - [ - 'name' => 'DryRun', - 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values:'."\n" - ."\n" - .'* 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.'."\n" - .'* 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.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], - ], - [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], - ], + 'createdAt' => '2025-02-26T10:24:53.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'ModifyFlowLogAttribute'], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'Ipv6AddressId' => [ - 'description' => 'The ID of the IPv6 address.'."\n", - 'type' => 'string', - 'example' => 'ipv6-2zen5j4axcp5l5qyy****', - ], - 'Ipv6Address' => [ - 'description' => 'The IPv6 address.'."\n", - 'type' => 'string', - 'example' => '2408:XXXX:153:3921:851c:c435:7b12:1c5f', - ], - 'ResourceGroupId' => [ - 'description' => 'The ID of the resource group.'."\n", - 'type' => 'string', - 'example' => 'rg-acfmxazdjdhd****', - ], - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B45', - ], - ], - 'description' => '', - ], - ], + 'createdAt' => '2025-02-26T03:10:12.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'ModifyVpcAttribute'], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'OperationFailed.IPv6AddressAlreadyAllocated', - 'errorMessage' => 'The operation is failed because of the ipv6 address specified was allocated.', - ], - [ - 'errorCode' => 'OperationFailed.AddressNotInVSwitchCidr', - 'errorMessage' => 'The operation is failed because of %s.', - ], - [ - 'errorCode' => 'IllegalParam.IpAddress', - 'errorMessage' => 'The param of %s is illegal.', - ], - [ - 'errorCode' => 'OperationFailed.IPv6Disabled', - 'errorMessage' => 'Operation failed because IPv6 is not enabled for the vSwitch.', - ], - [ - 'errorCode' => 'OperationFailed.IpPrefixMustInVSwitchCidrReservation', - 'errorMessage' => 'The specified ip prefix must in reserved segment the VSwitch.', - ], - [ - 'errorCode' => 'Forbidden.OperateShareResource', - 'errorMessage' => 'You cannot operate shared resources.', - ], - [ - 'errorCode' => 'QuotaExceeded.IPv6PrefixMask', - 'errorMessage' => 'The quota of specifed ipv6 prefix mask is exceeded.', - ], - [ - 'errorCode' => 'OperationUnsupported.Ipv6Feature', - 'errorMessage' => 'The IPv6 feature is not supported in the region.', - ], - [ - 'errorCode' => 'IllegalParam.Ipv6Prefix', - 'errorMessage' => 'The param of Ipv6Prefix is illegal.', - ], - [ - 'errorCode' => 'OperationFailed.ExistIPv6Used', - 'errorMessage' => 'The operation is failed because of some ipv6 in the ipv6 prefix is already in use.', - ], - [ - 'errorCode' => 'OperationUnsupported.UnboundIpv6PrefixFeature', - 'errorMessage' => 'The region does not support creating IPv6 prefix that are not bound to any resources.', - ], - [ - 'errorCode' => 'OperationUnsupported.UnboundIpv6Feature', - 'errorMessage' => 'The region does not support creating IPv6 addresses that are not bound to any resources.', - ], - [ - 'errorCode' => 'OperationUnsupported.FreePrivateIpv6', - 'errorMessage' => 'This operation does not support free private IPv6 addresses.', - ], - ], - 404 => [ - [ - 'errorCode' => 'ResourceNotFound.VSwitch', - 'errorMessage' => 'The specified resource of %s is not found.', - ], - [ - 'errorCode' => 'ResourceNotFound.VSwitchCidrReservation', - 'errorMessage' => 'The dependent vswitch cidr reservation is not found.', - ], - ], + 'createdAt' => '2025-02-25T08:17:20.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'ModifyRouteEntry'], ], - 'staticInfo' => [ - 'returnType' => 'asynchronous', - 'callback' => 'Vpc::2016-04-28::DescribeIpv6Addresses', - 'callbackInterval' => 3000, - 'maxCallbackTimes' => 10, + 'createdAt' => '2025-02-25T06:56:40.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'DeleteVpc'], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Ipv6AddressId\\": \\"ipv6-2zen5j4axcp5l5qyy****\\",\\n \\"Ipv6Address\\": \\"2408:XXXX:153:3921:851c:c435:7b12:1c5f\\",\\n \\"ResourceGroupId\\": \\"rg-acfmxazdjdhd****\\",\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B45\\"\\n}","type":"json"}]', - 'title' => 'AllocateIpv6Address', + 'createdAt' => '2025-02-25T05:57:54.000Z', + 'description' => '', ], - 'ReleaseIpv6Address' => [ - 'summary' => 'Releases an idle IPv6 address.', - 'methods' => [ - 'post', - 'get', + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'ActiveFlowLog'], + ['description' => 'Error codes changed, Request parameters changed', 'api' => 'CreateFlowLog'], + ['description' => 'Response parameters changed', 'api' => 'DescribeFlowLogs'], + ['description' => 'Error codes changed, Request parameters changed', 'api' => 'ModifyFlowLogAttribute'], + ], + 'createdAt' => '2025-02-21T05:35:45.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'UpdateGatewayRouteTableEntryAttribute'], ], - 'schemes' => [ - 'http', - 'https', + 'createdAt' => '2025-02-20T10:04:51.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'UpdateGatewayRouteTableEntryAttribute'], ], - 'security' => [ - [ - 'AK' => [], - ], + 'createdAt' => '2025-02-19T03:25:09.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'ModifyVSwitchAttribute'], ], - 'operationType' => 'readAndWrite', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'delete', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeCode' => '192336', - 'abilityTreeNodes' => [ - 'FEATUREvpc3GHR3P', - ], + 'createdAt' => '2025-02-18T11:12:05.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'ModifyVpcAttribute'], ], - 'parameters' => [ - [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], - ], - [ - 'name' => 'Ipv6AddressId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the IPv6 address.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'ipv6-2zen5j4axcp5l5qyy****', - ], - ], - [ - 'name' => 'ClientToken', - 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'You can use the client to generate the value, but you must ensure that it is unique among different requests. The token can contain only ASCII characters and cannot exceed 64 characters in length.'."\n" - ."\n" - .'> 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.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '0c593ea1-3bea-11e9-b96b-88e9fe63****', - ], - ], - [ - 'name' => 'DryRun', - 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values:'."\n" - ."\n" - .'* **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 precheck, the `DryRunOperation` error code is returned.'."\n" - .'* **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.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], - ], - [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], - ], + 'createdAt' => '2025-02-14T03:57:17.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'DeleteVSwitch'], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => 'C44F62BE-9CE7-4277-B117-69243F3988BF', - ], - ], - 'description' => '', - ], - ], + 'createdAt' => '2025-02-14T03:41:48.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'ModifyRouteEntry'], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'DependencyViolation.Ipv6InternetBandwidth', - 'errorMessage' => 'The specified resource of %s depends on %s, so the operation cannot be completed.', - ], - [ - 'errorCode' => 'OperationFailed.AssociationExist', - 'errorMessage' => 'Operation failed because the existence of an association.', - ], - [ - 'errorCode' => 'OperationFailed.ResourceInBinding', - 'errorMessage' => 'The operation is failed because of the resource is in binding.', - ], - [ - 'errorCode' => 'IncorrectStatus.Ipv6Instance', - 'errorMessage' => 'The status of %s [%s] is incorrect.', - ], - ], - 404 => [ - [ - 'errorCode' => 'ResourceNotFound.Ipv6InstanceId', - 'errorMessage' => 'The specified resource of %s is not found.', - ], - ], + 'createdAt' => '2025-02-14T01:53:54.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Response parameters changed', 'api' => 'DescribeEipAddresses'], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'createdAt' => '2025-02-10T11:25:28.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'DeleteIpv6EgressOnlyRule'], + ['description' => 'Response parameters changed', 'api' => 'DeleteVSwitch'], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"C44F62BE-9CE7-4277-B117-69243F3988BF\\"\\n}","type":"json"}]', - 'title' => 'ReleaseIpv6Address', + 'createdAt' => '2025-02-10T11:21:35.000Z', + 'description' => '', ], - 'CreateIpv6Gateway' => [ - 'summary' => 'IPv6 gateways are used to control the IPv6 traffic of virtual private clouds (VPCs). You can call the CreateIpv6Gateway operation to create IPv6 gateways.', - 'methods' => [ - 'post', - 'get', + [ + 'apis' => [ + ['description' => 'Request parameters changed', 'api' => 'CreateRouteEntries'], + ['description' => 'Request parameters changed', 'api' => 'DeleteRouteEntries'], + ['description' => 'Request parameters changed', 'api' => 'DescribeRouteEntryList'], ], - 'schemes' => [ - 'http', - 'https', + 'createdAt' => '2025-02-10T05:39:05.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'AddSourcesToTrafficMirrorSession'], + ['description' => 'Error codes changed', 'api' => 'CreateTrafficMirrorSession'], + ['description' => 'Error codes changed', 'api' => 'UpdateTrafficMirrorSessionAttribute'], ], - 'security' => [ - [ - 'AK' => [], - ], + 'createdAt' => '2025-02-08T09:45:09.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'DescribeIpv6Addresses'], ], - 'operationType' => 'readAndWrite', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'create', + 'createdAt' => '2025-01-22T02:57:50.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Response parameters changed', 'api' => 'AssociateVpcCidrBlock'], ], - 'parameters' => [ - [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the IPv6 gateway. You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-huhehaote', - ], - ], - [ - 'name' => 'VpcId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the VPC in which you want to create the IPv6 gateway.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'vpc-123sedrfswd23****', - ], - ], - [ - 'name' => 'Name', - 'in' => 'query', - 'schema' => [ - 'description' => 'The name of the IPv6 gateway.'."\n" - ."\n" - .'The name must be 0 to 128 characters in length and cannot start with `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'ipv6GW', - ], - ], - [ - 'name' => 'Description', - 'in' => 'query', - 'schema' => [ - 'description' => 'The description of the IPv6 gateway.'."\n" - ."\n" - .'The description must be 0 to 256 characters in length and cannot start with `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'ipv6gatewayforVPC1', - ], - ], - [ - 'name' => 'ClientToken', - 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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.'."\n" - ."\n" - .'> 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.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '0c593ea1-3bea-11e9-b96b-88e9fe637760', - ], - ], - [ - 'name' => 'ResourceGroupId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the resource group to which the IPv6 gateway belongs.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'rg-acfmxazb4ph6aiy****', - ], - ], - [ - 'name' => 'Tag', - 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => 'The tags.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => 'The tag key. You can specify at most 20 tag keys. The tag key cannot be an empty string.'."\n" - ."\n" - .'The tag key can be up to 128 characters in length. It cannot start with `aliyun` or `acs:`, and cannot contain `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'FinanceDept', - ], - 'Value' => [ - 'description' => 'The tag value. You can specify at most 20 tag values. The tag value can be an empty string.'."\n" - ."\n" - .'The tag value can be up to 128 characters in length, and cannot contain `http://` or `https://`. The tag value cannot start with `aliyun` or `acs:`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'FinanceJoshua', - ], - ], - 'required' => false, - ], - 'required' => false, - 'maxItems' => 21, - ], - ], - [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the IPv6 gateway. You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-huhehaote', - ], - ], + 'createdAt' => '2025-01-16T06:58:52.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'CreateVpc'], + ['description' => 'Error codes changed', 'api' => 'GetVpcRouteEntrySummary'], + ['description' => 'Error codes changed', 'api' => 'ModifyVpcAttribute'], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'description' => 'The response parameters.'."\n", - 'type' => 'object', - 'properties' => [ - 'Ipv6GatewayId' => [ - 'description' => 'The ID of the IPv6 gateway.'."\n", - 'type' => 'string', - 'example' => 'ipv6gw-hp3y0l3ln89j8cdvf****', - ], - 'ResourceGroupId' => [ - 'description' => 'The ID of the resource group to which the IPv6 gateway belongs.'."\n", - 'type' => 'string', - 'example' => 'rg-acfmxazb4ph6aiy****', - ], - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '0ED8D006-F706-4D23-88ED-E11ED28DCAC', - ], - ], - ], - ], + 'createdAt' => '2025-01-16T03:36:36.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'CreateRouteEntry'], + ['description' => 'Error codes changed', 'api' => 'DeleteRouteEntry'], + ['description' => 'Error codes changed', 'api' => 'ModifyRouteTableAttributes'], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InvalidVpcId.NotFound', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'IllegalParam.Name', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'IllegalParam.Description', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'IllegalParam.Spec', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'IllegalParam.ChargeType', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'OperationUnsupported.OnlyOneIpv6GatewayInVpc', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'OperationFailed.VpcIpv6Disabled', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'OperationFailed.UnpaidBillsExist', - 'errorMessage' => 'The account has unpaid bills. Please pay your overdue bill first.', - ], - [ - 'errorCode' => 'OperationFailed.InformationIncomplete', - 'errorMessage' => 'Your information is incomplete.', - ], - [ - 'errorCode' => 'OperationFailed.NoPaymentMethod', - 'errorMessage' => 'No payment method is specified for your account.', - ], - [ - 'errorCode' => 'IllegalParam.ResourceGroupId', - 'errorMessage' => 'Invalid ResourceGroupld value.', - ], - [ - 'errorCode' => 'MissingParam.vpcId', - 'errorMessage' => 'The parameter vpcId is mandatory.', - ], - [ - 'errorCode' => 'Forbidden.OperateShareResource', - 'errorMessage' => 'You cannot operate shared resources.', - ], - [ - 'errorCode' => 'InvalidRegionId.NotFound', - 'errorMessage' => 'The specified RegionId does not exist in our records.', - ], - ], - 404 => [ - [ - 'errorCode' => 'InvalidVpcId.NotFound', - 'errorMessage' => 'Specified VPC does not exist.', - ], - ], + 'createdAt' => '2025-01-14T01:32:48.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'AssociateRouteTable'], + ['description' => 'Error codes changed', 'api' => 'AssociateRouteTableWithGateway'], + ['description' => 'Error codes changed', 'api' => 'CreateRouteEntry'], + ['description' => 'Error codes changed', 'api' => 'DescribeRouteTables'], + ['description' => 'Error codes changed', 'api' => 'ModifyRouteEntry'], + ['description' => 'Error codes changed', 'api' => 'UpdateGatewayRouteTableEntryAttribute'], + ], + 'createdAt' => '2024-12-31T01:51:51.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'CreateNatGateway'], + ['description' => 'Error codes changed', 'api' => 'CreateNatIp'], + ['description' => 'Error codes changed, Response parameters changed', 'api' => 'DescribeNatGatewayAssociateNetworkInterfaces'], + ['description' => 'Error codes changed', 'api' => 'ModifyForwardEntry'], + ], + 'createdAt' => '2024-12-30T03:58:52.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'AssociateVpcCidrBlock'], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Ipv6GatewayId\\": \\"ipv6gw-hp3y0l3ln89j8cdvf****\\",\\n \\"ResourceGroupId\\": \\"rg-acfmxazb4ph6aiy****\\",\\n \\"RequestId\\": \\"0ED8D006-F706-4D23-88ED-E11ED28DCAC\\"\\n}","errorExample":""},{"type":"xml","example":"\\n ipv6gw-hp3y0l3ln89j8cdvf****\\n rg-acfmxazb4ph6aiy****\\n 0ED8D006-F706-4D23-88ED-E11ED28DCAC\\n","errorExample":""}]', - 'title' => 'CreateIpv6Gateway', - 'description' => '* **CreateIpv6Gateway** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call the [DescribeIpv6GatewayAttribute](~~102226~~) operation to query the status of the task.'."\n" - ."\n" - .' * If the IPv6 gateway is in the **Creating** state, the IPv6 gateway is being created.'."\n" - .' * If the IPv6 gateway is in the **Created** state, the IPv6 gateway is created.'."\n" - ."\n" - .'* You cannot repeatedly call the **CreateIpv6Gateway** operation within a specific time period.'."\n", - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', + 'createdAt' => '2024-12-30T01:56:18.000Z', + 'description' => '', ], - 'CreateIpv6EgressOnlyRule' => [ - 'summary' => 'You can call CreateIpv6EgressOnlyRule to create egress-only rules to enable ECS instances in VPCs that have IPv6 enabled to access IPv6 clients. However, IPv6 clients cannot access the ECS instances over the Internet.', - 'methods' => [ - 'post', - 'get', + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'AssociateVpcCidrBlock'], + ['description' => 'Error codes changed', 'api' => 'CreateVpc'], ], - 'schemes' => [ - 'http', - 'https', + 'createdAt' => '2024-12-18T11:28:55.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'CheckCanAllocateVpcPrivateIpAddress'], ], - 'security' => [ - [ - 'AK' => [], - ], + 'createdAt' => '2024-12-16T07:17:17.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'UnassociateNetworkAcl'], + ['description' => 'Error codes changed', 'api' => 'UpdateDhcpOptionsSetAttribute'], ], - 'operationType' => 'readAndWrite', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'create', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeCode' => '37981', - 'abilityTreeNodes' => [ - 'FEATUREvpc3GHR3P', - ], - 'autoTest' => true, - 'tenantRelevance' => 'publicInformation', + 'createdAt' => '2024-12-13T02:34:34.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Request parameters changed', 'api' => 'CreateExpressConnectTrafficQos'], + ['description' => 'Request parameters changed, Response parameters changed', 'api' => 'DescribeExpressConnectTrafficQos'], ], - 'parameters' => [ - [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region in which the IPv6 gateway is deployed.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the region ID.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-huhehaote', - ], - ], - [ - 'name' => 'Ipv6GatewayId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the IPv6 gateway.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'ipv6gw-hp3c2paq0ywauasza****', - ], - ], - [ - 'name' => 'InstanceId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the IPv6 address for which you want to create an egress-only rule.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'ipv6-hp3nxjkfxn5pnhgl5****', - ], - ], - [ - 'name' => 'InstanceType', - 'in' => 'query', - 'schema' => [ - 'description' => 'The type of the instance for which you want to create an egress-only rule.'."\n" - ."\n" - .'Default value: **Ipv6Address**'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'Ipv6Address', - ], - ], - [ - 'name' => 'Name', - 'in' => 'query', - 'schema' => [ - 'description' => 'The name of the egress-only rule.'."\n" - ."\n" - .'The name must be 0 to 128 characters in length and cannot start with `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'rulename', - ], - ], - [ - 'name' => 'Description', - 'in' => 'query', - 'schema' => [ - 'description' => 'The description of the egress-only rule.'."\n" - ."\n" - .'The description must be 0 to 256 characters in length and cannot start with `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'ruledescription', - ], - ], - [ - 'name' => 'ClientToken', - 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'You can use the client to generate a token, but you must make sure that the token is unique among different requests. The token can contain only ASCII characters and cannot exceed 64 characters in length.'."\n" - ."\n" - .'> If you do not specify this parameter, the system automatically uses the value of RequestId as the client token. The value of RequestId is different for each API request.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '0c593ea1-3bea-11e9-b96b-88e9fe637760', - ], - ], - [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region in which the IPv6 gateway is deployed.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the region ID.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-huhehaote', - ], - ], + 'createdAt' => '2024-12-12T05:57:32.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Request parameters changed', 'api' => 'CreateForwardEntry'], + ['description' => 'Error codes changed', 'api' => 'CreateNatGateway'], + ['description' => 'Request parameters changed', 'api' => 'CreateSnatEntry'], + ['description' => 'Error codes changed', 'api' => 'ListFullNatEntries'], + ['description' => 'Request parameters changed, Response parameters changed', 'api' => 'ModifyForwardEntry'], + ['description' => 'Request parameters changed', 'api' => 'ModifySnatEntry'], + ], + 'createdAt' => '2024-12-03T02:21:33.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Request parameters changed', 'api' => 'CreateVpnAttachment'], + ['description' => 'Request parameters changed', 'api' => 'ModifyVpnAttachmentAttribute'], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'Ipv6EgressRuleId' => [ - 'description' => 'The ID of the egress-only rule.'."\n", - 'type' => 'string', - 'example' => 'ipv6py-hp3w98rmlbqp01245****', - ], - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '9DFEDBEE-E5AB-49E8-A2DC-CC114C67AF75', - ], - ], - 'description' => '', - ], - ], + 'createdAt' => '2024-11-28T10:47:20.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'ModifyRouteTableAttributes'], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InvalidIpv6Gateway.NotFound', - 'errorMessage' => 'The specified IPv6 gateway was not found.', - ], - [ - 'errorCode' => 'IllegalParam.Name', - 'errorMessage' => 'The param of Name [%s] is illegal.', - ], - [ - 'errorCode' => 'IllegalParam.Description', - 'errorMessage' => 'The parameter of Description is illegal.', - ], - [ - 'errorCode' => 'IllegalParam.InstanceType', - 'errorMessage' => 'The parameter of InstanceType is illegal.', - ], - [ - 'errorCode' => 'OperationFailed.FinancialLocked', - 'errorMessage' => 'The operation is forbidden because of financialLocked.', - ], - [ - 'errorCode' => 'OperationUnsupported.EgressRuleVSwitch', - 'errorMessage' => 'The specified VSwitch is not supported to create egress-only rule.', - ], - [ - 'errorCode' => 'InvalidIpv6Instance.NotFound', - 'errorMessage' => 'The specified resource of InvalidIpv6Instance is not found.', - ], - [ - 'errorCode' => 'OperationFailed.NoInternetBandwidth', - 'errorMessage' => 'Operation failed because the ipv6 instance has no internet bandwidth.', - ], - [ - 'errorCode' => 'OperationFailed.Ipv6EgressRuleExisted', - 'errorMessage' => 'An egress-only rule already exists for the IPv6 address.', - ], - [ - 'errorCode' => 'OperationFailed.InternetBandwidthUnstable', - 'errorMessage' => 'The operation is forbidden because of InternetBandwidthUnstable.', - ], - [ - 'errorCode' => 'IncorrectStatus.Ipv6InternetBandwidth', - 'errorMessage' => 'The status of the IPv6InternetBandwidth is incorrect.', - ], - [ - 'errorCode' => 'OperationUnsupported.EgressRuleInDefaultSpec', - 'errorMessage' => 'Egress-only rule is not supported. Please update the spec of IPv6 Gateway to Medium or Large.', - ], - [ - 'errorCode' => 'QuotaExceeded.Ipv6EgressRules', - 'errorMessage' => '%s quota exceeded.', - ], - [ - 'errorCode' => 'Mismatch.Ipv6AddressAndIpv6Gateway', - 'errorMessage' => 'The %s and %s are mismatched.', - ], - [ - 'errorCode' => 'OperationUnsupported.EgressOnlyRuleOnFreeIpv6Instance', - 'errorMessage' => 'Creating ipv6 egress only rule on ipv6 instance that not associated with any resource is unsupported.', - ], - [ - 'errorCode' => 'MissingParam.InstanceId', - 'errorMessage' => 'The parameter InstanceId is mandatory.', - ], - [ - 'errorCode' => 'InvalidRegionId.NotFound', - 'errorMessage' => 'The specified RegionId does not exist in our records.', - ], - ], + 'createdAt' => '2024-11-28T06:48:37.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'ListVpcPublishedRouteEntries'], ], - 'staticInfo' => [ - 'returnType' => 'asynchronous', - 'callback' => 'Vpc::2016-04-28::DescribeIpv6EgressOnlyRules', - 'callbackInterval' => 3000, - 'maxCallbackTimes' => 10, - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Ipv6EgressRuleId\\": \\"ipv6py-hp3w98rmlbqp01245****\\",\\n \\"RequestId\\": \\"9DFEDBEE-E5AB-49E8-A2DC-CC114C67AF75\\"\\n}","errorExample":""},{"type":"xml","example":"\\r\\n\\t9DFEDBEE-E5AB-49E8-A2DC-CC114C67AF75\\r\\n\\tipv6py-hp3w98rmlbqp01245****\\r\\n","errorExample":""}]', - 'title' => 'CreateIpv6EgressOnlyRule', - 'description' => '* **CreateIpv6EgressOnlyRule** is an asynchronous operation. After a request is sent, the system returns a request ID and creates the rule in the background. You can call the [DescribeIpv6EgressOnlyRules](~~102208~~) operation to query the status of the task.'."\n" - ."\n" - .' * If the egress-only rule is in the **Creating** state, the egress-only rule is being created.'."\n" - .' * If the egress-only rule is in the **Created** state, the egress-only rule is created.'."\n" - ."\n" - .'* You cannot repeatedly call the **CreateIpv6EgressOnlyRule** operation to add egress-only rules for an IPv6 address within the specified period of time.'."\n", - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', + 'createdAt' => '2024-11-27T03:51:05.000Z', + 'description' => '', ], - 'DeleteIpv6Gateway' => [ - 'summary' => 'Deletes an IPv6 gateway.', - 'methods' => [ - 'post', - 'get', + [ + 'apis' => [ + ['description' => 'Response parameters changed', 'api' => 'ModifyVpnAttachmentAttribute'], ], - 'schemes' => [ - 'http', - 'https', + 'createdAt' => '2024-11-26T05:48:13.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Request parameters changed', 'api' => 'CreateVpnAttachment'], + ['description' => 'Response parameters changed', 'api' => 'DescribeVpnAttachments'], + ['description' => 'Request parameters changed', 'api' => 'ModifyVpnAttachmentAttribute'], ], - 'security' => [ - [ - 'AK' => [], - ], + 'createdAt' => '2024-11-25T02:23:23.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'CreateFlowLog'], + ['description' => 'Error codes changed', 'api' => 'ModifyFlowLogAttribute'], ], - 'operationType' => 'readAndWrite', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'delete', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeCode' => '37992', - 'abilityTreeNodes' => [ - 'FEATUREvpcGGHSBJ', - ], - 'autoTest' => true, - 'tenantRelevance' => 'publicInformation', + 'createdAt' => '2024-11-20T03:14:02.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'ModifyRouteEntry'], ], - 'parameters' => [ - [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the IPv6 gateway. You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cn-huhehaote', - ], - ], - [ - 'name' => 'Ipv6GatewayId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the IPv6 gateway that you want to delete.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'ipv6gw-hp3y0l3ln89j8****', - ], - ], - [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the IPv6 gateway. You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cn-huhehaote', - ], - ], - [ - 'name' => 'DryRun', - 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values:'."\n" - ."\n" - .'* **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.'."\n" - .'* **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.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], - ], - [ - 'name' => 'ClientToken', - 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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.'."\n" - ."\n" - .'> 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.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-426655440000', - ], - ], + 'createdAt' => '2024-11-19T02:34:57.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'AssociateEipAddress'], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => 'E9A8AABE-A84B-4AF2-A68A-8E2EA190E7AE', - ], - ], - 'description' => '', - ], - ], + 'createdAt' => '2024-11-18T12:36:38.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'AssociateNetworkAcl'], + ['description' => 'Error codes changed', 'api' => 'UnassociateNetworkAcl'], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'ResourceNotFound.RouteTable', - 'errorMessage' => 'The specified resource gatewayRouteTable is not found.', - ], - [ - 'errorCode' => 'DependencyViolation.GatewayRouteTableRelation', - 'errorMessage' => 'The specified resource of %s depends on %s, so the operation cannot be completed.', - ], - [ - 'errorCode' => 'IncorrectStatus.Ipv6Gateway', - 'errorMessage' => 'The status of %s [%s] is incorrect.', - ], - [ - 'errorCode' => 'DependencyViolation.EgressRules', - 'errorMessage' => 'The specified resource of %s depends on %s, so the operation cannot be completed.', - ], - [ - 'errorCode' => 'DependencyViolation.Ipv6InternetBandwidth', - 'errorMessage' => 'The specified resource of %s depends on %s, so the operation cannot be completed.', - ], - [ - 'errorCode' => 'OperationFailed.RouteEntryUnstable', - 'errorMessage' => 'The operation is failed because of route entry related to it is unstable, please try later.', - ], - [ - 'errorCode' => 'Forbidden.OperateShareResource', - 'errorMessage' => 'You cannot operate shared resources.', - ], - [ - 'errorCode' => 'DependencyViolation.SharedIpv6InternetBandwidth', - 'errorMessage' => 'The IPv6 gateway [%s] has IPv6 address [%s] that enabled internet from share user [%s], please delete it and try again later.', - ], - [ - 'errorCode' => 'IncorrectStatus.Vpc', - 'errorMessage' => 'Vpc incorrect status.', - ], - [ - 'errorCode' => 'InvalidRegionId.NotFound', - 'errorMessage' => 'The specified RegionId does not exist in our records.', - ], - ], + 'createdAt' => '2024-11-14T07:59:23.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'CreateVirtualBorderRouter'], + ['description' => 'Error codes changed', 'api' => 'DescribeEcGrantRelation'], + ['description' => 'Error codes changed', 'api' => 'DescribePhysicalConnections'], + ['description' => 'Error codes changed', 'api' => 'DescribeVirtualBorderRouters'], + ], + 'createdAt' => '2024-11-12T08:03:46.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'ModifyVSwitchAttribute'], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"E9A8AABE-A84B-4AF2-A68A-8E2EA190E7AE\\"\\n}","errorExample":""},{"type":"xml","example":"\\n E9A8AABE-A84B-4AF2-A68A-8E2EA190E7AE\\n","errorExample":""}]', - 'title' => 'DeleteIpv6Gateway', - 'description' => 'Before you delete an IPv6 gateway, you must delete the egress-only rules of the IPv6 gateway. For more information, see [DeleteIpv6EgressOnlyRule](~~102201~~).'."\n" - ."\n" - .'* **DeleteIpv6Gateway** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call the [DescribeIpv6GatewayAttribute](~~102226~~) operation to query the status of the task:'."\n" - ."\n" - .' * If the IPv6 gateway is in the **Deleting** state, the IPv6 gateway is being deleted.'."\n" - .' * If you cannot query the IPv6 gateway, the IPv6 gateway is deleted.'."\n" - ."\n" - .'* You cannot repeatedly call the **DeleteIpv6Gateway** operation to delete an IPv6 gateway within the specified period of time.'."\n", - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', + 'createdAt' => '2024-11-07T03:23:13.000Z', + 'description' => '', ], - 'DeleteIpv6EgressOnlyRule' => [ - 'summary' => 'Deletes an egress-only rule.', - 'methods' => [ - 'post', - 'get', + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'ModifyRouteEntry'], ], - 'schemes' => [ - 'http', - 'https', + 'createdAt' => '2024-11-06T02:02:38.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Request parameters changed', 'api' => 'ModifyRouteEntry'], ], - 'security' => [ - [ - 'AK' => [], - ], + 'createdAt' => '2024-11-04T09:27:49.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Response parameters changed, Response parameters changed', 'api' => 'DescribeVpnAttachments'], ], - 'operationType' => 'readAndWrite', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'delete', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeCode' => '37991', - 'abilityTreeNodes' => [ - 'FEATUREvpc3GHR3P', - ], - 'autoTest' => true, - 'tenantRelevance' => 'publicInformation', + 'createdAt' => '2024-11-01T03:04:43.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'CreateFlowLog'], ], - 'parameters' => [ - [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the IPv6 gateway. You can call the [DescribeRegions](~~448570~~) operation to query the most recent region list.', - 'type' => 'string', - 'required' => true, - 'example' => 'cn-huhehaote', - ], - ], - [ - 'name' => 'Ipv6EgressOnlyRuleId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the egress-only rule that you want to delete.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'ipv6py-hp3w98rmlbqp0xxxxxxxx', - ], - ], - [ - 'name' => 'ClientToken', - 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'You can use the client to generate a token, but you must make sure that the token is unique among different requests. The client token can contain only ASCII characters.'."\n" - ."\n" - .'> If you do not specify this parameter, the system automatically uses the value of **RequestId** as the **client token**. The value of **RequestId** is different for each API request.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '123456', - ], - ], - [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the IPv6 gateway. You can call the [DescribeRegions](~~448570~~) operation to query the most recent region list.', - 'type' => 'string', - 'required' => true, - 'example' => 'cn-huhehaote', - ], - ], + 'createdAt' => '2024-10-29T02:52:16.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'DeleteRouteEntry'], + ['description' => 'Error codes changed', 'api' => 'DeleteVpc'], + ['description' => 'Error codes changed', 'api' => 'ModifyRouteEntry'], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '9DFEDBEE-E5AB-49E8-A2DC-CC114C67AF75', - ], - ], - 'description' => '', - ], - ], + 'createdAt' => '2024-10-28T06:53:05.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'UpdateNetworkAclEntries'], + ['description' => 'Error codes changed', 'api' => 'UpdateTrafficMirrorSessionAttribute'], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'IncorrectStatus.EgressOnlyRule', - 'errorMessage' => 'The status of the specified IPv6EgressOnlyRule is incorrect.', - ], - [ - 'errorCode' => 'InvalidRegionId.NotFound', - 'errorMessage' => 'The RegionId provided does not exist in our records.', - ], - ], - 404 => [ - [ - 'errorCode' => 'ResourceNotFound.Ipv6EgressOnlyRule', - 'errorMessage' => 'The specified resource of IPv6 Gateway Rule is not found.', - ], - ], + 'createdAt' => '2024-10-25T13:39:54.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed, Request parameters changed', 'api' => 'CreateVpnAttachment'], + ['description' => 'Error codes changed', 'api' => 'DeleteVpnAttachment'], + ['description' => 'Response parameters changed, Response parameters changed', 'api' => 'DescribeVcoRouteEntries'], + ['description' => 'Response parameters changed', 'api' => 'DescribeVpnConnection'], + ['description' => 'Response parameters changed', 'api' => 'DescribeVpnConnections'], + ['description' => 'Response parameters changed', 'api' => 'DescribeVpnRouteEntries'], + ['description' => 'Request parameters changed', 'api' => 'ModifyTunnelAttribute'], + ['description' => 'Error codes changed, Request parameters changed, Response parameters changed', 'api' => 'ModifyVpnAttachmentAttribute'], + ['description' => 'Request parameters changed', 'api' => 'ModifyVpnConnectionAttribute'], + ], + 'createdAt' => '2024-10-24T09:33:42.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'CreateForwardEntry'], + ['description' => 'Error codes changed, Request parameters changed', 'api' => 'CreateNatGateway'], + ['description' => 'Error codes changed', 'api' => 'CreateNatIpCidr'], + ['description' => 'Error codes changed, Response parameters changed', 'api' => 'DescribeNatGatewayAssociateNetworkInterfaces'], + ['description' => 'Response parameters changed', 'api' => 'DescribeNatGateways'], + ['description' => 'Response parameters changed', 'api' => 'GetNatGatewayAttribute'], + ['description' => 'Error codes changed', 'api' => 'ModifyForwardEntry'], + ['description' => 'Error codes changed', 'api' => 'ModifyNatIpCidrAttribute'], + ], + 'createdAt' => '2024-10-23T06:04:50.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'UpdateNatGatewayNatType'], ], - 'staticInfo' => [ - 'returnType' => 'asynchronous', - 'callback' => 'Vpc::2016-04-28::DescribeIpv6EgressOnlyRules', - 'callbackInterval' => 3000, - 'maxCallbackTimes' => 10, - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"9DFEDBEE-E5AB-49E8-A2DC-CC114C67AF75\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 9DFEDBEE-E5AB-49E8-A2DC-CC114C67AF75\\n","errorExample":""}]', - 'title' => 'DeleteIpv6EgressOnlyRule', - 'description' => '* **DeleteIpv6EgressOnlyRule** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call the [DescribeIpv6EgressOnlyRules](~~102208~~) operation to query the status of the task.'."\n" - ."\n" - .' * If the egress-only rule is in the **Deleting** state, the egress-only rule is being deleted.'."\n" - .' * If you cannot query the egress-only rule, the egress-only rule is deleted.'."\n" - ."\n" - .'* You cannot call the **DeleteIpv6EgressOnlyRule** within the specified period of time.'."\n", - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', + 'createdAt' => '2024-10-18T08:38:02.000Z', + 'description' => '', ], - 'DeleteIpv6InternetBandwidth' => [ - 'summary' => 'Deletes Internet bandwidth.', - 'methods' => [ - 'post', - 'get', + [ + 'apis' => [ + ['description' => 'Request parameters changed', 'api' => 'CreateVpc'], + ['description' => 'Error codes changed, Response parameters changed', 'api' => 'DescribeVpcAttribute'], + ['description' => 'Response parameters changed', 'api' => 'DescribeVpcs'], + ['description' => 'Error codes changed, Request parameters changed', 'api' => 'ModifyVpcAttribute'], + ], + 'createdAt' => '2024-10-10T06:14:52.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'ModifyVSwitchAttribute'], ], - 'schemes' => [ - 'http', - 'https', + 'createdAt' => '2024-10-08T10:05:39.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'DeleteVpc'], ], - 'security' => [ - [ - 'AK' => [], - ], + 'createdAt' => '2024-09-29T10:47:02.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'ModifyRouteEntry'], ], - 'operationType' => 'readAndWrite', - 'systemTags' => [ - 'operationType' => 'delete', - 'riskType' => 'none', - 'chargeType' => 'paid', - 'abilityTreeCode' => '37993', - 'abilityTreeNodes' => [ - 'FEATUREvpc3GHR3P', - ], - 'autoTest' => true, - 'tenantRelevance' => 'publicInformation', + 'createdAt' => '2024-09-29T06:00:44.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed, Request parameters changed', 'api' => 'CreateFlowLog'], + ['description' => 'Response parameters changed', 'api' => 'DescribeFlowLogs'], + ['description' => 'Error codes changed, Request parameters changed', 'api' => 'ModifyFlowLogAttribute'], ], - 'parameters' => [ - [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the IPv6 gateway.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cn-huhehaote', - ], - ], - [ - 'name' => 'Ipv6AddressId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the IPv6 address.'."\n" - ."\n" - .'> You must specify one of **Ipv6AddressId** and **Ipv6InternetBandwidthId**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'ipv6-2zen5j4axcp5l5qyy****', - ], - ], - [ - 'name' => 'Ipv6InternetBandwidthId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The instance ID of the Internet bandwidth of the IPv6 address.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'ipv6bw-uf6hcyzu65v98v3du****', - ], - ], - [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the IPv6 gateway.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cn-huhehaote', - ], - ], - [ - 'name' => 'DryRun', - 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values:'."\n" - ."\n" - .'* **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.'."\n" - .'* **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.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], - ], - [ - 'name' => 'ClientToken', - 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request. 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. 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.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-426655440000', - ], - ], + 'createdAt' => '2024-09-25T15:14:03.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'AssociateEipAddress'], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => 'E07E0FE6-5C21-405F-AF82-7613AA81EF92', - ], - ], - 'description' => '', - ], - ], + 'createdAt' => '2024-09-24T02:51:38.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'CreateRouteEntry'], + ['description' => 'Error codes changed, Response parameters changed', 'api' => 'ListVpcPublishedRouteEntries'], + ['description' => 'Error codes changed', 'api' => 'ModifyRouteEntry'], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'BothEmptyParam.Ipv6AddressIdAndIpv6InternetBandwidthId', - 'errorMessage' => 'Either Ipv6AddressId or Ipv6InternetBandwidthId should be specified.', - ], - [ - 'errorCode' => 'IncorrectStatus.Ipv6Instance', - 'errorMessage' => 'The status of %s [%s] is incorrect.', - ], - ], - 404 => [ - [ - 'errorCode' => 'OperationFailed.ServiceManaged', - 'errorMessage' => 'Operation is forbidden because this instance belongs to Service manager.', - ], - ], + 'createdAt' => '2024-09-13T07:01:47.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'CreateTrafficMirrorSession'], + ['description' => 'Error codes changed', 'api' => 'UpdateTrafficMirrorSessionAttribute'], ], - 'staticInfo' => [ - 'returnType' => 'asynchronous', - 'callback' => 'Vpc::2016-04-28::DescribeIpv6Addresses', - 'callbackInterval' => 3000, - 'maxCallbackTimes' => 10, - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"E07E0FE6-5C21-405F-AF82-7613AA81EF92\\"\\n}","errorExample":""},{"type":"xml","example":"\\n E07E0FE6-5C21-405F-AF82-7613AA81EF92\\n","errorExample":""}]', - 'title' => 'DeleteIpv6InternetBandwidth', - 'description' => 'You cannot call the **DeleteIpv6InternetBandwidth** operation within the specified period of time.'."\n", - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', + 'createdAt' => '2024-09-11T02:36:39.000Z', + 'description' => '', ], - 'ModifyIpv6InternetBandwidth' => [ - 'summary' => 'Modifies the Internet bandwidth of an IPv6 address.', - 'methods' => [ - 'post', - 'get', + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'AssociateRouteTable'], + ['description' => 'Error codes changed', 'api' => 'ModifyRouteEntry'], ], - 'schemes' => [ - 'http', - 'https', + 'createdAt' => '2024-09-06T06:03:43.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'CreateRouteEntry'], + ['description' => 'Error codes changed', 'api' => 'ModifyRouteEntry'], + ['description' => 'Error codes changed', 'api' => 'UpdateGatewayRouteTableEntryAttribute'], ], - 'security' => [ - [ - 'AK' => [], - ], + 'createdAt' => '2024-09-03T02:20:39.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed, Request parameters changed', 'api' => 'ModifyRouteEntry'], ], - 'operationType' => 'readAndWrite', - 'systemTags' => [ - 'operationType' => 'update', + 'createdAt' => '2024-08-29T05:46:48.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'AssociateVpcCidrBlock'], ], - 'parameters' => [ - [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region where the IPv6 gateway is deployed. You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cn-huhehaote', - ], - ], - [ - 'name' => 'Ipv6AddressId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the IPv6 address.'."\n" - ."\n" - .'> You must specify one of **Ipv6AddressId** and **Ipv6InternetBandwidthId**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'ipv6-2zen5j4axcp5l5qyy****', - ], - ], - [ - 'name' => 'Ipv6InternetBandwidthId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The instance ID of the Internet bandwidth of the IPv6 address.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'ipv6bw-uf6hcyzu65v98v3du****', - ], - ], - [ - 'name' => 'Bandwidth', - 'in' => 'query', - 'schema' => [ - 'description' => 'The Internet bandwidth value of the IPv6 address. Unit: Mbit/s.'."\n" - ."\n" - .'* If the billing method is pay-by-data-transfer, valid values are **1** to **1000**.'."\n" - .'* If the billing method is pay-by-bandwidth, valid values are **1** to **2000**.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'example' => '4', - ], - ], - [ - 'name' => 'ClientToken', - 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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.'."\n" - ."\n" - .'> 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.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-426655440000', - ], - ], - [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region where the IPv6 gateway is deployed. You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cn-huhehaote', - ], - ], - [ - 'name' => 'DryRun', - 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to perform a dry run, without sending the actual request. Valid values:'."\n" - ."\n" - .'* **true**: pre-checks the request but does not create the IPv4 gateway. 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.'."\n" - .'* **false** (default): sends the API request. After the request passes the check, an HTTP 2xx status code is returned and the IPv4 gateway is created.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], - ], - [ - 'name' => 'ClientToken', - 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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.'."\n" - ."\n" - .'> 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.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-426655440000', - ], - ], + 'createdAt' => '2024-08-28T05:52:43.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'DescribeRouteEntryList'], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => 'D560AF68-4CE8-4A5C-B3FE-469F558094D0', - ], - ], - ], - ], + 'createdAt' => '2024-08-26T11:35:19.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'CreateRouteEntry'], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'MissingParam.Ipv6InstanceId', - 'errorMessage' => 'The param of Ipv6InstanceId is missing.', - ], - [ - 'errorCode' => 'InvalidIpv6Instance.NotFound', - 'errorMessage' => 'The specified Ipv6AddressId or Ipv6InternetBandwidthId is not found.', - ], - [ - 'errorCode' => 'IllegalParam.Bandwidth', - 'errorMessage' => 'The param of bandwidth is illegal.', - ], - [ - 'errorCode' => 'OperationUnsupported.FinancialLocked', - 'errorMessage' => 'The operation is forbidden because of financialLocked.', - ], - [ - 'errorCode' => 'OperationFailed.InternetBandwidthNonExist', - 'errorMessage' => 'The operation is forbidden because of InternetBandwidthNonExist.', - ], - [ - 'errorCode' => 'OperationFailed.InternetBandwidthUnstable', - 'errorMessage' => 'The operation is forbidden because of InternetBandwidthUnstable.', - ], - [ - 'errorCode' => 'OperationFailed.BandwidthExceedLimit', - 'errorMessage' => 'The operation is forbidden because of BandwidthExceedLimit.', - ], - [ - 'errorCode' => 'ParamExclusive.Ipv6AddressIdAndIpv6InternetBandwidthId', - 'errorMessage' => 'Ipv6AddressId and Ipv6InternetBandwidthId is mutually exclusive.', - ], - ], - 404 => [ - [ - 'errorCode' => 'InvalidRegionId.NotFound', - 'errorMessage' => 'The specified RegionId does not exist in our records.', - ], - [ - 'errorCode' => 'InvalidIpv6Instance.NotFound', - 'errorMessage' => 'The specified Ipv6AddressId or Ipv6InternetBandwidthId is not found.', - ], - [ - 'errorCode' => 'OperationFailed.SaleValidate', - 'errorMessage' => 'Validate sale condition with subArticle failed.', - ], - ], - 500 => [ - [ - 'errorCode' => 'OperationFailed.QuerySpInfo', - 'errorMessage' => 'query resource by sp error', - ], - [ - 'errorCode' => 'OperationFailed.QueryAccountInfo', - 'errorMessage' => 'Query account info failed when create order.', - ], - [ - 'errorCode' => 'OperationFailed.SyncTradeResource', - 'errorMessage' => 'Resource transaction information synchronization failed', - ], - ], + 'createdAt' => '2024-08-23T09:37:55.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Request parameters changed', 'api' => 'CreateVpc'], + ['description' => 'Error codes changed, Response parameters changed', 'api' => 'DescribeVpcAttribute'], + ['description' => 'Response parameters changed', 'api' => 'DescribeVpcs'], + ['description' => 'Error codes changed, Request parameters changed', 'api' => 'ModifyVpcAttribute'], + ], + 'createdAt' => '2024-08-23T09:35:55.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'ModifyRouteTableAttributes'], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"D560AF68-4CE8-4A5C-B3FE-469F558094D0\\"\\n}","errorExample":""},{"type":"xml","example":"\\n D560AF68-4CE8-4A5C-B3FE-469F558094D0\\n","errorExample":""}]', - 'title' => 'ModifyIpv6InternetBandwidth', - 'description' => 'You cannot repeatedly call the **ModifyIpv6InternetBandwidth** operation to modify the Internet bandwidth value of an IPv6 CIDR block within the specified period of time.'."\n", - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', + 'createdAt' => '2024-08-21T08:59:27.000Z', + 'description' => '', ], - 'ModifyIpv6GatewayAttribute' => [ - 'summary' => 'Modifies the name and description of an IPv6 gateway.', - 'methods' => [ - 'post', - 'get', + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'Describe95Traffic'], ], - 'schemes' => [ - 'http', - 'https', + 'createdAt' => '2024-08-19T02:24:14.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'CreateBgpGroup'], + ['description' => 'Error codes changed', 'api' => 'CreateBgpPeer'], + ['description' => 'Response parameters changed', 'api' => 'DescribeEcGrantRelation'], ], - 'security' => [ - [ - 'AK' => [], - ], + 'createdAt' => '2024-08-16T02:04:12.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'CreateNatGateway'], ], - 'operationType' => 'readAndWrite', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'update', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeCode' => '38017', - 'abilityTreeNodes' => [ - 'FEATUREvpc3GHR3P', - ], + 'createdAt' => '2024-08-15T09:06:17.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'CreateRouteEntry'], ], - 'parameters' => [ - [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the IPv6 gateway. You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-huhehaote', - ], - ], - [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the IPv6 gateway. You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-huhehaote', - ], - ], - [ - 'name' => 'Ipv6GatewayId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the IPv6 gateway that you want to modify.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'ipv6gw-hp39kh1ya51yzp2lu****', - ], - ], - [ - 'name' => 'Name', - 'in' => 'query', - 'schema' => [ - 'description' => 'The name of the IPv6 gateway.'."\n" - ."\n" - .'The name must be 0 to 128 characters in length and cannot start with `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'ipv6name', - ], - ], - [ - 'name' => 'Description', - 'in' => 'query', - 'schema' => [ - 'description' => 'The description of the IPv6 gateway.'."\n" - ."\n" - .'The description must be 0 to 256 characters in length and cannot start with `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'ipv6description', - ], - ], - [ - 'name' => 'DryRun', - 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values:'."\n" - ."\n" - .'* **true**: performs only a dry run. 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 dry run, the `DryRunOperation` error code is returned.'."\n" - .'* **false**: sends the API request. After the request passes the check, a 2XX HTTP status code is returned and the gateway endpoint is associated with the route table. This is the default value.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], - ], - [ - 'name' => 'ClientToken', - 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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.'."\n" - ."\n" - .'> 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.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '02fb3da4-130e-11e9-8e44-0016e04115b', - ], - ], + 'createdAt' => '2024-08-12T03:08:23.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'CreateFullNatEntry'], + ['description' => 'Error codes changed, Request parameters changed', 'api' => 'CreateSnatEntry'], + ['description' => 'Request parameters changed, Response parameters changed', 'api' => 'DescribeSnatTableEntries'], + ['description' => 'Error codes changed, Request parameters changed', 'api' => 'ModifySnatEntry'], + ], + 'createdAt' => '2024-08-09T10:05:49.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'AllocateIpv6Address'], + ['description' => 'Error codes changed', 'api' => 'DescribeIpv6Addresses'], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '9DFEDBEE-E5AB-49E8-A2DC-CC114C67AF75', - ], - ], - 'description' => '', - ], - ], + 'createdAt' => '2024-08-08T09:26:06.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Response parameters changed', 'api' => 'ListPublicIpAddressPools'], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InvalidIpv6GatewayId.NotFound', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'IllegalParam.Name', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'IllegalParam.Description', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'InvalidRegionId.NotFound', - 'errorMessage' => 'The specified RegionId does not exist in our records.', - ], - ], + 'createdAt' => '2024-08-07T08:57:33.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'ModifyVpcAttribute'], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'createdAt' => '2024-08-06T03:05:03.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Response parameters changed', 'api' => 'UpdateVirtualPhysicalConnection'], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"9DFEDBEE-E5AB-49E8-A2DC-CC114C67AF75\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 9DFEDBEE-E5AB-49E8-A2DC-CC114C67AF75\\n","errorExample":""}]', - 'title' => 'ModifyIpv6GatewayAttribute', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', + 'createdAt' => '2024-08-01T04:02:53.000Z', + 'description' => '', ], - 'ModifyIpv6AddressAttribute' => [ - 'summary' => 'Modifies the name and description of an IPv6 address.', - 'methods' => [ - 'post', - 'get', + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'DescribeGrantRulesToCen'], + ['description' => 'Error codes changed', 'api' => 'DescribeIpv6GatewayAttribute'], + ['description' => 'Error codes changed', 'api' => 'DescribeIpv6Gateways'], + ['description' => 'Error codes changed', 'api' => 'DescribeRegions'], + ['description' => 'Error codes changed', 'api' => 'DescribeVRouters'], + ['description' => 'Error codes changed', 'api' => 'GetFlowLogServiceStatus'], + ['description' => 'Error codes changed', 'api' => 'GetTrafficMirrorServiceStatus'], + ['description' => 'Error codes changed', 'api' => 'GetVpcRouteEntrySummary'], + ['description' => 'Error codes changed', 'api' => 'ListIpv4Gateways'], + ['description' => 'Error codes changed', 'api' => 'ListPublicIpAddressPoolCidrBlocks'], + ], + 'createdAt' => '2024-07-31T02:34:56.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'AddPublicIpAddressPoolCidrBlock'], ], - 'schemes' => [ - 'http', - 'https', + 'createdAt' => '2024-07-29T03:09:33.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'AddBgpNetwork'], + ['description' => 'Error codes changed', 'api' => 'CreatePhysicalConnectionOccupancyOrder'], + ['description' => 'Error codes changed', 'api' => 'CreateVbrHa'], + ['description' => 'Error codes changed', 'api' => 'DescribeFailoverTestJobs'], + ], + 'createdAt' => '2024-07-29T02:44:47.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Request parameters changed', 'api' => 'AllocateIpv6InternetBandwidth'], + ['description' => 'Request parameters changed', 'api' => 'DeleteIpv6Gateway'], + ['description' => 'Error codes changed, Request parameters changed', 'api' => 'DeleteIpv6InternetBandwidth'], + ['description' => 'Request parameters changed, Response parameters changed', 'api' => 'DeleteVpc'], + ['description' => 'Request parameters changed', 'api' => 'DeleteVSwitchCidrReservation'], + ['description' => 'Request parameters changed', 'api' => 'ModifyIpv6AddressAttribute'], + ['description' => 'Request parameters changed', 'api' => 'ModifyIpv6GatewayAttribute'], + ['description' => 'Error codes changed, Request parameters changed', 'api' => 'ModifyIpv6InternetBandwidth'], + ['description' => 'Request parameters changed', 'api' => 'ModifyVSwitchCidrReservationAttribute'], + ], + 'createdAt' => '2024-07-24T08:03:21.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Response parameters changed', 'api' => 'ModifyFullNatEntryAttribute'], ], - 'security' => [ - [ - 'AK' => [], - ], + 'createdAt' => '2024-07-23T06:51:44.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed, Request parameters changed', 'api' => 'CreateFailoverTestJob'], + ['description' => 'Error codes changed', 'api' => 'DeleteFailoverTestJob'], + ['description' => 'Response parameters changed', 'api' => 'DescribeFailoverTestJob'], + ['description' => 'Response parameters changed', 'api' => 'DescribeFailoverTestJobs'], + ['description' => 'Error codes changed', 'api' => 'StartFailoverTestJob'], + ['description' => 'Error codes changed', 'api' => 'StopFailoverTestJob'], + ['description' => 'Error codes changed, Request parameters changed', 'api' => 'UpdateFailoverTestJob'], + ], + 'createdAt' => '2024-07-19T02:56:47.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed, Request parameters changed', 'api' => 'DescribePublicIpAddress'], ], - 'operationType' => 'readAndWrite', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'update', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeCode' => '38016', - 'abilityTreeNodes' => [ - 'FEATUREvpc3GHR3P', - ], + 'createdAt' => '2024-07-16T06:15:41.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'AllocateEipAddress'], ], - 'parameters' => [ - [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the IPv6 address. You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-huhehaote', - ], - ], - [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the IPv6 address. You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-huhehaote', - ], - ], - [ - 'name' => 'Ipv6AddressId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the IPv6 address.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'ipv6-hp32vv2klzw4yerdf****', - ], - ], - [ - 'name' => 'Name', - 'in' => 'query', - 'schema' => [ - 'description' => 'The name of the IPv6 address.'."\n" - ."\n" - .'The name must be 0 to 128 characters in length and cannot start with `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'test', - ], - ], - [ - 'name' => 'Description', - 'in' => 'query', - 'schema' => [ - 'description' => 'The description of the IPv6 address.'."\n" - ."\n" - .'The description must be 0 to 256 characters in length and cannot start with `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'test', - ], - ], - [ - 'name' => 'DryRun', - 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to perform a dry run, without performing the actual request. Valid values:'."\n" - ."\n" - .'* **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.'."\n" - .'* **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.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], - ], - [ - 'name' => 'ClientToken', - 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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.'."\n" - ."\n" - .'> 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.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'd7d24a21-f4ba-4454-9173-b3828dae492b', - ], - ], + 'createdAt' => '2024-07-16T05:48:50.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'AllocateEipAddressPro'], + ['description' => 'Error codes changed', 'api' => 'AllocateEipSegmentAddress'], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'description' => 'The returned data.'."\n", - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => 'D560AF68-4CE8-4A5C-B3FE-469F558094D0', - ], - ], - ], - ], + 'createdAt' => '2024-07-16T03:57:30.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'CreatePhysicalConnection'], + ['description' => 'Error codes changed', 'api' => 'DescribeVbrHa'], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InvalidIpv6AddressId.NotFound', - 'errorMessage' => 'The specified resource of %s is not found.', - ], - [ - 'errorCode' => 'IllegalParam.Name', - 'errorMessage' => 'The param of Name [%s] is illegal.', - ], - [ - 'errorCode' => 'IllegalParam.Description', - 'errorMessage' => 'The param of Description [%s] is illegal.', - ], - ], + 'createdAt' => '2024-07-15T06:09:07.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'AssociatePhysicalConnectionToVirtualBorderRouter'], + ['description' => 'Error codes changed', 'api' => 'AttachVbrToVpconn'], + ['description' => 'Error codes changed', 'api' => 'ConfirmPhysicalConnection'], + ['description' => 'Error codes changed', 'api' => 'CreateHighReliablePhysicalConnection'], + ['description' => 'Error codes changed', 'api' => 'CreatePhysicalConnection'], + ['description' => 'Error codes changed', 'api' => 'CreateRouterInterface'], + ['description' => 'Error codes changed', 'api' => 'CreateVpconnFromVbr'], + ['description' => 'Error codes changed', 'api' => 'ModifyVirtualBorderRouterAttribute'], + ], + 'createdAt' => '2024-06-28T02:56:03.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'DeletePublicIpAddressPool'], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'createdAt' => '2024-06-26T03:40:55.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'DeleteVSwitchCidrReservation'], + ['description' => 'Error codes changed', 'api' => 'DescribeVpcAttribute'], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"D560AF68-4CE8-4A5C-B3FE-469F558094D0\\"\\n}","errorExample":""},{"type":"xml","example":"\\n D560AF68-4CE8-4A5C-B3FE-469F558094D0\\n","errorExample":""}]', - 'title' => 'ModifyIpv6AddressAttribute', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', + 'createdAt' => '2024-06-24T03:22:09.000Z', + 'description' => '', ], - 'DescribeIpv6Gateways' => [ - 'summary' => 'Queries IPv6 gateways in a region.', - 'methods' => [ - 'post', - 'get', + [ + 'apis' => [ + ['description' => 'Request parameters changed', 'api' => 'ModifyRouteTableAttributes'], ], - 'schemes' => [ - 'http', - 'https', + 'createdAt' => '2024-06-24T02:04:27.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed, Response parameters changed', 'api' => 'CreateBgpGroup'], + ['description' => 'Error codes changed', 'api' => 'CreateRouteEntry'], + ['description' => 'Error codes changed', 'api' => 'DeleteBgpGroup'], + ['description' => 'Error codes changed', 'api' => 'DeleteRouteEntry'], + ['description' => 'Error codes changed, Response parameters changed', 'api' => 'ModifyBgpGroupAttribute'], + ], + 'createdAt' => '2024-06-19T02:32:20.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'CreateVpnGateway'], ], - 'security' => [ - [ - 'AK' => [], - ], + 'createdAt' => '2024-06-18T11:59:35.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'ChangeResourceGroup'], + ['description' => 'Error codes changed', 'api' => 'CreateBgpGroup'], + ['description' => 'Error codes changed', 'api' => 'CreateRouteEntry'], + ['description' => 'Error codes changed', 'api' => 'DeletePhysicalConnection'], + ['description' => 'Error codes changed', 'api' => 'DescribePhysicalConnections'], + ['description' => 'Error codes changed', 'api' => 'ListBusinessAccessPoints'], + ['description' => 'Error codes changed', 'api' => 'ModifyBgpGroupAttribute'], + ['description' => 'Error codes changed', 'api' => 'ModifyPhysicalConnectionAttribute'], + ['description' => 'Error codes changed', 'api' => 'ModifyRouterInterfaceAttribute'], + ], + 'createdAt' => '2024-06-13T08:13:03.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Request parameters changed', 'api' => 'DeleteIpv4Gateway'], ], - 'operationType' => 'read', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'get', + 'createdAt' => '2024-06-12T07:23:58.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed, Request parameters changed', 'api' => 'CreateFullNatEntry'], ], - 'parameters' => [ - [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region in which the IPv6 gateway is deployed. You can call the [DescribeRegions](~~36063~~) operation to query the region ID.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cn-huhehaote', - ], - ], - [ - 'name' => 'Ipv6GatewayId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the IPv6 gateway.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'ipv6gw-hp3rwmtmfhgis****', - ], - ], - [ - 'name' => 'VpcId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the virtual private cloud (VPC) to which the IPv6 gateway belongs.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'vpc-123sedrfswd23****', - ], - ], - [ - 'name' => 'Name', - 'in' => 'query', - 'schema' => [ - 'description' => 'The name of the IPv6 gateway.'."\n" - ."\n" - .'The name must be 2 to 128 characters in length, and can contain letters, digits, periods (.), underscores (\\_), and hyphens (-). It must start with a letter. The name must start with a letter and cannot start with `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'ipv6GW', - ], - ], - [ - 'name' => 'PageNumber', - 'in' => 'query', - 'schema' => [ - 'description' => 'The page number.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'minimum' => '1', - 'example' => '1', - 'default' => '1', - ], - ], - [ - 'name' => 'PageSize', - 'in' => 'query', - 'schema' => [ - 'description' => 'The number of entries per page.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '100', - 'minimum' => '1', - 'example' => '10', - 'default' => '10', - ], - ], - [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region in which the IPv6 gateway is deployed. You can call the [DescribeRegions](~~36063~~) operation to query the region ID.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cn-huhehaote', - ], - ], - [ - 'name' => 'ResourceGroupId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the resource group to which the IPv6 gateway belongs.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'rg-bp67acfmxazb4ph****', - ], - ], - [ - 'name' => 'Tags', - 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => 'The information about the tags.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => 'The tag keys of the resources. You can specify up to 20 tag keys. The tag key cannot be an empty string.'."\n" - ."\n" - .'The tag key can be up to 128 characters in length. It cannot start with `aliyun` or `acs:`, and cannot contain `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'FinanceDept', - ], - 'Value' => [ - 'description' => 'The tag values of the resources. You can specify up to 20 tag values. The tag value can be an empty string.'."\n" - ."\n" - .'The tag value can be up to 128 characters in length, and cannot contain `http://` or `https://`. The tag value cannot start with `aliyun` or `acs:`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'FinanceJoshua', - ], - ], - 'required' => false, - ], - 'required' => false, - 'maxItems' => 10, - ], - ], + 'createdAt' => '2024-06-06T09:48:50.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'ListPublicIpAddressPools'], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'description' => 'The returned message.'."\n", - 'type' => 'object', - 'properties' => [ - 'PageSize' => [ - 'description' => 'The number of entries per page.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => 'E3A06196-3E7C-490D-8F39-CB4B5A0CE8AD', - ], - 'PageNumber' => [ - 'description' => 'The page number.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'TotalCount' => [ - 'description' => 'The total number of entries returned.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '2', - ], - 'Ipv6Gateways' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'Ipv6Gateway' => [ - 'description' => 'The information about the IPv6 gateway.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'CreationTime' => [ - 'description' => 'The time when the IPv6 gateway was created.'."\n", - 'type' => 'string', - 'example' => '2020-12-20T14:51:23Z', - ], - 'Status' => [ - 'description' => 'The status of the IPv6 gateway. Valid values:'."\n" - ."\n" - .'* **Pending**'."\n" - .'* **Available**'."\n", - 'type' => 'string', - 'example' => 'Available', - ], - 'VpcId' => [ - 'description' => 'The ID of the VPC to which the IPv6 gateway belongs.'."\n", - 'type' => 'string', - 'example' => 'vpc-123sedrfswd23****', - ], - 'Description' => [ - 'description' => 'The description of the IPv6 gateway.'."\n", - 'type' => 'string', - 'example' => 'descriptionforIPv6GW', - ], - 'Ipv6GatewayId' => [ - 'description' => 'The ID of the IPv6 gateway.'."\n", - 'type' => 'string', - 'example' => 'ipv6gw-hp3rwmtmfhgisipv6gw-hp3rwmtmfhgis****', - ], - 'ExpiredTime' => [ - 'description' => 'The time when the IPv6 gateway expires.'."\n", - 'type' => 'string', - 'example' => '2021-12-20T14:51:23Z', - ], - 'BusinessStatus' => [ - 'description' => 'The status of the IPv6 gateway. Valid values:'."\n" - ."\n" - .'* **Normal**'."\n" - .'* **FinancialLocked**'."\n" - .'* **SecurityLocked**'."\n", - 'type' => 'string', - 'example' => 'Normal', - ], - 'Name' => [ - 'description' => 'The name of the IPv6 gateway.'."\n", - 'type' => 'string', - 'example' => 'ipv6GW', - ], - 'InstanceChargeType' => [ - 'description' => 'The billing method of the IPv6 gateway.'."\n" - ."\n" - .'Only **PostPaid** may be returned, which indicates that the IPv6 gateway uses the pay-as-you-go billing method.'."\n", - 'type' => 'string', - 'example' => 'PostPaid', - ], - 'RegionId' => [ - 'description' => 'The ID of the region in which the IPv6 gateway is deployed.'."\n", - 'type' => 'string', - 'example' => 'cn-huhehaote', - ], - 'ResourceGroupId' => [ - 'description' => 'The resource group ID.'."\n", - 'type' => 'string', - 'example' => 'rg-bp67acfmxazb4ph****', - ], - 'Tags' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'Tag' => [ - 'description' => 'The information about the tags.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => 'The tag key.'."\n", - 'type' => 'string', - 'example' => 'FinanceDept', - ], - 'Value' => [ - 'description' => 'The tag value.'."\n", - 'type' => 'string', - 'example' => 'FinanceJoshua', - ], - ], - ], - ], - ], - ], - 'OwnerId' => [ - 'type' => 'integer', - 'format' => 'int64', - ], - ], - ], - ], - ], - ], - ], - ], - ], + 'createdAt' => '2024-06-06T09:02:57.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'DeleteRouteEntry'], ], - 'errorCodes' => [ - 403 => [ - [ - 'errorCode' => 'Forbidden', - 'errorMessage' => 'User not authorized to operate on the specified resource.', - ], - ], + 'createdAt' => '2024-06-05T07:29:15.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'ModifyRouteEntry'], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"PageSize\\": 10,\\n \\"RequestId\\": \\"E3A06196-3E7C-490D-8F39-CB4B5A0CE8AD\\",\\n \\"PageNumber\\": 1,\\n \\"TotalCount\\": 2,\\n \\"Ipv6Gateways\\": {\\n \\"Ipv6Gateway\\": [\\n {\\n \\"CreationTime\\": \\"2020-12-20T14:51:23Z\\",\\n \\"Status\\": \\"Available\\",\\n \\"VpcId\\": \\"vpc-123sedrfswd23****\\",\\n \\"Description\\": \\"descriptionforIPv6GW\\",\\n \\"Ipv6GatewayId\\": \\"ipv6gw-hp3rwmtmfhgisipv6gw-hp3rwmtmfhgis****\\",\\n \\"ExpiredTime\\": \\"2021-12-20T14:51:23Z\\",\\n \\"BusinessStatus\\": \\"Normal\\",\\n \\"Name\\": \\"ipv6GW\\",\\n \\"InstanceChargeType\\": \\"PostPaid\\",\\n \\"RegionId\\": \\"cn-huhehaote\\",\\n \\"ResourceGroupId\\": \\"rg-bp67acfmxazb4ph****\\",\\n \\"Tags\\": {\\n \\"Tag\\": [\\n {\\n \\"Key\\": \\"FinanceDept\\",\\n \\"Value\\": \\"FinanceJoshua\\"\\n }\\n ]\\n },\\n \\"OwnerId\\": 0\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 10\\n E3A06196-3E7C-490D-8F39-CB4B5A0CE8AD\\n 1\\n 2\\n \\n 2020-12-20T14:51:23Z\\n Available\\n vpc-123sedrfswd23****\\n descriptionforIPv6GW\\n ipv6gw-hp3rwmtmfhgisipv6gw-hp3rwmtmfhgis****\\n 2021-12-20T14:51:23Z\\n Normal\\n ipv6GW\\n PostPaid\\n cn-huhehaote\\n rg-bp67acfmxazb4ph****\\n \\n FinanceDept\\n FinanceJoshua\\n \\n \\n","errorExample":""}]', - 'title' => 'DescribeIpv6Gateways', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', + 'createdAt' => '2024-06-05T05:55:52.000Z', + 'description' => '', ], - 'DescribeIpv6EgressOnlyRules' => [ - 'summary' => 'Queries egress-only rules.', - 'methods' => [ - 'post', - 'get', + [ + 'apis' => [ + ['description' => 'Request parameters changed, Response parameters changed', 'api' => 'DeleteRouteEntry'], ], - 'schemes' => [ - 'http', - 'https', + 'createdAt' => '2024-06-03T08:54:31.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'AddPublicIpAddressPoolCidrBlock'], + ['description' => 'Error codes changed', 'api' => 'CreatePublicIpAddressPool'], + ['description' => 'Response parameters changed', 'api' => 'ListPublicIpAddressPools'], ], - 'security' => [ - [ - 'AK' => [], - ], + 'createdAt' => '2024-05-27T10:54:55.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'ModifyRouteEntry'], ], - 'operationType' => 'read', - 'systemTags' => [ - 'operationType' => 'get', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeCode' => '37999', - 'abilityTreeNodes' => [ - 'FEATUREvpc3GHR3P', - ], + 'createdAt' => '2024-05-23T06:10:52.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'AssociateVpcCidrBlock'], + ['description' => 'Error codes changed', 'api' => 'CreateVpc'], ], - 'parameters' => [ - [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region where the IPv6 gateway is deployed. You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cn-huhehaote', - ], - ], - [ - 'name' => 'Ipv6GatewayId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the IPv6 gateway.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'ipv6gw-bp1rhhs9zjlxukc5e****', - ], - ], - [ - 'name' => 'Ipv6EgressOnlyRuleId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the egress-only rule that you want to query.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'ipv6py-bp1rr7fq1md8pbb3k****', - ], - ], - [ - 'name' => 'Name', - 'in' => 'query', - 'schema' => [ - 'description' => 'The name of the rule.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'rulename', - ], - ], - [ - 'name' => 'InstanceType', - 'in' => 'query', - 'schema' => [ - 'description' => 'The type of the instance to which you want to apply the egress-only rule. Valid values:'."\n" - ."\n" - .'* IPv6Address (default)'."\n" - .'* IPv6Prefix'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'Ipv6Address', - ], - ], - [ - 'name' => 'InstanceId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the instance that is associated with the IPv6 address to which the egress-only rule is applied.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'ipv6gw-bp1rhhs9zjlxukc5e****', - ], - ], - [ - 'name' => 'PageNumber', - 'in' => 'query', - 'schema' => [ - 'description' => 'The page number. Default value: **1**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'minimum' => '1', - 'example' => '1', - 'default' => '1', - ], - ], - [ - 'name' => 'PageSize', - 'in' => 'query', - 'schema' => [ - 'description' => 'The number of entries per page. Maximum value: **50**. Default value: **10**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '50', - 'minimum' => '1', - 'example' => '10', - 'default' => '10', - ], - ], - [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region where the IPv6 gateway is deployed. You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cn-huhehaote', - ], - ], + 'createdAt' => '2024-05-21T03:42:58.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'ModifyNatGatewayAttribute'], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'PageSize' => [ - 'description' => 'The number of entries returned per page. Maximum value: **50**. Default value: **10**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => 'E16671B7-DEA6-48E0-8E9C-41913DAD44DD', - ], - 'PageNumber' => [ - 'description' => 'The number of the returned page. Default value: **1**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'TotalCount' => [ - 'description' => 'The total number of entries returned.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'Ipv6EgressOnlyRules' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'Ipv6EgressOnlyRule' => [ - 'description' => 'The details about the egress-only rules.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'Status' => [ - 'description' => 'The status of the egress-only rule.'."\n", - 'type' => 'string', - 'example' => 'Available', - ], - 'Description' => [ - 'description' => 'The description of the egress-only rule.'."\n", - 'type' => 'string', - 'example' => 'ruledescription', - ], - 'Ipv6EgressOnlyRuleId' => [ - 'description' => 'The ID of the egress-only rule.'."\n", - 'type' => 'string', - 'example' => 'ipv6py-bp1rr7fq1md8pbb3k****', - ], - 'InstanceId' => [ - 'description' => 'The ID of the instance to which the egress-only rule applies.'."\n", - 'type' => 'string', - 'example' => 'ipv6gw-bp1rhhs9zjlxukc5e****', - ], - 'InstanceType' => [ - 'description' => 'The type of the instance to which the egress-only rule applies.'."\n", - 'type' => 'string', - 'example' => 'Ipv6Address', - ], - 'Name' => [ - 'description' => 'The name of the egress-only rule.'."\n", - 'type' => 'string', - 'example' => 'rulename', - ], - ], - ], - ], - ], - ], - ], - ], - ], + 'createdAt' => '2024-05-17T02:34:05.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'AllocateEipAddress'], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"PageSize\\": 10,\\n \\"RequestId\\": \\"E16671B7-DEA6-48E0-8E9C-41913DAD44DD\\",\\n \\"PageNumber\\": 1,\\n \\"TotalCount\\": 1,\\n \\"Ipv6EgressOnlyRules\\": {\\n \\"Ipv6EgressOnlyRule\\": [\\n {\\n \\"Status\\": \\"Available\\",\\n \\"Description\\": \\"ruledescription\\",\\n \\"Ipv6EgressOnlyRuleId\\": \\"ipv6py-bp1rr7fq1md8pbb3k****\\",\\n \\"InstanceId\\": \\"ipv6gw-bp1rhhs9zjlxukc5e****\\",\\n \\"InstanceType\\": \\"Ipv6Address\\",\\n \\"Name\\": \\"rulename\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 10\\n E16671B7-DEA6-48E0-8E9C-41913DAD44DD\\n 1\\n 1\\n \\n Available\\n ruledescription\\n ipv6gwpy-123456xxxxxxxx\\n i-123456xxxxxxxx\\n Ipv6Address\\n rulename\\n \\n","errorExample":""}]', - 'title' => 'DescribeIpv6EgressOnlyRules', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', + 'createdAt' => '2024-05-17T02:05:14.000Z', + 'description' => '', ], - 'DescribeIpv6Addresses' => [ - 'summary' => 'Queries IPv6 addresses in a region.', - 'methods' => [ - 'post', - 'get', + [ + 'apis' => [ + ['description' => 'Request parameters changed', 'api' => 'DescribeVpcs'], + ['description' => 'Request parameters changed', 'api' => 'DescribeVSwitches'], ], - 'schemes' => [ - 'http', - 'https', + 'createdAt' => '2024-05-16T01:53:09.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'GetVpcPrefixListEntries'], ], - 'security' => [ - [ - 'AK' => [], - ], + 'createdAt' => '2024-05-09T02:03:43.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'ChangeResourceGroup'], + ['description' => 'Error codes changed', 'api' => 'CreateRouterInterface'], + ['description' => 'Error codes changed', 'api' => 'CreateVirtualPhysicalConnection'], + ['description' => 'Error codes changed', 'api' => 'DeleteVirtualBorderRouter'], + ['description' => 'Error codes changed', 'api' => 'DescribeBgpPeers'], + ['description' => 'Error codes changed', 'api' => 'ModifyVirtualBorderRouterAttribute'], + ], + 'createdAt' => '2024-05-08T02:53:45.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed, Request parameters changed', 'api' => 'CreateSslVpnServer'], + ['description' => 'Error codes changed', 'api' => 'CreateVpnAttachment'], + ['description' => 'Error codes changed', 'api' => 'CreateVpnPbrRouteEntry'], + ['description' => 'Error codes changed', 'api' => 'CreateVpnRouteEntry'], + ['description' => 'Response parameters changed', 'api' => 'DescribeSslVpnServers'], + ['description' => 'Error codes changed, Request parameters changed, Response parameters changed', 'api' => 'ModifySslVpnServer'], + ], + 'createdAt' => '2024-05-08T02:19:22.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Response parameters changed, Response parameters changed', 'api' => 'DescribeNatGateways'], + ['description' => 'Response parameters changed, Response parameters changed', 'api' => 'GetNatGatewayAttribute'], + ['description' => 'Error codes changed, Request parameters changed', 'api' => 'ModifyNatGatewayAttribute'], ], - 'operationType' => 'read', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'list', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeCode' => '37998', - 'abilityTreeNodes' => [ - 'FEATUREvpc3GHR3P', - ], + 'createdAt' => '2024-05-07T05:54:29.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Response parameters changed', 'api' => 'DescribeVpnGateway'], + ['description' => 'Response parameters changed', 'api' => 'DescribeVpnGateways'], ], - 'parameters' => [ - [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region in which you want to query IPv6 addresses. You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-huhehaote', - ], - ], - [ - 'name' => 'Ipv6AddressId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the IPv6 address that you want to query. You can enter at most 20 IPv6 address IDs in each API request. Separate IPv6 address IDs with commas (,).'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'ipv6-2zen5j4axcp5l5qyy****', - ], - ], - [ - 'name' => 'Ipv6Address', - 'in' => 'query', - 'schema' => [ - 'description' => 'The IPv6 address that you want to query.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '2408:XXXX:153:3921:851c:c435:7b12:1c5f', - ], - ], - [ - 'name' => 'Name', - 'in' => 'query', - 'schema' => [ - 'description' => 'The name of the IPv6 address that you want to query.'."\n" - ."\n" - .'The name must be 0 to 128 characters in length and cannot start with `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'test', - ], - ], - [ - 'name' => 'AddressType', - 'in' => 'query', - 'schema' => [ - 'description' => 'The type of IP address. Valid values:'."\n" - ."\n" - .'- IPv6Address (default): indicates an IPv6 instance used to query a single IPv6 address.'."\n" - ."\n" - .'- IPv6Prefix: indicates an IPv6 instance used to query prefix CIDR blocks.', - 'type' => 'string', - 'required' => false, - 'example' => 'IPv6Address', - ], - ], - [ - 'name' => 'AssociatedInstanceId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the instance that is assigned the IPv6 address.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'i-2ze72wuqj4y3jl4f****', - ], - ], - [ - 'name' => 'AssociatedInstanceType', - 'in' => 'query', - 'schema' => [ - 'description' => 'The type of instance associated with the IPv6 address. Valid values:'."\n" - ."\n" - .'* **EcsInstance**: Elastic Compute Service (ECS) instance in a virtual private cloud (VPC)'."\n" - .'* **NetworkInterface**: secondary elastic network interface (ENI)'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'EcsInstance', - ], - ], - [ - 'name' => 'NetworkType', - 'in' => 'query', - 'schema' => [ - 'description' => 'The type of communication supported by the IPv6 address. Valid values:'."\n" - ."\n" - .'* **Private**'."\n" - .'* **Public**'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'Private', - ], - ], - [ - 'name' => 'VpcId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the VPC to which the IPv6 address belongs.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'vpc-bp15zckdt37pq72zv****', - ], - ], - [ - 'name' => 'VSwitchId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the vSwitch to which the IPv6 address belongs.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'vsw-25navfgbue4g****', - ], - ], - [ - 'name' => 'Ipv6InternetBandwidthId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the Internet bandwidth that you purchased for the IPv6 address.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'ipv6bw-uf6hcyzu65v98v3du****', - ], - ], - [ - 'name' => 'IncludeReservationData', - 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to return information about pending orders. Valid values:'."\n" - ."\n" - .'* **false** (default)'."\n" - .'* **true**'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], - ], - [ - 'name' => 'ResourceGroupId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the resource group to which the IPv6 gateway belongs.', - 'type' => 'string', - 'required' => false, - 'example' => 'rg-bp67acfmxazb4ph****', - ], - ], - [ - 'name' => 'Tag', - 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => 'The tag list.', - 'type' => 'array', - 'items' => [ - 'description' => 'The tag list.', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => 'The key of tag N. You can specify at most 20 tag keys. The tag key cannot be an empty string.'."\n" - ."\n" - .'The tag key can be up to 128 characters in length. It cannot start with aliyun or acs:, and cannot contain http:// or https://.', - 'type' => 'string', - 'required' => false, - 'example' => 'FinanceDept', - ], - 'Value' => [ - 'description' => 'The value of tag N.'."\n" - ."\n" - .'The tag value can be up to 128 characters in length. It can be an empty string. It cannot start with aliyun or acs:, and cannot contain http:// or https://.'."\n" - ."\n" - .'Each tag key corresponds to one tag value. You can specify at most 20 tag values at a time.', - 'type' => 'string', - 'required' => false, - 'example' => 'yunke', - ], - ], - 'required' => false, - ], - 'required' => false, - 'maxItems' => 21, - ], - ], - [ - 'name' => 'PageNumber', - 'in' => 'query', - 'schema' => [ - 'description' => 'The page number. Default value: **1**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'minimum' => '1', - 'example' => '1', - 'default' => '1', - ], - ], - [ - 'name' => 'PageSize', - 'in' => 'query', - 'schema' => [ - 'description' => 'The number of entries per page. Maximum value: **50**. Default value: **10**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '100', - 'minimum' => '1', - 'example' => '10', - 'default' => '10', - ], - ], - [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region in which you want to query IPv6 addresses. You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-huhehaote', - ], - ], - [ - 'name' => 'ServiceManaged', - 'in' => 'query', - 'schema' => [ - 'description' => 'Indicates whether the instance is managed. Valid values:'."\n" - ."\n" - .'* **true**'."\n" - .'* **false**'."\n" - ."\n" - .'If you do not specify this parameter, all instances are queried.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], - ], + 'createdAt' => '2024-05-06T02:21:12.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'CreateFlowLog'], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'PageSize' => [ - 'description' => 'The number of entries returned per page. Maximum value: **50**. Default value: **10**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => 'AA4486A8-B6AE-469E-AB09-820EF8ECFA2B', - ], - 'PageNumber' => [ - 'description' => 'The page number of the returned page. Default value: **1**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'TotalCount' => [ - 'description' => 'The number of returned entries.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '2', - ], - 'Ipv6Addresses' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'Ipv6Address' => [ - 'description' => 'The details of the IPv6 address.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'VpcId' => [ - 'description' => 'The ID of the VPC to which the IPv6 address belongs.'."\n", - 'type' => 'string', - 'example' => 'vpc-bp15zckdt37pq72zv****', - ], - 'Status' => [ - 'description' => 'The status of the IPv6 address.'."\n" - ."\n" - .'* **Pending**'."\n" - .'* **Available**'."\n", - 'type' => 'string', - 'example' => 'Available', - ], - 'Ipv6AddressId' => [ - 'description' => 'The ID of the IPv6 address.'."\n", - 'type' => 'string', - 'example' => 'ipv6-2zen5j4axcp5l5qyy****', - ], - 'AllocationTime' => [ - 'description' => 'The time when the IPv6 address was created.'."\n", - 'type' => 'string', - 'example' => '2020-12-20T14:56:09Z', - ], - 'Ipv6AddressName' => [ - 'description' => 'The name of the IPv6 address.'."\n", - 'type' => 'string', - 'example' => 'test', - ], - 'Ipv6AddressDescription' => [ - 'description' => 'The description of the IPv6 address.'."\n", - 'type' => 'string', - 'example' => 'test', - ], - 'AssociatedInstanceType' => [ - 'description' => 'The type of instance associated with the IPv6 address.'."\n", - 'type' => 'string', - 'example' => 'EcsInstance', - ], - 'AssociatedInstanceId' => [ - 'description' => 'The ID of the instance associated with the IPv6 address.'."\n", - 'type' => 'string', - 'example' => 'i-2ze72wuqj4y3jl4f****', - ], - 'NetworkType' => [ - 'description' => 'The type of connection supported by the IPv6 address. Valid values:'."\n" - ."\n" - .'* **Private**'."\n" - .'* **Public**'."\n", - 'type' => 'string', - 'example' => 'Private', - ], - 'Ipv6Address' => [ - 'description' => 'The IPv6 address.'."\n", - 'type' => 'string', - 'example' => '2408:XXXX:153:3921:851c:c435:7b12:1c5f', - ], - 'AddressType' => [ - 'description' => 'The type of IPv6 address. Valid values:'."\n" - ."\n" - .'* IPv6Address (default): indicates a single IPv6 IP.'."\n" - .'* IPv6Prefix: indicates IPv6 CIDR.', - 'type' => 'string', - 'example' => 'IPv6Address', - ], - 'Ipv6Isp' => [ - 'description' => 'The ISP of the IPv6 address. Valid values:'."\n" - ."\n" - .'* **BGP** (default)'."\n" - .'* **ChinaMobile**'."\n" - .'* **ChinaUnicom**'."\n" - .'* **ChinaTelecom**'."\n", - 'type' => 'string', - 'example' => 'BGP', - ], - 'VSwitchId' => [ - 'description' => 'The ID of the vSwitch to which the IPv6 address belongs.'."\n", - 'type' => 'string', - 'example' => 'vsw-25navfgbue4g****', - ], - 'Ipv6GatewayId' => [ - 'description' => 'The ID of the IPv6 gateway to which the IPv6 address belongs.'."\n", - 'type' => 'string', - 'example' => 'ipv6gw-2zewg0l66s73b4k2q****', - ], - 'RealBandwidth' => [ - 'description' => 'The peak bandwidth of the IPv6 address.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '5', - ], - 'Ipv6InternetBandwidth' => [ - 'description' => 'The Internet bandwidth of the IPv6 address.'."\n", - 'type' => 'object', - 'properties' => [ - 'InternetChargeType' => [ - 'description' => 'The billing method of the Internet bandwidth of the IPv6 address. Valid values:'."\n" - ."\n" - .'* **PayByTraffic**'."\n" - .'* **PayByBandwidth**'."\n", - 'type' => 'string', - 'example' => 'PayByTraffic', - ], - 'BusinessStatus' => [ - 'description' => 'The status of the Internet bandwidth of the IPv6 address. Valid values:'."\n" - ."\n" - .'* **Normal**'."\n" - .'* **FinancialLocked**'."\n" - .'* **SecurityLocked**'."\n", - 'type' => 'string', - 'example' => 'Normal', - ], - 'Bandwidth' => [ - 'description' => 'The dedicated Internet bandwidth of the IPv6 address. Unit: Mbit/s.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '5', - ], - 'Ipv6InternetBandwidthId' => [ - 'description' => 'The Internet bandwidth ID of the IPv6 address.'."\n", - 'type' => 'string', - 'example' => 'ipv6bw-hp3b35oq1fj50kbv****', - ], - 'InstanceChargeType' => [ - 'description' => 'The billing method of the Internet bandwidth of the IPv6 address. Valid values:'."\n" - ."\n" - .'Only **PostPaid** may be returned, which indicates the pay-as-you-go billing method.'."\n", - 'type' => 'string', - 'example' => 'PostPaid', - ], - 'HasReservationData' => [ - 'description' => 'Indicates whether renewal data is included. Valid values:'."\n" - ."\n" - .'* **false**'."\n" - .'* **true** **true** is returned only when **IncludeReservationData** is set to **true** and some orders have not taken effect.'."\n", - 'type' => 'boolean', - 'example' => 'false', - ], - 'ReservationInternetChargeType' => [ - 'description' => 'The metering method that is used after the renewal takes effect.'."\n" - ."\n" - .'* **PayByTraffic**'."\n" - .'* **PayByBandwidth**'."\n", - 'type' => 'string', - 'example' => 'PayByTraffic', - ], - 'ReservationOrderType' => [ - 'description' => 'The type of the renewal order. Only **RENEW** may be returned, which indicates that the order is placed for service renewal.'."\n", - 'type' => 'string', - 'example' => 'RENEW', - ], - 'ReservationActiveTime' => [ - 'description' => 'The time when the renewal takes effect. The time is displayed in the `YYYY-MM-DDThh:mm:ssZ` format.'."\n", - 'type' => 'string', - 'example' => '2021-05-23T16:00:00Z', - ], - 'ReservationBandwidth' => [ - 'description' => 'The maximum bandwidth after the renewal takes effect. Unit: Mbit/s.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '12', - ], - ], - ], - 'ResourceGroupId' => [ - 'description' => 'The ID of the resource group to which the IPv6 gateway belongs.'."\n", - 'type' => 'string', - 'example' => 'rg-bp67acfmxazb4ph****', - ], - 'Tags' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'Tag' => [ - 'description' => 'The tag list.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The tag list.', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => 'The tag key. You can specify up to 20 tag keys. The tag key cannot be an empty string.'."\n" - ."\n" - .'The tag key can be up to 128 characters in length. The tag key cannot start with `aliyun` or `acs:`, and cannot contain `http://` or `https://`.'."\n", - 'type' => 'string', - 'example' => 'FinanceDept', - ], - 'Value' => [ - 'description' => 'The tag value.'."\n" - ."\n" - .'The tag value can be up to 128 characters in length. It can be an empty string. It cannot start with `aliyun` or `acs:`, and cannot contain `http://` or `https://`.'."\n" - ."\n" - .'Each tag key corresponds to one tag value. You can specify at most 20 tag values at a time.'."\n", - 'type' => 'string', - 'example' => 'yunke', - ], - ], - ], - ], - ], - ], - 'ServiceManaged' => [ - 'description' => 'Indicates whether the instance is managed. Valid values:'."\n" - ."\n" - .'* **1**: yes'."\n" - .'* **0**: no'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - ], - ], - ], - ], - ], - ], - 'description' => '', - ], - ], + 'createdAt' => '2024-04-28T03:16:17.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed, Request parameters changed', 'api' => 'AssociateVpcCidrBlock'], + ['description' => 'Error codes changed, Request parameters changed', 'api' => 'CreateVpc'], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'IllegalParam.Ipv6Address', - 'errorMessage' => 'The param of %s is illegal.', - ], - [ - 'errorCode' => 'IllegalParam.NetworkType', - 'errorMessage' => 'The param of %s is illegal.', - ], - [ - 'errorCode' => 'IllegalParam.AddressType', - 'errorMessage' => 'The specified AddressType is illegal.', - ], - [ - 'errorCode' => 'IllegalParamSize.AssociatedInstanceId', - 'errorMessage' => 'The param size of AssociatedInstanceId is illegal.', - ], - [ - 'errorCode' => 'MissingParam.AssociatedInstanceId', - 'errorMessage' => 'The param of AssociatedInstanceId is missing when AssociatedInstanceType is specified.', - ], - ], + 'createdAt' => '2024-04-25T12:15:26.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed, Request parameters changed', 'api' => 'AllocateIpv6Address'], + ['description' => 'Error codes changed', 'api' => 'CreateIpv6EgressOnlyRule'], + ['description' => 'Request parameters changed, Response parameters changed', 'api' => 'DescribeIpv6Addresses'], + ['description' => 'Error codes changed', 'api' => 'DescribeIpv6EgressOnlyRules'], + ['description' => 'Error codes changed', 'api' => 'ReleaseIpv6Address'], + ], + 'createdAt' => '2024-04-24T11:40:17.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'DetachDhcpOptionsSetFromVpc'], + ['description' => 'Error codes changed', 'api' => 'UpdateDhcpOptionsSetAttribute'], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'createdAt' => '2024-04-22T03:16:32.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'ActivateRouterInterface'], + ['description' => 'Error codes changed', 'api' => 'CreateBgpGroup'], + ['description' => 'Error codes changed', 'api' => 'DeactivateRouterInterface'], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"PageSize\\": 10,\\n \\"RequestId\\": \\"AA4486A8-B6AE-469E-AB09-820EF8ECFA2B\\",\\n \\"PageNumber\\": 1,\\n \\"TotalCount\\": 2,\\n \\"Ipv6Addresses\\": {\\n \\"Ipv6Address\\": [\\n {\\n \\"VpcId\\": \\"vpc-bp15zckdt37pq72zv****\\",\\n \\"Status\\": \\"Available\\",\\n \\"Ipv6AddressId\\": \\"ipv6-2zen5j4axcp5l5qyy****\\",\\n \\"AllocationTime\\": \\"2020-12-20T14:56:09Z\\",\\n \\"Ipv6AddressName\\": \\"test\\",\\n \\"Ipv6AddressDescription\\": \\"test\\",\\n \\"AssociatedInstanceType\\": \\"EcsInstance\\",\\n \\"AssociatedInstanceId\\": \\"i-2ze72wuqj4y3jl4f****\\",\\n \\"NetworkType\\": \\"Private\\",\\n \\"Ipv6Address\\": \\"2408:XXXX:153:3921:851c:c435:7b12:1c5f\\",\\n \\"AddressType\\": \\"IPv6Address\\",\\n \\"Ipv6Isp\\": \\"BGP\\",\\n \\"VSwitchId\\": \\"vsw-25navfgbue4g****\\",\\n \\"Ipv6GatewayId\\": \\"ipv6gw-2zewg0l66s73b4k2q****\\",\\n \\"RealBandwidth\\": 5,\\n \\"Ipv6InternetBandwidth\\": {\\n \\"InternetChargeType\\": \\"PayByTraffic\\",\\n \\"BusinessStatus\\": \\"Normal\\",\\n \\"Bandwidth\\": 5,\\n \\"Ipv6InternetBandwidthId\\": \\"ipv6bw-hp3b35oq1fj50kbv****\\",\\n \\"InstanceChargeType\\": \\"PostPaid\\",\\n \\"HasReservationData\\": false,\\n \\"ReservationInternetChargeType\\": \\"PayByTraffic\\",\\n \\"ReservationOrderType\\": \\"RENEW\\",\\n \\"ReservationActiveTime\\": \\"2021-05-23T16:00:00Z\\",\\n \\"ReservationBandwidth\\": 12\\n },\\n \\"ResourceGroupId\\": \\"rg-bp67acfmxazb4ph****\\",\\n \\"Tags\\": {\\n \\"Tag\\": [\\n {\\n \\"Key\\": \\"FinanceDept\\",\\n \\"Value\\": \\"yunke\\"\\n }\\n ]\\n },\\n \\"ServiceManaged\\": 1\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 10\\n AA4486A8-B6AE-469E-AB09-820EF8ECFA2B\\n 1\\n 2\\n \\n vpc-bp15zckdt37pq72zv****\\n Available\\n ipv6-2zen5j4axcp5l5qyy****\\n 2020-12-20T14:56:09Z\\n test\\n EcsInstance\\n i-2ze72wuqj4y3jl4f****\\n Private\\n 2408:XXXX:153:3921:851c:c435:7b12:1c5f\\n BGP\\n vsw-25navfgbue4g****\\n ipv6gw-2zewg0l66s73b4k2q****\\n 5\\n \\n PayByTraffic\\n Normal\\n 5\\n ipv6bw-hp3b35oq1fj50kbv****\\n PostPaid\\n false\\n PayByTraffic\\n RENEW\\n 2021-05-23T16:00:00Z\\n 12\\n \\n \\n","errorExample":""}]', - 'title' => 'DescribeIpv6Addresses', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', + 'createdAt' => '2024-04-19T07:23:22.000Z', + 'description' => '', ], - 'DescribeIpv6GatewayAttribute' => [ - 'summary' => 'Queries the information about an IPv6 gateway, including the region, virtual private cloud (VPC), status, and billing method.', - 'methods' => [ - 'post', - 'get', + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'CreateRouterInterface'], + ['description' => 'Response parameters changed', 'api' => 'DescribeVirtualBorderRouters'], ], - 'schemes' => [ - 'http', - 'https', + 'createdAt' => '2024-04-17T09:27:38.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'DeleteVSwitchCidrReservation'], ], - 'security' => [ - [ - 'AK' => [], - ], + 'createdAt' => '2024-04-11T06:37:13.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'CreateNatGateway'], + ['description' => 'Response parameters changed', 'api' => 'DescribeSnatTableEntries'], + ['description' => 'Error codes changed, Request parameters changed', 'api' => 'ModifySnatEntry'], ], - 'operationType' => 'read', - 'systemTags' => [ - 'operationType' => 'get', + 'createdAt' => '2024-04-11T06:04:43.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Response parameters changed', 'api' => 'DescribeVpcAttribute'], + ['description' => 'Response parameters changed', 'api' => 'DescribeVpcs'], ], - 'parameters' => [ - [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region where the IPv6 gateway is deployed. You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cn-huhehaote', - ], - ], - [ - 'name' => 'Ipv6GatewayId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the IPv6 gateway that you want to query.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'ipv6gw-hp3y0l3ln89j8cdvf****', - ], - ], - [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region where the IPv6 gateway is deployed. You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cn-huhehaote', - ], - ], + 'createdAt' => '2024-04-09T02:14:12.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'OpenPhysicalConnectionService'], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'VpcId' => [ - 'description' => 'The ID of the virtual private cloud (VPC) to which the IPv6 gateway belongs.'."\n", - 'type' => 'string', - 'example' => 'vpc-123sedrfswd23****', - ], - 'Status' => [ - 'description' => 'The status of the IPv6 gateway. Valid values:'."\n" - ."\n" - .'* **Pending**'."\n" - .'* **Available**'."\n", - 'type' => 'string', - 'example' => 'Available', - ], - 'CreationTime' => [ - 'description' => 'The time when the IPv6 gateway was created.'."\n", - 'type' => 'string', - 'example' => '2018-12-05T09:21:35Z', - ], - 'RegionId' => [ - 'description' => 'The ID of the region where the IPv6 gateway is deployed.'."\n", - 'type' => 'string', - 'example' => 'cn-huhehaote', - ], - 'InstanceChargeType' => [ - 'description' => 'The metering method of the IPv6 gateway.'."\n", - 'type' => 'string', - 'example' => 'PostPaid', - ], - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => '0ED8D006-F706-4D23-88ED-E11ED28DCAC', - ], - 'Ipv6GatewayId' => [ - 'description' => 'The ID of the IPv6 gateway.'."\n", - 'type' => 'string', - 'example' => 'ipv6gw-hp3y0l3ln89j8cdvf****', - ], - 'Description' => [ - 'description' => 'The description of the IPv6 gateway.'."\n", - 'type' => 'string', - 'example' => 'test', - ], - 'ExpiredTime' => [ - 'description' => 'The time when the IPv6 gateway expires.'."\n", - 'type' => 'string', - 'example' => '2019-1-05T09:21:35Z', - ], - 'BusinessStatus' => [ - 'description' => 'The status of the IPv6 gateway. Valid values:'."\n" - ."\n" - .'* **Normal**'."\n" - .'* **FinancialLocked**'."\n" - .'* **SecurityLocked**'."\n", - 'type' => 'string', - 'example' => 'Normal', - ], - 'Name' => [ - 'description' => 'The name of the IPv6 gateway.'."\n", - 'type' => 'string', - 'example' => 'test', - ], - 'ResourceGroupId' => [ - 'description' => 'The ID of the resource group.'."\n", - 'type' => 'string', - 'example' => 'rg-acfmxazb4ph6aiy****', - ], - 'GatewayRouteTableId' => [ - 'description' => 'The ID of the gateway route table associated with the IPv6 gateway.'."\n" - ."\n" - .'> This parameter is available only when the IPv6 gateway is associated with a gateway route table.'."\n", - 'type' => 'string', - 'example' => 'vtb-5ts0ohchwkp3dydt2****', - ], - 'Tags' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'Tag' => [ - 'description' => 'The information about the tags.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => 'The key of tag N. You can specify at most 20 tag keys. The tag key cannot be an empty string.'."\n" - ."\n" - .'The tag key can be up to 128 characters in length. It must start with a letter and can contain digits, periods (.), underscores (\\_), and hyphens (-). It cannot start with `aliyun` or `acs:`, and cannot contain `http://` or `https://`.'."\n", - 'type' => 'string', - 'example' => 'FinanceDept', - ], - 'Value' => [ - 'description' => 'The value of tag N. You can specify at most 20 tag values. The tag value can be an empty string.'."\n" - ."\n" - .'The tag value can be up to 128 characters in length. It must start with a letter and can contain digits, periods (.), underscores (\\_), and hyphens (-). It cannot start with `aliyun` or `acs:`, and cannot contain `http://` or `https://`.'."\n", - 'type' => 'string', - 'example' => 'FinanceJoshua', - ], - ], - ], - ], - ], - ], - 'OwnerId' => [ - 'description' => 'The ID of the Alibaba Cloud account to which the IPv6 gateway belongs.'."\n" - ."\n" - .'> This value is of the Long type. In some languages, the precision may be lost. Use this value with caution.', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '2546073170691****', - ], - ], - 'description' => '', - ], - ], - ], - 'errorCodes' => [ - 403 => [ - [ - 'errorCode' => 'Forbbiden', - 'errorMessage' => 'User not authorized to operate on the specified resource.', - ], - ], + 'createdAt' => '2024-04-03T03:51:51.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'CreateRouteEntry'], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"VpcId\\": \\"vpc-123sedrfswd23****\\",\\n \\"Status\\": \\"Available\\",\\n \\"CreationTime\\": \\"2018-12-05T09:21:35Z\\",\\n \\"RegionId\\": \\"cn-huhehaote\\",\\n \\"InstanceChargeType\\": \\"PostPaid\\",\\n \\"RequestId\\": \\"0ED8D006-F706-4D23-88ED-E11ED28DCAC\\",\\n \\"Ipv6GatewayId\\": \\"ipv6gw-hp3y0l3ln89j8cdvf****\\",\\n \\"Description\\": \\"test\\",\\n \\"ExpiredTime\\": \\"2019-1-05T09:21:35Z\\",\\n \\"BusinessStatus\\": \\"Normal\\",\\n \\"Name\\": \\"test\\",\\n \\"ResourceGroupId\\": \\"rg-acfmxazb4ph6aiy****\\",\\n \\"GatewayRouteTableId\\": \\"vtb-5ts0ohchwkp3dydt2****\\",\\n \\"Tags\\": {\\n \\"Tag\\": [\\n {\\n \\"Key\\": \\"FinanceDept\\",\\n \\"Value\\": \\"FinanceJoshua\\"\\n }\\n ]\\n },\\n \\"OwnerId\\": 0\\n}","errorExample":""},{"type":"xml","example":"\\n vpc-123sedrfswd23****\\n Available\\n 2018-12-05T09:21:35Z\\n cn-huhehaote\\n PostPaid\\n 0ED8D006-F706-4D23-88ED-E11ED28DCAC\\n ipv6gw-hp3y0l3ln89j8cdvf****\\n test\\n 2019-1-05T09:21:35Z\\n Normal\\n test\\n rg-acfmxazb4ph6aiy****\\n \\n FinanceDept\\n FinanceJoshua\\n \\n","errorExample":""}]', - 'title' => 'DescribeIpv6GatewayAttribute', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', + 'createdAt' => '2024-04-02T12:12:47.000Z', + 'description' => '', ], - 'AllocateIpv6InternetBandwidth' => [ - 'summary' => 'Default IPv6 gateways support only private communication. You can call the AllocateIpv6InternetBandwidth operation to purchase Internet bandwidth resources for an IPv6 address. This way, ECS instances in a VPC can access the Internet through the IPv6 address. IPv6 clients can also access the ECS instances over the Internet.', - 'methods' => [ - 'post', - 'get', + [ + 'apis' => [ + ['description' => 'Request parameters changed', 'api' => 'DeleteExpressConnectTrafficQos'], + ['description' => 'Request parameters changed', 'api' => 'DeleteExpressConnectTrafficQosQueue'], + ['description' => 'Request parameters changed', 'api' => 'ModifyExpressConnectTrafficQos'], ], - 'schemes' => [ - 'http', - 'https', + 'createdAt' => '2024-03-29T08:01:37.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'UpdateNetworkAclEntries'], ], - 'security' => [ - [ - 'AK' => [], - ], + 'createdAt' => '2024-03-26T11:08:21.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'DeleteRouterInterface'], ], - 'operationType' => 'readAndWrite', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'create', - 'riskType' => 'none', - 'chargeType' => 'paid', - 'abilityTreeCode' => '37971', - 'abilityTreeNodes' => [ - 'FEATUREvpc3GHR3P', - ], + 'createdAt' => '2024-03-25T02:40:12.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'CreateRouteEntry'], + ['description' => 'Error codes changed', 'api' => 'ModifyRouteEntry'], ], - 'parameters' => [ - [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region where the IPv6 gateway is deployed. You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cn-huhehaote', - ], - ], - [ - 'name' => 'Ipv6GatewayId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the IPv6 gateway.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'ipv6gw-uf6hcyzu65v98v3du****', - ], - ], - [ - 'name' => 'Ipv6AddressId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the IPv6 address.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'ipv6-2zen5j4axcp5l5qyy****', - ], - ], - [ - 'name' => 'InternetChargeType', - 'in' => 'query', - 'schema' => [ - 'description' => 'The metering method of the Internet bandwidth for the IPv6 address. Valid values:'."\n" - ."\n" - .'* **PayByTraffic**: pay-by-data-transfer'."\n" - .'* **PayByBandwidth** (default): pay-by-bandwidth'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'PayByBandwidth', - ], - ], - [ - 'name' => 'Bandwidth', - 'in' => 'query', - 'schema' => [ - 'description' => 'The Internet bandwidth of the IPv6 address. Unit: Mbit/s.'."\n" - ."\n" - .'* If you set **InternetChargeType** to **PayByTraffic**, valid values are **1** to **1000**.'."\n" - .'* If you set **InternetChargeType** to **PayByBandwidth**, valid values are **1** to **2000**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'example' => '2', - ], - ], - [ - 'name' => 'ClientToken', - 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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.'."\n" - ."\n" - .'> 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.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-426655440000', - ], - ], - [ - 'name' => 'DryRun', - 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values:'."\n" - ."\n" - .'* **true**: performs only a dry run. 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.'."\n" - .'* **false**: sends the API request. After the request passes the check, a 2XX HTTP status code is returned and the route table is associated. This is the default value.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], - ], - [ - 'name' => 'ClientToken', - 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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.'."\n" - ."\n" - .'> 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.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-426655440000', - ], - ], - [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region where the IPv6 gateway is deployed. You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cn-huhehaote', - ], - ], + 'createdAt' => '2024-03-25T01:57:16.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'AllocateEipAddress'], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'Ipv6AddressId' => [ - 'description' => 'The ID of the IPv6 address.'."\n", - 'type' => 'string', - 'example' => 'ipv6-2zen5j4axcp5l5qyy****', - ], - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '6972A26E-99B1-4367-9890-FBDEBB0F5E7D', - ], - 'InternetBandwidthId' => [ - 'description' => 'The ID of the Internet bandwidth that you purchased for the IPv6 gateway.'."\n", - 'type' => 'string', - 'example' => 'ipv6bw-uf6hcyzu65v98v3du****', - ], - ], - 'description' => '', - ], - ], + 'createdAt' => '2024-03-14T10:12:40.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'AllocateEipAddress'], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'IllegalParam.Bandwidth', - 'errorMessage' => 'The param of %s is illegal.', - ], - [ - 'errorCode' => 'MissingParam.Ipv6InstanceId', - 'errorMessage' => 'The param of Ipv6InstanceId is missing.', - ], - [ - 'errorCode' => 'InvalidIpv6Instance.NotFound', - 'errorMessage' => 'The specified Ipv6AddressId or Ipv6InternetBandwidthId is not found.', - ], - [ - 'errorCode' => 'IllegalParam.ChargeType', - 'errorMessage' => 'The param of %s is illegal.', - ], - [ - 'errorCode' => 'IllegalParam.InternetChargeType', - 'errorMessage' => 'The param of %s is illegal.', - ], - [ - 'errorCode' => 'OperationUnsupported.PrePaid', - 'errorMessage' => '%s is unsupported.', - ], - [ - 'errorCode' => 'OperationFailed.Ipv6GatewayDisMatchIpv6Address', - 'errorMessage' => 'The operation is failed because of %s.', - ], - [ - 'errorCode' => 'OperationFailed.InternetBandwidthAlreadyExisted', - 'errorMessage' => 'The operation is failed because of %s.', - ], - [ - 'errorCode' => 'OperationFailed.Ipv6GatewayNotExist', - 'errorMessage' => 'The operation is failed because of %s.', - ], - [ - 'errorCode' => 'IncorrectStatus.Ipv6Instance', - 'errorMessage' => 'The status of %s [%s] is incorrect.', - ], - [ - 'errorCode' => 'IllegalParam.Ipv6Address', - 'errorMessage' => 'The param of %s is illegal.', - ], - [ - 'errorCode' => 'UnsupportedFeature.InternetChargeTypeOnFreeIpv6Address', - 'errorMessage' => 'The feature of %s is not supported.', - ], - [ - 'errorCode' => 'UnsupportedFeature.InternetChargeTypeOnStaticIsp', - 'errorMessage' => 'The feature of %s is not supported.', - ], - [ - 'errorCode' => 'OperationUnsupported.ULA', - 'errorMessage' => '%s is unsupported.', - ], - [ - 'errorCode' => 'OperationFailed.OpenCdtServiceFirst', - 'errorMessage' => 'The operation is failed because of %s.', - ], - [ - 'errorCode' => 'OperationFailed.UpgradeCdtServiceFirst', - 'errorMessage' => 'The operation is failed because of cdt is not upgraded.', - ], - [ - 'errorCode' => 'OperationUnsupported.PrivateGUA', - 'errorMessage' => 'This operation does not support private GUA addresses.', - ], - [ - 'errorCode' => 'OperationDenied.UnSupportedBindTypeCloudInstance', - 'errorMessage' => 'Internet bandwidth cannot be allocated to the IPv6 address bound to the cloud service instance.', - ], - ], - 404 => [ - [ - 'errorCode' => 'InvalidRegionId.NotFound', - 'errorMessage' => 'The specified RegionId does not exist in our records.', - ], - [ - 'errorCode' => 'ResourceNotFound.Ipv6Address', - 'errorMessage' => 'The specified resource of %s is not found.', - ], - ], - 500 => [ - [ - 'errorCode' => 'OperationFailed.QueryAccountInfo', - 'errorMessage' => 'Query account info failed when create order.', - ], - [ - 'errorCode' => 'OperationFailed.SaleValidate', - 'errorMessage' => 'Validate sale condition with subArticle failed.', - ], - [ - 'errorCode' => 'SystemBusy', - 'errorMessage' => 'The system is busy. Please try again later.', - ], - ], + 'createdAt' => '2024-03-14T07:21:12.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Response parameters changed, Response parameters changed', 'api' => 'AddPublicIpAddressPoolCidrBlock'], ], - 'staticInfo' => [ - 'returnType' => 'asynchronous', - 'callback' => 'Vpc::2016-04-28::DescribeIpv6Addresses', - 'callbackInterval' => 3, - 'maxCallbackTimes' => 10, - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Ipv6AddressId\\": \\"ipv6-2zen5j4axcp5l5qyy****\\",\\n \\"RequestId\\": \\"6972A26E-99B1-4367-9890-FBDEBB0F5E7D\\",\\n \\"InternetBandwidthId\\": \\"ipv6bw-uf6hcyzu65v98v3du****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n ipv6-2zen5j4axcp5l5qyy****\\n 6972A26E-99B1-4367-9890-FBDEBB0F5E7D\\n ipv6bw-uf6hcyzu65v98v3du****\\n","errorExample":""}]', - 'title' => 'AllocateIpv6InternetBandwidth', - 'description' => '* Before you call this operation, make sure that an ECS instance that supports IPv6 is created in a VPC that has an IPv6 CIDR block. For more information, see [Create a VPC with an IPv6 CIDR block](~~100540~~).'."\n" - .'* You cannot repeatedly call **AllocateIpv6InternetBandwidth** within the specified period of time.'."\n", - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', + 'createdAt' => '2024-03-14T07:09:55.000Z', + 'description' => '', ], - 'CreateIPv6TranslatorAclList' => [ - 'methods' => [ - 'post', - 'get', + [ + 'apis' => [ + ['description' => 'Request parameters changed', 'api' => 'DescribeEipAddresses'], + ['description' => 'Request parameters changed, Response parameters changed', 'api' => 'DescribeIpv6Addresses'], ], - 'schemes' => [ - 'http', - 'https', + 'createdAt' => '2024-03-14T06:49:32.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Response parameters changed', 'api' => 'DescribePublicIpAddress'], ], - 'security' => [ - [ - 'AK' => [], - ], + 'createdAt' => '2024-03-12T12:58:51.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Response parameters changed', 'api' => 'CreatePublicIpAddressPool'], ], - 'operationType' => 'readAndWrite', - 'deprecated' => true, - 'systemTags' => [ - 'operationType' => 'create', + 'createdAt' => '2024-03-04T09:27:22.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'ModifyPhysicalConnectionAttribute'], ], - 'parameters' => [ - [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The region of the IPv6 Translation Service instance. You can call the DescribeRegions operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], - ], - [ - 'name' => 'ClientToken', - 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => false, - 'example' => 'sha123456', - ], - ], - [ - 'name' => 'AclName', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ACL name.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'test', - ], - ], + 'createdAt' => '2024-02-28T09:00:04.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'DeleteVbrHa'], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'AclId' => [ - 'description' => 'The ACL ID.'."\n", - 'type' => 'string', - 'example' => 'ipv6transacl-bp1de2xxxx', - ], - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '8B2F5262-6B57-43F2-xxxxx', - ], - ], - ], - ], + 'createdAt' => '2024-02-27T03:21:18.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'CreateCommonBandwidthPackage'], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InvalidName', - 'errorMessage' => 'The specified name is not support.', - ], - [ - 'errorCode' => 'Resource.QuotaFull', - 'errorMessage' => 'The quota of resource is full.', - ], - [ - 'errorCode' => 'Nat64Acl.AclNameExist', - 'errorMessage' => 'This ipv6 translator acl name is existed', - ], - ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'Internal Error', - ], - ], + 'createdAt' => '2024-02-23T08:26:18.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'AllocateEipAddress'], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"AclId\\": \\"ipv6transacl-bp1de2xxxx\\",\\n \\"RequestId\\": \\"8B2F5262-6B57-43F2-xxxxx\\"\\n}","errorExample":"\\n"},{"type":"xml","example":"\\n\\n 0ED8D006-F706-4D23-88ED-E11ED28DCAC0\\n vsw-25naue4gz\\n","errorExample":"\\n\\n"}]', - 'title' => 'CreateIPv6TranslatorAclList', - 'summary' => 'Creates an access control list (ACL).', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', + 'createdAt' => '2024-02-02T02:13:04.000Z', + 'description' => '', ], - 'CreateIPv6TranslatorEntry' => [ - 'methods' => [ - 'post', - 'get', + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'AssociatePhysicalConnectionToVirtualBorderRouter'], + ['description' => 'Error codes changed', 'api' => 'CreateVirtualBorderRouter'], + ['description' => 'Error codes changed', 'api' => 'CreateVirtualPhysicalConnection'], + ['description' => 'Error codes changed', 'api' => 'DeletePhysicalConnection'], + ['description' => 'Response parameters changed', 'api' => 'DescribePhysicalConnections'], + ], + 'createdAt' => '2024-02-01T03:33:09.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'ModifyVpcAttribute'], ], - 'schemes' => [ - 'http', - 'https', + 'createdAt' => '2024-02-01T02:17:04.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'DeleteVpc'], ], - 'security' => [ - [ - 'AK' => [], - ], + 'createdAt' => '2024-01-24T02:41:16.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'AllocateEipAddress'], + ['description' => 'Error codes changed', 'api' => 'AllocateEipAddressPro'], + ['description' => 'Error codes changed, Request parameters changed', 'api' => 'CreatePublicIpAddressPool'], + ['description' => 'Request parameters changed, Response parameters changed', 'api' => 'ListPublicIpAddressPools'], + ], + 'createdAt' => '2024-01-22T09:35:44.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'CreateForwardEntry'], + ['description' => 'Error codes changed', 'api' => 'CreateNatGateway'], + ['description' => 'Error codes changed', 'api' => 'CreateSnatEntry'], + ['description' => 'Error codes changed', 'api' => 'DeleteNatGateway'], + ['description' => 'Error codes changed', 'api' => 'DeleteNatIp'], + ['description' => 'Error codes changed, Response parameters changed', 'api' => 'ModifyNatGatewayAttribute'], + ['description' => 'Error codes changed, Response parameters changed', 'api' => 'ModifySnatEntry'], + ], + 'createdAt' => '2024-01-18T07:07:49.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'CreateVSwitch'], ], - 'operationType' => 'readAndWrite', - 'deprecated' => true, - 'systemTags' => [ - 'operationType' => 'create', + 'createdAt' => '2024-01-17T10:02:40.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'AddCommonBandwidthPackageIps'], ], - 'parameters' => [ - [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The region of the IPv6 Translation Service instance. You can call the **DescribeRegions** operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cn-hangzhou', - ], - ], - [ - 'name' => 'Ipv6TranslatorId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the IPv6 Translation Service instance.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'ipv6trans-bp1858ys57xxxxxx', - ], - ], - [ - 'name' => 'EntryName', - 'in' => 'query', - 'schema' => [ - 'description' => 'The name of the IPv6 mapping entry. It must be 2 to 100 characters in length and can contain letters, digits, periods (.), underscores (\\_), and hyphens (-). It must start with a letter. It cannot start with `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'name1', - ], - ], - [ - 'name' => 'EntryDescription', - 'in' => 'query', - 'schema' => [ - 'description' => 'The description of the IPv6 mapping entry.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'description', - ], - ], - [ - 'name' => 'AllocateIpv6Port', - 'in' => 'query', - 'schema' => [ - 'description' => 'The port that is used by the IPv6 address allocated to the IPv6 Translation Service instance.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'example' => '80', - ], - ], - [ - 'name' => 'BackendIpv4Addr', - 'in' => 'query', - 'schema' => [ - 'description' => 'The public IPv4 address that needs to provide IPv6 services.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => '46.22.xx.xx', - ], - ], - [ - 'name' => 'BackendIpv4Port', - 'in' => 'query', - 'schema' => [ - 'description' => 'The port of the public IPv4 address that needs to provide IPv6 services.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'example' => '80', - ], - ], - [ - 'name' => 'TransProtocol', - 'in' => 'query', - 'schema' => [ - 'description' => 'The protocol. Valid values:'."\n" - ."\n" - .'* **tcp**'."\n" - .'* **udp**'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'tcp', - ], - ], - [ - 'name' => 'EntryBandwidth', - 'in' => 'query', - 'schema' => [ - 'description' => 'The maximum bandwidth specified in the IPv6 mapping entry. Valid values:'."\n" - ."\n" - .'* \\-1 (default): does not limit the maximum bandwidth specified in the IPv6 mapping entry.'."\n" - .'* 1 to 200: the bandwidth value specified in the IPv6 mapping entry. Unit: Mbit/s.'."\n" - ."\n" - .'> The sum of the maximum bandwidth values specified in all IPv6 entries cannot exceed the maximum bandwidth supported by the instance.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '2', - 'default' => '-1', - ], - ], - [ - 'name' => 'AclStatus', - 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to enable access control lists (ACLs). Valid values:'."\n" - ."\n" - .'* **on**'."\n" - .'* **off**'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'on', - 'default' => 'off', - ], - ], - [ - 'name' => 'AclType', - 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to enable ACLs. Valid values:'."\n" - ."\n" - .'* **white**: a whitelist. IPv6 addresses in the ACL are allowed to access backend services.'."\n" - .'* **black**: a blacklist. IPv6 addresses in the ACL are not allowed to access backend services.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'white', - ], - ], - [ - 'name' => 'AclId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the associated ACL.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'ipv6transacl-bp1g8bhrdexnrxxxx', - ], - ], + 'createdAt' => '2024-01-17T06:52:43.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'AddSourcesToTrafficMirrorSession'], + ['description' => 'Error codes changed', 'api' => 'CreateTrafficMirrorSession'], + ['description' => 'Error codes changed', 'api' => 'UpdateTrafficMirrorSessionAttribute'], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'description' => 'The returned data.'."\n", - 'type' => 'object', - 'properties' => [ - 'Ipv6TranslatorEntryId' => [ - 'description' => 'The ID of the IPv6 Translation Service instance.'."\n", - 'type' => 'string', - 'example' => 'ipv6transentry-xxxxxxxx', - ], - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => 'DCE5D25-FFC9-492A-8371-12A4E0EE2E05', - ], - ], - ], - ], + 'createdAt' => '2024-01-15T05:36:52.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'CreateRouteEntry'], + ['description' => 'Error codes changed', 'api' => 'ModifyBgpPeerAttribute'], + ['description' => 'Error codes changed', 'api' => 'ModifyVirtualBorderRouterAttribute'], + ['description' => 'Error codes changed', 'api' => 'RecoverPhysicalConnection'], + ], + 'createdAt' => '2024-01-04T01:43:27.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Response parameters changed', 'api' => 'DescribeRouteEntryList'], + ['description' => 'Response parameters changed', 'api' => 'DescribeRouteTableList'], + ['description' => 'Response parameters changed', 'api' => 'DescribeVpcAttribute'], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InvalidIpAddress.AlreadyExist', - 'errorMessage' => 'The specified ip address is already exist.', - ], - [ - 'errorCode' => 'InvalidIpAddress.WrongFormat', - 'errorMessage' => 'The specified ip address is invalid.', - ], - [ - 'errorCode' => 'InvalidIpAddress.PrivateAddress', - 'errorMessage' => 'The specified private ip address is invalid.', - ], - [ - 'errorCode' => 'IPv6TranslatorEntry.InvalidPort', - 'errorMessage' => 'The specified port is invalid.', - ], - [ - 'errorCode' => 'InvalidIPv6TranslatorId.NotFound', - 'errorMessage' => 'The specified ipv6 translator instance id does not exist.', - ], - [ - 'errorCode' => 'InvalidName', - 'errorMessage' => 'The specified value of name not supported.', - ], - [ - 'errorCode' => 'InvalidDescription', - 'errorMessage' => 'The specified value of description not supported.', - ], - [ - 'errorCode' => 'IPv6TranslatorEntry.InvalidProtocol', - 'errorMessage' => 'The specified transProtocol is invalid.', - ], - [ - 'errorCode' => 'Resource.QuotaFull', - 'errorMessage' => 'The quota of resource is full', - ], - [ - 'errorCode' => 'IPv6Translator.Configuring', - 'errorMessage' => 'The specified ipv6 translator is configuring.', - ], - [ - 'errorCode' => 'IPv6TranslatorEntry.InvalidBandwidth', - 'errorMessage' => 'The specified entry bandwidth is not valid.', - ], - [ - 'errorCode' => 'IPv6TranslatorEntry.IPv6Conflict', - 'errorMessage' => 'The specified ipv6 port conflict.', - ], - [ - 'errorCode' => 'IPv6TranslatorEntry.IPv4Conflict', - 'errorMessage' => 'The specified ipv4 port and address conflict.', - ], - [ - 'errorCode' => 'IPv6TranslatorEntry.AclIdNull', - 'errorMessage' => 'The acl id must not be null.', - ], - [ - 'errorCode' => 'InvalidIPv6TranslatorAclId.NotFound', - 'errorMessage' => 'The specified ipv6 translator acl id does not exist.', - ], - [ - 'errorCode' => 'IPv6TranslatorEntry.InvalidAclStatus', - 'errorMessage' => 'The specified acl status is invalid.', - ], - [ - 'errorCode' => 'IPv6TranslatorEntry.InvalidAclType', - 'errorMessage' => 'The specified acl type is invalid.', - ], - ], - 403 => [ - [ - 'errorCode' => 'Forbbiden.SubUser', - 'errorMessage' => 'User not authorized to operate on the specified resource as your account is created by another user.', - ], - [ - 'errorCode' => 'Forbidden', - 'errorMessage' => 'User not authorized to operate on the specified resource.', - ], - ], + 'createdAt' => '2023-12-28T06:11:18.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'CreateCustomerGateway'], + ['description' => 'Error codes changed', 'api' => 'CreateIpsecServer'], + ['description' => 'Error codes changed', 'api' => 'CreateSslVpnClientCert'], + ['description' => 'Error codes changed', 'api' => 'CreateVcoRouteEntry'], + ['description' => 'Error codes changed', 'api' => 'CreateVpnConnection'], + ['description' => 'Error codes changed', 'api' => 'CreateVpnGateway'], + ['description' => 'Error codes changed, Response parameters changed', 'api' => 'CreateVpnPbrRouteEntry'], + ['description' => 'Error codes changed', 'api' => 'DeleteCustomerGateway'], + ['description' => 'Error codes changed', 'api' => 'DeleteVpnAttachment'], + ['description' => 'Error codes changed', 'api' => 'DeleteVpnConnection'], + ], + 'createdAt' => '2023-12-27T02:16:19.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Response parameters changed', 'api' => 'DescribeVirtualBorderRouters'], + ['description' => 'Error codes changed, Request parameters changed, Response parameters changed', 'api' => 'ModifyVirtualBorderRouterAttribute'], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Ipv6TranslatorEntryId\\": \\"ipv6transentry-xxxxxxxx\\",\\n \\"RequestId\\": \\"DCE5D25-FFC9-492A-8371-12A4E0EE2E05\\"\\n}","errorExample":""},{"type":"xml","example":"\\n ipv6transentry-xxxxxxxx\\n DCE5D25-FFC9-492A-8371-12A4E0EE2E05\\n","errorExample":""}]', - 'title' => 'CreateIPv6TranslatorEntry', - 'summary' => 'Adds an IPv6 mapping entry to an IPv6 Translation Service instance.', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', + 'createdAt' => '2023-12-26T12:30:33.000Z', + 'description' => '', ], - 'AddIPv6TranslatorAclListEntry' => [ - 'methods' => [ - 'post', - 'get', + [ + 'apis' => [ + ['description' => 'Request parameters changed', 'api' => 'ListEnhanhcedNatGatewayAvailableZones'], ], - 'schemes' => [ - 'http', - 'https', + 'createdAt' => '2023-12-26T01:51:31.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'CreateRouterInterface'], ], - 'security' => [ - [ - 'AK' => [], - ], + 'createdAt' => '2023-12-22T03:56:57.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'ModifyRouteEntry'], ], - 'operationType' => 'readAndWrite', - 'deprecated' => true, - 'systemTags' => [ - 'operationType' => 'create', + 'createdAt' => '2023-12-21T09:24:27.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'CreatePhysicalConnectionOccupancyOrder'], + ['description' => 'Error codes changed', 'api' => 'CreateRouterInterface'], + ['description' => 'Error codes changed', 'api' => 'CreateVirtualPhysicalConnection'], + ['description' => 'Error codes changed', 'api' => 'DeleteRouterInterface'], + ['description' => 'Error codes changed', 'api' => 'ModifyRouterInterfaceSpec'], + ['description' => 'Error codes changed', 'api' => 'UpdateVirtualPhysicalConnection'], + ], + 'createdAt' => '2023-12-21T05:47:13.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Request parameters changed', 'api' => 'UpdateGatewayRouteTableEntryAttribute'], ], - 'parameters' => [ - [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the ACL.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cn-hangzhou', - ], - ], - [ - 'name' => 'AclId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the ACL to which you want to add the IP entry.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'ipv6transacl-bp1dcdvfe2****', - ], - ], - [ - 'name' => 'AclEntryIp', - 'in' => 'query', - 'schema' => [ - 'description' => 'The IPv6 address or IPv6 CIDR block that you want to add to the ACL entry, for example, 12XX:0:0:XXXX::0102 or 12XX:0:0:XXXX::/60.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => '12XX:0:0:XXXX::0102', - ], - ], - [ - 'name' => 'AclEntryComment', - 'in' => 'query', - 'schema' => [ - 'description' => 'The remarks of the ACL entry.'."\n" - ."\n" - .'It must be 2 to 100 characters in length, and can contain letters, digits, underscores (\\_), and hyphens (-). It must start with a letter.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'clientIP1', - ], - ], + 'createdAt' => '2023-12-19T02:49:02.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Response parameters changed', 'api' => 'ListTrafficMirrorFilters'], + ['description' => 'Response parameters changed', 'api' => 'ListTrafficMirrorSessions'], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'description' => 'The returned data.'."\n", - 'type' => 'object', - 'properties' => [ - 'AclEntryId' => [ - 'description' => 'The ID of the ACL entry.'."\n", - 'type' => 'string', - 'example' => 'ipv6transaclentry-bp105jrs****', - ], - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '8B2F5262-6B57-43F2-defr345', - ], - ], - ], - ], + 'createdAt' => '2023-12-18T12:55:34.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'DeleteNatGateway'], + ['description' => 'Request parameters changed, Response parameters changed', 'api' => 'ListFullNatEntries'], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InvalidIpAddress.WrongFormat', - 'errorMessage' => 'The specified entry ip address is invalid.', - ], - [ - 'errorCode' => 'InvalidIPv6TranslatorAclId.NotFound', - 'errorMessage' => 'The specified ipv6 translator acl instance id does not exist.', - ], - [ - 'errorCode' => 'InvalidEntryComment', - 'errorMessage' => 'The specified value of comment not supported.', - ], - [ - 'errorCode' => 'Resource.QuotaFull', - 'errorMessage' => 'The quota of resource is full', - ], - ], - 403 => [ - [ - 'errorCode' => 'Forbbiden.SubUser', - 'errorMessage' => 'User not authorized to operate on the specified resource as your account is created by another user.', - ], - [ - 'errorCode' => 'Forbidden', - 'errorMessage' => 'User not authorized to operate on the specified resource.', - ], - ], + 'createdAt' => '2023-12-18T05:38:34.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'DeleteVSwitch'], + ['description' => 'Error codes changed', 'api' => 'ModifyVpcAttribute'], ], - 'staticInfo' => [ - 'noSubstitutionReason' => '无替代API,历史原因导致该API被标记为弃用。', + 'createdAt' => '2023-12-14T07:39:06.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Request parameters changed', 'api' => 'CreateNatGateway'], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"AclEntryId\\": \\"ipv6transaclentry-bp105jrs****\\",\\n \\"RequestId\\": \\"8B2F5262-6B57-43F2-defr345\\"\\n}","errorExample":""},{"type":"xml","example":"\\n ipv6transaclentry-bp105jrs****\\n 8B2F5262-6B57-43F2-defr345\\n","errorExample":""}]', - 'title' => 'AddIPv6TranslatorAclListEntry', - 'summary' => 'Adds an IP entry to an access control list (ACL).', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', + 'createdAt' => '2023-12-14T03:32:29.000Z', + 'description' => '', ], - 'CreateIPv6Translator' => [ - 'summary' => 'Creates an IPv6 Translation Service instance.', - 'methods' => [ - 'post', - 'get', + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'AllocateEipAddress'], + ['description' => 'Error codes changed', 'api' => 'AssociateEipAddress'], ], - 'schemes' => [ - 'http', - 'https', + 'createdAt' => '2023-12-13T12:53:00.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'AllocateIpv6InternetBandwidth'], + ['description' => 'Error codes changed', 'api' => 'CreatePublicIpAddressPool'], + ['description' => 'Error codes changed', 'api' => 'UpdateGatewayRouteTableEntryAttribute'], ], - 'security' => [ - [ - 'AK' => [], - ], + 'createdAt' => '2023-12-08T08:53:51.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Response parameters changed', 'api' => 'DescribeEipAddresses'], ], - 'operationType' => 'readAndWrite', - 'deprecated' => true, - 'systemTags' => [ - 'operationType' => 'create', - 'riskType' => 'none', - 'chargeType' => 'free', - 'autoTest' => false, - 'notSupportAutoTestReason' => '产品在2022年已经发布下线公告', - 'tenantRelevance' => 'tenant', + 'createdAt' => '2023-12-07T09:36:26.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'AssociateRouteTablesWithVpcGatewayEndpoint'], ], - 'parameters' => [ - [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The region of the IPv6 Translation Service instance. You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cm-hangzhou', - ], - ], - [ - 'name' => 'ClientToken', - 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request. You can use the client to generate the value, but you must ensure that it is unique among different requests. The token can contain only ASCII characters and cannot exceed 64 characters in length.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'sha111', - ], - ], - [ - 'name' => 'Name', - 'in' => 'query', - 'schema' => [ - 'description' => 'The name of the IPv6 Translation Service instance. The default name is the instance ID. It must be 2 to 100 characters in length and must start with a letter. It can contain letters, digits, periods (.), underscores (\\_), and hyphens (-). It cannot start with `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'ipv6_1', - ], - ], - [ - 'name' => 'Spec', - 'in' => 'query', - 'schema' => [ - 'description' => 'The specification of the IPv6 Translation Service instance. Set the value to **small**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'small', - 'default' => 'small', - ], - ], - [ - 'name' => 'PayType', - 'in' => 'query', - 'schema' => [ - 'description' => 'The billing method of the IPv6 Translation Service instance. Valid values:'."\n" - ."\n" - .'* **PREPAY**: subscription'."\n" - .'* **POSTPAY**: pay-as-you-go'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'PREPAY', - 'default' => 'PREPAY', - ], - ], - [ - 'name' => 'PricingCycle', - 'in' => 'query', - 'schema' => [ - 'description' => 'The billing cycle of the subscription. Valid values:'."\n" - ."\n" - .'* **Month** (default)'."\n" - .'* **Year**'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'Month', - 'default' => '', - ], - ], - [ - 'name' => 'Duration', - 'in' => 'query', - 'schema' => [ - 'description' => 'The subscription duration.'."\n" - ."\n" - .'* If the billing cycle is **Month**, valid values are **1** to **9**.'."\n" - .'* If the billing cycle is **Year**, set the value to **3**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', - 'default' => '', - ], - ], - [ - 'name' => 'AutoPay', - 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to enable automatic payment. Valid values: **true and false**.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - 'default' => 'false', - ], - ], - [ - 'name' => 'Bandwidth', - 'in' => 'query', - 'schema' => [ - 'description' => 'The bandwidth of the IPv6 Translation Service instance. Unit: Mbit/s. Valid values: **1** to **200**. If you do not specify the bandwidth for the mapping entry, the bandwidth is shared with the mapping entry.'."\n" - ."\n" - .'> If you do not specify this parameter, the default bandwidth is 10 Mbit/s.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '10', - 'default' => '10', - ], - ], + 'createdAt' => '2023-12-07T09:32:00.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'DeletePhysicalConnection'], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'Ipv6TranslatorId' => [ - 'description' => 'The ID of the IPv6 Translation Service instance.'."\n", - 'type' => 'string', - 'example' => 'ipv6trans-bp1i8ahxut1xxxx', - ], - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '1AE05898-06E5-4782-xxxxx', - ], - 'Spec' => [ - 'description' => 'The specification of the IPv6 Translation Service instance.'."\n", - 'type' => 'string', - 'example' => 'small', - ], - 'Name' => [ - 'description' => 'The name of the IPv6 Translation Service instance.'."\n", - 'type' => 'string', - 'example' => 'test_nat64gw', - ], - 'OrderId' => [ - 'description' => 'The order ID.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '202303300940739', - ], - ], - ], - ], + 'createdAt' => '2023-11-28T02:17:46.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Request parameters changed', 'api' => 'DescribeRouteTableList'], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InvalidName', - 'errorMessage' => 'The specified name is not support.', - ], - [ - 'errorCode' => 'Spec.NotSupport', - 'errorMessage' => 'The specified spec does not exist in our records.', - ], - [ - 'errorCode' => 'Duration.NotSupport', - 'errorMessage' => 'The specified duration is not support.', - ], - [ - 'errorCode' => 'PricingCycle.NotSupport', - 'errorMessage' => 'The specified pricing cycle is not support.', - ], - [ - 'errorCode' => 'PayType.NotSupport', - 'errorMessage' => 'The specified pay type is not support.', - ], - [ - 'errorCode' => 'InventoryNotEnough', - 'errorMessage' => 'The inventory is not enough.', - ], - [ - 'errorCode' => 'Resource.QuotaFull', - 'errorMessage' => 'The quota of resource is full.', - ], - [ - 'errorCode' => 'Bandwidth.NotSupport', - 'errorMessage' => 'The specified bandwidth is not support.', - ], - ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'Internal Error', - ], - ], + 'createdAt' => '2023-11-27T12:29:38.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'CreateVSwitchCidrReservation'], ], - 'staticInfo' => [ - 'noSubstitutionReason' => '无替代API,历史原因导致该API被标记为弃用。', - 'returnType' => 'asynchronous', - 'callback' => 'Vpc::2016-04-28::DescribeIPv6Translators', - 'callbackInterval' => 2000, - 'maxCallbackTimes' => 50, + 'createdAt' => '2023-11-27T02:26:45.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'AssociateHaVip'], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Ipv6TranslatorId\\": \\"ipv6trans-bp1i8ahxut1xxxx\\",\\n \\"RequestId\\": \\"1AE05898-06E5-4782-xxxxx\\",\\n \\"Spec\\": \\"small\\",\\n \\"Name\\": \\"test_nat64gw\\",\\n \\"OrderId\\": 202303300940739\\n}","errorExample":"{\\n \\"Ipv6TranslatorId\\": \\"ipv6trans-bp1i8ahxut1iedrqqgbco\\", \\n \\"Name\\": \\"test_nat64gw_autopay_0725\\", \\n \\"OrderId\\": 202303300940739, \\n \\"RequestId\\": \\"1AE05898-06E5-4782-B4D0-6714DD94C4E6\\", \\n \\"Spec\\": \\"small\\"\\n}"},{"type":"xml","example":"\\n\\n\\tipv6trans-bp1i8ahxut1iexxxx\\n\\ttest_nat64gw\\n\\t202303300940739\\n\\t1AE05898-06E5-4782-B4D0-xxxxx\\n\\tsmall\\n","errorExample":"\\n\\n\\tipv6trans-bp1i8ahxut1iedrqqgbco\\n\\ttest_nat64gw_autopay_0725\\n\\t202303300940739\\n\\t1AE05898-06E5-4782-B4D0-6714DD94C4E6\\n\\tsmall\\n"}]', - 'title' => 'CreateIPv6Translator', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', + 'createdAt' => '2023-11-20T01:45:34.000Z', + 'description' => '', ], - 'DeleteIPv6TranslatorAclList' => [ - 'methods' => [ - 'post', - 'get', + [ + 'apis' => [ + ['description' => 'Response parameters changed', 'api' => 'ListPrefixLists'], ], - 'schemes' => [ - 'http', - 'https', + 'createdAt' => '2023-11-09T07:17:03.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'ModifyEipAddressAttribute'], ], - 'security' => [ - [ - 'AK' => [], - ], + 'createdAt' => '2023-11-09T06:57:03.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'CompletePhysicalConnectionLOA'], ], - 'operationType' => 'readAndWrite', - 'deprecated' => true, - 'systemTags' => [ - 'operationType' => 'delete', + 'createdAt' => '2023-11-07T09:56:45.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'CreateCommonBandwidthPackage'], ], - 'parameters' => [ - [ - 'name' => 'ClientToken', - 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'You can use the client to generate the token, but you must make sure that the token is unique among all requests. The token can contain only ASCII characters.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-426655440000', - ], - ], - [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The region of the IPv6 translation service instance.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], - ], - [ - 'name' => 'AclId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the ACL that you want to delete.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'ipv6transacl-bp1de2****', - ], - ], + 'createdAt' => '2023-11-06T04:00:42.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Request parameters changed, Response parameters changed', 'api' => 'AssociateNetworkAcl'], + ['description' => 'Request parameters changed', 'api' => 'CopyNetworkAclEntries'], + ['description' => 'Error codes changed, Request parameters changed', 'api' => 'CreateNetworkAcl'], + ['description' => 'Request parameters changed', 'api' => 'DeleteNetworkAcl'], + ['description' => 'Response parameters changed, Response parameters changed', 'api' => 'DescribeNetworkAclAttributes'], + ['description' => 'Request parameters changed, Response parameters changed', 'api' => 'DescribeNetworkAcls'], + ['description' => 'Error codes changed, Request parameters changed', 'api' => 'ModifyNetworkAclAttributes'], + ['description' => 'Request parameters changed, Response parameters changed', 'api' => 'UnassociateNetworkAcl'], + ['description' => 'Error codes changed, Request parameters changed', 'api' => 'UpdateNetworkAclEntries'], + ], + 'createdAt' => '2023-10-30T08:03:43.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'ModifyVpnConnectionAttribute'], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'description' => 'The returned data.'."\n", - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B45', - ], - ], - ], - ], + 'createdAt' => '2023-10-23T08:44:30.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'CreateRouteTable'], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InvalidIPv6TranslatorACLId.NotFound', - 'errorMessage' => 'The specified ipv6 translator acl instance id does not exist.', - ], - [ - 'errorCode' => 'InvalidIPv6TranslatorACL.Used', - 'errorMessage' => 'The specified ipv6 translator acl is be used.', - ], - ], - 403 => [ - [ - 'errorCode' => 'Forbbiden.SubUser', - 'errorMessage' => 'User not authorized to operate on the specified resource as your account is created by another user.', - ], - [ - 'errorCode' => 'Forbidden', - 'errorMessage' => 'User not authorized to operate on the specified resource.', - ], - ], + 'createdAt' => '2023-10-23T07:38:30.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'AllocateEipAddress'], + ['description' => 'Error codes changed', 'api' => 'AllocateEipAddressPro'], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B45\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 54B48E3D-DF70-471B-AA93-08E683A1B45\\n","errorExample":""}]', - 'title' => 'DeleteIPv6TranslatorAclList', - 'summary' => 'Deletes an access control list (ACL). You can delete an ACL only when the ACL is not associated with IPv6 translation mappings.', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', + 'createdAt' => '2023-10-19T11:50:07.000Z', + 'description' => '', ], - 'DeleteIPv6TranslatorEntry' => [ - 'methods' => [ - 'post', - 'get', + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'CreateSslVpnServer'], + ['description' => 'Request parameters changed, Response parameters changed', 'api' => 'DescribeSslVpnClientCerts'], + ['description' => 'Request parameters changed, Response parameters changed', 'api' => 'DescribeVpnConnections'], + ['description' => 'Error codes changed', 'api' => 'DescribeVpnPbrRouteEntries'], + ['description' => 'Error codes changed', 'api' => 'DescribeVpnRouteEntries'], + ['description' => 'Error codes changed, Request parameters changed, Response parameters changed', 'api' => 'ListIpsecServers'], + ['description' => 'Response parameters changed, Response parameters changed', 'api' => 'ModifyVpnAttachmentAttribute'], + ['description' => 'Error codes changed, Request parameters changed, Response parameters changed', 'api' => 'ModifyVpnConnectionAttribute'], + ], + 'createdAt' => '2023-10-19T08:26:43.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Response parameters changed', 'api' => 'ListEnhanhcedNatGatewayAvailableZones'], ], - 'schemes' => [ - 'http', - 'https', + 'createdAt' => '2023-10-17T03:47:55.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'DeleteIpv6EgressOnlyRule'], ], - 'security' => [ - [ - 'AK' => [], - ], + 'createdAt' => '2023-10-13T03:44:53.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed, Request parameters changed', 'api' => 'CreatePhysicalConnection'], ], - 'operationType' => 'readAndWrite', - 'deprecated' => true, - 'systemTags' => [ - 'operationType' => 'delete', + 'createdAt' => '2023-10-12T03:31:03.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'CreateIpv6EgressOnlyRule'], + ['description' => 'Error codes changed', 'api' => 'DeleteIpv6Gateway'], + ['description' => 'Error codes changed', 'api' => 'DeleteVSwitch'], ], - 'parameters' => [ - [ - 'name' => 'ClientToken', - 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-426655440000', - ], - ], - [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The region of the IPv6 Translation Service instance. You can call the **DescribeRegions** operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cn-hangzhou', - ], - ], - [ - 'name' => 'Ipv6TranslatorEntryId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the IPv6 mapping entry to be deleted.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'ipv6transentry-bp1g8bhrde****', - ], - ], - [ - 'name' => 'Ipv6TranslatorId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the IPv6 Translation Service instance.'."\n" - ."\n" - .'> If you do not specify **Ipv6TranslatorEntryId**, all mapping entries in the specified instance are deleted.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'ipv6trans-bp1858ys****', - ], - ], + 'createdAt' => '2023-10-10T04:48:43.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'CreateDhcpOptionsSet'], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'description' => 'The returned data.'."\n", - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '8B2F5262-6B57-43F2-xxxxx', - ], - ], - ], - ], + 'createdAt' => '2023-09-27T07:40:53.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'CreateTrafficMirrorSession'], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InvalidIPv6TranslatorId.NotFound', - 'errorMessage' => 'The specified ipv6 translator gateway instance id does not exist.', - ], - [ - 'errorCode' => 'InvalidIPv6TranslatorEntryId.NotFound', - 'errorMessage' => 'The specified ipv6 translator entry id does not exist.', - ], - [ - 'errorCode' => 'IPv6Translator.Configuring', - 'errorMessage' => 'The specified ipv6 translator is configuring.', - ], - [ - 'errorCode' => 'IPv6Translator.FinancialLocked', - 'errorMessage' => 'The specified ipv6 translator is financial locked.', - ], - [ - 'errorCode' => 'InvalidIPv6TranslatorId.CoexistWithEntryId', - 'errorMessage' => 'The entry id and instance id can not be specified together', - ], - [ - 'errorCode' => 'MissingEntryOrInstanceId', - 'errorMessage' => 'The entry or instance id is not supplied', - ], - ], - 403 => [ - [ - 'errorCode' => 'Forbbiden.SubUser', - 'errorMessage' => 'User not authorized to operate on the specified resource as your account is created by another user.', - ], - [ - 'errorCode' => 'Forbidden', - 'errorMessage' => 'User not authorized to operate on the specified resource.', - ], - ], + 'createdAt' => '2023-09-26T07:21:11.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'AssociateHaVip'], + ['description' => 'Error codes changed', 'api' => 'CreateRouteEntry'], + ['description' => 'Error codes changed', 'api' => 'DeleteVpc'], + ['description' => 'Error codes changed', 'api' => 'DescribeRouteTables'], + ], + 'createdAt' => '2023-09-25T07:38:48.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'DeleteTrafficMirrorFilterRules'], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"8B2F5262-6B57-43F2-xxxxx\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 8B2F5262-6B57-43F2-xxxxx\\n","errorExample":""}]', - 'title' => 'DeleteIPv6TranslatorEntry', - 'summary' => 'Deletes an IPv6 mapping entry.', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', + 'createdAt' => '2023-09-22T05:43:34.000Z', + 'description' => '', ], - 'DeleteIPv6Translator' => [ - 'methods' => [ - 'post', - 'get', + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'CreateDhcpOptionsSet'], ], - 'schemes' => [ - 'http', - 'https', + 'createdAt' => '2023-09-21T11:15:51.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'DeleteVSwitch'], + ['description' => 'Error codes changed', 'api' => 'RetryVpcPrefixListAssociation'], + ['description' => 'Error codes changed', 'api' => 'RevokeInstanceFromCen'], ], - 'security' => [ - [ - 'AK' => [], - ], + 'createdAt' => '2023-09-21T07:57:16.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Response parameters changed', 'api' => 'GrantInstanceToVbr'], ], - 'operationType' => 'readAndWrite', - 'systemTags' => [ - 'operationType' => 'delete', + 'createdAt' => '2023-09-21T07:27:57.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'CreateTrafficMirrorSession'], ], - 'parameters' => [ - [ - 'name' => 'ClientToken', - 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'ClientToken', - ], - ], - [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the IPv6 Translation Service instance.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], - ], - [ - 'name' => 'Ipv6TranslatorId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the IPv6 Translation Service instance.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'ipv6trans-bp1i8ahxut1ie****', - ], - ], + 'createdAt' => '2023-09-21T07:06:13.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Request parameters changed, Response parameters changed', 'api' => 'CreateCustomerGateway'], + ['description' => 'Error codes changed', 'api' => 'CreateIpsecServer'], + ['description' => 'Error codes changed, Request parameters changed', 'api' => 'CreateVpnAttachment'], + ['description' => 'Request parameters changed', 'api' => 'CreateVpnGateway'], + ['description' => 'Response parameters changed, Response parameters changed', 'api' => 'DescribeCustomerGateway'], + ['description' => 'Request parameters changed, Response parameters changed, Response parameters changed', 'api' => 'DescribeCustomerGateways'], + ['description' => 'Error codes changed, Response parameters changed', 'api' => 'DescribeSslVpnClientCert'], + ['description' => 'Request parameters changed, Response parameters changed', 'api' => 'DescribeSslVpnServers'], + ['description' => 'Response parameters changed', 'api' => 'DescribeVpnConnection'], + ], + 'createdAt' => '2023-09-21T06:05:22.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed, Response parameters changed', 'api' => 'CreateSnatEntry'], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'description' => 'The returned data.'."\n", - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B45', - ], - ], - ], - ], + 'createdAt' => '2023-09-18T03:27:40.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'ModifyRouteEntry'], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'IPv6Translator.Configuring', - 'errorMessage' => 'The specified ipv6 translator is configuring.', - ], - [ - 'errorCode' => 'Nat64Gateway.Configuring', - 'errorMessage' => 'The specified IPv6 translator is configuring.', - ], - ], - 403 => [ - [ - 'errorCode' => 'Forbbiden.SubUser', - 'errorMessage' => 'User not authorized to operate on the specified resource as your account is created by another user.', - ], - [ - 'errorCode' => 'Forbidden', - 'errorMessage' => 'User not authorized to operate on the specified resource.', - ], - [ - 'errorCode' => 'ForbiddenRelease', - 'errorMessage' => 'Forbidden to release a prepaid instance within validity period', - ], - ], - [ - [ - 'errorCode' => 'InvalidIPv6TranslatorId.NotFound', - 'errorMessage' => 'The specified ipv6 translator instance id does not exist.', - ], - ], + 'createdAt' => '2023-09-15T03:55:19.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed, Request parameters changed', 'api' => 'ModifyRouteEntry'], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B45\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 54B48E3D-DF70-471B-AA93-08E683A1B45\\n","errorExample":""}]', - 'title' => 'DeleteIPv6Translator', - 'summary' => 'Deletes an IPv6 Translation Service instance.', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', + 'createdAt' => '2023-09-15T01:18:03.000Z', + 'description' => '', ], - 'ModifyIPv6TranslatorAclListEntry' => [ - 'methods' => [ - 'post', - 'get', + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'CreateTrafficMirrorSession'], ], - 'schemes' => [ - 'http', - 'https', + 'createdAt' => '2023-09-14T05:43:07.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'CreateRouterInterface'], ], - 'security' => [ - [ - 'AK' => [], - ], + 'createdAt' => '2023-09-11T08:51:05.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Request parameters changed', 'api' => 'CompletePhysicalConnectionLOA'], ], - 'operationType' => 'readAndWrite', - 'systemTags' => [ - 'operationType' => 'update', + 'createdAt' => '2023-09-08T05:34:18.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed, Request parameters changed', 'api' => 'CompletePhysicalConnectionLOA'], + ['description' => 'Response parameters changed', 'api' => 'DescribePhysicalConnectionLOA'], ], - 'parameters' => [ - [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The region of the ACL.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], - ], - [ - 'name' => 'AclId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the ACL to which the IP entry belongs.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'ipv6transacl-bp1b4z3tleyhq1s50****', - ], - ], - [ - 'name' => 'AclEntryId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the ACL rule to which the IP entry belongs.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'ipv6transaclentry-bp1jzyn7ra8pyxehd****', - ], - ], - [ - 'name' => 'AclEntryComment', - 'in' => 'query', - 'schema' => [ - 'description' => 'The remarks of the ACL rule.'."\n" - ."\n" - .'It must be 2 to 100 characters in length, and can contain digits, underscores (\\_), and hyphens (-). It must start with a letter.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'client IP', - ], - ], + 'createdAt' => '2023-09-07T11:50:00.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'DeleteRouteEntry'], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'description' => 'The returned data.'."\n", - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B45', - ], - ], - ], - ], + 'createdAt' => '2023-09-06T11:27:48.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'CreateHaVip'], + ['description' => 'Response parameters changed', 'api' => 'GetVpcGatewayEndpointAttribute'], + ['description' => 'Response parameters changed', 'api' => 'ListVpcGatewayEndpoints'], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InvalidIPv6TranslatorAclId.NotFound', - 'errorMessage' => 'The specified ipv6 translator acl instance id does not exist.', - ], - [ - 'errorCode' => 'InvalidIPv6TranslatorAclEntryId.NotFound', - 'errorMessage' => 'The specified ipv6 translator acl entry id does not exist.', - ], - [ - 'errorCode' => 'InvalidEntryComment', - 'errorMessage' => 'The specified value of comment not supported.', - ], - ], - 403 => [ - [ - 'errorCode' => 'Forbbiden.SubUser', - 'errorMessage' => 'User not authorized to operate on the specified resource as your account is created by another user.', - ], - [ - 'errorCode' => 'Forbidden', - 'errorMessage' => 'User not authorized to operate on the specified resource.', - ], - ], + 'createdAt' => '2023-09-06T08:28:44.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'DescribeRouteTables'], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B45\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 54B48E3D-DF70-471B-AA93-08E683A1B45\\n","errorExample":""}]', - 'title' => 'ModifyIPv6TranslatorAclListEntry', - 'summary' => 'Modifies an IP entry in an access control list (ACL).', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', + 'createdAt' => '2023-09-06T05:54:57.000Z', + 'description' => '', ], - 'ModifyIPv6TranslatorAclAttribute' => [ - 'methods' => [ - 'post', - 'get', + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'CreateRouteEntry'], ], - 'schemes' => [ - 'http', - 'https', + 'createdAt' => '2023-09-01T09:17:06.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'CreateTrafficMirrorFilter'], ], - 'security' => [ - [ - 'AK' => [], - ], + 'createdAt' => '2023-08-30T06:16:56.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'AllocateIpv6InternetBandwidth'], + ['description' => 'Response parameters changed', 'api' => 'AssociateRouteTableWithGateway'], + ['description' => 'Error codes changed', 'api' => 'CreateTrafficMirrorSession'], ], - 'operationType' => 'readAndWrite', - 'deprecated' => true, - 'systemTags' => [ - 'operationType' => 'update', + 'createdAt' => '2023-08-30T03:21:59.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'AllocateEipAddress'], ], - 'parameters' => [ - [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The region of the IPv6 Translation Service instance. You can call the DescribeRegions operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], - ], - [ - 'name' => 'ClientToken', - 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-426655440000', - ], - ], - [ - 'name' => 'AclId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the ACL that you want to modify.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'ipv6transacl-bp1de2****', - ], - ], - [ - 'name' => 'AclName', - 'in' => 'query', - 'schema' => [ - 'description' => 'The name of the ACL.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'acl1', - ], - ], + 'createdAt' => '2023-08-29T10:13:13.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'AllocateEipSegmentAddress'], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'description' => 'The returned data.'."\n", - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B45', - ], - ], - ], - ], + 'createdAt' => '2023-08-29T08:55:58.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Response parameters changed', 'api' => 'ListVpcEndpointServicesByEndUser'], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InvalidName', - 'errorMessage' => 'The specified name is not valid', - ], - ], - 403 => [ - [ - 'errorCode' => 'Forbbiden.SubUser', - 'errorMessage' => 'User not authorized to operate on the specified resource as your account is created by another user.', - ], - [ - 'errorCode' => 'Forbidden', - 'errorMessage' => 'User not authorized to operate on the specified resource.', - ], - ], - [ - [ - 'errorCode' => 'InvalidIPv6TranslatorACLId.NotFound', - 'errorMessage' => 'The specified ipv6 translator acl instance id does not exist.', - ], - ], + 'createdAt' => '2023-08-25T06:36:21.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'AssociateVpcCidrBlock'], + ['description' => 'Error codes changed', 'api' => 'ModifyVSwitchAttribute'], + ['description' => 'Error codes changed', 'api' => 'UnassociateVpcCidrBlock'], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B45\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 54B48E3D-DF70-471B-AA93-08E683A1B45\\n","errorExample":""}]', - 'title' => 'ModifyIPv6TranslatorAclAttribute', - 'summary' => 'Modifies the name of an access control list (ACL).', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', + 'createdAt' => '2023-08-24T07:17:56.000Z', + 'description' => '', ], - 'ModifyIPv6TranslatorBandwidth' => [ - 'methods' => [ - 'post', - 'get', + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'AssociateEipAddress'], ], - 'schemes' => [ - 'http', - 'https', + 'createdAt' => '2023-08-24T02:13:51.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'CreateVpnConnection'], + ['description' => 'Error codes changed', 'api' => 'ModifyTunnelAttribute'], ], - 'security' => [ - [ - 'AK' => [], - ], + 'createdAt' => '2023-08-21T12:19:53.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'AssociateRouteTable'], ], - 'operationType' => 'readAndWrite', - 'systemTags' => [ - 'operationType' => 'update', + 'createdAt' => '2023-08-18T04:04:36.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'DeleteRouteEntry'], + ['description' => 'Error codes changed', 'api' => 'EnableVpcClassicLink'], ], - 'parameters' => [ - [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The region of the IPv6 Translation Service instance. You can call the **DescribeRegions** operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cn-hangzhou', - ], - ], - [ - 'name' => 'ClientToken', - 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-426655440000', - ], - ], - [ - 'name' => 'Ipv6TranslatorId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the IPv6 Translation Service instance.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'ipv6trans-bp1858ys****', - ], - ], - [ - 'name' => 'Bandwidth', - 'in' => 'query', - 'schema' => [ - 'description' => 'The maximum bandwidth of the IPv6 Translation Service instance. Valid values: **1** to **200**. Unit: Mbit/s.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'example' => '2', - ], - ], - [ - 'name' => 'AutoPay', - 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to enable auto-payment for the instance. Valid values:'."\n" - ."\n" - .'* **true**'."\n" - .'* **false** (default)'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - 'default' => 'false', - ], - ], + 'createdAt' => '2023-08-15T09:20:39.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Request parameters changed', 'api' => 'ModifyIpv6AddressAttribute'], + ['description' => 'Request parameters changed', 'api' => 'ModifyIpv6GatewayAttribute'], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'description' => 'The returned data.'."\n", - 'type' => 'object', - 'properties' => [ - 'OrderId' => [ - 'description' => 'The order ID.'."\n", - 'type' => 'string', - 'example' => '202304500950739', - ], - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => 'EF8198EE-8FC9-49C2-A22E-xxxx', - ], - ], - ], - ], + 'createdAt' => '2023-08-15T05:56:34.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Request parameters changed', 'api' => 'DescribeRouteTableList'], + ['description' => 'Error codes changed', 'api' => 'ModifyIpv6InternetBandwidth'], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InvalidIPv6TranslatorId.NotFound', - 'errorMessage' => 'The specified ipv6 translator instance id does not exist.', - ], - [ - 'errorCode' => 'InvalidBandwidth.NotSupport', - 'errorMessage' => 'The specified bandwidth is not support.', - ], - [ - 'errorCode' => 'IPv6Translator.Configuring', - 'errorMessage' => 'The specified ipv6 translator is configuring.', - ], - [ - 'errorCode' => 'InvalidBandwidth.DowngradeForbidden', - 'errorMessage' => 'The bandwidth downgrade is forbidden.', - ], - [ - 'errorCode' => 'InvalidBandwidth.NotEnough', - 'errorMessage' => 'The specified bandwidth is not enough.', - ], - [ - 'errorCode' => 'InvalidBandwidth.NotChange', - 'errorMessage' => 'The specified bandwidth does not change.', - ], - [ - 'errorCode' => 'IPv6Translator.FinancialLocked', - 'errorMessage' => 'The specified ipv6 translator is financial locked.', - ], - ], - 403 => [ - [ - 'errorCode' => 'Forbbiden.SubUser', - 'errorMessage' => 'User not authorized to operate on the specified resource as your account is created by another user.', - ], - [ - 'errorCode' => 'Forbidden', - 'errorMessage' => 'User not authorized to operate on the specified resource.', - ], - ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'Internal Error', - ], - ], + 'createdAt' => '2023-08-14T08:48:41.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'DissociateRouteTableFromGateway'], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"OrderId\\": \\"202304500950739\\",\\n \\"RequestId\\": \\"EF8198EE-8FC9-49C2-A22E-xxxx\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 202304500950739\\n EF8198EE-8FC9-49C2-A22E-xxxx\\n","errorExample":""}]', - 'title' => 'ModifyIPv6TranslatorBandwidth', - 'summary' => 'Modifies the maximum bandwidth of an IPv6 Translation Service instance.', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', + 'createdAt' => '2023-08-14T02:50:27.000Z', + 'description' => '', ], - 'ModifyIPv6TranslatorAttribute' => [ - 'methods' => [ - 'post', - 'get', + [ + 'apis' => [ + ['description' => 'Request parameters changed', 'api' => 'DescribeEipAddresses'], ], - 'schemes' => [ - 'http', - 'https', + 'createdAt' => '2023-08-09T06:30:45.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Response parameters changed, Response parameters changed', 'api' => 'DescribeForwardTableEntries'], + ['description' => 'Response parameters changed, Response parameters changed', 'api' => 'DescribeSnatTableEntries'], ], - 'security' => [ - [ - 'AK' => [], - ], + 'createdAt' => '2023-08-09T03:10:44.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Response parameters changed', 'api' => 'CreateVpnAttachment'], ], - 'operationType' => 'readAndWrite', - 'systemTags' => [ - 'operationType' => 'update', + 'createdAt' => '2023-08-09T02:17:17.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'DeleteIpv6Gateway'], + ['description' => 'Request parameters changed', 'api' => 'DescribeEipAddresses'], ], - 'parameters' => [ - [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The region of the IPv6 Translation Service instance. You can call the **DescribeRegions** operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cn-hangzhou', - ], - ], - [ - 'name' => 'ClientToken', - 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'sha1111', - ], - ], - [ - 'name' => 'Ipv6TranslatorId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the IPv6 Translation Service instance.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'ipv6trans-bp1858ys****', - ], - ], - [ - 'name' => 'Name', - 'in' => 'query', - 'schema' => [ - 'description' => 'The name of the IPv6 Translation Service instance. The default name is the instance ID. It must be 2 to 100 characters in length, and can contain letters, digits, periods (.), underscores (\\_), and hyphens (-). It cannot start with http:// or [https://](https://。).'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'instancename', - ], - ], - [ - 'name' => 'Description', - 'in' => 'query', - 'schema' => [ - 'description' => 'The description of IPv6 Translation Service. This parameter is empty by default. It must be 2 to 100 characters in length, and can contain letters, digits, periods (.), underscores (\\_), and hyphens (-). It cannot start with http:// or [https://](https://。).'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'instancedescription', - ], - ], + 'createdAt' => '2023-08-09T01:56:31.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed, Response parameters changed', 'api' => 'DescribePhysicalConnections'], + ['description' => 'Response parameters changed', 'api' => 'ListVirtualPhysicalConnections'], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'description' => 'The returned data.'."\n", - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '8B2F5262-6B57-43F2-xxxxx', - ], - ], - ], - ], + 'createdAt' => '2023-08-08T13:14:57.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed, Request parameters changed', 'api' => 'EnablePhysicalConnection'], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InvalidName', - 'errorMessage' => 'The specified name is not valid', - ], - [ - 'errorCode' => 'InvalidDescription', - 'errorMessage' => 'The specified description is not valid', - ], - [ - 'errorCode' => ' IPv6Translator.Configuring', - 'errorMessage' => 'The specified ipv6 translator is configuring.', - ], - ], - 403 => [ - [ - 'errorCode' => 'Forbbiden.SubUser', - 'errorMessage' => 'User not authorized to operate on the specified resource as your account is created by another user.', - ], - [ - 'errorCode' => 'Forbidden', - 'errorMessage' => 'User not authorized to operate on the specified resource.', - ], - ], - [ - [ - 'errorCode' => 'InvalidIPv6TranslatorId.NotFound', - 'errorMessage' => 'The specified ipv6 translator instance id does not exist.', - ], - ], + 'createdAt' => '2023-08-08T12:56:51.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Response parameters changed', 'api' => 'DeleteRouteEntries'], + ['description' => 'Response parameters changed', 'api' => 'ListIpv4Gateways'], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"8B2F5262-6B57-43F2-xxxxx\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 8B2F5262-6B57-43F2-xxxxx\\n","errorExample":""}]', - 'title' => 'ModifyIPv6TranslatorAttribute', - 'summary' => 'Modifies the name and description of an IPv6 Translation Service instance.', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', + 'createdAt' => '2023-08-07T02:20:09.000Z', + 'description' => '', ], - 'ModifyIPv6TranslatorEntry' => [ - 'methods' => [ - 'post', - 'get', + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'AssociateRouteTable'], + ['description' => 'Error codes changed', 'api' => 'DeleteRouteEntry'], ], - 'schemes' => [ - 'http', - 'https', + 'createdAt' => '2023-08-03T07:35:06.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'AddSourcesToTrafficMirrorSession'], + ['description' => 'Error codes changed', 'api' => 'AllocateIpv6InternetBandwidth'], + ['description' => 'Request parameters changed', 'api' => 'DescribeRouteTableList'], + ['description' => 'Error codes changed', 'api' => 'ModifyIpv6InternetBandwidth'], + ['description' => 'Error codes changed', 'api' => 'UpdateTrafficMirrorSessionAttribute'], + ], + 'createdAt' => '2023-08-03T05:30:54.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'DescribeRouteTables'], + ['description' => 'Response parameters changed', 'api' => 'MoveResourceGroup'], ], - 'security' => [ - [ - 'AK' => [], - ], + 'createdAt' => '2023-08-02T07:53:09.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'CreateVpnConnection'], + ['description' => 'Error codes changed', 'api' => 'CreateVpnPbrRouteEntry'], + ['description' => 'Error codes changed', 'api' => 'ModifyVpnPbrRouteEntryAttribute'], + ['description' => 'Error codes changed', 'api' => 'ModifyVpnPbrRouteEntryWeight'], + ['description' => 'Error codes changed', 'api' => 'ModifyVpnRouteEntryWeight'], + ], + 'createdAt' => '2023-08-01T09:13:53.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Request parameters changed', 'api' => 'ListTagResources'], + ['description' => 'Request parameters changed', 'api' => 'TagResources'], + ['description' => 'Request parameters changed, Response parameters changed', 'api' => 'UnTagResources'], ], - 'operationType' => 'readAndWrite', - 'deprecated' => true, - 'systemTags' => [ - 'operationType' => 'update', + 'createdAt' => '2023-07-28T01:53:49.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Response parameters changed', 'api' => 'DescribeVpnConnection'], + ['description' => 'Response parameters changed', 'api' => 'DescribeVpnConnections'], + ['description' => 'Response parameters changed', 'api' => 'DownloadVpnConnectionConfig'], + ['description' => 'Response parameters changed', 'api' => 'ModifyVpnConnectionAttribute'], + ], + 'createdAt' => '2023-07-27T09:12:41.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'AllocateEipAddress'], + ['description' => 'Error codes changed', 'api' => 'AllocateEipSegmentAddress'], ], - 'parameters' => [ - [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The region of the IPv6 Translation Service instance. You can call the DescribeRegions operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cn-hangzhou', - ], - ], - [ - 'name' => 'Ipv6TranslatorEntryId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the IPv6 mapping entry.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'ipv6trans-bp1858ys****', - ], - ], - [ - 'name' => 'EntryName', - 'in' => 'query', - 'schema' => [ - 'description' => 'The name of the IPv6 mapping entry. It must be 2 to 100 characters in length, and can contain digits, periods (.), underscores (\\_), and hyphens (-). It must start with a letter. It cannot start with http:// or [https://](https://。).'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'entry1', - ], - ], - [ - 'name' => 'EntryDescription', - 'in' => 'query', - 'schema' => [ - 'description' => 'The description of the IPv6 mapping entry. It must be 2 to 100 characters in length, and can contain digits, periods (.), underscores (\\_), and hyphens (-). It must start with a letter. It cannot start with http:// or [https://](https://。).'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'entrydescription', - ], - ], - [ - 'name' => 'AllocateIpv6Port', - 'in' => 'query', - 'schema' => [ - 'description' => 'The port that is used by the IPv6 address allocated to the IPv6 Translation Service instance.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '80', - ], - ], - [ - 'name' => 'BackendIpv4Addr', - 'in' => 'query', - 'schema' => [ - 'description' => 'The public IPv4 address that needs to provide IPv6 services.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '47.11.XX.XX', - ], - ], - [ - 'name' => 'BackendIpv4Port', - 'in' => 'query', - 'schema' => [ - 'description' => 'The port of the public IPv4 address that needs to provide IPv6 services.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '80', - ], - ], - [ - 'name' => 'TransProtocol', - 'in' => 'query', - 'schema' => [ - 'description' => 'The protocol. Valid values:'."\n" - ."\n" - .'* **tcp**'."\n" - .'* **udp**'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'tcp', - ], - ], - [ - 'name' => 'EntryBandwidth', - 'in' => 'query', - 'schema' => [ - 'description' => 'The maximum bandwidth specified in the IPv6 mapping entry. Unit: Mbit/s. Valid values:'."\n" - ."\n" - .'* **-1** (default): does not limit the maximum bandwidth specified in the IPv6 mapping entry.'."\n" - .'* **1** to **200**: changes the maximum bandwidth specified in the IPv6 mapping entry.'."\n" - ."\n" - .'> The sum of maximum bandwidth values specified in all IPv6 entries cannot exceed the maximum bandwidth supported by the instance.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '10', - ], - ], - [ - 'name' => 'AclStatus', - 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to enable access control lists (ACLs). Valid values:'."\n" - ."\n" - .'* **on**'."\n" - .'* **off**'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'off', - ], - ], - [ - 'name' => 'AclType', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ACL type. Valid values:'."\n" - ."\n" - .'* **white**: a whitelist. IPv6 addresses in the ACL are allowed to access backend services.'."\n" - .'* **black**: a blacklist. IPv6 addresses in the ACL are not allowed to access backend services.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'white', - ], - ], - [ - 'name' => 'AclId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the associated ACL.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'ipv6transacl-bp1de27sou71g0lf****', - ], - ], + 'createdAt' => '2023-07-26T07:13:07.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Request parameters changed', 'api' => 'DescribeVpcs'], + ['description' => 'Request parameters changed', 'api' => 'DescribeVSwitches'], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'description' => 'The returned data.'."\n", - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B45', - ], - ], - ], - ], + 'createdAt' => '2023-07-26T05:48:12.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Request parameters changed', 'api' => 'DescribeVpcs'], + ['description' => 'Request parameters changed', 'api' => 'DescribeVSwitches'], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InvalidName', - 'errorMessage' => 'The specified value of name not supported.', - ], - [ - 'errorCode' => 'InvalidDescription', - 'errorMessage' => 'The specified value of description not supported.', - ], - [ - 'errorCode' => 'InvalidIpAddress.AlreadyExist', - 'errorMessage' => 'The specified ip address is already exist.', - ], - [ - 'errorCode' => 'InvalidIpAddress.WrongFormat', - 'errorMessage' => 'The specified ip address is invalid.', - ], - [ - 'errorCode' => 'InvalidIpAddress.PrivateAddress', - 'errorMessage' => 'The specified private ip address is invalid.', - ], - [ - 'errorCode' => 'IPv6TranslatorEntry.InvalidPort', - 'errorMessage' => 'The specified port is invalid.', - ], - [ - 'errorCode' => 'IPv6TranslatorEntry.InvalidProtocol', - 'errorMessage' => 'The specified transProtocol is invalid.', - ], - [ - 'errorCode' => 'IPv6Translator.Configuring', - 'errorMessage' => 'The specified ipv6 translator is configuring.', - ], - [ - 'errorCode' => 'IPv6TranslatorEntry.IPv6Conflict', - 'errorMessage' => 'The specified ipv6 port conflict.', - ], - [ - 'errorCode' => 'IPv6TranslatorEntry.IPv4Conflict', - 'errorMessage' => 'The specified ipv4 port and address conflict.', - ], - [ - 'errorCode' => 'IPv6TranslatorEntry.InvalidParameter', - 'errorMessage' => 'The specified parameter is not valid.', - ], - [ - 'errorCode' => 'IPv6TranslatorEntry.AclIdNull', - 'errorMessage' => 'The acl id must not be null.', - ], - [ - 'errorCode' => 'InvalidIPv6TranslatorAclId.NotFound', - 'errorMessage' => 'The specified ipv6 translator acl id does not exist.', - ], - [ - 'errorCode' => 'IPv6TranslatorEntry.InvalidAclType', - 'errorMessage' => 'The specified acl type is invalid.', - ], - [ - 'errorCode' => 'IPv6TranslatorEntry.InvalidAclStatus', - 'errorMessage' => 'The specified acl status is invalid.', - ], - [ - 'errorCode' => 'IPv6TranslatorEntry.InvalidBandwidth', - 'errorMessage' => 'The specified bandwidth is invalid.', - ], - ], - 403 => [ - [ - 'errorCode' => 'Forbbiden.SubUser', - 'errorMessage' => 'User not authorized to operate on the specified resource as your account is created by another user.', - ], - [ - 'errorCode' => 'Forbidden', - 'errorMessage' => 'User not authorized to operate on the specified resource.', - ], - ], - [ - [ - 'errorCode' => 'InvalidIPv6TranslatorEntryId.NotFound', - 'errorMessage' => 'The specified ipv6 translator entry id does not exist.', - ], - ], + 'createdAt' => '2023-07-26T03:25:59.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'CreateRouteEntry'], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B45\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 54B48E3D-DF70-471B-AA93-08E683A1B45\\n","errorExample":""}]', - 'title' => 'ModifyIPv6TranslatorEntry', - 'summary' => 'Modifies an IPv6 mapping entry.', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', + 'createdAt' => '2023-07-25T10:02:38.000Z', + 'description' => '', ], - 'DescribeIPv6TranslatorAclLists' => [ - 'methods' => [ - 'post', - 'get', + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'ChangeResourceGroup'], ], - 'schemes' => [ - 'http', - 'https', + 'createdAt' => '2023-07-25T08:44:46.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'CreateVirtualBorderRouter'], + ['description' => 'Error codes changed', 'api' => 'DeleteRouterInterface'], + ['description' => 'Error codes changed, Response parameters changed', 'api' => 'DescribeRouterInterfaceAttribute'], ], - 'security' => [ - [ - 'AK' => [], - ], + 'createdAt' => '2023-07-24T11:57:44.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'AllocateEipAddress'], + ['description' => 'Error codes changed', 'api' => 'DeleteCommonBandwidthPackage'], + ['description' => 'Error codes changed', 'api' => 'ModifyEipAddressAttribute'], ], - 'operationType' => 'read', - 'deprecated' => true, - 'systemTags' => [ - 'operationType' => 'get', + 'createdAt' => '2023-07-24T02:52:19.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'PublishVpnRouteEntry'], ], - 'parameters' => [ - [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The region of the ACL.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], - ], - [ - 'name' => 'AclId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the ACL.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'ipv6transacl-bp1de2****', - ], - ], - [ - 'name' => 'PageNumber', - 'in' => 'query', - 'schema' => [ - 'description' => 'The number of the page to return. Default value: **1**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', - 'default' => '1', - ], - ], - [ - 'name' => 'PageSize', - 'in' => 'query', - 'schema' => [ - 'description' => 'The number of entries to return on each page. Maximum value: **50**. Default value: **10**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '10', - 'default' => '10', - ], - ], - [ - 'name' => 'AclName', - 'in' => 'query', - 'schema' => [ - 'description' => 'The name of the ACL.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'acl1', - ], - ], + 'createdAt' => '2023-07-21T09:24:11.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'ActivateRouterInterface'], + ['description' => 'Error codes changed', 'api' => 'ConnectRouterInterface'], + ['description' => 'Error codes changed', 'api' => 'DeactivateRouterInterface'], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'description' => 'The returned data.'."\n", - 'type' => 'object', - 'properties' => [ - 'PageSize' => [ - 'description' => 'The number of entries per page.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B45', - ], - 'PageNumber' => [ - 'description' => 'The page number.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'TotalCount' => [ - 'description' => 'The total number of entries returned.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '20', - ], - 'Ipv6TranslatorAcls' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'IPv6TranslatorAcl' => [ - 'description' => 'The list of network ACLs.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The returned data.'."\n", - 'type' => 'object', - 'properties' => [ - 'AclName' => [ - 'description' => 'The ACL name.'."\n", - 'type' => 'string', - 'example' => 'acl1', - ], - 'AclId' => [ - 'description' => 'The ACL ID.'."\n", - 'type' => 'string', - 'example' => 'ipv6transacl-bp1de2****', - ], - ], - ], - ], - ], - ], - ], - ], - ], + 'createdAt' => '2023-07-21T03:45:40.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'DeleteRouteEntry'], + ['description' => 'Error codes changed', 'api' => 'UpdateGatewayRouteTableEntryAttribute'], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InvalidName', - 'errorMessage' => 'The specified value of name is not supported.', - ], - ], - 403 => [ - [ - 'errorCode' => 'Forbbiden.SubUser', - 'errorMessage' => 'User not authorized to operate on the specified resource as your account is created by another user.', - ], - [ - 'errorCode' => 'Forbidden', - 'errorMessage' => 'User not authorized to operate on the specified resource.', - ], - ], + 'createdAt' => '2023-07-20T13:04:48.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'AllocateVpcIpv6Cidr'], + ['description' => 'Error codes changed', 'api' => 'CreateTrafficMirrorFilterRules'], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"PageSize\\": 10,\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B45\\",\\n \\"PageNumber\\": 1,\\n \\"TotalCount\\": 20,\\n \\"Ipv6TranslatorAcls\\": {\\n \\"IPv6TranslatorAcl\\": [\\n {\\n \\"AclName\\": \\"acl1\\",\\n \\"AclId\\": \\"ipv6transacl-bp1de2****\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 10\\n 54B48E3D-DF70-471B-AA93-08E683A1B45\\n 1\\n 20\\n \\n acl1\\n ipv6transacl-bp1de2****\\n \\n","errorExample":""}]', - 'title' => 'DescribeIPv6TranslatorAclLists', - 'summary' => 'Queries access control lists (ACLs).', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', + 'createdAt' => '2023-07-20T03:51:33.000Z', + 'description' => '', ], - 'DescribeIPv6TranslatorAclListAttributes' => [ - 'methods' => [ - 'post', - 'get', + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'AddSourcesToTrafficMirrorSession'], + ['description' => 'Error codes changed', 'api' => 'CreateIpv4Gateway'], + ['description' => 'Error codes changed', 'api' => 'MoveResourceGroup'], ], - 'schemes' => [ - 'http', - 'https', + 'createdAt' => '2023-07-18T07:25:07.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'ReplaceVpcDhcpOptionsSet'], ], - 'security' => [ - [ - 'AK' => [], - ], + 'createdAt' => '2023-07-12T15:28:44.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'AddCommonBandwidthPackageIp'], + ['description' => 'Error codes changed', 'api' => 'AddCommonBandwidthPackageIps'], + ['description' => 'Error codes changed, Request parameters changed', 'api' => 'CreatePublicIpAddressPool'], + ['description' => 'Response parameters changed', 'api' => 'DescribeCommonBandwidthPackages'], + ['description' => 'Response parameters changed, Response parameters changed', 'api' => 'DescribeEipAddresses'], + ['description' => 'Response parameters changed', 'api' => 'ListPublicIpAddressPools'], + ], + 'createdAt' => '2023-07-12T09:08:09.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed, Response parameters changed', 'api' => 'ListTagResources'], + ['description' => 'Request parameters changed', 'api' => 'TagResources'], + ['description' => 'Request parameters changed', 'api' => 'UnTagResources'], ], - 'operationType' => 'read', - 'systemTags' => [ - 'operationType' => 'get', + 'createdAt' => '2023-07-10T06:54:57.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'AssociateHaVip'], + ['description' => 'Error codes changed', 'api' => 'UnassociateVpcCidrBlock'], ], - 'parameters' => [ - [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The region of the ACL.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], - ], - [ - 'name' => 'AclId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ACL ID.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'ipv6transacl-bp1de2****', - ], - ], - [ - 'name' => 'PageNumber', - 'in' => 'query', - 'schema' => [ - 'description' => 'The number of the page to return. Default value: **1**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', - 'default' => '1', - ], - ], - [ - 'name' => 'PageSize', - 'in' => 'query', - 'schema' => [ - 'description' => 'The number of entries to return on each page. Maximum value: **50**. Default value: **10**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '10', - 'default' => '10', - ], - ], + 'createdAt' => '2023-07-10T01:47:33.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'AllocateEipAddress'], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'description' => 'The returned data.'."\n", - 'type' => 'object', - 'properties' => [ - 'AclId' => [ - 'description' => 'The ACL ID.'."\n", - 'type' => 'string', - 'example' => 'ipv6transacl-bp1de2****', - ], - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B45', - ], - 'PageNumber' => [ - 'description' => 'The page number of the returned page.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'PageSize' => [ - 'description' => 'The number of entries returned per page.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'TotalCount' => [ - 'description' => 'The total number of entries returned.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '20', - ], - 'AclName' => [ - 'description' => 'The name of the ACL.'."\n", - 'type' => 'string', - 'example' => 'acl1', - ], - 'AclEntries' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'AclEntry' => [ - 'description' => 'The ACLs.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The details of the ACL.'."\n", - 'type' => 'object', - 'properties' => [ - 'AclEntryComment' => [ - 'description' => 'The remarks of the ACL entry.'."\n", - 'type' => 'string', - 'example' => 'client IP', - ], - 'AclEntryId' => [ - 'description' => 'The ID of the ACL entry.'."\n", - 'type' => 'string', - 'example' => 'ipv6transaclentry-bp105jrs****', - ], - 'AclEntryIp' => [ - 'description' => 'The IP address specified in the ACL entry.'."\n", - 'type' => 'string', - 'example' => '12ab:0:0:XXXX::0102/128', - ], - ], - ], - ], - ], - ], - ], - ], - ], + 'createdAt' => '2023-07-08T09:47:36.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Request parameters changed', 'api' => 'ChangeResourceGroup'], + ['description' => 'Error codes changed, Request parameters changed', 'api' => 'CreateRouterInterface'], + ['description' => 'Error codes changed, Request parameters changed', 'api' => 'CreateVirtualBorderRouter'], + ['description' => 'Response parameters changed', 'api' => 'DescribeRouterInterfaceAttribute'], + ['description' => 'Request parameters changed, Response parameters changed', 'api' => 'DescribeRouterInterfaces'], + ['description' => 'Request parameters changed, Response parameters changed', 'api' => 'DescribeVirtualBorderRouters'], + ], + 'createdAt' => '2023-07-06T13:24:04.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Request parameters changed', 'api' => 'CreatePublicIpAddressPool'], + ['description' => 'Request parameters changed', 'api' => 'CreateTrafficMirrorSession'], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InvalidIPv6TranslatorAclId.NotFound', - 'errorMessage' => 'The specified ipv6 translator acl instance id does not exist.', - ], - ], - 403 => [ - [ - 'errorCode' => 'Forbbiden.SubUser', - 'errorMessage' => 'User not authorized to operate on the specified resource as your account is created by another user.', - ], - [ - 'errorCode' => 'Forbidden', - 'errorMessage' => 'User not authorized to operate on the specified resource.', - ], - ], + 'createdAt' => '2023-07-06T07:56:45.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'AllocateEipAddress'], + ['description' => 'Error codes changed', 'api' => 'AllocateEipAddressPro'], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"AclId\\": \\"ipv6transacl-bp1de2****\\",\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B45\\",\\n \\"PageNumber\\": 1,\\n \\"PageSize\\": 10,\\n \\"TotalCount\\": 20,\\n \\"AclName\\": \\"acl1\\",\\n \\"AclEntries\\": {\\n \\"AclEntry\\": [\\n {\\n \\"AclEntryComment\\": \\"client IP\\",\\n \\"AclEntryId\\": \\"ipv6transaclentry-bp105jrs****\\",\\n \\"AclEntryIp\\": \\"12ab:0:0:XXXX::0102/128\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n ipv6transacl-bp1de2****\\n 54B48E3D-DF70-471B-AA93-08E683A1B45\\n 1\\n 10\\n 20\\n acl1\\n \\n client IP\\n ipv6transaclentry-bp105jrs****\\n 12ab:0:0:XXXX::0102/128\\n \\n","errorExample":""}]', - 'title' => 'DescribeIPv6TranslatorAclListAttributes', - 'summary' => 'Queries the details of an access control list (ACL), including the specified IP addresses and associated IPv6 mapping entries.', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', + 'createdAt' => '2023-07-06T01:54:59.000Z', + 'description' => '', ], - 'DescribeIPv6Translators' => [ - 'methods' => [ - 'post', - 'get', + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'ActiveFlowLog'], + ['description' => 'Response parameters changed', 'api' => 'DescribeFlowLogs'], ], - 'schemes' => [ - 'http', - 'https', + 'createdAt' => '2023-07-06T01:32:37.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Request parameters changed', 'api' => 'AddSourcesToTrafficMirrorSession'], + ['description' => 'Error codes changed', 'api' => 'CreateIpv6EgressOnlyRule'], + ['description' => 'Response parameters changed, Response parameters changed', 'api' => 'DescribeVSwitchAttributes'], + ['description' => 'Response parameters changed, Response parameters changed', 'api' => 'DescribeVSwitches'], + ['description' => 'Error codes changed', 'api' => 'ModifyVpcAttribute'], + ['description' => 'Error codes changed', 'api' => 'UpdateDhcpOptionsSetAttribute'], + ['description' => 'Error codes changed', 'api' => 'UpdateTrafficMirrorSessionAttribute'], + ], + 'createdAt' => '2023-07-05T07:33:15.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Request parameters changed, Response parameters changed', 'api' => 'CreateNatIp'], ], - 'security' => [ - [ - 'AK' => [], - ], + 'createdAt' => '2023-07-03T12:01:15.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Request parameters changed', 'api' => 'DescribeRouteEntryList'], ], - 'operationType' => 'read', - 'deprecated' => true, - 'systemTags' => [ - 'operationType' => 'get', + 'createdAt' => '2023-07-03T09:17:18.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Response parameters changed', 'api' => 'CreateNatGateway'], ], - 'parameters' => [ - [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The region of the IPv6 Translation Service instance. You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cn-hangzhou', - ], - ], - [ - 'name' => 'Ipv6TranslatorId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the IPv6 Translation Service instance.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'ipv6trans-bp1858ys****', - ], - ], - [ - 'name' => 'Name', - 'in' => 'query', - 'schema' => [ - 'description' => 'The name of the IPv6 Translation Service instance.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'ipv6_1', - ], - ], - [ - 'name' => 'Spec', - 'in' => 'query', - 'schema' => [ - 'description' => 'The specification of the IPv6 Translation Service instance. Set the value to **small**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'small', - ], - ], - [ - 'name' => 'Status', - 'in' => 'query', - 'schema' => [ - 'description' => 'The status of the IPv6 Translation Service instance. Valid values:'."\n" - ."\n" - .'* **init**'."\n" - .'* **provisioning**'."\n" - .'* **active**'."\n" - .'* **updating**'."\n" - .'* **upgrading**'."\n" - .'* **deleting**'."\n" - .'* **deleted**'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'active', - ], - ], - [ - 'name' => 'AllocateIpv6Addr', - 'in' => 'query', - 'schema' => [ - 'description' => 'The IPv6 address allocated to the IPv6 Translation Service instance.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '2400:3200:1600::XXXX', - ], - ], - [ - 'name' => 'AllocateIpv4Addr', - 'in' => 'query', - 'schema' => [ - 'description' => 'The IPv4 address allocated to the IPv6 Translation Service instance.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '47.99.XX.XX', - ], - ], - [ - 'name' => 'PayType', - 'in' => 'query', - 'schema' => [ - 'description' => 'The billing method of the IPv6 Translation Service instance. Valid values:'."\n" - ."\n" - .'* **Prepay**: subscription'."\n" - .'* **Postpay**: pay-as-you-go'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'Prepay', - ], - ], - [ - 'name' => 'PageNumber', - 'in' => 'query', - 'schema' => [ - 'description' => 'The number of the page to return. Default value: **1**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', - 'default' => '1', - ], - ], - [ - 'name' => 'PageSize', - 'in' => 'query', - 'schema' => [ - 'description' => 'The number of entries to return on each page. Maximum value: **50**. Default value: **10**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '10', - 'default' => '10', - ], - ], - [ - 'name' => 'BusinessStatus', - 'in' => 'query', - 'schema' => [ - 'description' => 'The business status of the IPv6 Translation Service instance. Valid values:'."\n" - ."\n" - .'* **Normal**'."\n" - .'* **FinancialLocked**'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'Normal', - ], - ], + 'createdAt' => '2023-06-30T08:10:45.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Request parameters changed', 'api' => 'CreateVpnConnection'], + ['description' => 'Request parameters changed', 'api' => 'CreateVpnGateway'], + ['description' => 'Response parameters changed', 'api' => 'DescribeVpnConnection'], + ['description' => 'Request parameters changed', 'api' => 'DescribeVpnConnectionLogs'], + ['description' => 'Response parameters changed', 'api' => 'DescribeVpnConnections'], + ['description' => 'Response parameters changed', 'api' => 'DescribeVpnGateway'], + ['description' => 'Response parameters changed', 'api' => 'DescribeVpnGateways'], + ], + 'createdAt' => '2023-06-30T07:01:15.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'AssociateRouteTableWithGateway'], + ['description' => 'Error codes changed', 'api' => 'ModifyVSwitchAttribute'], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'description' => 'The returned data.'."\n", - 'type' => 'object', - 'properties' => [ - 'PageSize' => [ - 'description' => 'The number of entries returned per page.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B45', - ], - 'PageNumber' => [ - 'description' => 'The page number of the returned page.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'TotalCount' => [ - 'description' => 'The number of returned entries.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'Ipv6Translators' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'Ipv6Translator' => [ - 'description' => 'The list of IPv6 Translation Service instances.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The details of the IPv6 Translation Service instance.'."\n", - 'type' => 'object', - 'properties' => [ - 'Status' => [ - 'description' => 'The status of the IPv6 Translation Service instance.'."\n", - 'type' => 'string', - 'example' => 'active', - ], - 'Spec' => [ - 'description' => 'The specification of the IPv6 Translation Service instance.'."\n", - 'type' => 'string', - 'example' => 'small', - ], - 'CreateTime' => [ - 'description' => 'The timestamp when the IPv6 Translation Service instance was created.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1537151540000', - ], - 'PayType' => [ - 'description' => 'The billing method of the IPv6 Translation Service instance.'."\n" - ."\n" - .'* **Prepay**: subscription'."\n" - .'* **Postpay**: pay-as-you-go'."\n", - 'type' => 'string', - 'example' => 'Prepay', - ], - 'Ipv6TranslatorId' => [ - 'description' => 'The ID of the IPv6 Translation Service instance.'."\n", - 'type' => 'string', - 'example' => 'ipv6trans-bp1858ys*****', - ], - 'AllocateIpv4Addr' => [ - 'description' => 'The IPv4 address allocated to the IPv6 Translation Service instance.'."\n", - 'type' => 'string', - 'example' => '47.99.XX.XX', - ], - 'AvailableBandwidth' => [ - 'description' => 'The bandwidth of the IPv6 Translation Service instance.'."\n", - 'type' => 'string', - 'example' => '1', - ], - 'RegionId' => [ - 'description' => 'The region of the IPv6 Translation Service instance.'."\n", - 'type' => 'string', - 'example' => 'cn-hangzhou', - ], - 'EndTime' => [ - 'description' => 'The timestamp when IPv6 Translation Service instance expires.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1539792000000', - ], - 'Description' => [ - 'description' => 'The description of the IPv6 Translation Service instance.'."\n", - 'type' => 'string', - 'example' => 'descriptionforinstance', - ], - 'Bandwidth' => [ - 'description' => 'The bandwidth of the IPv6 Translation Service instance. Unit: Mbit/s.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'BusinessStatus' => [ - 'description' => 'The business status of the IPv6 Translation Service instance. Valid values:'."\n" - ."\n" - .'* **Normal**'."\n" - .'* **FinancialLocked**'."\n", - 'type' => 'string', - 'example' => 'Normal', - ], - 'AllocateIpv6Addr' => [ - 'description' => 'The IPv6 address allocated to the IPv6 Translation Service instance.'."\n", - 'type' => 'string', - 'example' => '2400:3200:1600::XXXX', - ], - 'Name' => [ - 'description' => 'The name of the IPv6 Translation Service instance.'."\n", - 'type' => 'string', - 'example' => 'test', - ], - 'Ipv6TranslatorEntryIds' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'Ipv6TranslatorEntryId' => [ - 'description' => 'The IDs of IPv6 mapping entries of the IPv6 Translation Service instance.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The ID of the IPv6 mapping entry.'."\n", - 'type' => 'string', - 'example' => '["ipv6transentry-bp1kp5ixtm3001vmn****", "ipv6transentry-bp16dg87v006zwrd6****"]', - ], - ], - ], - ], - ], - ], - ], - ], - ], - ], - ], - ], + 'createdAt' => '2023-06-30T05:52:43.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'AddCommonBandwidthPackageIps'], + ['description' => 'Error codes changed', 'api' => 'AllocateEipAddress'], + ['description' => 'Error codes changed', 'api' => 'AssociateEipAddress'], + ['description' => 'Error codes changed', 'api' => 'AssociateEipAddressBatch'], + ['description' => 'Error codes changed', 'api' => 'CreateCommonBandwidthPackage'], + ['description' => 'Error codes changed', 'api' => 'ReleaseEipSegmentAddress'], + ['description' => 'Error codes changed', 'api' => 'RemoveCommonBandwidthPackageIp'], + ['description' => 'Error codes changed', 'api' => 'UnassociateEipAddress'], + ], + 'createdAt' => '2023-06-26T06:20:03.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'CreateRouteEntry'], + ['description' => 'Error codes changed', 'api' => 'DeleteVSwitch'], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'PayType.NotSupport', - 'errorMessage' => 'The specified pay type is not support.', - ], - [ - 'errorCode' => 'BusinessStatus.NotSupport', - 'errorMessage' => 'The specified business status is not supported.', - ], - [ - 'errorCode' => 'InvalidIpAddress.WrongFormat', - 'errorMessage' => 'The specified ip address is invalid.', - ], - [ - 'errorCode' => 'Status.NotSupport', - 'errorMessage' => 'The specified value of status is not supported.', - ], - [ - 'errorCode' => 'InvalidName', - 'errorMessage' => 'The specified value of name is not supported.', - ], - ], - 403 => [ - [ - 'errorCode' => 'Forbbiden.SubUser', - 'errorMessage' => 'User not authorized to operate on the specified resource as your account is created by another user.', - ], - [ - 'errorCode' => 'Forbidden', - 'errorMessage' => 'User not authorized to operate on the specified resource.', - ], - ], + 'createdAt' => '2023-06-25T12:18:26.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'AddSourcesToTrafficMirrorSession'], + ['description' => 'Error codes changed, Request parameters changed', 'api' => 'CreateTrafficMirrorSession'], + ['description' => 'Response parameters changed', 'api' => 'ListTrafficMirrorFilters'], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"PageSize\\": 10,\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B45\\",\\n \\"PageNumber\\": 1,\\n \\"TotalCount\\": 1,\\n \\"Ipv6Translators\\": {\\n \\"Ipv6Translator\\": [\\n {\\n \\"Status\\": \\"active\\",\\n \\"Spec\\": \\"small\\",\\n \\"CreateTime\\": 1537151540000,\\n \\"PayType\\": \\"Prepay\\",\\n \\"Ipv6TranslatorId\\": \\"ipv6trans-bp1858ys*****\\",\\n \\"AllocateIpv4Addr\\": \\"47.99.XX.XX\\",\\n \\"AvailableBandwidth\\": \\"1\\",\\n \\"RegionId\\": \\"cn-hangzhou\\",\\n \\"EndTime\\": 1539792000000,\\n \\"Description\\": \\"descriptionforinstance\\",\\n \\"Bandwidth\\": 1,\\n \\"BusinessStatus\\": \\"Normal\\",\\n \\"AllocateIpv6Addr\\": \\"2400:3200:1600::XXXX\\",\\n \\"Name\\": \\"test\\",\\n \\"Ipv6TranslatorEntryIds\\": {\\n \\"Ipv6TranslatorEntryId\\": [\\n \\"[\\\\\\"ipv6transentry-bp1kp5ixtm3001vmn****\\\\\\", \\\\\\"ipv6transentry-bp16dg87v006zwrd6****\\\\\\"]\\"\\n ]\\n }\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 10\\n 54B48E3D-DF70-471B-AA93-08E683A1B45\\n 1\\n 1\\n \\n active\\n small\\n 1537151540000\\n Prepay\\n ipv6trans-bp1858ys*****\\n 47.99.XX.XX\\n 1\\n cn-hangzhou\\n 1539792000000\\n descriptionforinstance\\n 1\\n Normal\\n 2400:3200:1600::XXXX\\n test\\n [\\"ipv6transentry-bp1kp5ixtm3001vmn****\\", \\"ipv6transentry-bp16dg87v006zwrd6****\\"]\\n \\n","errorExample":""}]', - 'title' => 'DescribeIPv6Translators', - 'summary' => 'Queries IPv6 Translation Service instances.', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', + 'createdAt' => '2023-06-25T06:28:02.000Z', + 'description' => '', ], - 'DescribeIPv6TranslatorEntries' => [ - 'methods' => [ - 'post', - 'get', + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'AssociateRouteTable'], + ['description' => 'Error codes changed', 'api' => 'CreateRouteEntry'], ], - 'schemes' => [ - 'http', - 'https', + 'createdAt' => '2023-06-21T07:30:12.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed, Request parameters changed', 'api' => 'CreateDhcpOptionsSet'], + ['description' => 'Request parameters changed', 'api' => 'CreateFlowLog'], + ['description' => 'Error codes changed, Request parameters changed, Response parameters changed', 'api' => 'CreateHaVip'], + ['description' => 'Request parameters changed, Response parameters changed', 'api' => 'CreateIpv4Gateway'], + ['description' => 'Error codes changed, Request parameters changed, Response parameters changed', 'api' => 'CreateIpv6Gateway'], + ['description' => 'Request parameters changed', 'api' => 'CreateNetworkAcl'], + ['description' => 'Request parameters changed', 'api' => 'CreateRouteTable'], + ['description' => 'Error codes changed, Request parameters changed, Response parameters changed', 'api' => 'CreateTrafficMirrorFilter'], + ['description' => 'Request parameters changed', 'api' => 'CreateVpc'], + ['description' => 'Request parameters changed, Response parameters changed', 'api' => 'CreateVpcGatewayEndpoint'], + ], + 'createdAt' => '2023-06-21T02:40:02.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'GetVpcGatewayEndpointAttribute'], ], - 'security' => [ - [ - 'AK' => [], - ], + 'createdAt' => '2023-06-20T09:39:39.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'CreateRouteEntry'], + ['description' => 'Error codes changed', 'api' => 'CreateRouteTable'], + ['description' => 'Error codes changed', 'api' => 'DeleteVpc'], ], - 'operationType' => 'readAndWrite', - 'deprecated' => true, - 'systemTags' => [ - 'operationType' => 'get', + 'createdAt' => '2023-06-16T01:50:43.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'CreateForwardEntry'], ], - 'parameters' => [ - [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The region of the IPv6 Translation Service instance. You can call the **DescribeRegions** operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], - ], - [ - 'name' => 'Ipv6TranslatorId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the IPv6 Translation Service instance.'."\n", - 'type' => 'string', - 'required' => false, - 'docRequired' => true, - 'example' => 'ipv6trans-bp1858ysxx****', - ], - ], - [ - 'name' => 'Ipv6TranslatorEntryId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the IPv6 mapping entry.'."\n" - ."\n" - .'> If **Ipv6TranslatorId** and **Ipv6TranslatorEntryId** are empty, information about all IPv6 mapping entries is returned. If only **Ipv6TranslatorEntryId** is empty, information about the IPv6 mapping entries of the current IPv6 Translation Service instance is returned.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'ipv6transentry-bp1g8bhrde****', - ], - ], - [ - 'name' => 'EntryName', - 'in' => 'query', - 'schema' => [ - 'description' => 'The name of the IPv6 mapping entry.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'entryname', - ], - ], - [ - 'name' => 'AllocateIpv6Addr', - 'in' => 'query', - 'schema' => [ - 'description' => 'The IPv6 address allocated to the IPv6 Translation Service instance.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '2400:3200:1600::XX', - ], - ], - [ - 'name' => 'AllocateIpv6Port', - 'in' => 'query', - 'schema' => [ - 'description' => 'The port used by the IPv6 address allocated to the IPv6 Translation Service instance.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '80', - ], - ], - [ - 'name' => 'BackendIpv4Addr', - 'in' => 'query', - 'schema' => [ - 'description' => 'The public IPv4 address that needs to provide IPv6 services.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '47.99.XX.XX', - ], - ], - [ - 'name' => 'BackendIpv4Port', - 'in' => 'query', - 'schema' => [ - 'description' => 'The port used by the public IPv4 address that needs to provide IPv6 services.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '80', - ], - ], - [ - 'name' => 'TransProtocol', - 'in' => 'query', - 'schema' => [ - 'description' => 'The protocol used by the data to be forwarded.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'tcp', - ], - ], - [ - 'name' => 'AclStatus', - 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to enable access control lists (ACLs). Valid values:'."\n" - ."\n" - .'* **on**'."\n" - .'* **off**'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'off', - ], - ], - [ - 'name' => 'AclType', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ACL type. Valid values:'."\n" - ."\n" - .'* **white**: a whitelist. IPv6 addresses in the ACL are allowed to access backend services.'."\n" - .'* **black**: a blacklist. IPv6 addresses in the ACL are not allowed to access backend services.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'white', - ], - ], - [ - 'name' => 'AclId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the network ACL.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'ipv6transacl-bp1de2****', - ], - ], - [ - 'name' => 'PageNumber', - 'in' => 'query', - 'schema' => [ - 'description' => 'The number of the page to return. Default value: 1.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', - 'default' => '1', - ], - ], - [ - 'name' => 'PageSize', - 'in' => 'query', - 'schema' => [ - 'description' => 'The number of entries to return on each page. Maximum value: **50**. Default value: **10**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '10', - 'default' => '10', - ], - ], - [ - 'name' => 'ClientToken', - 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-426655440000', - ], - ], + 'createdAt' => '2023-06-14T03:06:33.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Request parameters changed, Error codes changed', 'api' => 'GetTrafficMirrorServiceStatus'], + ['description' => 'Error codes changed, Request parameters changed, Response parameters changed', 'api' => 'OpenTrafficMirrorService'], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'description' => 'The returned data.'."\n", - 'type' => 'object', - 'properties' => [ - 'PageSize' => [ - 'description' => 'The number of entries returned per page.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B45', - ], - 'PageNumber' => [ - 'description' => 'The page number of the returned page.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'TotalCount' => [ - 'description' => 'The number of entries returned.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'Ipv6TranslatorEntries' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'Ipv6TranslatorEntry' => [ - 'description' => 'The IPv6 mapping entries that are queried.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The details of the IPv6 mapping entry.'."\n", - 'type' => 'object', - 'properties' => [ - 'AclType' => [ - 'description' => 'The ACL type.'."\n" - ."\n" - .'* **white**: a whitelist. IPv6 addresses in the ACL are allowed to access backend services.'."\n" - .'* **black**: a blacklist. IPv6 addresses in the ACL are not allowed to access backend services.'."\n", - 'type' => 'string', - 'example' => 'white', - ], - 'EntryStatus' => [ - 'description' => 'The status of the IPv6 mapping entry.'."\n", - 'type' => 'string', - 'example' => 'active', - ], - 'TransProtocol' => [ - 'description' => 'The protocol.'."\n", - 'type' => 'string', - 'example' => 'tcp', - ], - 'Ipv6TranslatorId' => [ - 'description' => 'The ID of the IPv6 Translation Service instance to which the IPv6 mapping entry belongs.'."\n", - 'type' => 'string', - 'example' => 'ipv6trans-bp1858ys****', - ], - 'EntryDescription' => [ - 'description' => 'The description of the IPv6 mapping entry.'."\n", - 'type' => 'string', - 'example' => 'description', - ], - 'Ipv6TranslatorEntryId' => [ - 'description' => 'The ID of the IPv6 mapping entry.'."\n", - 'type' => 'string', - 'example' => 'ipv6transentry-bp1g8bhrde****', - ], - 'AllocateIpv6Port' => [ - 'description' => 'The port used by the IPv6 address allocated to the IPv6 Translation Service instance.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '80', - ], - 'BackendIpv4Addr' => [ - 'description' => 'The public IP address of the backend IPv4 server.'."\n", - 'type' => 'string', - 'example' => '47.99.XX.XX', - ], - 'BackendIpv4Port' => [ - 'description' => 'The public IPv4 port used by the IPv4 server that needs to provide IPv6 access.'."\n", - 'type' => 'string', - 'example' => '80', - ], - 'RegionId' => [ - 'description' => 'The region of the IPv6 Translation Service instance.'."\n", - 'type' => 'string', - 'example' => 'cn-hangzhou', - ], - 'EntryBandwidth' => [ - 'description' => 'The bandwidth specified in the IPv6 mapping entry.'."\n", - 'type' => 'string', - 'example' => '1', - ], - 'AclId' => [ - 'description' => 'The ID of the associated ACL.'."\n", - 'type' => 'string', - 'example' => 'ipv6transacl-bp1de2****', - ], - 'EntryName' => [ - 'description' => 'The name of the IPv6 mapping entry.'."\n", - 'type' => 'string', - 'example' => 'name', - ], - 'AclStatus' => [ - 'description' => 'Indicates whether ACLs are enabled.'."\n", - 'type' => 'string', - 'example' => 'on', - ], - 'AllocateIpv6Addr' => [ - 'description' => 'The IPv6 address allocated to the IPv6 Translation Service instance.'."\n", - 'type' => 'string', - 'example' => '2400:3200:1600::XX', - ], - ], - ], - ], - ], - ], - ], - ], - ], - ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InvalidName', - 'errorMessage' => 'The specified value of name not supported.', - ], - [ - 'errorCode' => 'IPv6TranslatorEntry.InvalidPort', - 'errorMessage' => 'The specified port is invalid.', - ], - [ - 'errorCode' => 'IPv6TranslatorEntry.InvalidProtocol', - 'errorMessage' => 'The specified transProtocol is invalid.', - ], - [ - 'errorCode' => 'InvalidIpAddress.WrongFormat', - 'errorMessage' => 'The specified ip address is invalid.', - ], - [ - 'errorCode' => 'IPv6TranslatorEntry.InvalidAclStatus', - 'errorMessage' => 'The specified acl status is invalid.', - ], - [ - 'errorCode' => 'IPv6TranslatorEntry.InvalidAclType', - 'errorMessage' => 'The specified acl type is invalid.', - ], - ], - 403 => [ - [ - 'errorCode' => 'Forbbiden.SubUser', - 'errorMessage' => 'User not authorized to operate on the specified resource as your account is created by another user.', - ], - [ - 'errorCode' => 'Forbidden', - 'errorMessage' => 'User not authorized to operate on the specified resource.', - ], - ], + 'createdAt' => '2023-06-14T02:07:51.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'CreateVpc'], + ['description' => 'Error codes changed', 'api' => 'DescribeHighDefinitionMonitorLogAttribute'], + ['description' => 'Error codes changed', 'api' => 'DescribeVpcs'], + ['description' => 'Error codes changed', 'api' => 'ListVpcGatewayEndpoints'], + ], + 'createdAt' => '2023-06-13T02:40:51.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Request parameters changed', 'api' => 'DescribeCommonBandwidthPackages'], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"PageSize\\": 10,\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B45\\",\\n \\"PageNumber\\": 1,\\n \\"TotalCount\\": 1,\\n \\"Ipv6TranslatorEntries\\": {\\n \\"Ipv6TranslatorEntry\\": [\\n {\\n \\"AclType\\": \\"white\\",\\n \\"EntryStatus\\": \\"active\\",\\n \\"TransProtocol\\": \\"tcp\\",\\n \\"Ipv6TranslatorId\\": \\"ipv6trans-bp1858ys****\\",\\n \\"EntryDescription\\": \\"description\\",\\n \\"Ipv6TranslatorEntryId\\": \\"ipv6transentry-bp1g8bhrde****\\",\\n \\"AllocateIpv6Port\\": 80,\\n \\"BackendIpv4Addr\\": \\"47.99.XX.XX\\",\\n \\"BackendIpv4Port\\": \\"80\\",\\n \\"RegionId\\": \\"cn-hangzhou\\",\\n \\"EntryBandwidth\\": \\"1\\",\\n \\"AclId\\": \\"ipv6transacl-bp1de2****\\",\\n \\"EntryName\\": \\"name\\",\\n \\"AclStatus\\": \\"on\\",\\n \\"AllocateIpv6Addr\\": \\"2400:3200:1600::XX\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 10\\n 54B48E3D-DF70-471B-AA93-08E683A1B45\\n 1\\n 1\\n \\n white\\n active\\n tcp\\n ipv6trans-bp1858ys****\\n description\\n ipv6transentry-bp1g8bhrde****\\n 80\\n 47.99.XX.XX\\n 80\\n cn-hangzhou\\n 1\\n ipv6transacl-bp1de2****\\n name\\n on\\n 2400:3200:1600::XX\\n \\n","errorExample":""}]', - 'title' => 'DescribeIPv6TranslatorEntries', - 'summary' => 'Queries IPv6 mapping entries.', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', + 'createdAt' => '2023-06-12T09:52:03.000Z', + 'description' => '', ], - 'RemoveIPv6TranslatorAclListEntry' => [ - 'methods' => [ - 'post', - 'get', + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'CheckVpnBgpEnabled'], ], - 'schemes' => [ - 'http', - 'https', + 'createdAt' => '2023-06-12T09:40:08.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'AssociateRouteTable'], + ['description' => 'Error codes changed', 'api' => 'CreateRouteEntry'], + ['description' => 'Error codes changed', 'api' => 'DeleteVSwitch'], + ['description' => 'Error codes changed', 'api' => 'SetHighDefinitionMonitorLogStatus'], + ], + 'createdAt' => '2023-06-09T08:58:27.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'CreateNatIp'], ], - 'security' => [ - [ - 'AK' => [], - ], + 'createdAt' => '2023-06-09T06:44:23.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'CreateRouteEntry'], ], - 'operationType' => 'readAndWrite', - 'systemTags' => [ - 'operationType' => 'delete', + 'createdAt' => '2023-06-07T03:56:25.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'CreateRouteEntry'], ], - 'parameters' => [ - [ - 'name' => 'ClientToken', - 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-426655440000', - ], - ], - [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The region of the ACL.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], - ], - [ - 'name' => 'AclId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the ACL to which the ACL entry belongs.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'ipv6transacl-bp1de2****', - ], - ], - [ - 'name' => 'AclEntryId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the ACL entry to be deleted.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'ipv6transaclentry-bp105jrs****', - ], - ], + 'createdAt' => '2023-06-06T11:09:18.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Request parameters changed', 'api' => 'CreateVpnConnection'], + ['description' => 'Response parameters changed', 'api' => 'DescribeVpnConnection'], + ['description' => 'Response parameters changed', 'api' => 'DescribeVpnConnections'], + ['description' => 'Response parameters changed', 'api' => 'DescribeVpnPbrRouteEntries'], + ['description' => 'Response parameters changed', 'api' => 'DescribeVpnRouteEntries'], + ['description' => 'Response parameters changed', 'api' => 'DownloadVpnConnectionConfig'], + ], + 'createdAt' => '2023-06-02T09:45:46.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'CreateSslVpnServer'], + ['description' => 'Error codes changed', 'api' => 'ModifySslVpnServer'], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'description' => 'The returned data.'."\n", - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B45', - ], - ], - ], - ], + 'createdAt' => '2023-05-30T06:30:58.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Request parameters changed', 'api' => 'AllocateEipAddress'], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InvalidIPv6TranslatorAclId.NotFound', - 'errorMessage' => 'The specified ipv6 translator acl instance id does not exist.', - ], - [ - 'errorCode' => 'InvalidIPv6TranslatorAclEntryId.NotFound', - 'errorMessage' => 'The specified ipv6 translator acl entry id does not exist.', - ], - [ - 'errorCode' => 'IPv6TranslatorAcl.DeleteLastEntry', - 'errorMessage' => 'The last acl entry can not be deleted when ipv6 translator acl is be used.', - ], - ], - 403 => [ - [ - 'errorCode' => 'Forbbiden.SubUser', - 'errorMessage' => 'User not authorized to operate on the specified resource as your account is created by another user.', - ], - [ - 'errorCode' => 'Forbidden', - 'errorMessage' => 'User not authorized to operate on the specified resource.', - ], - ], + 'createdAt' => '2023-05-30T03:08:14.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'CreateVpcGatewayEndpoint'], + ['description' => 'Error codes changed', 'api' => 'UpdateVpcGatewayEndpointAttribute'], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B45\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 54B48E3D-DF70-471B-AA93-08E683A1B45\\n","errorExample":""}]', - 'title' => 'RemoveIPv6TranslatorAclListEntry', - 'summary' => 'Deletes an IP entry from an ACL.', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', + 'createdAt' => '2023-05-29T06:12:30.000Z', + 'description' => '', ], - 'DescribeRegions' => [ - 'summary' => 'Queries the most recent region list.', - 'methods' => [ - 'post', - 'get', + [ + 'apis' => [ + ['description' => 'Request parameters changed, Response parameters changed', 'api' => 'DescribeIpv6Addresses'], ], - 'schemes' => [ - 'http', - 'https', + 'createdAt' => '2023-05-29T02:33:47.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Request parameters changed', 'api' => 'AllocateEipSegmentAddress'], ], - 'security' => [ - [ - 'AK' => [], - ], + 'createdAt' => '2023-05-22T06:15:05.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Request parameters changed', 'api' => 'DeletionProtection'], ], - 'operationType' => 'read', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'get', - 'riskType' => 'none', - 'chargeType' => 'free', - 'tenantRelevance' => 'publicInformation', + 'createdAt' => '2023-05-22T06:03:34.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Response parameters changed', 'api' => 'CreateRouteTable'], + ['description' => 'Response parameters changed', 'api' => 'DescribeVSwitchAttributes'], + ['description' => 'Response parameters changed', 'api' => 'DescribeVSwitches'], ], - 'parameters' => [ - [ - 'name' => 'ProductType', - 'in' => 'query', - 'schema' => [ - 'description' => 'The service type. Default value: **VPC**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'VPC', - ], - ], - [ - 'name' => 'AcceptLanguage', - 'in' => 'query', - 'schema' => [ - 'description' => 'The language of the response. Valid values:'."\n" - ."\n" - .'* **zh-CN** (default): Chinese'."\n" - .'* **en-US**: English'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'zh-CN', - ], - ], + 'createdAt' => '2023-05-19T08:14:42.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'CreateDhcpOptionsSet'], + ['description' => 'Error codes changed', 'api' => 'CreateFlowLog'], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '611CB80C-B6A9-43DB-9E38-0B0AC3D9B58F', - ], - 'Regions' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'Region' => [ - 'description' => 'The list of regions.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'RegionEndpoint' => [ - 'description' => 'The endpoint of the region service.'."\n", - 'type' => 'string', - 'example' => 'vpc.aliyuncs.com', - ], - 'LocalName' => [ - 'description' => 'The name of the region.'."\n", - 'type' => 'string', - 'example' => 'China (Qingdao)', - ], - 'RegionId' => [ - 'description' => 'The region ID.'."\n", - 'type' => 'string', - 'example' => 'cn-qingdao', - ], - ], - ], - ], - ], - ], - ], - ], - ], + 'createdAt' => '2023-05-18T08:53:53.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Request parameters changed', 'api' => 'DescribeAccessPoints'], ], - 'errorCodes' => [ - 403 => [ - [ - 'errorCode' => 'Forbbiden', - 'errorMessage' => 'User not authorized to operate on the specified resource.', - ], - ], + 'createdAt' => '2023-05-18T06:25:04.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Request parameters changed', 'api' => 'CreateRouterInterface'], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"611CB80C-B6A9-43DB-9E38-0B0AC3D9B58F\\",\\n \\"Regions\\": {\\n \\"Region\\": [\\n {\\n \\"RegionEndpoint\\": \\"vpc.aliyuncs.com\\",\\n \\"LocalName\\": \\"华北 1\\",\\n \\"RegionId\\": \\"cn-qingdao\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 611CB80C-B6A9-43DB-9E38-0B0AC3D9B58F\\n \\n vpc.aliyuncs.com\\n 华北 1\\n cn-qingdao\\n \\n","errorExample":""}]', - 'title' => 'DescribeRegions', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', + 'createdAt' => '2023-05-18T06:22:03.000Z', + 'description' => '', ], - 'DescribeZones' => [ - 'summary' => 'Queries zones in a region.', - 'methods' => [ - 'post', - 'get', + [ + 'apis' => [ + ['description' => 'Response parameters changed', 'api' => 'DescribeCommonBandwidthPackages'], + ['description' => 'Response parameters changed', 'api' => 'DescribeVpcAttribute'], + ['description' => 'Error codes changed', 'api' => 'MoveResourceGroup'], ], - 'schemes' => [ - 'http', - 'https', + 'createdAt' => '2023-05-17T08:17:16.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'UnTagResources'], ], - 'security' => [ - [ - 'AK' => [], - ], + 'createdAt' => '2023-05-16T09:35:22.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'AllocateEipAddressPro'], + ['description' => 'Error codes changed', 'api' => 'AssociateEipAddressBatch'], + ['description' => 'Error codes changed', 'api' => 'DescribeEipGatewayInfo'], + ['description' => 'Error codes changed', 'api' => 'DescribePublicIpAddress'], + ['description' => 'Response parameters changed', 'api' => 'ListPublicIpAddressPoolCidrBlocks'], + ['description' => 'Response parameters changed', 'api' => 'ListPublicIpAddressPools'], + ['description' => 'Error codes changed', 'api' => 'ReleaseEipSegmentAddress'], + ], + 'createdAt' => '2023-05-15T06:28:41.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Response parameters changed', 'api' => 'DescribeNetworkAcls'], ], - 'operationType' => 'read', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'get', - 'riskType' => 'none', - 'chargeType' => 'free', + 'createdAt' => '2023-05-09T07:02:17.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'DeleteRouteEntry'], + ['description' => 'Error codes changed', 'api' => 'ModifyRouteEntry'], ], - 'parameters' => [ - [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the zone. You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], - ], - [ - 'name' => 'ZoneType', - 'in' => 'query', - 'schema' => [ - 'description' => 'The zone type. Default value: **AvailabilityZone**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'AvailabilityZone', - ], - ], - [ - 'name' => 'AcceptLanguage', - 'in' => 'query', - 'schema' => [ - 'description' => 'The language used in the **LocalName** parameter. Valid values:'."\n" - ."\n" - .'* **zh-cn**: Chinese'."\n" - .'* **en-us**: English'."\n" - .'* **ja**: Japanese'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'zh-cn', - ], - ], + 'createdAt' => '2023-05-08T08:37:23.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'CreateRouteEntry'], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '6FEA0CF3-D3B9-43E5-A304-D217037876A8', - ], - 'Zones' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'Zone' => [ - 'description' => 'The zone list.'."\n", - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'ZoneId' => [ - 'description' => 'The zone ID.'."\n", - 'type' => 'string', - 'example' => 'cn-hangzhou-b', - ], - 'LocalName' => [ - 'description' => 'The zone name.'."\n", - 'type' => 'string', - 'example' => 'Hangzhou Zone B', - ], - 'ZoneType' => [ - 'description' => 'The zone type. Default value: **AvailabilityZone**.'."\n", - 'type' => 'string', - 'example' => 'AvailabilityZone', - ], - ], - ], - ], - ], - ], - ], - 'description' => '', - ], - ], + 'createdAt' => '2023-05-05T08:45:54.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'UpdateGatewayRouteTableEntryAttribute'], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InvalidRegionId.NotFound', - 'errorMessage' => 'The RegionId provided does not exist in our records.', - ], - ], + 'createdAt' => '2023-05-05T08:44:51.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'CreateRouteEntry'], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"6FEA0CF3-D3B9-43E5-A304-D217037876A8\\",\\n \\"Zones\\": {\\n \\"Zone\\": [\\n {\\n \\"ZoneId\\": \\"cn-hangzhou-b\\",\\n \\"LocalName\\": \\"华东 1 可用区 B\\",\\n \\"ZoneType\\": \\"AvailabilityZone\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 6FEA0CF3-D3B9-43E5-A304-D217037876A8\\n \\n cn-hangzhou-b\\n 华东 1 可用区 B\\n AvailabilityZone\\n \\n","errorExample":""}]', - 'title' => 'DescribeZones', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', + 'createdAt' => '2023-05-04T02:15:46.000Z', + 'description' => '', ], - 'TagResources' => [ - 'summary' => 'Creates and adds tags to resources.', - 'methods' => [ - 'post', - 'get', + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'ModifyVRouterAttribute'], ], - 'schemes' => [ - 'http', - 'https', + 'createdAt' => '2023-04-26T03:45:46.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'CreateVpc'], ], - 'security' => [ - [ - 'AK' => [], - ], + 'createdAt' => '2023-04-26T02:51:10.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Response parameters changed', 'api' => 'DescribePhysicalConnections'], ], - 'operationType' => 'readAndWrite', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'update', - 'riskType' => 'none', - 'chargeType' => 'free', + 'createdAt' => '2023-04-25T07:47:22.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Request parameters changed, Response parameters changed', 'api' => 'CreateVpnConnection'], + ['description' => 'Response parameters changed', 'api' => 'CreateVpnGateway'], + ['description' => 'Response parameters changed, Response parameters changed', 'api' => 'DescribeVpnConnection'], + ['description' => 'Response parameters changed', 'api' => 'DescribeVpnConnections'], + ['description' => 'Response parameters changed', 'api' => 'DescribeVpnGateways'], + ], + 'createdAt' => '2023-04-21T09:55:53.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Request parameters changed', 'api' => 'AllocateEipAddress'], ], - 'parameters' => [ - [ - 'name' => 'ResourceType', - 'in' => 'query', - 'schema' => [ - 'description' => 'The resource type. Valid values:'."\n" - ."\n" - .'* **VPC**: a VPC'."\n" - .'* **VSWITCH**: a vSwitch'."\n" - .'* **ROUTETABLE**: a route table'."\n" - .'* **EIP**: an EIP'."\n" - .'* **VpnGateway**: a VPN gateway'."\n" - .'* **NATGATEWAY**: a NAT gateway'."\n" - .'* **COMMONBANDWIDTHPACKAGE**: an EIP bandwidth plan'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'VPC', - ], - ], - [ - 'name' => 'ResourceId', - 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => 'The resource ID. You can specify at most 20 IDs.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The resource ID. You can specify up to 20 resource IDs.'."\n" - ."\n" - .'> When you call this operation, **ResourceId.N** is required.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'vpc-bp16qjewdsunr41m1****', - ], - 'required' => true, - 'docRequired' => true, - 'example' => 'vpc-bp16qjewdsunr41m1****', - 'maxItems' => 51, - ], - ], - [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the resource.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], - ], - [ - 'name' => 'Tag', - 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => 'The tag information.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => 'The key of the tag that is added to the resource. You can specify at most 20 tag keys.'."\n" - ."\n" - .'The key cannot exceed 128 characters in length. The key cannot start with `aliyun` or `acs:` and cannot contain `http://` or `https://`.'."\n" - ."\n" - .'> When you call this operation, the **Tag.N.Key** parameter is required and cannot be an empty string.', - 'type' => 'string', - 'required' => false, - 'example' => 'FinanceDept', - ], - 'Value' => [ - 'description' => 'The value of the tag that is added to the resource. You can specify at most 20 tag values.'."\n" - ."\n" - .'The tag value cannot exceed 128 characters in length. The value cannot start with `aliyun` or `acs:`, and cannot contain `http://` or `https://`.'."\n" - ."\n" - .'> When you call this operation, the **Tag.N.Value** parameter is required and can be an empty string.', - 'type' => 'string', - 'required' => false, - 'example' => 'FinanceJoshua', - ], - ], - 'required' => false, - ], - 'required' => true, - 'docRequired' => true, - 'example' => 'TagResources', - 'maxItems' => 21, - ], - ], + 'createdAt' => '2023-04-20T09:08:07.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'AssociateVpcCidrBlock'], + ['description' => 'Error codes changed', 'api' => 'CreateTrafficMirrorSession'], + ['description' => 'Error codes changed, Request parameters changed', 'api' => 'UpdateTrafficMirrorSessionAttribute'], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => 'C46FF5A8-C5F0-4024-8262-B16B639225A0', - ], - ], - ], - ], + 'createdAt' => '2023-04-14T10:04:22.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Request parameters changed', 'api' => 'AssociateVpcCidrBlock'], + ['description' => 'Request parameters changed', 'api' => 'CreateVpc'], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InvalidTagKey', - 'errorMessage' => 'The tag keys are not valid.', - ], - [ - 'errorCode' => 'InvalidTagValue', - 'errorMessage' => 'The tag values are not valid.', - ], - [ - 'errorCode' => 'MissingParam', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'InvalidInstanceType.NotFound', - 'errorMessage' => 'The instance type is not found', - ], - [ - 'errorCode' => 'InvalidInstanceIds.NotFound', - 'errorMessage' => 'The instanceIds are not found', - ], - [ - 'errorCode' => 'Forbidden.TagKeys', - 'errorMessage' => 'The request do not allow to operate the tag keys', - ], - [ - 'errorCode' => 'QuotaExceeded.TagNum', - 'errorMessage' => 'Custom Tags quota exceeded', - ], - [ - 'errorCode' => 'InvalidTagScope.NotFound', - 'errorMessage' => 'The tag scope is not found', - ], - [ - 'errorCode' => 'Forbidden.NotAllowedCategary', - 'errorMessage' => 'The System tag is not valid', - ], - [ - 'errorCode' => 'Forbidden.TagKey.Duplicated', - 'errorMessage' => 'The specified tag key already exists.', - ], - [ - 'errorCode' => 'SizeLimitExceeded.TagNum', - 'errorMessage' => 'The maximum number of tags is exceeded.', - ], - [ - 'errorCode' => 'SizeLimitExceeded.ResourceId', - 'errorMessage' => 'The maximum number of resource IDs is exceeded.', - ], - [ - 'errorCode' => 'MissingParameter.TagValue', - 'errorMessage' => 'The input parameter TagValue that is mandatory for processing this request is not supplied.', - ], - [ - 'errorCode' => 'MissingParameter.TagKey', - 'errorMessage' => 'The input parameter TagKey that is mandatory for processing this request is not supplied.', - ], - [ - 'errorCode' => 'MissingParam.Tags', - 'errorMessage' => 'You must specify the Tags parameter.', - ], - [ - 'errorCode' => 'DuplicatedParam.ResourceIds', - 'errorMessage' => 'The parameter of ResourceIds contains duplicate values.', - ], - ], - 403 => [ - [ - 'errorCode' => 'Forbidden', - 'errorMessage' => 'User not authorized to operate on the specified resource.', - ], - ], + 'createdAt' => '2023-04-13T11:16:11.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'DeleteIpv4Gateway'], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'createdAt' => '2023-04-13T10:09:29.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Response parameters changed, Response parameters changed', 'api' => 'DescribeEipSegment'], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"C46FF5A8-C5F0-4024-8262-B16B639225A0\\"\\n}","errorExample":""},{"type":"xml","example":"\\n C46FF5A8-C5F0-4024-8262-B16B639225A0\\n","errorExample":""}]', - 'title' => 'TagResources', - 'description' => 'Tags are used to classify instances. Each tag consists of a key-value pair. Before you use tags, take note of the following limits:'."\n" - ."\n" - .'* The keys of tags that are added to the same instance must be unique.'."\n" - ."\n" - .'* You cannot create tags without adding them to instances. All tags must be added to instances.'."\n" - ."\n" - .'* Tag information is not shared across regions.'."\n" - ."\n" - .' For example, you cannot view the tags that are created in the China (Hangzhou) region from the China (Shanghai) region.'."\n" - ."\n" - .'* Virtual private clouds (VPCs), route tables, vSwitches, and elastic IP addresses (EIPs) that belong to the same Alibaba Cloud account and are deployed in the same region share tag information with each other.'."\n" - ."\n" - .' For example, if you added a tag to a VPC, the tag is available to vSwitches, route tables, and EIPs that belong to the same account and are deployed in the same region in which the VPC is created. You can select this tag from the editing page without the need to enter the tag again. You can modify the key and the value of a tag or remove a tag from an instance. After you delete an instance, all tags that are added to the instance are deleted.'."\n" - ."\n" - .'* You can add up to 20 tags to each instance. Before you add a tag to an instance, the system automatically checks the number of existing tags. An error message is returned if the maximum number of tags is reached.', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', + 'createdAt' => '2023-04-10T05:59:33.000Z', + 'description' => '', ], - 'TagResourcesForExpressConnect' => [ - 'summary' => 'Creates tags and adds the tags to an Express Connect circuit.', - 'methods' => [ - 'post', - 'get', + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'ActivateRouterInterface'], + ['description' => 'Error codes changed', 'api' => 'AssociatePhysicalConnectionToVirtualBorderRouter'], ], - 'schemes' => [ - 'http', - 'https', + 'createdAt' => '2023-04-10T03:22:14.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Request parameters changed', 'api' => 'TagResources'], ], - 'security' => [ - [ - 'AK' => [], - ], + 'createdAt' => '2023-04-06T09:32:28.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'CreateRouteEntry'], ], - 'operationType' => 'write', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'update', - 'riskType' => 'none', - 'chargeType' => 'free', + 'createdAt' => '2023-04-04T03:02:12.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Request parameters changed, Response parameters changed', 'api' => 'CreateRouteEntries'], ], - 'parameters' => [ - [ - 'name' => 'ResourceType', - 'in' => 'query', - 'schema' => [ - 'description' => 'The type of the resource. Valid values:'."\n" - ."\n" - .'* **PHYSICALCONNECTION**: Express Connect circuit.'."\n" - .'* **VIRTUALBORDERROUTER**: virtual border router (VBR).'."\n" - .'* **ROUTERINTERFACE**: router interface.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'PHYSICALCONNECTION', - ], - ], - [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region in which the resource is deployed.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to obtain the region ID.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], - ], - [ - 'name' => 'ResourceId', - 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => 'The resource IDs. You can specify up to 20 resource IDs.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The resource ID. You can specify up to 20 resource IDs.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'pc-bp16qjewdsunr41m1****', - ], - 'required' => true, - 'maxItems' => 21, - ], - ], - [ - 'name' => 'Tag', - 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => 'The tags to add to the resource.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => 'The key of the tag to add to the resource. You can specify up to 20 tag keys. The tag key cannot be an empty string.'."\n" - ."\n" - .'The tag key can be up to 128 characters in length and cannot contain `http://` or `https://`. The tag key cannot start with `aliyun` or `acs:`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'FinanceDept', - ], - 'Value' => [ - 'description' => 'The value of the tag to add to the resource. You can specify up to 20 tag values. The tag value can be an empty string.'."\n" - ."\n" - .'The tag value can be up to 128 characters in length and cannot contain `http://` or `https://`. The tag value cannot start with `aliyun` or `acs:`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'FinanceJoshua', - ], - ], - 'required' => false, - ], - 'required' => true, - 'maxItems' => 21, - ], - ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B45', - ], - ], - ], - ], - ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InvalidTagKey', - 'errorMessage' => 'The tag keys are not valid.', - ], - [ - 'errorCode' => 'InvalidTagValue', - 'errorMessage' => 'The tag values are not valid.', - ], - [ - 'errorCode' => 'InvalidInstanceType.NotFound', - 'errorMessage' => 'The instance type is not found', - ], - [ - 'errorCode' => 'InvalidInstanceIds.NotFound', - 'errorMessage' => 'The instanceIds are not found', - ], - [ - 'errorCode' => 'Forbidden.TagKeys', - 'errorMessage' => 'The request do not allow to operate the tag keys', - ], - [ - 'errorCode' => 'QuotaExceeded.TagNum', - 'errorMessage' => 'Custom Tags quota exceeded', - ], - [ - 'errorCode' => 'InvalidTagScope.NotFound', - 'errorMessage' => 'The tag scope is not found', - ], - [ - 'errorCode' => 'Forbidden.TagKey.Duplicated', - 'errorMessage' => 'The specified tag key already exists.', - ], - [ - 'errorCode' => 'SizeLimitExceeded.TagNum', - 'errorMessage' => 'The maximum number of tags is exceeded.', - ], - [ - 'errorCode' => 'SizeLimitExceeded.ResourceId', - 'errorMessage' => 'The maximum number of resource IDs is exceeded.', - ], - [ - 'errorCode' => 'MissingParameter.TagValue', - 'errorMessage' => 'The input parameter TagValue that is mandatory for processing this request is not supplied.', - ], - [ - 'errorCode' => 'MissingParameter.TagKey', - 'errorMessage' => 'The input parameter TagKey that is mandatory for processing this request is not supplied.', - ], - ], - 403 => [ - [ - 'errorCode' => 'Forbidden', - 'errorMessage' => 'User not authorized to operate on the specified resource.', - ], - ], - ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B45\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 54B48E3D-DF70-471B-AA93-08E683A1B45\\n","errorExample":""}]', - 'title' => 'TagResourcesForExpressConnect', - 'description' => '## [](#)'."\n" - ."\n" - .'Tags are used to classify instances. Each tag consists of a key-value pair. Before you use tags, take note of the following items:'."\n" - ."\n" - .'* Each tag key that is added to an instance must be unique.'."\n" - ."\n" - .'* You cannot create tags without adding them to instances. All tags must be added to instances.'."\n" - ."\n" - .'* Tag information is not shared across regions.'."\n" - ."\n" - .' For example, you cannot view the tags that are created in the China (Hangzhou) region from the China (Shanghai) region.'."\n" - ."\n" - .'* You can add up to 20 tags to each instance. Before you add a tag to an instance, the system automatically checks the number of existing tags. An error message is returned if the maximum number of tags is reached.'."\n", - ], - 'UnTagResources' => [ - 'summary' => 'Removes tags from resources.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], - ], - ], - 'operationType' => 'readAndWrite', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'update', - 'riskType' => 'none', - 'chargeType' => 'free', - ], - 'parameters' => [ - [ - 'name' => 'ResourceType', - 'in' => 'query', - 'schema' => [ - 'description' => 'The resource type. Valid values:'."\n" - ."\n" - .'* **VPC**'."\n" - .'* **VSWITCH**'."\n" - .'* **ROUTETABLE**'."\n" - .'* **EIP**'."\n" - .'* **VpnGateway**'."\n" - .'* **NATGATEWAY**'."\n" - .'* **COMMONBANDWIDTHPACKAGE**: EIP bandwidth plan'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'VPC', - ], - ], - [ - 'name' => 'All', - 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to remove all tags from the specified resource. Valid values:'."\n" - ."\n" - .'* **true**'."\n" - .'* **false** (default)'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], - ], - [ - 'name' => 'ResourceId', - 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => 'The resource ID. You can specify up to 20 resource IDs.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The resource ID. You can specify up to 20 resource IDs.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'vpc-bp16qjewdsunr41m1****', - ], - 'required' => true, - 'docRequired' => true, - 'example' => 'vpc-bp16qjewdsunr41m1****', - 'maxItems' => 51, - ], - ], - [ - 'name' => 'TagKey', - 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => 'The key of the tag that you want to remove. You can specify at most 20 tag keys. It can be an empty string.'."\n" - ."\n" - .'The key cannot exceed 64 characters in length, and can contain digits, periods (.), underscores (\\_), and hyphens (-). The key must start with a letter but cannot start with `aliyun` or `acs:`. The key cannot contain `http://` or `https://`.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The key of the tag that you want to remove. You can specify at most 20 tag keys. It can be an empty string.'."\n" - ."\n" - .'The key cannot exceed 64 characters in length, and can contain digits, periods (.), underscores (\\_), and hyphens (-). The key must start with a letter but cannot start with `aliyun` or `acs:`. The key cannot contain `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'FinanceDept', - ], - 'required' => false, - 'example' => 'FinanceDept', - 'maxItems' => 21, - ], - ], - [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the resource.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou ', - ], - ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => 'C46FF5A8-C5F0-4024-8262-B16B639225A0 ', - ], - ], - ], - ], - ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InvalidTagKey', - 'errorMessage' => 'The tag keys are not valid.', - ], - [ - 'errorCode' => 'InvalidTagValue', - 'errorMessage' => 'The tag values are not valid.', - ], - [ - 'errorCode' => 'MissingParam', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'InvalidInstanceType.NotFound', - 'errorMessage' => 'The instance type is not found', - ], - [ - 'errorCode' => 'InvalidInstanceIds.NotFound', - 'errorMessage' => 'The instanceIds are not found', - ], - [ - 'errorCode' => 'Forbidden.TagKeys', - 'errorMessage' => 'The request do not allow to operate the tag keys', - ], - [ - 'errorCode' => 'QuotaExceeded.TagNum', - 'errorMessage' => 'Custom Tags quota exceeded', - ], - [ - 'errorCode' => 'Forbidden.NotAllowedCategary', - 'errorMessage' => 'The System tag is not valid', - ], - [ - 'errorCode' => 'Forbidden.TagKey.Duplicated', - 'errorMessage' => 'The specified tag key already exists.', - ], - [ - 'errorCode' => 'SizeLimitExceeded.TagNum', - 'errorMessage' => 'The maximum number of tags is exceeded.', - ], - [ - 'errorCode' => 'SizeLimitExceeded.ResourceId', - 'errorMessage' => 'The maximum number of resource IDs is exceeded.', - ], - [ - 'errorCode' => 'DuplicatedParam.ResourceIds', - 'errorMessage' => 'The parameter of ResourceIds contains duplicate values.', - ], - ], - 403 => [ - [ - 'errorCode' => 'Forbidden', - 'errorMessage' => 'User not authorized to operate on the specified resource.', - ], - ], - ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"C46FF5A8-C5F0-4024-8262-B16B639225A0\\\\t\\"\\n}","errorExample":""},{"type":"xml","example":"\\n C46FF5A8-C5F0-4024-8262-B16B639225A0\\t\\n","errorExample":""}]', - 'title' => 'UnTagResources', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'UntagResourcesForExpressConnect' => [ - 'summary' => 'Removes tags from an Express Connect circuit at a time.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], - ], - ], - 'operationType' => 'write', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'update', - 'riskType' => 'none', - 'chargeType' => 'free', - ], - 'parameters' => [ - [ - 'name' => 'ResourceType', - 'in' => 'query', - 'schema' => [ - 'description' => 'The type of the resource. Valid values:'."\n" - ."\n" - .'* **PHYSICALCONNECTION**: Express Connect circuit.'."\n" - .'* **VIRTUALBORDERROUTER**: virtual border router (VBR).'."\n" - .'* **ROUTERINTERFACE**: router interface.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'PHYSICALCONNECTION', - ], - ], - [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region in which the resource is deployed.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to obtain the region ID.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], - ], - [ - 'name' => 'All', - 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to remove all tags from the specified resource. Valid values:'."\n" - ."\n" - .'* **true**'."\n" - .'* **false** (default)'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], - ], - [ - 'name' => 'ResourceId', - 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => 'The IDs of the resources from which you want to remove tags.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The resource ID. You can specify up to 20 resource IDs.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'pc-bp16qjewdsunr41m1****', - ], - 'required' => true, - 'maxItems' => 21, - ], - ], - [ - 'name' => 'TagKey', - 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => 'The tags to remove from the specified resource.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The key of the tag to remove from the resource. You can specify up to 20 tag keys. The tag key cannot be an empty string.'."\n" - ."\n" - .'The tag key must be 1 to 128 characters in length and cannot contain `http://` or `https://`. The tag key cannot start with `aliyun` or `acs:`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'FinanceDept', - ], - 'required' => false, - 'maxItems' => 21, - ], - ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => 'DE65F6B7-7566-4802-9007-96F2494AC512', - ], - ], - ], - ], - ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InvalidTagKey', - 'errorMessage' => 'The tag keys are not valid.', - ], - [ - 'errorCode' => 'InvalidTagValue', - 'errorMessage' => 'The tag values are not valid.', - ], - [ - 'errorCode' => 'InvalidInstanceType.NotFound', - 'errorMessage' => 'The instance type is not found', - ], - [ - 'errorCode' => 'InvalidInstanceIds.NotFound', - 'errorMessage' => 'The instanceIds are not found', - ], - [ - 'errorCode' => 'Forbidden.TagKeys', - 'errorMessage' => 'The request do not allow to operate the tag keys', - ], - [ - 'errorCode' => 'QuotaExceeded.TagNum', - 'errorMessage' => 'Custom Tags quota exceeded', - ], - [ - 'errorCode' => 'Forbidden.TagKey.Duplicated', - 'errorMessage' => 'The specified tag key already exists.', - ], - [ - 'errorCode' => 'SizeLimitExceeded.TagNum', - 'errorMessage' => 'The maximum number of tags is exceeded.', - ], - [ - 'errorCode' => 'SizeLimitExceeded.ResourceId', - 'errorMessage' => 'The maximum number of resource IDs is exceeded.', - ], - ], - 403 => [ - [ - 'errorCode' => 'Forbidden', - 'errorMessage' => 'User not authorized to operate on the specified resource.', - ], - ], - ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"DE65F6B7-7566-4802-9007-96F2494AC512\\"\\n}","errorExample":""},{"type":"xml","example":"\\n DE65F6B7-7566-4802-9007-96F2494AC512\\n","errorExample":""}]', - 'title' => 'UntagResourcesForExpressConnect', - ], - 'ListTagResources' => [ - 'summary' => 'Queries the tags that are added to resources.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], - ], - ], - 'operationType' => 'read', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'get', - ], - 'parameters' => [ - [ - 'name' => 'ResourceType', - 'in' => 'query', - 'schema' => [ - 'description' => 'The resource type. Valid values:'."\n" - ."\n" - .'* **VPC**'."\n" - .'* **VSWITCH**'."\n" - .'* **ROUTETABLE**'."\n" - .'* **EIP**'."\n" - .'* **VpnGateway**'."\n" - .'* **NATGATEWAY**'."\n" - .'* **COMMONBANDWIDTHPACKAGE**: EIP bandwidth plan'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'VPC', - ], - ], - [ - 'name' => 'NextToken', - 'in' => 'query', - 'schema' => [ - 'description' => 'The pagination token that is used in the next request to retrieve a new page of results. Valid values:'."\n" - ."\n" - .'* You do not need to specify this parameter for the first request.'."\n" - .'* You must specify the token that is obtained from the previous query as the value of **NextToken**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', - ], - ], - [ - 'name' => 'MaxResults', - 'in' => 'query', - 'schema' => [ - 'description' => 'The number of entries to return on each page. Valid values:**1** to **50**. Default value: **50**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '50', - 'example' => '50', - ], - ], - [ - 'name' => 'ResourceId', - 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => 'The resource ID. You can specify up to 20 resource IDs.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The resource ID. You can specify up to 20 resource IDs.'."\n" - ."\n" - .'> You must specify at least one of **ResourceId.N** and **Tag.N** (**Tag.N.Key** and **Tag.N.Value**).'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'vpc-bp16qjewdsunr41m1****', - ], - 'required' => false, - 'example' => 'vpc-bp16qjewdsunr41m1****', - 'maxItems' => 51, - ], - ], - [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the resource.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], - ], - [ - 'name' => 'Tag', - 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => 'The tag value. You can specify up to 20 tag values. It can be an empty string.'."\n" - ."\n" - .'The value can be up to 128 characters in length and can contain letters, digits, periods (.), underscores (\\_), and hyphens (-). The value must start with a letter but cannot start with `aliyun` or `acs:`. The value cannot contain `http://` or `https://`.'."\n" - ."\n" - .'> You must specify at least one of **ResourceId.N** and **Tag.N** (**Tag.N.Key** and **Tag.N.Value**).'."\n", - 'type' => 'array', - 'items' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => 'The key of the tag that is added to the resource. You can specify up to 20 tag keys. The tag key cannot be an empty string.'."\n" - ."\n" - .'The key can be up to 64 characters in length and can contain letters, digits, periods (.), underscores (\\_), and hyphens (-). The key must start with a letter but cannot start with `aliyun` or `acs:`. The key cannot contain `http://` or `https://`.'."\n" - ."\n" - .'> Specify at least one of the **ResourceId.N** and **Tag.N** parameters (**Tag.N.Key** and **Tag.N.Value**).'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'FinanceDept', - ], - 'Value' => [ - 'description' => 'The value of the tag that is added to the resource. You can specify up to 20 tag values. The tag value can be an empty string.'."\n" - ."\n" - .'The value can be up to 128 characters in length and can contain letters, digits, periods (.), underscores (\\_), and hyphens (-). The value must start with a letter but cannot start with `aliyun` or `acs:`. The value cannot contain `http://` or `https://`.'."\n" - ."\n" - .'> Specify at least one of the **ResourceId.N** and **Tag.N** parameters (**Tag.N.Key** and **Tag.N.Value**).'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'FinanceJoshua', - ], - ], - 'required' => false, - ], - 'required' => false, - 'example' => 'ListTagResources', - 'maxItems' => 21, - ], - ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'NextToken' => [ - 'description' => 'A pagination token. It can be used in the next request to retrieve a new page of results. Valid values:'."\n" - ."\n" - .'* If no value is returned for **NextToken**, no next queries are sent.'."\n" - .'* If a value is returned for **NextToken**, the value is used to retrieve a new page of results.'."\n", - 'type' => 'string', - 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', - ], - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => 'DE65F6B7-7566-4802-9007-96F2494AC512', - ], - 'TagResources' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'TagResource' => [ - 'description' => 'The tag key.'."\n", - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'ResourceType' => [ - 'description' => 'The type of the resource. Valid values:'."\n" - ."\n" - .'* **VPC**: virtual private cloud (VPC)'."\n" - .'* **VSWITCH**: vSwitch'."\n" - .'* **ROUTETABLE**: route table'."\n" - .'* **EIP**: EIP'."\n" - .'* **VpnGateWay**: VPN gateway'."\n" - .'* **NATGATEWAY**: NAT gateway'."\n" - .'* **COMMONBANDWIDTHPACKAGE**: EIP bandwidth plan'."\n", - 'type' => 'string', - 'example' => 'VPC', - ], - 'TagValue' => [ - 'description' => 'The tag value.'."\n", - 'type' => 'string', - 'example' => 'FinanceJoshua', - ], - 'ResourceId' => [ - 'description' => 'The ID of the resource.'."\n", - 'type' => 'string', - 'example' => 'vpc-bp16qjewdsunr41m1****', - ], - 'TagKey' => [ - 'description' => 'The tag key.'."\n", - 'type' => 'string', - 'example' => 'FinanceDept', - ], - ], - ], - ], - ], - ], - ], - 'description' => '', - ], - ], - ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InvalidTagKey', - 'errorMessage' => 'The tag keys are not valid.', - ], - [ - 'errorCode' => 'InvalidTagValue', - 'errorMessage' => 'The tag values are not valid.', - ], - [ - 'errorCode' => 'MissingParam', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'InvalidInstanceType.NotFound', - 'errorMessage' => 'The instance type is not found', - ], - [ - 'errorCode' => 'InvalidInstanceIds.NotFound', - 'errorMessage' => 'The instanceIds are not found', - ], - [ - 'errorCode' => 'Forbidden.TagKeys', - 'errorMessage' => 'The request do not allow to operate the tag keys', - ], - [ - 'errorCode' => 'QuotaExceeded.TagNum', - 'errorMessage' => 'Custom Tags quota exceeded', - ], - [ - 'errorCode' => 'Forbidden.NotAllowedCategary', - 'errorMessage' => 'The System tag is not valid', - ], - [ - 'errorCode' => 'Forbidden.TagKey.Duplicated', - 'errorMessage' => 'The specified tag key already exists.', - ], - [ - 'errorCode' => 'SizeLimitExceeded.TagNum', - 'errorMessage' => 'The maximum number of tags is exceeded.', - ], - [ - 'errorCode' => 'SizeLimitExceeded.ResourceId', - 'errorMessage' => 'The maximum number of resource IDs is exceeded.', - ], - [ - 'errorCode' => 'BothEmpty.TagsAndResources', - 'errorMessage' => 'The specified Tags and ResourcesIds are not allow to both empty.', - ], - [ - 'errorCode' => 'MissingParam.ResourceType', - 'errorMessage' => 'The param of ResourceType is missing.', - ], - ], - 403 => [ - [ - 'errorCode' => 'Forbidden', - 'errorMessage' => 'User not authorized to operate on the specified resource.', - ], - [ - 'errorCode' => 'BothEmpty.TagsAndResources', - 'errorMessage' => 'The specified Tags and ResourcesIds are not allow to both empty.', - ], - ], - ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"NextToken\\": \\"FFmyTO70tTpLG6I3FmYAXGKPd****\\",\\n \\"RequestId\\": \\"DE65F6B7-7566-4802-9007-96F2494AC512\\",\\n \\"TagResources\\": {\\n \\"TagResource\\": [\\n {\\n \\"ResourceType\\": \\"VPC\\",\\n \\"TagValue\\": \\"FinanceJoshua\\",\\n \\"ResourceId\\": \\"vpc-bp16qjewdsunr41m1****\\",\\n \\"TagKey\\": \\"FinanceDept\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n FFmyTO70tTpLG6I3FmYAXGKPd****\\n DE65F6B7-7566-4802-9007-96F2494AC512\\n \\n VPC\\n FinanceJoshua\\n vpc-bp16qjewdsunr41m1****\\n FinanceDept\\n \\n","errorExample":""}]', - 'title' => 'ListTagResources', - 'description' => '## Usage notes'."\n" - ."\n" - .'* You must specify **ResourceId.N** or **Tag.N** that consists of **Tag.N.Key** and **Tag.N.Value** in the request to specify the object that you want to query.'."\n" - .'* **Tag.N** is a resource tag that consists of a key-value pair. If you specify only **Tag.N.Key**, all tag values that are associated with the specified key are returned. If you specify only **Tag.N.Value**, an error message is returned.'."\n" - .'* If you specify **Tag.N** and **ResourceId.N** to filter tags, **ResourceId.N** must match all specified key-value pairs.'."\n" - .'* If you specify multiple key-value pairs, resources that contain these key-value pairs are returned.'."\n", - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'DescribeTags' => [ - 'summary' => 'Queries tags that meet the specified filter conditions.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], - ], - ], - 'operationType' => 'read', - 'systemTags' => [ - 'operationType' => 'get', - ], - 'parameters' => [ - [ - 'name' => 'ResourceType', - 'in' => 'query', - 'schema' => [ - 'description' => 'The resource type. Valid values:'."\n" - ."\n" - .'* **VPC**: virtual private cloud (VPC)'."\n" - .'* **VSWITCH**: vSwitch'."\n" - .'* **ROUTETABLE**: route table'."\n" - .'* **EIP**: elastic IP address (EIP)'."\n" - .'* **VpnGateway**: VPN gateway'."\n" - .'* **NATGATEWAY**: NAT gateway'."\n" - .'* **COMMONBANDWIDTHPACKAGE**: EIP bandwidth plan'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'VPC', - ], - ], - [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region to which the resource belongs.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cn-hangzhou', - ], - ], - [ - 'name' => 'NextToken', - 'in' => 'query', - 'schema' => [ - 'description' => 'The token that is used for the next query. Valid values:'."\n" - ."\n" - .'* If this is your first query or no next query is to be sent, ignore this parameter.'."\n" - .'* If a subsequent query is to be sent, set the parameter to the value of NextToken that is returned from the last call.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', - ], - ], - [ - 'name' => 'MaxResult', - 'in' => 'query', - 'schema' => [ - 'description' => 'The number of entries per page. Valid values: 1 to 50. Default value: 50.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '500', - 'example' => '50', - 'default' => '100', - ], - ], - [ - 'name' => 'ResourceId', - 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => 'The resource IDs.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The ID of the resource. You can enter at most 50 IDs.'."\n" - ."\n" - .'> If you set this parameter, you must set **ResourceType**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'vpc-bp16qjewdsunr41m1****', - ], - 'required' => false, - 'maxItems' => 21, - ], - ], - [ - 'name' => 'Tag', - 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => 'The tags.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => 'The key of the tag that is added to the resource. You can specify up to 20 tag keys. The tag key cannot be an empty string.'."\n" - ."\n" - .'The key cannot exceed 64 characters in length, and can contain digits, periods (.), underscores (\\_), and hyphens (-). The key must start with a letter but cannot start with `aliyun` or `acs:`. The key cannot contain `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'FinanceDept', - ], - 'Value' => [ - 'description' => 'The value of the tag that is added to the resource. You can specify up to 20 tag values. The tag value can be an empty string.'."\n" - ."\n" - .'The tag value cannot exceed 128 characters in length, and can contain digits, periods (.), underscores (\\_), and hyphens (-). The key must start with a letter but cannot start with `aliyun` or `acs:`. The key cannot contain `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'FinanceJoshua', - ], - ], - 'required' => false, - ], - 'required' => false, - 'maxItems' => 21, - ], - ], - ], - 'responses' => [ - 200 => [ - 'headers' => [], - 'schema' => [ - 'description' => 'object', - 'type' => 'object', - 'properties' => [ - 'NextToken' => [ - 'description' => 'The token that is used for the next query. Valid values:'."\n" - ."\n" - .'* If the value of **NextToken** is not returned, it indicates that no next query is to be sent.'."\n" - .'* If a value of **NextToken** is returned, the value is the token that is used for the subsequent query.'."\n", - 'type' => 'string', - 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', - ], - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => 'C46FF5A8-C5F0-4024-8262-B16B639225A0', - ], - 'TagResources' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'TagResource' => [ - 'description' => 'The list of tags that meet the filter conditions.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'TagValue' => [ - 'description' => 'The tag value.'."\n", - 'type' => 'string', - 'example' => 'FinanceJoshua', - ], - 'TagKey' => [ - 'description' => 'The tag key.'."\n", - 'type' => 'string', - 'example' => 'FinanceDept', - ], - ], - ], - ], - ], - ], - ], - ], - ], - ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'BothEmpty.TagsAndResources', - 'errorMessage' => 'The specified Tags and ResourcesIds are not allow to both empty.', - ], - [ - 'errorCode' => 'MissingParameter.TagKey', - 'errorMessage' => 'The input parameter TagKey that is mandatory for processing this request is not supplied.', - ], - [ - 'errorCode' => 'MissingParameter.TagValue', - 'errorMessage' => 'The input parameter TagValue that is mandatory for processing this request is not supplied.', - ], - [ - 'errorCode' => 'InvalidTagKey', - 'errorMessage' => 'The tag keys are not valid.', - ], - [ - 'errorCode' => 'InvalidTagValue', - 'errorMessage' => 'The tag values are not valid.', - ], - [ - 'errorCode' => 'MissingParam', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'InvalidInstanceType.NotFound', - 'errorMessage' => 'The instance type is not found', - ], - [ - 'errorCode' => 'InvalidInstanceIds.NotFound', - 'errorMessage' => 'The instanceIds are not found', - ], - [ - 'errorCode' => 'Forbidden.TagKeys', - 'errorMessage' => 'The request do not allow to operate the tag keys', - ], - [ - 'errorCode' => 'QuotaExceeded.TagNum', - 'errorMessage' => 'Custom Tags quota exceeded', - ], - [ - 'errorCode' => 'Forbidden.NotAllowedCategary', - 'errorMessage' => 'The System tag is not valid', - ], - [ - 'errorCode' => 'Forbidden.TagKey.Duplicated', - 'errorMessage' => 'The specified tag key already exists.', - ], - [ - 'errorCode' => 'SizeLimitExceeded.TagNum', - 'errorMessage' => 'The maximum number of tags is exceeded.', - ], - [ - 'errorCode' => 'SizeLimitExceeded.ResourceId', - 'errorMessage' => 'The maximum number of resource IDs is exceeded.', - ], - ], - 403 => [ - [ - 'errorCode' => 'Forbidden', - 'errorMessage' => 'User not authorized to operate on the specified resource.', - ], - ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"NextToken\\": \\"FFmyTO70tTpLG6I3FmYAXGKPd****\\",\\n \\"RequestId\\": \\"C46FF5A8-C5F0-4024-8262-B16B639225A0\\",\\n \\"TagResources\\": {\\n \\"TagResource\\": [\\n {\\n \\"TagValue\\": \\"FinanceJoshua\\",\\n \\"TagKey\\": \\"FinanceDept\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n FFmyTO70tTpLG6I3FmYAXGKPd****\\n C46FF5A8-C5F0-4024-8262-B16B639225A0\\n \\n FinanceJoshua\\n FinanceDept\\n \\n","errorExample":""}]', - 'title' => 'DescribeTags', - 'description' => '* You must specify **ResourceId.N** or **Tag.N** that consists of **Tag.N.Key** and **Tag.N.Value** in the request to specify the object that you want to query.'."\n" - .'* **Tag.N** is a resource tag that consists of a key-value pair. If you specify only **Tag.N.Key**, all tag values that are associated with the specified tag key are returned. If you specify only **Tag.N.Value**, an error message is returned.'."\n" - .'* If you specify **Tag.N** and **ResourceId.N** to filter tags, **ResourceId.N** must match all specified key-value pairs.'."\n" - .'* If you specify multiple key-value pairs, all tags that match the key-value pairs are returned.', - ], - 'DescribeTagKeys' => [ - 'summary' => 'Queries tag keys.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], - ], - ], - 'operationType' => 'read', - 'systemTags' => [ - 'operationType' => 'get', - ], - 'parameters' => [ - [ - 'name' => 'ResourceType', - 'in' => 'query', - 'schema' => [ - 'description' => 'The resource type. Valid values:'."\n" - ."\n" - .'* **VPC**: virtual private cloud (VPC)'."\n" - .'* **VSWITCH**: vSwitch'."\n" - .'* **ROUTETABLE**: route table'."\n" - .'* **EIP**: elastic IP address (EIP)'."\n" - .'* **VpnGateway**: VPN gateway'."\n" - .'* **NATGATEWAY**: NAT gateway'."\n" - .'* **COMMONBANDWIDTHPACKAGE**: EIP bandwidth plan'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'VPC', - ], - ], - [ - 'name' => 'Keyword', - 'in' => 'query', - 'schema' => [ - 'description' => 'The tag keys.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'keyword', - ], - ], - [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the resource.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cn-hangzhou', - ], - ], - [ - 'name' => 'NextToken', - 'in' => 'query', - 'schema' => [ - 'description' => 'The token that is used for the next query. Valid values:'."\n" - ."\n" - .'* If this is your first query or no next query is to be sent, ignore this parameter.'."\n" - .'* If a subsequent query is to be sent, set the parameter to the value of NextToken that is returned from the last call.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', - ], - ], - [ - 'name' => 'MaxResult', - 'in' => 'query', - 'schema' => [ - 'description' => 'The number of entries per page. Valid values: 1 to 50. Default value: 50.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '500', - 'example' => '50', - 'default' => '100', - ], - ], - [ - 'name' => 'ResourceId', - 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => 'The resource IDs. You can specify up to 20 resource IDs.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The ID of the resource. You can enter at most 50 IDs.'."\n" - ."\n" - .'> If you set this parameter, you must set **ResourceType**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'vpc-bp16qjewdsunr41m1****', - ], - 'required' => false, - 'maxItems' => 21, - ], - ], - ], - 'responses' => [ - 200 => [ - 'headers' => [], - 'schema' => [ - 'description' => ' object', - 'type' => 'object', - 'properties' => [ - 'NextToken' => [ - 'description' => 'The token that is used for the next query. Valid values:'."\n" - ."\n" - .'* If the value of **NextToken** is not returned, it indicates that no next query is to be sent.'."\n" - .'* If a value of **NextToken** is returned, the value is the token that is used for the subsequent query.'."\n", - 'type' => 'string', - 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', - ], - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => 'DE65F6B7-7566-4802-9007-96F2494AC512', - ], - 'TagKeys' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'TagKey' => [ - 'description' => 'The list of tag keys.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'Type' => [ - 'description' => 'The type of the tag key. Valid values:'."\n" - ."\n" - .'* **Custom**: custom'."\n" - .'* **System**: system'."\n", - 'type' => 'string', - 'example' => 'Custom', - ], - 'TagKey' => [ - 'description' => 'The tag key.'."\n", - 'type' => 'string', - 'example' => 'FinanceDept', - ], - ], - ], - ], - ], - ], - ], - ], - ], - ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'BothEmpty.TagsAndResources', - 'errorMessage' => 'The specified Tags and ResourcesIds are not allow to both empty.', - ], - [ - 'errorCode' => 'MissingParameter.TagKey', - 'errorMessage' => 'The input parameter TagKey that is mandatory for processing this request is not supplied.', - ], - [ - 'errorCode' => 'MissingParameter.TagValue', - 'errorMessage' => 'The input parameter TagValue that is mandatory for processing this request is not supplied.', - ], - [ - 'errorCode' => 'InvalidTagKey', - 'errorMessage' => 'The tag keys are not valid.', - ], - [ - 'errorCode' => 'InvalidTagValue', - 'errorMessage' => 'The tag values are not valid.', - ], - [ - 'errorCode' => 'MissingParam', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'InvalidInstanceType.NotFound', - 'errorMessage' => 'The instance type is not found', - ], - [ - 'errorCode' => 'InvalidInstanceIds.NotFound', - 'errorMessage' => 'The instanceIds are not found', - ], - [ - 'errorCode' => 'Forbidden.TagKeys', - 'errorMessage' => 'The request do not allow to operate the tag keys', - ], - [ - 'errorCode' => 'QuotaExceeded.TagNum', - 'errorMessage' => 'Custom Tags quota exceeded', - ], - [ - 'errorCode' => 'Forbidden.NotAllowedCategary', - 'errorMessage' => 'The System tag is not valid', - ], - [ - 'errorCode' => 'Forbidden.TagKey.Duplicated', - 'errorMessage' => 'The specified tag key already exists.', - ], - [ - 'errorCode' => 'SizeLimitExceeded.TagNum', - 'errorMessage' => 'The maximum number of tags is exceeded.', - ], - [ - 'errorCode' => 'SizeLimitExceeded.ResourceId', - 'errorMessage' => 'The maximum number of resource IDs is exceeded.', - ], - ], - 403 => [ - [ - 'errorCode' => 'Forbidden', - 'errorMessage' => 'User not authorized to operate on the specified resource.', - ], - ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"NextToken\\": \\"FFmyTO70tTpLG6I3FmYAXGKPd****\\",\\n \\"RequestId\\": \\"DE65F6B7-7566-4802-9007-96F2494AC512\\",\\n \\"TagKeys\\": {\\n \\"TagKey\\": [\\n {\\n \\"Type\\": \\"Custom\\",\\n \\"TagKey\\": \\"FinanceDept\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n FFmyTO70tTpLG6I3FmYAXGKPd****\\n DE65F6B7-7566-4802-9007-96F2494AC512\\n \\n Custom\\n FinanceDept\\n \\n","errorExample":""}]', - 'title' => 'DescribeTagKeys', - ], - 'ListTagResourcesForExpressConnect' => [ - 'summary' => 'Queries the tags that are added to an Express Connect circuit.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], - ], - ], - 'operationType' => 'read', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'list', - 'riskType' => 'none', - 'chargeType' => 'free', - ], - 'parameters' => [ - [ - 'name' => 'ResourceType', - 'in' => 'query', - 'schema' => [ - 'description' => 'The type of the resource. Valid values:'."\n" - ."\n" - .'* **PHYSICALCONNECTION**: Express Connect circuit.'."\n" - .'* **VIRTUALBORDERROUTER**: virtual border router (VBR).'."\n" - .'* **ROUTERINTERFACE**: router interface.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'PHYSICALCONNECTION', - ], - ], - [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region to which the resource resides.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to obtain the region ID.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], - ], - [ - 'name' => 'NextToken', - 'in' => 'query', - 'schema' => [ - 'description' => 'The pagination token that is used in the next request to retrieve a new page of results.'."\n" - ."\n" - .'* You do not need to specify this parameter for the first request.'."\n" - .'* You must specify the token that is obtained from the previous query as the value of **NextToken**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', - ], - ], - [ - 'name' => 'MaxResults', - 'in' => 'query', - 'schema' => [ - 'description' => 'The number of entries per page. Valid values: **1** to **100**. Default value: **20**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '50', - 'example' => '20', - ], - ], - [ - 'name' => 'ResourceId', - 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => 'The resource IDs.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The resource ID. You can specify up to 20 resource IDs.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'pc-bp16qjewdsunr41m1****', - ], - 'required' => false, - 'maxItems' => 21, - ], - ], - [ - 'name' => 'Tag', - 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => 'The tags.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => 'The key of the tag to add to the resource. You can specify up to 20 tag keys. The tag key cannot be an empty string.'."\n" - ."\n" - .'The tag key can be up to 128 characters in length and cannot contain `http://` or `https://`. The tag key cannot start with `aliyun` or `acs:`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'FinanceDept', - ], - 'Value' => [ - 'description' => 'The value of the tag to add to the resource. You can specify up to 20 tag values The tag value can be an empty string.'."\n" - ."\n" - .'The tag value can be up to 128 characters in length and cannot contain `http://` or `https://`. The tag value cannot start with `aliyun` or `acs:`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'FinanceJoshua', - ], - ], - 'required' => false, - ], - 'required' => false, - 'maxItems' => 21, - ], - ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'NextToken' => [ - 'description' => 'A pagination token. It can be used in the next request to retrieve a new page of results.'."\n" - ."\n" - .'* If **NextToken** is empty, no next page exists.'."\n" - .'* If a value is returned for **NextToken**, the value can be used in the next request to retrieve a new page of results.'."\n", - 'type' => 'string', - 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', - ], - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B45', - ], - 'TagResources' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'TagResource' => [ - 'description' => 'The tags that are added to the resource.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'ResourceType' => [ - 'description' => 'The type of the resource. Valid values:'."\n" - ."\n" - .'* **PHYSICALCONNECTION**: Express Connect circuit.'."\n" - .'* **VIRTUALBORDERROUTER**: VBR.'."\n" - .'* **ROUTERINTERFACE**: router interface.'."\n", - 'type' => 'string', - 'example' => 'PHYSICALCONNECTION', - ], - 'TagValue' => [ - 'description' => 'The value of the tag that is added to the resource.'."\n", - 'type' => 'string', - 'example' => 'FinanceJoshua', - ], - 'ResourceId' => [ - 'description' => 'The resource ID.'."\n", - 'type' => 'string', - 'example' => 'pc-bp16qjewdsunr41m1****', - ], - 'TagKey' => [ - 'description' => 'The key of the tag that is added to the resource.'."\n", - 'type' => 'string', - 'example' => 'FinanceDept', - ], - ], - ], - ], - ], - ], - ], - 'description' => '', - ], - ], - ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InvalidTagKey', - 'errorMessage' => 'The tag keys are not valid.', - ], - [ - 'errorCode' => 'InvalidTagValue', - 'errorMessage' => 'The tag values are not valid.', - ], - [ - 'errorCode' => 'InvalidInstanceType.NotFound', - 'errorMessage' => 'The instance type is not found', - ], - [ - 'errorCode' => 'InvalidInstanceIds.NotFound', - 'errorMessage' => 'The instanceIds are not found', - ], - [ - 'errorCode' => 'Forbidden.TagKeys', - 'errorMessage' => 'The request do not allow to operate the tag keys', - ], - [ - 'errorCode' => 'QuotaExceeded.TagNum', - 'errorMessage' => 'Custom Tags quota exceeded', - ], - [ - 'errorCode' => 'Forbidden.TagKey.Duplicated', - 'errorMessage' => 'The specified tag key already exists.', - ], - [ - 'errorCode' => 'SizeLimitExceeded.TagNum', - 'errorMessage' => 'The maximum number of tags is exceeded.', - ], - [ - 'errorCode' => 'SizeLimitExceeded.ResourceId', - 'errorMessage' => 'The maximum number of resource IDs is exceeded.', - ], - ], - 403 => [ - [ - 'errorCode' => 'Forbidden', - 'errorMessage' => 'User not authorized to operate on the specified resource.', - ], - [ - 'errorCode' => 'BothEmpty.TagsAndResources', - 'errorMessage' => 'The specified Tags and ResourcesIds are not allow to both empty.', - ], - ], - ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"NextToken\\": \\"FFmyTO70tTpLG6I3FmYAXGKPd****\\",\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B45\\",\\n \\"TagResources\\": {\\n \\"TagResource\\": [\\n {\\n \\"ResourceType\\": \\"PHYSICALCONNECTION\\",\\n \\"TagValue\\": \\"FinanceJoshua\\",\\n \\"ResourceId\\": \\"pc-bp16qjewdsunr41m1****\\",\\n \\"TagKey\\": \\"FinanceDept\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n FFmyTO70tTpLG6I3FmYAXGKPd****\\n 54B48E3D-DF70-471B-AA93-08E683A1B45\\n \\n PHYSICALCONNECTION\\n FinanceJoshua\\n pc-bp16qjewdsunr41m1****\\n FinanceDept\\n \\n","errorExample":""}]', - 'title' => 'ListTagResourcesForExpressConnect', - 'description' => '## [](#)'."\n" - ."\n" - .'* If you want to query a specific object, you must specify **ResourceId.N** or **Tag.N** that consists of **Tag.N.Key** and **Tag.N.Value** in the request.'."\n" - .'* **Tag.N** is a resource tag that consists of a key-value pair. If you specify only **Tag.N.Key**, all tag values that are associated with the specified key are returned. If you specify only **Tag.N.Value**, an error message is returned.'."\n" - .'* If you specify **Tag.N** and **ResourceId.N** to filter tags, **ResourceId.N** must match all specified key-value pairs.'."\n" - .'* If you specify multiple key-value pairs, resources that contain these key-value pairs are returned.'."\n", - ], - 'DescribeTagKeysForExpressConnect' => [ - 'summary' => 'Queries the tags of an Express Connect circuit.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], - ], - ], - 'operationType' => 'read', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'list', - 'riskType' => 'none', - 'chargeType' => 'free', - ], - 'parameters' => [ - [ - 'name' => 'ResourceType', - 'in' => 'query', - 'schema' => [ - 'description' => 'The type of the resource. Set the value to **PHYSICALCONNECTION**, which specifies an Express Connect circuit.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'PHYSICALCONNECTION', - ], - ], - [ - 'name' => 'Keyword', - 'in' => 'query', - 'schema' => [ - 'description' => 'The keyword of the tag. Fuzzy match is supported. You can specify a keyword to query all tags that contain the keyword.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'keyword', - ], - ], - [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region to which the resource resides.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to obtain the region ID.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cn-hangzhou', - ], - ], - [ - 'name' => 'NextToken', - 'in' => 'query', - 'schema' => [ - 'description' => 'The pagination token that is used in the next request to retrieve a new page of results.'."\n" - ."\n" - .'* You do not need to specify this parameter for the first request.'."\n" - .'* You must specify the token that is obtained from the previous query as the value of NextToken.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', - ], - ], - [ - 'name' => 'MaxResult', - 'in' => 'query', - 'schema' => [ - 'description' => 'The number of entries per page. Valid values: **1** to **100**. Default value: **20**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '500', - 'example' => '20', - 'default' => '100', - ], - ], - [ - 'name' => 'ResourceId', - 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => 'The IDs of the resources. You can specify up to 20 resource IDs.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The resource ID. You can specify up to 20 resource IDs.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'pc-bp16qjewdsunr41m1****', - ], - 'required' => false, - 'maxItems' => 21, - ], - ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'NextToken' => [ - 'description' => 'A pagination token. It can be used in the next request to retrieve a new page of results.'."\n" - ."\n" - .'* If **NextToken** is empty, no next page exists.'."\n" - .'* If a value is returned for **NextToken**, the value can be used in the next request to retrieve a new page of results.'."\n", - 'type' => 'string', - 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', - ], - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B45', - ], - 'TagKeys' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'TagKey' => [ - 'description' => 'The tag keys.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'Type' => [ - 'description' => 'The type of the resource. The value is set to **PHYSICALCONNECTION**, which indicates an Express Connect circuit.'."\n", - 'type' => 'string', - 'example' => 'PHYSICALCONNECTION', - ], - 'TagKey' => [ - 'description' => 'The key of the tag.'."\n", - 'type' => 'string', - 'example' => 'FinanceDept', - ], - ], - ], - ], - ], - ], - ], - 'description' => '', - ], - ], - ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'BothEmpty.TagsAndResources', - 'errorMessage' => 'The specified Tags and ResourcesIds are not allow to both empty.', - ], - [ - 'errorCode' => 'MissingParameter.TagKey', - 'errorMessage' => 'The input parameter TagKey that is mandatory for processing this request is not supplied.', - ], - [ - 'errorCode' => 'MissingParameter.TagValue', - 'errorMessage' => 'The input parameter TagValue that is mandatory for processing this request is not supplied.', - ], - [ - 'errorCode' => 'InvalidTagKey', - 'errorMessage' => 'The tag keys are not valid.', - ], - [ - 'errorCode' => 'InvalidTagValue', - 'errorMessage' => 'The tag values are not valid.', - ], - [ - 'errorCode' => 'InvalidInstanceType.NotFound', - 'errorMessage' => 'The instance type is not found', - ], - [ - 'errorCode' => 'InvalidInstanceIds.NotFound', - 'errorMessage' => 'The instanceIds are not found', - ], - [ - 'errorCode' => 'Forbidden.TagKeys', - 'errorMessage' => 'The request do not allow to operate the tag keys', - ], - [ - 'errorCode' => 'QuotaExceeded.TagNum', - 'errorMessage' => 'Custom Tags quota exceeded', - ], - [ - 'errorCode' => 'Forbidden.TagKey.Duplicated', - 'errorMessage' => 'The specified tag key already exists.', - ], - [ - 'errorCode' => 'SizeLimitExceeded.ResourceId', - 'errorMessage' => 'The maximum number of resource IDs is exceeded.', - ], - ], - 403 => [ - [ - 'errorCode' => 'Forbidden', - 'errorMessage' => 'User not authorized to operate on the specified resource.', - ], - ], - ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"NextToken\\": \\"FFmyTO70tTpLG6I3FmYAXGKPd****\\",\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B45\\",\\n \\"TagKeys\\": {\\n \\"TagKey\\": [\\n {\\n \\"Type\\": \\"System\\",\\n \\"TagKey\\": \\"FinanceDept\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n FFmyTO70tTpLG6I3FmYAXGKPd****\\n 54B48E3D-DF70-471B-AA93-08E683A1B45\\n \\n PHYSICALCONNECTION\\n FinanceDept\\n \\n","errorExample":""}]', - 'title' => 'DescribeTagKeysForExpressConnect', + 'createdAt' => '2023-03-30T06:20:18.000Z', + 'description' => '', ], - 'CreateRouterInterface' => [ - 'summary' => 'Creates a router interface.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], - ], - ], - 'operationType' => 'readAndWrite', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'create', - 'riskType' => 'none', - 'chargeType' => 'paid', - ], - 'parameters' => [ - [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region to which the router interface belongs.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to obtain the region ID.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], - ], - [ - 'name' => 'Role', - 'in' => 'query', - 'schema' => [ - 'description' => 'The role of the router interface. Valid values:'."\n" - ."\n" - .'* **InitiatingSide**: requester'."\n" - .'* **AcceptingSide**: acceptor'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'InitiatingSide', - ], - ], - [ - 'name' => 'OppositeRegionId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region in which the acceptor is deployed.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-shanghai', - ], - ], - [ - 'name' => 'Spec', - 'in' => 'query', - 'schema' => [ - 'description' => 'The specification of the router interface and the corresponding bandwidth. Valid values:'."\n" - ."\n" - .'* **Mini.2**: 2 Mbit/s'."\n" - .'* **Mini.5**: 5 Mbit/s'."\n" - .'* **Small.1**: 10 Mbit/s'."\n" - .'* **Small.2**: 20 Mbit/s'."\n" - .'* **Small.5**: 50 Mbit/s'."\n" - .'* **Middle.1**: 100 Mbit/s'."\n" - .'* **Middle.2**: 200 Mbit/s'."\n" - .'* **Middle.5**: 500 Mbit/s'."\n" - .'* **Large.1**: 1,000 Mbit/s'."\n" - .'* **Large.2**: 2,000 Mbit/s'."\n" - .'* **Large.5**: 5,000 Mbit/s'."\n" - .'* **Xlarge.1**: 10,000 Mbit/s'."\n" - ."\n" - .'> If **Role** is set to **AcceptingSide**, set **Spec** to **Negative**. This indicates that you do not need to specify the specification when you create an acceptor router interface.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'Mini.2', - ], - ], - [ - 'name' => 'RouterType', - 'in' => 'query', - 'schema' => [ - 'description' => 'The type of router that is associated with the router interface. Valid values:'."\n" - ."\n" - .'* **VRouter**'."\n" - .'* **VBR**'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'VRouter', - ], - ], - [ - 'name' => 'RouterId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the router that is associated with the router interface.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'vbr-m5ebm6g9ptc9mly1c****', - ], - ], - [ - 'name' => 'OppositeInterfaceId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the peer router interface.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'ri-2zeo3xzyf38r4urzd****', - ], - ], - [ - 'name' => 'OppositeRouterId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the peer router.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'vrt-bp1lhl0taikrteen8****', - ], - ], - [ - 'name' => 'OppositeRouterType', - 'in' => 'query', - 'schema' => [ - 'description' => 'The type of router that is associated with the peer router interface. Valid values:'."\n" - ."\n" - .'* **VRouter**'."\n" - .'* **VBR**'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'VRouter', - 'default' => 'VRouter', - ], - ], - [ - 'name' => 'OppositeInterfaceOwnerId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the Alibaba Cloud account to which the peer router interface belongs.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '253460731706911258', - ], - ], - [ - 'name' => 'HealthCheckSourceIp', - 'in' => 'query', - 'schema' => [ - 'description' => 'The source IP address that is used to perform health checks. The source IP address must be an idle IP address of the local virtual private cloud (VPC).'."\n" - ."\n" - .'> You can set this parameter when an Express Connect circuit is used.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '192.168.0.6', - ], - ], - [ - 'name' => 'HealthCheckTargetIp', - 'in' => 'query', - 'schema' => [ - 'description' => 'The destination IP address that is used to perform health checks.'."\n" - ."\n" - .'> This parameter is required if you specify **HealthCheckSourceIp**'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '192.168.0.8', - ], - ], - [ - 'name' => 'AccessPointId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the access point to which the VBR belongs.'."\n" - ."\n" - .'You can call the [DescribeAccessPoints](~~36062~~) operation to obtain the IDs of access points.'."\n" - ."\n" - .'> This parameter is required if the VBR is connected to an Express Connect circuit.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'ap-cn-hangzhou-yh-ts-A', - ], - ], - [ - 'name' => 'OppositeAccessPointId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the access point to which the peer belongs.'."\n" - ."\n" - .'> This parameter is required if the peer router interface is associated with a VBR. The specified value cannot be changed after the router interface is created.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'ap-cn-shanghai-nt-aligroup-C', - ], - ], - [ - 'name' => 'Description', - 'in' => 'query', - 'schema' => [ - 'description' => 'The description of the router interface.'."\n" - ."\n" - .'The description must be 2 to 256 characters in length. It must start with a letter but cannot start with `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'abcabc', - ], - ], - [ - 'name' => 'Name', - 'in' => 'query', - 'schema' => [ - 'description' => 'The name of the router interface.'."\n" - ."\n" - .'The name must be 2 to 128 characters in length, and can contain letters, digits, periods (.), underscores (\\_), and hyphens (-).'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'abc', - ], - ], - [ - 'name' => 'Period', - 'in' => 'query', - 'schema' => [ - 'description' => 'The subscription duration. Valid values:'."\n" - ."\n" - .'* Valid values when PricingCycle is set to Month: **1 to 9**.'."\n" - .'* Valid values when PricingCycle is set to Year: **1 to 3**.'."\n" - ."\n" - .'> This parameter is required if **InstanceChargeType** is set to **PrePaid**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '3', - ], - ], - [ - 'name' => 'InstanceChargeType', - 'in' => 'query', - 'schema' => [ - 'description' => 'The billing method of the router interface. Valid values:'."\n" - ."\n" - .'* **PrePaid**: subscription'."\n" - .'* **PostPaid**: pay-as-you-go'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'PrePaid', - ], - ], - [ - 'name' => 'AutoPay', - 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to enable automatic payment. Valid values:'."\n" - ."\n" - .'* **false** (default): The automatic payment is disabled. If you select this option, you must go to the Order Center to complete the payment after an order is generated.'."\n" - .'* **true**: The automatic payment is enabled. Payments are automatically complete after an order is generated.'."\n" - ."\n" - .'> This parameter is required if **InstanceChargeType** is set to **PrePaid**.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], - ], - [ - 'name' => 'PricingCycle', - 'in' => 'query', - 'schema' => [ - 'description' => 'The billing cycle of the subscription. Valid values:'."\n" - ."\n" - .'* **Month** (default)'."\n" - .'* **Year**'."\n" - ."\n" - .'> This parameter is required if **InstanceChargeType** is set to **PrePaid**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'Month', - ], - ], - [ - 'name' => 'ClientToken', - 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'You can use the client to generate the token, but you must make sure that the token is unique among different requests.'."\n" - ."\n" - .'> 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.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-426655440000', - ], - ], - [ - 'name' => 'ClientToken', - 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'You can use the client to generate the token, but you must make sure that the token is unique among different requests.'."\n" - ."\n" - .'> 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.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-426655440000', - ], - ], - [ - 'name' => 'FastLinkMode', - 'in' => 'query', - 'allowEmptyValue' => true, - 'schema' => [ - 'description' => 'Specifies whether the VBR that is created in the Fast Link mode is uplinked to the router interface. The Fast Link mode helps automatically connect router interfaces that are created for the VBR and its peer VPC. Valid values:'."\n" - ."\n" - .'* **true**'."\n" - .'* **false**'."\n" - ."\n" - .'> '."\n" - ."\n" - .'* This parameter takes effect only if **RouterType** is set to **VBR** and **OppositeRouterType** is set to **VRouter**.'."\n" - ."\n" - .'* If **FastLinkMode** is set to **true**, **Role** must be set to **InitiatingSide**. In this case, **AccessPointId**, **OppositeRouterType**, **OpppsiteRouterId**, and **OppositeInterfaceOwnerId** are required.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - 'default' => 'false', - ], - ], - [ - 'name' => 'AutoRenew', - 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to enable auto-renewal. Valid values:'."\n" - ."\n" - .'* **false** (default)'."\n" - .'* **true**'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - 'default' => 'false', - ], - ], - [ - 'name' => 'ResourceGroupId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the resource group.'."\n" - ."\n" - .'For more information about resource group, see [What is Resource Management?](~~94475~~)'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'rg-acfmxazb4ph6aiy****', - ], - ], - [ - 'name' => 'Tags', - 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => 'The tag to add to the resource.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => 'The tag key to add to the resource. You must enter at least one tag key. You can specify up to 20 tag keys. The tag key cannot be an empty string.'."\n" - ."\n" - .'A tag key can be at most 128 characters in length. It cannot start with `aliyun` or `acs:`, and cannot contain `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'FinanceDept', - ], - 'Value' => [ - 'description' => 'The tag value to add to the resource. You can specify up to 20 tag values. The tag value can be an empty string.'."\n" - ."\n" - .'The tag value can be up to 128 characters in length and cannot start with `acs:` or `aliyun`. It cannot contain `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'FinanceJoshua', - ], - ], - 'required' => false, - ], - 'required' => false, - 'maxItems' => 20, - ], - ], + [ + 'apis' => [ + ['description' => 'Error codes changed, Response parameters changed', 'api' => 'CreateForwardEntry'], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '079874CD-AEC1-43E6-AC03-ADD96B6E4907', - ], - 'OrderId' => [ - 'description' => 'The order number. This parameter is returned if InstanceChargeType is set to PrePaid.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '202008594930117', - ], - 'RouterInterfaceId' => [ - 'description' => 'The ID of the router interface.'."\n", - 'type' => 'string', - 'example' => 'ri-2ze7fbuohm****', - ], - ], - ], - ], + 'createdAt' => '2023-03-30T03:54:26.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed, Response parameters changed', 'api' => 'AssociateEipAddress'], + ['description' => 'Error codes changed', 'api' => 'AssociateEipAddressBatch'], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InvalidPrice.NotFound', - 'errorMessage' => 'Pricing plan result not found.', - ], - [ - 'errorCode' => 'InvalidAliuid', - 'errorMessage' => 'Invalid Aliuid.', - ], - [ - 'errorCode' => 'InvalidRole.ValueNotSupported', - 'errorMessage' => 'The specified Role is not valid.', - ], - [ - 'errorCode' => 'InvalidSpec.ValudNotSupported', - 'errorMessage' => 'The specified Spec is not supported.', - ], - [ - 'errorCode' => 'InvalidRouterType.ValueNotSupported', - 'errorMessage' => 'The specified RouterType is not valid.', - ], - [ - 'errorCode' => 'InvalidName.Malformed', - 'errorMessage' => 'The specified "Name" is not valid.', - ], - [ - 'errorCode' => 'Forbidden.BillsOutstanding', - 'errorMessage' => 'You cannot create more RouterInterface because you have bills outstanding.', - ], - [ - 'errorCode' => 'LimitationExceed.InterfaceNumberOnRouter', - 'errorMessage' => 'Total number of RouterInterfaces on a Router exceeded.', - ], - [ - 'errorCode' => 'Forbidden.NotInRouterInterfaceCreateWhitelist', - 'errorMessage' => 'Not in router interface create whitelist.', - ], - [ - 'errorCode' => 'RI_CREATE_ONE_LIMIT_BY_SYNC', - 'errorMessage' => 'Create ri only one limit by sync.', - ], - [ - 'errorCode' => 'InvalidAccessPoint.ValueNotAllowed', - 'errorMessage' => 'The non-vbr router interface cannot have access point configured.', - ], - [ - 'errorCode' => 'InvalidParam.NotFound', - 'errorMessage' => 'Parameter must not be null,uid, bid,regionNo, remoteRegionNo, routerId or accessPointId', - ], - [ - 'errorCode' => 'InvalidAccessPoint.NotMatch', - 'errorMessage' => 'The accessPoint id is not matched', - ], - [ - 'errorCode' => 'InvalidAccessPoint.NotExist', - 'errorMessage' => 'The accessPoint not exit', - ], - [ - 'errorCode' => 'INVAID_VBR_STATUS', - 'errorMessage' => 'VBR status must be active', - ], - [ - 'errorCode' => 'IncorrectStatus.CenStatus', - 'errorMessage' => 'Cen status must not be middle status.', - ], - [ - 'errorCode' => 'Forbidden.AcceptRoleNotSupportPrePay', - 'errorMessage' => 'Acception side ri not support chargetype for prepaid.', - ], - [ - 'errorCode' => 'InvalidRouterInterfaceSpec.Malformed', - 'errorMessage' => 'Specified RouterInterface spec is not valid.', - ], - [ - 'errorCode' => 'VpcSubnet.NotFound', - 'errorMessage' => 'Vpc subnet not exist.', - ], - [ - 'errorCode' => 'IllegalParam.HealthcheckIp', - 'errorMessage' => 'Healthcheck ip cannot equal with instance ip.', - ], - [ - 'errorCode' => 'OperationFailed.HcForInvalidRiType', - 'errorMessage' => 'Healthchecksourceip and healthchecktargetip is only valid for vr ri that is connected to vbr.', - ], - [ - 'errorCode' => 'OperationFailed.SyncOrderToSub', - 'errorMessage' => 'SyncOrderToSub error.', - ], - [ - 'errorCode' => 'IllegalParam.CrossBorderBandwidth', - 'errorMessage' => 'CrossBorder bandwidth error.', - ], - [ - 'errorCode' => 'IllegalParam.VRouterType', - 'errorMessage' => 'The VRouterType is not supported.', - ], - [ - 'errorCode' => 'IllegalParam.Spec', - 'errorMessage' => 'The spec is illegal.', - ], - [ - 'errorCode' => 'Forbidden.CrossBorder', - 'errorMessage' => 'User not authorized to create cross border routerInterface.', - ], - [ - 'errorCode' => 'InvalidRouterId.NotFound', - 'errorMessage' => 'Param is not valid,this user does not have this router or aliuid bid regionNo and routerId must have something wrong.', - ], - [ - 'errorCode' => 'InvalidCommodity.NotFound', - 'errorMessage' => 'Commodity is not exist.', - ], - [ - 'errorCode' => 'InvalidRouterInterfaceChargeType.Malformed', - 'errorMessage' => 'Specified RouterInterface ChargeType is not valid.', - ], - [ - 'errorCode' => 'IllegalParam.RegionId', - 'errorMessage' => 'The specified regionId is illegal.', - ], - [ - 'errorCode' => 'PAY.MAYI_WITHHOLDING_AGREEMENT_ILLEGAL', - 'errorMessage' => 'User withhoding argeement is illegal.', - ], - [ - 'errorCode' => 'QuotaExceeded', - 'errorMessage' => 'RiPerUser quota exceeded', - ], - [ - 'errorCode' => 'OperationFailed.PconnTrafficNotEnable', - 'errorMessage' => 'The operation is failed because of PconnTrafficNotEnable.', - ], - [ - 'errorCode' => 'InvalidRegionId.NotFound', - 'errorMessage' => 'The regionId provided does not exist in ec region list.', - ], - [ - 'errorCode' => 'ResourceNotInResourceGroup', - 'errorMessage' => 'The specified resource is not in the specified ResourceGroup.', - ], - [ - 'errorCode' => 'HaveConnectionBetweenRouters', - 'errorMessage' => 'Have connection between routers', - ], - [ - 'errorCode' => 'InvalidDescription.Malformed', - 'errorMessage' => 'The specified "Description" is not valid.', - ], - [ - 'errorCode' => 'InvalidBandwidth.NotEnough', - 'errorMessage' => 'Bandwidth not enough.', - ], - [ - 'errorCode' => 'ForbiddenAction', - 'errorMessage' => 'The user does not support this action.', - ], - [ - 'errorCode' => 'OperationFailed.NotSupportIPv6', - 'errorMessage' => 'Router interface not support IPv6.', - ], - [ - 'errorCode' => 'InvalidParam.AvailableZoneId', - 'errorMessage' => 'The specified AvailableZoneId did not retrieve the corresponding cluster IP address.', - ], - [ - 'errorCode' => 'OperationFailed.NoAvailableAmount', - 'errorMessage' => 'The available amount of your account is less than 0, please recharge before attempting to purchase.', - ], - [ - 'errorCode' => 'OperationFailed.OperationLocked', - 'errorMessage' => 'Operation failed because OperationLocked.', - ], - [ - 'errorCode' => 'OperationFailed.InvalidEcGrant', - 'errorMessage' => 'The VBR have no grant to create EC.', - ], - [ - 'errorCode' => 'OperationFailed.CannotConnectOtherOwnerInstance', - 'errorMessage' => 'Can not connect with other owner VPC or CEN.', - ], - [ - 'errorCode' => 'InvalidParams.NotNull', - 'errorMessage' => 'params must not null.', - ], - ], - 404 => [ - [ - 'errorCode' => 'InvalidRegionId.NotFound', - 'errorMessage' => 'The regionId provided does not exist in our records.', - ], - [ - 'errorCode' => 'InvalidRouterId.NotFound', - 'errorMessage' => 'The specified RouterId does not exist in our recored.', - ], - [ - 'errorCode' => 'InvalidRouterId.AttacedToCEN', - 'errorMessage' => 'Can not create ri when attaced to CEN.', - ], - ], + 'createdAt' => '2023-03-23T06:18:02.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Request parameters changed, Response parameters changed', 'api' => 'CreateDhcpOptionsSet'], + ['description' => 'Request parameters changed, Response parameters changed, Response parameters changed', 'api' => 'CreateVpcGatewayEndpoint'], + ['description' => 'Response parameters changed', 'api' => 'GetDhcpOptionsSet'], + ['description' => 'Response parameters changed', 'api' => 'GetVpcGatewayEndpointAttribute'], + ['description' => 'Request parameters changed, Response parameters changed, Response parameters changed', 'api' => 'ListDhcpOptionsSets'], + ['description' => 'Request parameters changed, Response parameters changed, Response parameters changed', 'api' => 'ListVpcGatewayEndpoints'], + ['description' => 'Error codes changed', 'api' => 'ModifyIpv6InternetBandwidth'], + ['description' => 'Error codes changed, Response parameters changed', 'api' => 'TagResources'], + ['description' => 'Error codes changed', 'api' => 'UnTagResources'], + ], + 'createdAt' => '2023-03-21T02:10:07.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed, Response parameters changed', 'api' => 'CreateFullNatEntry'], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"079874CD-AEC1-43E6-AC03-ADD96B6E4907\\",\\n \\"OrderId\\": 20210101123456,\\n \\"RouterInterfaceId\\": \\"ri-2ze7fbuohm****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 079874CD-AEC1-43E6-AC03-ADD96B6E4907\\n 20210101123456\\n ri-2ze7fbuohm****\\n","errorExample":""}]', - 'title' => 'CreateRouterInterface', - 'description' => 'When you call this operation, take note of the following limits:'."\n" - ."\n" - .'* You can create only one pair of interfaces to be connected between two routers.'."\n" - .'* You can create a maximum of five router interfaces for a router.'."\n" - .'* If your Alibaba Cloud account has a router interface with overdue payments, you cannot create new router interfaces.'."\n" - .'* Each destination CIDR block of route entries in the same route table must be unique.'."\n" - .'* A virtual border router (VBR) can serve only as a requester. The VBR must be in the Activated state.'."\n" - .'* You can call this operation to create subscription and pay-as-you-go router interfaces.'."\n", - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', + 'createdAt' => '2023-03-20T13:09:18.000Z', + 'description' => '', ], - 'DeleteRouterInterface' => [ - 'summary' => 'Deletes a router interface.', - 'methods' => [ - 'post', - 'get', + [ + 'apis' => [ + ['description' => 'Response parameters changed', 'api' => 'AllocateEipSegmentAddress'], + ['description' => 'Error codes changed', 'api' => 'DeleteVSwitch'], ], - 'schemes' => [ - 'http', - 'https', + 'createdAt' => '2023-03-17T03:07:24.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Request parameters changed', 'api' => 'AddSourcesToTrafficMirrorSession'], + ['description' => 'Request parameters changed, Response parameters changed', 'api' => 'CreateTrafficMirrorSession'], + ['description' => 'Request parameters changed', 'api' => 'RemoveSourcesFromTrafficMirrorSession'], ], - 'security' => [ - [ - 'AK' => [], - ], + 'createdAt' => '2023-03-16T08:04:19.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed, Response parameters changed', 'api' => 'OpenFlowLogService'], ], - 'operationType' => 'write', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'delete', - 'riskType' => 'high', - 'chargeType' => 'paid', + 'createdAt' => '2023-03-16T06:10:31.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Request parameters changed', 'api' => 'CreatePhysicalConnection'], + ['description' => 'Request parameters changed', 'api' => 'CreateVirtualPhysicalConnection'], ], - 'parameters' => [ - [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region where the router interface is deployed.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cn-shanghai', - ], - ], - [ - 'name' => 'RouterInterfaceId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the router interface.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'ri-2zeo3xzyf38r4urz****', - ], - ], - [ - 'name' => 'ClientToken', - 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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.'."\n" - ."\n" - .'> 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.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '123e4567-e89b-12d3-a456-426655440000', - ], - ], + 'createdAt' => '2023-03-14T12:04:58.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'AllocateEipAddress'], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B45', - ], - ], - ], - ], + 'createdAt' => '2023-03-09T07:48:15.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed, Response parameters changed', 'api' => 'CreateRouteEntry'], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InvalidInstance.StatusError', - 'errorMessage' => 'The router instance status error.', - ], - [ - 'errorCode' => 'OperationFailed.OperationLocked', - 'errorMessage' => 'Operation failed because OperationLocked.', - ], - [ - 'errorCode' => 'RouterInterfaceReferredByRouteEntry', - 'errorMessage' => 'Router interface referred by route entry.', - ], - [ - 'errorCode' => 'ReferredByRouteEntry.RouterInterface', - 'errorMessage' => 'Router interface referred by route entry.', - ], - [ - 'errorCode' => 'InvalidRouteTable.NotFound', - 'errorMessage' => 'The specified routetable does not exist.', - ], - [ - 'errorCode' => 'Forbbiden.InvaildOwner', - 'errorMessage' => 'Incorrect RouterInterface owner.', - ], - ], + 'createdAt' => '2023-03-07T12:05:27.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Request parameters changed, Response parameters changed', 'api' => 'DeleteVpc'], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B45\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 54B48E3D-DF70-471B-AA93-08E683A1B45\\n","errorExample":""}]', - 'title' => 'DeleteRouterInterface', - 'description' => 'When you call this operation, take note of the following limits:'."\n" - ."\n" - .'* You can delete only a router interface that is in the **Idle** or **Inactive** state.'."\n" - .'* Before you delete a router interface, you must delete all custom route entries destined for the router interface.'."\n", + 'createdAt' => '2023-03-07T09:45:28.000Z', + 'description' => '', ], - 'DeleteExpressConnect' => [ - 'summary' => 'Deletes a Express Connect instance, including the initiator and acceptor.', - 'methods' => [ - 'post', - 'get', + [ + 'apis' => [ + ['description' => 'Response parameters changed', 'api' => 'DescribeFlowLogs'], ], - 'schemes' => [ - 'http', - 'https', + 'createdAt' => '2023-03-06T12:01:47.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Response parameters changed', 'api' => 'CreateForwardEntry'], + ['description' => 'Response parameters changed', 'api' => 'CreateNatGateway'], + ['description' => 'Response parameters changed', 'api' => 'CreateNatIpCidr'], + ['description' => 'Response parameters changed', 'api' => 'CreateSnatEntry'], + ['description' => 'Response parameters changed', 'api' => 'DeleteForwardEntry'], + ['description' => 'Response parameters changed', 'api' => 'DeleteNatIp'], + ['description' => 'Response parameters changed', 'api' => 'DeleteNatIpCidr'], + ['description' => 'Response parameters changed', 'api' => 'DeleteSnatEntry'], + ], + 'createdAt' => '2023-03-01T06:45:14.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Response parameters changed', 'api' => 'DescribeNatGateways'], ], - 'security' => [ - [ - 'AK' => [], - ], + 'createdAt' => '2023-02-28T22:01:19.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'AssociateHaVip'], + ['description' => 'Error codes changed', 'api' => 'CreateHaVip'], + ['description' => 'Error codes changed', 'api' => 'DeleteHaVip'], + ['description' => 'Error codes changed', 'api' => 'DescribeHaVips'], + ['description' => 'Error codes changed', 'api' => 'ModifyHaVipAttribute'], + ['description' => 'Error codes changed', 'api' => 'UnassociateHaVip'], + ], + 'createdAt' => '2023-01-11T06:07:00.000Z', + 'description' => '用户无操作HaVip权限错误码配置', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed, Response parameters changed', 'api' => 'AssociateHaVip'], + ['description' => 'Error codes changed, Response parameters changed', 'api' => 'CreateHaVip'], + ['description' => 'Error codes changed, Response parameters changed', 'api' => 'DeleteHaVip'], + ['description' => 'Error codes changed, Response parameters changed', 'api' => 'DescribeHaVips'], + ['description' => 'Error codes changed, Response parameters changed', 'api' => 'ModifyHaVipAttribute'], + ['description' => 'Error codes changed, Response parameters changed', 'api' => 'UnassociateHaVip'], + ], + 'createdAt' => '2023-01-10T15:26:05.000Z', + 'description' => '用户无权限操作HaVip错误码上线', + ], + [ + 'apis' => [ + ['description' => 'Request parameters changed', 'api' => 'CreateNatGateway'], ], - 'systemTags' => [ - 'operationType' => 'delete', + 'createdAt' => '2023-01-10T08:43:54.000Z', + 'description' => 'CreateNatGateway支持携带TAG', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed, Response parameters changed', 'api' => 'DescribeVcoRouteEntries'], ], - 'parameters' => [ - [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region where the Express Connect instance is deployed. Call the [DescribeRegion](https://www.alibabacloud.com/help/vpc/developer-reference/api-vpc-2016-04-28-describeregions?spm=a2c63.p38356.0.i2) operation to query the region list.', - 'type' => 'string', - 'required' => true, - 'example' => 'cn-shanghai', - ], - ], - [ - 'name' => 'RouterInterfaceId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the Express Connect instance.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'ri-119mfjz****', - ], - ], - [ - 'name' => 'Force', - 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to delete the route entries associated with the Express Connect instance.'."\n" - ."\n" - .'* **true**: forcefully deletes the snapshot'."\n" - .'* **false**'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], - ], - [ - 'name' => 'ClientToken', - 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'Use the client to generate the value, but you must ensure that it is unique among different requests. The token can contain only ASCII characters and cannot exceed 64 characters in length.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '02fb3da4-130e-11e9-8e44-00****', - ], - ], + 'createdAt' => '2023-01-10T08:00:46.000Z', + 'description' => '新增VpnConnection状态检查错误码提示', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'CreateVpnAttachment'], + ['description' => 'Error codes changed, Response parameters changed', 'api' => 'DescribeVpnGateways'], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '980960B0-2969-40BF-8542-EBB34FD358AB', - ], - ], - 'description' => '', - ], - ], + 'createdAt' => '2023-01-09T10:05:50.000Z', + 'description' => '新增错误码', + ], + [ + 'apis' => [ + ['description' => 'Response parameters changed', 'api' => 'GetVpcPrefixListAssociations'], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'IncorrectStatus.RouterInterface', - 'errorMessage' => 'This openeration would not be allowed because the status of this RouterInterface is not correct.', - ], - [ - 'errorCode' => 'DependencyViolation.RouterInterfaceReferedByRouteEntry', - 'errorMessage' => 'RouterInterface cannot be deleted when it is refered by a route table entry as next hop.', - ], - [ - 'errorCode' => 'InvalidRouterInterfaceChargeType.Malformed', - 'errorMessage' => 'The prepaid routerinterface can not delete.', - ], - [ - 'errorCode' => 'InvalidRouterInterfaceOppositeChargeType.Malformed', - 'errorMessage' => 'Opposite routerinterface is prepaid and can not delete.', - ], - [ - 'errorCode' => 'IncorrectStatus.Vpc', - 'errorMessage' => 'Vpc incorrect status.', - ], - [ - 'errorCode' => 'OperationFailed.OperationLocked', - 'errorMessage' => 'Operation failed because OperationLocked.', - ], - ], - 404 => [ - [ - 'errorCode' => 'InvalidRegionId.NotFound', - 'errorMessage' => 'The RegionId provided does not exist in our records.', - ], - [ - 'errorCode' => 'InvalidInstanceId.NotFound', - 'errorMessage' => 'The InstanceId provided does not exist in our records.', - ], - [ - 'errorCode' => 'InvalidRouterInterfaceId.NotFound', - 'errorMessage' => 'The routerInterface is not exist.', - ], - [ - 'errorCode' => 'IncorrectStatus.VSwitchOrRouteEntry', - 'errorMessage' => 'vpc has no stable subnet or route entry.', - ], - [ - 'errorCode' => 'DependencyViolation.ClassicLinkEcsRouteEntry', - 'errorMessage' => 'RouterInterface cannot be deleted when it is used by cross account classicLink.', - ], - ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'Internal system error.', - ], - ], + 'createdAt' => '2023-01-09T07:15:54.000Z', + 'description' => 'GetPrefixListAssociation出参返回前缀列表绑定资源所属UID', + ], + [ + 'apis' => [ + ['description' => 'Request parameters changed, Response parameters changed', 'api' => 'CreatePublicIpAddressPool'], + ['description' => 'Request parameters changed, Response parameters changed', 'api' => 'ListPublicIpAddressPools'], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"980960B0-2969-40BF-8542-EBB34FD358AB\\"\\n}","errorExample":""},{"type":"xml","example":"\\r\\n980960B0-2969-40BF-8542-EBB34FD358AB\\r\\n","errorExample":""}]', - 'title' => 'DeleteExpressConnect', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', + 'createdAt' => '2023-01-06T09:40:42.000Z', + 'description' => 'PublicIpAddressPool支持资源组和资源标签', ], - 'ModifyRouterInterfaceAttribute' => [ - 'summary' => 'Modifies the configuration of a router interface.', - 'methods' => [ - 'post', - 'get', + [ + 'apis' => [ + ['description' => 'Request parameters changed, Response parameters changed, Response parameters changed', 'api' => 'CreateVpcPrefixList'], + ['description' => 'Request parameters changed, Response parameters changed', 'api' => 'ListPrefixLists'], ], - 'schemes' => [ - 'http', - 'https', + 'createdAt' => '2023-01-06T09:31:45.000Z', + 'description' => 'PrefixList支持资源组和资源标签', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed, Response parameters changed', 'api' => 'CreateVpnRouteEntry'], + ['description' => 'Error codes changed, Response parameters changed', 'api' => 'DeleteVpnConnection'], ], - 'security' => [ - [ - 'AK' => [], - ], + 'createdAt' => '2023-01-06T06:22:02.000Z', + 'description' => '1、为接口DeleteVpnConnection新增错误码VpnGateway.FinancialLocked;2、为接口CreateVpnRouteEntry新增错误码IncorrectVpcStatus;', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed, Response parameters changed', 'api' => 'DeleteVSwitch'], ], - 'operationType' => 'write', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'update', - 'riskType' => 'none', - 'chargeType' => 'free', + 'createdAt' => '2023-01-05T08:03:26.000Z', + 'description' => '- 新增错误码 DependencyViolation.VSwitchCidrReservation.', + ], + [ + 'apis' => [ + ['description' => 'Response parameters changed', 'api' => 'CreateFullNatEntry'], + ['description' => 'Response parameters changed', 'api' => 'DeleteFullNatEntry'], + ['description' => 'Response parameters changed', 'api' => 'ListFullNatEntries'], + ['description' => 'Response parameters changed', 'api' => 'ModifyFullNatEntryAttribute'], + ], + 'createdAt' => '2023-01-04T09:37:31.000Z', + 'description' => '修改fullnat相关API的超时时间和限流', + ], + [ + 'apis' => [ + ['description' => 'Request parameters changed, Error codes changed', 'api' => 'DescribeGrantRulesToCen'], + ], + 'createdAt' => '2023-01-03T06:55:38.000Z', + 'description' => '- Terraform接入补充Attachment资源类型', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed, Response parameters changed', 'api' => 'CreateCustomerGateway'], + ['description' => 'Error codes changed', 'api' => 'CreateVpnAttachment'], + ['description' => 'Error codes changed, Response parameters changed', 'api' => 'CreateVpnConnection'], + ['description' => 'Error codes changed, Response parameters changed', 'api' => 'CreateVpnGateway'], + ['description' => 'Response parameters changed', 'api' => 'DescribeCustomerGateway'], + ['description' => 'Error codes changed, Response parameters changed', 'api' => 'DescribeCustomerGateways'], + ['description' => 'Error codes changed, Response parameters changed', 'api' => 'DescribeVpnAttachments'], + ['description' => 'Response parameters changed', 'api' => 'DescribeVpnConnection'], + ['description' => 'Error codes changed, Response parameters changed', 'api' => 'DescribeVpnConnections'], + ], + 'createdAt' => '2022-12-27T12:19:16.000Z', + 'description' => 'VPN support tag.', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'CreateCustomerGateway'], + ['description' => 'Error codes changed', 'api' => 'DeleteVpnGateway'], + ['description' => 'Error codes changed', 'api' => 'DescribeCustomerGateway'], + ['description' => 'Error codes changed', 'api' => 'DescribeVpnGateways'], + ['description' => 'Error codes changed', 'api' => 'ModifyVpnGatewayAttribute'], + ], + 'createdAt' => '2022-12-27T03:27:57.000Z', + 'description' => '修复部分错误码的拼写错误', + ], + [ + 'apis' => [ + ['description' => 'Request parameters changed', 'api' => 'CreateVirtualPhysicalConnection'], + ], + 'createdAt' => '2022-12-22T07:46:01.000Z', + 'description' => '取消设置Vpconn用户侧资源组的参数', + ], + [ + 'apis' => [ + ['description' => 'Request parameters changed, Error codes changed', 'api' => 'DescribeRegions'], + ], + 'createdAt' => '2022-12-22T03:01:24.000Z', + 'description' => '变更资源标签的tagCode', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'CreateVcoRouteEntry'], + ['description' => 'Error codes changed', 'api' => 'CreateVpnPbrRouteEntry'], + ], + 'createdAt' => '2022-12-16T10:11:22.000Z', + 'description' => '新增错误码', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'DescribeNatGateways'], + ['description' => 'Error codes changed', 'api' => 'ListFullNatEntries'], + ], + 'createdAt' => '2022-12-16T06:14:04.000Z', + 'description' => '添加错误码,修改后端接口超时时间', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'ActiveFlowLog'], + ['description' => 'Error codes changed', 'api' => 'DeactiveFlowLog'], + ['description' => 'Error codes changed', 'api' => 'DeleteFlowLog'], + ['description' => 'Error codes changed', 'api' => 'ModifyFlowLogAttribute'], + ], + 'createdAt' => '2022-12-16T05:09:13.000Z', + 'description' => '流日志支持托管', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'CreateVirtualPhysicalConnection'], + ], + 'createdAt' => '2022-12-15T01:36:42.000Z', + 'description' => '修复错误码特殊字符', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'DeleteFullNatEntry'], + ], + 'createdAt' => '2022-12-13T10:55:41.000Z', + 'description' => '新增DeleteFullNatEntry接口错误码。', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'CreateVpnRouteEntry'], + ['description' => 'Error codes changed', 'api' => 'DeleteVcoRouteEntry'], + ['description' => 'Error codes changed', 'api' => 'DeleteVpnPbrRouteEntry'], + ['description' => 'Error codes changed', 'api' => 'DeleteVpnRouteEntry'], + ['description' => 'Error codes changed', 'api' => 'ModifyVcoRouteEntryWeight'], + ], + 'createdAt' => '2022-12-13T03:51:41.000Z', + 'description' => '增加错误码', + ], + [ + 'apis' => [ + ['description' => 'Request parameters changed', 'api' => 'ModifyVpnAttachmentAttribute'], + ], + 'createdAt' => '2022-12-08T12:26:32.000Z', + 'description' => '修改ModifyVpnAttachmentAttribute接口中的CustomerGatewayId参数可见性为public', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'CreateIpsecServer'], + ['description' => 'Error codes changed', 'api' => 'CreateVpnAttachment'], + ['description' => 'Error codes changed', 'api' => 'CreateVpnConnection'], + ['description' => 'Error codes changed', 'api' => 'DeleteVpnConnection'], + ['description' => 'Error codes changed', 'api' => 'ModifyVpnAttachmentAttribute'], + ['description' => 'Error codes changed', 'api' => 'ModifyVpnConnectionAttribute'], + ['description' => 'Error codes changed', 'api' => 'ModifyVpnPbrRouteEntryAttribute'], + ], + 'createdAt' => '2022-12-08T09:37:41.000Z', + 'description' => '1、在部分API中新增错误码;2、修改部分错误码的错误消息,删除错误消息中的特殊字符;', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'GrantInstanceToCen'], + ], + 'createdAt' => '2022-12-08T09:19:28.000Z', + 'description' => '支持vbr跨账号加载cen限制。', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'CreateVirtualBorderRouter'], + ], + 'createdAt' => '2022-12-07T08:23:02.000Z', + 'description' => '错误码特殊字符修复。', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'DeleteTrafficMirrorFilterRules'], + ['description' => 'Error codes changed', 'api' => 'DeleteTrafficMirrorSession'], + ], + 'createdAt' => '2022-12-07T06:35:18.000Z', + 'description' => '添加错误码 IncorrectStatus.TrafficMirrorFilter', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'DescribeVcoRouteEntries'], + ], + 'createdAt' => '2022-12-07T04:05:11.000Z', + 'description' => '1、在DescribeVcoRouteEntries接口新增错误码InvalidVpnConnectionInstanceId.NotFound;2、删除DescribeVcoRouteEntries接口中的IllegalParam.RouteEntryType错误码的错误消息的引号;', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'CreateBgpGroup'], + ], + 'createdAt' => '2022-12-06T07:37:33.000Z', + 'description' => '无变更', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'AssociateEipAddress'], + ['description' => 'Error codes changed', 'api' => 'CreateRouteEntry'], + ], + 'createdAt' => '2022-12-05T09:32:57.000Z', + 'description' => '增加错误码信息', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'CreateVirtualBorderRouter'], + ['description' => 'Error codes changed', 'api' => 'CreateVirtualPhysicalConnection'], + ['description' => 'Error codes changed', 'api' => 'UpdateVirtualPhysicalConnection'], + ], + 'createdAt' => '2022-12-05T08:00:02.000Z', + 'description' => '修复UpdateVirtualPhysicalConnection、CreateVirtualBorderRouter、CreateVirtualPhysicalConnection等API的Error Code', + ], + [ + 'apis' => [ + ['description' => 'Request parameters changed', 'api' => 'CreateRouterInterface'], + ['description' => 'Error codes changed', 'api' => 'ModifyRouterInterfaceSpec'], + ], + 'createdAt' => '2022-12-05T07:57:36.000Z', + 'description' => 'createRouterInterface 公开fastlinkmode参数ModifyRouterInterfaceSpec 修改错误码信息', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'AllocateEipAddress'], + ], + 'createdAt' => '2022-12-05T07:00:12.000Z', + 'description' => '错误码映射更新', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'AssociateEipAddress'], + ], + 'createdAt' => '2022-12-05T06:59:01.000Z', + 'description' => '错误映射信息更新', + ], + [ + 'apis' => [ + ['description' => 'Response parameters changed', 'api' => 'DescribeEipAddresses'], + ], + 'createdAt' => '2022-12-02T10:02:15.000Z', + 'description' => 'EIP对象中AvailableRegions属性已经不再使用,隐藏该字段。', + ], + [ + 'apis' => [ + ['description' => 'Response parameters changed', 'api' => 'DescribeEipMonitorData'], + ], + 'createdAt' => '2022-12-02T09:41:29.000Z', + 'description' => 'eipFlow 返回字段已经正常.', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'AllocateEipAddress'], + ['description' => 'Error codes changed', 'api' => 'AllocateEipAddressPro'], + ], + 'createdAt' => '2022-12-02T08:09:03.000Z', + 'description' => '添加错误码映射', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'CreateForwardEntry'], + ['description' => 'Error codes changed', 'api' => 'ModifyForwardEntry'], + ], + 'createdAt' => '2022-12-02T02:41:21.000Z', + 'description' => '新增错误码,dnatsession', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'CreateVpnGateway'], + ['description' => 'Response parameters changed', 'api' => 'DescribeVpnGateway'], + ['description' => 'Error codes changed', 'api' => 'ModifyVpnAttachmentAttribute'], + ], + 'createdAt' => '2022-12-02T02:39:13.000Z', + 'description' => 'VPN SSL日志查询接口和Ipsec隧道日志查询接口增加RAM鉴权', + ], + [ + 'apis' => [ + ['description' => 'Request parameters changed', 'api' => 'CreatePhysicalConnection'], + ['description' => 'Request parameters changed', 'api' => 'CreateVirtualPhysicalConnection'], + ['description' => 'Request parameters changed, Response parameters changed', 'api' => 'DescribePhysicalConnections'], + ['description' => 'Request parameters changed, Response parameters changed', 'api' => 'ListVirtualPhysicalConnections'], + ], + 'createdAt' => '2022-12-02T02:31:41.000Z', + 'description' => '高速通道资源转组接口', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'AddCommonBandwidthPackageIp'], + ['description' => 'Error codes changed', 'api' => 'AddCommonBandwidthPackageIps'], + ['description' => 'Error codes changed', 'api' => 'AssociateEipAddress'], + ['description' => 'Error codes changed', 'api' => 'CancelCommonBandwidthPackageIpBandwidth'], + ['description' => 'Error codes changed', 'api' => 'ModifyCommonBandwidthPackageIpBandwidth'], + ['description' => 'Error codes changed', 'api' => 'ModifyEipAddressAttribute'], + ['description' => 'Error codes changed', 'api' => 'RemoveCommonBandwidthPackageIp'], + ], + 'createdAt' => '2022-11-29T10:24:38.000Z', + 'description' => '增加错误码', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'ListFullNatEntries'], + ], + 'createdAt' => '2022-11-29T07:14:00.000Z', + 'description' => '修改ListFullNatEntries错误码', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'ReleaseEipAddress'], + ], + 'createdAt' => '2022-11-28T03:45:21.000Z', + 'description' => '错误码更新', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'DeleteRouterInterface'], + ], + 'createdAt' => '2022-11-28T02:50:58.000Z', + 'description' => 'DeleteRI新增错误码', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'CreateNatGateway'], + ], + 'createdAt' => '2022-11-25T07:51:22.000Z', + 'description' => '创建vpc nat支持修改安全组', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'AllocateEipAddress'], + ['description' => 'Error codes changed', 'api' => 'UnassociateEipAddress'], + ], + 'createdAt' => '2022-11-25T03:42:30.000Z', + 'description' => '错误码更新', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'AddPublicIpAddressPoolCidrBlock'], + ['description' => 'Error codes changed', 'api' => 'DeletePublicIpAddressPool'], + ['description' => 'Error codes changed', 'api' => 'DeletePublicIpAddressPoolCidrBlock'], + ['description' => 'Response parameters changed', 'api' => 'ListPublicIpAddressPools'], + ['description' => 'Error codes changed', 'api' => 'UpdatePublicIpAddressPoolAttribute'], + ], + 'createdAt' => '2022-11-24T13:02:14.000Z', + 'description' => '地址池支持跨账号授权', + ], + [ + 'apis' => [ + ['description' => 'Request parameters changed', 'api' => 'CreateVpcPrefixList'], + ], + 'createdAt' => '2022-11-21T06:06:02.000Z', + 'description' => '修复CreateVpcPrefixList中入参名称不标准问题', + ], + [ + 'apis' => [ + ['description' => 'Request parameters changed', 'api' => 'ListDhcpOptionsSets'], + ], + 'createdAt' => '2022-11-18T07:27:59.000Z', + 'description' => '- API文档修改ListDhcpOptionsSet入参NextToken为可选', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'AllocateEipSegmentAddress'], + ['description' => 'Error codes changed', 'api' => 'AssociateEipAddress'], + ['description' => 'Error codes changed', 'api' => 'ReleaseEipAddress'], + ['description' => 'Error codes changed', 'api' => 'UnassociateEipAddress'], + ], + 'createdAt' => '2022-11-17T11:38:39.000Z', + 'description' => '修复错误码英文翻译', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'AllocateEipAddress'], + ], + 'createdAt' => '2022-11-17T10:06:58.000Z', + 'description' => '修复错误码英文翻译错误', + ], + [ + 'apis' => [ + ['description' => 'Response parameters changed', 'api' => 'DescribeVirtualBorderRouters'], + ], + 'createdAt' => '2022-11-16T03:02:42.000Z', + 'description' => '1、DescribeVirtualBorderRouters 支持返回bandwidth字段', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed, Request parameters changed', 'api' => 'ModifyNatGatewayAttribute'], + ], + 'createdAt' => '2022-11-16T02:20:06.000Z', + 'description' => 'NAT网关支持打开兼容Ipv4网关模式', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'CreateForwardEntry'], + ['description' => 'Request parameters changed', 'api' => 'CreateNatIpCidr'], + ['description' => 'Error codes changed', 'api' => 'CreateSnatEntry'], + ['description' => 'Error codes changed', 'api' => 'DeleteNatIpCidr'], + ['description' => 'Error codes changed', 'api' => 'ModifyForwardEntry'], + ['description' => 'Error codes changed', 'api' => 'ModifySnatEntry'], + ], + 'createdAt' => '2022-11-07T11:36:44.000Z', + 'description' => '新增错误码,创建natipcidr,natipcidr 参数必填', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed, Request parameters changed', 'api' => 'ModifyBgpGroupAttribute'], + ], + 'createdAt' => '2022-11-07T04:10:24.000Z', + 'description' => 'ModifyBgpGroupAttribute 接口支持清空bgp秘钥', + ], + [ + 'apis' => [ + ['description' => 'Response parameters changed', 'api' => 'GetVpcPrefixListAssociations'], + ['description' => 'Response parameters changed', 'api' => 'GetVpcPrefixListEntries'], + ['description' => 'Response parameters changed', 'api' => 'ListPrefixLists'], + ], + 'createdAt' => '2022-11-07T02:59:25.000Z', + 'description' => '查询PrefixList相关接口,增加regionId出参', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed, Request parameters changed', 'api' => 'AssociateEipAddress'], + ['description' => 'Response parameters changed', 'api' => 'DescribeEipAddresses'], + ['description' => 'Response parameters changed', 'api' => 'ListGatewayRouteTableEntries'], + ], + 'createdAt' => '2022-11-03T13:38:06.000Z', + 'description' => 'Eip support binding IpAddress.', + ], + [ + 'apis' => [ + ['description' => 'Request parameters changed', 'api' => 'UnassociateVpcCidrBlock'], + ], + 'createdAt' => '2022-11-03T13:35:16.000Z', + 'description' => '解绑接口对外透出ipv6Cidr解绑参数', + ], + [ + 'apis' => [ + ['description' => 'Response parameters changed', 'api' => 'DescribeEipAddresses'], + ], + 'createdAt' => '2022-11-02T10:28:16.000Z', + 'description' => 'Eip返回增加Zone属性', + ], + [ + 'apis' => [ + ['description' => 'Response parameters changed', 'api' => 'ListPublicIpAddressPools'], + ], + 'createdAt' => '2022-10-27T13:21:04.000Z', + 'description' => 'ListPublicIpAddressPools返回结果PublicIpCidrBlockList字段置为私有,文档后续更新。', + ], + [ + 'apis' => [ + ['description' => 'Request parameters changed', 'api' => 'CreateDhcpOptionsSet'], + ['description' => 'Response parameters changed', 'api' => 'GetDhcpOptionsSet'], + ['description' => 'Request parameters changed', 'api' => 'UpdateDhcpOptionsSetAttribute'], + ], + 'createdAt' => '2022-10-27T07:37:15.000Z', + 'description' => 'dhcp选项集影藏TFTPServerName,BootFileName属性', + ], + [ + 'apis' => [ + ['description' => 'Response parameters changed', 'api' => 'CreatePhysicalConnectionOccupancyOrder'], + ], + 'createdAt' => '2022-10-25T15:14:02.000Z', + 'description' => '控制台调用的两个openapi:获取当前用户可以看到的region list,获取当前用户可以看到的ap list。CreatePhysicalConnectionOccupancyOrder出参增加orderId', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed, Request parameters changed', 'api' => 'CreateFlowLog'], + ], + 'createdAt' => '2022-10-18T15:25:28.000Z', + 'description' => '创建flowlog增加trafficPath入参', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'CreateVpc'], + ['description' => 'Error codes changed', 'api' => 'ModifyVRouterAttribute'], + ], + 'createdAt' => '2022-10-17T02:12:39.000Z', + 'description' => '修改错误码', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'AllocateEipAddress'], + ], + 'createdAt' => '2022-10-14T07:54:22.000Z', + 'description' => 'add 5XX ErrorCode', + ], + [ + 'apis' => [ + ['description' => 'Request parameters changed', 'api' => 'DescribeVirtualBorderRouters'], + ], + 'createdAt' => '2022-10-14T07:11:56.000Z', + 'description' => '支持跨账号查询vbr', + ], + [ + 'apis' => [ + ['description' => 'Response parameters changed', 'api' => 'DescribeFlowLogs'], + ], + 'createdAt' => '2022-10-13T02:22:06.000Z', + 'description' => '查询flowlog返回serviceType和trafficPath', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'CreateHaVip'], + ], + 'createdAt' => '2022-10-13T02:01:05.000Z', + 'description' => '补全创建havip超过quotaLimit错误码', + ], + [ + 'apis' => [ + ['description' => 'Request parameters changed, Response parameters changed', 'api' => 'DescribeRouteEntryList'], + ['description' => 'OpenAPI offline', 'api' => 'GetVpcRouteEntrySummary'], + ], + 'createdAt' => '2022-09-29T04:39:30.000Z', + 'description' => '路由支持可托管', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'CreateCommonBandwidthPackage'], + ], + 'createdAt' => '2022-09-27T07:25:56.000Z', + 'description' => '修改共享带宽错误码映射', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'CreateVpc'], + ], + 'createdAt' => '2022-09-27T06:29:21.000Z', + 'description' => '补全创建vpc时错误码映射', + ], + [ + 'apis' => [ + ['description' => 'Response parameters changed', 'api' => 'ListFullNatEntries'], + ], + 'createdAt' => '2022-09-23T02:26:58.000Z', + 'description' => '兼容接入RMC,需要在fullnatentry暴露fullnattableId', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed, Request parameters changed', 'api' => 'DescribeForwardTableEntries'], + ['description' => 'Error codes changed, Request parameters changed', 'api' => 'DescribeSnatTableEntries'], + ], + 'createdAt' => '2022-09-19T02:48:37.000Z', + 'description' => 'describeSnatTableEntries、describeForwardTableEntries、describeFullnatTableEntries支持使用natGatewayId查询', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'DescribeRouteEntryList'], + ['description' => 'Error codes changed', 'api' => 'DescribeRouteEntryList'], + ], + 'createdAt' => '2022-09-15T02:11:54.000Z', + 'description' => '使用普通路由条目查询接口查询网关路由表路由条目,错误码映射。', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'CreateRouterInterface'], + ['description' => 'Error codes changed', 'api' => 'CreateRouterInterface'], + ['description' => 'Response parameters changed', 'api' => 'DescribeRouterInterfaces'], + ['description' => 'Response parameters changed', 'api' => 'DescribeRouterInterfaces'], + ], + 'createdAt' => '2022-09-14T08:08:18.000Z', + 'description' => 'CreateRouterInterface接口支持fastlinkmode模式进行创建(即同时创建两端RI并发起连接)', + ], + [ + 'apis' => [ + ['description' => 'Response parameters changed', 'api' => 'DescribeNatGateways'], + ], + 'createdAt' => '2022-09-01T06:11:20.000Z', + 'description' => '新增EipBindMode参数在describeNatGateways', + ], + [ + 'apis' => [ + ['description' => 'Response parameters changed', 'api' => 'DescribeEipAddresses'], + ], + 'createdAt' => '2022-08-31T07:38:51.000Z', + 'description' => 'DescribeEipAddresses增加tag返回值', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed, Response parameters changed', 'api' => 'OpenFlowLogService'], + ], + 'createdAt' => '2022-08-29T11:05:29.000Z', + 'description' => 'flowlog服务开通增加错误码', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'AssociateEipAddress'], + ], + 'createdAt' => '2022-08-29T01:44:09.000Z', + 'description' => 'AssociateEipAddress接口增加错误码映射', + ], + [ + 'apis' => [ + ['description' => 'Request parameters changed, Response parameters changed', 'api' => 'DescribeNatGateways'], + ], + 'createdAt' => '2022-08-26T07:42:34.000Z', + 'description' => 'DescribeNatGateways接口支持指定Tag,返回NAT网关实例信息里也携带TAG', + ], + [ + 'apis' => [ + ['description' => 'OpenAPI offline', 'api' => 'GetFlowLogServiceStatus'], + ], + 'createdAt' => '2022-08-26T02:45:25.000Z', + 'description' => 'VpcFlowLog服务开通接口、及服务状态查询接口上线', + ], + [ + 'apis' => [ + ['description' => 'Response parameters changed', 'api' => 'DescribePublicIpAddress'], + ], + 'createdAt' => '2022-08-19T12:01:12.000Z', + 'description' => '修改DescribePublicIpAddress api', + ], + [ + 'apis' => [ + ['description' => 'Request parameters changed, Response parameters changed', 'api' => 'DescribePublicIpAddress'], + ], + 'createdAt' => '2022-08-19T08:16:58.000Z', + 'description' => 'DescribePublicIpAddress接口公开', + ], + [ + 'apis' => [ + ['description' => 'Request parameters changed', 'api' => 'CreateNatGateway'], + ], + 'createdAt' => '2022-08-12T13:23:06.000Z', + 'description' => 'EipBindMode增加默认值MULTI_BINDED', + ], + [ + 'apis' => [ + ['description' => 'Request parameters changed', 'api' => 'CreateNatGateway'], + ], + 'createdAt' => '2022-08-09T11:27:46.000Z', + 'description' => '支持通过openapi创建EipBindMode为MULTI_BINDED的NAT', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'CreateNatGateway'], + ], + 'createdAt' => '2022-08-05T02:26:58.000Z', + 'description' => '修改了创建增强型nat配额超限错误码', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'DescribeVRouters'], + ], + 'createdAt' => '2022-08-04T11:48:56.000Z', + 'description' => '企业级能力升级 vpc操作审计信息补充', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'CreateNatGateway'], + ], + 'createdAt' => '2022-08-03T09:50:52.000Z', + 'description' => '新增创建NAT网关失败的错误码', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'CreateVpcPrefixList'], + ], + 'createdAt' => '2022-08-03T07:33:03.000Z', + 'description' => '补充错误码', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'DescribeIpv6Gateways'], + ], + 'createdAt' => '2022-07-29T04:11:10.000Z', + 'description' => 'Ipv6网关购买流程优化', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'CreateNatGateway'], + ['description' => 'Error codes changed', 'api' => 'ModifyNatGatewaySpec'], + ], + 'createdAt' => '2022-07-22T07:55:31.000Z', + 'description' => 'CreateNatGateway和ModifyNatGatewaySpec接口新增错误码', + ], + [ + 'apis' => [ + ['description' => 'Request parameters changed', 'api' => 'CreateSnatEntry'], + ], + 'createdAt' => '2022-07-22T06:29:04.000Z', + 'description' => '公网nat支持eip亲和性', + ], + [ + 'apis' => [ + ['description' => 'Request parameters changed', 'api' => 'CreateTrafficMirrorFilter'], + ['description' => 'Request parameters changed', 'api' => 'CreateTrafficMirrorFilterRules'], ], - 'parameters' => [ - [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the router interface.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cn-shanghai', - ], - ], - [ - 'name' => 'RouterInterfaceId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the router interface.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'ri-2zeo3xzyf38r4urz****', - ], - ], - [ - 'name' => 'Name', - 'in' => 'query', - 'schema' => [ - 'description' => 'The name of the router interface.'."\n" - ."\n" - .'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.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'TEST', - ], - ], - [ - 'name' => 'Description', - 'in' => 'query', - 'schema' => [ - 'description' => 'The description of the router interface.'."\n" - ."\n" - .'The value must be 2 to 256 characters in length. It must start with a letter but cannot start with `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'The description of the router interface.', - ], - ], - [ - 'name' => 'OppositeInterfaceId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the peer router interface.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'ri-2zeo3xzyf38r4urz****', - ], - ], - [ - 'name' => 'OppositeRouterId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the peer router.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'vrt-bp1jcg5cmxjbl9xgc****', - ], - ], - [ - 'name' => 'OppositeRouterType', - 'in' => 'query', - 'schema' => [ - 'description' => 'The type of router to which the peer router interface belongs. Valid values:'."\n" - ."\n" - .'* **VRouter**'."\n" - .'* **VBR** (default)'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'VBR', - ], - ], - [ - 'name' => 'OppositeInterfaceOwnerId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the Alibaba Cloud account to which the peer router interface belongs.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '28768383240243****', - ], - ], - [ - 'name' => 'HealthCheckSourceIp', - 'in' => 'query', - 'schema' => [ - 'description' => 'The source IP address that is used to perform health checks. The source IP address must be an idle IP address of the local virtual private cloud (VPC).'."\n" - ."\n" - .'> You can set this parameter when an Express Connect circuit is used.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '116.62.XX.XX', - ], - ], - [ - 'name' => 'HealthCheckTargetIp', - 'in' => 'query', - 'schema' => [ - 'description' => 'The destination IP address that is used to perform health checks.'."\n" - ."\n" - .'> This parameter is required when **HealthCheckSourceIp** is specified.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '116.62.XX.XX', - ], - ], - [ - 'name' => 'HcThreshold', - 'in' => 'query', - 'schema' => [ - 'description' => 'The healthy threshold. Unit: packets. We recommend that you set the value to **8**. This value specifies the number of probe packets that are sent during a health check.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '8', - ], - ], - [ - 'name' => 'HcRate', - 'in' => 'query', - 'schema' => [ - 'description' => 'The rate of health checks. Unit: milliseconds. The recommended value is **2000**. This value specifies the interval at which probe packets are sent during a health check.'."\n" - ."\n" - .'In this example, **HcThreshold** is set to **8** and **HcRate** is set to **2000**. In this example, probe packets are sent from **HealthCheckSourceIp** (source address) to **HealthCheckTargetIp** (destination address) every 2,000 seconds. If no response is returned for eight consecutive times, the health check fails.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '2000', - ], - ], - [ - 'name' => 'DeleteHealthCheckIp', - 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to delete the health check IP addresses configured on the router interface. Valid values:'."\n" - ."\n" - .'* **true**'."\n" - .'* **false** (default)'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], - ], + 'createdAt' => '2022-07-21T09:48:00.000Z', + 'description' => '流量镜像修改API 字段必填性说明', + ], + [ + 'apis' => [ + ['description' => 'OpenAPI offline', 'api' => 'DeleteVpcPrefixList'], + ['description' => 'OpenAPI offline', 'api' => 'GetVpcPrefixListAssociations'], + ['description' => 'OpenAPI offline', 'api' => 'GetVpcPrefixListEntries'], + ['description' => 'Request parameters changed, Response parameters changed', 'api' => 'ListPrefixLists'], + ['description' => 'OpenAPI offline', 'api' => 'ModifyVpcPrefixList'], + ['description' => 'OpenAPI offline', 'api' => 'RetryVpcPrefixListAssociation'], + ], + 'createdAt' => '2022-07-18T12:45:20.000Z', + 'description' => 'vpc支持prefixList功能', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'DeleteCommonBandwidthPackage'], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '4EC47282-1B74-4534-BD0E-403F3EE64CAF', - ], - ], - ], - ], + 'createdAt' => '2022-07-12T11:39:23.000Z', + 'description' => '增加错误码映射', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'ModifyCommonBandwidthPackageSpec'], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'Forbidden.FinancialLocked', - 'errorMessage' => 'This RouterInterface is financiel locked because of bills outstanding.', - ], - [ - 'errorCode' => 'InvalidName.Malformed', - 'errorMessage' => 'The attribute name is illegal.', - ], - [ - 'errorCode' => 'InvalidOppositeRouterType.ValueNotSupported', - 'errorMessage' => 'The specified OppositeRouterType is not valid.', - ], - [ - 'errorCode' => 'InvalidDescription.Malformed', - 'errorMessage' => 'The Description is illegal.', - ], - [ - 'errorCode' => 'Forbbiden', - 'errorMessage' => 'The Router instance owner error', - ], - [ - 'errorCode' => 'LinkRole.NotSupport', - 'errorMessage' => 'This linkrole is not supported', - ], - [ - 'errorCode' => 'Forbbiden.ModifyIdAndType', - 'errorMessage' => 'Opposite is VBR, cannot modify the ID and type', - ], - [ - 'errorCode' => 'InvalidParam.ModifyRouterInterface', - 'errorMessage' => 'Modify routerinterface param invalid', - ], - [ - 'errorCode' => 'INSTANCE_IN_PROCESSIONG', - 'errorMessage' => 'Instance is in processing,please wait and try again', - ], - [ - 'errorCode' => 'IllegalParam.HcThreshold', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'IllegalParam.HcRate', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'InvalidHealthCheckIP.Malformd', - 'errorMessage' => 'Healthcheck sourceip or targetip is not valid.', - ], - [ - 'errorCode' => 'IllegalParam.HcSourceIp', - 'errorMessage' => 'The specified healthCheck Ip is not valid.', - ], - [ - 'errorCode' => 'OperationFailed.OperationLocked', - 'errorMessage' => 'Operation failed because OperationLocked.', - ], - [ - 'errorCode' => 'IncorrectStatus.RouterInterface', - 'errorMessage' => 'This openeration would not be allowed because status of this RouterInterface is not correct.', - ], - ], - 404 => [ - [ - 'errorCode' => 'InvalidRegionId.NotFound', - 'errorMessage' => 'The specified RegionId does not exist in our records.', - ], - [ - 'errorCode' => 'InvalidRouterInterfaceId.NotFound', - 'errorMessage' => 'The specified RouterInterfaceId does not exist in our records.', - ], - ], + 'createdAt' => '2022-07-12T11:34:38.000Z', + 'description' => '优化错误码', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'AssociateNetworkAcl'], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'createdAt' => '2022-07-12T08:36:51.000Z', + 'description' => 'API增加错误码提示', + ], + [ + 'apis' => [ + ['description' => 'Request parameters changed', 'api' => 'CreateTrafficMirrorFilter'], + ['description' => 'Request parameters changed', 'api' => 'CreateTrafficMirrorFilterRules'], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"4EC47282-1B74-4534-BD0E-403F3EE64CAF\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 4EC47282-1B74-4534-BD0E-403F3EE64CAF\\n","errorExample":""}]', - 'title' => 'ModifyRouterInterfaceAttribute', + 'createdAt' => '2022-07-11T03:25:55.000Z', + 'description' => '修正API字段必填性说明', ], - 'ModifyRouterInterfaceSpec' => [ - 'summary' => 'Modifies the specification of a router interface.', - 'methods' => [ - 'post', - 'get', + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'ListFullNatEntries'], ], - 'schemes' => [ - 'http', - 'https', + 'createdAt' => '2022-06-20T02:22:00.000Z', + 'description' => 'ListFullNatEntries新增错误码', + ], + [ + 'apis' => [ + ['description' => 'Request parameters changed', 'api' => 'CreateBgpPeer'], ], - 'security' => [ - [ - 'AK' => [], - ], + 'createdAt' => '2022-06-09T02:29:12.000Z', + 'description' => '修改createBgpPeer的EnableBfd属性默认为false', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'ModifyRouterInterfaceAttribute'], ], - 'operationType' => 'write', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'update', - 'riskType' => 'none', - 'chargeType' => 'paid', + 'createdAt' => '2022-05-27T02:47:42.000Z', + 'description' => '修改modifyRouterInterfaceAttribute错误描述', + ], + [ + 'apis' => [ + ['description' => 'Response parameters changed', 'api' => 'DescribeNatGateways'], ], - 'parameters' => [ - [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region where the router interface is deployed.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cn-hangzhou', - ], - ], - [ - 'name' => 'RouterInterfaceId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the router interface.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'ri-2zeo3xzyf38r4urzd****', - ], - ], - [ - 'name' => 'Spec', - 'in' => 'query', - 'schema' => [ - 'description' => 'The specification of the router interface. Valid specifications and bandwidth values:'."\n" - ."\n" - .'* **Mini.2**: 2 Mbit/s'."\n" - .'* **Mini.5**: 5 Mbit/s'."\n" - .'* **Small.1**: 10 Mbit/s'."\n" - .'* **Small.2**: 20 Mbit/s'."\n" - .'* **Small.5**: 50 Mbit/s'."\n" - .'* **Middle.1**: 100 Mbit/s'."\n" - .'* **Middle.2**: 200 Mbit/s'."\n" - .'* **Middle.5**: 500 Mbit/s'."\n" - .'* **Large.1**: 1,000 Mbit/s'."\n" - .'* **Large.2**: 2,000 Mbit/s'."\n" - .'* **Large.5**: 5,000 Mbit/s'."\n" - .'* **Xlarge.1**: 10,000 Mbit/s'."\n" - ."\n" - .'> When **Role** is set to **AcceptingSide**, set **Spec** to **Negative**.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'Small.1', - ], - ], - [ - 'name' => 'ClientToken', - 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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.'."\n" - ."\n" - .'> 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.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '02fb3da4-130e-11e9-8e44-0016e04115b', - ], - ], + 'createdAt' => '2022-05-27T02:10:51.000Z', + 'description' => 'DescribeNatGateways返回参数增加了MaxSessionQuota和MaxSessionEstablishRate', + ], + [ + 'apis' => [ + ['description' => 'Response parameters changed', 'api' => 'DescribeBgpPeers'], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'description' => 'The specification of the router interface.'."\n", - 'type' => 'object', - 'properties' => [ - 'Spec' => [ - 'description' => 'The specification of the router interface. Valid values:'."\n" - ."\n" - .'* **Mini.2**: 2 Mbit/s'."\n" - .'* **Mini.5**: 5 Mbit/s'."\n" - .'* **Small.1**: 10 Mbit/s'."\n" - .'* **Small.2**: 20 Mbit/s'."\n" - .'* **Small.5**: 50 Mbit/s'."\n" - .'* **Middle.1**: 100 Mbit/s'."\n" - .'* **Middle.2**: 200 Mbit/s'."\n" - .'* **Middle.5**: 500 Mbit/s'."\n" - .'* **Large.1**: 1,000 Mbit/s'."\n" - .'* **Large.2**: 2,000 Mbit/s'."\n" - .'* **Large.5**: 5,000 Mbit/s'."\n" - .'* **Xlarge.1**: 10,000 Mbit/s'."\n", - 'type' => 'string', - 'example' => 'Small.1', - ], - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '4EC47282-1B74-4534-BD0E-403F3EE64CAF', - ], - ], - ], - ], + 'createdAt' => '2022-05-26T13:08:59.000Z', + 'description' => 'DescribeBgpPeers接口 响应体中 isFake 字段类型更正,由原来错误的String类型改为Boolean类型', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'ModifyRouterInterfaceAttribute'], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'Forbidden.FinancialLocked', - 'errorMessage' => 'RouterInterface can not be operated by this action when it?s FinancialLocked.', - ], - [ - 'errorCode' => 'InvalidParam.NotFound', - 'errorMessage' => 'Parameter must not be null,uid, bid,regionNo, remoteRegionNo or routerId', - ], - [ - 'errorCode' => 'InvalidOppositeRegionId.NotFound', - 'errorMessage' => 'The OppositeRegionId provided does not exist in our records.', - ], - [ - 'errorCode' => 'InvalidInstanceOwner.Error', - 'errorMessage' => 'The router instance owner error.', - ], - [ - 'errorCode' => 'InvalidRouterInterfaceSpec.Malformed', - 'errorMessage' => 'Specified RouterInterface spec is not valid.', - ], - [ - 'errorCode' => 'IllegalParam.chargeType', - 'errorMessage' => 'RouterInterface chargeType different.', - ], - [ - 'errorCode' => 'ResourceQueryError', - 'errorMessage' => 'The specified resource is queried error.', - ], - [ - 'errorCode' => ' InvalidSpec.ValueNotSupported', - 'errorMessage' => 'The specified Spec is not supported.', - ], - [ - 'errorCode' => 'InvalidSpec.ValueNotSupported', - 'errorMessage' => 'The specified Spec is not supported.', - ], - [ - 'errorCode' => 'InvalidInstance.StatusError', - 'errorMessage' => 'The router instance status error.', - ], - [ - 'errorCode' => 'InvalidOpposite.NotFound', - 'errorMessage' => 'The opposite does not exist.', - ], - ], - 404 => [ - [ - 'errorCode' => 'InvalidRouterInterfaceId.NotFound', - 'errorMessage' => 'The specified RouterInterfaceId does not exist in our record.', - ], - ], + 'createdAt' => '2022-05-25T12:29:43.000Z', + 'description' => '错误码修改', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'ModifyRouterInterfaceSpec'], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'createdAt' => '2022-05-25T11:24:19.000Z', + 'description' => '修改错误码映射', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'ModifyRouterInterfaceSpec'], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Spec\\": \\"Small.1\\",\\n \\"RequestId\\": \\"4EC47282-1B74-4534-BD0E-403F3EE64CAF\\"\\n}","errorExample":""},{"type":"xml","example":"\\n Small.1\\n 4EC47282-1B74-4534-BD0E-403F3EE64CAF\\n","errorExample":""}]', - 'title' => 'ModifyRouterInterfaceSpec', - 'description' => 'After you call this operation, the router interface enters the **Activating** state. After the router interface is activated, the router interface enters the **Active** state.'."\n" - ."\n" - .'> You cannot modify the specification of a router interface that has overdue payments.'."\n", - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', + 'createdAt' => '2022-05-23T04:53:46.000Z', + 'description' => '修改ModifyRouterInterfaceSpec错误码映射', ], - 'DescribeRouterInterfaces' => [ - 'summary' => 'Queries router interfaces in a specified region.', - 'methods' => [ - 'post', - 'get', + [ + 'apis' => [ + ['description' => 'Request parameters changed', 'api' => 'CreateDhcpOptionsSet'], + ['description' => 'Response parameters changed', 'api' => 'GetDhcpOptionsSet'], + ['description' => 'Response parameters changed', 'api' => 'ListDhcpOptionsSets'], + ['description' => 'Request parameters changed', 'api' => 'UpdateDhcpOptionsSetAttribute'], + ], + 'createdAt' => '2022-05-23T04:53:41.000Z', + 'description' => 'DHCP选项集支持用户自定义租约时间', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'CreateVirtualPhysicalConnection'], ], - 'schemes' => [ - 'http', - 'https', + 'createdAt' => '2022-05-11T04:04:46.000Z', + 'description' => 'createVirtualPhysicalConnection增加错误码映射', + ], + [ + 'apis' => [ + ['description' => 'Request parameters changed', 'api' => 'ApplyPhysicalConnectionLOA'], ], - 'security' => [ - [ - 'AK' => [], - ], + 'createdAt' => '2022-05-10T11:41:28.000Z', + 'description' => 'ApplyPhysicalConnectionLOA中POP接口的PM属性文档选填改为必填', + ], + [ + 'apis' => [ + ['description' => 'Request parameters changed', 'api' => 'CompletePhysicalConnectionLOA'], ], - 'operationType' => 'read', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'list', - 'riskType' => 'none', - 'chargeType' => 'free', + 'createdAt' => '2022-05-10T11:40:13.000Z', + 'description' => 'CompletePhysicalConnectionLOA中LineCode和LineLabe文档必填为选填', + ], + [ + 'apis' => [ + ['description' => 'Request parameters changed', 'api' => 'ListEnhanhcedNatGatewayAvailableZones'], ], - 'parameters' => [ - [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the router interface.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => ' cn-hangzhou', - ], - ], - [ - 'name' => 'IncludeReservationData', - 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether renewal data is included. Valid values:'."\n" - ."\n" - .'* **true**'."\n" - .'* **false** (default)'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], - ], - [ - 'name' => 'PageNumber', - 'in' => 'query', - 'schema' => [ - 'description' => 'The page number. Default value: **1**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'minimum' => '1', - 'example' => '1', - 'default' => '1', - ], - ], - [ - 'name' => 'PageSize', - 'in' => 'query', - 'schema' => [ - 'description' => 'The number of entries per page. Maximum value: **50**. Default value: **10**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '50', - 'minimum' => '1', - 'example' => '10', - 'default' => '10', - ], - ], - [ - 'name' => 'Filter', - 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => 'The filter information.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => 'The filter conditions. You can specify up to five filter conditions. The following filter conditions are supported:'."\n" - ."\n" - .'* **RouterInterfaceId**: the ID of the router interface.'."\n" - .'* **RouterId**: the ID of the router.'."\n" - .'* **RouterType**: the router type. Valid values: **VRouter** and **VBR**.'."\n" - .'* **RouterInterfaceOwnerId**: the ID of the Alibaba Cloud account to which the router interface belongs.'."\n" - .'* **OppositeInterfaceId**: the ID of the peer router interface.'."\n" - .'* **OppositeRouterType**: the type of the peer router interface. Valid values: **VRouter** and **VBR**.'."\n" - .'* **OppositeRouterId**: the ID of the peer router.'."\n" - .'* **OppositeInterfaceOwnerId**: the ID of the Alibaba Cloud account to which the peer router interface belongs.'."\n" - .'* **Status**: the status of the router interface.'."\n" - .'* **Name**: the name of the router interface.'."\n" - ."\n" - .'> The logical operator among multiple values in a filter condition is OR. In this case, the filter condition is met if one of the values is matched. The logical operator among filter conditions is AND. Only routers that meet all the filter conditions are queried.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'Filter.1.Status', - ], - 'Value' => [ - 'description' => 'Specifies the value in the filter condition based on the key. You can specify multiple filter values for one key. The logical operator among filter values is OR. If one filter value is matched, the filter condition is matched.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'Specifies the value in the filter condition based on the key. You can specify multiple filter values for one key. The logical operator among filter values is OR. If one filter value is matched, the filter condition is matched.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'test', - ], - 'required' => false, - 'example' => 'Filter.1.Active 1', - 'maxItems' => 5, - ], - ], - 'required' => false, - ], - 'required' => false, - 'maxItems' => 5, - ], - ], - [ - 'name' => 'ResourceGroupId', - 'in' => 'query', - 'schema' => [ - 'description' => 'Resource Group ID.'."\n" - ."\n" - .'For more information about resource groups, please refer to [What is a Resource Group?](~~94475~~)', - 'type' => 'string', - 'required' => false, - 'example' => 'rg-acfmxazb4ph6aiy****', - ], - ], - [ - 'name' => 'Tags', - 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => 'The tags of the resource.', - 'type' => 'array', - 'items' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => 'The key of the resource tag. At least one tag key must be entered, and a maximum of 20 tag keys are supported. If this value needs to be passed in, it cannot be an empty string.'."\n" - ."\n" - .'A tag key can support up to 128 characters, cannot start with \'aliyun\' or \'acs:\', and cannot contain \'http://\' or \'https://\'.', - 'type' => 'string', - 'required' => false, - 'example' => 'FinanceDept', - ], - 'Value' => [ - 'description' => 'The value of the resource tag. A maximum of 20 tag values can be entered. If this value needs to be passed in, an empty string can be entered.'."\n" - ."\n" - .'A maximum of 128 characters are supported, it cannot start with \'aliyun\' or \'acs:\', and it cannot contain \'http://\' or \'https://\'.', - 'type' => 'string', - 'required' => false, - 'example' => 'FinanceJoshua', - ], - ], - 'required' => false, - ], - 'required' => false, - 'maxItems' => 20, - ], - ], + 'createdAt' => '2022-04-29T10:04:12.000Z', + 'description' => '购买NAT时可用区显示支持英文', + ], + [ + 'apis' => [ + ['description' => 'Response parameters changed', 'api' => 'DescribeEipAddresses'], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => 'C7F6FCBD-F9CC-4501-8EF3-CDC9577CAE45', - ], - 'PageNumber' => [ - 'description' => 'The page number. Default value: **1**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'PageSize' => [ - 'description' => 'The number of entries per page. Maximum value: **50**. Default value: **10**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'TotalCount' => [ - 'description' => 'The number of entries returned.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'RouterInterfaceSet' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'RouterInterfaceType' => [ - 'description' => 'The details of the router interface.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'ReservationActiveTime' => [ - 'description' => 'The time when the renewal takes effect.'."\n" - ."\n" - .'The time follows the ISO8601 standard in the `YYYY-MM-DDThh:mmZ` format. The time is displayed in UTC.'."\n", - 'type' => 'string', - 'example' => '2021-03-11T16:00:00Z', - ], - 'HealthCheckTargetIp' => [ - 'description' => 'The destination IP address that is used for the health check.'."\n", - 'type' => 'string', - 'example' => '116.62.XX.XX', - ], - 'Status' => [ - 'description' => 'The status of the router interface.'."\n", - 'type' => 'string', - 'example' => 'active', - ], - 'CreationTime' => [ - 'description' => 'The time when the route table was created.'."\n" - ."\n" - .'The time follows the ISO8601 standard in the `YYYY-MM-DDThh:mmZ` format. The time is displayed in UTC.'."\n", - 'type' => 'string', - 'example' => '2021-06-08T12:20:55', - ], - 'ReservationOrderType' => [ - 'description' => 'The type of the renewal order. Valid values:'."\n", - 'type' => 'string', - 'example' => 'RENEWCHANGE', - ], - 'OppositeInterfaceId' => [ - 'description' => 'The ID of the peer router interface.'."\n", - 'type' => 'string', - 'example' => 'ri-bp1itx13bwe6f2wfh****', - ], - 'Spec' => [ - 'description' => 'The specification of the router interface.'."\n", - 'type' => 'string', - 'example' => 'Large', - ], - 'ChargeType' => [ - 'description' => 'The billing method.'."\n", - 'type' => 'string', - 'example' => 'PayByTraffic', - ], - 'RouterInterfaceId' => [ - 'description' => 'The ID of the router interface.'."\n", - 'type' => 'string', - 'example' => 'ri-2zenfgfpyu3v93koa****', - ], - 'HcThreshold' => [ - 'description' => 'The health check threshold.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '2', - ], - 'OppositeRouterType' => [ - 'description' => 'The type of the router to which the peer router interface belongs.'."\n", - 'type' => 'string', - 'example' => 'VRouter', - ], - 'VpcInstanceId' => [ - 'description' => 'The ID of the local virtual private cloud (VPC) in the peering connection.'."\n", - 'type' => 'string', - 'example' => 'vpc-2ze3tq4uxhysg717x****', - ], - 'OppositeInterfaceOwnerId' => [ - 'description' => 'The ID of the Alibaba Cloud account to which the peer router interface belongs.'."\n", - 'type' => 'string', - 'example' => '271598332402530847', - ], - 'OppositeVpcInstanceId' => [ - 'description' => 'The ID of the peer VPC.'."\n", - 'type' => 'string', - 'example' => 'vpc-bp1qpo0kug3a20qqe****', - ], - 'ReservationInternetChargeType' => [ - 'description' => 'The metering method that is used after the renewal takes effect. Valid values:'."\n", - 'type' => 'string', - 'example' => 'PayByBandwidth', - ], - 'CrossBorder' => [ - 'description' => 'Indicates whether the connection is a cross-border connection.'."\n", - 'type' => 'boolean', - 'example' => 'false', - ], - 'Bandwidth' => [ - 'description' => 'The bandwidth of the router interface. Unit: Mbit/s.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'Description' => [ - 'description' => 'The description of the router interface.'."\n", - 'type' => 'string', - 'example' => 'The description of the router interface.', - ], - 'HcRate' => [ - 'description' => 'The rate of heath checks.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'ReservationBandwidth' => [ - 'description' => 'The maximum bandwidth after the renewal takes effect. Unit: Mbit/s.'."\n", - 'type' => 'string', - 'example' => '10', - ], - 'Name' => [ - 'description' => 'The custom name.'."\n", - 'type' => 'string', - 'example' => 'test', - ], - 'OppositeRouterId' => [ - 'description' => 'The ID of the router to which the peer router interface belongs.'."\n", - 'type' => 'string', - 'example' => 'vrt-bp1d3bxtdv68tfd7g****', - ], - 'OppositeInterfaceSpec' => [ - 'description' => 'The specification of the peer router interface.'."\n", - 'type' => 'string', - 'example' => 'Large', - ], - 'RouterId' => [ - 'description' => 'The ID of the router to which the route entry belongs.'."\n", - 'type' => 'string', - 'example' => 'vrt-bp1d3bxtdv68tfd7g****', - ], - 'OppositeInterfaceBusinessStatus' => [ - 'description' => 'The service status of the peer router interface.'."\n", - 'type' => 'string', - 'example' => 'Normal', - ], - 'ConnectedTime' => [ - 'description' => 'The time when the connection was established.'."\n" - ."\n" - .'The time follows the ISO8601 standard in the `YYYY-MM-DDThh:mmZ` format. The time is displayed in UTC.'."\n", - 'type' => 'string', - 'example' => '2021-06-08T12:20:55', - ], - 'HealthCheckSourceIp' => [ - 'description' => 'The source IP address that is used for the health check.'."\n", - 'type' => 'string', - 'example' => '116.62.XX.XX', - ], - 'OppositeInterfaceStatus' => [ - 'description' => 'The status of the peer router interface.'."\n", - 'type' => 'string', - 'example' => 'Normal', - ], - 'EndTime' => [ - 'description' => 'The end of the time range during which data was queried.'."\n" - ."\n" - .'The time follows the ISO8601 standard in the `YYYY-MM-DDThh:mmZ` format. The time is displayed in UTC.'."\n", - 'type' => 'string', - 'example' => '2021-06-08T12:20:55', - ], - 'OppositeRegionId' => [ - 'description' => 'The region ID of the peer router interface.'."\n", - 'type' => 'string', - 'example' => 'cn-shanghai', - ], - 'OppositeAccessPointId' => [ - 'description' => 'The ID of the peer access point.'."\n", - 'type' => 'string', - 'example' => 'ap-cn-shanghaiSZ-****', - ], - 'BusinessStatus' => [ - 'description' => 'The service status of the router interface. Valid values:'."\n" - ."\n" - .'* **Normal**'."\n" - .'* **FinancialLocked**'."\n" - .'* **SecurityLocked**'."\n", - 'type' => 'string', - 'example' => 'Normal', - ], - 'OppositeBandwidth' => [ - 'description' => 'The maximum bandwidth of the peer router interface. Unit: Mbit/s.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '12', - ], - 'RouterType' => [ - 'description' => 'The type of the router to which the route table belongs. Valid values:'."\n" - ."\n" - .'* **VRouter**'."\n" - .'* **VBR**'."\n", - 'type' => 'string', - 'example' => 'VRouter', - ], - 'Role' => [ - 'description' => 'Indicates whether the router interface is the initiator or acceptor of the peering connection.'."\n", - 'type' => 'string', - 'example' => 'InitiatingSide', - ], - 'HasReservationData' => [ - 'description' => 'Indicates whether renewal data is included.'."\n", - 'type' => 'string', - 'example' => 'false', - ], - 'AccessPointId' => [ - 'description' => 'The ID of the access point.'."\n", - 'type' => 'string', - 'example' => 'ap-cn-shanghaiSZ-****', - ], - 'Ipv6Status' => [ - 'description' => 'Indicates whether protection against malicious IPv6 traffic is enabled. Valid values:'."\n" - ."\n" - .'* **on**'."\n" - .'* **off**'."\n" - .'* **unsupport**'."\n", - 'type' => 'string', - 'example' => 'on', - ], - 'FastLinkMode' => [ - 'description' => 'Indicates whether the VBR that is created in the Fast Link mode is uplinked to the router interface. The Fast Link mode helps automatically connect router interfaces that are created for the VBR and its peer VPC. Valid values:'."\n" - ."\n" - .'* **true**'."\n" - .'* **false** (default)'."\n", - 'type' => 'boolean', - 'example' => 'false', - ], - 'ResourceGroupId' => [ - 'description' => 'Resource Group ID.'."\n" - ."\n" - .'For more information about resource groups, please refer to [What is a Resource Group?](~~94475~~)', - 'type' => 'string', - 'example' => 'rg-acfmxazb4ph6aiy****', - ], - 'Tags' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'Tags' => [ - 'description' => 'The tags of the resource.', - 'type' => 'array', - 'items' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => 'The key of the resource tag. At least one tag key must be entered, and a maximum of 20 tag keys are supported. If this value needs to be passed in, it cannot be an empty string.'."\n" - ."\n" - .'A tag key can support up to 128 characters, cannot start with \'aliyun\' or \'acs:\', and cannot contain \'http://\' or \'https://\'.', - 'type' => 'string', - 'example' => 'FinanceDept', - ], - 'Value' => [ - 'description' => 'The value of the resource tag. A maximum of 20 tag values can be entered. If this value needs to be passed in, an empty string can be entered.'."\n" - ."\n" - .'A maximum of 128 characters are supported, it cannot start with \'aliyun\' or \'acs:\', and it cannot contain \'http://\' or \'https://\'.', - 'type' => 'string', - 'example' => 'FinanceJoshua', - ], - ], - ], - ], - ], - ], - ], - ], - ], - ], - ], - ], - ], - ], + 'createdAt' => '2022-04-26T02:12:29.000Z', + 'description' => 'EIP查询接口展示Tag信息', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed, Request parameters changed', 'api' => 'CreateBgpGroup'], + ['description' => 'Response parameters changed', 'api' => 'DescribeBgpPeers'], + ['description' => 'Response parameters changed', 'api' => 'DescribeRouteEntryList'], + ['description' => 'Error codes changed, Request parameters changed', 'api' => 'ModifyBgpGroupAttribute'], + ], + 'createdAt' => '2022-04-25T08:57:47.000Z', + 'description' => '路由优化', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'AssociateRouteTableWithGateway'], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InvalidParam.NotNull', - 'errorMessage' => 'The parameter must not be null.', - ], - [ - 'errorCode' => 'EndPoint.Empty', - 'errorMessage' => 'the rc endpoint is empty.', - ], - [ - 'errorCode' => 'InvalidConnectionType.MalFormed', - 'errorMessage' => 'Connection type must be vpc2vpc or vbr2vpc.', - ], - [ - 'errorCode' => 'InvalidProductForm.MalFormed', - 'errorMessage' => 'Product form must be routerinterface or expressconnect.', - ], - [ - 'errorCode' => 'InvalidRole.Malformed', - 'errorMessage' => 'role must be InitiatingSide or AcceptingSide.', - ], - [ - 'errorCode' => 'IllegalParam.AliUid', - 'errorMessage' => 'Specified value of aliuid invalid.', - ], - [ - 'errorCode' => 'Parameter.Illegal', - 'errorMessage' => 'The parameter is illegal.', - ], - ], - 404 => [ - [ - 'errorCode' => 'InvalidRegionId.NotFound', - 'errorMessage' => 'The RegionId provided does not exist in our records.', - ], - [ - 'errorCode' => 'InvalidFilterKey.ValueNotSupported', - 'errorMessage' => 'Specified filter key is not supported: Filter.X.key', - ], - ], + 'createdAt' => '2022-04-21T07:55:10.000Z', + 'description' => '增加绑定网关路由表错误码映射', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'CreateRouteEntry'], + ['description' => 'Error codes changed', 'api' => 'CreateVSwitch'], + ['description' => 'Error codes changed', 'api' => 'DeleteVpc'], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'createdAt' => '2022-04-18T03:06:15.000Z', + 'description' => '新增错误码信息', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'UnassociateHaVip'], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"C7F6FCBD-F9CC-4501-8EF3-CDC9577CAE45\\",\\n \\"PageNumber\\": 1,\\n \\"PageSize\\": 10,\\n \\"TotalCount\\": 1,\\n \\"RouterInterfaceSet\\": {\\n \\"RouterInterfaceType\\": [\\n {\\n \\"ReservationActiveTime\\": \\"2021-03-11T16:00:00Z\\",\\n \\"HealthCheckTargetIp\\": \\"116.62.XX.XX\\",\\n \\"Status\\": \\"active\\",\\n \\"CreationTime\\": \\"2021-06-08T12:20:55\\",\\n \\"ReservationOrderType\\": \\"RENEWCHANGE\\",\\n \\"OppositeInterfaceId\\": \\"ri-bp1itx13bwe6f2wfh****\\",\\n \\"Spec\\": \\"Large\\",\\n \\"ChargeType\\": \\"PayByTraffic\\",\\n \\"RouterInterfaceId\\": \\"ri-2zenfgfpyu3v93koa****\\",\\n \\"HcThreshold\\": 2,\\n \\"OppositeRouterType\\": \\"VRouter\\",\\n \\"VpcInstanceId\\": \\"vpc-2ze3tq4uxhysg717x****\\",\\n \\"OppositeInterfaceOwnerId\\": \\"271598332402530847\\",\\n \\"OppositeVpcInstanceId\\": \\"vpc-bp1qpo0kug3a20qqe****\\",\\n \\"ReservationInternetChargeType\\": \\"PayByBandwidth\\",\\n \\"CrossBorder\\": false,\\n \\"Bandwidth\\": 10,\\n \\"Description\\": \\"路由表接口描述\\",\\n \\"HcRate\\": 1,\\n \\"ReservationBandwidth\\": \\"10\\",\\n \\"Name\\": \\"test\\",\\n \\"OppositeRouterId\\": \\"vrt-bp1d3bxtdv68tfd7g****\\",\\n \\"OppositeInterfaceSpec\\": \\"Large\\",\\n \\"RouterId\\": \\"vrt-bp1d3bxtdv68tfd7g****\\",\\n \\"OppositeInterfaceBusinessStatus\\": \\"Normal\\",\\n \\"ConnectedTime\\": \\"2021-06-08T12:20:55\\",\\n \\"HealthCheckSourceIp\\": \\"116.62.XX.XX\\",\\n \\"OppositeInterfaceStatus\\": \\"Normal\\",\\n \\"EndTime\\": \\"2021-06-08T12:20:55\\",\\n \\"OppositeRegionId\\": \\"cn-shanghai\\",\\n \\"OppositeAccessPointId\\": \\"ap-cn-shanghaiSZ-****\\",\\n \\"BusinessStatus\\": \\"Normal\\",\\n \\"OppositeBandwidth\\": 12,\\n \\"RouterType\\": \\"VRouter\\",\\n \\"Role\\": \\"InitiatingSide\\",\\n \\"HasReservationData\\": \\"false\\",\\n \\"AccessPointId\\": \\"ap-cn-shanghaiSZ-****\\",\\n \\"Ipv6Status\\": \\"on\\",\\n \\"FastLinkMode\\": false,\\n \\"ResourceGroupId\\": \\"rg-acfmxazb4ph6aiy****\\",\\n \\"Tags\\": {\\n \\"Tags\\": [\\n {\\n \\"Key\\": \\"FinanceDept\\",\\n \\"Value\\": \\"FinanceJoshua\\"\\n }\\n ]\\n }\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n C7F6FCBD-F9CC-4501-8EF3-CDC9577CAE45\\n 1\\n 10\\n 1\\n \\n 2021-03-11T16:00:00Z\\n 116.62.XX.XX\\n active\\n 2021-06-08T12:20:55\\n RENEWCHANGE\\n ri-bp1itx13bwe6f2wfh****\\n Large\\n PayByTraffic\\n ri-2zenfgfpyu3v93koa****\\n 2\\n VRouter\\n vpc-2ze3tq4uxhysg717x****\\n 271598332402530847\\n vpc-bp1qpo0kug3a20qqe****\\n PayByBandwidth\\n false\\n 10\\n 路由表接口描述\\n 1\\n 10\\n test\\n vrt-bp1d3bxtdv68tfd7g****\\n Large\\n vrt-bp1d3bxtdv68tfd7g****\\n Normal\\n 2021-06-08T12:20:55\\n 116.62.XX.XX\\n Normal\\n 2021-06-08T12:20:55\\n cn-shanghai\\n ap-cn-shanghaiSZ-****\\n Normal\\n 12\\n VRouter\\n InitiatingSide\\n false\\n ap-cn-shanghaiSZ-****\\n on\\n false\\n rg-acfmxazb4ph6aiy****\\n \\n FinanceDept\\n FinanceJoshua\\n \\n \\n","errorExample":""}]', - 'title' => 'DescribeRouterInterfaces', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', + 'createdAt' => '2022-03-29T08:28:27.000Z', + 'description' => 'havip解绑增加错误码映射', ], - 'DescribeEcGrantRelation' => [ - 'summary' => 'Queries whether permissions on a virtual private cloud (VPC) are granted to a virtual border router (VBR).', - 'methods' => [ - 'post', - 'get', + [ + 'apis' => [ + ['description' => 'Response parameters changed', 'api' => 'DescribeNatGateways'], ], - 'schemes' => [ - 'http', - 'https', + 'createdAt' => '2022-03-29T03:57:27.000Z', + 'description' => 'DescribeNatGatewa接口返回参数与文档存在不一致,将缺失的参数设为可见,以便文档补全信息', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed, Request parameters changed', 'api' => 'AssociateVpcCidrBlock'], ], - 'security' => [ - [ - 'AK' => [], - ], + 'createdAt' => '2022-03-25T08:36:05.000Z', + 'description' => 'Vpc更新支持自定义IPv6 Cidr', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed, Request parameters changed', 'api' => 'CreateFlowLog'], + ['description' => 'Response parameters changed', 'api' => 'DescribeFlowLogs'], + ['description' => 'Error codes changed, Request parameters changed', 'api' => 'ModifyFlowLogAttribute'], ], - 'operationType' => 'read', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'list', - 'riskType' => 'none', - 'chargeType' => 'free', + 'createdAt' => '2022-03-25T07:18:50.000Z', + 'description' => '创建及修改FlowLog时,增加采样聚合间隔参数(可选)', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'DeleteVpc'], ], - 'parameters' => [ - [ - 'name' => 'InstanceType', - 'in' => 'query', - 'schema' => [ - 'description' => 'The type of instance. Valid values:'."\n" - ."\n" - .'* **VBR**: queries the permissions that are granted to a VBR.'."\n" - .'* **VPC**: queries the permissions that are granted from a VPC.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'VBR', - ], - ], - [ - 'name' => 'InstanceId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the instance.'."\n" - ."\n" - .'* If you set **InstanceType** to **VBR**, specify a VBR ID.'."\n" - .'* If you set **InstanceType** to **VPC**, specify a VPC ID.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'vbr-bp12mw1f8k3jgygk9****', - ], - ], - [ - 'name' => 'PageNumber', - 'in' => 'query', - 'schema' => [ - 'description' => 'The page number. Default value: **1**.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '1', - ], - ], - [ - 'name' => 'PageSize', - 'in' => 'query', - 'schema' => [ - 'description' => 'The number of entries per page. Maximum value: **50**. Default value: **10**.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '10', - ], - ], - [ - 'name' => 'VbrRegionNo', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region where the instance is deployed.'."\n" - ."\n" - .'* If **InstanceType** is set to **VBR**, this parameter is required.'."\n" - .'* If **InstanceType** is set to **VPC**, you can ignore this parameter.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou', - ], - ], + 'createdAt' => '2022-03-18T10:03:15.000Z', + 'description' => '删除vpc增加网关路由表依赖 错误码映射', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'AddBgpNetwork'], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'The request ID.'."\n", - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => 'E6E90F6B-2B41-5AAF-ABEB-236ADBAAD91D', - ], - 'EcGrantRelations' => [ - 'description' => 'The query results.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'VbrOwnerUid' => [ - 'description' => 'The ID of the Alibaba Cloud account to which the VBR belongs.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1210123456123456', - ], - 'VbrInstanceId' => [ - 'description' => 'The ID of the VBR.'."\n", - 'type' => 'string', - 'example' => 'vbr-m5ex0xf63xk8s5bob****', - ], - 'InstanceId' => [ - 'description' => 'The ID of the VPC.'."\n", - 'type' => 'string', - 'example' => 'vpc-bp1brjuegjc88v3u9****', - ], - 'AliUid' => [ - 'description' => 'The ID of the Alibaba Cloud account to which the VPC belongs.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1250123456123456', - ], - 'RegionNo' => [ - 'description' => 'The ID of the region where the VPC is deployed.'."\n", - 'type' => 'string', - 'example' => 'cn-hangzhou', - ], - 'Status' => [ - 'description' => 'The query result. Valid values:'."\n" - ."\n" - .'* **Created**: The VBR has permissions on the VPC.'."\n" - .'* **Deleted**: The VBR does not have permissions on the VPC.'."\n", - 'type' => 'string', - 'example' => 'Created', - ], - 'InstanceName' => [ - 'description' => 'The name of the VPC.'."\n", - 'type' => 'string', - 'example' => 'VPCname', - ], - 'InstanceRouterId' => [ - 'description' => 'The ID of the vRouter.'."\n", - 'type' => 'string', - 'example' => 'vrt-bp1i0yzgjd8ra05ec****', - ], - 'VbrRegionNo' => [ - 'description' => 'The ID of the region where the VBR is deployed.'."\n", - 'type' => 'string', - 'example' => 'cn-hangzhou', - ], - 'GmtCreate' => [ - 'description' => 'The time when permissions on the VPC were granted to the VBR.'."\n", - 'type' => 'string', - 'example' => '2022-09-02T11:46Z', - ], - 'GrantType' => [ - 'description' => 'The VBRs that have permissions on the VPC. Valid values:'."\n" - ."\n" - .'* **All**: VBRs that reside in the specified region and belong to the specified Alibaba Cloud account all have permissions on the VPC.'."\n" - .'* **Specify**: Only the specified VBR has permissions on the VPC.'."\n", - 'type' => 'string', - 'example' => 'All', - ], - ], - ], - ], - 'TotalCount' => [ - 'description' => 'The total number of entries returned.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'Count' => [ - 'description' => 'The total number of entries returned.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'Page' => [ - 'description' => 'The page number.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'PageSize' => [ - 'description' => 'The number of entries per page.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - ], - ], - ], + 'createdAt' => '2022-03-17T07:57:04.000Z', + 'description' => '增加错误码映射', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'ActiveFlowLog'], + ['description' => 'Error codes changed', 'api' => 'CreateFlowLog'], + ['description' => 'Error codes changed', 'api' => 'DeactiveFlowLog'], + ['description' => 'Response parameters changed', 'api' => 'DescribeFlowLogs'], + ], + 'createdAt' => '2022-03-14T06:10:03.000Z', + 'description' => 'flowlog增加商业状态判断', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'ModifyVirtualBorderRouterAttribute'], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InvalidParam.NotNull', - 'errorMessage' => 'The parameter must not be null.', - ], - [ - 'errorCode' => 'Parameter.Illegal', - 'errorMessage' => 'The parameter is illegal.', - ], - [ - 'errorCode' => 'Instance.StatusError', - 'errorMessage' => 'The status of instance error. ', - ], - [ - 'errorCode' => 'InvalidRegionId.NotFound', - 'errorMessage' => 'The regionId provided does not exist in ec region list.', - ], - ], - 404 => [ - [ - 'errorCode' => 'VRouterId.NotFound', - 'errorMessage' => 'The VRouter not found.', - ], - [ - 'errorCode' => 'Instance.NotExist', - 'errorMessage' => 'The instance not exist.', - ], - ], + 'createdAt' => '2022-03-14T03:48:30.000Z', + 'description' => '增加错误码映射', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'DissociateRouteTablesFromVpcGatewayEndpoint'], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'createdAt' => '2022-03-14T03:47:44.000Z', + 'description' => '添加错误码映射', + ], + [ + 'apis' => [ + ['description' => 'Response parameters changed', 'api' => 'UpdateVirtualBorderBandwidth'], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"E6E90F6B-2B41-5AAF-ABEB-236ADBAAD91D\\",\\n \\"EcGrantRelations\\": [\\n {\\n \\"VbrOwnerUid\\": 1210123456123456,\\n \\"VbrInstanceId\\": \\"vbr-m5ex0xf63xk8s5bob****\\",\\n \\"InstanceId\\": \\"vpc-bp1brjuegjc88v3u9****\\",\\n \\"AliUid\\": 1250123456123456,\\n \\"RegionNo\\": \\"cn-hangzhou\\",\\n \\"Status\\": \\"Created\\",\\n \\"InstanceName\\": \\"VPCname\\",\\n \\"InstanceRouterId\\": \\"vrt-bp1i0yzgjd8ra05ec****\\",\\n \\"VbrRegionNo\\": \\"cn-hangzhou\\",\\n \\"GmtCreate\\": \\"2022-09-02T11:46Z\\",\\n \\"GrantType\\": \\"All\\"\\n }\\n ],\\n \\"TotalCount\\": 10,\\n \\"Count\\": 1,\\n \\"Page\\": 1,\\n \\"PageSize\\": 10\\n}","errorExample":""},{"type":"xml","example":"\\n E6E90F6B-2B41-5AAF-ABEB-236ADBAAD91D\\n \\n 1210123456123456\\n vbr-m5ex0xf63xk8s5bob****\\n vpc-bp1brjuegjc88v3u9****\\n 1250123456123456\\n cn-hangzhou\\n Created\\n VPCname\\n vrt-bp1i0yzgjd8ra05ec****\\n cn-hangzhou\\n 2022-09-02T11:46Z\\n All\\n \\n 10\\n 1\\n 1\\n 10\\n","errorExample":""}]', - 'title' => 'DescribeEcGrantRelation', + 'createdAt' => '2022-03-03T02:14:52.000Z', + 'description' => '接口不规范修改', ], - 'DescribeRouterInterfaceAttribute' => [ - 'summary' => 'Queries the configuration of a router interface.', - 'methods' => [ - 'post', - 'get', + [ + 'apis' => [ + ['description' => 'Response parameters changed', 'api' => 'DescribeEipAddresses'], ], - 'schemes' => [ - 'http', - 'https', + 'createdAt' => '2022-02-22T11:34:21.000Z', + 'description' => '隐藏错误拼写参数', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'AssociateRouteTable'], ], - 'security' => [ - [ - 'AK' => [], - ], + 'createdAt' => '2022-01-21T06:23:17.000Z', + 'description' => '绑定路由表 新增错误码映射', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'DeleteVpc'], ], - 'operationType' => 'read', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'get', - 'riskType' => 'none', - 'chargeType' => 'free', + 'createdAt' => '2022-01-21T06:07:07.000Z', + 'description' => '删除vpc时存在ipv4网关残留 报错 增加该错误码映射', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'UpdateGatewayRouteTableEntryAttribute'], ], - 'parameters' => [ - [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region to which the router interface belongs.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cn-qingdao', - ], - ], - [ - 'name' => 'InstanceId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the router interface.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'ri-m5egfc10sednwk2yt****', - ], - ], + 'createdAt' => '2022-01-19T15:24:00.000Z', + 'description' => '更新网关路由下一跳 增加错误码映射', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'DeleteRouteTable'], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'description' => 'The returned data.'."\n", - 'type' => 'object', - 'properties' => [ - 'ReservationActiveTime' => [ - 'description' => 'The time when the renewal takes effect.'."\n", - 'type' => 'string', - 'example' => '2022-06-11T16:00:00Z', - ], - 'HealthCheckTargetIp' => [ - 'description' => 'The destination IP address that is used for the health check.'."\n", - 'type' => 'string', - 'example' => '2.2.XX.XX', - ], - 'Status' => [ - 'description' => 'The status of the router interface. Valid values:'."\n" - ."\n" - .'* **Idle**'."\n" - .'* **AcceptingConnecting**'."\n" - .'* **Connecting**'."\n" - .'* **Activating**'."\n" - .'* **Active**'."\n" - .'* **Modifying**'."\n" - .'* **Deactivating**'."\n" - .'* **Inactive**'."\n" - .'* **Deleting**'."\n", - 'type' => 'string', - 'example' => 'Active', - ], - 'CreationTime' => [ - 'description' => 'The time when the router interface was created.'."\n", - 'type' => 'string', - 'example' => '2022-04-14T08:57:24Z', - ], - 'ReservationOrderType' => [ - 'description' => 'The type of the renewal order. Only **RENEW** may be returned, which indicates that the order is placed for service renewal.'."\n", - 'type' => 'string', - 'example' => 'RENEW', - ], - 'OppositeInterfaceId' => [ - 'description' => 'The ID of the peer router interface.'."\n", - 'type' => 'string', - 'example' => 'ri-bp1xkrzttximaoxbl****', - ], - 'Spec' => [ - 'description' => 'The specification of the router interface. Valid values:'."\n" - ."\n" - .'* **Mini.2**: 2 Mbit/s'."\n" - .'* **Mini.5**: 5 Mbit/s'."\n" - .'* **Small.1**: 10 Mbit/s'."\n" - .'* **Small.2**: 20 Mbit/s'."\n" - .'* **Small.5**: 50 Mbit/s'."\n" - .'* **Middle.1**: 100 Mbit/s'."\n" - .'* **Middle.2**: 200 Mbit/s'."\n" - .'* **Middle.5**: 500 Mbit/s'."\n" - .'* **Large.1**: 1,000 Mbit/s'."\n" - .'* **Large.2**: 2,000 Mbit/s'."\n" - .'* **Large.5**: 5,000 Mbit/s'."\n" - .'* **Xlarge.1**: 10,000 Mbit/s'."\n", - 'type' => 'string', - 'example' => 'Mini.2', - ], - 'ChargeType' => [ - 'description' => 'The billing method. Valid values:'."\n" - ."\n" - .'* **AfterPay**: pay-as-you-go'."\n" - .'* **PrePaid**: subscription'."\n", - 'type' => 'string', - 'example' => 'AfterPay', - ], - 'RouterInterfaceId' => [ - 'description' => 'The ID of the router interface.'."\n", - 'type' => 'string', - 'example' => 'ri-m5egfc10sednwk2yt****', - ], - 'Message' => [ - 'description' => 'The response parameters.'."\n", - 'type' => 'string', - 'example' => 'successful', - ], - 'HcThreshold' => [ - 'description' => 'The healthy threshold. This value indicates the number of probe packets that are sent during a health check. Unit: packets.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '8', - ], - 'OppositeRouterType' => [ - 'description' => 'The type of the router to which the peer router interface belongs. Valid values:'."\n" - ."\n" - .'* **VRouter**'."\n" - .'* **VBR**'."\n", - 'type' => 'string', - 'example' => 'VRouter', - ], - 'GmtModified' => [ - 'description' => 'The time when the router interface was modified.'."\n", - 'type' => 'string', - 'example' => '2022-04-28T10:02:12Z', - ], - 'VpcInstanceId' => [ - 'description' => 'The ID of the virtual private cloud (VPC) to which the router interface belongs.'."\n", - 'type' => 'string', - 'example' => 'vpc-bp1b49rqrybk45nio****', - ], - 'OppositeInterfaceOwnerId' => [ - 'description' => 'The ID of the Alibaba Cloud account to which the peer router interface belongs.'."\n", - 'type' => 'string', - 'example' => '1321932713****', - ], - 'OppositeVpcInstanceId' => [ - 'description' => 'The ID of the peer VPC.'."\n", - 'type' => 'string', - 'example' => 'vpc-bp1b49rqrybk45nio****', - ], - 'ReservationInternetChargeType' => [ - 'description' => 'The metering method that is used after the renewal takes effect. Valid values: If **PayByBandwidth** is returned, it indicates that the Express Connect circuit is billed on a pay-by-bandwidth basis.'."\n", - 'type' => 'string', - 'example' => 'PayByBandwidth', - ], - 'CrossBorder' => [ - 'description' => 'Indicates whether the connection is a cross-border connection. Valid values:'."\n" - ."\n" - .'* **false**'."\n" - .'* **true**'."\n", - 'type' => 'boolean', - 'example' => 'false', - ], - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '01818199-04F6-47F4-9ADF-7CC824CF57A4', - ], - 'Bandwidth' => [ - 'description' => 'The bandwidth of the router interface. Unit: Mbit/s.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '2', - ], - 'Description' => [ - 'description' => 'The description of the router interface.'."\n", - 'type' => 'string', - 'example' => 'Peer interface.', - ], - 'HcRate' => [ - 'description' => 'The rate of health checks. Unit: seconds. The value indicates the interval at which probe packets are sent during a health check.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '2', - ], - 'ReservationBandwidth' => [ - 'description' => 'The maximum bandwidth after the renewal takes effect. Unit: Mbit/s.'."\n", - 'type' => 'string', - 'example' => '100', - ], - 'Code' => [ - 'description' => 'The HTTP status code.'."\n", - 'type' => 'string', - 'example' => '200', - ], - 'Name' => [ - 'description' => 'The name of the router interface.'."\n", - 'type' => 'string', - 'example' => 'RouterInterface1', - ], - 'OppositeRouterId' => [ - 'description' => 'The ID of the router to which the peer router interface belongs.'."\n", - 'type' => 'string', - 'example' => 'vrt-bp11xvy6lb9photuu****', - ], - 'OppositeInterfaceSpec' => [ - 'description' => 'The specification of the peer router interface. Valid values:'."\n" - ."\n" - .'* **Mini.2**: 2 Mbit/s'."\n" - .'* **Mini.5**: 5 Mbit/s'."\n" - .'* **Small.1**: 10 Mbit/s'."\n" - .'* **Small.2**: 20 Mbit/s'."\n" - .'* **Small.5**: 50 Mbit/s'."\n" - .'* **Middle.1**: 100 Mbit/s'."\n" - .'* **Middle.2**: 200 Mbit/s'."\n" - .'* **Middle.5**: 500 Mbit/s'."\n" - .'* **Large.1**: 1,000 Mbit/s'."\n" - .'* **Large.2**: 2,000 Mbit/s'."\n" - .'* **Large.5**: 5,000 Mbit/s'."\n" - .'* **Xlarge.1**: 10,000 Mbit/s'."\n" - .'* **Negative**: not applicable'."\n", - 'type' => 'string', - 'example' => 'Negative', - ], - 'RouterId' => [ - 'description' => 'The ID of the router to which the router interface belongs.'."\n", - 'type' => 'string', - 'example' => 'vbr-m5ex0xf63xk8s5bob****', - ], - 'Success' => [ - 'description' => 'Indicates whether the request is successful. Valid values: true and false.'."\n", - 'type' => 'boolean', - 'example' => 'true', - ], - 'OppositeInterfaceBusinessStatus' => [ - 'description' => 'The service status of the peer router interface. Valid values:'."\n" - ."\n" - .'* **Normal**'."\n" - .'* **FinancialLocked**'."\n" - .'* **SecurityLocked**'."\n", - 'type' => 'string', - 'example' => 'Normal', - ], - 'ConnectedTime' => [ - 'description' => 'The time when the connection was established.'."\n", - 'type' => 'string', - 'example' => '2022-04-14T08:58:04Z', - ], - 'HealthCheckSourceIp' => [ - 'description' => 'The source IP address that is used for the health check.'."\n", - 'type' => 'string', - 'example' => '1.1.XX.XX', - ], - 'OppositeInterfaceStatus' => [ - 'description' => 'The status of the peer router interface. Valid values:'."\n" - ."\n" - .'* **Idle**'."\n" - .'* **AcceptingConnecting**'."\n" - .'* **Connecting**'."\n" - .'* **Activating**'."\n" - .'* **Active**'."\n" - .'* **Modifying**'."\n" - .'* **Deactivating**'."\n" - .'* **Inactive**'."\n" - .'* **Deleting**'."\n" - .'* **Deleted**'."\n", - 'type' => 'string', - 'example' => 'Active', - ], - 'EndTime' => [ - 'description' => 'The end of the time range during which data was queried.'."\n", - 'type' => 'string', - 'example' => '2999-09-08T16:00:00Z', - ], - 'OppositeRegionId' => [ - 'description' => 'The region ID of the peer router interface.'."\n", - 'type' => 'string', - 'example' => 'cn-hangzhou', - ], - 'OppositeAccessPointId' => [ - 'description' => 'The ID of the peer access point.'."\n", - 'type' => 'string', - 'example' => 'ap-cn-qingdao-ls-B', - ], - 'BusinessStatus' => [ - 'description' => 'The status of the router interface. Valid values:'."\n" - ."\n" - .'* **Normal**'."\n" - .'* **FinancialLocked**'."\n" - .'* **SecurityLocked**'."\n", - 'type' => 'string', - 'example' => 'Normal', - ], - 'HealthCheckStatus' => [ - 'description' => 'The status of the health check. Valid values:'."\n" - ."\n" - .'* **Abnormal**'."\n" - .'* **Normal**'."\n" - .'* **NoRedundantRoute**'."\n" - .'* **NoHealthCheckConfig**'."\n", - 'type' => 'string', - 'example' => 'normal', - ], - 'OppositeBandwidth' => [ - 'description' => 'The maximum bandwidth of the peer router interface. Unit: Mbit/s.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '0', - ], - 'RouterType' => [ - 'description' => 'The type of the router to which the route table belongs. Valid values:'."\n" - ."\n" - .'* **VRouter**'."\n" - .'* **VBR**'."\n", - 'type' => 'string', - 'example' => 'VRouter', - ], - 'Role' => [ - 'description' => 'The role of the router interface in the peering connection.'."\n", - 'type' => 'string', - 'example' => 'InitiatingSide', - ], - 'HasReservationData' => [ - 'description' => 'Indicates whether renewal data is included. Valid values:'."\n" - ."\n" - .'* **false**'."\n" - .'* **true**'."\n", - 'type' => 'string', - 'example' => 'false', - ], - 'AccessPointId' => [ - 'description' => 'The ID of the access point.'."\n", - 'type' => 'string', - 'example' => 'ap-cn-qingdao-ls-A', - ], - 'ResourceGroupId' => [ - 'description' => 'The resource group ID.'."\n" - ."\n" - .'For more information about resource groups, see [What is a resource group?](~~94475~~)'."\n", - 'type' => 'string', - 'example' => 'rg-acfmxazb4ph6aiy****', - ], - 'Tags' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'Tags' => [ - 'description' => 'The tag of the resource.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => 'The key of tag N added to the resource. You must enter at least one tag key and at most 20 tag keys. The tag key cannot be an empty string.'."\n" - ."\n" - .'The tag key can be up to 64 characters in length and can contain digits, periods (.), underscores (\\_), and hyphens (-). It cannot start with `aliyun` or `acs:`, and cannot contain `http://` or `https://`.'."\n", - 'type' => 'string', - 'example' => 'FinanceDept', - ], - 'Value' => [ - 'description' => 'The value of tag N added to the resource. You can specify at most 20 tag values. The tag value can be an empty string.'."\n" - ."\n" - .'It can be up to 128 characters in length and can contain digits, periods (.), underscores (\\_), and hyphens (-). It cannot start with `aliyun` or `acs:`, and cannot contain `http://` or `https://`.'."\n", - 'type' => 'string', - 'example' => 'FinanceJoshua', - ], - ], - ], - ], - ], - ], - 'FastLinkMode' => [ - 'description' => 'Indicates whether the VBR that is created in the Fast Link mode is uplinked to the router interface. The Fast Link mode helps automatically connect router interfaces that are created for the VBR and its peer VPC. Valid values:'."\n" - ."\n" - .'* **true**'."\n" - .'* **false** (default)'."\n" - ."\n" - .'> '."\n" - ."\n" - .'* This parameter takes effect only when **RouterType** is set to **VBR** and **OppositeRouterType** is set to **VRouter**.'."\n" - ."\n" - .'* When **FastLinkMode** is set to **true**, **Role** must be set to **InitiatingSide**. **AccessPointId**, **OppositeRouterType**, **OpppsiteRouterId**, and **OppositeInterfaceOwnerId** are required.'."\n", - 'type' => 'string', - 'example' => 'false', - ], - ], - ], - ], + 'createdAt' => '2022-01-13T08:51:33.000Z', + 'description' => 'deleteRouteTable增加错误码展示', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed, Request parameters changed', 'api' => 'AssociateEipAddress'], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InvalidParam.NotNull', - 'errorMessage' => 'The parameter must not be null.', - ], - ], + 'createdAt' => '2022-01-12T03:52:52.000Z', + 'description' => '增加regionId参数文档必填', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'CreateVirtualBorderRouter'], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'createdAt' => '2022-01-11T06:15:18.000Z', + 'description' => '错误码映射', + ], + [ + 'apis' => [ + ['description' => 'Response parameters changed', 'api' => 'GetIpv4GatewayAttribute'], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"ReservationActiveTime\\": \\"2022-06-11T16:00:00Z\\",\\n \\"HealthCheckTargetIp\\": \\"2.2.XX.XX\\",\\n \\"Status\\": \\"Active\\",\\n \\"CreationTime\\": \\"2022-04-14T08:57:24Z\\",\\n \\"ReservationOrderType\\": \\"RENEW\\",\\n \\"OppositeInterfaceId\\": \\"ri-bp1xkrzttximaoxbl****\\",\\n \\"Spec\\": \\"Mini.2\\",\\n \\"ChargeType\\": \\"AfterPay\\",\\n \\"RouterInterfaceId\\": \\"ri-m5egfc10sednwk2yt****\\",\\n \\"Message\\": \\"successful\\",\\n \\"HcThreshold\\": 8,\\n \\"OppositeRouterType\\": \\"VRouter\\",\\n \\"GmtModified\\": \\"2022-04-28T10:02:12Z\\",\\n \\"VpcInstanceId\\": \\"vpc-bp1b49rqrybk45nio****\\",\\n \\"OppositeInterfaceOwnerId\\": \\"1321932713****\\",\\n \\"OppositeVpcInstanceId\\": \\"vpc-bp1b49rqrybk45nio****\\",\\n \\"ReservationInternetChargeType\\": \\"PayByBandwidth\\",\\n \\"CrossBorder\\": false,\\n \\"RequestId\\": \\"01818199-04F6-47F4-9ADF-7CC824CF57A4\\",\\n \\"Bandwidth\\": 2,\\n \\"Description\\": \\"对端接口\\",\\n \\"HcRate\\": 2,\\n \\"ReservationBandwidth\\": \\"100\\",\\n \\"Code\\": \\"200\\",\\n \\"Name\\": \\"路由器接口1\\",\\n \\"OppositeRouterId\\": \\"vrt-bp11xvy6lb9photuu****\\",\\n \\"OppositeInterfaceSpec\\": \\"Negative\\",\\n \\"RouterId\\": \\"vbr-m5ex0xf63xk8s5bob****\\",\\n \\"Success\\": true,\\n \\"OppositeInterfaceBusinessStatus\\": \\"Normal\\",\\n \\"ConnectedTime\\": \\"2022-04-14T08:58:04Z\\",\\n \\"HealthCheckSourceIp\\": \\"1.1.XX.XX\\",\\n \\"OppositeInterfaceStatus\\": \\"Active\\",\\n \\"EndTime\\": \\"2999-09-08T16:00:00Z\\",\\n \\"OppositeRegionId\\": \\"cn-hangzhou\\",\\n \\"OppositeAccessPointId\\": \\"ap-cn-qingdao-ls-B\\",\\n \\"BusinessStatus\\": \\"Normal\\",\\n \\"HealthCheckStatus\\": \\"normal\\",\\n \\"OppositeBandwidth\\": 0,\\n \\"RouterType\\": \\"VRouter\\",\\n \\"Role\\": \\"InitiatingSide\\",\\n \\"HasReservationData\\": \\"false\\",\\n \\"AccessPointId\\": \\"ap-cn-qingdao-ls-A\\",\\n \\"ResourceGroupId\\": \\"rg-acfmxazb4ph6aiy****\\",\\n \\"Tags\\": {\\n \\"Tags\\": [\\n {\\n \\"Key\\": \\"FinanceDept\\",\\n \\"Value\\": \\"FinanceJoshua\\"\\n }\\n ]\\n },\\n \\"FastLinkMode\\": \\"false\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 2022-06-11T16:00:00Z\\n 2.2.XX.XX\\n Active\\n 2022-04-14T08:57:24Z\\n RENEW\\n ri-bp1xkrzttximaoxbl****\\n Mini.2\\n AfterPay\\n ri-m5egfc10sednwk2yt****\\n successful\\n 8\\n VRouter\\n 2022-04-28T10:02:12Z\\n vpc-bp1b49rqrybk45nio****\\n 1321932713****\\n vpc-bp1b49rqrybk45nio****\\n PayByBandwidth\\n false\\n 01818199-04F6-47F4-9ADF-7CC824CF57A4\\n 2\\n 对端接口\\n 2\\n 100\\n 200\\n 路由器接口1\\n vrt-bp11xvy6lb9photuu****\\n Negative\\n vbr-m5ex0xf63xk8s5bob****\\n true\\n Normal\\n 2022-04-14T08:58:04Z\\n 1.1.XX.XX\\n Active\\n 2999-09-08T16:00:00Z\\n cn-hangzhou\\n ap-cn-qingdao-ls-B\\n Normal\\n normal\\n 0\\n VRouter\\n InitiatingSide\\n false\\n ap-cn-qingdao-ls-A\\n rg-acfmxazb4ph6aiy****\\n \\n FinanceDept\\n FinanceJoshua\\n \\n","errorExample":""}]', - 'title' => 'DescribeRouterInterfaceAttribute', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', + 'createdAt' => '2021-12-29T07:28:36.000Z', + 'description' => 'GetIpv4GatewayAttribute增加创建时间返回值', ], - 'DeactivateRouterInterface' => [ - 'summary' => 'Deactivates a router interface.', - 'methods' => [ - 'post', - 'get', + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'CreateNatGateway'], ], - 'schemes' => [ - 'http', - 'https', + 'createdAt' => '2021-12-28T07:14:00.000Z', + 'description' => '新建NAT时不再支持按规格计费,默认是按CU使用量计费', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'CreateVirtualBorderRouter'], ], - 'security' => [ - [ - 'AK' => [], - ], + 'createdAt' => '2021-12-28T06:33:41.000Z', + 'description' => '错误码映射', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'CreateVirtualPhysicalConnection'], ], - 'systemTags' => [ - 'operationType' => 'update', + 'createdAt' => '2021-12-28T04:35:45.000Z', + 'description' => '增加错误码映射', + ], + [ + 'apis' => [ + ['description' => 'OpenAPI offline', 'api' => 'CheckCanAllocateVpcPrivateIpAddress'], ], - 'parameters' => [ - [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region where the router interface is deployed.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cn-hangzhou', - ], - ], - [ - 'name' => 'RouterInterfaceId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the router interface.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'ri-2zeo3xzyf38r4urz****', - ], - ], + 'createdAt' => '2021-12-28T04:35:32.000Z', + 'description' => '新增支持查询VPC内私网IP是否可用校验的API', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'CreateVirtualBorderRouter'], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => 'BE7EB53A-99AB-4DA8-AEDE-75FA90D046A6', - ], - ], - ], - ], + 'createdAt' => '2021-12-23T12:49:14.000Z', + 'description' => '增加错误码映射', + ], + [ + 'apis' => [ + ['description' => 'Response parameters changed', 'api' => 'DescribePhysicalConnections'], + ['description' => 'Response parameters changed', 'api' => 'ListVirtualPhysicalConnections'], + ['description' => 'Request parameters changed', 'api' => 'UpdateVirtualPhysicalConnection'], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'IncorrectRIStatus', - 'errorMessage' => 'RouterInterface can be operated by this action only when it\'s status is Active.', - ], - [ - 'errorCode' => 'Forbidden.FinancialLocked', - 'errorMessage' => 'This RouterInterface is financiel locked because of bills outstanding.', - ], - [ - 'errorCode' => 'Forbbiden.InvaildOwner', - 'errorMessage' => 'The RouterInterface owener error', - ], - [ - 'errorCode' => 'OperationFailed.OperationLocked', - 'errorMessage' => 'Operation failed because OperationLocked.', - ], - ], - 404 => [ - [ - 'errorCode' => 'InvalidRegionId.NotFound', - 'errorMessage' => 'The RegionId provided does not exist in our records.', - ], - [ - 'errorCode' => 'InvalidRouterInterfaceId.NotFound', - 'errorMessage' => 'The specified RouterInterfaceId does not exist in our record.', - ], - ], + 'createdAt' => '2021-12-20T08:06:49.000Z', + 'description' => '共享端口支持升降配', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'ModifyEipAddressAttribute'], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"BE7EB53A-99AB-4DA8-AEDE-75FA90D046A6\\"\\n}","errorExample":""},{"type":"xml","example":"\\n BE7EB53A-99AB-4DA8-AEDE-75FA90D046A6\\n","errorExample":""}]', - 'title' => 'DeactivateRouterInterface', + 'createdAt' => '2021-12-16T07:53:58.000Z', + 'description' => 'ModifyEipAddressAttribute新增错误码', ], - 'GrantInstanceToVbr' => [ - 'summary' => 'Grants a virtual border router (VBR) the permissions to connect to a virtual private cloud (VPC) that belongs to another Alibaba Cloud account.', - 'methods' => [ - 'get', - 'post', + [ + 'apis' => [ + ['description' => 'Response parameters changed', 'api' => 'DescribeEipAddresses'], ], - 'schemes' => [ - 'http', - 'https', + 'createdAt' => '2021-12-08T03:36:05.000Z', + 'description' => 'DescribeEipAddresses接口增加description返回值', + ], + [ + 'apis' => [ + ['description' => 'Request parameters changed', 'api' => 'AllocateEipAddressPro'], ], - 'security' => [ - [ - 'AK' => [], - ], + 'createdAt' => '2021-12-01T09:27:26.000Z', + 'description' => '高防eip支持指定ip申请', + ], + [ + 'apis' => [ + ['description' => 'Request parameters changed', 'api' => 'ListNatIpCidrs'], ], - 'operationType' => 'write', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'update', - 'riskType' => 'none', - 'chargeType' => 'free', + 'createdAt' => '2021-11-25T11:45:24.000Z', + 'description' => 'natIpCidr文档非必传', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'CreatePhysicalConnection'], ], - 'parameters' => [ - [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region where the VPC is deployed.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cn-hangzhou', - ], - ], - [ - 'name' => 'VbrOwnerUid', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the Alibaba Cloud account to which the VBR belongs.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'example' => '1210123456123456', - ], - ], - [ - 'name' => 'VbrInstanceIds', - 'in' => 'query', - 'style' => 'simple', - 'schema' => [ - 'description' => 'The information about the VBRs.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The VBR that needs to acquire permissions on the VPC. You can specify multiple VBRs and separate them with commas (,).'."\n" - ."\n" - .'* When **GrantType** is set to **All**, permissions on the VPC are granted to all VBRs that belong to the specified region and Alibaba Cloud account. In this case, you can leave this parameter empty.'."\n" - .'* If you set **GrantType** to **Specify**, you must set VbrInstanceIds to specify the VBRs to which the permissions are granted.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'vbr-m5ex0xf63xk8s5bob****,vbr-bp1h6efd7a5g66xxd****', - ], - 'required' => false, - 'maxItems' => 20, - ], - ], - [ - 'name' => 'InstanceId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the VPC.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'vpc-bp1lqhq93q8evjpky****', - ], - ], - [ - 'name' => 'GrantType', - 'in' => 'query', - 'schema' => [ - 'description' => 'The VBRs that need to acquire permissions on the VPC. Valid values:'."\n" - ."\n" - .'* **All**: Permissions on the VPC are granted to all VBRs that belong to the specified region and Alibaba Cloud account. In this case, you can leave **VbrInstanceIds** empty.'."\n" - .'* **Specify**: Permissions on the VPC are granted to the specified VBRs. **VbrInstanceIds** must be assigned a value.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'All', - ], - ], - [ - 'name' => 'VbrRegionNo', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region where the VBR is deployed.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cn-hangzhou', - ], - ], + 'createdAt' => '2021-11-25T08:05:09.000Z', + 'description' => '增加错误码', + ], + [ + 'apis' => [ + ['description' => 'Request parameters changed', 'api' => 'ListNatIps'], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'description' => 'The returned data.'."\n", - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => 'F99F13AE-D733-5856-AB97-80CC88B1D5A8', - ], - ], - ], - ], + 'createdAt' => '2021-11-25T05:53:18.000Z', + 'description' => '修改了参数的文档是否必填', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'CreateCommonBandwidthPackage'], + ['description' => 'Error codes changed', 'api' => 'ModifyCommonBandwidthPackageSpec'], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InvalidParam.NotNull', - 'errorMessage' => 'The parameter must not be null.', - ], - [ - 'errorCode' => 'Parameter.Illegal', - 'errorMessage' => 'The parameter is illegal.', - ], - [ - 'errorCode' => 'Instance.StatusError', - 'errorMessage' => 'The status of instance error.', - ], - ], - 404 => [ - [ - 'errorCode' => 'Instance.NotExist', - 'errorMessage' => 'The instance not exist.', - ], - ], + 'createdAt' => '2021-11-22T09:44:07.000Z', + 'description' => '在不支持大带宽地域申请大于5G共享带宽包,返回ResourceNotEnough.Bandwidth错误码,提示The specified resource of Bandwidth is not enough.', + ], + [ + 'apis' => [ + ['description' => 'Request parameters changed', 'api' => 'DeletionProtection'], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'createdAt' => '2021-11-22T01:45:16.000Z', + 'description' => '对用户来说,API没有变化,只是修改后端参数接收位置。', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'CreateNatGateway'], + ['description' => 'Request parameters changed', 'api' => 'DescribeNatGateways'], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"F99F13AE-D733-5856-AB97-80CC88B1D5A8\\"\\n}","errorExample":""},{"type":"xml","example":"\\n F99F13AE-D733-5856-AB97-80CC88B1D5A8\\n","errorExample":""}]', - 'title' => 'GrantInstanceToVbr', - 'description' => '## Usage notes'."\n" - ."\n" - .'When you connect a VBR to a VPC that belongs to another Alibaba Cloud account, the VBR must acquire the required permissions from the VPC.'."\n", + 'createdAt' => '2021-11-03T13:43:46.000Z', + 'description' => '去掉多余的功能。', ], - 'ActivateRouterInterface' => [ - 'summary' => 'Activates a router interface that is in the Inactive state.', - 'methods' => [ - 'post', - 'get', + [ + 'apis' => [ + ['description' => 'OpenAPI offline', 'api' => 'AssociateRouteTableWithGateway'], + ['description' => 'OpenAPI offline', 'api' => 'CreateIpv4Gateway'], + ['description' => 'Error codes changed, Request parameters changed, Response parameters changed', 'api' => 'CreateRouteTable'], + ['description' => 'OpenAPI offline', 'api' => 'DeleteIpv4Gateway'], + ['description' => 'Response parameters changed', 'api' => 'DescribeRouteTableList'], + ['description' => 'OpenAPI offline', 'api' => 'DissociateRouteTableFromGateway'], + ['description' => 'OpenAPI offline', 'api' => 'EnableVpcIpv4Gateway'], + ['description' => 'OpenAPI offline', 'api' => 'GetIpv4GatewayAttribute'], + ['description' => 'OpenAPI offline', 'api' => 'ListGatewayRouteTableEntries'], + ['description' => 'OpenAPI offline', 'api' => 'ListIpv4Gateways'], + ], + 'createdAt' => '2021-11-03T13:41:36.000Z', + 'description' => 'Ipv4网关相关功能接口上线', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'CreateFullNatEntry'], + ['description' => 'Request parameters changed', 'api' => 'DeleteFullNatEntry'], + ['description' => 'Request parameters changed', 'api' => 'ListFullNatEntries'], + ['description' => 'Request parameters changed', 'api' => 'ModifyFullNatEntryAttribute'], + ], + 'createdAt' => '2021-10-28T12:11:29.000Z', + 'description' => 'FullNatEntry参数调整。', + ], + [ + 'apis' => [ + ['description' => 'Response parameters changed', 'api' => 'ListFullNatEntries'], ], - 'schemes' => [ - 'http', - 'https', + 'createdAt' => '2021-10-27T07:00:15.000Z', + 'description' => '改正ListFullNatEntries参数名称。', + ], + [ + 'apis' => [ + ['description' => 'Response parameters changed', 'api' => 'DescribePhysicalConnections'], ], - 'security' => [ - [ - 'AK' => [], - ], + 'createdAt' => '2021-10-26T09:56:37.000Z', + 'description' => 'ACVS类型支持跳过loa', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'AssociateVpnGatewayWithCertificate'], ], - 'operationType' => 'write', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'update', - 'riskType' => 'none', - 'chargeType' => 'free', + 'createdAt' => '2021-10-13T09:52:20.000Z', + 'description' => '增加错误码。', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'CreateVpconnFromVbr'], ], - 'parameters' => [ - [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the router interface.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', - ], - ], - [ - 'name' => 'RouterInterfaceId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the router interface.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'ri-2zeo3xzyf38r4urz****', - ], - ], + 'createdAt' => '2021-10-13T09:52:01.000Z', + 'description' => '错误码添加', + ], + [ + 'apis' => [ + ['description' => 'Response parameters changed', 'api' => 'DescribeRouterInterfaces'], + ['description' => 'Response parameters changed', 'api' => 'DescribeRouterInterfaces'], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '079874CD-AEC1-43E6-AC03-ADD96B6E4907', - ], - ], - ], - ], + 'createdAt' => '2021-10-13T09:51:51.000Z', + 'description' => 'vbripv6', + ], + [ + 'apis' => [ + ['description' => 'OpenAPI offline', 'api' => 'AttachVbrToVpconn'], + ['description' => 'Error codes changed', 'api' => 'ConfirmPhysicalConnection'], + ['description' => 'OpenAPI offline', 'api' => 'CreateVirtualPhysicalConnection'], + ['description' => 'OpenAPI offline', 'api' => 'CreateVpconnFromVbr'], + ['description' => 'Response parameters changed', 'api' => 'DescribePhysicalConnections'], + ['description' => 'OpenAPI offline', 'api' => 'ListVirtualPhysicalConnections'], + ['description' => 'OpenAPI offline', 'api' => 'RecoverPhysicalConnection'], + ['description' => 'Error codes changed', 'api' => 'UpdateVirtualBorderBandwidth'], + ['description' => 'OpenAPI offline', 'api' => 'UpdateVirtualPhysicalConnection'], + ], + 'createdAt' => '2021-09-28T06:42:18.000Z', + 'description' => 'vpconn相关openapi发布。', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'CreateVirtualPhysicalConnection'], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'IncorrectRIStatus', - 'errorMessage' => 'RouterInterface can be operated by this action only when it\'s status is Inactive.', - ], - [ - 'errorCode' => 'Forbidden.FinancialLocked', - 'errorMessage' => 'This RouterInterface is financiel locked because of bills outstanding.', - ], - [ - 'errorCode' => 'OperationFailed.PconnTrafficNotEnable', - 'errorMessage' => 'The operation is failed because of PconnTrafficNotEnable.', - ], - [ - 'errorCode' => 'Forbbiden', - 'errorMessage' => 'The router does not belong to your account.', - ], - [ - 'errorCode' => 'NotSupportLinkrole', - 'errorMessage' => 'This RouterInterface is not a vlan interface for connection.', - ], - [ - 'errorCode' => 'OppositeRouterInterfaceIsDeleted', - 'errorMessage' => 'The opposite router interface is already deleted.', - ], - ], - 404 => [ - [ - 'errorCode' => 'InvalidRegionId.NotFound', - 'errorMessage' => 'The specified RegionId does not exist in our records.', - ], - [ - 'errorCode' => 'InvalidRouterInterfaceId.NotFound', - 'errorMessage' => 'The specified RouterInterfaceId does not exist in our records.', - ], - ], + 'createdAt' => '2021-09-28T06:42:00.000Z', + 'description' => 'vpconn错误码发布', + ], + [ + 'apis' => [ + ['description' => 'Request parameters changed', 'api' => 'CreateVirtualPhysicalConnection'], + ['description' => 'Request parameters changed', 'api' => 'CreateVpconnFromVbr'], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'createdAt' => '2021-09-28T06:40:28.000Z', + 'description' => 'vpconn相关openapi发布。', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'DeleteNatGateway'], + ['description' => 'Response parameters changed', 'api' => 'ListNatIpCidrs'], + ['description' => 'Response parameters changed', 'api' => 'ListNatIps'], + ['description' => 'Error codes changed', 'api' => 'ModifyNatGatewayAttribute'], + ], + 'createdAt' => '2021-08-17T09:16:30.000Z', + 'description' => '无', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'UnassociateVpcCidrBlock'], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"079874CD-AEC1-43E6-AC03-ADD96B6E4907\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 079874CD-AEC1-43E6-AC03-ADD96B6E4907\\n","errorExample":""}]', - 'title' => 'ActivateRouterInterface', - 'description' => 'After you call this operation, the router interface enters the **Activating** state. After the router interface is activated, it enters the **Active** state.'."\n" - ."\n" - .'> You cannot activate a router interface that has overdue payments.', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', + 'createdAt' => '2021-08-16T09:17:47.000Z', + 'description' => 'vpc解绑cidr接口增加一个错误码配置,即解绑最后一个ipv6Cidr时还存在ipv6网关,报错', ], - 'RevokeInstanceFromVbr' => [ - 'summary' => 'Revokes the permissions granted to a virtual border router (VBR) on a virtual private cloud (VPC).', - 'methods' => [ - 'get', - 'post', + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'DeleteVSwitch'], ], - 'schemes' => [ - 'http', - 'https', + 'createdAt' => '2021-08-08T06:04:10.000Z', + 'description' => '增加删除vswitch时错误码,该错误码为下发管控时管控显示vswtich处于中间态,不可删除', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'DeleteVpc'], + ['description' => 'Error codes changed', 'api' => 'DetachDhcpOptionsSetFromVpc'], ], - 'security' => [ - [ - 'AK' => [], - ], + 'createdAt' => '2021-08-06T06:50:25.000Z', + 'description' => '增加接口错误码', + ], + [ + 'apis' => [ + ['description' => 'OpenAPI offline', 'api' => 'GetPhysicalConnectionServiceStatus'], ], - 'operationType' => 'write', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'update', - 'riskType' => 'none', - 'chargeType' => 'free', + 'createdAt' => '2021-07-02T03:52:55.000Z', + 'description' => '查询是否开通出云流量功能支持。', + ], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DescribeExpressConnectTrafficQos'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'AttachDhcpOptionsSetToVpc'], + ['threshold' => '1200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ListVSwitchCidrReservations'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DetachDhcpOptionsSetFromVpc'], + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'AddCommonBandwidthPackageIps'], + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ModifySslVpnClientCert'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DescribeBgpNetworks'], + ['threshold' => '30', 'countWindow' => 60, 'regionId' => '*', 'api' => 'UpdateNetworkAclEntries'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CreateHaVip'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DeleteIpv6Gateway'], + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'AssociateEipAddress'], + ['threshold' => '30', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CopyNetworkAclEntries'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'TerminateVirtualBorderRouter'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DeleteNatIpCidr'], + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'GetVpcRouteEntrySummary'], + ['threshold' => '600', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CreateFailoverTestJob'], + ['threshold' => '1200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DescribeForwardTableEntries'], + ['threshold' => '600', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DescribeSslVpnClientCerts'], + ['threshold' => '600', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DescribeVpnSslServerLogs'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DeleteRouterInterface'], + ['threshold' => '600', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DissociateRouteTablesFromVpcGatewayEndpoint'], + ['threshold' => '1200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DescribeNatGatewayAssociateNetworkInterfaces'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ModifyNatGatewayAttribute'], + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ModifyVpnGatewayAttribute'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DeleteRouteTargetGroup'], + ['threshold' => '3000', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DescribeIPv6TranslatorEntries'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CreateExpressConnectTrafficQosQueue'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ConnectRouterInterface'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DescribeIpv6GatewayAttribute'], + ['threshold' => '600', 'countWindow' => 60, 'regionId' => '*', 'api' => 'AssociateRouteTablesWithVpcGatewayEndpoint'], + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'AssociateVpnGatewayWithCertificate'], + ['threshold' => '600', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DescribeVpnPbrRouteEntries'], + ['threshold' => '600', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DescribeHighDefinitionMonitorLogAttribute'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CreateSnatEntry'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DeleteCommonBandwidthPackage'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ModifyVSwitchAttribute'], + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ModifyIPv6TranslatorAclListEntry'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DescribeNetworkAclAttributes'], + ['threshold' => '1200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ListPrefixLists'], + ['threshold' => '360', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ListDhcpOptionsSets'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CreateRouterInterface'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ListPublicIpAddressPoolCidrBlocks'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'TagResources'], + ['threshold' => '600', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DescribeSslVpnClients'], + ['threshold' => '1200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DescribeFlowLogs'], + ['threshold' => '3000', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DescribeIPv6TranslatorAclListAttributes'], + ['threshold' => '360', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CreateVpcPrefixList'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ModifyNatGatewaySpec'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CreateDhcpOptionsSet'], + ['threshold' => '60', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CreateVcoRouteEntry'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CreateRouteTargetGroup'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DeleteExpressConnectTrafficQosQueue'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DeleteNatIp'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ModifyEipAddressAttribute'], + ['threshold' => '1200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ListNatIpCidrs'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DeleteRouteEntries'], + ['threshold' => '600', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DeactiveFlowLog'], + ['threshold' => '30', 'countWindow' => 60, 'regionId' => '*', 'api' => 'AssociateEipAddressBatch'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DeleteNatGateway'], + ['threshold' => '600', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DescribeZones'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DeactivateRouterInterface'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DescribeRouterInterfaceAttribute'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DescribeAccessPoints'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ModifySnatEntry'], + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CreateIPv6TranslatorAclList'], + ['threshold' => '600', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ReleaseEipAddress'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DeletionProtection'], + ['threshold' => '1200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ListVpcGatewayEndpoints'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DescribeEipSegment'], + ['threshold' => '360', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DescribeVSwitches'], + ['threshold' => '360', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DescribeVpcs'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ModifyRouterInterfaceAttribute'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DescribeVirtualBorderRoutersForPhysicalConnection'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ModifyGlobalAccelerationInstanceAttributes'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CreateRouteEntries'], + ['threshold' => '60', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CreateTrafficMirrorSession'], + ['threshold' => '600', 'countWindow' => 60, 'regionId' => '*', 'api' => 'AssociateRouteTableWithGateway'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ModifyCommonBandwidthPackageAttribute'], + ['threshold' => '600', 'countWindow' => 60, 'regionId' => '*', 'api' => 'UpdateTrafficMirrorSessionAttribute'], + ['threshold' => '600', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CreateTrafficMirrorFilter'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DescribeVirtualBorderRouters'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ListTagResourcesForExpressConnect'], + ['threshold' => '-1', 'countWindow' => 1, 'regionId' => '*'], + ['threshold' => '1200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CreateVSwitchCidrReservation'], + ['threshold' => '60', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CreateVpnAttachment'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DescribeVbrHa'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'GetRouteTargetGroup'], + ['threshold' => '600', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DescribeSslVpnServers'], + ['threshold' => '600', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CreateVpcGatewayEndpoint'], + ['threshold' => '1200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DescribeSnatTableEntries'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DescribeTagKeysForExpressConnect'], + ['threshold' => '1200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'GetNatGatewayAttribute'], + ['threshold' => '180', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DescribeRouteTableList'], + ['threshold' => '600', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DescribeCustomerGateways'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DeleteVpc'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CreateDefaultVSwitch'], + ['threshold' => '30', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DownloadVpnConnectionConfig'], + ['threshold' => '3000', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DescribeIPv6Translators'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ListBusinessRegions'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CreateRouteTable'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'RecoverVirtualBorderRouter'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'SecondApplyPhysicalConnectionLOA'], + ['threshold' => '60', 'countWindow' => 60, 'regionId' => '*', 'api' => 'EnableVpcIpv4Gateway'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DeleteBgpPeer'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DescribeIpv6Gateways'], + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'RemoveIPv6TranslatorAclListEntry'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DescribeEcGrantRelation'], + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'GetIpv4GatewayAttribute'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ModifyForwardEntry'], + ['threshold' => '600', 'countWindow' => 60, 'regionId' => '*', 'api' => 'AddSourcesToTrafficMirrorSession'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CreateVpc'], + ['threshold' => '600', 'countWindow' => 60, 'regionId' => '*', 'api' => 'UpdateFailoverTestJob'], + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CreateIPv6Translator'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ListBusinessAccessPoints'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ModifyIpv6GatewayAttribute'], + ['threshold' => '60', 'countWindow' => 60, 'regionId' => '*', 'api' => 'OpenTrafficMirrorService'], + ['threshold' => '1200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'GetVpcGatewayEndpointAttribute'], + ['threshold' => '30', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DeleteNetworkAcl'], + ['threshold' => '60', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DeleteVcoRouteEntry'], + ['threshold' => '100', 'countWindow' => 3600, 'regionId' => '*', 'api' => 'CreateSslVpnServer'], + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ModifyTunnelAttribute'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'AllocateIpv6InternetBandwidth'], + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ModifySslVpnServer'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DescribeBgpPeers'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'UnassociateVpcCidrBlock'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DescribeGrantRulesToEcr'], + ['threshold' => '5', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ConvertBandwidthPackage'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DescribeHaVips'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ModifyExpressConnectTrafficQosRule'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DescribePublicIpAddress'], + ['threshold' => '600', 'countWindow' => 60, 'regionId' => '*', 'api' => 'GrantInstanceToCen'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'SwitchActiveRouteTarget'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DescribeVpcAttribute'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ModifyIpv6AddressAttribute'], + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ModifyIPv6TranslatorAttribute'], + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ModifyIPv6TranslatorBandwidth'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CreateIpv6Gateway'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DeleteBgpNetwork'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DescribeTagKeys'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ChangeResourceGroup'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DescribeBgpGroups'], + ['threshold' => '180', 'countWindow' => 60, 'regionId' => '*', 'api' => 'Describe95Traffic'], + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DescribeGrantRulesToCen'], + ['threshold' => '600', 'countWindow' => 60, 'regionId' => '*', 'api' => 'WithdrawVpcPublishedRouteEntries'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DeleteIpv6InternetBandwidth'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'UpdatePublicIpAddressPoolAttribute'], + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ModifyCustomerGatewayAttribute'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'EnablePhysicalConnection'], + ['threshold' => '600', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CheckVpnBgpEnabled'], + ['threshold' => '1200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'GetFlowLogServiceStatus'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CreateHighReliablePhysicalConnection'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CreateForwardEntry'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DescribeRouterInterfaces'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ListGeographicSubRegions'], + ['threshold' => '600', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ListIpsecServerLogs'], + ['threshold' => '600', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CreateFlowLog'], + ['threshold' => '30', 'countWindow' => 60, 'regionId' => '*', 'api' => 'UnassociateNetworkAcl'], + ['threshold' => '3000', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DescribeIPv6TranslatorAclLists'], + ['threshold' => '30', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DescribeNetworkAcls'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ListPhysicalConnectionFeatures'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CreateExpressConnectTrafficQos'], + ['threshold' => '20', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CreatePhysicalConnectionSetupOrder'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ListPublicIpAddressPools'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'TransformEipSegmentToPublicIpAddressPool'], + ['threshold' => '600', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CreateTrafficMirrorFilterRules'], + ['threshold' => '500', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DescribeRouteTables'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ModifyEipForwardMode'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DescribeRouteEntryList'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ApplyPhysicalConnectionLOA'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ConfirmPhysicalConnection'], + ['threshold' => '60', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DeleteVpnPbrRouteEntry'], + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ModifyIPv6TranslatorAclAttribute'], + ['threshold' => '30', 'countWindow' => 60, 'regionId' => '*', 'api' => 'AssociateNetworkAcl'], + ['threshold' => '1200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'GetVSwitchCidrReservationUsage'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ModifyExpressConnectTrafficQos'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'AttachVbrToVpconn'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CreateExpressConnectTrafficQosRule'], + ['threshold' => '1200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'GetVpcPrefixListEntries'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DescribeIpv6EgressOnlyRules'], + ['threshold' => '600', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DeleteFailoverTestJob'], + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DiagnoseVpnConnections'], + ['threshold' => '60', 'countWindow' => 60, 'regionId' => '*', 'api' => 'RevokeInstanceFromCen'], + ['threshold' => '600', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DescribeRegions'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ModifyCommonBandwidthPackageIpBandwidth'], + ['threshold' => '600', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DescribeVpnGateways'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'RecoverPhysicalConnection'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CancelPhysicalConnection'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CreateGlobalAccelerationInstance'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'OpenPhysicalConnectionService'], + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'AllocateEipAddress'], + ['threshold' => '600', 'countWindow' => 60, 'regionId' => '*', 'api' => 'StartFailoverTestJob'], + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DeleteIPv6TranslatorAclList'], + ['threshold' => '600', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DescribeFailoverTestJob'], + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'GetPublicIpAddressPoolServiceStatus'], + ['threshold' => '60', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CreateVpnGateway'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'GetPhysicalConnectionServiceStatus'], + ['threshold' => '600', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DescribeVpnCrossAccountAuthorizations'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CreateVpconnFromVbr'], + ['threshold' => '600', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DeleteVpcPrefixList'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DescribeGlobalAccelerationInstances'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'RemoveCommonBandwidthPackageIp'], + ['threshold' => '60', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DeleteIpv4Gateway'], + ['threshold' => '600', 'countWindow' => 60, 'regionId' => '*', 'api' => 'RetryVpcPrefixListAssociation'], + ['threshold' => '1200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ListTrafficMirrorFilters'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CreateNatGateway'], + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'AddIPv6TranslatorAclListEntry'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'UntagResourcesForExpressConnect'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'UpdateVirtualPhysicalConnection'], + ['threshold' => '600', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DescribeEipAddresses'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ActivateRouterInterface'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CreateDefaultVpc'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DeletePublicIpAddressPoolCidrBlock'], + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CreateIpsecServer'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CreateNatIpCidr'], + ['threshold' => '1200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ModifyVSwitchCidrReservationAttribute'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ModifyRouteEntry'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CreateIpv6EgressOnlyRule'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ModifyRouteTableAttributes'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DeletePhysicalConnection'], + ['threshold' => '60', 'countWindow' => 60, 'regionId' => '*', 'api' => 'PublishVpnRouteEntry'], + ['threshold' => '60', 'countWindow' => 60, 'regionId' => '*', 'api' => 'AllocateIpv6Address'], + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CreateIPv6TranslatorEntry'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ModifyGlobalAccelerationInstanceSpec'], + ['threshold' => '1200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'GetVpcPrefixListAssociations'], + ['threshold' => '60', 'countWindow' => 60, 'regionId' => '*', 'api' => 'UpdateIpv4GatewayAttribute'], + ['threshold' => '600', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ModifyFlowLogAttribute'], + ['threshold' => '60', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DescribeEipMonitorData'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CreateExpressCloudConnection'], + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ModifyVpnRouteEntryWeight'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'AddBgpNetwork'], + ['threshold' => '600', 'countWindow' => 60, 'regionId' => '*', 'api' => 'UpdateVpcGatewayEndpointAttribute'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CreateVbrHa'], + ['threshold' => '420', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DeleteTrafficMirrorSession'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DeleteExpressConnectTrafficQosRule'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CheckCanAllocateVpcPrivateIpAddress'], + ['threshold' => '600', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ModifyVpcPrefixList'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DeleteSnatEntry'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'GrantInstanceToVbr'], + ['threshold' => '600', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DeleteTrafficMirrorFilter'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ModifyNatIpCidrAttribute'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ModifyPhysicalConnectionAttribute'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'EnableVpcClassicLink'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DeleteHaVip'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DescribeExpressConnectTrafficQosQueue'], + ['threshold' => '600', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CreateRouteEntry'], + ['threshold' => '1200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'GetNatIpCidrAttribute'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DeleteDhcpOptionsSet'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DisableVpcClassicLink'], + ['threshold' => '1200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'GetNatIpAttribute'], + ['threshold' => '600', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DeleteTrafficMirrorFilterRules'], + ['threshold' => '600', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DeleteVpcGatewayEndpoint'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'AllocateVpcIpv6Cidr'], + ['threshold' => '6', 'countWindow' => 60, 'regionId' => '*', 'api' => 'AllocateEipSegmentAddress'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CreateVSwitch'], + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DeleteSslVpnClientCert'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CancelCommonBandwidthPackageIpBandwidth'], + ['threshold' => '600', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DescribeFailoverTestJobs'], + ['threshold' => '600', 'countWindow' => 60, 'regionId' => '*', 'api' => 'RemoveSourcesFromTrafficMirrorSession'], + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ModifyIPv6TranslatorEntry'], + ['threshold' => '600', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ActiveFlowLog'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DeleteIpv6EgressOnlyRule'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DeleteBgpGroup'], + ['threshold' => '1200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ListVpcPublishedRouteEntries'], + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ReleaseIpv6Address'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ModifyExpressCloudConnectionBandwidth'], + ['threshold' => '60', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CreateVpnPbrRouteEntry'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ListVirtualPhysicalConnections'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ModifyRouterInterfaceSpec'], + ['threshold' => '600', 'countWindow' => 60, 'regionId' => '*', 'api' => 'UpdateTrafficMirrorFilterAttribute'], + ['threshold' => '1200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ListTrafficMirrorSessions'], + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'UpdateIpsecServer'], + ['threshold' => '600', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DescribeVpnConnectionLogs'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ModifyBgpGroupAttribute'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'UpdateRouteTargetGroup'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DeleteForwardEntry'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'AddCommonBandwidthPackageIp'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'RevokeInstanceFromVbr'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ModifyIpv6InternetBandwidth'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DescribeEipGatewayInfo'], + ['threshold' => '600', 'countWindow' => 60, 'regionId' => '*', 'api' => 'SetHighDefinitionMonitorLogStatus'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CreateBgpGroup'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ModifyExpressCloudConnectionAttribute'], + ['threshold' => '60', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CreateIpv4Gateway'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DeleteExpressConnect'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'UpdateDhcpOptionsSetAttribute'], + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DeleteCustomerGateway'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'UnassociateGlobalAccelerationInstance'], + ['threshold' => '60', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ReleaseEipSegmentAddress'], + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DeleteIPv6Translator'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'AssociatePhysicalConnectionToVirtualBorderRouter'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DeleteGlobalAccelerationInstance'], + ['threshold' => '1200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DescribeVpcGrantRulesToEcr'], + ['threshold' => '60', 'countWindow' => 60, 'regionId' => '*', 'api' => 'GetTrafficMirrorServiceStatus'], + ['threshold' => '60', 'countWindow' => 60, 'regionId' => '*', 'api' => 'MoveResourceGroup'], + ['threshold' => '60', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DeleteVpnRouteEntry'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CreateVirtualPhysicalConnection'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DeleteVSwitch'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ListRouteTargetGroups'], + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CreateCustomerGateway'], + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DeleteSslVpnServer'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DescribeTags'], + ['threshold' => '600', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ListVpnCertificateAssociations'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'UpdateVirtualBorderBandwidth'], + ['threshold' => '600', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DeleteFullNatEntry'], + ['threshold' => '600', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DeleteFlowLog'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'GetDhcpOptionsSet'], + ['threshold' => '60', 'countWindow' => 60, 'regionId' => '*', 'api' => 'AllocateEipAddressPro'], + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'UnassociateEipAddress'], + ['threshold' => '600', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DescribeVpnConnection'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'AddGlobalAccelerationInstanceIp'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DeletePublicIpAddressPool'], + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ListGatewayRouteTableEntries'], + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'MoveVpnResourceGroup'], + ['threshold' => '10', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DiagnoseVpnGateway'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ModifyVirtualBorderRouterAttribute'], + ['threshold' => '60', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DeleteVpnGateway'], + ['threshold' => '600', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DescribeCustomerGateway'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'AssociateVpcCidrBlock'], + ['threshold' => '600', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DescribeVpnConnections'], + ['threshold' => '600', 'countWindow' => 60, 'regionId' => '*', 'api' => 'OpenFlowLogService'], + ['threshold' => '1200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ListNatIps'], + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ModifyVpnPbrRouteEntryPriority'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ModifyFullNatEntryAttribute'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DescribeExpressConnectTrafficQosRule'], + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ModifyVpnPbrRouteEntryWeight'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ModifyBgpPeerAttribute'], + ['threshold' => '1200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DescribeNatGateways'], + ['threshold' => '30', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ModifyNetworkAclAttributes'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CreateNatIp'], + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CreateVpnConnection'], + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DeleteIpsecServer'], + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DeleteVpnConnection'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'UpdateNatGatewayNatType'], + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ModifyVpnConnectionAttribute'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'RemoveGlobalAccelerationInstanceIp'], + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'GetVpnGatewayDiagnoseResult'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DeleteExpressConnectTrafficQos'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ListTagResources'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CreatePublicIpAddressPool'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ModifyVpcAttribute'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'TagResourcesForExpressConnect'], + ['threshold' => '600', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ListVpcEndpointServicesByEndUser'], + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'OpenPublicIpAddressPoolService'], + ['threshold' => '600', 'countWindow' => 60, 'regionId' => '*', 'api' => 'PublishVpcRouteEntries'], + ['threshold' => '1200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'VpcDescribeVpcNatGatewayNetworkInterfaceQuota'], + ['threshold' => '60', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CreateVpnRouteEntry'], + ['threshold' => '60', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DeleteVpnAttachment'], + ['threshold' => '1200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ListEnhanhcedNatGatewayAvailableZones'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'AddPublicIpAddressPoolCidrBlock'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DescribeVSwitchAttributes'], + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ModifyVcoRouteEntryWeight'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CreateCommonBandwidthPackage'], + ['threshold' => '1200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DeleteVSwitchCidrReservation'], + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ModifyVpnPbrRouteEntryAttribute'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ModifyNatIpAttribute'], + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CreateSslVpnClientCert'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CreateVirtualBorderRouter'], + ['threshold' => '600', 'countWindow' => 60, 'regionId' => '*', 'api' => 'UpdateTrafficMirrorFilterRuleAttribute'], + ['threshold' => '600', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DescribeIpv6Addresses'], + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DeleteIPv6TranslatorEntry'], + ['threshold' => '30', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CreateNetworkAcl'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'UnTagResources'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CreateBgpPeer'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CreatePhysicalConnection'], + ['threshold' => '600', 'countWindow' => 60, 'regionId' => '*', 'api' => 'StopFailoverTestJob'], + ['threshold' => '600', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DescribeVcoRouteEntries'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'UnassociatePhysicalConnectionFromVirtualBorderRouter'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'AssociateHaVip'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DescribeServerRelatedGlobalAccelerationInstances'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'AssociateRouteTable'], + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'UpdateGatewayRouteTableEntryAttribute'], + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ListIpv4Gateways'], + ['threshold' => '600', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DescribeVpnGatewayAvailableZones'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DeleteRouteEntry'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DeleteVirtualBorderRouter'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ModifyCommonBandwidthPackageSpec'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'TerminatePhysicalConnection'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DescribePhysicalConnectionLOA'], + ['threshold' => '600', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DescribeVpnGateway'], + ['threshold' => '600', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CreateFullNatEntry'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DeleteRouteTable'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DeleteVbrHa'], + ['threshold' => '600', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DescribeVpnRouteEntries'], + ['threshold' => '600', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ListIpsecServers'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'UnassociateRouteTable'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CompletePhysicalConnectionLOA'], + ['threshold' => '600', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DissociateRouteTableFromGateway'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DescribePhysicalConnections'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ModifyExpressConnectTrafficQosQueue'], + ['threshold' => '600', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DescribeVpnAttachments'], + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DescribeVRouters'], + ['threshold' => '1200', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ListFullNatEntries'], + ['threshold' => '600', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DescribeSslVpnClientCert'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'CreatePhysicalConnectionOccupancyOrder'], + ['threshold' => '600', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DescribeCommonBandwidthPackages'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'UnassociateHaVip'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ModifyHaVipAttribute'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ReplaceVpcDhcpOptionsSet'], + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DissociateVpnGatewayWithCertificate'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ModifyVRouterAttribute'], + ['threshold' => '120', 'countWindow' => 60, 'regionId' => '*', 'api' => 'ModifyVpnAttachmentAttribute'], + ], + 'product' => ['code' => 'expressconnect', 'title' => 'Vpc'], + ], + 'ram' => [ + 'productCode' => 'VPC', + 'productName' => 'Virtual Private Cloud', + 'ramCodes' => ['vpc'], + 'ramLevel' => 'RESOURCE', + 'ramConditions' => [ + [ + 'name' => 'vpc:VRouter', + 'schema' => ['type' => 'String', 'description' => 'Router Information'], + ], + [ + 'name' => 'vpc:VPC', + 'schema' => ['type' => 'String', 'description' => 'VPC Information'], + ], + [ + 'name' => 'vpc:tag', + 'schema' => ['type' => 'String', 'description' => 'Tags of the VPC'], + ], + [ + 'name' => 'vpc:TargetAccountRDId', + 'schema' => ['type' => 'String', 'description' => 'peer user resource directory ID information'], + ], + [ + 'name' => 'vpc:PhysicalConnection', + 'schema' => ['type' => 'String', 'description' => 'Physical Line Information'], + ], + [ + 'name' => 'vpc:VBR', + 'schema' => ['type' => 'String', 'description' => 'Border Router Information'], ], - 'parameters' => [ - [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region where the VPC is deployed.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cn-hangzhou', - ], - ], - [ - 'name' => 'VbrOwnerUid', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the Alibaba Cloud account to which the VBR belongs.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => '1210123456123456', - ], - ], - [ - 'name' => 'VbrInstanceIds', - 'in' => 'query', - 'style' => 'simple', - 'schema' => [ - 'description' => 'The IDs of the VBRs for which you want to revoke the permissions.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The VBR ID. You can specify multiple VBRs and separate them with commas (,).'."\n" - ."\n" - .'* If you set **GrantType** to **ALL**, this parameter is optional. Permissions on the VPC are revoked for all VBRs in the specified region.'."\n" - .'* If you set **GrantType** to **Specify**, this parameter is required. Permissions on the VPC are revoked for the specified VBRs.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'vbr-m5ex0xf63xk8s5bob****,vbr-bp1h6efd7a5g66xxd****', - ], - 'required' => false, - ], - ], - [ - 'name' => 'InstanceId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The VPC ID.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'vpc-bp1brjuegjc88v3u9****', - ], - ], - [ - 'name' => 'GrantType', - 'in' => 'query', - 'schema' => [ - 'description' => 'The VBRs for which you want to revoke permissions on the VPC. Valid values:'."\n" - ."\n" - .'* **ALL**: Permissions on the VPC are revoked for all VBRs in the specified region. **VbrInstanceIds** can be left empty.'."\n" - .'* **Specify**: Permissions on the VPC are revoked for the specified VBRs. **VbrInstanceIds** must be assigned a value.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'ALL', - ], - ], - [ - 'name' => 'VbrRegionNo', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region where the VBR is deployed.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cn-hangzhou', + ], + 'ramActions' => [ + [ + 'apiName' => 'DescribeFlowLogs', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'vpc:DescribeFlowLogs', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'FlowLog', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:flowlog/*'], ], ], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'description' => 'The returned data.'."\n", - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '45B7AA4A-4658-5FFC-90DD-9B8729F301BB', - ], - ], + [ + 'apiName' => 'DescribeVpnConnection', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'vpc:DescribeVpnConnection', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VpnConnection', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vpnconnection/{#VpnConnectionId}'], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'Instance.StatusError', - 'errorMessage' => 'The status of instance error. ', - ], - [ - 'errorCode' => 'InvalidParam.NotNull', - 'errorMessage' => 'The parameter must not be null.', - ], - [ - 'errorCode' => 'Parameter.Illegal', - 'errorMessage' => 'The parameter is illegal.', + [ + 'apiName' => 'CreateVbrHa', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'vpc:CreateVbrHa', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VirtualBorderRouter', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:virtualborderrouter/{#VbrId}'], ], ], - 404 => [ - [ - 'errorCode' => 'Instance.NotExist', - 'errorMessage' => 'The instance not exist.', - ], - [ - 'errorCode' => 'EcGrantRelation.NotExist', - 'errorMessage' => 'The ec grant relation not exist.', + ], + [ + 'apiName' => 'OpenFlowLogService', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'vpc:OpenFlowLogService', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'FlowLogService', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:flowlog/*'], ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"45B7AA4A-4658-5FFC-90DD-9B8729F301BB\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 45B7AA4A-4658-5FFC-90DD-9B8729F301BB\\n","errorExample":""}]', - 'title' => 'RevokeInstanceFromVbr', - ], - 'ConnectRouterInterface' => [ - 'summary' => 'Initiates a connection from the router interface of an initiator to the router interface of an accepter.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], + [ + 'apiName' => 'ModifyNatGatewaySpec', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:ModifyNatGatewaySpec', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'NatGateway', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:natgateway/{#NatGatewayId}'], + ], ], ], - 'operationType' => 'write', - 'deprecated' => false, - 'systemTags' => [ + [ + 'apiName' => 'ModifyCommonBandwidthPackageAttribute', + 'description' => '', 'operationType' => 'update', - 'riskType' => 'none', - 'chargeType' => 'free', - ], - 'parameters' => [ - [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region where the router interface is deployed.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cn-hangzhou', + 'ramAction' => [ + 'action' => 'vpc:ModifyCommonBandwidthPackageAttribute', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'BandwidthPackage', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:combandwidthpackage/{#BandwidthPackageId}'], ], ], - [ - 'name' => 'RouterInterfaceId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the initiator router interface.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'ri-2zeo3xzyf38r4urzd****', + ], + [ + 'apiName' => 'ChangeResourceGroup', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:ChangeResourceGroup', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'All Resource', 'arn' => '*'], ], ], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => 'DE77A7F3-3B74-41C0-A5BC-CAFD188C28B6', - ], - ], + [ + 'apiName' => 'DescribeSnatTableEntries', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'vpc:DescribeSnatTableEntries', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'SnatTable', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:snattable/{#SnatTableId}'], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'IncorrectRole.NotInitiatingSide', - 'errorMessage' => 'The specified RouterInterface is not InitiatingSide.', - ], - [ - 'errorCode' => 'IncorrectRIStatus', - 'errorMessage' => 'RouterInterface can be operated by this action only when it\'s status is Idle.', - ], - [ - 'errorCode' => 'IncorrectOppositeInterfaceInfo.NotSet', - 'errorMessage' => 'OppositeInterfaceId/OppositeRouterId/OppositeRouterType/OppositeInterfaceOwnerId must be all set.', - ], - [ - 'errorCode' => 'IncorrectOppositeInterfaceInfo', - 'errorMessage' => 'Cannot connect on the same router', - ], - [ - 'errorCode' => 'Forbidden.OnlyOneConnection', - 'errorMessage' => 'The Specified routers have a connection already', - ], - [ - 'errorCode' => 'Forbidden.BillsOutstanding', - 'errorMessage' => 'You cannot use this action because you have bills outstanding.', - ], - [ - 'errorCode' => 'InvalidAccount.NotFound', - 'errorMessage' => 'The specified account is not exists.', - ], - [ - 'errorCode' => 'ErrCode.Invalid', - 'errorMessage' => 'got error', - ], - [ - 'errorCode' => 'AttrMismatching.AcceptingSideRole', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'AttrMismatching.AcceptingSideInstanceId', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'AttrMismatching.AcceptingSideRegionNo', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'AttrMismatching.AcceptingSideRouterId', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'AttrMismatching.AcceptingSideRouterType', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'AttrMismatching.AcceptingSideAliUid', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'AttrMismatching.AcceptingSideOppositeInterfaceOwnerId', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'AttrMismatching.AcceptingSideOppositeRegionNo', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'AttrMismatching.AcceptingSideOppositeInterfaceId', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'AttrMismatching.AcceptingSideOppositeRouterId', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'AttrMismatching.AcceptingSideOppositeRouterType', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'IllegalParam.InstanceOwner', - 'errorMessage' => 'The router instance owener error.', + [ + 'apiName' => 'AddIPv6TranslatorAclListEntry', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'vpc:AddIPv6TranslatorAclListEntry', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'Ipv6Translator', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:ipv6trans/{#Ipv6TranslatorId}'], ], ], - 404 => [ - [ - 'errorCode' => 'InvalidRegionId.NotFound', - 'errorMessage' => 'The RegionId provided does not exist in our records.', - ], - [ - 'errorCode' => 'InvalidRouterInterfaceId.NotFound', - 'errorMessage' => 'The specified RouterInterfaceId does not exist in our record.', - ], - [ - 'errorCode' => 'CROSS_BID.FORBIDDEN', - 'errorMessage' => 'Connect RouterInterface across bid is illegal', + ], + [ + 'apiName' => 'AllocateVpcIpv6Cidr', + 'description' => '', + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'vpc:AllocateVpcIpv6Cidr', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'All Resource', 'arn' => '*'], ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"DE77A7F3-3B74-41C0-A5BC-CAFD188C28B6\\"\\n}","errorExample":""},{"type":"xml","example":"\\n DE77A7F3-3B74-41C0-A5BC-CAFD188C28B6\\n","errorExample":""}]', - 'title' => 'ConnectRouterInterface', - 'description' => 'After you call this operation, the router interface enters the **Connecting** state. When the connection is established, it enters the **Active** state.'."\n" - ."\n" - .'When you call this operation, take note of the following items:'."\n" - ."\n" - .'* Only an initiator router interface in the **Idle** state can initiate a connection.'."\n" - .'* You can create only one pair of connected router interfaces between two routers.'."\n" - .'* You cannot initiate a connection if your Alibaba Cloud account has a router interface with overdue payments.', - ], - 'CreateExpressCloudConnection' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], + [ + 'apiName' => 'ModifyIpv6GatewayAttribute', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:ModifyIpv6GatewayAttribute', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'Ipv6Gateway', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:ipv6gateway/{#Ipv6GatewayId}'], + ], ], ], - 'deprecated' => false, - 'systemTags' => [ + [ + 'apiName' => 'CreateEnhancedVpnGateway', + 'description' => '', 'operationType' => 'create', - 'tenantRelevance' => 'publicInformation', - ], - 'parameters' => [ - [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the ECC instance.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cn-hangzhou', + 'ramAction' => [ + 'action' => 'vpc:CreateEnhancedVpnGateway', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'All Resource', 'arn' => '*'], ], ], - [ - 'name' => 'Name', - 'in' => 'query', - 'schema' => [ - 'description' => 'The name of the ECC instance.'."\n" - ."\n" - .'The name must be 2 to 128 characters in length and can contain letters, digits, periods (.), underscores (\\_), and hyphens (-). It must start with a letter but cannot start with `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'doctest', + ], + [ + 'apiName' => 'CreateNatGateway', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'vpc:CreateNatGateway', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'NatGateway', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:natgateway/*'], ], ], - [ - 'name' => 'Description', - 'in' => 'query', - 'schema' => [ - 'description' => 'The description of ECC.'."\n" - ."\n" - .'The description must be 2 to 256 characters in length. It must start with a letter but cannot start with `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'ECC'."\n", + ], + [ + 'apiName' => 'ModifyExpressCloudConnectionAttribute', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:ModifyExpressCloudConnectionAttribute', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'PhysicalConnection', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:physicalconnection/{#PhysicalConnectionId}'], ], ], - [ - 'name' => 'PeerCity', - 'in' => 'query', - 'schema' => [ - 'description' => 'The city where the data center is located.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'Hangzhou'."\n", - 'default' => 'blank', + ], + [ + 'apiName' => 'CreatePublicIpAddressPool', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'vpc:CreatePublicIpAddressPool', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'PublicIpAddressPool', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:publicipaddresspool/*'], ], ], - [ - 'name' => 'PeerLocation', - 'in' => 'query', - 'schema' => [ - 'description' => 'The geographical location of the data center.'."\n" - ."\n" - .'> It must be accurate to house number-floor-room number-server rack number.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => '\\*\\*city\\*\\*district/county\\*\\*road\\*\\*number\\*\\*property or building name\\*\\*building\\*\\*floor\\*\\*room number\\*\\*server rack number\\*\\*server rack name\\*\\*device\\*\\*port'."\n", + ], + [ + 'apiName' => 'CreateVpc', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'vpc:CreateVpc', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VPC', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vpc/*'], ], ], - [ - 'name' => 'IdcSP', - 'in' => 'query', - 'schema' => [ - 'description' => 'The Internet service provider (ISP) for the data center.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'CU', + ], + [ + 'apiName' => 'ModifyNatGatewayAttribute', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:ModifyNatGatewayAttribute', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'NatGateway', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:natgateway/{#NatGatewayId}'], ], ], - [ - 'name' => 'PortType', - 'in' => 'query', - 'schema' => [ - 'description' => 'The port of the Express Connect circuit. Valid values:'."\n" - ."\n" - .'* 100Base-T'."\n" - .'* 1000Base-T'."\n" - .'* 1000Base-LX'."\n" - .'* 10GBase-T'."\n" - .'* 10GBase-LR'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '100Base-T', + ], + [ + 'apiName' => 'ModifyFullNatEntryAttribute', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:ModifyFullNatEntryAttribute', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'FullNat', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vpcfullnattable/{#FullNatTableId}'], ], ], - [ - 'name' => 'Bandwidth', - 'in' => 'query', - 'schema' => [ - 'description' => 'The bandwidth for ECC, which corresponds to the bandwidth for the underlying circuit.'."\n" - ."\n" - .'Unit: Mbit/s.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'example' => '2', + ], + [ + 'apiName' => 'EnableVpcIpv4Gateway', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:EnableVpcIpv4Gateway', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'Ipv4Gateway', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:ipv4gateway/{#ipv4gatewayId}'], ], ], - [ - 'name' => 'ContactTel', - 'in' => 'query', - 'schema' => [ - 'description' => 'The phone number of the contact who applies for ECC.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '132*********', + ], + [ + 'apiName' => 'DeleteNatGateway', + 'description' => '', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'vpc:DeleteNatGateway', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'NatGateway', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:natgateway/{#natgatewayid}'], ], ], - [ - 'name' => 'ContactMail', - 'in' => 'query', - 'schema' => [ - 'description' => 'The email address of the contact who applies for ECC.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'XX@example.com', + ], + [ + 'apiName' => 'DeletePublicIpAddressPoolCidrBlock', + 'description' => '', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'vpc:DeletePublicIpAddressPoolCidrBlock', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'PublicIpAddressPool', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:publicipaddresspool/{#PublicIpAddressPoolId}'], ], ], - [ - 'name' => 'IDCardNo', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID card number of the contact who applies for ECC.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '32*****************', - 'default' => 'blank', + ], + [ + 'apiName' => 'PublishVpnRouteEntry', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:PublishVpnRouteEntry', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VpnGateway', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vpngateway/{#VpnGatewayId}'], ], ], - [ - 'name' => 'RedundantEccId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the standby Express Connect circuit.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'ecc-d****', + ], + [ + 'apiName' => 'DescribeIpv6Gateways', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'vpc:DescribeIpv6Gateways', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'conditional', 'product' => 'VPC', 'resourceType' => 'Ipv6Gateway', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:ipv6gateway/*'], + ['validationType' => 'conditional', 'product' => 'VPC', 'resourceType' => 'Ipv6Gateway', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:ipv6gateway/{#Ipv6GatewayId}'], ], ], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'EccId' => [ - 'description' => 'The ID of the ECC instance.'."\n", - 'type' => 'string', - 'example' => 'ecc-jg************', - ], - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => 'C004F022-1CC2-4958-9937-675513A2CD7E', - ], - ], + [ + 'apiName' => 'DeleteVpnGateway', + 'description' => '', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'vpc:DeleteVpnGateway', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VpnGateway', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vpngateway/{#VpnGatewayId}'], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'IllegalParam.AliUid', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'MissingParam.Bid', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'IllegalParam.RegionNo', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'IllegalParam.Bandwith', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'IllegalParam.ContactTel', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'IllegalParam.ContactMail', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'IllegalParam.Description', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'IllegalParam.IDCardNo', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'IllegalParam.PortType', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'IllegalParam.Name', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'IllegalParam.PeerCity', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'IllegalParam.PeerLocation', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'IllegalParam.ServiceProvider', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'IllegalParam.RedundantEccId', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'IllegalParam.IdcSP', - 'errorMessage' => '%s', + [ + 'apiName' => 'DeleteBgpPeer', + 'description' => '', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'vpc:DeleteBgpPeer', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VirtualBorderRouter', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:virtualborderrouter/{#VirtualBorderRouterId}'], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"EccId\\": \\"ecc-jg************\\",\\n \\"RequestId\\": \\"C004F022-1CC2-4958-9937-675513A2CD7E\\"\\n}","errorExample":""},{"type":"xml","example":"\\n ecc-bp1t9osmuln1*******\\n C004F022-1CC2-4958-9937-675513A2CD7E\\n","errorExample":""}]', - 'title' => 'CreateExpressCloudConnection', - 'summary' => 'Creates an Express Cloud Connect (ECC) instance.', - ], - 'ModifyExpressCloudConnectionAttribute' => [ - 'summary' => 'Modifies the configuration of an Express Cloud Connect (ECC) instance.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], + [ + 'apiName' => 'ListPublicIpAddressPoolCidrBlocks', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'vpc:ListPublicIpAddressPoolCidrBlocks', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'PublicIpAddressPool', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:publicipaddresspool/{#PublicIpAddressPoolId}'], + ], ], ], - 'deprecated' => false, - 'systemTags' => [ + [ + 'apiName' => 'ModifyNetworkAclAttributes', + 'description' => '', 'operationType' => 'update', - ], - 'parameters' => [ - [ - 'name' => 'Description', - 'in' => 'query', - 'schema' => [ - 'description' => 'Descriptions of ECC.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'ECC', + 'ramAction' => [ + 'action' => 'vpc:ModifyNetworkAclAttributes', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'NetworkAcl', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:networkacl/{#NetworkAclId}'], ], ], - [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the ECC instance.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cn-hangzhou', + ], + [ + 'apiName' => 'ModifyPhysicalConnectionAttribute', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:ModifyPhysicalConnectionAttribute', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'PhysicalConnection', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:physicalconnection/{#PhysicalConnectionId}'], ], ], - [ - 'name' => 'Name', - 'in' => 'query', - 'schema' => [ - 'description' => 'The name of the ECC instance.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'doctest', + ], + [ + 'apiName' => 'SetHighDefinitionMonitorLogStatus', + 'description' => '', + 'operationType' => '', + 'ramAction' => [ + 'action' => 'vpc:SetHighDefinitionMonitorLogStatus', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'Address', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:eip/{#AllocationId}'], ], ], - [ - 'name' => 'EccId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the ECC instance.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'ecc-bp1t9osmuln*******', + ], + [ + 'apiName' => 'CreateVirtualPhysicalConnection', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'vpc:CreateVirtualPhysicalConnection', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'PhysicalConnection', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:physicalconnection/{#physicalconnectionId}'], ], ], - [ - 'name' => 'BgpAs', - 'in' => 'query', - 'schema' => [ - 'description' => 'The BGP autonomous system number (ASN) to be configured for the Smart Access Gateway (SAG) device.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'sag-ejfge***', + ], + [ + 'apiName' => 'DescribeRouterInterfaces', + 'description' => '', + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'vpc:DescribeRouterInterfaces', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'RouterInterface', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:routerinterface/{#RouterInterfaceId}'], ], ], - [ - 'name' => 'PeIp', - 'in' => 'query', - 'schema' => [ - 'description' => 'The on-premises IP address when the SAG device is connected to the cloud.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '10.10.**.**', + ], + [ + 'apiName' => 'DescribeVpcAttribute', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'vpc:DescribeVpcAttribute', + 'authLevel' => 'resource', + 'actionConditions' => [ + ['conditionKey' => 'vpc:tag', 'validationType' => 'always'], ], - ], - [ - 'name' => 'CeIp', - 'in' => 'query', - 'schema' => [ - 'description' => 'The peer IP address when the SAG device is connected to the cloud.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '172.16.**.**', + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VPC', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vpc/{#VpcId}'], ], ], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => 'E6385514-B0CC-48E3-B9F9-F7BFF64460A2', - ], - ], + [ + 'apiName' => 'GetFlowLogServiceStatus', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'vpc:GetFlowLogServiceStatus', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'FlowLogService', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:flowlog/*'], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InvalidEccId.NotFound', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'IllegalParam.AliUid', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'MissingParam.RegionNo', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'IllegalParam.EccId', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'InvalidEccApplication.NotFound', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'IllegalParam.Description', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'IllegalParam.Name', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'InvalidServiceProvider.Malformed', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'IllegalParam.PortType', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'IllegalParam.Distance', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'IllegalParam.CircuitCode', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'IllegalParam.Type', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'OperationUnsupported.Type', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'InvalidAccessPoint.NotFound', - 'errorMessage' => '%s', + [ + 'apiName' => 'ListTagResourcesForExpressConnect', + 'description' => '', + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'vpc:ListTagResourcesForExpressConnect', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'All Resource', 'arn' => '*'], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"E6385514-B0CC-48E3-B9F9-F7BFF64460A2\\"\\n}","errorExample":""},{"type":"xml","example":"\\r\\n\\r\\n E6385514-B0CC-48E3-B9F9-F7BFF64460A2\\r\\n","errorExample":""}]', - 'title' => 'ModifyExpressCloudConnectionAttribute', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'ModifyExpressCloudConnectionBandwidth' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + [ + 'apiName' => 'CreateForwardEntry', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'vpc:CreateForwardEntry', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'ForwardTable', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:forwardtable/{#ForwardTableId}'], + ], + ], ], - 'security' => [ - [ - 'AK' => [], + [ + 'apiName' => 'ModifyRouteEntry', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:ModifyRouteEntry', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'RouteTable', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:routetable/{#RouteTableId}'], + ], ], ], - 'deprecated' => false, - 'systemTags' => [ + [ + 'apiName' => 'UpdatePublicIpAddressPoolAttribute', + 'description' => '', 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:UpdatePublicIpAddressPoolAttribute', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'PublicIpAddressPool', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:publicipaddresspool/{#PublicIpAddressPoolId}'], + ], + ], ], - 'parameters' => [ - [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cn-hangzhou', + [ + 'apiName' => 'DescribeVpnConnections', + 'description' => '', + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'vpc:DescribeVpnConnections', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'conditional', 'product' => 'VPC', 'resourceType' => 'VpnConnection', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vpnconnection/*'], + ['validationType' => 'conditional', 'product' => 'VPC', 'resourceType' => 'VpnConnection', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vpnconnection/{#VpnConnectionId}'], ], ], - [ - 'name' => 'Bandwidth', - 'in' => 'query', - 'schema' => [ - 'description' => 'The bandwidth of the ECC instance.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '2', + ], + [ + 'apiName' => 'DeleteIpsecServer', + 'description' => '', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'vpc:DeleteIpsecServer', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'IpsecServer', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vpnipsecserver/{#IpsecServerId}'], ], ], - [ - 'name' => 'EccId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the ECC instance.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'ecc-xxxxxxxxx', + ], + [ + 'apiName' => 'CreateFailoverTestJob', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'vpc:CreateFailoverTestJob', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VirtualBorderRouter', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:virtualborderrouter/{#VbrId}'], + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'PhysicalConnection', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:physicalconnection/{#PhysicalConnectionId}'], ], ], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => 'E6385514-B0CC-48E3-B9F9-F7BFF64460A2', - ], - ], + [ + 'apiName' => 'ListGeographicSubRegions', + 'description' => '', + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'vpc:ListGeographicSubRegions', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'All Resource', 'arn' => '*'], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'MissingParam.EccId', - 'errorMessage' => '%s', + [ + 'apiName' => 'CreatePhysicalConnectionOccupancyOrder', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'vpc:CreatePhysicalConnectionOccupancyOrder', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'PhysicalConnection', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:physicalconnection/{#PhysicalConnectionId}'], ], - [ - 'errorCode' => 'MissingParam.AliUid', - 'errorMessage' => '%s', + ], + ], + [ + 'apiName' => 'UnassociateRouteTable', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:UnassociateRouteTable', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VSwitch', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vswitch/{#VSwitchId}'], ], - [ - 'errorCode' => 'MissingParam.RegionNo', - 'errorMessage' => '%s', + ], + ], + [ + 'apiName' => 'TransformEipSegmentToPublicIpAddressPool', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'vpc:TransformEipSegmentToPublicIpAddressPool', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'All Resource', 'arn' => '*'], ], - [ - 'errorCode' => 'MissingParam.Bandwidth', - 'errorMessage' => '%s', + ], + ], + [ + 'apiName' => 'CreateVpnGateway', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'vpc:CreateVpnGateway', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VpnGateway', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vpngateway/*'], ], - [ - 'errorCode' => 'InvalidEccApplication.NotFound', - 'errorMessage' => '%s', + ], + ], + [ + 'apiName' => 'ModifyRouteTableAttributes', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:ModifyRouteTableAttributes', + 'authLevel' => 'resource', + 'actionConditions' => [ + ['conditionKey' => 'vpc:VRouter', 'validationType' => 'always'], ], - [ - 'errorCode' => 'InvalidEccId.NotFound', - 'errorMessage' => '%s', + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'RouteTable', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:routetable/{#RouteTableId}'], ], - [ - 'errorCode' => 'IncorrectStatus.EccApplication', - 'errorMessage' => '%s', + ], + ], + [ + 'apiName' => 'DeleteEnhancedVpnGateway', + 'description' => '', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'vpc:DeleteEnhancedVpnGateway', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VpnGateway', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vpngateway/{#VpnGatewayId}'], ], - [ - 'errorCode' => 'OperationUnsupported.type', - 'errorMessage' => '%s', + ], + ], + [ + 'apiName' => 'DeleteRouterInterface', + 'description' => '', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'vpc:DeleteRouterInterface', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'RouterInterface', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:routerinterface/{#RouterInterfaceId}'], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"E6385514-B0CC-48E3-B9F9-F7BFF64460A2\\"\\n}","errorExample":""},{"type":"xml","example":"\\r\\n \\r\\n\\tE6385514-B0CC-48E3-B9F9-F7BFF64460A2\\r\\n ","errorExample":""}]', - 'title' => 'ModifyExpressCloudConnectionBandwidth', - 'summary' => 'Modifies the bandwidth of an Express Cloud Connect (ECC) instance.', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'CreateGlobalAccelerationInstance' => [ - 'summary' => 'Creates a Global Accelerator (GA) instance.', - 'methods' => [ - 'post', - 'get', + [ + 'apiName' => 'DeleteFailoverTestJob', + 'description' => '', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'vpc:DeleteFailoverTestJob', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'PhysicalConnection', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:physicalconnection/{#PhysicalConnectionId}'], + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VirtualBorderRouter', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:virtualborderrouter/{#VbrId}'], + ], + ], ], - 'schemes' => [ - 'http', - 'https', + [ + 'apiName' => 'AddCommonBandwidthPackageIps', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'vpc:AddCommonBandwidthPackageIps', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'BandwidthPackage', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:combandwidthpackage/{#BandwidthPackageId}'], + ], + ], ], - 'security' => [ - [ - 'AK' => [], + [ + 'apiName' => 'CreateTrafficMirrorFilter', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'vpc:CreateTrafficMirrorFilter', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'TrafficMirrorFilter', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:trafficmirrorfilter/*'], + ], ], ], - 'operationType' => 'readAndWrite', - 'deprecated' => true, - 'systemTags' => [ + [ + 'apiName' => 'CreateVpnPbrRouteEntry', + 'description' => '', 'operationType' => 'create', - 'riskType' => 'none', - 'chargeType' => 'free', + 'ramAction' => [ + 'action' => 'vpc:CreateVpnPbrRouteEntry', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VpnGateway', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vpngateway/{#VpnGatewayId}'], + ], + ], ], - 'parameters' => [ - [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the GA instance.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cn-hangzhou', - 'docRequired' => true, + [ + 'apiName' => 'CreatePhysicalConnectionSetupOrder', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'vpc:CreatePhysicalConnectionSetupOrder', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'All Resource', 'arn' => '*'], ], ], - [ - 'name' => 'ServiceLocation', - 'in' => 'query', - 'schema' => [ - 'description' => 'The acceleration area. Valid values:'."\n" - ."\n" - .'* **china-mainland**'."\n" - .'* **north-america**'."\n" - .'* **asia-pacific**'."\n" - .'* **europe**'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'china-mainland', - 'docRequired' => true, + ], + [ + 'apiName' => 'ActiveFlowLog', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:ActiveFlowLog', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'FlowLog', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:flowlog/{#FlowLogId}'], ], ], - [ - 'name' => 'Bandwidth', - 'in' => 'query', - 'schema' => [ - 'description' => 'The maximum bandwidth of the GA instance. Set the value to **10**. Unit: Mbit/s.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => '10', - 'docRequired' => true, + ], + [ + 'apiName' => 'ModifyIPv6TranslatorEntry', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:ModifyIPv6TranslatorEntry', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'Ipv6Translator', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:ipv6trans/{#Ipv6TranslatorId}'], ], ], - [ - 'name' => 'BandwidthType', - 'in' => 'query', - 'schema' => [ - 'description' => 'The bandwidth type. Valid values:'."\n" - ."\n" - .'* **Sharing**'."\n" - .'* **Exclusive**'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'Exclusive', + ], + [ + 'apiName' => 'AssociateEipAddress', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:AssociateEipAddress', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'Address', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:eip/{#AllocationId}'], + ['validationType' => 'conditional', 'product' => 'VPC', 'resourceType' => 'NatGateway', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:natgateway/{#NatGatewayId}'], + ['validationType' => 'conditional', 'product' => 'VPC', 'resourceType' => 'Instance', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:instance/{#InstanceId}'], + ['validationType' => 'conditional', 'product' => 'VPC', 'resourceType' => 'Association', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:havip/{#HaVipId}'], ], ], - [ - 'name' => 'Name', - 'in' => 'query', - 'schema' => [ - 'description' => 'The name of the GA instance.'."\n" - ."\n" - .'The name must be 2 to 128 characters in length and can contain letters, digits, periods (.), underscores (\\_), and hyphens (-). It must start with a letter and cannot start with `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'GA-1', + ], + [ + 'apiName' => 'DescribeIpv6EgressOnlyRules', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'vpc:DescribeIpv6EgressOnlyRules', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'Ipv6Gateway', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:ipv6gateway/{#Ipv6GatewayId}'], ], ], - [ - 'name' => 'Description', - 'in' => 'query', - 'schema' => [ - 'description' => 'The description of the GA instance.'."\n" - ."\n" - .'The description must be 2 to 256 characters in length. It must start with a letter but cannot start with `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'My GA', + ], + [ + 'apiName' => 'DeactiveFlowLog', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:DeactiveFlowLog', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'FlowLog', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:flowlog/{#FlowLogId}'], ], ], - [ - 'name' => 'ClientToken', - 'in' => 'query', - 'schema' => [ - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'You can use the client to generate the value, but you must make sure that it is unique among different requests. The token can contain only ASCII characters and cannot exceed 64 characters in length.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '02fb3da4-130e-11e9-8e44-0016e04115b', + ], + [ + 'apiName' => 'RemoveCommonBandwidthPackageIp', + 'description' => '', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'vpc:RemoveCommonBandwidthPackageIp', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'BandwidthPackage', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:combandwidthpackage/{#BandwidthPackageId}'], ], ], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '4EC47282-1B74-4534-BD0E-403F3EE64CAF', - ], - 'GlobalAccelerationInstanceId' => [ - 'description' => 'The ID of the GA instance.'."\n", - 'type' => 'string', - 'example' => 'ga-bp1fi6sq7npnicmjj****', - ], - 'IpAddress' => [ - 'description' => 'The public IP address of the GA instance.'."\n" - ."\n" - .'If **BandwidthType** is set to **Sharing**, this parameter is not returned.'."\n", - 'type' => 'string', - 'example' => '12.xx.xx.78', - ], - ], + [ + 'apiName' => 'DescribeNatGatewayAssociateNetworkInterfaces', + 'description' => '', + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'vpc:DescribeNatGatewayAssociateNetworkInterfaces', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'conditional', 'product' => 'VPC', 'resourceType' => 'NatGateway', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:natgateway/{#NatGatewayId}'], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InvalidBandwidth.ValueNotSupported', - 'errorMessage' => 'The specified Bandwidth is not supported.', + [ + 'apiName' => 'ListNatIps', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'vpc:ListNatIps', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'NatGateway', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:natgateway/{#NatGatewayId}'], ], - [ - 'errorCode' => 'InvalidServiceLocation.ValueNotSupported', - 'errorMessage' => 'The specified ServiceLocation is not supported.', + ], + ], + [ + 'apiName' => 'CreateDefaultVSwitch', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'vpc:CreateDefaultVSwitch', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VSwitch', 'arn' => 'acs:vpc:{#regionid}:{#accountId}:vswitch/*'], ], - [ - 'errorCode' => 'QuotaExceeded.GlobalAccelerationInstance', - 'errorMessage' => 'GlobalAccelerationInstance quota exceeded.', + ], + ], + [ + 'apiName' => 'AssociateRouteTablesWithVpcGatewayEndpoint', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'vpc:AssociateRouteTablesWithVpcGatewayEndpoint', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'GatewayEndpoint', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:gatewayendpoint/{#GatewayEndpointId}'], ], - [ - 'errorCode' => 'InvalidGlobalAccelerationInstanceName.Malformed', - 'errorMessage' => 'The specified Name is not valid.', + ], + ], + [ + 'apiName' => 'CreateCustomerGateway', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'vpc:CreateCustomerGateway', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'CustomerGateway', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:customergateway/*'], ], - [ - 'errorCode' => 'InvalidGlobalAccelerationInstanceDescription.Malformed', - 'errorMessage' => 'The specified Description is not valid.', + ], + ], + [ + 'apiName' => 'DeleteCommonBandwidthPackage', + 'description' => '', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'vpc:DeleteCommonBandwidthPackage', + 'authLevel' => 'resource', + 'actionConditions' => [ + ['conditionKey' => 'vpc:tag', 'validationType' => 'always'], ], - [ - 'errorCode' => 'OperationFailed.UnpaidBillsExist', - 'errorMessage' => 'The account has unpaid bills. Please pay your overdue bill first.', + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'CommonBandwidthPackage', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:combandwidthpackage/{#CommonBandwidthPackageId}'], ], ], - 404 => [ - [ - 'errorCode' => 'InvalidRegionId.NotFound', - 'errorMessage' => 'The specified region is not supported.', + ], + [ + 'apiName' => 'RevokeInstanceFromCen', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:RevokeInstanceFromCen', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VirtualBorderRouter', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:virtualborderrouter/{#VirtualBorderRouterId}'], ], ], ], - 'staticInfo' => [ - 'noSubstitutionReason' => '无替代API,历史原因导致该API被标记为弃用。', - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"4EC47282-1B74-4534-BD0E-403F3EE64CAF\\",\\n \\"GlobalAccelerationInstanceId\\": \\"ga-bp1fi6sq7npnicmjj****\\",\\n \\"IpAddress\\": \\"12.xx.xx.78\\"\\n}","errorExample":"\\n\\n\\tga-t4nluhu6\\n\\t12.34.56.78\\n\\t21AAFD16-F784-4BFB-XXXX-XXXXXXXX\\n"},{"type":"xml","example":"\\n\\tga-t4nluhu****\\n\\t12.34.56.78\\n\\t4EC47282-1B74-4534-BD0E-403F3EE64CAF\\n","errorExample":"{\\n \\"GlobalAccelerationInstanceId\\": \\"ga-t4nluhu6\\",\\n \\"IpAddress\\": \\"12.34.56.78\\",\\n \\"RequestId\\": \\"21AAFD16-F784-4BFB-XXXX-XXXXXXXX\\"\\n }"}]', - 'title' => 'CreateGlobalAccelerationInstance', - 'description' => '## Usage notes'."\n" - ."\n" - .'You can call this operation to create only pay-as-you-go GA instances.'."\n", - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'AddGlobalAccelerationInstanceIp' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], + [ + 'apiName' => 'ListVpcPublishedRouteEntries', + 'description' => '', + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'vpc:ListVpcPublishedRouteEntries', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'RouteTable', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:routetable/{#RouteTableId}'], + ], ], ], - 'systemTags' => [ + [ + 'apiName' => 'CreateExpressCloudConnection', + 'description' => '', 'operationType' => 'create', - ], - 'parameters' => [ - [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The region of the shared-bandwidth GA instance.'."\n" - ."\n" - .'You can call the **DescribeRegions** operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cn-hangzhou', + 'ramAction' => [ + 'action' => 'vpc:CreateExpressCloudConnection', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'All Resource', 'arn' => '*'], ], ], - [ - 'name' => 'GlobalAccelerationInstanceId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the shared-bandwidth GA instance.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'ga-Ldefrgbttnyyf****', + ], + [ + 'apiName' => 'DissociateRouteTablesFromVpcGatewayEndpoint', + 'description' => '', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'vpc:DissociateRouteTablesFromVpcGatewayEndpoint', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'GatewayEndpoint', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:gatewayendpoint/{#GatewayEndpointId}'], ], ], - [ - 'name' => 'IpInstanceId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The EIP ID. You can call the [DescribeEipAddresses](~~36018~~) operation to query EIP IDs.'."\n" - ."\n" - .'> Make sure that the billing method of the EIP is pay-as-you-go, and the EIP and the shared-bandwidth GA instance belong to the same region.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'eip-rw434rwfdeaf****', + ], + [ + 'apiName' => 'UpdateRouteTargetGroup', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:UpdateRouteTargetGroup', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'RouteTargetGroup', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:routetargetgroup/{#RouteTargetGroupId}'], ], ], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '01FDDD49-C4B7-4D2A-A8E5-A93915C450A6', - ], - ], + [ + 'apiName' => 'ModifyIPv6TranslatorBandwidth', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:ModifyIPv6TranslatorBandwidth', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'Ipv6Translator', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:ipv6trans/{#Ipv6TranslatorId}'], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'IpInstanceId.AlreadyInBandwidthPackage', - 'errorMessage' => 'The specified Eip InstanceId already in bandwidthPackage.', + [ + 'apiName' => 'UpdateVirtualBorderBandwidth', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:UpdateVirtualBorderBandwidth', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VirtualBorderRouter', 'arn' => 'acs:vpc:*:{#accountId}:virtualborderrouter/{#VirtualBorderRouterId}'], ], - [ - 'errorCode' => 'IpInstanceId.BizStatusInvalid', - 'errorMessage' => 'The specified Eip BizStatus is Disable, Cannot add to bandwidthPackage.', + ], + ], + [ + 'apiName' => 'TerminatePhysicalConnection', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:TerminatePhysicalConnection', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'PhysicalConnection', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:physicalconnection/{#PhysicalConnectionId}'], ], - [ - 'errorCode' => 'IpInstanceId.ChargeType.NotSupport', - 'errorMessage' => 'The specified Eip instance is PrePaid type, Cannot add to BandwidthPackage.', + ], + ], + [ + 'apiName' => 'CreateNatIp', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'vpc:CreateNatIp', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'NatGateway', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:natgateway/{#NatGatewayId}'], ], - [ - 'errorCode' => 'BandwidthPackageId.InvalidBizStatus', - 'errorMessage' => 'The specified BandwidthPackageId has been FinancialLocked, Cannot add Ip.', + ], + ], + [ + 'apiName' => 'GetIpv4GatewayAttribute', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'vpc:GetIpv4GatewayAttribute', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'Ipv4Gateway', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:ipv4gateway/{#Ipv4GatewayId}'], ], - [ - 'errorCode' => 'IpInstanceId.QuotaExceeded', - 'errorMessage' => 'The specified BandwidthPackageId has too many ip in it. exceed the quota , Cannot add more.', + ], + ], + [ + 'apiName' => 'DeletionProtection', + 'description' => '', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'vpc:DeletionProtection', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'Address', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:eip/{#AllocationId}'], ], - [ - 'errorCode' => 'EipOperation.TooFrequently', - 'errorMessage' => 'The specified Eip add into bandwidthPackage too frequently. please add later.', + ], + ], + [ + 'apiName' => 'GetVpcPrefixListEntries', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'vpc:GetVpcPrefixListEntries', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'PrefixList', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:prefixlist/{#PrefixListId}'], ], ], - 404 => [ - [ - 'errorCode' => 'InvalidRegionId.NotFound', - 'errorMessage' => 'The specified RegionId does not exist in our records.', + ], + [ + 'apiName' => 'DescribeVpnCrossAccountAuthorizations', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'vpc:DescribeVpnCrossAccountAuthorizations', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VpnConnections', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vpnconnection/{#VpnConnectionId}'], ], - [ - 'errorCode' => 'InvalidBandwidthPackageId.NotFound', - 'errorMessage' => 'The specified bandwidthPackageId does not exist in our records.', + ], + ], + [ + 'apiName' => 'ListPrefixLists', + 'description' => '', + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'vpc:ListPrefixLists', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'conditional', 'product' => 'VPC', 'resourceType' => 'PrefixList', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:prefixlist/*'], ], - [ - 'errorCode' => 'InvalidIpInstanceId.NotFound', - 'errorMessage' => 'The specified Eip InstanceId does not exist in our records.', + ], + ], + [ + 'apiName' => 'ListVpcEndpointServicesByEndUser', + 'description' => '', + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'vpc:ListVpcEndpointServicesByEndUser', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'All Resource', 'arn' => '*'], ], - [ - 'errorCode' => 'IpInstanceId.InvalidIpInternetChargeType', - 'errorMessage' => 'The hybrid type eip not support add into bandwidthPackage of PayBytraffic type.', + ], + ], + [ + 'apiName' => 'ModifyGlobalAccelerationInstanceAttributes', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:ModifyGlobalAccelerationInstanceAttributes', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'GlobalAccelerationInstance', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:globalaccelerationinstance/{#GlobalAccelerationInstanceId}'], ], - [ - 'errorCode' => 'IpInstanceId.StatusNotAvailable', - 'errorMessage' => 'The specified Eip Status is not Available, Cannot add to GlobalAcceleration.', + ], + ], + [ + 'apiName' => 'TagResourcesForExpressConnect', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:TagResourcesForExpressConnect', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'PhysicalConnection', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:physicalconnection/{#PhysicalConnectionId}'], + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VirtualBorderRouter', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:virtualborderrouter/{#VbrId}'], + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'RouterInterface', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:routerinterface/{#RouterInterfaceId}'], + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'TrafficQos', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:trafficqos/{#QosId}'], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"01FDDD49-C4B7-4D2A-A8E5-A93915C450A6\\"\\n}","errorExample":"\\n\\n 01FDDD49-C4B7-4D2A-A8E5-A93915C450A6\\n"},{"type":"xml","example":"\\n 01FDDD49-C4B7-4D2A-A8E5-A93915C450A6\\n","errorExample":"{\\n \\"RequestId\\": \\"01FDDD49-C4B7-4D2A-A8E5-A93915C450A6\\"\\n}"}]', - 'title' => 'AddGlobalAccelerationInstanceIp', - 'summary' => 'Associates an elastic IP address (EIP) with a shared-bandwidth Global Accelerator (GA) instance.', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'DeleteGlobalAccelerationInstance' => [ - 'methods' => [ - 'post', - 'get', + [ + 'apiName' => 'ConfirmPhysicalConnection', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'vpc:ConfirmPhysicalConnection', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], ], - 'schemes' => [ - 'http', - 'https', + [ + 'apiName' => 'DescribeNatGateways', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'vpc:DescribeNatGateways', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'conditional', 'product' => 'VPC', 'resourceType' => 'NatGateway', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:natgateway/*'], + ['validationType' => 'conditional', 'product' => 'VPC', 'resourceType' => 'NatGateway', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:natgateway/{#NatGatewayId}'], + ], + ], ], - 'security' => [ - [ - 'AK' => [], + [ + 'apiName' => 'CreateCommonBandwidthPackage', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'vpc:CreateCommonBandwidthPackage', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'CommonBandwidthPackage', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:combandwidthpackage/*'], + ], ], ], - 'systemTags' => [ - 'operationType' => 'delete', + [ + 'apiName' => 'AssociateHaVip', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'vpc:AssociateHaVip', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'Instance', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:instance/{#InstanceId}'], + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'HaVip', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:havip/{#HaVipId}'], + ], + ], ], - 'parameters' => [ - [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the GA instance.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cn-hangzhou', + [ + 'apiName' => 'CreateVpcGatewayEndpoint', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'vpc:CreateVpcGatewayEndpoint', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'GatewayEndpoint', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:gatewayendpoint/*'], ], ], - [ - 'name' => 'GlobalAccelerationInstanceId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the GA instance.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'ga-asdfsl22s****', + ], + [ + 'apiName' => 'ModifySnatEntry', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:ModifySnatEntry', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'SnatTable', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:snattable/{#SnatTableId}'], ], ], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => 'E6E63B2A-9820-44A8-A359-9BB2DAEE6424', - ], - ], + [ + 'apiName' => 'CreateIPv6TranslatorEntry', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'vpc:CreateIPv6TranslatorEntry', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'Ipv6Translator', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:ipv6trans/{#Ipv6TranslatorId}'], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'IncorrectGlobalAccelerationInstanceIdStatus', - 'errorMessage' => 'Current GlobalAccelerationInstance status does not support this operation.', + [ + 'apiName' => 'CreateSslVpnServer', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'vpc:CreateSslVpnServer', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'SslVpnServer', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:sslvpnserver/*'], + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VpnGateway', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vpngateway/{#VpnGatewayId}'], ], - [ - 'errorCode' => 'InvalidGlobalAccelerationInstanceId.NotFound', - 'errorMessage' => 'The specified GlobalAccelerationInstanceId is not found.', + ], + ], + [ + 'apiName' => 'ListVirtualPhysicalConnections', + 'description' => '', + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'vpc:ListVirtualPhysicalConnections', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'PhysicalConnection', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:physicalconnection/{#PhysicalConnectionId}'], ], - [ - 'errorCode' => 'Forbidden.GlobalAccelerationInstanceChargeTypeIsPrepaid', - 'errorMessage' => 'It\'s forbidden to release a prepaid GlobalAccelerationInstance', + ], + ], + [ + 'apiName' => 'GetVpcRouteEntrySummary', + 'description' => '', + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'vpc:GetVpcRouteEntrySummary', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'conditional', 'product' => 'VPC', 'resourceType' => 'RouteTable', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:routetable/{#routetableId}'], + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VPC', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vpc/{#vpcId}'], ], - [ - 'errorCode' => 'DependencyViolation.Ips', - 'errorMessage' => 'The specified BandwidthPackageId has dependent resource ips.', + ], + ], + [ + 'apiName' => 'DescribeGrantRulesToEcr', + 'description' => '', + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'vpc:DescribeGrantRulesToEcr', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VirtualBorderRouter', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:virtualborderrouter/{#VbrId}'], ], - [ - 'errorCode' => 'IncorrectStatus', - 'errorMessage' => 'This openeration would be allowed only when status of this RouterInterface is Idle/Inactive.', + ], + ], + [ + 'apiName' => 'ConnectRouterInterface', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:ConnectRouterInterface', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'RouterInterface', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:routerinterface/{#RouterInterfaceId}'], ], ], - 404 => [ - [ - 'errorCode' => 'InvalidRegionId.NotFound', - 'errorMessage' => 'The specified region is not supported.', + ], + [ + 'apiName' => 'CreateTrafficMirrorSession', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'vpc:CreateTrafficMirrorSession', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'TrafficMirrorSession', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:trafficmirrorsession/*'], + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'TrafficMirrorFilter', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:trafficmirrorfilter/{#TrafficMirrorFilterId}'], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"E6E63B2A-9820-44A8-A359-9BB2DAEE6424\\"\\n}","errorExample":"\\n\\n BD5BCEE8-F62C-40C2-9AC3-89XXXXXXXXX\\n"},{"type":"xml","example":"\\n\\n E6E63B2A-9820-44A8-A359-9BB2DAEE6424\\n","errorExample":"{\\n \\"RequestId\\": \\"E6E63B2A-9820-44A8-A359-9BB2DAEE6424\\"\\n}"}]', - 'title' => 'DeleteGlobalAccelerationInstance', - 'summary' => 'Deletes a GA instance.', - 'description' => 'When you call this operation, take note of the following items:'."\n" - ."\n" - .'* You can delete only pay-as-you-go instances.'."\n" - .'* Before you can delete a dedicated instance, disassociate the backend server from the instance first.'."\n" - .'* Before you can delete a shared instance, disassociate the elastic IP address (EIP) from the instance first.'."\n", - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'UnassociateGlobalAccelerationInstance' => [ - 'methods' => [ - 'post', - 'get', + [ + 'apiName' => 'DeleteBgpNetwork', + 'description' => '', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'vpc:DeleteBgpNetwork', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VirtualBorderRouter', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:virtualborderrouter/{#VirtualBorderRouterId}'], + ], + ], ], - 'schemes' => [ - 'http', - 'https', + [ + 'apiName' => 'DeleteRouteTargetGroup', + 'description' => '', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'vpc:DeleteRouteTargetGroup', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], ], - 'security' => [ - [ - 'AK' => [], + [ + 'apiName' => 'CopyNetworkAclEntries', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:CopyNetworkAclEntries', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'NetworkAcl', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:networkacl/{#NetworkAclId}'], + ], ], ], - 'systemTags' => [ + [ + 'apiName' => 'DeleteTrafficMirrorFilterRules', + 'description' => '', 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'vpc:DeleteTrafficMirrorFilterRules', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'TrafficMirrorFilter', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:trafficmirrorfilter/{#TrafficMirrorFilterId}'], + ], + ], ], - 'parameters' => [ - [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the GA instance.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cn-hangzhou', + [ + 'apiName' => 'DeleteVpcGatewayEndpoint', + 'description' => '', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'vpc:DeleteVpcGatewayEndpoint', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'GatewayEndpoint', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:gatewayendpoint/{#GatewayEndpointId}'], ], ], - [ - 'name' => 'GlobalAccelerationInstanceId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the GA instance.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'ga-1sxeedefrr33****', + ], + [ + 'apiName' => 'CreateTrafficMirrorFilterRules', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'vpc:CreateTrafficMirrorFilterRules', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'TrafficMirrorFilter', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:trafficmirrorfilter/{#TrafficMirrorFilterId}'], ], ], - [ - 'name' => 'InstanceType', - 'in' => 'query', - 'schema' => [ - 'description' => 'The backend server type. Valid values:'."\n" - ."\n" - .'* **RemoteEcsInstance**: Elastic Compute Service (ECS) instance'."\n" - .'* **RemoteSlbInstance**: Server Load Balancer (SLB) instance'."\n" - .'* **RemoteEniInstance**: elastic network interface (ENI)'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'RemoteEcsInstance', + ], + [ + 'apiName' => 'CreateVcoRouteEntry', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'vpc:CreateVcoRouteEntry', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VpnConnections', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vpnconnection/{#VpnConnectionId}'], ], ], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => 'BD5BCEE8-F62C-40C2-9AC3-89XXXXXXXXX', - ], - ], + [ + 'apiName' => 'DescribeServerRelatedGlobalAccelerationInstances', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'vpc:DescribeServerRelatedGlobalAccelerationInstances', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'All Resource', 'arn' => '*'], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'IncorrectGlobalAccelerationInstanceIdStatus', - 'errorMessage' => 'Current GlobalAccelerationInstance status does not support this operation.', + [ + 'apiName' => 'DeleteHaVip', + 'description' => '', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'vpc:DeleteHaVip', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'HaVip', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:havip/{#HaVipId}'], ], - [ - 'errorCode' => 'Forbidden.FinancialLocked', - 'errorMessage' => 'The ip business status is invalid.', + ], + ], + [ + 'apiName' => 'DeleteForwardEntry', + 'description' => '', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'vpc:DeleteForwardEntry', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'ForwardTable', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:forwardtable/{#ForwardTableId}'], ], - [ - 'errorCode' => 'Forbbiden.InvaildOwner', - 'errorMessage' => 'The GlobalAccelerationInstance owener error', + ], + ], + [ + 'apiName' => 'ModifyCustomerGatewayAttribute', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:ModifyCustomerGatewayAttribute', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'CustomerGateway', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:customergateway/{#CustomerGatewayId}'], ], ], - 404 => [ - [ - 'errorCode' => 'InvalidRegionId.NotFound', - 'errorMessage' => 'The specified region is not supported.', + ], + [ + 'apiName' => 'UpdateIpv4GatewayAttribute', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:UpdateIpv4GatewayAttribute', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'Ipv4Gateway', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:ipv4gateway/{#ipv4gatewayId}'], ], - [ - 'errorCode' => 'InvalidGlobalAccelerationInstanceId.NotFound', - 'errorMessage' => 'The specified GlobalAccelerationInstanceId is not found.', + ], + ], + [ + 'apiName' => 'ListVpcGatewayEndpoints', + 'description' => '', + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'vpc:ListVpcGatewayEndpoints', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'conditional', 'product' => 'VPC', 'resourceType' => 'GatewayEndpoint', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:gatewayendpoint/*'], + ['validationType' => 'conditional', 'product' => 'VPC', 'resourceType' => 'GatewayEndpoint', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:gatewayendpoint/{#GatewayEndpointId}'], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"BD5BCEE8-F62C-40C2-9AC3-89XXXXXXXXX\\"\\n}","errorExample":"\\n\\n BD5BCEE8-F62C-40C2-9AC3-89XXXXXXXXX\\n"},{"type":"xml","example":"\\n BD5BCEE8-F62C-40C2-9AC3-89XXXXXXXXX\\n","errorExample":"{\\n \\"RequestId\\": \\"BD5BCEE8-F62C-40C2-9AC3-89XXXXXXXXX\\"\\n}"}]', - 'title' => 'UnassociateGlobalAccelerationInstance', - 'summary' => 'Disassociates a Global Accelerator (GA) instance from a backend server.', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'ModifyGlobalAccelerationInstanceAttributes' => [ - 'methods' => [ - 'post', - 'get', + [ + 'apiName' => 'DeleteVpnRouteEntry', + 'description' => '', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'vpc:DeleteVpnRouteEntry', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VpnGateway', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vpngateway/{#VpnGatewayId}'], + ], + ], ], - 'schemes' => [ - 'http', - 'https', + [ + 'apiName' => 'ListPhysicalConnectionFeatures', + 'description' => '', + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'vpc:ListPhysicalConnectionFeatures', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'PhysicalConnection', 'arn' => 'acs:vpc:{#regionId}:{#AccountId}:physicalconnection/{#PhysicalConnectionId}'], + ], + ], ], - 'security' => [ - [ - 'AK' => [], + [ + 'apiName' => 'DescribeVpnGateway', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'vpc:DescribeVpnGateway', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VpnGateway', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vpngateway/{#VpnGatewayId}'], + ], ], ], - 'systemTags' => [ + [ + 'apiName' => 'UpdateVirtualPhysicalConnection', + 'description' => '', 'operationType' => 'update', - ], - 'parameters' => [ - [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the GA instance.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cn-hangzhou', + 'ramAction' => [ + 'action' => 'vpc:UpdateVirtualPhysicalConnection', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'PhysicalConnection', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:physicalconnection/{#physicalconnectionId}'], ], ], - [ - 'name' => 'GlobalAccelerationInstanceId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the GA instance.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'ga-14fdsf3****', + ], + [ + 'apiName' => 'CreateVpconnFromVbr', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'vpc:CreateVpconnFromVbr', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VirtualBorderRouter', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:virtualborderrouter/{#virtualborderrouterId}'], ], ], - [ - 'name' => 'Name', - 'in' => 'query', - 'schema' => [ - 'description' => 'The name of the GA instance.'."\n" - ."\n" - .'The name must be 2 to 128 characters in length and can contain letters, digits, periods (.), underscores (\\_), and hyphens (-). It cannot start with `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'GA-1', + ], + [ + 'apiName' => 'CreateIpv4Gateway', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'vpc:CreateIpv4Gateway', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'Ipv4Gateway', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:ipv4gateway/*'], ], ], - [ - 'name' => 'Description', - 'in' => 'query', - 'schema' => [ - 'description' => 'The description of the GA instance.'."\n" - ."\n" - .'The description must be 2 to 256 characters in length. It must start with a letter but cannot start with `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'My GA', + ], + [ + 'apiName' => 'AllocateEipAddressPro', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'vpc:AllocateEipAddressPro', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'Address', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:eip/*'], ], ], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => 'BD5BCEE8-F62C-40C2-9AC3-89XXXXXXXXX', - ], - ], + [ + 'apiName' => 'GetNatGatewayAttribute', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'vpc:GetNatGatewayAttribute', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'NatGateway', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:natgateway/{#NatGatewayId}'], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InvalidBandwidth.ValueNotSupported', - 'errorMessage' => 'The specified Bandwidth is not supported.', - ], - [ - 'errorCode' => 'InvalidGlobalAccelerationInstanceId.NotFound', - 'errorMessage' => 'The specified GlobalAccelerationInstanceId is not found.', + [ + 'apiName' => 'AllocateEipSegmentAddress', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'vpc:AllocateEipSegmentAddress', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'SegmentAddress', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:eip/*'], ], - [ - 'errorCode' => 'Forbidden.ChargeTypeIsPrepaid', - 'errorMessage' => 'It?s forbidden to change prepaid EIP?s bandwidth by API. It can be changed on Aliyun web console.', + ], + ], + [ + 'apiName' => 'CreateNetworkAcl', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'vpc:CreateNetworkAcl', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'NetworkAcl', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:networkacl/*'], + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VPC', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vpc/{#VpcId}'], ], - [ - 'errorCode' => 'InvalidGlobalAccelerationInstanceName.Malformed', - 'errorMessage' => 'The specified Name is not valid.', + ], + ], + [ + 'apiName' => 'ListTagResources', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'vpc:ListTagResources', + 'authLevel' => 'resource', + 'actionConditions' => [ + ['conditionKey' => 'vpc:tag', 'validationType' => 'always'], + ], + 'resources' => [ + ['validationType' => 'conditional', 'product' => 'VPC', 'resourceType' => 'BandwidthPackage', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:combandwidthpackage/{#BandwidthPackageId}'], + ['validationType' => 'conditional', 'product' => 'VPC', 'resourceType' => 'Address', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:eip/{#AllocationId}'], + ['validationType' => 'conditional', 'product' => 'VPC', 'resourceType' => 'NatGateway', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:natgateway/{#NatGatewayId}'], + ['validationType' => 'conditional', 'product' => 'VPC', 'resourceType' => 'RouteTable', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:routetable/{#RouteTable}'], + ['validationType' => 'conditional', 'product' => 'VPC', 'resourceType' => 'VPC', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vpc/{#VpcId}'], + ['validationType' => 'conditional', 'product' => 'VPC', 'resourceType' => 'VpnGateway', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vpngateway/{#VpnGatewayId}'], + ['validationType' => 'conditional', 'product' => 'VPC', 'resourceType' => 'VSwitch', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vswitch/{#VSwitchId}'], + ], + ], + ], + [ + 'apiName' => 'ModifyGlobalAccelerationInstanceSpec', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:ModifyGlobalAccelerationInstanceSpec', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'GlobalAccelerationInstance', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:globalaccelerationinstance/{#GlobalAccelerationInstanceId}'], ], - [ - 'errorCode' => 'InvalidGlobalAccelerationInstanceDescription.Malformed', - 'errorMessage' => 'The specified Description is not valid.', + ], + ], + [ + 'apiName' => 'MoveResourceGroup', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:MoveResourceGroup', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'conditional', 'product' => 'VPC', 'resourceType' => 'BandwidthPackage', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:bandwidthpackage/{#BandwidthPackageId}'], + ['validationType' => 'conditional', 'product' => 'VPC', 'resourceType' => 'Eip', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:eip/{#AllocationId}'], + ['validationType' => 'conditional', 'product' => 'VPC', 'resourceType' => 'VPC', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vpc/{#VpcId}'], + ['validationType' => 'conditional', 'product' => 'VPC', 'resourceType' => 'PrefixList', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:prefixlist/{#PrefixListId}'], + ['validationType' => 'conditional', 'product' => 'VPC', 'resourceType' => 'GatewayEndpoint', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:gatewayendpoint/{#GatewayEndpointId}'], + ['validationType' => 'conditional', 'product' => 'VPC', 'resourceType' => 'DhcpOptionsSet', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:dhcpoptionsset/{#DhcpOptionsSetId}'], + ['validationType' => 'conditional', 'product' => 'VPC', 'resourceType' => 'FlowLog', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:flowlog/{#FlowLogId}'], + ['validationType' => 'conditional', 'product' => 'VPC', 'resourceType' => 'HaVip', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:havip/{#HaVipId}'], + ['validationType' => 'conditional', 'product' => 'VPC', 'resourceType' => 'Ipv4Gateway', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:ipv4gateway/{#Ipv4GatewayId}'], + ['validationType' => 'conditional', 'product' => 'VPC', 'resourceType' => 'Ipv6Gateway', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:ipv6gateway/{#Ipv6GatewayId}'], + ['validationType' => 'conditional', 'product' => 'VPC', 'resourceType' => 'PublicIpAddressPool', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:publicipaddresspool/{#PublicIpAddressPoolId}'], + ['validationType' => 'conditional', 'product' => 'VPC', 'resourceType' => 'TrafficMirrorFilter', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:trafficmirrorfilter/{#TrafficMirrorFilterId}'], + ['validationType' => 'conditional', 'product' => 'VPC', 'resourceType' => 'TrafficMirrorSession', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:trafficmirrorsession/{#TrafficMirrorSessionId}'], + ], + ], + ], + [ + 'apiName' => 'ModifyExpressConnectTrafficQosRule', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:ModifyExpressConnectTrafficQosRule', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'All Resource', 'arn' => '*'], ], - [ - 'errorCode' => 'InvalidParameter', - 'errorMessage' => 'The parameter is invalid.', + ], + ], + [ + 'apiName' => 'CancelCommonBandwidthPackageIpBandwidth', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:CancelCommonBandwidthPackageIpBandwidth', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'BandwidthPackage', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:combandwidthpackage/{#BandwidthPackageId}'], ], - [ - 'errorCode' => 'InvalidGlobalAccelerationInstance.NotFound', - 'errorMessage' => 'The specified global acceleration instance is not found.', + ], + ], + [ + 'apiName' => 'DescribeSslVpnClientCerts', + 'description' => '', + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'vpc:DescribeSslVpnClientCerts', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'conditional', 'product' => 'VPC', 'resourceType' => 'SslVpnClientCert', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:sslvpnclientcert/*'], + ['validationType' => 'conditional', 'product' => 'VPC', 'resourceType' => 'SslVpnClientCert', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:sslvpnclientcert/{#SslVpnClientCertId}'], ], ], - 404 => [ - [ - 'errorCode' => 'InvalidRegionId.NotFound', - 'errorMessage' => 'The specified region is not supported.', + ], + [ + 'apiName' => 'DescribeCustomerGateways', + 'description' => '', + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'vpc:DescribeCustomerGateways', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'conditional', 'product' => 'VPC', 'resourceType' => 'CustomerGateway', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:customergateway/*'], + ['validationType' => 'conditional', 'product' => 'VPC', 'resourceType' => 'CustomerGateway', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:customergateway/{#CustomerGatewayId}'], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"BD5BCEE8-F62C-40C2-9AC3-89XXXXXXXXX\\"\\n}","errorExample":"\\n\\n 185E81B1-3916-4667-B48F-C52409B33F2B\\n"},{"type":"xml","example":"\\n\\n BD5BCEE8-F62C-40C2-9AC3-89XXXXXXXXX\\n","errorExample":"{\\n \\"RequestId\\": \\"BD5BCEE8-F62C-40C2-9AC3-89XXXXXXXXX\\"\\n}"}]', - 'title' => 'ModifyGlobalAccelerationInstanceAttributes', - 'summary' => 'Modifies the name and description of a Global Accelerator (GA) instance.', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'ModifyGlobalAccelerationInstanceSpec' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + [ + 'apiName' => 'StartFailoverTestJob', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:StartFailoverTestJob', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VirtualBorderRouter', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:virtualborderrouter/{#VbrId}'], + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'PhysicalConnection', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:physicalconnection/{#PhysicalConnectionId}'], + ], + ], ], - 'security' => [ - [ - 'AK' => [], + [ + 'apiName' => 'DeleteRouteEntry', + 'description' => '', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'vpc:DeleteRouteEntry', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'RouteTable', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:routetable/{#RouteTableId}'], + ], ], ], - 'systemTags' => [ + [ + 'apiName' => 'TagResources', + 'description' => '', 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:TagResources', + 'authLevel' => 'resource', + 'actionConditions' => [ + ['conditionKey' => 'vpc:tag', 'validationType' => 'always'], + ], + 'resources' => [ + ['validationType' => 'conditional', 'product' => 'VPC', 'resourceType' => 'BandwidthPackage', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:combandwidthpackage/{#BandwidthPackageId}'], + ['validationType' => 'conditional', 'product' => 'VPC', 'resourceType' => 'Address', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:eip/{#AllocationId}'], + ['validationType' => 'conditional', 'product' => 'VPC', 'resourceType' => 'NatGateway', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:natgateway/{#NatGatewayId}'], + ['validationType' => 'conditional', 'product' => 'VPC', 'resourceType' => 'RouteTable', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:routetable/{#RouteTableId}'], + ['validationType' => 'conditional', 'product' => 'VPC', 'resourceType' => 'VPC', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vpc/{#VpcId}'], + ['validationType' => 'conditional', 'product' => 'VPC', 'resourceType' => 'VpnGateway', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vpngateway/{#VpnGatewayId}'], + ['validationType' => 'conditional', 'product' => 'VPC', 'resourceType' => 'VSwitch', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vswitch/{#VSwitchId}'], + ], + ], + ], + [ + 'apiName' => 'RemoveSourcesFromTrafficMirrorSession', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:RemoveSourcesFromTrafficMirrorSession', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'TrafficMirrorSession', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:trafficmirrorsession/{#TrafficMirrorSessionId}'], + ], + ], ], - 'parameters' => [ - [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the GA instance.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cn-hangzhou', + [ + 'apiName' => 'OpenTrafficMirrorService', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'vpc:OpenTrafficMirrorService', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'All Resource', 'arn' => '*'], ], ], - [ - 'name' => 'GlobalAccelerationInstanceId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the GA instance.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'ga-32s33s****', + ], + [ + 'apiName' => 'UnassociateVpcCidrBlock', + 'description' => '', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'vpc:UnassociateVpcCidrBlock', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VPC', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vpc/{#VpcId}'], ], ], - [ - 'name' => 'Bandwidth', - 'in' => 'query', - 'schema' => [ - 'description' => 'The maximum bandwidth of the GA instance. Unit: Mbit/s. Set the value to **10**.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => '10', + ], + [ + 'apiName' => 'ListGatewayRouteTableEntries', + 'description' => '', + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'vpc:ListGatewayRouteTableEntries', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'RouteTable', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:routetable/{#routetableId}'], ], ], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => 'BD5BCEE8-F62C-40C2-9AC3-89XXXXXXXXX', - ], - ], + [ + 'apiName' => 'DescribeVpnConnectionLogs', + 'description' => '', + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'vpc:DescribeVpnConnectionLogs', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VpnConnection', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vpnconnection/{#VpnConnectionId}'], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InvalidBandwidth.ValueNotSupported', - 'errorMessage' => 'The specified Bandwidth is not supported.', + [ + 'apiName' => 'DescribeHighDefinitionMonitorLogAttribute', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'vpc:DescribeHighDefinitionMonitorLogAttribute', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'Address', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:eip/{#AllocationId}'], ], - [ - 'errorCode' => 'InvalidGlobalAccelerationInstanceId.NotFound', - 'errorMessage' => 'The specified GlobalAccelerationInstanceId is not found.', + ], + ], + [ + 'apiName' => 'DescribeEcGrantRelation', + 'description' => '', + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'vpc:DescribeEcGrantRelation', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VirtualBorderRouter', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:virtualborderrouter/{#VbrId}'], ], - [ - 'errorCode' => 'Forbidden.ChargeTypeIsPrepaid', - 'errorMessage' => 'It?s forbidden to change prepaid GlobalAcceleration?s bandwidth by API. It can be changed on Aliyun web console.', + ], + ], + [ + 'apiName' => 'DeleteNetworkAcl', + 'description' => '', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'vpc:DeleteNetworkAcl', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'NetworkAcl', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:networkacl/{#NetworkAclId}'], ], - [ - 'errorCode' => 'InvalidGlobalAccelerationInstanceName.Malformed', - 'errorMessage' => 'The specified Name is not valid.', + ], + ], + [ + 'apiName' => 'DeletePublicIpAddressPool', + 'description' => '', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'vpc:DeletePublicIpAddressPool', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'PublicIpAddressPool', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:publicipaddresspool/{#PublicIpAddressPoolId}'], ], - [ - 'errorCode' => 'InvalidGlobalAccelerationInstanceDescription.Malformed', - 'errorMessage' => 'The specified Description is not valid.', + ], + ], + [ + 'apiName' => 'RemoveIPv6TranslatorAclListEntry', + 'description' => '', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'vpc:RemoveIPv6TranslatorAclListEntry', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'Ipv6Translator', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:ipv6trans/{#Ipv6TranslatorId}'], ], - [ - 'errorCode' => 'InvalidParameter', - 'errorMessage' => 'The parameter is invalid.', + ], + ], + [ + 'apiName' => 'ModifyVpcPrefixList', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:ModifyVpcPrefixList', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'PrefixList', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:prefixlist/{#PrefixListId}'], ], - [ - 'errorCode' => 'InvalidInstanceId.NotFound', - 'errorMessage' => 'Specified GA allocation ID is not found.', + ], + ], + [ + 'apiName' => 'ModifyExpressConnectTrafficQosQueue', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:ModifyExpressConnectTrafficQosQueue', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'All Resource', 'arn' => '*'], ], ], - 404 => [ - [ - 'errorCode' => 'InvalidRegionId.NotFound', - 'errorMessage' => 'The specified region is not supported.', + ], + [ + 'apiName' => 'UpdateDhcpOptionsSetAttribute', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:UpdateDhcpOptionsSetAttribute', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'DhcpOptionsSet', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:dhcpoptionsset/{#DhcpOptionsSetId}'], ], ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'The request processing has failed due to some unknown error.', + ], + [ + 'apiName' => 'DeleteVcoRouteEntry', + 'description' => '', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'vpc:DeleteVcoRouteEntry', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VpnConnections', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vpnconnection/{#VpnConnectionId}'], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"BD5BCEE8-F62C-40C2-9AC3-89XXXXXXXXX\\"\\n}","errorExample":"\\n\\n BD5BCEE8-F62C-40C2-9AC3-89XXXXXXXXX\\n"},{"type":"xml","example":"\\n BD5BCEE8-F62C-40C2-9AC3-89XXXXXXXXX\\n","errorExample":"{\\n \\"RequestId\\": \\"BD5BCEE8-F62C-40C2-9AC3-89XXXXXXXXX\\"\\n}"}]', - 'title' => 'ModifyGlobalAccelerationInstanceSpec', - 'summary' => 'Modifies the maximum bandwidth of a Global Accelerator (GA) instance.', - 'description' => '## Usage notes'."\n" - ."\n" - .'You cannot call this operation to modify the maximum bandwidth of a subscription GA instance.'."\n", - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'DescribeGlobalAccelerationInstances' => [ - 'methods' => [ - 'post', - 'get', + [ + 'apiName' => 'ModifyVpnAttachmentAttribute', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:ModifyVpnAttachmentAttribute', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VpnConnections', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vpnconnection/{#VpnConnectionId}'], + ], + ], ], - 'schemes' => [ - 'http', - 'https', + [ + 'apiName' => 'DeleteExpressConnectTrafficQosRule', + 'description' => '', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'vpc:DeleteExpressConnectTrafficQosRule', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], ], - 'security' => [ - [ - 'AK' => [], + [ + 'apiName' => 'DescribeIpv6Addresses', + 'description' => '', + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'vpc:DescribeIpv6Addresses', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'Ipv6InternetBandwidth', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vpc/*'], + ], ], ], - 'operationType' => 'read', - 'systemTags' => [ + [ + 'apiName' => 'VpcDescribeVpcNatGatewayNetworkInterfaceQuota', + 'description' => '', 'operationType' => 'get', - ], - 'parameters' => [ - [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the GA instance. You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cn-hangzhou', + 'ramAction' => [ + 'action' => 'vpc:VpcDescribeVpcNatGatewayNetworkInterfaceQuota', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'All Resource', 'arn' => '*'], ], ], - [ - 'name' => 'IncludeReservationData', - 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to return information about pending orders. Valid values:'."\n" - ."\n" - .'* **false** (default)'."\n" - .'* **true**'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', + ], + [ + 'apiName' => 'DeleteVpnConnection', + 'description' => '', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'vpc:DeleteVpnConnection', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VpnConnection', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vpnconnection/{#VpnConnectionId}'], ], ], - [ - 'name' => 'GlobalAccelerationInstanceId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the GA instance.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'ga-234sljmxaz****', + ], + [ + 'apiName' => 'DeleteIpv6Gateway', + 'description' => '', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'vpc:DeleteIpv6Gateway', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'Ipv6Gateway', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:ipv6gateway/{#Ipv6GatewayId}'], ], ], - [ - 'name' => 'IpAddress', - 'in' => 'query', - 'schema' => [ - 'description' => 'The public IP address of the GA instance.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '12.xx.xx.78', + ], + [ + 'apiName' => 'AllocateIpv6Address', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'vpc:AllocateIpv6Address', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'Ipv6Address', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:ipv6address/*'], ], ], - [ - 'name' => 'Name', - 'in' => 'query', - 'schema' => [ - 'description' => 'The name of the GA instance.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'GA-1', + ], + [ + 'apiName' => 'ModifyIPv6TranslatorAttribute', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:ModifyIPv6TranslatorAttribute', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'Ipv6Translator', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:ipv6trans/{#Ipv6TranslatorId}'], ], ], - [ - 'name' => 'Status', - 'in' => 'query', - 'schema' => [ - 'description' => 'The status of the GA instance. Valid values:'."\n" - ."\n" - .'* **Available**'."\n" - .'* **Inuse**'."\n" - .'* **Associating**'."\n" - .'* **Unassociating**'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'Available', + ], + [ + 'apiName' => 'ModifyEipForwardMode', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:ModifyEipForwardMode', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'Address', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:eip/{#AllocationId}'], ], ], - [ - 'name' => 'BandwidthType', - 'in' => 'query', - 'schema' => [ - 'description' => 'The bandwidth type of the GA instance. Valid values:'."\n" - ."\n" - .'* **Sharing**'."\n" - .'* **Exclusive** (default)'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'Exclusive', + ], + [ + 'apiName' => 'DescribeSslVpnClientCert', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'vpc:DescribeSslVpnClientCert', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'SslVpnClientCert', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:sslvpnclientcert/{#SslVpnClientCertId}'], ], ], - [ - 'name' => 'ServiceLocation', - 'in' => 'query', - 'schema' => [ - 'description' => 'The region of the backend service. Valid values:'."\n" - ."\n" - .'* **china-mainland**'."\n" - .'* **north-america**'."\n" - .'* **asia-pacific**'."\n" - .'* **europe**'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'china-mainland', + ], + [ + 'apiName' => 'ModifyExpressConnectTrafficQos', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:ModifyExpressConnectTrafficQos', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'All Resource', 'arn' => '*'], ], ], - [ - 'name' => 'ServerId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the backend service instance.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'i-sxjblddejj9x****', + ], + [ + 'apiName' => 'AddPublicIpAddressPoolCidrBlock', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'vpc:AddPublicIpAddressPoolCidrBlock', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'PublicIpAddressPool', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:publicipaddresspool/{#PublicIpAddressPoolId}'], ], ], - [ - 'name' => 'PageNumber', - 'in' => 'query', - 'schema' => [ - 'description' => 'The number of the page to return. Default value: **1**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'minimum' => '1', - 'example' => '10', - 'default' => '1', + ], + [ + 'apiName' => 'DescribeVSwitchAttributes', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'vpc:DescribeVSwitchAttributes', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VSwitch', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vswitch/{#VSwitchId}'], ], ], - [ - 'name' => 'PageSize', - 'in' => 'query', - 'schema' => [ - 'description' => 'The number of entries to return on each page. Maximum value: **100**. Default value: **10**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '100', - 'minimum' => '1', - 'example' => '10', - 'default' => '10', + ], + [ + 'apiName' => 'ModifyVpnPbrRouteEntryAttribute', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:ModifyVpnPbrRouteEntryAttribute', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VpnGateway', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vpngateway/{#VpnGatewayId}'], ], ], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'PageSize' => [ - 'description' => 'The number of entries returned per page.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '6B4EE38D-C75B-4E1F-844E-863A94430676', - ], - 'PageNumber' => [ - 'description' => 'The page number of the returned page.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'TotalCount' => [ - 'description' => 'The total number of entries returned.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'GlobalAccelerationInstances' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'GlobalAccelerationInstance' => [ - 'description' => 'The details of the GA instances.'."\n", - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'CreationTime' => [ - 'description' => 'The time when the GA instance was created. The time is displayed in UTC.'."\n", - 'type' => 'string', - 'example' => '2018-07-05T03:39:31Z', - ], - 'Status' => [ - 'description' => 'The status of the GA instance.'."\n" - ."\n" - .'* **Available**'."\n" - .'* **Inuse**'."\n" - .'* **Associating**'."\n" - .'* **Unassociating**'."\n", - 'type' => 'string', - 'example' => 'InUse', - ], - 'BandwidthType' => [ - 'description' => 'The bandwidth type of the GA instance.'."\n" - ."\n" - .'* **Sharing**'."\n" - .'* **Exclusive** (default)'."\n", - 'type' => 'string', - 'example' => 'Exclusive', - ], - 'ChargeType' => [ - 'description' => 'The billing method of the GA instance.'."\n", - 'type' => 'string', - 'example' => 'PrePaid', - ], - 'GlobalAccelerationInstanceId' => [ - 'description' => 'The ID of the GA instance.'."\n", - 'type' => 'string', - 'example' => 'ga-bp1x99kj7kl1ziw5x****', - ], - 'ServiceLocation' => [ - 'description' => 'The service area of the GA instance.'."\n", - 'type' => 'string', - 'example' => 'china-mainland', - ], - 'RegionId' => [ - 'description' => 'The region ID of the GA instance.'."\n", - 'type' => 'string', - 'example' => 'cn-hangzhou', - ], - 'AccelerationLocation' => [ - 'description' => 'The acceleration area of the GA instance.'."\n", - 'type' => 'string', - 'example' => 'china-mainland', - ], - 'IpAddress' => [ - 'description' => 'The public IP address of the dedicated GA instance.'."\n", - 'type' => 'string', - 'example' => '47.xx.xx.99', - ], - 'Description' => [ - 'description' => 'The description of the GA instance.'."\n", - 'type' => 'string', - 'example' => 'apiDescription', - ], - 'Bandwidth' => [ - 'description' => 'The maximum bandwidth of the GA instance.'."\n", - 'type' => 'string', - 'example' => '10', - ], - 'ExpiredTime' => [ - 'description' => 'The time when the instance expires.'."\n", - 'type' => 'string', - 'example' => '2018-08-05T16:00Z', - ], - 'InternetChargeType' => [ - 'description' => 'The billing method of the GA instance.'."\n", - 'type' => 'string', - 'example' => 'PayByBandwidth', - ], - 'Name' => [ - 'description' => 'The name of the GA instance.'."\n", - 'type' => 'string', - 'example' => 'instanceName', - ], - 'BackendServers' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'BackendServer' => [ - 'description' => 'The details about the backend servers of the GA instance.'."\n", - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'ServerIpAddress' => [ - 'description' => 'The IP address of the backend server.'."\n", - 'type' => 'string', - 'example' => '172.xx.xx.109', - ], - 'ServerId' => [ - 'description' => 'The ID of the backend server.'."\n", - 'type' => 'string', - 'example' => 'i-2zeg83zvn5d4ed4y****', - ], - 'ServerType' => [ - 'description' => 'The type of the backend server.'."\n" - ."\n" - .'* **EcsInstance**: Elastic Compute Service (ECS) instance'."\n" - .'* **SlbInstance**: Server Load Balancer (SLB) instance'."\n", - 'type' => 'string', - 'example' => 'EcsInstance', - ], - 'RegionId' => [ - 'description' => 'The region where the backend servers are deployed.'."\n", - 'type' => 'string', - 'example' => 'cn-beijing', - ], - ], - ], - ], - ], - ], - 'PublicIpAddresses' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'PublicIpAddress' => [ - 'description' => 'The public IP address.'."\n", - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'IpAddress' => [ - 'description' => 'The public IP address of the GA instance.'."\n", - 'type' => 'string', - 'example' => '12.xx.xx.78', - ], - 'AllocationId' => [ - 'description' => 'The ID of the public IP address of the GA instance.'."\n", - 'type' => 'string', - 'example' => 'eip-bp19yqraac4w3y0jd****', - ], - ], - ], - ], - ], - ], - ], - ], - ], - ], - ], - ], + [ + 'apiName' => 'UntagResourcesForExpressConnect', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:UntagResourcesForExpressConnect', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'PhysicalConnection', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:physicalconnection/{#PhysicalConnectionId}'], + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VirtualBorderRouter', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:virtualborderrouter/{#VbrId}'], + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'RouterInterface', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:routerinterface/{#RouterInterfaceId}'], + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'TrafficQos', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:trafficqos/{#QosId}'], ], ], ], - 'errorCodes' => [ - 404 => [ - [ - 'errorCode' => 'InvalidRegionId.NotFound', - 'errorMessage' => 'The specified region is not supported.', + [ + 'apiName' => 'AssociateVpnGatewayWithCertificate', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:AssociateVpnGatewayWithCertificate', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'All Resource', 'arn' => '*'], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"PageSize\\": 10,\\n \\"RequestId\\": \\"6B4EE38D-C75B-4E1F-844E-863A94430676\\",\\n \\"PageNumber\\": 1,\\n \\"TotalCount\\": 1,\\n \\"GlobalAccelerationInstances\\": {\\n \\"GlobalAccelerationInstance\\": [\\n {\\n \\"CreationTime\\": \\"2018-07-05T03:39:31Z\\",\\n \\"Status\\": \\"InUse\\",\\n \\"BandwidthType\\": \\"Exclusive\\",\\n \\"ChargeType\\": \\"PrePaid\\",\\n \\"GlobalAccelerationInstanceId\\": \\"ga-bp1x99kj7kl1ziw5x****\\",\\n \\"ServiceLocation\\": \\"china-mainland\\",\\n \\"RegionId\\": \\"cn-hangzhou\\",\\n \\"AccelerationLocation\\": \\"china-mainland\\",\\n \\"IpAddress\\": \\"47.xx.xx.99\\",\\n \\"Bandwidth\\": \\"10\\",\\n \\"Description\\": \\"apiDescription\\",\\n \\"ExpiredTime\\": \\"2018-08-05T16:00Z\\",\\n \\"InternetChargeType\\": \\"PayByBandwidth\\",\\n \\"Name\\": \\"instanceName\\",\\n \\"BackendServers\\": {\\n \\"BackendServer\\": [\\n {\\n \\"ServerIpAddress\\": \\"172.xx.xx.109\\",\\n \\"ServerId\\": \\"i-2zeg83zvn5d4ed4y****\\",\\n \\"ServerType\\": \\"EcsInstance\\",\\n \\"RegionId\\": \\"cn-beijing\\"\\n }\\n ]\\n },\\n \\"PublicIpAddresses\\": {\\n \\"PublicIpAddress\\": [\\n {\\n \\"IpAddress\\": \\"12.xx.xx.78\\",\\n \\"AllocationId\\": \\"eip-bp19yqraac4w3y0jd****\\"\\n }\\n ]\\n }\\n }\\n ]\\n }\\n}","errorExample":"\\n\\n\\t\\n\\t\\t\\n\\t\\t\\tchina-mainland\\n\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t\\t\\tcn-beijing\\n\\t\\t\\t\\t\\tlb-2222222333333333\\n\\t\\t\\t\\t\\t192.168.0.180\\n\\t\\t\\t\\t\\tSlbInstance\\n\\t\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t\\t10\\n\\t\\t\\tPrePaid\\n\\t\\t\\t2017-07-26T03:34:30Z\\n\\t\\t\\t\\n\\t\\t\\t2017-08-26T16:00Z\\n\\t\\t\\tga-aabbccddaabb\\n\\t\\t\\tPayByBandwidth\\n\\t\\t\\t12.34.56.78\\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t\\tcn-shanghai\\n\\t\\t\\tasia-pacific\\n\\t\\t\\tInUse\\n\\t\\t\\n\\t\\n\\t1\\n\\t10\\n\\t0487FCA3-E152-4726-8A17-25F69E03ADB0\\n\\t1\\n"},{"type":"xml","example":"\\r\\n\\r\\n 1\\r\\n 1\\r\\n 10\\r\\n 6B4EE38D-C75B-4E1F-844E-863A94430676\\r\\n \\r\\n \\r\\n PrePaid\\r\\n ga-bp1x99kj7kl1ziw5x****\\r\\n false\\r\\n \\r\\n \\r\\n \\r\\n i-2zeg83zvn5d4ed4y****\\r\\n cn-beijing\\r\\n EcsInstance\\r\\n 172.17.109.xxx\\r\\n \\r\\n \\r\\n 47.98.99.xxx\\r\\n PayByBandwidth\\r\\n \\r\\n Exclusive\\r\\n 2018-07-05T03:39:31Z\\r\\n InUse\\r\\n china-mainland\\r\\n cn-hangzhou\\r\\n china-mainland\\r\\n \\r\\n 2018-08-05T16:00Z\\r\\n \\r\\n 10\\r\\n \\r\\n\\t\\r\\n","errorExample":"{\\n \\"GlobalAccelerationInstances\\": {\\n \\"GlobalAccelerationInstance\\": [\\n {\\n \\"AccelerationLocation\\": \\"china-mainland\\",\\n \\"BackendServers\\": {\\n \\"BackendServer\\": [\\n {\\n \\"RegionId\\": \\"cn-beijing\\",\\n \\"ServerId\\": \\"lb-2222222333333333\\",\\n \\"ServerIpAddress\\": \\"192.168.0.180\\",\\n \\"ServerType\\": \\"SlbInstance\\"\\n }\\n ]\\n },\\n \\"Bandwidth\\": \\"10\\",\\n \\"ChargeType\\": \\"PrePaid\\",\\n \\"CreationTime\\": \\"2017-07-26T03:34:30Z\\",\\n \\"Description\\": \\"\\",\\n \\"ExpiredTime\\": \\"2017-08-26T16:00Z\\",\\n \\"GlobalAccelerationInstanceId\\": \\"ga-aabbccddaabb\\",\\n \\"InternetChargeType\\": \\"PayByBandwidth\\",\\n \\"IpAddress\\": \\"12.34.56.78\\",\\n \\"Name\\": \\"\\",\\n \\"OperationLocks\\": {\\n \\"LockReason\\": []\\n },\\n \\"RegionId\\": \\"cn-shanghai\\",\\n \\"ServiceLocation\\": \\"asia-pacific\\",\\n \\"Status\\": \\"InUse\\"\\n }\\n ]\\n },\\n \\"PageNumber\\": 1,\\n \\"PageSize\\": 10,\\n \\"RequestId\\": \\"0487FCA3-E152-4726-8A17-25F69E03ADB0\\",\\n \\"TotalCount\\": 1\\n}"}]', - 'title' => 'DescribeGlobalAccelerationInstances', - 'summary' => 'Queries created GA instances.', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'DescribeServerRelatedGlobalAccelerationInstances' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + [ + 'apiName' => 'DescribeVSwitches', + 'description' => '', + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'vpc:DescribeVSwitches', + 'authLevel' => 'resource', + 'actionConditions' => [ + ['conditionKey' => 'vpc:VPC', 'validationType' => 'always'], + ], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VSwitch', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vswitch/*'], + ], + ], ], - 'security' => [ - [ - 'AK' => [], + [ + 'apiName' => 'GetVpcPrefixListAssociations', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'vpc:GetVpcPrefixListAssociations', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'PrefixList', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:prefixlist/{#PrefixListId}'], + ], ], ], - 'systemTags' => [ + [ + 'apiName' => 'GetRouteTargetGroup', + 'description' => '', 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'vpc:GetRouteTargetGroup', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'RouteTargetGroup', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:routetargetgroup/{#RouteTargetGroupId}'], + ], + ], ], - 'parameters' => [ - [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the GA instance.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cn-hangzhou', + [ + 'apiName' => 'ListTrafficMirrorFilters', + 'description' => '', + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'vpc:ListTrafficMirrorFilters', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'TrafficMirrorFilter', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:trafficmirrorfilter/*'], ], ], - [ - 'name' => 'ServerId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the backend service instance.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'i-12s3sdf****', + ], + [ + 'apiName' => 'CreateDefaultVpc', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'vpc:CreateDefaultVpc', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VPC', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vpc/*'], ], ], - [ - 'name' => 'ServerType', - 'in' => 'query', - 'schema' => [ - 'description' => 'The type of the backend service instance. Valid values:'."\n" - ."\n" - .'* **EcsInstance** (default): Elastic Compute Service (ECS)'."\n" - .'* **SlbInstance**: Server Load Balancer (SLB)'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'EcsInstance', + ], + [ + 'apiName' => 'ListEnhanhcedNatGatewayAvailableZones', + 'description' => '', + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'vpc:ListEnhanhcedNatGatewayAvailableZones', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'All Resource', 'arn' => '*'], ], ], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => 'A8252014-D8DE-4D85-AF35-AFEXXXXXXX', - ], - 'GlobalAccelerationInstances' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'GlobalAccelerationInstance' => [ - 'description' => 'The list of GA instances.'."\n", - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'ServerIpAddress' => [ - 'description' => 'The IP address of the backend service.'."\n", - 'type' => 'string', - 'example' => '172.24.52.234', - ], - 'GlobalAccelerationInstanceId' => [ - 'description' => 'The ID of the GA instance.'."\n", - 'type' => 'string', - 'example' => 'ga-t4nku6vv9****', - ], - 'IpAddress' => [ - 'description' => 'The public IP address of the GA instance.'."\n", - 'type' => 'string', - 'example' => '12.34.56.78', - ], - 'RegionId' => [ - 'description' => 'The region ID of the GA instance.'."\n", - 'type' => 'string', - 'example' => 'ap-southeast-1', - ], - ], - ], - ], - ], - ], - ], + [ + 'apiName' => 'UpdateGatewayRouteTableEntryAttribute', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:UpdateGatewayRouteTableEntryAttribute', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'RouteTable', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:routetable/{#RouteTableId}'], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InvalidBackendServerId.NotInVPC', - 'errorMessage' => 'The specified BackendServerId is not in VPC.', + [ + 'apiName' => 'DeleteBgpGroup', + 'description' => '', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'vpc:DeleteBgpGroup', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VirtualBorderRouter', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:virtualborderrouter/{#VirtualBorderRouterId}'], ], - [ - 'errorCode' => 'InvalidBackendServerType.NotFound', - 'errorMessage' => 'The specified BackendServerType is not supported.', + ], + ], + [ + 'apiName' => 'ModifyVirtualBorderRouterAttribute', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:ModifyVirtualBorderRouterAttribute', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VirtualBorderRouter', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:virtualborderrouter/{#VirtualBorderRouterId}'], ], ], - 404 => [ - [ - 'errorCode' => 'InvalidRegionId.NotFound', - 'errorMessage' => 'The specified region is not supported.', + ], + [ + 'apiName' => 'DescribeNetworkAcls', + 'description' => '', + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'vpc:DescribeNetworkAcls', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'NetworkAcl', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:networkacl/*'], ], - [ - 'errorCode' => 'InvalidBackendServerId.NotFound', - 'errorMessage' => 'The specified BackendServerId is not found.', + ], + ], + [ + 'apiName' => 'DeleteSslVpnClientCert', + 'description' => '', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'vpc:DeleteSslVpnClientCert', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'SslVpnClientCert', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:sslvpnclientcert/{#SslVpnClientCertId}'], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"A8252014-D8DE-4D85-AF35-AFEXXXXXXX\\",\\n \\"GlobalAccelerationInstances\\": {\\n \\"GlobalAccelerationInstance\\": [\\n {\\n \\"ServerIpAddress\\": \\"172.24.52.234\\",\\n \\"GlobalAccelerationInstanceId\\": \\"ga-t4nku6vv9****\\",\\n \\"IpAddress\\": \\"12.34.56.78\\",\\n \\"RegionId\\": \\"ap-southeast-1\\"\\n }\\n ]\\n }\\n}","errorExample":"\\n\\n\\t\\n\\t\\t\\n\\t\\t\\tga-t4nku6vv9xxxxxxxxx\\n\\t\\t\\t12.34.56.78\\n\\t\\t\\tap-southeast-1\\n\\t\\t\\t172.24.52.234\\n\\t\\t\\n\\t\\n\\tA8252014-D8DE-4D85-AF35-AFEXXXXXXX\\n"},{"type":"xml","example":"\\n\\n\\t\\n\\t\\t\\n\\t\\t\\tga-t4nku6vv9****\\n\\t\\t\\t12.34.56.78\\n\\t\\t\\tap-southeast-1\\n\\t\\t\\t172.24.52.234\\n\\t\\t\\n\\t\\n\\tA8252014-D8DE-4D85-AF35-AFEXXXXXXX\\n","errorExample":"{\\n \\"GlobalAccelerationInstances\\": {\\n \\"GlobalAccelerationInstance\\": [\\n {\\n \\"GlobalAccelerationInstanceId\\": \\"ga-t4nku6vv9xxxxxxxxx\\",\\n \\"IpAddress\\": \\"12.34.56.78\\",\\n \\"RegionId\\": \\"ap-southeast-1\\",\\n \\"ServerIpAddress\\": \\"172.24.52.234\\"\\n }\\n ]\\n },\\n \\"RequestId\\": \\"A8252014-D8DE-4D85-AF35-AFEXXXXXXX\\"\\n}"}]', - 'title' => 'DescribeServerRelatedGlobalAccelerationInstances', - 'summary' => 'Queries the GA instances that are associated with a specified backend server.', - 'description' => '> You can call this operation to query only dedicated-bandwidth GA instances.'."\n", - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'RemoveGlobalAccelerationInstanceIp' => [ - 'methods' => [ - 'post', - 'get', + [ + 'apiName' => 'DeactivateRouterInterface', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:DeactivateRouterInterface', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'RouterInterface', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:routerinterface/{#RouterInterfaceId}'], + ], + ], ], - 'schemes' => [ - 'http', - 'https', + [ + 'apiName' => 'ModifyTunnelAttribute', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:ModifyTunnelAttribute', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VpnConnection', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vpnconnection/{#VpnConnectionId}'], + ], + ], ], - 'security' => [ - [ - 'AK' => [], + [ + 'apiName' => 'DescribeIPv6TranslatorEntries', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'vpc:DescribeIPv6TranslatorEntries', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'All Resource', 'arn' => '*'], + ], ], ], - 'systemTags' => [ - 'operationType' => 'delete', + [ + 'apiName' => 'DescribeEipAddresses', + 'description' => '', + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'vpc:DescribeEipAddresses', + 'authLevel' => 'resource', + 'actionConditions' => [ + ['conditionKey' => 'vpc:tag', 'validationType' => 'always'], + ], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'Address', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:eip/*'], + ], + ], ], - 'parameters' => [ - [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region where the shared-bandwidth instance is located.'."\n" - ."\n" - .'To query the region ID, call DescribeRegions.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cn-hangzhou', + [ + 'apiName' => 'Describe95Traffic', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'vpc:Describe95Traffic', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'BandwidthPackage', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:combandwidthpackage/{#BandwidthPackageId}'], ], ], - [ - 'name' => 'GlobalAccelerationInstanceId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the shared-bandwidth instance.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'ga-m5ex47zwya1sejyni****', + ], + [ + 'apiName' => 'UpdateNetworkAclEntries', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:UpdateNetworkAclEntries', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'NetworkAcl', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:networkacl/{#NetworkAclId}'], ], ], - [ - 'name' => 'IpInstanceId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the EIP.'."\n" - ."\n" - .'To query the EIP ID, call DescribeEipAddresses.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'eip-bp13e9i2qst4g6jzi****', + ], + [ + 'apiName' => 'UpdateVpcGatewayEndpointAttribute', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:UpdateVpcGatewayEndpointAttribute', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'GatewayEndpoint', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:gatewayendpoint/{#GatewayEndpointId}'], ], ], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => '5BE01CD7-5A50-472D-AC14-CA181C5C03BE', - ], - ], + [ + 'apiName' => 'ListTrafficMirrorSessions', + 'description' => '', + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'vpc:ListTrafficMirrorSessions', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'TrafficMirrorSession', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:trafficmirrorsession/*'], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'IpInstanceId.NotBandwidthPackage', - 'errorMessage' => 'The specified IpInstanceId does not in bandwidthPackage.', + [ + 'apiName' => 'AttachVbrToVpconn', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:AttachVbrToVpconn', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VirtualBorderRouter', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:virtualborderrouter/{#virtualborderrouterId}'], ], - [ - 'errorCode' => 'DependencyViolation.ip', - 'errorMessage' => 'The specified BandwidthPackageId has eip in it.', + ], + ], + [ + 'apiName' => 'DescribeVpnRouteEntries', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'vpc:DescribeVpnRouteEntries', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VpnGateway', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vpngateway/{#VpnGatewayId}'], ], - [ - 'errorCode' => 'EIP_BIND_NATGATEWAY', - 'errorMessage' => 'The eip have bind natgateway.', + ], + ], + [ + 'apiName' => 'AssociatePhysicalConnectionToVirtualBorderRouter', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:AssociatePhysicalConnectionToVirtualBorderRouter', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'PhysicalConnection', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:physicalconnection/{#PhysicalConnectionId}'], + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VirtualBorderRouter', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:virtualborderrouter/{#VirtualBorderRouterId}'], ], - [ - 'errorCode' => 'IpInstanceId.StatusNotAvailable', - 'errorMessage' => 'The specified Eip Status is not Available, Cannot remove from GlobalAcceleration.', + ], + ], + [ + 'apiName' => 'ListVpnCertificateAssociations', + 'description' => '', + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'vpc:ListVpnCertificateAssociations', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'All Resource', 'arn' => '*'], ], - [ - 'errorCode' => 'OperationUnsupported.IpNotInCbwp', - 'errorMessage' => 'The specified eip is not in commonbandwidthPackage.', + ], + ], + [ + 'apiName' => 'ModifyForwardEntry', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:ModifyForwardEntry', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'ForwardTable', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:forwardtable/{#ForwardTableId}'], ], ], - 404 => [ - [ - 'errorCode' => 'InvalidRegionId.NotFound', - 'errorMessage' => 'The specified RegionId does not exist in our records.', + ], + [ + 'apiName' => 'DisableVpcClassicLink', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:DisableVpcClassicLink', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VPC', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vpc/{#VpcId}'], + ], + ], + ], + [ + 'apiName' => 'UpdateFailoverTestJob', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:UpdateFailoverTestJob', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'PhysicalConnection', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:physicalconnection/{#PhysicalConnectionId}'], + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VirtualBorderRouter', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:virtualborderrouter/{#VbrId}'], ], - [ - 'errorCode' => 'InvalidBandwidthPackageId.NotFound', - 'errorMessage' => 'The specified bandwidthPackageId does not exist in our records.', + ], + ], + [ + 'apiName' => 'CancelPhysicalConnection', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:CancelPhysicalConnection', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'PhysicalConnection', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:physicalconnection/{#PhysicalConnectionId}'], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"5BE01CD7-5A50-472D-AC14-CA181C5C03BE\\"\\n}","errorExample":"\\n\\n 01FDDD49-C4B7-4D2A-A8E5-A93915C450A6\\n"},{"type":"xml","example":"\\r\\n 01FDDD49-C4B7-4D2A-A8E5-A93915C450A6\\r\\n","errorExample":"{\\n \\"RequestId\\": \\"01FDDD49-C4B7-4D2A-A8E5-A93915C450A6\\"\\n}"}]', - 'title' => 'RemoveGlobalAccelerationInstanceIp', - 'summary' => 'Disassociates an EIP from a shared-bandwidth GA instance.', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'CreateVpcGatewayEndpoint' => [ - 'summary' => 'Creates a gateway endpoint.', - 'methods' => [ - 'get', - 'post', + [ + 'apiName' => 'ListFullNatEntries', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'vpc:ListFullNatEntries', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'FullNat', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vpcfullnattable/{#FullNatTableId}'], + ], + ], ], - 'schemes' => [ - 'http', - 'https', + [ + 'apiName' => 'GrantInstanceToVbr', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:GrantInstanceToVbr', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VPC', 'arn' => 'acs:vpc:{#regionId}:{#AccountId}:vpc/{#VpcId}'], + ], + ], ], - 'security' => [ - [ - 'AK' => [], + [ + 'apiName' => 'AllocateIpv6InternetBandwidth', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'vpc:AllocateIpv6InternetBandwidth', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'Ipv6InternetBandwidth', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:ipv6bandwidth/*'], + ], ], ], - 'operationType' => 'readAndWrite', - 'deprecated' => false, - 'systemTags' => [ + [ + 'apiName' => 'AssociateVpcCidrBlock', + 'description' => '', 'operationType' => 'create', - 'riskType' => 'none', - 'chargeType' => 'free', + 'ramAction' => [ + 'action' => 'vpc:AssociateVpcCidrBlock', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VPC', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vpc/{#VpcId}'], + ], + ], ], - 'parameters' => [ - [ - 'name' => 'VpcId', - 'in' => 'query', - 'schema' => [ - 'title' => '专有网络实例ID', - 'description' => 'The ID of the virtual private cloud (VPC) where you want to create the gateway endpoint.'."\n" - ."\n" - .'The VPC and gateway endpoint must be deployed in the same region.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'vpc-bp1gsk7h12ew7oegk****', + [ + 'apiName' => 'ModifyCommonBandwidthPackageSpec', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:ModifyCommonBandwidthPackageSpec', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'BandwidthPackage', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:combandwidthpackage/{#BandwidthPackageId}'], ], ], - [ - 'name' => 'ServiceName', - 'in' => 'query', - 'schema' => [ - 'title' => '网关节点服务的名称', - 'description' => 'The name of the endpoint service.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'com.aliyun.cn-hangzhou.oss', + ], + [ + 'apiName' => 'CreateVpnRouteEntry', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'vpc:CreateVpnRouteEntry', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VpnGateway', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vpngateway/{#VpnGatewayId}'], ], ], - [ - 'name' => 'PolicyDocument', - 'in' => 'query', - 'schema' => [ - 'title' => '访问云服务的权限控制策略', - 'description' => 'The access policy for the cloud service.'."\n" - ."\n" - .'For more information about the syntax and structure of the access policy, see [Policy syntax and structure](~~93739~~).'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '{ "Version" : "1", "Statement" : [ { "Effect" : "Allow", "Resource" : [ "*" ], "Action" : [ "*" ], "Principal" : [ "*" ] } ] }', + ], + [ + 'apiName' => 'CreateVpcPrefixList', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'vpc:CreateVpcPrefixList', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'PrefixList', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:prefixlist/*'], ], ], - [ - 'name' => 'EndpointName', - 'in' => 'query', - 'schema' => [ - 'title' => '网关节点名称', - 'description' => 'The name of the gateway endpoint.'."\n" - ."\n" - .'The name must be 1 to 128 characters in length.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'test', + ], + [ + 'apiName' => 'ListBusinessRegions', + 'description' => '', + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'vpc:ListBusinessRegions', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'All Resource', 'arn' => '*'], ], ], - [ - 'name' => 'EndpointDescription', - 'in' => 'query', - 'schema' => [ - 'title' => '网关节点描述', - 'description' => 'The description of the gateway endpoint.'."\n" - ."\n" - .'The description must be 1 to 255 characters in length.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'test', + ], + [ + 'apiName' => 'ModifyVpnRouteEntryWeight', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:ModifyVpnRouteEntryWeight', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VpnGateway', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vpngateway/{#VpnGatewayId}'], ], ], - [ - 'name' => 'ClientToken', - 'in' => 'query', - 'schema' => [ - 'title' => '幂等参数', - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'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.'."\n" - ."\n" - .'> '."\n" - ."\n" - .'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.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3FF3898', + ], + [ + 'apiName' => 'CompletePhysicalConnectionLOA', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:CompletePhysicalConnectionLOA', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'PhysicalConnection', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:physicalconnection/{#PhysicalConnectionId}'], ], ], - [ - 'name' => 'DryRun', - 'in' => 'query', - 'schema' => [ - 'title' => '是否只预检此次请求', - 'description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values:'."\n" - ."\n" - .'* **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.'."\n" - .'* **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.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', + ], + [ + 'apiName' => 'DescribeTagKeysForExpressConnect', + 'description' => '', + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'vpc:DescribeTagKeysForExpressConnect', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'All Resource', 'arn' => '*'], ], ], - [ - 'name' => 'ResourceGroupId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the resource group to which the gateway endpoint belongs.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'rg-acfmxazb4ph****', + ], + [ + 'apiName' => 'DeleteGlobalAccelerationInstance', + 'description' => '', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'vpc:DeleteGlobalAccelerationInstance', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'GlobalAccelerationInstance', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:globalaccelerationinstance/{#GlobalAccelerationInstanceId}'], ], ], - [ - 'name' => 'Tag', - 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => 'The tags of the resource.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => 'The key of tag N to add to the resource. You can specify up to 20 tag keys. The tag key cannot be an empty string.'."\n" - ."\n" - .'The tag key can be up to 128 characters in length. It cannot start with `aliyun` or `acs:`, and cannot contain `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'FinanceDept', - ], - 'Value' => [ - 'description' => 'The value of tag N to add to the resource. You can specify up to 20 tag values. The tag value can be an empty string.'."\n" - ."\n" - .'The tag value can be up to 128 characters in length and cannot contain `http://` or `https://`. The tag value cannot start with `aliyun` or `acs:`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'FinanceJoshua', - ], - ], - 'required' => false, - ], - 'required' => false, - 'maxItems' => 21, + ], + [ + 'apiName' => 'ModifyIpv6InternetBandwidth', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:ModifyIpv6InternetBandwidth', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'Ipv6InternetBandwidth', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:ipv6bandwidth/{#Ipv6InternetBandwidthId}'], ], ], - [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'title' => '地域', - 'description' => 'The region ID of the gateway endpoint.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cn-hangzhou', + ], + [ + 'apiName' => 'DeleteRouteTable', + 'description' => '', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'vpc:DeleteRouteTable', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'RouteTable', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:routetable/{#RouteTableId}'], ], ], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'title' => 'Schema of Response', - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '62CFC815-E08A-5CF4-92D1-54273EC9E406', - ], - 'EndpointId' => [ - 'description' => 'The ID of the gateway endpoint.'."\n", - 'type' => 'string', - 'example' => 'vpce-bp1w1dmdqjpwul0v3****', - ], - 'ServiceName' => [ - 'description' => 'The name of the endpoint service.'."\n", - 'type' => 'string', - 'example' => 'com.aliyun.cn-hangzhou.oss', - ], - 'EndpointName' => [ - 'description' => 'The name of the gateway endpoint.'."\n", - 'type' => 'string', - 'example' => 'test', - ], - 'CreationTime' => [ - 'description' => 'The time when the gateway endpoint was created. The time follows the ISO 8601 standard in the YYYY-MM-DDThh:mm:ssZ format. The time is displayed in UTC.'."\n", - 'type' => 'string', - 'example' => '2021-08-27T01:58:37Z', - ], - 'ResourceGroupId' => [ - 'description' => 'The ID of the resource group to which the gateway endpoint belongs.'."\n", - 'type' => 'string', - 'example' => 'rg-acfmxazb4ph****', - ], - ], + [ + 'apiName' => 'ModifyVcoRouteEntryWeight', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:ModifyVcoRouteEntryWeight', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VpnConnections', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vpnconnection/{#VpnConnectionId}'], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'OperationFailed.ConcurrentOperation', - 'errorMessage' => 'The operation is failed because of concurrent operation.', + [ + 'apiName' => 'DeleteSslVpnServer', + 'description' => '', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'vpc:DeleteSslVpnServer', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'SslVpnServer', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:sslvpnserver/{#SslVpnServerId}'], + ], + ], + ], + [ + 'apiName' => 'DescribeIPv6Translators', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'vpc:DescribeIPv6Translators', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'All Resource', 'arn' => '*'], ], - [ - 'errorCode' => 'IdempotentParameterMismatch', - 'errorMessage' => 'The request uses the same client token as a previous, but non-identical request. Do not reuse a client token with different requests, unless the requests are identical.', + ], + ], + [ + 'apiName' => 'AssociateRouteTableWithGateway', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'vpc:AssociateRouteTableWithGateway', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'Ipv4Gateway', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:ipv4gateway/{#ipv4gatewayId}'], + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'RouteTable', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:routetable/{#routetableId}'], ], - [ - 'errorCode' => 'IllegalParam.PolicyDocument', - 'errorMessage' => 'The param of PolicyDocument is illegal.', + ], + ], + [ + 'apiName' => 'DeleteNatIpCidr', + 'description' => '', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'vpc:DeleteNatIpCidr', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'NatGateway', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:natgateway/{#NatGatewayId}'], ], - [ - 'errorCode' => 'IllegalParam.GatewayEndpointName', - 'errorMessage' => 'The param of GatewayEndpointName is illegal.', + ], + ], + [ + 'apiName' => 'WithdrawVpcPublishedRouteEntries', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:WithdrawVpcPublishedRouteEntries', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'RouteTable', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:routetable/{#RouteTableId}'], ], - [ - 'errorCode' => 'IllegalParam.GatewayEndpointDescription', - 'errorMessage' => 'The param of GatewayEndpointDescription is illegal.', + ], + ], + [ + 'apiName' => 'DescribeVpnGatewayAvailableZones', + 'description' => '', + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'vpc:DescribeVpnGatewayAvailableZones', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'All Resource', 'arn' => '*'], ], - [ - 'errorCode' => 'ResourceAlreadyExist.GatewayEndpoint', - 'errorMessage' => 'The specified resource gateway endpoint is already exist.', + ], + ], + [ + 'apiName' => 'DeleteSnatEntry', + 'description' => '', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'vpc:DeleteSnatEntry', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'SnatTable', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:snattable/{#SnatTableId}'], ], - [ - 'errorCode' => 'ResourceNotFound.ServiceName', - 'errorMessage' => 'The specified resource service name is not found.', + ], + ], + [ + 'apiName' => 'DeleteTrafficMirrorFilter', + 'description' => '', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'vpc:DeleteTrafficMirrorFilter', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'TrafficMirrorFilter', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:trafficmirrorfilter/{#TrafficMirrorFilterId}'], ], - [ - 'errorCode' => 'ResourceNotFound.VpcId', - 'errorMessage' => 'The specified resource vpc is not found.', + ], + ], + [ + 'apiName' => 'DescribeVRouters', + 'description' => '', + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'vpc:DescribeVRouters', + 'authLevel' => 'resource', + 'actionConditions' => [ + ['conditionKey' => 'vpc:VPC', 'validationType' => 'always'], ], - [ - 'errorCode' => 'Forbidden.OperateShareResource', - 'errorMessage' => 'The operation is failed because of shared vpc.', + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VRouter', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vrouter/*'], ], - [ - 'errorCode' => 'IncorrectStatus.Vpc', - 'errorMessage' => 'The status of vpc [%s] is incorrect.', + ], + ], + [ + 'apiName' => 'CreateBgpGroup', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'vpc:CreateBgpGroup', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VirtualBorderRouter', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:virtualborderrouter/{#VirtualBorderRouterId}'], ], - [ - 'errorCode' => 'IncorrectStatus.CenStatus', - 'errorMessage' => 'The status of vpc cenStatus [%s] is incorrect.', + ], + ], + [ + 'apiName' => 'DescribeGrantRulesToCen', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'vpc:DescribeGrantRulesToCen', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'conditional', 'product' => 'VPC', 'resourceType' => 'VirtualBorderRouter', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:virtualborderrouter/{#InstanceId}'], + ['validationType' => 'conditional', 'product' => 'VPC', 'resourceType' => 'GrantRuleToCen', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vpc/{#InstanceId}'], ], - [ - 'errorCode' => 'OperationFailed.VpcIpv6Disabled', - 'errorMessage' => 'The operation is failed because of VpcIpv6Disabled.', + ], + ], + [ + 'apiName' => 'UpdateEnhancedVpnGateway', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:UpdateEnhancedVpnGateway', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VpnGateway', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vpngateway/{#VpnGatewayId}'], ], - [ - 'errorCode' => 'UnsupportedFeature.GatewayEndpoint', - 'errorMessage' => 'The feature of gatewayEndpoint is not supported for %s.', + ], + ], + [ + 'apiName' => 'DeleteExpressConnectTrafficQos', + 'description' => '', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'vpc:DeleteExpressConnectTrafficQos', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'All Resource', 'arn' => '*'], ], - [ - 'errorCode' => 'SystemBusy', - 'errorMessage' => 'System is busy, please try again later.', + ], + ], + [ + 'apiName' => 'DescribeHaVips', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'vpc:DescribeHaVips', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'HaVip', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:havip/*'], ], - [ - 'errorCode' => 'Forbbiden', - 'errorMessage' => 'User not authorized to operate on the specified resource.', + ], + ], + [ + 'apiName' => 'DescribeIpv6GatewayAttribute', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'vpc:DescribeIpv6GatewayAttribute', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'Ipv6Gateway', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:ipv6gateway/{#Ipv6GatewayId}'], ], - [ - 'errorCode' => 'OperationDenied.PolicyDocument', - 'errorMessage' => 'The gatewayEndpoint does not support policy.', + ], + ], + [ + 'apiName' => 'AddSourcesToTrafficMirrorSession', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:AddSourcesToTrafficMirrorSession', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'TrafficMirrorSession', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:trafficmirrorsession/{#TrafficMirrorSessionId}'], ], - [ - 'errorCode' => 'MissingParam.PolicyDocument', - 'errorMessage' => 'The param of PolicyDocument is missing.', + ], + ], + [ + 'apiName' => 'DescribeCommonBandwidthPackages', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'vpc:DescribeCommonBandwidthPackages', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'CommonBandwidthPackage', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:combandwidthpackage/*'], ], - [ - 'errorCode' => 'OperationDenied.NotAuthorized', - 'errorMessage' => 'User not authorized to operate on the specified resource.', + ], + ], + [ + 'apiName' => 'CreateSslVpnClientCert', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'vpc:CreateSslVpnClientCert', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'SslVpnClientCert', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:sslvpnclientcert/*'], + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'SslVpnServer', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:sslvpnserver/{#SslVpnServerId}'], ], - [ - 'errorCode' => 'InvalidPolicy.WrongFormat', - 'errorMessage' => 'Invalid input policy format.', + ], + ], + [ + 'apiName' => 'GetDhcpOptionsSet', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'vpc:GetDhcpOptionsSet', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'DhcpOptionsSet', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:dhcpoptionsset/{#DhcpOptionsSetId}'], ], ], ], - 'staticInfo' => [ - 'returnType' => 'asynchronous', - 'callback' => 'Vpc::2016-04-28::ListVpcGatewayEndpoints', - 'callbackInterval' => 3000, - 'maxCallbackTimes' => 10, + [ + 'apiName' => 'ListNatIpCidrs', + 'description' => '', + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'vpc:ListNatIpCidrs', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'NatGateway', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:natgateway/{#NatGatewayId}'], + ], + ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"62CFC815-E08A-5CF4-92D1-54273EC9E406\\",\\n \\"EndpointId\\": \\"vpce-bp1w1dmdqjpwul0v3****\\",\\n \\"ServiceName\\": \\"com.aliyun.cn-hangzhou.oss\\",\\n \\"EndpointName\\": \\"test\\",\\n \\"CreationTime\\": \\"2021-08-27T01:58:37Z\\",\\n \\"ResourceGroupId\\": \\"rg-acfmxazb4ph****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 62CFC815-E08A-5CF4-92D1-54273EC9E406\\n vpce-bp1w1dmdqjpwul0v3****\\n com.aliyun.cn-hangzhou.oss\\n test\\n 2021-08-27T01:58:37Z\\n rg-acfmxazb4ph****\\n","errorExample":""}]', - 'title' => 'CreateVpcGatewayEndpoint', - 'description' => '* **CreateVpcGatewayEndpoint** is an asynchronous operation. After a request is sent, the system returns an **EndpointId** and runs the task in the background. You can call the [ListVpcGatewayEndpoints](~~448682~~) operation to query the status of the task.'."\n" - ."\n" - .' * If the gateway endpoint is in the **Creating** state, the gateway endpoint is being created.'."\n" - .' * If the gateway endpoint is in the **Created** state, the gateway endpoint is created.'."\n" - ."\n" - .'* You cannot repeatedly call the **CreateVpcGatewayEndpoint** operation for the same endpoint service within the specified period of time.', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'DeleteVpcGatewayEndpoint' => [ - 'summary' => 'Deletes a gateway endpoint.', - 'methods' => [ - 'get', - 'post', + [ + 'apiName' => 'GetTrafficMirrorServiceStatus', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'vpc:GetTrafficMirrorServiceStatus', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], ], - 'schemes' => [ - 'http', - 'https', + [ + 'apiName' => 'CreateRouteEntry', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'vpc:CreateRouteEntry', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'RouteTable', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:routetable/{#RouteTableId}'], + ], + ], ], - 'security' => [ - [ - 'AK' => [], + [ + 'apiName' => 'CreateRouteTargetGroup', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'vpc:CreateRouteTargetGroup', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'RouteTargetGroup', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:routetargetgroup/*'], + ], ], ], - 'operationType' => 'readAndWrite', - 'deprecated' => false, - 'systemTags' => [ + [ + 'apiName' => 'DeleteIpv4Gateway', + 'description' => '', 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'vpc:DeleteIpv4Gateway', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'Ipv4Gateway', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:ipv4gateway/{#ipv4gatewayId}'], + ], + ], ], - 'parameters' => [ - [ - 'name' => 'EndpointId', - 'in' => 'query', - 'schema' => [ - 'title' => 'VPC网关实例ID', - 'description' => 'The ID of the gateway endpoint.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'vpce-bp1w1dmdqjpwul0v3****', + [ + 'apiName' => 'DescribeVirtualBorderRoutersForPhysicalConnection', + 'description' => '', + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'vpc:DescribeVirtualBorderRoutersForPhysicalConnection', + 'authLevel' => 'resource', + 'actionConditions' => [ + ['conditionKey' => 'vpc:PhysicalConnection', 'validationType' => 'always'], + ], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'PhysicalConnection', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:physicalconnection/{#PhysicalConnectionId}'], ], ], - [ - 'name' => 'ClientToken', - 'in' => 'query', - 'schema' => [ - 'title' => '幂等参数', - 'description' => 'The client token that is used to ensure the idempotence of the request. 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 and cannot exceed 64 characters in length.'."\n" - ."\n" - .'> 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.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '0c593ea1-3bea-11e9-b96b-88e9fe637760', + ], + [ + 'apiName' => 'DeleteFlowLog', + 'description' => '', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'vpc:DeleteFlowLog', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'FlowLog', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:flowlog/{#FlowLogId}'], ], ], - [ - 'name' => 'DryRun', - 'in' => 'query', - 'schema' => [ - 'title' => '是否只预检此次请求', - 'description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values:'."\n" - ."\n" - .'* **true**: performs a dry run. The system checks the request for potential issues, including the AccessKey pair, the permissions of the RAM user, and the required parameters. 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.'."\n" - .'* **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.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', + ], + [ + 'apiName' => 'AssociateNetworkAcl', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:AssociateNetworkAcl', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'NetworkAcl', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:networkacl/{#NetworkAclId}'], + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VSwitch', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vswitch/{#VSwitchId}'], ], ], - [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'title' => '地域', - 'description' => 'The region ID of the gateway endpoint.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cn-hangzhou', + ], + [ + 'apiName' => 'ListDhcpOptionsSets', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'vpc:ListDhcpOptionsSets', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'conditional', 'product' => 'VPC', 'resourceType' => 'DhcpOptionsSet', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:dhcpoptionsset/*'], + ['validationType' => 'conditional', 'product' => 'VPC', 'resourceType' => 'DhcpOptionsSet', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:dhcpoptionsset/{#DhcpOptionsSetId}'], ], ], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'Schema of Response'."\n", - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => 'A1122D0F-7B3B-5445-BB19-17F27F97FE1C', - ], - ], + [ + 'apiName' => 'CreateExpressConnectTrafficQos', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'vpc:CreateExpressConnectTrafficQos', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'TrafficQos', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:TrafficQos/*'], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'OperationFailed.ConcurrentOperation', - 'errorMessage' => 'The operation is failed because of concurrent operation.', + [ + 'apiName' => 'CreateDhcpOptionsSet', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'vpc:CreateDhcpOptionsSet', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'DhcpOptionsSet', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:dhcpoptionsset/*'], ], - [ - 'errorCode' => 'IdempotentParameterMismatch', - 'errorMessage' => 'The request uses the same client token as a previous, but non-identical request. Do not reuse a client token with different requests, unless the requests are identical.', + ], + ], + [ + 'apiName' => 'ModifyNatIpAttribute', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:ModifyNatIpAttribute', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'NatGateway', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:natgateway/{#NatGatewayId}'], ], - [ - 'errorCode' => 'ResourceNotFound.GatewayEndpoint', - 'errorMessage' => 'The specified resource gateway endpoint is not found.', + ], + ], + [ + 'apiName' => 'ListVSwitchCidrReservations', + 'description' => '', + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'vpc:ListVSwitchCidrReservations', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VSwitchCidrReservation', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vswitchcidrreservation/*'], ], - [ - 'errorCode' => 'IncorrectStatus.GatewayEndpoint', - 'errorMessage' => 'The status of GatewayEndpoint [%s] is incorrect.', + ], + ], + [ + 'apiName' => 'DescribeBgpPeers', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'vpc:DescribeBgpPeers', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VirtualBorderRouter', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:virtualborderrouter/{#VbrId}'], ], - [ - 'errorCode' => 'DependencyViolation.Association', - 'errorMessage' => 'The specified resource of [%s] depends on [%s], so the operation cannot be completed.', + ], + ], + [ + 'apiName' => 'DescribeEipGatewayInfo', + 'description' => '', + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'vpc:DescribeEipGatewayInfo', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'GatewayInfo', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:eip/*'], ], - [ - 'errorCode' => 'Forbbiden', - 'errorMessage' => 'User not authorized to operate on the specified resource.', + ], + ], + [ + 'apiName' => 'CreateFlowLog', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'vpc:CreateFlowLog', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'conditional', 'product' => 'VPC', 'resourceType' => 'VSwitch', 'arn' => 'acs:vpc:{#regionid}:{#accountId}:vswitch/{#VSwitchId}'], + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'FlowLog', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:flowlog/*'], + ['validationType' => 'conditional', 'product' => 'VPC', 'resourceType' => 'VPC', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vpc/{#VpcId}'], ], - [ - 'errorCode' => 'InvalidRegionId.NotFound', - 'errorMessage' => 'The regionId provided does not exist in our records.', + ], + ], + [ + 'apiName' => 'ModifyBgpPeerAttribute', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:ModifyBgpPeerAttribute', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VirtualBorderRouter', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:virtualborderrouter/{#VirtualBorderRouterId}'], ], ], ], - 'staticInfo' => [ - 'returnType' => 'asynchronous', - 'callback' => 'Vpc::2016-04-28::ListVpcGatewayEndpoints', - 'callbackInterval' => 3000, - 'maxCallbackTimes' => 10, + [ + 'apiName' => 'OpenPhysicalConnectionService', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'vpc:OpenPhysicalConnectionService', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"A1122D0F-7B3B-5445-BB19-17F27F97FE1C\\"\\n}","errorExample":""},{"type":"xml","example":"\\r\\nA1122D0F-7B3B-5445-BB19-17F27F97FE1C\\r\\n","errorExample":""}]', - 'title' => 'DeleteVpcGatewayEndpoint', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'UpdateVpcGatewayEndpointAttribute' => [ - 'summary' => 'Modifies the configuration of a gateway endpoint.', - 'methods' => [ - 'get', - 'post', + [ + 'apiName' => 'DescribeVpnAttachments', + 'description' => '', + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'vpc:DescribeVpnAttachments', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VpnConnections', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vpnconnection/{#VpnConnectionId}'], + ], + ], ], - 'schemes' => [ - 'http', - 'https', + [ + 'apiName' => 'DescribeEipSegment', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'vpc:DescribeEipSegment', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'SegmentAddress', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:eip/*'], + ], + ], ], - 'security' => [ - [ - 'AK' => [], + [ + 'apiName' => 'DescribePhysicalConnectionLOA', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'vpc:DescribePhysicalConnectionLOA', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'PhysicalConnection', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:physicalconnection/{#PhysicalConnectionId}'], + ], ], ], - 'operationType' => 'readAndWrite', - 'deprecated' => false, - 'systemTags' => [ + [ + 'apiName' => 'UpdateNatGatewayNatType', + 'description' => '', 'operationType' => 'update', - 'riskType' => 'none', - 'chargeType' => 'free', + 'ramAction' => [ + 'action' => 'vpc:UpdateNatGatewayNatType', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'NatGateway', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:natgateway/{#NatGatewayId}'], + ], + ], ], - 'parameters' => [ - [ - 'name' => 'EndpointId', - 'in' => 'query', - 'schema' => [ - 'title' => 'VPC网关实例ID', - 'description' => 'The ID of the gateway endpoint that you want to modify.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'vpce-bp1w1dmdqjpwul0v3****', + [ + 'apiName' => 'SecondApplyPhysicalConnectionLOA', + 'description' => '', + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'vpc:SecondApplyPhysicalConnectionLOA', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'PhysicalConnection', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:physicalconnection/{#PhysicalConnectionId}'], ], ], - [ - 'name' => 'EndpointName', - 'in' => 'query', - 'schema' => [ - 'title' => '网关节点名称', - 'description' => 'The new name of the gateway endpoint.'."\n" - ."\n" - .'The name must be 1 to 128 characters in length.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'update', + ], + [ + 'apiName' => 'CreateSnatEntry', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'vpc:CreateSnatEntry', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'SnatEntry', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:snattable/*'], ], ], - [ - 'name' => 'EndpointDescription', - 'in' => 'query', - 'schema' => [ - 'title' => '网关节点描述', - 'description' => 'The new description of the gateway endpoint.'."\n" - ."\n" - .'The description must be 1 to 255 characters in length.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'updateendpoint', + ], + [ + 'apiName' => 'CreateVpnAttachment', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'vpc:CreateVpnAttachment', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'All Resource', 'arn' => '*'], ], ], - [ - 'name' => 'PolicyDocument', - 'in' => 'query', - 'schema' => [ - 'title' => '访问云服务的权限控制策略', - 'description' => 'The access policy for the cloud service.'."\n" - ."\n" - .'For more information about the syntax and structure of the access policy, see [Policy syntax and structure](~~93739~~).'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '{ "Version" : "1", "Statement" : [ { "Effect" : "Allow", "Resource" : [ "*" ], "Action" : [ "*" ], "Principal" : [ "*" ] } ] }', + ], + [ + 'apiName' => 'ReleaseEipAddress', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:ReleaseEipAddress', + 'authLevel' => 'resource', + 'actionConditions' => [ + ['conditionKey' => 'vpc:tag', 'validationType' => 'always'], + ], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'Address', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:eip/{#AllocationId}'], ], ], - [ - 'name' => 'ClientToken', - 'in' => 'query', - 'schema' => [ - 'title' => '幂等参数', - 'description' => 'The client token that is used to ensure the idempotence of the request.'."\n" - ."\n" - .'You can use the client to generate the token, but you must make sure that the token is unique among all requests. The token can contain only ASCII characters.'."\n" - ."\n" - .'> If you do not set this parameter, the system uses **RequestId** as **ClientToken**. The value of **RequestId** of each API request may be different.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '0c593ea1-3bea-11e9-b96b-88e9fe637760', + ], + [ + 'apiName' => 'CreateHaVip', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'vpc:CreateHaVip', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'HaVip', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:havip/*'], + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VSwitch', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vswitch/{#VSwitchId}'], ], ], - [ - 'name' => 'DryRun', - 'in' => 'query', - 'schema' => [ - 'title' => '是否只预检此次请求', - 'description' => 'Specifies whether to perform a dry run. Valid values:'."\n" - ."\n" - .'* **true**: performs a dry run. The system checks your AccessKey pair, the RAM user permissions, and the required parameters If the request fails the dry run, the corresponding error message is returned. If the request passes the dry run, the `DryRunOperation` error code is returned.'."\n" - .'* **false** (default): performs a dry run and sends the request. If the request passes the dry run, a 2xx HTTP status code is returned and the operation is performed.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', + ], + [ + 'apiName' => 'DescribeVpnGateways', + 'description' => '', + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'vpc:DescribeVpnGateways', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'conditional', 'product' => 'VPC', 'resourceType' => 'VpnGateway', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vpngateway/*'], + ['validationType' => 'conditional', 'product' => 'VPC', 'resourceType' => 'VpnGateway', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vpngateway/{#VpnInstanceId}'], ], ], - [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'title' => '地域', - 'description' => 'The region ID of the gateway endpoint.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cn-hangzhou', + ], + [ + 'apiName' => 'DeleteExpressConnectTrafficQosQueue', + 'description' => '', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'vpc:DeleteExpressConnectTrafficQosQueue', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'All Resource', 'arn' => '*'], ], ], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'The returned information.'."\n", - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => 'E9654534-5A38-5545-813F-0403D49042FB', - ], - ], + [ + 'apiName' => 'DeleteTrafficMirrorSession', + 'description' => '', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'vpc:DeleteTrafficMirrorSession', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'TrafficMirrorSession', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:trafficmirrorsession/{#TrafficMirrorSessionId}'], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'OperationFailed.ConcurrentOperation', - 'errorMessage' => 'The operation is failed because of concurrent operation.', + [ + 'apiName' => 'UnassociateNetworkAcl', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:UnassociateNetworkAcl', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'NetworkAcl', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:networkacl/{#NetworkAclId}'], + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VSwitch', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vswitch/{#VSwitchId}'], + ], + ], + ], + [ + 'apiName' => 'RetryVpcPrefixListAssociation', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:RetryVpcPrefixListAssociation', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'PrefixList', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:prefixlist/{#PrefixListId}'], ], - [ - 'errorCode' => 'IdempotentParameterMismatch', - 'errorMessage' => 'The request uses the same client token as a previous, but non-identical request. Do not reuse a client token with different requests, unless the requests are identical.', + ], + ], + [ + 'apiName' => 'DescribeFailoverTestJobs', + 'description' => '', + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'vpc:DescribeFailoverTestJobs', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'PhysicalConnection', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:physicalconnection/{#PhysicalConnectionId}'], + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VirtualBorderRouter', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:virtualborderrouter/{#VbrId}'], ], - [ - 'errorCode' => 'ResourceNotFound.GatewayEndpoint', - 'errorMessage' => 'The specified resource gateway endpoint is not found.', + ], + ], + [ + 'apiName' => 'ModifyVSwitchCidrReservationAttribute', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:ModifyVSwitchCidrReservationAttribute', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VSwitchCidrReservation', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vswitchcidrreservation/{#VSwitchCidrReservationId}'], ], - [ - 'errorCode' => 'IllegalParam.PolicyDocument', - 'errorMessage' => 'The param of PolicyDocument is illegal.', + ], + ], + [ + 'apiName' => 'UnassociateEipAddress', + 'description' => '', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'vpc:UnassociateEipAddress', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'conditional', 'product' => 'VPC', 'resourceType' => 'Instance', 'arn' => 'acs:ecs:{#regionId}:{#accountId}:instance/{#InstanceId}'], + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'Address', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:eip/{#AllocationId}'], + ['validationType' => 'conditional', 'product' => 'VPC', 'resourceType' => 'HaVip', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:havip/{#HaVipId}'], ], - [ - 'errorCode' => 'IllegalParam.GatewayEndpointName', - 'errorMessage' => 'The param of GatewayEndpointName is illegal.', + ], + ], + [ + 'apiName' => 'ModifyExpressCloudConnectionBandwidth', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:ModifyExpressCloudConnectionBandwidth', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'PhysicalConnection', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:physicalconnection/{#PhysicalConnectionId}'], ], - [ - 'errorCode' => 'IllegalParam.GatewayEndpointDescription', - 'errorMessage' => 'The param of GatewayEndpointDescription is illegal.', + ], + ], + [ + 'apiName' => 'DescribeVbrHa', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'vpc:DescribeVbrHa', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VirtualBorderRouter', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:virtualborderrouter/{#VbrId}'], ], - [ - 'errorCode' => 'SystemBusy', - 'errorMessage' => 'System is busy, please try again later.', + ], + ], + [ + 'apiName' => 'CheckCanAllocateVpcPrivateIpAddress', + 'description' => '', + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'vpc:CheckCanAllocateVpcPrivateIpAddress', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VSwitch', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vswitch/{#VSwitchId}'], ], - [ - 'errorCode' => 'Forbbiden', - 'errorMessage' => 'User not authorized to operate on the specified resource.', + ], + ], + [ + 'apiName' => 'OpenPublicIpAddressPoolService', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'vpc:OpenPublicIpAddressPoolService', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'All Resource', 'arn' => '*'], ], - [ - 'errorCode' => 'InvalidRegionId.NotFound', - 'errorMessage' => 'The regionId provided does not exist in our records.', + ], + ], + [ + 'apiName' => 'DeleteVpnPbrRouteEntry', + 'description' => '', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'vpc:DeleteVpnPbrRouteEntry', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VpnGateway', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vpngateway/{#VpnGatewayId}'], ], - [ - 'errorCode' => 'OperationDenied.PolicyDocument', - 'errorMessage' => 'The gatewayEndpoint does not support policy.', + ], + ], + [ + 'apiName' => 'DeleteCustomerGateway', + 'description' => '', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'vpc:DeleteCustomerGateway', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'CustomerGateway', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:customergateway/{#CustomerGatewayId}'], ], - [ - 'errorCode' => 'IncorrectStatus.GatewayEndpoint', - 'errorMessage' => 'The status of GatewayEndpoint [%s] is incorrect.', + ], + ], + [ + 'apiName' => 'ModifyFlowLogAttribute', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:ModifyFlowLogAttribute', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'FlowLog', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:flowlog/{#FlowLogId}'], ], - [ - 'errorCode' => 'InvalidPolicy.WrongFormat', - 'errorMessage' => 'Invalid input policy format.', + ], + ], + [ + 'apiName' => 'UpdateTrafficMirrorSessionAttribute', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:UpdateTrafficMirrorSessionAttribute', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'TrafficMirrorSession', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:trafficmirrorsession/{#TrafficMirrorSessionId}'], + ['validationType' => 'conditional', 'product' => 'VPC', 'resourceType' => 'TrafficMirrorFilter', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:trafficmirrorfilter/{#TrafficMirrorFilterId}'], ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + [ + 'apiName' => 'AddGlobalAccelerationInstanceIp', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'vpc:AddGlobalAccelerationInstanceIp', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"E9654534-5A38-5545-813F-0403D49042FB\\"\\n}","errorExample":""},{"type":"xml","example":"\\n E9654534-5A38-5545-813F-0403D49042FB\\n","errorExample":""}]', - 'title' => 'UpdateVpcGatewayEndpointAttribute', - 'description' => '* **UpdateVpcGatewayEndpointAttribute** is an asynchronous operation. After a request is sent, the system returns a **request ID** and runs the task in the background. You can call the [GetVpcGatewayEndpointAttribute](~~311017~~) operation to query the status of the task.'."\n" - ."\n" - .' * If the gateway endpoint is in the **Updating** state, it is being modified.'."\n" - .' * If the gateway endpoint is in the **Created** state, it is modified.'."\n" - ."\n" - .'* You cannot call the **UpdateVpcGatewayEndpointAttribute** operation within a specific period of time.'."\n", - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'ListVpcEndpointServicesByEndUser' => [ - 'summary' => 'Queries available endpoint services.', - 'methods' => [ - 'get', - 'post', + [ + 'apiName' => 'DeleteRouteEntries', + 'description' => '', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'vpc:DeleteRouteEntries', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'RouteTable', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:routetable/{#routetableId}'], + ], + ], ], - 'schemes' => [ - 'http', - 'https', + [ + 'apiName' => 'CreateExpressConnectTrafficQosQueue', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'vpc:CreateExpressConnectTrafficQosQueue', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], ], - 'security' => [ - [ - 'AK' => [], + [ + 'apiName' => 'ModifyRouterInterfaceAttribute', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:ModifyRouterInterfaceAttribute', + 'authLevel' => 'resource', + 'actionConditions' => [ + ['conditionKey' => 'vpc:TargetAccountRDId', 'validationType' => 'always'], + ], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'RouterInterface', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:routerinterface/{#RouterInterfaceId}'], + ], ], ], - 'operationType' => 'read', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'list', + [ + 'apiName' => 'ApplyPhysicalConnectionLOA', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:ApplyPhysicalConnectionLOA', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'PhysicalConnection', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:physicalconnection/{#PhysicalConnectionId}'], + ], + ], ], - 'parameters' => [ - [ - 'name' => 'ServiceName', - 'in' => 'query', - 'schema' => [ - 'description' => 'The name of the endpoint service that you want to query.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'com.aliyun.cn-hangzhou.oss', + [ + 'apiName' => 'ModifyVpnPbrRouteEntryWeight', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:ModifyVpnPbrRouteEntryWeight', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VpnGateway', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vpngateway/{#VpnGatewayId}'], ], ], - [ - 'name' => 'NextToken', - 'in' => 'query', - 'schema' => [ - 'description' => 'The token that is used for the next query. Valid values:'."\n" - ."\n" - .'* If this is your first query and no next queries are to be sent, ignore this parameter.'."\n" - .'* If a next query is to be performed, set the value to the NextToken value returned in the last call to the ListListenerCertificates operation.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', + ], + [ + 'apiName' => 'ModifySslVpnServer', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:ModifySslVpnServer', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'SslVpnServer', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:sslvpnserver/{#SslVpnServerId}'], ], ], - [ - 'name' => 'MaxResults', - 'in' => 'query', - 'schema' => [ - 'description' => 'The number of entries to return per page. Valid values: **1** to **100**. Default value: **20**.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'maximum' => '100', - 'minimum' => '1', - 'example' => '20', - 'default' => '10', + ], + [ + 'apiName' => 'RevokeInstanceFromVbr', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:RevokeInstanceFromVbr', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VPC', 'arn' => 'acs:vpc:{#regionId}:{#AccountId}:vpc/{#VpcId}'], ], ], - [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'title' => '地域', - 'description' => 'The region ID of the gateway endpoint.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cn-hangzhou', + ], + [ + 'apiName' => 'DeleteIPv6TranslatorEntry', + 'description' => '', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'vpc:DeleteIPv6TranslatorEntry', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'All Resource', 'arn' => '*'], ], ], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'title' => 'Schema of Response', - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => '0AB1129F-32C1-5E4D-9E22-E4A859CA46EB', - ], - 'NextToken' => [ - 'description' => 'The token that is used for the next query. Valid values:'."\n" - ."\n" - .'* If no value is returned for **NextToken**, no next queries are sent.'."\n" - .'* If **NextToken** is returned, the value is the token that is used for the next query.'."\n", - 'type' => 'string', - 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', - ], - 'MaxResults' => [ - 'description' => 'The number of entries returned per page.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '20', - ], - 'Services' => [ - 'description' => 'The list of entries returned.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'ServiceId' => [ - 'description' => 'The ID of the endpoint service.'."\n", - 'type' => 'string', - 'example' => 'vpces-m5enwdmilo210aibo9****', - ], - 'ServiceName' => [ - 'description' => 'The name of the endpoint service.'."\n", - 'type' => 'string', - 'example' => 'com.aliyun.cn-hangzhou.oss', - ], - 'DefaultPolicyDocument' => [ - 'description' => 'The default access policy.'."\n", - 'type' => 'string', - 'example' => '{ \\"Version\\" : \\"1\\", \\"Statement\\" : [ { \\"Effect\\" : \\"Allow\\", \\"Action\\" : \\"*\\", \\"Principal\\" : \\"*\\", \\"Resource\\" : \\"*\\" } ] }', - ], - 'SupportPolicy' => [ - 'description' => 'Indicate whether the endpoint service supports the access policy. Valid values:'."\n" - ."\n" - .'* **false**'."\n" - .'* **true**'."\n", - 'type' => 'boolean', - 'example' => 'true', - ], - 'ServiceDomain' => [ - 'description' => 'The domain name of the cloud service to which the endpoint service belongs.'."\n", - 'type' => 'string', - 'example' => 'oss-admin.aliyuncs.com', - ], - ], - ], - ], - 'TotalCount' => [ - 'description' => 'The total number of entries returned.'."\n", - 'type' => 'string', - 'example' => '2', - ], - ], + [ + 'apiName' => 'DetachDhcpOptionsSetFromVpc', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:DetachDhcpOptionsSetFromVpc', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'DhcpOptionsSet', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:dhcpoptionsset/{#DhcpOptionsSetId}'], + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VPC', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vpc/{#VpcId}'], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'ResourceNotFound.EndpointServiceId', - 'errorMessage' => 'The specified resource gateway endpoint service is not found.', - ], - [ - 'errorCode' => 'IllegalParam.NextToken', - 'errorMessage' => 'The specified NextToken is invalid.', + [ + 'apiName' => 'DeleteDhcpOptionsSet', + 'description' => '', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'vpc:DeleteDhcpOptionsSet', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'DhcpOptionsSet', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:dhcpoptionsset/{#DhcpOptionsSetId}'], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"0AB1129F-32C1-5E4D-9E22-E4A859CA46EB\\",\\n \\"NextToken\\": \\"FFmyTO70tTpLG6I3FmYAXGKPd****\\",\\n \\"MaxResults\\": 20,\\n \\"Services\\": [\\n {\\n \\"ServiceId\\": \\"vpces-m5enwdmilo210aibo9****\\",\\n \\"ServiceName\\": \\"com.aliyun.cn-hangzhou.oss\\",\\n \\"DefaultPolicyDocument\\": \\"{ \\\\\\\\\\\\\\"Version\\\\\\\\\\\\\\" : \\\\\\\\\\\\\\"1\\\\\\\\\\\\\\", \\\\\\\\\\\\\\"Statement\\\\\\\\\\\\\\" : [ { \\\\\\\\\\\\\\"Effect\\\\\\\\\\\\\\" : \\\\\\\\\\\\\\"Allow\\\\\\\\\\\\\\", \\\\\\\\\\\\\\"Action\\\\\\\\\\\\\\" : \\\\\\\\\\\\\\"*\\\\\\\\\\\\\\", \\\\\\\\\\\\\\"Principal\\\\\\\\\\\\\\" : \\\\\\\\\\\\\\"*\\\\\\\\\\\\\\", \\\\\\\\\\\\\\"Resource\\\\\\\\\\\\\\" : \\\\\\\\\\\\\\"*\\\\\\\\\\\\\\" } ] }\\",\\n \\"SupportPolicy\\": true,\\n \\"ServiceDomain\\": \\"oss-admin.aliyuncs.com\\"\\n }\\n ],\\n \\"TotalCount\\": \\"2\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 0AB1129F-32C1-5E4D-9E22-E4A859CA46EB\\n FFmyTO70tTpLG6I3FmYAXGKPd****\\n 20\\n \\n vpces-m5enwdmilo210aibo9****\\n com.aliyun.cn-hangzhou.oss\\n { \\\\\\"Version\\\\\\" : \\\\\\"1\\\\\\", \\\\\\"Statement\\\\\\" : [ { \\\\\\"Effect\\\\\\" : \\\\\\"Allow\\\\\\", \\\\\\"Action\\\\\\" : \\\\\\"*\\\\\\", \\\\\\"Principal\\\\\\" : \\\\\\"*\\\\\\", \\\\\\"Resource\\\\\\" : \\\\\\"*\\\\\\" } ] }\\n true\\n oss-admin.aliyuncs.com\\n \\n","errorExample":""}]', - 'title' => 'ListVpcEndpointServicesByEndUser', - ], - 'GetVpcGatewayEndpointAttribute' => [ - 'summary' => 'Queries the attributes of a gateway endpoint.', - 'methods' => [ - 'get', - 'post', + [ + 'apiName' => 'RecoverVirtualBorderRouter', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:RecoverVirtualBorderRouter', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VirtualBorderRouter', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:virtualborderrouter/{#VirtualBorderRouterId}'], + ], + ], ], - 'schemes' => [ - 'http', - 'https', + [ + 'apiName' => 'GrantInstanceToCen', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:GrantInstanceToCen', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VirtualBorderRouter', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:virtualborderrouter/{#VirtualBorderRouterId}'], + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VPC', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vpc/{#VpcId}'], + ], + ], ], - 'security' => [ - [ - 'AK' => [], + [ + 'apiName' => 'CreateRouteEntries', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'vpc:CreateRouteEntries', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'RouteEntry', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:routetable/{#RouteTableId}'], + ], ], ], - 'operationType' => 'read', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'get', - 'riskType' => 'none', - 'chargeType' => 'free', + [ + 'apiName' => 'CreateIpv6Gateway', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'vpc:CreateIpv6Gateway', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'Ipv6Gateway', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:ipv6gateway/*'], + ], + ], ], - 'parameters' => [ - [ - 'name' => 'EndpointId', - 'in' => 'query', - 'schema' => [ - 'title' => 'VPC网关实例ID', - 'description' => 'The ID of the gateway endpoint.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'vpce-bp1w1dmdqjpwul0v3****', + [ + 'apiName' => 'DeleteVpcPrefixList', + 'description' => '', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'vpc:DeleteVpcPrefixList', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'PrefixList', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:prefixlist/{#PrefixListId}'], ], ], - [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'title' => '地域', - 'description' => 'The region ID of the gateway endpoint.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cn-hangzhou', + ], + [ + 'apiName' => 'UnassociateGlobalAccelerationInstance', + 'description' => '', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'vpc:UnassociateGlobalAccelerationInstance', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'All Resource', 'arn' => '*'], ], ], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'The request ID.'."\n", - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => 'A1122D0F-7B3B-5445-BB19-17F27F97FE1C', - ], - 'EndpointId' => [ - 'description' => 'The ID of the gateway endpoint.'."\n", - 'type' => 'string', - 'example' => 'vpce-bp1w1dmdqjpwul0v3****', - ], - 'EndpointName' => [ - 'description' => 'The name of the gateway endpoint.'."\n", - 'type' => 'string', - 'example' => 'test', - ], - 'EndpointDescription' => [ - 'description' => 'The description of the gateway endpoint.'."\n", - 'type' => 'string', - 'example' => 'test', - ], - 'ServiceName' => [ - 'description' => 'The name of the endpoint service.'."\n", - 'type' => 'string', - 'example' => 'com.aliyun.cn-hangzhou.oss', - ], - 'VpcId' => [ - 'description' => 'The ID of the virtual private cloud (VPC) to which the gateway endpoint belongs.'."\n", - 'type' => 'string', - 'example' => 'vpc-bp1nh86rugg01zol0****', - ], - 'PolicyDocument' => [ - 'description' => 'The access policy for the cloud service.'."\n", - 'type' => 'string', - 'example' => '{"Version" : "1", "Statement" : [ { "Effect" : "Allow", "Resource" : [ "*" ], "Action" : [ "*" ], "Principal" : [ "*" ] } ] }', - ], - 'CreationTime' => [ - 'description' => 'The time when the endpoint was created. The time follows the ISO 8601 standard in the YYYY-MM-DDThh:mm:ssZ format. The time is displayed in UTC.'."\n", - 'type' => 'string', - 'example' => '2021-08-27T01:58:37Z', - ], - 'EndpointStatus' => [ - 'description' => 'The status of the gateway endpoint. Valid values:'."\n" - ."\n" - .'* **Creating**'."\n" - .'* **Created**'."\n" - .'* **Modifying**'."\n" - .'* **Associating**'."\n" - .'* **Dissociating**'."\n" - .'* **Deleting**'."\n", - 'type' => 'string', - 'example' => 'Created', - ], - 'RouteTables' => [ - 'description' => 'The ID of the route table associated with the gateway endpoint.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The ID of the route table associated with the gateway endpoint.'."\n", - 'type' => 'string', - 'example' => '["vtb-bp1s6g17997knk6a3****", "vtb-bp12qsdjwm37kv679****"]', - ], - ], - 'ResourceGroupId' => [ - 'description' => 'The ID of the resource group to which the gateway endpoint belongs.'."\n", - 'type' => 'string', - 'example' => 'rg-acfmxvfvazb4p****', - ], - 'Tags' => [ - 'description' => 'The tag list.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => 'The key of tag N added to the resource.'."\n", - 'type' => 'string', - 'example' => 'FinanceDept', - ], - 'Value' => [ - 'description' => 'The value of tag N added to the resource.'."\n", - 'type' => 'string', - 'example' => 'FinanceJoshua', - ], - ], - ], - ], - ], + [ + 'apiName' => 'ReleaseEipSegmentAddress', + 'description' => '', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'vpc:ReleaseEipSegmentAddress', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'SegmentAddress', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:eip/{#AllocationId}'], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'ResourceNotFound.GatewayEndpoint', - 'errorMessage' => 'The specified resource gateway endpoint is not found.', + [ + 'apiName' => 'DeleteVirtualBorderRouter', + 'description' => '', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'vpc:DeleteVirtualBorderRouter', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VirtualBorderRouter', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:virtualborderrouter/{#VirtualBorderRouterId}'], ], - [ - 'errorCode' => 'InvalidVpcId.NotFound', - 'errorMessage' => 'Specified value of VpcId is not found in our record.', + ], + ], + [ + 'apiName' => 'ModifyHaVipAttribute', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:ModifyHaVipAttribute', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'HaVip', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:havip/{#HaVipId}'], ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + [ + 'apiName' => 'DescribeForwardTableEntries', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'vpc:DescribeForwardTableEntries', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'ForwardTable', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:forwardtable/{#ForwardTableId}'], + ], + ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"A1122D0F-7B3B-5445-BB19-17F27F97FE1C\\",\\n \\"EndpointId\\": \\"vpce-bp1w1dmdqjpwul0v3****\\",\\n \\"EndpointName\\": \\"test\\",\\n \\"EndpointDescription\\": \\"test\\",\\n \\"ServiceName\\": \\"com.aliyun.cn-hangzhou.oss\\",\\n \\"VpcId\\": \\"vpc-bp1nh86rugg01zol0****\\",\\n \\"PolicyDocument\\": \\"{\\\\\\"Version\\\\\\" : \\\\\\"1\\\\\\", \\\\\\"Statement\\\\\\" : [ { \\\\\\"Effect\\\\\\" : \\\\\\"Allow\\\\\\", \\\\\\"Resource\\\\\\" : [ \\\\\\"*\\\\\\" ], \\\\\\"Action\\\\\\" : [ \\\\\\"*\\\\\\" ], \\\\\\"Principal\\\\\\" : [ \\\\\\"*\\\\\\" ] } ] }\\",\\n \\"CreationTime\\": \\"2021-08-27T01:58:37Z\\",\\n \\"EndpointStatus\\": \\"Created\\",\\n \\"RouteTables\\": [\\n \\"[\\\\\\"vtb-bp1s6g17997knk6a3****\\\\\\", \\\\\\"vtb-bp12qsdjwm37kv679****\\\\\\"]\\"\\n ],\\n \\"ResourceGroupId\\": \\"rg-acfmxvfvazb4p****\\",\\n \\"Tags\\": [\\n {\\n \\"Key\\": \\"FinanceDept\\",\\n \\"Value\\": \\"FinanceJoshua\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\n A1122D0F-7B3B-5445-BB19-17F27F97FE1C\\n vpce-bp1w1dmdqjpwul0v3****\\n test\\n test\\n com.aliyun.cn-hangzhou.oss\\n vpc-bp1nh86rugg01zol0****\\n {\\"Version\\" : \\"1\\", \\"Statement\\" : [ { \\"Effect\\" : \\"Allow\\", \\"Resource\\" : [ \\"*\\" ], \\"Action\\" : [ \\"*\\" ], \\"Principal\\" : [ \\"*\\" ] } ] }\\n 2021-08-27T01:58:37Z\\n Created\\n [\\"vtb-bp1s6g17997knk6a3****\\", \\"vtb-bp12qsdjwm37kv679****\\"]\\n rg-acfmxvfvazb4p****\\n \\n FinanceDept\\n FinanceJoshua\\n \\n","errorExample":""}]', - 'title' => 'GetVpcGatewayEndpointAttribute', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'ListVpcGatewayEndpoints' => [ - 'summary' => 'Queries gateway endpoints.', - 'methods' => [ - 'get', - 'post', + [ + 'apiName' => 'CreateIpv6EgressOnlyRule', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'vpc:CreateIpv6EgressOnlyRule', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'Ipv6EgressRule', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:ipv6gateway/{#Ipv6GatewayId}'], + ], + ], ], - 'schemes' => [ - 'http', - 'https', + [ + 'apiName' => 'ModifyIPv6TranslatorAclAttribute', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:ModifyIPv6TranslatorAclAttribute', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'Ipv6Translator', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:ipv6trans/{#Ipv6TranslatorId}'], + ], + ], ], - 'security' => [ - [ - 'AK' => [], + [ + 'apiName' => 'DescribeEipMonitorData', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'vpc:DescribeEipMonitorData', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'Address', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:eip/{#AllocationId}'], + ], ], ], - 'operationType' => 'read', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'list', - 'riskType' => 'none', - 'chargeType' => 'free', + [ + 'apiName' => 'AddCommonBandwidthPackageIp', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'vpc:AddCommonBandwidthPackageIp', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'BandwidthPackage', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:combandwidthpackage/{#BandwidthPackageId}'], + ], + ], ], - 'parameters' => [ - [ - 'name' => 'EndpointId', - 'in' => 'query', - 'schema' => [ - 'title' => 'VPC网关实例ID', - 'description' => 'The ID of the gateway endpoint.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'vpce-bp1i1212ss2whuwyw****', + [ + 'apiName' => 'DeleteVSwitch', + 'description' => '', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'vpc:DeleteVSwitch', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VSwitch', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vswitch/{#VSwitchId}'], ], ], - [ - 'name' => 'EndpointName', - 'in' => 'query', - 'schema' => [ - 'title' => 'VPC网关实例名称', - 'description' => 'The name of the gateway endpoint.'."\n" - ."\n" - .'The name must be 1 to 128 characters in length.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'test', + ], + [ + 'apiName' => 'DissociateRouteTableFromGateway', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'vpc:DissociateRouteTableFromGateway', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'Ipv4Gateway', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:ipv4gateway/{#ipv4gatewayId}'], + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'RouteTable', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:routetable/{#routetableId}'], ], ], - [ - 'name' => 'ServiceName', - 'in' => 'query', - 'schema' => [ - 'title' => '后端的服务名称', - 'description' => 'The name of the endpoint service.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'com.aliyun.cn-hangzhou.oss', + ], + [ + 'apiName' => 'DiagnoseVpnConnections', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'vpc:DiagnoseVpnConnections', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'All Resource', 'arn' => '*'], ], ], - [ - 'name' => 'NextToken', - 'in' => 'query', - 'schema' => [ - 'description' => 'The pagination token that is used in the next request to retrieve a new page of results. Valid values:'."\n" - ."\n" - .'* You do not need to specify this parameter for the first request.'."\n" - .'* If a value is returned for NextToken, specify the value in the next request to retrieve a new page of results.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', + ], + [ + 'apiName' => 'DeleteIPv6Translator', + 'description' => '', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'vpc:DeleteIPv6Translator', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'Ipv6Translator', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:ipv6trans/{#Ipv6TranslatorId}'], ], ], - [ - 'name' => 'MaxResults', - 'in' => 'query', - 'schema' => [ - 'description' => 'The number of entries to return per page. Valid values: **1** to **100**. Default value: **20**.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'maximum' => '100', - 'minimum' => '1', - 'example' => '20', - 'default' => '10', + ], + [ + 'apiName' => 'DescribeRouteEntryList', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'vpc:DescribeRouteEntryList', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'RouteTable', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:routetable/{#RouteTableId}'], ], ], - [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'title' => '地域', - 'description' => 'The region ID of the gateway endpoint.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cn-hangzhou', + ], + [ + 'apiName' => 'ModifyVpnGatewayAttribute', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:ModifyVpnGatewayAttribute', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VpnGateway', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vpngateway/{#VpnGatewayId}'], ], ], - [ - 'name' => 'ResourceGroupId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the resource group to which the gateway endpoint belongs.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'rg-acfmxvfvazb4p****', + ], + [ + 'apiName' => 'DescribeTags', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'vpc:DescribeTags', + 'authLevel' => 'resource', + 'actionConditions' => [ + ['conditionKey' => 'vpc:tag', 'validationType' => 'always'], + ], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'All Resource', 'arn' => '*'], ], ], - [ - 'name' => 'Tags', - 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => 'The tag list.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The tag list', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => 'The key of tag N added to the resource. You can specify at most 20 tag keys. It cannot be an empty string.'."\n" - ."\n" - .'The key cannot exceed 64 characters in length, and can contain digits, periods (.), underscores (\\_), and hyphens (-). The key must start with a letter but cannot start with `aliyun` or `acs:`. The key cannot contain `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'FinanceDept', - ], - 'Value' => [ - 'description' => 'The value of tag N added to the resource. You can specify at most 20 tag values. The tag value can be an empty string.'."\n" - ."\n" - .'The tag value cannot exceed 128 characters in length, and can contain digits, periods (.), underscores (\\_), and hyphens (-). The key must start with a letter but cannot start with `aliyun` or `acs:`. The key cannot contain `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'FinanceJoshua', - ], - ], - 'required' => false, - ], - 'required' => false, - 'maxItems' => 10, + ], + [ + 'apiName' => 'DescribeCustomerGateway', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'vpc:DescribeCustomerGateway', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'CustomerGateway', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:customergateway/{#CustomerGatewayId}'], ], ], - [ - 'name' => 'VpcId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the virtual private cloud (VPC) to which the gateway endpoint belongs.', - 'type' => 'string', - 'required' => false, - 'example' => 'vpc-bp1gsk7h12ew7oegk****', + ], + [ + 'apiName' => 'DescribeIPv6TranslatorAclLists', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'vpc:DescribeIPv6TranslatorAclLists', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'All Resource', 'arn' => '*'], ], ], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'The request ID.'."\n", - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '0AB1129F-32C1-5E4D-9E22-E4A859CA46EB', - ], - 'NextToken' => [ - 'description' => 'A pagination token. It can be used in the next request to retrieve a new page of results. Valid values:'."\n" - ."\n" - .'* If no value is returned for **NextToken**, no next queries are sent.'."\n" - .'* If a value is returned for **NextToken**, the value can be used in the next request to retrieve a new page of results.'."\n", - 'type' => 'string', - 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', - ], - 'TotalCount' => [ - 'description' => 'The number of entries returned.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '10', - ], - 'Endpoints' => [ - 'description' => 'The list of gateway endpoints.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'EndpointId' => [ - 'description' => 'The ID of the gateway endpoint.'."\n", - 'type' => 'string', - 'example' => 'vpce-bp1i1212ss2whuwyw****', - ], - 'EndpointName' => [ - 'description' => 'The name of the gateway endpoint.'."\n", - 'type' => 'string', - 'example' => 'test', - ], - 'EndpointDescription' => [ - 'description' => 'The description of the gateway endpoint.'."\n", - 'type' => 'string', - 'example' => 'test_description', - ], - 'ServiceName' => [ - 'description' => 'The name of the endpoint service.'."\n", - 'type' => 'string', - 'example' => 'com.aliyun.cn-hangzhou.oss', - ], - 'VpcId' => [ - 'description' => 'The ID of the virtual private cloud (VPC) to which the gateway endpoint belongs.'."\n", - 'type' => 'string', - 'example' => 'vpc-bp1gsk7h12ew7oegk****', - ], - 'PolicyDocument' => [ - 'description' => 'The access policy for the cloud service.'."\n" - ."\n" - .'For more information about the syntax and structure of the access policy, see [Policy syntax and structure](~~93739~~).'."\n", - 'type' => 'string', - 'example' => '{\\n \\"Version\\": \\"1\\",\\n \\"Statement\\": [\\n {\\n \\"Effect\\": \\"Allow\\",\\n \\"Action\\": \\"*\\",\\n \\"Principal\\": \\"*\\",\\n \\"Resource\\": \\"*\\"\\n }\\n ]\\n}', - ], - 'CreationTime' => [ - 'description' => 'The time when the endpoint was created. The time follows the ISO 8601 standard in the YYYY-MM-DDThh:mm:ssZ format. The time is displayed in UTC.'."\n", - 'type' => 'string', - 'example' => '2021-09-08T08:43:04Z', - ], - 'EndpointStatus' => [ - 'description' => 'The status of the gateway endpoint. Valid values:'."\n" - ."\n" - .'* **Creating**'."\n" - .'* **Created**'."\n" - .'* **Modifying**'."\n" - .'* **Associating**'."\n" - .'* **Dissociating**'."\n" - .'* **Deleting**'."\n", - 'type' => 'string', - 'example' => 'Created', - ], - 'AssociatedRouteTables' => [ - 'description' => 'The ID of the route table associated with the gateway endpoint.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The ID of the route table associated with the gateway endpoint.'."\n", - 'type' => 'string', - 'example' => 'vtb-bp1sme72jnuodvyx7****', - ], - ], - 'ResourceGroupId' => [ - 'description' => 'The ID of the resource group to which the gateway endpoint belongs.'."\n", - 'type' => 'string', - 'example' => 'rg-acfmxvfvazb4p****', - ], - 'Tags' => [ - 'description' => 'The tag list.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => 'The key of tag N added to the resource.'."\n", - 'type' => 'string', - 'example' => 'FinanceDept', - ], - 'Value' => [ - 'description' => 'The value of tag N added to the resource.'."\n", - 'type' => 'string', - 'example' => 'FinanceJoshua', - ], - ], - ], - ], - ], - ], - ], - 'MaxResults' => [ - 'title' => '本次请求最大数量', - 'description' => 'The number of entries per page.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '20', - ], - ], + [ + 'apiName' => 'DescribeExpressConnectTrafficQosRule', + 'description' => '', + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'vpc:DescribeExpressConnectTrafficQosRule', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'All Resource', 'arn' => '*'], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'IllegalParam.NextToken', - 'errorMessage' => 'The specified NextToken is invalid.', + [ + 'apiName' => 'DescribeIPv6TranslatorAclListAttributes', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'vpc:DescribeIPv6TranslatorAclListAttributes', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'IPv6Translator', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:ipv6trans/{#IPv6TranslatorId}'], ], - [ - 'errorCode' => 'IllegalParam.MaxResults', - 'errorMessage' => 'The param of MaxResults is illegal.', + ], + ], + [ + 'apiName' => 'DeleteVpc', + 'description' => '', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'vpc:DeleteVpc', + 'authLevel' => 'resource', + 'actionConditions' => [ + ['conditionKey' => 'vpc:tag', 'validationType' => 'always'], ], - [ - 'errorCode' => 'InvalidVpcId.NotFound', - 'errorMessage' => 'Specified value of VpcId is not found in our record.', + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VPC', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vpc/{#VpcId}'], ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + [ + 'apiName' => 'DescribeVirtualBorderRouters', + 'description' => '', + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'vpc:DescribeVirtualBorderRouters', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VirtualBorderRouter', 'arn' => 'acs:vpc:{#regionId}:{#AccountId}:virtualborderrouter/{#VbrId}'], + ], + ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"0AB1129F-32C1-5E4D-9E22-E4A859CA46EB\\",\\n \\"NextToken\\": \\"FFmyTO70tTpLG6I3FmYAXGKPd****\\",\\n \\"TotalCount\\": 10,\\n \\"Endpoints\\": [\\n {\\n \\"EndpointId\\": \\"vpce-bp1i1212ss2whuwyw****\\",\\n \\"EndpointName\\": \\"test\\",\\n \\"EndpointDescription\\": \\"test_description\\",\\n \\"ServiceName\\": \\"com.aliyun.cn-hangzhou.oss\\",\\n \\"VpcId\\": \\"vpc-bp1gsk7h12ew7oegk****\\",\\n \\"PolicyDocument\\": \\"{\\\\\\\\n \\\\\\\\\\\\\\"Version\\\\\\\\\\\\\\": \\\\\\\\\\\\\\"1\\\\\\\\\\\\\\",\\\\\\\\n \\\\\\\\\\\\\\"Statement\\\\\\\\\\\\\\": [\\\\\\\\n {\\\\\\\\n \\\\\\\\\\\\\\"Effect\\\\\\\\\\\\\\": \\\\\\\\\\\\\\"Allow\\\\\\\\\\\\\\",\\\\\\\\n \\\\\\\\\\\\\\"Action\\\\\\\\\\\\\\": \\\\\\\\\\\\\\"*\\\\\\\\\\\\\\",\\\\\\\\n \\\\\\\\\\\\\\"Principal\\\\\\\\\\\\\\": \\\\\\\\\\\\\\"*\\\\\\\\\\\\\\",\\\\\\\\n \\\\\\\\\\\\\\"Resource\\\\\\\\\\\\\\": \\\\\\\\\\\\\\"*\\\\\\\\\\\\\\"\\\\\\\\n }\\\\\\\\n ]\\\\\\\\n}\\",\\n \\"CreationTime\\": \\"2021-09-08T08:43:04Z\\",\\n \\"EndpointStatus\\": \\"Created\\",\\n \\"AssociatedRouteTables\\": [\\n \\"vtb-bp1sme72jnuodvyx7****\\"\\n ],\\n \\"ResourceGroupId\\": \\"rg-acfmxvfvazb4p****\\",\\n \\"Tags\\": [\\n {\\n \\"Key\\": \\"FinanceDept\\",\\n \\"Value\\": \\"FinanceJoshua\\"\\n }\\n ]\\n }\\n ],\\n \\"MaxResults\\": 20\\n}","errorExample":""},{"type":"xml","example":"\\n 0AB1129F-32C1-5E4D-9E22-E4A859CA46EB\\n FFmyTO70tTpLG6I3FmYAXGKPd****\\n 10\\n \\n vpce-bp1i1212ss2whuwyw****\\n test\\n test_description\\n com.aliyun.cn-hangzhou.oss\\n vpc-bp1gsk7h12ew7oegk****\\n {\\\\n \\\\\\"Version\\\\\\": \\\\\\"1\\\\\\",\\\\n \\\\\\"Statement\\\\\\": [\\\\n {\\\\n \\\\\\"Effect\\\\\\": \\\\\\"Allow\\\\\\",\\\\n \\\\\\"Action\\\\\\": \\\\\\"*\\\\\\",\\\\n \\\\\\"Principal\\\\\\": \\\\\\"*\\\\\\",\\\\n \\\\\\"Resource\\\\\\": \\\\\\"*\\\\\\"\\\\n }\\\\n ]\\\\n}\\n 2021-09-08T08:43:04Z\\n Created\\n vtb-bp1sme72jnuodvyx7****\\n rg-acfmxvfvazb4p****\\n \\n FinanceDept\\n FinanceJoshua\\n \\n \\n 20\\n","errorExample":""}]', - 'title' => 'ListVpcGatewayEndpoints', - 'translator' => 'machine', - ], - 'AssociateRouteTablesWithVpcGatewayEndpoint' => [ - 'summary' => 'Associates a route table with a gateway endpoint.', - 'methods' => [ - 'get', - 'post', + [ + 'apiName' => 'CreateIPv6TranslatorAclList', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'vpc:CreateIPv6TranslatorAclList', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], ], - 'schemes' => [ - 'http', - 'https', + [ + 'apiName' => 'AddBgpNetwork', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'vpc:AddBgpNetwork', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VirtualBorderRouter', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:virtualborderrouter/{#VirtualBorderRouterId}'], + ], + ], ], - 'security' => [ - [ - 'AK' => [], + [ + 'apiName' => 'UpdateTrafficMirrorFilterRuleAttribute', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:UpdateTrafficMirrorFilterRuleAttribute', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'TrafficMirrorFilter', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:trafficmirrorfilter/{#TrafficMirrorFilterId}'], + ], ], ], - 'operationType' => 'readAndWrite', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'create', - 'riskType' => 'none', - 'chargeType' => 'free', + [ + 'apiName' => 'PublishVpcRouteEntries', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:PublishVpcRouteEntries', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'RouteTable', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:routetable/{#RouteTableId}'], + ], + ], ], - 'parameters' => [ - [ - 'name' => 'EndpointId', - 'in' => 'query', - 'schema' => [ - 'title' => 'VPC网关实例ID', - 'description' => 'The ID of the gateway endpoint to be associated with the route table.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'vpce-m5e371h5clm3uadih****', + [ + 'apiName' => 'DescribeVpnSslServerLogs', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'vpc:DescribeVpnSslServerLogs', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'SslVpnServer', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:sslvpnserver/{#SslVpnServerId}'], ], ], - [ - 'name' => 'RouteTableIds', - 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'title' => '路由表列表', - 'description' => 'The ID of the route table. Valid values of **N** are **1** to **20**, which specifies that you can associate a gateway endpoint with at most 20 route tables at a time.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The ID of the route table. Valid values of **N** are **1** to **20**, which specifies that you can associate a gateway endpoint with at most 20 route tables at a time.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'vtb-m5elgtm3aj586iitr****', - ], - 'required' => true, - 'example' => 'vtb-m5elgtm3aj586iitr****', - 'maxItems' => 20, + ], + [ + 'apiName' => 'ModifyVpcAttribute', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:ModifyVpcAttribute', + 'authLevel' => 'resource', + 'actionConditions' => [ + ['conditionKey' => 'vpc:tag', 'validationType' => 'always'], + ], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VPC', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vpc/{#VpcId}'], ], ], - [ - 'name' => 'ClientToken', - 'in' => 'query', - 'schema' => [ - 'title' => '幂等参数', - 'description' => 'The client token that is used to ensure the idempotence of the request. You can use the client to generate a client token. Make sure that a unique client token is used for each request. The **token** can contain only ASCII characters and cannot exceed 64 characters in length.'."\n" - ."\n" - .'> 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.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3FF3898', + ], + [ + 'apiName' => 'CreateRouterInterface', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'vpc:CreateRouterInterface', + 'authLevel' => 'resource', + 'actionConditions' => [ + ['conditionKey' => 'vpc:TargetAccountRDId', 'validationType' => 'always'], + ], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VirtualBorderRouter', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:virtualborderrouter/{#VbrId}'], + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'RouterInterface', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:routerinterface/*'], ], ], - [ - 'name' => 'DryRun', - 'in' => 'query', - 'schema' => [ - 'title' => '是否只预检此次请求', - 'description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values:'."\n" - ."\n" - .'* **true**: performs only a dry run. The system checks your AccessKey pair, the RAM user permissions, and the required parameters. If the request fails the dry run, the DryRunOperation error code is returned. If the request passes the dry run, the `DryRunOperation` error code is returned.'."\n" - .'* **false** (default): performs a dry run and sends the request. If the request passes the dry run, a 2xx HTTP status code is returned and the operation is performed.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', + ], + [ + 'apiName' => 'UpdateTrafficMirrorFilterAttribute', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:UpdateTrafficMirrorFilterAttribute', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'TrafficMirrorFilter', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:trafficmirrorfilter/{#TrafficMirrorFilterId}'], ], ], - [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'title' => '地域', - 'description' => 'The region ID of the gateway endpoint.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cn-hangzhou', + ], + [ + 'apiName' => 'ModifyRouterInterfaceSpec', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:ModifyRouterInterfaceSpec', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'RouterInterface', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:routerinterface/{#RouterInterfaceId}'], ], ], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'Schema of Response'."\n", - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '59BDDA2D-FB52-59F9-9DC5-5EA7D6808B8E', - ], - ], + [ + 'apiName' => 'ModifyNatIpCidrAttribute', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:ModifyNatIpCidrAttribute', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'NatGateway', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:natgateway/{#NatGatewayId}'], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'OperationFailed.ConcurrentOperation', - 'errorMessage' => 'The operation is failed because of concurrent operation.', + [ + 'apiName' => 'DescribePhysicalConnections', + 'description' => '', + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'vpc:DescribePhysicalConnections', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'PhysicalConnection', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:physicalconnection/*'], ], - [ - 'errorCode' => 'IdempotentParameterMismatch', - 'errorMessage' => 'The request uses the same client token as a previous, but non-identical request. Do not reuse a client token with different requests, unless the requests are identical.', + ], + ], + [ + 'apiName' => 'DeleteIpv6EgressOnlyRule', + 'description' => '', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'vpc:DeleteIpv6EgressOnlyRule', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'Ipv6Gateway', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:ipv6gateway/{#Ipv6GatewayId}'], ], - [ - 'errorCode' => 'ResourceNotFound.GatewayEndpoint', - 'errorMessage' => 'The specified resource gateway endpoint is not found.', + ], + ], + [ + 'apiName' => 'CheckVpnBgpEnabled', + 'description' => '', + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'vpc:CheckVpnBgpEnabled', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'All Resource', 'arn' => '*'], ], - [ - 'errorCode' => 'IncorrectStatus.GatewayEndpoint', - 'errorMessage' => 'The status of GatewayEndpoint [%s] is incorrect.', + ], + ], + [ + 'apiName' => 'EnablePhysicalConnection', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:EnablePhysicalConnection', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'PhysicalConnection', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:physicalconnection/{#PhysicalConnectionId}'], ], - [ - 'errorCode' => 'ResourceNotFound.ServiceName', - 'errorMessage' => 'The specified resource service name is not found.', + ], + ], + [ + 'apiName' => 'CreateVSwitchCidrReservation', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'vpc:CreateVSwitchCidrReservation', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VSwitchCidrReservation', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vswitchcidrreservation/*'], ], - [ - 'errorCode' => 'ResourceNotFound.PrefixList', - 'errorMessage' => 'The specified resource prefixList is not found.', + ], + ], + [ + 'apiName' => 'GetPublicIpAddressPoolServiceStatus', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'vpc:GetPublicIpAddressPoolServiceStatus', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'All Resource', 'arn' => '*'], ], - [ - 'errorCode' => 'ResourceNotFound.RouteTable', - 'errorMessage' => 'The specified resource routetable is not found.', + ], + ], + [ + 'apiName' => 'MoveVpnResourceGroup', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:MoveVpnResourceGroup', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'All Resource', 'arn' => '*'], ], - [ - 'errorCode' => 'Mismatch.VpcAndRouteTable', - 'errorMessage' => 'The vpc and routetable are mismatched.', + ], + ], + [ + 'apiName' => 'DescribeRouteTables', + 'description' => '', + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'vpc:DescribeRouteTables', + 'authLevel' => 'resource', + 'actionConditions' => [ + ['conditionKey' => 'vpc:VBR'], + ['conditionKey' => 'vpc:VRouter'], ], - [ - 'errorCode' => 'IncorrectStatus.RouteTable', - 'errorMessage' => 'The status of route table [%s] is incorrect.', + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'RouteTable', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:routetable/{#RouteTableId}'], ], - [ - 'errorCode' => 'ResourceAlreadyExist.Association', - 'errorMessage' => 'The specified resource of [%s] is already exist.', + ], + ], + [ + 'apiName' => 'CreateHighReliablePhysicalConnection', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'vpc:CreateHighReliablePhysicalConnection', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'All Resource', 'arn' => '*'], ], - [ - 'errorCode' => 'VPC_ROUTE_ENTRY_CIDR_BLOCK_DUPLICATE', - 'errorMessage' => 'Specified CIDR block is already exists.', + ], + ], + [ + 'apiName' => 'UnassociatePhysicalConnectionFromVirtualBorderRouter', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:UnassociatePhysicalConnectionFromVirtualBorderRouter', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'PhysicalConnection', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:physicalconnection/{#PhysicalConnectionId}'], + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VirtualBorderRouter', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:virtualborderrouter/{#VirtualBorderRouterId}'], ], - [ - 'errorCode' => 'VPC_SWITCH_STATUS_ERROR', - 'errorMessage' => 'vSwitch status error, %s', + ], + ], + [ + 'apiName' => 'DeleteVSwitchCidrReservation', + 'description' => '', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'vpc:DeleteVSwitchCidrReservation', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VSwitchCidrReservation', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vswitchcidrreservation/{#VSwitchCidrReservationId}'], ], - [ - 'errorCode' => 'QuotaExceeded.VpcRouteEntryNum', - 'errorMessage' => 'The quota of vpc route entry num is exceeded, usage %s/%s.', + ], + ], + [ + 'apiName' => 'SwitchActiveRouteTarget', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:SwitchActiveRouteTarget', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'RouteTargetGroup', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:routetargetgroup/{#RouteTargetGroupId}'], ], - [ - 'errorCode' => 'OperationUnsupported.DestinationCidrBlockOverlapWithVSwitch', - 'errorMessage' => 'The operation is failed because of destination CIDR block is in the CIDR of the VSwitch.', + ], + ], + [ + 'apiName' => 'ListIpv4Gateways', + 'description' => '', + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'vpc:ListIpv4Gateways', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'conditional', 'product' => 'VPC', 'resourceType' => 'Ipv4Gateway', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:ipv4gateway/*'], ], - [ - 'errorCode' => 'SystemBusy', - 'errorMessage' => 'System is busy, please try again later.', + ], + ], + [ + 'apiName' => 'DescribeNetworkAclAttributes', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'vpc:DescribeNetworkAclAttributes', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'NetworkAcl', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:networkacl/{#NetworkAclId}'], ], - [ - 'errorCode' => 'Forbbiden', - 'errorMessage' => 'User not authorized to operate on the specified resource.', + ], + ], + [ + 'apiName' => 'DescribeVpcs', + 'description' => '', + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'vpc:DescribeVpcs', + 'authLevel' => 'resource', + 'actionConditions' => [ + ['conditionKey' => 'vpc:tag', 'validationType' => 'always'], ], - [ - 'errorCode' => 'InvalidRegionId.NotFound', - 'errorMessage' => 'The regionId provided does not exist in our records.', + 'resources' => [ + ['validationType' => 'conditional', 'product' => 'VPC', 'resourceType' => 'VPC', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vpc/*'], + ['validationType' => 'conditional', 'product' => 'VPC', 'resourceType' => 'VPC', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vpc/{#VPCId}'], ], - [ - 'errorCode' => 'IncorrectStatus.Vpc', - 'errorMessage' => 'The status of vpc [%s] is incorrect.', + ], + ], + [ + 'apiName' => 'AttachDhcpOptionsSetToVpc', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:AttachDhcpOptionsSetToVpc', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'DhcpOptionsSet', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:dhcpoptionsset/{#DhcpOptionsSetId}'], + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VPC', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vpc/{#VpcId}'], ], - [ - 'errorCode' => 'IncorrectStatus.CenStatus', - 'errorMessage' => 'The status of vpc cenStatus [%s] is incorrect.', + ], + ], + [ + 'apiName' => 'GetVpnGatewayDiagnoseResult', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'vpc:GetVpnGatewayDiagnoseResult', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VpnGateway', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vpngateway/{#VpnInstanceId}'], ], - [ - 'errorCode' => 'UnsupportedFeature.RouterTableType', - 'errorMessage' => 'The type of router table is not supported.', + ], + ], + [ + 'apiName' => 'ActivateRouterInterface', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:ActivateRouterInterface', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'RouterInterface', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:routerinterface/{#RouterInterfaceId}'], ], ], ], - 'staticInfo' => [ - 'returnType' => 'asynchronous', - 'callback' => 'Vpc::2016-04-28::ListVpcGatewayEndpoints', - 'callbackInterval' => 3000, - 'maxCallbackTimes' => 10, + [ + 'apiName' => 'DescribeSslVpnClients', + 'description' => '', + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'vpc:DescribeSslVpnClients', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VpnGateway', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vpngateway/{#VpnGatewayId}'], + ], + ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"59BDDA2D-FB52-59F9-9DC5-5EA7D6808B8E\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 59BDDA2D-FB52-59F9-9DC5-5EA7D6808B8E\\n","errorExample":""}]', - 'title' => 'AssociateRouteTablesWithVpcGatewayEndpoint', - 'description' => 'When you call this operation, take note of the following limits:'."\n" - ."\n" - .'* The gateway endpoint to be associated with the route table cannot be in one of the following states: **Creating**, **Modifying**, **Associating**, **Dissociating**, or **Deleting**.'."\n" - ."\n" - .'* The route table cannot be in one of the following states: **Creating**, **Modifying**, **Associating**, **Dissociating**, or **Deleting**.'."\n" - ."\n" - .'* The gateway endpoint and route table must belong to the same virtual private cloud (VPC).'."\n" - ."\n" - .'* The route table cannot be shared.'."\n" - ."\n" - .'* You cannot associate a gateway endpoint with a virtual border router (VBR) route table.'."\n" - ."\n" - .'* You can associate a gateway endpoint with at most 20 route tables at a time.'."\n" - ."\n" - .'* **AssociateRouteTablesWithVpcGatewayEndpoint** is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call the [GetVpcGatewayEndpointAttribute](~~311017~~) operation to query whether a route table is associated with a gateway endpoint.'."\n" - ."\n" - .' * If the **Associating** status is returned, the route table is being associated with the gateway endpoint.'."\n" - .' * If the **Created** status is returned, the route table is associated with the gateway endpoint.'."\n" - ."\n" - .'* You cannot repeatedly call the **AssociateRouteTablesWithVpcGatewayEndpoint** operation within a specific period of time.', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'DissociateRouteTablesFromVpcGatewayEndpoint' => [ - 'summary' => 'Disassociates a gateway endpoint from a route table.', - 'methods' => [ - 'get', - 'post', + [ + 'apiName' => 'DescribeVpnPbrRouteEntries', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'vpc:DescribeVpnPbrRouteEntries', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VpnGateway', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vpngateway/{#VpnGatewayId}'], + ], + ], ], - 'schemes' => [ - 'http', - 'https', + [ + 'apiName' => 'DescribeVcoRouteEntries', + 'description' => '', + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'vpc:DescribeVcoRouteEntries', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VpnConnections', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vpnconnection/{#VpnConnectionId}'], + ], + ], ], - 'security' => [ - [ - 'AK' => [], + [ + 'apiName' => 'DeletePhysicalConnection', + 'description' => '', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'vpc:DeletePhysicalConnection', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'PhysicalConnection', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:physicalconnection/{#PhysicalConnectionId}'], + ], ], ], - 'operationType' => 'readAndWrite', - 'deprecated' => false, - 'systemTags' => [ + [ + 'apiName' => 'DeleteIPv6TranslatorAclList', + 'description' => '', 'operationType' => 'delete', - 'riskType' => 'none', - 'chargeType' => 'free', + 'ramAction' => [ + 'action' => 'vpc:DeleteIPv6TranslatorAclList', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'Ipv6Translator', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:ipv6trans/{#Ipv6TranslatorId}'], + ], + ], ], - 'parameters' => [ - [ - 'name' => 'EndpointId', - 'in' => 'query', - 'schema' => [ - 'title' => 'VPC网关实例ID', - 'description' => 'The ID of the gateway endpoint to be disassociated from the route table.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'vpce-m5e371h5clm3uadih****', + [ + 'apiName' => 'CreateGlobalAccelerationInstance', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'vpc:CreateGlobalAccelerationInstance', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'GlobalAccelerationInstance', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:GlobalAccelerationInstance/*'], ], ], - [ - 'name' => 'RouteTableIds', - 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'title' => '路由表列表', - 'description' => 'The ID of the route table. Valid values of **N** are **1** to **20**, which specifies that you can disassociate a gateway endpoint from at most 20 route tables at a time.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The ID of the route table.', - 'type' => 'string', - 'required' => false, - 'example' => 'vtb-m5elgtm3aj586iitr****', - ], - 'required' => true, - 'maxItems' => 20, - 'example' => 'vtb-m5elgtm3aj586iitr****', + ], + [ + 'apiName' => 'UnTagResources', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:UnTagResources', + 'authLevel' => 'resource', + 'actionConditions' => [ + ['conditionKey' => 'vpc:tag', 'validationType' => 'always'], ], - ], - [ - 'name' => 'ClientToken', - 'in' => 'query', - 'schema' => [ - 'title' => '幂等参数', - 'description' => 'The client token that is used to ensure the idempotence of the request. 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 and cannot exceed 64 characters in length.'."\n" - ."\n" - .'> 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.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3FF3898', + 'resources' => [ + ['validationType' => 'conditional', 'product' => 'VPC', 'resourceType' => 'Address', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:eip/{#AllocationId}'], + ['validationType' => 'conditional', 'product' => 'VPC', 'resourceType' => 'NatGateway', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:natgateway/{#NatGatewayId}'], + ['validationType' => 'conditional', 'product' => 'VPC', 'resourceType' => 'RouteTable', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:routetable/{#RouteTableId}'], + ['validationType' => 'conditional', 'product' => 'VPC', 'resourceType' => 'VPC', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vpc/{#VpcId}'], + ['validationType' => 'conditional', 'product' => 'VPC', 'resourceType' => 'VSwitch', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vswitch/{#VSwitchId}'], ], ], - [ - 'name' => 'DryRun', - 'in' => 'query', - 'schema' => [ - 'title' => '是否只预检此次请求', - 'description' => 'Specifies whether to perform only a dry run, without performing the actual request. Valid values:'."\n" - ."\n" - .'* **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.'."\n" - .'* **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.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', + ], + [ + 'apiName' => 'DescribeGlobalAccelerationInstances', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'vpc:DescribeGlobalAccelerationInstances', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'GlobalAccelerationInstance', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:globalaccelerationinstance/*'], ], ], - [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'title' => '地域', - 'description' => 'The region ID of the gateway endpoint.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cn-hangzhou', + ], + [ + 'apiName' => 'ModifyBgpGroupAttribute', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:ModifyBgpGroupAttribute', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VirtualBorderRouter', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:virtualborderrouter/{#VirtualBorderRouterId}'], ], ], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'The returned information.', - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '59BDDA2D-FB52-59F9-9DC5-5EA7D6808B8E', - ], - ], + [ + 'apiName' => 'ModifyEipAddressAttribute', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:ModifyEipAddressAttribute', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'Address', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:eip/{#AllocationId}'], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'OperationFailed.ConcurrentOperation', - 'errorMessage' => 'The operation is failed because of concurrent operation.', + [ + 'apiName' => 'DissociateVpnGatewayWithCertificate', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:DissociateVpnGatewayWithCertificate', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'All Resource', 'arn' => '*'], ], - [ - 'errorCode' => 'IdempotentParameterMismatch', - 'errorMessage' => 'The request uses the same client token as a previous, but non-identical request. Do not reuse a client token with different requests, unless the requests are identical.', + ], + ], + [ + 'apiName' => 'DeleteIpv6InternetBandwidth', + 'description' => '', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'vpc:DeleteIpv6InternetBandwidth', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'Ipv6InternetBandwidth', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:ipv6bandwidth/{#Ipv6InternetBandwidthId}'], ], - [ - 'errorCode' => 'ResourceNotFound.GatewayEndpoint', - 'errorMessage' => 'The specified resource gateway endpoint is not found.', + ], + ], + [ + 'apiName' => 'CreateExpressConnectTrafficQosRule', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'vpc:CreateExpressConnectTrafficQosRule', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'All Resource', 'arn' => '*'], ], - [ - 'errorCode' => 'IncorrectStatus.GatewayEndpoint', - 'errorMessage' => 'The status of GatewayEndpoint [%s] is incorrect.', + ], + ], + [ + 'apiName' => 'ModifySslVpnClientCert', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:ModifySslVpnClientCert', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'SslVpnClientCert', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:sslvpnclientcert/{#SslVpnClientCertId}'], ], - [ - 'errorCode' => 'ResourceNotFound.RouteTable', - 'errorMessage' => 'The specified resource routetable is not found.', + ], + ], + [ + 'apiName' => 'ModifyVSwitchAttribute', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:ModifyVSwitchAttribute', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VSwitch', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vswitch/{#VSwitchId}'], ], - [ - 'errorCode' => 'IncorrectStatus.RouteTable', - 'errorMessage' => 'The status of route table [%s] is incorrect.', + ], + ], + [ + 'apiName' => 'DeleteFullNatEntry', + 'description' => '', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'vpc:DeleteFullNatEntry', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'FullNat', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vpcfullnattable/{#FullNatTableId}'], ], - [ - 'errorCode' => 'ResourceNotFound.Association', - 'errorMessage' => 'The specified resource gateway endpoint is not associated.', + ], + ], + [ + 'apiName' => 'DescribeTagKeys', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'vpc:DescribeTagKeys', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'All Resource', 'arn' => '*'], ], - [ - 'errorCode' => 'IncorrectStatus.RouteEntry', - 'errorMessage' => 'Some route entry status blocked this operation.', + ], + ], + [ + 'apiName' => 'RemoveGlobalAccelerationInstanceIp', + 'description' => '', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'vpc:RemoveGlobalAccelerationInstanceIp', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'All Resource', 'arn' => '*'], ], - [ - 'errorCode' => 'Forbbiden', - 'errorMessage' => 'User not authorized to operate on the specified resource.', + ], + ], + [ + 'apiName' => 'AssociateEipAddressBatch', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:AssociateEipAddressBatch', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'Address', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:eip/{#AllocationId}'], + ['validationType' => 'conditional', 'product' => 'VPC', 'resourceType' => 'Instance', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:instance/{#InstanceId}'], + ['validationType' => 'conditional', 'product' => 'VPC', 'resourceType' => 'NatGateway', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:natgateway/{#NatGatewayId}'], ], - [ - 'errorCode' => 'InvalidRegionId.NotFound', - 'errorMessage' => 'The regionId provided does not exist in our records.', + ], + ], + [ + 'apiName' => 'TerminateVirtualBorderRouter', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:TerminateVirtualBorderRouter', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VirtualBorderRouter', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:virtualborderrouter/{#VirtualBorderRouterId}'], ], - [ - 'errorCode' => 'IncorrectStatus.CenStatus', - 'errorMessage' => 'The CenStatus of Vpc is incorrect.', + ], + ], + [ + 'apiName' => 'ModifyVpnConnectionAttribute', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:ModifyVpnConnectionAttribute', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VpnConnection', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vpnconnection/{#VpnConnectionId}'], ], - [ - 'errorCode' => 'ResourceNotFound.RouteEntry', - 'errorMessage' => 'The specified resource is not found.', + ], + ], + [ + 'apiName' => 'DescribeRouterInterfaceAttribute', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'vpc:DescribeRouterInterfaceAttribute', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'RouterInterface', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:routerinterface/{#RouterInterfaceId}'], ], ], ], - 'staticInfo' => [ - 'returnType' => 'asynchronous', - 'callback' => 'Vpc::2016-04-28::ListVpcGatewayEndpoints', - 'callbackInterval' => 3000, - 'maxCallbackTimes' => 10, + [ + 'apiName' => 'ListPublicIpAddressPools', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'vpc:ListPublicIpAddressPools', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'PublicIpAddressPool', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:publicipaddresspool/*'], + ], + ], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"30F711D5-E7E2-5D42-A247-0FA7288BEAAA\\"\\n}","type":"json"}]', - 'title' => 'DissociateRouteTablesFromVpcGatewayEndpoint', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - ], - 'MoveResourceGroup' => [ - 'summary' => 'Moves a resource to another resource group.', - 'methods' => [ - 'post', - 'get', + [ + 'apiName' => 'CreateVirtualBorderRouter', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'vpc:CreateVirtualBorderRouter', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'PhysicalConnection', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:physicalconnection/{#PhysicalConnectionId}'], + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VirtualBorderRouter', 'arn' => 'acs:vpc:{#regionId}:{#AccountId}:virtualborderrouter/*'], + ], + ], ], - 'schemes' => [ - 'http', - 'https', + [ + 'apiName' => 'RecoverPhysicalConnection', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:RecoverPhysicalConnection', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'PhysicalConnection', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:physicalconnection/{#physicalconnectionId}'], + ], + ], ], - 'security' => [ - [ - 'AK' => [], + [ + 'apiName' => 'UnassociateHaVip', + 'description' => '', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'vpc:UnassociateHaVip', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'Instance', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:instance/{#InstanceId}'], + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'HaVip', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:havip/{#HaVipId}'], + ], ], ], - 'operationType' => 'readAndWrite', - 'deprecated' => false, - 'systemTags' => [ + [ + 'apiName' => 'AssociateRouteTable', + 'description' => '', 'operationType' => 'update', - 'riskType' => 'none', - 'chargeType' => 'free', + 'ramAction' => [ + 'action' => 'vpc:AssociateRouteTable', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VSwitch', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vswitch/{#vswitchId}'], + ], + ], ], - 'parameters' => [ - [ - 'name' => 'ResourceId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The resource ID.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'vpc-hp31psbg8ec3023s6****', + [ + 'apiName' => 'DeleteNatIp', + 'description' => '', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'vpc:DeleteNatIp', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'NatGateway', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:natgateway/{#NatGatewayId}'], ], ], - [ - 'name' => 'ResourceType', - 'in' => 'query', - 'schema' => [ - 'description' => 'The type of the resource for which you want to modify the resource group. Valid values:'."\n" - ."\n" - .'* **Vpc**'."\n" - .'* **Eip**'."\n" - .'* **BandwidthPackage**'."\n" - .'* **PrefixList**'."\n" - .'* **PublicIpAddressPool**'."\n" - .'* **FlowLog**'."\n" - .'* **HaVip**'."\n" - .'* **TrafficMirrorFilter**'."\n" - .'* **TrafficMirrorSession**'."\n" - .'* **IPv4Gateway**'."\n" - .'* **IPv6Gateway**'."\n" - .'* **DhcpOptionsSet**'."\n" - .'* **GatewayEndpoint**'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'vpc', + ], + [ + 'apiName' => 'CreateBgpPeer', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'vpc:CreateBgpPeer', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VirtualBorderRouter', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:virtualborderrouter/{#VirtualBorderRouterId}'], ], ], - [ - 'name' => 'NewResourceGroupId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the resource group to which you want to move the resource.'."\n" - ."\n" - .'> You can use resource groups to facilitate resource grouping and permission management for an Alibaba Cloud. For more information, see [What is resource management?](~~94475~~)'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'rg-acfm3peow3k****', + ], + [ + 'apiName' => 'ModifyCommonBandwidthPackageIpBandwidth', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:ModifyCommonBandwidthPackageIpBandwidth', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'BandwidthPackage', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:combandwidthpackage/{#BandwidthPackageId}'], ], ], - [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region to which the cloud resource belongs.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to query the most recent region list.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cn-hangzhou', + ], + [ + 'apiName' => 'CreateFullNatEntry', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'vpc:CreateFullNatEntry', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'FullNat', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vpcfullnattable/{#FullNatTableId}'], ], ], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '611CB80C-B6A9-43DB-9E38-0B0AC3D9B58F', - ], - ], + [ + 'apiName' => 'CreateIpsecServer', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'vpc:CreateIpsecServer', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'All Resource', 'arn' => '*'], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InvalidResourceGroupId', - 'errorMessage' => 'The specified ResourceGroupId does not exist.', + [ + 'apiName' => 'DescribeExpressConnectTrafficQosQueue', + 'description' => '', + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'vpc:DescribeExpressConnectTrafficQosQueue', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'All Resource', 'arn' => '*'], ], - [ - 'errorCode' => 'InvalidResourceId.NotFound', - 'errorMessage' => 'The specified ResourceId does not exist.', + ], + ], + [ + 'apiName' => 'ListIpsecServers', + 'description' => '', + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'vpc:ListIpsecServers', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'All Resource', 'arn' => '*'], ], - [ - 'errorCode' => 'IllegalParam.ResourceType', - 'errorMessage' => 'Invalid Resource Type value.', + ], + ], + [ + 'apiName' => 'CreateVpnConnection', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'vpc:CreateVpnConnection', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'CustomerGateway', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:customergateway/{#CustomerGatewayId}'], + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VpnConnection', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vpnconnection/*'], + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VpnGateway', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vpngateway/{#VpnGatewayId}'], ], - [ - 'errorCode' => 'OperationFailed.InstanceStatusNotAllowed', - 'errorMessage' => 'The current status of the resource does not support this operation.', + ], + ], + [ + 'apiName' => 'CreateRouteTable', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'vpc:CreateRouteTable', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'RouteTable', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:routetable/*'], ], - [ - 'errorCode' => 'IncorrectStatus.Vpc', - 'errorMessage' => 'The status of %s [%s] is incorrect.', + ], + ], + [ + 'apiName' => 'CreateIPv6Translator', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'vpc:CreateIPv6Translator', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'All Resource', 'arn' => '*'], ], - [ - 'errorCode' => 'Forbidden.OperateManagedFlowLog', - 'errorMessage' => 'Authentication is failed for operate managed flowlog.', + ], + ], + [ + 'apiName' => 'DeleteVbrHa', + 'description' => '', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'vpc:DeleteVbrHa', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VirtualBorderRouter', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:virtualborderrouter/{#VbrId}'], ], ], - 404 => [ - [ - 'errorCode' => 'InvalidBandwidthPackageId.NotFound', - 'errorMessage' => 'The specified bandwidthPackage resourceId does not exist in our records.', + ], + [ + 'apiName' => 'ReplaceVpcDhcpOptionsSet', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:ReplaceVpcDhcpOptionsSet', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'DhcpOptionsSet', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:dhcpoptionsset/{#DhcpOptionsSetId}'], + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VPC', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vpc/{#VpcId}'], ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + [ + 'apiName' => 'UpdateIpsecServer', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:UpdateIpsecServer', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"611CB80C-B6A9-43DB-9E38-0B0AC3D9B58F\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 611CB80C-B6A9-43DB-9E38-0B0AC3D9B58F\\n","errorExample":""}]', - 'title' => 'MoveResourceGroup', - ], - 'ChangeResourceGroup' => [ - 'summary' => 'Moves an Express Connect circuit to a new resource group.', - 'methods' => [ - 'get', - 'post', + [ + 'apiName' => 'CreateVSwitch', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'vpc:CreateVSwitch', + 'authLevel' => 'resource', + 'actionConditions' => [ + ['conditionKey' => 'vpc:tag', 'validationType' => 'always'], + ], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VPC', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vpc/{#VpcId}'], + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VSwitch', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vswitch/*'], + ], + ], ], - 'schemes' => [ - 'http', - 'https', + [ + 'apiName' => 'CreateNatIpCidr', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'vpc:CreateNatIpCidr', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'NatGateway', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:natgateway/{#NatGatewayId}'], + ], + ], ], - 'security' => [ - [ - 'AK' => [], + [ + 'apiName' => 'AllocateEipAddress', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'vpc:AllocateEipAddress', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'Address', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:eip/*'], + ], ], ], - 'operationType' => 'write', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'update', - 'riskType' => 'none', - 'chargeType' => 'free', + [ + 'apiName' => 'DeleteExpressConnect', + 'description' => '', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'vpc:DeleteRouterInterface', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'RouterInterface', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:routerinterface/{#RouterInterfaceId}'], + ], + ], ], - 'parameters' => [ - [ - 'name' => 'NewResourceGroupId', - 'in' => 'query', - 'schema' => [ - 'title' => '', - 'description' => 'The ID of the new resource group.'."\n" - ."\n" - .'> You can use resource groups to manage resources within your Alibaba Cloud account by group. This helps you resolve issues such as resource grouping and permission management for your Alibaba Cloud account. For more information, see [What is Resource Management?](~~94475~~)'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'rg-bp1drpcfz9srr393h****', - 'enum' => [], + [ + 'apiName' => 'DescribeRouteTableList', + 'description' => '', + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'vpc:DescribeRouteTableList', + 'authLevel' => 'resource', + 'actionConditions' => [ + ['conditionKey' => 'vpc:VRouter', 'validationType' => 'always'], + ['conditionKey' => 'vpc:VBR', 'validationType' => 'always'], + ], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'RouteTable', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:routetable/*'], ], ], - [ - 'name' => 'ResourceType', - 'in' => 'query', - 'schema' => [ - 'description' => 'The type of the resource. Valid values:'."\n" - ."\n" - .'* **PHYSICALCONNECTION**: Express Connect circuit.'."\n" - .'* **VIRTUALBORDERROUTER**: virtual border router (VBR).'."\n" - .'* **ROUTERINTERFACE**: router interface.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'PHYSICALCONNECTION', - 'enum' => [], + ], + [ + 'apiName' => 'DescribeBgpNetworks', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'vpc:DescribeBgpNetworks', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VirtualBorderRouter', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:virtualborderrouter/{#VbrId}'], ], ], - [ - 'name' => 'ResourceId', - 'in' => 'query', - 'schema' => [ - 'title' => '', - 'description' => 'The ID of the Express Connect circuit whose resource group you want to modify.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'pc-bp16qjewdsunr41m1****', + ], + [ + 'apiName' => 'CreatePhysicalConnection', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'vpc:CreatePhysicalConnection', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'PhysicalConnection', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:physicalconnection/*'], ], ], - [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the region to which the new resource group belongs.'."\n" - ."\n" - .'You can call the [DescribeRegions](~~36063~~) operation to obtain the region ID.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', + ], + [ + 'apiName' => 'ListBusinessAccessPoints', + 'description' => '', + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'vpc:ListBusinessAccessPoints', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'All Resource', 'arn' => '*'], ], ], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'The request ID.'."\n", - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '54B48E3D-DF70-471B-AA93-08E683A1B45', - ], - ], + [ + 'apiName' => 'ModifyVpnPbrRouteEntryPriority', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:ModifyVpnPbrRouteEntryPriority', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VpnGateway', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vpngateway/{#VpnGatewayId}'], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'ResourceType.Unknown', - 'errorMessage' => 'Unknown ResourceType.', + [ + 'apiName' => 'DescribeVpcGrantRulesToEcr', + 'description' => '', + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'vpc:DescribeVpcGrantRulesToEcr', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VPC', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vpc/{#InstanceId}'], ], - [ - 'errorCode' => 'InvalidInstanceId.NotFound', - 'errorMessage' => 'The specified instance id does not exist.', + ], + ], + [ + 'apiName' => 'ModifyIpv6AddressAttribute', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:ModifyIpv6AddressAttribute', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VPC', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vpc/{#VpcId}'], ], - [ - 'errorCode' => 'InvalidResourceId.NotFound', - 'errorMessage' => 'This resourceId already has flowlog instance existed.', + ], + ], + [ + 'apiName' => 'DeleteVpnAttachment', + 'description' => '', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'vpc:DeleteVpnAttachment', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VpnConnections', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vpnconnection/{#VpnConnectionId}'], ], - [ - 'errorCode' => 'IllegalParam.ResourceType', - 'errorMessage' => 'Invalid Resource Type value.', + ], + ], + [ + 'apiName' => 'DescribePublicIpAddress', + 'description' => '', + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'vpc:DescribePublicIpAddress', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'All Resource', 'arn' => '*'], ], - [ - 'errorCode' => 'IllegalParam.ResourceGroupId', - 'errorMessage' => 'Invalid ResourceGroupld value.', + ], + ], + [ + 'apiName' => 'DescribeBgpGroups', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'vpc:DescribeBgpGroups', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VirtualBorderRouter', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:virtualborderrouter/{#VbrId}'], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"54B48E3D-DF70-471B-AA93-08E683A1B45\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 54B48E3D-DF70-471B-AA93-08E683A1B45\\n","errorExample":""}]', - 'title' => 'ChangeResourceGroup', - 'description' => '## [](#)'."\n" - ."\n" - .'You cannot repeatedly call the **ChangeResourceGroup** operation to modify the resource group of the same Express Connect circuit.'."\n", - ], - 'DescribeVpcGrantRulesToEcr' => [ - 'summary' => 'Queries the cross-account authorization information of an ECR for a specified network instance.', - 'methods' => [ - 'post', - 'get', + [ + 'apiName' => 'ModifyIPv6TranslatorAclListEntry', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:ModifyIPv6TranslatorAclListEntry', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'Ipv6Translator', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:ipv6trans/{#Ipv6TranslatorId}'], + ], + ], ], - 'schemes' => [ - 'http', - 'https', + [ + 'apiName' => 'DownloadVpnConnectionConfig', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'vpc:DownloadVpnConnectionConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VpnConnection', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vpnconnection/{#VpnConnectionId}'], + ], + ], ], - 'security' => [ - [ - 'AK' => [], + [ + 'apiName' => 'GetVpcGatewayEndpointAttribute', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'vpc:GetVpcGatewayEndpointAttribute', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'GatewayEndpoint', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:gatewayendpoint/{#GatewayEndpointId}'], + ], ], ], - 'operationType' => 'read', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'list', - 'riskType' => 'none', - 'chargeType' => 'free', + [ + 'apiName' => 'GetVSwitchCidrReservationUsage', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'vpc:GetVSwitchCidrReservationUsage', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VSwitchCidrReservation', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vswitchcidrreservation/{#VSwitchCidrReservationId}'], + ], + ], ], - 'parameters' => [ - [ - 'name' => 'MaxResults', - 'in' => 'query', - 'schema' => [ - 'description' => 'The number of entries to return per page. Valid values: **1** to **100**. Default value: **10**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '50', + [ + 'apiName' => 'ListRouteTargetGroups', + 'description' => '', + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'vpc:ListRouteTargetGroups', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'RouteTargetGroup', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:routetargetgroup/*'], ], ], - [ - 'name' => 'NextToken', - 'in' => 'query', - 'schema' => [ - 'description' => 'A pagination token. It can be used in the next request to retrieve a new page of results. Valid values:'."\n" - ."\n" - .'* You do not need to specify this parameter for the first request.'."\n" - .'* If a value is returned for NextToken, you must specify the token that is obtained from the previous query as the value of **NextToken**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', + ], + [ + 'apiName' => 'DescribeFailoverTestJob', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'vpc:DescribeFailoverTestJob', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'PhysicalConnection', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:physicalconnection/{#PhysicalConnectionId}'], + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VirtualBorderRouter', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:virtualborderrouter/{#VbrId}'], ], ], - [ - 'name' => 'InstanceId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the network instance.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'vpc-wz9ek66wd7tl5xqpy****', + ], + [ + 'apiName' => 'ListIpsecServerLogs', + 'description' => '', + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'vpc:ListIpsecServerLogs', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'All Resource', 'arn' => '*'], ], ], - [ - 'name' => 'EcrInstanceId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the ECR that you want to query.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'ecr-ncxadcujadncsa****', + ], + [ + 'apiName' => 'ModifyVRouterAttribute', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:ModifyVRouterAttribute', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VRouter', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vrouter/{#VRouterId}'], ], ], - [ - 'name' => 'EcrOwnerId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the Alibaba Cloud account to which the ECR belongs.'."\n" - ."\n" - .'> If you want to connect to a network instance that belongs to a different account, this parameter is required.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '192732132151****', + ], + [ + 'apiName' => 'EnableVpcClassicLink', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:EnableVpcClassicLink', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VPC', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vpc/{#VpcId}'], ], ], - [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The region ID of the network instance that you want to query.'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-hangzhou', + ], + [ + 'apiName' => 'GetPhysicalConnectionServiceStatus', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'vpc:GetPhysicalConnectionServiceStatus', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'All Resource', 'arn' => '*'], ], ], - [ - 'name' => 'ResourceGroupId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the resource group to which the network instance belongs.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'rg-acfmxazb4ph6aiy****', + ], + [ + 'apiName' => 'ReleaseIpv6Address', + 'description' => '', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'vpc:ReleaseIpv6Address', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'Ipv6Address', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:ipv6address/{#Ipv6AddressId}'], ], ], - [ - 'name' => 'Tags', - 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => 'The tag.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'Details of the tag.'."\n", - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => 'The key of the tag. You must specify at least one tag key and at most 20 tag keys. The tag key cannot be an empty string.'."\n" - ."\n" - .'A tag key can be up to 128 characters in length. It cannot start with `acs:` or `aliyun`, and cannot contain `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'FinanceDept', - ], - 'Value' => [ - 'description' => 'The value of the tag. You can enter a maximum of 20 tag values. The tag value can be an empty string.'."\n" - ."\n" - .'The tag key can be up to 128 characters in length, and cannot start with `aliyun` or `acs:`. The tag key cannot contain `http://` or `https://`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'FinanceJoshua', - ], - ], - 'required' => false, - ], - 'required' => false, - 'maxItems' => 10, + ], + [ + 'apiName' => 'DiagnoseVpnGateway', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'vpc:DiagnoseVpnGateway', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'All Resource', 'arn' => '*'], ], ], - [ - 'name' => 'InstanceType', - 'in' => 'query', - 'schema' => [ - 'description' => 'The type of instance. Valid values:'."\n" - ."\n" - .'* **VBR**: queries the permissions that are granted to a VBR.'."\n" - .'* **VPC**: queries the permissions that are granted from a VPC.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'VPC', + ], + [ + 'apiName' => 'DescribeExpressConnectTrafficQos', + 'description' => '', + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'vpc:DescribeExpressConnectTrafficQos', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'TrafficQos', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:TrafficQos/*'], ], ], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'NextToken' => [ - 'description' => 'A pagination token. It can be used in the next request to retrieve a new page of results. Valid values:'."\n" - ."\n" - .'* If **NextToken** is empty, there is no next page.'."\n" - .'* ****'."\n", - 'type' => 'string', - 'example' => 'FFmyTO70tTpLG6I3FmYAXGKPd****', - ], - 'RequestId' => [ - 'description' => 'The unique ID that Alibaba Cloud generates for the request.'."\n", - 'type' => 'string', - 'example' => '66342E8E-5E87-5FF9-80C7-C3E3571A****', - ], - 'TotalCount' => [ - 'description' => 'The total number of instances queried. If you specify the MaxResults and NextToken request parameters to perform a paged query, the value of the TotalCount response parameter is invalid.'."\n", - 'type' => 'string', - 'example' => '10', - ], - 'GrantRuleModels' => [ - 'description' => 'The authorization information.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The authorization information.'."\n", - 'type' => 'object', - 'properties' => [ - 'InstanceId' => [ - 'description' => 'The ID of the network instance.'."\n", - 'type' => 'string', - 'example' => 'vpc-wz9ek66wd7tl5xqpy****', - ], - 'Type' => [ - 'description' => 'The type of instance. Valid values:'."\n" - ."\n" - .'* **VBR**: queries the permissions that are granted to a VBR.'."\n" - .'* **VPC**: queries the permissions that are granted from a VPC.'."\n", - 'type' => 'string', - 'example' => 'VPC', - ], - 'InstanceUid' => [ - 'description' => 'The ID of the Alibaba Cloud account to which the instance belongs.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '192745367151****', - ], - 'RegionNo' => [ - 'description' => 'The ID of the region where the instance is deployed.'."\n", - 'type' => 'string', - 'example' => 'cn-hangzhou', - ], - 'EcrId' => [ - 'description' => 'The ECR ID.'."\n", - 'type' => 'string', - 'example' => 'ecr-tz7w3chlaptxr2****', - ], - 'EcrOwnerId' => [ - 'description' => 'The ID of the Alibaba Cloud account to which the ECR belongs.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '192732132151****', - ], - 'CreationTime' => [ - 'description' => 'The creation time in milliseconds.'."\n", - 'type' => 'string', - 'example' => '2024-09-09T02:14:51Z', - ], - ], - ], - ], - ], - 'description' => '', + [ + 'apiName' => 'DescribeSslVpnServers', + 'description' => '', + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'vpc:DescribeSslVpnServers', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'conditional', 'product' => 'VPC', 'resourceType' => 'SslVpnServer', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:sslvpnserver/*'], + ['validationType' => 'conditional', 'product' => 'VPC', 'resourceType' => 'SslVpnServer', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:sslvpnserver/{#SslVpnServerId}'], ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + [ + 'apiName' => 'StopFailoverTestJob', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'vpc:StopFailoverTestJob', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'VirtualBorderRouter', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:virtualborderrouter/{#VbrId}'], + ['validationType' => 'always', 'product' => 'VPC', 'resourceType' => 'PhysicalConnection', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:physicalconnection/{#PhysicalConnectionId}'], + ], + ], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"NextToken\\": \\"FFmyTO70tTpLG6I3FmYAXGKPd****\\",\\n \\"RequestId\\": \\"66342E8E-5E87-5FF9-80C7-C3E3571A****\\",\\n \\"TotalCount\\": \\"10\\",\\n \\"GrantRuleModels\\": [\\n {\\n \\"InstanceId\\": \\"vpc-wz9ek66wd7tl5xqpy****\\",\\n \\"Type\\": \\"VPC\\",\\n \\"InstanceUid\\": 0,\\n \\"RegionNo\\": \\"cn-hangzhou\\",\\n \\"EcrId\\": \\"ecr-tz7w3chlaptxr2****\\",\\n \\"EcrOwnerId\\": 0,\\n \\"CreationTime\\": \\"2024-09-09T02:14:51Z\\"\\n }\\n ]\\n}","type":"json"}]', - 'title' => 'DescribeVpcGrantRulesToEcr', - ], - ], - 'endpoints' => [ - [ - 'regionId' => 'cn-qingdao', - 'endpoint' => 'vpc.cn-qingdao.aliyuncs.com', - ], - [ - 'regionId' => 'cn-beijing', - 'endpoint' => 'vpc.cn-beijing.aliyuncs.com', - ], - [ - 'regionId' => 'cn-zhangjiakou', - 'endpoint' => 'vpc.cn-zhangjiakou.aliyuncs.com', - ], - [ - 'regionId' => 'cn-zhengzhou-jva', - 'endpoint' => 'vpc.cn-zhengzhou-jva.aliyuncs.com', - ], - [ - 'regionId' => 'cn-huhehaote', - 'endpoint' => 'vpc.cn-huhehaote.aliyuncs.com', - ], - [ - 'regionId' => 'cn-wulanchabu', - 'endpoint' => 'vpc.cn-wulanchabu.aliyuncs.com', - ], - [ - 'regionId' => 'cn-hangzhou', - 'endpoint' => 'vpc.cn-hangzhou.aliyuncs.com', - ], - [ - 'regionId' => 'cn-shanghai', - 'endpoint' => 'vpc.cn-shanghai.aliyuncs.com', - ], - [ - 'regionId' => 'cn-nanjing', - 'endpoint' => 'vpc.cn-nanjing.aliyuncs.com', - ], - [ - 'regionId' => 'cn-fuzhou', - 'endpoint' => 'vpc.cn-fuzhou.aliyuncs.com', - ], - [ - 'regionId' => 'cn-shenzhen', - 'endpoint' => 'vpc.cn-shenzhen.aliyuncs.com', - ], - [ - 'regionId' => 'cn-heyuan', - 'endpoint' => 'vpc.cn-heyuan.aliyuncs.com', - ], - [ - 'regionId' => 'cn-guangzhou', - 'endpoint' => 'vpc.cn-guangzhou.aliyuncs.com', - ], - [ - 'regionId' => 'cn-chengdu', - 'endpoint' => 'vpc.cn-chengdu.aliyuncs.com', - ], - [ - 'regionId' => 'cn-wuhan-lr', - 'endpoint' => 'vpc.cn-wuhan-lr.aliyuncs.com', - ], - [ - 'regionId' => 'cn-hongkong', - 'endpoint' => 'vpc.cn-hongkong.aliyuncs.com', - ], - [ - 'regionId' => 'ap-northeast-1', - 'endpoint' => 'vpc.ap-northeast-1.aliyuncs.com', - ], - [ - 'regionId' => 'ap-northeast-2', - 'endpoint' => 'vpc.ap-northeast-2.aliyuncs.com', - ], - [ - 'regionId' => 'ap-southeast-1', - 'endpoint' => 'vpc.ap-southeast-1.aliyuncs.com', - ], - [ - 'regionId' => 'ap-southeast-2', - 'endpoint' => 'vpc.ap-southeast-2.aliyuncs.com', - ], - [ - 'regionId' => 'ap-southeast-3', - 'endpoint' => 'vpc.ap-southeast-3.aliyuncs.com', - ], - [ - 'regionId' => 'ap-southeast-5', - 'endpoint' => 'vpc.ap-southeast-5.aliyuncs.com', - ], - [ - 'regionId' => 'ap-southeast-6', - 'endpoint' => 'vpc.ap-southeast-6.aliyuncs.com', - ], - [ - 'regionId' => 'us-east-1', - 'endpoint' => 'vpc.us-east-1.aliyuncs.com', - ], - [ - 'regionId' => 'us-west-1', - 'endpoint' => 'vpc.us-west-1.aliyuncs.com', - ], - [ - 'regionId' => 'eu-west-1', - 'endpoint' => 'vpc.eu-west-1.aliyuncs.com', - ], - [ - 'regionId' => 'eu-central-1', - 'endpoint' => 'vpc.eu-central-1.aliyuncs.com', - ], - [ - 'regionId' => 'ap-south-1', - 'endpoint' => 'vpc.ap-south-1.aliyuncs.com', - ], - [ - 'regionId' => 'me-east-1', - 'endpoint' => 'vpc.me-east-1.aliyuncs.com', - ], - [ - 'regionId' => 'cn-shanghai-finance-1', - 'endpoint' => 'vpc.cn-shanghai-finance-1.aliyuncs.com', - ], - [ - 'regionId' => 'cn-shenzhen-finance-1', - 'endpoint' => 'vpc.cn-shenzhen-finance-1.aliyuncs.com', - ], - [ - 'regionId' => 'ap-southeast-7', - 'endpoint' => 'vpc.ap-southeast-7.aliyuncs.com', - ], - [ - 'regionId' => 'cn-beijing-finance-1', - 'endpoint' => 'vpc.cn-beijing-finance-1.aliyuncs.com', - ], - [ - 'regionId' => 'me-central-1', - 'endpoint' => 'vpc.me-central-1.aliyuncs.com', - ], - [ - 'regionId' => 'cn-heyuan-acdr-1', - 'endpoint' => 'vpc.cn-heyuan-acdr-1.aliyuncs.com', ], - [ - 'regionId' => 'na-south-1', - 'endpoint' => 'vpc.na-south-1.aliyuncs.com', + 'resourceTypes' => [ + ['validationType' => 'always', 'resourceType' => 'FlowLog', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:flowlog/*'], + ['validationType' => 'always', 'resourceType' => 'VpnConnection', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vpnconnection/{#VpnConnectionId}'], + ['validationType' => 'always', 'resourceType' => 'VirtualBorderRouter', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:virtualborderrouter/{#VbrId}'], + ['validationType' => 'always', 'resourceType' => 'FlowLogService', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:flowlog/*'], + ['validationType' => 'always', 'resourceType' => 'NatGateway', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:natgateway/{#NatGatewayId}'], + ['validationType' => 'always', 'resourceType' => 'BandwidthPackage', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:combandwidthpackage/{#BandwidthPackageId}'], + ['validationType' => 'always', 'resourceType' => 'PhysicalConnection', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:physicalconnection/{#PhysicalConnectionId}'], + ['validationType' => 'always', 'resourceType' => 'RouterInterface', 'arn' => 'acs:vpc:{#regionId}:{#AccountId}:routerinterface/{#RouterInterfaceId}'], + ['validationType' => 'always', 'resourceType' => 'TrafficQos', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:trafficqos/{#QosId}'], + ['validationType' => 'always', 'resourceType' => 'SnatTable', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:snattable/{#SnatTableId}'], + ['validationType' => 'always', 'resourceType' => 'Ipv6Translator', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:ipv6trans/{#Ipv6TranslatorId}'], + ['validationType' => 'always', 'resourceType' => 'VPC', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vpc/*'], + ['validationType' => 'always', 'resourceType' => 'Ipv6Gateway', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:ipv6gateway/{#Ipv6GatewayId}'], + ['validationType' => 'always', 'resourceType' => 'VpnGateway', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vpngateway/*'], + ['validationType' => 'always', 'resourceType' => 'NatGateway', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:natgateway/*'], + ['validationType' => 'always', 'resourceType' => 'PublicIpAddressPool', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:publicipaddresspool/*'], + ['validationType' => 'always', 'resourceType' => 'FullNat', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vpcfullnattable/{#FullNatTableId}'], + ['validationType' => 'always', 'resourceType' => 'Ipv4Gateway', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:ipv4gateway/{#ipv4gatewayId}'], + ['validationType' => 'always', 'resourceType' => 'PublicIpAddressPool', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:publicipaddresspool/{#PublicIpAddressPoolId}'], + ['validationType' => 'always', 'resourceType' => 'VpnGateway', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vpngateway/{#VpnGatewayId}'], + ['validationType' => 'conditional', 'resourceType' => 'Ipv6Gateway', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:ipv6gateway/*'], + ['validationType' => 'always', 'resourceType' => 'VirtualBorderRouter', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:virtualborderrouter/{#VirtualBorderRouterId}'], + ['validationType' => 'always', 'resourceType' => 'NetworkAcl', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:networkacl/{#NetworkAclId}'], + ['validationType' => 'always', 'resourceType' => 'Address', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:eip/{#AllocationId}'], + ['validationType' => 'always', 'resourceType' => 'VPC', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vpc/{#VpcId}'], + ['validationType' => 'always', 'resourceType' => 'ForwardTable', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:forwardtable/{#ForwardTableId}'], + ['validationType' => 'always', 'resourceType' => 'RouteTable', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:routetable/{#RouteTableId}'], + ['validationType' => 'conditional', 'resourceType' => 'VpnConnection', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vpnconnection/*'], + ['validationType' => 'always', 'resourceType' => 'IpsecServer', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vpnipsecserver/{#IpsecServerId}'], + ['validationType' => 'always', 'resourceType' => 'VSwitch', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vswitch/{#VSwitchId}'], + ['validationType' => 'always', 'resourceType' => 'SegmentAddress', 'arn' => 'acs:eip:{#regionId}:{#accountId}:eipsegment/{#SegmentInstanceId}'], + ['validationType' => 'always', 'resourceType' => 'TrafficMirrorFilter', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:trafficmirrorfilter/*'], + ['validationType' => 'always', 'resourceType' => 'PhysicalConnection', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:physicalconnection/*'], + ['validationType' => 'always', 'resourceType' => 'FlowLog', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:flowlog/{#FlowLogId}'], + ['validationType' => 'conditional', 'resourceType' => 'Instance', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:instance/{#InstanceId}'], + ['validationType' => 'conditional', 'resourceType' => 'Association', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:havip/{#HaVipId}'], + ['validationType' => 'always', 'resourceType' => 'VSwitch', 'arn' => 'acs:vpc:{#regionid}:{#accountId}:vswitch/*'], + ['validationType' => 'always', 'resourceType' => 'GatewayEndpoint', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:gatewayendpoint/{#GatewayEndpointId}'], + ['validationType' => 'always', 'resourceType' => 'CustomerGateway', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:customergateway/*'], + ['validationType' => 'always', 'resourceType' => 'CommonBandwidthPackage', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:combandwidthpackage/{#CommonBandwidthPackageId}'], + ['validationType' => 'always', 'resourceType' => 'RouteTargetGroup', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:routetargetgroup/{#RouteTargetGroupId}'], + ['validationType' => 'always', 'resourceType' => 'VirtualBorderRouter', 'arn' => 'acs:vpc:*:{#accountId}:virtualborderrouter/{#VirtualBorderRouterId}'], + ['validationType' => 'always', 'resourceType' => 'PrefixList', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:prefixlist/{#PrefixListId}'], + ['validationType' => 'always', 'resourceType' => 'VpnConnections', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vpnconnection/{#VpnConnectionId}'], + ['validationType' => 'conditional', 'resourceType' => 'PrefixList', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:prefixlist/*'], + ['validationType' => 'conditional', 'resourceType' => 'GatewayEndpoint', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:gatewayendpoint/*'], + ['validationType' => 'always', 'resourceType' => 'GlobalAccelerationInstance', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:globalaccelerationinstance/{#GlobalAccelerationInstanceId}'], + ['validationType' => 'always', 'resourceType' => 'CommonBandwidthPackage', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:combandwidthpackage/*'], + ['validationType' => 'always', 'resourceType' => 'HaVip', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:havip/{#HaVipId}'], + ['validationType' => 'always', 'resourceType' => 'SslVpnServer', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:sslvpnserver/*'], + ['validationType' => 'always', 'resourceType' => 'TrafficMirrorSession', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:trafficmirrorsession/*'], + ['validationType' => 'always', 'resourceType' => 'TrafficMirrorFilter', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:trafficmirrorfilter/{#TrafficMirrorFilterId}'], + ['validationType' => 'always', 'resourceType' => 'RouteTargetGroup', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:routetargetgroup/*'], + ['validationType' => 'always', 'resourceType' => 'Instance', 'arn' => 'acs:ecs:{#regionId}:{#accountId}:instance/{#Instanceid}'], + ['validationType' => 'always', 'resourceType' => 'GlobalAccelerationInstance', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:globalaccelerationinstance/*'], + ['validationType' => 'always', 'resourceType' => 'CustomerGateway', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:customergateway/{#CustomerGatewayId}'], + ['validationType' => 'always', 'resourceType' => 'Ipv4Gateway', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:ipv4gateway/*'], + ['validationType' => 'always', 'resourceType' => 'Address', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:eip/*'], + ['validationType' => 'always', 'resourceType' => 'SegmentAddress', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:eip/*'], + ['validationType' => 'always', 'resourceType' => 'NetworkAcl', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:networkacl/*'], + ['validationType' => 'conditional', 'resourceType' => 'RouteTable', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:routetable/{#RouteTable}'], + ['validationType' => 'conditional', 'resourceType' => 'BandwidthPackage', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:bandwidthpackage/{#BandwidthPackageId}'], + ['validationType' => 'conditional', 'resourceType' => 'Eip', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:eip/{#AllocationId}'], + ['validationType' => 'conditional', 'resourceType' => 'DhcpOptionsSet', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:dhcpoptionsset/{#DhcpOptionsSetId}'], + ['validationType' => 'conditional', 'resourceType' => 'TrafficMirrorSession', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:trafficmirrorsession/{#TrafficMirrorSessionId}'], + ['validationType' => 'always', 'resourceType' => 'TrafficQos', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:TrafficQos/*'], + ['validationType' => 'conditional', 'resourceType' => 'SslVpnClientCert', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:sslvpnclientcert/*'], + ['validationType' => 'conditional', 'resourceType' => 'SslVpnClientCert', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:sslvpnclientcert/{#SslVpnClientCertId}'], + ['validationType' => 'always', 'resourceType' => 'TrafficMirrorService', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:trafficmirror/*'], + ['validationType' => 'always', 'resourceType' => 'Ipv6InternetBandwidth', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vpc/*'], + ['validationType' => 'conditional', 'resourceType' => 'NatGateway', 'arn' => 'acs:natgateway:{#regionId}:{#accountId}:natgateway/{#NatGatewayId}'], + ['validationType' => 'always', 'resourceType' => 'Ipv6Address', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:ipv6address/*'], + ['validationType' => 'always', 'resourceType' => 'VpnCertificateAttachment', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vpncertificateattachment/{#VpnGatewayId}/{#CertificateType}/{#CertificateId}'], + ['validationType' => 'always', 'resourceType' => 'IPv6Translator', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:ipv6trans/*'], + ['validationType' => 'always', 'resourceType' => 'IPv6Translator', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:ipv6trans/{#IPv6TranslatorId}'], + ['validationType' => 'always', 'resourceType' => 'Ipv6InternetBandwidth', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:ipv6bandwidth/*'], + ['validationType' => 'always', 'resourceType' => 'Ipv6InternetBandwidth', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:ipv6bandwidth/{#Ipv6InternetBandwidthId}'], + ['validationType' => 'always', 'resourceType' => 'SslVpnServer', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:sslvpnserver/{#SslVpnServerId}'], + ['validationType' => 'conditional', 'resourceType' => 'Ipv6Translator', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:ipv6trans/*'], + ['validationType' => 'conditional', 'resourceType' => 'VpnGateway', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vpngateway/{#VpnInstanceId}'], + ['validationType' => 'always', 'resourceType' => 'VRouter', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vrouter/*'], + ['validationType' => 'conditional', 'resourceType' => 'VirtualBorderRouter', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:virtualborderrouter/{#InstanceId}'], + ['validationType' => 'conditional', 'resourceType' => 'GrantRuleToCen', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vpc/{#InstanceId}'], + ['validationType' => 'always', 'resourceType' => 'HaVip', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:havip/*'], + ['validationType' => 'conditional', 'resourceType' => 'DhcpOptionsSet', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:dhcpoptionsset/*'], + ['validationType' => 'always', 'resourceType' => 'VSwitchCidrReservation', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vswitchcidrreservation/*'], + ['validationType' => 'always', 'resourceType' => 'GatewayInfo', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:eip/*'], + ['validationType' => 'always', 'resourceType' => 'SnatEntry', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:snattable/*'], + ['validationType' => 'always', 'resourceType' => 'VpnAttachment', 'arn' => 'acs:vpc:{#Region}:{#AccountId}:vpnattachment/{#VpnConnectionId}'], + ['validationType' => 'always', 'resourceType' => 'VSwitchCidrReservation', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vswitchcidrreservation/{#VSwitchCidrReservationId}'], + ['validationType' => 'always', 'resourceType' => 'PublicIpAddressPoolService', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:publicipaddresspoolservice/*'], + ['validationType' => 'always', 'resourceType' => 'Eip', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:eip/{#EipId}'], + ['validationType' => 'always', 'resourceType' => 'RouteEntry', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:routetable/{#RouteTableId}'], + ['validationType' => 'always', 'resourceType' => 'Instance', 'arn' => 'acs:ecs:{#regionId}:{#accountId}:instance/*'], + ['validationType' => 'always', 'resourceType' => 'SegmentAddress', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:eip/{#AllocationId}'], + ['validationType' => 'always', 'resourceType' => 'Ipv6EgressRule', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:ipv6gateway/{#Ipv6GatewayId}'], + ['validationType' => 'always', 'resourceType' => 'VpnConnection', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:*'], + ['validationType' => 'always', 'resourceType' => 'RouterInterface', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:routerinterface/*'], + ['validationType' => 'conditional', 'resourceType' => 'VpnGateway', 'arn' => 'acs:vpc:{#Region}:{#AccountId}:vpngateway/{#VpnInstanceId}'], + ['validationType' => 'conditional', 'resourceType' => 'CustomerGateway', 'arn' => 'acs:vpc:{#Region}:{#AccountId}:customergateway/{#CustomerGatewayId}'], + ['validationType' => 'conditional', 'resourceType' => 'VpnConnection', 'arn' => 'acs:vpc:{#Region}:{#AccountId}:vpnconnection/{#VpnConnectionId}'], + ['validationType' => 'conditional', 'resourceType' => 'IpsecServer', 'arn' => 'acs:vpc:{#Region}:{#AccountId}: vpnipsecserver/{#IpsecServerId}'], + ['validationType' => 'conditional', 'resourceType' => 'SslVpnServer', 'arn' => 'acs:vpc:{#Region}:{#AccountId}:sslvpnserver/{#SslVpnServerId}'], + ['validationType' => 'always', 'resourceType' => 'physicalconnection', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:physicalconnection/*'], + ['validationType' => 'always', 'resourceType' => 'GlobalAccelerationInstance', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:GlobalAccelerationInstance/*'], + ['validationType' => 'always', 'resourceType' => 'VirtualBorderRouter', 'arn' => 'acs:vpc:{#regionId}:{#AccountId}:virtualborderrouter/*'], + ['validationType' => 'always', 'resourceType' => 'VpnGateway', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:'], + ['validationType' => 'always', 'resourceType' => 'RouteTable', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:routetable/*'], + ['validationType' => 'always', 'resourceType' => 'IpsecServer', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:ipsecserver/*'], + ['validationType' => 'always', 'resourceType' => 'VPC', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vpc/{#InstanceId}'], + ['validationType' => 'always', 'resourceType' => 'IpsecServer', 'arn' => 'acs:vpc:{#regionId}:{#accountId}: vpnipsecserver/{#IpsecServerId}'], + ['validationType' => 'always', 'resourceType' => 'VRouter', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:vrouter/{#VRouterId}'], + ['validationType' => 'always', 'resourceType' => 'Ipv6Address', 'arn' => 'acs:vpc:{#regionId}:{#accountId}:ipv6address/{#Ipv6AddressId}'], ], ], ]; -- cgit v1.2.3