From 7347bac4ab7e136157fc94777e6cf87ef9e08599 Mon Sep 17 00:00:00 2001 From: Zhineng Li Date: Fri, 13 Feb 2026 10:54:11 +0800 Subject: first commit --- data/en_us/slb/2014-05-15/api-docs.php | 22311 +++++++++++++++++++++++++++++++ 1 file changed, 22311 insertions(+) create mode 100644 data/en_us/slb/2014-05-15/api-docs.php (limited to 'data/en_us/slb/2014-05-15') diff --git a/data/en_us/slb/2014-05-15/api-docs.php b/data/en_us/slb/2014-05-15/api-docs.php new file mode 100644 index 0000000..4a7f5ff --- /dev/null +++ b/data/en_us/slb/2014-05-15/api-docs.php @@ -0,0 +1,22311 @@ + '1.0', + 'info' => [ + 'style' => 'RPC', + 'product' => 'Slb', + 'version' => '2014-05-15', + ], + 'directories' => [ + [ + 'id' => 68272, + 'title' => 'Query resources', + 'type' => 'directory', + 'children' => [ + 'DescribeAvailableResource', + ], + ], + [ + 'id' => 68274, + 'title' => 'Region and zone management', + 'type' => 'directory', + 'children' => [ + 'DescribeRegions', + 'DescribeZones', + ], + ], + [ + 'id' => 68277, + 'title' => 'Classic Load Balancer instances', + 'type' => 'directory', + 'children' => [ + 'CreateLoadBalancer', + 'DeleteLoadBalancer', + 'ModifyLoadBalancerInstanceSpec', + 'ModifyLoadBalancerInternetSpec', + 'ModifyLoadBalancerPayType', + 'SetLoadBalancerDeleteProtection', + 'SetLoadBalancerModificationProtection', + 'SetLoadBalancerName', + 'SetLoadBalancerStatus', + 'ModifyLoadBalancerInstanceChargeType', + 'DescribeLoadBalancerAttribute', + 'DescribeLoadBalancers', + ], + ], + [ + 'id' => 68332, + 'title' => 'Listeners', + 'type' => 'directory', + 'children' => [ + 'DeleteLoadBalancerListener', + 'StartLoadBalancerListener', + 'StopLoadBalancerListener', + 'DescribeLoadBalancerListeners', + ], + ], + [ + 'id' => 183721, + 'title' => 'TCP listeners', + 'type' => 'directory', + 'children' => [ + 'CreateLoadBalancerTCPListener', + 'SetLoadBalancerTCPListenerAttribute', + 'DescribeLoadBalancerTCPListenerAttribute', + ], + ], + [ + 'id' => 183722, + 'title' => 'UDP listeners', + 'type' => 'directory', + 'children' => [ + 'CreateLoadBalancerUDPListener', + 'SetLoadBalancerUDPListenerAttribute', + 'DescribeLoadBalancerUDPListenerAttribute', + ], + ], + [ + 'id' => 183723, + 'title' => 'HTTP listeners', + 'type' => 'directory', + 'children' => [ + 'CreateLoadBalancerHTTPListener', + 'SetLoadBalancerHTTPListenerAttribute', + 'DescribeLoadBalancerHTTPListenerAttribute', + ], + ], + [ + 'id' => 183724, + 'title' => 'HTTPS listeners', + 'type' => 'directory', + 'children' => [ + 'CreateLoadBalancerHTTPSListener', + 'SetLoadBalancerHTTPSListenerAttribute', + 'DescribeLoadBalancerHTTPSListenerAttribute', + ], + ], + [ + 'id' => 68289, + 'title' => 'Forwarding rules', + 'type' => 'directory', + 'children' => [ + 'CreateRules', + 'SetRule', + 'DeleteRules', + 'DescribeRuleAttribute', + 'DescribeRules', + ], + ], + [ + 'id' => 183725, + 'title' => 'Default server group', + 'type' => 'directory', + 'children' => [ + 'AddBackendServers', + 'DescribeHealthStatus', + 'RemoveBackendServers', + 'SetBackendServers', + ], + ], + [ + 'id' => 68320, + 'title' => 'vServer groups', + 'type' => 'directory', + 'children' => [ + 'CreateVServerGroup', + 'DeleteVServerGroup', + 'SetVServerGroupAttribute', + 'DescribeVServerGroups', + 'DescribeVServerGroupAttribute', + 'AddVServerGroupBackendServers', + 'ModifyVServerGroupBackendServers', + 'RemoveVServerGroupBackendServers', + ], + ], + [ + 'id' => 68310, + 'title' => 'Primary secondary server groups', + 'type' => 'directory', + 'children' => [ + 'CreateMasterSlaveServerGroup', + 'DeleteMasterSlaveServerGroup', + 'DescribeMasterSlaveServerGroupAttribute', + 'DescribeMasterSlaveServerGroups', + ], + ], + [ + 'id' => 68359, + 'title' => 'Certificates', + 'type' => 'directory', + 'children' => [ + 'DeleteCACertificate', + 'DeleteServerCertificate', + 'SetCACertificateName', + 'SetServerCertificateName', + 'DescribeCACertificates', + 'DescribeServerCertificates', + 'UploadCACertificate', + 'UploadServerCertificate', + ], + ], + [ + 'id' => 68293, + 'title' => 'Domain name extensions', + 'type' => 'directory', + 'children' => [ + 'CreateDomainExtension', + 'SetDomainExtensionAttribute', + 'DeleteDomainExtension', + 'DescribeDomainExtensionAttribute', + 'DescribeDomainExtensions', + ], + ], + [ + 'id' => 183697, + 'title' => 'TLS policies', + 'type' => 'directory', + 'children' => [ + 'CreateTLSCipherPolicy', + 'DeleteTLSCipherPolicy', + 'SetTLSCipherPolicyAttribute', + 'ListTLSCipherPolicies', + ], + ], + [ + 'id' => 68298, + 'title' => 'Access control', + 'type' => 'directory', + 'children' => [ + 'CreateAccessControlList', + 'AddAccessControlListEntry', + 'DeleteAccessControlList', + 'SetAccessControlListAttribute', + 'DescribeAccessControlListAttribute', + 'DescribeAccessControlLists', + 'RemoveAccessControlListEntry', + ], + ], + [ + 'id' => 68329, + 'title' => 'Access control (earlier version)', + 'type' => 'directory', + 'children' => [ + 'SetListenerAccessControlStatus', + 'RemoveListenerWhiteListItem', + 'AddListenerWhiteListItem', + 'DescribeListenerAccessControlAttribute', + ], + ], + [ + 'id' => 68352, + 'title' => 'Tags', + 'type' => 'directory', + 'children' => [ + 'AddTags', + 'DescribeTags', + 'ListTagResources', + 'TagResources', + 'UntagResources', + 'RemoveTags', + ], + ], + [ + 'id' => 177279, + 'title' => 'Access logs', + 'type' => 'directory', + 'children' => [ + 'DeleteAccessLogsDownloadAttribute', + 'SetAccessLogsDownloadAttribute', + 'DescribeAccessLogsDownloadAttribute', + ], + ], + [ + 'id' => 179251, + 'title' => 'Fine-grained monitoring', + 'type' => 'directory', + 'children' => [ + 'EnableHighDefinationMonitor', + 'ModifyHighDefinationMonitor', + 'DescribeHighDefinationMonitor', + ], + ], + [ + 'id' => 183120, + 'title' => 'Resource group', + 'type' => 'directory', + 'children' => [ + 'MoveResourceGroup', + ], + ], + ], + 'components' => [ + 'schemas' => [], + ], + 'apis' => [ + 'DescribeAvailableResource' => [ + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'none', + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'AddressType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The network type.'."\n" + ."\n" + .'Valid values: **vpc, classic-internet, and classic-intranet**.'."\n" + ."\n" + .'vpc: an internal Classic Load Balancer (CLB) instance that is deployed in a virtual private cloud (VPC).'."\n" + ."\n" + .'classic_internet: a public-facing CLB instance.'."\n" + ."\n" + .'classic_intranet: an internal CLB instance that is deployed in a classic network.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'vpc', + ], + ], + [ + 'name' => 'AddressIPVersion', + 'in' => 'query', + 'schema' => [ + 'description' => 'The type of the IP address.'."\n" + ."\n" + .'Valid values: **ipv4 and ipv6**.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'ipv4', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '173B0EEA-22ED-4EE2-91F9-3A1CDDFFBBBA', + ], + 'AvailableResources' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'AvailableResource' => [ + 'description' => 'The zones and the supported resources.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'SlaveZoneId' => [ + 'description' => 'The secondary zone.'."\n", + 'type' => 'string', + 'example' => 'cn-shanghai-b', + ], + 'MasterZoneId' => [ + 'description' => 'The primary zone.'."\n", + 'type' => 'string', + 'example' => 'cn-shanghai-a', + ], + 'SupportResources' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'SupportResource' => [ + 'description' => 'The supported resources.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'AddressType' => [ + 'description' => 'The network type.'."\n" + ."\n" + .'Valid values: **vpc, classic-internet, and classic-intranet**.'."\n", + 'type' => 'string', + 'example' => 'classic_internet', + ], + 'AddressIPVersion' => [ + 'description' => 'The type of the IP address.'."\n" + ."\n" + .'Valid values: **ipv4 and ipv6**.'."\n", + 'type' => 'string', + 'example' => 'ipv4', + ], + ], + ], + ], + ], + ], + ], + ], + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"173B0EEA-22ED-4EE2-91F9-3A1CDDFFBBBA\\",\\n \\"AvailableResources\\": {\\n \\"AvailableResource\\": [\\n {\\n \\"SlaveZoneId\\": \\"cn-shanghai-b\\",\\n \\"MasterZoneId\\": \\"cn-shanghai-a\\",\\n \\"SupportResources\\": {\\n \\"SupportResource\\": [\\n {\\n \\"AddressType\\": \\"vpc\\",\\n \\"AddressIPVersion\\": \\"ipv4\\"\\n }\\n ]\\n }\\n }\\n ]\\n }\\n}","type":"json"}]', + 'title' => 'DescribeAvailableResource', + 'summary' => 'Queries the available resources and resources that are available for purchase in the zones of a region.', + 'description' => '> Only the available resources and zones are returned.'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'DescribeRegions' => [ + 'summary' => 'Queries available regions.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'get', + 'abilityTreeCode' => '88601', + 'abilityTreeNodes' => [ + 'FEATUREslbL5KCST', + ], + 'tenantRelevance' => 'publicInformation', + ], + 'parameters' => [ + [ + 'name' => 'AcceptLanguage', + 'in' => 'query', + 'schema' => [ + 'description' => 'The supported language. Valid values:'."\n" + ."\n" + .'* zh-CN: Chinese'."\n" + .'* en-US: English'."\n" + .'* ja: Japanese'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'zh-CN', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the region.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.', + 'type' => 'string', + 'example' => '1651FBB6-4FBF-49FF-A9F5-DF5D696C7EC6', + ], + 'Regions' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Region' => [ + 'description' => 'The list of regions.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'RegionEndpoint' => [ + 'description' => 'The endpoint of the region.'."\n", + 'type' => 'string', + 'example' => 'slb.aliyuncs.com', + ], + 'LocalName' => [ + 'description' => 'The name of the region.'."\n", + 'type' => 'string', + 'example' => 'China (Beijing)', + ], + 'RegionId' => [ + 'description' => 'The ID of the region.'."\n", + 'type' => 'string', + 'example' => 'cn-beijing', + ], + ], + ], + ], + ], + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'InvalidParameter', + ], + [ + 'errorCode' => 'LocationServiceTimeout', + 'errorMessage' => 'Location service connection timeout. Please try again later.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"1651FBB6-4FBF-49FF-A9F5-DF5D696C7EC6\\",\\n \\"Regions\\": {\\n \\"Region\\": [\\n {\\n \\"RegionEndpoint\\": \\"slb.aliyuncs.com\\",\\n \\"LocalName\\": \\"华北2(北京)\\",\\n \\"RegionId\\": \\"cn-beijing\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 1651FBB6-4FBF-49FF-A9F5-DF5D696C7EC6\\n \\n slb.aliyuncs.com\\n 华北2(北京)\\n cn-beijing\\n \\n","errorExample":""}]', + 'title' => 'DescribeRegions', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'DescribeZones' => [ + 'summary' => 'Queries the zones in a region.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '88615', + 'abilityTreeNodes' => [ + 'FEATUREslbL5KCST', + ], + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the Server Load Balancer (SLB) instance.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'AcceptLanguage', + 'in' => 'query', + 'schema' => [ + 'type' => 'string', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'A48D35FF-440A-4BC0-A4A2-A9BF69B7E43A', + ], + 'Zones' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Zone' => [ + 'description' => 'The zones.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'ZoneId' => [ + 'description' => 'The ID of the zone.'."\n", + 'type' => 'string', + 'example' => 'cn-hangzhou-b', + ], + 'LocalName' => [ + 'description' => 'The name of the zone.'."\n", + 'type' => 'string', + 'example' => 'The list of secondary zones.'."\n", + ], + 'SlaveZones' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'SlaveZone' => [ + 'description' => 'The secondary zones.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'ZoneId' => [ + 'description' => 'The ID of the secondary zone.'."\n", + 'type' => 'string', + 'example' => 'cn-hangzhou-g', + ], + 'LocalName' => [ + 'description' => 'The name of the secondary zone.'."\n", + 'type' => 'string', + 'example' => 'Queries zones in a specified region.', + ], + ], + ], + ], + ], + ], + ], + ], + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'InvalidParameter', + ], + ], + 403 => [ + [ + 'errorCode' => 'UnauthorizedRegion', + 'errorMessage' => 'The specified region of is not authorized.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"A48D35FF-440A-4BC0-A4A2-A9BF69B7E43A\\",\\n \\"Zones\\": {\\n \\"Zone\\": [\\n {\\n \\"ZoneId\\": \\"cn-hangzhou-b\\",\\n \\"LocalName\\": \\"Hangzhou Zone B\\",\\n \\"SlaveZones\\": {\\n \\"SlaveZone\\": [\\n {\\n \\"ZoneId\\": \\"cn-hangzhou-g\\",\\n \\"LocalName\\": \\"Hangzhou Zone G\\"\\n }\\n ]\\n }\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n A48D35FF-440A-4BC0-A4A2-A9BF69B7E43A\\n \\n cn-hangzhou-b\\n 华东 1 可用区 B\\n \\n cn-hangzhou-g\\n 华东 1 可用区 G\\n \\n \\n","errorExample":""}]', + 'title' => 'DescribeZones', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'CreateLoadBalancer' => [ + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'create', + 'riskType' => 'none', + 'chargeType' => 'paid', + 'abilityTreeCode' => '88523', + 'abilityTreeNodes' => [ + 'FEATUREslbOL61C3', + 'FEATUREslbMJNWX5', + 'FEATUREslbPXBZ65', + 'FEATUREslbFSBXXR', + 'FEATUREslb4A0V0T', + ], + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the CLB instance.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~DescribeRegions~~) operation to query the most recent region list.', + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'AddressType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The network type of the CLB instance. Valid values:'."\n" + ."\n" + .'* **internet**: After an Internet-facing CLB instance is created, the system allocates a public IP address to the instance. The CLB instance can forward requests over the Internet.'."\n" + .'* **intranet**: After an internal-facing CLB instance is created, the system allocates a private IP address to the CLB instance. The CLB instance can forward requests only within the VPC.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'internet', + 'default' => 'internet', + ], + ], + [ + 'name' => 'InternetChargeType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The metering method of the Internet-facing CLB instance. Valid values:'."\n" + ."\n" + .'* **paybytraffic** (default): pay-by-data-transfer'."\n" + ."\n" + .' > If you set InternetChargeType to **paybytraffic**, you do not need to configure the **Bandwidth** parameter. The value of **Bandwidth** does not take effect even if you specify one.'."\n" + ."\n" + .'* **paybybandwidth**: pay-by-bandwidth'."\n" + ."\n" + .'> If you set **PayType** to **PayOnDemand** and **InstanceChargeType** to **PayByCLCU**, the only valid value for InternetChargeType is **paybytraffic**.', + 'type' => 'string', + 'required' => false, + 'example' => 'paybytraffic', + 'default' => 'paybytraffic', + ], + ], + [ + 'name' => 'Bandwidth', + 'in' => 'query', + 'schema' => [ + 'description' => 'The maximum bandwidth of the listener. Unit: Mbit/s.'."\n" + ."\n" + .'Valid values: **1** to **5120**. For a pay-by-bandwidth Internet-facing CLB instance, you can specify a maximum bandwidth for each listener. The sum of the maximum bandwidth of all listeners cannot exceed the maximum bandwidth of the CLB instance.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'maximum' => '5000', + 'minimum' => '1', + 'example' => '10', + 'default' => '-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.'."\n" + ."\n" + .'> If you do not specify this parameter, the system uses the **request ID** as the **client token**. The **request ID** may be different for each request.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '593B0448-D13E-4C56-AC0D-FDF0FDE0E9A3', + ], + ], + [ + 'name' => 'LoadBalancerName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The CLB instance name.'."\n" + ."\n" + .'The name must be 1 to 80 characters in length, and can contain digits, periods (.), underscores (\\_), and hyphens (-). It must start with a letter.'."\n" + ."\n" + .'If you do not specify this parameter, the system automatically assigns a name to the CLB instance.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'lb-bp1o94dp5i6ea****', + ], + ], + [ + 'name' => 'VpcId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the virtual private cloud (VPC) to which the CLB instance belongs.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'vpc-bp1aevy8sofi8mh1****', + ], + ], + [ + 'name' => 'VSwitchId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the vSwitch to which the CLB instance belongs.'."\n" + ."\n" + .'If you want to deploy the CLB instance in a VPC, this parameter is required. If this parameter is specified, **AddessType** is set to **intranet** by default.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'vsw-bp12mw1f8k3jgy****', + ], + ], + [ + 'name' => 'MasterZoneId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the primary zone to which the CLB instance belongs.'."\n" + ."\n" + .'You can call the [DescribeZone](~~2401683~~) operation to query the primary and secondary zones in the region where you want to create the CLB instance.', + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou-b', + ], + ], + [ + 'name' => 'SlaveZoneId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the secondary zone to which the CLB instance belongs.'."\n" + ."\n" + .'You can call the [DescribeZone](~~2401683~~) operation to query the primary and secondary zones in the region where you want to create the CLB instance.', + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou-d', + ], + ], + [ + 'name' => 'LoadBalancerSpec', + 'in' => 'query', + 'schema' => [ + 'description' => 'The specification of the CLB instance. Valid values:'."\n" + ."\n" + .'* **slb.s1.small**'."\n" + ."\n" + .'* **slb.s2.small**'."\n" + ."\n" + .'* **slb.s2.medium**'."\n" + ."\n" + .'* **slb.s3.small**'."\n" + ."\n" + .'* **slb.s3.medium**'."\n" + ."\n" + .'* **slb.s3.large**'."\n" + ."\n" + .' '."\n" + .' > If you do not specify this parameter, a shared-resource CLB instance is created. Shared-resource CLB instances are no longer available for purchase. Therefore, you must specify this parameter.'."\n" + ."\n" + .'If **InstanceChargeType** is set to **PayByCLCU**, this parameter is invalid and you do not need to specify this parameter.', + 'type' => 'string', + 'required' => false, + 'example' => 'slb.s1.small', + ], + ], + [ + 'name' => 'ResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the resource group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-atstuj3rtopt****', + ], + ], + [ + 'name' => 'PayType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The billing method of the CLB instance. Valid values:'."\n" + ."\n" + .'**PayOnDemand**: pay-as-you-go.'."\n" + ."\n" + .'> The Alibaba Cloud International site supports only pay-as-you-go CLB instances.'."\n", + 'type' => 'string', + 'deprecated' => true, + 'required' => false, + 'example' => 'PayOnDemand', + 'default' => 'PayOnDemand', + ], + ], + [ + 'name' => 'PricingCycle', + 'in' => 'query', + 'schema' => [ + 'description' => 'The billing cycle of the subscription Internet-facing CLB instance. Valid values:'."\n" + ."\n" + .'* **month**'."\n" + .'* **year**'."\n" + ."\n" + .'> This parameter is supported only by subscription instances created on the Alibaba Cloud China site.'."\n", + 'type' => 'string', + 'deprecated' => true, + 'required' => false, + 'example' => 'month', + ], + ], + [ + 'name' => 'Duration', + 'in' => 'query', + 'schema' => [ + 'description' => 'The subscription duration of the Internet-facing CLB instance. Valid values:'."\n" + ."\n" + .'* If **PricingCycle** is set to **month**, the valid values are **1 to 9**.'."\n" + .'* If **PricingCycle** is set to **year**, the valid values are **1 to 5**.'."\n" + ."\n" + .'> This parameter is supported only by subscription instances created on the Alibaba Cloud China site.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'deprecated' => true, + 'required' => false, + 'minimum' => '1', + 'example' => '1', + ], + ], + [ + 'name' => 'AutoPay', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to automatically pay the subscription fee of the Internet-facing CLB instance. Valid values:'."\n" + ."\n" + .'* **true**: yes. The CLB instance is created after you call the API operation.'."\n" + .'* **false** (default): After you call the operation, the order is created but the payment is not completed. You can view pending orders in the console. The CLB instance will not be created until you complete the payment.'."\n" + ."\n" + .'> This parameter takes effect only for subscription CLB instances created on the Alibaba Cloud China site.', + 'type' => 'boolean', + 'deprecated' => true, + 'required' => false, + 'example' => 'true', + 'default' => 'false', + ], + ], + [ + 'name' => 'AddressIPVersion', + 'in' => 'query', + 'schema' => [ + 'description' => 'The IP version of the CLB instance. Valid values: **ipv4** and **ipv6**.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'ipv4', + 'default' => 'ipv4', + ], + ], + [ + 'name' => 'Address', + 'in' => 'query', + 'schema' => [ + 'description' => 'The private IP address of the CLB instance. The private IP address must belong to the destination CIDR block of the vSwitch.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '192.168.XX.XX', + ], + ], + [ + 'name' => 'Tag', + 'in' => 'query', + 'allowEmptyValue' => true, + 'style' => 'repeatList', + 'schema' => [ + 'description' => 'The tags.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The tags.'."\n", + 'type' => 'object', + 'properties' => [ + 'Key' => [ + 'description' => 'The tag key of the bastion host. Valid values of N: **1 to 20**. The tag key cannot be an empty string.'."\n" + ."\n" + .'The tag key can be at most 64 characters in length, and cannot contain `http://` or `https://`. It must not start with `aliyun` or `acs:`.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'test', + ], + 'Value' => [ + 'description' => 'The tag value. Valid values of N: **1 to 20**. 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`. The tag value cannot contain `http://` or `https://`.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'value', + ], + ], + 'required' => false, + ], + 'required' => false, + 'maxItems' => 20, + ], + ], + [ + 'name' => 'DeleteProtection', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to enable deletion protection for the CLB instance. Valid values:'."\n" + ."\n" + .'* **on**'."\n" + .'* **off**'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'on', + 'default' => 'off', + ], + ], + [ + 'name' => 'ModificationProtectionStatus', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to enable the configuration read-only mode. Valid values:'."\n" + ."\n" + .'* **NonProtection**: disables the configuration read-only mode. After you disable the configuration read-only mode, the value of **ModificationProtectionReason** is cleared.'."\n" + .'* **ConsoleProtection**: enables the configuration read-only mode.'."\n" + ."\n" + .'> If you set this parameter to **ConsoleProtection**, you cannot modify instance configurations in the CLB console. However, you can modify instance configurations by calling API operations.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'ConsoleProtection', + ], + ], + [ + 'name' => 'ModificationProtectionReason', + 'in' => 'query', + 'schema' => [ + 'description' => 'The reason for enabling the configuration read-only mode. The reason must be 1 to 80 characters in length. It must start with a letter and can contain letters, digits, periods (.), underscores (\\_), and hyphens (-).'."\n" + ."\n" + .'> This parameter takes effect only when **ModificationProtectionStatus** is set to **ConsoleProtection**.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'Managed instance', + ], + ], + [ + 'name' => 'InstanceChargeType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The metering method of the CLB instance. Valid values:'."\n" + ."\n" + .'* **PayBySpec** (default)'."\n" + .'* **PayByCLCU**'."\n" + ."\n" + .'> This parameter is supported only by instances created on the Alibaba Cloud China site and only when **PayType** is set to **PayOnDemand**.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'PayBySpec', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'VpcId' => [ + 'description' => 'The ID of the VPC to which the CLB instance belongs.'."\n", + 'type' => 'string', + 'example' => 'vpc-25dvzy9****', + ], + 'AddressIPVersion' => [ + 'description' => 'The IP version that is used by the CLB instance.'."\n", + 'type' => 'string', + 'example' => 'ipv4', + ], + 'VSwitchId' => [ + 'description' => 'The ID of the vSwitch to which the CLB instance belongs.'."\n", + 'type' => 'string', + 'example' => 'vsw-255ecr****', + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '365F4154-92F6-4AE4-92F8-7FF34B540710', + ], + 'LoadBalancerName' => [ + 'description' => 'The CLB instance name.'."\n", + 'type' => 'string', + 'example' => 'lb-bp1o94dp5i6ea****', + ], + 'LoadBalancerId' => [ + 'description' => 'The CLB instance ID.'."\n", + 'type' => 'string', + 'example' => 'lb-hddhfjg****', + ], + 'ResourceGroupId' => [ + 'description' => 'The ID of the resource group to which the CLB instance belongs.'."\n", + 'type' => 'string', + 'example' => 'rg-atstuj3rto****', + ], + 'Address' => [ + 'description' => 'The IP address that is allocated to the CLB instance.'."\n", + 'type' => 'string', + 'example' => '42.XX.XX.6', + ], + 'NetworkType' => [ + 'description' => 'The network type of the CLB instance. Valid values:'."\n" + ."\n" + .'* **vpc**: VPC'."\n" + .'* **Classic**: classic network'."\n", + 'type' => 'string', + 'example' => 'classic', + ], + 'OrderId' => [ + 'description' => 'The order ID of the subscription CLB instance.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '20212961978****', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'OperationFailed.ZoneResourceLimit', + 'errorMessage' => 'The operation failed because of resource limit of the specified zone.', + ], + [ + 'errorCode' => 'CloudBoxNotSupportIpv6', + 'errorMessage' => 'The cloudBox instance does not support ipv6.', + ], + [ + 'errorCode' => 'CloudBoxNotSupportInternet', + 'errorMessage' => 'The cloudBox instance does not support internet.', + ], + [ + 'errorCode' => 'OperationFailed.RegionResourceLimit', + 'errorMessage' => 'The operation failed because of resource limit of the specified region.', + ], + [ + 'errorCode' => 'Operation.NotAllowed', + 'errorMessage' => 'Operation Denied. The charge type of internet prepay instance can only be paybybandwidth.', + ], + [ + 'errorCode' => 'OperationFailed.UnpaidBillsExist', + 'errorMessage' => 'The account has unpaid bills. Please pay your overdue bill first.', + ], + [ + 'errorCode' => 'RegionOrZonesNotSupportIpv6', + 'errorMessage' => 'The specified region or master/slave zones does not support ipv6.', + ], + [ + 'errorCode' => 'InvalidParameter.Mismatch', + 'errorMessage' => 'AddressType and IpVersion is conflict, IPv6 does not support intranet instance.', + ], + [ + 'errorCode' => 'PAYFOR.CREDIT_PAY_INSUFFICIENT_BALANCE', + 'errorMessage' => 'Your account does not have enough balance.', + ], + [ + 'errorCode' => 'HighRiskOperationDenied', + 'errorMessage' => 'The operation is denied because of high risk.', + ], + [ + 'errorCode' => 'VSwitchAvailableIpNotExist', + 'errorMessage' => 'The specified VSwitch has no availabe ip.', + ], + [ + 'errorCode' => 'VSwitchNotExist', + 'errorMessage' => 'The specified VSwitch does not exist.', + ], + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'Illegal parameter. The IP address is not in subnet.', + ], + [ + 'errorCode' => 'Instance.ShareSlbNotSupportPay95', + 'errorMessage' => 'Illegal parameter. The share instance not support PayBy95 or PayByOld95.', + ], + [ + 'errorCode' => 'Instance.Pay95RateInvalid', + 'errorMessage' => 'Illegal parameter. The rate is illegal.', + ], + [ + 'errorCode' => 'Instance.Pay95BandwidthIllegal', + 'errorMessage' => 'Illegal parameter. The bandwidth is illegal.', + ], + [ + 'errorCode' => 'Instance.InternetChargeTypeNotAllowed', + 'errorMessage' => 'Illegal parameter. The specified InternetChargeType not allowed.', + ], + [ + 'errorCode' => 'OperationFailed.TokenIsProcessing', + 'errorMessage' => 'The operation is failed, because the Client Token is processing.', + ], + [ + 'errorCode' => 'InsufficientBalance', + 'errorMessage' => 'Your account does not have enough balance.', + ], + [ + 'errorCode' => 'MissingParam.VSwitchId', + 'errorMessage' => 'The parameter VSwitchId is required.', + ], + [ + 'errorCode' => 'InvalidVpcId.NotExist', + 'errorMessage' => 'The specified VPC not exist.', + ], + [ + 'errorCode' => 'PAY.MAYI_WITHHOLDING_AGREEMENT_ILLEGAL', + 'errorMessage' => 'Your account did not sign a withholding agreement or no coupons in Alipay.', + ], + [ + 'errorCode' => 'InvalidParameter.CloudType', + 'errorMessage' => 'The specified CloudType is invalid.', + ], + [ + 'errorCode' => 'OperationFailed.InvalidAccount', + 'errorMessage' => 'The account information is incomplete.', + ], + [ + 'errorCode' => 'RegionOrZonesNotSupportCEN', + 'errorMessage' => 'The specified region or master/slave zones does not support cloudType of hybrid_cen.', + ], + [ + 'errorCode' => 'MissingParam.LoadBalancerSpec', + 'errorMessage' => 'The param LoadBalancerSpec is required.', + ], + [ + 'errorCode' => 'InvalidParameter.Bandwidth', + 'errorMessage' => 'The param Bandwidth is invalid.', + ], + [ + 'errorCode' => 'OperationForbidden.AccountRiskReject', + 'errorMessage' => 'The operation failed because of account risk reject.', + ], + [ + 'errorCode' => 'OperationForbidden.QuotaLimit', + 'errorMessage' => 'The operation failed because of quota limit of shared loadbalancers.', + ], + [ + 'errorCode' => 'InvalidParam.ModificationProtectionStatus', + 'errorMessage' => 'The param ModificationProtectionStatus is invalid.', + ], + [ + 'errorCode' => 'InvalidParam.ModificationProtectionReason', + 'errorMessage' => 'The param ModificationProtectionReason is invalid.', + ], + [ + 'errorCode' => 'ShareSlbHaltSales', + 'errorMessage' => 'The share instance has been discontinued.', + ], + [ + 'errorCode' => 'OperationFailed.CashBookInsufficient', + 'errorMessage' => 'No payment method is specified for your account, We recommend that you add a payment method or maintain a prepayment balance.', + ], + [ + 'errorCode' => 'OperationFailed.OnlyInnerCommoditySupportToPurchase', + 'errorMessage' => 'AliCroup2Cloud user only can buy inner commodity.', + ], + [ + 'errorCode' => 'OperationFailed.InvokeLingXiaoFailed', + 'errorMessage' => 'Failed to invoke lingxiao service.', + ], + [ + 'errorCode' => 'AllocateVpcInstanceFailed', + 'errorMessage' => 'Failed to allocate vpc instance.', + ], + [ + 'errorCode' => 'QueryCreditCtrlInfoFailed', + 'errorMessage' => 'Failed to query credit ctrl info.', + ], + [ + 'errorCode' => 'QueryCommodityCenterFailed', + 'errorMessage' => 'Failed to query commodity center.', + ], + [ + 'errorCode' => 'RegionNotSupportParameter', + 'errorMessage' => 'Current region does not support the param of %s.', + ], + [ + 'errorCode' => 'QueryAccountBookInfoFailed', + 'errorMessage' => 'Failed to invoke account book info.', + ], + [ + 'errorCode' => 'RateAccountFailed', + 'errorMessage' => 'Failed to rate account for pricing.', + ], + [ + 'errorCode' => 'TradeWaitDistributorAudit', + 'errorMessage' => 'The trade needs distributor to audit.', + ], + [ + 'errorCode' => 'OperationFailed.InvokeProxyFailed', + 'errorMessage' => 'Failed to invoke proxy.', + ], + [ + 'errorCode' => 'QueryAccountCompleteProgressFailed', + 'errorMessage' => 'Failed to query account progress.', + ], + [ + 'errorCode' => 'QueryVoucherInfoFailed', + 'errorMessage' => 'Failed to query voucher info.', + ], + [ + 'errorCode' => 'InvalidVSwitchId.NotFound', + 'errorMessage' => 'The specified vSwitch instance is invalid.', + ], + [ + 'errorCode' => 'IllegalParam.SpecType', + 'errorMessage' => 'The param of SpecType is illegal.', + ], + [ + 'errorCode' => 'MissingParam.SpecType', + 'errorMessage' => 'The param of SpecType is missing.', + ], + [ + 'errorCode' => 'UnsupportedRegion', + 'errorMessage' => 'The feature is not supported in current region.', + ], + [ + 'errorCode' => 'PayInsufficientBalance', + 'errorMessage' => 'Your account balance is insufficient.', + ], + [ + 'errorCode' => 'IllegalParam.InstanceChargeType', + 'errorMessage' => 'The parameter InstanceChargeType is illegal.', + ], + [ + 'errorCode' => 'SystemBusy', + 'errorMessage' => 'The system is busy.', + ], + [ + 'errorCode' => 'PRODUCT.NOT_AVAILABLE_IZ', + 'errorMessage' => 'The Instance zone id doesn t support', + ], + [ + 'errorCode' => 'PRICE.INQUIRY_FAILED', + 'errorMessage' => 'The instance pricing inquiry is failed.', + ], + [ + 'errorCode' => 'AssociateIpFail', + 'errorMessage' => 'The instance associating ip is failed.', + ], + [ + 'errorCode' => 'SDK.ServerUnreachable', + 'errorMessage' => 'Service is unreachable.', + ], + [ + 'errorCode' => 'OverQuota', + 'errorMessage' => 'The Total is over the quota', + ], + [ + 'errorCode' => 'InvalidParam.TagValue ', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'InvalidParam.TagKey', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'SizeLimitExceeded.Tag', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'MissingParam.TagKey', + 'errorMessage' => 'The param MissingParam.TagKey is missing.', + ], + [ + 'errorCode' => 'SubnetIpExhaust', + 'errorMessage' => 'No subnet IP addresses are available.', + ], + [ + 'errorCode' => 'BeforePayRuleBatchValidateError', + 'errorMessage' => 'The pre-payment rule center instance rule validation failed. Please check if the instance limit has been reached.', + ], + [ + 'errorCode' => 'TradeSyncCreateSubError', + 'errorMessage' => 'Subscription transfer failed.', + ], + [ + 'errorCode' => 'QueryOrderError', + 'errorMessage' => 'Failed to query the order. Please try again later.', + ], + [ + 'errorCode' => 'CreateOrderTimeout', + 'errorMessage' => 'Order creation timed out. Please try again later.', + ], + [ + 'errorCode' => 'MultiGrayKeyResourceInconsist', + 'errorMessage' => 'The identifier for the gray resource is set incorrectly.', + ], + [ + 'errorCode' => 'InsufficientAvailableQuota', + 'errorMessage' => 'Your account available balance is less than 0. Please recharge before attempting to make a purchase.', + ], + [ + 'errorCode' => 'Forbidden.AliGroupForbiddenRegion', + 'errorMessage' => 'Thre region is forbidden for aligroup user.', + ], + ], + 403 => [ + [ + 'errorCode' => 'SecurityRisk.AuthVerification', + 'errorMessage' => 'We have detected a security risk with your payment method. Please proceed with verification via the link in your email or console message and re-submit your order after verification.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"VpcId\\": \\"vpc-25dvzy9****\\",\\n \\"AddressIPVersion\\": \\"ipv4\\",\\n \\"VSwitchId\\": \\"vsw-255ecr****\\",\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF34B540710\\",\\n \\"LoadBalancerName\\": \\"lb-bp1o94dp5i6ea****\\",\\n \\"LoadBalancerId\\": \\"lb-hddhfjg****\\",\\n \\"ResourceGroupId\\": \\"rg-atstuj3rto****\\",\\n \\"Address\\": \\"42.XX.XX.6\\",\\n \\"NetworkType\\": \\"classic\\",\\n \\"OrderId\\": 0\\n}","errorExample":""},{"type":"xml","example":"\\n vpc-25dvzy9****\\n ipv4\\n vsw-255ecr****\\n 365F4154-92F6-4AE4-92F8-7FF34B540710\\n lb-bp1o94dp5i6ea****\\n lb-hddhfjg****\\n rg-atstuj3rto****\\n
42.XX.XX.6
\\n classic\\n
","errorExample":""}]', + 'title' => 'CreateLoadBalancer', + 'summary' => 'Creates a Classic Load Balancer (CLB) instance.', + 'description' => '* Before you create a CLB instance, call the [DescribeAvailableResource](~~DescribeAvailableResource~~) operation to query the resources available for purchase in the region where you want to create the CLB instance.'."\n" + .'* After a CLB instance is created, you are charged for using the CLB instance.'."\n" + .'* The pay-as-you-go billing method supports the pay-by-specification and pay-by-LCU metering methods.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'DeleteLoadBalancer' => [ + 'summary' => 'Deletes a pay-as-you-go Server Load Balancer (SLB) instance.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'delete', + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the SLB instance.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~27584~~) operation to query the most recent region list.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'LoadBalancerId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The SLB instance ID.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'lb-bp1h66tp5uat8********', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidChargeType', + 'errorMessage' => 'The prepay loadBalancer does not support this action.', + ], + [ + 'errorCode' => 'Operation.NotAllowed', + 'errorMessage' => 'Operation Denied. Unfinished order exists.', + ], + [ + 'errorCode' => 'OperationDenied.DeleteProtectionIsOn', + 'errorMessage' => 'The loadbalancer can not be deleted due to DeleteProtection is enabled.', + ], + [ + 'errorCode' => 'NoPermission.AliyunServiceRoleForSlbEipAccess', + 'errorMessage' => 'You are not authorized to create the service linked role. Role Name: AliyunServiceRoleForSlbEipAccess. Service Name: eipaccess.slb.aliyuncs.com. Please ensure the user has been granted the ram:CreateServiceLinkedRole permission ', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\"\\n}","type":"json"}]', + 'title' => 'DeleteLoadBalancer', + 'description' => '> The listeners and tags of the SLB instance are deleted along with the SLB instance.'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => 'If the SLB instance that you want to delete has deletion protection enabled, the system reports an error in the following formats:'."\n" + ."\n" + .'* JSON format'."\n" + ."\n" + .' {'."\n" + .' "RequestId": "7B7AB375-1EA6-4A18-9D1C-F258F2D57638",'."\n" + .' "HostId": "slb.aliyuncs.com",'."\n" + .' "Code": "OperationDenied.DeleteProtectionIsOn",'."\n" + .' "Message": "The loadbalancer can\'t be deleted due to DeleteProtection is enabled."'."\n" + .' }'."\n" + ."\n" + .'* XML format'."\n" + ."\n" + .' '."\n" + .' '."\n" + .' 7B7AB375-1EA6-4A18-9D1C-F258F2D57638'."\n" + .' slb.aliyuncs.com'."\n" + .' OperationDenied.DeleteProtectionIsOn'."\n" + .' The loadbalancer can\'t be deleted due to DeleteProtection is enabled.'."\n" + .' '."\n", + 'extraInfo' => ' ', + ], + 'ModifyLoadBalancerInstanceSpec' => [ + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'readAndWrite', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'update', + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the CLB instance.'."\n" + ."\n" + .'You can query the region ID from the [Regions and zones](~~40654~~) list or by calling the [DescribeRegions](~~27584~~) operation.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'LoadBalancerId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the CLB instance.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'lb-bp1b6c719df*********', + ], + ], + [ + 'name' => 'LoadBalancerSpec', + 'in' => 'query', + 'schema' => [ + 'description' => 'The specification of the CLB instance. Valid values:'."\n" + ."\n" + .'* **slb.s1.small**'."\n" + .'* **slb.s2.small**'."\n" + .'* **slb.s2.medium**'."\n" + .'* **slb.s3.small**'."\n" + .'* **slb.s3.medium**'."\n" + .'* **slb.s3.large**'."\n" + ."\n" + .'The specifications available vary by region. For more information about the specifications, see [High-performance CLB instance](~~85931~~).'."\n" + ."\n" + .'> When you switch a shared-resource CLB instance to a high-performance CLB instance, your service may be interrupted for 10 to 30 seconds. We recommend that you modify the specification during off-peak hours or use Alibaba Cloud DNS to schedule your workloads to another CLB instance before you modify the specification.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'slb.s2.small', + ], + ], + [ + 'name' => 'AutoPay', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to enable automatic payment. Valid values:'."\n" + ."\n" + .'* **true**: automatically completes the payment.'."\n" + .'* **false** (default): If you select this option, you must complete the payment in the Order Center.'."\n" + ."\n" + .'> This parameter takes effect only for subscription instances.'."\n", + 'type' => 'boolean', + 'required' => false, + 'example' => 'false', + 'default' => 'false', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'OrderId' => [ + 'description' => 'The order ID of the subscription CLB instance.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '201429619788910', + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '365F4154-92F6-4AE4-92F8-7FF34B540710', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'ModifySpecNotAllowed', + 'errorMessage' => 'LoadBalancerSpec not allowed for this instance', + ], + [ + 'errorCode' => 'Operation.NotAllowed', + 'errorMessage' => 'Operation Denied, Your account does not have enough balance.', + ], + [ + 'errorCode' => 'InvalidParameter.Bandwidth', + 'errorMessage' => 'The param Bandwidth is invalid.', + ], + [ + 'errorCode' => 'ChangeLbSpecNotAllowed', + 'errorMessage' => 'You cannot change the specification for the specified load balancer.', + ], + [ + 'errorCode' => 'OperationDenied.PayByCLCU', + 'errorMessage' => 'The operation is not allowed because the instanceChargeType of loadbalancer is PayByCLCU.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"OrderId\\": 201429619788910,\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF34B540710\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 201429619788910\\n 365F4154-92F6-4AE4-92F8-7FF34B540710\\n","errorExample":""}]', + 'title' => 'ModifyLoadBalancerInstanceSpec', + 'summary' => 'Modifies the specification of a Classic Load Balancer (CLB) instance.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'ModifyLoadBalancerInternetSpec' => [ + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'update', + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the region where the CLB instance is deployed.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~27584~~) operation to query the most recent region list.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'LoadBalancerId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the CLB instance.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'lb-bp1b6c719dfa08ex******', + ], + ], + [ + 'name' => 'InternetChargeType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The metering method of the Internet-facing CLB instance. Valid values:'."\n" + ."\n" + .'* **paybybandwidth**: pay-by-bandwidth'."\n" + .'* **paybytraffic**: pay-by-data-transfer'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'paybytraffic', + ], + ], + [ + 'name' => 'Bandwidth', + 'in' => 'query', + 'schema' => [ + 'description' => 'The maximum bandwidth of the Internet-facing CLB instance that uses the pay-by-bandwidth metering method. Unit: Mbit/s.'."\n" + ."\n" + .'Valid values: **1 to 5000**. The maximum bandwidth varies based on the region where the CLB instance is created.****'."\n" + ."\n" + .'> You do not need to specify this parameter if you set **InternetChargeType** to **paybytraffic** (pay-by-data-transfer).'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'maximum' => '5000', + 'minimum' => '1', + 'example' => '10', + 'default' => '-1', + ], + ], + [ + 'name' => 'AutoPay', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to automatically pay the subscription fee of the Internet-facing CLB instance. Valid values:'."\n" + ."\n" + .'* **true**: enables automatic payments. This is the default value.'."\n" + .'* **false**: disables automatic payment. You must complete the payment in Order Center.'."\n", + 'type' => 'boolean', + 'required' => false, + 'example' => 'false', + 'default' => 'false', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'OrderId' => [ + 'description' => 'The order ID of the subscription CLB instance.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '20142961978****', + ], + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'OperationFailed.UnpaidBillsExist', + 'errorMessage' => 'The account has unpaid bills. Please pay your overdue bill first.', + ], + [ + 'errorCode' => 'Operation.NotAllowed', + 'errorMessage' => 'Operation Denied. Unfinished order exists.', + ], + [ + 'errorCode' => 'Instance.ShareSlbNotSupportPay95', + 'errorMessage' => 'Illegal parameter. The share instance not support PayBy95 or PayByOld95.', + ], + [ + 'errorCode' => 'Instance.Pay95RateInvalid', + 'errorMessage' => 'Illegal parameter. The rate is illegal.', + ], + [ + 'errorCode' => 'Instance.Pay95BandwidthIllegal', + 'errorMessage' => 'Illegal parameter. The bandwidth is illegal.', + ], + [ + 'errorCode' => 'Instance.InternetChargeTypeNotAllowed', + 'errorMessage' => 'Illegal parameter. The specified InternetChargeType not allowed.', + ], + [ + 'errorCode' => 'PAYFOR.ACCOUNT_MONEY_VALIDATE_ERROR', + 'errorMessage' => 'Your channel partner account does not have sufficient funds, please contact your channel partner to recharge the account.', + ], + [ + 'errorCode' => 'OperationDenied.PayByCLCU', + 'errorMessage' => 'The operation is not allowed because the instanceChargeType of loadbalancer is PayByCLCU.', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"OrderId\\": 0,\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\"\\n}","type":"json"}]', + 'title' => 'ModifyLoadBalancerInternetSpec', + 'summary' => 'Modifies the metering method of an Internet-facing Classic Load Balancer (CLB) instance.', + 'description' => '## Description'."\n" + ."\n" + .'* If you modify only the maximum bandwidth of a pay-by-bandwidth CLB instance, the new bandwidth immediately takes effect.'."\n" + .'* If you modify the metering method (for example, switch from pay-by-bandwidth to pay-by-data-transfer), the new metering method and the other changes specified in the operation take effect at 00:00:00 the next day.'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'ModifyLoadBalancerPayType' => [ + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => true, + 'systemTags' => [ + 'operationType' => 'update', + 'abilityTreeCode' => '88634', + 'abilityTreeNodes' => [ + 'FEATUREslbMMPQ1U', + ], + 'autoTest' => false, + 'notSupportAutoTestReason' => '废弃', + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the region where the CLB instance is deployed.'."\n" + ."\n" + .'You can query the region ID from the [Regions and zones](~~40654~~) list or by calling the [DescribeRegions](~~25609~~) operation.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'LoadBalancerId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the CLB instance.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'lb-bp1b6c719dfa08ex*****', + ], + ], + [ + 'name' => 'PayType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The billing method of the CLB instance. Valid values:'."\n" + ."\n" + .'* **PayOnDemand** (default): pay-as-you-go'."\n" + ."\n" + .'To change the billing method of a pay-as-you-go CLB instance to subscription, you must set the parameter to **PrePay**. In addition, the previous billing method of the CLB instance must be **PayOnDemand**.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'PrePay', + 'default' => 'PrePay', + ], + ], + [ + 'name' => 'PricingCycle', + 'in' => 'query', + 'schema' => [ + 'description' => 'The billing cycle.'."\n" + ."\n" + .'Valid values: **year** and **month**.'."\n" + ."\n" + .'> This parameter is valid only when the **PayType** parameter is set to **PrePay**. This parameter is valid only for pay-as-you-go instances.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'month', + ], + ], + [ + 'name' => 'Duration', + 'in' => 'query', + 'schema' => [ + 'description' => 'The subscription duration.'."\n" + ."\n" + .'* If **PricingCycle** is set to **month**, the valid values are **1** to **9**.'."\n" + .'* If **PricingCycle** is set to **year**, the valid values are **1** to **3**.'."\n" + ."\n" + .'> This parameter is valid only when the **PayType** parameter is set to **PrePay**. This parameter is valid only for pay-as-you-go instances.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'minimum' => '1', + 'example' => '1', + ], + ], + [ + 'name' => 'AutoPay', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to enable automatic payment. Valid values:'."\n" + ."\n" + .'* **true**: yes'."\n" + .'* **false** (default): no'."\n" + ."\n" + .'> This parameter is valid only when the `PayType` parameter is set to **PrePay**. This parameter is valid only for pay-as-you-go instances.'."\n", + 'type' => 'boolean', + 'required' => false, + 'example' => 'false', + 'default' => 'false', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'OrderId' => [ + 'description' => 'The order ID of the subscription CLB instance.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '20212961978891', + ], + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => '365F4154-92F6-4AE4-92F8-7FF34B540710', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'Operation.NotAllowed', + 'errorMessage' => 'Cannot change internet payByTraffic loadBalancer from PayOnDemand to PrePay.', + ], + [ + 'errorCode' => 'OperationDenied.PayByCLCU', + 'errorMessage' => 'The operation is not allowed because the instanceChargeType of loadbalancer is PayByCLCU.', + ], + ], + ], + 'staticInfo' => [ + 'noSubstitutionReason' => '无替代API,历史原因导致该API被标记为弃用。', + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"OrderId\\": 20212961978891,\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF34B540710\\"\\n}","type":"json"}]', + 'title' => 'ModifyLoadBalancerPayType', + 'summary' => 'Changes the billing method of a Classic Load Balancer (CLB) instance from pay-as-you-go to subscription.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'SetLoadBalancerDeleteProtection' => [ + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'update', + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region where the SLB instance is deployed.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~27584~~) operation to query region IDs.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'LoadBalancerId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the SLB instance.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'lb-bp1b6c719dfa08e*****', + ], + ], + [ + 'name' => 'DeleteProtection', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specify whether to enable or disable deletion protection for the SLB instance.'."\n" + ."\n" + .'Valid values: **on and off**.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'off', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '791D8B68-AE0F-4174-AF54-088C8B3C5D54', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'OperationUnsupported.DeleteProtectionForPrePayInstance', + 'errorMessage' => 'The operation failed because prepay instance does not support delete protection.', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"791D8B68-AE0F-4174-AF54-088C8B3C5D54\\"\\n}","type":"json"}]', + 'title' => 'SetLoadBalancerDeleteProtection', + 'summary' => 'Enables or disables deletion protection for an SLB instance.', + ], + 'SetLoadBalancerModificationProtection' => [ + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'update', + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the CLB instance.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~27584~~) operation to query the most recent region list.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'LoadBalancerId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the CLB instance.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'lb-bp1b6c719dfa08e*****', + ], + ], + [ + 'name' => 'ModificationProtectionStatus', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to enable the configuration read-only mode. Valid values:'."\n" + ."\n" + .'* **NonProtection**: disables the configuration read-only mode. After you disable the configuration read-only mode, the value of **ModificationProtectionReason** is cleared.'."\n" + .'* **ConsoleProtection**: enables the configuration read-only mode.'."\n" + ."\n" + .'> If you set this parameter to **ConsoleProtection**, you cannot use the CLB console to modify instance configurations. However, you can call API operations to modify instance configurations.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'ConsoleProtection', + ], + ], + [ + 'name' => 'ModificationProtectionReason', + 'in' => 'query', + 'schema' => [ + 'description' => 'The reason why the configuration read-only mode is enabled. The value must be 1 to 80 characters in length. It must start with a letter and can contain letters, digits, periods (.), underscores (\\_), and hyphens (-).'."\n" + ."\n" + .'> This parameter is valid only if the **ModificationProtectionStatus** parameter is set to **ConsoleProtection**.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'Configuration change'."\n", + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => '791D8B68-AE0F-4174-AF54-088C8B3C5D54', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'OperationUnsupported.SetLoadBalancerStatus', + 'errorMessage' => 'The zone of the loadBalancer does not support this operation.', + ], + [ + 'errorCode' => 'InvalidParam.ModificationProtectionStatus', + 'errorMessage' => 'The param ModificationProtectionStatus is invalid.', + ], + [ + 'errorCode' => 'InvalidParam.ModificationProtectionReason', + 'errorMessage' => 'The param ModificationProtectionReason is invalid.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"791D8B68-AE0F-4174-AF54-088C8B3C5D54\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 791D8B68-AE0F-4174-AF54-088C8B3C5D54\\n","errorExample":""}]', + 'title' => 'SetLoadBalancerModificationProtection', + 'summary' => 'Enable or disable the configuration read-only mode for a Classic Load Balancer (CLB) instance.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'SetLoadBalancerName' => [ + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'update', + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the CLB instance.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~25609~~) operation to query the most recent region list.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'LoadBalancerId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the CLB instance.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'lb-bp1b6c719dfa08e******', + ], + ], + [ + 'name' => 'LoadBalancerName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The new name of the CLB instance.'."\n" + ."\n" + .'The name must be 1 to 80 characters in length, and can contain letters, digits, periods (.), underscores (\\_), and hyphens (-).'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'test1', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\"\\n}","errorExample":""},{"type":"xml","example":"\\n CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\n","errorExample":""}]', + 'title' => 'SetLoadBalancerName', + 'summary' => 'Changes the name of a Classic Load Balancer (CLB) instance.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'SetLoadBalancerStatus' => [ + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'update', + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the region where the CLB instance is deployed.'."\n" + ."\n" + .'You can query region IDs from the [Regions and zones](~~40654~~) list or by calling the [DescribeRegions](~~25609~~) operation.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'LoadBalancerId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the CLB instance.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'lb-bp1b6c719dfa08e******', + ], + ], + [ + 'name' => 'LoadBalancerStatus', + 'in' => 'query', + 'schema' => [ + 'description' => 'The state of the CLB instance. Valid values: **active** and **inactive**.'."\n" + ."\n" + .'* **active** (default)'."\n" + ."\n" + .' If a CLB instance is in the **active** state, listeners of the CLB instance can forward traffic based on forwarding rules.'."\n" + ."\n" + .' By default, newly created CLB instances are in the **active** state.'."\n" + ."\n" + .'* **inactive**'."\n" + ."\n" + .' If a CLB instance is in the **inactive** state, listeners of the CLB instance do not forward traffic.'."\n" + ."\n" + .'> If all listeners of a CLB instance are deleted, the CLB instance automatically switches to the **inactive** state.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'active', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'OperationUnsupported.SetLoadBalancerStatus', + 'errorMessage' => 'The zone of the loadBalancer does not support this operation.', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\"\\n}","type":"json"}]', + 'title' => 'SetLoadBalancerStatus', + 'summary' => 'Modifies the state of a Classic Load Balancer (CLB) instance.', + ], + 'ModifyLoadBalancerInstanceChargeType' => [ + 'summary' => 'Changes the metering method of a pay-as-you-go Classic Load Balancer (CLB) instance.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'update', + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the CLB instance.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~25609~~) operation to query the most recent region list.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'LoadBalancerId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the CLB instance.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'lb-bp1b3jus5hpenznuu****', + ], + ], + [ + 'name' => 'InternetChargeType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The metering method of Internet data transfer after the change.'."\n" + ."\n" + .'Valid value: **paybytraffic**.'."\n" + ."\n" + .'> * If the value of the **InstanceChargeType** parameter is set to **PayByCLCU**, only pay-by-data-transfer is supported.'."\n" + .'>* When you change the metering method, the new metering method takes effect at 00:00:00 the next day.', + 'type' => 'string', + 'required' => false, + 'example' => 'paybytraffic', + ], + ], + [ + 'name' => 'InstanceChargeType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The metering method of the instance after the change.'."\n" + ."\n" + .'Valid value: **PayByCLCU**. Only pay-by-LCU is supported.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'PayByCLCU', + ], + ], + [ + 'name' => 'LoadBalancerSpec', + 'in' => 'query', + 'schema' => [ + 'description' => 'The specification of the CLB instance.'."\n" + ."\n" + .'You do not need to set this parameter. For pay-as-you-go CLB instances, you can only change the metering method from pay-by-specification to pay-by-LCU. You cannot change the metering method from pay-by-LCU to pay-by-specification.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'slb.s1.small', + ], + ], + [ + 'name' => 'Bandwidth', + 'in' => 'query', + 'schema' => [ + 'description' => 'The maximum bandwidth of the Internet-facing CLB instance that is billed on a pay-by-bandwidth basis.'."\n" + ."\n" + .'You do not need to set this parameter. The metering method of Internet data transfer for pay-by-LCU instances supports only pay-by-traffic.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'maximum' => '5000', + 'minimum' => '1', + 'example' => '5', + 'default' => '-1', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => '365F4154-92F6-4AE4-92F8-7FF34B540710', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'OperationFailed.UnpaidBillsExist', + 'errorMessage' => 'The account has unpaid bills. Please pay your overdue bill first.', + ], + [ + 'errorCode' => 'Operation.NotAllowed', + 'errorMessage' => 'Operation Denied. Unfinished order exists.', + ], + [ + 'errorCode' => 'PAYFOR.ACCOUNT_MONEY_VALIDATE_ERROR', + 'errorMessage' => 'Your channel partner account does not have sufficient funds, please contact your channel partner to recharge the account.', + ], + [ + 'errorCode' => 'OperationDenied.PayByCLCU', + 'errorMessage' => 'The operation is not allowed because the instanceChargeType of loadbalancer is PayByCLCU.', + ], + [ + 'errorCode' => 'IllegalParam.InstanceChargeType', + 'errorMessage' => 'The parameter InstanceChargeType is illegal.', + ], + [ + 'errorCode' => 'IllegalParam.InternetChargeType', + 'errorMessage' => 'The parameter InternetChargeType is illegal.', + ], + [ + 'errorCode' => 'InvalidAction.RegionNotSupport', + 'errorMessage' => 'The region does not support this action.', + ], + [ + 'errorCode' => 'MissingParam.LoadBalancerSpec', + 'errorMessage' => 'The param LoadBalancerSpec is required.', + ], + [ + 'errorCode' => 'OperationDenied.PayBySpec', + 'errorMessage' => 'The operation is not allowed because the instanceChargeType of loadbalancer is PayBySpec.', + ], + [ + 'errorCode' => 'InvalidParameterBandwidth', + 'errorMessage' => 'The specified Bandwidth is invalid.', + ], + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The specified LoadBalancerSpec is invalid.', + ], + [ + 'errorCode' => 'Forbidden.LcuToSpec', + 'errorMessage' => 'User does not have permission modify InstanceChargeType to spec.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF34B540710\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 365F4154-92F6-4AE4-92F8-7FF34B540710\\n","errorExample":""}]', + 'title' => 'ModifyLoadBalancerInstanceChargeType', + 'description' => '> * For pay-as-you-go CLB instances, you can only change the metering method from pay-by-specification to pay-by-LCU. You cannot change the metering method from pay-by-LCU to pay-by-specification.'."\n" + .'>* This operation can change the metering method of only one instance at a time.', + ], + 'DescribeLoadBalancerAttribute' => [ + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'get', + 'abilityTreeCode' => '88574', + 'abilityTreeNodes' => [ + 'FEATUREslbL5KCST', + ], + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the CLB instance.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~25609~~) operation to query the most recent region list.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'LoadBalancerId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The CLB instance ID.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'lb-bp1b6c719dfa08ex****', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'VpcId' => [ + 'description' => 'The ID of the virtual private cloud (VPC) where the internal-facing CLB instance is deployed.'."\n", + 'type' => 'string', + 'example' => 'vpc-25dvzy9f8****', + ], + 'Tags' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Tag' => [ + 'description' => 'The tags.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'TagKey' => [ + 'description' => 'The tag key. Valid values of N: **1** to **20**. The tag key cannot be an empty string.'."\n" + ."\n" + .'The tag key can be at most 64 characters in length, and cannot contain `http://` or `https://`. It must not start with `aliyun` or `acs:`.'."\n", + 'type' => 'string', + 'example' => 'test', + ], + 'TagValue' => [ + 'description' => 'The tag value. Valid values of N: **1** to **20**. 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`. The tag value cannot contain `http://` or `https://`.'."\n", + 'type' => 'string', + 'example' => 'value', + ], + ], + ], + ], + ], + ], + 'CreateTimeStamp' => [ + 'description' => 'The timestamp generated when the CA certificate is uploaded.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1504147745000', + ], + 'CreateTime' => [ + 'description' => 'The time when the CLB instance was created. The time is in the `YYYY-MM-DDThh:mm:ssZ` format.'."\n", + 'type' => 'string', + 'example' => '2017-08-31T02:49:05Z', + ], + 'LoadBalancerId' => [ + 'description' => 'The CLB instance ID.'."\n", + 'type' => 'string', + 'example' => 'lb-bp1b6c719dfa08ex****', + ], + 'PayType' => [ + 'description' => 'The billing method of the CLB instance. Valid values:'."\n" + ."\n" + .'* Only **PayOnDemand** may be returned, which indicates the pay-as-you-go billing method.'."\n", + 'type' => 'string', + 'example' => 'PayOnDemand', + ], + 'AddressType' => [ + 'description' => 'The address type of the CLB instance.'."\n", + 'type' => 'string', + 'example' => 'internet', + ], + 'NetworkType' => [ + 'description' => 'The network type of the CLB instance.'."\n", + 'type' => 'string', + 'example' => 'vpc', + ], + 'AddressIPVersion' => [ + 'description' => 'The version of the IP address. Valid values: **ipv4** and **ipv6**.'."\n", + 'type' => 'string', + 'example' => 'ipv4', + ], + 'RenewalCycUnit' => [ + 'description' => 'The auto-renewal cycle. Valid values: **Year** and **Month**. Default value: Month.'."\n" + ."\n" + .'> This parameter is valid only if you create a subscription CLB instance on the Alibaba Cloud China site. In this case, **PayType** must be set to **PrePay** and **RenewalStatus** must be set to **AutoRenewal**.'."\n", + 'type' => 'string', + 'example' => 'Month', + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '365F4154-92F6-4AE4-92F8-7FF34B540710', + ], + 'Bandwidth' => [ + 'description' => 'The maximum bandwidth of the Internet-facing CLB instance that is billed on a pay-by-bandwidth basis.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '5', + ], + 'LoadBalancerName' => [ + 'description' => 'The name of the CLB instance.'."\n", + 'type' => 'string', + 'example' => 'lb-instance-test', + ], + 'Address' => [ + 'description' => 'The service IP address of the CLB instance.'."\n", + 'type' => 'string', + 'example' => '42.XX.XX.6', + ], + 'SlaveZoneId' => [ + 'description' => 'The ID of the secondary zone to which the CLB instance belongs.'."\n", + 'type' => 'string', + 'example' => 'cn-hangzhou-d', + ], + 'EndTimeStamp' => [ + 'description' => 'The timestamp that indicates the expiration time of the CLB instance.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '32493801600000', + ], + 'MasterZoneId' => [ + 'description' => 'The ID of the primary zone to which the CLB instance belongs.'."\n", + 'type' => 'string', + 'example' => 'cn-hangzhou-b', + ], + 'LoadBalancerSpec' => [ + 'description' => 'The specification of the CLB instance.'."\n" + ."\n" + .'> Pay-as-you-go CLB instances are not subject to specifications. By default, **slb.lcu.elastic** is returned.'."\n", + 'type' => 'string', + 'example' => 'slb.s1.small', + ], + 'AutoReleaseTime' => [ + 'description' => 'The timestamp generated when the CLB instance is released.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1513947075000', + ], + 'ModificationProtectionReason' => [ + 'description' => 'The reason why the configuration read-only mode is enabled. The value is 1 to 80 characters in length. It starts with a letter and can contain digits, periods (.), underscores (\\_), and hyphens (-).'."\n" + ."\n" + .'> This parameter is valid only when **ModificationProtectionStatus** is set to **ConsoleProtection**.'."\n", + 'type' => 'string', + 'example' => 'Managed instance', + ], + 'RegionId' => [ + 'description' => 'The region ID of the CLB instance.'."\n", + 'type' => 'string', + 'example' => 'cn-hangzhou', + ], + 'ModificationProtectionStatus' => [ + 'description' => 'Indicates whether the configuration read-only mode is enabled. Valid values:'."\n" + ."\n" + .'* **NonProtection**: The configuration read-only mode is disabled. After you disable the configuration read-only mode, the value of **ModificationProtectionReason** is cleared.'."\n" + .'* **ConsoleProtection**: The configuration read-only mode is enabled.'."\n" + ."\n" + .'> If this parameter is set to **ConsoleProtection**, you cannot modify instance configurations in the CLB console. However, you can modify instance configurations by calling API operations.'."\n", + 'type' => 'string', + 'example' => 'ConsoleProtection', + ], + 'EndTime' => [ + 'description' => 'The time when the CLB instance expires.'."\n", + 'type' => 'string', + 'example' => '2022-09-08T16:00:00Z', + ], + 'VSwitchId' => [ + 'description' => 'The ID of the vSwitch to which the internal-facing CLB instance belongs.'."\n", + 'type' => 'string', + 'example' => 'vsw-255ecrwq5****', + ], + 'LoadBalancerStatus' => [ + 'description' => 'The status of the CLB instance. Valid values:'."\n" + ."\n" + .'* **inactive**: The CLB instance is disabled. CLB instances in the inactive state do not forward traffic.'."\n" + .'* **active**: The CLB instance is running as expected. Newly created CLB instances are in the **active** state by default.'."\n" + .'* **locked**: The CLB instance is locked. CLB instances may be locked due to overdue payments or other reasons.'."\n", + 'type' => 'string', + 'example' => 'active', + ], + 'ResourceGroupId' => [ + 'description' => 'The resource group ID.'."\n", + 'type' => 'string', + 'example' => 'rg-atstuj3rtop****', + ], + 'InternetChargeType' => [ + 'description' => 'The metering method of the Internet-facing CLB instance. Valid values:'."\n" + ."\n" + .'* **paybytraffic**'."\n" + .'* **paybybandwidth**'."\n", + 'type' => 'string', + 'example' => 'paybytraffic', + ], + 'DeleteProtection' => [ + 'description' => 'Indicates whether deletion protection is enabled for the CLB instance.'."\n" + ."\n" + .'Valid values: **on** and **off**.'."\n", + 'type' => 'string', + 'example' => 'off', + ], + 'RegionIdAlias' => [ + 'description' => 'The alias of the region to which the CLB instance belongs.'."\n", + 'type' => 'string', + 'example' => 'hangzhou', + ], + 'RenewalStatus' => [ + 'description' => 'Indicates whether auto-renewal is enabled. Valid values:'."\n" + ."\n" + .'* **AutoRenewal**: Auto-renewal is enabled.'."\n" + ."\n" + .'* **Normal**: Auto-renewal is disabled. You must manually renew the CLB instance.'."\n" + ."\n" + .'* **NotRenewal**: The CLB instance will not be renewed upon expiration. If this value is returned, the system does not send notifications until three days before the expiration date.'."\n" + ."\n" + .' **'."\n" + ."\n" + .' **Note** This parameter is valid only when you create a subscription CLB instance on the Alibaba Cloud China site. In this case, **PayType** must be set to **PrePay**.'."\n", + 'type' => 'string', + 'example' => 'AutoRenewal', + ], + 'RenewalDuration' => [ + 'description' => 'The auto-renewal duration. This parameter is valid only if **RenewalStatus** is set to **AutoRenewal**.'."\n" + ."\n" + .'* Valid values when **PeriodUnit** is set to **Year**: **1**~**5**.'."\n" + ."\n" + .'* Valid values when **PeriodUnit** is set to **Month**: **1**~ **9**.'."\n" + ."\n" + .'> This parameter is valid only when you create a subscription CLB instance on the Alibaba Cloud China site. In this case, the **PayType** parameter must be set to **PrePay**.', + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1', + ], + 'ListenerPorts' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'ListenerPort' => [ + 'description' => 'The frontend port used by the CLB instance.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The frontend port used by the CLB instance.', + 'type' => 'integer', + 'format' => 'int32', + 'example' => '80', + ], + ], + ], + ], + 'ListenerPortsAndProtocal' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'ListenerPortAndProtocal' => [ + 'description' => 'The ports or protocols of the listeners.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'ListenerProtocal' => [ + 'description' => 'The frontend protocol that is used by the CLB instance.'."\n", + 'type' => 'string', + 'example' => 'http', + ], + 'ListenerPort' => [ + 'description' => 'The frontend port that is used by the CLB instance.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '443', + ], + ], + ], + ], + ], + ], + 'ListenerPortsAndProtocol' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'ListenerPortAndProtocol' => [ + 'description' => 'The ports or protocols of the listeners.', + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'ListenerPort' => [ + 'description' => 'The frontend port that is used by the CLB instance.', + 'type' => 'integer', + 'format' => 'int32', + 'example' => '80', + ], + 'ListenerProtocol' => [ + 'description' => 'The frontend protocol that is used by the CLB instance.', + 'type' => 'string', + 'example' => 'https', + ], + 'ListenerForward' => [ + 'description' => 'Indicates whether the listener is enabled.', + 'type' => 'string', + 'example' => 'on', + ], + 'Description' => [ + 'description' => 'Indicates whether the listener is enabled.', + 'type' => 'string', + 'example' => 'Listener Description', + ], + 'ForwardPort' => [ + 'description' => 'The destination listening port to which requests are forwarded. The port must be open and use HTTPS.', + 'type' => 'integer', + 'format' => 'int32', + 'example' => '443', + ], + ], + ], + ], + ], + ], + 'BackendServers' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'BackendServer' => [ + 'description' => 'The backend servers of the CLB instance.', + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'Type' => [ + 'description' => 'The type of the backend server.', + 'type' => 'string', + 'example' => 'ecs', + ], + 'Weight' => [ + 'description' => 'The weight of the backend server.', + 'type' => 'integer', + 'format' => 'int32', + 'example' => '90', + ], + 'Description' => [ + 'description' => 'The description of the backend server.'."\n" + ."\n" + .'> This parameter is not returned if Description is not set.', + 'type' => 'string', + 'example' => 'backend server description', + ], + 'ServerIp' => [ + 'description' => 'The ID of the elastic network interface (ENI) or elastic container instance.', + 'type' => 'string', + 'example' => '192.XX.XX.11', + ], + 'ServerId' => [ + 'description' => 'The backend server ID.', + 'type' => 'string', + 'example' => 'i-2zej4lxhjoq1icu*****', + ], + ], + ], + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'LocationServiceTimeout', + 'errorMessage' => 'Location service connection timeout. Please try again later.', + ], + ], + 403 => [ + [ + 'errorCode' => 'UnauthorizedRegion', + 'errorMessage' => 'The specified region of is not authorized.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"VpcId\\": \\"vpc-25dvzy9f8****\\",\\n \\"Tags\\": {\\n \\"Tag\\": [\\n {\\n \\"TagKey\\": \\"test\\",\\n \\"TagValue\\": \\"value\\"\\n }\\n ]\\n },\\n \\"CreateTimeStamp\\": 1504147745000,\\n \\"CreateTime\\": \\"2017-08-31T02:49:05Z\\",\\n \\"LoadBalancerId\\": \\"lb-bp1b6c719dfa08ex****\\",\\n \\"PayType\\": \\"PayOnDemand\\",\\n \\"AddressType\\": \\"internet\\",\\n \\"NetworkType\\": \\"vpc\\",\\n \\"AddressIPVersion\\": \\"ipv4\\",\\n \\"RenewalCycUnit\\": \\"Month\\",\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF34B540710\\",\\n \\"Bandwidth\\": 5,\\n \\"LoadBalancerName\\": \\"lb-instance-test\\",\\n \\"Address\\": \\"42.XX.XX.6\\",\\n \\"SlaveZoneId\\": \\"cn-hangzhou-d\\",\\n \\"EndTimeStamp\\": 3249380160000,\\n \\"MasterZoneId\\": \\"cn-hangzhou-b\\",\\n \\"LoadBalancerSpec\\": \\"slb.s1.small\\",\\n \\"AutoReleaseTime\\": 1513947075000,\\n \\"ModificationProtectionReason\\": \\"实例业务保障期\\",\\n \\"RegionId\\": \\"cn-hangzhou\\",\\n \\"ModificationProtectionStatus\\": \\"ConsoleProtection\\",\\n \\"EndTime\\": \\"2022-09-08T16:00:00Z\\",\\n \\"VSwitchId\\": \\"vsw-255ecrwq5****\\",\\n \\"LoadBalancerStatus\\": \\"active\\",\\n \\"ResourceGroupId\\": \\"rg-atstuj3rtop****\\",\\n \\"InternetChargeType\\": \\"paybytraffic\\",\\n \\"DeleteProtection\\": \\"off\\",\\n \\"RegionIdAlias\\": \\"cn-hangzhou\\",\\n \\"RenewalStatus\\": \\"AutoRenewal\\",\\n \\"RenewalDuration\\": 1,\\n \\"ListenerPorts\\": {\\n \\"ListenerPort\\": [\\n 80\\n ]\\n },\\n \\"ListenerPortsAndProtocal\\": {\\n \\"ListenerPortAndProtocal\\": [\\n {\\n \\"ListenerProtocal\\": \\"http\\",\\n \\"ListenerPort\\": 443\\n }\\n ]\\n },\\n \\"ListenerPortsAndProtocol\\": {\\n \\"ListenerPortAndProtocol\\": [\\n {\\n \\"ListenerPort\\": 80,\\n \\"ListenerProtocol\\": \\"https\\",\\n \\"ListenerForward\\": \\"on\\",\\n \\"Description\\": \\"监听描述\\",\\n \\"ForwardPort\\": 443\\n }\\n ]\\n },\\n \\"BackendServers\\": {\\n \\"BackendServer\\": [\\n {\\n \\"Type\\": \\"ecs\\",\\n \\"Weight\\": 90,\\n \\"Description\\": \\"用来接收转发请求的后端服务器\\",\\n \\"ServerIp\\": \\"192.XX.XX.11\\",\\n \\"ServerId\\": \\"i-2zej4lxhjoq1icu*****\\"\\n }\\n ]\\n },\\n \\"InstanceChargeType\\": \\"PayBySpec\\"\\n}","errorExample":""},{"type":"xml","example":"\\n vpc-25dvzy9f8****\\n \\n test\\n value\\n \\n 1504147745000\\n 2017-08-31T02:49:05Z\\n lb-bp1b6c719dfa08ex****\\n PayOnDemand\\n internet\\n vpc\\n ipv4\\n Month\\n 365F4154-92F6-4AE4-92F8-7FF34B540710\\n 5\\n lb-instance-test\\n
42.XX.XX.6
\\n cn-hangzhou-d\\n 32493801600000\\n cn-hangzhou-b\\n slb.s1.small\\n 1513947075000\\n 实例业务保障期\\n cn-hangzhou\\n ConsoleProtection\\n 2022-09-08T16:00:00Z\\n vsw-255ecrwq5****\\n active\\n rg-atstuj3rtop****\\n paybytraffic\\n off\\n hangzhou\\n AutoRenewal\\n 1\\n 80\\n \\n http\\n 443\\n \\n \\n 80\\n https\\n on\\n 监听描述\\n 443\\n \\n \\n ecs\\n 90\\n 用来接收转发请求的后端服务器\\n 192.XX.XX.11\\n i-2zej4lxhjoq1icu*****\\n \\n PayBySpec\\n
","errorExample":""}]', + 'title' => 'DescribeLoadBalancerAttribute', + 'summary' => 'Queries the detail of a Classic Load Balancer (CLB) instance.', + 'description' => '> If backend servers are deployed in a vServer group, you can call the [DescribeVServerGroupAttribute](~~35224~~) operation to query the backend servers.'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'DescribeLoadBalancers' => [ + 'summary' => 'Queries Classic Load Balancer (CLB) instances.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '88581', + 'abilityTreeNodes' => [ + 'FEATUREslbL5KCST', + ], + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the region where the CLB instance is deployed.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~2401682~~) operation to query the most recent region list.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ServerId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the backend server that is added to the CLB instance.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'vm-server-23****', + ], + ], + [ + 'name' => 'AddressIPVersion', + 'in' => 'query', + 'schema' => [ + 'description' => 'The IP version that is used by the CLB instance. Valid values: **ipv4** and **ipv6**.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'ipv4', + ], + ], + [ + 'name' => 'LoadBalancerStatus', + 'in' => 'query', + 'schema' => [ + 'description' => 'The status of the CLB instance. Valid values:'."\n" + ."\n" + .'* **inactive:** The CLB instance is disabled. CLB instances in the inactive state do not forward traffic.'."\n" + .'* **active:** The CLB instance runs as expected. By default, newly created CLB instances are in the **active** state.'."\n" + .'* **locked:** The CLB instance is locked. After a CLB instance expires, it is locked for seven days. A locked CLB instance cannot forward traffic and you cannot perform operations on the locked CLB instance. However, other settings such as the IP address are retained.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'active', + ], + ], + [ + 'name' => 'LoadBalancerId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the CLB instance.'."\n" + ."\n" + .'You can specify up to 10 IDs. Separate multiple IDs with commas (,).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'lb-bp1b6c719dfa****', + ], + ], + [ + 'name' => 'LoadBalancerName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the CLB instance.'."\n" + ."\n" + .'The name must be 1 to 80 characters in length, and can contain digits, periods (.), underscores (\\_), and hyphens (-). The name must start with a letter.'."\n" + ."\n" + .'You can specify up to 10 names. Separate multiple names with commas (,).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'test', + ], + ], + [ + 'name' => 'ServerIntranetAddress', + 'in' => 'query', + 'schema' => [ + 'description' => 'The private IP address of the backend server that is added to the CLB instance.'."\n" + ."\n" + .'You can specify multiple IP addresses. Separate multiple IP addresses with commas (,).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '10.XX.XX.102', + ], + ], + [ + 'name' => 'AddressType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The network type of the CLB instance. Valid values:'."\n" + ."\n" + .'* **internet:** After an Internet-facing CLB instance is created, the system assigns a public IP address to the CLB instance. Then, the CLB instance can forward requests over the Internet.'."\n" + .'* **intranet:** After an internal-facing CLB instance is created, the system assigns a private IP address to the CLB instance. Then, the CLB instance can forward requests only over internal networks.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'intranet', + ], + ], + [ + 'name' => 'InternetChargeType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The metering method of Internet data transfer. Valid values:'."\n" + ."\n" + .'* **paybybandwidth:** pay-by-bandwidth.'."\n" + .'* **paybytraffic:** pay-by-data-transfer.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'paybytraffic', + ], + ], + [ + 'name' => 'VpcId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the virtual private cloud (VPC) to which the CLB instance belongs.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'vpc-bp1aevy8sof****', + ], + ], + [ + 'name' => 'VSwitchId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the vSwitch to which the CLB instance belongs.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'vsw-bp12mw1f8k3****', + ], + ], + [ + 'name' => 'NetworkType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The network type of the internal-facing CLB instance. Valid values:'."\n" + ."\n" + .'* **vpc**: VPC'."\n" + .'* **Classic**: classic network'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'vpc', + ], + ], + [ + 'name' => 'Address', + 'in' => 'query', + 'schema' => [ + 'description' => 'The IP address that the CLB instance uses to provide services.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '192.168.XX.XX', + ], + ], + [ + 'name' => 'MasterZoneId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the primary zone to which the CLB instance belongs.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou-b', + ], + ], + [ + 'name' => 'SlaveZoneId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the secondary zone to which the CLB instance belongs.'."\n" + ."\n" + .'CLB instances on Alibaba Finance Cloud do not support cross-zone deployment.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou-d', + ], + ], + [ + 'name' => 'Tags', + 'in' => 'query', + 'schema' => [ + 'description' => 'The tags that are added to the CLB instance. The tags must be key-value pairs that are contained in a JSON dictionary.'."\n" + ."\n" + .'You can specify up to 10 tags in each call.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '[{"tagKey":"Key1","tagValue":"Value1"}]', + ], + ], + [ + 'name' => 'PayType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The billing method of the CLB instance. Valid values:'."\n" + ."\n" + .'* Set the value to **PayOnDemand**.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'PayOnDemand', + ], + ], + [ + 'name' => 'ResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the resource group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfmxazb4p****', + ], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => [ + 'description' => 'The page number of the page to return.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'maximum' => '1000', + 'minimum' => '1', + 'example' => '1', + 'default' => '0', + ], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of entries to return on each page.'."\n" + ."\n" + .'Valid values: **1** to **100**.'."\n" + ."\n" + .'> If you specify the **PageSize** parameter, you must also specify the **PageNumber** parameter.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'maximum' => '100', + 'minimum' => '1', + 'example' => '50', + 'default' => '10', + ], + ], + [ + '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. 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 64 characters in length and cannot start with `aliyun` or `acs:`. It cannot contain `http://` or `https://`.'."\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 at most 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, + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => '8B9DB03B-ED39-5DB8-9C9F-1ED5F548D61E', + ], + 'PageNumber' => [ + 'description' => 'The page number of the returned page.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1', + ], + 'PageSize' => [ + 'description' => 'The number of entries returned on the current page.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '50', + ], + 'TotalCount' => [ + 'description' => 'The number of instances returned.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1', + ], + 'LoadBalancers' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'LoadBalancer' => [ + 'description' => 'An array of CLB instances.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The CLB instances.'."\n", + 'type' => 'object', + 'properties' => [ + 'VpcId' => [ + 'description' => 'The ID of the VPC in which the internal-facing CLB instance was deployed.'."\n", + 'type' => 'string', + 'example' => 'vpc-25dvzy9f8****', + ], + 'CreateTimeStamp' => [ + 'description' => 'The timestamp when the instance was created.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1504147745000', + ], + 'LoadBalancerId' => [ + 'description' => 'The ID of the CLB instance.'."\n", + 'type' => 'string', + 'example' => 'lb-bp1b6c719dfa****', + ], + 'CreateTime' => [ + 'description' => 'The time when the CLB instance was created. The time follows the `YYYY-MM-DDThh:mm:ssZ` format.'."\n", + 'type' => 'string', + 'example' => '2021-12-02T02:49:05Z', + ], + 'PayType' => [ + 'description' => 'The billing method of the CLB instance.'."\n" + ."\n" + .'* **PayOnDemand** is returned, which indicates the pay-as-you-go billing method.'."\n", + 'type' => 'string', + 'example' => 'PayOnDemand', + ], + 'AddressType' => [ + 'description' => 'The network type of the CLB instance. Valid values:'."\n" + ."\n" + .'* **internet:** After an Internet-facing CLB instance is created, the system assigns a public IP address to the CLB instance. Then, the CLB instance can forward requests over the Internet.'."\n" + .'* **intranet:** After an internal-facing CLB instance is created, the system assigns a private IP address to the CLB instance. Then, the CLB instance can forward requests only over internal networks.'."\n", + 'type' => 'string', + 'example' => 'intranet', + ], + 'NetworkType' => [ + 'description' => 'The network type of the internal-facing CLB instance. Valid values:'."\n" + ."\n" + .'* **vpc**: VPC'."\n" + .'* **Classic**: classic network'."\n", + 'type' => 'string', + 'example' => 'vpc', + ], + 'AddressIPVersion' => [ + 'description' => 'The IP version that is used by the CLB instance. Valid values: **ipv4** and **ipv6**.'."\n", + 'type' => 'string', + 'example' => 'ipv4', + ], + 'LoadBalancerName' => [ + 'description' => 'The name of the CLB instance.'."\n", + 'type' => 'string', + 'example' => 'lb-bp1o94dp5i6ea****', + ], + 'Bandwidth' => [ + 'description' => 'The maximum bandwidth of the listener. Unit: Mbit/s.', + 'type' => 'integer', + 'format' => 'int32', + 'example' => '-1', + ], + 'Address' => [ + 'description' => 'The endpoint of the CLB instance.'."\n", + 'type' => 'string', + 'example' => '100.XX.XX.28', + ], + 'SlaveZoneId' => [ + 'description' => 'The ID of the secondary zone to which the CLB instance belongs.'."\n", + 'type' => 'string', + 'example' => 'cn-hangzhou-d', + ], + 'MasterZoneId' => [ + 'description' => 'The ID of the primary zone to which the CLB instance belongs.'."\n", + 'type' => 'string', + 'example' => 'cn-hangzhou-b', + ], + 'InternetChargeTypeAlias' => [ + 'description' => 'The metering method of Internet data transfer. Valid values:'."\n" + ."\n" + .'* **paybybandwidth:** pay-by-bandwidth.'."\n" + .'* **paybytraffic:** pay-by-data-transfer.'."\n", + 'type' => 'string', + 'example' => 'paybybandwidth', + ], + 'LoadBalancerSpec' => [ + 'description' => 'The specification of the CLB instance.'."\n" + ."\n" + .'> Pay-as-you-go CLB instances are not subject to specifications. **slb.lcu.elastic** is returned by default.'."\n", + 'type' => 'string', + 'example' => 'slb.s1.small', + ], + 'RegionId' => [ + 'description' => 'The ID of the region where the CLB instance was deployed.'."\n", + 'type' => 'string', + 'example' => 'cn-hangzhou', + ], + 'ModificationProtectionReason' => [ + 'description' => 'The reason why the configuration read-only mode was enabled. The reason must be 1 to 80 characters in length, and can contain letters, digits, periods (.), underscores (\\_), and hyphens (-). The reason must start with a letter.'."\n" + ."\n" + .'> This parameter takes effect only when you set the `ModificationProtectionStatus` parameter to **ConsoleProtection**.'."\n", + 'type' => 'string', + 'example' => 'ManagedInstance'."\n", + ], + 'ModificationProtectionStatus' => [ + 'description' => 'Indicates whether the configuration read-only mode is enabled for the CLB instance. Valid values:'."\n" + ."\n" + .'* **NonProtection:** The configuration read-only mode is disabled. In this case, you cannot specify the ModificationProtectionReason parameter. If you specify the `ModificationProtectionReason` parameter, the value is cleared.'."\n" + .'* **ConsoleProtection:** The configuration read-only mode is enabled.'."\n" + ."\n" + .'> If you set this parameter to **ConsoleProtection**, you cannot modify the configurations of the CLB instance in the CLB console. However, you can call API operations to modify the configurations of the CLB instance.'."\n", + 'type' => 'string', + 'example' => 'ConsoleProtection', + ], + 'VSwitchId' => [ + 'description' => 'The ID of the vSwitch to which the internal-facing CLB instance belongs.'."\n", + 'type' => 'string', + 'example' => 'vsw-255ecr****', + ], + 'LoadBalancerStatus' => [ + 'description' => 'The status of the CLB instance. Valid values:'."\n" + ."\n" + .'* **inactive:** The CLB instance is disabled. CLB instances in the inactive state do not forward traffic.'."\n" + .'* **active:** The CLB instance runs as expected. By default, newly created CLB instances are in the **active** state.'."\n" + .'* **locked:** The CLB instance is locked.'."\n", + 'type' => 'string', + 'example' => 'active', + ], + 'ResourceGroupId' => [ + 'description' => 'The ID of the resource group.'."\n", + 'type' => 'string', + 'example' => 'rg-atstuj3r****', + ], + 'InternetChargeType' => [ + 'description' => 'The metering method of the Internet-facing CLB instance. Valid values:'."\n" + ."\n" + .'* **3:** pay-by-bandwidth (**paybybandwidth**).'."\n" + .'* **4:** pay-by-data-transfer (**paybytraffic**).'."\n", + 'type' => 'string', + 'example' => '3', + ], + 'DeleteProtection' => [ + 'description' => 'Indicates whether deletion protection is enabled for the CLB instance. Valid values:'."\n" + ."\n" + .'* **on:** Deletion protection is enabled.'."\n" + .'* **off:** Deletion protection is disabled.'."\n", + 'type' => 'string', + 'example' => 'off', + ], + 'RegionIdAlias' => [ + 'description' => 'The region where the CLB instance was deployed.'."\n", + 'type' => 'string', + 'example' => 'hangzhou', + ], + 'Tags' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Tag' => [ + 'description' => 'The tags.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The tag.'."\n", + 'type' => 'object', + 'properties' => [ + 'TagValue' => [ + 'description' => 'The value of the tag.'."\n", + 'type' => 'string', + 'example' => 'FinanceJoshua', + ], + 'TagKey' => [ + 'description' => 'The key of the tag.'."\n", + 'type' => 'string', + 'example' => 'FinanceDept', + ], + ], + ], + ], + ], + ], + ], + ], + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidTag', + 'errorMessage' => 'The specified tags is invalid.', + ], + [ + 'errorCode' => 'TooManyResult', + 'errorMessage' => 'fuzzy query retrieve too many instances.', + ], + [ + 'errorCode' => 'LocationServiceTimeout', + 'errorMessage' => 'Location service connection timeout. Please try again later.', + ], + ], + 403 => [ + [ + 'errorCode' => 'UnauthorizedRegion', + 'errorMessage' => 'The specified region of is not authorized.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"8B9DB03B-ED39-5DB8-9C9F-1ED5F548D61E\\",\\n \\"PageNumber\\": 1,\\n \\"PageSize\\": 50,\\n \\"TotalCount\\": 1,\\n \\"LoadBalancers\\": {\\n \\"LoadBalancer\\": [\\n {\\n \\"VpcId\\": \\"vpc-25dvzy9f8****\\",\\n \\"CreateTimeStamp\\": 1504147745000,\\n \\"LoadBalancerId\\": \\"lb-bp1b6c719dfa****\\",\\n \\"CreateTime\\": \\"2021-12-02T02:49:05Z\\",\\n \\"PayType\\": \\"PayOnDemand\\",\\n \\"AddressType\\": \\"intranet\\",\\n \\"NetworkType\\": \\"vpc\\",\\n \\"AddressIPVersion\\": \\"ipv4\\",\\n \\"LoadBalancerName\\": \\"lb-bp1o94dp5i6ea****\\",\\n \\"Bandwidth\\": -1,\\n \\"Address\\": \\"100.XX.XX.28\\",\\n \\"SlaveZoneId\\": \\"cn-hangzhou-d\\",\\n \\"MasterZoneId\\": \\"cn-hangzhou-b\\",\\n \\"InternetChargeTypeAlias\\": \\"paybybandwidth\\",\\n \\"LoadBalancerSpec\\": \\"slb.s1.small\\",\\n \\"RegionId\\": \\"cn-hangzhou\\",\\n \\"ModificationProtectionReason\\": \\"ManagedInstance\\",\\n \\"ModificationProtectionStatus\\": \\"ConsoleProtection\\",\\n \\"VSwitchId\\": \\"vsw-255ecr****\\",\\n \\"LoadBalancerStatus\\": \\"active\\",\\n \\"ResourceGroupId\\": \\"rg-atstuj3r****\\",\\n \\"InternetChargeType\\": \\"3\\",\\n \\"DeleteProtection\\": \\"off\\",\\n \\"RegionIdAlias\\": \\"cn-hangzhou\\",\\n \\"Tags\\": {\\n \\"Tag\\": [\\n {\\n \\"TagValue\\": \\"testvalue\\",\\n \\"TagKey\\": \\"testkey\\"\\n }\\n ]\\n },\\n \\"InstanceChargeType\\": \\"PayBySpec\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 8B9DB03B-ED39-5DB8-9C9F-1ED5F548D61E\\n 1\\n 50\\n 1\\n \\n vpc-25dvzy9f8****\\n 1504147745000\\n lb-bp1b6c719dfa****\\n 2021-12-02T02:49:05Z\\n PayOnDemand\\n intranet\\n vpc\\n ipv4\\n lb-bp1o94dp5i6ea****\\n -1\\n
100.XX.XX.28
\\n cn-hangzhou-d\\n cn-hangzhou-b\\n paybybandwidth\\n slb.s1.small\\n cn-hangzhou\\n 托管实例\\n ConsoleProtection\\n vsw-255ecr****\\n active\\n rg-atstuj3r****\\n 3\\n off\\n hangzhou\\n \\n FinanceJoshua\\n FinanceDept\\n \\n PayBySpec\\n
\\n
","errorExample":""}]', + 'title' => 'DescribeLoadBalancers', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'DeleteLoadBalancerListener' => [ + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'delete', + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the Classic Load Balancer (CLB) instance.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~27584~~) operation to query the most recent region list.'."\n" + ."\n" + .'> The **RegionId** parameter is required if the endpoint of the region is slb.aliyuncs.com.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'LoadBalancerId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the CLB instance.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'lb-bp13jaf5qli5xmg******', + ], + ], + [ + 'name' => 'ListenerPort', + 'in' => 'query', + 'schema' => [ + 'description' => 'The frontend port that is used by the CLB instance.'."\n" + ."\n" + .'Valid values: **1 to 65535**.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => true, + 'docRequired' => true, + 'maximum' => '65535', + 'minimum' => '0', + 'example' => '80', + ], + ], + [ + 'name' => 'ListenerProtocol', + 'in' => 'query', + 'schema' => [ + 'description' => 'The frontend protocol that is used by the CLB instance.'."\n" + ."\n" + .'> This parameter is required if the same port is specified for listeners of different protocols.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'https', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'ListenerForwardExist', + 'errorMessage' => 'The specified listener is forwarded by the other listener, the ListenerForward relationship should be deleted firstly.', + ], + [ + 'errorCode' => 'TooManyListeners', + 'errorMessage' => 'More than 1 listener is found, please be more specified.', + ], + [ + 'errorCode' => 'Operation.NotAllowed', + 'errorMessage' => 'The specified listener is not allowed to operate.', + ], + ], + 404 => [ + [ + 'errorCode' => 'ResourceNotFound.Listener', + 'errorMessage' => 'The specified listener is not found.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\"\\n}","errorExample":""},{"type":"xml","example":"\\n CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\n","errorExample":""}]', + 'title' => 'DeleteLoadBalancerListener', + 'summary' => 'Deletes a listener.', + 'description' => '> You can delete only listeners that are in the **stopped** or **running** state.'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'StartLoadBalancerListener' => [ + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'update', + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region where the CLB instance is created.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~27584~~) operation to query the most recent region list.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'LoadBalancerId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The CLB instance ID.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'lb-bp13jaf5qli5*********', + ], + ], + [ + 'name' => 'ListenerPort', + 'in' => 'query', + 'schema' => [ + 'description' => 'The frontend port that is used by the CLB instance.'."\n" + ."\n" + .'Valid values: **1 to 65535**.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => true, + 'docRequired' => true, + 'maximum' => '65535', + 'minimum' => '0', + 'example' => '80', + ], + ], + [ + 'name' => 'ListenerProtocol', + 'in' => 'query', + 'schema' => [ + 'description' => 'The frontend protocol that is used by the CLB instance.'."\n" + ."\n" + .'> This parameter is required if the same port is used by listeners of different protocols.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'https', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'Operation.Deny', + 'errorMessage' => 'The specified listener is configuring, please try again later.', + ], + [ + 'errorCode' => 'TooManyListeners', + 'errorMessage' => 'More than 1 listener is found, please be more specified.', + ], + [ + 'errorCode' => 'Operation.NotAllowed', + 'errorMessage' => 'The specified listener is not allowed to operate.', + ], + [ + 'errorCode' => 'SystemBusy', + 'errorMessage' => 'The system is busy.', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\"\\n}","type":"json"}]', + 'title' => 'StartLoadBalancerListener', + 'summary' => 'Enables a listener.', + 'description' => 'When you call this operation, take note of the following items:'."\n" + ."\n" + .'* You can call the operation only when the listener is in the Stopped state.'."\n" + .'* If the operation is successful, the listener switches to the Starting state.'."\n" + .'* You cannot perform this operation when the Classic Load Balancer (CLB) instance to which the listener belongs is in the Locked state.'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'StopLoadBalancerListener' => [ + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'update', + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the Classic Load Balancer (CLB) instance.'."\n" + ."\n" + .'To query the region ID, refer to the list of [regions and zones](~~40654~~) or call [DescribeRegions](~~25609~~).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'LoadBalancerId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The CLB instance ID.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'lb-bp13jaf5qli5xmg******', + ], + ], + [ + 'name' => 'ListenerPort', + 'in' => 'query', + 'schema' => [ + 'description' => 'The frontend port that is used by the CLB instance.'."\n" + ."\n" + .'Valid values: **1 to 65535**.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => true, + 'docRequired' => true, + 'maximum' => '65535', + 'minimum' => '0', + 'example' => '80', + ], + ], + [ + 'name' => 'ListenerProtocol', + 'in' => 'query', + 'schema' => [ + 'description' => 'The frontend protocol that is used by the CLB instance.'."\n" + ."\n" + .'> This parameter is required if the same port is used by listeners of different protocols.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'https', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'TooManyListeners', + 'errorMessage' => 'More than 1 listener is found, please be more specified.', + ], + [ + 'errorCode' => 'Operation.NotAllowed', + 'errorMessage' => 'The specified listener is not allowed to operate.', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\"\\n}","type":"json"}]', + 'title' => 'StopLoadBalancerListener', + 'summary' => 'Stops a listener.', + 'description' => 'Before you make this API call, note the following:'."\n" + ."\n" + .'* After the API call is successfully made, the listener enters the stopped state.'."\n" + .'* If the Classic Load Balancer (CLB) instance to which the listener to be stopped belongs is in the locked state, this API call cannot be made.'."\n" + ."\n" + .'> If you stop the listener, your services will be disrupted. Exercise caution when you perform this action.'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'DescribeLoadBalancerListeners' => [ + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'get', + 'abilityTreeCode' => '88579', + 'abilityTreeNodes' => [ + 'FEATUREslbOL61C3', + ], + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the region where the CLB instance is deployed.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~DescribeRegions~~) operation to query the most recent region list.'."\n" + ."\n" + .'> If the endpoint of the selected region is slb.aliyuncs.com, the `RegionId` parameter is required.', + 'type' => 'string', + 'required' => false, + '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 and no subsequent 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****', + ], + ], + [ + 'name' => 'MaxResults', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of entries to return in each call.'."\n" + ."\n" + .'Valid values: **1** to **100**. If you do not specify this parameter, the default value **20** is used.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'maximum' => '101', + 'minimum' => '0', + 'example' => '50', + 'default' => '20', + ], + ], + [ + 'name' => 'ListenerProtocol', + 'in' => 'query', + 'schema' => [ + 'description' => 'The protocol used by the listener. Valid values:'."\n" + ."\n" + .'* **tcp**'."\n" + .'* **udp**'."\n" + .'* **http**'."\n" + .'* **https**'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'http', + ], + ], + [ + 'name' => 'LoadBalancerId', + 'in' => 'query', + 'style' => 'repeatList', + 'schema' => [ + 'description' => 'The IDs of the CLB instances. You can specify up to 10 instance IDs.'."\n" + ."\n" + .'> If you do not use the SDK to call this operation, use the LoadBalancerId.N parameter.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The ID of the CLB instance.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'LoadBalancerId.1=lb-uf6so8u4g35prnvsw****,LoadBalancerId.2=lb-uf6s1l1kukqv4u5nt****', + ], + 'required' => false, + 'example' => 'lb-123wrwer', + 'maxItems' => 11, + ], + ], + [ + 'name' => 'Tag', + 'in' => 'query', + 'allowEmptyValue' => true, + 'style' => 'repeatList', + 'schema' => [ + 'description' => 'The tags.'."\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 must be 1 to 64 characters in length and cannot start with `aliyun` or `acs:`. It cannot contain `http://` or `https://`.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'TestKey', + ], + 'Value' => [ + 'description' => 'The tag value. Valid values of N: **1 to 20**. 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`. The tag value cannot contain `http://` or `https://`.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'TestValue', + ], + ], + 'required' => false, + ], + 'required' => false, + 'maxItems' => 20, + ], + ], + [ + 'name' => 'ListenerPort', + 'in' => 'query', + 'allowEmptyValue' => true, + 'schema' => [ + 'description' => 'The frontend port that is used by the CLB instance.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'maximum' => '65535', + 'minimum' => '0', + 'example' => '443', + ], + ], + [ + 'name' => 'Description', + 'in' => 'query', + 'allowEmptyValue' => true, + 'schema' => [ + 'description' => 'The description of the listener.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'HTTPS_443', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'NextToken' => [ + 'description' => 'The token that determines the start point of the query. Valid values:'."\n" + ."\n" + .'* If **NextToken** is empty, it indicates that no subsequent query is to be sent.'."\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****', + ], + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => '365F4154-92F6-4AE4-92F8-7FF34B540710', + ], + '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' => '50', + ], + 'Listeners' => [ + 'description' => 'A list of listeners of the CLB instance.'."\n" + ."\n" + .'> This parameter is not returned if the CLB instance does not have a listener.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'AclType' => [ + 'description' => 'The type of access control. Valid values:'."\n" + ."\n" + .'* **white**: The listener forwards requests only from IP addresses and CIDR blocks on the whitelist. Your service may be adversely affected if the whitelist is not properly configured. If a whitelist is configured, the listener forwards requests only from IP addresses that are added to the whitelist.'."\n" + ."\n" + .'If you configure a whitelist but no IP address is added to the whitelist, the listener forwards all requests.'."\n" + ."\n" + .'* **black**: The listener blocks requests from IP addresses and CIDR blocks on the blacklist.'."\n" + ."\n" + .'If you configure a blacklist but no IP address is added to the blacklist, the listener forwards all requests.'."\n", + 'type' => 'string', + 'example' => 'white', + ], + 'Status' => [ + 'description' => 'The status of the listener. Valid values:'."\n" + ."\n" + .'* **running**'."\n" + .'* **stopped**'."\n", + 'type' => 'string', + 'example' => 'running', + ], + 'VServerGroupId' => [ + 'description' => 'The ID of the vServer group associated with the listener.'."\n", + 'type' => 'string', + 'example' => 'rsp-cige6j****', + ], + 'ListenerProtocol' => [ + 'description' => 'The protocol used by the listener.'."\n", + 'type' => 'string', + 'example' => 'http', + ], + 'LoadBalancerId' => [ + 'description' => 'The ID of the CLB instance.'."\n", + 'type' => 'string', + 'example' => 'lb-bp1b6c719dfa****', + ], + 'ListenerPort' => [ + 'description' => 'The listener port.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '80', + ], + 'AclId' => [ + 'description' => 'The ID of the access control list (ACL).'."\n", + 'type' => 'string', + 'example' => 'nacl-a2do9e413e0spzasx****', + ], + 'Scheduler' => [ + 'description' => 'The scheduling algorithm. Valid values:'."\n" + ."\n" + .'* **wrr**: Backend servers with higher weights receive more requests than those with lower weights.'."\n" + .'* **rr**: Requests are distributed to backend servers in sequence.'."\n" + .'* **sch**: consistent hashing that is based on source IP addresses. Requests from the same source IP address are distributed to the same backend server.'."\n" + .'* **tch**: specifies consistent hashing based on the source IP address, destination IP address, source port, and destination port. Requests that have the same four factors are distributed to the same backend server.'."\n" + .'* **qch**: specifies consistent hashing based on Quick UDP Internet Connection (QUIC) IDs. Requests that contain the same QUIC ID are scheduled to the same backend server.'."\n" + ."\n" + .'> Only high-performance CLB instances support the **sch**, **tch**, and **qch** consistent hashing algorithms.'."\n", + 'type' => 'string', + 'example' => 'wrr', + ], + 'Bandwidth' => [ + 'description' => 'The maximum bandwidth of the listener. Unit: Mbit/s.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '-1', + ], + 'Description' => [ + 'description' => 'The description of the listener.'."\n", + 'type' => 'string', + 'example' => 'test', + ], + 'AclStatus' => [ + 'description' => 'Indicates whether access control is enabled. Valid values:'."\n" + ."\n" + .'* **on**'."\n" + .'* **off**'."\n", + 'type' => 'string', + 'example' => 'off', + ], + 'BackendServerPort' => [ + 'description' => 'The port of the backend server.'."\n" + ."\n" + .'> This parameter takes effect only when the `VServerGroupId` and `MasterSlaveServerGroupId` parameters are both empty.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '80', + ], + 'AclIds' => [ + 'description' => 'The IDs of the ACLs.'."\n", + 'type' => 'array', + ], + 'HTTPListenerConfig' => [ + 'description' => 'The configurations of the HTTP listener.'."\n", + 'type' => 'object', + 'properties' => [ + 'HealthCheckHttpVersion' => [ + 'description' => 'The HTTP version for health checks.'."\n", + 'type' => 'string', + 'example' => 'HTTP 1.0', + ], + 'XForwardedFor_ClientSrcPort' => [ + 'description' => 'Indicates whether the `XForwardedFor_ClientSrcPort` header is used to retrieve the client port. Valid values:'."\n" + ."\n" + .'* **on**'."\n" + .'* **off**'."\n", + 'type' => 'string', + 'example' => 'on', + ], + 'Cookie' => [ + 'description' => 'The cookie configures for the server.'."\n", + 'type' => 'string', + 'example' => 'B490B5EBF6F3CD402E515D22BCDA****', + ], + 'Gzip' => [ + 'description' => 'Indicates whether GZIP compression is enabled. Valid values:'."\n" + ."\n" + .'* **on**'."\n" + .'* **off**'."\n", + 'type' => 'string', + 'example' => 'on', + ], + 'HealthCheckConnectPort' => [ + 'description' => 'The port that is used for health checks.'."\n" + ."\n" + .'> This parameter takes effect only when **HealthCheck** is set to **on**.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '8080', + ], + 'HealthCheckTimeout' => [ + 'description' => 'The maximum timeout period of a health check. Unit: seconds.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '3', + ], + 'HealthCheckType' => [ + 'description' => 'The protocol that you want to use for health checks.'."\n", + 'type' => 'string', + 'example' => 'tcp', + ], + 'CookieTimeout' => [ + 'description' => 'The maximum amount of time to wait before the session cookie expires. Unit: seconds.'."\n" + ."\n" + .'Valid values: **1** to **86400**.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '500', + ], + 'HealthCheckDomain' => [ + 'description' => 'The domain name that is used for health checks.'."\n", + 'type' => 'string', + 'example' => 'www.example.com', + ], + 'UnhealthyThreshold' => [ + 'description' => 'The number of times that a healthy backend server must consecutively fail health checks before it is declared unhealthy. In this case, the health check status of the backend server changes from **success** to **fail**.'."\n" + ."\n" + .'Valid values: **2** to **10**.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '4', + ], + 'XForwardedFor_SLBID' => [ + 'description' => 'Indicates whether the `SLB-ID` header is used to retrieve the ID of the CLB instance. Valid values:'."\n" + ."\n" + .'* **on**'."\n" + .'* **off**'."\n", + 'type' => 'string', + 'example' => 'on', + ], + 'ForwardPort' => [ + 'description' => 'The listener port that is used for HTTP-to-HTTPS redirection.'."\n" + ."\n" + .'> If the **ListenerForward** parameter is set to **off**, this parameter is not returned.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '80', + ], + 'HealthCheckHttpCode' => [ + 'description' => 'The HTTP status code that indicates a healthy backend server.'."\n", + 'type' => 'string', + 'example' => 'http_2xx,http_3xx', + ], + 'ListenerForward' => [ + 'description' => 'Indicates whether HTTP-to-HTTPS redirection is enabled for the listener. Valid values:'."\n" + ."\n" + .'* **on**'."\n" + .'* **off**'."\n", + 'type' => 'string', + 'example' => 'on', + ], + 'XForwardedFor' => [ + 'description' => 'Indicates whether the `X-Forwarded-For` header is used to preserve client IP addresses. Valid values:'."\n" + ."\n" + .'* **on**'."\n" + .'* **off**'."\n", + 'type' => 'string', + 'example' => 'on', + ], + 'IdleTimeout' => [ + 'description' => 'The timeout period of an idle connection. Unit: seconds. Valid values: **1** to **60**.'."\n" + ."\n" + .'If no request is received within the specified timeout period, CLB closes the connection. When a request is received, CLB establishes a new connection.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '15', + ], + 'RequestTimeout' => [ + 'description' => 'The timeout period of a request. Unit: seconds. Valid values: **1** to **180**.'."\n" + ."\n" + .'If no response is received from a backend server during the request timeout period, CLB sends the `HTTP 504` status code to the client.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '60', + ], + 'HealthCheckInterval' => [ + 'description' => 'The interval at which health checks are performed. Unit: seconds.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '5', + ], + 'XForwardedFor_SLBPORT' => [ + 'description' => 'Indicates whether the `XForwardedFor_SLBPORT` header is used to retrieve the listener port of the CLB instance. Valid values:'."\n" + ."\n" + .'* **on**'."\n" + .'* **off**'."\n", + 'type' => 'string', + 'example' => 'on', + ], + 'HealthCheckURI' => [ + 'description' => 'The URI that is used for health checks.'."\n", + 'type' => 'string', + 'example' => '/test/index.html', + ], + 'StickySessionType' => [ + 'description' => 'The method used to handle the cookie. Valid values:'."\n" + ."\n" + .'* **insert**: inserts a cookie. CLB inserts the SERVERID cookie to the HTTP or HTTPS response to the first request from a client. Subsequent requests that carry the SERVERID cookie from the client are forwarded to the same backend server as the first request.'."\n" + .'* **server**: rewrites the original cookie. CLB rewrites the custom cookies in requests from a client. Subsequent requests from the client that carry the new cookie are forwarded to the same backend server as the first request.'."\n", + 'type' => 'string', + 'example' => 'insert', + ], + 'HealthyThreshold' => [ + 'description' => 'The number of times that an unhealthy backend server must consecutively pass health checks before it is declared healthy. In this case, the health check status of the backend server changes from **fail** to **success**.'."\n" + ."\n" + .'Valid values: **2** to **10**.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '4', + ], + 'XForwardedFor_proto' => [ + 'description' => 'Indicates whether the `X-Forwarded-Proto` header is used to obtain the listener protocol. Valid values:'."\n" + ."\n" + .'* **on**'."\n" + .'* **off**'."\n", + 'type' => 'string', + 'example' => 'on', + ], + 'XForwardedFor_SLBIP' => [ + 'description' => 'Indicates whether the `SLB-IP` header is used to retrieve the VIP of the client. Valid values:'."\n" + ."\n" + .'* **on**'."\n" + .'* **off**'."\n", + 'type' => 'string', + 'example' => 'on', + ], + 'StickySession' => [ + 'description' => 'Indicates whether session persistence is enabled. Valid values:'."\n" + ."\n" + .'* **on**'."\n" + .'* **off**'."\n", + 'type' => 'string', + 'example' => 'on', + ], + 'HealthCheckMethod' => [ + 'description' => 'The health check method. Valid values: **head** and **get**.'."\n", + 'type' => 'string', + 'example' => 'get', + ], + 'HealthCheck' => [ + 'description' => 'Indicates whether the health check feature is enabled. Valid values:'."\n" + ."\n" + .'* **on**'."\n" + .'* **off**'."\n", + 'type' => 'string', + 'example' => 'on', + ], + ], + ], + 'HTTPSListenerConfig' => [ + 'description' => 'The configurations of the HTTPS listener.'."\n", + 'type' => 'object', + 'properties' => [ + 'XForwardedFor_ClientCertClientVerify' => [ + 'description' => 'Indicates whether the `XForwardedFor_ClientCertClientVerify` header is used to obtain the verification result of the client certificate. Valid values:'."\n" + ."\n" + .'* **on**'."\n" + .'* **off**'."\n", + 'type' => 'string', + 'example' => 'off', + ], + 'HealthCheckHttpVersion' => [ + 'description' => 'The HTTP version for health checks.'."\n", + 'type' => 'string', + 'example' => 'HTTP 1.0', + ], + 'XForwardedFor_ClientSrcPort' => [ + 'description' => 'Indicates whether the `XForwardedFor_ClientSrcPort` header is used to retrieve the client port. Valid values:'."\n" + ."\n" + .'* **on**'."\n" + .'* **off**'."\n", + 'type' => 'string', + 'example' => 'off', + ], + 'Cookie' => [ + 'description' => 'The cookie configures for the server.'."\n", + 'type' => 'string', + 'example' => 'B490B5EBF6F3CD402E515D22BCDA****', + ], + 'Gzip' => [ + 'description' => 'Indicates whether GZIP compression is enabled. Valid values:'."\n" + ."\n" + .'* **on**'."\n" + .'* **off**'."\n", + 'type' => 'string', + 'example' => 'on', + ], + 'EnableHttp2' => [ + 'description' => 'Indicates whether `HTTP 2.0` is enabled. Valid values:'."\n" + ."\n" + .'* **on**'."\n" + .'* **off**'."\n", + 'type' => 'string', + 'example' => 'off', + ], + 'CACertificateId' => [ + 'description' => 'The ID of the CA certificate.'."\n", + 'type' => 'string', + 'example' => 'idkp-234-cn-test-0****', + ], + 'HealthCheckConnectPort' => [ + 'description' => 'The port that is used for health checks.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '8080', + ], + 'HealthCheckTimeout' => [ + 'description' => 'The timeout period of a health check response. Unit: seconds.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '3', + ], + 'HealthCheckType' => [ + 'description' => 'The protocol that you want to use for health checks.'."\n", + 'type' => 'string', + 'example' => 'tcp', + ], + 'CookieTimeout' => [ + 'description' => 'The maximum amount of time to wait before the session cookie expires. Unit: seconds.'."\n" + ."\n" + .'Valid values: **1** to **86400**.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '500', + ], + 'HealthCheckDomain' => [ + 'description' => 'The domain name that is used for health checks.'."\n", + 'type' => 'string', + 'example' => 'www.example.com', + ], + 'UnhealthyThreshold' => [ + 'description' => 'The number of times that a healthy backend server must consecutively fail health checks before it is declared unhealthy. In this case, the health check status of the backend server changes from **success** to **fail**.'."\n" + ."\n" + .'Valid values: **2** to **10**.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '4', + ], + 'XForwardedFor_SLBID' => [ + 'description' => 'Indicates whether the `SLB-ID` header is used to retrieve the ID of the CLB instance. Valid values:'."\n" + ."\n" + .'* **on**'."\n" + .'* **off**'."\n", + 'type' => 'string', + 'example' => 'on', + ], + 'XForwardedFor_ClientCertSubjectDN' => [ + 'description' => 'Indicates whether the `XForwardedFor_ClientCertSubjectDN` header is used to obtain information about the owner of the client certificate. Valid values:'."\n" + ."\n" + .'* **on**'."\n" + .'* **off**'."\n", + 'type' => 'string', + 'example' => 'off', + ], + 'HealthCheckHttpCode' => [ + 'description' => 'The HTTP status code that indicates a healthy backend server.'."\n", + 'type' => 'string', + 'example' => 'http_2xx,http_3xx', + ], + 'XForwardedFor_ClientCertFingerprint' => [ + 'description' => 'Indicates whether the `XForwardedFor_ClientCertFingerprint` header is used to obtain the fingerprint of the client certificate. Valid values:'."\n" + ."\n" + .'* **on**'."\n" + .'* **off**'."\n", + 'type' => 'string', + 'example' => 'off', + ], + 'XForwardedFor' => [ + 'description' => 'Indicates whether the `X-Forwarded-For` header is used to retrieve client IP addresses. Valid values:'."\n" + ."\n" + .'* **on**'."\n" + .'* **off**'."\n", + 'type' => 'string', + 'example' => 'on', + ], + 'RequestTimeout' => [ + 'description' => 'The request timeout period. Unit: seconds. Valid values: **1** to **180**.'."\n" + ."\n" + .'If no response is received from a backend server during the request timeout period, CLB sends the `HTTP 504` status code to the client.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '60', + ], + 'IdleTimeout' => [ + 'description' => 'The timeout period of an idle connection. Unit: seconds. Valid values: **1** to **60**.'."\n" + ."\n" + .'If no request is received within the specified timeout period, CLB closes the connection. When a request is received, CLB establishes a new connection.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '15', + ], + 'ServerCertificateId' => [ + 'description' => 'The ID of the server certificate.'."\n", + 'type' => 'string', + 'example' => 'idkp-123-cn-test-0****', + ], + 'HealthCheckInterval' => [ + 'description' => 'The interval at which health checks are performed. Unit: seconds.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '5', + ], + 'XForwardedFor_SLBPORT' => [ + 'description' => 'Indicates whether the `XForwardedFor_SLBPORT` header is used to retrieve the listener port of the CLB instance. Valid values:'."\n" + ."\n" + .'* **on**'."\n" + .'* **off**'."\n", + 'type' => 'string', + 'example' => 'off', + ], + 'HealthCheckURI' => [ + 'description' => 'The URI that is used for health checks.'."\n", + 'type' => 'string', + 'example' => '/test/index.html', + ], + 'StickySessionType' => [ + 'description' => 'The method used to handle the cookie.'."\n" + ."\n" + .'* **insert**: inserts a cookie. CLB inserts the SERVERID cookie to the HTTP or HTTPS response to the first request from a client. Subsequent requests that carry the SERVERID cookie from the client are forwarded to the same backend server as the first request.'."\n" + .'* **server**: rewrites the original cookie. CLB rewrites the custom cookies in requests from a client. Subsequent requests from the client that carry the new cookie are forwarded to the same backend server as the first request.'."\n", + 'type' => 'string', + 'example' => 'insert', + ], + 'XForwardedFor_ClientCertIssuerDN' => [ + 'description' => 'Indicates whether the `XForwardedFor_ClientCertIssuerDN` header is used to obtain information about the authority that issues the client certificate. Valid values:'."\n" + ."\n" + .'* **on**'."\n" + .'* **off**'."\n", + 'type' => 'string', + 'example' => 'off', + ], + 'HealthyThreshold' => [ + 'description' => 'The number of times that an unhealthy backend server must consecutively pass health checks before it is declared healthy. In this case, the health check status of the backend server changes from **fail** to **success**.'."\n" + ."\n" + .'Valid values: **2** to **10**.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '4', + ], + 'XForwardedFor_proto' => [ + 'description' => 'Indicates whether the `X-Forwarded-Proto` header is used to obtain the listener protocol. Valid values:'."\n" + ."\n" + .'* **on**'."\n" + .'* **off**'."\n", + 'type' => 'string', + 'example' => 'on', + ], + 'XForwardedFor_SLBIP' => [ + 'description' => 'Indicates whether the `SLB-IP` header is used to retrieve the VIP of the client. Valid values:'."\n" + ."\n" + .'* **on**'."\n" + .'* **off**'."\n", + 'type' => 'string', + 'example' => 'on', + ], + 'StickySession' => [ + 'description' => 'Indicates whether session persistence is enabled. Valid values:'."\n" + ."\n" + .'* **on**'."\n" + .'* **off**'."\n", + 'type' => 'string', + 'example' => 'on', + ], + 'HealthCheckMethod' => [ + 'description' => 'The health check method.'."\n", + 'type' => 'string', + 'example' => 'get', + ], + 'TLSCipherPolicy' => [ + 'description' => 'A TLS security policy contains TLS protocols and cipher suites available for HTTPS.'."\n" + ."\n" + .'* **tls_cipher_policy\\_1\\_0**:'."\n" + ."\n" + .' Supported TLS versions: TLSv1.0, TLSv1.1, and TLSv1.2.'."\n" + ."\n" + .' Supported cipher suites: ECDHE-RSA-AES128-GCM-SHA256, ECDHE-RSA-AES256-GCM-SHA384, ECDHE-RSA-AES128-SHA256, ECDHE-RSA-AES256-SHA384, AES128-GCM-SHA256, AES256-GCM-SHA384, AES128-SHA256, AES256-SHA256, ECDHE-RSA-AES128-SHA, ECDHE-RSA-AES256-SHA, AES128-SHA, AES256-SHA, and DES-CBC3-SHA.'."\n" + ."\n" + .'* **tls_cipher_policy\\_1\\_1**:'."\n" + ."\n" + .' Supported TLS versions: TLSv1.1 and TLSv1.2.'."\n" + ."\n" + .' Supported cipher suites: ECDHE-RSA-AES128-GCM-SHA256, ECDHE-RSA-AES256-GCM-SHA384, ECDHE-RSA-AES128-SHA256, ECDHE-RSA-AES256-SHA384, AES128-GCM-SHA256, AES256-GCM-SHA384, AES128-SHA256, AES256-SHA256, ECDHE-RSA-AES128-SHA, ECDHE-RSA-AES256-SHA, AES128-SHA, AES256-SHA, and DES-CBC3-SHA.'."\n" + ."\n" + .'* **tls_cipher_policy\\_1\\_2**'."\n" + ."\n" + .' Supported TLS versions: TLSv1.2.'."\n" + ."\n" + .' Supported cipher suites: ECDHE-RSA-AES128-GCM-SHA256, ECDHE-RSA-AES256-GCM-SHA384, ECDHE-RSA-AES128-SHA256, ECDHE-RSA-AES256-SHA384, AES128-GCM-SHA256, AES256-GCM-SHA384, AES128-SHA256, AES256-SHA256, ECDHE-RSA-AES128-SHA, ECDHE-RSA-AES256-SHA, AES128-SHA, AES256-SHA, and DES-CBC3-SHA.'."\n" + ."\n" + .'* **tls_cipher_policy\\_1\\_2\\_strict**'."\n" + ."\n" + .' Supported TLS versions: TLSv1.2.'."\n" + ."\n" + .' Supported cipher suites: ECDHE-RSA-AES128-GCM-SHA256, ECDHE-RSA-AES256-GCM-SHA384, ECDHE-RSA-AES128-SHA256, ECDHE-RSA-AES256-SHA384, ECDHE-RSA-AES128-SHA, and ECDHE-RSA-AES256-SHA.'."\n" + ."\n" + .'* **tls_cipher_policy\\_1\\_2\\_strict_with\\_1\\_3**'."\n" + ."\n" + .' Supported TLS versions: TLSv1.2 and TLSv1.3.'."\n" + ."\n" + .' Supported cipher suites: TLS_AES\\_128\\_GCM_SHA256, TLS_AES\\_256\\_GCM_SHA384, TLS_CHACHA20\\_POLY1305\\_SHA256, TLS_AES\\_128\\_CCM_SHA256, TLS_AES\\_128\\_CCM\\_8\\_SHA256, ECDHE-ECDSA-AES128-GCM-SHA256, ECDHE-ECDSA-AES256-GCM-SHA384, ECDHE-ECDSA-AES128-SHA256, ECDHE-ECDSA-AES256-SHA384, ECDHE-RSA-AES128-GCM-SHA256, ECDHE-RSA-AES256-GCM-SHA384, ECDHE-RSA-AES128-SHA256, ECDHE-RSA-AES256-SHA384, ECDHE-ECDSA-AES128-SHA, ECDHE-ECDSA-AES256-SHA, ECDHE-RSA-AES128-SHA, and ECDHE-RSA-AES256-SHA.'."\n", + 'type' => 'string', + 'example' => 'tls_cipher_policy_1_0', + ], + 'HealthCheck' => [ + 'description' => 'Indicates whether the health check feature is enabled. Valid values:'."\n" + ."\n" + .'* **on**'."\n" + .'* **off**'."\n", + 'type' => 'string', + 'example' => 'on', + ], + ], + ], + 'TCPListenerConfig' => [ + 'description' => 'The configurations of the TCP listener.'."\n", + 'type' => 'object', + 'properties' => [ + 'HealthCheckHttpCode' => [ + 'description' => 'The HTTP status code that indicates a healthy backend server.'."\n", + 'type' => 'string', + 'example' => 'http_2xx,http_3xx', + ], + 'ConnectionDrainTimeout' => [ + 'description' => 'The timeout period of connection draining. Unit: seconds.'."\n" + ."\n" + .'Value values: **10 to 900**.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '300', + ], + 'PersistenceTimeout' => [ + 'description' => 'Indicates whether session persistence is enabled. Unit: seconds.'."\n" + ."\n" + .'Valid values: **0** to **3600**.'."\n" + ."\n" + .'**0** indicates that session persistence is disabled.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '0', + ], + 'HealthCheckInterval' => [ + 'description' => 'The interval between two consecutive health checks. Unit: seconds.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '5', + ], + 'HealthCheckURI' => [ + 'description' => 'The URI that is used for health checks.'."\n", + 'type' => 'string', + 'example' => '/test/index.html', + ], + 'HealthCheckConnectPort' => [ + 'description' => 'The port that is used for health checks.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '8080', + ], + 'EstablishedTimeout' => [ + 'description' => 'The timeout period of a connection. Unit: seconds.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '500', + ], + 'HealthCheckType' => [ + 'description' => 'The protocol that you want to use for health checks.'."\n", + 'type' => 'string', + 'example' => 'tcp', + ], + 'HealthCheckConnectTimeout' => [ + 'description' => 'The timeout period of health checks. Unit: seconds.'."\n" + ."\n" + .'Valid values: **1** to **300**.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '100', + ], + 'MasterSlaveServerGroupId' => [ + 'description' => 'The ID of the primary/secondary server group associated with the listener.'."\n", + 'type' => 'string', + 'example' => 'rsp-0bfucw*****', + ], + 'HealthyThreshold' => [ + 'description' => 'The number of times that an unhealthy backend server must consecutively pass health checks before it is declared healthy. In this case, the health check status of the backend server changes from **fail** to **success**.'."\n" + ."\n" + .'Valid values: **2** to **10**.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '4', + ], + 'HealthCheckDomain' => [ + 'description' => 'The domain name that is used for health checks.'."\n", + 'type' => 'string', + 'example' => 'www.example.com', + ], + 'UnhealthyThreshold' => [ + 'description' => 'The number of times that a healthy backend server must consecutively fail health checks before it is declared unhealthy. In this case, the health check status of the backend server changes from **success** to **fail**.'."\n" + ."\n" + .'Valid values: **2** to **10**.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '4', + ], + 'ConnectionDrain' => [ + 'description' => 'Indicates whether connection draining is enabled. Valid values:'."\n" + ."\n" + .'* **on**'."\n" + .'* **off**'."\n", + 'type' => 'string', + 'example' => 'off', + ], + 'HealthCheckMethod' => [ + 'description' => 'The health check method.'."\n", + 'type' => 'string', + 'example' => 'get', + ], + 'HealthCheck' => [ + 'description' => 'Indicates whether the health check feature is enabled. Valid values:'."\n" + ."\n" + .'* **on**'."\n" + .'* **off**'."\n", + 'type' => 'string', + 'example' => 'on', + ], + 'ProxyProtocolV2Enabled' => [ + 'description' => 'Indicates whether the Proxy protocol is used to pass source client IP addresses to backend servers. Valid values:'."\n" + ."\n" + .'* **true**: enables the burst feature for the data disk.'."\n" + .'* **false**: The task is not being retried.'."\n", + 'type' => 'string', + 'example' => 'false', + ], + ], + ], + 'UDPListenerConfig' => [ + 'description' => 'The configurations of the UDP listener.'."\n", + 'type' => 'object', + 'properties' => [ + 'ConnectionDrainTimeout' => [ + 'description' => 'The timeout period of connection draining. Unit: seconds.'."\n" + ."\n" + .'Value values: **10 to 900**.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '300', + ], + 'HealthCheckInterval' => [ + 'description' => 'The interval between two consecutive health checks. Unit: seconds.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '5', + ], + 'HealthCheckExp' => [ + 'description' => 'The response string of UDP health checks.'."\n", + 'type' => 'string', + 'example' => 'ok', + ], + 'HealthCheckConnectPort' => [ + 'description' => 'The port that is used for health checks.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '8080', + ], + 'HealthCheckConnectTimeout' => [ + 'description' => 'The timeout period for a health check response.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '100', + ], + 'MasterSlaveServerGroupId' => [ + 'description' => 'The ID of the primary/secondary server group that is associated with the listener.'."\n", + 'type' => 'string', + 'example' => 'rsp-0bfucw****', + ], + 'HealthyThreshold' => [ + 'description' => 'The number of times that a backend server must consecutively pass health checks before it is declared healthy.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '4', + ], + 'UnhealthyThreshold' => [ + 'description' => 'The number of times that a backend server must consecutively fail health checks before it is declared unhealthy.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '4', + ], + 'ConnectionDrain' => [ + 'description' => 'Indicates whether connection draining is enabled. Valid values:'."\n" + ."\n" + .'* **on**'."\n" + .'* **off**'."\n", + 'type' => 'string', + 'example' => 'off', + ], + 'HealthCheckReq' => [ + 'description' => 'The request string of UDP health checks.'."\n", + 'type' => 'string', + 'example' => 'hello', + ], + 'HealthCheck' => [ + 'description' => 'Indicates whether the health check feature is enabled. Valid values:'."\n" + ."\n" + .'* **on**'."\n" + .'* **off**'."\n", + 'type' => 'string', + 'example' => 'on', + ], + 'ProxyProtocolV2Enabled' => [ + 'description' => 'Indicates whether the Proxy protocol is used to pass source client IP addresses to backend servers. Valid values:'."\n" + ."\n" + .'* **true**: enables the burst feature for the data disk.'."\n" + .'* **false**: The task is not being retried.'."\n", + 'type' => 'string', + 'example' => 'false', + ], + ], + ], + 'Tags' => [ + 'description' => 'A list of tags.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'TagValue' => [ + 'description' => 'The tag value.'."\n", + 'type' => 'string', + 'example' => 'TestValue', + ], + 'TagKey' => [ + 'description' => 'The tag key.'."\n", + 'type' => 'string', + 'example' => 'TestKey', + ], + ], + ], + ], + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'IllegalParam.ListenerProtocol', + 'errorMessage' => 'The param of ListenerProtocol is illegal.', + ], + [ + 'errorCode' => 'IllegalParam.MaxResults', + 'errorMessage' => 'The param of MaxResults is illegal.', + ], + [ + 'errorCode' => 'IllegalParam.NextToken', + 'errorMessage' => 'The param of NextToken is illegal.', + ], + [ + 'errorCode' => 'IllegalParamSize.LoadBalancerId', + 'errorMessage' => 'The param size of LoadBalancerId is illegal.', + ], + [ + 'errorCode' => 'MissingParam.TagKey', + 'errorMessage' => 'The param of TagKey is missing.', + ], + ], + 403 => [ + [ + 'errorCode' => 'UnauthorizedRegion', + 'errorMessage' => 'The specified region of is not authorized.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"NextToken\\": \\"FFmyTO70tTpLG6I3FmYAXGKPd****\\",\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF34B540710\\",\\n \\"TotalCount\\": 10,\\n \\"MaxResults\\": 50,\\n \\"Listeners\\": [\\n {\\n \\"AclType\\": \\"white\\",\\n \\"Status\\": \\"running\\",\\n \\"VServerGroupId\\": \\"rsp-cige6j****\\",\\n \\"ListenerProtocol\\": \\"http\\",\\n \\"LoadBalancerId\\": \\"lb-bp1b6c719dfa****\\",\\n \\"ListenerPort\\": 80,\\n \\"AclId\\": \\"acl-a2do9e413e0spzasx****\\",\\n \\"Scheduler\\": \\"wrr\\",\\n \\"Bandwidth\\": -1,\\n \\"Description\\": \\"test\\",\\n \\"AclStatus\\": \\"off\\",\\n \\"BackendServerPort\\": 80,\\n \\"AclIds\\": [\\n \\"\\"\\n ],\\n \\"HTTPListenerConfig\\": {\\n \\"HealthCheckHttpVersion\\": \\"HTTP 1.0\\",\\n \\"XForwardedFor_ClientSrcPort\\": \\"on\\",\\n \\"Cookie\\": \\"B490B5EBF6F3CD402E515D22BCDA****\\",\\n \\"Gzip\\": \\"on\\",\\n \\"HealthCheckConnectPort\\": 8080,\\n \\"HealthCheckTimeout\\": 3,\\n \\"HealthCheckType\\": \\"tcp\\",\\n \\"CookieTimeout\\": 500,\\n \\"HealthCheckDomain\\": \\"www.example.com\\",\\n \\"UnhealthyThreshold\\": 4,\\n \\"XForwardedFor_SLBID\\": \\"on\\",\\n \\"ForwardPort\\": 80,\\n \\"HealthCheckHttpCode\\": \\"http_2xx,http_3xx\\",\\n \\"ListenerForward\\": \\"on\\",\\n \\"XForwardedFor\\": \\"on\\",\\n \\"IdleTimeout\\": 15,\\n \\"RequestTimeout\\": 60,\\n \\"HealthCheckInterval\\": 5,\\n \\"XForwardedFor_SLBPORT\\": \\"on\\",\\n \\"HealthCheckURI\\": \\"/test/index.html\\",\\n \\"StickySessionType\\": \\"insert\\",\\n \\"HealthyThreshold\\": 4,\\n \\"XForwardedFor_proto\\": \\"on\\",\\n \\"XForwardedFor_SLBIP\\": \\"on\\",\\n \\"StickySession\\": \\"on\\",\\n \\"HealthCheckMethod\\": \\"get\\",\\n \\"HealthCheck\\": \\"on\\"\\n },\\n \\"HTTPSListenerConfig\\": {\\n \\"XForwardedFor_ClientCertClientVerify\\": \\"off\\",\\n \\"HealthCheckHttpVersion\\": \\"HTTP 1.0\\",\\n \\"XForwardedFor_ClientSrcPort\\": \\"off\\",\\n \\"Cookie\\": \\"B490B5EBF6F3CD402E515D22BCDA****\\",\\n \\"Gzip\\": \\"on\\",\\n \\"EnableHttp2\\": \\"off\\",\\n \\"CACertificateId\\": \\"idkp-234-cn-test-0****\\",\\n \\"HealthCheckConnectPort\\": 8080,\\n \\"HealthCheckTimeout\\": 3,\\n \\"HealthCheckType\\": \\"tcp\\",\\n \\"CookieTimeout\\": 500,\\n \\"HealthCheckDomain\\": \\"www.example.com\\",\\n \\"UnhealthyThreshold\\": 4,\\n \\"XForwardedFor_SLBID\\": \\"on\\",\\n \\"XForwardedFor_ClientCertSubjectDN\\": \\"off\\",\\n \\"HealthCheckHttpCode\\": \\"http_2xx,http_3xx\\",\\n \\"XForwardedFor_ClientCertFingerprint\\": \\"off\\",\\n \\"XForwardedFor\\": \\"on\\",\\n \\"RequestTimeout\\": 60,\\n \\"IdleTimeout\\": 15,\\n \\"ServerCertificateId\\": \\"idkp-123-cn-test-0****\\",\\n \\"HealthCheckInterval\\": 5,\\n \\"XForwardedFor_SLBPORT\\": \\"off\\",\\n \\"HealthCheckURI\\": \\"/test/index.html\\",\\n \\"StickySessionType\\": \\"insert\\",\\n \\"XForwardedFor_ClientCertIssuerDN\\": \\"off\\",\\n \\"HealthyThreshold\\": 4,\\n \\"XForwardedFor_proto\\": \\"on\\",\\n \\"XForwardedFor_SLBIP\\": \\"on\\",\\n \\"StickySession\\": \\"on\\",\\n \\"HealthCheckMethod\\": \\"get\\",\\n \\"TLSCipherPolicy\\": \\"tls_cipher_policy_1_0\\",\\n \\"HealthCheck\\": \\"on\\"\\n },\\n \\"TCPListenerConfig\\": {\\n \\"HealthCheckHttpCode\\": \\"http_2xx,http_3xx\\",\\n \\"ConnectionDrainTimeout\\": 300,\\n \\"PersistenceTimeout\\": 0,\\n \\"HealthCheckInterval\\": 5,\\n \\"HealthCheckURI\\": \\"/test/index.html\\",\\n \\"HealthCheckConnectPort\\": 8080,\\n \\"EstablishedTimeout\\": 500,\\n \\"HealthCheckType\\": \\"tcp\\",\\n \\"HealthCheckConnectTimeout\\": 100,\\n \\"MasterSlaveServerGroupId\\": \\"rsp-0bfucw*****\\",\\n \\"HealthyThreshold\\": 4,\\n \\"HealthCheckDomain\\": \\"www.example.com\\",\\n \\"UnhealthyThreshold\\": 4,\\n \\"ConnectionDrain\\": \\"off\\",\\n \\"HealthCheckMethod\\": \\"get\\",\\n \\"HealthCheck\\": \\"on\\",\\n \\"ProxyProtocolV2Enabled\\": \\"false\\"\\n },\\n \\"UDPListenerConfig\\": {\\n \\"ConnectionDrainTimeout\\": 300,\\n \\"HealthCheckInterval\\": 5,\\n \\"HealthCheckExp\\": \\"ok\\",\\n \\"HealthCheckConnectPort\\": 8080,\\n \\"HealthCheckConnectTimeout\\": 100,\\n \\"MasterSlaveServerGroupId\\": \\"rsp-0bfucw****\\",\\n \\"HealthyThreshold\\": 4,\\n \\"UnhealthyThreshold\\": 4,\\n \\"ConnectionDrain\\": \\"off\\",\\n \\"HealthCheckReq\\": \\"hello\\",\\n \\"HealthCheck\\": \\"on\\",\\n \\"ProxyProtocolV2Enabled\\": \\"false\\"\\n },\\n \\"Tags\\": [\\n {\\n \\"TagValue\\": \\"TestValue\\",\\n \\"TagKey\\": \\"TestKey\\"\\n }\\n ]\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\n FFmyTO70tTpLG6I3FmYAXGKPd****\\n 365F4154-92F6-4AE4-92F8-7FF34B540710\\n 10\\n 50\\n \\n white\\n running\\n rsp-cige6j****\\n http\\n lb-bp1b6c719dfa****\\n 80\\n nacl-a2do9e413e0spzasx****\\n wrr\\n -1\\n test\\n off\\n 80\\n \\n HTTP 1.0\\n on\\n B490B5EBF6F3CD402E515D22BCDA****\\n on\\n 8080\\n 3\\n tcp\\n 500\\n www.example.com\\n 4\\n on\\n 80\\n http_2xx,http_3xx\\n on\\n on\\n 15\\n 60\\n 5\\n on\\n /test/index.html\\n insert\\n 4\\n on\\n on\\n on\\n get\\n on\\n \\n \\n off\\n HTTP 1.0\\n off\\n B490B5EBF6F3CD402E515D22BCDA****\\n on\\n off\\n idkp-234-cn-test-0****\\n 8080\\n 3\\n tcp\\n 500\\n www.example.com\\n 4\\n on\\n off\\n http_2xx,http_3xx\\n off\\n on\\n 60\\n 15\\n idkp-123-cn-test-0****\\n 5\\n off\\n /test/index.html\\n insert\\n off\\n 4\\n on\\n on\\n on\\n get\\n tls_cipher_policy_1_0\\n on\\n \\n \\n http_2xx,http_3xx\\n 300\\n 0\\n 5\\n /test/index.html\\n 8080\\n 500\\n tcp\\n 100\\n rsp-0bfucw*****\\n 4\\n www.example.com\\n 4\\n off\\n get\\n on\\n false\\n \\n \\n 300\\n 5\\n ok\\n 8080\\n 100\\n rsp-0bfucw****\\n 4\\n 4\\n off\\n hello\\n on\\n false\\n \\n \\n TestValue\\n TestKey\\n \\n \\n","errorExample":""}]', + 'title' => 'DescribeLoadBalancerListeners', + 'summary' => 'Queries the listeners of a Classic Load Balancer (CLB) instance.', + 'description' => '* A CLB instance is created. For more information, see [CreateLoadBalancer](~~2401685~~).'."\n" + ."\n" + .'* One or more listeners are added to the CLB instance. For more information, see the following topics:'."\n" + ."\n" + .' * [CreateLoadBalancerUDPListener](~~CreateLoadBalancerUDPListener~~)'."\n" + .' * [CreateLoadBalancerTCPListener](~~CreateLoadBalancerTCPListener~~)'."\n" + .' * [CreateLoadBalancerHTTPListener](~~CreateLoadBalancerHTTPListener~~)'."\n" + .' * [CreateLoadBalancerHTTPSListener](~~CreateLoadBalancerHTTPSListener~~)', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'CreateLoadBalancerTCPListener' => [ + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'readAndWrite', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'create', + 'abilityTreeCode' => '88528', + 'abilityTreeNodes' => [ + 'FEATUREslbOL61C3', + ], + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the region where the Classic Load Balancer (CLB) instance is deployed.'."\n" + ."\n" + .'For the most recent region list, refer to [Regions and zones](~~40654~~) or call the [DescribeRegions](~~2401682~~) operation the retrieve the information.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'LoadBalancerId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the CLB instance.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'lb-bp1b6c719dfa08ex****', + ], + ], + [ + 'name' => 'ListenerPort', + 'in' => 'query', + 'schema' => [ + 'description' => 'The frontend port used by the CLB instance.'."\n" + ."\n" + .'Valid values: **1** to **65535**.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => true, + 'docRequired' => true, + 'maximum' => '65535', + 'minimum' => '0', + 'example' => '80', + ], + ], + [ + 'name' => 'BackendServerPort', + 'in' => 'query', + 'schema' => [ + 'description' => 'The backend port used by the CLB instance.'."\n" + ."\n" + .'Valid values: **1** to **65535**.'."\n" + ."\n" + .'If the **VServerGroupId** parameter is not set, this parameter is required.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'maximum' => '65535', + 'minimum' => '0', + 'example' => '80', + ], + ], + [ + 'name' => 'Tag', + 'in' => 'query', + 'allowEmptyValue' => true, + 'style' => 'repeatList', + 'schema' => [ + 'description' => 'The tags.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '', + '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 must be 1 to 64 characters in length and cannot start with `aliyun` or `acs:`. It cannot contain `http://` or `https://`.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'TestKey', + ], + '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 at most 128 characters in length and cannot start with `acs:` or `aliyun`. It cannot contain `http://` or `https://`.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'TestValue', + ], + ], + 'required' => false, + ], + 'required' => false, + 'maxItems' => 20, + ], + ], + [ + 'name' => 'Bandwidth', + 'in' => 'query', + 'schema' => [ + 'description' => 'The maximum bandwidth of the listener. Unit: Mbit/s. Valid values:'."\n" + ."\n" + .'* **-1**: For a pay-by-data-transfer Internet-facing CLB instance, this value can be set to -1, which specifies unlimited bandwidth.'."\n" + .'* **1** to **5120**: For a pay-by-bandwidth Internet-facing CLB instance, you can specify the maximum bandwidth of each listener. The sum of the maximum bandwidth values that you set for all listeners cannot exceed the maximum bandwidth of the CLB instance.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => true, + 'docRequired' => true, + 'maximum' => '5120', + 'minimum' => '-1', + 'example' => '-1', + ], + ], + [ + 'name' => 'Scheduler', + 'in' => 'query', + 'schema' => [ + 'description' => 'The scheduling algorithm. Valid values:'."\n" + ."\n" + .'* **wrr** (default): Backend servers with higher weights receive more requests than those with lower weights.'."\n" + .'* **rr**: Requests are distributed to backend servers in sequence.'."\n" + .'* **sch**: specifies consistent hashing that is based on source IP addresses. Requests from the same source IP address are distributed to the same backend server.'."\n" + .'* **tch**: specifies consistent hashing that is based on four factors: source IP address, destination IP address, source port, and destination port. Requests that contain the same information based on the four factors are distributed to the same backend server.'."\n" + ."\n" + .'> Only high-performance CLB instances support the **sch** and **tch** consistent hashing algorithms.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'wrr', + 'default' => 'wrr', + ], + ], + [ + 'name' => 'PersistenceTimeout', + 'in' => 'query', + 'schema' => [ + 'description' => 'The timeout period of session persistence. Unit: seconds'."\n" + ."\n" + .'Valid values: **0 to 3600**'."\n" + ."\n" + .'Default value: **0**. If the default value is used, the system disables session persistence.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'maximum' => '3600', + 'minimum' => '0', + 'example' => '0', + 'default' => '0', + ], + ], + [ + 'name' => 'EstablishedTimeout', + 'in' => 'query', + 'schema' => [ + 'description' => 'The timeout period of a connection. Unit: seconds'."\n" + ."\n" + .'Valid values: **10** to **900**.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'maximum' => '900', + 'minimum' => '10', + 'example' => '500', + 'default' => '900', + ], + ], + [ + 'name' => 'HealthyThreshold', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of times that an unhealthy backend server must consecutively pass health checks before it is declared healthy. In this case, the health status is changed from **fail** to **success**.'."\n" + ."\n" + .'Valid values: **2** to **10**'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'maximum' => '10', + 'minimum' => '1', + 'example' => '4', + 'default' => '3', + ], + ], + [ + 'name' => 'UnhealthyThreshold', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of times that a healthy backend server must consecutively fail health checks before it is declared unhealthy. In this case, the health status is changed from **success** to **fail**.'."\n" + ."\n" + .'Valid values: **2** to **10**'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'maximum' => '10', + 'minimum' => '1', + 'example' => '4', + 'default' => '3', + ], + ], + [ + 'name' => 'HealthCheckConnectTimeout', + 'in' => 'query', + 'schema' => [ + 'description' => 'The maximum timeout period of a health check response. Unit: seconds'."\n" + ."\n" + .'Valid values: **1** to **300**'."\n" + ."\n" + .'Default value: **5**'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'maximum' => '300', + 'minimum' => '1', + 'example' => '100', + 'default' => '5', + ], + ], + [ + 'name' => 'HealthCheckConnectPort', + 'in' => 'query', + 'schema' => [ + 'description' => 'The port that is used for health checks.'."\n" + ."\n" + .'Valid values: **1** to **65535**.'."\n" + ."\n" + .'If this parameter is not set, the backend port specified by **BackendServerPort** is used for health checks.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'maximum' => '65535', + 'minimum' => '1', + 'example' => '80', + ], + ], + [ + 'name' => 'healthCheckInterval', + 'in' => 'query', + 'schema' => [ + 'description' => 'The interval between two consecutive health checks. Unit: seconds.'."\n" + ."\n" + .'Valid values: **1** to **50**.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'maximum' => '50', + 'minimum' => '1', + 'example' => '3', + ], + ], + [ + 'name' => 'HealthCheckDomain', + 'in' => 'query', + 'schema' => [ + 'description' => 'The domain name that you want to use for health checks. Valid values:'."\n" + ."\n" + .'* **$\\_ip**: the private IP address of a backend server. If you do not set the HealthCheckDomain parameter or set the parameter to $\\_ip, the CLB instance uses the private IP address of each backend server for health checks.'."\n" + .'* **domain**: The domain name must be 1 to 80 characters in length, and can contain letters, digits, periods (.), and hyphens (-).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '172.XX.XX.6', + ], + ], + [ + 'name' => 'HealthCheckURI', + 'in' => 'query', + 'schema' => [ + 'description' => 'The URI that is used for health checks. The URI must be 1 to 80 characters in length, and can contain only digits, letters, hyphens (-), forward slashes (/), periods (.), percent signs (%), number signs (#), and ampersands (&). The URI must start with a forward slash (/) but cannot be a single forward slash (/).'."\n" + ."\n" + .'You can set this parameter when the TCP listener requires HTTP health checks. If you do not set this parameter, TCP health checks are performed.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '/test/index.html', + ], + ], + [ + 'name' => 'HealthCheckHttpCode', + 'in' => 'query', + 'schema' => [ + 'description' => 'The HTTP status code for a successful health check. Separate multiple HTTP status codes with commas (,). Valid values:'."\n" + ."\n" + .'* **http\\_2xx**(default)'."\n" + .'* **http\\_3xx**'."\n" + .'* **http\\_4xx**'."\n" + .'* **http\\_5xx**'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'http_2xx,http_3xx', + ], + ], + [ + 'name' => 'HealthCheckType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The type of health checks. Valid values:'."\n" + ."\n" + .'* **tcp** (default)'."\n" + .'* **http**'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'tcp', + ], + ], + [ + 'name' => 'VServerGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the vServer group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rsp-cige6j****', + ], + ], + [ + 'name' => 'MasterSlaveServerGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the primary/secondary server group.'."\n" + ."\n" + .'> You cannot set both VServerGroupId and MasterSlaveServerGroupId.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rsp-0bfucw****', + ], + ], + [ + 'name' => 'AclId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the network ACL that is associated with the listener.'."\n" + ."\n" + .'> If **AclStatus** is set to **on**, this parameter is required.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'acl-uf60jwfiv6******', + ], + ], + [ + 'name' => 'AclType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The type of the ACL. Valid values:'."\n" + ."\n" + .'* **white**: a whitelist. Only requests from the IP addresses or CIDR blocks in the network ACL are forwarded. Whitelists apply to scenarios where you want to allow only specific IP addresses to access an application.'."\n" + ."\n" + .' Your service may be adversely affected if the whitelist is not properly configured.'."\n" + ."\n" + .' If a whitelist is configured, only requests from IP addresses that are added to the whitelist are forwarded by the listener. If a whitelist is configured but no IP address is added to the whitelist, the listener forwards all requests.'."\n" + ."\n" + .'* **black**: a blacklist. All requests from the IP addresses or CIDR blocks in the ACL are rejected. Blacklists apply to scenarios where you want to block access from specified IP addresses to an application.'."\n" + ."\n" + .' If a blacklist is configured for a listener but no IP address is added to the blacklist, the listener forwards all requests.'."\n" + ."\n" + .'> If **AclStatus** is set to **on**, this parameter is required.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'black', + ], + ], + [ + 'name' => 'AclStatus', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to enable access control. Valid values:'."\n" + ."\n" + .'* **on**: yes'."\n" + .'* **off** (default): no'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'off', + ], + ], + [ + 'name' => 'Description', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the listener.'."\n" + ."\n" + .'The name must be 1 to 256 characters in length, and can contain letters, digits, hyphens (-), forward slashes (/), periods (.), and underscores (\\_).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'tcp_80', + ], + ], + [ + 'name' => 'ConnectionDrain', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to enable connection draining. Valid values:'."\n" + ."\n" + .'* **on**: yes'."\n" + .'* **off**: no'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'off', + ], + ], + [ + 'name' => 'ConnectionDrainTimeout', + 'in' => 'query', + 'schema' => [ + 'description' => 'The timeout period of connection draining. Unit: seconds.'."\n" + ."\n" + .'Valid values: **10** to **900**.'."\n" + ."\n" + .'> This parameter is required if **ConnectionDrain** is set to **on**.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '300', + ], + ], + [ + 'name' => 'ProxyProtocolV2Enabled', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to use the Proxy protocol to pass client IP addresses to backend servers. Valid values:'."\n" + ."\n" + .'* **true**: yes'."\n" + .'* **false** (default): no'."\n", + 'type' => 'boolean', + 'required' => false, + 'example' => 'false', + ], + ], + [ + 'name' => 'HealthCheckSwitch', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to enable the health check feature. Valid values:'."\n" + ."\n" + .'* **on** (default): yes'."\n" + .'* **off**: no'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'on', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameterValue.SpecNotSupport', + 'errorMessage' => 'The loadBalancer of shared spec does not support the parameter value, %s.', + ], + [ + 'errorCode' => 'OperationNotSupport.Acl', + 'errorMessage' => 'The cloud box instance does not support acl.', + ], + [ + 'errorCode' => 'InvalidParameterValue.RegionNotSupport', + 'errorMessage' => 'The region does not support the parameter value, %s.', + ], + [ + 'errorCode' => 'Abs.VServerGroupIdAndMasterSlaveServerGroupId.MissMatch', + 'errorMessage' => 'The parameters VServerGroupId or MasterSlaveServerGroupId miss match.', + ], + [ + 'errorCode' => 'IpVersionConflict', + 'errorMessage' => 'The ip version of this LoadBalancer and the Acl is conflict.', + ], + [ + 'errorCode' => 'InvalidParameterValue.ZoneNotSupport', + 'errorMessage' => 'The zone does not support the parameter value, %s.', + ], + [ + 'errorCode' => 'ListenerProcessing', + 'errorMessage' => 'A previous configuration of the listener is pending, please try again later.', + ], + [ + 'errorCode' => 'AclNotExist', + 'errorMessage' => 'Acl does not exist.', + ], + [ + 'errorCode' => 'InvalidParameter.ListenerPortConflict', + 'errorMessage' => 'There is conflict listener port exists.', + ], + [ + 'errorCode' => 'InvalidParameter.ZoneNotSupport', + 'errorMessage' => 'The zone does not support the parameter %s.', + ], + [ + 'errorCode' => 'InvalidParam.VServerGroupId', + 'errorMessage' => 'The specified VServerGroupId is invalid.', + ], + [ + 'errorCode' => 'MissingParam.HealthCheckConnectPort', + 'errorMessage' => 'The parameter HealthCheckConnectPort is required.', + ], + [ + 'errorCode' => 'InvalidParam.ListenerPort', + 'errorMessage' => 'The specified ListenerPort is invalid.', + ], + [ + 'errorCode' => 'InvalidParam.StartPort', + 'errorMessage' => 'The specified StartPort is invalid.', + ], + [ + 'errorCode' => 'InvalidParamSize.PortRange', + 'errorMessage' => 'The size of param PortRange is invalid.', + ], + [ + 'errorCode' => 'InvalidParam.EndPort', + 'errorMessage' => 'The specified EndPort is invalid.', + ], + [ + 'errorCode' => 'Duplicated.AclEntry', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'OperationUnsupported.SetAccessControl', + 'errorMessage' => 'The singleTunnel/anyTunnel loadbalancer does not support config AccessControlList.', + ], + [ + 'errorCode' => 'InvalidParam.PortRange', + 'errorMessage' => 'The specified PortRange is invalid.', + ], + [ + 'errorCode' => 'InvalidParameter.RegionNotSupport', + 'errorMessage' => 'The region does not support the parameter: %s.', + ], + [ + 'errorCode' => 'LbNotSupportTcpssl', + 'errorMessage' => 'You cannot create a TCP SSL type listener for the specified load balancer.', + ], + [ + 'errorCode' => 'LbSupportTcpsslOnly', + 'errorMessage' => 'The specified load balancer supports TCP SSL type listener only.', + ], + [ + 'errorCode' => 'ListenerNotSupportRule', + 'errorMessage' => 'You cannot create a rule for the specified listener.', + ], + [ + 'errorCode' => 'ListenerPortConflict', + 'errorMessage' => 'The specified ListenerPort is conflict with other listener.', + ], + [ + 'errorCode' => 'ResourceNotFound.VServerGroup', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'IllegalParam.FailoverThreshold', + 'errorMessage' => 'The parameter FailoverThreshold is illegal.', + ], + [ + 'errorCode' => 'IllegalParam.FailoverStrategy', + 'errorMessage' => 'The parameter FailoverStrategy is illegal.', + ], + [ + 'errorCode' => 'MasterSlaveServerConflict', + 'errorMessage' => 'The servers are conflict for MasterSlaveGroup.', + ], + [ + 'errorCode' => 'OperationDenied.HealthCheckClosedForMasterSlaveMode', + 'errorMessage' => 'The operation is denied because of HealthCheckClosedForMasterSlaveMode.', + ], + [ + 'errorCode' => 'IllegalParam.HealthCheck', + 'errorMessage' => 'The param of HelathCheck is illegal.', + ], + [ + 'errorCode' => 'Mismatch.SlbSpecTypeAndListenerProtocol', + 'errorMessage' => 'The SlbSpecType and ListenerProtocol are mismatched.', + ], + [ + 'errorCode' => 'OperationDenied.FullNatModeNotAllowed', + 'errorMessage' => 'The operation is not allowed because of FullNatModeNotAllowed.', + ], + [ + 'errorCode' => 'OperationDenied.OnlyIpv4SlbSupport', + 'errorMessage' => 'The operation is not allowed because of OnlyIpv4SlbSupport.', + ], + [ + 'errorCode' => 'SpecNotSupportParameter', + 'errorMessage' => 'The instance with share spec does not support FullNatEnabled parameter.', + ], + [ + 'errorCode' => 'InvalidParam.TagValue ', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'InvalidParam.TagKey', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'SizeLimitExceeded.Tag', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'MissingParam.TagKey', + 'errorMessage' => 'The param MissingParam.TagKey is missing.', + ], + [ + 'errorCode' => 'MissingParameter', + 'errorMessage' => 'The BackendServerPort or VServerGroupId is required at lease one.', + ], + [ + 'errorCode' => 'AclListenerOverLimit', + 'errorMessage' => 'This acl has reached the limit of binding to listeners.', + ], + [ + 'errorCode' => 'QuotaLimitExceeds.AclAttachedToListener', + 'errorMessage' => 'The number of Acl bound listeners has reached the quota limit', + ], + [ + 'errorCode' => 'QuotaLimitExceeds.TotalAclEntry', + 'errorMessage' => 'The number of Acl entries has reached the quota limit.', + ], + [ + 'errorCode' => 'QuotaLimitExceeds.AclListenerOverLimit', + 'errorMessage' => 'This acl has reached the limit of binding to listeners.', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\"\\n}","type":"json"}]', + 'title' => 'CreateLoadBalancerTCPListener', + 'summary' => 'Creates a TCP listener.', + 'description' => '> Newly created listeners are in the **stopped** state. After a listener is created, call the [StartLoadBalancerListener](~~2401757~~) operation to enable the listener to forward network traffic.'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'SetLoadBalancerTCPListenerAttribute' => [ + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'update', + 'abilityTreeCode' => '88674', + 'abilityTreeNodes' => [ + 'FEATUREslbOL61C3', + ], + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the CLB instance.'."\n" + ."\n" + .'You can query the region ID from the [Regions and zones](~~40654~~) list or by calling the [DescribeRegions](~~DescribeRegions~~) operation.', + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'LoadBalancerId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the CLB instance.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'lb-bp1ygod3yctvg1y****', + ], + ], + [ + 'name' => 'ListenerPort', + 'in' => 'query', + 'schema' => [ + 'description' => 'The frontend port used by the CLB instance.'."\n" + ."\n" + .'Valid values: **1** to **65535**.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => true, + 'docRequired' => true, + 'maximum' => '65535', + 'minimum' => '0', + 'example' => '80', + ], + ], + [ + 'name' => 'Bandwidth', + 'in' => 'query', + 'schema' => [ + 'description' => 'The maximum bandwidth of the listener. Unit: Mbit/s. Valid values: **-1** and **1** to **5120**.'."\n" + ."\n" + .'* **-1**: For a pay-by-data-transfer Internet-facing CLB instance, you can set this parameter to **-1**, which specifies unlimited bandwidth.'."\n" + .'* **1** to **5120**: For a pay-by-bandwidth Internet-facing CLB instance, you can specify the maximum bandwidth of each listener. The sum of the maximum bandwidth values of all listeners cannot exceed the maximum bandwidth of the CLB instance.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'maximum' => '5120', + 'minimum' => '-1', + 'example' => '43', + ], + ], + [ + 'name' => 'Scheduler', + 'in' => 'query', + 'schema' => [ + 'description' => 'The scheduling algorithm. Valid values:'."\n" + ."\n" + .'* **wrr**: Backend servers that have higher weights receive more requests than backend servers that have lower weights.'."\n" + .'* **rr**: Requests are distributed to backend servers in sequence.'."\n" + .'* **sch**: specifies consistent hashing that is based on source IP addresses. Requests from the same source IP address are distributed to the same backend server.'."\n" + .'* **tch**: specifies consistent hashing that is based on four factors: source IP address, destination IP address, source port, and destination port. Requests that contain the same information based on the four factors are distributed to the same backend server.'."\n" + ."\n" + .'> * Only high-performance CLB instances support the **sch** and **tch** algorithms.'."\n" + .'> * CLB does not support converting the **wrr** and **rr** algorithms to sch or tch. You cannot switch the hash algorithm from one to another.', + 'type' => 'string', + 'required' => false, + 'example' => 'wrr', + ], + ], + [ + 'name' => 'PersistenceTimeout', + 'in' => 'query', + 'schema' => [ + 'description' => 'The timeout period of session persistence. Valid values: **0** to **3600**. Unit: seconds.'."\n" + ."\n" + .'Default value: **0**. If the default value is used, the system disables session persistence.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'maximum' => '3600', + 'minimum' => '0', + 'example' => '0', + ], + ], + [ + 'name' => 'EstablishedTimeout', + 'in' => 'query', + 'schema' => [ + 'description' => 'The timeout period of a connection. Unit: seconds. Valid values: **10** to **900**.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'maximum' => '900', + 'minimum' => '10', + 'example' => '500', + ], + ], + [ + 'name' => 'HealthyThreshold', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of times that an unhealthy backend server must consecutively pass health checks before it is declared healthy. In this case, the health status is changed from **fail** to **success**.'."\n" + ."\n" + .'Valid values: **2** to **10**.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'maximum' => '10', + 'minimum' => '1', + 'example' => '4', + ], + ], + [ + 'name' => 'UnhealthyThreshold', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of times that a healthy backend server must consecutively fail health checks before it is declared unhealthy. In this case, the health status is changed from **success** to **fail**.'."\n" + ."\n" + .'Valid values: **2** to **10**.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'maximum' => '10', + 'minimum' => '1', + 'example' => '4', + ], + ], + [ + 'name' => 'HealthCheckConnectTimeout', + 'in' => 'query', + 'schema' => [ + 'description' => 'The timeout period of a health check.'."\n" + ."\n" + .'If a backend ECS instance does not return a health check response within the specified timeout period, the server fails the health check.'."\n" + ."\n" + .'Valid values: **1** to **300**. Unit: seconds.'."\n" + ."\n" + .'> If the value of the **HealthCheckConnectTimeout** parameter is smaller than that of the **HealthCheckInterval** parameter, the timeout period specified by the **HCTimeout** parameter is ignored and the period of time specified by the **HealthCheckInterval** parameter is used as the timeout period.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'maximum' => '300', + 'minimum' => '1', + 'example' => '100', + ], + ], + [ + 'name' => 'HealthCheckConnectPort', + 'in' => 'query', + 'schema' => [ + 'description' => 'The port that is used for health checks. Valid values: **1** to **65535**.'."\n" + ."\n" + .'If you do not set this parameter, the port specified by the **BackendServerPort** parameter is used.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'maximum' => '65535', + 'minimum' => '1', + 'example' => '8080', + ], + ], + [ + 'name' => 'HealthCheckInterval', + 'in' => 'query', + 'schema' => [ + 'description' => 'The interval between two consecutive health checks. Unit: seconds.'."\n" + ."\n" + .'Valid values: **1** to **50**.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'maximum' => '50', + 'minimum' => '1', + 'example' => '5', + ], + ], + [ + 'name' => 'HealthCheckDomain', + 'in' => 'query', + 'schema' => [ + 'description' => 'The domain name that is used for health checks. You can set this parameter when the TCP listener requires HTTP health checks. If you do not set this parameter, TCP health checks are performed.'."\n" + ."\n" + .'* **$\\_ip**: the private IP addresses of the backend servers.'."\n" + ."\n" + .' If you do not set the HealthCheckHost parameter or set the parameter to $SERVER_IP, the CLB instance uses the private IP addresses of backend servers for health checks.'."\n" + ."\n" + .'* **domain**: The domain name is 1 to 80 characters in length, and can contain letters, digits, periods (.), and hyphens (-).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '192.168.XX.XX', + ], + ], + [ + 'name' => 'HealthCheckURI', + 'in' => 'query', + 'schema' => [ + 'description' => 'The URI that is used for health checks. The URI must be 1 to 80 characters in length, and can contain letters, digits, hyphens (-), forward slashes (/), periods (.), percent signs (%), question marks (?), number signs (#), and ampersands (&). The URI must start with a forward slash (/) but cannot be a single forward slash (/).'."\n" + ."\n" + .'You can set this parameter when the TCP listener requires HTTP health checks.'."\n" + ."\n" + .'If you do not set this parameter, TCP health checks are performed.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '/test/index.html', + ], + ], + [ + 'name' => 'HealthCheckHttpCode', + 'in' => 'query', + 'schema' => [ + 'description' => 'The HTTP status code for a successful health check. Separate multiple HTTP status codes with commas (,).'."\n" + ."\n" + .'Valid values: **http\\_2xx**, **http\\_3xx**, **http\\_4xx**, and **http\\_5xx**.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'http_2xx', + ], + ], + [ + 'name' => 'HealthCheckType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The type of the health check. Valid values: **tcp** and **http**.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'tcp', + ], + ], + [ + 'name' => 'SynProxy', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to enable the SynProxy feature of CLB for protection. Valid values:'."\n" + ."\n" + .'* **enable**: yes'."\n" + .'* **disable**: no'."\n" + ."\n" + .'We recommend that you use the default value of this parameter.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'enable', + ], + ], + [ + 'name' => 'VServerGroup', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to use a vServer group. Valid values:'."\n" + ."\n" + .'* **on**: yes'."\n" + .'* **off**: no'."\n" + ."\n" + .'> You cannot set both **VserverGroup** and **MasterSlaveServerGroup** to **on**.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'on', + ], + ], + [ + 'name' => 'VServerGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the vServer group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rsp-cige6j5****', + ], + ], + [ + 'name' => 'MasterSlaveServerGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the primary/secondary server group.'."\n" + ."\n" + .'> You can set only one of the VServerGroupId and MasterSlaveServerGroupId parameters.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rsp-cige****', + ], + ], + [ + 'name' => 'MasterSlaveServerGroup', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to use a primary/secondary server group. Valid values:'."\n" + ."\n" + .'* **on**: yes'."\n" + .'* **off**: no'."\n" + ."\n" + .'You cannot set both **VserverGroup** and **MasterSlaveServerGroup** to **on**.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'on', + ], + ], + [ + 'name' => 'AclId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the network access control list (ACL) that is associated with the listener.'."\n" + ."\n" + .'If **AclStatus** is set to **on**, this parameter is required.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '12333', + ], + ], + [ + 'name' => 'AclType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The type of the network ACL. Valid values:'."\n" + ."\n" + .'* **white**: a whitelist. Only requests from the IP addresses or CIDR blocks in the network ACL are forwarded. Whitelists apply to scenarios where you want to allow only specific IP addresses to access an application. Your service may be adversely affected if the allowlist is not properly configured. After a whitelist is configured, only requests from IP addresses that are added to the whitelist are forwarded by the listener.'."\n" + ."\n" + .' If you enable a whitelist but do not add an IP address to the ACL, the listener forwards all requests.'."\n" + ."\n" + .'* **black**: a blacklist. All requests from the IP addresses or CIDR blocks in the ACL are rejected. Blacklists apply to scenarios where you want to block access from specified IP addresses to an application.'."\n" + ."\n" + .' If a blacklist is configured for a listener but no IP address is added to the blacklist, the listener forwards all requests.'."\n" + ."\n" + .'> If **AclStatus** is set to **on**, this parameter is required.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'white', + ], + ], + [ + 'name' => 'AclStatus', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to enable access control. Valid values:'."\n" + ."\n" + .'* **on**: yes'."\n" + .'* **off**: no'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'off', + ], + ], + [ + 'name' => 'Description', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the listener.'."\n" + ."\n" + .'The name must be 1 to 256 characters in length and can contain letters, digits, hyphens (-), forward slashes (/), periods (.), and underscores (\\_).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'tcp_80', + ], + ], + [ + 'name' => 'ConnectionDrain', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to enable connection draining. Valid values:'."\n" + ."\n" + .'* **on**: yes'."\n" + .'* **off**: no'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'off', + ], + ], + [ + 'name' => 'ConnectionDrainTimeout', + 'in' => 'query', + 'schema' => [ + 'description' => 'The timeout period of connection draining. This parameter is required if **ConnectionDrain** is set to **on**. Unit: seconds.'."\n" + ."\n" + .'Valid values: **10** to **900**.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '300', + ], + ], + [ + 'name' => 'ProxyProtocolV2Enabled', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to use the Proxy protocol to pass client IP addresses to backend servers. Valid values:'."\n" + ."\n" + .'* **true**: yes'."\n" + .'* **false**: no'."\n", + 'type' => 'boolean', + 'required' => false, + 'example' => 'false', + ], + ], + [ + 'name' => 'HealthCheckSwitch', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to enable the health check feature. Valid values:'."\n" + ."\n" + .'* **on**: yes'."\n" + .'* **off**: no'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'on', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameterValue.SpecNotSupport', + 'errorMessage' => 'The loadBalancer of shared spec does not support the parameter value, %s.', + ], + [ + 'errorCode' => 'OperationNotSupport.Acl', + 'errorMessage' => 'The cloud box instance does not support acl.', + ], + [ + 'errorCode' => 'InvalidParameterValue.RegionNotSupport', + 'errorMessage' => 'The region does not support the parameter value, %s.', + ], + [ + 'errorCode' => 'IpVersionConflict', + 'errorMessage' => 'The ip version of this LoadBalancer and the Acl is conflict.', + ], + [ + 'errorCode' => 'InvalidParameterValue.ZoneNotSupport', + 'errorMessage' => 'The zone does not support the parameter value, %s.', + ], + [ + 'errorCode' => 'InvalidParameter.ZoneNotSupport', + 'errorMessage' => 'The zone does not support the parameter %s.', + ], + [ + 'errorCode' => 'OperationFailed.ServerGroupInUse', + 'errorMessage' => 'The VServerGroup or MasterSlaveServerGroup can not be close for this listener.', + ], + [ + 'errorCode' => 'InvalidParam.VServerGroupId', + 'errorMessage' => 'The specified VServerGroupId is invalid.', + ], + [ + 'errorCode' => 'MissingParam.HealthCheckConnectPort', + 'errorMessage' => 'The parameter HealthCheckConnectPort is required.', + ], + [ + 'errorCode' => 'InvalidParam.ListenerPort', + 'errorMessage' => 'The specified ListenerPort is invalid.', + ], + [ + 'errorCode' => 'InvalidParam.StartPort', + 'errorMessage' => 'The specified StartPort is invalid.', + ], + [ + 'errorCode' => 'InvalidParamSize.PortRange', + 'errorMessage' => 'The size of param PortRange is invalid.', + ], + [ + 'errorCode' => 'InvalidParam.EndPort', + 'errorMessage' => 'The specified EndPort is invalid.', + ], + [ + 'errorCode' => 'InvalidParam.PortRange', + 'errorMessage' => 'The specified PortRange is invalid.', + ], + [ + 'errorCode' => 'Duplicated.AclEntry', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'ResourceNotFound.VServerGroup', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'IllegalParam.FailoverStrategy', + 'errorMessage' => 'The parameter FailoverStrategy is illegal.', + ], + [ + 'errorCode' => 'IllegalParam.FailoverThreshold', + 'errorMessage' => 'The parameter FailoverThreshold is illegal.', + ], + [ + 'errorCode' => 'MasterSlaveServerConflict', + 'errorMessage' => 'The servers are conflict for MasterSlaveGroup.', + ], + [ + 'errorCode' => 'MissingParam.VServerGroupId', + 'errorMessage' => 'The parameter VServerGroupId is missing.', + ], + [ + 'errorCode' => 'OperationDenied.HealthCheckClosedForMasterSlaveMode', + 'errorMessage' => 'The operation is denied because of HealthCheckClosedForMasterSlaveMode.', + ], + [ + 'errorCode' => 'InvalidParam.HealthCheck', + 'errorMessage' => 'The param of HealthCheck is illegal.', + ], + [ + 'errorCode' => 'OperationDenied.MasterSlaveGroupLogEnabled', + 'errorMessage' => 'The operation is denied because of MasterSlaveGroupLogEnabled.', + ], + [ + 'errorCode' => 'OperationDenied.NotSupportAcl', + 'errorMessage' => 'The operation is denied because The single Tunnel or any Tunnel loadbalancer does not support config AccessControlList.', + ], + [ + 'errorCode' => 'OperationDenied.FullNatModeNotAllowed', + 'errorMessage' => 'The operation is not allowed because of FullNatModeNotAllowed.', + ], + [ + 'errorCode' => 'OperationDenied.OnlyIpv4SlbSupport', + 'errorMessage' => 'The operation is not allowed because of OnlyIpv4SlbSupport.', + ], + [ + 'errorCode' => 'SpecNotSupportParameter', + 'errorMessage' => 'The instance with share spec does not support FullNatEnabled parameter.', + ], + [ + 'errorCode' => 'Abs.VServerGroupIdAndMasterSlaveServerGroupId.MissMatch', + 'errorMessage' => 'Virtual service group ID or master slave server group ID is missing. Please check the input parameters.', + ], + [ + 'errorCode' => 'AclListenerOverLimit', + 'errorMessage' => 'This acl has reached the limit of binding to listeners.', + ], + [ + 'errorCode' => 'QuotaLimitExceeds.AclAttachedToListener', + 'errorMessage' => 'The number of Acl bound listeners has reached the quota limit', + ], + [ + 'errorCode' => 'QuotaLimitExceeds.TotalAclEntry', + 'errorMessage' => 'The number of Acl entries has reached the quota limit.', + ], + [ + 'errorCode' => 'QuotaLimitExceeds.AclListenerOverLimit', + 'errorMessage' => 'This acl has reached the limit of binding to listeners.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\"\\n}","errorExample":""},{"type":"xml","example":"\\n CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\n","errorExample":""}]', + 'title' => 'SetLoadBalancerTCPListenerAttribute', + 'summary' => 'Modifies the configurations of a TCP listener of Classic Load Balancer (CLB).', + 'description' => '* A CLB instance is created. For more information, see [CreateLoadBalancer](~~2401685~~).'."\n" + .'* A TCP listener is created. For more information, see [CreateLoadBalancerTCPListener](~~CreateLoadBalancerTCPListener~~).', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'DescribeLoadBalancerTCPListenerAttribute' => [ + 'summary' => 'Queries the configurations of a TCP listener of Classic Load Balancer (CLB).', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'get', + 'abilityTreeCode' => '88587', + 'abilityTreeNodes' => [ + 'FEATUREslbZQW9H1', + ], + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the CLB instance.'."\n" + ."\n" + .'You can query the region ID from the [Regions and zones](~~40654~~) list or by calling the [DescribeRegions](~~25609~~) operation.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'LoadBalancerId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the CLB instance.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'lb-bp1ygod3yctvg1y****', + ], + ], + [ + 'name' => 'ListenerPort', + 'in' => 'query', + 'schema' => [ + 'description' => 'The frontend port used by the CLB instance.'."\n" + ."\n" + .'Valid values: **1** to **65535**.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => true, + 'docRequired' => true, + 'maximum' => '65535', + 'minimum' => '0', + 'example' => '80', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'VServerGroupId' => [ + 'description' => 'The ID of the associated server group.'."\n", + 'type' => 'string', + 'example' => 'rsp-cige6******8', + ], + 'Status' => [ + 'description' => 'The status of the listener. Valid values:'."\n" + ."\n" + .'* **running**'."\n" + .'* **stopped**'."\n", + 'type' => 'string', + 'example' => 'stopped', + ], + 'AclType' => [ + 'description' => 'The type of the ACL. Valid values:'."\n" + ."\n" + .'* **white**: a whitelist. Only requests from the IP addresses or CIDR blocks in the network ACL are forwarded. Whitelists apply to scenarios in which you want to allow only specific IP addresses to access an application.'."\n" + ."\n" + .' Your service may be adversely affected if the whitelist is not properly configured. After a whitelist is configured, only requests from IP addresses that are added to the whitelist are forwarded by the listener.'."\n" + ."\n" + .' If you enable a whitelist but do not add an IP address to the ACL, the listener forwards all requests.'."\n" + ."\n" + .'* **black**: a blacklist. All requests from the IP addresses or CIDR blocks in the network ACL are rejected. Blacklists apply to scenarios in which you want to block access from specified IP addresses to an application.'."\n" + ."\n" + .' If a blacklist is configured for a listener but no IP address is added to the blacklist, the listener forwards all requests.'."\n" + ."\n" + .'> If **AclStatus** is set to **on**, this parameter is returned.'."\n", + 'type' => 'string', + 'example' => 'white', + ], + 'ConnectionDrainTimeout' => [ + 'description' => 'The timeout period of connection draining. If **ConnectionDrain** is set to **on**, the parameter is returned.'."\n" + ."\n" + .'Valid values: 10 to 900. Unit: seconds.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '300', + ], + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => '365F4154-92F6-4AE4-92F8-7FF34B540710', + ], + 'HealthCheckConnectPort' => [ + 'description' => 'The port that is used for health checks. Valid values: **1** to **65535**. If this parameter is not set, the port specified by BackendServerPort is used for health checks.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '8080', + ], + 'Description' => [ + 'description' => 'The description of the listener.'."\n", + 'type' => 'string', + 'example' => 'TCP_80', + ], + 'Bandwidth' => [ + 'description' => 'The maximum bandwidth of the listener. Unit: Mbit/s. Valid values:'."\n" + ."\n" + .'* **-1**: For a pay-by-data-transfer Internet-facing CLB instance, this parameter is set to -1. This indicates that the bandwidth of the listener is unlimited.'."\n" + .'* **1** to **5120**: For a pay-by-bandwidth Internet-facing CLB instance, you can specify the maximum bandwidth of each listener. The sum of maximum bandwidth of all listeners cannot exceed the maximum bandwidth of the CLB instance.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '-1', + ], + 'HealthCheckType' => [ + 'description' => 'The health check method that is used by the TCP listener.'."\n" + ."\n" + .'Valid values: **tcp** and **http**.'."\n", + 'type' => 'string', + 'example' => 'tcp', + ], + 'MasterSlaveServerGroupId' => [ + 'description' => 'The ID of the primary/secondary server group that is associated with the listener.'."\n", + 'type' => 'string', + 'example' => 'rsp-0bfucw****', + ], + 'BackendServerPort' => [ + 'description' => 'The backend port used by the CLB instance.'."\n" + ."\n" + .'> If the listener is associated with a vServer group, this parameter is not returned.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '443', + ], + 'AclStatus' => [ + 'description' => 'Indicates whether access control is enabled. Valid values:'."\n" + ."\n" + .'* **on**: yes'."\n" + .'* **off**: no'."\n", + 'type' => 'string', + 'example' => 'off', + ], + 'HealthCheckDomain' => [ + 'description' => 'The domain name that is used for health checks. Valid values:'."\n" + ."\n" + .'* **$\\_ip**: the private IP addresses of backend servers. If you do not set the HealthCheckDomain parameter or set the parameter to $\\_ip, the CLB instance uses the private IP address of each backend server for health checks.'."\n" + .'* **domain**: The domain name is 1 to 80 characters in length, and can contain letters, digits, periods (.), and hyphens (-).'."\n", + 'type' => 'string', + 'example' => 'www.domain.com', + ], + 'UnhealthyThreshold' => [ + 'description' => 'The unhealthy threshold. The number of times that a healthy backend server must consecutively fail health checks before it is declared unhealthy. In this case, the health status is changed from **success** to **fail**. Valid values: **2** to **10**.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '4', + ], + 'HealthCheckHttpCode' => [ + 'description' => 'The HTTP status code for a successful health check.'."\n", + 'type' => 'string', + 'example' => 'http_2xx', + ], + 'ProxyProtocolV2Enabled' => [ + 'description' => 'Indicates whether the Proxy protocol is used to pass client IP addresses to backend servers. Valid values:'."\n" + ."\n" + .'* **true**: yes'."\n" + .'* **false**: no'."\n", + 'type' => 'boolean', + 'example' => 'false', + ], + 'PersistenceTimeout' => [ + 'description' => 'The timeout period of session persistence.'."\n" + ."\n" + .'Valid values: **0** to **3600**. Unit: seconds. Default value: **0**. If the default value is used, the system disables session persistence.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '0', + ], + 'ListenerPort' => [ + 'description' => 'The frontend port used by the CLB instance.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '110', + ], + 'HealthCheckInterval' => [ + 'description' => 'The interval between two consecutive health checks. Valid values: **1** to **50**. Unit: seconds.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '5', + ], + 'HealthCheckURI' => [ + 'description' => 'The URL that is used for health checks. The URL must be 1 to 80 characters in length, and can contain letters, digits, hyphens (-), forward slashes (/), periods (.), percent signs (%), question marks (?), number signs (#), and ampersands (&). The URL is not a single forward slash (/) but it starts with a forward slash (/).'."\n", + 'type' => 'string', + 'example' => '/test/index.html', + ], + 'AclId' => [ + 'description' => 'The ID of the network ACL that is associated with the listener.'."\n" + ."\n" + .'If **AclStatus** is set to **on**, this parameter is returned.'."\n", + 'type' => 'string', + 'example' => 'acl-uf60jwfi******', + ], + 'SynProxy' => [ + 'description' => 'Indicates whether the SynProxy feature of CLB is enabled for protection.'."\n" + ."\n" + .'We recommend that you use the default value of this parameter. Valid values:'."\n" + ."\n" + .'* **enable**: yes'."\n" + .'* **disable**: no'."\n", + 'type' => 'string', + 'example' => 'disable', + ], + 'Scheduler' => [ + 'description' => 'The scheduling algorithm.'."\n" + ."\n" + .'* **wrr** (default): Backend servers with higher weights receive more requests than backend servers with lower weights.'."\n" + .'* **rr**: Requests are distributed to backend servers in sequence.'."\n" + .'* **sch**: specifies consistent hashing that is based on source IP addresses. Requests from the same source IP address are distributed to the same backend server.'."\n" + .'* **tch**: specifies consistent hashing that is based on four factors: source IP address, destination IP address, source port, and destination port. Requests that contain the same information based on the four factors are distributed to the same backend server.'."\n" + ."\n" + .'> Only high-performance CLB instances support the sch and tch algorithms.', + 'type' => 'string', + 'example' => 'wrr', + ], + 'EstablishedTimeout' => [ + 'description' => 'The timeout period of a connection.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '500', + ], + 'HealthCheckConnectTimeout' => [ + 'description' => 'The timeout period.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '100', + ], + 'HealthyThreshold' => [ + 'description' => 'The healthy threshold. The number of times that an unhealthy backend server must consecutively pass health checks before it is declared healthy. In this case, the health status is changed from **fail** to **success**. Valid values: **2** to **10**.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '4', + ], + 'ConnectionDrain' => [ + 'description' => 'Indicates whether connection draining is enabled. If **ConnectionDrain** is set to **on**, the parameter is returned. Valid values:'."\n" + ."\n" + .'* **on**: yes'."\n" + .'* **off**: no'."\n", + 'type' => 'string', + 'example' => 'off', + ], + 'HealthCheckMethod' => [ + 'description' => 'The health check method.'."\n", + 'type' => 'string', + 'example' => 'tcp', + ], + 'HealthCheck' => [ + 'description' => 'Indicates whether the health check feature is enabled. Valid values:'."\n" + ."\n" + .'* **on**: yes'."\n" + .'* **off**: no'."\n", + 'type' => 'string', + 'example' => 'on', + ], + 'AclIds' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'AclId' => [ + 'description' => 'The IDs of the ACLs.'."\n", + 'type' => 'array', + ], + ], + ], + 'LoadBalancerId' => [ + 'description' => 'The ID of the CLB instance.'."\n", + 'type' => 'string', + 'example' => 'lb-bp1ygod3yctvg1y****', + ], + 'Tags' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Tag' => [ + 'description' => 'The tags.', + 'type' => 'array', + 'items' => [ + 'description' => 'The tag list.'."\n", + 'type' => 'object', + 'properties' => [ + 'TagKey' => [ + 'description' => 'The key of tag N. Valid values of N: **1** to **20**. The tag value cannot be an empty string. The tag key can be up to 128 characters in length, and cannot contain `http://` or `https://`. It cannot start with `acs:` or `aliyun`.'."\n", + 'type' => 'string', + 'example' => 'TestKey', + ], + 'TagValue' => [ + 'description' => 'The value of tag N. Valid values of N: **1** to **20**. The tag value can be an empty string. The tag value can be up to 128 characters in length, and cannot start with `acs:`. It cannot contain `http://` or `https://`.'."\n", + 'type' => 'string', + 'example' => 'TestValue', + ], + ], + ], + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'LocationServiceTimeout', + 'errorMessage' => 'Location service connection timeout. Please try again later.', + ], + ], + 403 => [ + [ + 'errorCode' => 'UnauthorizedRegion', + 'errorMessage' => 'The specified region of is not authorized.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"VServerGroupId\\": \\"rsp-cige6******8\\",\\n \\"Status\\": \\"stopped\\",\\n \\"AclType\\": \\"white\\",\\n \\"ConnectionDrainTimeout\\": 300,\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF34B540710\\",\\n \\"HealthCheckConnectPort\\": 8080,\\n \\"Description\\": \\"TCP_80\\",\\n \\"Bandwidth\\": -1,\\n \\"HealthCheckType\\": \\"tcp\\",\\n \\"MasterSlaveServerGroupId\\": \\"rsp-0bfucw****\\",\\n \\"BackendServerPort\\": 443,\\n \\"AclStatus\\": \\"off\\",\\n \\"HealthCheckDomain\\": \\"www.domain.com\\",\\n \\"UnhealthyThreshold\\": 4,\\n \\"HealthCheckHttpCode\\": \\"http_2xx\\",\\n \\"ProxyProtocolV2Enabled\\": false,\\n \\"PersistenceTimeout\\": 0,\\n \\"ListenerPort\\": 110,\\n \\"HealthCheckInterval\\": 5,\\n \\"HealthCheckURI\\": \\"/test/index.html\\",\\n \\"AclId\\": \\"acl-uf60jwfi******\\",\\n \\"SynProxy\\": \\"disable\\",\\n \\"Scheduler\\": \\"wrr\\",\\n \\"EstablishedTimeout\\": 500,\\n \\"HealthCheckConnectTimeout\\": 100,\\n \\"HealthyThreshold\\": 4,\\n \\"ConnectionDrain\\": \\"off\\",\\n \\"HealthCheckMethod\\": \\"tcp\\",\\n \\"HealthCheck\\": \\"on\\",\\n \\"AclIds\\": {\\n \\"AclId\\": [\\n \\"\\"\\n ]\\n },\\n \\"LoadBalancerId\\": \\"lb-bp1ygod3yctvg1y****\\",\\n \\"Tags\\": {\\n \\"Tag\\": [\\n {\\n \\"TagKey\\": \\"TestKey\\",\\n \\"TagValue\\": \\"TestValue\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n rsp-cige6******8\\n stopped\\n white\\n 300\\n 365F4154-92F6-4AE4-92F8-7FF34B540710\\n 8080\\n TCP_80\\n -1\\n tcp\\n rsp-0bfucw****\\n 443\\n off\\n www.domain.com\\n 4\\n http_2xx\\n false\\n 0\\n 110\\n 5\\n /test/index.html\\n 12\\n enable\\n wrr\\n 500\\n 100\\n 4\\n off\\n tcp\\n on\\n lb-bp1ygod3yctvg1y****\\n \\n TestKey\\n TestValue\\n \\n","errorExample":""}]', + 'title' => 'DescribeLoadBalancerTCPListenerAttribute', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'CreateLoadBalancerUDPListener' => [ + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'readAndWrite', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'create', + 'abilityTreeCode' => '88530', + 'abilityTreeNodes' => [ + 'FEATUREslbMJNWX5', + ], + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the region where the CLB instance is deployed.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'Tag', + 'in' => 'query', + 'allowEmptyValue' => true, + 'style' => 'repeatList', + 'schema' => [ + 'description' => 'The tags.'."\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 must be 1 to 64 characters in length and cannot start with `aliyun` or `acs:`. It cannot contain `http://` or `https://`.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'TestKey', + ], + 'Value' => [ + 'description' => 'The tag value. Valid values of N: **1 to 20**. 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`. The tag value cannot contain `http://` or `https://`.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'TestValue', + ], + ], + 'required' => false, + ], + 'required' => false, + 'maxItems' => 20, + ], + ], + [ + 'name' => 'LoadBalancerId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the CLB instance.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'lb-bp1ygod3yctvg1y7****', + ], + ], + [ + 'name' => 'ListenerPort', + 'in' => 'query', + 'schema' => [ + 'description' => 'The frontend port used by the CLB instance.'."\n" + ."\n" + .'Valid values: **1** to **65535**.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => true, + 'docRequired' => true, + 'maximum' => '65535', + 'minimum' => '0', + 'example' => '80', + ], + ], + [ + 'name' => 'BackendServerPort', + 'in' => 'query', + 'schema' => [ + 'description' => 'The backend port used by the CLB instance.'."\n" + ."\n" + .'Valid values: **1** to **65535**.'."\n" + ."\n" + .'If the **VServerGroupId** parameter is not set, this parameter is required.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'maximum' => '65535', + 'minimum' => '0', + 'example' => '80', + ], + ], + [ + 'name' => 'Bandwidth', + 'in' => 'query', + 'schema' => [ + 'description' => 'The maximum bandwidth of the listener. Unit: Mbit/s. Valid values:'."\n" + ."\n" + .'**-1**: For a pay-by-data-transfer Internet-facing CLB instance, you can set this parameter to **-1**. This way, the bandwidth of the listener is unlimited.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => true, + 'docRequired' => true, + 'maximum' => '5120', + 'minimum' => '-1', + 'example' => '-1', + ], + ], + [ + 'name' => 'Scheduler', + 'in' => 'query', + 'schema' => [ + 'description' => 'The scheduling algorithm. Valid values:'."\n" + ."\n" + .'* **wrr** (default): Backend servers with higher weights receive more requests than those with lower weights.'."\n" + .'* **rr**: Requests are distributed to backend servers in sequence.'."\n" + .'* **sch**: specifies consistent hashing that is based on source IP addresses. Requests from the same source IP address are distributed to the same backend server.'."\n" + .'* **tch**: specifies consistent hashing that is based on four factors: source IP address, destination IP address, source port, and destination port. Requests that contain the same information based on the four factors are distributed to the same backend server.'."\n" + .'* **qch**: specifies consistent hashing that is based on QUIC connection IDs. Requests that contain the same QUIC connection ID are distributed to the same backend server.'."\n" + ."\n" + .'Only high-performance CLB instances support the sch, tch, and qch consistent hashing algorithms.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'wrr', + 'default' => 'wrr', + ], + ], + [ + 'name' => 'HealthyThreshold', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of times that an unhealthy backend server must consecutively pass health checks before it is declared healthy. In this case, the health status is changed from **fail** to **success**.'."\n" + ."\n" + .'Valid values: **2** to **10**'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'maximum' => '10', + 'minimum' => '1', + 'example' => '4', + 'default' => '3', + ], + ], + [ + 'name' => 'UnhealthyThreshold', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of times that a healthy backend server must consecutively fail health checks before it is declared unhealthy. In this case, the health status is changed from **success** to **fail**.'."\n" + ."\n" + .'Valid values: **2** to **10**'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'maximum' => '10', + 'minimum' => '1', + 'example' => '4', + 'default' => '3', + ], + ], + [ + 'name' => 'HealthCheckConnectTimeout', + 'in' => 'query', + 'schema' => [ + 'description' => 'The timeout period of a health check.'."\n" + ."\n" + .'If a backend server, such as an Elastic Compute Service (ECS) instance, does not respond to a probe packet within the specified timeout period, the server fails the health check. Unit: seconds'."\n" + ."\n" + .'Valid values: **1** to **300**.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'maximum' => '300', + 'minimum' => '1', + 'example' => '100', + 'default' => '5', + ], + ], + [ + 'name' => 'HealthCheckConnectPort', + 'in' => 'query', + 'schema' => [ + 'description' => 'The port that is used for health checks.'."\n" + ."\n" + .'Valid values: **1** to **65535**.'."\n" + ."\n" + .'If this parameter is not set, the backend port specified by **BackendServerPort** is used for health checks.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'maximum' => '65535', + 'minimum' => '1', + 'example' => '80', + ], + ], + [ + 'name' => 'healthCheckInterval', + 'in' => 'query', + 'schema' => [ + 'description' => 'The interval between two consecutive health checks. Unit: seconds.'."\n" + ."\n" + .'Valid values: **1** to **50**.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'maximum' => '50', + 'minimum' => '1', + 'example' => '3', + ], + ], + [ + 'name' => 'healthCheckReq', + 'in' => 'query', + 'schema' => [ + 'description' => 'The request string for UDP listener health checks. The string must be 1 to 64 characters in length and can contain only letters and digits.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'hello', + ], + ], + [ + 'name' => 'healthCheckExp', + 'in' => 'query', + 'schema' => [ + 'description' => 'The response string for UDP listener health checks. The string must be 1 to 64 characters in length and can contain only letters and digits.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'ok', + ], + ], + [ + 'name' => 'VServerGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the vServer group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rsp-cige6j8****', + ], + ], + [ + 'name' => 'MasterSlaveServerGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the primary/secondary server group.'."\n" + ."\n" + .'> You can set only one of the VServerGroupId and MasterSlaveServerGroupId parameters.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rsp-0bfucwu****', + ], + ], + [ + 'name' => 'AclId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the network ACL that is associated with the listener.'."\n" + ."\n" + .'If **AclStatus** is set to **on**, this parameter is required.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '123', + ], + ], + [ + 'name' => 'AclType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The type of the network ACL. Valid values:'."\n" + ."\n" + .'* **white**: a whitelist. Only requests from the IP addresses or CIDR blocks in the network ACL are forwarded. Whitelists apply to scenarios in which you want to allow only specific IP addresses to access an application. After a whitelist is configured, only IP addresses in the whitelist can access the CLB listener. Risks may arise if the whitelist is improperly set.'."\n" + ."\n" + .' If a whitelist is configured but no IP address is added to the whitelist, the listener forwards all requests.'."\n" + ."\n" + .'* **black**: a blacklist. All requests from the IP addresses or CIDR blocks in the network ACL are blocked. Blacklists apply to scenarios in which you want to deny access from specific IP addresses to an application.'."\n" + ."\n" + .' If a blacklist is configured for a listener but no IP address is added to the blacklist, the listener forwards all requests.'."\n" + ."\n" + .'If **AclStatus** is set to **on**, this parameter is required.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'white', + ], + ], + [ + 'name' => 'AclStatus', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to enable access control. Valid values:'."\n" + ."\n" + .'* **on**: yes'."\n" + .'* **off** (default): no'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'off', + ], + ], + [ + 'name' => 'Description', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the listener.'."\n" + ."\n" + .'The name must be 1 to 256 characters in length, and can contain letters, digits, hyphens (-), forward slashes (/), periods (.), and underscores (\\_).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'udp_80', + ], + ], + [ + 'name' => 'ProxyProtocolV2Enabled', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to use the Proxy protocol to pass client IP addresses to backend servers. Valid values:'."\n" + ."\n" + .'* **true**: yes'."\n" + .'* **false** (default): no'."\n", + 'type' => 'boolean', + 'required' => false, + 'example' => 'false', + ], + ], + [ + 'name' => 'HealthCheckSwitch', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to enable the health check feature. Valid values:'."\n" + ."\n" + .'* **on** (default): yes'."\n" + .'* **off**: no'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'on', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => '06F00FBB-3D9E-4CCE-9D43-1A6946A75556', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameterValue.SpecNotSupport', + 'errorMessage' => 'The loadBalancer of shared spec does not support the parameter value, %s.', + ], + [ + 'errorCode' => 'OperationNotSupport.Acl', + 'errorMessage' => 'The cloud box instance does not support acl.', + ], + [ + 'errorCode' => 'InvalidParameterValue.RegionNotSupport', + 'errorMessage' => 'The region does not support the parameter value, %s.', + ], + [ + 'errorCode' => 'Abs.VServerGroupIdAndMasterSlaveServerGroupId.MissMatch', + 'errorMessage' => 'The parameters VServerGroupId or MasterSlaveServerGroupId miss match.', + ], + [ + 'errorCode' => 'IpVersionConflict', + 'errorMessage' => 'The ip version of this LoadBalancer and the Acl is conflict.', + ], + [ + 'errorCode' => 'InvalidParameterValue.ZoneNotSupport', + 'errorMessage' => 'The zone does not support the parameter value, %s.', + ], + [ + 'errorCode' => 'ListenerProcessing', + 'errorMessage' => 'A previous configuration of the listener is pending,please try again later.', + ], + [ + 'errorCode' => 'AclNotExist', + 'errorMessage' => 'Acl does not exist.', + ], + [ + 'errorCode' => 'InvalidParameter.ListenerPortConflict', + 'errorMessage' => 'There is conflict listener port exists.', + ], + [ + 'errorCode' => 'InvalidParam.VServerGroupId', + 'errorMessage' => 'The specified VServerGroupId is invalid.', + ], + [ + 'errorCode' => 'MissingParam.HealthCheckConnectPort', + 'errorMessage' => 'The parameter HealthCheckConnectPort is required.', + ], + [ + 'errorCode' => 'InvalidParam.ListenerPort', + 'errorMessage' => 'The specified ListenerPort is invalid.', + ], + [ + 'errorCode' => 'InvalidParam.StartPort', + 'errorMessage' => 'The specified StartPort is invalid.', + ], + [ + 'errorCode' => 'InvalidParamSize.PortRange', + 'errorMessage' => 'The size of param PortRange is invalid.', + ], + [ + 'errorCode' => 'InvalidParam.EndPort', + 'errorMessage' => 'The specified EndPort is invalid.', + ], + [ + 'errorCode' => 'Duplicated.AclEntry', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'InvalidParameter.RegionNotSupport', + 'errorMessage' => 'The region does not support the parameter: %s.', + ], + [ + 'errorCode' => 'LbNotSupportTcpssl', + 'errorMessage' => 'You cannot create a TCP SSL type listener for the specified load balancer.', + ], + [ + 'errorCode' => 'LbSupportTcpsslOnly', + 'errorMessage' => 'The specified load balancer supports TCP SSL type listener only.', + ], + [ + 'errorCode' => 'ListenerNotSupportRule', + 'errorMessage' => 'You cannot create a rule for the specified listener.', + ], + [ + 'errorCode' => 'InvalidParamLength.HealthCheckExp', + 'errorMessage' => 'The length of the parameter HealthCheckReq is invalid.', + ], + [ + 'errorCode' => 'InvalidParamLength.HealthCheckReq', + 'errorMessage' => 'The length of the parameter HealthCheckReq is invalid.', + ], + [ + 'errorCode' => 'InvalidParam.HealthCheckReq', + 'errorMessage' => 'The param HealthCheckReq is invalid.', + ], + [ + 'errorCode' => 'InvalidParam.HealthCheckExp', + 'errorMessage' => 'The param HealthCheckExp is invalid.', + ], + [ + 'errorCode' => 'ResourceNotFound.VServerGroup', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'IllegalParam.FailoverThreshold', + 'errorMessage' => 'The parameter FailoverThreshold is illegal.', + ], + [ + 'errorCode' => 'IllegalParam.FailoverStrategy', + 'errorMessage' => 'The parameter FailoverStrategy is illegal.', + ], + [ + 'errorCode' => 'InvalidParameter.ZoneNotSupport', + 'errorMessage' => 'The zone does not support the parameter %s.', + ], + [ + 'errorCode' => 'MasterSlaveServerConflict', + 'errorMessage' => 'The servers are conflict for MasterSlaveGroup.', + ], + [ + 'errorCode' => 'VipNotSupportQuicVersion', + 'errorMessage' => 'The listener does not support the parameter of QuicVersion.', + ], + [ + 'errorCode' => 'IllegalParam.HealthCheckType', + 'errorMessage' => 'The param of HealthCheckType is illegal.', + ], + [ + 'errorCode' => 'MissingParam.HealthCheckMethod', + 'errorMessage' => 'The param of HealthCheckMethod is missing.', + ], + [ + 'errorCode' => 'IllegalParam.HealthCheckMethod', + 'errorMessage' => 'The param of HealthCheckMethod is illegal.', + ], + [ + 'errorCode' => 'IllegalParam.HealthCheck', + 'errorMessage' => 'The param of HealthCheck is illegal.', + ], + [ + 'errorCode' => 'OperationDenied.SpecialListenerPortNotAllowed', + 'errorMessage' => 'The operation is not allowed because port 4789 is reserved by the system.', + ], + [ + 'errorCode' => 'Mismatch.SlbSpecTypeAndListenerProtocol', + 'errorMessage' => 'The SlbSpecType and ListenerProtocol are mismatched.', + ], + [ + 'errorCode' => 'OperationDenied.OnlyIpv4SlbSupport', + 'errorMessage' => 'The operation is not allowed because of OnlyIpv4SlbSupport.', + ], + [ + 'errorCode' => 'OperationDenied.FullNatModeNotAllowed', + 'errorMessage' => 'The operation is not allowed because of FullNatModeNotAllowed.', + ], + [ + 'errorCode' => 'SpecNotSupportParameter', + 'errorMessage' => 'The instance with share spec does not support FullNatEnabled parameter.', + ], + [ + 'errorCode' => 'InvalidParam.TagValue ', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'InvalidParam.TagKey', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'SizeLimitExceeded.Tag', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'MissingParam.TagKey', + 'errorMessage' => 'The param MissingParam.TagKey is missing.', + ], + [ + 'errorCode' => 'AclListenerOverLimit', + 'errorMessage' => 'This acl has reached the limit of binding to listeners.', + ], + [ + 'errorCode' => 'QuotaLimitExceeds.AclAttachedToListener', + 'errorMessage' => 'The number of Acl bound listeners has reached the quota limit', + ], + [ + 'errorCode' => 'QuotaLimitExceeds.TotalAclEntry', + 'errorMessage' => 'The number of Acl entries has reached the quota limit.', + ], + [ + 'errorCode' => 'QuotaLimitExceeds.AclListenerOverLimit', + 'errorMessage' => 'This acl has reached the limit of binding to listeners.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"06F00FBB-3D9E-4CCE-9D43-1A6946A75556\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 06F00FBB-3D9E-4CCE-9D43-1A6946A75556\\n","errorExample":""}]', + 'title' => 'CreateLoadBalancerUDPListener', + 'summary' => 'Creates a UDP listener.', + 'description' => 'UDP listeners of Classic Load Balancer (CLB) instances in a classic network cannot pass client IP addresses to backend servers.'."\n" + ."\n" + .'> A newly created listener is in the **stopped** state. After a listener is created, you can call the [StartLoadBalancerListener](~~27597~~) operation to enable the listener to forward traffic to backend servers.'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'SetLoadBalancerUDPListenerAttribute' => [ + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'readAndWrite', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'update', + 'abilityTreeCode' => '88677', + 'abilityTreeNodes' => [ + 'FEATUREslbMJNWX5', + ], + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the CLB instance.'."\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' => 'LoadBalancerId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the CLB instance.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'lb-bp1rtfnodmywb43ecu4sf-c****', + ], + ], + [ + 'name' => 'ListenerPort', + 'in' => 'query', + 'schema' => [ + 'description' => 'The frontend port used by the CLB instance.'."\n" + ."\n" + .'Valid values: **1** to **65535**.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => true, + 'docRequired' => true, + 'maximum' => '65535', + 'minimum' => '0', + 'example' => '80', + ], + ], + [ + 'name' => 'Bandwidth', + 'in' => 'query', + 'schema' => [ + 'description' => 'The maximum bandwidth of the listener. Unit: Mbit/s. Valid values:'."\n" + ."\n" + .'* **-1**: For a pay-by-data-transfer Internet-facing CLB instance, you can set this parameter to **-1**. This way, the bandwidth of the listener is unlimited.'."\n" + .'* **1** to **5120**: For a pay-by-bandwidth Internet-facing CLB instance, you can specify the maximum bandwidth of each listener. The sum of bandwidth limits that you set for all listeners cannot exceed the maximum bandwidth of the CLB instance.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'maximum' => '5120', + 'minimum' => '-1', + 'example' => '-1', + ], + ], + [ + 'name' => 'Scheduler', + 'in' => 'query', + 'schema' => [ + 'description' => 'The scheduling algorithm. Valid values:'."\n" + ."\n" + .'* **wrr**: Backend servers with higher weights receive more requests than those with lower weights.'."\n" + ."\n" + .' If two backend servers have the same weight, the backend server that has fewer connections is expected to receive more requests.'."\n" + ."\n" + .'* **rr**: Requests are distributed to backend servers in sequence.'."\n" + ."\n" + .'* **sch**: specifies consistent hashing that is based on source IP addresses. Requests from the same source IP address are distributed to the same backend server.'."\n" + ."\n" + .'* **tch**: specifies consistent hashing that is based on the following parameters: source IP address, destination IP address, source port, and destination port. Requests that contain the same preceding information are distributed to the same backend server.'."\n" + ."\n" + .'* **qch**: specifies consistent hashing that is based on QUIC connection IDs. Requests that contain the same QUIC connection ID are distributed to the same backend server.'."\n" + ."\n" + .'> * Only high-performance CLB instances support **sch**, **tch**, and **qch**.'."\n" + .'> * You cannot switch the algorithm used by a CLB instance from **wrr** or **rr** to consistent hashing or from consistent hashing to weighted round robin or round robin.', + 'type' => 'string', + 'required' => false, + 'example' => 'wrr', + ], + ], + [ + 'name' => 'HealthyThreshold', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of times that an unhealthy backend server must consecutively pass health checks before it can be declared healthy (from **fail** to **success**).'."\n" + ."\n" + .'Valid values: **1** to **10**.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'maximum' => '10', + 'minimum' => '1', + 'example' => '4', + ], + ], + [ + 'name' => 'UnhealthyThreshold', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of times that a healthy backend server must consecutively fail health checks before it is declared unhealthy. In this case, the health status is changed from **success** to **fail**.'."\n" + ."\n" + .'Valid values: **1** to **10**.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'maximum' => '10', + 'minimum' => '1', + 'example' => '4', + ], + ], + [ + 'name' => 'HealthCheckConnectTimeout', + 'in' => 'query', + 'schema' => [ + 'description' => 'The timeout period of a health check. If a backend server, such as an Elastic Compute Service (ECS) instance, does not return a health check response within the specified timeout period, the server fails the health check. Unit: seconds.'."\n" + ."\n" + .'Valid values: **1** to **300**.'."\n" + ."\n" + .'> If the value of the **HealthCheckConnectTimeout** parameter is smaller than that of the **HealthCheckInterval** parameter, the timeout period specified by the **HealthCheckConnectTimeout** parameter is ignored and the period of time specified by the **HealthCheckInterval** parameter is used as the timeout period.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'maximum' => '300', + 'minimum' => '1', + 'example' => '100', + ], + ], + [ + 'name' => 'HealthCheckConnectPort', + 'in' => 'query', + 'schema' => [ + 'description' => 'The port that is used for health checks.'."\n" + ."\n" + .'Valid values: **1** to **65535**.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'maximum' => '65535', + 'minimum' => '1', + 'example' => '80', + ], + ], + [ + 'name' => 'HealthCheckInterval', + 'in' => 'query', + 'schema' => [ + 'description' => 'The interval at which health checks are performed. Unit: seconds.'."\n" + ."\n" + .'Valid values: **1** to **50**.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'maximum' => '50', + 'minimum' => '1', + 'example' => '5', + ], + ], + [ + 'name' => 'healthCheckReq', + 'in' => 'query', + 'schema' => [ + 'description' => 'The request string for UDP listener health checks. The string must be 1 to 64 characters in length and can contain only letters and digits.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'hello', + ], + ], + [ + 'name' => 'healthCheckExp', + 'in' => 'query', + 'schema' => [ + 'description' => 'The response string for UDP listener health checks. The string must be 1 to 64 characters in length and can contain only letters and digits.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'ok', + ], + ], + [ + 'name' => 'VServerGroup', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to use a vServer group. Valid values:'."\n" + ."\n" + .'* **on**: yes'."\n" + .'* **off**: no'."\n" + ."\n" + .'> You cannot set both **VserverGroup** and **MasterSlaveServerGroup** to **on**.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'on', + ], + ], + [ + 'name' => 'VServerGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the vServer group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rsp-cige6****', + ], + ], + [ + 'name' => 'MasterSlaveServerGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the primary/secondary server group.'."\n" + ."\n" + .'> You cannot specify both VServerGroupId and MasterSlaveServerGroupId.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rsp-0bfuc****', + ], + ], + [ + 'name' => 'MasterSlaveServerGroup', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to use a primary/secondary server group. Valid values:'."\n" + ."\n" + .'* **on**: yes'."\n" + .'* **off**: no'."\n" + ."\n" + .'> You cannot set **VserverGroup** and **MasterSlaveServerGroup** both to **on**.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'on', + ], + ], + [ + 'name' => 'AclId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the network access control list (ACL) that is associated with the listener.'."\n" + ."\n" + .'> If **AclStatus** is set to **on**, this parameter is required.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'off', + ], + ], + [ + 'name' => 'AclType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The type of the network ACL. Valid values:'."\n" + ."\n" + .'* **white**: a whitelist. Only requests from the IP addresses or CIDR blocks in the network ACL are forwarded. Whitelists apply to scenarios where you want to allow only specific IP addresses to access an application. Your service may be adversely affected if the whitelist is not properly configured. After a whitelist is configured, only requests from IP addresses that are added to the whitelist are forwarded by the listener.'."\n" + ."\n" + .' If you enable a whitelist but do not add an IP address to the ACL, the listener forwards all requests.'."\n" + ."\n" + .'* **black**: a blacklist. All requests from the IP addresses or CIDR blocks in the network ACL are denied. Blacklists apply to scenarios where you want to block access from specified IP addresses to an application.'."\n" + ."\n" + .' If a blacklist is configured for a listener but no IP address is added to the blacklist, the listener forwards all requests.'."\n" + ."\n" + .'> If **AclStatus** is set to **on**, this parameter is required.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'white', + ], + ], + [ + 'name' => 'AclStatus', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to enable access control. Valid values:'."\n" + ."\n" + .'* **on**: yes'."\n" + .'* **off**: no'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'off', + ], + ], + [ + 'name' => 'Description', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the listener.'."\n" + ."\n" + .'The name must be 1 to 256 characters in length and can contain letters, digits, hyphens (-), forward slashes (/), periods (.), and underscores (\\_).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'udp_80', + ], + ], + [ + 'name' => 'ProxyProtocolV2Enabled', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to use the Proxy protocol to pass client IP addresses to backend servers. Valid values:'."\n" + ."\n" + .'* **true**: yes'."\n" + .'* **false** (default): no'."\n", + 'type' => 'boolean', + 'required' => false, + 'example' => 'false', + ], + ], + [ + 'name' => 'HealthCheckSwitch', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to enable the health check feature. Valid values:'."\n" + ."\n" + .'* **on** (default): yes'."\n" + .'* **off**: no'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'on', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameterValue.SpecNotSupport', + 'errorMessage' => 'The loadBalancer of shared spec does not support the parameter value, %s.', + ], + [ + 'errorCode' => 'OperationNotSupport.Acl', + 'errorMessage' => 'The cloud box instance does not support acl.', + ], + [ + 'errorCode' => 'InvalidParameterValue.RegionNotSupport', + 'errorMessage' => 'The region does not support the parameter value, %s.', + ], + [ + 'errorCode' => 'IpVersionConflict', + 'errorMessage' => 'The ip version of this LoadBalancer and the Acl is conflict.', + ], + [ + 'errorCode' => 'InvalidParameterValue.ZoneNotSupport', + 'errorMessage' => 'The zone does not support the parameter value, %s.', + ], + [ + 'errorCode' => 'OperationFailed.ServerGroupInUse', + 'errorMessage' => 'The VServerGroup or MasterSlaveServerGroup can not be close for this listener.', + ], + [ + 'errorCode' => 'InvalidParam.VServerGroupId', + 'errorMessage' => 'The specified VServerGroupId is invalid.', + ], + [ + 'errorCode' => 'MissingParam.HealthCheckConnectPort', + 'errorMessage' => 'The parameter HealthCheckConnectPort is required.', + ], + [ + 'errorCode' => 'InvalidParam.ListenerPort', + 'errorMessage' => 'The specified ListenerPort is invalid.', + ], + [ + 'errorCode' => 'InvalidParam.StartPort', + 'errorMessage' => 'The specified StartPort is invalid.', + ], + [ + 'errorCode' => 'InvalidParamSize.PortRange', + 'errorMessage' => 'The size of param PortRange is invalid.', + ], + [ + 'errorCode' => 'InvalidParam.EndPort', + 'errorMessage' => 'The specified EndPort is invalid.', + ], + [ + 'errorCode' => 'InvalidParam.PortRange', + 'errorMessage' => 'The specified PortRange is invalid.', + ], + [ + 'errorCode' => 'Duplicated.AclEntry', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'InvalidParamLength.HealthCheckReq', + 'errorMessage' => 'The length of the parameter HealthCheckReq is invalid.', + ], + [ + 'errorCode' => 'InvalidParamLength.HealthCheckExp', + 'errorMessage' => 'The length of the parameter HealthCheckExp is invalid.', + ], + [ + 'errorCode' => 'InvalidParam.HealthCheckReq', + 'errorMessage' => 'The param HealthCheckReq is invalid.', + ], + [ + 'errorCode' => 'InvalidParam.HealthCheckExp', + 'errorMessage' => 'The param HealthCheckExp is invalid.', + ], + [ + 'errorCode' => 'ResourceNotFound.VServerGroup', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'IllegalParam.FailoverThreshold', + 'errorMessage' => 'The parameter FailoverThreshold is illegal.', + ], + [ + 'errorCode' => 'IllegalParam.FailoverStrategy', + 'errorMessage' => 'The parameter FailoverStrategy is illegal.', + ], + [ + 'errorCode' => 'InvalidParameter.ZoneNotSupport', + 'errorMessage' => 'The zone does not support the parameter %s.', + ], + [ + 'errorCode' => 'MasterSlaveServerConflict', + 'errorMessage' => 'The servers are conflict for MasterSlaveGroup.', + ], + [ + 'errorCode' => 'MissingParam.VServerGroupId', + 'errorMessage' => 'The parameter VServerGroupId is missing.', + ], + [ + 'errorCode' => 'VipNotSupportQuicVersion', + 'errorMessage' => 'The listener does not support the parameter of QuicVersion.', + ], + [ + 'errorCode' => 'IllegalParam.HealthCheckType', + 'errorMessage' => 'The param of HealthCheckType is illegal.', + ], + [ + 'errorCode' => 'IllegalParam.HealthCheckMethod', + 'errorMessage' => 'The param of HealthCheckMethod is illegal.', + ], + [ + 'errorCode' => 'IllegalParam.HealthCheck', + 'errorMessage' => 'The param of HealthCheck is illegal.', + ], + [ + 'errorCode' => 'OperationDenied.MasterSlaveGroupLogEnabled', + 'errorMessage' => 'The operation is denied because of MasterSlaveGroupLogEnabled.', + ], + [ + 'errorCode' => 'OperationDenied.OnlyIpv4SlbSupport', + 'errorMessage' => 'The operation is not allowed because of OnlyIpv4SlbSupport.', + ], + [ + 'errorCode' => 'OperationDenied.FullNatModeNotAllowed', + 'errorMessage' => 'The operation is not allowed because of FullNatModeNotAllowed.', + ], + [ + 'errorCode' => 'SpecNotSupportParameter', + 'errorMessage' => 'The instance with share spec does not support FullNatEnabled parameter.', + ], + [ + 'errorCode' => 'Abs.VServerGroupIdAndMasterSlaveServerGroupId.MissMatch', + 'errorMessage' => 'Virtual service group ID or master slave server group ID is missing. Please check the input parameters.', + ], + [ + 'errorCode' => 'AclListenerOverLimit', + 'errorMessage' => 'This acl has reached the limit of binding to listeners.', + ], + [ + 'errorCode' => 'QuotaLimitExceeds.AclAttachedToListener', + 'errorMessage' => 'The number of Acl bound listeners has reached the quota limit', + ], + [ + 'errorCode' => 'QuotaLimitExceeds.TotalAclEntry', + 'errorMessage' => 'The number of Acl entries has reached the quota limit.', + ], + [ + 'errorCode' => 'QuotaLimitExceeds.AclListenerOverLimit', + 'errorMessage' => 'This acl has reached the limit of binding to listeners.', + ], + ], + 403 => [ + [ + 'errorCode' => 'UnauthorizedRegion', + 'errorMessage' => 'The specified region of is not authorized.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\"\\n}","errorExample":""},{"type":"xml","example":"\\n CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\n","errorExample":""}]', + 'title' => 'SetLoadBalancerUDPListenerAttribute', + 'summary' => 'Modifies the configurations of a UDP listener.', + 'description' => '* A Classic Load Balancer (CLB) instance is created. For more information, see [CreateLoadBalancer](~~27577~~).'."\n" + .'* A UDP listener is created. For more information, see [CreateLoadBalancerUDPListener](~~27595~~).', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'DescribeLoadBalancerUDPListenerAttribute' => [ + 'summary' => 'Queries the configurations of a UDP listener.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'get', + 'abilityTreeCode' => '88590', + 'abilityTreeNodes' => [ + 'FEATUREslbYU0ILA', + ], + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the region where the Classic Load Balancer (CLB) instance is deployed.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'LoadBalancerId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the CLB instance.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'lb-bp1rtfnodmywb43e*****', + ], + ], + [ + 'name' => 'ListenerPort', + 'in' => 'query', + 'schema' => [ + 'description' => 'The frontend port used by the CLB instance.'."\n" + ."\n" + .'Valid values: **1** to **65535**.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => true, + 'docRequired' => true, + 'maximum' => '65535', + 'minimum' => '0', + 'example' => '80', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'VServerGroupId' => [ + 'description' => 'The ID of the vServer group that is associated with the listener.'."\n", + 'type' => 'string', + 'example' => 'rsp-cige6j****', + ], + 'Status' => [ + 'description' => 'The status of the listener. Valid values:'."\n" + ."\n" + .'* **running**'."\n" + .'* **stopped**'."\n", + 'type' => 'string', + 'example' => 'stopped', + ], + 'AclType' => [ + 'description' => 'The type of the ACL. Valid values:'."\n" + ."\n" + .'* **white**: a whitelist. Only requests from the IP addresses or CIDR blocks in the network ACL are forwarded. Whitelists apply to scenarios in which you want to allow only specified IP addresses to access an application.'."\n" + ."\n" + .' Your service may be adversely affected if the whitelist is not properly configured. After a whitelist is configured, only requests from IP addresses that are added to the whitelist are forwarded by the listener. If you enable a whitelist but do not add an IP address to the ACL, the listener forwards all requests.'."\n" + ."\n" + .'* **black**: a blacklist. All requests from the IP addresses or CIDR blocks in the network ACL are blocked. Blacklists apply to scenarios in which you want to deny access from specific IP addresses or CIDR blocks to an application.'."\n" + ."\n" + .' If a blacklist is configured for a listener but no IP address is added to the blacklist, the listener forwards all requests.'."\n", + 'type' => 'string', + 'example' => 'white', + ], + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => '365F4154-92F6-4AE4-92F8-7FF34B540710', + ], + 'HealthCheckConnectPort' => [ + 'description' => 'The port that is used for health checks. Valid values: **1** to **65535**. If this parameter is not set, the port specified by BackendServerPort is used for health checks.'."\n" + ."\n" + .'> This parameter takes effect only when the **HealthCheck** parameter is set to **on**.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '8080', + ], + 'Description' => [ + 'description' => 'The description of the listener.'."\n", + 'type' => 'string', + 'example' => 'test', + ], + 'Bandwidth' => [ + 'description' => 'The maximum bandwidth of the listener. Unit: Mbit/s. Valid values:'."\n" + ."\n" + .'* **-1**: For a pay-by-data-transfer Internet-facing CLB instance, this parameter is set to -1. This indicates that the bandwidth of the listener is unlimited.'."\n" + .'* **1** to **5120**: For a pay-by-bandwidth Internet-facing CLB instance, you can specify the maximum bandwidth of each listener. The sum of maximum bandwidth of all listeners cannot exceed the maximum bandwidth of the CLB instance.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '-1', + ], + 'MasterSlaveServerGroupId' => [ + 'description' => 'The ID of the primary/secondary server group that is associated with the listener.'."\n", + 'type' => 'string', + 'example' => 'rsp-0bfucw****', + ], + 'BackendServerPort' => [ + 'description' => 'The backend port used by the CLB instance.'."\n" + ."\n" + .'> If the listener is associated with a vServer group, this parameter is not returned.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '90', + ], + 'AclStatus' => [ + 'description' => 'Indicates whether access control is enabled. Valid values: **on** and **off**. Default value: off.'."\n", + 'type' => 'string', + 'example' => 'off', + ], + 'UnhealthyThreshold' => [ + 'description' => 'The unhealthy threshold. The number of times that a healthy backend server must consecutively fail health checks before it is declared unhealthy. In this case, the health status is changed from **success** to **fail**. Valid values: **2** to **10**.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '4', + ], + 'ProxyProtocolV2Enabled' => [ + 'description' => 'Indicates whether the Proxy protocol is used to pass client IP addresses to backend servers. Valid values:'."\n" + ."\n" + .'* **true**: yes'."\n" + .'* **false**: no'."\n", + 'type' => 'boolean', + 'example' => 'false', + ], + 'ListenerPort' => [ + 'description' => 'The frontend port used by the CLB instance.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '53', + ], + 'HealthCheckInterval' => [ + 'description' => 'The interval between two consecutive health checks. Valid values: **1** to **50**. Unit: seconds.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '5', + ], + 'HealthCheckExp' => [ + 'description' => 'The response string for UDP listener health checks. The string is up to 64 characters in length, and can contain letters and digits.'."\n", + 'type' => 'string', + 'example' => 'ok', + ], + 'AclId' => [ + 'description' => 'The ID of the network ACL.'."\n", + 'type' => 'string', + 'example' => '123943****', + ], + 'Scheduler' => [ + 'description' => 'The scheduling algorithm. Valid values:'."\n" + ."\n" + .'* **wrr** (default): Backend servers with higher weights receive more requests than backend servers with lower weights.'."\n" + .'* **rr**: Requests are distributed to backend servers in sequence.'."\n", + 'type' => 'string', + 'example' => 'wrr', + ], + 'HealthCheckConnectTimeout' => [ + 'description' => 'The timeout period of a health check. If a backend Elastic Compute Service (ECS) instance does not return a health check response within the specified timeout period, the server fails the health check. Valid values: **1** to **300**. Unit: seconds.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '100', + ], + 'HealthyThreshold' => [ + 'description' => 'The healthy threshold. The number of times that an unhealthy backend server must consecutively pass health checks before it is declared healthy. In this case, the health status is changed from **fail** to **success**. Valid values: **2** to **10**.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '4', + ], + 'HealthCheckReq' => [ + 'description' => 'The request string for UDP listener health checks. The string is up to 64 characters in length, and can contain letters and digits.'."\n", + 'type' => 'string', + 'example' => 'hello', + ], + 'HealthCheck' => [ + 'description' => 'Indicates whether the health check feature is enabled. Valid values:'."\n" + ."\n" + .'* **on**: yes'."\n" + .'* **off**: no'."\n", + 'type' => 'string', + 'example' => 'on', + ], + 'AclIds' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'AclId' => [ + 'description' => 'The ID of the access control list (ACL).'."\n", + 'type' => 'array', + ], + ], + ], + 'LoadBalancerId' => [ + 'description' => 'The ID of the CLB instance.'."\n", + 'type' => 'string', + 'example' => 'lb-bp1rtfnodmywb43e*****', + ], + 'Tags' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Tag' => [ + 'description' => 'The tags.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The tags.'."\n", + 'type' => 'object', + 'properties' => [ + 'TagKey' => [ + 'description' => 'The key of tag N. Valid values of N: **1** to **20**. The tag value cannot be an empty string. The tag key can be up to 128 characters in length, and cannot contain `http://` or `https://`. It cannot start with `acs:` or `aliyun`.'."\n", + 'type' => 'string', + 'example' => 'TestKey', + ], + 'TagValue' => [ + 'description' => 'The value of tag N. Valid values of N: **1** to **20**. The tag value can be an empty string. The tag value can be up to 128 characters in length, and cannot start with `acs:`. It cannot contain `http://` or `https://`.'."\n", + 'type' => 'string', + 'example' => 'TestValue', + ], + ], + ], + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"VServerGroupId\\": \\"rsp-cige6j****\\",\\n \\"Status\\": \\"stopped\\",\\n \\"AclType\\": \\"white\\",\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF34B540710\\",\\n \\"HealthCheckConnectPort\\": 8080,\\n \\"Description\\": \\"UDP_80\\",\\n \\"Bandwidth\\": -1,\\n \\"MasterSlaveServerGroupId\\": \\"rsp-0bfucw****\\",\\n \\"BackendServerPort\\": 90,\\n \\"AclStatus\\": \\"off\\",\\n \\"UnhealthyThreshold\\": 4,\\n \\"ProxyProtocolV2Enabled\\": false,\\n \\"ListenerPort\\": 53,\\n \\"HealthCheckInterval\\": 5,\\n \\"HealthCheckExp\\": \\"ok\\",\\n \\"AclId\\": \\"acl-uf60jwfiv6******\\",\\n \\"Scheduler\\": \\"wrr\\",\\n \\"HealthCheckConnectTimeout\\": 100,\\n \\"HealthyThreshold\\": 4,\\n \\"HealthCheckReq\\": \\"hello\\",\\n \\"HealthCheck\\": \\"on\\",\\n \\"AclIds\\": {\\n \\"AclId\\": [\\n \\"\\"\\n ]\\n },\\n \\"LoadBalancerId\\": \\"lb-bp1rtfnodmywb43e*****\\",\\n \\"Tags\\": {\\n \\"Tag\\": [\\n {\\n \\"TagKey\\": \\"TestKey\\",\\n \\"TagValue\\": \\"TestValue\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n rsp-cige6j****\\n stopped\\n white\\n 365F4154-92F6-4AE4-92F8-7FF34B540710\\n 8080\\n UDP_80\\n -1\\n rsp-0bfucw****\\n 90\\n off\\n 4\\n false\\n 53\\n 5\\n ok\\n 123943****\\n wrr\\n 100\\n 4\\n hello\\n on\\n lb-bp1rtfnodmywb43e*****\\n \\n TestKey\\n TestValue\\n \\n","errorExample":""}]', + 'title' => 'DescribeLoadBalancerUDPListenerAttribute', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'CreateLoadBalancerHTTPListener' => [ + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'create', + 'abilityTreeCode' => '88525', + 'abilityTreeNodes' => [ + 'FEATUREslbPXBZ65', + ], + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the region where the CLB instance is deployed.'."\n" + ."\n" + .'You can query the region ID from the [Regions and zones](~~40654~~) list or by calling the [DescribeRegions](~~27584~~) operation.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'LoadBalancerId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the CLB instance.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'lb-bp1c9vixxjh92q83tw*****', + ], + ], + [ + 'name' => 'Bandwidth', + 'in' => 'query', + 'schema' => [ + 'description' => 'The maximum bandwidth of the listener. Unit: Mbit/s. Valid values:'."\n" + ."\n" + .'**-1**: specifies that the bandwidth of the listener is unlimited.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'maximum' => '5120', + 'minimum' => '-1', + 'example' => '-1', + 'default' => '-1', + ], + ], + [ + 'name' => 'ListenerPort', + 'in' => 'query', + 'schema' => [ + 'description' => 'The frontend port that is used by the CLB instance.'."\n" + ."\n" + .'Valid values: **1** to **65535**.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => true, + 'docRequired' => true, + 'maximum' => '65535', + 'minimum' => '1', + 'example' => '80', + ], + ], + [ + 'name' => 'BackendServerPort', + 'in' => 'query', + 'schema' => [ + 'description' => 'The backend port that is used by the CLB instance.'."\n" + ."\n" + .'Valid values: **1** to **65535**.'."\n" + ."\n" + .'> If the VServerGroupId parameter is not specified, this parameter is required.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'maximum' => '65535', + 'minimum' => '1', + 'example' => '80', + ], + ], + [ + 'name' => 'XForwardedFor', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to use the `X-Forwarded-For` header to retrieve client IP addresses. Valid values:'."\n" + ."\n" + .'* **on** (default)'."\n" + .'* **off**'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'on', + 'default' => 'on', + ], + ], + [ + 'name' => 'Scheduler', + 'in' => 'query', + 'schema' => [ + 'description' => 'The scheduling algorithm. Valid values:'."\n" + ."\n" + .'* **wrr** (default): Backend servers with higher weights receive more requests than those with lower weights.'."\n" + .'* **rr**: Requests are distributed to backend servers in sequence.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'wrr', + 'default' => 'wrr', + ], + ], + [ + 'name' => 'StickySession', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to enable session persistence. Valid values:'."\n" + ."\n" + .'* **on**'."\n" + .'* **off** (default)'."\n", + 'type' => 'string', + 'required' => false, + 'docRequired' => true, + 'example' => 'off', + 'default' => 'off', + ], + ], + [ + 'name' => 'StickySessionType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The method that is used to handle cookies. Valid values:'."\n" + ."\n" + .'* **insert**: inserts a cookie.'."\n" + ."\n" + .' The first time a client accesses CLB, CLB inserts a cookie into the response packet. Subsequent requests from the client that carry the cookie are distributed to the same backend server as the first request.'."\n" + ."\n" + .'* **server**: rewrites the original cookie.'."\n" + ."\n" + .' CLB rewrites the custom cookies in requests from a client. Subsequent requests from the client that carry the new cookie are forwarded to the same backend server as the first request.'."\n" + ."\n" + .'> This parameter is required if the **StickySession** parameter is set to **on**.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'insert', + ], + ], + [ + 'name' => 'Tag', + 'in' => 'query', + 'allowEmptyValue' => true, + 'style' => 'repeatList', + 'schema' => [ + 'description' => 'The tags.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'Key' => [ + 'description' => 'The tag key of the bastion host. Valid values of N: **1 to 20**. The tag key cannot be an empty string.'."\n" + ."\n" + .'The tag key can be at most 64 characters in length, and cannot contain `http://` or `https://`. It must not start with `aliyun` or `acs:`.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'TestKey', + ], + 'Value' => [ + 'description' => 'The tag value. Valid values of N: **1 to 20**. 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`. The tag value cannot contain `http://` or `https://`.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'TestValue', + ], + ], + 'required' => false, + ], + 'required' => false, + 'maxItems' => 20, + ], + ], + [ + 'name' => 'CookieTimeout', + 'in' => 'query', + 'schema' => [ + 'description' => 'The timeout period of a cookie. Unit: seconds.'."\n" + ."\n" + .'Valid values: **1** to **86400**.'."\n" + ."\n" + .'> If **StickySession** is set to **on** and **StickySessionType** is set to **insert**, this parameter is required.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'maximum' => '86400', + 'minimum' => '1', + 'example' => '500', + ], + ], + [ + 'name' => 'Cookie', + 'in' => 'query', + 'schema' => [ + 'description' => 'The cookie configured for the server.'."\n" + ."\n" + .'The cookie must be 1 to 200 characters in length, and can contain only ASCII letters and digits. It cannot contain commas (,), semicolons (;), space characters, or start with a dollar sign ($).'."\n" + ."\n" + .'> This parameter is required when the **StickySession** parameter is set to **on** and the **StickySessionType** parameter is set to **server**.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'testCookie', + ], + ], + [ + 'name' => 'HealthCheck', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to enable the health check feature. Valid values:'."\n" + ."\n" + .'* **on**: yes'."\n" + .'* **off**: no'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'on', + ], + ], + [ + 'name' => 'HealthCheckMethod', + 'in' => 'query', + 'schema' => [ + 'description' => 'The health check method used in HTTP health checks. Valid values: **head** and **get**.'."\n" + ."\n" + .'> This parameter takes effect only if the **HealthCheck** parameter is set to **on**.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'get', + ], + ], + [ + 'name' => 'HealthCheckDomain', + 'in' => 'query', + 'schema' => [ + 'description' => 'The domain name that is used for health checks. Valid values:'."\n" + ."\n" + .'* **$\\_ip**: the private IP address of a backend server. If an IP address is specified, or this parameter is not specified, the CLB instance uses the private IP address of each backend server as the domain name for health checks.'."\n" + .'* **domain**: The domain name must be 1 to 80 characters in length, and can contain letters, digits, periods (.), and hyphens (-).'."\n" + ."\n" + .'> This parameter takes effect only if the **HealthCheck** parameter is set to **on**.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '172.16.0.0/12', + ], + ], + [ + 'name' => 'HealthCheckURI', + 'in' => 'query', + 'schema' => [ + 'description' => 'The URI that is used for health checks.'."\n" + ."\n" + .'The URI must be 1 to 80 characters in length, and can contain letters, digits, hyphens (-), forward slashes (/), periods (.), percent signs (%), question marks (?), number signs (#), and ampersands (&). The URI must start with a forward slash (/) but cannot be a single forward slash (/).'."\n" + ."\n" + .'> This parameter takes effect only if the **HealthCheck** parameter is set to **on**.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '/test/index.html', + ], + ], + [ + 'name' => 'HealthyThreshold', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of times that an unhealthy backend server must consecutively pass health checks before it is declared healthy. In this case, the health status is changed from **fail** to **success**.'."\n" + ."\n" + .'Valid values: **2** to **10**.'."\n" + ."\n" + .'> This parameter takes effect only if the **HealthCheck** parameter is set to **on**.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'maximum' => '10', + 'minimum' => '1', + 'example' => '4', + ], + ], + [ + 'name' => 'UnhealthyThreshold', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of times that a healthy backend server must consecutively fail health checks before it is declared unhealthy. In this case, the health status is changed from **success** to **fail**.'."\n" + ."\n" + .'Valid values: **2** to **10**.'."\n" + ."\n" + .'> This parameter takes effect only if the **HealthCheck** parameter is set to **on**.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'maximum' => '10', + 'minimum' => '1', + 'example' => '4', + ], + ], + [ + 'name' => 'HealthCheckTimeout', + 'in' => 'query', + 'schema' => [ + 'description' => 'The timeout period of a health check response. If a backend ECS instance does not respond within the specified timeout period, the ECS instance fails the health check. Unit: seconds'."\n" + ."\n" + .'Valid values: **1** to **300**.'."\n" + ."\n" + .'> This parameter takes effect only if the **HealthCheck** parameter is set to **on**.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'maximum' => '300', + 'minimum' => '1', + 'example' => '3', + ], + ], + [ + 'name' => 'HealthCheckConnectPort', + 'in' => 'query', + 'schema' => [ + 'description' => 'The backend port that is used for health checks.'."\n" + ."\n" + .'Valid values: **1** to **65535**.'."\n" + ."\n" + .'> This parameter takes effect only if the **HealthCheck** parameter is set to **on**.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'maximum' => '65535', + 'minimum' => '-520', + 'example' => '80', + ], + ], + [ + 'name' => 'HealthCheckInterval', + 'in' => 'query', + 'schema' => [ + 'description' => 'The interval between two consecutive health checks. Unit: seconds.'."\n" + ."\n" + .'Valid values: **1** to **50**.'."\n" + ."\n" + .'> This parameter takes effect only if the **HealthCheck** parameter is set to **on**.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'maximum' => '50', + 'minimum' => '1', + 'example' => '5', + ], + ], + [ + 'name' => 'HealthCheckHttpCode', + 'in' => 'query', + 'schema' => [ + 'description' => 'The HTTP status code for a successful health check. Separate multiple HTTP status codes with commas (,).'."\n" + ."\n" + .'Valid values: **http\\_2xx** (default), **http\\_3xx**, **http\\_4xx**, and **http\\_5xx**.'."\n" + ."\n" + .'> This parameter takes effect only if the **HealthCheck** parameter is set to **on**.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'http_2xx', + ], + ], + [ + 'name' => 'VServerGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the vServer group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rsp-cige6j*****', + ], + ], + [ + 'name' => 'XForwardedFor_SLBIP', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to use the `SLB-IP` header to retrieve the virtual IP address of the client. Valid values:'."\n" + ."\n" + .'* **on**'."\n" + .'* **off** (default)'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'on', + 'default' => 'off', + ], + ], + [ + 'name' => 'XForwardedFor_SLBID', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to use the `SLB-ID` header to retrieve the ID of the CLB instance. Valid values:'."\n" + ."\n" + .'* **on**'."\n" + .'* **off** (default)'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'on', + 'default' => 'off', + ], + ], + [ + 'name' => 'XForwardedFor_proto', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to use the `X-Forwarded-Proto` header to retrieve the listener protocol. Valid values:'."\n" + ."\n" + .'* **on**'."\n" + .'* **off** (default)'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'on', + 'default' => 'off', + ], + ], + [ + 'name' => 'Gzip', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to enable `GZIP` compression to compress specific types of files. Valid values:'."\n" + ."\n" + .'* **on** (default)'."\n" + .'* **off**'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'on', + 'default' => 'on', + ], + ], + [ + 'name' => 'AclId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the network access control list (ACL) that is associated with the listener.'."\n" + ."\n" + .'> If **AclStatus** is set to **on**, this parameter is required.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'acl-uf60jw******', + ], + ], + [ + 'name' => 'AclType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The type of access control. Valid values:'."\n" + ."\n" + .'* **white**: Only requests from IP addresses and CIDR blocks on the whitelist are forwarded by the listener. Your service may be adversely affected if the whitelist is not properly configured. If a whitelist is configured, the listener forwards only requests from IP addresses that are added to the whitelist.'."\n" + ."\n" + .' If you configure a whitelist but do not add an IP address to the whitelist, the listener forwards all requests.'."\n" + ."\n" + .'* **black**: Requests from the IP addresses and CIDR blocks on the blacklist are blocked.'."\n" + ."\n" + .' If you configure a blacklist but do not add an IP address to the blacklist, the listener forwards all requests.'."\n" + ."\n" + .'> When **AclStatus** is set to **on**, this parameter takes effect.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'white', + ], + ], + [ + 'name' => 'AclStatus', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to enable access control. Valid values:'."\n" + ."\n" + .'* **on**: yes'."\n" + .'* **off** (default): no'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'off', + ], + ], + [ + 'name' => 'Description', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the listener.'."\n" + ."\n" + .'The name must be 1 to 256 characters in length, and can contain letters, digits, hyphens (-), forward slashes (/), periods (.), and underscores (\\_).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'HTTP_443', + ], + ], + [ + 'name' => 'ListenerForward', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to enable HTTP-to-HTTPS redirection. Valid values:'."\n" + ."\n" + .'* **on**: yes'."\n" + .'* **off** (default): no'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'off', + ], + ], + [ + 'name' => 'ForwardPort', + 'in' => 'query', + 'schema' => [ + 'description' => 'The listening port that is used to redirect HTTP requests to HTTPS.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'maximum' => '65535', + 'minimum' => '1', + 'example' => '443', + ], + ], + [ + 'name' => 'IdleTimeout', + 'in' => 'query', + 'schema' => [ + 'description' => 'The timeout period of an idle connection. Unit: seconds.'."\n" + ."\n" + .'Default value: **15**. Valid values: **1** to **60**.'."\n" + ."\n" + .'If no request is received within the specified timeout period, SLB closes the connection. When a request is received, SLB establishes a new connection.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'maximum' => '9999', + 'minimum' => '1', + 'example' => '3', + ], + ], + [ + 'name' => 'RequestTimeout', + 'in' => 'query', + 'schema' => [ + 'description' => 'The timeout period of a request. Unit: seconds.'."\n" + ."\n" + .'Default value: **60**. Valid values: **1** to **180**.'."\n" + ."\n" + .'If no response is received from the backend server within the specified timeout period, CLB sends an `HTTP 504` error code to the client.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'maximum' => '9999', + 'minimum' => '1', + 'example' => '6', + ], + ], + [ + 'name' => 'XForwardedFor_SLBPORT', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to use the `XForwardedFor_SLBPORT` header to retrieve the listener port of the CLB instance. Valid values:'."\n" + ."\n" + .'* **on**'."\n" + .'* **off**'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'off', + ], + ], + [ + 'name' => 'XForwardedFor_ClientSrcPort', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to use the `XForwardedFor_ClientSrcPort` header to retrieve the client port. Valid values:'."\n" + ."\n" + .'* **on**'."\n" + .'* **off**'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'off', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter.RegionNotSupport', + 'errorMessage' => 'The region does not support the parameter: %s.', + ], + [ + 'errorCode' => 'IpVersionConflict', + 'errorMessage' => 'The ip version of this LoadBalancer and the Acl is conflict.', + ], + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The specified ListenerPort or ForwardPort is invalid.', + ], + [ + 'errorCode' => 'ListenerForwardNotSupport', + 'errorMessage' => 'X-Forward-For is not supported to a ipv6 instance.', + ], + [ + 'errorCode' => 'InvalidParameter.IdleTimeout', + 'errorMessage' => 'The specified IdleTimeout exceeds the limit.', + ], + [ + 'errorCode' => 'InvalidParameter.RequestTimeout', + 'errorMessage' => 'The specified RequestTimeout exceeds the limit.', + ], + [ + 'errorCode' => 'ListenerProcessing', + 'errorMessage' => 'A previous configuration of the listener is pending,please try again later.', + ], + [ + 'errorCode' => 'InvalidParameter.ListenerPortConflict', + 'errorMessage' => 'There is conflict listener port exists.', + ], + [ + 'errorCode' => 'ResourceNotAvailible.HttpListener', + 'errorMessage' => 'The specified Zone did not have enough resource.', + ], + [ + 'errorCode' => 'AclNotExist', + 'errorMessage' => 'Acl does not exist.', + ], + [ + 'errorCode' => 'OperationUnsupported.CreateLoadBalancerLayer7Listener', + 'errorMessage' => 'The slb instance does not support create HTTP or HTTPS listener.', + ], + [ + 'errorCode' => 'InvalidParameter.VServerGroupId', + 'errorMessage' => 'The MasterSlaveServerGroup can not be attached to HTTP or HTTPS listener.', + ], + [ + 'errorCode' => 'MissingParam.HealthCheckDomain', + 'errorMessage' => 'The HealthCheckDomain is required when HealthCheckHttpVersion is http1.1.', + ], + [ + 'errorCode' => 'InvalidParameter.HealthCheckHttpVersion', + 'errorMessage' => 'The param HealthCheckHttpVersion is invalid.', + ], + [ + 'errorCode' => 'Duplicated.AclEntry', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'OperationFailed.InsufficientResources', + 'errorMessage' => 'The loadbalancer does not support this operation because of insufficient resources.', + ], + [ + 'errorCode' => 'InvalidParameter.ForwardCode', + 'errorMessage' => 'The specified ForwardCode is invalid.', + ], + [ + 'errorCode' => 'LbNotSupportTcpssl', + 'errorMessage' => 'You cannot create a TCP SSL type listener for the specified load balancer.', + ], + [ + 'errorCode' => 'LbSupportTcpsslOnly', + 'errorMessage' => 'The specified load balancer supports TCP SSL type listener only.', + ], + [ + 'errorCode' => 'ListenerNotSupportRule', + 'errorMessage' => 'You cannot create a rule for the specified listener.', + ], + [ + 'errorCode' => 'Mismatch.SlbSpecTypeAndListenerProtocol', + 'errorMessage' => 'The SlbSpecType and ListenerProtocol are mismatched.', + ], + [ + 'errorCode' => 'InvalidParam.TagValue ', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'InvalidParam.TagKey', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'SizeLimitExceeded.Tag', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'MissingParam.TagKey', + 'errorMessage' => 'The param MissingParam.TagKey is missing.', + ], + [ + 'errorCode' => 'AclListenerOverLimit', + 'errorMessage' => 'This acl has reached the limit of binding to listeners.', + ], + [ + 'errorCode' => 'QuotaLimitExceeds.AclAttachedToListener', + 'errorMessage' => 'The number of Acl bound listeners has reached the quota limit', + ], + [ + 'errorCode' => 'QuotaLimitExceeds.TotalAclEntry', + 'errorMessage' => 'The number of Acl entries has reached the quota limit.', + ], + [ + 'errorCode' => 'QuotaLimitExceeds.AclListenerOverLimit', + 'errorMessage' => 'This acl has reached the limit of binding to listeners.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\"\\n}","errorExample":""},{"type":"xml","example":"\\n CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\n","errorExample":""}]', + 'title' => 'CreateLoadBalancerHTTPListener', + 'summary' => 'Creates an HTTP listener for a Classic Load Balancer (CLB) instance.', + 'description' => 'A newly created listener is in the **stopped** state. After a listener is created, you can call the [StartLoadBalancerListener](~~StartLoadBalancerListener~~) operation to start the listener. After the listener is started, the listener can forward traffic to backend servers.'."\n" + ."\n" + .'## Prerequisites'."\n" + ."\n" + .'A Classic Load Balancer (CLB) instance is created. For more information, see [CreateLoadBalancer](~~StartLoadBalancerListener~~).', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'SetLoadBalancerHTTPListenerAttribute' => [ + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'update', + 'abilityTreeCode' => '88668', + 'abilityTreeNodes' => [ + 'FEATUREslbPXBZ65', + ], + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the CLB instance.'."\n" + ."\n" + .'You can query the region ID from the [Regions and zones](~~27585~~) list or by calling the [DescribeRegions](~~27584~~) operation.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'LoadBalancerId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The CLB instance ID.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'lb-bp1qjwo61pqz3ah*****', + ], + ], + [ + 'name' => 'ListenerPort', + 'in' => 'query', + 'schema' => [ + 'description' => 'The frontend port that is used by the CLB instance.'."\n" + ."\n" + .'Valid values: **1** to **65535**.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => true, + 'docRequired' => true, + 'maximum' => '65535', + 'minimum' => '1', + 'example' => '80', + ], + ], + [ + 'name' => 'Bandwidth', + 'in' => 'query', + 'schema' => [ + 'description' => 'The maximum bandwidth of the listener. Unit: Mbit/s. Set the value to'."\n" + ."\n" + .'* **-1**: For a pay-by-data-transfer Internet-facing CLB instance, this value specifies that the bandwidth of the listener is unlimited.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'maximum' => '5120', + 'minimum' => '-1', + 'example' => '-1', + ], + ], + [ + 'name' => 'XForwardedFor', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to use the `X-Forwarded-For` header to preserve client IP addresses. Valid values:'."\n" + ."\n" + .'* **on** (default)'."\n" + .'* **off**'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'on', + ], + ], + [ + 'name' => 'Scheduler', + 'in' => 'query', + 'schema' => [ + 'description' => 'The scheduling algorithm. Valid values:'."\n" + ."\n" + .'* **wrr**: Backend servers that have higher weights receive more requests than backend servers that have lower weights.'."\n" + .'* **rr**: Requests are distributed to backend servers in sequence.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'wrr', + ], + ], + [ + 'name' => 'StickySession', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to enable session persistence. Valid values:'."\n" + ."\n" + .'* **on**'."\n" + .'* **off**'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'on', + ], + ], + [ + 'name' => 'StickySessionType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The method that is used to handle a cookie. Valid values:'."\n" + ."\n" + .'* **insert**: inserts a cookie.'."\n" + ."\n" + .'CLB inserts a cookie (SERVERID) into the first HTTP or HTTPS response packet that is sent to a client. The next request from the client contains this cookie, and the listener distributes the request to the recorded backend server.'."\n" + ."\n" + .'* **server**: rewrites a cookie.'."\n" + ."\n" + .'When CLB detects a user-defined cookie, CLB overwrites the original cookie with the user-defined cookie. The next request from the client carries the user-defined cookie, and the listener forwards the request to the recorded backend server.'."\n" + ."\n" + .'> This parameter is required when **StickySession** is set to **on**.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'insert', + ], + ], + [ + 'name' => 'CookieTimeout', + 'in' => 'query', + 'schema' => [ + 'description' => 'The timeout period of a cookie.'."\n" + ."\n" + .'Valid values: **1** to **86400**. Unit: seconds.'."\n" + ."\n" + .'> This parameter is required when **StickySession** is set to **on** and **StickySessionType** is set to **insert**.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'maximum' => '86400', + 'minimum' => '1', + 'example' => '500', + ], + ], + [ + 'name' => 'Cookie', + 'in' => 'query', + 'schema' => [ + 'description' => 'The cookie that is configured on the server.'."\n" + ."\n" + .'The cookie must be 1 to 200 characters in length, and can contain ASCII characters and digits. It cannot contain commas (,), semicolons (;), or spaces. It cannot start with a dollar sign ($).'."\n" + ."\n" + .'> This parameter is required when **StickySession** is set to **on** and **StickySessionType** is set to **server**.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'testCookie', + ], + ], + [ + 'name' => 'HealthCheck', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to enable the health check feature. Valid values:'."\n" + ."\n" + .'* **on**'."\n" + .'* **off**'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'on', + ], + ], + [ + 'name' => 'HealthCheckMethod', + 'in' => 'query', + 'schema' => [ + 'description' => 'The health check method that is used in HTTP health checks. Valid values: **head** and **get**.'."\n" + ."\n" + .'> The parameter takes effect only if you set **HealthCheck** to **on**.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'get', + ], + ], + [ + 'name' => 'HealthCheckDomain', + 'in' => 'query', + 'schema' => [ + 'description' => 'The domain name that is used for health checks. Valid values:'."\n" + ."\n" + .'* **$\\_ip**: the private IP address of a backend server. If you specify \\*\\*$\\_ip **or** ignore HealthCheckDomain\\*\\*, CLB uses the private IP addresses of backend servers as the health check domain names.'."\n" + .'* **domain**: The domain name must be 1 to 80 characters in length, and can contain letters, digits, periods (.), and hyphens (-).'."\n" + ."\n" + .'> The parameter takes effect only if you set **HealthCheck** to **on**.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '172.XX.XX.16', + ], + ], + [ + 'name' => 'HealthCheckURI', + 'in' => 'query', + 'schema' => [ + 'description' => 'The Uniform Resource Identifier (URI) that you want to use for health checks.'."\n" + ."\n" + .'The URI must be 1 to 80 characters in length, and can contain letters, digits, and the following characters: - / . % ? # & The URI must start with a forward slash (/) but cannot be a single forward slash (/).'."\n" + ."\n" + .'> The parameter takes effect only if you set **HealthCheck** to **on**.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '/test/index.html', + ], + ], + [ + 'name' => 'HealthyThreshold', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of times that an unhealthy backend server must consecutively pass health checks before it is declared healthy. In this case, the health status is changed from **fail** to **success**.'."\n" + ."\n" + .'Valid values: **2** to **10**.'."\n" + ."\n" + .'> The parameter takes effect only if you set **HealthCheck** to **on**.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'maximum' => '10', + 'minimum' => '1', + 'example' => '4', + ], + ], + [ + 'name' => 'UnhealthyThreshold', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of times that a healthy backend server must consecutively fail health checks before it is declared unhealthy. In this case, the health status is changed from **success** to **fail**.'."\n" + ."\n" + .'Valid values: **2** to **10**.'."\n" + ."\n" + .'> The parameter takes effect only if you set **HealthCheck** to **on**.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'maximum' => '10', + 'minimum' => '1', + 'example' => '4', + ], + ], + [ + 'name' => 'HealthCheckTimeout', + 'in' => 'query', + 'schema' => [ + 'description' => 'The timeout period of a health check response. If a backend ECS instance does not respond within the specified timeout period, the ECS instance fails the health check. This parameter takes effect only if the **HealthCheck** parameter is set to **on**.'."\n" + ."\n" + .'Valid values: **1** to **300**. Unit: seconds.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'maximum' => '300', + 'minimum' => '1', + 'example' => '3', + ], + ], + [ + 'name' => 'HealthCheckInterval', + 'in' => 'query', + 'schema' => [ + 'description' => 'The interval at which health checks are performed.'."\n" + ."\n" + .'Valid values: **1** to **50**. Unit: seconds.'."\n" + ."\n" + .'> The parameter takes effect only if you set **HealthCheck** to **on**.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'maximum' => '50', + 'minimum' => '1', + 'example' => '5', + ], + ], + [ + 'name' => 'HealthCheckConnectPort', + 'in' => 'query', + 'schema' => [ + 'description' => 'The port that is used for health checks.'."\n" + ."\n" + .'Valid values: **1** to **65535**.'."\n" + ."\n" + .'> This parameter takes effect only if you set **HealthCheck** to **on**.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'maximum' => '65535', + 'minimum' => '-520', + 'example' => '8080', + ], + ], + [ + 'name' => 'HealthCheckHttpCode', + 'in' => 'query', + 'schema' => [ + 'description' => 'The HTTP status code for a successful health check. Separate multiple HTTP status codes with commas (,).'."\n" + ."\n" + .'Valid values: **http\\_2xx**, **http\\_3xx**, **http\\_4xx**, and **http\\_5xx**.'."\n" + ."\n" + .'> The parameter takes effect only if you set **HealthCheck** to **on**.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'http_2xx,http_3xx', + ], + ], + [ + 'name' => 'VServerGroup', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to use a vServer group. Valid values:'."\n" + ."\n" + .'* **on**'."\n" + .'* **off**'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'on', + ], + ], + [ + 'name' => 'VServerGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the vServer group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rsp-cige6j*****', + ], + ], + [ + 'name' => 'XForwardedFor_SLBIP', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to use the `SLB-IP` header to retrieve the virtual IP address (VIP) requested by the client. Valid values:'."\n" + ."\n" + .'* **on**'."\n" + .'* **off**'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'on', + ], + ], + [ + 'name' => 'XForwardedFor_SLBID', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to use the `SLB-ID` header to retrieve the ID of the CLB instance. Valid values:'."\n" + ."\n" + .'* **on**'."\n" + .'* **off**'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'on', + ], + ], + [ + 'name' => 'XForwardedFor_proto', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to use the `X-Forwarded-Proto` header to retrieve the listener protocol. Valid values:'."\n" + ."\n" + .'* **on**'."\n" + .'* **off**'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'on', + ], + ], + [ + 'name' => 'Gzip', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to enable `GZIP` compression to compress specific types of files. Valid values:'."\n" + ."\n" + .'* **on**'."\n" + .'* **off**'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'on', + ], + ], + [ + 'name' => 'AclId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the access control list (ACL) that is associated with the listener.'."\n" + ."\n" + .'> This parameter is required when **AclStatus** is set to **on**.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'acl-uf60jw******', + ], + ], + [ + 'name' => 'AclType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The type of the ACL. Valid values:'."\n" + ."\n" + .'* **white**: a whitelist. Only requests from the IP addresses or CIDR blocks in the ACL are forwarded. Whitelists apply to scenarios where you want to allow only specific IP addresses to access an application. Risks may occur if a whitelist is improperly configured. If a whitelist is configured, only requests from IP addresses that are added to the whitelist are forwarded by the listener.'."\n" + ."\n" + .'If you enable a whitelist but do not add an IP address to the ACL, the listener forwards all requests.'."\n" + ."\n" + .'* **black**: a blacklist. All requests from the IP addresses or CIDR blocks in the ACL are rejected. Blacklists apply to scenarios where you want to block access from specified IP addresses to an application.'."\n" + ."\n" + .'If a blacklist is configured for a listener but no IP addresses are added to the blacklist, the listener forwards all requests.'."\n" + ."\n" + .'> This parameter takes effect when the value of **AclStatus** is set to **on**.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'white', + ], + ], + [ + 'name' => 'AclStatus', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to enable access control. Valid values:'."\n" + ."\n" + .'* **on**'."\n" + .'* **off**'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'off', + ], + ], + [ + 'name' => 'IdleTimeout', + 'in' => 'query', + 'schema' => [ + 'description' => 'The timeout period of an idle connection. Unit: seconds. Valid values: **1 to 60**. Default value: **15**.'."\n" + ."\n" + .'If no request is received within the specified timeout period, CLB closes the connection. When a request is received, CLB establishes a new connection.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'maximum' => '9999', + 'minimum' => '1', + 'example' => '12', + ], + ], + [ + 'name' => 'RequestTimeout', + 'in' => 'query', + 'schema' => [ + 'description' => 'The timeout period of a request. Unit: seconds. Valid values: **1 to 180**. Default value: **60**.'."\n" + ."\n" + .'If no response is received from the backend server within the request timeout period, CLB returns an HTTP 504 error code to the client.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'maximum' => '9999', + 'minimum' => '1', + 'example' => '3', + ], + ], + [ + 'name' => 'Description', + 'in' => 'query', + 'schema' => [ + 'description' => 'The description of the listener.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'test', + ], + ], + [ + 'name' => 'XForwardedFor_SLBPORT', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to use the `XForwardedFor_SLBPORT` header to retrieve the listener port of the CLB instance. Valid values:'."\n" + ."\n" + .'* **on**'."\n" + .'* **off**'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'off', + ], + ], + [ + 'name' => 'XForwardedFor_ClientSrcPort', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to use the `XForwardedFor_ClientSrcPort` header to retrieve the client port. Valid values:'."\n" + ."\n" + .'* **on**'."\n" + .'* **off**'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'off', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'IpVersionConflict', + 'errorMessage' => 'The ip version of this LoadBalancer and the Acl is conflict.', + ], + [ + 'errorCode' => 'Operation.NotAllowed', + 'errorMessage' => 'Operation Denied. The HTTP listener does not support this action.', + ], + [ + 'errorCode' => 'InvalidParameter.IdleTimeout', + 'errorMessage' => 'The specified IdleTimeout exceeds the limit.', + ], + [ + 'errorCode' => 'InvalidParameter.RequestTimeout', + 'errorMessage' => 'The specified RequestTimeout exceeds the limit.', + ], + [ + 'errorCode' => 'ListenerForwardNotSupport', + 'errorMessage' => 'X-Forward-For is not supported to a ipv6 instance.', + ], + [ + 'errorCode' => 'InvalidParameter.RegionNotSupport', + 'errorMessage' => 'The region does not support the parameter: %s.', + ], + [ + 'errorCode' => 'OperationFailed.ServerGroupInUse', + 'errorMessage' => 'The VServerGroup or MasterSlaveServerGroup can not be close for this listener.', + ], + [ + 'errorCode' => 'InvalidParameter.VServerGroupId', + 'errorMessage' => 'The MasterSlaveServerGroup can not be attached to HTTP or HTTPS listener.', + ], + [ + 'errorCode' => 'MissingParam.HealthCheckDomain', + 'errorMessage' => 'The HealthCheckDomain is required when HealthCheckHttpVersion is http1.1.', + ], + [ + 'errorCode' => 'InvalidParameter.HealthCheckHttpVersion', + 'errorMessage' => 'The param HealthCheckHttpVersion is invalid.', + ], + [ + 'errorCode' => 'Duplicated.AclEntry', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'InvalidParameter.ForwardCode', + 'errorMessage' => 'The specified ForwardCode is invalid.', + ], + [ + 'errorCode' => 'AclListenerOverLimit', + 'errorMessage' => 'This acl has reached the limit of binding to listeners.', + ], + [ + 'errorCode' => 'QuotaLimitExceeds.AclAttachedToListener', + 'errorMessage' => 'The number of Acl bound listeners has reached the quota limit', + ], + [ + 'errorCode' => 'QuotaLimitExceeds.TotalAclEntry', + 'errorMessage' => 'The number of Acl entries has reached the quota limit.', + ], + [ + 'errorCode' => 'QuotaLimitExceeds.AclListenerOverLimit', + 'errorMessage' => 'This acl has reached the limit of binding to listeners.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\"\\n}","errorExample":"{\\"Code\\":\\"InvalidParameter\\",\\"Message\\":\\"The specified parameter is not valid.\\",\\"HostId\\":\\"slb-pop.aliyuncs.com\\",\\"RequestId\\":\\"0669D684-69D8-408E-A4FA-B9011E0F4E66\\"}"},{"type":"xml","example":"\\n\\n\\tCEF72CEB-54B6-4AE8-B225-F876FF7BA984\\n","errorExample":""}]', + 'title' => 'SetLoadBalancerHTTPListenerAttribute', + 'summary' => 'Modifies the configurations of an HTTP listener.', + 'description' => '### Prerequisites'."\n" + ."\n" + .'* A Classic Load Balancer (CLB) instance is created. For more information, see [CreateLoadBalancer](~~27577~~).'."\n" + .'* An HTTP listener is created. For more information about how to create an HTTP listener, see [CreateLoadBalancerHTTPListener](~~27592~~).'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'DescribeLoadBalancerHTTPListenerAttribute' => [ + 'summary' => 'Queries the configurations of an HTTP listener.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'get', + 'abilityTreeCode' => '88577', + 'abilityTreeNodes' => [ + 'FEATUREslbOMAMKB', + ], + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the CLB instance.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~25609~~) operation to query the most recent region list.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'LoadBalancerId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The CLB instance ID.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'lb-bp1uaunez0uho0zf0****', + ], + ], + [ + 'name' => 'ListenerPort', + 'in' => 'query', + 'schema' => [ + 'description' => 'The frontend port that is used by the CLB instance.'."\n" + ."\n" + .'Valid values: **1** to **65535**.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => true, + 'docRequired' => true, + 'maximum' => '65535', + 'minimum' => '1', + 'example' => '80', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'AclType' => [ + 'description' => 'The type of the ACL. Valid values:'."\n" + ."\n" + .'* **white**: a whitelist. Only requests from the IP addresses or CIDR blocks in the ACL are forwarded. Whitelists apply to scenarios where you want to allow only specific IP addresses to access an application. Your service may be adversely affected if the whitelist is not properly configured. If a whitelist is configured, only requests from IP addresses that are added to the whitelist are forwarded by the listener.'."\n" + ."\n" + .'If you enable a whitelist but do not add an IP address to the ACL, the listener forwards all requests.'."\n" + ."\n" + .'* **black**: a blacklist. All requests from the IP addresses or CIDR blocks in the network ACL are rejected. Blacklists apply to scenarios where you want to block access from specified IP addresses to an application.'."\n" + ."\n" + .'If a blacklist is configured for a listener but no IP address is added to the blacklist, the listener forwards all requests.'."\n" + ."\n" + .'> This parameter is required when **AclStatus** is set to **on**.'."\n", + 'type' => 'string', + 'example' => 'white', + ], + 'VServerGroupId' => [ + 'description' => 'The ID of the associated server group.'."\n", + 'type' => 'string', + 'example' => 'rsp-cige6j****', + ], + 'Status' => [ + 'description' => 'The status of the listener. Valid values:'."\n" + ."\n" + .'* **running**'."\n" + .'* **stopped**'."\n", + 'type' => 'string', + 'example' => 'stopped', + ], + 'XForwardedFor_ClientSrcPort' => [ + 'description' => 'Indicates whether the `XForwardedFor_ClientSrcPort` header is used to retrieve the client port. Valid values:'."\n" + ."\n" + .'* **on**'."\n" + .'* **off**'."\n", + 'type' => 'string', + 'example' => 'off', + ], + 'Cookie' => [ + 'description' => 'The cookie that is configured on the server.'."\n", + 'type' => 'string', + 'example' => 'testCookie', + ], + 'Gzip' => [ + 'description' => 'Indicates whether `Gzip` compression is enabled to compress specific types of files. Valid values:'."\n" + ."\n" + .'* **on**'."\n" + .'* **off**'."\n", + 'type' => 'string', + 'example' => 'on', + ], + 'HealthCheckConnectPort' => [ + 'description' => 'The port that is used for health checks.'."\n" + ."\n" + .'> This parameter takes effect only when **HealthCheck** is set to **on**.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '8080', + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '365F4154-92F6-4AE4-92F8-7FF34B540710', + ], + 'Description' => [ + 'description' => 'The name of the listener.'."\n", + 'type' => 'string', + 'example' => 'HTTP_80', + ], + 'Bandwidth' => [ + 'description' => 'The maximum bandwidth of the listener. Unit: Mbit/s.'."\n" + ."\n" + .'* **-1**: If -1 is returned, it indicates that the bandwidth of the listener is unlimited.'."\n" + .'* **1 to 5120**: If a value from 1 to 5120 is returned, the value indicates the maximum bandwidth of the listener. The sum of the maximum bandwidth of all listeners added to a CLB instance does not exceed the maximum bandwidth of the CLB instance.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '-1', + ], + 'HealthCheckTimeout' => [ + 'description' => 'The timeout period of each health check. Unit: seconds.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '3', + ], + 'AclStatus' => [ + 'description' => 'Indicates whether access control is enabled. Valid values:'."\n" + ."\n" + .'* **on**'."\n" + .'* **off**'."\n", + 'type' => 'string', + 'example' => 'off', + ], + 'BackendServerPort' => [ + 'description' => 'The backend port that is used by the CLB instance.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '80', + ], + 'CookieTimeout' => [ + 'description' => 'The timeout period of a cookie. Unit: seconds.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '500', + ], + 'HealthCheckDomain' => [ + 'description' => 'The domain name that you want to use for health checks.'."\n", + 'type' => 'string', + 'example' => 'www.domain.com', + ], + 'UnhealthyThreshold' => [ + 'description' => 'The unhealthy threshold.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '4', + ], + 'ForwardPort' => [ + 'description' => 'The listener port that is used to redirect HTTP requests to HTTPS.'."\n" + ."\n" + .'> If the **ListenerForward** parameter is set to **off**, this parameter is not displayed.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '80', + ], + 'XForwardedFor_SLBID' => [ + 'description' => 'Indicates whether the `SLB-ID` header is used to retrieve the ID of the CLB instance. Valid values:'."\n" + ."\n" + .'* **on**'."\n" + .'* **off**'."\n", + 'type' => 'string', + 'example' => 'on', + ], + 'SecurityStatus' => [ + 'description' => 'Indicates whether the listener is in the Secure state. Valid values:'."\n" + ."\n" + .'* **on**'."\n" + .'* **off**'."\n", + 'type' => 'string', + 'example' => 'on', + ], + 'HealthCheckHttpCode' => [ + 'description' => 'The HTTP status code for a successful health check.'."\n", + 'type' => 'string', + 'example' => 'http_2xx,http_3xx', + ], + 'ListenerForward' => [ + 'description' => 'Indicates whether HTTP-to-HTTPS redirection is enabled. Valid values:'."\n" + ."\n" + .'* **on**'."\n" + .'* **off**'."\n", + 'type' => 'string', + 'example' => 'on', + ], + 'XForwardedFor' => [ + 'description' => 'Indicates whether the `X-Forwarded-For` header is used to preserve the real IP address of the client. Valid values:'."\n" + ."\n" + .'* **on**'."\n" + .'* **off**'."\n", + 'type' => 'string', + 'example' => 'on', + ], + 'IdleTimeout' => [ + 'description' => 'The timeout period of an idle connection. Unit: seconds.'."\n" + ."\n" + .'Default value: **15**. Valid values: **1 to 60**.'."\n" + ."\n" + .'If no request is received within the specified timeout period, CLB closes the connection. When a request is received, CLB establishes a new connection.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '2', + ], + 'RequestTimeout' => [ + 'description' => 'The timeout period of a request. Unit: seconds.'."\n" + ."\n" + .'Default value: **60**. Valid values: **1 to 180**.'."\n" + ."\n" + .'If no response is received from a backend server within the specified timeout period, CLB returns the HTTP 504 status code to the client.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '34', + ], + 'ListenerPort' => [ + 'description' => 'The frontend port that is used by the CLB instance.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '80', + ], + 'HealthCheckInterval' => [ + 'description' => 'The interval at which health checks are performed. Unit: seconds.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '5', + ], + 'XForwardedFor_SLBPORT' => [ + 'description' => 'Indicates whether the `XForwardedFor_SLBPORT` header is used to retrieve the listener port of the CLB instance. Valid values:'."\n" + ."\n" + .'* **on**'."\n" + .'* **off**'."\n", + 'type' => 'string', + 'example' => 'off', + ], + 'HealthCheckURI' => [ + 'description' => 'The URL path that is used for health checks.'."\n" + ."\n" + .'The URI must be 1 to 80 characters in length, and can contain only digits, letters, hyphens (-), forward slashes (/), periods (.), percent signs (%), question marks (?), number signs (#), and ampersands (&). The URI must start with a forward slash (/) but cannot be a single forward slash (/).'."\n", + 'type' => 'string', + 'example' => '/test/index.html', + ], + 'StickySessionType' => [ + 'description' => 'The method that is used to handle a cookie.'."\n" + ."\n" + .'Valid values: **insert** and **server**.'."\n" + ."\n" + .'* **insert**: inserts a cookie.'."\n" + ."\n" + .' CLB inserts a session cookie (SERVERID) into the first HTTP or HTTPS response that is sent to a client. Subsequent requests to CLB carry this cookie, and CLB determines the destination servers of the requests based on the cookies.'."\n" + ."\n" + .'* **server**: rewrites a cookie.'."\n" + ."\n" + .' When CLB detects a user-defined cookie, it overwrites the original cookie with the user-defined cookie. The next request from the client carries the user-defined cookie, and the listener forwards this request to the recorded backend server.'."\n" + ."\n" + .'> This parameter is required when **StickySession** is set to **on**.'."\n", + 'type' => 'string', + 'example' => 'insert ', + ], + 'AclId' => [ + 'description' => 'The ID of the network ACL that is associated with a listener.'."\n" + ."\n" + .'> This parameter is returned when **AclStatus** is set to **on**.'."\n", + 'type' => 'string', + 'example' => 'acl-uf60jw******', + ], + 'Scheduler' => [ + 'description' => 'The routing algorithm. Valid values:'."\n" + ."\n" + .'* **wrr**: Backend servers that have higher weights receive more requests than backend servers that have lower weights.'."\n" + .'* \\*\\* rr\\*\\*: Requests are sequentially distributed to backend servers.'."\n", + 'type' => 'string', + 'example' => 'wrr', + ], + 'HealthyThreshold' => [ + 'description' => 'The healthy threshold.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '4', + ], + 'XForwardedFor_proto' => [ + 'description' => 'Indicates whether the `X-Forwarded-Proto` header is used to retrieve the listener protocol. Valid values:'."\n" + ."\n" + .'* **on**'."\n" + .'* **off**'."\n", + 'type' => 'string', + 'example' => 'on', + ], + 'XForwardedFor_SLBIP' => [ + 'description' => 'Indicates whether the `SLB-IP` header is used to retrieve the virtual IP address requested by the client. Valid values:'."\n" + ."\n" + .'* **on**'."\n" + .'* **off**'."\n", + 'type' => 'string', + 'example' => 'on', + ], + 'StickySession' => [ + 'description' => 'Indicates whether session persistence is enabled. Valid values:'."\n" + ."\n" + .'* **on**'."\n" + .'* **off**'."\n", + 'type' => 'string', + 'example' => 'on', + ], + 'HealthCheckMethod' => [ + 'description' => 'The health check method used by HTTP listeners. Valid values: **head** and **get**.'."\n" + ."\n" + .'> This parameter is returned when **HealthCheck** is set to **on**.'."\n", + 'type' => 'string', + 'example' => 'get', + ], + 'HealthCheck' => [ + 'description' => 'Indicates whether the health check feature is enabled. Valid values:'."\n" + ."\n" + .'* **on**'."\n" + .'* **off**'."\n", + 'type' => 'string', + 'example' => 'on', + ], + 'AclIds' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'AclId' => [ + 'description' => 'The ID of the access control list (ACL).'."\n", + 'type' => 'array', + ], + ], + ], + 'Rules' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Rule' => [ + 'description' => 'The list of forwarding rules.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'VServerGroupId' => [ + 'description' => 'The ID of the server group specified in the forwarding rule.'."\n", + 'type' => 'string', + 'example' => 'rsp-uf6w******', + ], + 'Url' => [ + 'description' => 'The request URL.'."\n", + 'type' => 'string', + 'example' => '/example', + ], + 'Domain' => [ + 'description' => 'The domain name.'."\n", + 'type' => 'string', + 'example' => 'www.example.com', + ], + 'RuleName' => [ + 'description' => 'The name of the forwarding rule.'."\n", + 'type' => 'string', + 'example' => 'test', + ], + 'RuleId' => [ + 'description' => 'The ID of the forwarding rule.'."\n", + 'type' => 'string', + 'example' => '1234', + ], + ], + 'description' => 'The forwarding rules.'."\n", + ], + ], + ], + ], + 'LoadBalancerId' => [ + 'description' => 'The CLB instance ID.'."\n", + 'type' => 'string', + 'example' => 'lb-bp1uaunez0uho0zf0****', + ], + 'Tags' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Tag' => [ + 'description' => 'The tags.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'TagKey' => [ + 'description' => 'The key of tag N. Valid values of N: **1** to **20**. The tag value cannot be an empty string. The tag key can be up to 64 characters in length. The key cannot start with `acs:` or `aliyun` or contain `http://` or `https://`.'."\n", + 'type' => 'string', + 'example' => 'TestKey', + ], + 'TagValue' => [ + 'description' => 'The value of tag N. Valid values of N: **1** to **20**. The tag value can be an empty string. The tag value can be up to 128 characters in length, and cannot start with `acs:`. It cannot contain `http://` or `https://`.'."\n", + 'type' => 'string', + 'example' => 'TestValue', + ], + ], + ], + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"AclType\\": \\"white\\",\\n \\"VServerGroupId\\": \\"rsp-cige6j****\\",\\n \\"Status\\": \\"stopped\\",\\n \\"XForwardedFor_ClientSrcPort\\": \\"off\\",\\n \\"Cookie\\": \\"testCookie\\",\\n \\"Gzip\\": \\"on\\",\\n \\"HealthCheckConnectPort\\": 8080,\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF34B540710\\",\\n \\"Description\\": \\"HTTP_80\\",\\n \\"Bandwidth\\": -1,\\n \\"HealthCheckTimeout\\": 3,\\n \\"AclStatus\\": \\"off\\",\\n \\"BackendServerPort\\": 80,\\n \\"CookieTimeout\\": 500,\\n \\"HealthCheckDomain\\": \\"www.domain.com\\",\\n \\"UnhealthyThreshold\\": 4,\\n \\"ForwardPort\\": 80,\\n \\"XForwardedFor_SLBID\\": \\"on\\",\\n \\"SecurityStatus\\": \\"on\\",\\n \\"HealthCheckHttpCode\\": \\"http_2xx,http_3xx\\",\\n \\"ListenerForward\\": \\"on\\",\\n \\"XForwardedFor\\": \\"on\\",\\n \\"IdleTimeout\\": 2,\\n \\"RequestTimeout\\": 34,\\n \\"ListenerPort\\": 80,\\n \\"HealthCheckInterval\\": 5,\\n \\"XForwardedFor_SLBPORT\\": \\"off\\",\\n \\"HealthCheckURI\\": \\"/test/index.html\\",\\n \\"StickySessionType\\": \\"insert \\",\\n \\"AclId\\": \\"acl-uf60jw******\\",\\n \\"Scheduler\\": \\"wrr\\",\\n \\"HealthyThreshold\\": 4,\\n \\"XForwardedFor_proto\\": \\"on\\",\\n \\"XForwardedFor_SLBIP\\": \\"on\\",\\n \\"StickySession\\": \\"on\\",\\n \\"HealthCheckMethod\\": \\"get\\",\\n \\"HealthCheck\\": \\"on\\",\\n \\"AclIds\\": {\\n \\"AclId\\": [\\n \\"\\"\\n ]\\n },\\n \\"Rules\\": {\\n \\"Rule\\": [\\n {\\n \\"VServerGroupId\\": \\"rsp-uf6w******\\",\\n \\"Url\\": \\"/example\\",\\n \\"Domain\\": \\"www.example.com\\",\\n \\"RuleName\\": \\"test\\",\\n \\"RuleId\\": \\"1234\\"\\n }\\n ]\\n },\\n \\"LoadBalancerId\\": \\"lb-bp1uaunez0uho0zf0****\\",\\n \\"Tags\\": {\\n \\"Tag\\": [\\n {\\n \\"TagKey\\": \\"TestKey\\",\\n \\"TagValue\\": \\"TestValue\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n white\\n rsp-cige6j****\\n stopped\\n B490B5EBF6F3CD402E515D22BCDA1598\\n on\\n 8080\\n 365F4154-92F6-4AE4-92F8-7FF34B540710\\n HTTP_80\\n -1\\n 3\\n off\\n 80\\n 500\\n www.domain.com\\n 4\\n 80\\n on\\n on\\n http_2xx,http_3xx\\n on\\n on\\n 2\\n 34\\n 80\\n 5\\n /test/index.html\\n insert \\n on\\n wrr\\n 4\\n on\\n on\\n on\\n get\\n on\\n \\n 123\\n /example\\n www.example.com\\n test\\n 1234\\n \\n lb-bp1uaunez0uho0zf0****\\n \\n TestKey\\n TestValue\\n \\n","errorExample":""}]', + 'title' => 'DescribeLoadBalancerHTTPListenerAttribute', + 'description' => '* A Classic Load Balancer (CLB) instance is created. For more information, see [CreateLoadBalancer](~~27577~~).'."\n" + .'* An HTTP listener is created. For more information about how to create an HTTP listener, see [CreateLoadBalancerHTTPListener](~~27592~~).', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'CreateLoadBalancerHTTPSListener' => [ + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'create', + 'abilityTreeCode' => '88526', + 'abilityTreeNodes' => [ + 'FEATUREslbFSBXXR', + ], + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the CLB instance.'."\n" + ."\n" + .'You can query the region ID from the [Regions and zones](~~40654~~) list or by calling the [DescribeRegions](~~25609~~) operation.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'LoadBalancerId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the CLB instance.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'lb-bp1o94dp5i6earr****', + ], + ], + [ + 'name' => 'Bandwidth', + 'in' => 'query', + 'schema' => [ + 'description' => 'The maximum bandwidth of the listener. Unit: Mbit/s.'."\n" + ."\n" + .'The URL must meet the following requirements:'."\n" + ."\n" + .'* **-1**: For a pay-by-data-transfer Internet-facing CLB instance, this parameter is set to -1. This indicates that the bandwidth of the listener is unlimited.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => true, + 'docRequired' => true, + 'maximum' => '5120', + 'minimum' => '-1', + 'example' => '-1', + ], + ], + [ + 'name' => 'ListenerPort', + 'in' => 'query', + 'schema' => [ + 'description' => 'The frontend port that is used by the CLB instance.'."\n" + ."\n" + .'Valid values: **1** to **65535**.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => true, + 'docRequired' => true, + 'maximum' => '65535', + 'minimum' => '1', + 'example' => '80', + ], + ], + [ + 'name' => 'BackendServerPort', + 'in' => 'query', + 'schema' => [ + 'description' => 'The backend port that is used by the CLB instance. Valid values: **1** to **65535**.'."\n" + ."\n" + .'If the VServerGroupId parameter is not set, this parameter is required.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'maximum' => '65535', + 'minimum' => '1', + 'example' => '80', + ], + ], + [ + 'name' => 'Tag', + 'in' => 'query', + 'allowEmptyValue' => true, + 'style' => 'repeatList', + 'schema' => [ + 'description' => 'The tags.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The tags.'."\n", + 'type' => 'object', + 'properties' => [ + 'Key' => [ + 'description' => 'The tag key of the resource. You can specify up to 20 tag keys.'."\n" + ."\n" + .'The tag key cannot be an empty string. The tag key must be 1 to 64 characters in length and cannot start with `aliyun` or `acs:`. The tag key cannot contain `http://` or `https://`.', + 'type' => 'string', + 'required' => false, + 'example' => 'TestKey', + ], + 'Value' => [ + 'description' => 'The tag value of the resource. You can specify up to 20 tag values. The tag value cannot be an empty string.'."\n" + ."\n" + .'The tag value can be up to 128 characters in length and cannot start with `acs:` or `aliyun`. The tag value cannot contain `http://` or `https://`.', + 'type' => 'string', + 'required' => false, + 'example' => 'TestValue', + ], + ], + 'required' => false, + ], + 'required' => false, + 'maxItems' => 20, + ], + ], + [ + 'name' => 'XForwardedFor', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to use the `X-Forwarded-For` header to retrieve client IP addresses. Valid values:'."\n" + ."\n" + .'* **on**'."\n" + .'* **off**'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'on', + 'default' => 'on', + ], + ], + [ + 'name' => 'Scheduler', + 'in' => 'query', + 'schema' => [ + 'description' => 'The scheduling algorithm. Valid values:'."\n" + ."\n" + .'* **wrr**: Backend servers with higher weights receive more requests than those with lower weights.'."\n" + .'* **rr**: Requests are distributed to backend servers in sequence.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'wrr', + 'default' => 'wrr', + ], + ], + [ + 'name' => 'StickySession', + 'in' => 'query', + 'allowEmptyValue' => false, + 'schema' => [ + 'description' => 'Specifies whether to enable session persistence. Valid values:'."\n" + ."\n" + .'* **on**'."\n" + .'* **off**'."\n", + 'type' => 'string', + 'required' => false, + 'docRequired' => true, + 'example' => 'on', + 'default' => 'off', + ], + ], + [ + 'name' => 'StickySessionType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The method that is used to handle a cookie. Valid values: **insert** and **server**.'."\n" + ."\n" + .'* **insert**: inserts a cookie.'."\n" + ."\n" + .' CLB inserts a cookie (SERVERID) into the first HTTP or HTTPS response packet that is sent to a client. The next request from the client will contain this cookie, and the listener will distribute this request to the recorded backend server.'."\n" + ."\n" + .'* **server**: rewrites a cookie.'."\n" + ."\n" + .' When CLB detects a user-defined cookie, it overwrites the original cookie with the user-defined cookie. The next request from the client carries the user-defined cookie, and the listener will distribute the request to the recorded backend server.'."\n" + ."\n" + .'> This parameter is required if the **StickySession** parameter is set to **on**.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'insert ', + ], + ], + [ + 'name' => 'CookieTimeout', + 'in' => 'query', + 'schema' => [ + 'description' => 'The timeout period of a cookie. Unit: seconds.'."\n" + ."\n" + .'Valid values: **1** to **86400**.'."\n" + ."\n" + .'> If **StickySession** is set to **on** and **StickySessionType** is set to **insert**, this parameter is required.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'maximum' => '86400', + 'minimum' => '1', + 'example' => '500', + ], + ], + [ + 'name' => 'Cookie', + 'in' => 'query', + 'schema' => [ + 'description' => 'The cookie that you configure for the server.'."\n" + ."\n" + .'The cookie must be 1 to 200 characters in length, and can contain only ASCII letters and digits. It cannot contain commas (,), semicolons (;), spaces, or start with a dollar sign ($).'."\n" + ."\n" + .'> This parameter is required when the **StickySession** parameter is set to **on** and the **StickySessionType** parameter is set to **server**.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'B490B5EBF6F3CD402E515D22BCDA****', + ], + ], + [ + 'name' => 'HealthCheck', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to enable the health check feature. Valid values:'."\n" + ."\n" + .'* **on**: yes'."\n" + .'* **off**: no'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'on', + ], + ], + [ + 'name' => 'HealthCheckMethod', + 'in' => 'query', + 'schema' => [ + 'description' => 'The health check method used in HTTP health checks. Valid values: **head** and **get**.'."\n" + ."\n" + .'> This parameter takes effect only if the **HealthCheck** parameter is set to **on**.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'get', + ], + ], + [ + 'name' => 'HealthCheckDomain', + 'in' => 'query', + 'schema' => [ + 'description' => 'The domain name that is used for health checks. Valid values:'."\n" + ."\n" + .'* **$\\_ip**: the private IP address of a backend server. If you do not set the HealthCheckDomain parameter or set the parameter to $\\_ip, the CLB instance uses the private IP address of each backend server for health checks.'."\n" + .'* **domain**: The domain name must be 1 to 80 characters in length and can contain letters, digits, periods (.), and hyphens (-).'."\n" + ."\n" + .'> This parameter takes effect only if the **HealthCheck** parameter is set to **on**.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '172.XX.XX.16', + ], + ], + [ + 'name' => 'HealthCheckURI', + 'in' => 'query', + 'schema' => [ + 'description' => 'The URI that is used for health checks.'."\n" + ."\n" + .'The URI must be 1 to 80 characters in length, and can contain letters, digits, and the following special characters: `-/.%?#&`. The URI must start with a forward slash (`/`), but cannot be a single forward slash (`/`).'."\n" + ."\n" + .'> This parameter takes effect only if the **HealthCheck** parameter is set to **on**.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '/test/index.html', + ], + ], + [ + 'name' => 'HealthyThreshold', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of times that an unhealthy backend server must consecutively pass health checks before it is declared healthy. In this case, the health status is changed from **fail** to **success**.'."\n" + ."\n" + .'Valid values: **2** to **10**.'."\n" + ."\n" + .'> This parameter takes effect only if the **HealthCheck** parameter is set to **on**.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'maximum' => '10', + 'minimum' => '1', + 'example' => '4', + ], + ], + [ + 'name' => 'UnhealthyThreshold', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of times that a healthy backend server must consecutively fail health checks before it is declared unhealthy. In this case, the health status is changed from **success** to **fail**.'."\n" + ."\n" + .'Valid values: **2** to **10**.'."\n" + ."\n" + .'> This parameter takes effect only if the **HealthCheck** parameter is set to **on**.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'maximum' => '10', + 'minimum' => '1', + 'example' => '4', + ], + ], + [ + 'name' => 'HealthCheckTimeout', + 'in' => 'query', + 'schema' => [ + 'description' => 'The timeout period of a health check response. If a backend ECS instance does not respond within the specified timeout period, the ECS instance fails the health check. Unit: seconds Valid values: **1** to **300**.'."\n" + ."\n" + .'> This parameter takes effect only if the **HealthCheck** parameter is set to **on**.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'maximum' => '300', + 'minimum' => '1', + 'example' => '3', + ], + ], + [ + 'name' => 'HealthCheckConnectPort', + 'in' => 'query', + 'schema' => [ + 'description' => 'The port that is used for health checks.'."\n" + ."\n" + .'Valid values: **1** to **65535**.'."\n" + ."\n" + .'> This parameter takes effect only if the **HealthCheck** parameter is set to **on**.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'maximum' => '65535', + 'minimum' => '-520', + 'example' => '8080', + ], + ], + [ + 'name' => 'HealthCheckInterval', + 'in' => 'query', + 'schema' => [ + 'description' => 'The interval between two consecutive health checks. Unit: seconds.'."\n" + ."\n" + .'Valid values: **1** to **50**.'."\n" + ."\n" + .'> This parameter takes effect only if the **HealthCheck** parameter is set to **on**.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'maximum' => '50', + 'minimum' => '1', + 'example' => '5', + ], + ], + [ + 'name' => 'HealthCheckHttpCode', + 'in' => 'query', + 'schema' => [ + 'description' => 'The HTTP status code for a successful health check. Separate multiple HTTP status codes with commas (,).'."\n" + ."\n" + .'Valid values: **http\\_2xx**, **http\\_3xx**, **http\\_4xx**, and **http\\_5xx**.'."\n" + ."\n" + .'> This parameter takes effect only if the **HealthCheck** parameter is set to **on**.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'http_2xx,http_3xx', + ], + ], + [ + 'name' => 'ServerCertificateId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the server certificate.'."\n", + 'type' => 'string', + 'required' => false, + 'docRequired' => true, + 'example' => 'idkp-123-cn-test-****', + ], + ], + [ + 'name' => 'VServerGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the server group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rsp-cige6j5e7p****', + ], + ], + [ + 'name' => 'CACertificateId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the certification authority (CA) certificate.'."\n" + ."\n" + .'If both the CA certificate and the server certificate are uploaded, mutual authentication is used.'."\n" + ."\n" + .'If you upload only the server certificate, one-way authentication is used.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '139a00604ad-cn-east-hangzh****', + ], + ], + [ + 'name' => 'XForwardedFor_SLBIP', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to use the `SLB-IP` header to retrieve the virtual IP address of the client. Valid values:'."\n" + ."\n" + .'* **on**'."\n" + .'* **off**'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'on', + 'default' => 'off', + ], + ], + [ + 'name' => 'XForwardedFor_SLBID', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to use the `SLB-ID` header to retrieve the ID of the CLB instance. Valid values:'."\n" + ."\n" + .'* **on**'."\n" + .'* **off**'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'on', + 'default' => 'off', + ], + ], + [ + 'name' => 'XForwardedFor_proto', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to use the `X-Forwarded-Proto` header to retrieve the listener protocol. Valid values:'."\n" + ."\n" + .'* **on**'."\n" + .'* **off**'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'on', + 'default' => 'off', + ], + ], + [ + 'name' => 'Gzip', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to enable `GZIP` compression to compress specific types of files. Valid values:'."\n" + ."\n" + .'* **on**'."\n" + .'* **off**'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'on', + 'default' => 'on', + ], + ], + [ + 'name' => 'AclId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the network access control list (ACL) that is associated with the listener.'."\n" + ."\n" + .'> This parameter is required if **AclStatus** is set to **on**.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'nacl-a2do9e413e0spzasx****', + ], + ], + [ + 'name' => 'AclType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The type of the network ACL. Valid values:'."\n" + ."\n" + .'* **white**: a whitelist. Only requests from the IP addresses or CIDR blocks in the network ACL are forwarded. Whitelists apply to scenarios in which you want to allow only specific IP addresses to access an application. Your service may be adversely affected if the allowlist is not properly configured. After a whitelist is configured, only requests from IP addresses that are added to the whitelist are forwarded by the listener.'."\n" + ."\n" + .' If you enable a whitelist but do not add an IP address to the ACL, the listener forwards all requests.'."\n" + ."\n" + .'* **black**: a blacklist. All requests from the IP addresses or CIDR blocks in the network ACL are denied. The blacklist applies to scenarios in which you want to deny access from specific IP addresses to an application.'."\n" + ."\n" + .' If a blacklist is configured for a listener but no IP address is added to the blacklist, the listener forwards all requests.'."\n" + ."\n" + .'> If **AclStatus** is set to **on**, this parameter is required.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'white', + ], + ], + [ + 'name' => 'AclStatus', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to enable access control. Valid values:'."\n" + ."\n" + .'* **on**: yes'."\n" + .'* **off**: no'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'off', + ], + ], + [ + 'name' => 'Description', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the listener.'."\n" + ."\n" + .'The name must be 1 to 256 characters in length and can contain letters, digits, hyphens (-), forward slashes (/), periods (.), and underscores (\\_).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'HTTPS_443', + ], + ], + [ + 'name' => 'IdleTimeout', + 'in' => 'query', + 'schema' => [ + 'description' => 'The timeout period of an idle connection. Valid values: **1 to 60**. Default value: **15**. Unit: seconds.'."\n" + ."\n" + .'If no request is received within the specified timeout period, CLB closes the connection. When a request is received, CLB establishes a new connection.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'maximum' => '9999', + 'minimum' => '1', + 'example' => '12', + ], + ], + [ + 'name' => 'RequestTimeout', + 'in' => 'query', + 'schema' => [ + 'description' => 'The timeout period of a request. Valid values: **1 to 180**. Default value: **60**. Unit: seconds.'."\n" + ."\n" + .'If no response is received from a backend server within the specified timeout period, CLB returns the HTTP 504 status code to the client.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'maximum' => '9999', + 'minimum' => '1', + 'example' => '23', + ], + ], + [ + 'name' => 'EnableHttp2', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to enable HTTP/2. Valid values:'."\n" + ."\n" + .'* **on**: yes'."\n" + .'* **off**: no'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'off', + ], + ], + [ + 'name' => 'TLSCipherPolicy', + 'in' => 'query', + 'schema' => [ + 'description' => 'The Transport Layer Security (TLS) security policy. Each security policy contains TLS protocol versions and cipher suites available for HTTPS.'."\n" + ."\n" + .'* **tls_cipher_policy\\_1\\_0**:'."\n" + ."\n" + .' Supported TLS versions: TLS 1.0, TLS 1.1, and TLS 1.2'."\n" + ."\n" + .' Supported cipher suites: ECDHE-RSA-AES128-GCM-SHA256, ECDHE-RSA-AES256-GCM-SHA384, ECDHE-RSA-AES128-SHA256, ECDHE-RSA-AES256-SHA384, AES128-GCM-SHA256, AES256-GCM-SHA384, AES128-SHA256, AES256-SHA256, ECDHE-RSA-AES128-SHA, ECDHE-RSA-AES256-SHA, AES128-SHA, AES256-SHA, and DES-CBC3-SHA'."\n" + ."\n" + .'* **tls_cipher_policy\\_1\\_1**:'."\n" + ."\n" + .' Supported TLS versions: TLS 1.1 and TLS 1.2'."\n" + ."\n" + .' Supported cipher suites: ECDHE-RSA-AES128-GCM-SHA256, ECDHE-RSA-AES256-GCM-SHA384, ECDHE-RSA-AES128-SHA256, ECDHE-RSA-AES256-SHA384, AES128-GCM-SHA256, AES256-GCM-SHA384, AES128-SHA256, AES256-SHA256, ECDHE-RSA-AES128-SHA, ECDHE-RSA-AES256-SHA, AES128-SHA, AES256-SHA, and DES-CBC3-SHA'."\n" + ."\n" + .'* **tls_cipher_policy\\_1\\_2**'."\n" + ."\n" + .' Supported TLS version: TLS 1.2'."\n" + ."\n" + .' Supported cipher suites: ECDHE-RSA-AES128-GCM-SHA256, ECDHE-RSA-AES256-GCM-SHA384, ECDHE-RSA-AES128-SHA256, ECDHE-RSA-AES256-SHA384, AES128-GCM-SHA256, AES256-GCM-SHA384, AES128-SHA256, AES256-SHA256, ECDHE-RSA-AES128-SHA, ECDHE-RSA-AES256-SHA, AES128-SHA, AES256-SHA, and DES-CBC3-SHA'."\n" + ."\n" + .'* **tls_cipher_policy\\_1\\_2\\_strict**'."\n" + ."\n" + .' Supported TLS version: TLS 1.2'."\n" + ."\n" + .' Supported cipher suites: ECDHE-RSA-AES128-GCM-SHA256, ECDHE-RSA-AES256-GCM-SHA384, ECDHE-RSA-AES128-SHA256, ECDHE-RSA-AES256-SHA384, ECDHE-RSA-AES128-SHA, and ECDHE-RSA-AES256-SHA'."\n" + ."\n" + .'* **tls_cipher_policy\\_1\\_2\\_strict_with\\_1\\_3**'."\n" + ."\n" + .' Supported TLS versions: TLS 1.2 and TLS 1.3'."\n" + ."\n" + .' Supported cipher suites: TLS_AES\\_128\\_GCM_SHA256, TLS_AES\\_256\\_GCM_SHA384, TLS_CHACHA20\\_POLY1305\\_SHA256, TLS_AES\\_128\\_CCM_SHA256, TLS_AES\\_128\\_CCM\\_8\\_SHA256, ECDHE-ECDSA-AES128-GCM-SHA256, ECDHE-ECDSA-AES256-GCM-SHA384, ECDHE-ECDSA-AES128-SHA256, ECDHE-ECDSA-AES256-SHA384, ECDHE-RSA-AES128-GCM-SHA256, ECDHE-RSA-AES256-GCM-SHA384, ECDHE-RSA-AES128-SHA256, ECDHE-RSA-AES256-SHA384, ECDHE-ECDSA-AES128-SHA, ECDHE-ECDSA-AES256-SHA, ECDHE-RSA-AES128-SHA, and ECDHE-RSA-AES256-SHA'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'tls_cipher_policy_1_1', + ], + ], + [ + 'name' => 'XForwardedFor_SLBPORT', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to use the `XForwardedFor_SLBPORT` header to retrieve the listener port of the CLB instance. Valid values:'."\n" + ."\n" + .'* **on**'."\n" + .'* **off**'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'off', + ], + ], + [ + 'name' => 'XForwardedFor_ClientSrcPort', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to use the `XForwardedFor_ClientSrcPort` header to retrieve the client port. Valid values:'."\n" + ."\n" + .'* **on**'."\n" + .'* **off**'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'off', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'ParamDuplicateError', + 'errorMessage' => 'The specified parameter value of XForwardedFor_ClientCertSubjectDNAlias is duplicate. Please change to a different one.', + ], + [ + 'errorCode' => 'IpVersionConflict', + 'errorMessage' => 'The ip version of this LoadBalancer and the Acl is conflict.', + ], + [ + 'errorCode' => 'InvalidParameter.IdleTimeout', + 'errorMessage' => 'The specified IdleTimeout exceeds the limit.', + ], + [ + 'errorCode' => 'InvalidParameter.RequestTimeout', + 'errorMessage' => 'The specified RequestTimeout exceeds the limit.', + ], + [ + 'errorCode' => 'ListenerForwardNotSupport', + 'errorMessage' => 'X-Forward-For is not supported to a ipv6 instance.', + ], + [ + 'errorCode' => 'InvalidParameter.RegionNotSupport', + 'errorMessage' => 'The region does not support the parameter: %s.', + ], + [ + 'errorCode' => 'InvalidParameter.SpecNotSupport', + 'errorMessage' => 'The loadBalancer of shared spec does not support the parameter: %s.', + ], + [ + 'errorCode' => 'ListenerProcessing', + 'errorMessage' => 'A previous configuration of the listener is pending,please try again later.', + ], + [ + 'errorCode' => 'Certkey.Forbidden', + 'errorMessage' => 'The specified certkey is not owned by the current user.', + ], + [ + 'errorCode' => 'InvalidParameter.ListenerPortConflict', + 'errorMessage' => 'There is conflict listener port exists.', + ], + [ + 'errorCode' => 'ResourceNotAvailible.HttpsListener', + 'errorMessage' => 'The specified Zone did not have enough resource.', + ], + [ + 'errorCode' => 'AclNotExist', + 'errorMessage' => 'Acl does not exist.', + ], + [ + 'errorCode' => 'OperationUnsupported.CreateLoadBalancerLayer7Listener', + 'errorMessage' => 'The slb instance does not support create HTTP or HTTPS listener.', + ], + [ + 'errorCode' => 'InvalidParameter.VServerGroupId', + 'errorMessage' => 'The MasterSlaveServerGroup can not be attached to HTTP or HTTPS listener.', + ], + [ + 'errorCode' => 'MissingParam.HealthCheckDomain', + 'errorMessage' => 'The HealthCheckDomain is required when HealthCheckHttpVersion is http1.1.', + ], + [ + 'errorCode' => 'InvalidParameter.HealthCheckHttpVersion', + 'errorMessage' => 'The param HealthCheckHttpVersion is invalid.', + ], + [ + 'errorCode' => 'Duplicated.AclEntry', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'CertificateNotExist', + 'errorMessage' => 'The specified CertificateId does not exist.', + ], + [ + 'errorCode' => 'OperationFailed.InsufficientResources', + 'errorMessage' => 'The loadbalancer does not support this operation because of insufficient resources.', + ], + [ + 'errorCode' => 'InvalidTLSPolicyId.NotExist', + 'errorMessage' => 'The specified TLS cipher policy does not exist.', + ], + [ + 'errorCode' => 'TLSPolicyConfiguring', + 'errorMessage' => 'The specified TLS cipher policy is configuring.', + ], + [ + 'errorCode' => 'TLSCipherPolicyVipRelationOverLimit', + 'errorMessage' => 'The number of listeners associated with a policy has exceeded.', + ], + [ + 'errorCode' => 'CertificateTypeMismatched', + 'errorMessage' => 'The certificate type does not match.', + ], + [ + 'errorCode' => 'MissingParam.ServerCertificates', + 'errorMessage' => 'Server certificates are required.', + ], + [ + 'errorCode' => 'TooManyCertificates', + 'errorMessage' => 'The number of certificates must not be greater than one.', + ], + [ + 'errorCode' => 'CnCertificateNotSupport', + 'errorMessage' => 'The cn certificate is not support.', + ], + [ + 'errorCode' => 'InvalidParam.CertificateBindingType', + 'errorMessage' => 'The param CertificateBindingType is invalid.', + ], + [ + 'errorCode' => 'InvalidParamSize.ServerCertificates', + 'errorMessage' => 'The size of param ServerCertificates is invalid.', + ], + [ + 'errorCode' => 'TooManyCertificates.ServerCertificates', + 'errorMessage' => 'The number of certificates must not be greater than one.', + ], + [ + 'errorCode' => 'SPEC_NOT_SUPPORT_PARAMETER', + 'errorMessage' => 'Share spec does not support the feature.', + ], + [ + 'errorCode' => 'LbNotSupportTcpssl', + 'errorMessage' => 'You cannot create a TCP SSL type listener for the specified load balancer.', + ], + [ + 'errorCode' => 'LbSupportTcpsslOnly', + 'errorMessage' => 'The specified load balancer supports TCP SSL type listener only.', + ], + [ + 'errorCode' => 'ListenerNotSupportRule', + 'errorMessage' => 'You cannot create a rule for the specified listener.', + ], + [ + 'errorCode' => 'Mismatch.SlbSpecTypeAndListenerProtocol', + 'errorMessage' => 'The SlbSpecType and ListenerProtocol are mismatched.', + ], + [ + 'errorCode' => 'InvalidParam.TagValue ', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'InvalidParam.TagKey', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'SizeLimitExceeded.Tag', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'MissingParam.TagKey', + 'errorMessage' => 'The param MissingParam.TagKey is missing.', + ], + [ + 'errorCode' => 'AclListenerOverLimit', + 'errorMessage' => 'This acl has reached the limit of binding to listeners.', + ], + [ + 'errorCode' => 'QuotaLimitExceeds.AclAttachedToListener', + 'errorMessage' => 'The number of Acl bound listeners has reached the quota limit', + ], + [ + 'errorCode' => 'QuotaLimitExceeds.TotalAclEntry', + 'errorMessage' => 'The number of Acl entries has reached the quota limit.', + ], + [ + 'errorCode' => 'QuotaLimitExceeds.AclListenerOverLimit', + 'errorMessage' => 'This acl has reached the limit of binding to listeners.', + ], + ], + 404 => [ + [ + 'errorCode' => 'ResourceNotFound.Certificate', + 'errorMessage' => 'The specified resource is not found.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\"\\n}","errorExample":""},{"type":"xml","example":"\\n CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\n","errorExample":""}]', + 'title' => 'CreateLoadBalancerHTTPSListener', + 'summary' => 'Creates an HTTPS listener.', + 'description' => 'A newly created listener is in the **stopped** state. After a listener is created, you can call the [StartLoadBalancerListener](~~27597~~) operation to start the listener. After the listener is started, the listener can forward traffic to backend servers.'."\n" + ."\n" + .'## Prerequisites'."\n" + ."\n" + .'A Classic Load Balancer (CLB) instance is created. For more information, see [CreateLoadBalancer](https://www.alibabacloud.com/help/en/server-load-balancer/latest/createloadbalancer-2).', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'SetLoadBalancerHTTPSListenerAttribute' => [ + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'update', + 'abilityTreeCode' => '88669', + 'abilityTreeNodes' => [ + 'FEATUREslbFSBXXR', + ], + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the region where the CLB instance is deployed.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~25609~~) operation to query the most recent region list.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'LoadBalancerId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the CLB instance.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'lb-sjhfdji****', + ], + ], + [ + 'name' => 'ListenerPort', + 'in' => 'query', + 'schema' => [ + 'description' => 'The frontend port that is used by the CLB instance.'."\n" + ."\n" + .'Valid values: **1** to **65535**.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => true, + 'docRequired' => true, + 'maximum' => '65535', + 'minimum' => '1', + 'example' => '80', + ], + ], + [ + 'name' => 'Bandwidth', + 'in' => 'query', + 'schema' => [ + 'description' => 'The maximum bandwidth of the listener. Unit: Mbit/s.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'* **-1**: If you set the value to -1, the bandwidth of the listener is unlimited.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'maximum' => '5120', + 'minimum' => '-1', + 'example' => '-1', + ], + ], + [ + 'name' => 'XForwardedFor', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to use the `X-Forwarded-For` header to retrieve client IP addresses. Valid values:'."\n" + ."\n" + .'* **on**: yes'."\n" + .'* **off**: no'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'on', + ], + ], + [ + 'name' => 'Scheduler', + 'in' => 'query', + 'schema' => [ + 'description' => 'The scheduling algorithm. Valid values:'."\n" + ."\n" + .'* **wrr**: Backend servers that have higher weights receive more requests than backend servers that have lower weights.'."\n" + .'* **rr**: Requests are distributed to backend servers in sequence.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'wrr', + ], + ], + [ + 'name' => 'StickySession', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to enable session persistence. Valid values:'."\n" + ."\n" + .'* **on**: yes'."\n" + .'* **off**: no'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'on', + ], + ], + [ + 'name' => 'StickySessionType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The method that is used to handle a cookie. Valid values:'."\n" + ."\n" + .'* **insert**: inserts a cookie.'."\n" + ."\n" + .' CLB inserts a cookie (SERVERID) into the first HTTP or HTTPS response that is sent to a client. The next request from the client will contain this cookie, and the listener will distribute this request to the recorded backend server.'."\n" + ."\n" + .'* **server**: rewrites a cookie.'."\n" + ."\n" + .' When CLB detects a user-defined cookie, it overwrites the original cookie with the user-defined cookie. The next request from the client will contain the user-defined cookie, and the listener will distribute this request to the recorded backend server.'."\n" + ."\n" + .'> This parameter is required if the **StickySession** parameter is set to **on**.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'insert', + ], + ], + [ + 'name' => 'CookieTimeout', + 'in' => 'query', + 'schema' => [ + 'description' => 'The timeout period of the cookie. Unit: seconds.'."\n" + ."\n" + .'Valid values: **1** to **86400**.'."\n" + ."\n" + .'> This parameter is required if the **StickySession** parameter is set to **on** and the **StickySessionType** parameter is set to **insert**.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'maximum' => '86400', + 'minimum' => '1', + 'example' => '500', + ], + ], + [ + 'name' => 'Cookie', + 'in' => 'query', + 'schema' => [ + 'description' => 'The cookie that you want to configure for the server.'."\n" + ."\n" + .'The cookie must be 1 to 200 characters in length, and can contain only ASCII letters and digits. It cannot contain commas (,), semicolons (;), or space characters. It cannot start with a dollar sign ($).'."\n" + ."\n" + .'> This parameter is required when you set the **StickySession** parameter to **on** and the **StickySessionType** parameter to **server**.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'testCookie', + ], + ], + [ + 'name' => 'HealthCheck', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to enable health checks. Valid values:'."\n" + ."\n" + .'* **on**: yes'."\n" + .'* **off**: no'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'on', + ], + ], + [ + 'name' => 'HealthCheckMethod', + 'in' => 'query', + 'schema' => [ + 'description' => 'The HTTP method that is used for health checks. Valid values: **head** and **get**.'."\n" + ."\n" + .'> This parameter takes effect only when the **HealthCheck** parameter is set to **on**.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'get', + ], + ], + [ + 'name' => 'HealthCheckDomain', + 'in' => 'query', + 'schema' => [ + 'description' => 'The domain name that is used for health checks. Valid values:'."\n" + ."\n" + .'* **$\\_ip**: the private IP address of a backend server. If you do not set this parameter or set the parameter to $\\_ip, the CLB instance uses the private IP address of each backend server as the domain name for health checks.'."\n" + .'* **domain**: The domain name must be 1 to 80 characters in length, and can contain letters, digits, periods (.),and hyphens (-).'."\n" + ."\n" + .'> This parameter takes effect only when the **HealthCheck** parameter is set to **on**.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '172.XX.XX.16', + ], + ], + [ + 'name' => 'HealthCheckURI', + 'in' => 'query', + 'schema' => [ + 'description' => 'The URL that is used for health checks.'."\n" + ."\n" + .'The URL must be 1 to 80 characters in length and can contain letters, digits, and the following characters: - / . % ? # &. The URL must not be a single forward slash (/) but it must start with a forward slash (/).'."\n" + ."\n" + .'> This parameter takes effect only when the **HealthCheck** parameter is set to **on**.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '/test/index.html', + ], + ], + [ + 'name' => 'HealthyThreshold', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of health checks that an unhealthy backend server must consecutively pass before it can be declared healthy (from **fail** to **success**).'."\n" + ."\n" + .'Valid values: **2** to **10**.'."\n" + ."\n" + .'> This parameter takes effect only when the **HealthCheck** parameter is set to **on**.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'maximum' => '10', + 'minimum' => '1', + 'example' => '4', + ], + ], + [ + 'name' => 'UnhealthyThreshold', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of health checks that a healthy backend server must consecutively fail before it can be declared unhealthy (from **success** to **fail**).'."\n" + ."\n" + .'Valid values: **2** to **10**.'."\n" + ."\n" + .'> This parameter takes effect only when the **HealthCheck** parameter is set to **on**.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'maximum' => '10', + 'minimum' => '1', + 'example' => '4', + ], + ], + [ + 'name' => 'HealthCheckTimeout', + 'in' => 'query', + 'schema' => [ + 'description' => 'The timeout period of a health check response. If a backend ECS instance does not respond within the specified timeout period, the ECS instance fails the health check. Unit: seconds Valid values: **1** to **300**.'."\n" + ."\n" + .'> This parameter takes effect only if the **HealthCheck** parameter is set to **on**.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'maximum' => '300', + 'minimum' => '1', + 'example' => '3', + ], + ], + [ + 'name' => 'HealthCheckInterval', + 'in' => 'query', + 'schema' => [ + 'description' => 'The interval between two consecutive health checks. Unit: seconds.'."\n" + ."\n" + .'Valid values: **1** to **50**.'."\n" + ."\n" + .'> This parameter takes effect only when the **HealthCheck** parameter is set to **on**.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'maximum' => '50', + 'minimum' => '1', + 'example' => '5', + ], + ], + [ + 'name' => 'HealthCheckConnectPort', + 'in' => 'query', + 'schema' => [ + 'description' => 'The port that is used for health checks.'."\n" + ."\n" + .'Valid values: **1** to **65535**.'."\n" + ."\n" + .'> This parameter takes effect only when the **HealthCheck** parameter is set to **on**.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'maximum' => '65535', + 'minimum' => '-520', + 'example' => '8080', + ], + ], + [ + 'name' => 'HealthCheckHttpCode', + 'in' => 'query', + 'schema' => [ + 'description' => 'The HTTP status code of a successful health check. Separate multiple HTTP status codes with commas (,).'."\n" + ."\n" + .'Valid values: **http\\_2xx**, **http\\_3xx**, **http\\_4xx**, and **http\\_5xx**.'."\n" + ."\n" + .'> This parameter takes effect only when the **HealthCheck** parameter is set to **on**.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'http_2xx,http_3xx', + ], + ], + [ + 'name' => 'ServerCertificateId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the server certificate.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'idkp-123-cn-te****', + ], + ], + [ + 'name' => 'CACertificateId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the CA certificate.'."\n" + ."\n" + .'* If both the CA certificate and the server certificate are uploaded, mutual authentication is used.'."\n" + .'* If you upload only the server certificate, one-way authentication is used.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '139a00604ad-cn-east-****', + ], + ], + [ + 'name' => 'VServerGroup', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to use a vServer group. Valid values:'."\n" + ."\n" + .'* **on**: yes'."\n" + .'* **off**: no'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'on', + ], + ], + [ + 'name' => 'VServerGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the vServer group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rsp-cige6j****', + ], + ], + [ + 'name' => 'XForwardedFor_SLBIP', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to use the `SLB-IP` header to obtain the virtual IP address (VIP) requested by the client. Valid values:'."\n" + ."\n" + .'* **on**: yes'."\n" + .'* **off**: no'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'on', + ], + ], + [ + 'name' => 'XForwardedFor_SLBID', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to use the `SLB-ID` header to retrieve the ID of the CLB instance. Valid values:'."\n" + ."\n" + .'* **on**: yes'."\n" + .'* **off**: no'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'on', + ], + ], + [ + 'name' => 'XForwardedFor_proto', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to use the `X-Forwarded-Proto` header to retrieve the listener protocol. Valid values:'."\n" + ."\n" + .'* **on**: yes'."\n" + .'* **off**: no'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'on', + ], + ], + [ + 'name' => 'Gzip', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to enable `Gzip` compression to compress specific types of files. Valid values:'."\n" + ."\n" + .'* **on**: yes'."\n" + .'* **off**: no'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'on', + ], + ], + [ + 'name' => 'AclId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the network access control list (ACL) that is associated with the listener.'."\n" + ."\n" + .'This parameter is required if **AclStatus** is set to **on**.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'nacl-a2do9e413e0spzasx****', + ], + ], + [ + 'name' => 'AclType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The type of network ACL. Valid values:'."\n" + ."\n" + .'* **white**: a whitelist. Only requests from the IP addresses or CIDR blocks in the network ACL are forwarded. Whitelists apply to scenarios where you want to allow only specific IP addresses to access an application. Your business may be adversely affected if the whitelist is not set properly. After a whitelist is configured, only IP addresses in the whitelist can access the CLB listener.'."\n" + ."\n" + .' If no IP address is added to the whitelist, the CLB listener forwards all requests.'."\n" + ."\n" + .'* **black**: a blacklist. All requests from the IP addresses or CIDR blocks in the network ACL are denied. Blacklists apply to scenarios where you want to deny access from specified IP addresses to an application.'."\n" + ."\n" + .' If no IP address is added to the blacklist, the listener forwards all requests.'."\n" + ."\n" + .'> This parameter takes effect only when **AclStatus** is set to **on**.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'white', + ], + ], + [ + 'name' => 'AclStatus', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to enable access control. Valid values:'."\n" + ."\n" + .'* **on**: enables access control'."\n" + .'* **off**: disables access control'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'off', + ], + ], + [ + 'name' => 'IdleTimeout', + 'in' => 'query', + 'schema' => [ + 'description' => 'The timeout period of an idle connection. Unit: seconds. Valid values: **1 to 60**. Default value: **15**.'."\n" + ."\n" + .'If no request is received within the specified timeout period, CLB closes the connection. When another request is received, CLB establishes a new connection.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'maximum' => '9999', + 'minimum' => '1', + 'example' => '23', + ], + ], + [ + 'name' => 'RequestTimeout', + 'in' => 'query', + 'schema' => [ + 'description' => 'The timeout period of a request. Unit: seconds. Valid values: **1 to 180**. Default value: **60**.'."\n" + ."\n" + .'If no response is received from the backend server during the request timeout period, CLB sends an HTTP 504 error code to the client.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'maximum' => '9999', + 'minimum' => '1', + 'example' => '223', + ], + ], + [ + 'name' => 'EnableHttp2', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to use `HTTP 2.0`. Valid values:'."\n" + ."\n" + .'* **on**: yes'."\n" + .'* **off**: no'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'off', + ], + ], + [ + 'name' => 'TLSCipherPolicy', + 'in' => 'query', + 'schema' => [ + 'description' => 'The Transport Layer Security (TLS) security policy. Each security policy contains TLS protocol versions and cipher suites available for HTTPS.'."\n" + ."\n" + .'* **tls_cipher_policy\\_1\\_0**:'."\n" + ."\n" + .' Supported TLS versions: TLS 1.0, TLS 1.1, and TLS 1.2'."\n" + ."\n" + .' Supported cipher suites: ECDHE-RSA-AES128-GCM-SHA256, ECDHE-RSA-AES256-GCM-SHA384, ECDHE-RSA-AES128-SHA256, ECDHE-RSA-AES256-SHA384, AES128-GCM-SHA256, AES256-GCM-SHA384, AES128-SHA256, AES256-SHA256, ECDHE-RSA-AES128-SHA, ECDHE-RSA-AES256-SHA, AES128-SHA, AES256-SHA, and DES-CBC3-SHA'."\n" + ."\n" + .'* **tls_cipher_policy\\_1\\_1**:'."\n" + ."\n" + .' Supported TLS versions: TLS 1.1 and TLS 1.2'."\n" + ."\n" + .' Supported cipher suites: ECDHE-RSA-AES128-GCM-SHA256, ECDHE-RSA-AES256-GCM-SHA384, ECDHE-RSA-AES128-SHA256, ECDHE-RSA-AES256-SHA384, AES128-GCM-SHA256, AES256-GCM-SHA384, AES128-SHA256, AES256-SHA256, ECDHE-RSA-AES128-SHA, ECDHE-RSA-AES256-SHA, AES128-SHA, AES256-SHA, and DES-CBC3-SHA'."\n" + ."\n" + .'* **tls_cipher_policy\\_1\\_2**'."\n" + ."\n" + .' Supported TLS version: TLS 1.2'."\n" + ."\n" + .' Supported cipher suites: ECDHE-RSA-AES128-GCM-SHA256, ECDHE-RSA-AES256-GCM-SHA384, ECDHE-RSA-AES128-SHA256, ECDHE-RSA-AES256-SHA384, AES128-GCM-SHA256, AES256-GCM-SHA384, AES128-SHA256, AES256-SHA256, ECDHE-RSA-AES128-SHA, ECDHE-RSA-AES256-SHA, AES128-SHA, AES256-SHA, and DES-CBC3-SHA'."\n" + ."\n" + .'* **tls_cipher_policy\\_1\\_2\\_strict**'."\n" + ."\n" + .' Supported TLS version: TLS 1.2'."\n" + ."\n" + .' Supported cipher suites: ECDHE-RSA-AES128-GCM-SHA256, ECDHE-RSA-AES256-GCM-SHA384, ECDHE-RSA-AES128-SHA256, ECDHE-RSA-AES256-SHA384, ECDHE-RSA-AES128-SHA, and ECDHE-RSA-AES256-SHA'."\n" + ."\n" + .'* **tls_cipher_policy\\_1\\_2\\_strict_with\\_1\\_3**'."\n" + ."\n" + .' Supported TLS versions: TLS 1.2 and TLS 1.3'."\n" + ."\n" + .' Supported cipher suites: TLS_AES\\_128\\_GCM_SHA256, TLS_AES\\_256\\_GCM_SHA384, TLS_CHACHA20\\_POLY1305\\_SHA256, TLS_AES\\_128\\_CCM_SHA256, TLS_AES\\_128\\_CCM\\_8\\_SHA256, ECDHE-ECDSA-AES128-GCM-SHA256, ECDHE-ECDSA-AES256-GCM-SHA384, ECDHE-ECDSA-AES128-SHA256, ECDHE-ECDSA-AES256-SHA384, ECDHE-RSA-AES128-GCM-SHA256, ECDHE-RSA-AES256-GCM-SHA384, ECDHE-RSA-AES128-SHA256, ECDHE-RSA-AES256-SHA384, ECDHE-ECDSA-AES128-SHA, ECDHE-ECDSA-AES256-SHA, ECDHE-RSA-AES128-SHA, and ECDHE-RSA-AES256-SHA'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'tls_cipher_policy_1_2', + ], + ], + [ + 'name' => 'Description', + 'in' => 'query', + 'schema' => [ + 'description' => 'The description of the listener.'."\n" + .'The name must be 1 to 256 characters in length and can contain letters, digits, hyphens (-), forward slashes (/), periods (.), and underscores (_).', + 'type' => 'string', + 'required' => false, + 'example' => 'https_80', + ], + ], + [ + 'name' => 'XForwardedFor_SLBPORT', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to use the `XForwardedFor_SLBPORT` header to retrieve the listener port of the CLB instance. Valid values:'."\n" + ."\n" + .'* **on**'."\n" + .'* **off**'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'off', + ], + ], + [ + 'name' => 'XForwardedFor_ClientSrcPort', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to use the `XForwardedFor_ClientSrcPort` header to retrieve the client port. Valid values:'."\n" + ."\n" + .'* **on**'."\n" + .'* **off**'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'off', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'ParamDuplicateError', + 'errorMessage' => 'The specified parameter value of XForwardedFor_ClientCertSubjectDNAlias is duplicate. Please change to a different one.', + ], + [ + 'errorCode' => 'IpVersionConflict', + 'errorMessage' => 'The ip version of this LoadBalancer and the Acl is conflict.', + ], + [ + 'errorCode' => 'InvalidParameter.IdleTimeout', + 'errorMessage' => 'The specified IdleTimeout exceeds the limit.', + ], + [ + 'errorCode' => 'InvalidParameter.RequestTimeout', + 'errorMessage' => 'The specified RequestTimeout exceeds the limit.', + ], + [ + 'errorCode' => 'ListenerForwardNotSupport', + 'errorMessage' => 'X-Forward-For is not supported to a ipv6 instance.', + ], + [ + 'errorCode' => 'InvalidParameter.RegionNotSupport', + 'errorMessage' => 'The region does not support the parameter: %s.', + ], + [ + 'errorCode' => 'InvalidParameter.SpecNotSupport', + 'errorMessage' => 'The loadBalancer of shared spec does not support the parameter: %s.', + ], + [ + 'errorCode' => 'OperationFailed.ServerGroupInUse', + 'errorMessage' => 'The VServerGroup or MasterSlaveServerGroup can not be close for this listener.', + ], + [ + 'errorCode' => 'InvalidParameter.VServerGroupId', + 'errorMessage' => 'The MasterSlaveServerGroup can not be attached to HTTP or HTTPS listener.', + ], + [ + 'errorCode' => 'MissingParam.HealthCheckDomain', + 'errorMessage' => 'The HealthCheckDomain is required when HealthCheckHttpVersion is http1.1.', + ], + [ + 'errorCode' => 'InvalidParameter.HealthCheckHttpVersion', + 'errorMessage' => 'The param HealthCheckHttpVersion is invalid.', + ], + [ + 'errorCode' => 'Duplicated.AclEntry', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'CertificateNotExist', + 'errorMessage' => 'The specified CertificateId does not exist.', + ], + [ + 'errorCode' => 'InvalidTLSPolicyId.NotExist', + 'errorMessage' => 'The specified TLS cipher policy does not exist.', + ], + [ + 'errorCode' => 'TLSPolicyConfiguring', + 'errorMessage' => 'The specified TLS cipher policy is configuring.', + ], + [ + 'errorCode' => 'TLSCipherPolicyVipRelationOverLimit', + 'errorMessage' => 'The number of listeners associated with a policy has exceeded.', + ], + [ + 'errorCode' => 'TooManyCertificates', + 'errorMessage' => 'The number of certificates must not be greater than one.', + ], + [ + 'errorCode' => 'CertificateTypeMismatched', + 'errorMessage' => 'The certificate type does not match.', + ], + [ + 'errorCode' => 'MissingParam.ServerCertificates', + 'errorMessage' => 'Server certificates are required.', + ], + [ + 'errorCode' => 'CnCertificateNotSupport', + 'errorMessage' => 'The cn certificate is not support.', + ], + [ + 'errorCode' => 'InvalidParam.CertificateBindingType', + 'errorMessage' => 'The param CertificateBindingType is invalid.', + ], + [ + 'errorCode' => 'InvalidParamSize.ServerCertificates', + 'errorMessage' => 'The size of param ServerCertificates is invalid.', + ], + [ + 'errorCode' => 'TooManyCertificates.ServerCertificates', + 'errorMessage' => 'The number of certificates must not be greater than one.', + ], + [ + 'errorCode' => 'AclListenerOverLimit', + 'errorMessage' => 'This acl has reached the limit of binding to listeners.', + ], + [ + 'errorCode' => 'QuotaLimitExceeds.AclAttachedToListener', + 'errorMessage' => 'The number of Acl bound listeners has reached the quota limit', + ], + [ + 'errorCode' => 'QuotaLimitExceeds.TotalAclEntry', + 'errorMessage' => 'The number of Acl entries has reached the quota limit.', + ], + [ + 'errorCode' => 'QuotaLimitExceeds.AclListenerOverLimit', + 'errorMessage' => 'This acl has reached the limit of binding to listeners.', + ], + ], + 404 => [ + [ + 'errorCode' => 'ResourceNotFound.Certificate', + 'errorMessage' => 'The specified resource is not found.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\"\\n}","errorExample":""},{"type":"xml","example":"\\r\\nCEF72CEB-54B6-4AE8-B225-F876FF7BA984\\r\\n","errorExample":""}]', + 'title' => 'SetLoadBalancerHTTPSListenerAttribute', + 'summary' => 'Modifies the configurations of an HTTPS listener.', + 'description' => '* A Classic Load Balancer (CLB) instance is created. For more information, see [CreateLoadBalancer](~~27577~~).'."\n" + .'* An HTTPS listener is created. For more information about how to create an HTTPS listener, see [CreateLoadBalancerHTTPSListener](~~27593~~).', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'DescribeLoadBalancerHTTPSListenerAttribute' => [ + 'summary' => 'Queries the configurations of an HTTPS listener.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'get', + 'abilityTreeCode' => '88578', + 'abilityTreeNodes' => [ + 'FEATUREslb91TBWT', + ], + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the CLB instance.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'LoadBalancerId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The CLB instance ID.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'lb-bp1mxu5r8lau****', + ], + ], + [ + 'name' => 'ListenerPort', + 'in' => 'query', + 'schema' => [ + 'description' => 'The frontend port that is used by the CLB instance.'."\n" + ."\n" + .'Valid values: **1** to **65535**.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => true, + 'docRequired' => true, + 'maximum' => '65535', + 'minimum' => '1', + 'example' => '80', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'AclType' => [ + 'description' => 'The type of the access control list (ACL). Valid values:'."\n" + ."\n" + .'* **white**: a whitelist. Only requests from the IP addresses or CIDR blocks in the ACL are forwarded. Whitelists apply to scenarios where you want to allow only specific IP addresses to access an application. Your service may be adversely affected if the whitelist is not properly configured. If a whitelist is configured, only requests from IP addresses that are added to the whitelist are forwarded by the listener.'."\n" + ."\n" + .'If you enable a whitelist but do not add an IP address to the ACL, the listener forwards all requests.'."\n" + ."\n" + .'* **black**: a blacklist. All requests from the IP addresses or CIDR blocks in the network ACL are rejected. Blacklists apply to scenarios where you want to block access from specified IP addresses to an application.'."\n" + ."\n" + .'If a blacklist is configured for a listener but no IP address is added to the blacklist, the listener forwards all requests.'."\n" + ."\n" + .'> This parameter is required when **AclStatus** is set to **on**.'."\n", + 'type' => 'string', + 'example' => 'white', + ], + 'XForwardedFor_ClientCertClientVerify' => [ + 'description' => 'Indicates whether the `XForwardedFor_ClientCertClientVerify` header is used to retrieve the verification result of the client certificate. Valid values:'."\n" + ."\n" + .'* **on**'."\n" + .'* **off**'."\n", + 'type' => 'string', + 'example' => 'off', + ], + 'CACertificateId' => [ + 'description' => 'The ID of the certification authority (CA) certificate.'."\n", + 'type' => 'string', + 'example' => 'idkp-234-cn-test-0**', + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '365F4154-92F6-4AE4-92F8-7FF3********', + ], + 'HealthCheckConnectPort' => [ + 'description' => 'The port that is used for health checks.'."\n" + ."\n" + .'> This parameter is required when **HealthCheck** is set to **on**.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '8080', + ], + 'BackendServerPort' => [ + 'description' => 'The backend port that is used by the CLB instance.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '8080', + ], + 'CookieTimeout' => [ + 'description' => 'The timeout period of a cookie.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '500', + ], + 'HealthCheckDomain' => [ + 'description' => 'The domain name that you want to use for health checks.'."\n", + 'type' => 'string', + 'example' => 'www.test.com', + ], + 'XForwardedFor' => [ + 'description' => 'Indicates whether the `X-Forwarded-For` header is used to retrieve client IP addresses. Valid values:'."\n" + ."\n" + .'* **on**'."\n" + .'* **off**'."\n", + 'type' => 'string', + 'example' => 'on', + ], + 'XForwardedFor_ClientCertFingerprint' => [ + 'description' => 'Indicates whether the `XForwardedFor_ClientCertFingerprint` header is used to retrieve the fingerprint of the client certificate. Valid values:'."\n" + ."\n" + .'* **on**'."\n" + .'* **off**'."\n", + 'type' => 'string', + 'example' => 'off', + ], + 'IdleTimeout' => [ + 'description' => 'The timeout period of an idle connection. Valid values: **1** to **60**. Default value: **15**. Unit: seconds.'."\n" + ."\n" + .'If no request is received within the specified timeout period, CLB closes the connection. When a request is received, CLB establishes a new connection.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '23', + ], + 'ListenerPort' => [ + 'description' => 'The frontend port that is used by the CLB instance.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '80', + ], + 'HealthCheckURI' => [ + 'description' => 'The URL path that is used for health checks.'."\n", + 'type' => 'string', + 'example' => '/test/index.html', + ], + 'XForwardedFor_SLBPORT' => [ + 'description' => 'Indicates whether the `XForwardedFor_SLBPORT` header is used to retrieve the listening port. Valid values:'."\n" + ."\n" + .'* **on**'."\n" + .'* **off**'."\n", + 'type' => 'string', + 'example' => 'off', + ], + 'StickySessionType' => [ + 'description' => 'The method that is used to handle a cookie.'."\n" + ."\n" + .'Valid values: **insert** and **server**.'."\n" + ."\n" + .'* **insert**: inserts a cookie.'."\n" + ."\n" + .' CLB inserts a cookie (SERVERID) into the first HTTP or HTTPS response packet that is sent to a client. The next request from the client will contain this cookie, and the listener will distribute this request to the recorded backend server.'."\n" + ."\n" + .'* **server**: rewrites a cookie.'."\n" + ."\n" + .' When CLB detects a user-defined cookie, it overwrites the original cookie with the user-defined cookie. The next request from the client carries the user-defined cookie, and the listener will distribute the request to the recorded backend server.'."\n", + 'type' => 'string', + 'example' => 'insert', + ], + 'Scheduler' => [ + 'description' => 'The routing algorithm. Valid values: **wrr** and **rr**.'."\n" + ."\n" + .'* **wrr**: Backend servers that have higher weights receive more requests than backend servers that have lower weights.'."\n" + .'* **rr**: Requests are distributed to backend servers in sequence.'."\n", + 'type' => 'string', + 'example' => 'wrr', + ], + 'XForwardedFor_proto' => [ + 'description' => 'Indicates whether the `X-Forwarded-Proto` header is used to retrieve the listener protocol. Valid values:'."\n" + ."\n" + .'* **on**'."\n" + .'* **off**'."\n", + 'type' => 'string', + 'example' => 'on', + ], + 'HealthCheckMethod' => [ + 'description' => 'The health check method used by HTTP listeners. Valid values: **head** and **get**.'."\n" + ."\n" + .'> This parameter is available only when **HealthCheck** is set to **on**.'."\n", + 'type' => 'string', + 'example' => 'get', + ], + 'TLSCipherPolicy' => [ + 'description' => 'The Transport Layer Security (TLS) security policy for a high-performance CLB instance.'."\n" + ."\n" + .'Each security policy contains TLS protocol versions and cipher suites available for HTTPS. Valid values:'."\n" + ."\n" + .'* **tls_cipher_policy\\_1\\_0**:'."\n" + ."\n" + .' Supported TLS versions: TLS 1.0, TLS 1.1, and TLS 1.2'."\n" + ."\n" + .' Supported cipher suites: ECDHE-RSA-AES128-GCM-SHA256, ECDHE-RSA-AES256-GCM-SHA384, ECDHE-RSA-AES128-SHA256, ECDHE-RSA-AES256-SHA384, AES128-GCM-SHA256, AES256-GCM-SHA384, AES128-SHA256, AES256-SHA256, ECDHE-RSA-AES128-SHA, ECDHE-RSA-AES256-SHA, AES128-SHA, AES256-SHA, and DES-CBC3-SHA'."\n" + ."\n" + .'* **tls_cipher_policy\\_1\\_1**:'."\n" + ."\n" + .' Supported TLS versions: TLS 1.1 and TLS 1.2'."\n" + ."\n" + .' Supported cipher suites: ECDHE-RSA-AES128-GCM-SHA256, ECDHE-RSA-AES256-GCM-SHA384, ECDHE-RSA-AES128-SHA256, ECDHE-RSA-AES256-SHA384, AES128-GCM-SHA256, AES256-GCM-SHA384, AES128-SHA256, AES256-SHA256, ECDHE-RSA-AES128-SHA, ECDHE-RSA-AES256-SHA, AES128-SHA, AES256-SHA, and DES-CBC3-SHA'."\n" + ."\n" + .'* **tls_cipher_policy\\_1\\_2**'."\n" + ."\n" + .' Supported TLS version: TLS 1.2'."\n" + ."\n" + .' Supported cipher suites: ECDHE-RSA-AES128-GCM-SHA256, ECDHE-RSA-AES256-GCM-SHA384, ECDHE-RSA-AES128-SHA256, ECDHE-RSA-AES256-SHA384, AES128-GCM-SHA256, AES256-GCM-SHA384, AES128-SHA256, AES256-SHA256, ECDHE-RSA-AES128-SHA, ECDHE-RSA-AES256-SHA, AES128-SHA, AES256-SHA, and DES-CBC3-SHA'."\n" + ."\n" + .'* **tls_cipher_policy\\_1\\_2\\_strict**'."\n" + ."\n" + .' Supported TLS version: TLS 1.2'."\n" + ."\n" + .' Supported cipher suites: ECDHE-RSA-AES128-GCM-SHA256, ECDHE-RSA-AES256-GCM-SHA384, ECDHE-RSA-AES128-SHA256, ECDHE-RSA-AES256-SHA384, ECDHE-RSA-AES128-SHA, and ECDHE-RSA-AES256-SHA'."\n" + ."\n" + .'* **tls_cipher_policy\\_1\\_2\\_strict_with\\_1\\_3**'."\n" + ."\n" + .' Supported TLS versions: TLS 1.2 and TLS 1.3'."\n" + ."\n" + .' Supported cipher suites: TLS_AES\\_128\\_GCM_SHA256, TLS_AES\\_256\\_GCM_SHA384, TLS_CHACHA20\\_POLY1305\\_SHA256, TLS_AES\\_128\\_CCM_SHA256, TLS_AES\\_128\\_CCM\\_8\\_SHA256, ECDHE-ECDSA-AES128-GCM-SHA256, ECDHE-ECDSA-AES256-GCM-SHA384, ECDHE-ECDSA-AES128-SHA256, ECDHE-ECDSA-AES256-SHA384, ECDHE-RSA-AES128-GCM-SHA256, ECDHE-RSA-AES256-GCM-SHA384, ECDHE-RSA-AES128-SHA256, ECDHE-RSA-AES256-SHA384, ECDHE-ECDSA-AES128-SHA, ECDHE-ECDSA-AES256-SHA, ECDHE-RSA-AES128-SHA, and ECDHE-RSA-AES256-SHA'."\n", + 'type' => 'string', + 'example' => 'tls_cipher_policy_1_0', + ], + 'Status' => [ + 'description' => 'The status of the listener. Valid values:'."\n" + ."\n" + .'* **running**'."\n" + .'* **stopped**'."\n", + 'type' => 'string', + 'example' => 'stopped', + ], + 'VServerGroupId' => [ + 'description' => 'The ID of the associated server group.'."\n", + 'type' => 'string', + 'example' => 'rsp-cige6j5e********', + ], + 'XForwardedFor_ClientSrcPort' => [ + 'description' => 'Indicates whether the `XForwardedFor_ClientSrcPort` header is used to retrieve the client port. Valid values:'."\n" + ."\n" + .'* **on**'."\n" + .'* **off**'."\n", + 'type' => 'string', + 'example' => 'off', + ], + 'Cookie' => [ + 'description' => 'The cookie that is configured on the server.'."\n", + 'type' => 'string', + 'example' => 'testCookie', + ], + 'Gzip' => [ + 'description' => 'Indicates whether `Gzip` compression is enabled. Valid values:'."\n" + ."\n" + .'* **on**'."\n" + .'* **off**'."\n", + 'type' => 'string', + 'example' => 'on', + ], + 'EnableHttp2' => [ + 'description' => 'Indicates whether `HTTP/2` is used. Valid values:'."\n" + ."\n" + .'* **on**'."\n" + .'* **off**'."\n", + 'type' => 'string', + 'example' => 'off', + ], + 'Bandwidth' => [ + 'description' => 'The maximum bandwidth of the listener. Unit: Mbit/s.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '10', + ], + 'Description' => [ + 'description' => 'The name of the listener.'."\n", + 'type' => 'string', + 'example' => 'HTTPS_443', + ], + 'HealthCheckTimeout' => [ + 'description' => 'The maximum timeout period of a health check. Unit: seconds.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '3', + ], + 'AclStatus' => [ + 'description' => 'Indicates whether access control is enabled. Valid values:'."\n" + ."\n" + .'* **on**'."\n" + .'* **off**'."\n", + 'type' => 'string', + 'example' => 'off', + ], + 'UnhealthyThreshold' => [ + 'description' => 'The unhealthy threshold.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '4', + ], + 'XForwardedFor_SLBID' => [ + 'description' => 'Indicates whether the `SLB-ID` header is used to retrieve the ID of the ALB instance. Valid values:'."\n" + ."\n" + .'* **on**'."\n" + .'* **off**'."\n", + 'type' => 'string', + 'example' => 'on', + ], + 'XForwardedFor_ClientCertSubjectDN' => [ + 'description' => 'Indicates whether the `XForwardedFor_ClientCertSubjectDN` header is used to retrieve information about the owner of the client certificate. Valid values:'."\n" + ."\n" + .'* **on**'."\n" + .'* **off**'."\n", + 'type' => 'string', + 'example' => 'off', + ], + 'SecurityStatus' => [ + 'description' => 'Indicates whether the listener is in the Secure state. Valid values:'."\n" + ."\n" + .'* **on**'."\n" + .'* **off**'."\n", + 'type' => 'string', + 'example' => 'on', + ], + 'HealthCheckHttpCode' => [ + 'description' => 'The HTTP status code for a successful health check.'."\n", + 'type' => 'string', + 'example' => 'http_2xx,http_3xx', + ], + 'RequestTimeout' => [ + 'description' => 'The timeout period of a request. Valid values: **1** to **180**. Default value: **60**. Unit: seconds.'."\n" + ."\n" + .'If no response is received from a backend server within the specified timeout period, CLB returns the HTTP 504 status code to the client.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '43', + ], + 'HealthCheckInterval' => [ + 'description' => 'The interval at which health checks are performed. Unit: seconds.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '5', + ], + 'ServerCertificateId' => [ + 'description' => 'The ID of the server certificate.'."\n", + 'type' => 'string', + 'example' => 'idkp-123-cn-test-0**', + ], + 'AclId' => [ + 'description' => 'The ID of the network ACL that is associated with a listener.'."\n" + ."\n" + .'> This parameter is required when **AclStatus** is set to **on**.'."\n", + 'type' => 'string', + 'example' => 'acl-a2do9e413e0spzasx****', + ], + 'XForwardedFor_ClientCertIssuerDN' => [ + 'description' => 'Indicates whether the `XForwardedFor_ClientCertIssuerDN` header is used to retrieve information about the authority that issues the client certificate. Valid values:'."\n" + ."\n" + .'* **on**'."\n" + .'* **off**'."\n", + 'type' => 'string', + 'example' => 'off', + ], + 'HealthyThreshold' => [ + 'description' => 'The healthy threshold.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '4', + ], + 'XForwardedFor_SLBIP' => [ + 'description' => 'Indicates whether the `SLB-IP` header is used to retrieve the virtual IP address requested by the client. Valid values:'."\n" + ."\n" + .'* **on**'."\n" + .'* **off**'."\n", + 'type' => 'string', + 'example' => 'on', + ], + 'StickySession' => [ + 'description' => 'Indicates whether session persistence is enabled. Valid values:'."\n" + ."\n" + .'* **on**'."\n" + .'* **off**'."\n", + 'type' => 'string', + 'example' => 'on', + ], + 'HealthCheck' => [ + 'description' => 'Indicates whether the health check feature is enabled. Valid values:'."\n" + ."\n" + .'* **on**'."\n" + .'* **off**'."\n", + 'type' => 'string', + 'example' => 'on', + ], + 'AclIds' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'AclId' => [ + 'description' => 'The ID of the network access control list (ACL) that is associated with the listener.'."\n", + 'type' => 'array', + ], + ], + ], + 'Rules' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Rule' => [ + 'description' => 'The list of forwarding rules that are associated with the listener.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'VServerGroupId' => [ + 'description' => 'The ID of the server group specified in the forwarding rule.'."\n", + 'type' => 'string', + 'example' => 'rsp-cige6j5e********', + ], + 'Url' => [ + 'description' => 'The request URL.'."\n", + 'type' => 'string', + 'example' => '/example', + ], + 'Domain' => [ + 'description' => 'The domain name.'."\n", + 'type' => 'string', + 'example' => 'www.example.com', + ], + 'RuleName' => [ + 'description' => 'The name of the forwarding rule.'."\n", + 'type' => 'string', + 'example' => 'example', + ], + 'RuleId' => [ + 'description' => 'The ID of the forwarding rule.'."\n", + 'type' => 'string', + 'example' => '23', + ], + ], + ], + ], + ], + ], + 'DomainExtensions' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'DomainExtension' => [ + 'description' => 'A list of additional certificates.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'ServerCertificateId' => [ + 'description' => 'The ID of the certificate used by the domain name.'."\n", + 'type' => 'string', + 'example' => '13344444****', + ], + 'Domain' => [ + 'description' => 'The domain name.'."\n", + 'type' => 'string', + 'example' => 'www.example.com', + ], + 'DomainExtensionId' => [ + 'description' => 'The ID of the additional certificate.'."\n", + 'type' => 'string', + 'example' => '12', + ], + ], + ], + ], + ], + ], + 'LoadBalancerId' => [ + 'description' => 'The CLB instance ID.'."\n", + 'type' => 'string', + 'example' => 'lb-bp1mxu5r8lau****', + ], + 'Tags' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Tag' => [ + 'description' => 'The tags.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'TagKey' => [ + 'description' => 'The key of tag N. Valid values of N: **1** to **20**. The tag value cannot be an empty string. The tag key can be up to 64 characters in length. The key cannot start with `acs:` or `aliyun` or contain `http://` or `https://`.'."\n", + 'type' => 'string', + 'example' => 'TestKey', + ], + 'TagValue' => [ + 'description' => 'The value of tag N. Valid values of N: **1** to **20**. The tag value can be an empty string. The tag value can be up to 128 characters in length, and cannot start with `acs:`. It cannot contain `http://` or `https://`.'."\n", + 'type' => 'string', + 'example' => 'TestValue', + ], + ], + ], + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"AclType\\": \\"white\\",\\n \\"XForwardedFor_ClientCertClientVerify\\": \\"off\\",\\n \\"CACertificateId\\": \\"idkp-234-cn-test-0**\\",\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF3********\\",\\n \\"HealthCheckConnectPort\\": 8080,\\n \\"BackendServerPort\\": 8080,\\n \\"CookieTimeout\\": 500,\\n \\"HealthCheckDomain\\": \\"www.test.com\\",\\n \\"XForwardedFor\\": \\"on\\",\\n \\"XForwardedFor_ClientCertFingerprint\\": \\"off\\",\\n \\"IdleTimeout\\": 23,\\n \\"ListenerPort\\": 80,\\n \\"HealthCheckURI\\": \\"/test/index.html\\",\\n \\"XForwardedFor_SLBPORT\\": \\"off\\",\\n \\"StickySessionType\\": \\"insert\\",\\n \\"Scheduler\\": \\"wrr\\",\\n \\"XForwardedFor_proto\\": \\"on\\",\\n \\"HealthCheckMethod\\": \\"get\\",\\n \\"TLSCipherPolicy\\": \\"tls_cipher_policy_1_0\\",\\n \\"Status\\": \\"stopped\\",\\n \\"VServerGroupId\\": \\"rsp-cige6j5e********\\",\\n \\"XForwardedFor_ClientSrcPort\\": \\"off\\",\\n \\"Cookie\\": \\"testCookie\\",\\n \\"Gzip\\": \\"on\\",\\n \\"EnableHttp2\\": \\"off\\",\\n \\"Bandwidth\\": 10,\\n \\"Description\\": \\"HTTPS_443\\",\\n \\"HealthCheckTimeout\\": 3,\\n \\"AclStatus\\": \\"off\\",\\n \\"UnhealthyThreshold\\": 4,\\n \\"XForwardedFor_SLBID\\": \\"on\\",\\n \\"XForwardedFor_ClientCertSubjectDN\\": \\"off\\",\\n \\"SecurityStatus\\": \\"on\\",\\n \\"HealthCheckHttpCode\\": \\"http_2xx,http_3xx\\",\\n \\"RequestTimeout\\": 43,\\n \\"HealthCheckInterval\\": 5,\\n \\"ServerCertificateId\\": \\"idkp-123-cn-test-0**\\",\\n \\"AclId\\": \\"acl-a2do9e413e0spzasx****\\",\\n \\"XForwardedFor_ClientCertIssuerDN\\": \\"off\\",\\n \\"HealthyThreshold\\": 4,\\n \\"XForwardedFor_SLBIP\\": \\"on\\",\\n \\"StickySession\\": \\"on\\",\\n \\"HealthCheck\\": \\"on\\",\\n \\"AclIds\\": {\\n \\"AclId\\": [\\n \\"\\"\\n ]\\n },\\n \\"Rules\\": {\\n \\"Rule\\": [\\n {\\n \\"VServerGroupId\\": \\"rsp-cige6j5e********\\",\\n \\"Url\\": \\"/example\\",\\n \\"Domain\\": \\"www.example.com\\",\\n \\"RuleName\\": \\"example\\",\\n \\"RuleId\\": \\"23\\"\\n }\\n ]\\n },\\n \\"DomainExtensions\\": {\\n \\"DomainExtension\\": [\\n {\\n \\"ServerCertificateId\\": \\"13344444****\\",\\n \\"Domain\\": \\"www.example.com\\",\\n \\"DomainExtensionId\\": \\"12\\"\\n }\\n ]\\n },\\n \\"LoadBalancerId\\": \\"lb-bp1mxu5r8lau****\\",\\n \\"Tags\\": {\\n \\"Tag\\": [\\n {\\n \\"TagKey\\": \\"TestKey\\",\\n \\"TagValue\\": \\"TestValue\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n white\\n off\\n idkp-234-cn-test-0**\\n 365F4154-92F6-4AE4-92F8-7FF3********\\n 8080\\n 8080\\n 500\\n www.test.com\\n on\\n off\\n 23\\n 80\\n /test/index.html\\n off\\n insert\\n wrr\\n on\\n get\\n tls_cipher_policy_1_0\\n stopped\\n rsp-cige6j5e********\\n off\\n B490B5EBF6F3CD402E515D22BCDA1598\\n on\\n off\\n -1\\n HTTPS_443\\n 3\\n off\\n 4\\n on\\n off\\n on\\n http_2xx,http_3xx\\n 43\\n 5\\n idkp-123-cn-test-0**\\n nacl-a2do9e413e0spzasx****\\n off\\n 4\\n on\\n on\\n on\\n \\n 12\\n /example\\n www.example.com\\n example\\n 23\\n \\n \\n 13344444****\\n www.example.com\\n 12\\n \\n lb-bp1mxu5r8lau****\\n \\n TestKey\\n TestValue\\n \\n","errorExample":""}]', + 'title' => 'DescribeLoadBalancerHTTPSListenerAttribute', + 'description' => '* A Classic Load Balancer (CLB) instance is created. For more information, see [CreateLoadBalancer](~~27577~~).'."\n" + .'* An HTTPS listener is created. For more information about how to create an HTTPS listener, see [CreateLoadBalancerHTTPSListener](~~27593~~).'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'CreateRules' => [ + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'readAndWrite', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'create', + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the region where the Server Load Balancer (SLB) instance is deployed.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~27584~~) operation to query the most recent region list.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'LoadBalancerId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the SLB instance.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'lb-bp1ca0zt07t934w******', + ], + ], + [ + 'name' => 'ListenerPort', + 'in' => 'query', + 'schema' => [ + 'description' => 'The frontend listener port that is used by the SLB instance.'."\n" + ."\n" + .'Valid values: **1 to 65535**.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => true, + 'docRequired' => true, + 'example' => '443', + ], + ], + [ + 'name' => 'ListenerProtocol', + 'in' => 'query', + 'schema' => [ + 'description' => 'The frontend protocol that is used by the SLB instance.'."\n" + ."\n" + .'> This parameter is required if the same port is used by listeners that use different protocols.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'https', + ], + ], + [ + 'name' => 'RuleList', + 'in' => 'query', + 'schema' => [ + 'description' => 'The forwarding rules that you want to create. You can create at most 10 forwarding rules in each call. Each forwarding rule contains the following parameters:'."\n" + ."\n" + .'* **RuleName**: Required. The value must be of the STRING type. The name of the forwarding rule. The name must be 1 to 40 characters in length, and can contain letters, digits, hyphens (-), forward slashes (/), periods (.), and underscores (\\_). Forwarding rule names must be unique within the same listener.'."\n" + .'* **Domain**: Optional. The value must be a string. The domain name that is associated with the forwarding rule. You must specify this parameter or the **URL** parameter.'."\n" + .'* **Url**: Optional. The value must be 1 to 80 characters in length, and can contain letters, digits, hyphens (-), forward slashes (/), periods (.), percent signs (%), question marks (?), number signs (#), and ampersands (&). The value must be a string. The URL cannot be only a forward slash (/). However, it must start with a forward slash (/). You must specify this parameter or the **Domain** parameter.'."\n" + .'* **VServerGroupId**: Required. The value must be a string. The ID of the vServer group to be specified in the forwarding rule.'."\n" + ."\n" + .'> You must specify at least one between the `Domain` and `URL` parameters. You can also specify both. The combination of `Domain` and `Url` must be unique within the same listener.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => '[{"RuleName":"Rule2","Domain":"test.com","VServerGroupId":"rsp-bp114ni******"}]', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '9DEC9C28-AB05-4DDF-9A78-6B08EC9CE18C', + ], + 'Rules' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Rule' => [ + 'description' => 'The forwarding rules.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'RuleName' => [ + 'description' => 'The name of the forwarding rule.'."\n", + 'type' => 'string', + 'example' => 'Rule2', + ], + 'RuleId' => [ + 'description' => 'The forwarding rule ID.'."\n", + 'type' => 'string', + 'example' => 'rule-bp12jzy0*****', + ], + ], + 'enumValueTitles' => [], + ], + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The specified VServerGroupId does not belong to the LoadBalancerId of the rule.', + ], + [ + 'errorCode' => 'InvalidParameterValue.RegionNotSupport', + 'errorMessage' => 'The region does not support the parameter value, %s.', + ], + [ + 'errorCode' => 'TooManyListeners', + 'errorMessage' => 'More than 1 listener is found, please be more specified.', + ], + [ + 'errorCode' => 'DomainExist', + 'errorMessage' => 'rule with same domain and url already exists in specified vip', + ], + [ + 'errorCode' => 'OperationFailed.ListenerStatusNotSupport', + 'errorMessage' => 'The status of the listener does not support this operation. Please try again later.', + ], + [ + 'errorCode' => 'OperationFailed.ActionNotSupport', + 'errorMessage' => 'The loadbalancer does not support such action.', + ], + [ + 'errorCode' => 'MissingParameter.RuleName', + 'errorMessage' => 'The parameter RuleName is required.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"9DEC9C28-AB05-4DDF-9A78-6B08EC9CE18C\\",\\n \\"Rules\\": {\\n \\"Rule\\": [\\n {\\n \\"RuleName\\": \\"Rule2\\",\\n \\"RuleId\\": \\"rule-bp12jzy0*****\\"\\n }\\n ]\\n }\\n}","errorExample":"{\\"Code\\":\\"InvalidParameter\\",\\"Message\\":\\"The specified parameter is not valid.\\",\\"HostId\\":\\"slb-pop.aliyuncs.com\\",\\"RequestId\\":\\"0669D684-69D8-408E-A4FA-B9011E0F4E66\\"}"},{"type":"xml","example":"\\n\\n\\tD63E42FB-F963-4EE5-9B32-05602BF351F3\\n\\t\\n\\t\\t\\n\\t\\t\\trule-bp12jzy******\\n\\t\\t\\tRule3\\n\\t\\t\\n\\t\\n","errorExample":""}]', + 'title' => 'CreateRules', + 'summary' => 'Creates forwarding rules for an HTTP or HTTPS listener.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'SetRule' => [ + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'update', + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the region where the Classic Load Balancer (CLB) instance is deployed.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~27584~~) operation to query the most recent region list.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'RuleId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the forwarding rule.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'rule-3ejhkt****', + ], + ], + [ + 'name' => 'VServerGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the vServer group that is associated with the forwarding rule.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rsp-cige6****', + ], + ], + [ + 'name' => 'RuleName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the forwarding rule. The name must be 1 to 40 characters in length, and can contain letters, digits, hyphens (-), forward slashes (/), periods (.), and underscores (\\_).'."\n" + ."\n" + .'> On the same listener, the forwarding rule names must be unique.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'doctest', + ], + ], + [ + 'name' => 'ListenerSync', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to use the scheduling algorithm, session persistence, and health check configurations of the listener. Valid values:'."\n" + ."\n" + .'* **on**: uses the configurations of the listener.'."\n" + .'* **off**: does not use the configurations of the listener. You can customize the health check and session persistence configurations for the forwarding rule.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'off', + ], + ], + [ + 'name' => 'Scheduler', + 'in' => 'query', + 'schema' => [ + 'description' => 'The scheduling algorithm. Valid values:'."\n" + ."\n" + .'* **wrr**: Backend servers with higher weights receive more requests than those with lower weights.'."\n" + .'* **rr**: Requests are distributed to backend servers in sequence.'."\n" + ."\n" + .'> This parameter is required and takes effect if the **ListenerSync** parameter is set to **off**.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'wrr', + ], + ], + [ + 'name' => 'StickySession', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to enable session persistence. Valid values:'."\n" + ."\n" + .'* **on**: yes'."\n" + .'* **off**: no'."\n" + ."\n" + .'This parameter is required and takes effect if the **ListenerSync** parameter is set to **off**.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'off', + ], + ], + [ + 'name' => 'StickySessionType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The method that is used to handle a cookie. Valid values:'."\n" + ."\n" + .'* **insert**: inserts a cookie.'."\n" + ."\n" + .' CLB inserts the backend server ID as a cookie into the first HTTP or HTTPS response that is sent to a client. The next request from the client will contain this cookie, and the listener will distribute this request to the recorded backend server.'."\n" + ."\n" + .'* **server**: rewrites a cookie.'."\n" + ."\n" + .' When CLB detects a user-defined cookie, it overwrites the original cookie with the user-defined cookie. The next request from the client will contain the user-defined cookie, and the listener will distribute this request to the recorded backend server.'."\n" + ."\n" + .'> This parameter is required and takes effect if the **StickySession** parameter is set to **on**.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'insert', + ], + ], + [ + 'name' => 'CookieTimeout', + 'in' => 'query', + 'schema' => [ + 'description' => 'The timeout period of a cookie. Unit: seconds. Valid values: **1** to **86400**.'."\n" + ."\n" + .'> This parameter is required and takes effect if **StickySession** is set to **on** and **StickySessionType** is set to **insert**.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'maximum' => '86400', + 'minimum' => '1', + 'example' => '123', + ], + ], + [ + 'name' => 'Cookie', + 'in' => 'query', + 'schema' => [ + 'description' => 'The cookie that is configured on the server.'."\n" + ."\n" + .'The cookie must be 1 to 200 characters in length and can contain only ASCII characters and digits. It cannot contain commas (,), semicolons (;), or space characters. It cannot start with a dollar sign ($).'."\n" + ."\n" + .'> This parameter is required and takes effect if **StickySession** is set to **on** and **StickySessionType** is set to **server**.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '23ffsa', + ], + ], + [ + 'name' => 'HealthCheck', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to enable the health check feature. Valid values:'."\n" + ."\n" + .'* **on**: yes'."\n" + .'* **off**: no'."\n" + ."\n" + .'> This parameter is required and takes effect if the **ListenerSync** parameter is set to **off**.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'off', + ], + ], + [ + 'name' => 'HealthCheckDomain', + 'in' => 'query', + 'schema' => [ + 'description' => 'The domain name that is used for health checks. Valid values:'."\n" + ."\n" + .'* **$\\_ip**: the private IP address of a backend server. If you do not set this parameter or set the parameter to $\\_ip, the SLB instance uses the private IP address of each backend server for health checks.'."\n" + .'* **domain**: The domain name must be 1 to 80 characters in length, and can contain letters, digits, periods (.), and hyphens (-).'."\n" + ."\n" + .'> This parameter takes effect if the **HealthCheck** parameter is set to **on**.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '$_ip', + ], + ], + [ + 'name' => 'HealthCheckURI', + 'in' => 'query', + 'schema' => [ + 'description' => 'The URI that is used for health checks.'."\n" + ."\n" + .'> This parameter is required and takes effect if the **HealthCheck** parameter is set to **on**.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '/example', + ], + ], + [ + 'name' => 'HealthyThreshold', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of times that an unhealthy backend server must consecutively pass health checks before it is declared healthy. In this case, the health status is changed from **fail** to **success**.'."\n" + ."\n" + .'Valid values: **2** to **10**.'."\n" + ."\n" + .'> This parameter is required and takes effect if the **HealthCheck** parameter is set to **on**.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'maximum' => '10', + 'minimum' => '1', + 'example' => '4', + ], + ], + [ + 'name' => 'UnhealthyThreshold', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of times that a healthy backend server must consecutively fail health checks before it is declared unhealthy. In this case, the health status is changed from **success** to **fail**.'."\n" + ."\n" + .'Valid values: **2** to **10**.'."\n" + ."\n" + .'> This parameter is required and takes effect if the **HealthCheck** parameter is set to **on**.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'maximum' => '10', + 'minimum' => '1', + 'example' => '4', + ], + ], + [ + 'name' => 'HealthCheckTimeout', + 'in' => 'query', + 'schema' => [ + 'description' => 'The timeout period of a health check response. If a backend server, such as an Elastic Compute Service (ECS) instance, does not return a health check response within the specified timeout period, the server fails the health check. Unit: seconds. Valid values: **1** to **300**.'."\n" + ."\n" + .'> This parameter is required and takes effect if the **HealthCheck** parameter is set to **on**.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'maximum' => '300', + 'minimum' => '1', + 'example' => '20', + ], + ], + [ + 'name' => 'HealthCheckInterval', + 'in' => 'query', + 'schema' => [ + 'description' => 'The interval between two consecutive health checks. Unit: seconds. Valid values: **1** to **50**.'."\n" + ."\n" + .'> This parameter is required and takes effect if the **HealthCheck** parameter is set to **on**.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'maximum' => '50', + 'minimum' => '1', + 'example' => '20', + ], + ], + [ + 'name' => 'HealthCheckConnectPort', + 'in' => 'query', + 'schema' => [ + 'description' => 'The port that is used for health checks. Valid values: **1** to **65535**.'."\n" + ."\n" + .'> This parameter takes effect when the **HealthCheck** parameter is set to **on**.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'maximum' => '65535', + 'minimum' => '1', + 'example' => '80', + ], + ], + [ + 'name' => 'HealthCheckHttpCode', + 'in' => 'query', + 'schema' => [ + 'description' => 'The HTTP status code for a successful health check. Multiple HTTP status codes are separated by commas (,).'."\n" + ."\n" + .'Valid values: **http\\_2xx**, **http\\_3xx**, **http\\_4xx**, and **http\\_5xx**.'."\n" + ."\n" + .'> This parameter is required and takes effect if the **HealthCheck** parameter is set to **on**.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'http_2xx', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => '9DEC9C28-AB05-4DDF-9A78-6B08EC9CE18C', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The specified VServerGroupId does not belong to the LoadBalancerId of the rule.', + ], + [ + 'errorCode' => 'InvalidParameter.RegionNotSupport', + 'errorMessage' => 'The region does not support the parameter: %s.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"9DEC9C28-AB05-4DDF-9A78-6B08EC9CE18C\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 9DEC9C28-AB05-4DDF-9A78-6B08EC9CE18C\\n","errorExample":""}]', + 'title' => 'SetRule', + 'summary' => 'Modifies a forwarding rule that is associated with a vServer group.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'DeleteRules' => [ + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'delete', + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the region where the Server Load Balancer (SLB) instance is deployed.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~27584~~) operation to query region IDs.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'RuleIds', + 'in' => 'query', + 'schema' => [ + 'description' => 'The list of forwarding rules that you want to delete.'."\n" + ."\n" + .'> The RuleIds parameter is required. You can specify up to 10 forwarding rules in each request.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => '["rule-bp1z9ce******","rule-bp1tuc******4"]', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => '9DEC9C28-AB05-4DDF-9A78-6B08EC9CE18C', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'Operation.NotAllowed', + 'errorMessage' => 'The specified rules must be in the same listener.', + ], + [ + 'errorCode' => 'OperationFailed.ListenerStatusNotSupport', + 'errorMessage' => 'The status of the listener does not support this operation. Please try again later.', + ], + [ + 'errorCode' => 'OperationFailed.ListenerConflict', + 'errorMessage' => 'The rule does not support this operation because of same port listener.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"9DEC9C28-AB05-4DDF-9A78-6B08EC9CE18C\\"\\n}","errorExample":"{\\"Code\\":\\"InvalidParameter\\",\\"Message\\":\\"The specified parameter is not valid.\\",\\"HostId\\":\\"slb-pop.aliyuncs.com\\",\\"RequestId\\":\\"0669D684-69D8-408E-A4FA-B9011E0F4E66\\"}"},{"type":"xml","example":"\\n\\n 9DEC9C28-AB05-4DDF-9A78-6B08EC9CE18C\\n","errorExample":""}]', + 'title' => 'DeleteRules', + 'summary' => 'Deletes forwarding rules.', + 'description' => 'You must specify at least one forwarding rule that you want to delete. You can specify at most 10 forwarding rules in each call.'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'DescribeRuleAttribute' => [ + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'get', + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the region where the Server Load Balancer (SLB) instance is deployed.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~27584~~) operation to query the most recent region list.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'RuleId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the forwarding rule.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'rule-bp1efemp9****', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'VServerGroupId' => [ + 'description' => 'The ID of the vServer group that is associated with the forwarding rule.'."\n", + 'type' => 'string', + 'example' => 'rsp-cige6j****', + ], + 'Cookie' => [ + 'description' => 'The cookie to be configured on the backend server.'."\n" + ."\n" + .'The cookie must be 1 to 200 characters in length and can contain ASCII letters and digits. It cannot contain commas (,), semicolons (;), or whitespace characters. It cannot start with a dollar sign ($).'."\n" + ."\n" + .'If you set the **StickySession** parameter to **on** and the **StickySessionType** parameter to **server**, this parameter is required.'."\n", + 'type' => 'string', + 'example' => 'wwe', + ], + 'LoadBalancerId' => [ + 'description' => 'The ID of the SLB instance.'."\n", + 'type' => 'string', + 'example' => 'lb-bp1ca0zt07t934wxe****', + ], + 'RuleId' => [ + 'description' => 'The ID of the forwarding rule.'."\n", + 'type' => 'string', + 'example' => 'rule-hfgnd*****', + ], + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => '9DEC9C28-AB05-4DDF-9A78-6B08EC9CE18C', + ], + 'HealthCheckConnectPort' => [ + 'description' => 'The backend port that is used for health checks.'."\n" + ."\n" + .'Valid values: **1** to **65535**.'."\n" + ."\n" + .'> If you set the **HealthCheck** parameter to **on**, this parameter is required. If this parameter is empty but **HealthCheck** is set to **on**, the listener port is used for health checks.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '23', + ], + 'HealthCheckTimeout' => [ + 'description' => 'The timeout period of a health check response. If a backend ECS instance does not respond within the specified timeout period, the ECS instance fails the health check.'."\n" + ."\n" + .'Valid values: **1** to **300**. Unit: seconds.'."\n" + ."\n" + .'> If you set the **HealthCheck** parameter to **on**, this parameter is required.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '34', + ], + 'CookieTimeout' => [ + 'description' => 'The timeout period of a cookie.'."\n" + ."\n" + .'Valid values: **1 to 86400**. Unit: seconds.'."\n" + ."\n" + .'> If you set the **StickySession** parameter to **on** and the **StickySessionType** parameter to **insert**, this parameter is required.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '12', + ], + 'HealthCheckDomain' => [ + 'description' => 'The domain name that is used for health checks. Valid values:'."\n" + ."\n" + .'* **$\\_ip**: The private IP address of the backend server. If the $\\_ip parameter is set or the HealthCheckDomain parameter is not set, SLB uses the private IP addresses of backend servers as the domain names for health checks.'."\n" + .'* **domain**: The domain name must be 1 to 80 characters in length. It can contain only letters, digits, periods (.),and hyphens (-).'."\n" + ."\n" + .'> If you set the **HealthCheck** parameter to **on**, this parameter is required.'."\n", + 'type' => 'string', + 'example' => 'www.example.com', + ], + 'UnhealthyThreshold' => [ + 'description' => 'The number of consecutive failed health checks that must occur before a healthy backend server is declared unhealthy. In this case, the health check state is changed from **success** to **fail**.'."\n" + ."\n" + .'Valid values: **2** to **10**.'."\n" + ."\n" + .'> If you set the **HealthCheck** parameter to **on**, this parameter is required.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '3', + ], + 'HealthCheckHttpCode' => [ + 'description' => 'The HTTP status code that indicates a successful health check. Separate multiple HTTP status codes with commas (,). Default value: **http\\_2xx**.'."\n" + ."\n" + .'Valid values: **http\\_2xx**, **http\\_3xx**, **http\\_4xx**, and **http\\_5xx**.'."\n" + ."\n" + .'> If you set the **HealthCheck** parameter to **on**, this parameter is required.'."\n", + 'type' => 'string', + 'example' => 'http_3xx ', + ], + 'Domain' => [ + 'description' => 'The domain name that is configured in the forwarding rule.'."\n", + 'type' => 'string', + 'example' => 'www.example.com', + ], + 'ListenerPort' => [ + 'description' => 'The listener port that is used by the SLB instance.'."\n", + 'type' => 'string', + 'example' => '90', + ], + 'Url' => [ + 'description' => 'The URL that is configured in the forwarding rule.'."\n", + 'type' => 'string', + 'example' => '/cache', + ], + 'HealthCheckInterval' => [ + 'description' => 'The time interval between two consecutive health checks.'."\n" + ."\n" + .'Valid values: **1** to **50**. Unit: seconds.'."\n" + ."\n" + .'> If you set the **HealthCheck** parameter to **on**, this parameter is required.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '34', + ], + 'HealthCheckURI' => [ + 'description' => 'The URI that is used for health checks.'."\n" + ."\n" + .'> If you set the **HealthCheck** parameter to **on**, this parameter is required.'."\n", + 'type' => 'string', + 'example' => '/rest', + ], + 'RuleName' => [ + 'description' => 'The name of the forwarding rule.'."\n", + 'type' => 'string', + 'example' => 'Rule1', + ], + 'StickySessionType' => [ + 'description' => 'The method that is used to handle a cookie. Valid values:'."\n" + ."\n" + .'* **insert**: inserts a cookie into the response. SLB inserts a cookie (SERVERID) into the first HTTP or HTTPS response packet that is sent to a client. The next request from the client will contain this cookie, and the listener will distribute this request to the recorded backend server.'."\n" + .'* **server**: rewrites a cookie. When SLB detects a user-defined cookie, SLB overwrites the original cookie with the user-defined cookie. The next request from the client contains the user-defined cookie, and the listener distributes the request to the recorded backend server.'."\n" + ."\n" + .'> If you set the **StickySession** parameter to **on**, this parameter is required.'."\n", + 'type' => 'string', + 'example' => 'insert', + ], + 'Scheduler' => [ + 'description' => 'The scheduling algorithm. Valid values:'."\n" + ."\n" + .'* **wrr** (default): Backend servers that have higher weights receive more requests than backend servers that have lower weights.'."\n" + .'* **rr**: Requests are distributed to backend servers in sequence.'."\n" + ."\n" + .'> If you set the **ListenerSync** parameter to **off**, this parameter is required. If you set the parameter to **on**, the configuration of the listener is used.'."\n", + 'type' => 'string', + 'example' => 'wrr', + ], + 'ListenerSync' => [ + 'description' => 'Indicates whether the forwarding rule uses the scheduling algorithm, session persistence, and health check configurations of the listener.'."\n" + ."\n" + .'Valid values: **on** and **off**.'."\n" + ."\n" + .'* **off**: does not use the configurations of the listener. You can customize health check and session persistence configurations for the forwarding rule.'."\n" + .'* **on**: uses the configurations of the listener.'."\n", + 'type' => 'string', + 'example' => 'off', + ], + 'HealthyThreshold' => [ + 'description' => 'The number of consecutive successful health checks that must occur before an unhealthy backend server is declared healthy. In this case, the health check state is changed from **fail** to **success**.'."\n" + ."\n" + .'Valid values: **2** to **10**.'."\n" + ."\n" + .'> If you set the **HealthCheck** parameter to **on**, this parameter is required.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '2', + ], + 'StickySession' => [ + 'description' => 'Indicates whether session persistence is enabled.'."\n" + ."\n" + .'Valid values: **on** and **off**.'."\n" + ."\n" + .'> If you set the **ListenerSync** parameter to **off**, this parameter is required. If you set the parameter to **on**, the configuration of the listener is used.'."\n", + 'type' => 'string', + 'example' => 'off', + ], + 'HealthCheck' => [ + 'description' => 'Specifies whether to enable health checks.'."\n" + ."\n" + .'Valid values: **on** and **off**.'."\n" + ."\n" + .'> If you set the **ListenerSync** parameter to **off**, this parameter is required. If you set the parameter to **on**, the configuration of the listener is used.'."\n", + 'type' => 'string', + 'example' => 'off', + ], + ], + 'description' => '', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"VServerGroupId\\": \\"rsp-cige6j****\\",\\n \\"Cookie\\": \\"wwe\\",\\n \\"LoadBalancerId\\": \\"lb-bp1ca0zt07t934wxe****\\",\\n \\"RuleId\\": \\"rule-hfgnd*****\\",\\n \\"RequestId\\": \\"9DEC9C28-AB05-4DDF-9A78-6B08EC9CE18C\\",\\n \\"HealthCheckConnectPort\\": 23,\\n \\"HealthCheckTimeout\\": 34,\\n \\"CookieTimeout\\": 12,\\n \\"HealthCheckDomain\\": \\"www.example.com\\",\\n \\"UnhealthyThreshold\\": 3,\\n \\"HealthCheckHttpCode\\": \\"http_3xx \\",\\n \\"Domain\\": \\"www.example.com\\",\\n \\"ListenerPort\\": \\"90\\",\\n \\"Url\\": \\"/cache\\",\\n \\"HealthCheckInterval\\": 34,\\n \\"HealthCheckURI\\": \\"/rest\\",\\n \\"RuleName\\": \\"Rule1\\",\\n \\"StickySessionType\\": \\"insert\\",\\n \\"Scheduler\\": \\"wrr\\",\\n \\"ListenerSync\\": \\"off\\",\\n \\"HealthyThreshold\\": 2,\\n \\"StickySession\\": \\"off\\",\\n \\"HealthCheck\\": \\"off\\"\\n}","errorExample":""},{"type":"xml","example":"\\n rsp-cige6j****\\n wwe\\n lb-bp1ca0zt07t934wxe****\\n rule-hfgnd*****\\n 9DEC9C28-AB05-4DDF-9A78-6B08EC9CE18C\\n 23\\n 34\\n 12\\n www.example.com\\n 3\\n http_3xx \\n www.example.com\\n 90\\n /cache\\n 34\\n 10.21.22.1\\n Rule1\\n insert\\n wrr\\n off\\n 2\\n off\\n off\\n","errorExample":""}]', + 'title' => 'DescribeRuleAttribute', + 'summary' => 'Queries the configurations of a specified forwarding rule.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'DescribeRules' => [ + 'summary' => 'Queries the forwarding rules that are configured for a specified listener.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'get', + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the region where the SLB instance is deployed.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~27584~~) operation to query the most recent region list.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'LoadBalancerId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the SLB instance.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'lb-bp1ca0zt07t934****', + ], + ], + [ + 'name' => 'ListenerProtocol', + 'in' => 'query', + 'schema' => [ + 'description' => 'The frontend listener protocol that is used by the SLB instance.'."\n" + ."\n" + .'> This parameter is required when listeners that use different protocols listen on the same port.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'https', + ], + ], + [ + 'name' => 'ListenerPort', + 'in' => 'query', + 'schema' => [ + 'description' => 'The frontend listener port that is used by the Server Load Balancer (SLB) instance.'."\n" + ."\n" + .'Valid values: **1 to 65535**.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => true, + 'docRequired' => true, + 'example' => '90', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => '9DEC9C28-AB05-4DDF-9A78-6B08EC9CE18C', + ], + 'Rules' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Rule' => [ + 'description' => 'The forwarding rules.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'HealthCheckHttpCode' => [ + 'description' => 'The HTTP status code that indicates a successful health check. Multiple HTTP status codes are separated by commas (,). Default value: **http\\_2xx**.'."\n" + ."\n" + .'Valid values: **http\\_2xx**, **http\\_3xx**, **http\\_4xx**, and **http\\_5xx**.'."\n" + ."\n" + .'> If you set the **HealthCheck** parameter to **on**, this parameter is required.'."\n", + 'type' => 'string', + 'example' => 'http_3xx', + ], + 'VServerGroupId' => [ + 'description' => 'The ID of the destination vServer group specified in the forwarding rule.'."\n", + 'type' => 'string', + 'example' => 'rsp-6cejjzl****', + ], + 'Domain' => [ + 'description' => 'The requested domain name specified in the forwarding rule.'."\n", + 'type' => 'string', + 'example' => 'test.com', + ], + 'Cookie' => [ + 'description' => 'The cookie that is configured on the backend server.'."\n" + ."\n" + .'The value must be 1 to 200 characters in length, and can contain only ASCII letters and digits. It cannot contain commas (,), semicolons (;), or spaces. It cannot start with a dollar sign ($).'."\n" + ."\n" + .'> If you set the **StickySession** parameter to **on** and the **StickySessionType** parameter to **server**, this parameter is required.'."\n", + 'type' => 'string', + 'example' => '23', + ], + 'HealthCheckInterval' => [ + 'description' => 'The time interval between two consecutive health checks.'."\n" + ."\n" + .'Valid values: **1 to 50**. Unit: seconds.'."\n" + ."\n" + .'> If you set the **HealthCheck** parameter to **on**, this parameter is required.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '5', + ], + 'Url' => [ + 'description' => 'The requested path specified in the forwarding rule.'."\n", + 'type' => 'string', + 'example' => '/cache', + ], + 'HealthCheckURI' => [ + 'description' => 'The URI that is used for health checks.'."\n" + ."\n" + .'> If you set the **HealthCheck** parameter to **on**, this parameter is required.'."\n", + 'type' => 'string', + 'example' => '/example', + ], + 'StickySessionType' => [ + 'description' => 'The method that is used to handle a cookie. Valid values:'."\n" + ."\n" + .'* **insert**: inserts a cookie into the response. SLB inserts a cookie (SERVERID) into the first HTTP or HTTPS response packet that is sent to a client. The next request from the client will contain this cookie, and the listener will distribute this request to the recorded backend server.'."\n" + .'* **server**: rewrites a cookie. When SLB detects a user-defined cookie, SLB overwrites the original cookie with the user-defined cookie. The next request from the client contains the user-defined cookie, and the listener distributes the request to the recorded backend server.'."\n" + ."\n" + .'> If you set the **StickySession** parameter to **on**, this parameter is required.'."\n", + 'type' => 'string', + 'example' => 'insert', + ], + 'RuleName' => [ + 'description' => 'The name of the forwarding rule. The name must be 1 to 80 characters in length, and can contain only letters, digits, hyphens (-), forward slashes (/), periods (.),and underscores (\\_).'."\n" + ."\n" + .'> The name of each forwarding rule must be unique within a listener.'."\n", + 'type' => 'string', + 'example' => 'Rule2', + ], + 'RuleId' => [ + 'description' => 'The ID of the forwarding rule.'."\n", + 'type' => 'string', + 'example' => 'rule-tybqi6****', + ], + 'HealthCheckConnectPort' => [ + 'description' => 'The backend port that is used for health checks.'."\n" + ."\n" + .'Valid values: **1 to 65535**.'."\n" + ."\n" + .'> If you set the **HealthCheck** parameter to **on**, this parameter is required. If this parameter is empty but **HealthCheck** is set to **on**, the listener port is used for health checks.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '45', + ], + 'Scheduler' => [ + 'description' => 'The scheduling algorithm. Valid values:'."\n" + ."\n" + .'* **wrr** (default): Backend servers that have higher weights receive more requests than backend servers that have lower weights.'."\n" + .'* **rr**: Requests are distributed to backend servers in sequence.'."\n" + ."\n" + .'> If you set the **ListenerSync** parameter to **off**, this parameter is required. If you set the parameter to **on**, the configuration of the listener is used.'."\n", + 'type' => 'string', + 'example' => 'wrr', + ], + 'HealthCheckTimeout' => [ + 'description' => 'The timeout period of a health check response. If a backend ECS instance does not respond within the specified timeout period, the ECS instance fails the health check. Unit: seconds'."\n" + ."\n" + .'Valid values: **1 to 300**.'."\n" + ."\n" + .'> When you set the **HealthCheck** parameter to **on**, this parameter takes effect.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '34', + ], + 'ListenerSync' => [ + 'description' => 'Indicates whether the forwarding rule uses the scheduling algorithm, session persistence, and health check configurations of the listener.'."\n" + ."\n" + .'Valid values: **on** and **off**.'."\n" + ."\n" + .'* **off**: does not use the configurations of the listener. You can customize health check and session persistence configurations for the forwarding rule.'."\n" + .'* **on**: uses the configurations of the listener.'."\n", + 'type' => 'string', + 'example' => 'off', + ], + 'HealthyThreshold' => [ + 'description' => 'Specifies the number of successful health checks that must be consecutively performed before a backend server can be declared healthy (from **fail** to **success**).'."\n" + ."\n" + .'Valid values: **2 to 10**.'."\n" + ."\n" + .'> If you set the **HealthCheck** parameter to **on**, this parameter is required.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '5', + ], + 'CookieTimeout' => [ + 'description' => 'The timeout period of a cookie. Valid values: **1 to 86400**. Unit: seconds.'."\n" + ."\n" + .'> If you set the **StickySession** parameter to **on** and the **StickySessionType** parameter to **insert**, this parameter is required.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '56', + ], + 'HealthCheckDomain' => [ + 'description' => 'The domain name that is used for health checks. Valid values:'."\n" + ."\n" + .'* **$\\_ip**: The private IP address of the backend server.'."\n" + ."\n" + .' If you do not set this parameter or set the parameter to $\\_ip, the SLB instance uses the private IP address of each backend server as the domain name for health checks.'."\n" + ."\n" + .'* **domain**: The domain name must be 1 to 80 characters in length. The domain name can contain only letters, digits, periods (.),and hyphens (-).'."\n" + ."\n" + .'> If you set the **HealthCheck** parameter to **on**, this parameter is required.'."\n", + 'type' => 'string', + 'example' => 'www.domain.com', + ], + 'UnhealthyThreshold' => [ + 'description' => 'Specifies the number of times that a healthy backend server must consecutively fail health checks before it is declared unhealthy (from **success** to **fail**).'."\n" + ."\n" + .'Valid values: **2 to 10**'."\n" + ."\n" + .'> If you set the **HealthCheck** parameter to **on**, this parameter is required.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '2', + ], + 'StickySession' => [ + 'description' => 'Specifies whether to enable session persistence.'."\n" + ."\n" + .'Valid values: **on** and **off**.'."\n" + ."\n" + .'> If you set the **ListenerSync** parameter to **off**, this parameter is required. If you set the parameter to **on**, the configuration of the listener is used.'."\n", + 'type' => 'string', + 'example' => 'off', + ], + 'HealthCheck' => [ + 'description' => 'Indicates whether health checks are enabled.'."\n" + ."\n" + .'Valid values: **on** and **off**.'."\n" + ."\n" + .'> If you set the **ListenerSync** parameter to **off**, this parameter is required. If you set the parameter to **on**, the configuration of the listener is used.'."\n", + 'type' => 'string', + 'example' => 'off', + ], + ], + 'description' => '', + ], + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'TooManyListeners', + 'errorMessage' => 'More than 1 listener is found, please be more specified.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"9DEC9C28-AB05-4DDF-9A78-6B08EC9CE18C\\",\\n \\"Rules\\": {\\n \\"Rule\\": [\\n {\\n \\"HealthCheckHttpCode\\": \\"http_3xx\\",\\n \\"VServerGroupId\\": \\"rsp-6cejjzl****\\",\\n \\"Domain\\": \\"www.example.com\\",\\n \\"Cookie\\": \\"23\\",\\n \\"HealthCheckInterval\\": 5,\\n \\"Url\\": \\"/cache\\",\\n \\"HealthCheckURI\\": \\"/example\\",\\n \\"StickySessionType\\": \\"insert\\",\\n \\"RuleName\\": \\"Rule2\\",\\n \\"RuleId\\": \\"rule-tybqi6****\\",\\n \\"HealthCheckConnectPort\\": 45,\\n \\"Scheduler\\": \\"wrr\\",\\n \\"HealthCheckTimeout\\": 34,\\n \\"ListenerSync\\": \\"off\\",\\n \\"HealthyThreshold\\": 5,\\n \\"CookieTimeout\\": 56,\\n \\"HealthCheckDomain\\": \\"www.example.com\\",\\n \\"UnhealthyThreshold\\": 2,\\n \\"StickySession\\": \\"off\\",\\n \\"HealthCheck\\": \\"off\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 9DEC9C28-AB05-4DDF-9A78-6B08EC9CE18C\\n \\n http_3xx\\n rsp-6cejjzl****\\n www.example.com\\n 23\\n 5\\n /cache\\n /example\\n insert\\n Rule2\\n rule-tybqi6****\\n 45\\n wrr\\n 34\\n off\\n 5\\n 56\\n www.example.com\\n 2\\n off\\n off\\n \\n","errorExample":""}]', + 'title' => 'DescribeRules', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'AddBackendServers' => [ + '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 ID of the region where the Classic Load Balancer (CLB) instance is deployed.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~27584~~) operation to query the most recent region list.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-beijing', + ], + ], + [ + 'name' => 'LoadBalancerId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the CLB instance.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'lb-2ze7o5h52g02kkzz******', + ], + ], + [ + 'name' => 'BackendServers', + 'in' => 'query', + 'schema' => [ + 'description' => 'The list of backend servers that you want to add. Set the following parameters:'."\n" + ."\n" + .'* **ServerId**: Required. This value must be a string. Enter the ID of an ECS instance, elastic network interface (ENI), or elastic container instance. If **ServerId** is set to the ID of an ENI or elastic container instance, **Type** is required.'."\n" + ."\n" + .'* **Weight**: the weight of the backend server. Valid values: **0** to **100**. Default value: **100**.'."\n" + ."\n" + .' If the value is set to 0, no requests are forwarded to the backend server.'."\n" + ."\n" + .'* **Description**: Optional. The description of the backend server. This value must be a string. The description must be 1 to 80 characters in length, and can contain letters, digits, hyphens (-), forward slashes (/), periods (.), and underscores (\\_).'."\n" + ."\n" + .'* **Type**: the type of the backend server. Valid values:'."\n" + ."\n" + .' * **ecs** (default): an ECS instance'."\n" + .' * **eni**: an ENI'."\n" + .' * **eci**: an elastic container instance'."\n" + ."\n" + .'> You can specify ENIs and elastic container instances as the backend servers only for high-performance CLB instances.'."\n" + ."\n" + .'* **ServerIp**: the IP address of the ECS instance, ENI, or elastic container instance'."\n" + .'* **Port**: the backend port'."\n" + ."\n" + .'Examples:'."\n" + ."\n" + .'* ECS instance: `[{ "ServerId": "i-xxxxxxxxx", "Weight": "100", "Type": "ecs", "Port":"80","Description":"test-112" }]`'."\n" + .'* ENI: `[{ "ServerId": "eni-xxxxxxxxx", "Weight": "100", "Type": "eni", "ServerIp": "192.168.**.**", "Port":"80","Description":"test-112" }]`'."\n" + .'* ENI with multiple IP addresses: `[{ "ServerId": "eni-xxxxxxxxx", "Weight": "100", "Type": "eni", "ServerIp": "192.168.**.**", "Port":"80","Description":"test-113" },{ "ServerId": "eni-xxxxxxxxx", "Weight": "100", "Type": "eni", "ServerIp": "172.166.**.**", "Port":"80","Description":"test-113" }]`'."\n" + .'* Elastic container instance: `[{ "ServerId": "eci-xxxxxxxxx", "Weight": "100", "Type": "eci", "ServerIp": "192.168.**.**", "Port":"80","Description":"test-114" }]`'."\n" + ."\n" + .'> The backend servers that you add to a CLB instance must be in the Running state. You can add at most 20 backend servers to a CLB instance in each request.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '[{ "ServerId": "eni-xxxxxxxxx", "Weight": "100", "Type": "eni", "ServerIp": "192.168.**.**", "Port":"80","Description":"test-112" },{ "ServerId": "eni-xxxxxxxxx", "Weight": "100", "Type": "eni", "ServerIp": "172.166.**.**", "Port":"80","Description":"test-113" }]', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'LoadBalancerId' => [ + 'description' => 'The ID of the CLB instance.'."\n", + 'type' => 'string', + 'example' => 'lb-2ze7o5h52g02kkzz****', + ], + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => '34B82C81-F13B-4EEB-99F6-A048C67CC830', + ], + 'BackendServers' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'BackendServer' => [ + 'description' => 'The list of backend servers.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Type' => [ + 'description' => 'The type of the backend server. Valid values:'."\n" + ."\n" + .'* **ecs** (default): an ECS instance'."\n" + .'* **eni**: an ENI'."\n" + .'* **eci**: an elastic container instance'."\n", + 'type' => 'string', + 'example' => 'ecs', + ], + 'Weight' => [ + 'description' => 'The weight of the backend server.'."\n" + ."\n" + .'Valid values: **0 to 100**. Default value: **100**.'."\n" + ."\n" + .'If the value is set to **0**, no requests are forwarded to the backend server.'."\n", + 'type' => 'string', + 'example' => '100', + ], + 'Description' => [ + 'description' => 'The description of the backend server.'."\n", + 'type' => 'string', + 'example' => 'backend server', + ], + 'ServerId' => [ + 'description' => 'The ID of the ECS instance, ENI, or elastic container instance.'."\n", + 'type' => 'string', + 'example' => 'i-2zej4lxhjoq1icu*****', + ], + ], + ], + ], + ], + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The specified load balancer does not support the network type of the ECS instance.', + ], + [ + 'errorCode' => 'Mismatched.ZoneId', + 'errorMessage' => 'The zone of the server is not matched with the cloud box loadbalancer.', + ], + [ + 'errorCode' => 'BackendServerProcessing', + 'errorMessage' => 'Backend Server is adding, please try again later.', + ], + [ + 'errorCode' => 'InvalidBackendServers.ServerIpConflict', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'OperationUnsupported.AddBackendServers', + 'errorMessage' => 'This type of backend server is not allowed to attached to singleTunnel or anyTunnel lb.', + ], + [ + 'errorCode' => 'IncorrectStatus.RSByPassToas', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'OperationFailed.ActionNotSupport', + 'errorMessage' => 'The loadbalancer does not support such action.', + ], + [ + 'errorCode' => 'NetworkConflict', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'SystemBusy', + 'errorMessage' => 'The system is busy.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"LoadBalancerId\\": \\"lb-2ze7o5h52g02kkzz****\\",\\n \\"RequestId\\": \\"34B82C81-F13B-4EEB-99F6-A048C67CC830\\",\\n \\"BackendServers\\": {\\n \\"BackendServer\\": [\\n {\\n \\"Type\\": \\"ecs\\",\\n \\"Weight\\": \\"100\\",\\n \\"Description\\": \\"后端服务器\\",\\n \\"ServerId\\": \\"i-2zej4lxhjoq1icu*****\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n lb-2ze7o5h52g02kkzz****\\n 34B82C81-F13B-4EEB-99F6-A048C67CC830\\n \\n ecs\\n 100\\n 后端服务器\\n i-2zej4lxhjoq1icu*****\\n \\n","errorExample":""}]', + 'title' => 'AddBackendServers', + 'summary' => 'Adds backend servers.', + 'description' => '> If multiple identical Elastic Compute Service (ECS) instances are specified in a request, only the first ECS instance is added. The other ECS instances are ignored. If the backend server that you add is the same as one of the existing backend servers that are already associated with the listener, an error message is returned.'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'DescribeHealthStatus' => [ + 'summary' => 'Queries the health status of backend servers.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREslb1HTJST', + 'FEATUREslbZCBC3S', + 'FEATUREslbMJJFN5', + 'FEATUREslb2W3JY0', + 'FEATUREslbQ7A0BW', + ], + ], + 'parameters' => [ + [ + 'name' => 'LoadBalancerId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Classic Load Balancer (CLB) instance.', + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'lb-bp1qjwo61pqz3ah****', + ], + ], + [ + 'name' => 'ListenerPort', + 'in' => 'query', + 'schema' => [ + 'description' => 'The frontend port that is used by the SLB instance. Valid values: **1 to 65535**.'."\n" + ."\n" + .'> If you do not specify this parameter, the health status of all ports is returned.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'maximum' => '65535', + 'minimum' => '0', + 'example' => '80', + ], + ], + [ + 'name' => 'ListenerProtocol', + 'in' => 'query', + 'schema' => [ + 'description' => 'The frontend protocol that is used by the SLB instance.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'https', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the SLB instance.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '365F4154-92F6-4AE4-92F8-7FF34B540710', + ], + 'BackendServers' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'BackendServer' => [ + 'description' => 'The backend servers.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The backend servers.'."\n", + 'type' => 'object', + 'properties' => [ + 'Protocol' => [ + 'description' => 'The frontend protocol that is used by the SLB instance.'."\n", + 'type' => 'string', + 'example' => 'https', + ], + 'ServerHealthStatus' => [ + 'description' => 'The health status of the backend server. Valid values:'."\n" + ."\n" + .'* normal: The backend server is healthy.'."\n" + .'* abnormal: The backend server is unhealthy.'."\n" + .'* unavailable: The health check is not completed.'."\n", + 'type' => 'string', + 'example' => 'abnormal', + ], + 'ListenerPort' => [ + 'description' => 'The frontend port that is used by the SLB instance.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '80', + ], + 'ServerIp' => [ + 'description' => 'The IP address of the backend server.'."\n", + 'type' => 'string', + 'example' => '192.XX.XX.11', + ], + 'Port' => [ + 'description' => 'The backend port that is used by the SLB instance.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '70', + ], + 'ServerId' => [ + 'description' => 'The ID of the backend server.'."\n", + 'type' => 'string', + 'example' => 'i-bp1h5u3fv54ytf***', + ], + ], + ], + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'TooManyListeners', + 'errorMessage' => 'More than 1 listener is found, please be more specified.', + ], + [ + 'errorCode' => 'LocationServiceTimeout', + 'errorMessage' => 'Location service connection timeout. Please try again later.', + ], + [ + 'errorCode' => 'SystemBusy', + 'errorMessage' => 'The system is busy.', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF******\\",\\n \\"BackendServers\\": {\\n \\"BackendServer\\": [\\n {\\n \\"Protocol\\": \\"http\\",\\n \\"ServerHealthStatus\\": \\"abnormal\\",\\n \\"ListenerPort\\": 80,\\n \\"ServerIp\\": \\"192.XX.XX.11\\",\\n \\"Port\\": 80,\\n \\"ServerId\\": \\"i-bp1h5u3fv54ytf***\\"\\n }\\n ]\\n }\\n}","type":"json"}]', + 'title' => 'DescribeHealthStatus', + ], + 'RemoveBackendServers' => [ + '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 CLB instance is deployed.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'LoadBalancerId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the CLB instance.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'lb-bp15lbk8uja8rvm4a****', + ], + ], + [ + 'name' => 'BackendServers', + 'in' => 'query', + 'schema' => [ + 'description' => 'The backend servers that you want to remove.'."\n" + ."\n" + .'* **ServerId**: The IDs of the backend servers. Set the value to a string. This parameter is required.'."\n" + ."\n" + .'* **Type**: the type of the backend server. Valid values:'."\n" + ."\n" + .' * **ecs** (default): Elastic Compute Service (ECS) instance'."\n" + .' * **eni**: elastic network interface (ENI)'."\n" + .' * **eci**: elastic container instance'."\n" + ."\n" + .'* **Weight**: the weight of the backend server. Valid values: **0** to **100**. Set the value to an integer.'."\n" + ."\n" + .'You can specify at most 20 backend servers in each call. Examples:'."\n" + ."\n" + .'* Remove ECS instances:'."\n" + ."\n" + .'`[{"ServerId":"i-bp1fq61enf4loa5i****", "Type": "ecs","Weight":"100"}]`'."\n" + ."\n" + .'* Remove ENIs:'."\n" + ."\n" + .'`[{"ServerId":"eni-2ze1sdp5****","Type": "eni","Weight":"100"}]`'."\n" + ."\n" + .'* Remove elastic container instances:'."\n" + ."\n" + .'`[{"ServerId":"eci-2ze1sdp5****","Type": "eci","Weight":"100"}]`'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => '[{"ServerId":"i-bp1fq61enf4loa5i****", "Type": "ecs","Weight":"100"}]', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'LoadBalancerId' => [ + 'description' => 'The ID of the CLB instance.'."\n", + 'type' => 'string', + 'example' => 'lb-bp15lbk8uja8rvm4a****', + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '365F4154-92F6-4AE4-92F8-7FF34B540710', + ], + 'BackendServers' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'BackendServer' => [ + 'description' => 'The backend servers.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'Type' => [ + 'description' => 'The type of backend server. Valid values:'."\n" + ."\n" + .'* **ecs**: ECS instance'."\n" + .'* **eni**: ENI'."\n" + .'* **eci**: elastic container instances'."\n", + 'type' => 'string', + 'example' => 'ecs', + ], + 'Weight' => [ + 'description' => 'The weight of the backend server. Valid values: **0 to 100**.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '100', + ], + 'Description' => [ + 'description' => 'The description of the server group.'."\n", + 'type' => 'string', + 'example' => 'BackendServer1', + ], + 'ServerId' => [ + 'description' => 'The ID of the backend server.'."\n", + 'type' => 'string', + 'example' => 'i-bp1fq61enf4loa5i****', + ], + ], + ], + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'SystemBusy', + 'errorMessage' => 'The system is busy.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"LoadBalancerId\\": \\"lb-bp15lbk8uja8rvm4a****\\",\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF34******\\",\\n \\"BackendServers\\": {\\n \\"BackendServer\\": [\\n {\\n \\"Type\\": \\"ecs\\",\\n \\"Weight\\": 100,\\n \\"Description\\": \\"BackendServer1\\",\\n \\"ServerId\\": \\"i-bp1fq61enf4loa5i****\\"\\n }\\n ]\\n }\\n}","type":"json"}]', + 'title' => 'RemoveBackendServers', + 'summary' => 'Removes backend servers.', + 'description' => '> If the backend servers that you want to remove are not in the server list of the Classic Load Balancer (CLB) instance, the request fails. However, the system does not report an error.'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'SetBackendServers' => [ + '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 Classic Load Balancer (CLB) instance.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'LoadBalancerId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the CLB instance.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'lb-bp1qjwo61pqz3a******', + ], + ], + [ + 'name' => 'BackendServers', + 'in' => 'query', + 'schema' => [ + 'description' => 'The backend servers that you want to add. Configure the following parameters:'."\n" + ."\n" + .'* **ServerId**: Required. The ID of the backend server. Specify the value in a string. You can specify the ID of an Elastic Compute Service (ECS) instance, an elastic network interface (ENI), or an elastic container instance. If you set **ServerId** to the ID of an ENI or an elastic container instance, you must configure the **Type** parameter.'."\n" + ."\n" + .'* **Weight**: the weight of the backend server. Valid values: **0** to **100**. Default value: **100**. If you set the weight of a backend server to 0, no requests are forwarded to the backend server.'."\n" + ."\n" + .'* **Description**: Optional. The description of the backend server. Specify the value in a string. The description must be 1 to 80 characters in length, and can contain letters, digits, hyphens (-), forward slashes (/), periods (.), and underscores (\\_).'."\n" + ."\n" + .'* **Type**: the type of the backend server. Valid values:'."\n" + ."\n" + .' * **ecs** (default): ECS instance'."\n" + .' * **eni**: ENI'."\n" + .' * **eci**: elastic container instance'."\n" + ."\n" + .'> You can specify ENIs and elastic container instances as backend servers only for high-performance CLB instances.'."\n" + ."\n" + .'* **ServerIp**: the IP address of the ENI or elastic container instance.'."\n" + .'* **Port**: the backend port.'."\n" + ."\n" + .'Examples:'."\n" + ."\n" + .'* ECS instance:'."\n" + ."\n" + .' `[{ "ServerId": "i-xxxxxxxxx", "Weight": "100", "Type": "ecs", "Port":"80","Description":"test-112" }]`'."\n" + ."\n" + .'* ENI:'."\n" + ."\n" + .' `[{ "ServerId": "eni-xxxxxxxxx", "Weight": "100", "Type": "eni", "ServerIp": "192.168.**.**", "Port":"80","Description":"test-112" }]`'."\n" + ."\n" + .'* ENI with multiple IP addresses:'."\n" + ."\n" + .' `[{ "ServerId": "eni-xxxxxxxxx", "Weight": "100", "Type": "eni", "ServerIp": "192.168.**.**", "Port":"80","Description":"test-113" },{ "ServerId": "eni-xxxxxxxxx", "Weight": "100", "Type": "eni", "ServerIp": "172.166.**.**", "Port":"80","Description":"test-113" }]`'."\n" + ."\n" + .'* Elastic container instance:'."\n" + ."\n" + .' `[{ "ServerId": "eci-xxxxxxxxx", "Weight": "100", "Type": "eci", "ServerIp": "192.168.**.**", "Port":"80","Description":"test-114" }]`'."\n" + ."\n" + .'> You can add only running backend servers to a CLB instance. You can specify at most 20 backend servers in each call.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '[{ "ServerId": "ecs-******FmYAXG", "Weight": "100", "Type": "ecs", "Port":"80","Description":"test-112" }]', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'LoadBalancerId' => [ + 'description' => 'The ID of the CLB instance.'."\n", + 'type' => 'string', + 'example' => 'lb-bp1qjwo61pqz3a******', + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '365F4154-92F6-4AE4-92F8-7FF34B540710', + ], + 'BackendServers' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'BackendServer' => [ + 'description' => 'The backend servers.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'Type' => [ + 'description' => 'The type of backend server. Valid values:'."\n" + ."\n" + .'* **ecs** (default): ECS instance'."\n" + .'* **eni**: ENI'."\n" + .'* **eci**: elastic container instance'."\n", + 'type' => 'string', + 'example' => 'eni', + ], + 'Weight' => [ + 'description' => 'The weight of the backend server.'."\n", + 'type' => 'string', + 'example' => '100', + ], + 'Description' => [ + 'description' => 'The description of the backend server.'."\n", + 'type' => 'string', + 'example' => 'backend server', + ], + 'ServerId' => [ + 'description' => 'The ID of the server group.'."\n", + 'type' => 'string', + 'example' => 'eni-hhshhs****', + ], + ], + ], + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'Mismatched.ZoneId', + 'errorMessage' => 'The zone of the server is not matched with the cloud box loadbalancer.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"LoadBalancerId\\": \\"lb-bp1qjwo61pqz3a******\\",\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7F******\\",\\n \\"BackendServers\\": {\\n \\"BackendServer\\": [\\n {\\n \\"Type\\": \\"eni\\",\\n \\"Weight\\": \\"100\\",\\n \\"Description\\": \\"后端服务器\\",\\n \\"ServerId\\": \\"eni-hhshhs****\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n lb-bp1qjwo61pqz3a******\\n 365F4154-92F6-4AE4-92F8-7FF34B540710\\n \\n eni\\n 100\\n 后端服务器\\n eni-hhshhs****\\n \\n","errorExample":""}]', + 'title' => 'SetBackendServers', + 'summary' => 'Specifies weights for backend servers.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'CreateVServerGroup' => [ + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'create', + 'abilityTreeCode' => '88537', + 'abilityTreeNodes' => [ + 'FEATUREslb1HTJST', + ], + ], + 'parameters' => [ + [ + 'name' => 'Tag', + 'in' => 'query', + 'allowEmptyValue' => true, + 'style' => 'repeatList', + 'schema' => [ + 'description' => 'The tags.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The tags.'."\n", + 'type' => 'object', + 'properties' => [ + 'Key' => [ + 'description' => 'The key of tag N. 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 cannot contain `http://` or `https://`. The tag key cannot start with `aliyun` or `acs:`.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'TestKey', + ], + 'Value' => [ + 'description' => 'The tag value. Valid values of N: **1 to 20**. 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`. The tag value cannot contain `http://` or `https://`.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'TestValue', + ], + ], + 'required' => false, + ], + 'required' => false, + 'maxItems' => 20, + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the region where the SLB instance is deployed.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'LoadBalancerId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Server Load Balancer (SLB) instance.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'lb-bp1qjwo61pqz3ahl******', + ], + ], + [ + 'name' => 'VServerGroupName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the vServer group.'."\n" + ."\n" + .'The name must be 1 to 80 characters in length, and can contain letters, digits, hyphens (-), forward slashes (/), periods (.),and underscores (\\_).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'Group1', + ], + ], + [ + 'name' => 'BackendServers', + 'in' => 'query', + 'schema' => [ + 'description' => 'The backend servers that you want to add. Configure the following parameters:'."\n" + ."\n" + .'* **ServerId**: required. The ID of the backend server. Specify the ID in a string. You can specify the ID of an Elastic Compute Service (ECS) instance, an elastic network interface (ENI), or an elastic container instance. If you set ServerId to the ID of an ENI or an elastic container instance, you must configure the Type parameter.'."\n" + ."\n" + .'* **Weight**: the weight of the backend server. Valid values: 0 to 100. Default value: 100. If you set the weight of a backend server to 0, no requests are forwarded to the backend server.'."\n" + ."\n" + .'* **Description**: optional. The description of the backend server. Specify the description in a string. The description must be 1 to 80 characters in length, and can contain letters, digits, hyphens (-), forward slashes (/), periods (.), and underscores (_).'."\n" + ."\n" + .'* **Type**: the type of the backend server. Valid values:'."\n" + ."\n" + .' * **ecs (default)**: ECS instance'."\n" + .' * **eni**: ENI.'."\n" + .' * **eni**: elastic container instance.'."\n" + ."\n" + .'> You can specify ENIs and elastic container instances as backend servers only for high-performance SLB instances.'."\n" + ."\n" + .'* **ServerIp**: The IP address of the ECS instance or ENI.'."\n" + .'* **Port**: the backend port.'."\n" + ."\n" + .'Examples:'."\n" + ."\n" + .'- Add an ECS instance:'."\n" + ."\n" + .' `[{ "ServerId": "i-xxxxxxxxx", "Weight": "100", "Type": "ecs", "Port":"80","Description":"test-112" }]`'."\n" + .'- Add an ENI:'."\n" + ."\n" + .' ` [{ "ServerId": "eni-xxxxxxxxx", "Weight": "100", "Type": "eni", "ServerIp": "192.168.**.**", "Port":"80","Description":"test-112" }]`'."\n" + .'- Add an ENI with multiple IP addresses:'."\n" + ."\n" + .' `[{ "ServerId": "eni-xxxxxxxxx", "Weight": "100", "Type": "eni", "ServerIp": "192.168.**.**", "Port":"80","Description":"test-113" },{ "ServerId": "eni-xxxxxxxxx", "Weight": "100", "Type": "eni", "ServerIp": "172.166.**.**", "Port":"80","Description":"test-113" }]`'."\n" + .'- Add an elastic container instance:'."\n" + ."\n" + .' ` [{ "ServerId": "eci-xxxxxxxxx", "Weight": "100", "Type": "eci", "ServerIp": "192.168.**.**", "Port":"80","Description":"test-114" }]`'."\n" + ."\n" + .'> You can add only running backend servers to SLB instances. You can specify at most 20 backend servers.', + 'type' => 'string', + 'required' => false, + 'example' => ' [{ "ServerId": "eni-xxxxxxxxx", "Weight": "100", "Type": "eni", "ServerIp": "192.168.**.**", "Port":"80","Description":"test-112" },{ "ServerId": "eni-xxxxxxxxx", "Weight": "100", "Type": "eni", "ServerIp": "172.166.**.**", "Port":"80","Description":"test-113" }]', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'VServerGroupId' => [ + 'description' => 'The ID of the vServer group.'."\n", + 'type' => 'string', + 'example' => 'rsp-cige6******', + ], + 'RequestId' => [ + 'description' => 'The ID of the request.', + 'type' => 'string', + 'example' => '9DEC9C28-AB05-4DDF-9A78-6B08EC9CE18C', + ], + 'BackendServers' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'BackendServer' => [ + 'description' => 'The list of backend servers.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The backend servers.'."\n", + 'type' => 'object', + 'properties' => [ + 'Type' => [ + 'description' => 'The type of backend server. Valid values:'."\n" + ."\n" + .'* **ecs** (default): ECS instance'."\n" + .'* **eni**: elastic network interface (ENI)'."\n" + .'* **eci**: elastic container instance'."\n", + 'type' => 'string', + 'example' => 'eni', + ], + 'Weight' => [ + 'description' => 'The weight of the backend server.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '100', + ], + 'Description' => [ + 'description' => 'The description of the vServer group.'."\n", + 'type' => 'string', + 'example' => 'backend server', + ], + 'Port' => [ + 'description' => 'The port that is used by the backend server.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '70', + ], + 'ServerId' => [ + 'description' => 'The ID of the ECS instance or ENI.'."\n", + 'type' => 'string', + 'example' => 'eni-hhshhs****', + ], + ], + ], + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'LBNotSupportIpv6Backend', + 'errorMessage' => 'The specified loadbalancer does not support ipv6 backend.', + ], + [ + 'errorCode' => 'Mismatched.ZoneId', + 'errorMessage' => 'The zone of the server is not matched with the cloud box loadbalancer.', + ], + [ + 'errorCode' => 'InvalidBackendServers.ServerIpConflict', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'OperationUnsupported.CreateVServerGroup', + 'errorMessage' => 'This type of backend server is not allowed to attached to singleTunnel or anyTunnel lb.', + ], + [ + 'errorCode' => 'IncorrectStatus.RSByPassToas', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'BackendServer.InvalidType', + 'errorMessage' => 'The specified Type is invalid.', + ], + [ + 'errorCode' => 'BackendServer.ServerRegionIdNotEqual', + 'errorMessage' => 'The specified ServerRegionId must be equal.', + ], + [ + 'errorCode' => 'OperationFailed.InvalidCen', + 'errorMessage' => 'The cen related with this loadbalancer is invalid.', + ], + [ + 'errorCode' => 'IncorrectStatus.CenNotAssociated', + 'errorMessage' => 'The action is invalid because the loadbalancer is not associated with cen.', + ], + [ + 'errorCode' => 'InvalidBackendServers.MissingCenBandWidth', + 'errorMessage' => 'The bandwidth is missing between loadbalancer and backendServers in cen.', + ], + [ + 'errorCode' => 'InvalidBackendServers.VpcNotInCen', + 'errorMessage' => 'The BackendServers is not in the cen associated with the loadbalancer.', + ], + [ + 'errorCode' => 'InvalidServerId.NotExist', + 'errorMessage' => 'The specified ServerId is not exist.', + ], + [ + 'errorCode' => 'MissingParameter.ServerRegionId', + 'errorMessage' => 'The parameter ServerRegionId is required.', + ], + [ + 'errorCode' => 'MissingParameter.VbrId', + 'errorMessage' => 'The parameter VbrId is required.', + ], + [ + 'errorCode' => 'InvalidParameter.ServerRegionId', + 'errorMessage' => 'The parameter ServerRegionId is invalid for crossborder.', + ], + [ + 'errorCode' => 'InvalidVbrId.NotInCen', + 'errorMessage' => 'The VbrId is not in the cen associated with the loadbalancer.', + ], + [ + 'errorCode' => 'InvalidParameter.ZoneNotSupport', + 'errorMessage' => 'The zone does not support the parameter %s.', + ], + [ + 'errorCode' => 'NetworkConflict', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'InvalidParam.TagValue ', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'InvalidParam.TagKey', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'SizeLimitExceeded.Tag', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'MissingParam.TagKey', + 'errorMessage' => 'The param MissingParam.TagKey is missing.', + ], + [ + 'errorCode' => 'VpcSystemBusy', + 'errorMessage' => 'Invoke vpc system busy, please retry later.', + ], + [ + 'errorCode' => 'OperationFailed.Endpoint', + 'errorMessage' => 'The operation failed because of the RegionId is unavailable in this endpoint.', + ], + ], + 403 => [ + [ + 'errorCode' => 'UnauthorizedRegion', + 'errorMessage' => 'The specified region of is not authorized.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"VServerGroupId\\": \\"rsp-cige6******\\",\\n \\"RequestId\\": \\"9DEC9C28-AB05-4DDF-9A78-6B08EC9CE18C\\",\\n \\"BackendServers\\": {\\n \\"BackendServer\\": [\\n {\\n \\"Type\\": \\"eni\\",\\n \\"Weight\\": 100,\\n \\"Description\\": \\"后端服务器组\\",\\n \\"Port\\": 70,\\n \\"ServerId\\": \\"eni-hhshhs****\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n rsp-cige6******\\n 9DEC9C28-AB05-4DDF-9A78-6B08EC9CE18C\\n \\n Type\\n 100\\n 后端服务器组\\n 70\\n vm-2****\\n \\n","errorExample":""}]', + 'title' => 'CreateVServerGroup', + 'summary' => 'Creates a vServer group and adds backend servers to the vServer group.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'DeleteVServerGroup' => [ + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'delete', + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the region to which the associated Server Load Balancer (SLB) instance belongs.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'VServerGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the VServer group to be deleted.'."\n" + ."\n" + .'> If the VServer group is in use, it cannot be deleted.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'rsp-cige6j*****', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => '9DEC9C28-AB05-4DDF-9A78-6B08EC9CE18C', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'RspoolVipExist', + 'errorMessage' => 'there are vips associating with this vServer group.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"9DEC9C28-AB05-4DDF-9A78-6B******\\"\\n}","errorExample":"{\\"Code\\":\\"InvalidParameter\\",\\"Message\\":\\"The specified parameter is not valid.\\",\\"HostId\\":\\"slb-pop.aliyuncs.com\\",\\"RequestId\\":\\"0669D684-69D8-408E-A4FA-B9011E0F4E66\\"}"},{"type":"xml","example":"\\n\\n\\t9DEC9C28-AB05-4DDF-9A78-6B08EC9CE18C\\n","errorExample":""}]', + 'title' => 'DeleteVServerGroup', + 'summary' => 'Deletes a VServer group.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'SetVServerGroupAttribute' => [ + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'update', + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the Server Load Balancer (SLB) instance, which cannot be modified.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'VServerGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The vServer group ID, which cannot be modified.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'rsp-cige6****', + ], + ], + [ + 'name' => 'VServerGroupName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The vServer group name. You can specify a name.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'Group1', + ], + ], + [ + 'name' => 'BackendServers', + 'in' => 'query', + 'schema' => [ + 'description' => 'The backend servers. This operation only can be used to modify the weights of backend servers and names of vServer groups. Configure the following parameters:'."\n" + ."\n" + .'* **ServerId**: Required. The ID of the backend server. Specify the value in a string. You can specify the ID of an Elastic Compute Service (ECS) instance, an elastic network interface (ENI), or an elastic container instance. If you set **ServerId** to the ID of an ENI or an elastic container instance, you must configure the **Type** parameter.'."\n" + ."\n" + .'* **Weight**: the weight of the backend server. Valid values: **0** to **100**. Default value: **100**. If you set the weight of a backend server to 0, no requests are forwarded to the backend server.'."\n" + ."\n" + .'* **Description**: Optional. The description of the backend server. Specify the value in a string. The description must be 1 to 80 characters in length, and can contain letters, digits, hyphens (-), forward slashes (/), periods (.), and underscores (\\_).'."\n" + ."\n" + .'* **Type**: the type of the backend server. Valid values:'."\n" + ."\n" + .' * **ecs** (default): ECS instance'."\n" + .' * **eni**: ENI'."\n" + .' * **eci**: elastic container instance'."\n" + ."\n" + .'> You can specify ENIs and elastic container instances as backend servers only for high-performance CLB instances.'."\n" + ."\n" + .'* **ServerIp**: the IP address of an ENI or an elastic container instance.'."\n" + .'* **Port**: the backend port.'."\n" + ."\n" + .'Examples:'."\n" + ."\n" + .'* Add ECS instances:'."\n" + ."\n" + .' `[{ "ServerId": "i-xxxxxxxxx", "Weight": "100", "Type": "ecs", "Port":"80","Description":"test-112" }]`'."\n" + ."\n" + .'* Add ENIs:'."\n" + ."\n" + .' `[{ "ServerId": "eni-xxxxxxxxx", "Weight": "100", "Type": "eni", "ServerIp": "192.168.**.**", "Port":"80","Description":"test-112" }]`'."\n" + ."\n" + .'* Add ENIs with multiple IP addresses:'."\n" + ."\n" + .' `[{ "ServerId": "eni-xxxxxxxxx", "Weight": "100", "Type": "eni", "ServerIp": "192.168.**.**", "Port":"80","Description":"test-113" },{ "ServerId": "eni-xxxxxxxxx", "Weight": "100", "Type": "eni", "ServerIp": "172.166.**.**", "Port":"80","Description":"test-113" }]`'."\n" + ."\n" + .'* Add elastic container instances:'."\n" + ."\n" + .' `[{ "ServerId": "eci-xxxxxxxxx", "Weight": "100", "Type": "eci", "ServerIp": "192.168.**.**", "Port":"80","Description":"test-114" }]`'."\n" + ."\n" + .'> You can add only running backend servers to SLB instances. You can specify at most 20 backend servers in each call.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '[{ "ServerId": "eni-xxxxxxxxx", "Weight": "100", "Type": "eni", "ServerIp": "192.XX.XX.6", "Port":"80","Description":"test-112" },{ "ServerId": "eni-xxxxxxxxx", "Weight": "100", "Type": "eni", "ServerIp": "172.XX.XX.6", "Port":"80","Description":"test-113" }]', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'VServerGroupId' => [ + 'description' => 'The server group ID.'."\n", + 'type' => 'string', + 'example' => 'rsp-cige6****', + ], + 'VServerGroupName' => [ + 'description' => 'The name of the vServer group.'."\n", + 'type' => 'string', + 'example' => 'Group1', + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '9DEC9C28-AB05-4DDF-9A78-6B08EC9CE18C', + ], + 'BackendServers' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'BackendServer' => [ + 'description' => 'The backend servers.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'Type' => [ + 'description' => 'The type of backend server. Valid values:'."\n" + ."\n" + .'* **ecs** (default): ECS instance'."\n" + .'* **eni**: ENI'."\n" + .'* **eci**: elastic container instance'."\n", + 'type' => 'string', + 'example' => 'ecs', + ], + 'Weight' => [ + 'description' => 'The weight of the backend server.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '100', + ], + 'Description' => [ + 'description' => 'The description of the server group.'."\n", + 'type' => 'string', + 'example' => 'Backend server group description', + ], + 'Port' => [ + 'description' => 'The port that is used by the backend server.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '70', + ], + 'ServerId' => [ + 'description' => 'The ID of the backend server.'."\n", + 'type' => 'string', + 'example' => 'i-bp1ek6yd7jvkx****', + ], + ], + ], + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'MissingParameter', + 'errorMessage' => 'The VServerGroupName or BackendServers is required at lease one.', + ], + [ + 'errorCode' => 'InvalidParameter.ZoneNotSupport', + 'errorMessage' => 'The zone does not support the parameter %s.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"VServerGroupId\\": \\"rsp-cige6****\\",\\n \\"VServerGroupName\\": \\"Group1\\",\\n \\"RequestId\\": \\"9DEC9C28-AB05-4DDF-9A78-6B08EC9CE18C\\",\\n \\"BackendServers\\": {\\n \\"BackendServer\\": [\\n {\\n \\"Type\\": \\"ecs\\",\\n \\"Weight\\": 100,\\n \\"Description\\": \\"后端服务器组描述。\\",\\n \\"Port\\": 70,\\n \\"ServerId\\": \\"i-bp1ek6yd7jvkx****\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\nrsp-cige6****\\n9DEC9C28-AB05-4DDF-9A78-6B08EC9CE18C\\nGroup1\\n\\n \\n ecs\\n 后端服务器组描述。\\n i-bp1ek6yd7jvkx****\\n 70\\n 100\\n \\n\\n","errorExample":""}]', + 'title' => 'SetVServerGroupAttribute', + 'summary' => 'Modifies the configurations of a vServer group.', + 'description' => 'This operation can be used to modify the weights of backend servers and names of vServer groups.'."\n" + ."\n" + .'* If you want to modify backend servers in a specified vServer group, call the [ModifyVServerGroupBackendServers](~~35220~~) operation.'."\n" + .'* If you want to add backend servers to a specified vServer group, call the [AddVServerGroupBackendServers](~~35218~~) operation.'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'DescribeVServerGroups' => [ + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'get', + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the Classic Load Balancer (CLB) instance.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~27584~~) operation to query the most recent region list.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'LoadBalancerId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the CLB instance.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'lb-bp1o94dp5i6ea*******', + ], + ], + [ + 'name' => 'IncludeRule', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to return the forwarding rules associated with the vServer groups. Valid values:'."\n" + ."\n" + .'* **true**: yes'."\n" + .'* **false** (default): no'."\n", + 'type' => 'boolean', + 'required' => false, + 'example' => 'false', + ], + ], + [ + 'name' => 'IncludeListener', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to return information about the associated listeners. Valid values:'."\n" + ."\n" + .'* **true**: yes'."\n" + .'* **false** (default): no'."\n", + 'type' => 'boolean', + 'required' => false, + 'example' => 'false', + ], + ], + [ + 'name' => 'Tag', + 'in' => 'query', + 'allowEmptyValue' => true, + 'style' => 'repeatList', + 'schema' => [ + 'description' => 'The tags.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The tags.'."\n", + 'type' => 'object', + 'properties' => [ + 'Key' => [ + 'description' => 'The key of tag N. 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 cannot contain `http://` or `https://`. The tag key cannot start with `aliyun` or `acs`:.', + 'type' => 'string', + 'required' => false, + 'example' => 'TestKey', + ], + 'Value' => [ + 'description' => 'The tag value. Valid values of N: 1 to 20. 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`. The tag value cannot contain `http://` or `https://`.', + 'type' => 'string', + 'required' => false, + 'example' => 'TestValue', + ], + ], + 'required' => false, + ], + 'required' => false, + 'maxItems' => 20, + ], + ], + [ + 'name' => 'Description', + 'in' => 'query', + 'allowEmptyValue' => true, + 'schema' => [ + 'description' => 'The name of the vServer group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'Group3', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '9DEC9C28-AB05-4DDF-9A78-6B08EC9CE18C', + ], + 'VServerGroups' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'VServerGroup' => [ + 'description' => 'The backend servers.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'Details of the vServer groups.'."\n", + 'type' => 'object', + 'properties' => [ + 'VServerGroupId' => [ + 'description' => 'The server group ID.'."\n", + 'type' => 'string', + 'example' => 'rsp-0bfuc*****', + ], + 'VServerGroupName' => [ + 'description' => 'The server group name.'."\n", + 'type' => 'string', + 'example' => 'Group3', + ], + 'AssociatedObjects' => [ + 'description' => 'The associated resources.'."\n", + 'type' => 'object', + 'properties' => [ + 'Listeners' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Listener' => [ + 'description' => 'The listeners.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The listener.'."\n", + 'type' => 'object', + 'properties' => [ + 'Port' => [ + 'description' => 'The listener port.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '80', + ], + 'Protocol' => [ + 'description' => 'The listener protocol. Valid values: **tcp**, **udp**, **http**, and **https**.'."\n", + 'type' => 'string', + 'example' => 'tcp', + ], + ], + ], + ], + ], + ], + 'Rules' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Rule' => [ + 'description' => 'The forwarding rules.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The forwarding rules.', + 'type' => 'object', + 'properties' => [ + 'Url' => [ + 'description' => 'The request URL.'."\n", + 'type' => 'string', + 'example' => '/example', + ], + 'Domain' => [ + 'description' => 'The requested domain name.'."\n", + 'type' => 'string', + 'example' => 'www.example.com', + ], + 'RuleName' => [ + 'description' => 'The name of the forwarding rule.'."\n", + 'type' => 'string', + 'example' => 'test', + ], + 'RuleId' => [ + 'description' => 'The ID of the forwarding rule.'."\n", + 'type' => 'string', + 'example' => 'rule-a3x3pg1yohq3lq****', + ], + ], + ], + ], + ], + ], + ], + ], + 'ServerCount' => [ + 'description' => 'The number of servers.'."\n" + ."\n" + .'This parameter is unavailable by default. To use this parameter, submit a ticket or contact your account manager.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1', + ], + 'CreateTime' => [ + 'description' => 'The time when the CLB instance was created. The time follows the `YYYY-MM-DDThh:mm:ssZ` format.'."\n", + 'type' => 'string', + 'example' => '2022-08-31T02:49:05Z', + ], + 'Tags' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Tag' => [ + 'description' => 'The tags.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'Tag objects.'."\n", + 'type' => 'object', + 'properties' => [ + 'TagKey' => [ + 'description' => 'The tag key.'."\n", + 'type' => 'string', + 'example' => 'TestKey', + ], + 'TagValue' => [ + 'description' => 'The tag value.'."\n", + 'type' => 'string', + 'example' => 'TestValue', + ], + ], + ], + ], + ], + ], + ], + ], + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'MissingParam.TagKey', + 'errorMessage' => 'The param of TagKey is missing.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"9DEC9C28-AB05-4DDF-9A78-6B08******\\",\\n \\"VServerGroups\\": {\\n \\"VServerGroup\\": [\\n {\\n \\"VServerGroupId\\": \\"rsp-0bf******\\",\\n \\"VServerGroupName\\": \\"Group3\\",\\n \\"AssociatedObjects\\": {\\n \\"Listeners\\": {\\n \\"Listener\\": [\\n {\\n \\"Port\\": 80,\\n \\"Protocol\\": \\"tcp\\"\\n }\\n ]\\n },\\n \\"Rules\\": {\\n \\"Rule\\": [\\n {\\n \\"Url\\": \\"/example\\",\\n \\"Domain\\": \\"www.example.com\\",\\n \\"RuleName\\": \\"test\\",\\n \\"RuleId\\": \\"rule-a3x3pg1******\\"\\n }\\n ]\\n }\\n },\\n \\"ServerCount\\": 1,\\n \\"CreateTime\\": \\"2022-08-31T02:49:05Z\\",\\n \\"Tags\\": {\\n \\"Tag\\": [\\n {\\n \\"TagKey\\": \\"TestKey\\",\\n \\"TagValue\\": \\"TestValue\\"\\n }\\n ]\\n }\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 9DEC9C28-AB05-4DDF-9A78-6B08EC9CE18C\\n \\n rsp-0bfucwuotx\\n Group3\\n \\n \\n 80\\n tcp\\n \\n \\n /example\\n www.example.com\\n test\\n rule-a3x3pg1yohq3lq****\\n \\n \\n 1\\n 2022-08-31T02:49:05Z\\n \\n TestKey\\n TestValue\\n \\n \\n","errorExample":""}]', + 'title' => 'DescribeVServerGroups', + 'summary' => 'Queries vServer groups.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'DescribeVServerGroupAttribute' => [ + 'summary' => 'Queries the detailed information about a vServer group.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'get', + 'abilityTreeCode' => '88613', + 'abilityTreeNodes' => [ + 'FEATUREslb1HTJST', + ], + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the Classic Load Balancer (CLB) instance.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'VServerGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the vServer group.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'rsp-cige6****', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'VServerGroupId' => [ + 'description' => 'The ID of the vServer group.'."\n", + 'type' => 'string', + 'example' => 'rsp-cige6****', + ], + 'VServerGroupName' => [ + 'description' => 'The name of the vServer group.'."\n", + 'type' => 'string', + 'example' => 'Group1', + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '9DEC9C28-AB05-4DDF-9A78-6B08EC9CE18C', + ], + 'LoadBalancerId' => [ + 'description' => 'The ID of the CLB instance.'."\n", + 'type' => 'string', + 'example' => 'lb-jfakd****', + ], + 'BackendServers' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'BackendServer' => [ + 'description' => 'The backend servers.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'Type' => [ + 'description' => 'The type of backend server. Valid values:'."\n" + ."\n" + .'* **ecs**: ECS instance'."\n" + .'* **eni**: ENI'."\n" + .'* **eci**: elastic container instance'."\n", + 'type' => 'string', + 'example' => 'ecs', + ], + 'Weight' => [ + 'description' => 'The weight of the backend server.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '100', + ], + 'Description' => [ + 'description' => 'The description of the server group.'."\n" + ."\n" + .'> This parameter is not returned if the Description parameter is not specified in the request.'."\n", + 'type' => 'string', + 'example' => 'Server Group Description', + ], + 'ServerIp' => [ + 'description' => 'The IP address of the backend server.'."\n", + 'type' => 'string', + 'example' => '192.XX.XX.11', + ], + 'Port' => [ + 'description' => 'The port that is used by the backend server.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '90', + ], + 'ServerId' => [ + 'description' => 'The ID of the backend server.'."\n", + 'type' => 'string', + 'example' => 'vm-233', + ], + ], + ], + ], + ], + ], + 'CreateTime' => [ + 'description' => 'The time when the CLB instance was created. The time follows the `YYYY-MM-DDThh:mm:ssZ` format.', + 'type' => 'string', + 'example' => '2022-08-31T02:49:05Z', + ], + 'Tags' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Tag' => [ + 'description' => 'The tags of the backend server.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The tags.'."\n", + 'type' => 'object', + 'properties' => [ + 'TagKey' => [ + 'description' => 'The tag key. 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 cannot contain `http://` or `https://`. The tag key cannot start with `aliyun` or `acs:`.'."\n", + 'type' => 'string', + 'example' => 'TestKey', + ], + 'TagValue' => [ + 'description' => 'The tag value. Valid values of N: **1** to **20**. 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', + 'example' => 'TestValue', + ], + ], + ], + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'LocationServiceTimeout', + 'errorMessage' => 'Location service connection timeout. Please try again later.', + ], + ], + 403 => [ + [ + 'errorCode' => 'UnauthorizedRegion', + 'errorMessage' => 'The specified region of is not authorized.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"VServerGroupId\\": \\"rsp-cige6****\\",\\n \\"VServerGroupName\\": \\"Group1\\",\\n \\"RequestId\\": \\"9DEC9C28-AB05-4DDF-9A78-6B******\\",\\n \\"LoadBalancerId\\": \\"lb-jfakd****\\",\\n \\"BackendServers\\": {\\n \\"BackendServer\\": [\\n {\\n \\"Type\\": \\"ecs\\",\\n \\"Weight\\": 100,\\n \\"Description\\": \\"服务器组描述。\\",\\n \\"ServerIp\\": \\"192.XX.XX.11\\",\\n \\"Port\\": 90,\\n \\"ServerId\\": \\"vm-233\\"\\n }\\n ]\\n },\\n \\"CreateTime\\": \\"2022-08-31T02:49:05Z\\",\\n \\"Tags\\": {\\n \\"Tag\\": [\\n {\\n \\"TagKey\\": \\"TestKey\\",\\n \\"TagValue\\": \\"TestValue\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n rsp-cige6****\\n Group1\\n 9DEC9C28-AB05-4DDF-9A78-6B08EC9CE18C\\n lb-jfakd****\\n \\n ecs\\n 100\\n 服务器组描述。\\n 192.XX.XX.11\\n 90\\n vm-233\\n \\n 2022-08-31T02:49:05Z\\n","errorExample":""}]', + 'title' => 'DescribeVServerGroupAttribute', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'AddVServerGroupBackendServers' => [ + 'summary' => 'Adds backend servers to a vServer group.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'create', + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the Server Load Balancer (SLB) instance.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'VServerGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the vServer group.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'rsp-cige6******', + ], + ], + [ + 'name' => 'BackendServers', + 'in' => 'query', + 'schema' => [ + 'description' => 'The backend servers that you want to add. Configure the following parameters:'."\n" + ."\n" + .'* **ServerId**: Required. The ID of the backend server. Specify the ID in a string. You can specify the ID of an Elastic Compute Service (ECS) instance, an elastic network interface (ENI), and an elastic container instance. If you set **ServerId** to the ID of an ENI or an elastic container instance, you must configure the **Type** parameter.'."\n" + ."\n" + .'* **Weight**: the weight of the backend server. Valid values: **0** to **100**. Default value: **100**. If you set the weight of a backend server to 0, no requests are forwarded to the backend server.'."\n" + ."\n" + .'* **Description**: Optional. The description of the backend server. Specify the description in a string. The description must be 1 to 80 characters in length, and can contain letters, digits, hyphens (-), forward slashes (/), periods (.), and underscores (\\_).'."\n" + ."\n" + .'* **Type**: the type of the backend server. Valid values:'."\n" + ."\n" + .' * **ecs** (default): ECS instance'."\n" + .' * **eni**: ENI'."\n" + .' * **eci**: elastic container instance'."\n" + ."\n" + .'> You can specify ENIs and elastic container instances as backend servers only for high-performance SLB instances.'."\n" + ."\n" + .'* **ServerIp**: the IP address of an ENI or an elastic container instance.'."\n" + .'* **Port**: the backend port.'."\n" + ."\n" + .'Examples:'."\n" + ."\n" + .'* Add an ECS instance:'."\n" + ."\n" + .' `[{ "ServerId": "i-xxxxxxxxx", "Weight": "100", "Type": "ecs", "Port":"80","Description":"test-112" }]`'."\n" + ."\n" + .'* Add an ENI:'."\n" + ."\n" + .' `[{ "ServerId": "eni-xxxxxxxxx", "Weight": "100", "Type": "eni", "ServerIp": "192.168.**.**", "Port":"80","Description":"test-112" }]`'."\n" + ."\n" + .'* Add an ENI with multiple IP addresses:'."\n" + ."\n" + .' `[{ "ServerId": "eni-xxxxxxxxx", "Weight": "100", "Type": "eni", "ServerIp": "192.168.**.**", "Port":"80","Description":"test-113" },{ "ServerId": "eni-xxxxxxxxx", "Weight": "100", "Type": "eni", "ServerIp": "172.166.**.**", "Port":"80","Description":"test-113" }]`'."\n" + ."\n" + .'* Add an elastic container instance:'."\n" + ."\n" + .' `[{ "ServerId": "eci-xxxxxxxxx", "Weight": "100", "Type": "eci", "ServerIp": "192.168.**.**", "Port":"80","Description":"test-114" }]`'."\n" + ."\n" + .'> You can add only running backend servers to SLB instances. You can specify at most 20 backend servers in each call.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => '[{ "ServerId": "eni-xxxxxxxxx", "Weight": "100", "Type": "eni", "ServerIp": "192.168.**.**", "Port":"80","Description":"test-112" },{ "ServerId": "eni-xxxxxxxxx", "Weight": "100", "Type": "eni", "ServerIp": "172.166.**.**", "Port":"80","Description":"test-113" }]', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'VServerGroupId' => [ + 'description' => 'The ID of the vServer group.'."\n", + 'type' => 'string', + 'example' => 'rsp-cige6j******', + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '9DEC9C28-AB05-4DDF-9A78-6B08EC9CE18C', + ], + 'BackendServers' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'BackendServer' => [ + 'description' => 'The backend servers.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'Type' => [ + 'description' => 'The type of backend server. Valid values:'."\n" + ."\n" + .'* **ecs** (default): ECS instance'."\n" + .'* **eni**: ENI'."\n" + .'* **eci**: elastic container instance'."\n", + 'type' => 'string', + 'example' => 'ecs', + ], + 'Weight' => [ + 'description' => 'The weight of the backend server.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '100', + ], + 'Description' => [ + 'description' => 'The description of the vServer group.'."\n", + 'type' => 'string', + 'example' => 'backend server', + ], + 'Port' => [ + 'description' => 'The port that is used by the backend server.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '70', + ], + 'ServerId' => [ + 'description' => 'The ID of the ECS instance or ENI.'."\n", + 'type' => 'string', + 'example' => 'eni-hhshhs****', + ], + ], + ], + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidBackendServers.ServerIpConflict', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'Mismatched.ZoneId', + 'errorMessage' => 'The zone of the server is not matched with the cloud box loadbalancer.', + ], + [ + 'errorCode' => 'OperationUnsupported.AddVServerGroupBackendServers', + 'errorMessage' => 'This type of backend server is not allowed to attached to singleTunnel or anyTunnel lb.', + ], + [ + 'errorCode' => 'IncorrectStatus.RSByPassToas', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'BackendServer.InvalidType', + 'errorMessage' => 'The specified Type is invalid.', + ], + [ + 'errorCode' => 'BackendServer.ServerRegionIdNotEqual', + 'errorMessage' => 'The specified ServerRegionId must be equal.', + ], + [ + 'errorCode' => 'OperationFailed.InvalidCen', + 'errorMessage' => 'The cen related with this loadbalancer is invalid.', + ], + [ + 'errorCode' => 'IncorrectStatus.CenNotAssociated', + 'errorMessage' => 'The action is invalid because the loadbalancer is not associated with cen.', + ], + [ + 'errorCode' => 'InvalidBackendServers.MissingCenBandWidth', + 'errorMessage' => 'The bandwidth is missing between loadbalancer and backendServers in cen.', + ], + [ + 'errorCode' => 'InvalidBackendServers.VpcNotInCen', + 'errorMessage' => 'The BackendServers is not in the cen associated with the loadbalancer.', + ], + [ + 'errorCode' => 'InvalidServerId.NotExist', + 'errorMessage' => 'The specified ServerId is not exist.', + ], + [ + 'errorCode' => 'MissingParameter.ServerRegionId', + 'errorMessage' => 'The parameter ServerRegionId is required.', + ], + [ + 'errorCode' => 'MissingParameter.VbrId', + 'errorMessage' => 'The parameter VbrId is required.', + ], + [ + 'errorCode' => 'InvalidParameter.ServerRegionId', + 'errorMessage' => 'The parameter ServerRegionId is invalid for crossborder.', + ], + [ + 'errorCode' => 'InvalidVbrId.NotInCen', + 'errorMessage' => 'The VbrId is not in the cen associated with the loadbalancer.', + ], + [ + 'errorCode' => 'InvalidParameter.ZoneNotSupport', + 'errorMessage' => 'The zone does not support the parameter %s.', + ], + [ + 'errorCode' => 'MasterSlaveServerConflict', + 'errorMessage' => 'The servers are conflict for MasterSlaveGroup.', + ], + [ + 'errorCode' => 'OperationFailed.ServiceGroupProcessing', + 'errorMessage' => 'The specified service group is processing.', + ], + [ + 'errorCode' => 'NetworkConflict', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'SystemBusy', + 'errorMessage' => 'The system is busy.', + ], + [ + 'errorCode' => 'SignatureNonceUsed', + 'errorMessage' => 'Specified signature nonce was used already.', + ], + [ + 'errorCode' => 'VpcSystemBusy', + 'errorMessage' => 'Invoke vpc system busy, please retry later.', + ], + [ + 'errorCode' => 'OperationDeny.LbNotSupportIPv6Server', + 'errorMessage' => 'The specified loadbalancer does not support ipv6 server.', + ], + [ + 'errorCode' => 'OperationBusy', + 'errorMessage' => 'The operation is busy.', + ], + ], + 404 => [ + [ + 'errorCode' => 'ResourceNotFound.vServers', + 'errorMessage' => 'The specified enis %s does not exist.', + ], + [ + 'errorCode' => 'ResourceNotFound.Cen', + 'errorMessage' => 'The specified resource Cen %s not Exists.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"VServerGroupId\\": \\"rsp-cige6j******\\",\\n \\"RequestId\\": \\"9DEC9C28-AB05-4DDF-9A78-6B******\\",\\n \\"BackendServers\\": {\\n \\"BackendServer\\": [\\n {\\n \\"Type\\": \\"eni\\",\\n \\"Weight\\": 100,\\n \\"Description\\": \\"后端服务器组\\",\\n \\"Port\\": 70,\\n \\"ServerId\\": \\"eni-hhshhs****\\"\\n }\\n ]\\n }\\n}","errorExample":"{\\"Code\\":\\"InvalidParameter\\",\\"Message\\":\\"The specified parameter is not valid.\\",\\"HostId\\":\\"slb-pop.aliyuncs.com\\",\\"RequestId\\":\\"0669D684-69D8-408E-A4FA-B9011E0F4E66\\"}"},{"type":"xml","example":"\\n\\n 9DEC9C28-AB05-4DDF-9A78-6B08EC9CE18C\\n rsp-cige6*****\\n \\n \\n vm-233\\n 80\\n 100\\n \\n \\n vm-232\\n 90\\n 100\\n \\n \\n vm-231\\n 70\\n 100\\n \\n \\n","errorExample":""}]', + 'title' => 'AddVServerGroupBackendServers', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'ModifyVServerGroupBackendServers' => [ + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'update', + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the region where the Classic Load Balancer (CLB) instance is deployed.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'VServerGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the vServer group.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'rsp-cige6j****', + ], + ], + [ + 'name' => 'OldBackendServers', + 'in' => 'query', + 'schema' => [ + 'description' => 'The backend servers that you want to replace. Configure the following parameters:'."\n" + ."\n" + .'* **ServerId**: required. The IDs of the backend servers. Specify the IDs in a string. You can specify the IDs of Elastic Compute Service (ECS) instances, elastic network interfaces (ENIs), and elastic container instances. If you set **ServerId** to the IDs of ENIs or elastic container instances, you must configure the **Type** parameter.'."\n" + ."\n" + .'* **Weight**: the weight of the backend server. Valid values: **0** to **100**. Default value: **100**. If you set the weight of a backend server to 0, no requests are forwarded to the backend server.'."\n" + ."\n" + .'* **Description**: optional. The description of the backend servers. Specify the description in a string. The description must be 1 to 80 characters in length, and can contain letters, digits, hyphens (-), forward slashes (/). periods (.), and underscores (\\_).'."\n" + ."\n" + .'* **Type**: the type of the backend server. Valid values:'."\n" + ."\n" + .' * **ecs** (default): ECS instance'."\n" + .' * **eni**: ENI'."\n" + .' * **eci**: elastic container instance'."\n" + ."\n" + .'> You can specify ENIs and elastic container instances as backend servers only for high-performance SLB instances.'."\n" + ."\n" + .'* **ServerIp**: the IP address of the ENI or elastic container instance.'."\n" + .'* **Port**: the backend port.'."\n" + ."\n" + .'Examples:'."\n" + ."\n" + .'* Add an ECS instance:'."\n" + ."\n" + .' `[{ "ServerId": "i-xxxxxxxxx", "Weight": "100", "Type": "ecs", "Port":"80","Description":"test-112" }]`'."\n" + ."\n" + .'* Add an ENI:'."\n" + ."\n" + .' `[{ "ServerId": "eni-xxxxxxxxx", "Weight": "100", "Type": "eni", "ServerIp": "192.168.**.**", "Port":"80","Description":"test-112" }]`'."\n" + ."\n" + .'* Add an ENI with multiple IP addresses:'."\n" + ."\n" + .' `[{ "ServerId": "eni-xxxxxxxxx", "Weight": "100", "Type": "eni", "ServerIp": "192.168.**.**", "Port":"80","Description":"test-113" },{ "ServerId": "eni-xxxxxxxxx", "Weight": "100", "Type": "eni", "ServerIp": "172.166.**.**", "Port":"80","Description":"test-113" }]`'."\n" + ."\n" + .'* Add an elastic container instance'."\n" + ."\n" + .' `[{ "ServerId": "eci-xxxxxxxxx", "Weight": "100", "Type": "eci", "ServerIp": "192.168.**.**", "Port":"80","Description":"test-114" }]`'."\n" + ."\n" + .'> You can add only running backend servers to SLB instances. You can specify at most 20 backend servers in each call.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '[{ "ServerId": "i-xxxxxxxxx", "Weight": "100", "Type": "ecs", "Port":"80","Description":"test-112" }]', + ], + ], + [ + 'name' => 'NewBackendServers', + 'in' => 'query', + 'schema' => [ + 'description' => 'The backend servers that you want to add to the vServer group. Configure the following parameters:'."\n" + ."\n" + .'* **ServerId**: required. The IDs of the backend servers. Specify the IDs in a string. You can specify the IDs of ECS instances, ENIs, and elastic container instances. If you set **ServerId** to the IDs of ENIs or elastic container instances, you must configure the **Type** parameter.'."\n" + ."\n" + .'* **Weight**: the weight of the backend server. Valid values: **0** to **100**. Default value: **100**. If you set the weight of a backend server to 0, no requests are forwarded to the backend server.'."\n" + ."\n" + .'* **Description**: optional. The description of the backend servers. Specify the description in a string. The description must be 1 to 80 characters in length, and can contain letters, digits, hyphens (-), forward slashes (/). periods (.), and underscores (\\_).'."\n" + ."\n" + .'* **Type**: the type of the backend server. Valid values:'."\n" + ."\n" + .' * **ecs** (default): ECS instance'."\n" + .' * **eni**: ENI'."\n" + .' * **eci**: elastic container instance'."\n" + ."\n" + .'> You can specify ENIs and elastic container instances as backend servers only for high-performance SLB instances.'."\n" + ."\n" + .'* **ServerIp**: the IP address of the ENI or elastic container instance.'."\n" + .'* **Port**: the backend port.'."\n" + ."\n" + .'Examples:'."\n" + ."\n" + .'* Add an ECS instance:'."\n" + ."\n" + .' `[{ "ServerId": "i-xxxxxxxxx", "Weight": "100", "Type": "ecs", "Port":"80","Description":"test-112" }]`'."\n" + ."\n" + .'* Add an ENI:'."\n" + ."\n" + .' `[{ "ServerId": "eni-xxxxxxxxx", "Weight": "100", "Type": "eni", "ServerIp": "192.168.**.**", "Port":"80","Description":"test-112" }]`'."\n" + ."\n" + .'* Add an ENI with multiple IP addresses:'."\n" + ."\n" + .' `[{ "ServerId": "eni-xxxxxxxxx", "Weight": "100", "Type": "eni", "ServerIp": "192.168.**.**", "Port":"80","Description":"test-113" },{ "ServerId": "eni-xxxxxxxxx", "Weight": "100", "Type": "eni", "ServerIp": "172.166.**.**", "Port":"80","Description":"test-113" }]`'."\n" + ."\n" + .'* Add an elastic container instance'."\n" + ."\n" + .' `[{ "ServerId": "eci-xxxxxxxxx", "Weight": "100", "Type": "eci", "ServerIp": "192.168.**.**", "Port":"80","Description":"test-114" }]`'."\n" + ."\n" + .'> You can add only running backend servers to SLB instances. You can specify at most 20 backend servers in each call.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '[{ "ServerId": "eni-xxxxxxxxx", "Weight": "100", "Type": "eni", "ServerIp": "192.168.**.**", "Port":"80","Description":"test-112" },{ "ServerId": "eni-xxxxxxxxx", "Weight": "100", "Type": "eni", "ServerIp": "172.166.**.**", "Port":"80","Description":"test-113" }]', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'VServerGroupId' => [ + 'description' => 'The ID of the vServer group.'."\n", + 'type' => 'string', + 'example' => 'rsp-cige6j****', + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '9DEC9C28-AB05-4DDF-9A78-6B08EC9CE18C', + ], + 'BackendServers' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'BackendServer' => [ + 'description' => 'The backend servers.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'Type' => [ + 'description' => 'The type of backend server. Valid values:'."\n" + ."\n" + .'* **ecs** (default): ECS instance'."\n" + .'* **eni**: ENI'."\n" + .'* **eci**: elastic container instance'."\n", + 'type' => 'string', + 'example' => 'ecs', + ], + 'Weight' => [ + 'description' => 'The weight of the backend server.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '100', + ], + 'Description' => [ + 'description' => 'The description of the backend server.'."\n", + 'type' => 'string', + 'example' => 'Backend server description', + ], + 'Port' => [ + 'description' => 'The port that is used by the backend server.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '70', + ], + 'ServerId' => [ + 'description' => 'The ID of the ECS instance or ENI.'."\n", + 'type' => 'string', + 'example' => 'i-bp1ge5hrp****', + ], + ], + ], + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The specified BackendServers contain duplicated value of ServerID and Port.', + ], + [ + 'errorCode' => 'Mismatched.ZoneId', + 'errorMessage' => 'The zone of the server is not matched with the cloud box loadbalancer.', + ], + [ + 'errorCode' => 'InvalidBackendServers.ServerIpConflict', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'OperationUnsupported.ModifyVServerGroupBackendServers', + 'errorMessage' => 'This type of backend server is not allowed to attached to singleTunnel or anyTunnel lb.', + ], + [ + 'errorCode' => 'IncorrectStatus.RSByPassToas', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'BackendServer.InvalidType', + 'errorMessage' => 'The specified Type is invalid.', + ], + [ + 'errorCode' => 'BackendServer.ServerRegionIdNotEqual', + 'errorMessage' => 'The specified ServerRegionId must be equal.', + ], + [ + 'errorCode' => 'OperationFailed.InvalidCen', + 'errorMessage' => 'The cen related with this loadbalancer is invalid.', + ], + [ + 'errorCode' => 'IncorrectStatus.CenNotAssociated', + 'errorMessage' => 'The action is invalid because the loadbalancer is not associated with cen.', + ], + [ + 'errorCode' => 'InvalidBackendServers.MissingCenBandWidth', + 'errorMessage' => 'The bandwidth is missing between loadbalancer and backendServers in cen.', + ], + [ + 'errorCode' => 'InvalidBackendServers.VpcNotInCen', + 'errorMessage' => 'The BackendServers is not in the cen associated with the loadbalancer.', + ], + [ + 'errorCode' => 'InvalidServerId.NotExist', + 'errorMessage' => 'The specified ServerId is not exist.', + ], + [ + 'errorCode' => 'MissingParameter.ServerRegionId', + 'errorMessage' => 'The parameter ServerRegionId is required.', + ], + [ + 'errorCode' => 'MissingParameter.VbrId', + 'errorMessage' => 'The parameter VbrId is required.', + ], + [ + 'errorCode' => 'InvalidParameter.ServerRegionId', + 'errorMessage' => 'The parameter ServerRegionId is invalid for crossborder.', + ], + [ + 'errorCode' => 'InvalidVbrId.NotInCen', + 'errorMessage' => 'The VbrId is not in the cen associated with the loadbalancer.', + ], + [ + 'errorCode' => 'InvalidParameter.ZoneNotSupport', + 'errorMessage' => 'The zone does not support the parameter %s.', + ], + [ + 'errorCode' => 'MasterSlaveServerConflict', + 'errorMessage' => 'The servers are conflict for MasterSlaveGroup.', + ], + [ + 'errorCode' => 'NetworkConflict', + 'errorMessage' => '%s.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"VServerGroupId\\": \\"rsp-cige6j****\\",\\n \\"RequestId\\": \\"9DEC9C28-AB05-4DDF-9A78-6B08******\\",\\n \\"BackendServers\\": {\\n \\"BackendServer\\": [\\n {\\n \\"Type\\": \\"ecs\\",\\n \\"Weight\\": 100,\\n \\"Description\\": \\"后端服务器描述。\\",\\n \\"Port\\": 70,\\n \\"ServerId\\": \\"i-bp1ge5hrp****\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\nrsp-cige6j****\\n9DEC9C28-AB05-4DDF-9A78-6B08EC9CE18C\\n\\n \\n ecs\\n 后端服务器描述。\\n i-bp1ge5hrp****\\n 70\\n 100\\n \\n\\n","errorExample":""}]', + 'title' => 'ModifyVServerGroupBackendServers', + 'summary' => 'Replaces backend servers in a vServer group.', + 'description' => 'This operation can be used only to replace backend servers in a vServer group. To modify the attributes of backend servers, such as weights, call the [SetVServerGroupAttribute](~~35217~~) operation.'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'RemoveVServerGroupBackendServers' => [ + '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 Server Load Balancer (SLB) instance.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'VServerGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the vServer group.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'rsp-cige6****', + ], + ], + [ + 'name' => 'BackendServers', + 'in' => 'query', + 'schema' => [ + 'description' => 'The backend servers that you want to remove. Configure the following parameters:'."\n" + ."\n" + .'* **ServerId**: Required. The ID of the backend server. Specify the value in a string. You can specify the ID of an Elastic Compute Service (ECS) instance, an elastic network interface (ENI), or an elastic container instance. If you set **ServerId** to the ID of an ENI or an elastic container instance, you must configure the **Type** parameter.'."\n" + ."\n" + .'* **Weight**: the weight of the backend server. Valid values: **0** to **100**. Default value: **100**. If you set the weight of a backend server to 0, no requests are forwarded to the backend server.'."\n" + ."\n" + .'* **Description**: Optional. The description of the backend server. Specify the value in a string. The description must be 1 to 80 characters in length, and can contain letters, digits, hyphens (-), forward slashes (/), periods (.), and underscores (\\_).'."\n" + ."\n" + .'* **Type**: the type of the backend server. Valid values:'."\n" + ."\n" + .' * **ecs**: ECS instance'."\n" + .' * **eni**: ENI'."\n" + .' * **eci**: elastic container instance'."\n" + ."\n" + .'> You can specify ENIs and elastic container instances as backend servers only for high-performance SLB instances.'."\n" + ."\n" + .'* **ServerIp**: the IP address of an ENI or an elastic container instance.'."\n" + .'* **Port**: the backend port.'."\n" + ."\n" + .'Examples:'."\n" + ."\n" + .'* Add ECS instances:'."\n" + ."\n" + .' `[{ "ServerId": "i-xxxxxxxxx", "Weight": "100", "Type": "ecs", "Port":"80","Description":"test-112" }]`'."\n" + ."\n" + .'* Add ENIs:'."\n" + ."\n" + .' `[{ "ServerId": "eni-xxxxxxxxx", "Weight": "100", "Type": "eni", "ServerIp": "192.168.**.**", "Port":"80","Description":"test-112" }]`'."\n" + ."\n" + .'* Add ENIs with multiple IP addresses:'."\n" + ."\n" + .' `[{ "ServerId": "eni-xxxxxxxxx", "Weight": "100", "Type": "eni", "ServerIp": "192.168.**.**", "Port":"80","Description":"test-113" },{ "ServerId": "eni-xxxxxxxxx", "Weight": "100", "Type": "eni", "ServerIp": "172.166.**.**", "Port":"80","Description":"test-113" }]`'."\n" + ."\n" + .'* Add elastic container instances:'."\n" + ."\n" + .' `[{ "ServerId": "eci-xxxxxxxxx", "Weight": "100", "Type": "eci", "ServerIp": "192.168.**.**", "Port":"80","Description":"test-114" }]`'."\n" + ."\n" + .'> You can add only running backend servers to SLB instances. You can specify at most 20 backend servers.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => '[{ "ServerId": "eni-xxxxxxxxx", "Weight": "100", "Type": "eni", "ServerIp": "192.168.**.**", "Port":"80","Description":"test-112" },{ "ServerId": "eni-xxxxxxxxx", "Weight": "100", "Type": "eni", "ServerIp": "172.166.**.**", "Port":"80","Description":"test-113" }]', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'VServerGroupId' => [ + 'description' => 'The ID of the vServer group.'."\n", + 'type' => 'string', + 'example' => 'rsp-cige6j****', + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '9DEC9C28-AB05-4DDF-9A78-6B08EC9CE18C', + ], + 'BackendServers' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'BackendServer' => [ + 'description' => 'The backend servers.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'Type' => [ + 'description' => 'The type of the backend server. Valid values:'."\n" + ."\n" + .'* **ecs** (default): ECS instance'."\n" + .'* **eni**: ENI'."\n" + .'* **eci**: elastic container instance'."\n", + 'type' => 'string', + 'example' => 'ecs', + ], + 'Weight' => [ + 'description' => 'The weight of the backend server.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '100', + ], + 'Port' => [ + 'description' => 'The port that is used by the backend server.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '80', + ], + 'ServerId' => [ + 'description' => 'The ID of the backend server.'."\n", + 'type' => 'string', + 'example' => 'vm-230', + ], + ], + ], + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'LbStatusNotSupport', + 'errorMessage' => 'The status of specified loadbalancer does not support..', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"VServerGroupId\\": \\"rsp-cige6j****\\",\\n \\"RequestId\\": \\"9DEC9C28-AB05-4DDF-9A78-6B0******\\",\\n \\"BackendServers\\": {\\n \\"BackendServer\\": [\\n {\\n \\"Type\\": \\"eni\\",\\n \\"Weight\\": 100,\\n \\"Port\\": 80,\\n \\"ServerId\\": \\"eni-hhshhs****\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\nrsp-cige6j****\\n9DEC9C28-AB05-4DDF-9A78-6B08EC9CE18C\\n\\n \\n ecs\\n vm-230\\n 80\\n 100\\n \\n\\n","errorExample":""}]', + 'title' => 'RemoveVServerGroupBackendServers', + 'summary' => 'Removes backend servers from a vServer group.', + 'description' => '> If the backend servers specified by the **BackendServers** parameter do not exist in the vServer group, the backend servers are ignored. No error message is returned.'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'CreateMasterSlaveServerGroup' => [ + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'readAndWrite', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'create', + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the Classic Load Balancer (CLB) instance.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'LoadBalancerId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The CLB instance ID.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'lb-bp1hv944r69al4j******', + ], + ], + [ + 'name' => 'MasterSlaveServerGroupName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the primary/secondary server group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'Group1', + ], + ], + [ + 'name' => 'MasterSlaveBackendServers', + 'in' => 'query', + 'schema' => [ + 'description' => 'The backend servers in the primary/secondary server group. Each primary/secondary server group consists of two backend servers.'."\n" + ."\n" + .'Configure the following parameters:'."\n" + ."\n" + .'* **ServerId**: required. The IDs of the backend servers. Specify the IDs in a string. You can specify the IDs of Elastic Compute Service (ECS) instances, elastic network interfaces (ENIs), and elastic container instances. If you set **ServerId** to the IDs of ENIs or elastic container instances, you must configure the **Type** parameter.'."\n" + ."\n" + .'* **Weight**: the weight of the backend server. Valid values: **0** to **100**. Default value: **100**. If you set the weight of a backend server to 0, no requests are forwarded to the backend server.'."\n" + ."\n" + .'* **Description**: optional. The description of the backend servers. Specify the description in a string. The description must be 1 to 80 characters in length, and can contain letters, digits, hyphens (-), forward slashes (/). periods (.), and underscores (\\_).'."\n" + ."\n" + .'* **Type**: the type of the backend server. Valid values:'."\n" + ."\n" + .' * **ecs** (default): ECS instance'."\n" + .' * **eni**: ENI'."\n" + .' * **eci**: elastic container instance'."\n" + ."\n" + .'> You can specify ENIs and elastic container instances as backend servers only for high-performance CLB instances.'."\n" + ."\n" + .'* **ServerIp**: the IP address of the ENI or elastic container instance.'."\n" + ."\n" + .'* **Port**: the backend port.'."\n" + ."\n" + .'* **ServerType**: Specify the primary and secondary backend servers in a string. Valid values:'."\n" + ."\n" + .' * **Master**: primary server'."\n" + .' * **Slave**: secondary server'."\n", + 'type' => 'string', + 'required' => false, + 'docRequired' => true, + 'example' => '[{ "ServerId": "i-xxxxxxxxx", "Weight": "100", "Type": "ecs", "Port":"82","ServerType":"Master","Description":"test-112" }, { "ServerId": "i-xxxxxxxxx", "Weight": "100", "Type": "ecs", "Port":"84","ServerType":"Slave","Description":"test-112" }]', + ], + ], + [ + 'name' => 'Tag', + 'in' => 'query', + 'allowEmptyValue' => true, + 'style' => 'repeatList', + 'schema' => [ + 'description' => 'The tags.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'Key' => [ + 'description' => 'The key of tag N. 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 cannot contain `http://` or `https://`. The tag key cannot start with `aliyun` or `acs:`.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'test', + ], + 'Value' => [ + 'description' => 'The value of tag N. Valid values of N: **1 to 20**. The tag value can be an empty string. 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' => '1', + ], + ], + 'required' => false, + ], + 'required' => false, + 'maxItems' => 20, + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'MasterSlaveServerGroupId' => [ + 'description' => 'The ID of the active/standby server group.'."\n", + 'type' => 'string', + 'example' => 'rsp-bp19au4******', + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '7CA4DB76-4D32-523B-822E-5C9494613D46', + ], + 'MasterSlaveBackendServers' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'MasterSlaveBackendServer' => [ + 'description' => 'The backend servers in the primary/secondary server group.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'Type' => [ + 'description' => 'The type of backend server. Valid values:'."\n" + ."\n" + .'* **ecs**: ECS instance'."\n" + .'* **eni**: ENI'."\n" + .'* **eci**: elastic container instance'."\n", + 'type' => 'string', + 'example' => 'ecs', + ], + 'Weight' => [ + 'description' => 'The weight of the backend server.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '100', + ], + 'Description' => [ + 'description' => 'The description of the primary/secondary server group.'."\n", + 'type' => 'string', + 'example' => 'test-112', + ], + 'Port' => [ + 'description' => 'The port that is used by the backend server.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '82', + ], + 'ServerId' => [ + 'description' => 'The ID of the backend server that you want to add.'."\n", + 'type' => 'string', + 'example' => 'i-bp1fq61enf4loa5i****', + ], + 'ServerType' => [ + 'description' => 'The type of backend server.'."\n" + ."\n" + .'Valid values: **Master** and **Slave**.'."\n", + 'type' => 'string', + 'example' => 'Master', + ], + ], + ], + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'BACKEND_SERVERS_NUM_MUST_BE_TWO', + 'errorMessage' => 'Backend servers num must be 2.', + ], + [ + 'errorCode' => 'Mismatched.ZoneId', + 'errorMessage' => 'The zone of the server is not matched with the cloud box loadbalancer.', + ], + [ + 'errorCode' => 'BACKEND_SERVERS_HAVE_SAME_PORT_AND_SERVERID', + 'errorMessage' => 'Backend servers have same port and serverId.', + ], + [ + 'errorCode' => 'BACKEND_SERVERS_CAN_ONLY_CONTAIN_ONE_MASTER_AND_ONE_SLAVE', + 'errorMessage' => 'Backend servers can only contain one master and one slave.', + ], + [ + 'errorCode' => 'BACKEND_SERVER_ID_CAN_NOT_EMPTY', + 'errorMessage' => 'Backend server id can not empty.', + ], + [ + 'errorCode' => 'INVALID_SERVER_TYPE', + 'errorMessage' => 'Invalid server type.', + ], + [ + 'errorCode' => 'BACKEND_SERVER_PORT_CAN_NOT_EMPTY', + 'errorMessage' => 'Backend server port can not empty.', + ], + [ + 'errorCode' => 'RealServerPortNotSupport', + 'errorMessage' => 'Real server port not support.', + ], + [ + 'errorCode' => 'OperationUnsupported.CreateMasterSlaveServerGroup', + 'errorMessage' => 'This type of backend server is not allowed to attached to singleTunnel or anyTunnel lb.', + ], + [ + 'errorCode' => 'IncorrectStatus.RSByPassToas', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'OperationFailed.ActionNotSupport', + 'errorMessage' => 'The loadbalancer does not support such action.', + ], + [ + 'errorCode' => 'RsTunnelIp2VmNameConflict', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'NetworkConflict', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'InvalidParam.TagValue ', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'InvalidParam.TagKey', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'SizeLimitExceeded.Tag', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'MissingParam.TagKey', + 'errorMessage' => 'The param MissingParam.TagKey is missing.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"MasterSlaveServerGroupId\\": \\"rsp-bp19au4******\\",\\n \\"RequestId\\": \\"7CA4DB76-4D32-523B-822E-5C9******\\",\\n \\"MasterSlaveBackendServers\\": {\\n \\"MasterSlaveBackendServer\\": [\\n {\\n \\"Type\\": \\"ecs\\",\\n \\"Weight\\": 100,\\n \\"Description\\": \\"test-112\\",\\n \\"Port\\": 82,\\n \\"ServerId\\": \\"i-bp1fq61enf4loa5i****\\",\\n \\"ServerType\\": \\"Master\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n rsp-bp19au4******\\n 7CA4DB76-4D32-523B-822E-5C9494613D46\\n \\n ecs\\n 100\\n test-112\\n 82\\n i-bp1fq61enf4loa5i****\\n Master\\n \\n","errorExample":""}]', + 'title' => 'CreateMasterSlaveServerGroup', + 'summary' => 'Creates a primary/secondary server group. Each primary/secondary server group consists of two backend servers. One backend server functions as the primary server, and the other backend server functions as the secondary backend server.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'DeleteMasterSlaveServerGroup' => [ + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'delete', + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the Server Load Balancer (SLB) instance.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'MasterSlaveServerGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The primary/secondary server group ID.'."\n" + ."\n" + .'> You cannot delete a primary/secondary server group that is in use.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'rsp-cige6*****', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '9DEC9C28-AB05-4DDF-9A78-6B08EC9CE18C', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'RspoolVipExist', + 'errorMessage' => 'there are vips associating with this vServer group.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"9DEC9C28-AB05-4DDF-9A78-6B08EC9CE18C\\"\\n}","errorExample":"{\\"Code\\":\\"InvalidParameter\\",\\"Message\\":\\"The specified parameter is not valid.\\",\\"HostId\\":\\"slb-pop.aliyuncs.com\\",\\"RequestId\\":\\"0669D684-69D8-408E-A4FA-B9011E0F4E66\\"}"},{"type":"xml","example":"\\n\\n\\t9DEC9C28-AB05-4DDF-9A78-6B08EC9CE18C\\n","errorExample":""}]', + 'title' => 'DeleteMasterSlaveServerGroup', + 'summary' => 'Deletes a primary/secondary server group.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'DescribeMasterSlaveServerGroupAttribute' => [ + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'get', + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the Classic Load Balancer (CLB) instance.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'MasterSlaveServerGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the primary/secondary server group.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'rsp-cige6j******', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '9DEC9C28-AB05-4DDF-9A78-6B0******', + ], + 'Tags' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Tag' => [ + 'description' => 'The tag list.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The tag list.'."\n", + 'type' => 'object', + 'properties' => [ + 'TagKey' => [ + 'description' => 'The tag key. 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 cannot contain `http://` or `https://`. The tag key cannot start with `aliyun` or `acs:`.'."\n", + 'type' => 'string', + 'example' => 'TestKey', + ], + 'TagValue' => [ + 'description' => 'The tag value. Valid values of N: **1** to **20**. 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', + 'example' => 'TestValue', + ], + ], + ], + ], + ], + ], + 'LoadBalancerId' => [ + 'description' => 'The ID of the associated CLB instance.'."\n", + 'type' => 'string', + 'example' => 'lb-14fadafw4343a******', + ], + 'MasterSlaveServerGroupName' => [ + 'description' => 'The name of the primary/secondary server group.'."\n", + 'type' => 'string', + 'example' => 'Group1', + ], + 'MasterSlaveServerGroupId' => [ + 'description' => 'The ID of the primary/secondary server group.'."\n", + 'type' => 'string', + 'example' => 'rsp-cige6******', + ], + 'MasterSlaveBackendServers' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'MasterSlaveBackendServer' => [ + 'description' => 'A list of backend servers in the primary/secondary server group.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The backend servers in the primary/secondary server group.'."\n", + 'type' => 'object', + 'properties' => [ + 'Type' => [ + 'description' => 'The type of the backend server. Valid values:'."\n" + ."\n" + .'* **ecs** (default): Elastic Compute Service (ECS) instance'."\n" + .'* **eni**: elastic network interface (ENI)'."\n" + .'* **eci**: elastic container instance'."\n", + 'type' => 'string', + 'example' => 'eni', + ], + 'Weight' => [ + 'description' => 'The weight of the backend server.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '100', + ], + 'Description' => [ + 'description' => 'The description of the primary/secondary server group.'."\n", + 'type' => 'string', + 'example' => 'Primary and secondary server group description', + ], + 'Port' => [ + 'description' => 'The port that is used by the backend server.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '90', + ], + 'ServerId' => [ + 'description' => 'The ID of the backend server.'."\n", + 'type' => 'string', + 'example' => 'eni-hhshhs****', + ], + 'ServerType' => [ + 'description' => 'The type of backend server. Valid values: **Master** and **Slave**.'."\n", + 'type' => 'string', + 'example' => 'Slave', + ], + ], + ], + ], + ], + ], + 'CreateTime' => [ + 'description' => 'The time when the CLB instance was created. The time follows the `YYYY-MM-DDThh:mm:ssZ` format.', + 'type' => 'string', + 'example' => '2022-12-02T02:49:05Z', + ], + ], + 'description' => '', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"9DEC9C28-AB05-4DDF-9A78-6B0******\\",\\n \\"Tags\\": {\\n \\"Tag\\": [\\n {\\n \\"TagKey\\": \\"TestKey\\",\\n \\"TagValue\\": \\"TestValue\\"\\n }\\n ]\\n },\\n \\"LoadBalancerId\\": \\"lb-14fadafw4343a******\\",\\n \\"MasterSlaveServerGroupName\\": \\"Group1\\",\\n \\"MasterSlaveServerGroupId\\": \\"rsp-cige6******\\",\\n \\"MasterSlaveBackendServers\\": {\\n \\"MasterSlaveBackendServer\\": [\\n {\\n \\"Type\\": \\"eni\\",\\n \\"Weight\\": 100,\\n \\"Description\\": \\"主备服务器组描述。\\",\\n \\"Port\\": 90,\\n \\"ServerId\\": \\"eni-hhshhs****\\",\\n \\"ServerType\\": \\"Slave\\"\\n }\\n ]\\n },\\n \\"CreateTime\\": \\"2022-12-02T02:49:05Z\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 9DEC9C28-AB05-4DDF-9A78-6B08EC9CE18C\\n lb-14fadafw4343a******\\n Group1\\n rsp-cige6******\\n \\n ecs\\n 100\\n 主备服务器组描述。\\n 90\\n vm-hrf******\\n Slave\\n \\n 2022-12-02T02:49:05Z\\n","errorExample":""}]', + 'title' => 'DescribeMasterSlaveServerGroupAttribute', + 'summary' => 'Queries the detailed information about a primary/secondary server group.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'DescribeMasterSlaveServerGroups' => [ + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'get', + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the CLB instance.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'LoadBalancerId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The CLB instance ID.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'lb-bp14zi0n66zpg6o******', + ], + ], + [ + 'name' => 'IncludeListener', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to return information about the associated listeners. Valid values:'."\n" + ."\n" + .'* **true**'."\n" + .'* **false**'."\n", + 'type' => 'boolean', + 'required' => false, + 'example' => 'false', + ], + ], + [ + 'name' => 'Tag', + 'in' => 'query', + 'allowEmptyValue' => true, + 'style' => 'repeatList', + 'schema' => [ + 'description' => 'The tags.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'Key' => [ + 'description' => 'The key of tag N. 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 cannot contain `http://` or `https://`. The tag key cannot start with `aliyun` or `acs:`.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'TestKey', + ], + 'Value' => [ + 'description' => 'The value of tag N. Valid values of N: **1 to 20**. The tag value can be an empty string. The tag value can be up to 128 characters in length and cannot contain `http://` or `https://`. The tag value cannot start with `aliyun` and `acs:`.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'value', + ], + ], + 'required' => false, + 'example' => '[{"Key":"TestKey","Value":"TestValue"}]', + ], + 'required' => false, + 'maxItems' => 20, + ], + ], + [ + 'name' => 'Description', + 'in' => 'query', + 'allowEmptyValue' => true, + 'schema' => [ + 'description' => 'The description of the primary/secondary server group.', + 'type' => 'string', + 'required' => false, + 'example' => 'test-112'."\n", + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '9DEC9C28-AB05-4DDF-9A78-6B08EC9CE18C', + ], + 'MasterSlaveServerGroups' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'MasterSlaveServerGroup' => [ + 'description' => 'The primary/secondary server groups.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'MasterSlaveServerGroupId' => [ + 'description' => 'The ID of the primary/secondary server group.'."\n", + 'type' => 'string', + 'example' => 'rsp-0bfuc******', + ], + 'MasterSlaveServerGroupName' => [ + 'description' => 'The name of the primary/secondary server group.'."\n", + 'type' => 'string', + 'example' => 'Group3', + ], + 'AssociatedObjects' => [ + 'description' => 'The associated resources.'."\n", + 'type' => 'object', + 'properties' => [ + 'Listeners' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Listener' => [ + 'description' => 'The listeners.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'Port' => [ + 'description' => 'The listener port.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '80', + ], + 'Protocol' => [ + 'description' => 'The listener protocol.'."\n", + 'type' => 'string', + 'example' => 'tcp', + ], + ], + ], + ], + ], + ], + ], + ], + 'CreateTime' => [ + 'description' => 'The time when the CLB instance was created. Specify the time in the `YYYY-MM-DDThh:mm:ssZ` format.'."\n", + 'type' => 'string', + 'example' => '2022-12-02T02:49:05Z', + ], + 'Tags' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Tag' => [ + 'description' => 'The tags to add to the resource.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'TagKey' => [ + 'description' => 'The tag key.'."\n", + 'type' => 'string', + 'example' => 'test_slb_yaochi_tag_key-0', + ], + 'TagValue' => [ + 'description' => 'The tag value.'."\n", + 'type' => 'string', + 'example' => '000098dab00323fb', + ], + ], + ], + ], + ], + ], + ], + ], + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'MissingParam.TagKey', + 'errorMessage' => 'The param of TagKey is missing.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"9DEC9C28-AB05-4DDF-9A78-6B08EC9CE18C\\",\\n \\"MasterSlaveServerGroups\\": {\\n \\"MasterSlaveServerGroup\\": [\\n {\\n \\"MasterSlaveServerGroupId\\": \\"rsp-0bfuc******\\",\\n \\"MasterSlaveServerGroupName\\": \\"Group3\\",\\n \\"AssociatedObjects\\": {\\n \\"Listeners\\": {\\n \\"Listener\\": [\\n {\\n \\"Port\\": 80,\\n \\"Protocol\\": \\"tcp\\"\\n }\\n ]\\n }\\n },\\n \\"CreateTime\\": \\"2022-12-02T02:49:05Z\\",\\n \\"Tags\\": {\\n \\"Tag\\": [\\n {\\n \\"TagKey\\": \\"TestKey\\",\\n \\"TagValue\\": \\"TestValue\\"\\n }\\n ]\\n }\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 9DEC9C28-AB05-4DDF-9A78-6B08EC9CE18C\\n \\n rsp-0bfuc******\\n Group3\\n \\n \\n 80\\n tcp\\n \\n \\n 2022-12-02T02:49:05Z\\n \\n TestKey\\n TestValue\\n \\n \\n","errorExample":""}]', + 'title' => 'DescribeMasterSlaveServerGroups', + 'summary' => 'Queries primary/secondary server groups.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'DeleteCACertificate' => [ + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'delete', + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region of the CA certificates.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~27584~~) operation to query the most recent region list.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'CACertificateId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The CA certificate ID.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => '123157908xxxxxxx_15c73d77203_-986300114_-2110544xxx', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'CertificateAndPrivateKeyIsRefered', + 'errorMessage' => 'The specified certificate is bound to listeners. You cannot delete it.', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\"\\n}","type":"json"}]', + 'title' => 'DeleteCACertificate', + 'summary' => 'Deletes a certificate authority (CA) certificate.', + 'description' => 'You cannot delete a CA certificate that is in use.'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'DeleteServerCertificate' => [ + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'delete', + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the Classic Load Balancer (CLB) instance.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~27584~~) operation to query the most recent region list.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ServerCertificateId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The server certificate ID.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => '123157xxxxxxx_166f8204689_1714763408_709981430', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'CertificateRelatedDomainExtensionExist', + 'errorMessage' => 'The domainExtension related with this ServerCertificate exists.', + ], + [ + 'errorCode' => 'CertificateAndPrivateKeyIsRefered', + 'errorMessage' => 'The specified certificate is bound to listeners. You cannot delete it.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\"\\n}","errorExample":"{\\"Code\\":\\"InvalidParameter\\",\\"Message\\":\\"The specified parameter is not valid.\\",\\"HostId\\":\\"slb-pop.aliyuncs.com\\",\\"RequestId\\":\\"0669D684-69D8-408E-A4FA-B9011E0F4E66\\"}"},{"type":"xml","example":"\\n\\n\\t\\tCEF72CEB-54B6-4AE8-B225-F876FF7BA984","errorExample":""}]', + 'title' => 'DeleteServerCertificate', + 'summary' => 'Deletes a server certificate.', + 'description' => '> You cannot delete server certificates that are in use.'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'SetCACertificateName' => [ + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'update', + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region of the CA certificate.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~27584~~) operation to query the most recent region list.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'CACertificateId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the CA certificate.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '139a0******-cn-east-hangzhou-01', + ], + ], + [ + 'name' => 'CACertificateName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The CA certificate name.'."\n" + ."\n" + .'The name must be 1 to 80 character in length, and can contain letters, digits, periods (.), underscores (\\_), and hyphens (-). It must start with a letter.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'mycacert02', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FE7BA984', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FE7BA984\\"\\n}","errorExample":""},{"type":"xml","example":"\\n\\n CEF72CEB-54B6-4AE8-B225-F876FE7BA984\\n"}]', + 'title' => 'SetCACertificateName', + 'summary' => 'Specifies a name for a CA certificate.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'SetServerCertificateName' => [ + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'update', + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the Classic Load Balancer (CLB) instance. You can call the [DescribeRegions](~~2401682~~) operation to query the most recent region list.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ServerCertificateId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the server certificate.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '139a0******-cn-east-hangzhou-01', + ], + ], + [ + 'name' => 'ServerCertificateName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the third-party server certificate that you want to upload. The name must be 1 to 80 characters in length, and can contain letters, digits, hyphens (-), forward slashes (/), periods (.), underscores (\\_), and asterisks (\\*).'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'mycert01', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FE7BA984', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FE7BA984\\"\\n}","type":"json"}]', + 'title' => 'SetServerCertificateName', + 'summary' => 'Sets a name for a server certificate.', + ], + 'DescribeCACertificates' => [ + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'list', + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region of the CA certificates.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~27584~~) operation to query the most recent region list.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'CACertificateId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The CA certificate ID.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '139a00604bd-cn-east-hangzho****', + ], + ], + [ + 'name' => 'ResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The resource group ID.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-atstuj3rtop****', + ], + ], + [ + 'name' => 'Tag', + 'in' => 'query', + 'style' => 'repeatList', + 'schema' => [ + 'description' => 'The tags of the CA certificates.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'Key' => [ + 'description' => 'The key of tag N. 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 cannot contain `http://` or `https://`. It must not start with `aliyun` or `acs:`.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'test', + ], + 'Value' => [ + 'description' => 'The value of tag N. Valid values of N: **1 to 20**. The tag value can be an empty string. The tag value can be up to 128 characters in length, and cannot contain `http://` or `https://`. It must not start with `aliyun` or `acs:`.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '1', + ], + ], + 'required' => false, + ], + 'required' => false, + 'maxItems' => 20, + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '365F4154-92F6-4AE4-92F8-7FF34B540710', + ], + 'CACertificates' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'CACertificate' => [ + 'description' => 'The information about the CA certificate.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'CreateTimeStamp' => [ + 'description' => 'The timestamp when the CA 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' => '1504147745000', + ], + 'ExpireTime' => [ + 'description' => 'The time when the CA certificate expires. The time is in the `YYYY-MM-DDThh:mm:ssZ` format.'."\n", + 'type' => 'string', + 'example' => '2024-11-21T06:04:25Z', + ], + 'CreateTime' => [ + 'description' => 'The time when the CA certificate was created. The time is in the `YYYY-MM-DDThh:mm:ssZ` format.'."\n", + 'type' => 'string', + 'example' => '2021-08-31T02:49:05Z', + ], + 'ExpireTimeStamp' => [ + 'description' => 'The timestamp that indicates when the CA 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' => '1732169065000', + ], + 'CACertificateId' => [ + 'description' => 'The CA certificate ID.'."\n", + 'type' => 'string', + 'example' => '139a00604bd-cn-east-hangzho****', + ], + 'RegionId' => [ + 'description' => 'The region of the CA certificate.'."\n", + 'type' => 'string', + 'example' => 'cn-hangzhou', + ], + 'Fingerprint' => [ + 'description' => 'The fingerprint of the CA certificate.'."\n", + 'type' => 'string', + 'example' => '79:43:fb:7d:a4:7f:44:32:61:16:57:17:e3:e8:b7:36:03:57:f6:89', + ], + 'ResourceGroupId' => [ + 'description' => 'The resource group ID.'."\n", + 'type' => 'string', + 'example' => 'rg-atstuj3rtop****', + ], + 'CommonName' => [ + 'description' => 'The domain name of the CA certificate.'."\n", + 'type' => 'string', + 'example' => 'www.example.com', + ], + 'CACertificateName' => [ + 'description' => 'The CA certificate name.'."\n", + 'type' => 'string', + 'example' => 'test', + ], + 'Tags' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Tag' => [ + 'description' => 'The tag.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'TagValue' => [ + 'description' => 'The tag value.'."\n", + 'type' => 'string', + 'example' => '1', + ], + 'TagKey' => [ + 'description' => 'The tag key.'."\n", + 'type' => 'string', + 'example' => 'test', + ], + ], + ], + ], + ], + ], + ], + ], + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'Abs.CACertificateIdAndResourceGroupId.MissMatch', + 'errorMessage' => 'CACertificateId or ResourceGroupId miss match.', + ], + [ + 'errorCode' => 'LocationServiceTimeout', + 'errorMessage' => 'Location service connection timeout. Please try again later.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF******\\",\\n \\"CACertificates\\": {\\n \\"CACertificate\\": [\\n {\\n \\"CreateTimeStamp\\": 1504147745000,\\n \\"ExpireTime\\": \\"2024-11-21T06:04:25Z\\",\\n \\"CreateTime\\": \\"2021-08-31T02:49:05Z\\",\\n \\"ExpireTimeStamp\\": 1732169065000,\\n \\"CACertificateId\\": \\"139a00604bd-cn-east-hangzho****\\",\\n \\"RegionId\\": \\"cn-hangzhou\\",\\n \\"Fingerprint\\": \\"79:43:fb:7d:a4:7f:44:32:61:16:57:17:e3:e8:b7:36:03:57:f6:89\\",\\n \\"ResourceGroupId\\": \\"rg-atstuj3rtop****\\",\\n \\"CommonName\\": \\"www.example.com\\",\\n \\"CACertificateName\\": \\"test\\",\\n \\"Tags\\": {\\n \\"Tag\\": [\\n {\\n \\"TagValue\\": \\"1\\",\\n \\"TagKey\\": \\"test\\"\\n }\\n ]\\n }\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 365F4154-92F6-4AE4-92F8-7FF34B540710\\n \\n 1504147745000\\n 2024-11-21T06:04:25Z\\n 2021-08-31T02:49:05Z\\n 1732169065000\\n 139a00604bd-cn-east-hangzho****\\n cn-hangzhou\\n 79:43:fb:7d:a4:7f:44:32:61:16:57:17:e3:e8:b7:36:03:57:f6:89\\n rg-atstuj3rtop****\\n www.example.com\\n test\\n \\n 1\\n test\\n \\n \\n","errorExample":""}]', + 'title' => 'DescribeCACertificates', + 'summary' => 'Queries certificate authority (CA) certificates.', + 'description' => '> To ensure data confidentiality, only the certificate fingerprint and name are returned. The certificate content is not returned.'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'DescribeServerCertificates' => [ + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'list', + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region where the CLB instance is deployed.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~27584~~) operation to query the most recent region list.'."\n" + ."\n" + .'> If the endpoint of the selected region is slb.aliyuncs.com, you must specify `RegionId`.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ServerCertificateId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The server certificate ID.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '12315790*******_166f8204689_1714763408_709981430', + ], + ], + [ + 'name' => 'ResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The resource group ID.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-atstuj3rtop****', + ], + ], + [ + 'name' => 'Tag', + 'in' => 'query', + 'style' => 'repeatList', + 'schema' => [ + 'description' => 'The tags.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The tags.'."\n", + 'type' => 'object', + 'properties' => [ + 'Key' => [ + 'description' => 'The tag key of the resource. You can specify up to 20 tag keys.'."\n" + ."\n" + .'The tag key cannot be an empty string. The tag key must be 1 to 64 characters in length and cannot start with `aliyun` or `acs`:. The tag key cannot contain `http://` or `https://`.', + 'type' => 'string', + 'required' => false, + 'example' => 'test', + ], + 'Value' => [ + 'description' => 'The tag value of the resource. You can specify up to 20 tag values. The tag value cannot be an empty string.'."\n" + ."\n" + .'The tag value can be up to 128 characters in length and cannot start with `acs:` or `aliyun`. The tag value cannot contain `http://` or `https://`.', + 'type' => 'string', + 'required' => false, + 'example' => '1', + ], + ], + 'required' => false, + ], + 'required' => false, + 'maxItems' => 20, + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '365F4154-92F6-4AE4-92F8-7FF34B540710', + ], + 'ServerCertificates' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'ServerCertificate' => [ + 'description' => 'The server certificates.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'CreateTimeStamp' => [ + 'description' => 'The timestamp when the server certificate was uploaded.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1504147745000', + ], + 'AliCloudCertificateName' => [ + 'description' => 'The name of the server certificate from Alibaba Cloud Certificate Management Service.'."\n", + 'type' => 'string', + 'example' => 'testcertkey', + ], + 'ExpireTime' => [ + 'description' => 'The time when the server certificate expires.'."\n", + 'type' => 'string', + 'example' => '2023-01-26T23:59:59Z', + ], + 'CreateTime' => [ + 'description' => 'The time when the server certificate was uploaded.'."\n", + 'type' => 'string', + 'example' => '2021-08-31T02:49:05Z', + ], + 'ServerCertificateId' => [ + 'description' => 'The server certificate ID.'."\n", + 'type' => 'string', + 'example' => '123157********_166f8204689_1714763408_709981430-cn-east-hangzhou-02', + ], + 'ExpireTimeStamp' => [ + 'description' => 'The timestamp when the server certificate expires.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '15041477450', + ], + 'RegionId' => [ + 'description' => 'The region ID of the server certificate.'."\n", + 'type' => 'string', + 'example' => 'cn-hangzhou', + ], + 'ServerCertificateName' => [ + 'description' => 'The name of the server certificate.'."\n", + 'type' => 'string', + 'example' => 'slb', + ], + 'Fingerprint' => [ + 'description' => 'The fingerprint of the server certificate.'."\n", + 'type' => 'string', + 'example' => '68:08:1a:f8:2c:97:69:a3:a1:e6:16:41:4b:ca:4f:5d:ee:a5:ef:0d', + ], + 'CommonName' => [ + 'description' => 'The domain name of the server certificate. The domain name is specified in the `CommonName` field.'."\n", + 'type' => 'string', + 'example' => 'www.example.com', + ], + 'ResourceGroupId' => [ + 'description' => 'The resource group ID.'."\n", + 'type' => 'string', + 'example' => 'rg-atstuj3rtop****', + ], + 'IsAliCloudCertificate' => [ + 'description' => 'Indicates whether the server certificate is from Alibaba Cloud Certificate Management Service. Valid values:'."\n" + ."\n" + .'* **1**: yes'."\n" + .'* **0**: no'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '0', + ], + 'AliCloudCertificateId' => [ + 'description' => 'The ID of the server certificate from Alibaba Cloud Certificate Management Service.'."\n", + 'type' => 'string', + 'example' => '7309********_15d97e7709a_71445759hr_789289731', + ], + 'Tags' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Tag' => [ + 'description' => 'The tags.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The tag value.'."\n", + 'type' => 'object', + 'properties' => [ + 'TagValue' => [ + 'description' => 'The tag value.'."\n", + 'type' => 'string', + 'example' => '1', + ], + 'TagKey' => [ + 'description' => 'The tag keys of the resource.'."\n", + 'type' => 'string', + 'example' => 'test', + ], + ], + ], + ], + ], + ], + 'SubjectAlternativeNames' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'SubjectAlternativeName' => [ + 'description' => 'The alternative domain names of the server certificate. The alternative domain names are specified in the Subject Alternative Name field of the server certificate.', + 'type' => 'array', + 'items' => [ + 'description' => 'The alternative domain names of the server certificate. The alternative domain names are specified in the `Subject Alternative Name` field of the server certificate.'."\n", + 'type' => 'string', + 'example' => '["demo.aliyundoc.com","example.aliyundoc.com"]', + ], + ], + ], + ], + ], + ], + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'Abs.ServerCertificateIdAndResourceGroupId.MissMatch', + 'errorMessage' => 'ServerCertificateId or ResourceGroupId miss match.', + ], + [ + 'errorCode' => 'LocationServiceTimeout', + 'errorMessage' => 'Location service connection timeout. Please try again later.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF34B540710\\",\\n \\"ServerCertificates\\": {\\n \\"ServerCertificate\\": [\\n {\\n \\"CreateTimeStamp\\": 1504147745000,\\n \\"AliCloudCertificateName\\": \\"testcertkey\\",\\n \\"ExpireTime\\": \\"2023-01-26T23:59:59Z\\",\\n \\"CreateTime\\": \\"2021-08-31T02:49:05Z\\",\\n \\"ServerCertificateId\\": \\"123157********_166f8204689_1714763408_709981430-cn-east-hangzhou-02\\",\\n \\"ExpireTimeStamp\\": 15041477450,\\n \\"RegionId\\": \\"cn-hangzhou\\",\\n \\"ServerCertificateName\\": \\"slb\\",\\n \\"Fingerprint\\": \\"68:08:1a:f8:2c:97:69:a3:a1:e6:16:41:4b:ca:4f:5d:ee:a5:ef:0d\\",\\n \\"CommonName\\": \\"www.example.com\\",\\n \\"ResourceGroupId\\": \\"rg-atstuj3rtop****\\",\\n \\"IsAliCloudCertificate\\": 0,\\n \\"AliCloudCertificateId\\": \\"7309********_15d97e7709a_71445759hr_789289731\\",\\n \\"Tags\\": {\\n \\"Tag\\": [\\n {\\n \\"TagValue\\": \\"1\\",\\n \\"TagKey\\": \\"test\\"\\n }\\n ]\\n },\\n \\"SubjectAlternativeNames\\": {\\n \\"SubjectAlternativeName\\": [\\n \\"[\\\\\\"demo.aliyundoc.com\\\\\\",\\\\\\"example.aliyundoc.com\\\\\\"]\\"\\n ]\\n }\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 365F4154-92F6-4AE4-92F8-7FF34B540710\\n \\n 1504147745000\\n testcertkey\\n 2023-01-26T23:59:59Z\\n 2021-08-31T02:49:05Z\\n 123157********_166f8204689_1714763408_709981430-cn-east-hangzhou-02\\n 15041477450\\n cn-hangzhou\\n slb\\n 68:08:1a:f8:2c:97:69:a3:a1:e6:16:41:4b:ca:4f:5d:ee:a5:ef:0d\\n www.example.com\\n rg-atstuj3rtop****\\n 0\\n 7309********_15d97e7709a_71445759hr_789289731\\n \\n 1\\n test\\n \\n [\\"demo.aliyundoc.com\\",\\"example.aliyundoc.com\\"]\\n \\n","errorExample":""}]', + 'title' => 'DescribeServerCertificates', + 'summary' => 'Queries the server certificates in a region.', + 'description' => '> For security reasons, only the fingerprints and names of server certificates are returned. The content of server certificates and private keys is not returned.'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'UploadCACertificate' => [ + 'summary' => 'Uploads a CA certificate.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'create', + 'abilityTreeCode' => '88694', + 'abilityTreeNodes' => [ + 'FEATUREslbFSBXXR', + ], + 'tenantRelevance' => 'publicInformation', + ], + 'parameters' => [ + [ + 'name' => 'Tag', + 'in' => 'query', + 'allowEmptyValue' => true, + 'style' => 'repeatList', + 'schema' => [ + 'description' => 'The tags.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The tags.'."\n", + 'type' => 'object', + 'properties' => [ + 'Key' => [ + 'description' => 'The key of tag N. 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 start with `acs:` or `aliyun`. It cannot contain `http://` or `https://`.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'TestKey', + ], + 'Value' => [ + 'description' => 'The tag value. Valid values of N: **1 to 20**. The tag value can be an empty string. The tag value must be 1 to 128 characters in length, and cannot contain `http://` or `https://`. It cannot start with `acs:` or `aliyun`.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'FinanceJoshua', + ], + ], + 'required' => false, + ], + 'required' => false, + 'example' => 'UploadCACertificate', + 'maxItems' => 20, + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region of the CA certificates.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~2401682~~) operation to query the most recent region list.', + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'CACertificate', + 'in' => 'query', + 'schema' => [ + 'description' => 'The information about the CA certificate.', + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'test', + ], + ], + [ + 'name' => 'CACertificateName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The CA certificate name.', + 'type' => 'string', + 'required' => false, + 'example' => 'mycacert01', + ], + ], + [ + 'name' => 'ResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the resource group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-atstuj3rto*****', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'CreateTimeStamp' => [ + 'description' => 'The timestamp when the CA certificate was created.', + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1504147745000', + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '365F4154-92F6-4AE4-92F8-7FF34B540710', + ], + 'ExpireTime' => [ + 'description' => 'The time when the CA certificate expires.', + 'type' => 'string', + 'example' => '2024-11-21T06:04:25Z', + ], + 'Fingerprint' => [ + 'description' => 'The fingerprint of the server certificate.', + 'type' => 'string', + 'example' => '02:DF:AB:ED', + ], + 'CreateTime' => [ + 'description' => 'The time when the CA certificate was created.', + 'type' => 'string', + 'example' => '2017-08-31T02:49:05Z', + ], + 'CommonName' => [ + 'description' => 'The domain name on the CA certificate.'."\n", + 'type' => 'string', + 'example' => '.example.com', + ], + 'ResourceGroupId' => [ + 'description' => 'The ID of the resource group.'."\n", + 'type' => 'string', + 'example' => 'rg-atstuj3rt******', + ], + 'CACertificateName' => [ + 'description' => 'The CA certificate name.', + 'type' => 'string', + 'example' => 'mycacert01', + ], + 'ExpireTimeStamp' => [ + 'description' => 'The timestamp when the server certificate expires.', + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1732169065000', + ], + 'CACertificateId' => [ + 'description' => 'The ID of the CA certificate.'."\n", + 'type' => 'string', + 'example' => '139a0******-cn-east-hangzhou-01', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParam.TagValue ', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'InvalidParam.TagKey', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'SizeLimitExceeded.Tag', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'MissingParam.TagKey', + 'errorMessage' => 'The param MissingParam.TagKey is missing.', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"CreateTimeStamp\\": 1504147745000,\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF******\\",\\n \\"ExpireTime\\": \\"2024-11-21T06:04:25Z\\",\\n \\"Fingerprint\\": \\"02:DF:AB:ED\\",\\n \\"CreateTime\\": \\"2017-08-31T02:49:05Z\\",\\n \\"CommonName\\": \\"example.com\\",\\n \\"ResourceGroupId\\": \\"rg-atstuj3******\\",\\n \\"CACertificateName\\": \\"mycacert01\\",\\n \\"ExpireTimeStamp\\": 1732169065000,\\n \\"CACertificateId\\": \\"139a0******\\"\\n}","type":"json"}]', + 'title' => 'UploadCACertificate', + 'description' => 'You can upload only one CA certificate at a time. After a CA certificate is uploaded, the certificate ID, name, and fingerprint are returned.'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'UploadServerCertificate' => [ + 'summary' => 'Uploads a server certificate.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'create', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '88695', + 'abilityTreeNodes' => [ + 'FEATUREslbFSBXXR', + ], + 'tenantRelevance' => 'publicInformation', + ], + 'parameters' => [ + [ + 'name' => 'Tag', + 'in' => 'query', + 'allowEmptyValue' => true, + 'style' => 'repeatList', + 'schema' => [ + 'description' => 'The tags.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The tags.'."\n", + 'type' => 'object', + 'properties' => [ + 'Key' => [ + 'description' => 'The key of tag N. 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 cannot contain `http://` or `https://`. The tag key cannot start with `aliyun` or `acs:`.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'TestKey', + ], + 'Value' => [ + 'description' => 'The value of tag N. Valid values of N: **1 to 20**. The tag value can be an empty string. The tag value can be up to 128 characters in length and cannot contain `http://` or `https://`. The tag value cannot start with `aliyun` and `acs:`.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'TestValue', + ], + ], + 'required' => false, + ], + 'required' => false, + 'maxItems' => 20, + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the CLB instance.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~27584~~) operation to query the most recent region list.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'AliCloudCertificateId', + 'in' => 'query', + 'schema' => [ + 'description' => 'AliCloud certificate ID.', + 'type' => 'string', + 'required' => false, + 'example' => '775****', + ], + ], + [ + 'name' => 'AliCloudCertificateName', + 'in' => 'query', + 'schema' => [ + 'description' => 'AliCloud certificate name.', + 'type' => 'string', + 'required' => false, + 'example' => 'cloudcertificate', + ], + ], + [ + 'name' => 'AliCloudCertificateRegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of AliCloud certificate.', + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ServerCertificate', + 'in' => 'query', + 'schema' => [ + 'description' => 'The server certificate to be uploaded.', + 'type' => 'string', + 'required' => false, + 'example' => '-----BEGIN CERTIFICATE----- MIIGDTCC****** -----END CERTIFICATE-----', + ], + ], + [ + 'name' => 'PrivateKey', + 'in' => 'query', + 'schema' => [ + 'description' => 'The private key of the certificate.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '-----BEGIN RSA PRIVATE KEY----- MIIEogIB****** -----END RSA PRIVATE KEY-----', + ], + ], + [ + 'name' => 'ServerCertificateName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the server certificate.'."\n" + ."\n" + .'The name must be 1 to 80 characters in length. It must start with an English letter. It can contain letters, numbers, periods (.), underscores (\\_), and hyphens (-).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'mycert01', + ], + ], + [ + 'name' => 'ResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The resource group ID.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-atstuj3rto****', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'AliCloudCertificateName' => [ + 'description' => 'The AliCloud certificate name.', + 'type' => 'string', + 'example' => 'cloudcertificate****', + ], + 'CreateTimeStamp' => [ + 'description' => 'The timestamp generated when the CA certificate is uploaded.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1504147745000', + ], + 'ExpireTime' => [ + 'description' => 'The time when the CA certificate expires.'."\n", + 'type' => 'string', + 'example' => '2022-10-18T23:59:59Z', + ], + 'CreateTime' => [ + 'description' => 'The time when the CA certificate is uploaded.'."\n", + 'type' => 'string', + 'example' => '2022-02-21T02:49:05Z', + ], + 'ServerCertificateId' => [ + 'description' => 'The ID of the server certificate.'."\n", + 'type' => 'string', + 'example' => '1321932713******_17f1b4b696b_1114720822_-1671******', + ], + 'ExpireTimeStamp' => [ + 'description' => 'The timestamp generated when the CA certificate expires.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1504147745000', + ], + 'RegionId' => [ + 'description' => 'The ID of the region where the Classic Load Balancer (CLB) instance is deployed.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~27584~~) operation to query the most recent region list.'."\n", + 'type' => 'string', + 'example' => 'cn-hangzhou', + ], + 'RequestId' => [ + 'description' => 'The ID of the request.', + 'type' => 'string', + 'example' => '365F4154-92F6-4AE4-92F8-7FF34B540710', + ], + 'Fingerprint' => [ + 'description' => 'The fingerprint of the CA certificate.'."\n", + 'type' => 'string', + 'example' => '8f:7d:cb:e5:f8:c8:33:9c:17:65:c1:92:30:9e:45:55:9c:3a:85:60', + ], + 'ServerCertificateName' => [ + 'description' => 'The name of the server certificate.'."\n" + ."\n" + .'The name must be 1 to 80 characters in length. It must start with an English letter. It can contain letters, numbers, periods (.), underscores (\\_), and hyphens (-).'."\n", + 'type' => 'string', + 'example' => 'mycert01', + ], + 'CommonName' => [ + 'description' => 'The domain name of the CA certificate.'."\n", + 'type' => 'string', + 'example' => 'example.com', + ], + 'ResourceGroupId' => [ + 'description' => 'The resource group ID.'."\n", + 'type' => 'string', + 'example' => 'rg-atstuj3rt****', + ], + 'AliCloudCertificateId' => [ + 'description' => 'The AliCloud certificate ID.', + 'type' => 'string', + 'example' => '775****', + ], + 'IsAliCloudCertificate' => [ + 'description' => 'Indicates whether the certificate is provided by Alibaba Cloud Certificate Management Service. Valid values:'."\n" + .'- **0**: The certificate is not provided by Alibaba Cloud Certificate Management Service.'."\n" + .'- **1**: The certificate is provided by Alibaba Cloud Certificate Management Service.', + 'type' => 'integer', + 'format' => 'int32', + 'example' => '0', + ], + 'SubjectAlternativeNames' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'SubjectAlternativeName' => [ + 'description' => 'The subject alternative names.'."\n" + ."\n" + .'A domain name list is supported. A maximum of 10 domain names are supported.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The subject alternative names.'."\n" + ."\n" + .'A domain name list is supported. A maximum of 10 domain names are supported.'."\n", + 'type' => 'string', + 'example' => '["example.com","www.example.com"]', + ], + ], + ], + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'IllegalParam.ServerCertificate', + 'errorMessage' => 'The specified server certificate is illegal.', + ], + [ + 'errorCode' => 'InvalidParameter', + 'errorMessage' => 'The specified ServerCertificate and PrivateKey fail to validate.', + ], + [ + 'errorCode' => 'ServerCertificate.NotSupport', + 'errorMessage' => 'The specified Region Not support ServerCertificate.', + ], + [ + 'errorCode' => 'InvalidParameter.AliCloudCertificateId', + 'errorMessage' => 'The specified AliCloudCertificateId is invalid.', + ], + [ + 'errorCode' => 'OperationDenied.IllegalKeyLength', + 'errorMessage' => 'The operation is not allowed because the key length of certificate is illegal.', + ], + [ + 'errorCode' => 'InvalidParam.TagValue ', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'InvalidParam.TagKey', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'SizeLimitExceeded.Tag', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'MissingParam.TagKey', + 'errorMessage' => 'The param MissingParam.TagKey is missing.', + ], + [ + 'errorCode' => 'EccCertificateNotSupport', + 'errorMessage' => 'The ECC certificate is not support.', + ], + [ + 'errorCode' => 'CertificateFormatInvalid', + 'errorMessage' => 'The certificate format is invalid.', + ], + ], + 403 => [ + [ + 'errorCode' => 'UnauthorizedRegion', + 'errorMessage' => 'The specified region of is not authorized.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"AliCloudCertificateName\\": \\"cloudcertificate****\\",\\n \\"CreateTimeStamp\\": 1504147745000,\\n \\"ExpireTime\\": \\"2022-10-18T23:59:59Z\\",\\n \\"CreateTime\\": \\"2022-02-21T02:49:05Z\\",\\n \\"ServerCertificateId\\": \\"1321932713******_17f1b4b696b_1114720822_-1671******\\",\\n \\"ExpireTimeStamp\\": 1504147745000,\\n \\"RegionId\\": \\"cn-hangzhou\\",\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF34B540710\\",\\n \\"Fingerprint\\": \\"8f:7d:cb:e5:f8:c8:33:9c:17:65:c1:92:30:9e:45:55:9c:3a:85:60\\",\\n \\"ServerCertificateName\\": \\"mycert01\\",\\n \\"CommonName\\": \\"example.com\\",\\n \\"ResourceGroupId\\": \\"rg-atstuj3rt****\\",\\n \\"AliCloudCertificateId\\": \\"775****\\",\\n \\"IsAliCloudCertificate\\": 0,\\n \\"SubjectAlternativeNames\\": {\\n \\"SubjectAlternativeName\\": [\\n \\"[\\\\\\"example.com\\\\\\",\\\\\\"www.example.com\\\\\\"]\\"\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n cloudcertificate****\\n 1504147745000\\n 2022-10-18T23:59:59Z\\n 2022-02-21T02:49:05Z\\n 1321932713******_17f1b4b696b_1114720822_-1671******\\n 1504147745000\\n cn-hangzhou\\n 365F4154-92F6-4AE4-92F8-7FF34B540710\\n 8f:7d:cb:e5:f8:c8:33:9c:17:65:c1:92:30:9e:45:55:9c:3a:85:60\\n mycert01\\n example.com\\n rg-atstuj3rt****\\n 775****\\n 0\\n [\\"example.com\\",\\"www.example.com\\"]\\n","errorExample":""}]', + 'title' => 'UploadServerCertificate', + 'description' => '* You can upload only one server certificate and its private key in each call.'."\n" + .'* After a server certificate and its private key are uploaded, the fingerprints of all server certificates that belong to your Alibaba Cloud account are returned.'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => 'The alternative domain names are specified in the `Subject Alternative Name` field of the server certificate.'."\n", + ], + 'CreateDomainExtension' => [ + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'create', + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the Server Load Balancer (SLB) instance.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'LoadBalancerId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the SLB instance.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'lb-bp1o94dp5i6earrxxxxxx', + ], + ], + [ + 'name' => 'ListenerPort', + 'in' => 'query', + 'schema' => [ + 'description' => 'The frontend port that is used by the HTTPS listener of the SLB instance.'."\n" + ."\n" + .'Valid values: **1 to 65535**.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => true, + 'docRequired' => true, + 'example' => '443', + ], + ], + [ + 'name' => 'Domain', + 'in' => 'query', + 'schema' => [ + 'description' => 'The domain name.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => '*.example1.com', + ], + ], + [ + 'name' => 'ServerCertificateId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the certificate used by the domain name.'."\n", + 'type' => 'string', + 'required' => false, + 'docRequired' => true, + 'example' => '123157xxxxxxx_166f820xxxxxx_1714763408_709981xxxx', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'ListenerPort' => [ + 'description' => 'The frontend port that is used by the SLB instance.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '80', + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'A6E7EFC9-0938-40CA-877D-9BEDBD21D357', + ], + 'DomainExtensionId' => [ + 'description' => 'The ID of the additional domain name.'."\n", + 'type' => 'string', + 'example' => 'de-bp1rp7ta19******', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidAction.RegionNotSupport', + 'errorMessage' => 'The region does not support this action.', + ], + [ + 'errorCode' => 'InvalidParameter.ServerCertificateId', + 'errorMessage' => 'The specified ServerCertificateId does not exist.', + ], + [ + 'errorCode' => 'InvalidParameter.Domain', + 'errorMessage' => 'The specified Domain exists.', + ], + [ + 'errorCode' => 'DomainExtensionProcessing', + 'errorMessage' => 'A previous configuration of the DomainExtension is pending, please try again later.', + ], + [ + 'errorCode' => 'DomainExtensionNumberOverLimit', + 'errorMessage' => 'The number of domainExtension has reached to the quota limit of this listener.', + ], + [ + 'errorCode' => 'DomainExtensionNotSupport', + 'errorMessage' => 'The instance with shared loadBalancerSpec does not support domainExtension.', + ], + [ + 'errorCode' => 'InvalidParameter.CertificateId', + 'errorMessage' => 'The specified CertificateId contains duplicate certificate EncryptionAlgorithm.', + ], + [ + 'errorCode' => 'InvalidParamSize.CertificateId', + 'errorMessage' => 'The size of parameter CertificateId is invalid.', + ], + [ + 'errorCode' => 'MissingParameter.CertificateId', + 'errorMessage' => 'The parameter CertificateId is required.', + ], + [ + 'errorCode' => 'InvalidParameter.RegionNotSupport', + 'errorMessage' => 'The region does not support the parameter: %s.', + ], + [ + 'errorCode' => 'CertificateTypeMismatched', + 'errorMessage' => 'The certificate type does not match.', + ], + [ + 'errorCode' => 'SPEC_NOT_SUPPORT_PARAMETER', + 'errorMessage' => 'The loadbalancer with share spec does not support the parameter.', + ], + [ + 'errorCode' => 'CnCertificateNotSupport', + 'errorMessage' => 'The cn certificate is not support.', + ], + [ + 'errorCode' => 'InvalidParam.CertificateBindingType', + 'errorMessage' => 'The param is invalid.', + ], + [ + 'errorCode' => 'MissingParam.ServerCertificates', + 'errorMessage' => 'The param ServerCertificates is missing.', + ], + [ + 'errorCode' => 'InvalidParamSize.ServerCertificates', + 'errorMessage' => 'The size of param ServerCertificates is invalid.', + ], + [ + 'errorCode' => 'TooManyListeners', + 'errorMessage' => 'More than 1 listener is found, please be more specified.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"ListenerPort\\": 80,\\n \\"RequestId\\": \\"A6E7EFC9-0938-40CA-877D-9BE******\\",\\n \\"DomainExtensionId\\": \\"de-bp1rp7ta19******\\"\\n}","errorExample":""},{"type":"xml","example":"\\n\\n\\tA6E7EFC9-0938-40CA-877D-9BEDBD21D357\\n\\tde-bp1rp7t******\\n\\t443\\n\\n\\t","errorExample":""}]', + 'title' => 'CreateDomainExtension', + 'summary' => 'Adds an additional domain name.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'SetDomainExtensionAttribute' => [ + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'update', + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the Server Load Balancer (SLB) instance.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'DomainExtensionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the domain name that is associated with the additional certificate to be replaced.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'de-bp1rp7ta*****', + ], + ], + [ + 'name' => 'ServerCertificateId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the new certificate.'."\n", + 'type' => 'string', + 'required' => false, + 'docRequired' => true, + 'example' => '1231579xxxxxxxx_166f8204689_1714763408_709981xxx', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '149A2470-F010-4437-BF68-343D5099C19D', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter.DomainExtensionId', + 'errorMessage' => 'The specified DomainExtensionId does not exist.', + ], + [ + 'errorCode' => 'InvalidParameter.ServerCertificateId', + 'errorMessage' => 'The specified ServerCertificateId does not exist.', + ], + [ + 'errorCode' => 'DomainExtensionProcessing', + 'errorMessage' => 'A previous configuration of the DomainExtension is pending, please try again later.', + ], + [ + 'errorCode' => 'IncorrectStatus.DomainExtension', + 'errorMessage' => 'The listener to which the domain extension belongs is being configured, please try again later.', + ], + [ + 'errorCode' => 'InvalidParameter.CertificateId', + 'errorMessage' => 'The specified CertificateId contains duplicate certificate EncryptionAlgorithm.', + ], + [ + 'errorCode' => 'InvalidParamSize.CertificateId', + 'errorMessage' => 'The size of parameter CertificateId is invalid.', + ], + [ + 'errorCode' => 'MissingParameter.CertificateId', + 'errorMessage' => 'The parameter CertificateId is required.', + ], + [ + 'errorCode' => 'InvalidParameter.RegionNotSupport', + 'errorMessage' => 'The region does not support the parameter: %s.', + ], + [ + 'errorCode' => 'CertificateTypeMismatched', + 'errorMessage' => 'The certificate type does not match.', + ], + [ + 'errorCode' => 'SPEC_NOT_SUPPORT_PARAMETER', + 'errorMessage' => 'The loadbalancer with share spec does not support the parameter.', + ], + [ + 'errorCode' => 'CnCertificateNotSupport', + 'errorMessage' => 'The cn certificate is not support.', + ], + [ + 'errorCode' => 'InvalidParam.CertificateBindingType', + 'errorMessage' => 'The param is invalid.', + ], + [ + 'errorCode' => 'MissingParam.ServerCertificates', + 'errorMessage' => 'The param ServerCertificates is missing.', + ], + [ + 'errorCode' => 'InvalidParamSize.ServerCertificates', + 'errorMessage' => 'The size of param ServerCertificates is invalid.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"149A2470-F010-4437-BF68-343******\\"\\n}","errorExample":""},{"type":"xml","example":"\\n\\n 149A2470-F010-4437-BF68-xxxxx\\n\\n","errorExample":""}]', + 'title' => 'SetDomainExtensionAttribute', + 'summary' => 'Replaces the certificate of an additional domain name.', + 'description' => '> You cannot replace an additional certificate for a listener that is added to a shared-resource Server Load Balancer (SLB) instance.'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'DeleteDomainExtension' => [ + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'delete', + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the Server Load Balancer (SLB) instance.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'DomainExtensionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the additional domain name that you want to delete.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'de-bp1rp7ta1****', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '149A2470-F010-4437-BF68-343D5099C19D', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter.DomainExtensionId', + 'errorMessage' => 'The specified DomainExtensionId does not exist.', + ], + [ + 'errorCode' => 'DomainExtensionProcessing', + 'errorMessage' => 'A previous configuration of the DomainExtension is pending, please try again later.', + ], + [ + 'errorCode' => 'DomainExtensionRelatedRuleExist', + 'errorMessage' => 'The DomainExtension is related with rules.', + ], + [ + 'errorCode' => 'TooManyListeners', + 'errorMessage' => 'More than 1 listener is found, please be more specified', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"149A2470-F010-4437-BF68-343******\\"\\n}","type":"json"}]', + 'title' => 'DeleteDomainExtension', + 'summary' => 'Deletes an additional domain name.', + ], + 'DescribeDomainExtensionAttribute' => [ + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'get', + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the region where the Server Load Balancer (SLB) instance is deployed.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'DomainExtensionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the additional certificate.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'de-bp1rp7ta1****', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'Domain' => [ + 'description' => 'The domain name.'."\n", + 'type' => 'string', + 'example' => 'www.example.com', + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '48C1B671-C6DB-4DDE-9B30-10557E36CDE0', + ], + 'LoadBalancerId' => [ + 'description' => 'The ID of the SLB instance.'."\n", + 'type' => 'string', + 'example' => 'lb-bp1o94dp5i6*****earr9g6d1l', + ], + 'ListenerPort' => [ + 'description' => 'The frontend port of the HTTPS listener that is configured for the SLB instance. Valid values: **1** to **65535**.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '443', + ], + 'ServerCertificateId' => [ + 'description' => 'The ID of the server certificate used by the domain name.'."\n", + 'type' => 'string', + 'example' => '231579085529123_166f82******_1714763408_709981430', + ], + 'DomainExtensionId' => [ + 'description' => 'The ID of the additional certificate.'."\n", + 'type' => 'string', + 'example' => 'de-bp1rp7ta1****', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter.DomainExtensionId', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'MissingParameter.DomainExtensionId', + 'errorMessage' => 'The param DomainExtensionId is missing', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Domain\\": \\"www.example.com\\",\\n \\"RequestId\\": \\"48C1B671-C6DB-4DDE-9B30-1055******\\",\\n \\"LoadBalancerId\\": \\"lb-bp1o95i6*****\\",\\n \\"ListenerPort\\": 443,\\n \\"ServerCertificateId\\": \\"231579085529123_166f82******_1714763408_709981430\\",\\n \\"DomainExtensionId\\": \\"de-bp1rp******\\"\\n}","errorExample":""},{"type":"xml","example":"\\n443\\nde-bp1rp7ta191dv\\n48C1B671-C6DB-4DDE-9B30-10557E36CDE0\\n231579085529123_166f82******_1714763408_709981430\\nlb-bp1o94dp5i6*****earr9g6d1l\\nwww.example.com\\n","errorExample":""}]', + 'title' => 'DescribeDomainExtensionAttribute', + 'summary' => 'Queries the attributes of an additional domain name.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'DescribeDomainExtensions' => [ + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'get', + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the Server Load Balancer (SLB) instance.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'LoadBalancerId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The SLB instance ID.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'lb-bp1b6c719dfa08ex****', + ], + ], + [ + 'name' => 'ListenerPort', + 'in' => 'query', + 'schema' => [ + 'description' => 'The frontend port of the HTTPS listener that is configured for the SLB instance. Valid values: **1 to 65535**.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => true, + 'docRequired' => true, + 'example' => '443', + ], + ], + [ + 'name' => 'DomainExtensionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the additional certificate.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'de-bp1rp7ta1****', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '48C1B671-C6DB-4DDE-9B30-10557E36CDE0', + ], + 'DomainExtensions' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'DomainExtension' => [ + 'description' => 'A list of additional certificates.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'ServerCertificateId' => [ + 'description' => 'The ID of the certificate used by the domain name.'."\n", + 'type' => 'string', + 'example' => '1231579085529123_166f8204689_1714763408_70998****', + ], + 'Domain' => [ + 'description' => 'The domain name.'."\n", + 'type' => 'string', + 'example' => 'www.example.com', + ], + 'DomainExtensionId' => [ + 'description' => 'The ID of the additional certificate.'."\n", + 'type' => 'string', + 'example' => 'de-bp1rp7ta1****', + ], + ], + ], + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"48C1B671-C6DB-4DDE-9B30-1055*****\\",\\n \\"DomainExtensions\\": {\\n \\"DomainExtension\\": [\\n {\\n \\"ServerCertificateId\\": \\"12315790****3_166f8****9_1714****08_70998****\\",\\n \\"Domain\\": \\"www.example.com\\",\\n \\"DomainExtensionId\\": \\"de-bp1rp7ta1****\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"48C1B671-C6DB-4DDE-9B30-10557E36CDE0\\n\\n \\n de-bp1rp7ta1****\\n 1231579085529123_166f8204689_1714763408_70998****\\n www.example.com\\n \\n","errorExample":""}]', + 'title' => 'DescribeDomainExtensions', + 'summary' => 'Queries additional domain names.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'CreateTLSCipherPolicy' => [ + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'readAndWrite', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'create', + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the region where the Server Load Balancer (SLB) 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', + ], + ], + [ + 'name' => 'Name', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the TLS policy. The name must be 2 to 200 characters in length, and can contain letters, digits, periods (.), underscores (\\_), and hyphens (-). The name must start with a letter.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'TLSPolicy-test', + ], + ], + [ + 'name' => 'Ciphers', + 'in' => 'query', + 'style' => 'repeatList', + 'schema' => [ + 'description' => 'The supported cipher suites, which are determined by the TLS protocol version. You can specify at most 32 cipher suites.'."\n" + ."\n" + .'TLS 1.0 and TLS 1.1 support the following cipher suites:'."\n" + ."\n" + .'* **ECDHE-ECDSA-AES128-SHA**'."\n" + .'* **ECDHE-ECDSA-AES256-SHA**'."\n" + .'* **ECDHE-RSA-AES128-SHA**'."\n" + .'* **ECDHE-RSA-AES256-SHA**'."\n" + .'* **AES128-SHA**'."\n" + .'* **AES256-SHA**'."\n" + .'* **DES-CBC3-SHA**'."\n" + ."\n" + .'TLS 1.2 supports the following cipher suites:'."\n" + ."\n" + .'* **ECDHE-ECDSA-AES128-SHA**'."\n" + .'* **ECDHE-ECDSA-AES256-SHA**'."\n" + .'* **ECDHE-RSA-AES128-SHA**'."\n" + .'* **ECDHE-RSA-AES256-SHA**'."\n" + .'* **AES128-SHA**'."\n" + .'* **AES256-SHA**'."\n" + .'* **DES-CBC3-SHA**'."\n" + .'* **ECDHE-ECDSA-AES128-GCM-SHA256**'."\n" + .'* **ECDHE-ECDSA-AES256-GCM-SHA384**'."\n" + .'* **ECDHE-ECDSA-AES128-SHA256**'."\n" + .'* **ECDHE-ECDSA-AES256-SHA384**'."\n" + .'* **ECDHE-RSA-AES128-GCM-SHA256**'."\n" + .'* **ECDHE-RSA-AES256-GCM-SHA384**'."\n" + .'* **ECDHE-RSA-AES128-SHA256**'."\n" + .'* **ECDHE-RSA-AES256-SHA384**'."\n" + .'* **AES128-GCM-SHA256**'."\n" + .'* **AES256-GCM-SHA384**'."\n" + .'* **AES128-SHA256**'."\n" + .'* **AES256-SHA256**'."\n" + ."\n" + .'TLS 1.3 supports the following cipher suites:'."\n" + ."\n" + .'* **TLS_AES\\_128\\_GCM_SHA256**'."\n" + .'* **TLS_AES\\_256\\_GCM_SHA384**'."\n" + .'* **TLS_CHACHA20\\_POLY1305\\_SHA256**'."\n" + .'* **TLS_AES\\_128\\_CCM_SHA256**'."\n" + .'* **TLS_AES\\_128\\_CCM\\_8\\_SHA256**'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The supported cipher suites, which are determined by the TLS protocol version. You can specify at most 32 cipher suites.'."\n" + ."\n" + .'TLS 1.0 and TLS 1.1 support the following cipher suites:'."\n" + ."\n" + .'* **ECDHE-ECDSA-AES128-SHA**'."\n" + .'* **ECDHE-ECDSA-AES256-SHA**'."\n" + .'* **ECDHE-RSA-AES128-SHA**'."\n" + .'* **ECDHE-RSA-AES256-SHA**'."\n" + .'* **AES128-SHA**'."\n" + .'* **AES256-SHA**'."\n" + .'* **DES-CBC3-SHA**'."\n" + ."\n" + .'TLS 1.2 supports the following cipher suites:'."\n" + ."\n" + .'* **ECDHE-ECDSA-AES128-SHA**'."\n" + .'* **ECDHE-ECDSA-AES256-SHA**'."\n" + .'* **ECDHE-RSA-AES128-SHA**'."\n" + .'* **ECDHE-RSA-AES256-SHA**'."\n" + .'* **AES128-SHA**'."\n" + .'* **AES256-SHA**'."\n" + .'* **DES-CBC3-SHA**'."\n" + .'* **ECDHE-ECDSA-AES128-GCM-SHA256**'."\n" + .'* **ECDHE-ECDSA-AES256-GCM-SHA384**'."\n" + .'* **ECDHE-ECDSA-AES128-SHA256**'."\n" + .'* **ECDHE-ECDSA-AES256-SHA384**'."\n" + .'* **ECDHE-RSA-AES128-GCM-SHA256**'."\n" + .'* **ECDHE-RSA-AES256-GCM-SHA384**'."\n" + .'* **ECDHE-RSA-AES128-SHA256**'."\n" + .'* **ECDHE-RSA-AES256-SHA384**'."\n" + .'* **AES128-GCM-SHA256**'."\n" + .'* **AES256-GCM-SHA384**'."\n" + .'* **AES128-SHA256**'."\n" + .'* **AES256-SHA256**'."\n" + ."\n" + .'TLS 1.3 supports the following cipher suites:'."\n" + ."\n" + .'* **TLS_AES\\_128\\_GCM_SHA256**'."\n" + .'* **TLS_AES\\_256\\_GCM_SHA384**'."\n" + .'* **TLS_CHACHA20\\_POLY1305\\_SHA256**'."\n" + .'* **TLS_AES\\_128\\_CCM_SHA256**'."\n" + .'* **TLS_AES\\_128\\_CCM\\_8\\_SHA256**'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'ECDHE-ECDSA-AES128-SHA', + ], + 'required' => true, + 'example' => 'AES256-SHA256', + 'maxItems' => 30, + ], + ], + [ + 'name' => 'TLSVersions', + 'in' => 'query', + 'style' => 'repeatList', + 'schema' => [ + 'description' => 'The version of the TLS protocol. Valid values: **TLSv1.0**, **TLSv1.1**, **TLSv1.2**, and **TLSv1.3**. You can specify at most four TLS versions.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The version of the TLS protocol. Valid values: **TLSv1.0**, **TLSv1.1**, **TLSv1.2**, and **TLSv1.3**. You can specify at most four TLS versions.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'TLSv1.0', + ], + 'required' => true, + 'example' => 'TLSv1.0', + 'maxItems' => 5, + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'TLSCipherPolicyId' => [ + 'description' => 'The ID of the policy.'."\n", + 'type' => 'string', + 'example' => 'tls-bp14bb1e7dll4f****', + ], + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => 'D7A8875F-373A-5F48-8484-25B07A61F2AF', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'MissingParam.Name', + 'errorMessage' => 'The param Name is missing.', + ], + [ + 'errorCode' => 'MissingParam.TlsVersions', + 'errorMessage' => 'The param TlsVersions is missing.', + ], + [ + 'errorCode' => 'MissingParam.Ciphers', + 'errorMessage' => 'The param Ciphers is missing.', + ], + [ + 'errorCode' => 'ParamDuplicateError.TlsVersions', + 'errorMessage' => 'The param TlsVersions is duplicate in request.', + ], + [ + 'errorCode' => 'ParamDuplicateError.Ciphers', + 'errorMessage' => 'The param Ciphers is duplicate in request.', + ], + [ + 'errorCode' => 'TLSPolicyNoSupportVersion', + 'errorMessage' => 'The specified TLS version is not supported.', + ], + [ + 'errorCode' => 'TLSPolicyNoSupportCipher', + 'errorMessage' => 'The specified TLS cipher is not supported.', + ], + [ + 'errorCode' => 'TLSCipherPolicyOverLimit', + 'errorMessage' => 'The TLSCipherPolicy is over the limit.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"TLSCipherPolicyId\\": \\"tls-bp14bb1e7dll4f****\\",\\n \\"RequestId\\": \\"D7A8875F-373A-5F48-8484-25B07A61F2AF\\"\\n}","errorExample":""},{"type":"xml","example":"\\n tls-bp14bb1e7dll4f****\\n D7A8875F-373A-5F48-8484-25B07A61F2AF\\n","errorExample":""}]', + 'title' => 'CreateTLSCipherPolicy', + 'summary' => 'Creates a Transport Layer Security (TLS) policy.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'DeleteTLSCipherPolicy' => [ + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'readAndWrite', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'delete', + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the region where the Classic Load Balancer (CLB) 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', + ], + ], + [ + 'name' => 'TLSCipherPolicyId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the TLS policy.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'tls-bp1lp2076qx4ebridp******', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'MissingParam.TLSCipherPolicyId', + 'errorMessage' => 'The param TLSCipherPolicyId is missing.', + ], + [ + 'errorCode' => 'TLSPolicyConfiguring', + 'errorMessage' => 'The specified TLS cipher policy is configuring.', + ], + [ + 'errorCode' => 'TLSPolicyBeingUsed', + 'errorMessage' => 'The specified TLS cipher policy is being used.', + ], + [ + 'errorCode' => 'InvalidTLSPolicyId.NotExist', + 'errorMessage' => 'The specified TLS cipher policy does not exist.', + ], + [ + 'errorCode' => 'TLSPolicyRelated', + 'errorMessage' => 'The specified TLS cipher policy is related with listeners.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\"\\n}","errorExample":""},{"type":"xml","example":"\\r\\nCEF72CEB-54B6-4AE8-B225-F876FF7BA984\\r\\n","errorExample":""}]', + 'title' => 'DeleteTLSCipherPolicy', + 'summary' => 'Deletes a TLS policy.', + 'description' => '## Debugging'."\n" + ."\n" + .'[OpenAPI Explorer automatically calculates the signature value. For your convenience, we recommend that you call this operation in OpenAPI Explorer. OpenAPI Explorer dynamically generates the sample code of the operation for different SDKs.](https://api.aliyun.com/#product=Slb\\&api=DeleteTLSCipherPolicy\\&type=RPC\\&version=2014-05-15)'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'SetTLSCipherPolicyAttribute' => [ + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'readAndWrite', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'update', + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the region where the Server Load Balancer (SLB) instance 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', + ], + ], + [ + 'name' => 'TLSCipherPolicyId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the TLS policy.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'tls-bp1lp2076qx4e******bridp', + ], + ], + [ + 'name' => 'Name', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the TLS policy. 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' => true, + 'docRequired' => true, + 'example' => 'tls-policy*****-test', + ], + ], + [ + 'name' => 'TLSVersions', + 'in' => 'query', + 'style' => 'repeatList', + 'schema' => [ + 'description' => 'The version of the TLS protocol. Valid values: **TLSv1.0**, **TLSv1.1**, **TLSv1.2**, and **TLSv1.3**.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'string', + 'required' => false, + 'example' => 'TLSv1.0', + 'description' => 'The supported TLS protocol versions.'."\n", + ], + 'required' => true, + 'example' => 'TLSv1.0', + 'maxItems' => 5, + ], + ], + [ + 'name' => 'Ciphers', + 'in' => 'query', + 'style' => 'repeatList', + 'schema' => [ + 'description' => 'The cipher suites supported by the TLS version.'."\n" + ."\n" + .'The specified cipher suites must be supported by at least one TLS protocol version that you specify. For example, if you set the TLSVersions parameter to TLSv1.3, you must specify cipher suites that are supported by this protocol version.'."\n" + ."\n" + .'TLS 1.0 and TLS 1.1 support the following cipher suites:'."\n" + ."\n" + .'* ECDHE-ECDSA-AES128-SHA'."\n" + .'* ECDHE-ECDSA-AES256-SHA'."\n" + .'* ECDHE-RSA-AES128-SHA'."\n" + .'* ECDHE-RSA-AES256-SHA'."\n" + .'* AES128-SHA AES256-SHA'."\n" + .'* DES-CBC3-SHA'."\n" + ."\n" + .'TLS 1.2 supports the following cipher suites:'."\n" + ."\n" + .'* ECDHE-ECDSA-AES128-SHA'."\n" + .'* ECDHE-ECDSA-AES256-SHA'."\n" + .'* ECDHE-RSA-AES128-SHA'."\n" + .'* ECDHE-RSA-AES256-SHA'."\n" + .'* AES128-SHA AES256-SHA'."\n" + .'* DES-CBC3-SHA'."\n" + .'* ECDHE-ECDSA-AES128-GCM-SHA256'."\n" + .'* ECDHE-ECDSA-AES256-GCM-SHA384'."\n" + .'* ECDHE-ECDSA-AES128-SHA256'."\n" + .'* ECDHE-ECDSA-AES256-SHA384'."\n" + .'* ECDHE-RSA-AES128-GCM-SHA256'."\n" + .'* ECDHE-RSA-AES256-GCM-SHA384'."\n" + .'* ECDHE-RSA-AES128-SHA256'."\n" + .'* ECDHE-RSA-AES256-SHA384'."\n" + .'* AES128-GCM-SHA256'."\n" + .'* AES256-GCM-SHA384'."\n" + .'* AES128-SHA256 AES256-SHA256'."\n" + ."\n" + .'TLS 1.3 supports the following cipher suites:'."\n" + ."\n" + .'* TLS_AES\\_128\\_GCM_SHA256'."\n" + .'* TLS_AES\\_256\\_GCM_SHA384'."\n" + .'* TLS_CHACHA20\\_POLY1305\\_SHA256'."\n" + .'* TLS_AES\\_128\\_CCM_SHA256'."\n" + .'* TLS_AES\\_128\\_CCM\\_8\\_SHA256'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'string', + 'required' => false, + 'example' => 'ECDHE-ECDSA-AES128-SHA', + 'description' => 'The supported cipher suites, which are determined by the TLS protocol version. You can specify at most 32 cipher suites.'."\n" + ."\n" + .'TLS 1.0 and TLS 1.1 support the following cipher suites:'."\n" + ."\n" + .'* **ECDHE-ECDSA-AES128-SHA**'."\n" + .'* **ECDHE-ECDSA-AES256-SHA**'."\n" + .'* **ECDHE-RSA-AES128-SHA**'."\n" + .'* **ECDHE-RSA-AES256-SHA**'."\n" + .'* **AES128-SHA**'."\n" + .'* **AES256-SHA**'."\n" + .'* **DES-CBC3-SHA**'."\n" + ."\n" + .'TLS 1.2 supports the following cipher suites:'."\n" + ."\n" + .'* **ECDHE-ECDSA-AES128-SHA**'."\n" + .'* **ECDHE-ECDSA-AES256-SHA**'."\n" + .'* **ECDHE-RSA-AES128-SHA**'."\n" + .'* **ECDHE-RSA-AES256-SHA**'."\n" + .'* **AES128-SHA**'."\n" + .'* **AES256-SHA**'."\n" + .'* **DES-CBC3-SHA**'."\n" + .'* **ECDHE-ECDSA-AES128-GCM-SHA256**'."\n" + .'* **ECDHE-ECDSA-AES256-GCM-SHA384**'."\n" + .'* **ECDHE-ECDSA-AES128-SHA256**'."\n" + .'* **ECDHE-ECDSA-AES256-SHA384**'."\n" + .'* **ECDHE-RSA-AES128-GCM-SHA256**'."\n" + .'* **ECDHE-RSA-AES256-GCM-SHA384**'."\n" + .'* **ECDHE-RSA-AES128-SHA256**'."\n" + .'* **ECDHE-RSA-AES256-SHA384**'."\n" + .'* **AES128-GCM-SHA256**'."\n" + .'* **AES256-GCM-SHA384**'."\n" + .'* **AES128-SHA256**'."\n" + .'* **AES256-SHA256**'."\n" + ."\n" + .'TLS 1.3 supports the following cipher suites:'."\n" + ."\n" + .'* **TLS_AES\\_128\\_GCM_SHA256**'."\n" + .'* **TLS_AES\\_256\\_GCM_SHA384**'."\n" + .'* **TLS_CHACHA20\\_POLY1305\\_SHA256**'."\n" + .'* **TLS_AES\\_128\\_CCM_SHA256**'."\n" + .'* **TLS_AES\\_128\\_CCM\\_8\\_SHA256**'."\n", + ], + 'required' => true, + 'example' => 'DES-CBC3-SHA', + 'maxItems' => 30, + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'TaskId' => [ + 'description' => 'The ID of the asynchronous task.'."\n", + 'type' => 'string', + 'example' => '72dcd26b-f12d-4c27-b3af****-18f6aed5', + ], + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'MissingParam.Name', + 'errorMessage' => 'The param Name is missing.', + ], + [ + 'errorCode' => 'MissingParam.TlsVersions', + 'errorMessage' => 'The param TlsVersions is missing.', + ], + [ + 'errorCode' => 'MissingParam.Ciphers', + 'errorMessage' => 'The param Ciphers is missing.', + ], + [ + 'errorCode' => 'ParamDuplicateError.TlsVersions', + 'errorMessage' => 'The param TlsVersions is duplicate in request.', + ], + [ + 'errorCode' => 'ParamDuplicateError.Ciphers', + 'errorMessage' => 'The param Ciphers is duplicate in request.', + ], + [ + 'errorCode' => 'TLSPolicyNoSupportVersion', + 'errorMessage' => 'The specified TLS version is not supported.', + ], + [ + 'errorCode' => 'TLSPolicyNoSupportCipher', + 'errorMessage' => 'The specified TLS cipher is not supported.', + ], + [ + 'errorCode' => 'MissingParam.TLSCipherPolicyId', + 'errorMessage' => 'The param TLSCipherPolicyId is missing.', + ], + [ + 'errorCode' => 'TLSPolicyConfiguring', + 'errorMessage' => 'The specified TLS cipher policy is configuring.', + ], + [ + 'errorCode' => 'TLSPolicyBeingUsed', + 'errorMessage' => 'The specified TLS cipher policy is being used.', + ], + [ + 'errorCode' => 'InvalidTLSPolicyId.NotExist', + 'errorMessage' => 'The specified TLS cipher policy does not exist.', + ], + [ + 'errorCode' => 'TLSPolicyUnchanged', + 'errorMessage' => 'The specified TLS cipher policy is unchanged.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"TaskId\\": \\"72dcd26b-f12d-4c27-b3af****-18f6aed5\\",\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876*******\\"\\n}","errorExample":""},{"type":"xml","example":"\\n72dcd26b-f12d-4c27-b3af****-18f6aed5\\nCEF72CEB-54B6-4AE8-B225-F876FF7BA984\\n","errorExample":""}]', + 'title' => 'SetTLSCipherPolicyAttribute', + 'summary' => 'Configures a Transport Layer Security (TLS) policy.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'ListTLSCipherPolicies' => [ + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'list', + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the region where the Classic Load Balancer (CLB) instance 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', + ], + ], + [ + 'name' => 'TLSCipherPolicyId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the TLS policy.'."\n", + 'type' => 'string', + 'required' => false, + 'docRequired' => true, + 'example' => 'tls-bp17elso1h323r****', + ], + ], + [ + 'name' => 'Name', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the TLS policy. 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' => 'TLSPolicy-test****', + ], + ], + [ + 'name' => 'IncludeListener', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to return the information about the associated listeners. Valid values:'."\n" + ."\n" + .'* **true**: returns the information about the associated listeners.'."\n" + .'* **false** (default): does not return the information about the associated listeners.'."\n", + 'type' => 'boolean', + 'required' => false, + 'example' => 'false', + 'default' => 'false', + ], + ], + [ + '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****', + ], + ], + [ + 'name' => 'MaxItems', + 'in' => 'query', + 'schema' => [ + 'description' => 'The maximum number of TLS policies to be queried in this call. Valid values: **1** to **100**. If you do not set this parameter, the default value **20** is used.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '20', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'NextToken' => [ + 'description' => 'The token that is used for the next query. Valid values:'."\n" + ."\n" + .'* If **NextToken** is empty, it indicates that no next query is to be sent.'."\n" + .'* If **NextToken** is not empty, 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' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984', + ], + 'TotalCount' => [ + 'description' => 'The total number of TLS policies returned.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1000', + ], + 'IsTruncated' => [ + 'description' => 'Indicates whether the current page is the last page. Valid values:'."\n" + ."\n" + .'* **true**: The current page is the last page.'."\n" + .'* **false**: The current page is not the last page.'."\n", + 'type' => 'boolean', + 'example' => 'false', + ], + 'TLSCipherPolicies' => [ + 'description' => 'The list of TLS policies.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Status' => [ + 'description' => 'The status of the TLS policy. Valid values:'."\n" + ."\n" + .'* **configuring**: The TLS policy is being configured.'."\n" + .'* **normal**: The TLS policy works as expected.'."\n", + 'type' => 'string', + 'example' => 'normal', + ], + 'InstanceId' => [ + 'description' => 'The ID of the TLS policy.'."\n", + 'type' => 'string', + 'example' => 'tls-bp17elso1h323r****', + ], + 'Name' => [ + 'description' => 'The name of the TLS policy.'."\n", + 'type' => 'string', + 'example' => 'TLSPolicy-test****', + ], + 'CreateTime' => [ + 'description' => 'The timestamp generated when the TLS policy is created.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1608273800000', + ], + 'RelateListeners' => [ + 'description' => 'The list of associated listeners.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Port' => [ + 'description' => 'The listening port. Valid values: **1** to **65535**.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '80', + ], + 'Protocol' => [ + 'description' => 'The listening protocol. Valid values:'."\n" + ."\n" + .'* **TCP**'."\n" + .'* **UDP**'."\n" + .'* **HTTP**'."\n" + .'* **HTTPS**'."\n", + 'type' => 'string', + 'example' => 'HTTPS', + ], + 'LoadBalancerId' => [ + 'description' => 'The ID of the CLB instance.'."\n", + 'type' => 'string', + 'example' => 'lb-bp1b6c719dfa08ex****', + ], + ], + ], + ], + 'TLSVersions' => [ + 'type' => 'array', + 'items' => [ + 'description' => 'The version of the TLS protocol. Valid values: **TLSv1.0**, **TLSv1.1**, **TLSv1.2**, and **TLSv1.3**.'."\n", + 'type' => 'string', + 'example' => 'TLSv1.0', + ], + 'description' => 'The version of the TLS protocol.'."\n", + ], + 'Ciphers' => [ + 'type' => 'array', + 'items' => [ + 'description' => 'The cipher suites supported by the TLS version.'."\n" + ."\n" + .'The specified cipher suites must be supported by at least one TLS protocol version that you specify. For example, if you set the TLSVersions parameter to TLSv1.3, you must specify cipher suites that are supported by this protocol version.'."\n" + ."\n" + .'TLS 1.0 and TLS 1.1 support the following cipher suites:'."\n" + ."\n" + .'* ECDHE-ECDSA-AES128-SHA'."\n" + .'* ECDHE-ECDSA-AES256-SHA'."\n" + .'* ECDHE-RSA-AES128-SHA'."\n" + .'* ECDHE-RSA-AES256-SHA'."\n" + .'* AES128-SHA AES256-SHA'."\n" + .'* DES-CBC3-SHA'."\n" + ."\n" + .'TLS 1.2 supports the following cipher suites:'."\n" + ."\n" + .'* ECDHE-ECDSA-AES128-SHA'."\n" + .'* ECDHE-ECDSA-AES256-SHA'."\n" + .'* ECDHE-RSA-AES128-SHA'."\n" + .'* ECDHE-RSA-AES256-SHA'."\n" + .'* AES128-SHA AES256-SHA'."\n" + .'* DES-CBC3-SHA'."\n" + .'* ECDHE-ECDSA-AES128-GCM-SHA256'."\n" + .'* ECDHE-ECDSA-AES256-GCM-SHA384'."\n" + .'* ECDHE-ECDSA-AES128-SHA256'."\n" + .'* ECDHE-ECDSA-AES256-SHA384'."\n" + .'* ECDHE-RSA-AES128-GCM-SHA256'."\n" + .'* ECDHE-RSA-AES256-GCM-SHA384'."\n" + .'* ECDHE-RSA-AES128-SHA256'."\n" + .'* ECDHE-RSA-AES256-SHA384'."\n" + .'* AES128-GCM-SHA256'."\n" + .'* AES256-GCM-SHA384'."\n" + .'* AES128-SHA256 AES256-SHA256'."\n" + ."\n" + .'TLS 1.3 supports the following cipher suites:'."\n" + ."\n" + .'* TLS_AES\\_128\\_GCM_SHA256'."\n" + .'* TLS_AES\\_256\\_GCM_SHA384'."\n" + .'* TLS_CHACHA20\\_POLY1305\\_SHA256'."\n" + .'* TLS_AES\\_128\\_CCM_SHA256'."\n" + .'* TLS_AES\\_128\\_CCM\\_8\\_SHA256'."\n", + 'type' => 'string', + 'example' => 'ECDHE-ECDSA-AES128-SHA', + ], + 'description' => 'The cipher suites supported by the TLS version.'."\n" + ."\n" + .'TLS 1.0 and TLS 1.1 support the following cipher suites:'."\n" + ."\n" + .'* ECDHE-ECDSA-AES128-SHA'."\n" + .'* ECDHE-ECDSA-AES256-SHA'."\n" + .'* ECDHE-RSA-AES128-SHA'."\n" + .'* ECDHE-RSA-AES256-SHA'."\n" + .'* AES128-SHA AES256-SHA'."\n" + .'* DES-CBC3-SHA'."\n" + ."\n" + .'TLS 1.2 supports the following cipher suites:'."\n" + ."\n" + .'* ECDHE-ECDSA-AES128-SHA'."\n" + .'* ECDHE-ECDSA-AES256-SHA'."\n" + .'* ECDHE-RSA-AES128-SHA'."\n" + .'* ECDHE-RSA-AES256-SHA'."\n" + .'* AES128-SHA AES256-SHA'."\n" + .'* DES-CBC3-SHA'."\n" + .'* ECDHE-ECDSA-AES128-GCM-SHA256'."\n" + .'* ECDHE-ECDSA-AES256-GCM-SHA384'."\n" + .'* ECDHE-ECDSA-AES128-SHA256'."\n" + .'* ECDHE-ECDSA-AES256-SHA384'."\n" + .'* ECDHE-RSA-AES128-GCM-SHA256'."\n" + .'* ECDHE-RSA-AES256-GCM-SHA384'."\n" + .'* ECDHE-RSA-AES128-SHA256'."\n" + .'* ECDHE-RSA-AES256-SHA384'."\n" + .'* AES128-GCM-SHA256'."\n" + .'* AES256-GCM-SHA384'."\n" + .'* AES128-SHA256 AES256-SHA256'."\n" + ."\n" + .'TLS 1.3 supports the following cipher suites:'."\n" + ."\n" + .'* TLS_AES\\_128\\_GCM_SHA256'."\n" + .'* TLS_AES\\_256\\_GCM_SHA384'."\n" + .'* TLS_CHACHA20\\_POLY1305\\_SHA256'."\n" + .'* TLS_AES\\_128\\_CCM_SHA256'."\n" + .'* TLS_AES\\_128\\_CCM\\_8\\_SHA256'."\n", + ], + ], + ], + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'QueryTokenInvalid', + 'errorMessage' => 'The specified token is invalid.', + ], + [ + 'errorCode' => 'QueryTokenNotExist', + 'errorMessage' => 'The specified token is not exist.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"NextToken\\": \\"FFmyTO70tTpLG6I3FmYAXGKPd****\\",\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\",\\n \\"TotalCount\\": 1000,\\n \\"IsTruncated\\": false,\\n \\"TLSCipherPolicies\\": [\\n {\\n \\"Status\\": \\"normal\\",\\n \\"InstanceId\\": \\"tls-bp17elso1h323r****\\",\\n \\"Name\\": \\"TLSPolicy-test****\\",\\n \\"CreateTime\\": 1608273800000,\\n \\"RelateListeners\\": [\\n {\\n \\"Port\\": 80,\\n \\"Protocol\\": \\"HTTPS\\",\\n \\"LoadBalancerId\\": \\"lb-bp1b6c719dfa08ex****\\"\\n }\\n ],\\n \\"TLSVersions\\": [\\n \\"TLSv1.0\\"\\n ],\\n \\"Ciphers\\": [\\n \\"ECDHE-ECDSA-AES128-SHA\\"\\n ]\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\n FFmyTO70tTpLG6I3FmYAXGKPd****\\n CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\n 1000\\n false\\n \\n normal\\n tls-bp17elso1h323r****\\n TLSPolicy-test****\\n 1608273800000\\n \\n 80\\n HTTPS\\n lb-bp1b6c719dfa08ex****\\n \\n TLSv1.0\\n ECDHE-ECDSA-AES128-SHA\\n \\n","errorExample":""}]', + 'title' => 'ListTLSCipherPolicies', + 'summary' => 'Queries Transport Layer Security (TLS) policies.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'CreateAccessControlList' => [ + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'create', + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the ACL.', + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'enumValueTitles' => [], + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'AclName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the ACL. The name must be 1 to 80 characters in length, and can contain letters, digits, periods (.), hyphens (-), forward slashes (/), and underscores (\\_). The name of the ACL that you create must be unique within each region.', + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'rule1', + ], + ], + [ + 'name' => 'AddressIPVersion', + 'in' => 'query', + 'schema' => [ + 'description' => 'The IP version. Valid values: **ipv4** and **ipv6**.'."\n", + 'type' => 'string', + 'required' => false, + 'enumValueTitles' => [], + 'example' => 'ipv4', + 'default' => 'ipv4', + ], + ], + [ + 'name' => 'ResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The resource group ID.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-atstuj3rt******', + ], + ], + [ + 'name' => 'Tag', + 'in' => 'query', + 'allowEmptyValue' => true, + 'style' => 'repeatList', + 'schema' => [ + 'description' => 'The tags.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The tags.'."\n", + 'type' => 'object', + 'properties' => [ + 'Key' => [ + 'description' => 'The key of tag N. 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://`. It cannot start with `acs:` or `aliyun`.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'TestKey', + ], + 'Value' => [ + 'description' => 'The value of tag N. Valid values of N: **1** to **20**. The tag value can be an empty string. The tag value must be 0 to 128 characters in length, and cannot start with `acs:`. It cannot contain `http://` or `https://`.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'TestValue', + ], + ], + 'required' => false, + ], + 'required' => false, + 'maxItems' => 20, + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'AclId' => [ + 'description' => 'The IP version. Valid values: **ipv4** and **ipv6**.'."\n", + 'type' => 'string', + 'example' => 'acl-rj9xpxzcwxrukois****', + ], + 'RequestId' => [ + 'description' => 'The request ID.', + 'type' => 'string', + 'example' => '988CB45E-1643-48C0-87B4-928DDF77EA49', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidAction.RegionNotSupport', + 'errorMessage' => 'The region does not support this action.', + ], + [ + 'errorCode' => 'AclNumberOverLimit', + 'errorMessage' => 'The Acl number has reached to the max quota limit.', + ], + [ + 'errorCode' => 'InvalidResourceGroupId.NotFound', + 'errorMessage' => 'The specified ResourceGroupId is not found.', + ], + [ + 'errorCode' => 'ResourceInConfiguring.Acl', + 'errorMessage' => 'The specified resource is configuring, please try again later.', + ], + [ + 'errorCode' => 'InvalidParam.TagValue ', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'InvalidParam.TagKey', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'SizeLimitExceeded.Tag', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'MissingParam.TagKey', + 'errorMessage' => 'The param MissingParam.TagKey is missing.', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"AclId\\": \\"acl-rj9xpxzcwxrukois****\\",\\n \\"RequestId\\": \\"988CB45E-1643-48C0-87B4-928DDF77EA49\\"\\n}","type":"json"}]', + 'title' => 'CreateAccessControlList', + 'summary' => 'Creates an access control list (ACL).', + 'description' => 'You can create multiple ACLs. Each ACL can contain one or more IP addresses or CIDR blocks. Before you create an ACL, take note of the following limits:'."\n" + ."\n" + .'* An account can have a maximum of 50 ACLs in each region.'."\n" + .'* You can add a maximum of 50 IP addresses or CIDR blocks at a time within an account.'."\n" + .'* Each ACL can contain a maximum of 300 IP addresses or CIDR blocks.'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'AddAccessControlListEntry' => [ + 'summary' => 'Adds IP entries to an access control list (ACL).', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'readAndWrite', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'create', + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the network ACL.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'AclId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the network ACL.'."\n", + 'type' => 'string', + 'required' => false, + 'docRequired' => true, + 'example' => 'acl-bp1l0kk4gxce43kze*****', + ], + ], + [ + 'name' => 'AclEntrys', + 'in' => 'query', + 'schema' => [ + 'description' => 'The configuration of the network ACL. Valid values:'."\n" + ."\n" + .'* **entry**: the IP entries that you want to add to the network ACL. You can add CIDR blocks. Separate multiple CIDR blocks with commas (,).'."\n" + .'* **comment**: the comment on the network ACL.'."\n" + ."\n" + .'> You can add at most 50 IP entries to a network ACL in each call. If the IP entry that you want to add to a network ACL already exists, the IP entry is not added. The IP entries that you add must be CIDR blocks.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '[{"entry":"10.0.**.**/24","comment":"privaterule1"},{"entry":"192.168.**.**/16","comment":"privaterule2"}]', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '988CB45E-1643-48C0-87B4-928DDF77EA4', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParam.AclEntryExists', + 'errorMessage' => 'The specified aclEntry already exists in the acl.', + ], + [ + 'errorCode' => 'IllegalEntry', + 'errorMessage' => 'Entry version is conflict to the acl version.', + ], + [ + 'errorCode' => 'AclEntryIllegal', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'InvalidEntry', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'InvalidParam.Comment', + 'errorMessage' => 'The specified comment is invalid.', + ], + [ + 'errorCode' => 'AclEntryExceedLimit', + 'errorMessage' => 'The maximum number of ACL entries is exceeded.', + ], + [ + 'errorCode' => 'SystemBusy', + 'errorMessage' => 'The system is busy.', + ], + ], + 503 => [ + [ + 'errorCode' => 'ServiceUnavailable', + 'errorMessage' => 'Service is unavailable now.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"988CB45E-1643-48C0-87B4-928DDF77EA4\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 988CB45E-1643-48C0-87B4-928DDF77EA4\\n","errorExample":""}]', + 'title' => 'AddAccessControlListEntry', + 'description' => 'Each network ACL can contain one or more IP addresses or CIDR blocks. Take note of the following limits on network ACLs:'."\n" + ."\n" + .'* The number of IP entries that can be added to a network ACL with each Alibaba Cloud account at a time: 50'."\n" + .'* The maximum number of IP entries that each network ACL can contain: 300'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'DeleteAccessControlList' => [ + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'delete', + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the ACL.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~27584~~) operation to query the most recent region list.'."\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' => 'acl-bp1l0kk4gxce43kz******', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '988CB45E-1643-48C0-87B4-928DDF77EA49', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'OperationFailed.AclBindedWithVip', + 'errorMessage' => 'The ACL has binded with vip.', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"988CB45E-1643-48C0-87B4-928DDF77EA49\\"\\n}","type":"json"}]', + 'title' => 'DeleteAccessControlList', + 'summary' => 'Deletes an access control list (ACL).', + 'description' => 'You can delete an ACL only if it is not associated with a listener.'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'SetAccessControlListAttribute' => [ + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'update', + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the ACL.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~27584~~) operation to query the most recent region list.'."\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' => 'acl-bp1l0kk4gxce43k******', + ], + ], + [ + 'name' => 'AclName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ACL name.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'test1', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '988CB45E-1643-48C0-87B4-928DDF77EA49', + ], + ], + 'description' => '', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"988CB45E-1643-48C0-87B4-928DDF77EA49\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 988CB45E-1643-48C0-87B4-928DDF77EA49\\n","errorExample":""}]', + 'title' => 'SetAccessControlListAttribute', + 'summary' => 'Renames an access control list (ACL).', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'DescribeAccessControlListAttribute' => [ + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'get', + 'abilityTreeNodes' => [ + 'FEATUREslbEDXHGI', + 'FEATUREslb3KZE2S', + ], + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the ACL.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~2401682~~) operation to query the most recent region list.', + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'AclId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the ACL that you want to query.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'acl-bp1ut10zzvh1y8dfs****', + ], + ], + [ + 'name' => 'AclEntryComment', + 'in' => 'query', + 'schema' => [ + 'description' => 'The remarks of the ACL entry.', + 'type' => 'string', + 'required' => false, + 'example' => 'test', + ], + ], + [ + 'name' => 'Page', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of the page to return.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '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', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'AclId' => [ + 'description' => 'The ACL ID.'."\n", + 'type' => 'string', + 'example' => 'acl-bp1ut10zzvh1y8dfs****', + ], + 'Tags' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Tag' => [ + 'description' => 'The tags added to the ACL.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The tags.'."\n", + 'type' => 'object', + 'properties' => [ + 'TagKey' => [ + 'description' => 'The tag key.'."\n", + 'type' => 'string', + 'example' => 'TestKey', + ], + 'TagValue' => [ + 'description' => 'The tag value.'."\n", + 'type' => 'string', + 'example' => 'TestValue', + ], + ], + ], + ], + ], + ], + 'AddressIPVersion' => [ + 'description' => 'The IP version. Valid values: **ipv4** and **ipv6**.'."\n", + 'type' => 'string', + 'example' => 'ipv4', + ], + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => 'C9906A1D-86F7-4C9C-A369-54DA42EF206A', + ], + 'ResourceGroupId' => [ + 'description' => 'The resource group ID.'."\n", + 'type' => 'string', + 'example' => 'rg-acfmz3jksig****', + ], + 'AclName' => [ + 'description' => 'The ACL name.', + 'type' => 'string', + 'example' => 'doctest', + ], + 'AclEntrys' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'AclEntry' => [ + 'description' => 'The information about the access control policy.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'AclEntryComment' => [ + 'description' => 'The remarks of the ACL entry.', + 'type' => 'string', + 'example' => 'test', + ], + 'AclEntryIP' => [ + 'description' => 'The IP entry in the ACL.'."\n", + 'type' => 'string', + 'example' => '192.168.0.1', + ], + ], + 'description' => 'The information about the access control policy.'."\n", + ], + ], + ], + ], + 'RelatedListeners' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'RelatedListener' => [ + 'description' => 'The listeners with which the ACL is associated.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The listeners that are associated with the network ACL.'."\n", + 'type' => 'object', + 'properties' => [ + 'ListenerPort' => [ + 'description' => 'The frontend port of the listener with which the ACL is associated.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '443', + ], + 'AclType' => [ + 'description' => 'The type of ACL. Valid values:'."\n" + ."\n" + .'* **black**'."\n" + .'* **white**'."\n", + 'type' => 'string', + 'example' => 'white', + ], + 'Protocol' => [ + 'description' => 'The type of protocol that the associated listener uses.'."\n", + 'type' => 'string', + 'example' => 'https', + ], + 'LoadBalancerId' => [ + 'description' => 'The CLB instance ID.'."\n", + 'type' => 'string', + 'example' => 'lb-bp1qpzldlm38bnexl****', + ], + ], + ], + ], + ], + ], + 'CreateTime' => [ + 'description' => 'The time when the ACL was created. The time follows the `YYYY-MM-DDThh:mm:ssZ` format.', + 'type' => 'string', + 'example' => '2022-08-31T02:49:05Z', + ], + 'TotalAclEntry' => [ + 'description' => 'The total number of ACL entries.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '200', + ], + ], + 'description' => '', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"AclId\\": \\"acl-bp1ut10zzvh1y8dfs****\\",\\n \\"Tags\\": {\\n \\"Tag\\": [\\n {\\n \\"TagKey\\": \\"TestKey\\",\\n \\"TagValue\\": \\"TestValue\\"\\n }\\n ]\\n },\\n \\"AddressIPVersion\\": \\"ipv4\\",\\n \\"RequestId\\": \\"C9906A1D-86F7-4C9C-A369-54DA42EF206A\\",\\n \\"ResourceGroupId\\": \\"rg-acfmz3jksig****\\",\\n \\"AclName\\": \\"doctest\\",\\n \\"AclEntrys\\": {\\n \\"AclEntry\\": [\\n {\\n \\"AclEntryComment\\": \\"访问控制条目。\\",\\n \\"AclEntryIP\\": \\"192.168.0.1\\"\\n }\\n ]\\n },\\n \\"RelatedListeners\\": {\\n \\"RelatedListener\\": [\\n {\\n \\"ListenerPort\\": 443,\\n \\"AclType\\": \\"white\\",\\n \\"Protocol\\": \\"https\\",\\n \\"LoadBalancerId\\": \\"lb-bp1qpzldlm38bnexl****\\"\\n }\\n ]\\n },\\n \\"CreateTime\\": \\"2022-08-31T02:49:05Z\\",\\n \\"TotalAclEntry\\": 200\\n}","errorExample":""},{"type":"xml","example":"\\n acl-bp1ut10zzvh1y8dfs****\\n \\n TestKey\\n TestValue\\n \\n ipv4\\n C9906A1D-86F7-4C9C-A369-54DA42EF206A\\n rg-acfmz3jksig****\\n doctest\\n \\n 访问控制条目。\\n 192.168.0.1\\n \\n \\n 443\\n white\\n https\\n lb-bp1qpzldlm38bnexl****\\n \\n 2022-08-31T02:49:05Z\\n 200\\n","errorExample":""}]', + 'title' => 'DescribeAccessControlListAttribute', + 'summary' => 'Queries the configuration of an access control list (ACL).', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'DescribeAccessControlLists' => [ + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'list', + 'abilityTreeNodes' => [ + 'FEATUREslbEDXHGI', + 'FEATUREslb3KZE2S', + ], + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the ACL.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~27584~~) operation to query the most recent region list.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'AclName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ACL name. The ACL name. The name must be 1 to 80 characters in length, and can contain letters, digits, periods (.), hyphens (-), forward slashes (/), and underscores (\\_). The name of each ACL must be unique within a region. Fuzzy match is supported.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rule1', + ], + ], + [ + 'name' => 'AddressIPVersion', + 'in' => 'query', + 'schema' => [ + 'description' => 'The IP version of the Classic Load Balancer (CLB) instance with which the ACL is associated. Valid values:'."\n" + ."\n" + .'* **ipv4**'."\n" + .'* **ipv6**'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'ipv4', + ], + ], + [ + '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', + ], + ], + [ + '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' => 'ResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The resource group ID.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-atstuj3rtop4****', + ], + ], + [ + 'name' => 'Tag', + 'in' => 'query', + 'style' => 'repeatList', + 'schema' => [ + 'description' => 'The tags.'."\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 must be 1 to 64 characters in length and cannot start with `aliyun` or `acs:`. It cannot contain `http://` or `https://`.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'test', + ], + 'Value' => [ + 'description' => 'The tag value. You can specify at most 20 tag values. The tag value cannot be an empty string.'."\n" + ."\n" + .'The tag value must be 1 to 128 characters in length and cannot start with `acs:` or `aliyun`. It cannot contain `http://` or `https://`.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '1', + ], + ], + 'required' => false, + ], + 'required' => false, + 'maxItems' => 20, + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'PageNumber' => [ + 'description' => 'The number of the returned page. Pages start from page **1**. Default value: **1**.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1', + ], + 'PageSize' => [ + 'description' => 'The number of entries returned on each page. Maximum value: **50**. Default value: **10**.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '10', + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '3CB646EF-6147-4566-A9D9-CE8FBE86F971', + ], + 'TotalCount' => [ + 'description' => 'The total number of ACLs.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1', + ], + 'Count' => [ + 'description' => 'The number of ACLs on the current page.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1', + ], + 'Acls' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Acl' => [ + 'description' => 'A list of ACLs.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'AclId' => [ + 'description' => 'The ACL ID.'."\n", + 'type' => 'string', + 'example' => 'acl-bp1l0kk4gxce43k*****', + ], + 'AddressIPVersion' => [ + 'description' => 'The IP version that is used by the CLB instance associated with the ACL.'."\n", + 'type' => 'string', + 'example' => 'ipv4', + ], + 'AclName' => [ + 'description' => 'The ACL name.'."\n", + 'type' => 'string', + 'example' => 'rule1', + ], + 'ResourceGroupId' => [ + 'description' => 'The resource group ID.'."\n", + 'type' => 'string', + 'example' => 'rg-jfenfbp1lhl0****', + ], + 'Tags' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Tag' => [ + 'description' => 'The list of tags added to the network ACL. The value of this parameter must be a STRING list in the JSON format.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'TagValue' => [ + 'description' => 'The tag value.'."\n", + 'type' => 'string', + 'example' => '1', + ], + 'TagKey' => [ + 'description' => 'The tag key.', + 'type' => 'string', + 'example' => 'test', + ], + ], + 'example' => '{"Key":"test","Value":"value"}', + ], + ], + ], + ], + 'CreateTime' => [ + 'description' => 'The time when the CLB instance was created. The time follows the `YYYY-MM-DDThh:mm:ssZ` format.'."\n", + 'type' => 'string', + 'example' => '2022-08-31T02:49:05Z', + ], + ], + ], + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidResourceGroupId.NotFound', + 'errorMessage' => 'The specified ResourceGroupId is not found.', + ], + [ + 'errorCode' => 'LocationServiceTimeout', + 'errorMessage' => 'Location service connection timeout. Please try again later.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"PageNumber\\": 1,\\n \\"PageSize\\": 10,\\n \\"RequestId\\": \\"3CB646EF-6147-4566-A9D9-CE8FBE86F971\\",\\n \\"TotalCount\\": 1,\\n \\"Count\\": 1,\\n \\"Acls\\": {\\n \\"Acl\\": [\\n {\\n \\"AclId\\": \\"acl-bp1l0kk4gxce43k*****\\",\\n \\"AddressIPVersion\\": \\"ipv4\\",\\n \\"AclName\\": \\"rule1\\",\\n \\"ResourceGroupId\\": \\"rg-jfenfbp1lhl0****\\",\\n \\"Tags\\": {\\n \\"Tag\\": [\\n {\\n \\"TagValue\\": \\"1\\",\\n \\"TagKey\\": \\"test\\"\\n }\\n ]\\n },\\n \\"CreateTime\\": \\"2022-08-31T02:49:05Z\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 1\\n 10\\n 3CB646EF-6147-4566-A9D9-CE8FBE86F971\\n 1\\n 1\\n \\n acl-bp1l0kk4gxce43k*****\\n ipv4\\n rule1\\n rg-jfenfbp1lhl0****\\n \\n 1\\n test\\n \\n 2022-08-31T02:49:05Z\\n \\n","errorExample":""}]', + 'title' => 'DescribeAccessControlLists', + 'summary' => 'Queries access control lists (ACLs).', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'RemoveAccessControlListEntry' => [ + '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 ID of the region where the network ACL is created.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~27584~~) operation to query the most recent region list.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'AclId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the network ACL.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'acl-bp1l0kk4gxce43k******', + ], + ], + [ + 'name' => 'AclEntrys', + 'in' => 'query', + 'schema' => [ + 'description' => 'The IP entries that you want to remove from the network ACL. Valid values:'."\n" + ."\n" + .'* **entry**: the IP address or CIDR block that you want to remove from the network ACL. Separate multiple IP addresses or CIDR blocks with commas (,).'."\n" + .'* **comment**: the description of the network ACL.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '[{"entry":"10.0.10.0/24","comment":"privaterule1"}]', + ], + ], + ], + 'responses' => [ + 200 => [ + 'headers' => [], + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => '988CB45E-1643-48C0-87B4-928DDF77EA49', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'SystemBusy', + 'errorMessage' => 'The system is busy.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"988CB45E-1643-48C0-87B4-928DDF77EA49\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 988CB45E-1643-48C0-87B4-928DDF77EA49\\n","errorExample":""}]', + 'title' => 'RemoveAccessControlListEntry', + 'summary' => 'Removes IP entries from the network access control list (ACL) of a Classic Load Balancer (CLB) instance.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'SetListenerAccessControlStatus' => [ + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'update', + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region where the Classic Load Balancer (CLB) instance is created.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~27584~~) operation to query the most recent region list.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'LoadBalancerId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the CLB instance.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'lb-8vb86hxixo8lvsja8****', + ], + ], + [ + 'name' => 'ListenerPort', + 'in' => 'query', + 'schema' => [ + 'description' => 'The frontend port that is used by the CLB instance.'."\n" + ."\n" + .'Valid values: **1 to 65535**.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => true, + 'docRequired' => true, + 'maximum' => '65535', + 'minimum' => '1', + 'example' => '80', + ], + ], + [ + 'name' => 'AccessControlStatus', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to enable the whitelist. Valid values:'."\n" + ."\n" + .'* **open_white_list**: enables the whitelist.'."\n" + .'* **close**: disables the whitelist.'."\n" + ."\n" + .'> After the whitelist is enabled, if no IP address is added to the whitelist, the CLB instance does not distribute network traffic.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'open_white_list', + ], + ], + [ + 'name' => 'ListenerProtocol', + 'in' => 'query', + 'schema' => [ + 'description' => 'The frontend protocol that is used by the CLB instance.'."\n" + ."\n" + .'> This parameter is required when listeners that use different protocols listen on the same port.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'https', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'TooManyListeners', + 'errorMessage' => 'More than 1 listener is found, please be more specified', + ], + [ + 'errorCode' => 'OperationFailed.ActionNotSupport', + 'errorMessage' => 'The loadbalancer of ipv6 does not support such action.', + ], + [ + 'errorCode' => 'OperationUnsupported.SetAccessControl', + 'errorMessage' => 'The singleTunnel/anyTunnel loadbalancer does not support config AccessControlList.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\"\\n}","errorExample":""},{"type":"xml","example":"\\n CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\n","errorExample":""}]', + 'title' => 'SetListenerAccessControlStatus', + 'summary' => 'Enables or disables the whitelist of a listener.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'RemoveListenerWhiteListItem' => [ + '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 where the Classic Load Balancer (CLB) instance is created.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~27584~~) operation to query the most recent region list.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'LoadBalancerId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the CLB instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'lb-8vb86hxixo8lvsja8****', + ], + ], + [ + 'name' => 'ListenerPort', + 'in' => 'query', + 'schema' => [ + 'description' => 'The listening port.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => true, + 'maximum' => '65535', + 'minimum' => '1', + 'example' => '80', + ], + ], + [ + 'name' => 'SourceItems', + 'in' => 'query', + 'schema' => [ + 'description' => 'The list of IP addresses or CIDR blocks that you want to remove from the whitelist. Separate multiple IP addresses or CIDR blocks with commas (,).'."\n" + ."\n" + .'> If all IP addresses are removed from the whitelist, the listener does not forward requests.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '192.168.XX.XX', + ], + ], + [ + 'name' => 'ListenerProtocol', + 'in' => 'query', + 'schema' => [ + 'description' => 'The frontend protocol that is used by the CLB instance.'."\n" + ."\n" + .'> This parameter is required when listeners that use different protocols listen on the same port.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'https', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'TooManyListeners', + 'errorMessage' => 'More than 1 listener is found, please be more specified', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\"\\n}","errorExample":"{\\"Code\\":\\"InvalidParameter\\",\\"Message\\":\\"The specified parameter is not valid.\\",\\"HostId\\":\\"slb-pop.aliyuncs.com\\",\\"RequestId\\":\\"0669D684-69D8-408E-A4FA-B9011E0F4E66\\"}"},{"type":"xml","example":"\\n\\n\\t\\tCEF72CEB-54B6-4AE8-B225-F876FF7BA984\\n","errorExample":""}]', + 'title' => 'RemoveListenerWhiteListItem', + 'summary' => 'Removes IP addresses or CIDR blocks from the whitelist of a listener.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'AddListenerWhiteListItem' => [ + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'create', + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the region where the Classic Load Balancer (CLB) instance is created.'."\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' => 'LoadBalancerId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the CLB instance.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'lb-bp1o94dp5i6ea*******', + ], + ], + [ + 'name' => 'ListenerPort', + 'in' => 'query', + 'schema' => [ + 'description' => 'The frontend port that is used by the CLB instance.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => true, + 'docRequired' => true, + 'maximum' => '65535', + 'minimum' => '1', + 'example' => '80', + ], + ], + [ + 'name' => 'SourceItems', + 'in' => 'query', + 'schema' => [ + 'description' => 'The IP addresses or CIDR blocks that you want to add to the whitelist.'."\n" + ."\n" + .'This parameter takes effect when the **AccessControlStatus** parameter of the listener is set to **open_white_list**.'."\n" + ."\n" + .'Separate multiple IP addresses or CIDR blocks with commas (,).'."\n" + ."\n" + .'You cannot enter **0.0.0.0** or **0.0.0.0/0**. To disable access control, you can call the [SetListenerAccessControlStatus](~~27599~~) operation to set the value of the **AccessControlStatus** parameter to **close**.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => '192.168.XX.XX', + ], + ], + [ + 'name' => 'ListenerProtocol', + 'in' => 'query', + 'schema' => [ + 'description' => 'The frontend protocol that is used by the CLB instance.'."\n" + ."\n" + .'> This parameter is required when listeners that use different protocols listen on the same port.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'https', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => 'CEF72CEB-54B6-4AE8-B225-F876FF7BA984', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'TooManyListeners', + 'errorMessage' => 'More than 1 listener is found, please be more specified', + ], + [ + 'errorCode' => 'Operation.NotAllowed', + 'errorMessage' => 'WhiteList is Disabled while Acl is Enabled', + ], + [ + 'errorCode' => 'InvalidAddress', + 'errorMessage' => '%s,%s', + ], + [ + 'errorCode' => 'InvalidParameter.SourceItems', + 'errorMessage' => '%s.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\"\\n}","errorExample":""},{"type":"xml","example":"\\n CEF72CEB-54B6-4AE8-B225-F876FF7BA984\\n","errorExample":""}]', + 'title' => 'AddListenerWhiteListItem', + 'summary' => 'Adds IP addresses to the whitelist of a listener.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'DescribeListenerAccessControlAttribute' => [ + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'get', + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region where the Classic Load Balancer (CLB) instance is created.'."\n" + ."\n" + .'You can query the region ID from the [Regions and zones](~~40654~~) list or by calling the [DescribeRegions](~~25609~~) operation.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'LoadBalancerId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The CLB instance ID.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'lb-8vb86hxixo8lvsja8****', + ], + ], + [ + 'name' => 'ListenerPort', + 'in' => 'query', + 'schema' => [ + 'description' => 'The frontend port that is used by the CLB instance.'."\n" + ."\n" + .'Valid values: **1 to 65535**.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => true, + 'example' => '80', + ], + ], + [ + 'name' => 'ListenerProtocol', + 'in' => 'query', + 'schema' => [ + 'description' => 'The frontend protocol that is used by the CLB instance.'."\n" + ."\n" + .'> This parameter is required if the same port is specified for listeners of different protocols.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'https', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'SourceItems' => [ + 'description' => 'The queried ACLs.'."\n", + 'type' => 'string', + 'example' => '192.168.XX.XX', + ], + 'AccessControlStatus' => [ + 'description' => 'Indicates whether the whitelist is enabled. Valid values:'."\n" + ."\n" + .'* **open_white_list**: the whitelist is enabled.'."\n" + .'* **close**: the whitelist is disabled.'."\n", + 'type' => 'string', + 'example' => 'open_white_list', + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '365F4154-92F6-4AE4-92F8-7FF34B540710', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'TooManyListeners', + 'errorMessage' => 'More than 1 listener is found, please be more specified', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"SourceItems\\": \\"192.168.XX.XX\\",\\n \\"AccessControlStatus\\": \\"open_white_list\\",\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF34B540710\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 192.168.XX.XX\\n open_white_list\\n 365F4154-92F6-4AE4-92F8-7FF34B540710\\n","errorExample":""}]', + 'title' => 'DescribeListenerAccessControlAttribute', + 'summary' => 'Queries the whitelist configurations of a listener.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'AddTags' => [ + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'systemTags' => [ + 'operationType' => 'create', + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the region to which the SLB instance belongs.', + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'LoadBalancerId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Server Load Balancer (SLB) instance.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'lb-bp1kuzyb******', + ], + ], + [ + 'name' => 'Tags', + 'in' => 'query', + 'schema' => [ + 'description' => 'The list of tags that need to be added.', + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => '[{"TagKey":"Key1","TagValue":"Value1"},{"TagKey":"Key2","TagValue":"Value2"}]', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '365F4154-92F6-4AE4-92F8-7FF34B540710', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter.TagValue', + 'errorMessage' => 'The specified tag value is illegal.', + ], + [ + 'errorCode' => 'QuotaExceeded.Tag', + 'errorMessage' => 'The number of Tag exceeds the limit.', + ], + [ + 'errorCode' => 'InvalidParameter.TagKey', + 'errorMessage' => 'The specified tag key is invalid.', + ], + [ + 'errorCode' => 'MissingParameter.Tags', + 'errorMessage' => 'The parameter Tags should not be null.', + ], + [ + 'errorCode' => 'Duplicate.TagKey', + 'errorMessage' => 'The Tag.N.Key contain duplicate key.', + ], + [ + 'errorCode' => 'NoPermission.Operator', + 'errorMessage' => 'The operator is not permission for this operate.', + ], + [ + 'errorCode' => 'QuotaExceed.TagsPerResource', + 'errorMessage' => 'The maximum number of tags for each resource is exceeded.', + ], + [ + 'errorCode' => 'InvalidOperation.ConcurrentModification', + 'errorMessage' => 'The resource %s is modified concurrently.', + ], + [ + 'errorCode' => 'InnerRateLimiting', + 'errorMessage' => 'Internal service rate limiting, please try again later.', + ], + [ + 'errorCode' => 'SystemError', + 'errorMessage' => 'The request processing has failed due to unknow error, exception or failure.', + ], + [ + 'errorCode' => 'InternalInvokeError', + 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF34******\\"\\n}","type":"json"}]', + 'title' => 'AddTags', + 'summary' => 'Adds tags to an SLB instance.', + 'description' => '# Limits'."\n" + ."\n" + .'Before you call this API, note the following limits:'."\n" + ."\n" + .'* You can add up to 10 tags to each SLB instance.'."\n" + .'* You can add up to five pairs of tags at a time.'."\n" + .'* All the tags and keys added to an SLB instance must be unique.'."\n" + .'* If you add a tag of which the key is the same as that of an existing tag, but the value is different, the new tag overwrites the existing one.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'DescribeTags' => [ + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the Server Load Balancer (SLB) instance.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'LoadBalancerId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The SLB instance ID.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'lb-bp1kuzybm******', + ], + ], + [ + 'name' => 'Tags', + 'in' => 'query', + 'schema' => [ + 'description' => 'The tags that you want to query.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '[{"TagKey":"Key1","TagValue":"Value1"},{"TagKey":"Key2","TagValue":"Value2"}]', + ], + ], + [ + 'name' => 'DistinctKey', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether the tags contain distinct keys.'."\n" + ."\n" + .'Valid values: true and false.'."\n", + 'type' => 'boolean', + 'required' => false, + 'example' => 'false', + 'default' => 'false', + ], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of entries to return on each page. Default value: 50. Maximum value: 100.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '50', + 'default' => '50', + ], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of the page to return. Minimum value: 1. Default value: 1.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '1', + 'default' => '1', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '365F4154-92F6-4AE4-92F8-7FF34B540710', + ], + 'PageSize' => [ + 'description' => 'The number of entries returned per page. Default value: 50. Maximum value: 100.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '50', + ], + 'PageNumber' => [ + 'description' => 'The number of the returned page. Minimum value: 1. Default value: 1.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1', + ], + 'TotalCount' => [ + 'description' => 'The number of instances returned.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1', + ], + 'TagSets' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'TagSet' => [ + 'description' => 'The tags that are queried.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'TagValue' => [ + 'description' => 'The tag value.'."\n", + 'type' => 'string', + 'example' => 'api', + ], + 'InstanceCount' => [ + 'description' => 'The number of instances to which the tag is added.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '10', + ], + 'TagKey' => [ + 'description' => 'The tag key.'."\n", + 'type' => 'string', + 'example' => 'test', + ], + ], + ], + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'NoPermission.Operator', + 'errorMessage' => 'The operator is not permission for this operate.', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF3******\\",\\n \\"PageSize\\": 50,\\n \\"PageNumber\\": 1,\\n \\"TotalCount\\": 1,\\n \\"TagSets\\": {\\n \\"TagSet\\": [\\n {\\n \\"TagValue\\": \\"api\\",\\n \\"InstanceCount\\": 10,\\n \\"TagKey\\": \\"test\\"\\n }\\n ]\\n }\\n}","type":"json"}]', + 'title' => 'DescribeTags', + 'summary' => 'Queries tags.', + 'description' => 'Take note of the following items:'."\n" + ."\n" + .'* The system queries tags based on the instance ID, tag key, and tag value specified by you.'."\n" + .'* If the logical relationship among the specified conditions is AND, only tags that match all the specified conditions are returned.'."\n" + .'* If the Tagkey parameter is specified and but Tagvalue parameter is not specified, all tags that contain the specified tag key are returned.'."\n" + .'* If you specify the Tagvalue parameter in a request, you must also specify the Tagkey parameter in the request.'."\n" + .'* If you specify both the Tagkey and Tagvalue parameters, only tags that contain the specified keys and values are returned.'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'ListTagResources' => [ + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'get', + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the CLB instance.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~27584~~) operation to query the most recent region list.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The type of the resource. Valid values:'."\n" + ."\n" + .'* **instance**: a CLB instance'."\n" + .'* **certificate**: a certificate'."\n" + .'* **acl**: an access control list (ACL)'."\n" + .'* **listener**: a listener'."\n" + .'* **vservergroup**: a vServer group'."\n" + .'* **masterslaveservergroup**: a primary/secondary server group'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'instance', + ], + ], + [ + 'name' => 'NextToken', + 'in' => 'query', + 'schema' => [ + 'description' => 'The token that determines the start point of the query. Valid values:'."\n" + ."\n" + .'* If this is your first query or no subsequent 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' => 'caeba0bbb2be03f84eb48b699f0a****', + ], + ], + [ + 'name' => 'ResourceId', + 'in' => 'query', + 'style' => 'repeatList', + 'schema' => [ + 'description' => 'The resource ID. You can specify up to 20 resources.'."\n" + ."\n" + .'> The value of **ResourceId** of a **listener** is **LoadBalancerId_Listener protocol_Port**, where LoadBalancerId is the ID of the CLB instance and port is the listener port. Example: lb-bp1qnnvj18yy6h\\*\\*\\*\\*\\_http\\_80.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The resource ID. You can specify up to 20 resources.'."\n" + ."\n" + .'> The value of **ResourceId** of a **listener** is **LoadBalancerId_Listener protocol_Port**, where LoadBalancerId is the ID of the CLB instance and port is the listener port. Example: lb-bp1qnnvj18yy6h\\*\\*\\*\\*\\_http\\_80.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'lb-bp1qnnvj18yy6h****', + ], + 'required' => false, + 'example' => 'lb-bp1qnnvj18yy6h******', + 'maxItems' => 51, + ], + ], + [ + 'name' => 'Tag', + 'in' => 'query', + 'style' => 'repeatList', + 'schema' => [ + 'description' => 'The tags.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'Key' => [ + 'description' => 'The tag key of the resource. You can specify up to 20 tag keys.'."\n" + ."\n" + .'The tag key cannot be an empty string. The tag key must be 1 to 64 characters in length and cannot start with `aliyun` or `acs:`. The tag key 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 cannot be an empty string.'."\n" + ."\n" + .'The tag value can be up to 128 characters in length and cannot start with `acs:` or `aliyun`. The tag value cannot contain `http://` or `https://`.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'FinanceJoshua', + ], + ], + 'required' => false, + ], + 'required' => false, + 'maxItems' => 21, + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'NextToken' => [ + 'description' => 'The token that determines the start point of the query. Valid values:'."\n" + ."\n" + .'* If **NextToken** is empty, it indicates that no subsequent 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' => 'caeba0bbb2be03f84eb48b699f0a****', + ], + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => 'DE65F6B7-7566-4802-9007-96F2494AC512', + ], + 'TagResources' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'TagResource' => [ + 'description' => 'The resources to which the tags are added.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'TagValue' => [ + 'description' => 'The tag value.'."\n", + 'type' => 'string', + 'example' => 'FinanceJoshua', + ], + 'ResourceType' => [ + 'description' => 'The resource type.'."\n", + 'type' => 'string', + 'example' => 'instance', + ], + 'ResourceId' => [ + 'description' => 'The resource ID.'."\n", + 'type' => 'string', + 'example' => 'lb-bp16qjewdsunr4****', + ], + 'TagKey' => [ + 'description' => 'The tag key.'."\n", + 'type' => 'string', + 'example' => 'FinanceDept', + ], + ], + ], + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'TagTypeNotSame', + 'errorMessage' => 'The category of tags in the same request must be the same.', + ], + [ + 'errorCode' => 'ResourceNotExist', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'QueryTokenNotExist', + 'errorMessage' => 'The specified NextToken does not exist.', + ], + [ + 'errorCode' => 'InvalidParam.NextToken', + 'errorMessage' => 'The specified NextToken is invalid.', + ], + [ + 'errorCode' => 'InvalidParam.Scope', + 'errorMessage' => 'The specified Scope is invalid.', + ], + [ + 'errorCode' => 'InvalidParam.ResourceType', + 'errorMessage' => 'The specified ResourceType is invalid.', + ], + [ + 'errorCode' => 'InvalidParam.TagKey', + 'errorMessage' => 'The specified TagKey is invalid.', + ], + [ + 'errorCode' => 'InvalidParam.TagValue', + 'errorMessage' => 'The specified TagValue is invalid.', + ], + [ + 'errorCode' => 'InvalidParam.TagKeyOrValue', + 'errorMessage' => 'The specified TagKey or TagValue is invalid.', + ], + [ + 'errorCode' => 'InvalidParam.TagOwnerUid', + 'errorMessage' => 'The specified TagOwnerUid is invalid.', + ], + [ + 'errorCode' => 'InvalidParam.TagOwnerBid', + 'errorMessage' => 'The specified TagOwnerBid is invalid.', + ], + [ + 'errorCode' => 'MissingParam.Scope', + 'errorMessage' => 'The parameter Scope is required.', + ], + [ + 'errorCode' => 'MissingParam.TagOwnerUid', + 'errorMessage' => 'The parameter TagOwnerUid is required.', + ], + [ + 'errorCode' => 'MissingParam.TagOwnerBid', + 'errorMessage' => 'The parameter TagOwnerBid is required.', + ], + [ + 'errorCode' => 'InvalidParameter.RegionId', + 'errorMessage' => 'The specified RegionId does not exist.', + ], + [ + 'errorCode' => 'MissingParam.TagOrResourceId', + 'errorMessage' => 'The parameter Tag or ResourceId is required at least one.', + ], + [ + 'errorCode' => 'SizeLimitExceeded.ResourceId', + 'errorMessage' => 'The maximum size of ResourceId is exceeded.', + ], + [ + 'errorCode' => 'SizeLimitExceeded.Tag', + 'errorMessage' => 'The maximum size of Tag is exceeded.', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"NextToken\\": \\"caeba0bbb2be03f84eb48b699f0a****\\",\\n \\"RequestId\\": \\"DE65F6B7-7566-4802-9007-96F2494AC512\\",\\n \\"TagResources\\": {\\n \\"TagResource\\": [\\n {\\n \\"TagValue\\": \\"FinanceJoshua\\",\\n \\"ResourceType\\": \\"instance\\",\\n \\"ResourceId\\": \\"lb-bp16qjewdsunr4****\\",\\n \\"TagKey\\": \\"FinanceDept\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n caeba0bbb2be03f84eb48b699f0a****\\n DE65F6B7-7566-4802-9007-96F2494AC512\\n \\n FinanceJoshua\\n instance\\n lb-bp16qjewdsunr4****\\n FinanceDept\\n \\n","errorExample":""}]', + 'title' => 'ListTagResources', + 'summary' => 'Queries the tags that are added to resources.', + 'description' => '* Set **ResourceId.N** or **Tag.N** that consists of **Tag.N.Key** and **Tag.N.Value** in the request to specify the object to be queried.'."\n" + .'* **Tag.N** is a resource tag that consists of a key-value pair. If you set only **Tag.N.Key**, all tag values that are associated with the specified tag key are returned. If you set only **Tag.N.Value**, an error message is returned.'."\n" + .'* If you set **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' => ' ', + ], + 'TagResources' => [ + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the region where the Server Load Balancer (SLB) instance is created.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~27584~~) operation to query the most recent region list.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The type of the resource. Valid values:'."\n" + ."\n" + .'* **instance**: a Server Load Balancer (SLB) instance'."\n" + .'* **certificate**: a certificate'."\n" + .'* **acl**: an access control list (ACL)'."\n" + .'* **listener**: a listener'."\n" + .'* **vservergroup**: a vServer group'."\n" + .'* **masterslaveservergroup**: a primary/secondary server group'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'instance', + ], + ], + [ + 'name' => 'ResourceId', + 'in' => 'query', + 'style' => 'repeatList', + 'schema' => [ + 'description' => 'The ID of the resource. You can specify at most 20 resources.'."\n" + ."\n" + .'> Set **ResourceId** of the **listener** to **LoadBalancerId_Listener protocol_Port**. Set LoadBalancerId to the ID of the SLB instance, and Port to the listener port. Example: lb-bp1snb10sbml4\\*\\*\\*\\*\\_http\\_80.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The ID of the resource. You can specify at most 20 resources.'."\n" + ."\n" + .'> Set **ResourceId** of the **listener** to **LoadBalancerId_Listener protocol_Port**. Set LoadBalancerId to the ID of the CLB instance, and Port to the listener port. Example: lb-bp1snb10sbml4\\*\\*\\*\\*\\_http\\_80.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'lb-bp16qjewdsunr41m1****', + ], + 'required' => true, + 'example' => 'lb-bp16qjewdsunr41m1****', + 'maxItems' => 51, + ], + ], + [ + 'name' => 'Tag', + 'in' => 'query', + 'style' => 'repeatList', + 'schema' => [ + 'description' => 'The tags.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The tags.'."\n", + '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 must be 1 to 64 characters in length and cannot start with `aliyun` or `acs:`. The tag 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 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' => true, + 'maxItems' => 21, + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => 'C46FF5A8-C5F0-4024-8262-B16B639225A0', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'TagTypeNotSame', + 'errorMessage' => 'The category of tags in the same request must be the same.', + ], + [ + 'errorCode' => 'ResourceNotExist', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'DeniedForNoneTagCreator', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'DeniedForScopeNotEqual', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'QuotaLimitExceeds', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'InvalidParam.Scope', + 'errorMessage' => 'The specified Scope is invalid.', + ], + [ + 'errorCode' => 'InvalidParam.ResourceType', + 'errorMessage' => 'The specified ResourceType is invalid.', + ], + [ + 'errorCode' => 'InvalidParam.TagKey', + 'errorMessage' => 'The specified TagKey is invalid.', + ], + [ + 'errorCode' => 'InvalidParam.TagValue', + 'errorMessage' => 'The specified TagValue is invalid.', + ], + [ + 'errorCode' => 'InvalidParam.TagKeyOrValue', + 'errorMessage' => 'The specified TagKey or TagValue is invalid.', + ], + [ + 'errorCode' => 'InvalidParam.TagOwnerUid', + 'errorMessage' => 'The specified TagOwnerUid is invalid.', + ], + [ + 'errorCode' => 'InvalidParam.TagOwnerBid', + 'errorMessage' => 'The specified TagOwnerBid is invalid.', + ], + [ + 'errorCode' => 'MissingParam.TagKey', + 'errorMessage' => 'The parameter TagKey is required.', + ], + [ + 'errorCode' => 'MissingParam.Scope', + 'errorMessage' => 'The parameter Scope is required.', + ], + [ + 'errorCode' => 'MissingParam.TagOwnerUid', + 'errorMessage' => 'The parameter TagOwnerUid is required.', + ], + [ + 'errorCode' => 'MissingParam.TagOwnerBid', + 'errorMessage' => 'The parameter TagOwnerBid is required.', + ], + [ + 'errorCode' => 'InvalidParameter.RegionId', + 'errorMessage' => 'The specified RegionId does not exist.', + ], + [ + 'errorCode' => 'DeniedForOperateCustomTag', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'MissingParam.ResourceId', + 'errorMessage' => 'The parameter ResourceId is required.', + ], + [ + 'errorCode' => 'Duplicate.TagKey', + 'errorMessage' => 'The param TagKey has duplicate value.', + ], + [ + 'errorCode' => 'SizeLimitExceeded.ResourceId', + 'errorMessage' => 'The maximum size of ResourceId is exceeded.', + ], + [ + 'errorCode' => 'SizeLimitExceeded.Tag', + 'errorMessage' => 'The maximum size of Tag is exceeded.', + ], + [ + 'errorCode' => 'MissingParam.RegionId', + 'errorMessage' => 'The parameter RegionId is required.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + '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', + 'summary' => 'Creates tags and adds the tags to resources.', + 'description' => '> You can add at most 20 tags to each instance. Before you add tags to a resource, Alibaba Cloud checks the number of existing tags of the resource. If the maximum number is reached, an error message is returned.'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'UntagResources' => [ + '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 Classic Load Balancer (CLB) instance.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~27584~~) operation to query the most recent region list.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The type of resource. Valid values:'."\n" + ."\n" + .'* **instance**: CLB instance'."\n" + .'* **certificate**: certificate'."\n" + .'* **acl**: access control list (ACL)'."\n" + .'* **listener**: listener'."\n" + .'* **vservergroup**: vServer group'."\n" + .'* **masterslaveservergroup**: primary/secondary server group'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'instance', + ], + ], + [ + 'name' => 'All', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to remove all tags from the specified resource. This parameter takes effect only if **TagKey.N** is empty.'."\n" + ."\n" + .'Valid values: **true** and **false**.'."\n", + 'type' => 'boolean', + 'required' => false, + 'example' => 'true', + 'default' => 'false', + ], + ], + [ + 'name' => 'ResourceId', + 'in' => 'query', + 'style' => 'repeatList', + 'schema' => [ + 'description' => 'The ID of the resource. You can specify at most 20 resources.'."\n" + ."\n" + .'> Set **ResourceId** of the **listener** to **LoadBalancerId_Listener protocol_Port**. Set LoadBalancerId to the ID of the CLB instance, and Port to the listener port.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The ID of the resource. You can specify at most 20 resources.'."\n" + ."\n" + .'> Set **ResourceId** of the **listener** to **LoadBalancerId_Listener protocol_Port**. Set LoadBalancerId to the ID of the CLB instance, and Port to the listener port. Example: lb-bp1snb10sbml4\\*\\*\\*\\*\\_http\\_80.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'lb-bp16qjewdsunr41m1****', + ], + 'required' => true, + 'example' => 'lb-bp16qjewdsunr41m1****', + 'maxItems' => 51, + ], + ], + [ + 'name' => 'TagKey', + 'in' => 'query', + 'style' => 'repeatList', + 'schema' => [ + '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 64 characters in length and cannot contain `http://` or `https://`. The tag key cannot start with `aliyun` or `acs:`.'."\n" + ."\n" + .'> If you do not specify **TagKey**, all tags are removed from the instance.'."\n", + 'type' => 'array', + 'items' => [ + '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 64 characters in length and cannot contain `http://` or `https://`. The tag key cannot start with `aliyun` or `acs:`.'."\n" + ."\n" + .'> If you do not specify **TagKey**, all tags are removed from the instance.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'test_slb_yaochi_tag_key-4', + ], + 'required' => false, + 'example' => 'FinanceDept', + 'maxItems' => 21, + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'C46FF5A8-C5F0-4024-8262-B16B639225A0', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'TagTypeNotSame', + 'errorMessage' => 'The category of tags in the same request must be the same.', + ], + [ + 'errorCode' => 'ResourceNotExist', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'DeniedForNoneTagCreator', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'DeniedForScopeNotEqual', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'InvalidParam.ResourceType', + 'errorMessage' => 'The specified ResourceType is invalid.', + ], + [ + 'errorCode' => 'InvalidParam.TagKey', + 'errorMessage' => 'The specified TagKey is invalid.', + ], + [ + 'errorCode' => 'InvalidParam.TagValue', + 'errorMessage' => 'The specified TagValue is invalid.', + ], + [ + 'errorCode' => 'InvalidParam.TagKeyOrValue', + 'errorMessage' => 'The specified TagKey or TagValue is invalid.', + ], + [ + 'errorCode' => 'InvalidParam.TagOwnerUid', + 'errorMessage' => 'The specified TagOwnerUid is invalid.', + ], + [ + 'errorCode' => 'InvalidParam.TagOwnerBid', + 'errorMessage' => 'The specified TagOwnerBid is invalid.', + ], + [ + 'errorCode' => 'MissingParam.TagOwnerUid', + 'errorMessage' => 'The parameter TagOwnerUid is required.', + ], + [ + 'errorCode' => 'MissingParam.TagOwnerBid', + 'errorMessage' => 'The parameter TagOwnerBid is required.', + ], + [ + 'errorCode' => 'InvalidParameter.RegionId', + 'errorMessage' => 'The specified RegionId does not exist.', + ], + [ + 'errorCode' => 'MissingParam.ResourceId', + 'errorMessage' => 'The parameter ResourceId is required.', + ], + [ + 'errorCode' => 'DeniedForOperateCustomTag', + 'errorMessage' => '%s.', + ], + [ + 'errorCode' => 'Duplicate.TagKey', + 'errorMessage' => 'The param TagKey has duplicate value.', + ], + [ + 'errorCode' => 'SizeLimitExceeded.ResourceId', + 'errorMessage' => 'The maximum size of ResourceId is exceeded.', + ], + [ + 'errorCode' => 'SizeLimitExceeded.TagKey', + 'errorMessage' => 'The maximum size of TagKey is exceeded.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"C46FF5A8-C5F0-4024-8262-B16B******\\"\\n}","errorExample":""},{"type":"xml","example":"\\n C46FF5A8-C5F0-4024-8262-B16B639225A0\\n","errorExample":""}]', + 'title' => 'UntagResources', + 'summary' => 'Removes tags from a resource.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + ], + 'RemoveTags' => [ + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the region where the Server Load Balancer (SLB) instance is created.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~2401682~~) operation to query the most recent region list.', + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'LoadBalancerId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The SLB instance ID.', + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'lb-bp1l5j******', + ], + ], + [ + 'name' => 'Tags', + 'in' => 'query', + 'schema' => [ + 'description' => 'A list of tags to be removed.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => '[{"TagKey":"Key1","TagValue":"Value1"},{"TagKey":"Key2","TagValue":"Value2"}]', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '365F4154-92F6-4AE4-92F8-7FF34B540710', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'InvalidParameter.TagKey', + 'errorMessage' => 'The specified tag key is invalid.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"365F4154-92F6-4AE4-92F8-7FF3******\\"\\n}","type":"json"}]', + 'title' => 'RemoveTags', + 'summary' => 'Removes tags from a Server Load Balancer (SLB) instance.', + ], + 'DeleteAccessLogsDownloadAttribute' => [ + 'summary' => 'Deletes the access log of a Classic Load Balancer (CLB) instance.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'delete', + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the CLB instance.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'Tags', + 'in' => 'query', + 'schema' => [ + 'description' => 'The tags that are added to the CLB instance. The tags must be key-value pairs that are contained in a JSON dictionary.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '[{"tagKey":"Key1","tagValue":"Value1"}]', + ], + ], + [ + 'name' => 'LoadBalancerId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The CLB instance ID.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'lb-uf68ps3rekbljmdb0****', + ], + ], + [ + 'name' => 'LogsDownloadAttributes', + 'in' => 'query', + 'schema' => [ + 'description' => 'The access log forwarding rule. Parameters:'."\n" + ."\n" + .'* **LogProject**: the name of the project of Log Service.'."\n" + .'* **LogStore**: the name of the Logstore of Log Service.'."\n" + .'* **LoadBalancerId**: the ID of the CLB instance.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => '[{"logProject":"my-project", "LogStore":"my-log-store", "LoadBalancerId":"lb-uf68ps3rekbljmdb0****"}]', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '9DEC9C28-AB05-4DDF-9A78-6B08EC9C****', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'Operation.NotAllowed', + 'errorMessage' => 'The AccessLogDownloadAttribute not exists.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"9DEC9C28-AB05-4DDF-9A78-6B08EC9C****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 9DEC9C28-AB05-4DDF-9A78-6B08EC9C****\\n","errorExample":""}]', + 'title' => 'DeleteAccessLogsDownloadAttribute', + ], + 'SetAccessLogsDownloadAttribute' => [ + 'summary' => 'Adds an access log forwarding rule to a Classic Load Balancer (CLB) instance.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'update', + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the CLB instance.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~27584~~) operation to query the most recent region list.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'Tags', + 'in' => 'query', + 'schema' => [ + 'description' => 'The tags that are added to the CLB instance. The tags must be key-value pairs that are contained in a JSON dictionary.'."\n" + ."\n" + .'You can specify up to 10 tags in each call.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '[{"tagKey":"Key1","tagValue":"Value1"}]', + ], + ], + [ + 'name' => 'LoadBalancerId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the CLB instance.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'lb-bp1b6c719dfa08ex*****', + ], + ], + [ + 'name' => 'LogsDownloadAttributes', + 'in' => 'query', + 'schema' => [ + 'description' => 'The access log forwarding rule. Parameters:'."\n" + ."\n" + .'* **LogProject**: the name of the project of Simple Log Service.'."\n" + .'* **LogStore**: the name of the Logstore of Simple Log Service.'."\n" + .'* **LoadBalancerId**: the ID of the CLB instance.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => '[{"logProject":"my-project", "LogStore":"my-log-store", "LoadBalancerId":"lb-uf68ps3rekbljmdb0****"}]', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '9DEC9C28-AB05-4DDF-9A78-6B08EC9C****', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'Operation.NotAllowed', + 'errorMessage' => 'The AccessLogDownloadAttribute already exists.', + ], + [ + 'errorCode' => 'InvalidProject.NotExist', + 'errorMessage' => 'The specified project does not exist.', + ], + [ + 'errorCode' => 'NoPermission.AliyunServiceRoleForSlbLogDelivery', + 'errorMessage' => 'You are not authorized to create the service linked role. Role Name: AliyunServiceRoleForSlbLogDelivery. Service Name: logdelivery.slb.aliyuncs.com. Please ensure the user has been granted the ram:CreateServiceLinkedRole permission', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"9DEC9C28-AB05-4DDF-9A78-6B08EC9C****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 9DEC9C28-AB05-4DDF-9A78-6B08EC9C****\\n","errorExample":""}]', + 'title' => 'SetAccessLogsDownloadAttribute', + ], + 'DescribeAccessLogsDownloadAttribute' => [ + 'summary' => 'Queries the access log of a Classic Load Balancer (CLB) instance.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the CLB instance.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~27584~~) operation to query the most recent region list.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'Tags', + 'in' => 'query', + 'schema' => [ + 'description' => 'The tags that are added to the CLB instance. The tags must be key-value pairs that are contained in a JSON dictionary.'."\n" + ."\n" + .'You can specify up to 10 tags in each call.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '[{"tagKey":"Key1","tagValue":"Value1"}]', + ], + ], + [ + 'name' => 'LoadBalancerId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The CLB instance ID.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'lb-bp1b6c719dfa08ex*****', + ], + ], + [ + 'name' => 'LogType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The type of access log. Set the value to **layer7**, which specifies Layer 7 access logs.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'layer7', + 'default' => 'layer7', + ], + ], + [ + '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' => '20', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + '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' => '8B9DB03B-ED39-5DB8-9C9F-1ED5F548D61E', + ], + 'TotalCount' => [ + 'description' => 'The total number of entries returned.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '10', + ], + 'LogsDownloadAttributes' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'LogsDownloadAttribute' => [ + 'description' => 'The configuration of the access log.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'LogProject' => [ + 'description' => 'The name of the Log Service project.'."\n", + 'type' => 'string', + 'example' => 'test-log-project', + ], + 'LogStore' => [ + 'description' => 'The name of the Logstore.'."\n", + 'type' => 'string', + 'example' => 'test-log-store', + ], + 'LoadBalancerId' => [ + 'description' => 'The CLB instance ID.'."\n", + 'type' => 'string', + 'example' => 'lb-bp1b6c719dfa08ex*****', + ], + 'Region' => [ + 'description' => 'The region ID of the CLB instance.'."\n", + 'type' => 'string', + 'example' => 'cn-hangzhou', + ], + 'LogType' => [ + 'description' => 'The type of access log. Only **layer7** is returned, which indicates Layer 7 access logs.'."\n", + 'type' => 'string', + 'example' => 'layer7', + ], + ], + ], + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"PageSize\\": 10,\\n \\"PageNumber\\": 1,\\n \\"RequestId\\": \\"8B9DB03B-ED39-5DB8-9C9F-1ED5F548D61E\\",\\n \\"TotalCount\\": 10,\\n \\"LogsDownloadAttributes\\": {\\n \\"LogsDownloadAttribute\\": [\\n {\\n \\"LogProject\\": \\"test-log-project\\",\\n \\"LogStore\\": \\"test-log-store\\",\\n \\"LoadBalancerId\\": \\"lb-bp1b6c719dfa08ex*****\\",\\n \\"Region\\": \\"cn-hangzhou\\",\\n \\"LogType\\": \\"layer7\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 10\\n 1\\n 8B9DB03B-ED39-5DB8-9C9F-1ED5F548D61E\\n 10\\n \\n test-log-project\\n test-log-store\\n lb-bp1b6c719dfa08ex*****\\n cn-hangzhou\\n layer7\\n \\n","errorExample":""}]', + 'title' => 'DescribeAccessLogsDownloadAttribute', + ], + 'EnableHighDefinationMonitor' => [ + 'summary' => 'Enables fine-grained monitoring for the current region.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'create', + 'abilityTreeCode' => '88622', + 'abilityTreeNodes' => [ + 'FEATUREslbSG7ZOW', + ], + 'tenantRelevance' => 'publicInformation', + ], + 'parameters' => [ + [ + 'name' => 'Tags', + 'in' => 'query', + 'schema' => [ + 'description' => 'The tags of the logs. The tags must be key-value pairs that are contained in a JSON dictionary.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '[{"tagKey":"Key1","tagValue":"Value1"}]', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the region where the Classic Load Balancer (CLB) instance is deployed.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~27584~~) operation to query the most recent region list.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'LogProject', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the project of Log Service. The name must be 4 to 63 characters in length, and can contain digits and lowercase letters. It must start and end with a digit or a letter.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'my-project', + ], + ], + [ + 'name' => 'LogStore', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the Logstore of Log Service. The name must be 2 to 64 characters in length and can contain digits, lowercase letters, hyphens (-) and underscores (\\_). It must start and end with a digit or a letter.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'my-log-store', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + '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' => '2F398FF5-B349-5C01-8638-8E9A0BF1DBE6', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'OperationNotAllowed.HighDefinitionMonitorEnabled', + 'errorMessage' => 'The operation is not allowed because HighDefinitionMonitor is already enabled in this region.', + ], + [ + 'errorCode' => 'UnsupportedFeature.User', + 'errorMessage' => 'The feature of HighDefinationMonitor is not supported.', + ], + [ + 'errorCode' => 'NoPermission.AliyunServiceRoleForSlbLogDelivery', + 'errorMessage' => 'You are not authorized to create the service linked role. Role Name: AliyunServiceRoleForSlbLogDelivery. Service Name: logdelivery.slb.aliyuncs.com. Please ensure the user has been granted the ram:CreateServiceLinkedRole permission', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Success\\": \\"true\\",\\n \\"RequestId\\": \\"2F398FF5-B349-5C01-8638-8E9A0BF1DBE6\\"\\n}","errorExample":""},{"type":"xml","example":"\\n true\\n 2F398FF5-B349-5C01-8638-8E9A0BF1DBE6\\n","errorExample":""}]', + 'title' => 'EnableHighDefinationMonitor', + ], + 'ModifyHighDefinationMonitor' => [ + 'summary' => 'Modifies the configuration of fine-grained monitoring in a specified region.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'update', + 'abilityTreeCode' => '121167', + 'abilityTreeNodes' => [ + 'FEATUREslbSG7ZOW', + ], + 'tenantRelevance' => 'publicInformation', + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the region where the Classic Load Balancer (CLB) instance is deployed.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~27584~~) operation to query the most recent region list.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'LogProject', + 'in' => 'query', + 'schema' => [ + 'description' => 'The new name of the project of Log Service. The name must be 4 to 63 characters in length, and can contain digits and lowercase letters. It must start and end with a digit or a letter.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'my-project', + ], + ], + [ + 'name' => 'LogStore', + 'in' => 'query', + 'schema' => [ + 'description' => 'The new name of the Logstore of Log Service. The name must be 2 to 64 characters in length and can contain digits, lowercase letters, hyphens (-) and underscores (\\_). It must start and end with a digit or a letter.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'my-log-store', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + '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' => '8B9DB03B-ED39-5DB8-9C9F-1ED5F548D61E', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'OperationNotAllowed.HighDefinitionMonitorEnabled', + 'errorMessage' => 'The operation is not allowed because HighDefinitionMonitor is already enabled in this region.', + ], + [ + 'errorCode' => 'UnsupportedFeature.User', + 'errorMessage' => 'The feature of HighDefinationMonitor is not supported.', + ], + [ + 'errorCode' => 'NoPermission.AliyunServiceRoleForSlbLogDelivery', + 'errorMessage' => 'You are not authorized to create the service linked role. Role Name: AliyunServiceRoleForSlbLogDelivery. Service Name: logdelivery.slb.aliyuncs.com. Please ensure the user has been granted the ram:CreateServiceLinkedRole permission', + ], + [ + 'errorCode' => 'OperationDenied.HdMonitorListenerExist', + 'errorMessage' => 'The operation is denied because there are still listeners enabling HighDefinitionMnitor.', + ], + [ + 'errorCode' => 'OperationNotAllowed.HighDefinitionMonitorNotEnabled', + 'errorMessage' => 'The operation is not allowed because HighDefinitionMonitor is not enabled in this region.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Success\\": \\"true\\",\\n \\"RequestId\\": \\"8B9DB03B-ED39-5DB8-9C9F-1ED5F548D61E\\"\\n}","errorExample":""},{"type":"xml","example":"\\n true\\n 8B9DB03B-ED39-5DB8-9C9F-1ED5F548D61E\\n","errorExample":""}]', + 'title' => 'ModifyHighDefinationMonitor', + ], + 'DescribeHighDefinationMonitor' => [ + 'summary' => 'Queries the configurations of fine-grained monitoring in a region.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + ], + 'parameters' => [ + [ + 'name' => 'Tags', + 'in' => 'query', + 'schema' => [ + 'description' => 'The tags of the logs. The tags must be key-value pairs that are contained in a JSON dictionary.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '[{"tagKey":"Key1","tagValue":"Value1"}]', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the region where you want to query the configuration of fine-grained monitoring.'."\n" + ."\n" + .'You can call the [DescribeRegions](~~27584~~) operation to query the most recent region list.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'cn-hangzhou', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'LogProject' => [ + 'description' => 'The name of the Log Service project.'."\n", + 'type' => 'string', + 'example' => 'my-project', + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '2F398FF5-B349-5C01-8638-8E9A0BF1DBE6', + ], + 'LogStore' => [ + 'description' => 'The name of the Logstore.'."\n", + 'type' => 'string', + 'example' => 'my-log-store', + ], + 'Success' => [ + 'description' => 'Indicates whether the call is successful. Valid values:'."\n" + ."\n" + .'* **true**'."\n" + .'* **false**'."\n", + 'type' => 'string', + 'example' => 'true', + ], + ], + 'description' => '', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"LogProject\\": \\"my-project\\",\\n \\"RequestId\\": \\"2F398FF5-B349-5C01-8638-8E9A0BF1DBE6\\",\\n \\"LogStore\\": \\"my-log-store\\",\\n \\"Success\\": \\"true\\"\\n}","errorExample":""},{"type":"xml","example":"\\n my-project\\n 2F398FF5-B349-5C01-8638-8E9A0BF1DBE6\\n my-log-store\\n true\\n","errorExample":""}]', + 'title' => 'DescribeHighDefinationMonitor', + ], + 'MoveResourceGroup' => [ + 'summary' => 'Moves a resource to another resource group.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'update', + 'abilityTreeCode' => '88639', + 'abilityTreeNodes' => [ + 'FEATUREslbPXSOQX', + ], + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the Classic Load Balancer (CLB) instance.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'cn-beijing', + ], + ], + [ + 'name' => 'ResourceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the resource for which you want to modify the resource group.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'lb-uf6ghek7ds2btzt65****', + ], + ], + [ + 'name' => 'ResourceType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The type of the resource. Valid values:'."\n" + ."\n" + .'* **loadbalancer**: a CLB instance'."\n" + .'* **certificate**: a certificate'."\n" + .'* **acl**: an access control list (ACL)'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'enumValueTitles' => [ + 'loadbalancer' => 'loadbalancer', + 'certificate' => 'certificate', + 'acl' => 'acl', + ], + 'example' => 'loadbalancer', + ], + ], + [ + 'name' => 'NewResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the resource group to which you want to move the resource.'."\n", + 'type' => 'string', + 'required' => true, + 'docRequired' => true, + 'example' => 'rg-aek2rpsek5h****', + ], + ], + [ + 'name' => 'ResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The resource group ID.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-aek2dmxj56z****', + ], + ], + [ + 'name' => 'access_key_id', + 'in' => 'query', + 'schema' => [ + 'description' => 'The AccessKey ID provided to you by Alibaba Cloud for accessing the service.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'yourAccessKeyID', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '18CAE30A-79CF-544C-86DB-EB36C739642E', + ], + ], + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"18CAE30A-79CF-544C-86DB-EB36C739642E\\"\\n}","type":"json"}]', + 'title' => 'MoveResourceGroup', + ], + ], + 'endpoints' => [ + [ + 'regionId' => 'cn-qingdao', + 'endpoint' => 'slb.cn-qingdao.aliyuncs.com', + ], + [ + 'regionId' => 'cn-beijing', + 'endpoint' => 'slb.cn-beijing.aliyuncs.com', + ], + [ + 'regionId' => 'cn-zhangjiakou', + 'endpoint' => 'slb.cn-zhangjiakou.aliyuncs.com', + ], + [ + 'regionId' => 'cn-zhengzhou-jva', + 'endpoint' => 'slb.cn-zhengzhou-jva.aliyuncs.com', + ], + [ + 'regionId' => 'cn-huhehaote', + 'endpoint' => 'slb.cn-huhehaote.aliyuncs.com', + ], + [ + 'regionId' => 'cn-wulanchabu', + 'endpoint' => 'slb.cn-wulanchabu.aliyuncs.com', + ], + [ + 'regionId' => 'cn-hangzhou', + 'endpoint' => 'slb.aliyuncs.com', + ], + [ + 'regionId' => 'cn-shanghai', + 'endpoint' => 'slb.cn-shanghai.aliyuncs.com', + ], + [ + 'regionId' => 'cn-nanjing', + 'endpoint' => 'slb.cn-nanjing.aliyuncs.com', + ], + [ + 'regionId' => 'cn-fuzhou', + 'endpoint' => 'slb.cn-fuzhou.aliyuncs.com', + ], + [ + 'regionId' => 'cn-shenzhen', + 'endpoint' => 'slb.cn-shenzhen.aliyuncs.com', + ], + [ + 'regionId' => 'cn-heyuan', + 'endpoint' => 'slb.cn-heyuan.aliyuncs.com', + ], + [ + 'regionId' => 'cn-guangzhou', + 'endpoint' => 'slb.cn-guangzhou.aliyuncs.com', + ], + [ + 'regionId' => 'cn-chengdu', + 'endpoint' => 'slb.cn-chengdu.aliyuncs.com', + ], + [ + 'regionId' => 'cn-wuhan-lr', + 'endpoint' => 'slb.cn-wuhan-lr.aliyuncs.com', + ], + [ + 'regionId' => 'cn-hongkong', + 'endpoint' => 'slb.cn-hongkong.aliyuncs.com', + ], + [ + 'regionId' => 'ap-northeast-1', + 'endpoint' => 'slb.ap-northeast-1.aliyuncs.com', + ], + [ + 'regionId' => 'ap-northeast-2', + 'endpoint' => 'slb.ap-northeast-2.aliyuncs.com', + ], + [ + 'regionId' => 'ap-southeast-1', + 'endpoint' => 'slb.ap-southeast-1.aliyuncs.com', + ], + [ + 'regionId' => 'ap-southeast-2', + 'endpoint' => 'slb.ap-southeast-2.aliyuncs.com', + ], + [ + 'regionId' => 'ap-southeast-3', + 'endpoint' => 'slb.ap-southeast-3.aliyuncs.com', + ], + [ + 'regionId' => 'ap-southeast-5', + 'endpoint' => 'slb.ap-southeast-5.aliyuncs.com', + ], + [ + 'regionId' => 'ap-southeast-6', + 'endpoint' => 'slb.ap-southeast-6.aliyuncs.com', + ], + [ + 'regionId' => 'us-east-1', + 'endpoint' => 'slb.us-east-1.aliyuncs.com', + ], + [ + 'regionId' => 'us-west-1', + 'endpoint' => 'slb.us-west-1.aliyuncs.com', + ], + [ + 'regionId' => 'eu-west-1', + 'endpoint' => 'slb.eu-west-1.aliyuncs.com', + ], + [ + 'regionId' => 'eu-central-1', + 'endpoint' => 'slb.eu-central-1.aliyuncs.com', + ], + [ + 'regionId' => 'ap-south-1', + 'endpoint' => 'slb.ap-south-1.aliyuncs.com', + ], + [ + 'regionId' => 'me-east-1', + 'endpoint' => 'slb.me-east-1.aliyuncs.com', + ], + [ + 'regionId' => 'cn-hangzhou-finance', + 'endpoint' => 'slb.aliyuncs.com', + ], + [ + 'regionId' => 'cn-shanghai-finance-1', + 'endpoint' => 'slb.aliyuncs.com', + ], + [ + 'regionId' => 'cn-shenzhen-finance-1', + 'endpoint' => 'slb.aliyuncs.com', + ], + [ + 'regionId' => 'ap-southeast-7', + 'endpoint' => 'slb.ap-southeast-7.aliyuncs.com', + ], + [ + 'regionId' => 'cn-beijing-finance-1', + 'endpoint' => 'slb.cn-beijing-finance-1.aliyuncs.com', + ], + [ + 'regionId' => 'me-central-1', + 'endpoint' => 'slb.me-central-1.aliyuncs.com', + ], + [ + 'regionId' => 'cn-heyuan-acdr-1', + 'endpoint' => 'slb.cn-heyuan-acdr-1.aliyuncs.com', + ], + [ + 'regionId' => 'na-south-1', + 'endpoint' => 'slb.na-south-1.aliyuncs.com', + ], + ], +]; -- cgit v1.2.3